From 2bc42c256f3a4c4967140f47c81b3d3a2a2a4642 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 12 Jun 2016 17:38:59 +0200 Subject: [PATCH 001/266] merging 1.4.8 and preparing 1.4.9 --- 1_7_R3/pom.xml | 45 ---- API/pom.xml | 243 +++++++----------- .../minigamesapi/Arena.java | 51 ++-- .../minigamesapi/ArenaListener.java | 145 ++++++++++- .../minigamesapi/ArenaSetup.java | 2 +- .../minigamesapi/Effects.java | 61 ++--- .../minigamesapi/MinigamesAPI.java | 92 +++++-- .../minigamesapi/Rewards.java | 6 +- .../minigamesapi/SmartReset.java | 7 +- .../minigamesapi/SpectatorManager.java | 11 +- .../minigamesapi/Stats.java | 3 +- .../achievements/ArenaAchievements.java | 6 +- .../minigamesapi/bungee/BungeeSocket.java | 3 - .../minigamesapi/commands/CommandHandler.java | 20 +- .../minigamesapi/config/DefaultConfig.java | 2 +- .../minigamesapi/config/StatsConfig.java | 2 +- .../config/StatsGlobalConfig.java | 2 +- .../minigamesapi/statsholograms/Hologram.java | 2 - .../statsholograms/Holograms.java | 2 +- .../minigamesapi/util/ArenaBlock.java | 8 +- .../util/ArenaLobbyScoreboard.java | 4 +- .../minigamesapi/util/InventoryManager.java | 41 +++ .../minigamesapi/util/Leaderboard.java | 210 +++++++++++++++ .../minigamesapi/util/Metrics.java | 2 +- .../minigamesapi/util/ParticleEffectNew.java | 2 +- .../minigamesapi/util/Util.java | 84 ++++-- API/src/main/resources/config.yml | 10 +- API/src/main/resources/plugin.yml | 34 +-- pom.xml | 70 ++--- 29 files changed, 779 insertions(+), 391 deletions(-) delete mode 100644 1_7_R3/pom.xml create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java diff --git a/1_7_R3/pom.xml b/1_7_R3/pom.xml deleted file mode 100644 index b15df559..00000000 --- a/1_7_R3/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - 4.0.0 - com.comze_instancelabs - MinigamesLib-1_7_R3 - v1_7_R3 - jar - MinigamesLib-NMS-1_7_R3 - v1_7_R3 NMS for MinigamesAPI - - - com.comze_instancelabs - MinigamesLib-parent - parent - - - - - org.bukkit - craftbukkit - 1.7.9-R0.1-SNAPSHOT - jar - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - - - - \ No newline at end of file diff --git a/API/pom.xml b/API/pom.xml index c7539cc1..34b64cc1 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -1,145 +1,100 @@ - - 4.0.0 - com.comze_instancelabs - MinigamesLib - 1.13.1 - jar - MinigamesLib-API - Rich Minigames API - - - com.comze_instancelabs - MinigamesLib-parent - parent - - - - - private-crackshot-repo - http://www.instancedev.com/bukkitdev/MinigamesAPI/dependencies/Crackshot/maven/ - - - vault-repo - http://nexus.theyeticave.net/content/repositories/pub_releases - - - - - - org.bukkit - bukkit - - 1.7.2-R0.3 - jar - - - net.milkbowl.vault - Vault - 1.3.01 - provided - - - com.shampaggon.crackshot - Crackshot - 0.97.13 - provided - - - - - - instancedev - - - - - - maven-eclipse-plugin - 2.9 - - - org.eclipse.m2e.core.maven2Nature - - - org.eclipse.jdt.core.javabuilder - org.eclipse.m2e.core.maven2Builder - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - - - 2.1.2 - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar - - - - - - org.apache.maven.plugins - maven-shade-plugin - 1.4 - - - package - - shade - - - - - com.comze_instancelabs:* - - - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 2.8 - - - copy - package - - copy - - - - - com.comze_instancelabs - MinigamesLib - ${version} - jar - false - C:/Users/Rnetwork/Desktop/mc_new/mc servers/minecraft 1.5.2 bukkit RAW/plugins/ - MinigamesLib-${version}.jar - - - ${project.build.directory}/wars - true - true - - - - - - - + + 4.0.0 + com.github.MCE-Plugins + MinigamesLib + 1.14.9-SNPASHOT + jar + MinigamesLib-API + Rich Minigames API + + + com.github.MCE-Plugins + MinigamesLib-parent + 1.0 + + + + + private-crackshot-repo + http://www.instancedev.com/bukkitdev/MinigamesAPI/dependencies/Crackshot/maven/ + + + vault-repo + http://nexus.theyeticave.net/content/repositories/pub_releases + + + + + + org.bukkit + bukkit + 1.9.4-R0.1-SNAPSHOT + provided + + + net.milkbowl.vault + Vault + 1.3.01 + provided + + + com.shampaggon.crackshot + Crackshot + 0.97.13 + provided + + + + + + + 3.0.0 + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar + + + + + + 2.10.3 + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadoc + + jar + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + com.comze_instancelabs:* + + + + + + + + + \ No newline at end of file diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index a1abc23e..96b88f4e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -55,8 +55,6 @@ public class Arena { private int max_players; private int min_players; private boolean viparena; - private String permission_node; - private ArrayList players = new ArrayList(); private ArrayList temp_players = new ArrayList(); @@ -420,7 +418,7 @@ public void run() { } } } - }, 10L); + }, 15L); for (String p_ : this.getAllPlayers()) { if (Validator.isPlayerOnline(p_) && !p_.equalsIgnoreCase(p.getName())) { @@ -446,8 +444,8 @@ public void run() { Util.clearInv(p); ap.setOriginalGamemode(p.getGameMode()); ap.setOriginalXplvl(p.getLevel()); - p.setGameMode(GameMode.SURVIVAL); - p.setHealth(20D); + p.setGameMode(GameMode.SURVIVAL); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); return; } else { if (startedIngameCountdown) { @@ -464,7 +462,7 @@ public void run() { public void run() { Util.clearInv(p); } - }, 10L); + }, 15L); ap.setOriginalXplvl(p.getLevel()); Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { public void run() { @@ -474,7 +472,7 @@ public void run() { ap.setOriginalGamemode(p.getGameMode()); p.setGameMode(GameMode.SURVIVAL); } - }, 15L); + }, 20L); pli.scoreboardManager.updateScoreboard(plugin, this); return; } else { @@ -483,9 +481,9 @@ public void run() { Util.teleportPlayerFixed(p, this.waitinglobby); Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { public void run() { - p.setHealth(20D); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); } - }, 2L); + }, 3L); } else { Util.teleportAllPlayers(currentarena.getArena().getAllPlayers(), currentarena.getArena().spawns); } @@ -504,7 +502,7 @@ public void run() { } ap.setOriginalGamemode(p.getGameMode()); p.setGameMode(GameMode.SURVIVAL); - p.setHealth(20D); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); } }, 15L); if (!skip_join_lobby) { @@ -638,6 +636,7 @@ public void run() { } if (p != null) { p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); Util.teleportPlayerFixed(p, this.mainlobby); p.setFireTicks(0); p.setFlying(false); @@ -651,9 +650,10 @@ public void run() { p.updateInventory(); p.setWalkSpeed(0.2F); - p.setFoodLevel(20); - p.setHealth(20D); + p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 20 * 2, 50)); + p.setHealth(20); p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); pli.getSpectatorManager().setSpectate(p, false); pli.getStatsInstance().updateSQLKillsDeathsAfter(p, this); } @@ -670,7 +670,6 @@ public void run() { Util.clearInv(p); p.setWalkSpeed(0.2F); p.setFoodLevel(20); - p.setHealth(20D); p.setFireTicks(0); p.removePotionEffect(PotionEffectType.JUMP); pli.getSpectatorManager().setSpectate(p, false); @@ -684,7 +683,19 @@ public void run() { } for (Entity e : p.getNearbyEntities(50D, 50D, 50D)) { - if (e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER) { + if (e.getType() == EntityType.DROPPED_ITEM + || e.getType() == EntityType.SLIME + || e.getType() == EntityType.ZOMBIE + || e.getType() == EntityType.SKELETON + || e.getType() == EntityType.SPIDER + || e.getType() == EntityType.CREEPER + || e.getType() == EntityType.VILLAGER + || e.getType() == EntityType.ARMOR_STAND + || e.getType() == EntityType.PIG_ZOMBIE + || e.getType() == EntityType.ARMOR_STAND + || e.getType() == EntityType.BOAT + || e.getType() == EntityType.HORSE + || e.getType() == EntityType.ARROW) { e.remove(); } } @@ -1102,6 +1113,7 @@ public void startRaw(final Arena a) { } Player p = Bukkit.getPlayer(p_); p.setWalkSpeed(0.2F); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); p.setFoodLevel(20); p.removePotionEffect(PotionEffectType.JUMP); if (send_game_started_msg) { @@ -1190,7 +1202,16 @@ public void run() { public void run() { if (Validator.isPlayerOnline(p_)) { for (Entity e : Bukkit.getPlayer(p_).getNearbyEntities(50, 50, 50)) { - if (e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER) { + if (e.getType() == EntityType.DROPPED_ITEM + || e.getType() == EntityType.ENDERMAN + || e.getType() == EntityType.SLIME + || e.getType() == EntityType.ZOMBIE + || e.getType() == EntityType.SKELETON + || e.getType() == EntityType.SPIDER + || e.getType() == EntityType.CREEPER + || e.getType() == EntityType.VILLAGER + || e.getType() == EntityType.ARMOR_STAND + || e.getType() == EntityType.ARROW) { e.remove(); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 8789e193..6cc22352 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1,5 +1,6 @@ package com.comze_instancelabs.minigamesapi; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -11,11 +12,16 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.Sign; +import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Arrow; import org.bukkit.entity.Egg; import org.bukkit.entity.EnderPearl; import org.bukkit.entity.Enderman; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.ItemFrame; +import org.bukkit.entity.Minecart; +import org.bukkit.entity.Painting; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; import org.bukkit.entity.Snowball; @@ -46,15 +52,18 @@ import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerDropItemEvent; +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.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import com.comze_instancelabs.minigamesapi.util.ChangeCause; @@ -67,8 +76,12 @@ public class ArenaListener implements Listener { JavaPlugin plugin = null; PluginInstance pli = null; + SpectatorManager sm; + private String minigame = "minigame"; + + private ArrayList cmds = new ArrayList(); private String leave_cmd = "/leave"; @@ -128,6 +141,50 @@ public void onInventoryClick(InventoryClickEvent event) { } } } + + private List getEntitiesByLocation(Location loc, double d) + { + List ent = new ArrayList(); + for (Entity e : loc.getWorld().getEntities()) { + if (e.getLocation().distanceSquared(loc) <= d) { + ent.add(e); + } + } + return ent; + } + + @EventHandler + public void Space(PlayerMoveEvent event) { + Player p = (Player) event.getPlayer(); + if (pli.containsGlobalPlayer(p.getName())) { + Arena a = pli.global_players.get(p.getName()); + if (a != null) { + if (a.getArenaState() == ArenaState.INGAME) { + if (!isSpectating(p)) { + for (Entity e : getEntitiesByLocation(p.getLocation(), 30D)) { + + if (e instanceof Player) { + Player sp = (Player) e; + + if (isSpectating(sp)) { + sp.setVelocity(sp.getLocation().getDirection().setY(0.05D)); + sp.setVelocity(sp.getLocation().getDirection().multiply(-2)); + } + + } + } + } + } + } + } + } + + + + @Deprecated + public static boolean isSpectating(Player p) { + return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); + } @EventHandler(priority = EventPriority.HIGHEST) public void onMove(PlayerMoveEvent event) { @@ -227,15 +284,15 @@ public void onHunger(FoodLevelChangeEvent event) { public void onPlayerDeath(PlayerDeathEvent event) { if (pli.containsGlobalPlayer(event.getEntity().getName())) { event.setDeathMessage(null); - event.getEntity().setHealth(20D); final Player p = event.getEntity(); + + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 3, 50)); final Arena arena = pli.global_players.get(p.getName()); if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.startedIngameCountdown)) { if (arena.isArcadeMain()) { Util.teleportPlayerFixed(p, arena.getWaitingLobbyTemp()); } - return; } arena.global_drops.addAll(event.getDrops()); @@ -285,7 +342,48 @@ public void run() { } } } + + + @EventHandler + public void NoDamageEntityInLobby(EntityDamageByEntityEvent event){ + if (event.getDamager() instanceof Player) { + Player p = (Player) event.getDamager(); + if (pli.containsGlobalPlayer(p.getName())) { + final Arena arena = pli.global_players.get(p.getName()); + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) { + Entity e = event.getEntity(); + if (e instanceof ArmorStand || e instanceof ItemFrame || e instanceof Painting || e instanceof Minecart) { + event.setCancelled(false); + } + } + } + } + } + + + @EventHandler + public void NoClickEntityInLobby(PlayerInteractEntityEvent event) throws IOException{ + Player p = event.getPlayer(); + Entity e = event.getRightClicked(); + if(!(e instanceof Player)){ + final Arena arena = pli.global_players.get(p.getName()); + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) { + if (event.getRightClicked().getType().equals(EntityType.ARMOR_STAND) + || event.getRightClicked().getType().equals(EntityType.MINECART) + || event.getRightClicked().getType().equals(EntityType.MINECART_CHEST) + || event.getRightClicked().getType().equals(EntityType.MINECART_HOPPER) + || event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) + || event.getRightClicked().getType().equals(EntityType.PAINTING)) { + event.setCancelled(true); + return; + } + } + } + } + + + @EventHandler public void onEntityDamage(EntityDamageEvent event) { if (event.getEntity() instanceof Player) { @@ -410,7 +508,7 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { } } - @EventHandler + @EventHandler(priority = EventPriority.HIGH) public void onPaintingBreak(HangingBreakByEntityEvent event) { if (event.getRemover() instanceof Player) { String p_ = ((Player) event.getRemover()).getName(); @@ -420,8 +518,9 @@ public void onPaintingBreak(HangingBreakByEntityEvent event) { } } + - @EventHandler + @EventHandler(priority = EventPriority.HIGH) public void onExplode(EntityExplodeEvent event) { for (Arena a : pli.getArenas()) { if (a.getArenaType() == ArenaType.REGENERATION) { @@ -439,7 +538,7 @@ public void onExplode(EntityExplodeEvent event) { } } - @EventHandler + @EventHandler(priority = EventPriority.HIGH) public void onBlockFromTo(BlockFromToEvent event) { for (Arena a : pli.getArenas()) { if (a.getArenaType() == ArenaType.REGENERATION) { @@ -457,7 +556,7 @@ public void onBlockFromTo(BlockFromToEvent event) { } } - @EventHandler + @EventHandler(priority = EventPriority.HIGH) public void onBlockFade(BlockFadeEvent event) { for (Arena a : pli.getArenas()) { if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { @@ -471,7 +570,7 @@ public void onBlockFade(BlockFadeEvent event) { } } - @EventHandler + @EventHandler(priority = EventPriority.HIGH) public void onLeavesDecay(LeavesDecayEvent event) { for (Arena a : pli.getArenas()) { if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { @@ -485,7 +584,7 @@ public void onLeavesDecay(LeavesDecayEvent event) { } } - @EventHandler + @EventHandler(priority = EventPriority.HIGH) public void onBlockPhysics(BlockPhysicsEvent event) { for (Arena a : pli.getArenas()) { if (a.getArenaType() == ArenaType.REGENERATION) { @@ -513,7 +612,6 @@ public void onBlockRedstone(BlockRedstoneEvent event) { Cuboid c = a.getBoundaries(); if (c != null) { if (a.getArenaState() == ArenaState.INGAME) { - event.getBlock().setData((byte) 0); // Reset redstone before adding it to smartreset index a.getSmartReset().addChanged(event.getBlock(), false); } } @@ -656,7 +754,20 @@ public void onStructureGrow(StructureGrowEvent event) { } } } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockBreak2(BlockBreakEvent event) { + Player p = event.getPlayer(); + if (pli.containsGlobalPlayer(p.getName())) { + Arena a = pli.global_players.get(p.getName()); + if (event.getBlock().getType() != Material.AIR) { + a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); + } + } + } + + @EventHandler(priority = EventPriority.HIGH) public void onBlockPlace(BlockPlaceEvent event) { Player p = event.getPlayer(); @@ -669,7 +780,7 @@ public void onBlockPlace(BlockPlaceEvent event) { if (event.getBlockReplacedState().getType() != Material.AIR) { a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlockReplacedState().getType(), event.getBlockReplacedState().getData().getData()); } else { - a.getSmartReset().addChanged(event.getBlock().getLocation(), Material.AIR, (byte) 0); + } } if (pli.getStatsInstance().skullsetup.contains(p.getName())) { @@ -685,7 +796,8 @@ public void onBlockPlace(BlockPlaceEvent event) { @EventHandler public void onSignUse(PlayerInteractEvent event) { if (event.hasBlock()) { - if (event.getClickedBlock().getType() == Material.SIGN_POST || event.getClickedBlock().getType() == Material.WALL_SIGN || event.getClickedBlock().getType() == Material.SIGN) { + if (event.getClickedBlock().getType() == Material.SIGN_POST + || event.getClickedBlock().getType() == Material.WALL_SIGN || event.getClickedBlock().getType() == Material.SIGN) { if (event.getClickedBlock().getType() == Material.FIRE) { return; } @@ -700,6 +812,7 @@ public void onSignUse(PlayerInteractEvent event) { Player p = event.getPlayer(); if (!arena.containsPlayer(p.getName())) { arena.joinPlayerLobby(p.getName()); + Util.updateSign(plugin, arena); } else { Util.sendMessage(plugin, p, pli.getMessagesConfig().you_already_are_in_arena.replaceAll("", arena.getInternalName())); } @@ -714,6 +827,7 @@ public void onSignUse(PlayerInteractEvent event) { if (a.getArenaState() == ArenaState.JOIN || a.getArenaState() == ArenaState.STARTING) { if (!a.containsPlayer(event.getPlayer().getName())) { a.joinPlayerLobby(event.getPlayer().getName()); + Util.updateSign(plugin, arena); return; } } @@ -733,6 +847,7 @@ public void onSignUse(PlayerInteractEvent event) { if (loc.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) { if (loc.distance(s.getLocation()) < 1) { pli.global_players.get(event.getPlayer().getName()).leavePlayer(event.getPlayer().getName(), false, false); + Util.updateSign(plugin, arena); return; } } @@ -930,10 +1045,13 @@ public void run() { p.getInventory().addItem(plugin.getConfig().getItemStack("temp.left_players." + p.getName() + ".items." + key)); } } + Arena arena = pli.global_players.get(p.getName()); p.updateInventory(); p.setWalkSpeed(0.2F); p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); p.setGameMode(GameMode.SURVIVAL); + Util.updateSign(plugin, arena); pli.getSpectatorManager().setSpectate(p, false); } catch (Exception e) { e.printStackTrace(); @@ -963,6 +1081,8 @@ public void run() { public void run() { if (p != null) { pli.getArenas().get(0).joinPlayerLobby(p.getName()); + Arena arena = pli.global_players.get(p.getName()); + Util.updateSign(plugin, arena); } } }, 30L); @@ -1027,7 +1147,7 @@ public void onChat(final AsyncPlayerChatEvent event) { for (Player receiver : event.getRecipients()) { if (pli.containsGlobalPlayer(receiver.getName())) { if (pli.global_players.get(receiver.getName()) == pli.global_players.get(p.getName())) { - receiver.sendMessage(msg); + receiver.sendMessage("§7" + msg); } } } @@ -1117,7 +1237,6 @@ private List getPlayersWithin(Player player, int distance) { return res; } - // TP Fix end public String getName() { return minigame; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java index bbff53fc..66aaddcc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java @@ -161,7 +161,7 @@ public Arena saveArena(JavaPlugin plugin, String arenaname) { pli.addArena(a); // experimental: - Class clazz = plugin.getClass(); + Class clazz = plugin.getClass(); try { Method method = clazz.getDeclaredMethod("loadArenas", JavaPlugin.class, pli.getArenasConfig().getClass()); if (method != null) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index e5484142..20a6341d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -24,7 +24,7 @@ public class Effects { public static int getClientProtocolVersion(Player p) { int ret = 0; try { - if (!MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_8_r1")) { + if (!MinigamesAPI.getAPI().version.startsWith("v1_8_") || !MinigamesAPI.getAPI().version.startsWith("v1_9_")) { Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); @@ -58,8 +58,8 @@ public static void playEffect(Arena a, Location l, String effectname) { if (Validator.isPlayerOnline(p_)) { Player p = Bukkit.getPlayer(p_); ParticleEffectNew eff = ParticleEffectNew.valueOf(effectname); - eff.setId(152); - eff.animateReflected(p, l, 1F, 3); + eff.setId(55); + eff.animateReflected(p, l, 1F, 2); } } } @@ -75,8 +75,8 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, int x, int y playerConnection.setAccessible(true); final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); - Constructor packetPlayOutNamedEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutNamedEntitySpawn").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityHuman")); - Constructor packetPlayOutBedConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutBed").getConstructor(); + Constructor packetPlayOutNamedEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutNamedEntitySpawn").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityHuman")); + Constructor packetPlayOutBedConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutBed").getConstructor(); final int id = -p.getEntityId() - 1000; @@ -169,7 +169,7 @@ public void playAura(Player p, int cr) { for (int z_ = -cr; z_ <= cr; z_++) { int t = (x_ * x_) + (z_ * z_); if (t >= cradius_s && t <= (cradius_s + 90)) { - p.playEffect(new Location(start.getWorld(), x - x_, y, z - z_), Effect.POTION_BREAK, 5); + p.playEffect(new Location(start.getWorld(), x - x_, y, z - z_), Effect.SMOKE/* todo not present in 1.9: PORTAL */, 5); } } } @@ -196,7 +196,7 @@ public static void playTitle(Player player, String title, int enumindex) { final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); final Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".ChatSerializer").getMethod("a", String.class); - Constructor packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutTitle").getConstructor(); + Constructor packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutTitle").getConstructor(); final Object packet = packetPlayOutTitleConstr.newInstance(); setValue(packet, "a", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EnumTitleAction").getEnumConstants()[enumindex]); @@ -228,26 +228,29 @@ public static void playTitle(Player player, String title, int enumindex) { */ public static ArrayList playHologram(final Player p, final Location l, String text, boolean moveDown, boolean removeAfterCooldown) { ArrayList ret = new ArrayList(); - if (MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_8_r1")) { + if (MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_8_R1") + || MinigamesAPI.getAPI().version.startsWith("v1_8_") + || MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_9_R2") + || MinigamesAPI.getAPI().version.startsWith("v1_9_")) { try { final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); - Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".CraftWorld"); - Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".World"); - Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Entity"); + Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".CraftWorld"); + Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".World"); + Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Entity"); Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); - final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityLiving")); - final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); + Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); + final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityLiving")); + Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); + final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); // EntityArmorStand - Constructor entityArmorStandConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityArmorStand").getConstructor(w); + Constructor entityArmorStandConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityArmorStand").getConstructor(w); final Object entityArmorStand = entityArmorStandConstr.newInstance(worldServer); final Method setLoc2 = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); setLoc2.invoke(entityArmorStand, l.getX(), l.getY() - 1D, l.getZ(), 0F, 0F); @@ -325,19 +328,19 @@ public void run() { playerConnection.setAccessible(true); final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); - Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".CraftWorld"); - Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".World"); - Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Entity"); + Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".CraftWorld"); + Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".World"); + Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Entity"); Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); - final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityLiving")); - final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); + final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); + final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityLiving")); + final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); + final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); // WitherSkull - Constructor witherSkullConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityWitherSkull").getConstructor(w); + Constructor witherSkullConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityWitherSkull").getConstructor(w); final Object witherSkull = witherSkullConstr.newInstance(worldServer); final Method setLoc = witherSkull.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); setLoc.invoke(witherSkull, l.getX(), l.getY() + 33D, l.getZ(), 0F, 0F); @@ -345,7 +348,7 @@ public void run() { final int witherSkullId = (Integer) (getWitherSkullId.invoke(witherSkull)); // EntityHorse - Constructor entityHorseConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityHorse").getConstructor(w); + Constructor entityHorseConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityHorse").getConstructor(w); final Object entityHorse = entityHorseConstr.newInstance(worldServer); final Method setLoc2 = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); setLoc2.invoke(entityHorse, l.getX(), l.getY() + (playerIs1_8 ? -1D : 33D), l.getZ(), 0F, 0F); @@ -377,7 +380,7 @@ public void run() { Object datawatcherInstance = datawatcher.get(entityHorse); Field d = datawatcherInstance.getClass().getDeclaredField("d"); d.setAccessible(true); - Map dmap = (Map) d.get(datawatcherInstance); + Map dmap = (Map) d.get(datawatcherInstance); dmap.remove(10); // These are the Rotation ones dmap.remove(11); @@ -460,7 +463,7 @@ public void run() { public static void sendGameModeChange(Player p, int gamemode) { // NOT_SET(-1, ""), SURVIVAL(0, "survival"), CREATIVE(1, "creative"), ADVENTURE(2, "adventure"), SPECTATOR(3, "spectator"); - if (!MinigamesAPI.getAPI().version.startsWith("v1_8") && gamemode == 3) { + if (!MinigamesAPI.getAPI().version.startsWith("v1_8") && gamemode == 3 || !MinigamesAPI.getAPI().version.startsWith("v1_9") && gamemode == 3) { return; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index d9c1a9fb..af4ab3bc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -6,8 +6,6 @@ import java.util.ArrayList; import java.util.HashMap; -import net.milkbowl.vault.economy.Economy; - import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; @@ -38,6 +36,8 @@ import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; +import net.milkbowl.vault.economy.Economy; + public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { static MinigamesAPI instance = null; @@ -45,6 +45,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { public static boolean economy = true; public boolean crackshot = false; public static boolean debug = false; + int updatetime = 20*10; public HashMap global_party = new HashMap(); public HashMap> global_party_invites = new HashMap>(); @@ -63,7 +64,17 @@ public void onEnable() { instance = this; this.version = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); - this.below1710 = version.startsWith("v1_7_R3") || version.startsWith("v1_7_R2") || version.startsWith("v1_7_R1") || version.startsWith("v1_6") || version.startsWith("v1_5"); + this.below1710 = + version.startsWith("v1_9_") + || version.startsWith("v1_9_R1") + || version.startsWith("v1_9_R2") + || version.startsWith("v1_8_") + || version.startsWith("v1_8_R1") + || version.startsWith("v1_7_R3") + || version.startsWith("v1_7_R2") + || version.startsWith("v1_7_R1") + || version.startsWith("v1_6") + || version.startsWith("v1_5"); Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Loaded MinigamesAPI. We're on " + version + "."); this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); @@ -77,7 +88,8 @@ public void onEnable() { } getConfig().options().header("Want bugfree versions? Set this to true:"); - getConfig().addDefault("config.auto_updating", true); + getConfig().addDefault("config.auto_updating", false); + getConfig().addDefault("signs_updating_time", 20); getConfig().addDefault("config.party_command_enabled", true); getConfig().addDefault("config.debug", false); @@ -87,7 +99,7 @@ public void onEnable() { partymessages = new PartyMessagesConfig(this); statsglobal = new StatsGlobalConfig(this, false); - this.debug = getConfig().getBoolean("config.debug"); + MinigamesAPI.debug = getConfig().getBoolean("config.debug"); Bukkit.getScheduler().runTaskLater(this, new Runnable() { public void run() { @@ -126,7 +138,8 @@ public int getValue() { public void run() { // Reset all arena signs and check if any arena was interrupted int i = 0; - for (PluginInstance pli : MinigamesAPI.getAPI().pinstances.values()) { + MinigamesAPI.getAPI(); + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { for (Arena a : pli.getArenas()) { if (a != null) { if (a.isSuccessfullyInit()) { @@ -142,10 +155,23 @@ public void run() { System.out.println("Found " + i + " arenas."); } }, 50L); + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() { + @Override + public void run() { + MinigamesAPI.getAPI(); + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { + for (Arena a : pli.getArenas()) { + Util.updateSign(pli.getPlugin(), a); + + } + } + } + }, 0, 20 * (int) getConfig().getInt("signs_updating_time")); } + public void onDisable() { - for (PluginInstance pli : this.pinstances.values()) { + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { // Reset arenas for (Arena a : pli.getArenas()) { if (a != null) { @@ -188,6 +214,7 @@ public void onDisable() { * @param statsconfig * @return */ + @SuppressWarnings("deprecation") public static MinigamesAPI setupAPI(JavaPlugin plugin_, String minigame, Class arenaclass, ArenasConfig arenasconfig, MessagesConfig messagesconfig, ClassesConfig classesconfig, StatsConfig statsconfig, DefaultConfig defaultconfig, boolean customlistener) { pinstances.put(plugin_, new PluginInstance(plugin_, arenasconfig, messagesconfig, classesconfig, statsconfig, new ArrayList())); if (!customlistener) { @@ -288,7 +315,8 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String return true; } Player p = (Player) sender; - for (PluginInstance pli : MinigamesAPI.getAPI().pinstances.values()) { + MinigamesAPI.getAPI(); + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { if (pli.containsGlobalPlayer(p.getName())) { Arena a = pli.global_players.get(p.getName()); System.out.println(a.getName()); @@ -305,7 +333,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String if (!getConfig().getBoolean("config.party_command_enabled")) { return true; } - CommandHandler cmdhandler = this.getCommandHandler(); + CommandHandler cmdhandler = MinigamesAPI.getCommandHandler(); if (!(sender instanceof Player)) { sender.sendMessage("Please execute this command ingame."); return true; @@ -326,10 +354,10 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String } else if (action.equalsIgnoreCase("leave")) { cmdhandler.partyLeave(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); } else { - cmdhandler.sendPartyHelp("/" + cmd.getName(), sender); + CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); } } else { - cmdhandler.sendPartyHelp("/" + cmd.getName(), sender); + CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); } } else { if (args.length > 0) { @@ -351,7 +379,8 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String } sender.sendMessage("~ SpectatorManager: "); for (PluginInstance pli : pinstances.values()) { - if (pli.getSpectatorManager().isSpectating(Bukkit.getPlayer(p))) { + pli.getSpectatorManager(); + if (SpectatorManager.isSpectating(Bukkit.getPlayer(p))) { sender.sendMessage(" " + pli.getPlugin().getName()); } } @@ -380,9 +409,11 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String sender.sendMessage(ChatColor.GOLD + "Debug mode is now: " + debug); } else if (args[0].equalsIgnoreCase("list")) { int c = 0; - for (PluginInstance pli : MinigamesAPI.getAPI().pinstances.values()) { + MinigamesAPI.getAPI(); + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { c++; sender.sendMessage("~ " + pli.getPlugin().getName() + ": " + pli.getArenas().size() + " Arenas"); + return false; } if (c < 1) { sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); @@ -390,17 +421,30 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String } else if (args[0].equalsIgnoreCase("restartserver")) { if (sender.isOp()) { Util.restartServer(); + return false; } } else if (args[0].equalsIgnoreCase("title")) { if (args.length > 1) { if (sender instanceof Player) { Effects.playTitle((Player) sender, args[1], 0); + return false; } } } else if (args[0].equalsIgnoreCase("subtitle")) { if (args.length > 1) { if (sender instanceof Player) { Effects.playTitle((Player) sender, args[1], 1); + return false; + } + } + } else if (args[0].equalsIgnoreCase("signs")) { + if (sender instanceof Player) { + MinigamesAPI.getAPI(); + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { + for (Arena a : pli.getArenas()) { + Util.updateSign(pli.getPlugin(), a); + sender.sendMessage(ChatColor.GREEN + "All signs updated!"); + return false; } } } else if (args[0].equalsIgnoreCase("hologram")) { @@ -408,6 +452,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String Player p = (Player) sender; p.sendMessage("Playing hologram."); Effects.playHologram(p, p.getLocation(), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "TEST", true, true); + return false; } } else if (args[0].equalsIgnoreCase("statshologram")) { if (sender instanceof Player) { @@ -417,10 +462,10 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String p.sendMessage("Playing statistics hologram."); Effects.playHologram(p, p.getLocation().add(0D, 1D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Wins: " + pli.getStatsInstance().getWins(p.getName()), false, false); - Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Points: " + pli.getStatsInstance().getPoints(p.getName()), false, false); + Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Potions: " + pli.getStatsInstance().getPoints(p.getName()), false, false); Effects.playHologram(p, p.getLocation().add(0D, 0.5D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Kills: " + pli.getStatsInstance().getKills(p.getName()), false, false); Effects.playHologram(p, p.getLocation().add(0D, 0.25D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Deaths: " + pli.getStatsInstance().getDeaths(p.getName()), false, false); - + return false; } } } else if (args[0].equalsIgnoreCase("protocol")) { @@ -432,6 +477,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String if (p != null) { int version = Effects.getClientProtocolVersion(p); sender.sendMessage("Protocol version of " + p.getName() + ": " + version); + return false; } } } else if (args[0].equalsIgnoreCase("gamemodetest")) { @@ -439,14 +485,16 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String Player p = (Player) sender; if (p.isOp()) { Effects.sendGameModeChange(p, 3); + return false; } } } else if (args[0].equalsIgnoreCase("bungeetest")) { if (sender instanceof Player) { Player p = (Player) sender; if (p.isOp()) { - PluginInstance pli = this.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); + PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); BungeeSocket.sendSignUpdate(pli, pli.getArenas().get(0)); + return false; } } } @@ -455,7 +503,8 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String if (args.length < 1) { sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "MinigamesLib <3 " + this.getDescription().getVersion()); int c = 0; - for (PluginInstance pli : MinigamesAPI.getAPI().pinstances.values()) { + MinigamesAPI.getAPI(); + for (PluginInstance pli : MinigamesAPI.pinstances.values()) { c++; sender.sendMessage("~ " + ChatColor.GRAY + pli.getPlugin().getName() + ": " + ChatColor.WHITE + pli.getArenas().size() + " Arenas"); } @@ -470,6 +519,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String sender.sendMessage("/mapi subtitle "); sender.sendMessage("/mapi restartserver"); sender.sendMessage("/mapi hologram"); + sender.sendMessage("/mapi signs - Update all signs"); sender.sendMessage("/mapi protocol "); sender.sendMessage("/mapi "); sender.sendMessage("/mapi setstatshologram"); @@ -498,7 +548,9 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String } } return true; - } + } + return false; + } @Override public void onPluginMessageReceived(String channel, Player player, byte[] message) { @@ -521,7 +573,7 @@ public void onPluginMessageReceived(String channel, Player player, byte[] messag final String playername = playerData.split(":")[2]; System.out.println(plugin_ + " -> " + arena); JavaPlugin plugin = null; - for (JavaPlugin pl : this.pinstances.keySet()) { + for (JavaPlugin pl : MinigamesAPI.pinstances.keySet()) { if (pl.getName().contains(plugin_)) { plugin = pl; break; @@ -557,7 +609,7 @@ public void run() { final String plugin_ = requestData.split(":")[0]; final String arena = requestData.split(":")[1]; System.out.println(plugin_ + " -> " + arena); - for (JavaPlugin pl : this.pinstances.keySet()) { + for (JavaPlugin pl : MinigamesAPI.pinstances.keySet()) { if (pl.getName().contains(plugin_)) { Arena a = pinstances.get(pl).getArenaByName(arena); if (a != null) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index 9578517c..a267d8e4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -226,7 +226,8 @@ public void giveWinReward(String p_, Arena a, ArrayList players, int glo Util.sendMessage(plugin, p, pli.getMessagesConfig().you_won); Util.sendMessage(plugin, p, received_rewards_msg); - if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_8")) { + if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_8") + || plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_9")) { Effects.playTitle(p, pli.getMessagesConfig().you_won, 0); } @@ -248,7 +249,8 @@ public void run() { } } else { Util.sendMessage(plugin, p, pli.getMessagesConfig().you_lost); - if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_8")) { + if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_8") + || plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_9")) { Effects.playTitle(p, pli.getMessagesConfig().you_lost, 0); } MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().lose(p_); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 994fe086..8fdce271 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -17,6 +17,7 @@ import org.bukkit.Material; import org.bukkit.SkullType; import org.bukkit.block.Block; +import org.bukkit.block.BrewingStand; import org.bukkit.block.Chest; import org.bukkit.block.Dispenser; import org.bukkit.block.DoubleChest; @@ -131,7 +132,7 @@ public void run() { } } } - }, 30L); + }, 25L); ArenaLogger.debug("Reset time: " + (System.currentTimeMillis() - time) + "ms"); } @@ -181,6 +182,10 @@ public void resetSmartResetBlock(SmartArenaBlock ablock) { ((Dropper) b_.getState()).getInventory().clear(); ((Dropper) b_.getState()).update(); } + if (b_.getType() == Material.BREWING_STAND) { + ((BrewingStand) b_.getState()).getInventory().clear(); + ((BrewingStand) b_.getState()).update(); + } if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) { b_.setType(ablock.getMaterial()); b_.setData(ablock.getData()); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java index 369c6f6d..d99139fb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java @@ -41,9 +41,9 @@ public void setSpectate(Player p, boolean spectate) { p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 9999999, 5), true); Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").addPlayer(p); } else { - p.removePotionEffect(PotionEffectType.INVISIBILITY); if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p)) { Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").removePlayer(p); + p.removePotionEffect(PotionEffectType.INVISIBILITY); } } } catch (Exception e) { @@ -51,7 +51,7 @@ public void setSpectate(Player p, boolean spectate) { } @Deprecated - public boolean isSpectating(Player p) { + public static boolean isSpectating(Player p) { return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); } @@ -60,6 +60,7 @@ private void clear() { ArrayList offp_set = new ArrayList(t.getPlayers()); for (OfflinePlayer offp : offp_set) { t.removePlayer(offp); + } } @@ -113,7 +114,7 @@ public void hideSpectator(Player spec, ArrayList players) { for (String p_ : players) { if (Validator.isPlayerOnline(p_)) { Player p = Bukkit.getPlayer(p_); - p.hidePlayer(spec); + spec.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 20*600, 1)); if (pspecs.containsKey(p_)) { ArrayList t = pspecs.get(p_); t.add(spec.getName()); @@ -131,10 +132,10 @@ public void showSpectator(Player spec) { for (String p_ : splayers.get(spec.getName())) { if (Validator.isPlayerOnline(p_)) { Player p = Bukkit.getPlayer(p_); - p.showPlayer(spec); if (pspecs.containsKey(p_)) { ArrayList t = pspecs.get(p_); t.remove(spec.getName()); + spec.removePotionEffect(PotionEffectType.INVISIBILITY); pspecs.put(p_, t); } } @@ -148,10 +149,10 @@ public void showSpectators(Player p) { for (String p_ : pspecs.get(p.getName())) { if (Validator.isPlayerOnline(p_)) { Player spec = Bukkit.getPlayer(p_); - p.showPlayer(spec); if (splayers.containsKey(p_)) { ArrayList t = splayers.get(p_); t.remove(spec.getName()); + spec.removePotionEffect(PotionEffectType.INVISIBILITY); splayers.put(p_, t); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java index b39c37bc..cf024f6f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java @@ -353,5 +353,4 @@ public void updateSkulls() { } } } - -} +} \ No newline at end of file diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java index c7a998da..1591f9e9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java @@ -41,9 +41,9 @@ public void onOptionClick(IconMenu.OptionClickEvent event) { int c = 0; for (AAchievement aa : alist) { - ItemStack icon = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 7); + ItemStack icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 14); if (aa.isDone()) { - icon = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 5); + icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 5); } iconm.setOption(c, icon, ChatColor.translateAlternateColorCodes('&', pli.getAchievementsConfig().getConfig().getString("config.achievements." + aa.getAchievementNameRaw() + ".name")), "Done: " + aa.isDone()); c++; @@ -96,7 +96,7 @@ public void setAchievementDone(String playername, String achievement, boolean sq } public void addDefaultAchievement(String internalname, String name, int default_money_reward) { - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".enabled", true); + pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".enabled", false); pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".name", name); pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.economy_reward", true); pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.econ_reward_amount", default_money_reward); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java index 1b48a417..d3cc3184 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java @@ -1,9 +1,6 @@ package com.comze_instancelabs.minigamesapi.bungee; -import java.io.BufferedReader; -import java.io.InputStreamReader; import java.io.PrintWriter; -import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 6fc11a66..5b5c52e2 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -75,6 +75,8 @@ public boolean handleArgs(JavaPlugin plugin, String uber_permission, String cmd, return this.startArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } else if (action.equalsIgnoreCase("stop")) { return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } else if (action.equalsIgnoreCase("sings")) { + return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } else if (action.equalsIgnoreCase("stopall")) { return this.stopAllArenas(pli, sender, args, uber_permission, cmd, action, plugin, p); } else if (action.equalsIgnoreCase("removearena")) { @@ -101,7 +103,7 @@ public boolean handleArgs(JavaPlugin plugin, String uber_permission, String cmd, return this.spectate(pli, sender, args, uber_permission, cmd, action, plugin, p); } else if (action.equalsIgnoreCase("shop")) { return this.openShop(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("leaderboards") || action.equalsIgnoreCase("lb")) { + } else if (action.equalsIgnoreCase("leaderboards") || action.equalsIgnoreCase("lb") || action.equalsIgnoreCase("top")) { return this.getLeaderboards(pli, sender, args, uber_permission, cmd, action, plugin, p); } else if (action.equalsIgnoreCase("stats")) { return this.getStats(pli, sender, args, uber_permission, cmd, action, plugin, p); @@ -167,31 +169,35 @@ public boolean handleArgs(JavaPlugin plugin, String uber_permission, String cmd, public static LinkedHashMap cmddesc; static { cmddesc = new LinkedHashMap(); - cmddesc.put("", ""); + cmddesc.put("", null); cmddesc.put("setspawn ", "Sets the spawn point."); cmddesc.put("setlobby ", "Sets the lobby point."); cmddesc.put("setmainlobby", "Sets the main lobby point."); cmddesc.put("setbounds ", "Sets the low or high boundary point for later arena regeneration."); cmddesc.put("savearena ", "Saves the arena."); - cmddesc.put(" ", ""); + cmddesc.put("", null); cmddesc.put("setmaxplayers ", "Sets the max players allowed to join to given count."); cmddesc.put("setminplayers ", "Sets the min players needed to start to given count."); cmddesc.put("setarenavip ", "Sets whether arena needs permission to join."); cmddesc.put("removearena ", "Deletes an arena from config."); cmddesc.put("removespawn ", "Deletes a spawn from config."); cmddesc.put("setenabled", "Enables/Disables the arena."); + cmddesc.put("", null); cmddesc.put("join ", "Joins the arena."); cmddesc.put("leave", "Leaves the arena."); + cmddesc.put("", ""); cmddesc.put("start ", "Forces the arena to start."); cmddesc.put("stop ", "Forces the arena to stop."); cmddesc.put("list", "Lists all arenas."); cmddesc.put("reload", "Reloads the config."); cmddesc.put("reset ", "Forces the arena to reset."); + cmddesc.put("", null); cmddesc.put("setlobbybounds ", "Optional: Set lobby boundaries."); cmddesc.put("setspecbounds ", "Optional: Set extra spectator boundaries."); cmddesc.put("setauthor ", "Will always display the author of the map at join."); cmddesc.put("setdescription ", "Will always display a description of the map at join."); cmddesc.put("setdisplayname ", "Allows changing displayname of an arena (whitespaces and colors)."); + cmddesc.put("", null); } public static void sendHelp(String cmd, CommandSender sender) { @@ -202,7 +208,7 @@ public static void sendHelp(String cmd, CommandSender sender) { continue; } String v = cmddesc.get(k); - sender.sendMessage(ChatColor.DARK_AQUA + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); + sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); } } @@ -226,7 +232,7 @@ public static void sendPartyHelp(String cmd, CommandSender sender) { continue; } String v = cmdpartydesc.get(k); - sender.sendMessage(ChatColor.DARK_AQUA + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); + sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); } } @@ -890,7 +896,7 @@ public boolean getLeaderboards(PluginInstance pli, CommandSender sender, String[ private void sendLeaderboards(PluginInstance pli, CommandSender sender, int count, boolean wins) { int c = 0; if (wins) { - sender.sendMessage(ChatColor.DARK_GREEN + "--- Leaderboards: Wins ---"); + sender.sendMessage(ChatColor.DARK_GREEN + "--- TOP WINS ---"); TreeMap sorted_wins = pli.getStatsInstance().getTop(count, true); for (Map.Entry entry : sorted_wins.entrySet()) { c++; @@ -900,7 +906,7 @@ private void sendLeaderboards(PluginInstance pli, CommandSender sender, int coun sender.sendMessage(ChatColor.GREEN + "" + Integer.toString((int) entry.getValue().doubleValue()) + ChatColor.DARK_GREEN + " - " + ChatColor.GREEN + "" + entry.getKey()); } } else { - sender.sendMessage(ChatColor.DARK_GREEN + "-- Leaderboards: Points --"); + sender.sendMessage(ChatColor.DARK_GREEN + "-- TOP POINTS --"); TreeMap sorted_wins = pli.getStatsInstance().getTop(count, false); for (Map.Entry entry : sorted_wins.entrySet()) { c++; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index 840cb9cb..afce9d61 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -110,7 +110,7 @@ public static void init(JavaPlugin plugin, boolean custom) { config.addDefault("config.extra_lobby_item.item0.enabled", false); config.addDefault("config.extra_lobby_item.item0.item", 9); - config.addDefault("config.extra_lobby_item.item0.name", "Custom Item"); + config.addDefault("config.extra_lobby_item.item0.name", "Custom Name".replace("&", "§")); config.addDefault("config.extra_lobby_item.item0.command", "say This is a custom extra lobby item."); config.addDefault("mysql.enabled", false); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java index 73e924a9..e323bb62 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java @@ -21,7 +21,7 @@ public StatsConfig(JavaPlugin plugin, boolean custom){ this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.wins", 1); this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.loses", 1); this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.points", 10); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "InstanceLabs"); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "TheMrQuake"); } this.getConfig().options().copyDefaults(true); this.saveConfig(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java index dc3a03c0..5e6156ae 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java @@ -21,7 +21,7 @@ public StatsGlobalConfig(JavaPlugin plugin, boolean custom){ this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.wins", 1); this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.loses", 1); this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.points", 10); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "InstanceLabs"); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "TheMrQuake"); } this.getConfig().options().copyDefaults(true); this.saveConfig(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java index 5adfc265..1dfa40a0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java @@ -1,7 +1,6 @@ package com.comze_instancelabs.minigamesapi.statsholograms; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import org.bukkit.ChatColor; @@ -11,7 +10,6 @@ import com.comze_instancelabs.minigamesapi.Effects; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; -import com.comze_instancelabs.minigamesapi.util.Util; public class Hologram { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java index 88f07086..e70de69b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java @@ -92,7 +92,7 @@ public void destroyHologram(final Player p, Hologram h) { playerConnection.setAccessible(true); final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + version + ".Packet")); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance((Object) convertIntegers(h.getIds())); sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java index c930b544..e5925123 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java @@ -1,5 +1,9 @@ package com.comze_instancelabs.minigamesapi.util; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Map; + import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -11,10 +15,6 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.Potion; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Map; - public class ArenaBlock implements Serializable { private static final long serialVersionUID = -1894759842709524780L; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java index 16b50b4f..9969b51d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java @@ -87,7 +87,9 @@ public void run() { score = pli.getStatsInstance().getWins(playername); } else if (score_identifier.equalsIgnoreCase("")) { score = (int) MinigamesAPI.econ.getBalance(playername); - } + } else if (score_identifier.equalsIgnoreCase("")) { + score = pli.getStatsInstance().getKills(playername); + } if (line_.length() < 15) { // ascore.get(arena.getInternalName()).resetScores(Bukkit.getOfflinePlayer(ChatColor.GREEN + line_)); Util.getScore(aobjective.get(playername), ChatColor.GREEN + line_).setScore(score); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java new file mode 100644 index 00000000..dbd3b605 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java @@ -0,0 +1,41 @@ +package com.comze_instancelabs.minigamesapi.util; + +import java.util.HashMap; + +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class InventoryManager { + + private static HashMap armourContents = new HashMap(); + private static HashMap inventoryContents = new HashMap(); + private static HashMap locations = new HashMap(); + private static HashMap xplevel = new HashMap(); + private static HashMap gamemode = new HashMap(); + + public static void saveInventory(Player player){ + armourContents.put(player.getName(), player.getInventory().getArmorContents()); + inventoryContents.put(player.getName(), player.getInventory().getContents()); + locations.put(player.getName(), player.getLocation()); + xplevel.put(player.getName(), player.getLevel()); + gamemode.put(player.getName(), player.getGameMode()); + player.getInventory().clear(); + } + + public static void restoreInventory(Player player){ + player.getInventory().clear(); + player.teleport(locations.get(player.getName())); + + player.getInventory().setContents(inventoryContents.get(player.getName())); + player.getInventory().setArmorContents(armourContents.get(player.getName())); + player.setLevel(xplevel.get(player.getName())); + player.setGameMode(gamemode.get(player.getName())); + + xplevel.remove(player.getName()); + locations.remove(player.getName()); + armourContents.remove(player.getName()); + inventoryContents.remove(player.getName()); + } +} \ No newline at end of file diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java new file mode 100644 index 00000000..553fc80a --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java @@ -0,0 +1,210 @@ +package com.comze_instancelabs.minigamesapi.util; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.SkullType; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.BlockState; +import org.bukkit.block.Sign; +import org.bukkit.block.Skull; +import org.bukkit.configuration.file.FileConfiguration; + +public class Leaderboard { + + protected Object convertUUID(String s) { + if (s.matches("[0-9a-f]{8}-[0-9a-f]{4}-4[0-9]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}")) { + return UUID.fromString(s); + } else { + return s; + } + } + + protected static Map sortByComparator(Map unsortMap, final boolean order) { + List> list = new LinkedList>(unsortMap.entrySet()); + + Collections.sort(list, new Comparator>() { + public int compare(Entry o1, Entry o2) { + if (order) { + return o1.getValue().compareTo(o2.getValue()); + } else { + return o2.getValue().compareTo(o1.getValue()); + } + } + }); + + Map sortedMap = new LinkedHashMap(); + for (Entry entry : list) { + for (int i = 1; i < 4; i++) { + if (!sortedMap.containsKey(i)) { + sortedMap.put(i, entry.getKey()); + break; + } + } + } + + return sortedMap; + } + + + @SuppressWarnings("deprecation") + public Leaderboard(Location firstPlace, Location secondPlace, Location thirdPlace, Material firstBlockType, Material secondBlockType, Material thirdBlockType, BlockFace direction, FileConfiguration configurationFile, String configurationFormat) { + String[] a = configurationFormat.split("\\."); + + int playerConfigLocation = -1; + + for (int i = 0; i < a.length; i++) { + if (a[i].equals("player")) { + playerConfigLocation = i; + } + } + + if (playerConfigLocation == -1) return; + + ArrayList b = new ArrayList(); + + for (String ba : a) { + if (!ba.equals("player")) { + b.add(ba); + } else { + break; + } + } + + ArrayList c = new ArrayList(); + + for (String ca : a) { + if (!ca.equals("integer")) { + c.add(ca); + } else { + break; + } + } + + HashMap playersEdit = new HashMap(); + HashMap playersKeep = new HashMap(); + + for (String player : configurationFile.getConfigurationSection(b.toString().replace("[", "").replace("]", "").replace(", ", ".")).getKeys(false)) { + playersEdit.put(player, configurationFile.getInt(c.toString().replace("[", "").replace("]", "").replace(", ", ".").replace("player", player))); + playersKeep.put(player, configurationFile.getInt(c.toString().replace("[", "").replace("]", "").replace(", ", ".").replace("player", player))); + } + + Map leaderboard = sortByComparator(playersEdit, false); + + firstPlace.getBlock().setType(firstBlockType); + secondPlace.getBlock().setType(secondBlockType); + thirdPlace.getBlock().setType(thirdBlockType); + + ArrayList signBlockState = new ArrayList(); + + Block firstSign = firstPlace.getBlock().getRelative(direction); + Block secondSign = secondPlace.getBlock().getRelative(direction); + Block thirdSign = thirdPlace.getBlock().getRelative(direction); + + switch (direction) { + case EAST: + firstSign.setTypeIdAndData(68, (byte) 0x5, true); + secondSign.setTypeIdAndData(68, (byte) 0x5, true); + thirdSign.setTypeIdAndData(68, (byte) 0x5, true); + break; + case NORTH: + firstSign.setTypeIdAndData(68, (byte) 0x2, true); + secondSign.setTypeIdAndData(68, (byte) 0x2, true); + thirdSign.setTypeIdAndData(68, (byte) 0x2, true); + break; + case SOUTH: + firstSign.setTypeIdAndData(68, (byte) 0x3, true); + secondSign.setTypeIdAndData(68, (byte) 0x3, true); + thirdSign.setTypeIdAndData(68, (byte) 0x3, true); + break; + case WEST: + firstSign.setTypeIdAndData(68, (byte) 0x4, true); + secondSign.setTypeIdAndData(68, (byte) 0x4, true); + thirdSign.setTypeIdAndData(68, (byte) 0x4, true); + break; + default: + break; + + } + + signBlockState.add(firstSign.getState()); + signBlockState.add(secondSign.getState()); + signBlockState.add(thirdSign.getState()); + + for (BlockState bs : signBlockState) { + if (bs instanceof Sign) { + Sign s = (Sign) bs; + + if (leaderboard.containsKey(signBlockState.indexOf(bs) + 1)) { + if (convertUUID(leaderboard.get(signBlockState.indexOf(bs) + 1)) instanceof UUID) { + s.setLine(1, Bukkit.getPlayer((UUID) convertUUID(leaderboard.get(signBlockState.indexOf(bs) + 1))).getName()); + } else { + s.setLine(1, leaderboard.get(signBlockState.indexOf(bs) + 1)); + } + + switch (signBlockState.indexOf(bs) + 1) { + case 1: + s.setLine(0, ChatColor.AQUA + "" + ChatColor.BOLD + "1st"); + break; + case 2: + s.setLine(0, ChatColor.YELLOW + "" + ChatColor.BOLD + "2st"); + break; + case 3: + s.setLine(0, ChatColor.DARK_RED + "" + ChatColor.BOLD + "3st"); + break; + } + } + s.setLine(2, playersKeep.get(leaderboard.get(signBlockState.indexOf(bs) + 1)) + " Points"); + bs.getBlock().getChunk().load(); + s.update(true); + } + } + + Location firstSkull = firstPlace.getBlock().getLocation().add(0, 1, 0); + Location secondSkull = secondPlace.getBlock().getLocation().add(0, 1, 0); + Location thirdSkull = thirdPlace.getBlock().getLocation().add(0, 1, 0); + + firstSkull.getBlock().setType(Material.SKULL); + secondSkull.getBlock().setType(Material.SKULL); + thirdSkull.getBlock().setType(Material.SKULL); + + ArrayList skullBlockState = new ArrayList(); + + skullBlockState.add(firstSkull.getBlock().getState()); + skullBlockState.add(secondSkull.getBlock().getState()); + skullBlockState.add(thirdSkull.getBlock().getState()); + + for (BlockState bs : skullBlockState) { + if (bs instanceof Skull) { + Skull s = (Skull) bs; + s.setSkullType(SkullType.PLAYER); + s.setRawData((byte) 1); + s.setRotation(direction); + + if (leaderboard.containsKey(skullBlockState.indexOf(bs) + 1)) { + if (convertUUID(leaderboard.get(skullBlockState.indexOf(bs) + 1)) instanceof UUID) { + s.setOwner(Bukkit.getPlayer((UUID) convertUUID(leaderboard.get(skullBlockState.indexOf(bs) + 1))).getName()); + } else { + s.setOwner(leaderboard.get(skullBlockState.indexOf(bs) + 1)); + } + } + + bs.getBlock().getChunk().load(); + s.update(true); + } + } + } +} \ No newline at end of file diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java index fa7c4a73..65d187cf 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java @@ -333,7 +333,7 @@ private void postPlugin(final boolean isPing) throws IOException { boolean onlineMode = Bukkit.getServer().getOnlineMode(); // TRUE if online mode is enabled String pluginVersion = description.getVersion(); String serverVersion = Bukkit.getVersion(); - int playersOnline = Bukkit.getServer().getOnlinePlayers().length; + int playersOnline = Bukkit.getServer().getOnlinePlayers().size(); // END server software specific section -- all code below does not use any code outside of this class / Java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java index 07de1cb6..dc1b700e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java @@ -184,7 +184,7 @@ public void animateReflected(Player p, Location location, float speed, int count Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); String packetname = "PacketPlayOutWorldParticles"; - if (MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_6_R2")) { + if (MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_6_R2") || MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_9_R1") || MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_9_R2")) { packetname = "Packet63WorldParticles"; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 5a107d67..8da02ec6 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -19,12 +19,13 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Color; -import org.bukkit.Effect; import org.bukkit.FireworkEffect; +import org.bukkit.GameMode; import org.bukkit.FireworkEffect.Type; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.OfflinePlayer; +import org.bukkit.Particle; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockState; @@ -64,8 +65,15 @@ import com.comze_instancelabs.minigamesapi.config.ArenasConfig; import com.comze_instancelabs.minigamesapi.config.MessagesConfig; + public class Util { + public static HashMap armourContents = new HashMap(); + public static HashMap inventoryContents = new HashMap(); + public static HashMap locations = new HashMap(); + public static HashMap xplevel = new HashMap(); + public static HashMap gamemode = new HashMap(); + public static void clearInv(Player p) { if (p != null) { ArenaLogger.debug("Clearing inventory of " + p.getName()); @@ -79,6 +87,8 @@ public static void clearInv(Player p) { } } + + @SuppressWarnings("deprecation") public static void teleportPlayerFixed(final Player p, final Location l) { ArenaLogger.debug("Teleporting " + p.getName()); if (p.isInsideVehicle()) { @@ -98,7 +108,7 @@ public static void teleportPlayerFixed(final Player p, final Location l) { System.out.println("Couldn't teleport Player " + p.getName() + ", the location was not valid. Probably forgot to set a spawn/lobby?"); } p.setFireTicks(0); - p.setHealth(20D); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 30)); } public static void teleportAllPlayers(ArrayList players, final Location l) { @@ -231,8 +241,8 @@ public static void saveArenaToFile(JavaPlugin plugin, String arena) { int length = end.getBlockZ() - start.getBlockZ(); int height = end.getBlockY() - start.getBlockY(); - MinigamesAPI.getAPI().getLogger().info("BOUNDS: " + Integer.toString(width) + " " + Integer.toString(height) + " " + Integer.toString(length)); - MinigamesAPI.getAPI().getLogger().info("BLOCKS TO SAVE: " + Integer.toString(width * height * length)); + MinigamesAPI.getAPI().getLogger().info("Bounds: " + Integer.toString(width) + " " + Integer.toString(height) + " " + Integer.toString(length)); + MinigamesAPI.getAPI().getLogger().info("Blocks to save: " + Integer.toString(width * height * length)); FileOutputStream fos; ObjectOutputStream oos = null; @@ -421,15 +431,15 @@ public static void updateSign(JavaPlugin plugin, Arena arena) { PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); String state = arena.getArenaState().toString().toLowerCase(); if (pli.cached_sign_states.containsKey(state)) { - s.setLine(0, pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(1, pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(2, pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(3, pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(0, pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(1, pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(2, pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(3, pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); } else { - s.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); } s.getBlock().getChunk().load(); s.update(); @@ -459,10 +469,10 @@ public static void updateSign(JavaPlugin plugin, Arena arena, SignChangeEvent ev int maxcount = arena.getMaxPlayers(); PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); String arenastate = arena.getArenaState().toString().toLowerCase(); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); if (pli.color_background_wool_of_signs) { org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) event.getBlock().getState().getData(); Block attachedBlock = event.getBlock().getRelative(s_.getAttachedFace()); @@ -479,10 +489,10 @@ public static void updateSign(JavaPlugin plugin, Arena arena, SignChangeEvent ev // used for random and leave sign public static void updateSign(JavaPlugin plugin, SignChangeEvent event, String arenastate) { PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); } public static ArrayList loadArenas(JavaPlugin plugin, ArenasConfig cf) { @@ -801,7 +811,7 @@ public static void spawnFirework(Player p) { public static void spawnFirework(Location l) { Firework fw = (Firework) l.getWorld().spawnEntity(l, EntityType.FIREWORK); FireworkMeta fwm = fw.getFireworkMeta(); - FireworkEffect effect = FireworkEffect.builder().flicker(r.nextBoolean()).withColor(Color.AQUA).withFade(Color.ORANGE).with(Type.STAR).trail(r.nextBoolean()).build(); + FireworkEffect effect = FireworkEffect.builder().flicker(r.nextBoolean()).withColor(Color.AQUA).withFade(Color.ORANGE).with(Type.BURST).trail(r.nextBoolean()).build(); fwm.addEffect(effect); int rp = r.nextInt(2) + 1; fwm.setPower(rp); @@ -944,14 +954,15 @@ public static void sendStatsMessage(PluginInstance pli, Player p) { } } } + public static void pushBack(Location l, Player p) { Vector direction = l.toVector().subtract(p.getLocation().toVector()).normalize(); p.setVelocity(direction); if (p.isInsideVehicle()) { - p.getVehicle().setVelocity(direction.multiply(2D)); + p.getVehicle().setVelocity(direction.multiply(2.2D)); } - p.playEffect(p.getLocation(), Effect.POTION_BREAK, 5); + p.spawnParticle(Particle.PORTAL, p.getLocation(), 10); } public static Score getScore(Objective obj, String text) { @@ -993,5 +1004,28 @@ public static void resetScores(Scoreboard obj, String text) { } } } - -} + + public static void saveInventory(Player player){ + armourContents.put(player.getName(), player.getInventory().getArmorContents()); + inventoryContents.put(player.getName(), player.getInventory().getContents()); + locations.put(player.getName(), player.getLocation()); + xplevel.put(player.getName(), player.getLevel()); + gamemode.put(player.getName(), player.getGameMode()); + player.getInventory().clear(); + } + + public static void restoreInventory(Player player){ + player.getInventory().clear(); + player.teleport(locations.get(player.getName())); + + player.getInventory().setContents(inventoryContents.get(player.getName())); + player.getInventory().setArmorContents(armourContents.get(player.getName())); + player.setLevel(xplevel.get(player.getName())); + player.setGameMode(gamemode.get(player.getName())); + + xplevel.remove(player.getName()); + locations.remove(player.getName()); + armourContents.remove(player.getName()); + inventoryContents.remove(player.getName()); + } +} \ No newline at end of file diff --git a/API/src/main/resources/config.yml b/API/src/main/resources/config.yml index aa8cbd60..e30466d6 100644 --- a/API/src/main/resources/config.yml +++ b/API/src/main/resources/config.yml @@ -1,4 +1,6 @@ -# MinigamesAPI Config # -# If you want bugfree versions, turn this to true: -config: - auto_updating: true +# MinigamesAPI Config # +# If you want bugfree versions, turn this to true: +# NO USE TRUE MODE! +config: + auto_updating: false +signs_updating_time: 20 diff --git a/API/src/main/resources/plugin.yml b/API/src/main/resources/plugin.yml index 05a2b086..25d0aef9 100644 --- a/API/src/main/resources/plugin.yml +++ b/API/src/main/resources/plugin.yml @@ -1,17 +1,17 @@ -name: MinigamesLib -main: com.comze_instancelabs.minigamesapi.MinigamesAPI -version: 1.13.1 -author: InstanceLabs -softdepend: [Vault] -commands: - mapi: - description: Main command - usage: /mapi [action] - aliases: [mgapi, mglib] - party: - description: Main Party command - usage: /party [action] - start: - description: Start shortcut - usage: /start [action] - aliases: [startmg, startminigame] +name: MinigamesLib +main: com.comze_instancelabs.minigamesapi.MinigamesAPI +version: 1.14.8 +author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] +softdepend: [Vault] +commands: + mapi: + description: Main command + usage: /mapi [action] + aliases: [mgapi, mglib] + party: + description: Main Party command + usage: /party [action] + start: + description: Start shortcut + usage: /start [action] + aliases: [startmg, startminigame] diff --git a/pom.xml b/pom.xml index cb4380f1..8e6a7ed7 100644 --- a/pom.xml +++ b/pom.xml @@ -1,43 +1,29 @@ - - 4.0.0 - com.comze_instancelabs - MinigamesLib-parent - parent - pom - MinigamesLib - - UTF-8 - instancedev - - Rich Minigames API and base of all of my new minigames. - - - API - - - - - - bukkit-repo - http://repo.bukkit.org/content/groups/public - - - - - src - - - maven-compiler-plugin - 3.1 - - true - - 1.6 - 1.6 - - - - - + + 4.0.0 + com.github.MCE-Plugins + MinigamesLib-parent + 1.0 + pom + MinigamesLib-parent + + UTF-8 + 1.8 + 1.8 + 1.8 + 4.12 + + Rich Minigames API and base of all of my new minigames. + + + API + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots + + + \ No newline at end of file From e911811d117ca70e3857fb6b0be7cd101551c090 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 12 Jun 2016 18:49:28 +0200 Subject: [PATCH 002/266] fixed utf-8 encoding --- .../minigamesapi/ArenaListener.java | 2 +- .../minigamesapi/config/DefaultConfig.java | 2 +- .../minigamesapi/util/Util.java | 32 +++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 6cc22352..22c8212c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1147,7 +1147,7 @@ public void onChat(final AsyncPlayerChatEvent event) { for (Player receiver : event.getRecipients()) { if (pli.containsGlobalPlayer(receiver.getName())) { if (pli.global_players.get(receiver.getName()) == pli.global_players.get(p.getName())) { - receiver.sendMessage("§7" + msg); + receiver.sendMessage("§7" + msg); } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index afce9d61..755a8a92 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -110,7 +110,7 @@ public static void init(JavaPlugin plugin, boolean custom) { config.addDefault("config.extra_lobby_item.item0.enabled", false); config.addDefault("config.extra_lobby_item.item0.item", 9); - config.addDefault("config.extra_lobby_item.item0.name", "Custom Name".replace("&", "§")); + config.addDefault("config.extra_lobby_item.item0.name", "Custom Name".replace("&", "§")); config.addDefault("config.extra_lobby_item.item0.command", "say This is a custom extra lobby item."); config.addDefault("mysql.enabled", false); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 8da02ec6..1233ed46 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -431,15 +431,15 @@ public static void updateSign(JavaPlugin plugin, Arena arena) { PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); String state = arena.getArenaState().toString().toLowerCase(); if (pli.cached_sign_states.containsKey(state)) { - s.setLine(0, pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(1, pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(2, pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(3, pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(0, pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(1, pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(2, pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(3, pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); } else { - s.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); } s.getBlock().getChunk().load(); s.update(); @@ -469,10 +469,10 @@ public static void updateSign(JavaPlugin plugin, Arena arena, SignChangeEvent ev int maxcount = arena.getMaxPlayers(); PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); String arenastate = arena.getArenaState().toString().toLowerCase(); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("", Integer.toString(count)).replace("", Integer.toString(maxcount)).replace("", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); if (pli.color_background_wool_of_signs) { org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) event.getBlock().getState().getData(); Block attachedBlock = event.getBlock().getRelative(s_.getAttachedFace()); @@ -489,10 +489,10 @@ public static void updateSign(JavaPlugin plugin, Arena arena, SignChangeEvent ev // used for random and leave sign public static void updateSign(JavaPlugin plugin, SignChangeEvent event, String arenastate) { PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); } public static ArrayList loadArenas(JavaPlugin plugin, ArenasConfig cf) { From d197bef213fcc7fd83d205a580aa30d56cd5d267 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 12 Jun 2016 19:02:55 +0200 Subject: [PATCH 003/266] Updated docs --- API/pom.xml | 4 +- README.md | 119 +++++++++++++++++++++++++++------------------------- 2 files changed, 63 insertions(+), 60 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 34b64cc1..8f39827d 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.github.MCE-Plugins MinigamesLib - 1.14.9-SNPASHOT + 1.14.9-SNAPSHOT jar MinigamesLib-API Rich Minigames API @@ -29,7 +29,7 @@ org.bukkit bukkit - 1.9.4-R0.1-SNAPSHOT + 1.10-R0.1-SNAPSHOT provided diff --git a/README.md b/README.md index ca1e6b5d..ce0ddc43 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,61 @@ -MinigamesAPI [![Build Status](https://drone.io/github.com/instance01/MinigamesAPI/status.png?1)](https://drone.io/github.com/instance01/MinigamesAPI/latest) -============ - -Rich MinigamesAPI supporting different types of Minigames. - - -Development Files can be found at https://drone.io/github.com/instance01/MinigamesAPI/files, use the release in the mid. - - -Features --------- - - -- Arenasystem -- Customizable messages -- Different minigame types -- VIP Arenas -- Economy, command and item rewards -- Overall Customization/Attributes like player counts, countdowns, spawns, boundaries etc. -- Signs and corresponding Arena states -- Fast map regeneration mechanism -- Kits/Classes and Classes Gui -- Arcade system -- MySQL/SQLite support -- Guns API (unfinished and only in use in Warlock Tactical right now) -- Bungee support including signs -- Party (/party) -- Achievements -- Additional shops with Gui -- Included effects like blood or dead bodies lying around -- More stuff - - -Oh and of course a bunch of [premade Minigames and examples](https://github.com/MC-Minigames/). - -See the [wiki](https://github.com/instance01/MinigamesAPI/wiki) or the [JavaDocs](http://www.instancedev.com/bukkitdev/MinigamesAPI/javadocs/) for more information on API usage. - - -Maven ------ - -``` - - - MinigamesAPI-Repo - MinigamesAPI Repository - http://www.instancedev.com/bukkitdev/MinigamesAPI/maven/ - - - - com.comze_instancelabs - MinigamesLib - 1.11.0 - - - -``` - +MinigamesAPI [![Build Status](https://drone.io/github.com/instance01/MinigamesAPI/status.png?1)](https://drone.io/github.com/instance01/MinigamesAPI/latest) (Link will be updated soon) +============ + +Rich MinigamesAPI supporting different types of Minigames. + + +Release builds can be found at http://nexus.xworlds.eu/nexus/content/repositories/mce-releases/ +Development Files can be found at http://nexus.xworlds.eu/nexus/content/repositories/mce-snapshots/ + +Tested with 1.9.X, 1.10 + + +Features +-------- + + +- Arenasystem +- Customizable messages +- Different minigame types +- VIP Arenas +- Economy, command and item rewards +- Overall Customization/Attributes like player counts, countdowns, spawns, boundaries etc. +- Signs and corresponding Arena states +- Fast map regeneration mechanism +- Kits/Classes and Classes Gui +- Arcade system +- MySQL/SQLite support +- Guns API (unfinished and only in use in Warlock Tactical right now) +- Bungee support including signs +- Party (/party) +- Achievements +- Additional shops with Gui +- Included effects like blood or dead bodies lying around +- More stuff + + +Oh and of course a bunch of [premade Minigames and examples](https://github.com/MC-Minigames/) (to be updated soon). + +See the [wiki](https://github.com/instance01/MinigamesAPI/wiki) (to be updated soon) or the [JavaDocs](http://www.instancedev.com/bukkitdev/MinigamesAPI/javadocs/) (to be updated soon) for more information on API usage. + + +Maven +----- + +``` + + + MinigamesAPI-Repo + MinigamesAPI Repository + http://nexus.xworlds.eu/nexus/content/groups/mce/ + + + + com.github.MCE-Plugins + MinigamesLib + 1.14.9-SNAPSHOT + + + +``` + From 4d095d9c67ced0b807f71cdfb8ce3347673126c6 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Wed, 15 Jun 2016 08:26:52 +0200 Subject: [PATCH 004/266] moved parent forward to 1.14.9-SNAPSHOT --- API/pom.xml | 8 +---- .../minigamesapi/Arena.java | 12 +++---- pom.xml | 31 ++++++++++++++++++- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 8f39827d..71b21342 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -11,7 +11,7 @@ com.github.MCE-Plugins MinigamesLib-parent - 1.0 + 1.14.9-SNAPSHOT @@ -29,20 +29,14 @@ org.bukkit bukkit - 1.10-R0.1-SNAPSHOT - provided net.milkbowl.vault Vault - 1.3.01 - provided com.shampaggon.crackshot Crackshot - 0.97.13 - provided diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 96b88f4e..a4d0b2f1 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -274,8 +274,8 @@ public boolean containsPlayer(String playername) { /** * Please do not use this function to add players * - * @param playername - * @return + * @param playername name of the player + * @return true on success */ @Deprecated public boolean addPlayer(String playername) { @@ -285,8 +285,8 @@ public boolean addPlayer(String playername) { /** * Please do not use this function to remove players * - * @param playername - * @return + * @param playername name of the player + * @return true on success */ @Deprecated public boolean removePlayer(String playername) { @@ -522,8 +522,8 @@ public void run() { /** * Primarily used for ArcadeInstance to join a waiting lobby without countdown * - * @param playername - * @param countdown + * @param playername name of the player + * @param countdown seconds */ public void joinPlayerLobby(String playername, boolean countdown) { temp_countdown = countdown; diff --git a/pom.xml b/pom.xml index 8e6a7ed7..6e36dc12 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.github.MCE-Plugins MinigamesLib-parent - 1.0 + 1.14.9-SNAPSHOT pom MinigamesLib-parent @@ -25,5 +25,34 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots + + + + + org.bukkit + bukkit + 1.10-R0.1-SNAPSHOT + provided + + + com.github.MCE-Plugins + MinigamesLib + 1.14.9-SNAPSHOT + provided + + + net.milkbowl.vault + Vault + 1.3.01 + provided + + + com.shampaggon.crackshot + Crackshot + 0.97.13 + provided + + + \ No newline at end of file From eada3a13ea10a042c18aa2673d4d8079acaf4507 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sat, 18 Jun 2016 12:56:34 +0200 Subject: [PATCH 005/266] starting better versions support --- .../minigamesapi/MinecraftVersionsType.java | 95 +++++++++++++++++++ .../minigamesapi/MinigamesAPI.java | 57 +++++++++-- 2 files changed, 146 insertions(+), 6 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java new file mode 100644 index 00000000..9ea65fd7 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -0,0 +1,95 @@ +package com.comze_instancelabs.minigamesapi; + +/** + * Supported versions of minecraft. + * + * @author mepeisen + */ +public enum MinecraftVersionsType { + Unknown(false), V1_7(true), V1_7_R1(true), V1_7_R2(true), V1_7_R3(true), V1_7_R4(true), V1_8(true), V1_8_R1( + true), V1_8_R2(true), V1_9(true), V1_9_R1(true), V1_9_R2(true), V1_10(true), V1_10_R1(true); + + /** + * {@code true} if this version is still supported. + */ + private final boolean isSupported; + + /** + * Constructor to create a version. + * + * @param supported + * true for support. + */ + private MinecraftVersionsType(boolean supported) { + this.isSupported = supported; + } + + /** + * {@code true} if this version is still supported. return {@code true} if + * this version is still supported. + */ + public boolean isSupported() { + return this.isSupported; + } + + /** + * Checks if this version equals given version. + * + *

+ * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. + *

+ * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean equals(MinecraftVersionsType type) { + switch (this) { + case V1_10: + return type == V1_10 || type == V1_10_R1; + case V1_7: + return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; + case V1_8: + return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; + case V1_9: + return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; + default: + return type == this; + } + } + + /** + * Checks if this version is below given version. + * + *
    + *
  • V1_7 will be below V1_8*.
  • + *
  • V1_7_R3 will be below V1_7_R4.
  • + *
+ * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isBelow(MinecraftVersionsType type) { + if (equals(type)) return false; + return this.ordinal() < type.ordinal(); + } + + /** + * Checks if this version is after given version. + * + *
    + *
  • V1_8 will be after V1_7*.
  • + *
  • V1_7_R4 will be after V1_7_R3.
  • + *
+ * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAfter(MinecraftVersionsType type) { + if (equals(type)) return false; + return this.ordinal() > type.ordinal(); + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index af4ab3bc..1ef5c1c4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -39,6 +39,9 @@ import net.milkbowl.vault.economy.Economy; public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { + + /** the overall minecraft server versioon. */ + public static final MinecraftVersionsType SERVER_VERSION = getServerVersion(); static MinigamesAPI instance = null; public static Economy econ = null; @@ -65,12 +68,7 @@ public void onEnable() { this.version = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); this.below1710 = - version.startsWith("v1_9_") - || version.startsWith("v1_9_R1") - || version.startsWith("v1_9_R2") - || version.startsWith("v1_8_") - || version.startsWith("v1_8_R1") - || version.startsWith("v1_7_R3") + version.startsWith("v1_7_R3") || version.startsWith("v1_7_R2") || version.startsWith("v1_7_R1") || version.startsWith("v1_6") @@ -170,6 +168,53 @@ public void run() { } + /** + * Calculates the minecraft server version. + * + * @return Minecraft server version. + */ + private static MinecraftVersionsType getServerVersion() { + final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); + if (v.startsWith("v1_7_R1")) + { + return MinecraftVersionsType.V1_7_R1; + } + if (v.startsWith("v1_7_R2")) + { + return MinecraftVersionsType.V1_7_R2; + } + if (v.startsWith("v1_7_R3")) + { + return MinecraftVersionsType.V1_7_R3; + } + if (v.startsWith("v1_7_R4")) + { + return MinecraftVersionsType.V1_7_R4; + } + if (v.startsWith("v1_8_R1")) + { + return MinecraftVersionsType.V1_8_R1; + } + if (v.startsWith("v1_8_R2")) + { + return MinecraftVersionsType.V1_8_R2; + } + if (v.startsWith("v1_9_R1")) + { + return MinecraftVersionsType.V1_9_R1; + } + if (v.startsWith("v1_9_R2")) + { + return MinecraftVersionsType.V1_9_R2; + } + if (v.startsWith("v1_10_R1")) + { + return MinecraftVersionsType.V1_10_R1; + } + return MinecraftVersionsType.Unknown; + } + + public void onDisable() { for (PluginInstance pli : MinigamesAPI.pinstances.values()) { // Reset arenas From 064bbb60dce3e3d3503c464d88d721c7a8bb9963 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sat, 18 Jun 2016 14:38:43 +0200 Subject: [PATCH 006/266] moved foreign repositories to parent --- API/pom.xml | 11 ----------- pom.xml | 8 ++++++++ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 71b21342..2d7e33c4 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -14,17 +14,6 @@ 1.14.9-SNAPSHOT - - - private-crackshot-repo - http://www.instancedev.com/bukkitdev/MinigamesAPI/dependencies/Crackshot/maven/ - - - vault-repo - http://nexus.theyeticave.net/content/repositories/pub_releases - - - org.bukkit diff --git a/pom.xml b/pom.xml index 6e36dc12..85fdbd0f 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,14 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots + + private-crackshot-repo + http://www.instancedev.com/bukkitdev/MinigamesAPI/dependencies/Crackshot/maven/ + + + vault-repo + http://nexus.theyeticave.net/content/repositories/pub_releases + From 07fcc8939b0f8c23db8d7fe8015326537767d93e Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 19 Jun 2016 02:41:41 +0200 Subject: [PATCH 007/266] refactoring: version support --- .../minigamesapi/Effects.java | 93 +++++++++---------- .../minigamesapi/MinecraftVersionsType.java | 6 +- .../minigamesapi/MinigamesAPI.java | 14 +-- .../minigamesapi/Rewards.java | 8 +- .../statsholograms/Holograms.java | 3 +- .../minigamesapi/util/ParticleEffectNew.java | 10 +- 6 files changed, 65 insertions(+), 69 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 20a6341d..0db1380b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -21,12 +21,13 @@ public class Effects { + @Deprecated public static int getClientProtocolVersion(Player p) { int ret = 0; try { - if (!MinigamesAPI.getAPI().version.startsWith("v1_8_") || !MinigamesAPI.getAPI().version.startsWith("v1_9_")) { - Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + if (!!MinigamesAPI.SERVER_VERSION.isEqual(MinecraftVersionsType.V1_7)) { + Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); Object playerConInstance = playerConnection.get(getHandle.invoke(p)); Field networkManager = playerConInstance.getClass().getField("networkManager"); @@ -70,13 +71,13 @@ public static BukkitTask playFakeBed(Arena a, Player p) { public static BukkitTask playFakeBed(final Arena a, final Player p, int x, int y, int z) { try { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - Constructor packetPlayOutNamedEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutNamedEntitySpawn").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityHuman")); - Constructor packetPlayOutBedConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutBed").getConstructor(); + Constructor packetPlayOutNamedEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutNamedEntitySpawn").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityHuman")); + Constructor packetPlayOutBedConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutBed").getConstructor(); final int id = -p.getEntityId() - 1000; @@ -142,14 +143,14 @@ public static void playRespawn(final Player p, JavaPlugin plugin) { Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { public void run() { try { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); final Field minecraftServer = playerConnection.get(getHandle.invoke(p)).getClass().getDeclaredField("minecraftServer"); minecraftServer.setAccessible(true); Object nmsMcServer = minecraftServer.get(playerConnection.get(getHandle.invoke(p))); Object playerlist = nmsMcServer.getClass().getDeclaredMethod("getPlayerList").invoke(nmsMcServer); - Method moveToWorld = playerlist.getClass().getMethod("moveToWorld", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer"), int.class, boolean.class); + Method moveToWorld = playerlist.getClass().getMethod("moveToWorld", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer"), int.class, boolean.class); moveToWorld.invoke(playerlist, getHandle.invoke(p), 0, false); } catch (Exception e) { System.out.println("Failed additional respawn packet: " + e.getMessage()); @@ -190,16 +191,16 @@ public static void playTitle(Player player, String title, int enumindex) { enumindex = 0; } try { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); - final Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".ChatSerializer").getMethod("a", String.class); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + final Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".ChatSerializer").getMethod("a", String.class); - Constructor packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutTitle").getConstructor(); + Constructor packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutTitle").getConstructor(); final Object packet = packetPlayOutTitleConstr.newInstance(); - setValue(packet, "a", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EnumTitleAction").getEnumConstants()[enumindex]); + setValue(packet, "a", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EnumTitleAction").getEnumConstants()[enumindex]); setValue(packet, "b", a.invoke(null, "{text:\"" + title + "\"}")); sendPacket.invoke(playerConnection.get(getHandle.invoke(player)), packet); @@ -228,29 +229,27 @@ public static void playTitle(Player player, String title, int enumindex) { */ public static ArrayList playHologram(final Player p, final Location l, String text, boolean moveDown, boolean removeAfterCooldown) { ArrayList ret = new ArrayList(); - if (MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_8_R1") - || MinigamesAPI.getAPI().version.startsWith("v1_8_") - || MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_9_R2") - || MinigamesAPI.getAPI().version.startsWith("v1_9_")) { + if (MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { try { - final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".CraftWorld"); - Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".World"); - Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Entity"); + Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".CraftWorld"); + Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".World"); + Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); - final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityLiving")); - Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); + Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); + final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); + Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); + final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); // EntityArmorStand - Constructor entityArmorStandConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityArmorStand").getConstructor(w); + Constructor entityArmorStandConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityArmorStand").getConstructor(w); final Object entityArmorStand = entityArmorStandConstr.newInstance(worldServer); final Method setLoc2 = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); setLoc2.invoke(entityArmorStand, l.getX(), l.getY() - 1D, l.getZ(), 0F, 0F); @@ -323,24 +322,24 @@ public void run() { // If player is on 1.8, we'll have to use armor stands, otherwise just use the old 1.7 technique final boolean playerIs1_8 = getClientProtocolVersion(p) > 5; - final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".CraftWorld"); - Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".World"); - Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Entity"); + Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".CraftWorld"); + Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".World"); + Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); - final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityLiving")); - final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); + final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); + final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); + final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); + final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); // WitherSkull - Constructor witherSkullConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityWitherSkull").getConstructor(w); + Constructor witherSkullConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityWitherSkull").getConstructor(w); final Object witherSkull = witherSkullConstr.newInstance(worldServer); final Method setLoc = witherSkull.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); setLoc.invoke(witherSkull, l.getX(), l.getY() + 33D, l.getZ(), 0F, 0F); @@ -348,7 +347,7 @@ public void run() { final int witherSkullId = (Integer) (getWitherSkullId.invoke(witherSkull)); // EntityHorse - Constructor entityHorseConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityHorse").getConstructor(w); + Constructor entityHorseConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityHorse").getConstructor(w); final Object entityHorse = entityHorseConstr.newInstance(worldServer); final Method setLoc2 = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); setLoc2.invoke(entityHorse, l.getX(), l.getY() + (playerIs1_8 ? -1D : 33D), l.getZ(), 0F, 0F); @@ -463,7 +462,7 @@ public void run() { public static void sendGameModeChange(Player p, int gamemode) { // NOT_SET(-1, ""), SURVIVAL(0, "survival"), CREATIVE(1, "creative"), ADVENTURE(2, "adventure"), SPECTATOR(3, "spectator"); - if (!MinigamesAPI.getAPI().version.startsWith("v1_8") && gamemode == 3 || !MinigamesAPI.getAPI().version.startsWith("v1_9") && gamemode == 3) { + if (MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7) && gamemode == 3) { return; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 9ea65fd7..64c9a4d7 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -43,7 +43,7 @@ public boolean isSupported() { * version to compare to. * @return {@code true} if this version matches given version. */ - public boolean equals(MinecraftVersionsType type) { + public boolean isEqual(MinecraftVersionsType type) { switch (this) { case V1_10: return type == V1_10 || type == V1_10_R1; @@ -71,7 +71,7 @@ public boolean equals(MinecraftVersionsType type) { * @return {@code true} if this version matches given version. */ public boolean isBelow(MinecraftVersionsType type) { - if (equals(type)) return false; + if (isEqual(type)) return false; return this.ordinal() < type.ordinal(); } @@ -88,7 +88,7 @@ public boolean isBelow(MinecraftVersionsType type) { * @return {@code true} if this version matches given version. */ public boolean isAfter(MinecraftVersionsType type) { - if (equals(type)) return false; + if (isEqual(type)) return false; return this.ordinal() > type.ordinal(); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 1ef5c1c4..4f48ece3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -58,7 +58,8 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { public PartyMessagesConfig partymessages; public StatsGlobalConfig statsglobal; - public String version = ""; + @Deprecated + public String internalServerVersion = ""; public boolean below1710 = false; // Used for scoreboard function (wether to use getScore(OfflinePlayer) or getScore(String)) Metrics metrics; @@ -66,14 +67,9 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { public void onEnable() { instance = this; - this.version = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); - this.below1710 = - version.startsWith("v1_7_R3") - || version.startsWith("v1_7_R2") - || version.startsWith("v1_7_R1") - || version.startsWith("v1_6") - || version.startsWith("v1_5"); - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Loaded MinigamesAPI. We're on " + version + "."); + this.internalServerVersion = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); + this.below1710 = SERVER_VERSION.isBelow(MinecraftVersionsType.V1_7_R4); + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Loaded MinigamesAPI. We're on " + SERVER_VERSION + "."); this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index a267d8e4..b42d6f60 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -226,8 +226,8 @@ public void giveWinReward(String p_, Arena a, ArrayList players, int glo Util.sendMessage(plugin, p, pli.getMessagesConfig().you_won); Util.sendMessage(plugin, p, received_rewards_msg); - if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_8") - || plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_9")) { + if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { Effects.playTitle(p, pli.getMessagesConfig().you_won, 0); } @@ -249,8 +249,8 @@ public void run() { } } else { Util.sendMessage(plugin, p, pli.getMessagesConfig().you_lost); - if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_8") - || plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.getAPI().version.startsWith("v1_9")) { + if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { Effects.playTitle(p, pli.getMessagesConfig().you_lost, 0); } MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().lose(p_); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java index e70de69b..69f9edf2 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java @@ -85,8 +85,9 @@ public boolean removeHologram(Location ploc) { } public void destroyHologram(final Player p, Hologram h) { - String version = MinigamesAPI.getAPI().version; + String version = MinigamesAPI.getAPI().internalServerVersion; try { + // TODO Do not use reflection :-( final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + version + ".entity.CraftPlayer").getMethod("getHandle"); final Field playerConnection = Class.forName("net.minecraft.server." + version + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java index dc1b700e..ce8cdb1c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java @@ -178,17 +178,17 @@ private static void setValue(Object instance, String fieldName, Object value) th public void animateReflected(Player p, Location location, float speed, int count) { try { - Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().version + ".entity.CraftPlayer").getMethod("getHandle"); - Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".EntityPlayer").getField("playerConnection"); + Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); - Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + ".Packet")); + Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); String packetname = "PacketPlayOutWorldParticles"; - if (MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_6_R2") || MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_9_R1") || MinigamesAPI.getAPI().version.equalsIgnoreCase("v1_9_R2")) { + if (MinigamesAPI.getAPI().internalServerVersion.equalsIgnoreCase("v1_6_R2")) { packetname = "Packet63WorldParticles"; } - Constructor packetConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().version + "." + packetname).getConstructor(); + Constructor packetConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + "." + packetname).getConstructor(); Object packet = packetConstr.newInstance(); setValue(packet, "a", packetName.replace("%id%", "" + _id).replace("%data%", "" + _data)); From 94874e15d50c90de8363c5107d24eccc9287b66c Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 19 Jun 2016 06:25:52 +0200 Subject: [PATCH 008/266] documentation on maven build setup --- maven-setup/README.md | 56 ++++++++++++++++++++ maven-setup/nms-server-poms/v1_10_R1/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_7_R1/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_7_R2/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_7_R3/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_7_R4/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_8_R1/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_8_R2/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_9_R1/pom.xml | 48 +++++++++++++++++ maven-setup/nms-server-poms/v1_9_R2/pom.xml | 48 +++++++++++++++++ 10 files changed, 488 insertions(+) create mode 100644 maven-setup/README.md create mode 100644 maven-setup/nms-server-poms/v1_10_R1/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_7_R1/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_7_R2/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_7_R3/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_7_R4/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_8_R1/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_8_R2/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_9_R1/pom.xml create mode 100644 maven-setup/nms-server-poms/v1_9_R2/pom.xml diff --git a/maven-setup/README.md b/maven-setup/README.md new file mode 100644 index 00000000..21626d6a --- /dev/null +++ b/maven-setup/README.md @@ -0,0 +1,56 @@ +Minigame Maven Setup +==================== + +Install spigot +-------------- + +To be able to compile minigames using maven you need access to the spigot binaries. +After building Spigot with build tools you can use maven to deploy the artifacts to your own maven repository. + +To install spigot in your local repository invoke + +``` + + mvn install + +``` + +To deploy spigot to your web repository invoke + +``` + + mvn deploy -DaltDeploymentRepository=::default::http:// + +``` + +The minigames lib itself currently only depends on the newest version of spigot. + + + +Install nms builds +------------------ + +As a second goal we require support for nms classes. NMS classes are special variants that highly depend on the minecraft or craftbukkit api. The differ from version to version. + +For a clean support each minigame and the lib decide which version the current server is build on. + +For maven builds to not mess up with this dependencies we decided to use a special shadowed artifact only containing the version specific classes. + +You will find a sub directory called nms-server-poms containing the pom files you need. + +To install the nms builds in your local repository invoke + +``` + + mvn install + +``` + +To deploy the nms builds to your web repository invoke + +``` + + mvn deploy -DaltDeploymentRepository=::default::http:// + +``` + diff --git a/maven-setup/nms-server-poms/v1_10_R1/pom.xml b/maven-setup/nms-server-poms/v1_10_R1/pom.xml new file mode 100644 index 00000000..2581ca5f --- /dev/null +++ b/maven-setup/nms-server-poms/v1_10_R1/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_10_R1 + 1.10 + + + + org.spigotmc + spigot + 1.10-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_10_R1/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_7_R1/pom.xml b/maven-setup/nms-server-poms/v1_7_R1/pom.xml new file mode 100644 index 00000000..45a81046 --- /dev/null +++ b/maven-setup/nms-server-poms/v1_7_R1/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_7_R1 + 1.7 + + + + org.spigotmc + spigot + 1.7.2-R0.4-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_7_R1/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_7_R2/pom.xml b/maven-setup/nms-server-poms/v1_7_R2/pom.xml new file mode 100644 index 00000000..4356b809 --- /dev/null +++ b/maven-setup/nms-server-poms/v1_7_R2/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_7_R2 + 1.7 + + + + org.spigotmc + spigot + 1.7.5-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_7_R2/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_7_R3/pom.xml b/maven-setup/nms-server-poms/v1_7_R3/pom.xml new file mode 100644 index 00000000..89d9675d --- /dev/null +++ b/maven-setup/nms-server-poms/v1_7_R3/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_7_R3 + 1.7 + + + + org.spigotmc + spigot + 1.7.9-R0.2-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_7_R3/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_7_R4/pom.xml b/maven-setup/nms-server-poms/v1_7_R4/pom.xml new file mode 100644 index 00000000..5736deaf --- /dev/null +++ b/maven-setup/nms-server-poms/v1_7_R4/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_7_R4 + 1.7 + + + + org.spigotmc + spigot + 1.7.10-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_7_R4/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_8_R1/pom.xml b/maven-setup/nms-server-poms/v1_8_R1/pom.xml new file mode 100644 index 00000000..c71786e8 --- /dev/null +++ b/maven-setup/nms-server-poms/v1_8_R1/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_8_R1 + 1.8 + + + + org.spigotmc + spigot + 1.8-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_8_R1/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_8_R2/pom.xml b/maven-setup/nms-server-poms/v1_8_R2/pom.xml new file mode 100644 index 00000000..8262efde --- /dev/null +++ b/maven-setup/nms-server-poms/v1_8_R2/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_8_R2 + 1.8 + + + + org.spigotmc + spigot + 1.8.3-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_8_R2/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_9_R1/pom.xml b/maven-setup/nms-server-poms/v1_9_R1/pom.xml new file mode 100644 index 00000000..97419ba4 --- /dev/null +++ b/maven-setup/nms-server-poms/v1_9_R1/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_9_R1 + 1.9 + + + + org.spigotmc + spigot + 1.9-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_9_R1/** + + + + + + + + + + \ No newline at end of file diff --git a/maven-setup/nms-server-poms/v1_9_R2/pom.xml b/maven-setup/nms-server-poms/v1_9_R2/pom.xml new file mode 100644 index 00000000..f3bff99d --- /dev/null +++ b/maven-setup/nms-server-poms/v1_9_R2/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + net.minecraft.server + v1_9_R2 + 1.9 + + + + org.spigotmc + spigot + 1.9.4-R0.1-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + org.spigotmc:spigot + + + + + org.spigotmc:spigot + + net/minecraft/server/** + org/bukkit/craftbukkit/v1_9_R2/** + + + + + + + + + + \ No newline at end of file From 91c38e490500c1498335438212d7869265e8f6df Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 19 Jun 2016 10:32:01 +0200 Subject: [PATCH 009/266] review of https://github.com/virustotalop/MinigamesAPI/commit/4e452f9d5c73b7cadb855e841db45405b54e78e9 --- .../com/comze_instancelabs/minigamesapi/Arena.java | 7 +++---- .../minigamesapi/ArenaListener.java | 6 ++---- .../minigamesapi/MinigamesAPI.java | 2 +- .../comze_instancelabs/minigamesapi/SmartReset.java | 12 ++++++------ 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index a4d0b2f1..537f090b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -18,7 +18,6 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitTask; -import org.bukkit.util.Vector; import com.comze_instancelabs.minigamesapi.arcade.ArcadeInstance; import com.comze_instancelabs.minigamesapi.events.ArenaStartEvent; @@ -35,14 +34,14 @@ public class Arena { // Plugin the arena belongs to - JavaPlugin plugin; - PluginInstance pli; + private JavaPlugin plugin; + private PluginInstance pli; private ArcadeInstance ai; private boolean isArcadeMain = false; private boolean isSuccessfullyInitialized = false; private ArrayList spawns = new ArrayList(); - HashMap pspawnloc = new HashMap(); + private HashMap pspawnloc = new HashMap(); public HashMap lastdamager = new HashMap(); public HashMap temp_kill_count = new HashMap(); public HashMap temp_death_count = new HashMap(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 22c8212c..96726a81 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -58,7 +58,6 @@ import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.world.StructureGrowEvent; @@ -74,9 +73,8 @@ public class ArenaListener implements Listener { - JavaPlugin plugin = null; - PluginInstance pli = null; - SpectatorManager sm; + private JavaPlugin plugin = null; + private PluginInstance pli = null; private String minigame = "minigame"; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 4f48ece3..891f9aed 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -121,7 +121,7 @@ public int getValue() { }, 60L); if (getConfig().getBoolean("config.auto_updating")) { - Updater updater = new Updater(this, 83025, this.getFile(), Updater.UpdateType.DEFAULT, false); + new Updater(this, 83025, this.getFile(), Updater.UpdateType.DEFAULT, false); } if (getServer().getPluginManager().getPlugin("CrackShot") != null) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 8fdce271..5f3c8f76 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -106,12 +106,12 @@ public void run() { } if (changed.size() != 0) { - Bukkit.getScheduler().runTaskLater(a.plugin, this, 2L); + Bukkit.getScheduler().runTaskLater(a.getPlugin(), this, 2L); return; } a.setArenaState(ArenaState.JOIN); - Util.updateSign(a.plugin, a); + Util.updateSign(a.getPlugin(), a); ArenaLogger.debug(failedblocks.size() + " to redo."); @@ -142,8 +142,8 @@ public void run() { */ public void reset() { time = System.currentTimeMillis(); - a.plugin.getLogger().info(changed.size() + " to reset for arena " + a.getInternalName() + "."); - Bukkit.getScheduler().runTask(a.plugin, this); + a.getPlugin().getLogger().info(changed.size() + " to reset for arena " + a.getInternalName() + "."); + Bukkit.getScheduler().runTask(a.getPlugin(), this); } /** @@ -155,13 +155,13 @@ public void resetRaw() { resetSmartResetBlock(ablock); } catch (Exception e) { a.setArenaState(ArenaState.JOIN); - Util.updateSign(a.plugin, a); + Util.updateSign(a.getPlugin(), a); } } changed.clear(); a.setArenaState(ArenaState.JOIN); - Util.updateSign(a.plugin, a); + Util.updateSign(a.getPlugin(), a); } public void resetSmartResetBlock(SmartArenaBlock ablock) { From 908ecf85b22ca75d9ed76f4cb98f8f7120688a0a Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 19 Jun 2016 10:53:47 +0200 Subject: [PATCH 010/266] refactoring --- .../minigamesapi/Arena.java | 33 +++++++++++-------- .../minigamesapi/ArenaListener.java | 6 ++-- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 537f090b..c12737b1 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -42,9 +42,9 @@ public class Arena { private ArrayList spawns = new ArrayList(); private HashMap pspawnloc = new HashMap(); - public HashMap lastdamager = new HashMap(); - public HashMap temp_kill_count = new HashMap(); - public HashMap temp_death_count = new HashMap(); + private HashMap lastdamager = new HashMap(); + HashMap temp_kill_count = new HashMap(); + HashMap temp_death_count = new HashMap(); private Location mainlobby; private Location waitinglobby; @@ -59,29 +59,29 @@ public class Arena { private ArenaType type = ArenaType.DEFAULT; private ArenaState currentstate = ArenaState.JOIN; - String name = "mainarena"; - String displayname = "mainarena"; + private String name = "mainarena"; + private String displayname = "mainarena"; private Arena currentarena; - boolean started = false; - boolean startedIngameCountdown = false; + private boolean started = false; + private boolean startedIngameCountdown = false; private boolean showArenascoreboard = true; private boolean alwaysPvP = false; - SmartReset sr = null; + private SmartReset sr = null; - Cuboid boundaries; - Cuboid lobby_boundaries; - Cuboid spec_boundaries; + private Cuboid boundaries; + private Cuboid lobby_boundaries; + private Cuboid spec_boundaries; - boolean temp_countdown = true; + private boolean temp_countdown = true; boolean skip_join_lobby = false; - int currentspawn = 0; + private int currentspawn = 0; int global_coin_multiplier = 1; - BukkitTask maximum_game_time; + private BukkitTask maximum_game_time; ArrayList global_drops = new ArrayList(); @@ -1465,5 +1465,10 @@ public boolean getIngameCountdownStarted() { public boolean isSuccessfullyInit() { return isSuccessfullyInitialized; } + + public void setLastDamager(String targetPlayer, String damager) + { + this.lastdamager.put(targetPlayer, damager); + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 96726a81..629b648f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -207,7 +207,7 @@ public void onMove(PlayerMoveEvent event) { } } else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaState.JOIN) { if (!a.isArcadeMain()) { - if (!a.startedIngameCountdown) { + if (!a.getIngameCountdownStarted()) { if (p.getLocation().getBlockY() < 0) { try { Util.teleportPlayerFixed(p, a.getWaitingLobbyTemp()); @@ -287,7 +287,7 @@ public void onPlayerDeath(PlayerDeathEvent event) { p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 3, 50)); final Arena arena = pli.global_players.get(p.getName()); - if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.startedIngameCountdown)) { + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.getIngameCountdownStarted())) { if (arena.isArcadeMain()) { Util.teleportPlayerFixed(p, arena.getWaitingLobbyTemp()); } @@ -487,7 +487,7 @@ public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { } Arena a = (Arena) pli.global_players.get(p.getName()); if (a.getArenaState() == ArenaState.INGAME) { - a.lastdamager.put(p.getName(), attacker.getName()); + a.setLastDamager(p.getName(), attacker.getName()); if (pli.damage_identifier_effects) { ChatColor c = ChatColor.YELLOW; if (event.getDamage() >= 5D) { From 2ae5621e4779b9e62dd361587ec12252dcc88b78 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Sun, 19 Jun 2016 11:20:40 +0200 Subject: [PATCH 011/266] race condition while stopping an arena --- .../comze_instancelabs/minigamesapi/Arena.java | 18 +++++++++++++----- .../minigamesapi/ArenaListener.java | 2 +- .../minigamesapi/arcade/ArcadeInstance.java | 6 +++--- .../minigamesapi/commands/CommandHandler.java | 6 +++--- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index c12737b1..26b079c4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -582,7 +582,7 @@ public void leavePlayer(final String playername, boolean fullLeave, boolean endo } return; } - this.stop(); + this.stopArena(); } } } @@ -817,7 +817,7 @@ public void spectateGame(String playername) { final Arena a = this; Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { public void run() { - a.stop(); + a.stopArena(); } }, 20L); } else { @@ -1140,7 +1140,7 @@ public void run() { } Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { public void run() { - a.stop(); + a.stopArena(); } }, 5 * 20L); } @@ -1155,11 +1155,19 @@ public void started() { } boolean temp_delay_stopped = false; + + /** + * Invoked externally to stop the arena; esures that it only is called once. + */ + public synchronized void stopArena() { + // TODO eliminate synchronized but check for the current arena state before actually invoking stop + this.stop(); + } /** * Stops the arena and teleports all players to the mainlobby */ - public void stop() { + protected void stop() { Bukkit.getServer().getPluginManager().callEvent(new ArenaStopEvent(plugin, this)); final Arena a = this; if (maximum_game_time != null) { @@ -1171,7 +1179,7 @@ public void stop() { Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { public void run() { temp_delay_stopped = true; - a.stop(); + a.stopArena(); } }, plugin.getConfig().getInt("config.delay.amount_seconds") * 20L); this.setArenaState(ArenaState.RESTARTING); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 629b648f..2009b548 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -335,7 +335,7 @@ public void run() { if (pli.last_man_standing) { if (count < 2) { // last man standing - arena.stop(); + arena.stopArena(); } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java index 143f2667..38c11c40 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java @@ -227,10 +227,10 @@ public void stopCurrentMinigame() { String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); Arena a = mg.getArenaByName(arenaname); if (a != null) { - a.stop(); + a.stopArena(); } } else { - minigames.get(currentindex).getArenas().get(0).stop(); + minigames.get(currentindex).getArenas().get(0).stopArena(); } } } @@ -246,7 +246,7 @@ public void nextMinigame(long delay) { if (currentindex < minigames.size() - 1) { currentindex++; } else { - arena.stop(); + arena.stopArena(); // stopArcade(); return; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 5b5c52e2..96ce1a76 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -513,7 +513,7 @@ public boolean stopArena(PluginInstance pli, CommandSender sender, String[] args if (args.length > 1) { Arena temp = pli.getArenaByName(args[1]); if (temp != null) { - temp.stop(); + temp.stopArena(); sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("", args[1]).replaceAll("", "stopped")); } else { sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("", args[1])); @@ -521,7 +521,7 @@ public boolean stopArena(PluginInstance pli, CommandSender sender, String[] args } else { if (pli.containsGlobalPlayer(p.getName())) { Arena a = pli.global_players.get(p.getName()); - a.stop(); + a.stopArena(); sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("", args[1]).replaceAll("", "stopped")); return true; } @@ -536,7 +536,7 @@ public boolean stopAllArenas(PluginInstance pli, CommandSender sender, String[] return true; } for (Arena a : pli.getArenas()) { - a.stop(); + a.stopArena(); } return true; } From 8536c06c6adc0c597c550c643270b08c8989d560 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Mon, 20 Jun 2016 02:44:28 +0200 Subject: [PATCH 012/266] upgraded vault and crackshot --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 85fdbd0f..ef334403 100644 --- a/pom.xml +++ b/pom.xml @@ -25,8 +25,8 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots - private-crackshot-repo - http://www.instancedev.com/bukkitdev/MinigamesAPI/dependencies/Crackshot/maven/ + mce-repos + http://nexus.xworlds.eu/nexus/content/groups/mce/ vault-repo @@ -51,13 +51,13 @@ net.milkbowl.vault Vault - 1.3.01 + 1.5.6 provided com.shampaggon.crackshot Crackshot - 0.97.13 + 0.98.5 provided From af111e65c1348bcd41cf36bd83e3aae317016ad5 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Tue, 21 Jun 2016 06:59:15 +0200 Subject: [PATCH 013/266] fixes https://github.com/MysticCity/MinigamesAPI/issues/27 activated maven resource filtering --- API/pom.xml | 6 ++++++ API/src/main/resources/plugin.yml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/API/pom.xml b/API/pom.xml index 2d7e33c4..9f729f6d 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -30,6 +30,12 @@ + + + src/main/resources + true + + 3.0.0 diff --git a/API/src/main/resources/plugin.yml b/API/src/main/resources/plugin.yml index 25d0aef9..f405792d 100644 --- a/API/src/main/resources/plugin.yml +++ b/API/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: MinigamesLib main: com.comze_instancelabs.minigamesapi.MinigamesAPI -version: 1.14.8 +version: ${version} author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] softdepend: [Vault] commands: From 59ea56f75313c9ffb519356761ab594319917b4a Mon Sep 17 00:00:00 2001 From: mepeisen Date: Tue, 21 Jun 2016 07:22:06 +0200 Subject: [PATCH 014/266] temporary fixes https://github.com/MysticCity/MinigamesAPI/issues/26 --- .../minigamesapi/ArenaListener.java | 48 +++++++++---------- .../minigamesapi/util/Util.java | 2 + 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 2009b548..fa151e80 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -790,6 +790,19 @@ public void onBlockPlace(BlockPlaceEvent event) { } } } + + private boolean checkLocationMatchesSign(Location l, Sign s) { + if (l != null) { + if (l.getWorld() != null) { + if (l.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) { + if (l.distance(s.getLocation()) < 1) { + return true; + } + } + } + } + return false; + } @EventHandler public void onSignUse(PlayerInteractEvent event) { @@ -817,39 +830,26 @@ public void onSignUse(PlayerInteractEvent event) { } else { // try getting random sign Location l = Util.getComponentForArenaRaw(plugin, "random", "sign"); - if (l != null) { - if (l.getWorld() != null) { - if (l.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) { - if (l.distance(s.getLocation()) < 1) { - for (Arena a : pli.getArenas()) { - if (a.getArenaState() == ArenaState.JOIN || a.getArenaState() == ArenaState.STARTING) { - if (!a.containsPlayer(event.getPlayer().getName())) { - a.joinPlayerLobby(event.getPlayer().getName()); - Util.updateSign(plugin, arena); - return; - } - } - } + if (checkLocationMatchesSign(l, s)) { + for (Arena a : pli.getArenas()) { + if (a.getArenaState() == ArenaState.JOIN || a.getArenaState() == ArenaState.STARTING) { + if (!a.containsPlayer(event.getPlayer().getName())) { + a.joinPlayerLobby(event.getPlayer().getName()); + Util.updateSign(plugin, a); + return; } } } } // try getting leave sign if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - int count = 0; if (pli.getArenasConfig().getConfig().isSet("arenas.leave")) { for (String str : pli.getArenasConfig().getConfig().getConfigurationSection("arenas.leave.").getKeys(false)) { Location loc = Util.getComponentForArenaRaw(plugin, "leave." + str, "sign"); - if (loc != null) { - if (loc.getWorld() != null) { - if (loc.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) { - if (loc.distance(s.getLocation()) < 1) { - pli.global_players.get(event.getPlayer().getName()).leavePlayer(event.getPlayer().getName(), false, false); - Util.updateSign(plugin, arena); - return; - } - } - } + if (checkLocationMatchesSign(loc, s)) { + pli.global_players.get(event.getPlayer().getName()).leavePlayer(event.getPlayer().getName(), false, false); + Util.updateSign(plugin, pli.getArenaByName("leave")); + return; } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 1233ed46..6441c589 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -423,6 +423,8 @@ public static Arena getArenaBySignLocation(JavaPlugin plugin, Location sign) { } public static void updateSign(JavaPlugin plugin, Arena arena) { + if (arena == null) return; + Sign s = getSignFromArena(plugin, arena.getInternalName()); if (s != null) { ArenaLogger.debug("Updating sign for arena " + arena.getInternalName() + " in " + plugin.getName()); From a33b117ff200423865cdf8752c67b8d52ef05d03 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Tue, 21 Jun 2016 07:58:44 +0200 Subject: [PATCH 015/266] fixes https://github.com/MysticCity/MinigamesAPI/issues/29 --- .../minigamesapi/Arena.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 26b079c4..05e753d3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -633,6 +633,7 @@ public void run() { if (pli.global_arcade_spectator.containsKey(playername)) { pli.global_arcade_spectator.remove(playername); } + // TODO Do we need null check here? It already returns if p is null (see above) if (p != null) { p.removePotionEffect(PotionEffectType.JUMP); p.removePotionEffect(PotionEffectType.INVISIBILITY); @@ -655,6 +656,14 @@ public void run() { p.removePotionEffect(PotionEffectType.INVISIBILITY); pli.getSpectatorManager().setSpectate(p, false); pli.getStatsInstance().updateSQLKillsDeathsAfter(p, this); + + if (hasLeaveCommand()) { + Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { + public void run() { + playLeaveCommand(p); + } + }, 10L); + } } if (pli.getClassesHandler().lasticonm.containsKey(p.getName())) { IconMenu iconm = pli.getClassesHandler().lasticonm.get(p.getName()); @@ -796,6 +805,17 @@ public void run() { } } + protected void playLeaveCommand(Player p) { + final String path = "arenas." + name + ".leavecommand"; + final String leavecommand = pli.getArenasConfig().getConfig().getString(path); + p.getServer().dispatchCommand(p, leavecommand); + } + + private boolean hasLeaveCommand() { + final String path = "arenas." + name + ".leavecommand"; + return pli.getArenasConfig().getConfig().isSet(path); + } + /** * Spectate the game generally (not specifically after death) * From 20d792a039984d3491d8bc2e56e685fa27d8b08b Mon Sep 17 00:00:00 2001 From: mepeisen Date: Wed, 22 Jun 2016 21:36:54 +0200 Subject: [PATCH 016/266] Fixed leave command for fullleav = false (regular leave) --- .../java/com/comze_instancelabs/minigamesapi/Arena.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 05e753d3..34b8773b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -749,6 +749,13 @@ public void run() { if (ai == null || a.isArcadeMain()) { if (a.mainlobby != null) { Util.teleportPlayerFixed(p, a.mainlobby); + if (hasLeaveCommand()) { + Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { + public void run() { + playLeaveCommand(p); + } + }, 10L); + } } else if (a.waitinglobby != null) { Util.teleportPlayerFixed(p, a.waitinglobby); } From a1fd9eefea54ef4233373f7471d1b3e3a224bf02 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Wed, 22 Jun 2016 21:51:46 +0200 Subject: [PATCH 017/266] changed plugin.xml version from xxx-SNAPSHOT to xxx-timestamp as suggested in https://github.com/MysticCity/MinigamesAPI/issues/27 --- API/src/main/resources/plugin.yml | 2 +- pom.xml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/API/src/main/resources/plugin.yml b/API/src/main/resources/plugin.yml index f405792d..e9c0eb82 100644 --- a/API/src/main/resources/plugin.yml +++ b/API/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: MinigamesLib main: com.comze_instancelabs.minigamesapi.MinigamesAPI -version: ${version} +version: ${minigames.releaseversion}-${minigames.timestamp} author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] softdepend: [Vault] commands: diff --git a/pom.xml b/pom.xml index ef334403..eb694bd1 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,9 @@ 1.8 1.8 4.12 + 1.14.9 + ${maven.build.timestamp} + yyyyMMdd.HHmmss Rich Minigames API and base of all of my new minigames. From f80c208db0ee893d763e5568ebafb4ad713de8c6 Mon Sep 17 00:00:00 2001 From: mepeisen Date: Fri, 24 Jun 2016 07:42:41 +0200 Subject: [PATCH 018/266] refactoring --- .../minigamesapi/Arena.java | 3733 ++++++++++------- .../minigamesapi/ArenaConfigStrings.java | 32 + .../minigamesapi/ArenaListener.java | 2717 ++++++------ .../minigamesapi/ArenaLogger.java | 33 +- .../minigamesapi/ArenaPlayer.java | 200 +- .../minigamesapi/ArenaSetup.java | 504 ++- .../minigamesapi/ArenaState.java | 60 +- .../minigamesapi/ArenaType.java | 47 +- .../minigamesapi/Classes.java | 1035 +++-- .../minigamesapi/Effects.java | 990 +++-- .../minigamesapi/MinecraftVersionsType.java | 202 +- .../minigamesapi/MinigamesAPI.java | 1442 ++++--- .../minigamesapi/Party.java | 156 +- .../minigamesapi/PluginInstance.java | 724 ++-- .../minigamesapi/PrivateUtil.java | 164 + .../minigamesapi/Rewards.java | 563 +-- .../comze_instancelabs/minigamesapi/Shop.java | 392 +- .../minigamesapi/SmartReset.java | 734 ++-- .../minigamesapi/SpectatorManager.java | 339 +- .../minigamesapi/Stats.java | 750 ++-- .../achievements/AAchievement.java | 63 +- .../achievements/ArenaAchievements.java | 240 +- .../minigamesapi/arcade/ArcadeInstance.java | 705 ++-- .../minigamesapi/bungee/BungeeSocket.java | 143 +- .../minigamesapi/commands/CommandHandler.java | 2697 +++++++----- .../config/AchievementsConfig.java | 210 +- .../minigamesapi/config/ArenasConfig.java | 120 +- .../minigamesapi/config/ClassesConfig.java | 143 +- .../minigamesapi/config/DefaultConfig.java | 362 +- .../minigamesapi/config/GunsConfig.java | 207 +- .../minigamesapi/config/HologramsConfig.java | 125 +- .../minigamesapi/config/MessagesConfig.java | 681 +-- .../config/PartyMessagesConfig.java | 214 +- .../minigamesapi/config/ShopConfig.java | 211 +- .../minigamesapi/config/StatsConfig.java | 111 +- .../config/StatsGlobalConfig.java | 111 +- .../minigamesapi/events/ArenaEvent.java | 71 +- .../minigamesapi/events/ArenaStartEvent.java | 30 +- .../events/ArenaStartedEvent.java | 28 +- .../minigamesapi/events/ArenaStopEvent.java | 28 +- .../minigamesapi/events/PlayerEvent.java | 84 +- .../events/PlayerJoinLobbyEvent.java | 28 +- .../events/PlayerLeaveArenaEvent.java | 28 +- .../minigamesapi/guns/Gun.java | 198 +- .../minigamesapi/guns/Guns.java | 721 ++-- .../minigamesapi/sql/Database.java | 157 +- .../minigamesapi/sql/MainSQL.java | 598 +-- .../minigamesapi/sql/MySQL.java | 132 +- .../minigamesapi/sql/SQLite.java | 106 +- .../minigamesapi/statsholograms/Hologram.java | 105 +- .../statsholograms/Holograms.java | 231 +- .../minigamesapi/util/AClass.java | 137 +- .../minigamesapi/util/ArenaBlock.java | 196 +- .../util/ArenaLobbyScoreboard.java | 263 +- .../minigamesapi/util/ArenaScoreboard.java | 480 ++- .../minigamesapi/util/BungeeUtil.java | 96 +- .../minigamesapi/util/ChangeCause.java | 21 +- .../minigamesapi/util/Cuboid.java | 534 +-- .../minigamesapi/util/IconMenu.java | 372 +- .../minigamesapi/util/InventoryManager.java | 77 +- .../minigamesapi/util/Leaderboard.java | 418 +- .../minigamesapi/util/Metrics.java | 1537 +++---- .../minigamesapi/util/ParticleEffectNew.java | 419 +- .../minigamesapi/util/ShopItem.java | 37 +- .../minigamesapi/util/SmartArenaBlock.java | 531 ++- .../minigamesapi/util/Updater.java | 456 +- .../minigamesapi/util/Util.java | 2098 ++++----- .../minigamesapi/util/Validator.java | 195 +- 68 files changed, 18170 insertions(+), 13402 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 34b8773b..7a2ae05e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; @@ -31,1479 +45,2248 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class Arena { - - // Plugin the arena belongs to - private JavaPlugin plugin; - private PluginInstance pli; - private ArcadeInstance ai; - private boolean isArcadeMain = false; - private boolean isSuccessfullyInitialized = false; - - private ArrayList spawns = new ArrayList(); - private HashMap pspawnloc = new HashMap(); - private HashMap lastdamager = new HashMap(); - HashMap temp_kill_count = new HashMap(); - HashMap temp_death_count = new HashMap(); - - private Location mainlobby; - private Location waitinglobby; - private Location specspawn; - private Location signloc; - - private int max_players; - private int min_players; - private boolean viparena; - private ArrayList players = new ArrayList(); - private ArrayList temp_players = new ArrayList(); - - private ArenaType type = ArenaType.DEFAULT; - private ArenaState currentstate = ArenaState.JOIN; - private String name = "mainarena"; - private String displayname = "mainarena"; - - private Arena currentarena; - private boolean started = false; - private boolean startedIngameCountdown = false; - private boolean showArenascoreboard = true; - private boolean alwaysPvP = false; - - private SmartReset sr = null; - - private Cuboid boundaries; - private Cuboid lobby_boundaries; - private Cuboid spec_boundaries; - - private boolean temp_countdown = true; - boolean skip_join_lobby = false; - - private int currentspawn = 0; - - int global_coin_multiplier = 1; - - private BukkitTask maximum_game_time; - - ArrayList global_drops = new ArrayList(); - - /** - * Creates a normal singlespawn arena - * - * @param plugin - * JavaPlugin the arena belongs to - * @param name - * name of the arena - */ - public Arena(JavaPlugin plugin, String name) { - currentarena = this; - this.plugin = plugin; - this.name = name; - sr = new SmartReset(this); - this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - } - - /** - * Creates an arena of given arenatype - * - * @param name - * name of the arena - * @param type - * arena type - */ - public Arena(JavaPlugin plugin, String name, ArenaType type) { - this(plugin, name); - this.type = type; - } - - // This is for loading existing arenas - public void init(Location signloc, ArrayList spawns, Location mainlobby, Location waitinglobby, int max_players, int min_players, boolean viparena) { - this.signloc = signloc; - this.spawns = spawns; - this.mainlobby = mainlobby; - this.waitinglobby = waitinglobby; - this.viparena = viparena; - this.min_players = min_players; - this.max_players = max_players; - this.showArenascoreboard = pli.arenaSetup.getShowScoreboard(plugin, this.getInternalName()); - isSuccessfullyInitialized = true; - if (Util.isComponentForArenaValid(plugin, this.getInternalName(), "bounds.low") && Util.isComponentForArenaValid(plugin, this.getInternalName(), "bounds.high")) { - try { - Location low_boundary = Util.getComponentForArena(plugin, this.getInternalName(), "bounds.low"); - Location high_boundary = Util.getComponentForArena(plugin, this.getInternalName(), "bounds.high"); - if (low_boundary != null && high_boundary != null) { - this.boundaries = new Cuboid(low_boundary, high_boundary); - } else { - plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "The boundaries of an arena appear to be invalid (missing world?), please fix! Arena: " + this.getInternalName()); - } - } catch (Exception e) { - plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "Failed to save arenas as you forgot to set boundaries or they could not be found. This will lead to errors later, please fix your setup. " + e.getMessage()); - isSuccessfullyInitialized = false; - } - } - if (Util.isComponentForArenaValid(plugin, this.getInternalName(), "lobbybounds.bounds.low") && Util.isComponentForArenaValid(plugin, this.getInternalName(), "lobbybounds.bounds.high")) { - try { - this.lobby_boundaries = new Cuboid(Util.getComponentForArena(plugin, this.getInternalName(), "lobbybounds.bounds.low"), Util.getComponentForArena(plugin, this.getInternalName(), "lobbybounds.bounds.high")); - } catch (Exception e) { - isSuccessfullyInitialized = false; - } - } - if (Util.isComponentForArenaValid(plugin, this.getInternalName(), "specbounds.bounds.low") && Util.isComponentForArenaValid(plugin, this.getInternalName(), "specbounds.bounds.high")) { - try { - this.spec_boundaries = new Cuboid(Util.getComponentForArena(plugin, this.getInternalName(), "specbounds.bounds.low"), Util.getComponentForArena(plugin, this.getInternalName(), "specbounds.bounds.high")); - } catch (Exception e) { - isSuccessfullyInitialized = false; - } - } - - if (Util.isComponentForArenaValid(plugin, this.getInternalName(), "specspawn")) { - this.specspawn = Util.getComponentForArena(plugin, this.getInternalName(), "specspawn"); - } - - String path = "arenas." + name + ".displayname"; - if (pli.getArenasConfig().getConfig().isSet(path)) { - this.displayname = ChatColor.translateAlternateColorCodes('&', pli.getArenasConfig().getConfig().getString("arenas." + name + ".displayname")); - } else { - pli.getArenasConfig().getConfig().set(path, name); - pli.getArenasConfig().saveConfig(); - this.displayname = name; - } - - } - - // This is for loading existing arenas - @Deprecated - public Arena initArena(Location signloc, ArrayList spawn, Location mainlobby, Location waitinglobby, int max_players, int min_players, boolean viparena) { - this.init(signloc, spawn, mainlobby, waitinglobby, max_players, min_players, viparena); - return this; - } - - public Arena getArena() { - return this; - } - - public SmartReset getSmartReset() { - return this.sr; - } - - public boolean getShowScoreboard() { - return this.showArenascoreboard; - } - - public boolean getAlwaysPvP() { - return this.alwaysPvP; - } - - public void setAlwaysPvP(boolean t) { - this.alwaysPvP = t; - } - - public Location getSignLocation() { - return this.signloc; - } - - public void setSignLocation(Location l) { - this.signloc = l; - } - - public ArrayList getSpawns() { - return this.spawns; - } - - public Cuboid getBoundaries() { - return this.boundaries; - } - - public Cuboid getLobbyBoundaries() { - return this.lobby_boundaries; - } - - public Cuboid getSpecBoundaries() { - return this.spec_boundaries; - } - - public String getInternalName() { - return name; - } - - public String getDisplayName() { - return displayname; - } - - /** - * Please use getInternalName() for the internal name and getDisplayName() for the optional displayname - * - * @return Internal name of arena (same as getInternalName()) - */ - @Deprecated - public String getName() { - return name; - } - - public int getMaxPlayers() { - return this.max_players; - } - - public int getMinPlayers() { - return this.min_players; - } - - public void setMinPlayers(int i) { - this.min_players = i; - } - - public void setMaxPlayers(int i) { - this.max_players = i; - } - - public boolean isVIPArena() { - return this.viparena; - } - - public void setVIPArena(boolean t) { - this.viparena = t; - } - - public ArrayList getAllPlayers() { - return this.players; - } - - public boolean containsPlayer(String playername) { - return players.contains(playername); - } - - /** - * Please do not use this function to add players - * - * @param playername name of the player - * @return true on success - */ - @Deprecated - public boolean addPlayer(String playername) { - return players.add(playername); - } - - /** - * Please do not use this function to remove players - * - * @param playername name of the player - * @return true on success - */ - @Deprecated - public boolean removePlayer(String playername) { - return players.remove(playername); - } - - public ArenaState getArenaState() { - return this.currentstate; - } - - public void setArenaState(ArenaState s) { - this.currentstate = s; - } - - public ArenaType getArenaType() { - return this.type; - } - - /** - * Joins the waiting lobby of an arena - * - * @param playername - * the playername - */ - public void joinPlayerLobby(String playername) { - if (this.getArenaState() != ArenaState.JOIN && this.getArenaState() != ArenaState.STARTING) { - // arena ingame or restarting - return; - } - if (!pli.arenaSetup.getArenaEnabled(plugin, this.getInternalName())) { - Util.sendMessage(plugin, Bukkit.getPlayer(playername), pli.getMessagesConfig().arena_disabled); - return; - } - if (pli.containsGlobalPlayer(playername)) { - Util.sendMessage(plugin, Bukkit.getPlayer(playername), pli.getMessagesConfig().already_in_arena); - return; - } - if (ai == null && this.isVIPArena()) { - if (Validator.isPlayerOnline(playername)) { - if (!Bukkit.getPlayer(playername).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) { - Util.sendMessage(plugin, Bukkit.getPlayer(playername), pli.getMessagesConfig().no_perm_to_join_arena.replaceAll("", this.getInternalName())); - return; - } - } - } - if (ai == null && this.getAllPlayers().size() > this.max_players - 1) { - // arena full - - // if player vip -> kick someone and continue - System.out.println(playername + " is vip: " + Bukkit.getPlayer(playername).hasPermission("arenas.*")); - if (!Bukkit.getPlayer(playername).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) { - return; - } else { - // player has vip - boolean noone_found = true; - ArrayList temp = new ArrayList(this.getAllPlayers()); - for (String p_ : temp) { - if (Validator.isPlayerOnline(p_)) { - if (!Bukkit.getPlayer(p_).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(p_).hasPermission("arenas.*")) { - this.leavePlayer(p_, false, true); - Bukkit.getPlayer(p_).sendMessage(pli.getMessagesConfig().you_got_kicked_because_vip_joined); - noone_found = false; - break; - } - } - } - if (noone_found) { - // apparently everyone is vip, can't join - return; - } - } - } - - if (MinigamesAPI.getAPI().global_party.containsKey(playername)) { - Party party = MinigamesAPI.getAPI().global_party.get(playername); - int playersize = party.getPlayers().size() + 1; - if (this.getAllPlayers().size() + playersize > this.max_players) { - Bukkit.getPlayer(playername).sendMessage(MinigamesAPI.getAPI().partymessages.party_too_big_to_join); - return; - } else { - for (String p_ : party.getPlayers()) { - if (Validator.isPlayerOnline(p_)) { - boolean cont = true; - for (PluginInstance pli_ : MinigamesAPI.getAPI().pinstances.values()) { - // if (!pli_.getPlugin().getName().equalsIgnoreCase("MGArcade") && pli_.global_players.containsKey(p_)) { - if (pli_.containsGlobalPlayer(p_)) { - cont = false; - } - } - if (cont) { - this.joinPlayerLobby(p_); - } - } - } - } - } - - if (this.getAllPlayers().size() == this.max_players - 1) { - if (currentlobbycount > 16 && this.getArenaState() == ArenaState.STARTING) { - currentlobbycount = 16; - } - } - pli.global_players.put(playername, this); - this.players.add(playername); - - if (Validator.isPlayerValid(plugin, playername, this)) { - final Player p = Bukkit.getPlayer(playername); - final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); - Bukkit.getServer().getPluginManager().callEvent(new PlayerJoinLobbyEvent(p, plugin, this)); - Util.sendMessage(plugin, p, pli.getMessagesConfig().you_joined_arena.replaceAll("", this.getDisplayName())); - Util.sendMessage(plugin, p, pli.getMessagesConfig().minigame_description); - if (pli.getArenasConfig().getConfig().isSet("arenas." + this.getInternalName() + ".author")) { - Util.sendMessage(plugin, p, pli.getMessagesConfig().author_of_the_map.replaceAll("", this.getDisplayName()).replaceAll("", pli.getArenasConfig().getConfig().getString("arenas." + this.getInternalName() + ".author"))); - } - if (pli.getArenasConfig().getConfig().isSet("arenas." + this.getInternalName() + ".description")) { - Util.sendMessage(plugin, p, pli.getMessagesConfig().description_of_the_map.replaceAll("", this.getDisplayName()).replaceAll("", pli.getArenasConfig().getConfig().getString("arenas." + this.getInternalName() + ".description"))); - } - - Bukkit.getScheduler().runTaskLater(this.getPlugin(), new Runnable() { - public void run() { - try { - if (p != null) { - pli.getHologramsHandler().sendAllHolograms(p); - } - } catch (Exception e) { - System.out.println("Failed playing hologram: " + e.getMessage()); - if (MinigamesAPI.getAPI().debug) { - e.printStackTrace(); - } - } - } - }, 15L); - - for (String p_ : this.getAllPlayers()) { - if (Validator.isPlayerOnline(p_) && !p_.equalsIgnoreCase(p.getName())) { - Player p__ = Bukkit.getPlayer(p_); - int count = this.getAllPlayers().size(); - int maxcount = this.getMaxPlayers(); - Util.sendMessage(plugin, p__, pli.getMessagesConfig().broadcast_player_joined.replaceAll("", p.getName()).replace("", Integer.toString(count)).replace("", Integer.toString(maxcount))); - } - } - Util.updateSign(plugin, this); - - if (ai == null && !this.isArcadeMain()) { - this.skip_join_lobby = plugin.getConfig().getBoolean("config.countdowns.skip_lobby"); - } - - final Arena a = this; - ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); - if (this.getArenaType() == ArenaType.JUMPNRUN) { - Util.teleportPlayerFixed(p, this.spawns.get(currentspawn)); - if (currentspawn < this.spawns.size() - 1) { - currentspawn++; - } - Util.clearInv(p); - ap.setOriginalGamemode(p.getGameMode()); - ap.setOriginalXplvl(p.getLevel()); - p.setGameMode(GameMode.SURVIVAL); - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); - return; - } else { - if (startedIngameCountdown) { - pli.scoreboardLobbyManager.removeScoreboard(this.getInternalName(), p); - Util.teleportAllPlayers(currentarena.getArena().getAllPlayers(), currentarena.getArena().spawns); - p.setFoodLevel(5); - p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 9999999, -7)); // -5 - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - p.setWalkSpeed(0.0F); - } - }, 1L); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - Util.clearInv(p); - } - }, 15L); - ap.setOriginalXplvl(p.getLevel()); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - if (a.getArenaState() != ArenaState.INGAME) { - Util.giveLobbyItems(plugin, p); - } - ap.setOriginalGamemode(p.getGameMode()); - p.setGameMode(GameMode.SURVIVAL); - } - }, 20L); - pli.scoreboardManager.updateScoreboard(plugin, this); - return; - } else { - pli.scoreboardLobbyManager.updateScoreboard(plugin, this); - if (!skip_join_lobby) { - Util.teleportPlayerFixed(p, this.waitinglobby); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); - } - }, 3L); - } else { - Util.teleportAllPlayers(currentarena.getArena().getAllPlayers(), currentarena.getArena().spawns); - } - } - } - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - Util.clearInv(p); - } - }, 10L); - ap.setOriginalXplvl(p.getLevel()); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - if (a.getArenaState() != ArenaState.INGAME) { - Util.giveLobbyItems(plugin, p); - } - ap.setOriginalGamemode(p.getGameMode()); - p.setGameMode(GameMode.SURVIVAL); - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); - } - }, 15L); - if (!skip_join_lobby) { - if (ai == null && this.getAllPlayers().size() > this.min_players - 1) { - this.startLobby(temp_countdown); - } else if (ai != null) { - this.startLobby(temp_countdown); - } - } else { - if (ai == null && !this.isArcadeMain() && this.getAllPlayers().size() > this.min_players - 1) { - this.startLobby(false); - } - } - } - } - - /** - * Primarily used for ArcadeInstance to join a waiting lobby without countdown - * - * @param playername name of the player - * @param countdown seconds - */ - public void joinPlayerLobby(String playername, boolean countdown) { - temp_countdown = countdown; - joinPlayerLobby(playername); - } - - /** - * Joins the waiting lobby of an arena - * - * @param playername - * the playername - * @param ai - * the ArcadeInstance - */ - public void joinPlayerLobby(String playername, ArcadeInstance ai, boolean countdown, boolean skip_lobby) { - this.skip_join_lobby = skip_lobby; - this.ai = ai; - joinPlayerLobby(playername, countdown); // join playerlobby without lobby countdown - } - - /** - * Leaves the current arena, won't do anything if not present in any arena - * - * @param playername - * @param fullLeave - * Determines if player left only minigame or the server - */ - @Deprecated - public void leavePlayer(final String playername, boolean fullLeave) { - this.leavePlayerRaw(playername, fullLeave); - } - - public void leavePlayer(final String playername, boolean fullLeave, boolean endofGame) { - if (!endofGame) { - ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); - ap.setNoReward(true); - } - - this.leavePlayer(playername, fullLeave); - - if (!endofGame) { - if (this.getAllPlayers().size() < 2) { - if (this.getArenaState() != ArenaState.JOIN) { - if (this.getArenaState() == ArenaState.STARTING && !startedIngameCountdown) { - // cancel starting - this.setArenaState(ArenaState.JOIN); - Util.updateSign(plugin, this); - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - ; - } - for (String p_ : this.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Util.sendMessage(plugin, Bukkit.getPlayer(p_), pli.getMessagesConfig().cancelled_starting); - } - } - return; - } - this.stopArena(); - } - } - } - } - - public void leavePlayerRaw(final String playername, final boolean fullLeave) { - if (!this.containsPlayer(playername)) { - return; - } - final Player p = Bukkit.getPlayer(playername); - final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); - if (p == null) { - return; - } - if (p.isDead()) { - System.out.println(p.getName() + " unexpectedly appeared dead! Sending respawn packet."); - Effects.playRespawn(p, plugin); - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - leavePlayerRaw(playername, fullLeave); - } - }, 10L); - return; - } - this.players.remove(playername); - if (pli.containsGlobalPlayer(playername)) { - pli.global_players.remove(playername); - } - if (fullLeave) { - plugin.getConfig().set("temp.left_players." + playername + ".name", playername); - plugin.getConfig().set("temp.left_players." + playername + ".plugin", plugin.getName()); - if (plugin.getConfig().getBoolean("config.reset_inventory_when_players_leave_server")) { - for (ItemStack i : ap.getInventory()) { - if (i != null) { - plugin.getConfig().set("temp.left_players." + playername + ".items." + Integer.toString((int) Math.round(Math.random() * 10000)) + i.getType().toString(), i); - } - } - } - plugin.saveConfig(); - - try { - if (pli.global_lost.containsKey(playername)) { - pli.getSpectatorManager().showSpectator(p); - pli.global_lost.remove(playername); - } else { - pli.getSpectatorManager().showSpectators(p); - } - if (pli.global_arcade_spectator.containsKey(playername)) { - pli.global_arcade_spectator.remove(playername); - } - // TODO Do we need null check here? It already returns if p is null (see above) - if (p != null) { - p.removePotionEffect(PotionEffectType.JUMP); - p.removePotionEffect(PotionEffectType.INVISIBILITY); - Util.teleportPlayerFixed(p, this.mainlobby); - p.setFireTicks(0); - p.setFlying(false); - if (!p.isOp()) { - p.setAllowFlight(false); - } - p.setGameMode(ap.getOriginalGamemode()); - p.setLevel(ap.getOriginalXplvl()); - p.getInventory().setContents(ap.getInventory()); - p.getInventory().setArmorContents(ap.getArmorInventory()); - p.updateInventory(); - - p.setWalkSpeed(0.2F); - p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 20 * 2, 50)); - p.setHealth(20); - p.removePotionEffect(PotionEffectType.JUMP); - p.removePotionEffect(PotionEffectType.INVISIBILITY); - pli.getSpectatorManager().setSpectate(p, false); - pli.getStatsInstance().updateSQLKillsDeathsAfter(p, this); - - if (hasLeaveCommand()) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - playLeaveCommand(p); - } - }, 10L); - } - } - if (pli.getClassesHandler().lasticonm.containsKey(p.getName())) { - IconMenu iconm = pli.getClassesHandler().lasticonm.get(p.getName()); - iconm.destroy(); - pli.getClassesHandler().lasticonm.remove(p.getName()); - } - } catch (Exception e) { - System.out.println("Failed to log out player out of arena. " + e.getMessage()); - } - return; - } - Util.clearInv(p); - p.setWalkSpeed(0.2F); - p.setFoodLevel(20); - p.setFireTicks(0); - p.removePotionEffect(PotionEffectType.JUMP); - pli.getSpectatorManager().setSpectate(p, false); - - Bukkit.getServer().getPluginManager().callEvent(new PlayerLeaveArenaEvent(p, plugin, this)); - - for (PotionEffect effect : p.getActivePotionEffects()) { - if (effect != null) { - p.removePotionEffect(effect.getType()); - } - } - - for (Entity e : p.getNearbyEntities(50D, 50D, 50D)) { - if (e.getType() == EntityType.DROPPED_ITEM - || e.getType() == EntityType.SLIME - || e.getType() == EntityType.ZOMBIE - || e.getType() == EntityType.SKELETON - || e.getType() == EntityType.SPIDER - || e.getType() == EntityType.CREEPER - || e.getType() == EntityType.VILLAGER - || e.getType() == EntityType.ARMOR_STAND - || e.getType() == EntityType.PIG_ZOMBIE - || e.getType() == EntityType.ARMOR_STAND - || e.getType() == EntityType.BOAT - || e.getType() == EntityType.HORSE - || e.getType() == EntityType.ARROW) { - e.remove(); - } - } - - // pli.global_players.remove(playername); - if (pli.global_arcade_spectator.containsKey(playername)) { - pli.global_arcade_spectator.remove(playername); - } - - if (pli.getPClasses().containsKey(playername)) { - pli.getPClasses().remove(playername); - } - - Util.updateSign(plugin, this); - - Bukkit.getScheduler().runTaskLater(this.getPlugin(), new Runnable() { - public void run() { - try { - if (p != null) { - pli.getHologramsHandler().sendAllHolograms(p); - } - } catch (Exception e) { - System.out.println("Failed playing hologram: " + e.getMessage()); - if (MinigamesAPI.getAPI().debug) { - e.printStackTrace(); - } - } - } - }, 10L); - - if (pli.getClassesHandler().lasticonm.containsKey(p.getName())) { - IconMenu iconm = pli.getClassesHandler().lasticonm.get(p.getName()); - iconm.destroy(); - pli.getClassesHandler().lasticonm.remove(p.getName()); - } - - final String arenaname = this.getInternalName(); - final Arena a = this; - final boolean started_ = started; - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - if (p != null) { - if (ai == null || a.isArcadeMain()) { - if (a.mainlobby != null) { - Util.teleportPlayerFixed(p, a.mainlobby); - if (hasLeaveCommand()) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - playLeaveCommand(p); - } - }, 10L); - } - } else if (a.waitinglobby != null) { - Util.teleportPlayerFixed(p, a.waitinglobby); - } - } - p.setFireTicks(0); - p.setFlying(false); - if (!p.isOp()) { - p.setAllowFlight(false); - } - p.setGameMode(ap.getOriginalGamemode()); - p.setLevel(ap.getOriginalXplvl()); - p.getInventory().setContents(ap.getInventory()); - p.getInventory().setArmorContents(ap.getArmorInventory()); - p.updateInventory(); - p.updateInventory(); - - if (started_) { - pli.getStatsInstance().updateSQLKillsDeathsAfter(p, a); - if (!ap.isNoReward()) { - pli.getRewardsInstance().giveWinReward(playername, a, temp_players, global_coin_multiplier); - } else { - ap.setNoReward(false); - } - } - - if (plugin.getConfig().getBoolean("config.send_stats_on_stop")) { - Util.sendStatsMessage(pli, p); - } - - if (pli.global_lost.containsKey(playername)) { - pli.getSpectatorManager().showSpectator(p); - pli.global_lost.remove(playername); - } else { - pli.getSpectatorManager().showSpectators(p); - } - - try { - pli.scoreboardManager.removeScoreboard(arenaname, p); - } catch (Exception e) { - // - } - } - } - }, 5L); - - if (plugin.getConfig().getBoolean("config.bungee.teleport_all_to_server_on_stop.tp")) { - final String server = plugin.getConfig().getString("config.bungee.teleport_all_to_server_on_stop.server"); - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - BungeeUtil.connectToServer(MinigamesAPI.getAPI(), p.getName(), server); - } - }, 30L); - return; - } - } - - protected void playLeaveCommand(Player p) { - final String path = "arenas." + name + ".leavecommand"; - final String leavecommand = pli.getArenasConfig().getConfig().getString(path); - p.getServer().dispatchCommand(p, leavecommand); - } - - private boolean hasLeaveCommand() { - final String path = "arenas." + name + ".leavecommand"; - return pli.getArenasConfig().getConfig().isSet(path); - } - - /** - * Spectate the game generally (not specifically after death) - * - * @param playername - * name of the player - */ - public void spectateGame(String playername) { - final Player p = Bukkit.getPlayer(playername); - if (p == null) { - return; - } - Util.clearInv(p); - p.setAllowFlight(true); - p.setFlying(true); - pli.getSpectatorManager().hideSpectator(p, this.getAllPlayers()); - pli.scoreboardManager.updateScoreboard(plugin, this); - if (!pli.last_man_standing) { - if (this.getPlayerAlive() < 1) { - final Arena a = this; - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - a.stopArena(); - } - }, 20L); - } else { - spectateRaw(p); - } - } else { - if (this.getPlayerAlive() < 2) { - final Arena a = this; - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - a.stop(); - } - }, 20L); - } else { - spectateRaw(p); - } - } - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - Util.clearInv(p); - Util.giveSpectatorItems(plugin, p); - } - }, 3L); - } - - /** - * Spectate the game after death - * - * @param playername - * name of the player - */ - public void spectate(String playername) { - if (Validator.isPlayerValid(plugin, playername, this)) { - this.onEliminated(playername); - final Player p = Bukkit.getPlayer(playername); - if (p == null) { - return; - } - - pli.global_lost.put(playername, this); - - pli.getSpectatorManager().setSpectate(p, true); - if (!plugin.getConfig().getBoolean("config.spectator.spectator_after_fall_or_death")) { - this.leavePlayer(playername, false, false); - pli.scoreboardManager.updateScoreboard(plugin, this); - return; - } - spectateGame(playername); - } - } - - public void spectateRaw(final Player p) { - if (pli.dead_in_fake_bed_effects) { - Effects.playFakeBed(this, p); - } - - if (pli.spectator_mode_1_8) { - Effects.sendGameModeChange(p, 3); - } - - final Location temp = this.spawns.get(0); - try { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - if (specspawn != null) { - Util.teleportPlayerFixed(p, specspawn); - } else { - Util.teleportPlayerFixed(p, temp.clone().add(0D, 30D, 0D)); - } - } - }, 2L); - } catch (Exception e) { - if (specspawn != null) { - Util.teleportPlayerFixed(p, specspawn); - } else { - Util.teleportPlayerFixed(p, temp.clone().add(0D, 30D, 0D)); - } - } - } - - public void spectateArcade(String playername) { - Player p = Bukkit.getPlayer(playername); - pli.global_players.put(playername, currentarena); - pli.global_arcade_spectator.put(playername, currentarena); - Util.teleportPlayerFixed(p, currentarena.getSpawns().get(0).clone().add(0D, 30D, 0D)); - p.setAllowFlight(true); - p.setFlying(true); - pli.getSpectatorManager().setSpectate(p, true); - } - - int currentlobbycount = 10; - int currentingamecount = 10; - int currenttaskid = 0; - - public void setTaskId(int id) { - this.currenttaskid = id; - } - - public int getTaskId() { - return this.currenttaskid; - } - - /** - * Starts the lobby countdown and the arena afterwards - * - * You can insta-start an arena by using Arena.start(); - */ - public void startLobby() { - startLobby(true); - } - - public void startLobby(final boolean countdown) { - if (currentstate != ArenaState.JOIN) { - return; - } - this.setArenaState(ArenaState.STARTING); - Util.updateSign(plugin, this); - currentlobbycount = pli.lobby_countdown; - final Arena a = this; - - // skip countdown - if (!countdown) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - currentarena.getArena().start(true); - } - }, 10L); - } - - Sound lobbycountdown_sound_ = null; - try { - lobbycountdown_sound_ = Sound.valueOf(plugin.getConfig().getString("config.sounds.lobby_countdown")); - } catch (Exception e) { - ; - } - final Sound lobbycountdown_sound = lobbycountdown_sound_; - - currenttaskid = Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - currentlobbycount--; - if (currentlobbycount == 60 || currentlobbycount == 30 || currentlobbycount == 15 || currentlobbycount == 10 || currentlobbycount < 6) { - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - if (countdown) { - Util.sendMessage(plugin, p, pli.getMessagesConfig().teleporting_to_arena_in.replaceAll("", Integer.toString(currentlobbycount))); - if (lobbycountdown_sound != null) { - p.playSound(p.getLocation(), lobbycountdown_sound, 1F, 0F); - } - } - } - } - } - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - p.setExp(1F * ((1F * currentlobbycount) / (1F * pli.lobby_countdown))); - if (pli.use_xp_bar_level) { - p.setLevel(currentlobbycount); - } - } - } - if (currentlobbycount < 1) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - currentarena.getArena().start(true); - } - }, 10L); - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - } - } - } - }, 5L, 20).getTaskId(); - } - - /** - * Instantly starts the arena, teleports players and udpates the arena - */ - public void start(boolean tp) { - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - } - currentingamecount = pli.ingame_countdown; - if (tp) { - pspawnloc = Util.teleportAllPlayers(currentarena.getArena().getAllPlayers(), currentarena.getArena().spawns); - } - boolean clearinv = plugin.getConfig().getBoolean("config.countdowns.clearinv_while_ingamecountdown"); - for (String p_ : currentarena.getArena().getAllPlayers()) { - Player p = Bukkit.getPlayer(p_); - p.setWalkSpeed(0.0F); - p.setFoodLevel(5); - p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 9999999, -7)); // -5 - pli.scoreboardLobbyManager.removeScoreboard(this.getInternalName(), p); - if (clearinv) { - Util.clearInv(p); - } - } - final Arena a = this; - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - pli.scoreboardManager.updateScoreboard(plugin, a); - } - }, 20L); - startedIngameCountdown = true; - if (!plugin.getConfig().getBoolean("config.countdowns.ingame_countdown_enabled")) { - startRaw(a); - return; - } - - Sound ingamecountdown_sound_ = null; - try { - ingamecountdown_sound_ = Sound.valueOf(plugin.getConfig().getString("config.sounds.ingame_countdown")); - } catch (Exception e) { - ; - } - final Sound ingamecountdown_sound = ingamecountdown_sound_; - - currenttaskid = Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - currentingamecount--; - if (currentingamecount == 60 || currentingamecount == 30 || currentingamecount == 15 || currentingamecount == 10 || currentingamecount < 6) { - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - Util.sendMessage(plugin, p, pli.getMessagesConfig().starting_in.replaceAll("", Integer.toString(currentingamecount))); - if (ingamecountdown_sound != null) { - p.playSound(p.getLocation(), ingamecountdown_sound, 1F, 0F); - } - } - } - } - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - p.setExp(1F * ((1F * currentingamecount) / (1F * pli.ingame_countdown))); - if (pli.use_xp_bar_level) { - p.setLevel(currentingamecount); - } - } - } - if (currentingamecount < 1) { - startRaw(a); - } - } - }, 5L, 20).getTaskId(); - - for (final String p_ : this.getAllPlayers()) { - if (pli.getShopHandler().hasItemBought(p_, "coin_boost2")) { - global_coin_multiplier = 2; - break; - } - if (pli.getShopHandler().hasItemBought(p_, "coin_boost3")) { - global_coin_multiplier = 3; - break; - } - } - } - - public void startRaw(final Arena a) { - currentarena.getArena().setArenaState(ArenaState.INGAME); - startedIngameCountdown = false; - Util.updateSign(plugin, a); - Bukkit.getServer().getPluginManager().callEvent(new ArenaStartEvent(plugin, this)); - boolean send_game_started_msg = plugin.getConfig().getBoolean("config.send_game_started_msg"); - for (String p_ : a.getAllPlayers()) { - try { - if (!pli.global_lost.containsKey(p_)) { - Player p = Bukkit.getPlayer(p_); - if (plugin.getConfig().getBoolean("config.auto_add_default_kit")) { - if (!pli.getClassesHandler().hasClass(p_)) { - pli.getClassesHandler().setClass("default", p_, false); - } - pli.getClassesHandler().getClass(p_); - } else { - Util.clearInv(Bukkit.getPlayer(p_)); - pli.getClassesHandler().getClass(p_); - } - if (plugin.getConfig().getBoolean("config.shop_enabled")) { - pli.getShopHandler().giveShopItems(p); - } - p.setFlying(false); - p.setAllowFlight(false); - } - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - System.out.println("Failed to set class: " + e.getMessage() + " at [1] " + e.getStackTrace()[1].getLineNumber() + " [0] " + e.getStackTrace()[0].getLineNumber()); - } - Player p = Bukkit.getPlayer(p_); - p.setWalkSpeed(0.2F); - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); - p.setFoodLevel(20); - p.removePotionEffect(PotionEffectType.JUMP); - if (send_game_started_msg) { - p.sendMessage(pli.getMessagesConfig().game_started); - } - } - if (plugin.getConfig().getBoolean("config.bungee.whitelist_while_game_running")) { - Bukkit.setWhitelist(true); - } - started = true; - Bukkit.getServer().getPluginManager().callEvent(new ArenaStartedEvent(plugin, this)); - started(); - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - } - - // Maximum game time: - maximum_game_time = Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerValid(plugin, p_, a)) { - Bukkit.getPlayer(p_).sendMessage(pli.getMessagesConfig().stop_cause_maximum_game_time); - } - } - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - a.stopArena(); - } - }, 5 * 20L); - } - }, 20L * 60L * (long) plugin.getConfig().getDouble("config.defaults.default_max_game_time_in_minutes") - 5 * 20L); - } - - /** - * Gets executed after an arena started (after ingame countdown) - */ - public void started() { - System.out.println(this.getInternalName() + " started."); - } - - boolean temp_delay_stopped = false; - - /** - * Invoked externally to stop the arena; esures that it only is called once. - */ - public synchronized void stopArena() { - // TODO eliminate synchronized but check for the current arena state before actually invoking stop - this.stop(); - } - - /** - * Stops the arena and teleports all players to the mainlobby - */ - protected void stop() { - Bukkit.getServer().getPluginManager().callEvent(new ArenaStopEvent(plugin, this)); - final Arena a = this; - if (maximum_game_time != null) { - maximum_game_time.cancel(); - } - temp_players = new ArrayList(players); - if (!temp_delay_stopped) { - if (plugin.getConfig().getBoolean("config.delay.enabled")) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - temp_delay_stopped = true; - a.stopArena(); - } - }, plugin.getConfig().getInt("config.delay.amount_seconds") * 20L); - this.setArenaState(ArenaState.RESTARTING); - Util.updateSign(plugin, this); - if (plugin.getConfig().getBoolean("config.spawn_fireworks_for_winners")) { - if (this.getAllPlayers().size() > 0) { - Util.spawnFirework(Bukkit.getPlayer(this.getAllPlayers().get(0))); - } - } - return; - } - } - temp_delay_stopped = false; - - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - - } - - this.setArenaState(ArenaState.RESTARTING); - - final ArrayList temp = new ArrayList(this.getAllPlayers()); - for (final String p_ : temp) { - try { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - if (Validator.isPlayerOnline(p_)) { - for (Entity e : Bukkit.getPlayer(p_).getNearbyEntities(50, 50, 50)) { - if (e.getType() == EntityType.DROPPED_ITEM - || e.getType() == EntityType.ENDERMAN - || e.getType() == EntityType.SLIME - || e.getType() == EntityType.ZOMBIE - || e.getType() == EntityType.SKELETON - || e.getType() == EntityType.SPIDER - || e.getType() == EntityType.CREEPER - || e.getType() == EntityType.VILLAGER - || e.getType() == EntityType.ARMOR_STAND - || e.getType() == EntityType.ARROW) { - e.remove(); - } - } - } - } - }, 10L); - } catch (Exception e) { - System.out.println("Failed clearing entities."); - } - leavePlayer(p_, false, true); - } - - try { - for (ItemStack item : global_drops) { - if (item != null) { - item.setType(Material.AIR); - } - } - } catch (Exception e) { - System.out.println("Failed clearing items: " + e.getMessage()); - } - - if (a.getArenaType() == ArenaType.REGENERATION) { - reset(); - } else { - a.setArenaState(ArenaState.JOIN); - Util.updateSign(plugin, a); - } - - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - players.clear(); - for (IconMenu im : pli.getClassesHandler().lasticonm.values()) { - im.destroy(); - } - } - }, 10L); - - started = false; - startedIngameCountdown = false; - - temp_countdown = true; - skip_join_lobby = false; - currentspawn = 0; - - try { - pli.scoreboardManager.clearScoreboard(this.getInternalName()); - pli.scoreboardLobbyManager.clearScoreboard(this.getInternalName()); - } catch (Exception e) { - // - } - - /* - * try { pli.getStatsInstance().updateSkulls(); } catch (Exception e) { - * - * } - */ - - if (plugin.getConfig().getBoolean("config.bungee.whitelist_while_game_running")) { - Bukkit.setWhitelist(false); - } - - if (plugin.getConfig().getBoolean("config.execute_cmds_on_stop")) { - String[] cmds = plugin.getConfig().getString("config.cmds").split(";"); - if (cmds.length > 0) { - for (String cmd : cmds) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd); - } - } - } - - if (plugin.getConfig().getBoolean("config.bungee.teleport_all_to_server_on_stop.tp")) { - final String server = plugin.getConfig().getString("config.bungee.teleport_all_to_server_on_stop.server"); - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - for (Player p : Bukkit.getOnlinePlayers()) { - BungeeUtil.connectToServer(MinigamesAPI.getAPI(), p.getName(), server); - } - } - }, 30L); - return; - } - - if (plugin.getConfig().getBoolean("config.execute_cmds_on_stop")) { - String[] cmds = plugin.getConfig().getString("config.cmds_after").split(";"); - if (cmds.length > 0) { - for (String cmd : cmds) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd); - } - } - } - - if (ai != null) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - if (ai != null) { - ai.nextMinigame(); - ai = null; - } - } - }, 10L); - } else { - // Map rotation only works without Arcade - // check if there is only one player or none left - if (temp.size() < 2) { - return; - } - if (plugin.getConfig().getBoolean("config.map_rotation")) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - a.nextArenaOnMapRotation(temp); - } - }, 35L); - } - } - - } - - /** - * Rebuilds an arena from file (only for arenas of REGENERATION type) - */ - public void reset() { - if (pli.old_reset) { - ArenaLogger.debug("Resetting using old method."); - try { - Util.loadArenaFromFileSYNC(plugin, this); - } catch (Exception e) { - ArenaLogger.debug("Error resetting map using old method. " + e.getMessage()); - } - } else { - sr.reset(); - } - } - - /*** - * Use this when someone got killed/pushed down/eliminated in some way by a player - * - * @param playername - * The player that got eliminated - */ - public void onEliminated(String playername) { - if (lastdamager.containsKey(playername)) { - Player killer = Bukkit.getPlayer(lastdamager.get(playername)); - if (killer != null) { - pli.getStatsInstance().addDeath(playername); - this.temp_kill_count.put(killer.getName(), this.temp_kill_count.containsKey(killer.getName()) ? this.temp_kill_count.get(killer.getName()) + 1 : 1); - this.temp_death_count.put(playername, this.temp_death_count.containsKey(playername) ? this.temp_death_count.get(playername) + 1 : 1); - pli.getRewardsInstance().giveKillReward(killer.getName()); - Util.sendMessage(plugin, killer, MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().you_got_a_kill.replaceAll("", playername)); - for (String p_ : this.getAllPlayers()) { - if (!p_.equalsIgnoreCase(killer.getName())) { - if (Validator.isPlayerOnline(p_)) { - Bukkit.getPlayer(p_).sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().player_was_killed_by.replaceAll("", playername).replaceAll("", killer.getName())); - } - } - } - } - lastdamager.remove(playername); - } else { - pli.getStatsInstance().addDeath(playername); - } - } - - /** - * Will shuffle all arenas and join the next available arena - * - * @param players - */ - public void nextArenaOnMapRotation(ArrayList players) { - ArrayList arenas = pli.getArenas(); - Collections.shuffle(arenas); - for (Arena a : arenas) { - if (a.getArenaState() == ArenaState.JOIN && a != this) { - System.out.println(plugin.getName() + ": Next arena on map rotation: " + a.getInternalName()); - for (String p_ : players) { - if (!a.containsPlayer(p_)) { - a.joinPlayerLobby(p_, false); - } - } - } - } - } - - public String getPlayerCount() { - int alive = 0; - for (String p_ : getAllPlayers()) { - if (pli.global_lost.containsKey(p_)) { - continue; - } else { - alive++; - } - } - return Integer.toString(alive) + "/" + Integer.toString(getAllPlayers().size()); - } - - public int getPlayerAlive() { - int alive = 0; - for (String p_ : getAllPlayers()) { - if (pli.global_lost.containsKey(p_)) { - continue; - } else { - alive++; - } - } - return alive; - } - - public Location getWaitingLobbyTemp() { - return this.waitinglobby; - } - - public Location getMainLobbyTemp() { - return this.mainlobby; - } - - public ArcadeInstance getArcadeInstance() { - return ai; - } - - public boolean isArcadeMain() { - return isArcadeMain; - } - - public void setArcadeMain(boolean t) { - isArcadeMain = t; - } - - public HashMap getPSpawnLocs() { - return pspawnloc; - } - - public JavaPlugin getPlugin() { - return plugin; - } - - public PluginInstance getPluginInstance() { - return pli; - } - - public int getCurrentIngameCountdownTime() { - return this.currentingamecount; - } - - public int getCurrentLobbyCountdownTime() { - return this.currentlobbycount; - } - - public boolean getIngameCountdownStarted() { - return this.startedIngameCountdown; - } - - public boolean isSuccessfullyInit() { - return isSuccessfullyInitialized; - } - - public void setLastDamager(String targetPlayer, String damager) - { - this.lastdamager.put(targetPlayer, damager); - } - +/** + * This is the base class for arenas. + * + *

+ * An arena is a place the players fight against and where all the action takes place. + *

+ * + *

+ * Minigames will have to override this class. + *

+ * + *

+ * NOTICE: There are some race conditions on high load. For example joining VIPs while state switches etc. Spigot itself may invoke the tasks serial meaning one after another but there can be external + * events from network at the moment (MinigamesAPI-Bungee). + *

+ * + * @author mepeisen + */ +public class Arena +{ + + /** + * Plugin the arena belongs to. + */ + private final JavaPlugin plugin; + + /** + * Minigames lib representation of the minigame plugin. + */ + private final PluginInstance pli; + + /** + * The reference to the arcade instance if this arena is part of arcade mode; {@code null} for classic arena. + * + *

+ * TODO: Review if we really need a back reference to the arcade instance. + *

+ */ + private ArcadeInstance ai; + + /** + * {@code true} if this is the main (= first arena) for arcade. + */ + private boolean isArcadeMain = false; + + /** + * {@code true} {@link #init(Location, ArrayList, Location, Location, int, int, boolean)} was called. + */ + private boolean isSuccessfullyInitialized = false; + + /** + * List of configured spawn locations. + */ + private final ArrayList spawns = new ArrayList<>(); + + /** + * The player spawn locations. + */ + private HashMap pspawnloc = new HashMap<>(); + + /** + * Match statistics: The last damager of players; helps fetching the player that kills another one. + */ + private final HashMap lastdamager = new HashMap<>(); + + /** + * Match statistics: Kill count of players. + */ + HashMap temp_kill_count = new HashMap<>(); + + /** + * Match statistics: Death count of players. + */ + HashMap temp_death_count = new HashMap<>(); + + /** + * Location of the main lobby. + */ + private Location mainlobby; + + /** + * Location of the waiting lobby. + */ + private Location waitinglobby; + + /** + * Spawn location for spectators. + */ + private Location specspawn; + + /** + * The join sign location. + */ + private Location signloc; + + /** + * Max amount of players for the game. + */ + private int max_players; + + /** + * The minimum amount of players for starting the game. + */ + private int min_players; + + /** + * {@code true} if this is a vip arena. + * + *

+ * Players can only join vip arenas if they have permission "arenas.$arenaname$". + *

+ */ + private boolean viparena; + + /** + * The players joined the arena and playing. + */ + private final ArrayList players = new ArrayList<>(); + + private ArrayList temp_players = new ArrayList<>(); + + /** + * The arena type. + */ + private ArenaType type = ArenaType.DEFAULT; + + /** + * The current arena state. + */ + private ArenaState currentstate = ArenaState.JOIN; + + /** + * Internal/ technical name of the arena. + */ + private String name = "mainarena"; + + /** + * The human readable arena name (public name). + */ + private String displayname = "mainarena"; + + private boolean started = false; + private boolean startedIngameCountdown = false; + + /** + * {@code true} if the arenaa score board will be shown. + */ + private boolean showArenascoreboard = true; + + /** + * {@code true} if the pvp is allowed in every game state. + */ + private boolean alwaysPvP = false; + + private SmartReset sr = null; + + /** + * The arena boundaries. + */ + private Cuboid boundaries; + + /** + * The lobby boundaries. + */ + private Cuboid lobby_boundaries; + + /** + * The spectator boundaries. + */ + private Cuboid spec_boundaries; + + private boolean temp_countdown = true; + boolean skip_join_lobby = false; + + private int currentspawn = 0; + + int global_coin_multiplier = 1; + + private BukkitTask maximum_game_time; + + ArrayList global_drops = new ArrayList<>(); + + private int currentlobbycount = 10; + private int currentingamecount = 10; + + /** + * the current task id. + * + * @deprecated remove in 1.5.0; current no one ever sets this, review the trials to cancel tasks to find out what is going on here; possibly a bug. + */ + @Deprecated + private int currenttaskid = 0; + + boolean temp_delay_stopped = false; + + /** + * Creates a normal singlespawn arena + * + * @param plugin + * JavaPlugin the arena belongs to + * @param name + * name of the arena + */ + public Arena(final JavaPlugin plugin, final String name) + { + this.plugin = plugin; + this.name = name; + this.sr = new SmartReset(this); + this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + } + + /** + * Creates an arena of given arenatype + * + * @param plugin + * JavaPlugin the arena belongs to + * @param name + * name of the arena + * @param type + * arena type + */ + public Arena(final JavaPlugin plugin, final String name, final ArenaType type) + { + this(plugin, name); + this.type = type; + } + + /** + * This is for loading existing arenas + * + * @param signloc + * (optional) Location of join sign; {@link Util#getSignLocationFromArena} + * @param spawns + * (optional) The spawn points; {@link Util#getAllSpawns} + * @param mainlobby + * The main lobby location; {@link Util#getMainLobby} + * @param waitinglobby + * The waiting lobby location; F.e. {@code Util#getComponentForArena} with argument "lobby". + * @param max_players + * The max players count; {@link ArenaSetup#getPlayerCount} + * @param min_players + * The min players count; {@link ArenaSetup#getPlayerCount} + * @param viparena + * {@code true} for vip arena; players will need a permission in vip arenas. + */ + @SuppressWarnings("hiding") + public void init(final Location signloc, final ArrayList spawns, final Location mainlobby, final Location waitinglobby, final int max_players, final int min_players, + final boolean viparena) + { + // TODO Disallow duplicate init; reloading should create a new arena instance. + this.signloc = signloc; + this.spawns.clear(); + if (spawns != null) + { + this.spawns.addAll(spawns); + } + this.mainlobby = mainlobby; + this.waitinglobby = waitinglobby; + this.viparena = viparena; + this.min_players = min_players; + this.max_players = max_players; + this.showArenascoreboard = this.pli.arenaSetup.getShowScoreboard(this.plugin, this.getInternalName()); + this.isSuccessfullyInitialized = true; + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_LOW) && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)) + { + try + { + final Location low_boundary = Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_LOW); + final Location high_boundary = Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH); + if (low_boundary != null && high_boundary != null) + { + this.boundaries = new Cuboid(low_boundary, high_boundary); + } + else + { + this.plugin.getServer().getConsoleSender() + .sendMessage(ChatColor.RED + "The boundaries of an arena appear to be invalid (missing world?), please fix! Arena: " + this.getInternalName()); + this.isSuccessfullyInitialized = false; + } + } + catch (final Exception e) + { + // TODO log stack trace + this.plugin.getServer().getConsoleSender().sendMessage( + ChatColor.RED + "Failed to save arenas as you forgot to set boundaries or they could not be found. This will lead to errors later, please fix your setup. " + e.getMessage()); + this.isSuccessfullyInitialized = false; + } + } + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "lobbybounds.bounds.low") + && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "lobbybounds.bounds.high")) + { + try + { + this.lobby_boundaries = new Cuboid(Util.getComponentForArena(this.plugin, this.getInternalName(), "lobbybounds.bounds.low"), + Util.getComponentForArena(this.plugin, this.getInternalName(), "lobbybounds.bounds.high")); + } + catch (final Exception e) + { + // TODO log stack trace + this.isSuccessfullyInitialized = false; + } + } + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "specbounds.bounds.low") && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "specbounds.bounds.high")) + { + try + { + this.spec_boundaries = new Cuboid(Util.getComponentForArena(this.plugin, this.getInternalName(), "specbounds.bounds.low"), + Util.getComponentForArena(this.plugin, this.getInternalName(), "specbounds.bounds.high")); + } + catch (final Exception e) + { + // TODO log stack trace + this.isSuccessfullyInitialized = false; + } + } + + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "specspawn")) + { + this.specspawn = Util.getComponentForArena(this.plugin, this.getInternalName(), "specspawn"); + } + + final String path = "arenas." + this.name + ".displayname"; + if (this.pli.getArenasConfig().getConfig().isSet(path)) + { + this.displayname = ChatColor.translateAlternateColorCodes('&', this.pli.getArenasConfig().getConfig().getString("arenas." + this.name + ".displayname")); + } + else + { + this.pli.getArenasConfig().getConfig().set(path, this.name); + this.pli.getArenasConfig().saveConfig(); + this.displayname = this.name; + } + + } + + /** + * This is for loading existing arenas + * + * @param signloc + * @param spawn + * @param mainlobby + * @param waitinglobby + * @param max_players + * @param min_players + * @param viparena + * @return this object + * @deprecated use {@link #init(Location, ArrayList, Location, Location, int, int, boolean)} instead; will be removed in 1.15.X + */ + @SuppressWarnings("hiding") + @Deprecated + public Arena initArena(final Location signloc, final ArrayList spawn, final Location mainlobby, final Location waitinglobby, final int max_players, final int min_players, + final boolean viparena) + { + this.init(signloc, spawn, mainlobby, waitinglobby, max_players, min_players, viparena); + return this; + } + + /** + * Returns this object + * + * @return this object + * @deprecated will be removed in 1.15.X + */ + @Deprecated + public Arena getArena() + { + return this; + } + + /** + * Returns the smart reset object for resetting blocks that changed during game play. + * + * @return smart reset helper. + */ + public SmartReset getSmartReset() + { + return this.sr; + } + + /** + * Returns the show scoreboard flag, read from arena setup. + * + *

+ * If set to false the score boards are not shown/ updated. + *

+ * + * @return {@code true} to show the score oards. + */ + public boolean getShowScoreboard() + { + return this.showArenascoreboard; + } + + /** + * Returns the always pvp flag that controls the pvp behaviour. + * + *

+ * TODO describe what the flag actually does in ArenaListener + *

+ * + * @return {@code true} for allowing pvp in any game state. + */ + public boolean getAlwaysPvP() + { + return this.alwaysPvP; + } + + /** + * Sets the always pvp flag; see {@link #getAlwaysPvP()} for details. + * + * @param t + * new value + */ + public void setAlwaysPvP(final boolean t) + { + this.alwaysPvP = t; + } + + /** + * Returns the join sign location. + * + * @return join sign location; {@code null} if there is no join sign. + */ + public Location getSignLocation() + { + return this.signloc; + } + + /** + * Sets the join sign location. + * + * @param l + * new location. + */ + public void setSignLocation(final Location l) + { + this.signloc = l; + } + + /** + * Returns the spawns of this arena. + * + * @return spawns. + * + * @deprecated The method signature will change in 1.15.0; will return the List interface instead of ArrayList and will return an immutable list so that spawns cannot be changed from outside. + */ + @Deprecated + public ArrayList getSpawns() + { + return this.spawns; + } + + /** + * Returns the arena boundaries. + * + * @return arena boundaries; may return {@code null} for invalid arena setups. + */ + public Cuboid getBoundaries() + { + return this.boundaries; + } + + /** + * Returns the lobby boundaries. + * + * @return lobby boundaries; may return {@code null} if no arena lobby exists. + */ + public Cuboid getLobbyBoundaries() + { + return this.lobby_boundaries; + } + + /** + * Returns the spectator boundaries. + * + * @return spec boundaries; may return {@code null} if spectating is not configured. + */ + public Cuboid getSpecBoundaries() + { + return this.spec_boundaries; + } + + /** + * Returns the technical/ internal arena name. + * + * @return technical arena name. + */ + public String getInternalName() + { + return this.name; + } + + /** + * Returns the human readable arena name. + * + * @return arena name used by signs and messages. + */ + public String getDisplayName() + { + return this.displayname; + } + + /** + * Please use getInternalName() for the internal name and getDisplayName() for the optional displayname + * + * @return Internal name of arena (same as getInternalName()) + * @deprecated replaced by {@link #getInternalName()} or {@link #getDisplayName()} + */ + @Deprecated + public String getName() + { + return this.name; + } + + /** + * Returns the maximum players playing a match. + * + * @return maximum players. + */ + public int getMaxPlayers() + { + return this.max_players; + } + + /** + * Returns the minimum players. + * + * @return minimum players. + */ + public int getMinPlayers() + { + return this.min_players; + } + + /** + * Sets the minimum players. + * + *

+ * Changes are only respected in a new match, cannot influence an already running match. + *

+ * + * @param i + * new minimum players. + */ + public void setMinPlayers(final int i) + { + this.min_players = i; + } + + /** + * Sets the maximum players. + * + *

+ * Changes are only respected in a new match, cannot influence an already running match. + *

+ * + * @param i + * new maximum players. + */ + public void setMaxPlayers(final int i) + { + this.max_players = i; + } + + /** + * Checks if this is a vip arena. + * + * @return {@code true} if the players need a permission to play within this arena. + */ + public boolean isVIPArena() + { + return this.viparena; + } + + /** + * Sets the vip arena flag. + * + *

+ * Changes are only respected in a new match/joins, cannot influence players already being in the waiting lobby. + *

+ * + * @param t + * {@code true} to make this a vip arena. + */ + public void setVIPArena(final boolean t) + { + this.viparena = t; + } + + /** + * Returns the players that joined the arena. + * + * @return active players within this arena. + * + * @deprecated The method signature will change in 1.15.0; will return the List interface instead of ArrayList and will return an immutable list so that spawns cannot be changed from outside. + */ + @Deprecated + public ArrayList getAllPlayers() + { + return this.players; + } + + /** + * Checks if a player already joined the arena. + * + * @param playername + * Name of the player to be searched. + * @return {@code true} if the player already joined the arena. + */ + public boolean containsPlayer(final String playername) + { + // potential performance lack for huge arenas or massive invocation count; hash set can be better. + // at the moment we decided to keep up the ordering the players joined the arena. + return this.players.contains(playername); + } + + /** + * Please do not use this function to add players + * + * @param playername + * name of the player + * @return true on success + * + * @deprecated will be removed in 1.15.0; replaces by {@link #spectateGame(String)} or {@link #joinPlayerLobby(String)} + */ + @Deprecated + public boolean addPlayer(final String playername) + { + return this.players.add(playername); + } + + /** + * Please do not use this function to remove players + * + * @param playername + * name of the player + * @return true on success + * + * @deprecated will be removed in 1.15.0; replaces by {@link #leavePlayer(String, boolean, boolean)} + */ + @Deprecated + public boolean removePlayer(final String playername) + { + return this.players.remove(playername); + } + + /** + * Returns the current state of arena. + * + * @return current arena state. + */ + public ArenaState getArenaState() + { + return this.currentstate; + } + + /** + * Sets the current arena state. + * + * @param s + * new arena state. + */ + void setArenaState(final ArenaState s) + { + this.currentstate = s; + } + + /** + * Returns the arena type. + * + * @return type of this arena. + */ + public ArenaType getArenaType() + { + return this.type; + } + + /** + * Joins the waiting lobby of an arena + * + * @param playername + * the playername + */ + public void joinPlayerLobby(final String playername) + { + if (this.getArenaState() != ArenaState.JOIN && this.getArenaState() != ArenaState.STARTING) + { + // arena ingame or restarting + return; + } + if (!this.pli.arenaSetup.getArenaEnabled(this.plugin, this.getInternalName())) + { + Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().arena_disabled); + return; + } + if (this.pli.containsGlobalPlayer(playername)) + { + Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().already_in_arena); + return; + } + if (this.ai == null && this.isVIPArena()) + { + if (Validator.isPlayerOnline(playername)) + { + if (!Bukkit.getPlayer(playername).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) + { + Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().no_perm_to_join_arena.replaceAll("", this.getInternalName())); + return; + } + } + } + if (this.ai == null && this.getAllPlayers().size() > this.max_players - 1) + { + // arena full + + // if player vip -> kick someone and continue + System.out.println(playername + " is vip: " + Bukkit.getPlayer(playername).hasPermission("arenas.*")); + if (!Bukkit.getPlayer(playername).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) + { + // no VIP. + return; + } + + // player has vip + boolean noone_found = true; + final ArrayList temp = new ArrayList<>(this.getAllPlayers()); + for (final String p_ : temp) + { + if (Validator.isPlayerOnline(p_)) + { + if (!Bukkit.getPlayer(p_).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(p_).hasPermission("arenas.*")) + { + this.leavePlayer(p_, false, true); + Bukkit.getPlayer(p_).sendMessage(this.pli.getMessagesConfig().you_got_kicked_because_vip_joined); + noone_found = false; + break; + } + } + } + if (noone_found) + { + // apparently everyone is vip, can't join + return; + } + } + + if (MinigamesAPI.getAPI().global_party.containsKey(playername)) + { + final Party party = MinigamesAPI.getAPI().global_party.get(playername); + final int playersize = party.getPlayers().size() + 1; + if (this.getAllPlayers().size() + playersize > this.max_players) + { + Bukkit.getPlayer(playername).sendMessage(MinigamesAPI.getAPI().partymessages.party_too_big_to_join); + return; + } + + for (final String p_ : party.getPlayers()) + { + if (Validator.isPlayerOnline(p_)) + { + boolean cont = true; + MinigamesAPI.getAPI(); + for (final PluginInstance pli_ : MinigamesAPI.pinstances.values()) + { + // if (!pli_.getPlugin().getName().equalsIgnoreCase("MGArcade") && pli_.global_players.containsKey(p_)) { + if (pli_.containsGlobalPlayer(p_)) + { + cont = false; + } + } + if (cont) + { + this.joinPlayerLobby(p_); + } + } + } + } + + if (this.getAllPlayers().size() == this.max_players - 1) + { + if (this.currentlobbycount > 16 && this.getArenaState() == ArenaState.STARTING) + { + this.currentlobbycount = 16; + } + } + this.pli.global_players.put(playername, this); + this.players.add(playername); + + if (Validator.isPlayerValid(this.plugin, playername, this)) + { + final Player p = Bukkit.getPlayer(playername); + final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); + Bukkit.getServer().getPluginManager().callEvent(new PlayerJoinLobbyEvent(p, this.plugin, this)); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().you_joined_arena.replaceAll("", this.getDisplayName())); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().minigame_description); + if (this.pli.getArenasConfig().getConfig().isSet("arenas." + this.getInternalName() + ".author")) + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().author_of_the_map.replaceAll("", this.getDisplayName()).replaceAll("", + this.pli.getArenasConfig().getConfig().getString("arenas." + this.getInternalName() + ".author"))); + } + if (this.pli.getArenasConfig().getConfig().isSet("arenas." + this.getInternalName() + ".description")) + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().description_of_the_map.replaceAll("", this.getDisplayName()).replaceAll("", + this.pli.getArenasConfig().getConfig().getString("arenas." + this.getInternalName() + ".description"))); + } + + Bukkit.getScheduler().runTaskLater(this.getPlugin(), () -> { + try + { + if (p != null) + { + Arena.this.pli.getHologramsHandler().sendAllHolograms(p); + } + } + catch (final Exception e) + { + System.out.println("Failed playing hologram: " + e.getMessage()); + MinigamesAPI.getAPI(); + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + }, 15L); + + for (final String p_ : this.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_) && !p_.equalsIgnoreCase(p.getName())) + { + final Player p__ = Bukkit.getPlayer(p_); + final int count = this.getAllPlayers().size(); + final int maxcount = this.getMaxPlayers(); + Util.sendMessage(this.plugin, p__, this.pli.getMessagesConfig().broadcast_player_joined.replaceAll("", p.getName()).replace("", Integer.toString(count)) + .replace("", Integer.toString(maxcount))); + } + } + Util.updateSign(this.plugin, this); + + if (this.ai == null && !this.isArcadeMain()) + { + this.skip_join_lobby = this.plugin.getConfig().getBoolean("config.countdowns.skip_lobby"); + } + + final Arena a = this; + ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); + if (this.getArenaType() == ArenaType.JUMPNRUN) + { + // jump & run + Util.teleportPlayerFixed(p, this.spawns.get(this.currentspawn)); + if (this.currentspawn < this.spawns.size() - 1) + { + this.currentspawn++; + } + Util.clearInv(p); + ap.setOriginalGamemode(p.getGameMode()); + ap.setOriginalXplvl(p.getLevel()); + p.setGameMode(GameMode.SURVIVAL); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); + return; + } + + // no jump & run + if (this.startedIngameCountdown) + { + // already in count down + this.pli.scoreboardLobbyManager.removeScoreboard(this.getInternalName(), p); + Util.teleportAllPlayers(this.getAllPlayers(), this.spawns); + p.setFoodLevel(5); + p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 9999999, -7)); // -5 + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> p.setWalkSpeed(0.0F), 1L); + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> Util.clearInv(p), 15L); + ap.setOriginalXplvl(p.getLevel()); + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + if (a.getArenaState() != ArenaState.INGAME) + { + Util.giveLobbyItems(Arena.this.plugin, p); + } + ap.setOriginalGamemode(p.getGameMode()); + p.setGameMode(GameMode.SURVIVAL); + }, 20L); + this.pli.scoreboardManager.updateScoreboard(this.plugin, this); + return; + } + + // no count down + this.pli.scoreboardLobbyManager.updateScoreboard(this.plugin, this); + if (!this.skip_join_lobby) + { + Util.teleportPlayerFixed(p, this.waitinglobby); + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)), 3L); + } + else + { + Util.teleportAllPlayers(this.getAllPlayers(), this.spawns); + } + + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> Util.clearInv(p), 10L); + ap.setOriginalXplvl(p.getLevel()); + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + if (a.getArenaState() != ArenaState.INGAME) + { + Util.giveLobbyItems(Arena.this.plugin, p); + } + ap.setOriginalGamemode(p.getGameMode()); + p.setGameMode(GameMode.SURVIVAL); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); + }, 15L); + if (!this.skip_join_lobby) + { + if (this.ai == null && this.getAllPlayers().size() > this.min_players - 1) + { + this.startLobby(this.temp_countdown); + } + else if (this.ai != null) + { + this.startLobby(this.temp_countdown); + } + } + else + { + if (this.ai == null && !this.isArcadeMain() && this.getAllPlayers().size() > this.min_players - 1) + { + this.startLobby(false); + } + } + } + } + + /** + * Primarily used for ArcadeInstance to join a waiting lobby without countdown + * + * @param playername + * name of the player + * @param countdown + * count down in seconds. + */ + public void joinPlayerLobby(final String playername, final boolean countdown) + { + this.temp_countdown = countdown; + this.joinPlayerLobby(playername); + } + + /** + * Joins the waiting lobby of an arena using given arcade instance + * + * @param playername + * the player name + * @param arcade + * the ArcadeInstance + * @param countdown + * count down in seconds. + * @param skip_lobby + * {@code true} to directly get to the spawn by skipping the lobby. + */ + public void joinPlayerLobby(final String playername, final ArcadeInstance arcade, final boolean countdown, final boolean skip_lobby) + { + this.skip_join_lobby = skip_lobby; + this.ai = arcade; + this.joinPlayerLobby(playername, countdown); // join playerlobby without lobby countdown + } + + /** + * Leaves the current arena, won't do anything if not present in any arena + * + * @param playername + * @param fullLeave + * Determines if player left only minigame or the server + * @deprecated replaced by {@code leavePlayer(playername, fullLeave, false)}; removed in 1.15.0 + */ + @Deprecated + public void leavePlayer(final String playername, final boolean fullLeave) + { + this.leavePlayerRaw(playername, fullLeave); + } + + /** + * Leaves the current arena, won't do anything if not present in any arena + * + * @param playername + * name of the player that left the arena + * @param fullLeave + * Determines if player left only minigame ({@code false}) or the server ({@code true}) + * @param endofGame + * {@code true} if the game leave was caused by the end of the game. + */ + public void leavePlayer(final String playername, final boolean fullLeave, final boolean endofGame) + { + if (!endofGame) + { + final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); + ap.setNoReward(true); + } + + // replace with leavePlayerRaw as soon as the method was removed. + // currently we invoke leavePlayer because some minigames override leavePlayer. + this.leavePlayer(playername, fullLeave); + + if (!endofGame) + { + if (this.getAllPlayers().size() < 2) + { + if (this.getArenaState() != ArenaState.JOIN) + { + if (this.getArenaState() == ArenaState.STARTING && !this.startedIngameCountdown) + { + // cancel starting + this.setArenaState(ArenaState.JOIN); + Util.updateSign(this.plugin, this); + try + { + Bukkit.getScheduler().cancelTask(this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + for (final String p_ : this.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_)) + { + Util.sendMessage(this.plugin, Bukkit.getPlayer(p_), this.pli.getMessagesConfig().cancelled_starting); + } + } + return; + } + this.stopArena(); + } + } + } + } + + /** + * Leave the player (real implementation). + * + * @param playername + * name of the player + * @param fullLeave + * {@code true} if the player left the server + */ + private void leavePlayerRaw(final String playername, final boolean fullLeave) + { + if (!this.containsPlayer(playername)) + { + return; + } + final Player p = Bukkit.getPlayer(playername); + final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); + if (p == null) + { + return; + } + if (p.isDead()) + { + System.out.println(p.getName() + " unexpectedly appeared dead! Sending respawn packet."); + Effects.playRespawn(p, this.plugin); + Bukkit.getScheduler().runTaskLater(this.plugin, () -> Arena.this.leavePlayerRaw(playername, fullLeave), 10L); + return; + } + this.players.remove(playername); + if (this.pli.containsGlobalPlayer(playername)) + { + this.pli.global_players.remove(playername); + } + if (fullLeave) + { + this.plugin.getConfig().set("temp.left_players." + playername + ".name", playername); + this.plugin.getConfig().set("temp.left_players." + playername + ".plugin", this.plugin.getName()); + if (this.plugin.getConfig().getBoolean("config.reset_inventory_when_players_leave_server")) + { + for (final ItemStack i : ap.getInventory()) + { + if (i != null) + { + this.plugin.getConfig().set("temp.left_players." + playername + ".items." + Integer.toString((int) Math.round(Math.random() * 10000)) + i.getType().toString(), i); + } + } + } + this.plugin.saveConfig(); + + try + { + if (this.pli.global_lost.containsKey(playername)) + { + this.pli.getSpectatorManager().showSpectator(p); + this.pli.global_lost.remove(playername); + } + else + { + this.pli.getSpectatorManager().showSpectators(p); + } + if (this.pli.global_arcade_spectator.containsKey(playername)) + { + this.pli.global_arcade_spectator.remove(playername); + } + // TODO Do we need null check here? It already returns if p is null (see above) + if (p != null) + { + p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); + Util.teleportPlayerFixed(p, this.mainlobby); + p.setFireTicks(0); + p.setFlying(false); + if (!p.isOp()) + { + p.setAllowFlight(false); + } + p.setGameMode(ap.getOriginalGamemode()); + p.setLevel(ap.getOriginalXplvl()); + p.getInventory().setContents(ap.getInventory()); + p.getInventory().setArmorContents(ap.getArmorInventory()); + p.updateInventory(); + + p.setWalkSpeed(0.2F); + p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 20 * 2, 50)); + p.setHealth(20); + p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); + this.pli.getSpectatorManager().setSpectate(p, false); + this.pli.getStatsInstance().updateSQLKillsDeathsAfter(p, this); + } + if (this.pli.getClassesHandler().lasticonm.containsKey(p.getName())) + { + final IconMenu iconm = this.pli.getClassesHandler().lasticonm.get(p.getName()); + iconm.destroy(); + this.pli.getClassesHandler().lasticonm.remove(p.getName()); + } + } + catch (final Exception e) + { + System.out.println("Failed to log out player out of arena. " + e.getMessage()); + } + return; + } + Util.clearInv(p); + p.setWalkSpeed(0.2F); + p.setFoodLevel(20); + p.setFireTicks(0); + p.removePotionEffect(PotionEffectType.JUMP); + this.pli.getSpectatorManager().setSpectate(p, false); + + Bukkit.getServer().getPluginManager().callEvent(new PlayerLeaveArenaEvent(p, this.plugin, this)); + + for (final PotionEffect effect : p.getActivePotionEffects()) + { + if (effect != null) + { + p.removePotionEffect(effect.getType()); + } + } + + for (final Entity e : p.getNearbyEntities(50D, 50D, 50D)) + { + if (e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER + || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.PIG_ZOMBIE + || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.BOAT || e.getType() == EntityType.HORSE || e.getType() == EntityType.ARROW) + { + e.remove(); + } + } + + // pli.global_players.remove(playername); + if (this.pli.global_arcade_spectator.containsKey(playername)) + { + this.pli.global_arcade_spectator.remove(playername); + } + + if (this.pli.getPClasses().containsKey(playername)) + { + this.pli.getPClasses().remove(playername); + } + + Util.updateSign(this.plugin, this); + + Bukkit.getScheduler().runTaskLater(this.getPlugin(), () -> { + try + { + if (p != null) + { + Arena.this.pli.getHologramsHandler().sendAllHolograms(p); + } + } + catch (final Exception e) + { + System.out.println("Failed playing hologram: " + e.getMessage()); + MinigamesAPI.getAPI(); + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + }, 10L); + + if (this.pli.getClassesHandler().lasticonm.containsKey(p.getName())) + { + final IconMenu iconm = this.pli.getClassesHandler().lasticonm.get(p.getName()); + iconm.destroy(); + this.pli.getClassesHandler().lasticonm.remove(p.getName()); + } + + final String arenaname = this.getInternalName(); + final Arena a = this; + final boolean started_ = this.started; + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + if (p != null) + { + if (Arena.this.ai == null || a.isArcadeMain()) + { + if (a.mainlobby != null) + { + Util.teleportPlayerFixed(p, a.mainlobby); + if (Arena.this.hasLeaveCommand()) + { + Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.playLeaveCommand(p), 10L); + } + } + else if (a.waitinglobby != null) + { + Util.teleportPlayerFixed(p, a.waitinglobby); + } + } + p.setFireTicks(0); + p.setFlying(false); + if (!p.isOp()) + { + p.setAllowFlight(false); + } + p.setGameMode(ap.getOriginalGamemode()); + p.setLevel(ap.getOriginalXplvl()); + p.getInventory().setContents(ap.getInventory()); + p.getInventory().setArmorContents(ap.getArmorInventory()); + p.updateInventory(); + p.updateInventory(); + + if (started_) + { + Arena.this.pli.getStatsInstance().updateSQLKillsDeathsAfter(p, a); + if (!ap.isNoReward()) + { + Arena.this.pli.getRewardsInstance().giveWinReward(playername, a, Arena.this.temp_players, Arena.this.global_coin_multiplier); + } + else + { + ap.setNoReward(false); + } + } + + if (Arena.this.plugin.getConfig().getBoolean("config.send_stats_on_stop")) + { + Util.sendStatsMessage(Arena.this.pli, p); + } + + if (Arena.this.pli.global_lost.containsKey(playername)) + { + Arena.this.pli.getSpectatorManager().showSpectator(p); + Arena.this.pli.global_lost.remove(playername); + } + else + { + Arena.this.pli.getSpectatorManager().showSpectators(p); + } + + try + { + Arena.this.pli.scoreboardManager.removeScoreboard(arenaname, p); + } + catch (final Exception e) + { + // + } + } + }, 5L); + + if (this.plugin.getConfig().getBoolean("config.bungee.teleport_all_to_server_on_stop.tp")) + { + final String server = this.plugin.getConfig().getString("config.bungee.teleport_all_to_server_on_stop.server"); + Bukkit.getScheduler().runTaskLater(this.plugin, () -> BungeeUtil.connectToServer(MinigamesAPI.getAPI(), p.getName(), server), 30L); + return; + } + } + + /** + * Plays the leave command for given player. + * + * @param p + * leave command. + */ + void playLeaveCommand(final Player p) + { + final String path = "arenas." + this.name + ".leavecommand"; + final String leavecommand = this.pli.getArenasConfig().getConfig().getString(path); + p.getServer().dispatchCommand(p, leavecommand); + } + + /** + * Checks if there is a leave command. + * + * @return {@code true} if there is a leave command. + */ + private boolean hasLeaveCommand() + { + final String path = "arenas." + this.name + ".leavecommand"; + return this.pli.getArenasConfig().getConfig().isSet(path); + } + + /** + * Spectate the game generally (not specifically after death) + * + * @param playername + * name of the player + */ + public void spectateGame(final String playername) + { + final Player p = Bukkit.getPlayer(playername); + if (p == null) + { + return; + } + Util.clearInv(p); + p.setAllowFlight(true); + p.setFlying(true); + this.pli.getSpectatorManager().hideSpectator(p, this.getAllPlayers()); + this.pli.scoreboardManager.updateScoreboard(this.plugin, this); + if (!this.pli.last_man_standing) + { + if (this.getPlayerAlive() < 1) + { + final Arena a = this; + Bukkit.getScheduler().runTaskLater(this.plugin, () -> a.stopArena(), 20L); + } + else + { + this.spectateRaw(p); + } + } + else + { + if (this.getPlayerAlive() < 2) + { + final Arena a = this; + Bukkit.getScheduler().runTaskLater(this.plugin, () -> a.stop(), 20L); + } + else + { + this.spectateRaw(p); + } + } + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + Util.clearInv(p); + Util.giveSpectatorItems(Arena.this.plugin, p); + }, 3L); + } + + /** + * Spectate the game after death + * + * @param playername + * name of the player + */ + public void spectate(final String playername) + { + if (Validator.isPlayerValid(this.plugin, playername, this)) + { + this.onEliminated(playername); + final Player p = Bukkit.getPlayer(playername); + if (p == null) + { + return; + } + + this.pli.global_lost.put(playername, this); + + this.pli.getSpectatorManager().setSpectate(p, true); + if (!this.plugin.getConfig().getBoolean("config.spectator.spectator_after_fall_or_death")) + { + this.leavePlayer(playername, false, false); + this.pli.scoreboardManager.updateScoreboard(this.plugin, this); + return; + } + this.spectateGame(playername); + } + } + + /** + * Real implementation of joining the arena to spectate. + * + * @param p + * player that wants to spectate the arena. + */ + private void spectateRaw(final Player p) + { + if (this.pli.dead_in_fake_bed_effects) + { + Effects.playFakeBed(this, p); + } + + if (this.pli.spectator_mode_1_8) + { + Effects.sendGameModeChange(p, 3); + } + + final Location temp = this.spawns.get(0); + try + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + if (Arena.this.specspawn != null) + { + Util.teleportPlayerFixed(p, Arena.this.specspawn); + } + else + { + Util.teleportPlayerFixed(p, temp.clone().add(0D, 30D, 0D)); + } + }, 2L); + } + catch (final Exception e) + { + if (this.specspawn != null) + { + Util.teleportPlayerFixed(p, this.specspawn); + } + else + { + Util.teleportPlayerFixed(p, temp.clone().add(0D, 30D, 0D)); + } + } + } + + /** + * Let given player spectate the arena; invoked internally by arcade instance. + * + * @param playername + */ + public void spectateArcade(final String playername) + { + // TODO Check why this method is different from spectate + final Player p = Bukkit.getPlayer(playername); + this.pli.global_players.put(playername, this); + this.pli.global_arcade_spectator.put(playername, this); + Util.teleportPlayerFixed(p, this.getSpawns().get(0).clone().add(0D, 30D, 0D)); + p.setAllowFlight(true); + p.setFlying(true); + this.pli.getSpectatorManager().setSpectate(p, true); + } + + /** + * Sets the task id. + * + * @param id + * task id. + * @deprecated will be removed in 1.5.0; replaced by a more helpful task management, for example to perform tasks during lobby countdown etc. + */ + @Deprecated + public void setTaskId(final int id) + { + this.currenttaskid = id; + } + + /** + * Returns the task id + * + * @return task id + * @deprecated will be removed in 1.5.0; replaced by a more helpful task management, for example to perform tasks during lobby countdown etc. + */ + @Deprecated + public int getTaskId() + { + return this.currenttaskid; + } + + /** + * Starts the lobby count down and the arena afterwards + * + * You can instant start an arena by using {@link #start()}. + */ + public void startLobby() + { + this.startLobby(true); + } + + /** + * Starts the lobby count down with given amount of seconds. + * + * @param countdown + * lobby count down in seconds. + */ + public void startLobby(final boolean countdown) + { + if (this.currentstate != ArenaState.JOIN) + { + return; + } + this.setArenaState(ArenaState.STARTING); + Util.updateSign(this.plugin, this); + this.currentlobbycount = this.pli.lobby_countdown; + final Arena a = this; + + // skip countdown + if (!countdown) + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> Arena.this.start(true), 10L); + } + + Sound lobbycountdown_sound_ = null; + try + { + lobbycountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString("config.sounds.lobby_countdown")); + } + catch (final Exception e) + { + // silently ignore + } + final Sound lobbycountdown_sound = lobbycountdown_sound_; + + this.currenttaskid = Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), () -> { + Arena.this.currentlobbycount--; + if (Arena.this.currentlobbycount == 60 || Arena.this.currentlobbycount == 30 || Arena.this.currentlobbycount == 15 || Arena.this.currentlobbycount == 10 + || Arena.this.currentlobbycount < 6) + { + for (final String p_1 : a.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_1)) + { + final Player p1 = Bukkit.getPlayer(p_1); + if (countdown) + { + Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll("", Integer.toString(Arena.this.currentlobbycount))); + if (lobbycountdown_sound != null) + { + p1.playSound(p1.getLocation(), lobbycountdown_sound, 1F, 0F); + } + } + } + } + } + for (final String p_2 : a.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_2)) + { + final Player p2 = Bukkit.getPlayer(p_2); + p2.setExp(1F * ((1F * Arena.this.currentlobbycount) / (1F * Arena.this.pli.lobby_countdown))); + if (Arena.this.pli.use_xp_bar_level) + { + p2.setLevel(Arena.this.currentlobbycount); + } + } + } + if (Arena.this.currentlobbycount < 1) + { + Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.start(true), 10L); + try + { + Bukkit.getScheduler().cancelTask(Arena.this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + } + }, 5L, 20).getTaskId(); + } + + /** + * Instantly starts the arena, teleports players and udpates the arena + */ + public void start(final boolean tp) + { + try + { + Bukkit.getScheduler().cancelTask(this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + this.currentingamecount = this.pli.ingame_countdown; + if (tp) + { + this.pspawnloc = Util.teleportAllPlayers(this.getAllPlayers(), this.spawns); + } + final boolean clearinv = this.plugin.getConfig().getBoolean("config.countdowns.clearinv_while_ingamecountdown"); + for (final String p_ : this.getAllPlayers()) + { + final Player p = Bukkit.getPlayer(p_); + p.setWalkSpeed(0.0F); + p.setFoodLevel(5); + p.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 9999999, -7)); // -5 + this.pli.scoreboardLobbyManager.removeScoreboard(this.getInternalName(), p); + if (clearinv) + { + Util.clearInv(p); + } + } + Bukkit.getScheduler().runTaskLater(this.plugin, () -> Arena.this.pli.scoreboardManager.updateScoreboard(Arena.this.plugin, this), 20L); + this.startedIngameCountdown = true; + if (!this.plugin.getConfig().getBoolean("config.countdowns.ingame_countdown_enabled")) + { + this.startRaw(); + return; + } + + Sound ingamecountdown_sound_ = null; + try + { + ingamecountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString("config.sounds.ingame_countdown")); + } + catch (final Exception e) + { + // silently ignore + } + final Sound ingamecountdown_sound = ingamecountdown_sound_; + + this.currenttaskid = Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), () -> { + Arena.this.currentingamecount--; + if (Arena.this.currentingamecount == 60 || Arena.this.currentingamecount == 30 || Arena.this.currentingamecount == 15 || Arena.this.currentingamecount == 10 + || Arena.this.currentingamecount < 6) + { + for (final String p_1 : Arena.this.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_1)) + { + final Player p1 = Bukkit.getPlayer(p_1); + Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().starting_in.replaceAll("", Integer.toString(Arena.this.currentingamecount))); + if (ingamecountdown_sound != null) + { + p1.playSound(p1.getLocation(), ingamecountdown_sound, 1F, 0F); + } + } + } + } + for (final String p_2 : Arena.this.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_2)) + { + final Player p2 = Bukkit.getPlayer(p_2); + p2.setExp(1F * ((1F * Arena.this.currentingamecount) / (1F * Arena.this.pli.ingame_countdown))); + if (Arena.this.pli.use_xp_bar_level) + { + p2.setLevel(Arena.this.currentingamecount); + } + } + } + if (Arena.this.currentingamecount < 1) + { + Arena.this.startRaw(); + } + }, 5L, 20).getTaskId(); + + for (final String p_ : this.getAllPlayers()) + { + if (this.pli.getShopHandler().hasItemBought(p_, "coin_boost2")) + { + this.global_coin_multiplier = 2; + break; + } + if (this.pli.getShopHandler().hasItemBought(p_, "coin_boost3")) + { + this.global_coin_multiplier = 3; + break; + } + } + } + + /** + * Real implementation of starting the arena. + */ + void startRaw() + { + this.setArenaState(ArenaState.INGAME); + this.startedIngameCountdown = false; + Util.updateSign(this.plugin, this); + Bukkit.getServer().getPluginManager().callEvent(new ArenaStartEvent(this.plugin, this)); + final boolean send_game_started_msg = this.plugin.getConfig().getBoolean("config.send_game_started_msg"); + for (final String p_ : this.getAllPlayers()) + { + try + { + if (!this.pli.global_lost.containsKey(p_)) + { + final Player p = Bukkit.getPlayer(p_); + if (this.plugin.getConfig().getBoolean("config.auto_add_default_kit")) + { + if (!this.pli.getClassesHandler().hasClass(p_)) + { + this.pli.getClassesHandler().setClass("default", p_, false); + } + this.pli.getClassesHandler().getClass(p_); + } + else + { + Util.clearInv(Bukkit.getPlayer(p_)); + this.pli.getClassesHandler().getClass(p_); + } + if (this.plugin.getConfig().getBoolean("config.shop_enabled")) + { + this.pli.getShopHandler().giveShopItems(p); + } + p.setFlying(false); + p.setAllowFlight(false); + } + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + System.out.println("Failed to set class: " + e.getMessage() + " at [1] " + e.getStackTrace()[1].getLineNumber() + " [0] " + e.getStackTrace()[0].getLineNumber()); + } + final Player p = Bukkit.getPlayer(p_); + p.setWalkSpeed(0.2F); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); + p.setFoodLevel(20); + p.removePotionEffect(PotionEffectType.JUMP); + if (send_game_started_msg) + { + p.sendMessage(this.pli.getMessagesConfig().game_started); + } + } + if (this.plugin.getConfig().getBoolean("config.bungee.whitelist_while_game_running")) + { + Bukkit.setWhitelist(true); + } + this.started = true; + Bukkit.getServer().getPluginManager().callEvent(new ArenaStartedEvent(this.plugin, this)); + this.started(); + try + { + Bukkit.getScheduler().cancelTask(this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + + // Maximum game time: + this.maximum_game_time = Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + for (final String p_ : Arena.this.getAllPlayers()) + { + if (Validator.isPlayerValid(Arena.this.plugin, p_, Arena.this)) + { + Bukkit.getPlayer(p_).sendMessage(Arena.this.pli.getMessagesConfig().stop_cause_maximum_game_time); + } + } + Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> this.stopArena(), 5 * 20L); + }, 20L * 60L * (long) this.plugin.getConfig().getDouble("config.defaults.default_max_game_time_in_minutes") - 5 * 20L); + } + + /** + * Gets executed after an arena started (after ingame countdown); can be overridden by minigames. + */ + public void started() + { + // TODO replace println with logging + System.out.println(this.getInternalName() + " started."); + } + + /** + * Invoked externally to stop the arena; esures that it only is called once. + */ + public synchronized void stopArena() + { + // TODO eliminate synchronized but check for the current arena state before actually invoking stop + // TODO check if spigot really invokes the tasks in serial order. + // This is an implementation detail that may break in future versions. + this.stop(); + } + + /** + * Stops the arena and teleports all players to the mainlobby + */ + protected void stop() + { + Bukkit.getServer().getPluginManager().callEvent(new ArenaStopEvent(this.plugin, this)); + final Arena a = this; + if (this.maximum_game_time != null) + { + this.maximum_game_time.cancel(); + } + this.temp_players = new ArrayList<>(this.players); + if (!this.temp_delay_stopped) + { + if (this.plugin.getConfig().getBoolean("config.delay.enabled")) + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + Arena.this.temp_delay_stopped = true; + a.stopArena(); + }, this.plugin.getConfig().getInt("config.delay.amount_seconds") * 20L); + this.setArenaState(ArenaState.RESTARTING); + Util.updateSign(this.plugin, this); + if (this.plugin.getConfig().getBoolean("config.spawn_fireworks_for_winners")) + { + if (this.getAllPlayers().size() > 0) + { + Util.spawnFirework(Bukkit.getPlayer(this.getAllPlayers().get(0))); + } + } + return; + } + } + this.temp_delay_stopped = false; + + try + { + Bukkit.getScheduler().cancelTask(this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + + this.setArenaState(ArenaState.RESTARTING); + + final ArrayList temp = new ArrayList<>(this.getAllPlayers()); + for (final String p_ : temp) + { + try + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + if (Validator.isPlayerOnline(p_)) + { + for (final Entity e : Bukkit.getPlayer(p_).getNearbyEntities(50, 50, 50)) + { + if (e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.ENDERMAN || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE + || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER + || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.ARROW) + { + e.remove(); + } + } + } + }, 10L); + } + catch (final Exception e) + { + System.out.println("Failed clearing entities."); + } + this.leavePlayer(p_, false, true); + } + + try + { + for (final ItemStack item : this.global_drops) + { + if (item != null) + { + item.setType(Material.AIR); + } + } + } + catch (final Exception e) + { + System.out.println("Failed clearing items: " + e.getMessage()); + } + + if (a.getArenaType() == ArenaType.REGENERATION) + { + this.reset(); + } + else + { + a.setArenaState(ArenaState.JOIN); + Util.updateSign(this.plugin, a); + } + + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + Arena.this.players.clear(); + for (final IconMenu im : Arena.this.pli.getClassesHandler().lasticonm.values()) + { + im.destroy(); + } + }, 10L); + + this.started = false; + this.startedIngameCountdown = false; + + this.temp_countdown = true; + this.skip_join_lobby = false; + this.currentspawn = 0; + + try + { + this.pli.scoreboardManager.clearScoreboard(this.getInternalName()); + this.pli.scoreboardLobbyManager.clearScoreboard(this.getInternalName()); + } + catch (final Exception e) + { + // + } + + /* + * try { pli.getStatsInstance().updateSkulls(); } catch (Exception e) { + * + * } + */ + + if (this.plugin.getConfig().getBoolean("config.bungee.whitelist_while_game_running")) + { + Bukkit.setWhitelist(false); + } + + if (this.plugin.getConfig().getBoolean("config.execute_cmds_on_stop")) + { + final String[] cmds = this.plugin.getConfig().getString("config.cmds").split(";"); + if (cmds.length > 0) + { + for (final String cmd : cmds) + { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd); + } + } + } + + if (this.plugin.getConfig().getBoolean("config.bungee.teleport_all_to_server_on_stop.tp")) + { + final String server = this.plugin.getConfig().getString("config.bungee.teleport_all_to_server_on_stop.server"); + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + for (final Player p : Bukkit.getOnlinePlayers()) + { + BungeeUtil.connectToServer(MinigamesAPI.getAPI(), p.getName(), server); + } + }, 30L); + return; + } + + if (this.plugin.getConfig().getBoolean("config.execute_cmds_on_stop")) + { + final String[] cmds = this.plugin.getConfig().getString("config.cmds_after").split(";"); + if (cmds.length > 0) + { + for (final String cmd : cmds) + { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd); + } + } + } + + if (this.ai != null) + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + if (Arena.this.ai != null) + { + Arena.this.ai.nextMinigame(); + Arena.this.ai = null; + } + }, 10L); + } + else + { + // Map rotation only works without Arcade + // check if there is only one player or none left + if (temp.size() < 2) + { + return; + } + if (this.plugin.getConfig().getBoolean("config.map_rotation")) + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> a.nextArenaOnMapRotation(temp), 35L); + } + } + + } + + /** + * Rebuilds an arena from file (only for arenas of REGENERATION type) + */ + public void reset() + { + if (this.pli.old_reset) + { + ArenaLogger.debug("Resetting using old method."); + try + { + PrivateUtil.loadArenaFromFileSYNC(this.plugin, this); + } + catch (final Exception e) + { + ArenaLogger.debug("Error resetting map using old method. " + e.getMessage()); + } + } + else + { + this.sr.reset(); + } + } + + /*** + * Use this when someone got killed/pushed down/eliminated in some way by a player + * + * @param playername + * The player that got eliminated + */ + public void onEliminated(final String playername) + { + if (this.lastdamager.containsKey(playername)) + { + final Player killer = Bukkit.getPlayer(this.lastdamager.get(playername)); + if (killer != null) + { + this.pli.getStatsInstance().addDeath(playername); + this.temp_kill_count.put(killer.getName(), this.temp_kill_count.containsKey(killer.getName()) ? this.temp_kill_count.get(killer.getName()) + 1 : 1); + this.temp_death_count.put(playername, this.temp_death_count.containsKey(playername) ? this.temp_death_count.get(playername) + 1 : 1); + this.pli.getRewardsInstance().giveKillReward(killer.getName()); + Util.sendMessage(this.plugin, killer, MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().you_got_a_kill.replaceAll("", playername)); + for (final String p_ : this.getAllPlayers()) + { + if (!p_.equalsIgnoreCase(killer.getName())) + { + if (Validator.isPlayerOnline(p_)) + { + Bukkit.getPlayer(p_).sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().player_was_killed_by.replaceAll("", playername) + .replaceAll("", killer.getName())); + } + } + } + } + this.lastdamager.remove(playername); + } + else + { + this.pli.getStatsInstance().addDeath(playername); + } + } + + /** + * Will shuffle all arenas and join the next available arena + * + * @param players + * @deprecated will be removed in 1.5.0; replaced by some external shuffle support class + */ + public void nextArenaOnMapRotation(final ArrayList players) + { + final ArrayList arenas = new ArrayList<>(this.pli.getArenas()); + Collections.shuffle(arenas); + for (final Arena a : arenas) + { + if (a.getArenaState() == ArenaState.JOIN && a != this) + { + System.out.println(this.plugin.getName() + ": Next arena on map rotation: " + a.getInternalName()); + for (final String p_ : players) + { + if (!a.containsPlayer(p_)) + { + a.joinPlayerLobby(p_, false); + } + } + } + } + } + + /** + * Returns a string of players left in the game. + * + * @return string: "alive/total" + */ + public String getPlayerCount() + { + return Integer.toString(this.getPlayerAlive()) + "/" + Integer.toString(this.getAllPlayers().size()); + } + + /** + * Returns the amount of players left in the game. + * + * @return amount of players excluding players that already lost. + */ + public int getPlayerAlive() + { + int alive = 0; + for (final String p_ : this.getAllPlayers()) + { + if (this.pli.global_lost.containsKey(p_)) + { + continue; + } + else + { + alive++; + } + } + return alive; + } + + /** + * Returns the waiting lobby location. + * + * @return waiting lobby location; may be {@code null}. + * @deprecated will be removed in 1.5.0; replaced by {@link #getWaitingLobby()} + */ + @Deprecated + public Location getWaitingLobbyTemp() + { + return this.waitinglobby; + } + + /** + * Returns the waiting lobby location. + * + * @return waiting lobby location; may be {@code null}. + */ + public Location getWaitingLobby() + { + return this.waitinglobby; + } + + /** + * Returns the main lobby location. + * + * @return main lobby location; may be {@code null}. + * @deprecated will be removed in 1.5.0; replaced by {@link #getMainLobby()} + */ + @Deprecated + public Location getMainLobbyTemp() + { + return this.mainlobby; + } + + /** + * Returns the main lobby location. + * + * @return main lobby location; may be {@code null}. + */ + public Location getMainLobby() + { + return this.mainlobby; + } + + /** + * Returns the arcade instance if this arena is part of arcade. + * + * @return arcade instance or {@code null} for stand alone arenas. + */ + public ArcadeInstance getArcadeInstance() + { + return this.ai; + } + + /** + * Checks if this is the arcade main arena. + * + * @return {@code true} if this is the arcade main arena. + */ + public boolean isArcadeMain() + { + // TODO review what this flag is meant for. + // currently no one ever sets this so it is always false; but it is used in some other classes. + return this.isArcadeMain; + } + + /** + * Sets the arcade main flag. + * + * @param t + * arcade main flag + */ + public void setArcadeMain(final boolean t) + { + this.isArcadeMain = t; + } + + /** + * Returns the player spawn locations. + * + * @return player spawn locations. + * + * @deprecated will be removed in 1.5.0; seems not very useful; currently only used in SkyWars. + */ + @Deprecated + public HashMap getPSpawnLocs() + { + return this.pspawnloc; + } + + /** + * Returns the java plugin owning this arena. + * + * @return java plugin + */ + public JavaPlugin getPlugin() + { + return this.plugin; + } + + /** + * Returns the plugin instance owning this arena. + * + * @return minigames plugin instance. + */ + public PluginInstance getPluginInstance() + { + return this.pli; + } + + /** + * Returns the ingame countdown time in seconds + * + * @return countdown time in seconds + */ + public int getCurrentIngameCountdownTime() + { + return this.currentingamecount; + } + + /** + * Returns the lobby countdown time in seconds + * + * @return countdown time in seconds + */ + public int getCurrentLobbyCountdownTime() + { + return this.currentlobbycount; + } + + /** + * Returns the ingame countdown started flag. + * + * @return {@code true} if the ingame countdown already started. + */ + public boolean getIngameCountdownStarted() + { + return this.startedIngameCountdown; + } + + /** + * Returns {@code true} if the arena was initialized. + * + * @return {@code true} for successful init. + */ + public boolean isSuccessfullyInit() + { + return this.isSuccessfullyInitialized; + } + + /** + * Sets last damager for fetching kill statistics. + * + * @param targetPlayer + * target player that was hit + * @param damager + * the damager that shot the profile + */ + public void setLastDamager(final String targetPlayer, final String damager) + { + this.lastdamager.put(targetPlayer, damager); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java new file mode 100644 index 00000000..045555be --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Strings for arenas config. + * + * @author mepeisen + */ +public interface ArenaConfigStrings +{ + + /** arenas lower boundary. */ + String BOUNDS_LOW = "bounds.low"; //$NON-NLS-1$ + + /** arenas higher boundary. */ + String BOUNDS_HIGH = "bounds.high"; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index fa151e80..7e827813 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.io.IOException; @@ -71,1177 +85,1534 @@ import com.comze_instancelabs.minigamesapi.util.Util.CompassPlayer; import com.comze_instancelabs.minigamesapi.util.Validator; -public class ArenaListener implements Listener { - - private JavaPlugin plugin = null; - private PluginInstance pli = null; - - private String minigame = "minigame"; - - - - private ArrayList cmds = new ArrayList(); - private String leave_cmd = "/leave"; - - public int loseY = 4; - - public ArenaListener(JavaPlugin plugin, PluginInstance pinstance, String minigame) { - this.plugin = plugin; - this.pli = pinstance; - this.setName(minigame); - this.leave_cmd = plugin.getConfig().getString("config.leave_command"); - } - - public ArenaListener(JavaPlugin plugin, PluginInstance pinstance, String minigame, ArrayList cmds) { - this(plugin, pinstance, minigame); - this.cmds = cmds; - } - - @EventHandler - public void onPlayerDrop(PlayerDropItemEvent event) { - if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - Arena a = pli.global_players.get(event.getPlayer().getName()); - if (a != null) { - if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.isArcadeMain()) { - event.setCancelled(true); - } - if (a.getArenaState() == ArenaState.INGAME && pli.containsGlobalLost(event.getPlayer().getName())) { - event.setCancelled(true); - } - } - } - } - - @EventHandler - public void onPlayerPickupItem(PlayerPickupItemEvent event) { - // spectators shall not pick up items - if (pli.containsGlobalLost(event.getPlayer().getName()) || pli.getSpectatorManager().isSpectating(event.getPlayer())) { - Arena a = pli.global_lost.get(event.getPlayer().getName()); - if (a != null) { - if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null) { - event.setCancelled(true); - } - } - } - } - - @EventHandler - public void onInventoryClick(InventoryClickEvent event) { - if (event.getWhoClicked() instanceof Player) { - Player p = (Player) event.getWhoClicked(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a != null) { - if (a.getArenaState() == ArenaState.STARTING && a.getArcadeInstance() == null && !a.isArcadeMain()) { - event.setCancelled(true); - } - } - } - } - } - - private List getEntitiesByLocation(Location loc, double d) - { - List ent = new ArrayList(); - for (Entity e : loc.getWorld().getEntities()) { - if (e.getLocation().distanceSquared(loc) <= d) { - ent.add(e); - } - } - return ent; - } - - @EventHandler - public void Space(PlayerMoveEvent event) { - Player p = (Player) event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a != null) { - if (a.getArenaState() == ArenaState.INGAME) { - if (!isSpectating(p)) { - for (Entity e : getEntitiesByLocation(p.getLocation(), 30D)) { - - if (e instanceof Player) { - Player sp = (Player) e; - - if (isSpectating(sp)) { - sp.setVelocity(sp.getLocation().getDirection().setY(0.05D)); - sp.setVelocity(sp.getLocation().getDirection().multiply(-2)); - } - - } - } - } - } - } - } - } - - - - @Deprecated - public static boolean isSpectating(Player p) { - return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onMove(PlayerMoveEvent event) { - try { - final Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - final Arena a = pli.global_players.get(p.getName()); - if (!pli.containsGlobalLost(p.getName()) && !pli.global_arcade_spectator.containsKey(p.getName())) { - if (a.getArenaState() == ArenaState.INGAME) { - if (p.getLocation().getBlockY() + loseY < a.getSpawns().get(0).getBlockY()) { - if (a.getArenaType() == ArenaType.JUMPNRUN) { - Util.teleportPlayerFixed(p, a.getSpawns().get(0)); - } else { - a.spectate(p.getName()); - } - return; - } - if (a.getBoundaries() != null) { - if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) { - Util.pushBack(a.getSpawns().get(0), p); - } - } - } else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaState.JOIN) { - if (!a.isArcadeMain()) { - if (!a.getIngameCountdownStarted()) { - if (p.getLocation().getBlockY() < 0) { - try { - Util.teleportPlayerFixed(p, a.getWaitingLobbyTemp()); - } catch (Exception e) { - System.out.println("Waiting lobby for arena " + a.getInternalName() + " missing, please fix by setting it. " + e.getMessage()); - } - } - if (a.getLobbyBoundaries() != null && !a.skip_join_lobby) { - if (!a.getLobbyBoundaries().containsLocWithoutY(p.getLocation())) { - Util.pushBack(a.getWaitingLobbyTemp(), p); - } - } - } - } - } - } else { - if (a.getArenaState() == ArenaState.INGAME) { - if (pli.spectator_move_y_lock && event.getPlayer().getLocation().getBlockY() < (a.getSpawns().get(0).getBlockY() + 30D) || event.getPlayer().getLocation().getBlockY() > (a.getSpawns().get(0).getBlockY() + 30D)) { - final float b = p.getLocation().getYaw(); - final float c = p.getLocation().getPitch(); - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - p.setAllowFlight(true); - p.setFlying(true); - if (p.isInsideVehicle()) { - Entity ent = p.getVehicle(); - p.leaveVehicle(); - ent.eject(); - } - p.teleport(new Location(p.getWorld(), p.getLocation().getBlockX(), (a.getSpawns().get(0).getBlockY() + 30D), p.getLocation().getBlockZ(), b, c)); - } - }, 1); - return; - } - - if (a.getSpecBoundaries() != null) { - if (!a.getSpecBoundaries().containsLocWithoutY(p.getLocation())) { - Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); - } - return; - } - if (a.getBoundaries() != null) { - if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) { - Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); - } - } - } - } - } - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - - } - - @EventHandler - public void onHunger(FoodLevelChangeEvent event) { - if (event.getEntity() instanceof Player) { - Player p = (Player) event.getEntity(); - if (pli.containsGlobalPlayer(p.getName())) { - if (!pli.global_players.get(p.getName()).isArcadeMain()) { - event.setCancelled(true); - } - } - } - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerDeath(PlayerDeathEvent event) { - if (pli.containsGlobalPlayer(event.getEntity().getName())) { - event.setDeathMessage(null); - final Player p = event.getEntity(); - - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 3, 50)); - - final Arena arena = pli.global_players.get(p.getName()); - if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.getIngameCountdownStarted())) { - if (arena.isArcadeMain()) { - Util.teleportPlayerFixed(p, arena.getWaitingLobbyTemp()); - } - } - - arena.global_drops.addAll(event.getDrops()); - - arena.spectate(p.getName()); - - pli.global_lost.put(p.getName(), arena); - - int count = 0; - // for (String p_ : pli.global_players.keySet()) { - // if (Validator.isPlayerOnline(p_)) { - // if (pli.global_players.get(p_).getInternalName().equalsIgnoreCase(arena.getInternalName())) { - // if (!pli.containsGlobalLost(p_)) { - // count++; - // } - // } - // } - // } - for (String p_ : arena.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - if (!pli.containsGlobalLost(p_)) { - count++; - } - } - } - final int count_ = count; - - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - if (pli.containsGlobalPlayer(p.getName()) && count_ > 1) { - arena.spectate(p.getName()); - } - for (String p_ : arena.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p__ = Bukkit.getPlayer(p_); - Util.sendMessage(plugin, p__, pli.getMessagesConfig().broadcast_players_left.replaceAll("", arena.getPlayerCount())); - } - } - } - }, 5); - - if (pli.last_man_standing) { - if (count < 2) { - // last man standing - arena.stopArena(); - } - } - } - } - - - - @EventHandler - public void NoDamageEntityInLobby(EntityDamageByEntityEvent event){ - if (event.getDamager() instanceof Player) { - Player p = (Player) event.getDamager(); - if (pli.containsGlobalPlayer(p.getName())) { - final Arena arena = pli.global_players.get(p.getName()); - if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) { - Entity e = event.getEntity(); - if (e instanceof ArmorStand || e instanceof ItemFrame || e instanceof Painting || e instanceof Minecart) { - event.setCancelled(false); - } - } - } - } - } - - - @EventHandler - public void NoClickEntityInLobby(PlayerInteractEntityEvent event) throws IOException{ - Player p = event.getPlayer(); - Entity e = event.getRightClicked(); - if(!(e instanceof Player)){ - final Arena arena = pli.global_players.get(p.getName()); - if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) { - if (event.getRightClicked().getType().equals(EntityType.ARMOR_STAND) - || event.getRightClicked().getType().equals(EntityType.MINECART) - || event.getRightClicked().getType().equals(EntityType.MINECART_CHEST) - || event.getRightClicked().getType().equals(EntityType.MINECART_HOPPER) - || event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) - || event.getRightClicked().getType().equals(EntityType.PAINTING)) { - event.setCancelled(true); - return; - } - } - } - } - - - - @EventHandler - public void onEntityDamage(EntityDamageEvent event) { - if (event.getEntity() instanceof Player) { - Player p = (Player) event.getEntity(); - if (pli.containsGlobalPlayer(p.getName()) && pli.containsGlobalLost(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) { - event.setCancelled(true); - } - } - if (event.getCause().equals(DamageCause.ENTITY_ATTACK)) { - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) { - // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); - event.setCancelled(true); - } - if (pli.blood_effects && (a.getArenaState() == ArenaState.INGAME || a.getAlwaysPvP()) && !a.isArcadeMain()) { - Effects.playBloodEffect(p); - } - } - if (pli.containsGlobalLost(p.getName()) || pli.getSpectatorManager().isSpectating(p)) { - // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); - event.setCancelled(true); - } - } else if (event.getCause().equals(DamageCause.FALL)) { - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() != null) { - event.setCancelled(true); - } - } - } - } - } - - @EventHandler - public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { - if (event.getEntity() instanceof Player) { - Player p = (Player) event.getEntity(); - Player attacker = null; - if (event.getDamager() instanceof Projectile) { - Projectile projectile = (Projectile) event.getDamager(); - if (projectile.getShooter() instanceof Player) { - attacker = (Player) projectile.getShooter(); - } - } else if (event.getDamager() instanceof Player) { - attacker = (Player) event.getDamager(); - } else { - return; - } - - if (p != null && attacker != null) { - if (pli.containsGlobalPlayer(p.getName()) && pli.containsGlobalPlayer(attacker.getName())) { - if (pli.getSpectatorManager().isSpectating(p)) { - if (event.getDamager() instanceof Arrow) { - p.teleport(p.getLocation().add(0, 3D, 0)); - - Arrow arr = attacker.launchProjectile(Arrow.class); - arr.setShooter(attacker); - arr.setVelocity(((Arrow) event.getDamager()).getVelocity()); - arr.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); - } else if (event.getDamager() instanceof Egg) { - p.teleport(p.getLocation().add(0, 3D, 0)); - - Egg egg = attacker.launchProjectile(Egg.class); - egg.setShooter(attacker); - egg.setVelocity(((Egg) event.getDamager()).getVelocity()); - egg.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); - } else if (event.getDamager() instanceof Snowball) { - p.teleport(p.getLocation().add(0, 3D, 0)); - - Snowball sb = attacker.launchProjectile(Snowball.class); - sb.setShooter(attacker); - sb.setVelocity(((Snowball) event.getDamager()).getVelocity()); - sb.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); - } else if (event.getDamager() instanceof EnderPearl) { - p.teleport(p.getLocation().add(0, 3D, 0)); - - EnderPearl sb = attacker.launchProjectile(EnderPearl.class); - sb.setShooter(attacker); - sb.setVelocity(((EnderPearl) event.getDamager()).getVelocity()); - sb.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); - } - event.setCancelled(true); - return; - } - if (pli.containsGlobalLost(attacker.getName())) { - event.setCancelled(true); - return; - } - Arena a = (Arena) pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME) { - a.setLastDamager(p.getName(), attacker.getName()); - if (pli.damage_identifier_effects) { - ChatColor c = ChatColor.YELLOW; - if (event.getDamage() >= 5D) { - c = ChatColor.GOLD; - } - if (event.getDamage() >= 9D) { - c = ChatColor.RED; - } - Effects.playHologram(attacker, p.getLocation(), c + Double.toString(event.getDamage()), true, true); - } - } else if (a.getArenaState() == ArenaState.RESTARTING) { - event.setCancelled(true); - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onPaintingBreak(HangingBreakByEntityEvent event) { - if (event.getRemover() instanceof Player) { - String p_ = ((Player) event.getRemover()).getName(); - if (pli.containsGlobalPlayer(p_)) { - event.setCancelled(true); - } - } - - } - - - @EventHandler(priority = EventPriority.HIGH) - public void onExplode(EntityExplodeEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (event.getEntity() != null) { - if (c.containsLocWithoutY(event.getEntity().getLocation())) { - for (Block b : event.blockList()) { - a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); - } - } - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockFromTo(BlockFromToEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (c.containsLocWithoutYD(event.getBlock().getLocation())) { - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getToBlock(), event.getToBlock().getType().equals(Material.CHEST), ChangeCause.FROM_TO); - } else if (a.getArenaState() == ArenaState.RESTARTING) { - event.setCancelled(true); - } - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockFade(BlockFadeEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.FADE); - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onLeavesDecay(LeavesDecayEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST)); - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockPhysics(BlockPhysicsEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (a.getArenaState() == ArenaState.INGAME) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) { - if (event.getChangedType() == Material.CARPET || event.getChangedType() == Material.BED_BLOCK) { - return; - } - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.PHYSICS); - } - } else if (a.getArenaState() == ArenaState.RESTARTING) { - event.setCancelled(true); - } - } - } - } - } - - @EventHandler - public void onBlockRedstone(BlockRedstoneEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getBlock(), false); - } - } - } - } - } - - @EventHandler - public void onBlockSpread(BlockSpreadEvent event) { - // disallow fire spread while the arena restarts - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getBlock().getLocation(), Material.AIR, (byte) 0); - } else if (a.getArenaState() == ArenaState.RESTARTING) { - event.setCancelled(true); - } - } - } - } - } - - @EventHandler - public void onEntityChangeBlock(EntityChangeBlockEvent event) { - if (event.getEntity() instanceof Enderman) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = a.getBoundaries(); - if (c != null) { - if (c.containsLocWithoutY(event.getEntity().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.ENTITY_CHANGE); - } - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockBreak(BlockBreakEvent event) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() != ArenaState.INGAME || pli.containsGlobalLost(p.getName())) { - event.setCancelled(true); - return; - } - if (pli.getSpectatorManager().isSpectating(p)) { - event.setCancelled(true); - return; - } - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BREAK); - if (event.getBlock().getType() == Material.DOUBLE_PLANT) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); - } - if (event.getBlock().getType() == Material.SNOW || event.getBlock().getType() == Material.SNOW_BLOCK) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); - } - if (event.getBlock().getType() == Material.CARPET) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); - } - if (event.getBlock().getType() == Material.CACTUS) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); - } - if (event.getBlock().getType() == Material.BED_BLOCK) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(1D, 0D, 0D).getBlock(), event.getBlock().getLocation().clone().add(1D, 0D, 1D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(-1D, 0D, 0D).getBlock(), event.getBlock().getLocation().clone().add(1D, 0D, -1D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, 1D).getBlock(), event.getBlock().getLocation().clone().add(-1D, 0D, 1D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, -1D).getBlock(), event.getBlock().getLocation().clone().add(-1D, 0D, -1D).getBlock().getType().equals(Material.CHEST)); - } - } - if (event.getBlock().getType() == Material.SIGN_POST || event.getBlock().getType() == Material.WALL_SIGN) { - Arena arena = Util.getArenaBySignLocation(plugin, event.getBlock().getLocation()); - if (arena != null) { - pli.getArenasConfig().getConfig().set("arenas." + arena.getInternalName() + ".sign", null); - pli.getArenasConfig().saveConfig(); - } - } - } - - @EventHandler - public void onBlockBurn(BlockBurnEvent event) { - for (Arena a : pli.getArenas()) { - if (Validator.isArenaValid(plugin, a) && a.getArenaType() == ArenaType.REGENERATION) { - Cuboid c = new Cuboid(Util.getComponentForArena(plugin, a.getInternalName(), "bounds.low"), Util.getComponentForArena(plugin, a.getInternalName(), "bounds.high")); - if (c != null) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BURN); - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) { - if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - Arena a = pli.global_players.get(event.getPlayer().getName()); - Block start = event.getBlockClicked(); - if (!a.getBoundaries().containsLocWithoutY(start.getLocation())) { - event.setCancelled(true); - return; - } - for (int x = -2; x < 2; x++) { - for (int y = -2; y < 2; y++) { - for (int z = -2; z < 2; z++) { - Block b = start.getLocation().clone().add(x, y, z).getBlock(); - a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); - } - } - } - } - } - - @EventHandler - public void onStructureGrow(StructureGrowEvent event) { - for (Arena a : pli.getArenas()) { - if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { - Cuboid c = new Cuboid(Util.getComponentForArena(plugin, a.getInternalName(), "bounds.low"), Util.getComponentForArena(plugin, a.getInternalName(), "bounds.high")); - if (c != null) { - Location start = event.getLocation(); - if (c.containsLocWithoutY(start)) { - a.getSmartReset().addChanged(start.getBlock(), false); - for (BlockState bs : event.getBlocks()) { - Block b = bs.getBlock(); - a.getSmartReset().addChanged(b.getLocation(), Material.AIR, (byte) 0); - } - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockBreak2(BlockBreakEvent event) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (event.getBlock().getType() != Material.AIR) { - a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); - } - } - } - - - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockPlace(BlockPlaceEvent event) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() != ArenaState.INGAME || pli.containsGlobalLost(p.getName()) || pli.getSpectatorManager().isSpectating(p)) { - event.setCancelled(true); - return; - } - if (event.getBlockReplacedState().getType() != Material.AIR) { - a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlockReplacedState().getType(), event.getBlockReplacedState().getData().getData()); - } else { - - } - } - if (pli.getStatsInstance().skullsetup.contains(p.getName())) { - if (event.getBlock().getType() == Material.SKULL_ITEM || event.getBlock().getType() == Material.SKULL) { - if (event.getItemInHand().hasItemMeta()) { - pli.getStatsInstance().saveSkull(event.getBlock().getLocation(), Integer.parseInt(event.getItemInHand().getItemMeta().getDisplayName())); - pli.getStatsInstance().skullsetup.remove(p.getName()); - } - } - } - } - - private boolean checkLocationMatchesSign(Location l, Sign s) { - if (l != null) { - if (l.getWorld() != null) { - if (l.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) { - if (l.distance(s.getLocation()) < 1) { - return true; - } - } - } - } - return false; - } - - @EventHandler - public void onSignUse(PlayerInteractEvent event) { - if (event.hasBlock()) { - if (event.getClickedBlock().getType() == Material.SIGN_POST - || event.getClickedBlock().getType() == Material.WALL_SIGN || event.getClickedBlock().getType() == Material.SIGN) { - if (event.getClickedBlock().getType() == Material.FIRE) { - return; - } - if (event.getAction() != Action.RIGHT_CLICK_BLOCK) { - return; - } - final Sign s = (Sign) event.getClickedBlock().getState(); - // people will most likely do strange formats, so let's just try - // to get signs by location rather than locally by reading the sign - Arena arena = Util.getArenaBySignLocation(plugin, event.getClickedBlock().getLocation()); - if (arena != null) { - Player p = event.getPlayer(); - if (!arena.containsPlayer(p.getName())) { - arena.joinPlayerLobby(p.getName()); - Util.updateSign(plugin, arena); - } else { - Util.sendMessage(plugin, p, pli.getMessagesConfig().you_already_are_in_arena.replaceAll("", arena.getInternalName())); - } - } else { - // try getting random sign - Location l = Util.getComponentForArenaRaw(plugin, "random", "sign"); - if (checkLocationMatchesSign(l, s)) { - for (Arena a : pli.getArenas()) { - if (a.getArenaState() == ArenaState.JOIN || a.getArenaState() == ArenaState.STARTING) { - if (!a.containsPlayer(event.getPlayer().getName())) { - a.joinPlayerLobby(event.getPlayer().getName()); - Util.updateSign(plugin, a); - return; - } - } - } - } - // try getting leave sign - if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - if (pli.getArenasConfig().getConfig().isSet("arenas.leave")) { - for (String str : pli.getArenasConfig().getConfig().getConfigurationSection("arenas.leave.").getKeys(false)) { - Location loc = Util.getComponentForArenaRaw(plugin, "leave." + str, "sign"); - if (checkLocationMatchesSign(loc, s)) { - pli.global_players.get(event.getPlayer().getName()).leavePlayer(event.getPlayer().getName(), false, false); - Util.updateSign(plugin, pli.getArenaByName("leave")); - return; - } - } - } - } - } - } else if (event.getClickedBlock().getType() == Material.CHEST) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), true); - } - } - } else if (event.getClickedBlock().getType() == Material.TNT) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), false); - // TODO maybe add radius of blocks around this tnt manually - } - } - } else if (event.getPlayer().getItemInHand().getType() == Material.WATER_BUCKET || event.getPlayer().getItemInHand().getType() == Material.WATER || event.getPlayer().getItemInHand().getType() == Material.LAVA_BUCKET || event.getPlayer().getItemInHand().getType() == Material.LAVA) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (!a.getBoundaries().containsLocWithoutY(event.getClickedBlock().getLocation())) { - event.setCancelled(true); - return; - } - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), event.getClickedBlock().getType().equals(Material.CHEST)); - // a.getSmartReset().addChanged(event.getClickedBlock().getLocation().add(0D, 1D, 0D)); - } - } - } else if (event.getClickedBlock().getType() == Material.DISPENSER || event.getClickedBlock().getType() == Material.DROPPER) { - Player p = event.getPlayer(); - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), false); - } - } - } - } - - if (pli.containsGlobalLost(event.getPlayer().getName()) || pli.getSpectatorManager().isSpectating(event.getPlayer())) { - event.setCancelled(true); - } - - if (event.hasItem()) { - final Player p = event.getPlayer(); - if (!pli.containsGlobalPlayer(p.getName())) { - return; - } - Arena a = pli.global_players.get(p.getName()); - if (a.isArcadeMain()) { - return; - } - if (event.getItem().getTypeId() == plugin.getConfig().getInt("config.selection_items.classes_selection_item")) { - if (a.getArenaState() != ArenaState.INGAME) { - pli.getClassesHandler().openGUI(p.getName()); - event.setCancelled(true); - } - } else if (event.getItem().getTypeId() == plugin.getConfig().getInt("config.selection_items.exit_item")) { - if (a.getArenaState() != ArenaState.INGAME) { - a.leavePlayer(p.getName(), false, false); - event.setCancelled(true); - } else { - if (pli.containsGlobalLost(p.getName())) { - a.leavePlayer(p.getName(), false, false); - event.setCancelled(true); - } - } - } else if (event.getItem().getTypeId() == plugin.getConfig().getInt("config.selection_items.spectator_item")) { - if (pli.containsGlobalLost(p.getName())) { - pli.getSpectatorManager().openSpectatorGUI(p, a); - event.setCancelled(true); - } - } else if (event.getItem().getTypeId() == plugin.getConfig().getInt("config.selection_items.achievement_item")) { - if (pli.isAchievementGuiEnabled()) { - if (a.getArenaState() != ArenaState.INGAME) { - pli.getArenaAchievements().openGUI(p.getName(), false); - event.setCancelled(true); - } - } - } else if (event.getItem().getTypeId() == plugin.getConfig().getInt("config.selection_items.shop_selection_item")) { - if (a.getArenaState() != ArenaState.INGAME) { - pli.getShopHandler().openGUI(p.getName()); - event.setCancelled(true); - } - } else if (event.getItem().getTypeId() == plugin.getConfig().getInt("config.extra_lobby_item.item0.item")) { - if (plugin.getConfig().getBoolean("config.extra_lobby_item.item0.enabled")) { - if (a.getArenaState() != ArenaState.INGAME) { - // Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.getConfig().getString("config.extra_lobby_item.item0.command")); - p.performCommand(plugin.getConfig().getString("config.extra_lobby_item.item0.command")); - } - } - } - if (event.getItem().getType() == Material.COMPASS) { - if (a.getArenaState() == ArenaState.INGAME) { - if (plugin.getConfig().getBoolean("config.compass_tracking_enabled")) { - CompassPlayer temp = Util.getNearestPlayer(p, a); - if (temp.getPlayer() != null) { - p.sendMessage(pli.getMessagesConfig().compass_player_found.replaceAll("", temp.getPlayer().getName()).replaceAll("", Integer.toString((int) Math.round(temp.getDistance())))); - p.setCompassTarget(temp.getPlayer().getLocation()); - } else { - p.sendMessage(pli.getMessagesConfig().compass_no_player_found); - } - } - } - } - } - } - - @EventHandler - public void onSignChange(SignChangeEvent event) { - Player p = event.getPlayer(); - if (event.getLine(0).toLowerCase().equalsIgnoreCase(getName())) { - if (event.getPlayer().hasPermission("mgapi.sign") || event.getPlayer().isOp()) { - if (!event.getLine(1).equalsIgnoreCase("")) { - String arena = event.getLine(1); - if (arena.equalsIgnoreCase("random")) { - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.world", p.getWorld().getName()); - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.x", event.getBlock().getLocation().getBlockX()); - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.y", event.getBlock().getLocation().getBlockY()); - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); - pli.getArenasConfig().saveConfig(); - Util.sendMessage(plugin, p, pli.getMessagesConfig().successfully_set.replaceAll("", "arena (random) sign")); - Util.updateSign(plugin, event, arena); - } else if (arena.equalsIgnoreCase("leave")) { - int count = 0; - if (pli.getArenasConfig().getConfig().isSet("arenas.leave")) { - for (String s : pli.getArenasConfig().getConfig().getConfigurationSection("arenas.leave.").getKeys(false)) { - count++; - } - } - pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.world", p.getWorld().getName()); - pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.x", event.getBlock().getLocation().getBlockX()); - pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.y", event.getBlock().getLocation().getBlockY()); - pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); - pli.getArenasConfig().saveConfig(); - Util.sendMessage(plugin, p, pli.getMessagesConfig().successfully_set.replaceAll("", "arena (leave) sign")); - Util.updateSign(plugin, event, arena); - } else { - if (Validator.isArenaValid(plugin, arena)) { - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.world", p.getWorld().getName()); - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.x", event.getBlock().getLocation().getBlockX()); - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.y", event.getBlock().getLocation().getBlockY()); - pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.z", event.getBlock().getLocation().getBlockZ()); - pli.getArenasConfig().saveConfig(); - Util.sendMessage(plugin, p, pli.getMessagesConfig().successfully_set.replaceAll("", "arena sign")); - } else { - Util.sendMessage(plugin, p, pli.getMessagesConfig().arena_invalid.replaceAll("", arena)); - event.getBlock().breakNaturally(); - } - - Arena a = pli.getArenaByName(arena); - if (a != null) { - a.setSignLocation(event.getBlock().getLocation()); - Util.updateSign(plugin, a, event); - } else { - Util.sendMessage(plugin, p, pli.getMessagesConfig().arena_not_initialized); - } - } - } - } - } - } - - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) { - final Player p = event.getPlayer(); - pli.getStatsInstance().update(p.getName()); - if (pli.containsGlobalPlayer(p.getName())) { - pli.global_players.remove(p.getName()); - } - if (pli.containsGlobalLost(p.getName())) { - pli.global_lost.remove(p.getName()); - } - if (plugin.getConfig().isSet("temp.left_players." + p.getName())) { - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - Util.teleportPlayerFixed(p, Util.getMainLobby(plugin)); - p.setFlying(false); - try { - p.getInventory().clear(); - p.updateInventory(); - if (plugin.getConfig().isSet("temp.left_players." + p.getName() + ".items")) { - for (String key : plugin.getConfig().getConfigurationSection("temp.left_players." + p.getName() + ".items").getKeys(false)) { - p.getInventory().addItem(plugin.getConfig().getItemStack("temp.left_players." + p.getName() + ".items." + key)); - } - } - Arena arena = pli.global_players.get(p.getName()); - p.updateInventory(); - p.setWalkSpeed(0.2F); - p.removePotionEffect(PotionEffectType.JUMP); - p.removePotionEffect(PotionEffectType.INVISIBILITY); - p.setGameMode(GameMode.SURVIVAL); - Util.updateSign(plugin, arena); - pli.getSpectatorManager().setSpectate(p, false); - } catch (Exception e) { - e.printStackTrace(); - Util.sendMessage(plugin, p, ChatColor.RED + "Failed restoring your stuff. Did the server restart/reload while you were offline?"); - } - plugin.getConfig().set("temp.left_players." + p.getName(), null); - plugin.saveConfig(); - } - }, 5); - } - - if (plugin.getConfig().getBoolean("config.bungee.game_on_join")) { - int c = 0; - final List arenas = new ArrayList(); - for (String arena : pli.getArenasConfig().getConfig().getKeys(false)) { - if (!arena.equalsIgnoreCase("mainlobby") && !arena.equalsIgnoreCase("strings") && !arena.equalsIgnoreCase("config")) { - c++; - arenas.add(arena); - } - } - if (c < 1) { - MinigamesAPI.getAPI().getLogger().severe("Couldn't find any arena even though game_on_join was turned on. Please setup an arena to fix this!"); - return; - } - - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - if (p != null) { - pli.getArenas().get(0).joinPlayerLobby(p.getName()); - Arena arena = pli.global_players.get(p.getName()); - Util.updateSign(plugin, arena); - } - } - }, 30L); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) { - if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - Arena arena = pli.global_players.get(event.getPlayer().getName()); - MinigamesAPI.getAPI().getLogger().info(event.getPlayer().getName() + " quit while in arena " + arena.getInternalName() + "."); - int count = 0; - for (String p_ : pli.global_players.keySet()) { - if (pli.global_players.get(p_).getInternalName().equalsIgnoreCase(arena.getInternalName())) { - count++; - } - } - - arena.leavePlayer(event.getPlayer().getName(), true, false); - - try { - Util.updateSign(plugin, arena); - } catch (Exception e) { - MinigamesAPI.getAPI().getLogger().warning("Error occurred while refreshing sign. " + e.getMessage()); - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - } - if (MinigamesAPI.getAPI().global_party.containsKey(event.getPlayer().getName())) { - MinigamesAPI.getAPI().global_party.get(event.getPlayer().getName()).disband(); - } - Party party_ = null; - for (Party party : MinigamesAPI.getAPI().global_party.values()) { - if (party.containsPlayer(event.getPlayer().getName())) { - party_ = party; - break; - } - } - if (party_ != null) { - party_.removePlayer(event.getPlayer().getName()); - } - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onChat(final AsyncPlayerChatEvent event) { - Player p = event.getPlayer(); - if (!pli.chat_enabled) { - if (pli.containsGlobalPlayer(p.getName())) { - event.setCancelled(true); - return; - } - } - if (plugin.getConfig().getBoolean("config.chat_show_score_in_arena")) { - if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - event.setFormat(ChatColor.GRAY + "[" + ChatColor.GREEN + pli.getStatsInstance().getPoints(event.getPlayer().getName()) + ChatColor.GRAY + "] " + event.getFormat()); - } - } - if (plugin.getConfig().getBoolean("config.chat_per_arena_only")) { - if (pli.containsGlobalPlayer(p.getName())) { - String msg = String.format(event.getFormat(), p.getName(), event.getMessage()); - for (Player receiver : event.getRecipients()) { - if (pli.containsGlobalPlayer(receiver.getName())) { - if (pli.global_players.get(receiver.getName()) == pli.global_players.get(p.getName())) { - receiver.sendMessage("§7" + msg); - } - } - } - event.setCancelled(true); - } - } - } - - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) { - if (event.getMessage().equalsIgnoreCase(leave_cmd) || event.getMessage().equalsIgnoreCase("/l")) { - if (pli.containsGlobalPlayer(event.getPlayer().getName())) { - Arena arena = pli.global_players.get(event.getPlayer().getName()); - arena.leavePlayer(event.getPlayer().getName(), false, false); - event.setCancelled(true); - return; - } - } - if (pli.containsGlobalPlayer(event.getPlayer().getName()) && !event.getPlayer().isOp()) { - if (!plugin.getConfig().getBoolean("config.disable_commands_in_arena")) { - return; - } - if (plugin.getConfig().getString("config.command_whitelist").toLowerCase().contains(event.getMessage().toLowerCase())) { - return; - } - boolean cont = false; - for (String cmd : cmds) { - if (event.getMessage().toLowerCase().startsWith(cmd.toLowerCase())) { - cont = true; - } - } - if (!cont) { - Util.sendMessage(plugin, event.getPlayer(), pli.getMessagesConfig().you_can_leave_with.replaceAll("", leave_cmd)); - event.setCancelled(true); - return; - } - } - } - - // TP Fix start - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) - public void onPlayerTeleport(PlayerTeleportEvent event) { - if (event.getCause().equals(TeleportCause.UNKNOWN) && pli.spectator_mode_1_8) { - // Don't hide/show players when 1.8 spectator mode is enabled - return; - } - final Player player = event.getPlayer(); - if (pli.containsGlobalPlayer(player.getName())) { - final int visibleDistance = 16; - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - final List nearby = getPlayersWithin(player, visibleDistance); - updateEntities(nearby, false); - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - @Override - public void run() { - updateEntities(nearby, true); - } - }, 1); - } - }, 5L); - } - } - - private void updateEntities(List players, boolean visible) { - for (Player observer : players) { - for (Player player : players) { - if (observer.getEntityId() != player.getEntityId()) { - if (visible && !pli.containsGlobalLost(player.getName())) - observer.showPlayer(player); - else - observer.hidePlayer(player); - } - } - } - } - - private List getPlayersWithin(Player player, int distance) { - List res = new ArrayList(); - int d2 = distance * distance; - for (Player p : Bukkit.getServer().getOnlinePlayers()) { - if (p.getWorld() == player.getWorld() && p.getLocation().distanceSquared(player.getLocation()) <= d2) { - res.add(p); - } - } - return res; - } - - - public String getName() { - return minigame; - } - - public void setName(String minigame) { - this.minigame = minigame; - } - +public class ArenaListener implements Listener +{ + + private JavaPlugin plugin = null; + private PluginInstance pli = null; + + private String minigame = "minigame"; + + private ArrayList cmds = new ArrayList<>(); + private String leave_cmd = "/leave"; + + public int loseY = 4; + + public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame) + { + this.plugin = plugin; + this.pli = pinstance; + this.setName(minigame); + this.leave_cmd = plugin.getConfig().getString("config.leave_command"); + } + + public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList cmds) + { + this(plugin, pinstance, minigame); + this.cmds = cmds; + } + + @EventHandler + public void onPlayerDrop(final PlayerDropItemEvent event) + { + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + final Arena a = this.pli.global_players.get(event.getPlayer().getName()); + if (a != null) + { + if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.isArcadeMain()) + { + event.setCancelled(true); + } + if (a.getArenaState() == ArenaState.INGAME && this.pli.containsGlobalLost(event.getPlayer().getName())) + { + event.setCancelled(true); + } + } + } + } + + @EventHandler + public void onPlayerPickupItem(final PlayerPickupItemEvent event) + { + this.pli.getSpectatorManager(); + // spectators shall not pick up items + if (this.pli.containsGlobalLost(event.getPlayer().getName()) || SpectatorManager.isSpectating(event.getPlayer())) + { + final Arena a = this.pli.global_lost.get(event.getPlayer().getName()); + if (a != null) + { + if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null) + { + event.setCancelled(true); + } + } + } + } + + @EventHandler + public void onInventoryClick(final InventoryClickEvent event) + { + if (event.getWhoClicked() instanceof Player) + { + final Player p = (Player) event.getWhoClicked(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a != null) + { + if (a.getArenaState() == ArenaState.STARTING && a.getArcadeInstance() == null && !a.isArcadeMain()) + { + event.setCancelled(true); + } + } + } + } + } + + private List getEntitiesByLocation(final Location loc, final double d) + { + final List ent = new ArrayList(); + for (final Entity e : loc.getWorld().getEntities()) + { + if (e.getLocation().distanceSquared(loc) <= d) + { + ent.add(e); + } + } + return ent; + } + + @EventHandler + public void Space(final PlayerMoveEvent event) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a != null) + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (!ArenaListener.isSpectating(p)) + { + for (final Entity e : this.getEntitiesByLocation(p.getLocation(), 30D)) + { + + if (e instanceof Player) + { + final Player sp = (Player) e; + + if (ArenaListener.isSpectating(sp)) + { + sp.setVelocity(sp.getLocation().getDirection().setY(0.05D)); + sp.setVelocity(sp.getLocation().getDirection().multiply(-2)); + } + + } + } + } + } + } + } + } + + @Deprecated + public static boolean isSpectating(final Player p) + { + return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); + } + + @EventHandler(priority = EventPriority.HIGHEST) + public void onMove(final PlayerMoveEvent event) + { + try + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (!this.pli.containsGlobalLost(p.getName()) && !this.pli.global_arcade_spectator.containsKey(p.getName())) + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (p.getLocation().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) + { + if (a.getArenaType() == ArenaType.JUMPNRUN) + { + Util.teleportPlayerFixed(p, a.getSpawns().get(0)); + } + else + { + a.spectate(p.getName()); + } + return; + } + if (a.getBoundaries() != null) + { + if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) + { + Util.pushBack(a.getSpawns().get(0), p); + } + } + } + else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaState.JOIN) + { + if (!a.isArcadeMain()) + { + if (!a.getIngameCountdownStarted()) + { + if (p.getLocation().getBlockY() < 0) + { + try + { + Util.teleportPlayerFixed(p, a.getWaitingLobbyTemp()); + } + catch (final Exception e) + { + System.out.println("Waiting lobby for arena " + a.getInternalName() + " missing, please fix by setting it. " + e.getMessage()); + } + } + if (a.getLobbyBoundaries() != null && !a.skip_join_lobby) + { + if (!a.getLobbyBoundaries().containsLocWithoutY(p.getLocation())) + { + Util.pushBack(a.getWaitingLobbyTemp(), p); + } + } + } + } + } + } + else + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (this.pli.spectator_move_y_lock && event.getPlayer().getLocation().getBlockY() < (a.getSpawns().get(0).getBlockY() + 30D) + || event.getPlayer().getLocation().getBlockY() > (a.getSpawns().get(0).getBlockY() + 30D)) + { + final float b = p.getLocation().getYaw(); + final float c = p.getLocation().getPitch(); + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> { + p.setAllowFlight(true); + p.setFlying(true); + if (p.isInsideVehicle()) + { + final Entity ent = p.getVehicle(); + p.leaveVehicle(); + ent.eject(); + } + p.teleport(new Location(p.getWorld(), p.getLocation().getBlockX(), (a.getSpawns().get(0).getBlockY() + 30D), p.getLocation().getBlockZ(), b, c)); + }, 1); + return; + } + + if (a.getSpecBoundaries() != null) + { + if (!a.getSpecBoundaries().containsLocWithoutY(p.getLocation())) + { + Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); + } + return; + } + if (a.getBoundaries() != null) + { + if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) + { + Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); + } + } + } + } + } + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + + } + + @EventHandler + public void onHunger(final FoodLevelChangeEvent event) + { + if (event.getEntity() instanceof Player) + { + final Player p = (Player) event.getEntity(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + if (!this.pli.global_players.get(p.getName()).isArcadeMain()) + { + event.setCancelled(true); + } + } + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerDeath(final PlayerDeathEvent event) + { + if (this.pli.containsGlobalPlayer(event.getEntity().getName())) + { + event.setDeathMessage(null); + final Player p = event.getEntity(); + + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 3, 50)); + + final Arena arena = this.pli.global_players.get(p.getName()); + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.getIngameCountdownStarted())) + { + if (arena.isArcadeMain()) + { + Util.teleportPlayerFixed(p, arena.getWaitingLobbyTemp()); + } + } + + arena.global_drops.addAll(event.getDrops()); + + arena.spectate(p.getName()); + + this.pli.global_lost.put(p.getName(), arena); + + int count = 0; + // for (String p_ : pli.global_players.keySet()) { + // if (Validator.isPlayerOnline(p_)) { + // if (pli.global_players.get(p_).getInternalName().equalsIgnoreCase(arena.getInternalName())) { + // if (!pli.containsGlobalLost(p_)) { + // count++; + // } + // } + // } + // } + for (final String p_ : arena.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_)) + { + if (!this.pli.containsGlobalLost(p_)) + { + count++; + } + } + } + final int count_ = count; + + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + if (ArenaListener.this.pli.containsGlobalPlayer(p.getName()) && count_ > 1) + { + arena.spectate(p.getName()); + } + for (final String p_ : arena.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p__ = Bukkit.getPlayer(p_); + Util.sendMessage(ArenaListener.this.plugin, p__, ArenaListener.this.pli.getMessagesConfig().broadcast_players_left.replaceAll("", arena.getPlayerCount())); + } + } + }, 5); + + if (this.pli.last_man_standing) + { + if (count < 2) + { + // last man standing + arena.stopArena(); + } + } + } + } + + @EventHandler + public void NoDamageEntityInLobby(final EntityDamageByEntityEvent event) + { + if (event.getDamager() instanceof Player) + { + final Player p = (Player) event.getDamager(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena arena = this.pli.global_players.get(p.getName()); + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) + { + final Entity e = event.getEntity(); + if (e instanceof ArmorStand || e instanceof ItemFrame || e instanceof Painting || e instanceof Minecart) + { + event.setCancelled(false); + } + } + } + } + } + + @EventHandler + public void NoClickEntityInLobby(final PlayerInteractEntityEvent event) throws IOException + { + final Player p = event.getPlayer(); + final Entity e = event.getRightClicked(); + if (!(e instanceof Player)) + { + final Arena arena = this.pli.global_players.get(p.getName()); + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) + { + if (event.getRightClicked().getType().equals(EntityType.ARMOR_STAND) || event.getRightClicked().getType().equals(EntityType.MINECART) + || event.getRightClicked().getType().equals(EntityType.MINECART_CHEST) || event.getRightClicked().getType().equals(EntityType.MINECART_HOPPER) + || event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) || event.getRightClicked().getType().equals(EntityType.PAINTING)) + { + event.setCancelled(true); + return; + } + } + } + } + + @EventHandler + public void onEntityDamage(final EntityDamageEvent event) + { + if (event.getEntity() instanceof Player) + { + final Player p = (Player) event.getEntity(); + if (this.pli.containsGlobalPlayer(p.getName()) && this.pli.containsGlobalLost(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) + { + event.setCancelled(true); + } + } + if (event.getCause().equals(DamageCause.ENTITY_ATTACK)) + { + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) + { + // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); + event.setCancelled(true); + } + if (this.pli.blood_effects && (a.getArenaState() == ArenaState.INGAME || a.getAlwaysPvP()) && !a.isArcadeMain()) + { + Effects.playBloodEffect(p); + } + } + this.pli.getSpectatorManager(); + if (this.pli.containsGlobalLost(p.getName()) || SpectatorManager.isSpectating(p)) + { + // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); + event.setCancelled(true); + } + } + else if (event.getCause().equals(DamageCause.FALL)) + { + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() != null) + { + event.setCancelled(true); + } + } + } + } + } + + @EventHandler + public void onEntityDamageByEntity(final EntityDamageByEntityEvent event) + { + if (event.getEntity() instanceof Player) + { + final Player p = (Player) event.getEntity(); + Player attacker = null; + if (event.getDamager() instanceof Projectile) + { + final Projectile projectile = (Projectile) event.getDamager(); + if (projectile.getShooter() instanceof Player) + { + attacker = (Player) projectile.getShooter(); + } + } + else if (event.getDamager() instanceof Player) + { + attacker = (Player) event.getDamager(); + } + else + { + return; + } + + if (p != null && attacker != null) + { + if (this.pli.containsGlobalPlayer(p.getName()) && this.pli.containsGlobalPlayer(attacker.getName())) + { + this.pli.getSpectatorManager(); + if (SpectatorManager.isSpectating(p)) + { + if (event.getDamager() instanceof Arrow) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final Arrow arr = attacker.launchProjectile(Arrow.class); + arr.setShooter(attacker); + arr.setVelocity(((Arrow) event.getDamager()).getVelocity()); + arr.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + else if (event.getDamager() instanceof Egg) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final Egg egg = attacker.launchProjectile(Egg.class); + egg.setShooter(attacker); + egg.setVelocity(((Egg) event.getDamager()).getVelocity()); + egg.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + else if (event.getDamager() instanceof Snowball) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final Snowball sb = attacker.launchProjectile(Snowball.class); + sb.setShooter(attacker); + sb.setVelocity(((Snowball) event.getDamager()).getVelocity()); + sb.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + else if (event.getDamager() instanceof EnderPearl) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final EnderPearl sb = attacker.launchProjectile(EnderPearl.class); + sb.setShooter(attacker); + sb.setVelocity(((EnderPearl) event.getDamager()).getVelocity()); + sb.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + event.setCancelled(true); + return; + } + if (this.pli.containsGlobalLost(attacker.getName())) + { + event.setCancelled(true); + return; + } + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME) + { + a.setLastDamager(p.getName(), attacker.getName()); + if (this.pli.damage_identifier_effects) + { + ChatColor c = ChatColor.YELLOW; + if (event.getDamage() >= 5D) + { + c = ChatColor.GOLD; + } + if (event.getDamage() >= 9D) + { + c = ChatColor.RED; + } + Effects.playHologram(attacker, p.getLocation(), c + Double.toString(event.getDamage()), true, true); + } + } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onPaintingBreak(final HangingBreakByEntityEvent event) + { + if (event.getRemover() instanceof Player) + { + final String p_ = ((Player) event.getRemover()).getName(); + if (this.pli.containsGlobalPlayer(p_)) + { + event.setCancelled(true); + } + } + + } + + @EventHandler(priority = EventPriority.HIGH) + public void onExplode(final EntityExplodeEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (event.getEntity() != null) + { + if (c.containsLocWithoutY(event.getEntity().getLocation())) + { + for (final Block b : event.blockList()) + { + a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + } + } + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockFromTo(final BlockFromToEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (c.containsLocWithoutYD(event.getBlock().getLocation())) + { + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getToBlock(), event.getToBlock().getType().equals(Material.CHEST), ChangeCause.FROM_TO); + } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockFade(final BlockFadeEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.FADE); + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onLeavesDecay(final LeavesDecayEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST)); + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockPhysics(final BlockPhysicsEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + if (event.getChangedType() == Material.CARPET || event.getChangedType() == Material.BED_BLOCK) + { + return; + } + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.PHYSICS); + } + } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } + } + } + } + } + + @EventHandler + public void onBlockRedstone(final BlockRedstoneEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getBlock(), false); + } + } + } + } + } + + @EventHandler + public void onBlockSpread(final BlockSpreadEvent event) + { + // disallow fire spread while the arena restarts + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getBlock().getLocation(), Material.AIR, (byte) 0); + } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } + } + } + } + } + + @EventHandler + public void onEntityChangeBlock(final EntityChangeBlockEvent event) + { + if (event.getEntity() instanceof Enderman) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (c.containsLocWithoutY(event.getEntity().getLocation())) + { + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.ENTITY_CHANGE); + } + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockBreak(final BlockBreakEvent event) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() != ArenaState.INGAME || this.pli.containsGlobalLost(p.getName())) + { + event.setCancelled(true); + return; + } + this.pli.getSpectatorManager(); + if (SpectatorManager.isSpectating(p)) + { + event.setCancelled(true); + return; + } + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BREAK); + if (event.getBlock().getType() == Material.DOUBLE_PLANT) + { + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + } + if (event.getBlock().getType() == Material.SNOW || event.getBlock().getType() == Material.SNOW_BLOCK) + { + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + } + if (event.getBlock().getType() == Material.CARPET) + { + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + } + if (event.getBlock().getType() == Material.CACTUS) + { + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + } + if (event.getBlock().getType() == Material.BED_BLOCK) + { + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(1D, 0D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(1D, 0D, 1D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(-1D, 0D, 0D).getBlock(), + event.getBlock().getLocation().clone().add(1D, 0D, -1D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, 1D).getBlock(), + event.getBlock().getLocation().clone().add(-1D, 0D, 1D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, -1D).getBlock(), + event.getBlock().getLocation().clone().add(-1D, 0D, -1D).getBlock().getType().equals(Material.CHEST)); + } + } + if (event.getBlock().getType() == Material.SIGN_POST || event.getBlock().getType() == Material.WALL_SIGN) + { + final Arena arena = Util.getArenaBySignLocation(this.plugin, event.getBlock().getLocation()); + if (arena != null) + { + this.pli.getArenasConfig().getConfig().set("arenas." + arena.getInternalName() + ".sign", null); + this.pli.getArenasConfig().saveConfig(); + } + } + } + + @EventHandler + public void onBlockBurn(final BlockBurnEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (Validator.isArenaValid(this.plugin, a) && a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = new Cuboid(Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_LOW), Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)); + if (c != null) + { + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BURN); + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) + { + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + final Arena a = this.pli.global_players.get(event.getPlayer().getName()); + final Block start = event.getBlockClicked(); + if (!a.getBoundaries().containsLocWithoutY(start.getLocation())) + { + event.setCancelled(true); + return; + } + for (int x = -2; x < 2; x++) + { + for (int y = -2; y < 2; y++) + { + for (int z = -2; z < 2; z++) + { + final Block b = start.getLocation().clone().add(x, y, z).getBlock(); + a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + } + } + } + } + } + + @EventHandler + public void onStructureGrow(final StructureGrowEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) + { + final Cuboid c = new Cuboid(Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_LOW), Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)); + if (c != null) + { + final Location start = event.getLocation(); + if (c.containsLocWithoutY(start)) + { + a.getSmartReset().addChanged(start.getBlock(), false); + for (final BlockState bs : event.getBlocks()) + { + final Block b = bs.getBlock(); + a.getSmartReset().addChanged(b.getLocation(), Material.AIR, (byte) 0); + } + } + } + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockBreak2(final BlockBreakEvent event) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (event.getBlock().getType() != Material.AIR) + { + a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); + } + } + } + + @EventHandler(priority = EventPriority.HIGH) + public void onBlockPlace(final BlockPlaceEvent event) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + this.pli.getSpectatorManager(); + if (a.getArenaState() != ArenaState.INGAME || this.pli.containsGlobalLost(p.getName()) || SpectatorManager.isSpectating(p)) + { + event.setCancelled(true); + return; + } + if (event.getBlockReplacedState().getType() != Material.AIR) + { + a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlockReplacedState().getType(), event.getBlockReplacedState().getData().getData()); + } + } + if (this.pli.getStatsInstance().skullsetup.contains(p.getName())) + { + if (event.getBlock().getType() == Material.SKULL_ITEM || event.getBlock().getType() == Material.SKULL) + { + if (event.getItemInHand().hasItemMeta()) + { + this.pli.getStatsInstance().saveSkull(event.getBlock().getLocation(), Integer.parseInt(event.getItemInHand().getItemMeta().getDisplayName())); + this.pli.getStatsInstance().skullsetup.remove(p.getName()); + } + } + } + } + + private boolean checkLocationMatchesSign(final Location l, final Sign s) + { + if (l != null) + { + if (l.getWorld() != null) + { + if (l.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) + { + if (l.distance(s.getLocation()) < 1) + { + return true; + } + } + } + } + return false; + } + + @EventHandler + public void onSignUse(final PlayerInteractEvent event) + { + if (event.hasBlock()) + { + if (event.getClickedBlock().getType() == Material.SIGN_POST || event.getClickedBlock().getType() == Material.WALL_SIGN || event.getClickedBlock().getType() == Material.SIGN) + { + if (event.getClickedBlock().getType() == Material.FIRE) + { + return; + } + if (event.getAction() != Action.RIGHT_CLICK_BLOCK) + { + return; + } + final Sign s = (Sign) event.getClickedBlock().getState(); + // people will most likely do strange formats, so let's just try + // to get signs by location rather than locally by reading the sign + final Arena arena = Util.getArenaBySignLocation(this.plugin, event.getClickedBlock().getLocation()); + if (arena != null) + { + final Player p = event.getPlayer(); + if (!arena.containsPlayer(p.getName())) + { + arena.joinPlayerLobby(p.getName()); + Util.updateSign(this.plugin, arena); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().you_already_are_in_arena.replaceAll("", arena.getInternalName())); + } + } + else + { + // try getting random sign + final Location l = Util.getComponentForArenaRaw(this.plugin, "random", "sign"); + if (this.checkLocationMatchesSign(l, s)) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaState() == ArenaState.JOIN || a.getArenaState() == ArenaState.STARTING) + { + if (!a.containsPlayer(event.getPlayer().getName())) + { + a.joinPlayerLobby(event.getPlayer().getName()); + Util.updateSign(this.plugin, a); + return; + } + } + } + } + // try getting leave sign + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + if (this.pli.getArenasConfig().getConfig().isSet("arenas.leave")) + { + for (final String str : this.pli.getArenasConfig().getConfig().getConfigurationSection("arenas.leave.").getKeys(false)) + { + final Location loc = Util.getComponentForArenaRaw(this.plugin, "leave." + str, "sign"); + if (this.checkLocationMatchesSign(loc, s)) + { + this.pli.global_players.get(event.getPlayer().getName()).leavePlayer(event.getPlayer().getName(), false, false); + Util.updateSign(this.plugin, this.pli.getArenaByName("leave")); + return; + } + } + } + } + } + } + else if (event.getClickedBlock().getType() == Material.CHEST) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getClickedBlock(), true); + } + } + } + else if (event.getClickedBlock().getType() == Material.TNT) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getClickedBlock(), false); + // TODO maybe add radius of blocks around this tnt manually + } + } + } + else if (event.getPlayer().getItemInHand().getType() == Material.WATER_BUCKET || event.getPlayer().getItemInHand().getType() == Material.WATER + || event.getPlayer().getItemInHand().getType() == Material.LAVA_BUCKET || event.getPlayer().getItemInHand().getType() == Material.LAVA) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (!a.getBoundaries().containsLocWithoutY(event.getClickedBlock().getLocation())) + { + event.setCancelled(true); + return; + } + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getClickedBlock(), event.getClickedBlock().getType().equals(Material.CHEST)); + // a.getSmartReset().addChanged(event.getClickedBlock().getLocation().add(0D, 1D, 0D)); + } + } + } + else if (event.getClickedBlock().getType() == Material.DISPENSER || event.getClickedBlock().getType() == Material.DROPPER) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getClickedBlock(), false); + } + } + } + } + + this.pli.getSpectatorManager(); + if (this.pli.containsGlobalLost(event.getPlayer().getName()) || SpectatorManager.isSpectating(event.getPlayer())) + { + event.setCancelled(true); + } + + if (event.hasItem()) + { + final Player p = event.getPlayer(); + if (!this.pli.containsGlobalPlayer(p.getName())) + { + return; + } + final Arena a = this.pli.global_players.get(p.getName()); + if (a.isArcadeMain()) + { + return; + } + if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.classes_selection_item")) + { + if (a.getArenaState() != ArenaState.INGAME) + { + this.pli.getClassesHandler().openGUI(p.getName()); + event.setCancelled(true); + } + } + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.exit_item")) + { + if (a.getArenaState() != ArenaState.INGAME) + { + a.leavePlayer(p.getName(), false, false); + event.setCancelled(true); + } + else + { + if (this.pli.containsGlobalLost(p.getName())) + { + a.leavePlayer(p.getName(), false, false); + event.setCancelled(true); + } + } + } + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.spectator_item")) + { + if (this.pli.containsGlobalLost(p.getName())) + { + this.pli.getSpectatorManager().openSpectatorGUI(p, a); + event.setCancelled(true); + } + } + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.achievement_item")) + { + if (this.pli.isAchievementGuiEnabled()) + { + if (a.getArenaState() != ArenaState.INGAME) + { + this.pli.getArenaAchievements().openGUI(p.getName(), false); + event.setCancelled(true); + } + } + } + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.shop_selection_item")) + { + if (a.getArenaState() != ArenaState.INGAME) + { + this.pli.getShopHandler().openGUI(p.getName()); + event.setCancelled(true); + } + } + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.extra_lobby_item.item0.item")) + { + if (this.plugin.getConfig().getBoolean("config.extra_lobby_item.item0.enabled")) + { + if (a.getArenaState() != ArenaState.INGAME) + { + // Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.getConfig().getString("config.extra_lobby_item.item0.command")); + p.performCommand(this.plugin.getConfig().getString("config.extra_lobby_item.item0.command")); + } + } + } + if (event.getItem().getType() == Material.COMPASS) + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (this.plugin.getConfig().getBoolean("config.compass_tracking_enabled")) + { + final CompassPlayer temp = Util.getNearestPlayer(p, a); + if (temp.getPlayer() != null) + { + p.sendMessage(this.pli.getMessagesConfig().compass_player_found.replaceAll("", temp.getPlayer().getName()).replaceAll("", + Integer.toString((int) Math.round(temp.getDistance())))); + p.setCompassTarget(temp.getPlayer().getLocation()); + } + else + { + p.sendMessage(this.pli.getMessagesConfig().compass_no_player_found); + } + } + } + } + } + } + + @EventHandler + public void onSignChange(final SignChangeEvent event) + { + final Player p = event.getPlayer(); + if (event.getLine(0).toLowerCase().equalsIgnoreCase(this.getName())) + { + if (event.getPlayer().hasPermission("mgapi.sign") || event.getPlayer().isOp()) + { + if (!event.getLine(1).equalsIgnoreCase("")) + { + final String arena = event.getLine(1); + if (arena.equalsIgnoreCase("random")) + { + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().saveConfig(); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("", "arena (random) sign")); + Util.updateSign(this.plugin, event, arena); + } + else if (arena.equalsIgnoreCase("leave")) + { + int count = 0; + if (this.pli.getArenasConfig().getConfig().isSet("arenas.leave")) + { + for (final String s : this.pli.getArenasConfig().getConfig().getConfigurationSection("arenas.leave.").getKeys(false)) + { + count++; + } + } + this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().saveConfig(); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("", "arena (leave) sign")); + Util.updateSign(this.plugin, event, arena); + } + else + { + if (Validator.isArenaValid(this.plugin, arena)) + { + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().saveConfig(); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("", "arena sign")); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_invalid.replaceAll("", arena)); + event.getBlock().breakNaturally(); + } + + final Arena a = this.pli.getArenaByName(arena); + if (a != null) + { + a.setSignLocation(event.getBlock().getLocation()); + Util.updateSign(this.plugin, a, event); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_not_initialized); + } + } + } + } + } + } + + @EventHandler + public void onPlayerJoin(final PlayerJoinEvent event) + { + final Player p = event.getPlayer(); + this.pli.getStatsInstance().update(p.getName()); + if (this.pli.containsGlobalPlayer(p.getName())) + { + this.pli.global_players.remove(p.getName()); + } + if (this.pli.containsGlobalLost(p.getName())) + { + this.pli.global_lost.remove(p.getName()); + } + if (this.plugin.getConfig().isSet("temp.left_players." + p.getName())) + { + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + Util.teleportPlayerFixed(p, Util.getMainLobby(ArenaListener.this.plugin)); + p.setFlying(false); + try + { + p.getInventory().clear(); + p.updateInventory(); + if (ArenaListener.this.plugin.getConfig().isSet("temp.left_players." + p.getName() + ".items")) + { + for (final String key : ArenaListener.this.plugin.getConfig().getConfigurationSection("temp.left_players." + p.getName() + ".items").getKeys(false)) + { + p.getInventory().addItem(ArenaListener.this.plugin.getConfig().getItemStack("temp.left_players." + p.getName() + ".items." + key)); + } + } + final Arena arena = ArenaListener.this.pli.global_players.get(p.getName()); + p.updateInventory(); + p.setWalkSpeed(0.2F); + p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); + p.setGameMode(GameMode.SURVIVAL); + Util.updateSign(ArenaListener.this.plugin, arena); + ArenaListener.this.pli.getSpectatorManager().setSpectate(p, false); + } + catch (final Exception e) + { + e.printStackTrace(); + Util.sendMessage(ArenaListener.this.plugin, p, ChatColor.RED + "Failed restoring your stuff. Did the server restart/reload while you were offline?"); + } + ArenaListener.this.plugin.getConfig().set("temp.left_players." + p.getName(), null); + ArenaListener.this.plugin.saveConfig(); + }, 5); + } + + if (this.plugin.getConfig().getBoolean("config.bungee.game_on_join")) + { + int c = 0; + final List arenas = new ArrayList<>(); + for (final String arena : this.pli.getArenasConfig().getConfig().getKeys(false)) + { + if (!arena.equalsIgnoreCase("mainlobby") && !arena.equalsIgnoreCase("strings") && !arena.equalsIgnoreCase("config")) + { + c++; + arenas.add(arena); + } + } + if (c < 1) + { + MinigamesAPI.getAPI().getLogger().severe("Couldn't find any arena even though game_on_join was turned on. Please setup an arena to fix this!"); + return; + } + + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + if (p != null) + { + ArenaListener.this.pli.getArenas().get(0).joinPlayerLobby(p.getName()); + final Arena arena = ArenaListener.this.pli.global_players.get(p.getName()); + Util.updateSign(ArenaListener.this.plugin, arena); + } + }, 30L); + } + } + + @EventHandler + public void onPlayerLeave(final PlayerQuitEvent event) + { + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + final Arena arena = this.pli.global_players.get(event.getPlayer().getName()); + MinigamesAPI.getAPI().getLogger().info(event.getPlayer().getName() + " quit while in arena " + arena.getInternalName() + "."); + int count = 0; + for (final String p_ : this.pli.global_players.keySet()) + { + if (this.pli.global_players.get(p_).getInternalName().equalsIgnoreCase(arena.getInternalName())) + { + count++; + } + } + + arena.leavePlayer(event.getPlayer().getName(), true, false); + + try + { + Util.updateSign(this.plugin, arena); + } + catch (final Exception e) + { + MinigamesAPI.getAPI().getLogger().warning("Error occurred while refreshing sign. " + e.getMessage()); + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + } + if (MinigamesAPI.getAPI().global_party.containsKey(event.getPlayer().getName())) + { + MinigamesAPI.getAPI().global_party.get(event.getPlayer().getName()).disband(); + } + Party party_ = null; + for (final Party party : MinigamesAPI.getAPI().global_party.values()) + { + if (party.containsPlayer(event.getPlayer().getName())) + { + party_ = party; + break; + } + } + if (party_ != null) + { + party_.removePlayer(event.getPlayer().getName()); + } + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onChat(final AsyncPlayerChatEvent event) + { + final Player p = event.getPlayer(); + if (!this.pli.chat_enabled) + { + if (this.pli.containsGlobalPlayer(p.getName())) + { + event.setCancelled(true); + return; + } + } + if (this.plugin.getConfig().getBoolean("config.chat_show_score_in_arena")) + { + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + event.setFormat(ChatColor.GRAY + "[" + ChatColor.GREEN + this.pli.getStatsInstance().getPoints(event.getPlayer().getName()) + ChatColor.GRAY + "] " + event.getFormat()); + } + } + if (this.plugin.getConfig().getBoolean("config.chat_per_arena_only")) + { + if (this.pli.containsGlobalPlayer(p.getName())) + { + final String msg = String.format(event.getFormat(), p.getName(), event.getMessage()); + for (final Player receiver : event.getRecipients()) + { + if (this.pli.containsGlobalPlayer(receiver.getName())) + { + if (this.pli.global_players.get(receiver.getName()) == this.pli.global_players.get(p.getName())) + { + receiver.sendMessage("§7" + msg); + } + } + } + event.setCancelled(true); + } + } + } + + @EventHandler + public void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent event) + { + if (event.getMessage().equalsIgnoreCase(this.leave_cmd) || event.getMessage().equalsIgnoreCase("/l")) + { + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + final Arena arena = this.pli.global_players.get(event.getPlayer().getName()); + arena.leavePlayer(event.getPlayer().getName(), false, false); + event.setCancelled(true); + return; + } + } + if (this.pli.containsGlobalPlayer(event.getPlayer().getName()) && !event.getPlayer().isOp()) + { + if (!this.plugin.getConfig().getBoolean("config.disable_commands_in_arena")) + { + return; + } + if (this.plugin.getConfig().getString("config.command_whitelist").toLowerCase().contains(event.getMessage().toLowerCase())) + { + return; + } + boolean cont = false; + for (final String cmd : this.cmds) + { + if (event.getMessage().toLowerCase().startsWith(cmd.toLowerCase())) + { + cont = true; + } + } + if (!cont) + { + Util.sendMessage(this.plugin, event.getPlayer(), this.pli.getMessagesConfig().you_can_leave_with.replaceAll("", this.leave_cmd)); + event.setCancelled(true); + return; + } + } + } + + // TP Fix start + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onPlayerTeleport(final PlayerTeleportEvent event) + { + if (event.getCause().equals(TeleportCause.UNKNOWN) && this.pli.spectator_mode_1_8) + { + // Don't hide/show players when 1.8 spectator mode is enabled + return; + } + final Player player = event.getPlayer(); + if (this.pli.containsGlobalPlayer(player.getName())) + { + final int visibleDistance = 16; + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> { + final List nearby = ArenaListener.this.getPlayersWithin(player, visibleDistance); + ArenaListener.this.updateEntities(nearby, false); + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(ArenaListener.this.plugin, () -> ArenaListener.this.updateEntities(nearby, true), 1); + }, 5L); + } + } + + private void updateEntities(final List players, final boolean visible) + { + for (final Player observer : players) + { + for (final Player player : players) + { + if (observer.getEntityId() != player.getEntityId()) + { + if (visible && !this.pli.containsGlobalLost(player.getName())) + { + observer.showPlayer(player); + } + else + { + observer.hidePlayer(player); + } + } + } + } + } + + private List getPlayersWithin(final Player player, final int distance) + { + final List res = new ArrayList<>(); + final int d2 = distance * distance; + for (final Player p : Bukkit.getServer().getOnlinePlayers()) + { + if (p.getWorld() == player.getWorld() && p.getLocation().distanceSquared(player.getLocation()) <= d2) + { + res.add(p); + } + } + return res; + } + + public String getName() + { + return this.minigame; + } + + public void setName(final String minigame) + { + this.minigame = minigame; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java index 728dbe97..81520d5e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java @@ -1,13 +1,30 @@ -package com.comze_instancelabs.minigamesapi; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.Bukkit; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -public class ArenaLogger { + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +package com.comze_instancelabs.minigamesapi; - public static void debug(String msg) { - if (MinigamesAPI.debug) { - Bukkit.getConsoleSender().sendMessage("[" + System.currentTimeMillis() + " MGLIB-DBG] " + msg); - } - } +import org.bukkit.Bukkit; +public class ArenaLogger +{ + + public static void debug(final String msg) + { + if (MinigamesAPI.debug) + { + Bukkit.getConsoleSender().sendMessage("[" + System.currentTimeMillis() + " MGLIB-DBG] " + msg); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java index d024654c..6108c8a9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.util.HashMap; @@ -9,87 +23,107 @@ import com.comze_instancelabs.minigamesapi.util.AClass; -public class ArenaPlayer { - - String playername; - ItemStack[] inv; - ItemStack[] armor_inv; - GameMode original_gamemode = GameMode.SURVIVAL; - int original_xplvl = 0; - boolean noreward = false; - Arena currentArena; - AClass currentClass; - - private static HashMap players = new HashMap(); - - public static ArenaPlayer getPlayerInstance(String playername) { - if (!players.containsKey(playername)) { - return new ArenaPlayer(playername); - } else { - return players.get(playername); - } - } - - public ArenaPlayer(String playername) { - this.playername = playername; - players.put(playername, this); - } - - public Player getPlayer() { - return Bukkit.getPlayer(playername); - } - - public void setInventories(ItemStack[] inv, ItemStack[] armor_inv) { - this.inv = inv; - this.armor_inv = armor_inv; - } - - public ItemStack[] getInventory() { - return inv; - } - - public ItemStack[] getArmorInventory() { - return armor_inv; - } - - public GameMode getOriginalGamemode() { - return original_gamemode; - } - - public void setOriginalGamemode(GameMode original_gamemode) { - this.original_gamemode = original_gamemode; - } - - public int getOriginalXplvl() { - return original_xplvl; - } - - public void setOriginalXplvl(int original_xplvl) { - this.original_xplvl = original_xplvl; - } - - public boolean isNoReward() { - return noreward; - } - - public void setNoReward(boolean noreward) { - this.noreward = noreward; - } - - public Arena getCurrentArena() { - return currentArena; - } - - public void setCurrentArena(Arena currentArena) { - this.currentArena = currentArena; - } - - public AClass getCurrentClass() { - return currentClass; - } - - public void setCurrentClass(AClass currentClass) { - this.currentClass = currentClass; - } - +public class ArenaPlayer +{ + + String playername; + ItemStack[] inv; + ItemStack[] armor_inv; + GameMode original_gamemode = GameMode.SURVIVAL; + int original_xplvl = 0; + boolean noreward = false; + Arena currentArena; + AClass currentClass; + + private static HashMap players = new HashMap<>(); + + public static ArenaPlayer getPlayerInstance(final String playername) + { + if (!ArenaPlayer.players.containsKey(playername)) + { + return new ArenaPlayer(playername); + } + else + { + return ArenaPlayer.players.get(playername); + } + } + + public ArenaPlayer(final String playername) + { + this.playername = playername; + ArenaPlayer.players.put(playername, this); + } + + public Player getPlayer() + { + return Bukkit.getPlayer(this.playername); + } + + public void setInventories(final ItemStack[] inv, final ItemStack[] armor_inv) + { + this.inv = inv; + this.armor_inv = armor_inv; + } + + public ItemStack[] getInventory() + { + return this.inv; + } + + public ItemStack[] getArmorInventory() + { + return this.armor_inv; + } + + public GameMode getOriginalGamemode() + { + return this.original_gamemode; + } + + public void setOriginalGamemode(final GameMode original_gamemode) + { + this.original_gamemode = original_gamemode; + } + + public int getOriginalXplvl() + { + return this.original_xplvl; + } + + public void setOriginalXplvl(final int original_xplvl) + { + this.original_xplvl = original_xplvl; + } + + public boolean isNoReward() + { + return this.noreward; + } + + public void setNoReward(final boolean noreward) + { + this.noreward = noreward; + } + + public Arena getCurrentArena() + { + return this.currentArena; + } + + public void setCurrentArena(final Arena currentArena) + { + this.currentArena = currentArena; + } + + public AClass getCurrentClass() + { + return this.currentClass; + } + + public void setCurrentClass(final AClass currentClass) + { + this.currentClass = currentClass; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java index 66aaddcc..5d460e06 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.lang.reflect.Method; @@ -13,229 +27,269 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class ArenaSetup { - - // actually the most basic arena just needs a spawn and a lobby - - /** - * Sets the spawn for a single-spawn arena - * - * @param arenaname - * @param l - * Location of the spawn - */ - public void setSpawn(JavaPlugin plugin, String arenaname, Location l) { - Util.saveComponentForArena(plugin, arenaname, "spawns.spawn0", l); - } - - /** - * Sets a new spawn for a multi-spawn arena without the need of a given index - * - * @param plugin - * @param arenaname - * @param l - * Location of the spawn - * @return the automatically used index - */ - public int autoSetSpawn(JavaPlugin plugin, String arenaname, Location l) { - int count = Util.getAllSpawns(plugin, arenaname).size(); - Util.saveComponentForArena(plugin, arenaname, "spawns.spawn" + Integer.toString(count), l); - return count; - } - - /** - * Sets one of multiple spawns for a multi-spawn arena - * - * @param arenaname - * @param l - * Location of the spawn - * @param count - * Index of the spawn; if the given index is already set, the spawn location will be overwritten - */ - public void setSpawn(JavaPlugin plugin, String arenaname, Location l, int count) { - Util.saveComponentForArena(plugin, arenaname, "spawns.spawn" + Integer.toString(count), l); - } - - /** - * Removes a spawn at the given index - * - * @param plugin - * @param arenaname - * @param count - * Index of the spawn - */ - public boolean removeSpawn(JavaPlugin plugin, String arenaname, int count) { - ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); - String path = "arenas." + arenaname + ".spawns.spawn" + Integer.toString(count); - boolean ret = false; - if (config.getConfig().isSet(path)) { - ret = true; - } - config.getConfig().set(path, null); - config.saveConfig(); - return ret; - } - - /** - * Sets the waiting lobby for an arena - * - * @param arenaname - * @param l - * Location of the lobby - */ - public void setLobby(JavaPlugin plugin, String arenaname, Location l) { - Util.saveComponentForArena(plugin, arenaname, "lobby", l); - } - - /** - * Sets the main lobby - * - * @param l - * Location of the lobby - */ - public void setMainLobby(JavaPlugin plugin, Location l) { - Util.saveMainLobby(plugin, l); - } - - /** - * Sets low and high boundaries for later blocks resetting - * - * @param plugin - * @param arenaname - * @param l - * Location to save - * @param low - * True if it's the low boundary, false if it's the high boundary - */ - public void setBoundaries(JavaPlugin plugin, String arenaname, Location l, boolean low) { - if (low) { - Util.saveComponentForArena(plugin, arenaname, "bounds.low", l); - } else { - Util.saveComponentForArena(plugin, arenaname, "bounds.high", l); - } - } - - /** - * Sets low and high boundaries for later blocks resetting for a sub component - * - * @param plugin - * @param arenaname - * @param l - * Location to save - * @param low - * True if it's the low boundary, false if it's the high boundary - * @param extra_component - * Sub component string - */ - public void setBoundaries(JavaPlugin plugin, String arenaname, Location l, boolean low, String extra_component) { - if (low) { - Util.saveComponentForArena(plugin, arenaname, extra_component + ".bounds.low", l); - } else { - Util.saveComponentForArena(plugin, arenaname, extra_component + ".bounds.high", l); - } - } - - /** - * Saves a given arena if it was set up properly. - * - * @return Arena or null if setup failed - */ - public Arena saveArena(JavaPlugin plugin, String arenaname) { - if (!Validator.isArenaValid(plugin, arenaname)) { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Arena " + arenaname + " appears to be invalid."); - return null; - } - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (pli.getArenaByName(arenaname) != null) { - pli.removeArenaByName(arenaname); - } - Arena a = Util.initArena(plugin, arenaname); - if (a.getArenaType() == ArenaType.REGENERATION) { - if (Util.isComponentForArenaValid(plugin, arenaname, "bounds")) { - Util.saveArenaToFile(plugin, arenaname); - } else { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Could not save arena to file because boundaries were not set up."); - } - } - this.setArenaVIP(plugin, arenaname, false); - pli.addArena(a); - - // experimental: - Class clazz = plugin.getClass(); - try { - Method method = clazz.getDeclaredMethod("loadArenas", JavaPlugin.class, pli.getArenasConfig().getClass()); - if (method != null) { - method.setAccessible(true); - Object ret = method.invoke(this, plugin, pli.getArenasConfig()); - System.out.println(ret); - pli.clearArenas(); - pli.addLoadedArenas((ArrayList) ret); - } - } catch (Exception e) { - System.out.println("Failed to update Arena list, please reload the server."); - e.printStackTrace(); - } - - String path = "arenas." + arenaname + ".displayname"; - if (!pli.getArenasConfig().getConfig().isSet(path)) { - pli.getArenasConfig().getConfig().set(path, arenaname); - pli.getArenasConfig().saveConfig(); - } - - return a; - } - - public void setPlayerCount(JavaPlugin plugin, String arena, int count, boolean max) { - String component = "max_players"; - if (!max) { - component = "min_players"; - } - String base = "arenas." + arena + "." + component; - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set(base, count); - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); - } - - public int getPlayerCount(JavaPlugin plugin, String arena, boolean max) { - if (!max) { - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet("arenas." + arena + ".min_players")) { - setPlayerCount(plugin, arena, plugin.getConfig().getInt("config.defaults.default_min_players"), max); - return plugin.getConfig().getInt("config.defaults.default_min_players"); - } - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt("arenas." + arena + ".min_players"); - } - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet("arenas." + arena + ".max_players")) { - setPlayerCount(plugin, arena, plugin.getConfig().getInt("config.defaults.default_max_players"), max); - return plugin.getConfig().getInt("config.defaults.default_max_players"); - } - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt("arenas." + arena + ".max_players"); - } - - public void setArenaVIP(JavaPlugin plugin, String arena, boolean vip) { - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".is_vip", vip); - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); - } - - public boolean getArenaVIP(JavaPlugin plugin, String arena) { - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getBoolean("arenas." + arena + ".is_vip"); - } - - public void setArenaEnabled(JavaPlugin plugin, String arena, boolean enabled) { - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".enabled", enabled); - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); - } - - public boolean getArenaEnabled(JavaPlugin plugin, String arena) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - return config.isSet("arenas." + arena + ".enabled") ? config.getBoolean("arenas." + arena + ".enabled") : true; - } - - public void setShowScoreboard(JavaPlugin plugin, String arena, boolean enabled) { - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".showscoreboard", enabled); - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); - } - - public boolean getShowScoreboard(JavaPlugin plugin, String arena) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - return config.isSet("arenas." + arena + ".showscoreboard") ? config.getBoolean("arenas." + arena + ".showscoreboard") : true; - } +public class ArenaSetup +{ + + // actually the most basic arena just needs a spawn and a lobby + + /** + * Sets the spawn for a single-spawn arena + * + * @param arenaname + * @param l + * Location of the spawn + */ + public void setSpawn(final JavaPlugin plugin, final String arenaname, final Location l) + { + Util.saveComponentForArena(plugin, arenaname, "spawns.spawn0", l); + } + + /** + * Sets a new spawn for a multi-spawn arena without the need of a given index + * + * @param plugin + * @param arenaname + * @param l + * Location of the spawn + * @return the automatically used index + */ + public int autoSetSpawn(final JavaPlugin plugin, final String arenaname, final Location l) + { + final int count = Util.getAllSpawns(plugin, arenaname).size(); + Util.saveComponentForArena(plugin, arenaname, "spawns.spawn" + Integer.toString(count), l); + return count; + } + + /** + * Sets one of multiple spawns for a multi-spawn arena + * + * @param arenaname + * @param l + * Location of the spawn + * @param count + * Index of the spawn; if the given index is already set, the spawn location will be overwritten + */ + public void setSpawn(final JavaPlugin plugin, final String arenaname, final Location l, final int count) + { + Util.saveComponentForArena(plugin, arenaname, "spawns.spawn" + Integer.toString(count), l); + } + + /** + * Removes a spawn at the given index + * + * @param plugin + * @param arenaname + * @param count + * Index of the spawn + */ + public boolean removeSpawn(final JavaPlugin plugin, final String arenaname, final int count) + { + final ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); + final String path = "arenas." + arenaname + ".spawns.spawn" + Integer.toString(count); + boolean ret = false; + if (config.getConfig().isSet(path)) + { + ret = true; + } + config.getConfig().set(path, null); + config.saveConfig(); + return ret; + } + + /** + * Sets the waiting lobby for an arena + * + * @param arenaname + * @param l + * Location of the lobby + */ + public void setLobby(final JavaPlugin plugin, final String arenaname, final Location l) + { + Util.saveComponentForArena(plugin, arenaname, "lobby", l); + } + + /** + * Sets the main lobby + * + * @param l + * Location of the lobby + */ + public void setMainLobby(final JavaPlugin plugin, final Location l) + { + Util.saveMainLobby(plugin, l); + } + + /** + * Sets low and high boundaries for later blocks resetting + * + * @param plugin + * @param arenaname + * @param l + * Location to save + * @param low + * True if it's the low boundary, false if it's the high boundary + */ + public void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low) + { + if (low) + { + Util.saveComponentForArena(plugin, arenaname, ArenaConfigStrings.BOUNDS_LOW, l); + } + else + { + Util.saveComponentForArena(plugin, arenaname, ArenaConfigStrings.BOUNDS_HIGH, l); + } + } + + /** + * Sets low and high boundaries for later blocks resetting for a sub component + * + * @param plugin + * @param arenaname + * @param l + * Location to save + * @param low + * True if it's the low boundary, false if it's the high boundary + * @param extra_component + * Sub component string + */ + public void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low, final String extra_component) + { + if (low) + { + Util.saveComponentForArena(plugin, arenaname, extra_component + ".bounds.low", l); + } + else + { + Util.saveComponentForArena(plugin, arenaname, extra_component + ".bounds.high", l); + } + } + + /** + * Saves a given arena if it was set up properly. + * + * @return Arena or null if setup failed + */ + public Arena saveArena(final JavaPlugin plugin, final String arenaname) + { + if (!Validator.isArenaValid(plugin, arenaname)) + { + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Arena " + arenaname + " appears to be invalid."); + return null; + } + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (pli.getArenaByName(arenaname) != null) + { + pli.removeArenaByName(arenaname); + } + final Arena a = Util.initArena(plugin, arenaname); + if (a.getArenaType() == ArenaType.REGENERATION) + { + if (Util.isComponentForArenaValid(plugin, arenaname, "bounds")) + { + Util.saveArenaToFile(plugin, arenaname); + } + else + { + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Could not save arena to file because boundaries were not set up."); + } + } + this.setArenaVIP(plugin, arenaname, false); + pli.addArena(a); + + // experimental: + final Class clazz = plugin.getClass(); + try + { + final Method method = clazz.getDeclaredMethod("loadArenas", JavaPlugin.class, pli.getArenasConfig().getClass()); + if (method != null) + { + method.setAccessible(true); + final Object ret = method.invoke(this, plugin, pli.getArenasConfig()); + System.out.println(ret); + pli.clearArenas(); + pli.addLoadedArenas((ArrayList) ret); + } + } + catch (final Exception e) + { + System.out.println("Failed to update Arena list, please reload the server."); + e.printStackTrace(); + } + + final String path = "arenas." + arenaname + ".displayname"; + if (!pli.getArenasConfig().getConfig().isSet(path)) + { + pli.getArenasConfig().getConfig().set(path, arenaname); + pli.getArenasConfig().saveConfig(); + } + + return a; + } + + public void setPlayerCount(final JavaPlugin plugin, final String arena, final int count, final boolean max) + { + String component = "max_players"; + if (!max) + { + component = "min_players"; + } + final String base = "arenas." + arena + "." + component; + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set(base, count); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); + } + + public int getPlayerCount(final JavaPlugin plugin, final String arena, final boolean max) + { + if (!max) + { + if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet("arenas." + arena + ".min_players")) + { + this.setPlayerCount(plugin, arena, plugin.getConfig().getInt("config.defaults.default_min_players"), max); + return plugin.getConfig().getInt("config.defaults.default_min_players"); + } + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt("arenas." + arena + ".min_players"); + } + if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet("arenas." + arena + ".max_players")) + { + this.setPlayerCount(plugin, arena, plugin.getConfig().getInt("config.defaults.default_max_players"), max); + return plugin.getConfig().getInt("config.defaults.default_max_players"); + } + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt("arenas." + arena + ".max_players"); + } + + public void setArenaVIP(final JavaPlugin plugin, final String arena, final boolean vip) + { + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".is_vip", vip); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); + } + + public boolean getArenaVIP(final JavaPlugin plugin, final String arena) + { + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getBoolean("arenas." + arena + ".is_vip"); + } + + public void setArenaEnabled(final JavaPlugin plugin, final String arena, final boolean enabled) + { + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".enabled", enabled); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); + } + + public boolean getArenaEnabled(final JavaPlugin plugin, final String arena) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); + return config.isSet("arenas." + arena + ".enabled") ? config.getBoolean("arenas." + arena + ".enabled") : true; + } + + public void setShowScoreboard(final JavaPlugin plugin, final String arena, final boolean enabled) + { + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".showscoreboard", enabled); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); + } + + public boolean getShowScoreboard(final JavaPlugin plugin, final String arena) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); + return config.isSet("arenas." + arena + ".showscoreboard") ? config.getBoolean("arenas." + arena + ".showscoreboard") : true; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java index 69c7c6e1..b2502eb9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java @@ -1,26 +1,48 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; -public enum ArenaState { - - JOIN, STARTING, INGAME, RESTARTING; - - public static ArrayList getAllStateNames() { - return new ArrayList(Arrays.asList("JOIN", "STARTING", "INGAME", "RESTARTING")); - } - - public static HashMap getAllStateNameColors() { - HashMap ret = new HashMap() { - { - put("JOIN", "&a"); - put("STARTING", "&a"); - put("INGAME", "&4"); - put("RESTARTING", "&e"); - } - }; - return ret; - } +public enum ArenaState +{ + + JOIN, STARTING, INGAME, RESTARTING; + + public static ArrayList getAllStateNames() + { + return new ArrayList<>(Arrays.asList("JOIN", "STARTING", "INGAME", "RESTARTING")); + } + + public static HashMap getAllStateNameColors() + { + final HashMap ret = new HashMap() { + /** + * + */ + private static final long serialVersionUID = 3343763360644032212L; + + { + this.put("JOIN", "&a"); + this.put("STARTING", "&a"); + this.put("INGAME", "&4"); + this.put("RESTARTING", "&e"); + } + }; + return ret; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java index 4d6b541d..17d3c28c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java @@ -1,20 +1,35 @@ -package com.comze_instancelabs.minigamesapi; - -public enum ArenaType { +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - /** - * Standard arena with lobby + spawn and lobby countdown; can have multiple spawns too - */ - DEFAULT, + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - /** - * Players just join the game whenever they like, no lobby countdowns or arena/sign states; doesn't allow multiple spawns - */ - JUMPNRUN, - - /** - * Default arena + automatic regeneration - */ - REGENERATION + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +package com.comze_instancelabs.minigamesapi; +public enum ArenaType +{ + + /** + * Standard arena with lobby + spawn and lobby countdown; can have multiple spawns too + */ + DEFAULT, + + /** + * Players just join the game whenever they like, no lobby countdowns or arena/sign states; doesn't allow multiple spawns + */ + JUMPNRUN, + + /** + * Default arena + automatic regeneration + */ + REGENERATION + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java index ca18bade..a1b66eb4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java @@ -1,11 +1,23 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; -import net.milkbowl.vault.economy.EconomyResponse; - import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Color; @@ -25,444 +37,585 @@ import com.comze_instancelabs.minigamesapi.util.Validator; import com.shampaggon.crackshot.CSUtility; -public class Classes { - - JavaPlugin plugin; - PluginInstance pli; - public HashMap lasticonm = new HashMap(); - - public Classes(JavaPlugin plugin) { - this.plugin = plugin; - this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - } - - public Classes(PluginInstance pli, JavaPlugin plugin) { - this.plugin = plugin; - this.pli = pli; - } - - public void openGUI(final String p) { - final Classes cl = this; - IconMenu iconm; - int mincount = pli.getAClasses().keySet().size(); - if (!Validator.isPlayerOnline(p)) { - return; - } - Player player = Bukkit.getPlayerExact(p); - if (lasticonm.containsKey(p)) { - iconm = lasticonm.get(p); - } else { - iconm = new IconMenu(pli.getMessagesConfig().classes_item, (9 * plugin.getConfig().getInt("config.GUI.classes_gui_rows") > mincount - 1) ? 9 * plugin.getConfig().getInt("config.GUI.classes_gui_rows") : Math.round(mincount / 9) * 9 + 9, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - if (event.getPlayer().getName().equalsIgnoreCase(p)) { - if (pli.global_players.containsKey(p)) { - if (pli.getArenas().contains(pli.global_players.get(p))) { - String d = event.getName(); - Player p = event.getPlayer(); - if (pli.getAClasses().containsKey(d)) { - cl.setClass(pli.getClassesHandler().getInternalNameByName(d), p.getName(), true); - } - } - } - } - event.setWillClose(true); - } - }, plugin); - - int c = 0; - for (String ac : pli.getAClasses().keySet()) { - AClass ac_ = pli.getAClasses().get(ac); - if (ac_.isEnabled()) { - if (!pli.show_classes_without_usage_permission) { - if (!kitPlayerHasPermission(ac_.getInternalName(), player)) { - continue; - } - } - int slot = c; - if (pli.getClassesConfig().getConfig().isSet("config.kits." + ac_.getInternalName() + ".slot")) { - slot = pli.getClassesConfig().getConfig().getInt("config.kits." + ac_.getInternalName() + ".slot"); - if (slot < 0 || slot > iconm.getSize() - 1) { - slot = c; - } - } - iconm.setOption(slot, ac_.getIcon().clone(), ac_.getName(), pli.getClassesConfig().getConfig().getString("config.kits." + ac_.getInternalName() + ".lore").split(";")); - c++; - } - } - } - - iconm.open(player); - lasticonm.put(p, iconm); - } - - public void getClass(String player) { - if (!pli.getPClasses().containsKey(player)) { - ArenaLogger.debug(player + " didn't select any kit and the auto_add_default_kit option might be turned off, thus he won't get any starting items."); - return; - } - AClass c = pli.getPClasses().get(player); - final Player p = Bukkit.getServer().getPlayer(player); - Util.clearInv(p); - ArrayList items = new ArrayList(Arrays.asList(c.getItems())); - ArrayList temp = new ArrayList(Arrays.asList(c.getItems())); - ArrayList tempguns = new ArrayList(); - final ArrayList temppotions = new ArrayList(); - final ArrayList temppotions_lv = new ArrayList(); - final ArrayList temppotions_duration = new ArrayList(); - - // crackshot support - for (ItemStack item : temp) { - if (item != null) { - if (item.hasItemMeta()) { - if (item.getItemMeta().hasDisplayName()) { - if (item.getItemMeta().getDisplayName().startsWith("crackshot:")) { - items.remove(item); - tempguns.add(item.getItemMeta().getDisplayName().split(":")[1]); - } else if (item.getItemMeta().getDisplayName().startsWith("potioneffect:")) { - items.remove(item); - String potioneffect = item.getItemMeta().getDisplayName().split(":")[1]; - String data = item.getItemMeta().getDisplayName().split(":")[2]; - Integer time = Integer.parseInt(data.substring(0, data.indexOf("#"))); - Integer lv = Integer.parseInt(data.split("#")[1]); - if (PotionEffectType.getByName(potioneffect) != null) { - temppotions.add(PotionEffectType.getByName(potioneffect)); - temppotions_lv.add(lv); - temppotions_duration.add(time); - } - } - } - } - } - } - - for (ItemStack item : items) { - if (item != null) { - Color c_ = null; - if (item.hasItemMeta()) { - if (item.getItemMeta().hasDisplayName()) { - if (item.getItemMeta().getDisplayName().startsWith("#") && item.getItemMeta().getDisplayName().length() == 7) { - c_ = Util.hexToRgb(item.getItemMeta().getDisplayName()); - } - } - } - if (item.getTypeId() == 298 || item.getTypeId() == 302 || item.getTypeId() == 306 || item.getTypeId() == 310 || item.getTypeId() == 314) { - if (item.getTypeId() == 298) { - LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); - if (c_ != null) { - lam.setColor(c_); - } - item.setItemMeta(lam); - } - p.getInventory().setHelmet(item); - continue; - } - if (item.getTypeId() == 299 || item.getTypeId() == 303 || item.getTypeId() == 307 || item.getTypeId() == 311 || item.getTypeId() == 315) { - if (item.getTypeId() == 299) { - LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); - if (c_ != null) { - lam.setColor(c_); - } - item.setItemMeta(lam); - } - p.getInventory().setChestplate(item); - continue; - } - if (item.getTypeId() == 300 || item.getTypeId() == 304 || item.getTypeId() == 308 || item.getTypeId() == 312 || item.getTypeId() == 316) { - if (item.getTypeId() == 300) { - LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); - if (c_ != null) { - lam.setColor(c_); - } - item.setItemMeta(lam); - } - p.getInventory().setLeggings(item); - continue; - } - if (item.getTypeId() == 301 || item.getTypeId() == 305 || item.getTypeId() == 309 || item.getTypeId() == 313 || item.getTypeId() == 317) { - if (item.getTypeId() == 301) { - LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); - if (c_ != null) { - lam.setColor(c_); - } - item.setItemMeta(lam); - } - p.getInventory().setBoots(item); - continue; - } - if (item.getType() != Material.AIR) { - p.getInventory().addItem(item); - } - } - } - // p.getInventory().setContents((ItemStack[]) items.toArray(new ItemStack[items.size()])); - p.updateInventory(); - - if (MinigamesAPI.getAPI().crackshot) { - for (String t : tempguns) { - CSUtility cs = new CSUtility(); - cs.giveWeapon(p, t, 1); - } - } - - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - if (p != null) { - int index = 0; - for (PotionEffectType t : temppotions) { - p.addPotionEffect(new PotionEffect(t, temppotions_duration.get(index), temppotions_lv.get(index))); - index++; - } - } - } - }, 10L); - - } - - /** - * Sets the current class of a player - * - * @param classname - * the INTERNAL classname - * @param player - */ - public void setClass(String internalname, String player, boolean money) { - for (String c : pli.getAClasses().keySet()) { - if (c.toLowerCase().equalsIgnoreCase(internalname.toLowerCase())) { - internalname = c; - } - } - if (!kitPlayerHasPermission(internalname, Bukkit.getPlayer(player))) { - Bukkit.getPlayer(player).sendMessage(pli.getMessagesConfig().no_perm); - return; - } - boolean continue_ = true; - if (money) { - if (kitRequiresMoney(internalname)) { - continue_ = kitTakeMoney(Bukkit.getPlayer(player), internalname); - } - } - if (continue_) { - pli.setPClass(player, this.getClassByInternalname(internalname)); - Bukkit.getPlayer(player).sendMessage(pli.getMessagesConfig().set_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', getClassByInternalname(internalname).getName()))); - } - } - - public String getInternalNameByName(String name) { - for (AClass ac : pli.getAClasses().values()) { - if (ac.getName().equalsIgnoreCase(name)) { - return ac.getInternalName(); - } - } - return "default"; - } - - public AClass getClassByInternalname(String internalname) { - for (AClass ac : pli.getAClasses().values()) { - if (ac.getInternalName().equalsIgnoreCase(internalname)) { - return ac; - } - } - return null; - } - - public boolean hasClass(String player) { - return pli.getPClasses().containsKey(player); - } - - public String getSelectedClass(String player) { - if (hasClass(player)) { - return pli.getPClasses().get(player).getInternalName(); - } - return "default"; - } - - public void loadClasses() { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - FileConfiguration config = pli.getClassesConfig().getConfig(); - if (config.isSet("config.kits")) { - for (String aclass : config.getConfigurationSection("config.kits.").getKeys(false)) { - AClass n; - if (config.isSet("config.kits." + aclass + ".icon")) { - n = new AClass(plugin, config.getString("config.kits." + aclass + ".name"), aclass, config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, Util.parseItems(config.getString("config.kits." + aclass + ".items")), Util.parseItems(config.getString("config.kits." + aclass + ".icon")).get(0)); - } else { - n = new AClass(plugin, config.getString("config.kits." + aclass + ".name"), aclass, config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, Util.parseItems(config.getString("config.kits." + aclass + ".items"))); - } - pli.addAClass(config.getString("config.kits." + aclass + ".name"), n); - if (!config.isSet("config.kits." + aclass + ".items") || !config.isSet("config.kits." + aclass + ".lore")) { - plugin.getLogger().warning("One of the classes found in the config file is invalid: " + aclass + ". Missing itemid or lore!"); - } - } - } - } - }, 20L); - } - - /** - * Please use new Classes().loadClasses(); - * - * @param plugin - */ - @Deprecated - public static void loadClasses(final JavaPlugin plugin) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getClassesConfig().getConfig(); - if (config.isSet("config.kits")) { - for (String aclass : config.getConfigurationSection("config.kits.").getKeys(false)) { - AClass n; - if (config.isSet("config.kits." + aclass + ".icon")) { - n = new AClass(plugin, config.getString("config.kits." + aclass + ".name"), aclass, config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, Util.parseItems(config.getString("config.kits." + aclass + ".items")), Util.parseItems(config.getString("config.kits." + aclass + ".icon")).get(0)); - } else { - n = new AClass(plugin, config.getString("config.kits." + aclass + ".name"), aclass, config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, Util.parseItems(config.getString("config.kits." + aclass + ".items"))); - } - // pli.addAClass(aclass, n); - MinigamesAPI.getAPI().getPluginInstance(plugin).addAClass(config.getString("config.kits." + aclass + ".name"), n); - if (!config.isSet("config.kits." + aclass + ".items") || !config.isSet("config.kits." + aclass + ".lore")) { - plugin.getLogger().warning("One of the classes found in the config file is invalid: " + aclass + ". Missing itemid or lore!"); - } - } - } - } - }, 20L); - } - - /** - * Returns whether the kit requires money to use it - * - * @param kit - * Internal name of the kit - * @return - */ - public boolean kitRequiresMoney(String kit) { - return pli.getClassesConfig().getConfig().getBoolean("config.kits." + kit + ".requires_money"); - } - - /** - * Gives the player the kit if he has enough money to buy it - * - * @param p - * Player to give the kit to - * @param kit - * Internal name of the kit - * @return - */ - public boolean kitTakeMoney(Player p, String kit) { - // Credits - if (plugin.getConfig().getBoolean("config.use_credits_instead_of_money_for_kits")) { - String uuid = p.getUniqueId().toString(); - int points = 0; - if (!MinigamesAPI.getAPI().statsglobal.getConfig().isSet("players." + uuid + ".points")) { - points = pli.getStatsInstance().getPoints(p.getName()); - MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", points); - MinigamesAPI.getAPI().statsglobal.saveConfig(); - } else { - points = MinigamesAPI.getAPI().statsglobal.getConfig().getInt("players." + uuid + ".points"); - } - if (plugin.getConfig().getBoolean("config.buy_classes_forever")) { - ClassesConfig cl = pli.getClassesConfig(); - if (!cl.getConfig().isSet("players.bought_kits." + p.getName() + "." + kit)) { - int money = pli.getClassesConfig().getConfig().getInt("config.kits." + kit + ".money_amount"); - if (points >= money) { - MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", points - money); - MinigamesAPI.getAPI().statsglobal.saveConfig(); - cl.getConfig().set("players.bought_kits." + p.getName() + "." + kit, true); - cl.saveConfig(); - p.sendMessage(pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', getClassByInternalname(kit).getName())).replaceAll("", Integer.toString(money))); - } else { - p.sendMessage(pli.getMessagesConfig().not_enough_money); - return false; - } - } else { - return true; - } - } else { - if (hasClass(p.getName())) { - if (getSelectedClass(p.getName()).equalsIgnoreCase(kit)) { - return false; - } - } - ClassesConfig config = pli.getClassesConfig(); - int money = config.getConfig().getInt("config.kits." + kit + ".money_amount"); - if (points >= money) { - MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", points - money); - MinigamesAPI.getAPI().statsglobal.saveConfig(); - p.sendMessage(pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', getClassByInternalname(kit).getName())).replaceAll("", Integer.toString(money))); - } else { - p.sendMessage(pli.getMessagesConfig().not_enough_money); - return false; - } - } - return true; - } - - // Money (economy) - if (!MinigamesAPI.getAPI().economy) { - plugin.getLogger().warning("Economy is turned OFF. You can turn it on in the config."); - return false; - } - if (MinigamesAPI.economy) { - if (plugin.getConfig().getBoolean("config.buy_classes_forever")) { - ClassesConfig cl = pli.getClassesConfig(); - if (!cl.getConfig().isSet("players.bought_kits." + p.getName() + "." + kit)) { - int money = pli.getClassesConfig().getConfig().getInt("config.kits." + kit + ".money_amount"); - if (MinigamesAPI.getAPI().econ.getBalance(p.getName()) >= money) { - EconomyResponse r = MinigamesAPI.getAPI().econ.withdrawPlayer(p.getName(), money); - if (!r.transactionSuccess()) { - p.sendMessage(String.format("An error occured: %s", r.errorMessage)); - return false; - } - cl.getConfig().set("players.bought_kits." + p.getName() + "." + kit, true); - cl.saveConfig(); - p.sendMessage(pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', getClassByInternalname(kit).getName())).replaceAll("", Integer.toString(money))); - } else { - p.sendMessage(pli.getMessagesConfig().not_enough_money); - return false; - } - } else { - return true; - } - } else { - if (hasClass(p.getName())) { - if (getSelectedClass(p.getName()).equalsIgnoreCase(kit)) { - return false; - } - if (kitRequiresMoney(kit)) { - Util.sendMessage(plugin, p, pli.getMessagesConfig().kit_warning); - } - } - ClassesConfig config = pli.getClassesConfig(); - int money = config.getConfig().getInt("config.kits." + kit + ".money_amount"); - if (MinigamesAPI.getAPI().econ.getBalance(p.getName()) >= money) { - EconomyResponse r = MinigamesAPI.getAPI().econ.withdrawPlayer(p.getName(), money); - if (!r.transactionSuccess()) { - p.sendMessage(String.format("An error occured: %s", r.errorMessage)); - return false; - } - p.sendMessage(pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', getClassByInternalname(kit).getName())).replaceAll("", Integer.toString(money))); - } else { - p.sendMessage(pli.getMessagesConfig().not_enough_money); - return false; - } - } - return true; - } else { - return false; - } - - } - - public boolean kitPlayerHasPermission(String kit, Player p) { - if (!pli.getClassesConfig().getConfig().getBoolean("config.kits." + kit + ".requires_permission")) { - return true; - } else { - if (p.hasPermission(pli.getClassesConfig().getConfig().getString("config.kits." + kit + ".permission_node"))) { - return true; - } else { - return false; - } - } - } +import net.milkbowl.vault.economy.EconomyResponse; +public class Classes +{ + + JavaPlugin plugin; + PluginInstance pli; + public HashMap lasticonm = new HashMap<>(); + + public Classes(final JavaPlugin plugin) + { + this.plugin = plugin; + this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + } + + public Classes(final PluginInstance pli, final JavaPlugin plugin) + { + this.plugin = plugin; + this.pli = pli; + } + + public void openGUI(final String p) + { + final Classes cl = this; + IconMenu iconm; + final int mincount = this.pli.getAClasses().keySet().size(); + if (!Validator.isPlayerOnline(p)) + { + return; + } + final Player player = Bukkit.getPlayerExact(p); + if (this.lasticonm.containsKey(p)) + { + iconm = this.lasticonm.get(p); + } + else + { + iconm = new IconMenu(this.pli.getMessagesConfig().classes_item, (9 * this.plugin.getConfig().getInt("config.GUI.classes_gui_rows") > mincount - 1) + ? 9 * this.plugin.getConfig().getInt("config.GUI.classes_gui_rows") : Math.round(mincount / 9) * 9 + 9, event -> { + if (event.getPlayer().getName().equalsIgnoreCase(p)) + { + if (Classes.this.pli.global_players.containsKey(p)) + { + if (Classes.this.pli.getArenas().contains(Classes.this.pli.global_players.get(p))) + { + final String d = event.getName(); + final Player p1 = event.getPlayer(); + if (Classes.this.pli.getAClasses().containsKey(d)) + { + cl.setClass(Classes.this.pli.getClassesHandler().getInternalNameByName(d), p1.getName(), true); + } + } + } + } + event.setWillClose(true); + }, this.plugin); + + int c = 0; + for (final String ac : this.pli.getAClasses().keySet()) + { + final AClass ac_ = this.pli.getAClasses().get(ac); + if (ac_.isEnabled()) + { + if (!this.pli.show_classes_without_usage_permission) + { + if (!this.kitPlayerHasPermission(ac_.getInternalName(), player)) + { + continue; + } + } + int slot = c; + if (this.pli.getClassesConfig().getConfig().isSet("config.kits." + ac_.getInternalName() + ".slot")) + { + slot = this.pli.getClassesConfig().getConfig().getInt("config.kits." + ac_.getInternalName() + ".slot"); + if (slot < 0 || slot > iconm.getSize() - 1) + { + slot = c; + } + } + iconm.setOption(slot, ac_.getIcon().clone(), ac_.getName(), this.pli.getClassesConfig().getConfig().getString("config.kits." + ac_.getInternalName() + ".lore").split(";")); + c++; + } + } + } + + iconm.open(player); + this.lasticonm.put(p, iconm); + } + + public void getClass(final String player) + { + if (!this.pli.getPClasses().containsKey(player)) + { + ArenaLogger.debug(player + " didn't select any kit and the auto_add_default_kit option might be turned off, thus he won't get any starting items."); + return; + } + final AClass c = this.pli.getPClasses().get(player); + final Player p = Bukkit.getServer().getPlayer(player); + Util.clearInv(p); + final ArrayList items = new ArrayList<>(Arrays.asList(c.getItems())); + final ArrayList temp = new ArrayList<>(Arrays.asList(c.getItems())); + final ArrayList tempguns = new ArrayList<>(); + final ArrayList temppotions = new ArrayList<>(); + final ArrayList temppotions_lv = new ArrayList<>(); + final ArrayList temppotions_duration = new ArrayList<>(); + + // crackshot support + for (final ItemStack item : temp) + { + if (item != null) + { + if (item.hasItemMeta()) + { + if (item.getItemMeta().hasDisplayName()) + { + if (item.getItemMeta().getDisplayName().startsWith("crackshot:")) + { + items.remove(item); + tempguns.add(item.getItemMeta().getDisplayName().split(":")[1]); + } + else if (item.getItemMeta().getDisplayName().startsWith("potioneffect:")) + { + items.remove(item); + final String potioneffect = item.getItemMeta().getDisplayName().split(":")[1]; + final String data = item.getItemMeta().getDisplayName().split(":")[2]; + final Integer time = Integer.parseInt(data.substring(0, data.indexOf("#"))); + final Integer lv = Integer.parseInt(data.split("#")[1]); + if (PotionEffectType.getByName(potioneffect) != null) + { + temppotions.add(PotionEffectType.getByName(potioneffect)); + temppotions_lv.add(lv); + temppotions_duration.add(time); + } + } + } + } + } + } + + for (final ItemStack item : items) + { + if (item != null) + { + Color c_ = null; + if (item.hasItemMeta()) + { + if (item.getItemMeta().hasDisplayName()) + { + if (item.getItemMeta().getDisplayName().startsWith("#") && item.getItemMeta().getDisplayName().length() == 7) + { + c_ = Util.hexToRgb(item.getItemMeta().getDisplayName()); + } + } + } + if (item.getTypeId() == 298 || item.getTypeId() == 302 || item.getTypeId() == 306 || item.getTypeId() == 310 || item.getTypeId() == 314) + { + if (item.getTypeId() == 298) + { + final LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); + if (c_ != null) + { + lam.setColor(c_); + } + item.setItemMeta(lam); + } + p.getInventory().setHelmet(item); + continue; + } + if (item.getTypeId() == 299 || item.getTypeId() == 303 || item.getTypeId() == 307 || item.getTypeId() == 311 || item.getTypeId() == 315) + { + if (item.getTypeId() == 299) + { + final LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); + if (c_ != null) + { + lam.setColor(c_); + } + item.setItemMeta(lam); + } + p.getInventory().setChestplate(item); + continue; + } + if (item.getTypeId() == 300 || item.getTypeId() == 304 || item.getTypeId() == 308 || item.getTypeId() == 312 || item.getTypeId() == 316) + { + if (item.getTypeId() == 300) + { + final LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); + if (c_ != null) + { + lam.setColor(c_); + } + item.setItemMeta(lam); + } + p.getInventory().setLeggings(item); + continue; + } + if (item.getTypeId() == 301 || item.getTypeId() == 305 || item.getTypeId() == 309 || item.getTypeId() == 313 || item.getTypeId() == 317) + { + if (item.getTypeId() == 301) + { + final LeatherArmorMeta lam = (LeatherArmorMeta) item.getItemMeta(); + if (c_ != null) + { + lam.setColor(c_); + } + item.setItemMeta(lam); + } + p.getInventory().setBoots(item); + continue; + } + if (item.getType() != Material.AIR) + { + p.getInventory().addItem(item); + } + } + } + // p.getInventory().setContents((ItemStack[]) items.toArray(new ItemStack[items.size()])); + p.updateInventory(); + + if (MinigamesAPI.getAPI().crackshot) + { + for (final String t : tempguns) + { + final CSUtility cs = new CSUtility(); + cs.giveWeapon(p, t, 1); + } + } + + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + if (p != null) + { + int index = 0; + for (final PotionEffectType t : temppotions) + { + p.addPotionEffect(new PotionEffect(t, temppotions_duration.get(index), temppotions_lv.get(index))); + index++; + } + } + }, 10L); + + } + + /** + * Sets the current class of a player + * + * @param iname + * the INTERNAL classname + * @param player + */ + public void setClass(String iname, final String player, final boolean money) + { + String internalname = iname; + for (final String c : this.pli.getAClasses().keySet()) + { + if (c.toLowerCase().equalsIgnoreCase(internalname.toLowerCase())) + { + internalname = c; + } + } + if (!this.kitPlayerHasPermission(internalname, Bukkit.getPlayer(player))) + { + Bukkit.getPlayer(player).sendMessage(this.pli.getMessagesConfig().no_perm); + return; + } + boolean continue_ = true; + if (money) + { + if (this.kitRequiresMoney(internalname)) + { + continue_ = this.kitTakeMoney(Bukkit.getPlayer(player), internalname); + } + } + if (continue_) + { + this.pli.setPClass(player, this.getClassByInternalname(internalname)); + Bukkit.getPlayer(player) + .sendMessage(this.pli.getMessagesConfig().set_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', this.getClassByInternalname(internalname).getName()))); + } + } + + public String getInternalNameByName(final String name) + { + for (final AClass ac : this.pli.getAClasses().values()) + { + if (ac.getName().equalsIgnoreCase(name)) + { + return ac.getInternalName(); + } + } + return "default"; + } + + public AClass getClassByInternalname(final String internalname) + { + for (final AClass ac : this.pli.getAClasses().values()) + { + if (ac.getInternalName().equalsIgnoreCase(internalname)) + { + return ac; + } + } + return null; + } + + public boolean hasClass(final String player) + { + return this.pli.getPClasses().containsKey(player); + } + + public String getSelectedClass(final String player) + { + if (this.hasClass(player)) + { + return this.pli.getPClasses().get(player).getInternalName(); + } + return "default"; + } + + public void loadClasses() + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + final FileConfiguration config = Classes.this.pli.getClassesConfig().getConfig(); + if (config.isSet("config.kits")) + { + for (final String aclass : config.getConfigurationSection("config.kits.").getKeys(false)) + { + AClass n; + if (config.isSet("config.kits." + aclass + ".icon")) + { + n = new AClass(Classes.this.plugin, config.getString("config.kits." + aclass + ".name"), aclass, + config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, + Util.parseItems(config.getString("config.kits." + aclass + ".items")), Util.parseItems(config.getString("config.kits." + aclass + ".icon")).get(0)); + } + else + { + n = new AClass(Classes.this.plugin, config.getString("config.kits." + aclass + ".name"), aclass, + config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, + Util.parseItems(config.getString("config.kits." + aclass + ".items"))); + } + Classes.this.pli.addAClass(config.getString("config.kits." + aclass + ".name"), n); + if (!config.isSet("config.kits." + aclass + ".items") || !config.isSet("config.kits." + aclass + ".lore")) + { + Classes.this.plugin.getLogger().warning("One of the classes found in the config file is invalid: " + aclass + ". Missing itemid or lore!"); + } + } + } + }, 20L); + } + + /** + * Please use new Classes().loadClasses(); + * + * @param plugin + */ + @Deprecated + public static void loadClasses(final JavaPlugin plugin) + { + Bukkit.getScheduler().runTaskLater(plugin, () -> { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getClassesConfig().getConfig(); + if (config.isSet("config.kits")) + { + for (final String aclass : config.getConfigurationSection("config.kits.").getKeys(false)) + { + AClass n; + if (config.isSet("config.kits." + aclass + ".icon")) + { + n = new AClass(plugin, config.getString("config.kits." + aclass + ".name"), aclass, + config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, + Util.parseItems(config.getString("config.kits." + aclass + ".items")), Util.parseItems(config.getString("config.kits." + aclass + ".icon")).get(0)); + } + else + { + n = new AClass(plugin, config.getString("config.kits." + aclass + ".name"), aclass, + config.isSet("config.kits." + aclass + ".enabled") ? config.getBoolean("config.kits." + aclass + ".enabled") : true, + Util.parseItems(config.getString("config.kits." + aclass + ".items"))); + } + // pli.addAClass(aclass, n); + MinigamesAPI.getAPI().getPluginInstance(plugin).addAClass(config.getString("config.kits." + aclass + ".name"), n); + if (!config.isSet("config.kits." + aclass + ".items") || !config.isSet("config.kits." + aclass + ".lore")) + { + plugin.getLogger().warning("One of the classes found in the config file is invalid: " + aclass + ". Missing itemid or lore!"); + } + } + } + }, 20L); + } + + /** + * Returns whether the kit requires money to use it + * + * @param kit + * Internal name of the kit + * @return + */ + public boolean kitRequiresMoney(final String kit) + { + return this.pli.getClassesConfig().getConfig().getBoolean("config.kits." + kit + ".requires_money"); + } + + /** + * Gives the player the kit if he has enough money to buy it + * + * @param p + * Player to give the kit to + * @param kit + * Internal name of the kit + * @return + */ + public boolean kitTakeMoney(final Player p, final String kit) + { + // Credits + if (this.plugin.getConfig().getBoolean("config.use_credits_instead_of_money_for_kits")) + { + final String uuid = p.getUniqueId().toString(); + int points = 0; + if (!MinigamesAPI.getAPI().statsglobal.getConfig().isSet("players." + uuid + ".points")) + { + points = this.pli.getStatsInstance().getPoints(p.getName()); + MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", points); + MinigamesAPI.getAPI().statsglobal.saveConfig(); + } + else + { + points = MinigamesAPI.getAPI().statsglobal.getConfig().getInt("players." + uuid + ".points"); + } + if (this.plugin.getConfig().getBoolean("config.buy_classes_forever")) + { + final ClassesConfig cl = this.pli.getClassesConfig(); + if (!cl.getConfig().isSet("players.bought_kits." + p.getName() + "." + kit)) + { + final int money = this.pli.getClassesConfig().getConfig().getInt("config.kits." + kit + ".money_amount"); + if (points >= money) + { + MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", points - money); + MinigamesAPI.getAPI().statsglobal.saveConfig(); + cl.getConfig().set("players.bought_kits." + p.getName() + "." + kit, true); + cl.saveConfig(); + p.sendMessage(this.pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', this.getClassByInternalname(kit).getName())) + .replaceAll("", Integer.toString(money))); + } + else + { + p.sendMessage(this.pli.getMessagesConfig().not_enough_money); + return false; + } + } + else + { + return true; + } + } + else + { + if (this.hasClass(p.getName())) + { + if (this.getSelectedClass(p.getName()).equalsIgnoreCase(kit)) + { + return false; + } + } + final ClassesConfig config = this.pli.getClassesConfig(); + final int money = config.getConfig().getInt("config.kits." + kit + ".money_amount"); + if (points >= money) + { + MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", points - money); + MinigamesAPI.getAPI().statsglobal.saveConfig(); + p.sendMessage(this.pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', this.getClassByInternalname(kit).getName())) + .replaceAll("", Integer.toString(money))); + } + else + { + p.sendMessage(this.pli.getMessagesConfig().not_enough_money); + return false; + } + } + return true; + } + + MinigamesAPI.getAPI(); + // Money (economy) + if (!MinigamesAPI.economy) + { + this.plugin.getLogger().warning("Economy is turned OFF. You can turn it on in the config."); + return false; + } + if (MinigamesAPI.economy) + { + if (this.plugin.getConfig().getBoolean("config.buy_classes_forever")) + { + final ClassesConfig cl = this.pli.getClassesConfig(); + if (!cl.getConfig().isSet("players.bought_kits." + p.getName() + "." + kit)) + { + final int money = this.pli.getClassesConfig().getConfig().getInt("config.kits." + kit + ".money_amount"); + MinigamesAPI.getAPI(); + if (MinigamesAPI.econ.getBalance(p.getName()) >= money) + { + MinigamesAPI.getAPI(); + final EconomyResponse r = MinigamesAPI.econ.withdrawPlayer(p.getName(), money); + if (!r.transactionSuccess()) + { + p.sendMessage(String.format("An error occured: %s", r.errorMessage)); + return false; + } + cl.getConfig().set("players.bought_kits." + p.getName() + "." + kit, true); + cl.saveConfig(); + p.sendMessage(this.pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', this.getClassByInternalname(kit).getName())) + .replaceAll("", Integer.toString(money))); + } + else + { + p.sendMessage(this.pli.getMessagesConfig().not_enough_money); + return false; + } + } + else + { + return true; + } + } + else + { + if (this.hasClass(p.getName())) + { + if (this.getSelectedClass(p.getName()).equalsIgnoreCase(kit)) + { + return false; + } + if (this.kitRequiresMoney(kit)) + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().kit_warning); + } + } + final ClassesConfig config = this.pli.getClassesConfig(); + final int money = config.getConfig().getInt("config.kits." + kit + ".money_amount"); + MinigamesAPI.getAPI(); + if (MinigamesAPI.econ.getBalance(p.getName()) >= money) + { + MinigamesAPI.getAPI(); + final EconomyResponse r = MinigamesAPI.econ.withdrawPlayer(p.getName(), money); + if (!r.transactionSuccess()) + { + p.sendMessage(String.format("An error occured: %s", r.errorMessage)); + return false; + } + p.sendMessage(this.pli.getMessagesConfig().successfully_bought_kit.replaceAll("", ChatColor.translateAlternateColorCodes('&', this.getClassByInternalname(kit).getName())) + .replaceAll("", Integer.toString(money))); + } + else + { + p.sendMessage(this.pli.getMessagesConfig().not_enough_money); + return false; + } + } + return true; + } + else + { + return false; + } + + } + + public boolean kitPlayerHasPermission(final String kit, final Player p) + { + if (!this.pli.getClassesConfig().getConfig().getBoolean("config.kits." + kit + ".requires_permission")) + { + return true; + } + else + { + if (p.hasPermission(this.pli.getClassesConfig().getConfig().getString("config.kits." + kit + ".permission_node"))) + { + return true; + } + else + { + return false; + } + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 0db1380b..010740fe 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.lang.reflect.Constructor; @@ -19,454 +33,530 @@ import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Validator; -public class Effects { - - @Deprecated - public static int getClientProtocolVersion(Player p) { - int ret = 0; - try { - if (!!MinigamesAPI.SERVER_VERSION.isEqual(MinecraftVersionsType.V1_7)) { - Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - Object playerConInstance = playerConnection.get(getHandle.invoke(p)); - Field networkManager = playerConInstance.getClass().getField("networkManager"); - networkManager.setAccessible(true); - Object networkManagerInstance = networkManager.get(playerConInstance); - Method getVersion = networkManagerInstance.getClass().getMethod("getVersion"); - Object version = getVersion.invoke(networkManagerInstance); - ret = (Integer) version; - } - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - return ret; - } - - /** - * Shows the particles of a redstone block breaking - * - * @param p - */ - public static void playBloodEffect(Player p) { - p.getWorld().playEffect(p.getLocation().add(0D, 1D, 0D), Effect.STEP_SOUND, 152); - } - - public static void playEffect(Arena a, Location l, String effectname) { - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - ParticleEffectNew eff = ParticleEffectNew.valueOf(effectname); - eff.setId(55); - eff.animateReflected(p, l, 1F, 2); - } - } - } - - public static BukkitTask playFakeBed(Arena a, Player p) { - return playFakeBed(a, p, p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ()); - } - - public static BukkitTask playFakeBed(final Arena a, final Player p, int x, int y, int z) { - try { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - - Constructor packetPlayOutNamedEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutNamedEntitySpawn").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityHuman")); - Constructor packetPlayOutBedConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutBed").getConstructor(); - - final int id = -p.getEntityId() - 1000; - - final Object packet = packetPlayOutNamedEntityConstr.newInstance(getHandle.invoke(p)); - setValue(packet, "a", id); - - final Object packet_ = packetPlayOutBedConstr.newInstance(); - setValue(packet_, "a", id); - setValue(packet_, "b", x); - setValue(packet_, "c", y); - setValue(packet_, "d", z); - - for (String p_ : a.getAllPlayers()) { - Player p__ = Bukkit.getPlayer(p_); - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet); - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet_); - } - - // Move the effect (fake player) to 0 0 0 after 4 seconds - final ArrayList tempp = new ArrayList(a.getAllPlayers()); - final World currentworld = p.getWorld(); - return Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - try { - setValue(packet_, "a", id); - setValue(packet_, "b", 0); - setValue(packet_, "c", 0); - setValue(packet_, "d", 0); - for (String p_ : tempp) { - if (Validator.isPlayerOnline(p_)) { - Player p__ = Bukkit.getPlayer(p_); - if (p__.getWorld() == currentworld) { - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet); - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet_); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - }, 20L * 4); - } catch (Exception e) { - System.out.println("Failed playing fakebed effect: " + e.getMessage()); - } - return null; - } - - public static void setValue(Object instance, String fieldName, Object value) throws Exception { - Field field = instance.getClass().getDeclaredField(fieldName); - field.setAccessible(true); - field.set(instance, value); - } - - /** - * Respawns a player using moveToWorld (which among others also sends a respawn packet) - * - * @param p - * Player to send it to - * @param plugin - */ - public static void playRespawn(final Player p, JavaPlugin plugin) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - try { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - final Field minecraftServer = playerConnection.get(getHandle.invoke(p)).getClass().getDeclaredField("minecraftServer"); - minecraftServer.setAccessible(true); - - Object nmsMcServer = minecraftServer.get(playerConnection.get(getHandle.invoke(p))); - Object playerlist = nmsMcServer.getClass().getDeclaredMethod("getPlayerList").invoke(nmsMcServer); - Method moveToWorld = playerlist.getClass().getMethod("moveToWorld", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer"), int.class, boolean.class); - moveToWorld.invoke(playerlist, getHandle.invoke(p), 0, false); - } catch (Exception e) { - System.out.println("Failed additional respawn packet: " + e.getMessage()); - } - } - }, 1L); - } - - // TODO Unused right now - public void playAura(Player p, int cr) { - int cradius_s = cr * cr; - Location start = p.getLocation(); - int x = start.getBlockX(); - int y = start.getBlockY(); - int z = start.getBlockZ(); - for (int x_ = -cr; x_ <= cr; x_++) { - for (int z_ = -cr; z_ <= cr; z_++) { - int t = (x_ * x_) + (z_ * z_); - if (t >= cradius_s && t <= (cradius_s + 90)) { - p.playEffect(new Location(start.getWorld(), x - x_, y, z - z_), Effect.SMOKE/* todo not present in 1.9: PORTAL */, 5); - } - } - } - } - - /** - * Plays a title/subtitle - * - * @param player - * Player to play the title to - * @param title - * The title string - * @param enumindex - * The enum index, can be 0 for title, 1 for subtitle, 4 for reset - */ - public static void playTitle(Player player, String title, int enumindex) { - if (enumindex > 4) { - enumindex = 0; - } - try { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - final Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".ChatSerializer").getMethod("a", String.class); - - Constructor packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutTitle").getConstructor(); - - final Object packet = packetPlayOutTitleConstr.newInstance(); - setValue(packet, "a", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EnumTitleAction").getEnumConstants()[enumindex]); - setValue(packet, "b", a.invoke(null, "{text:\"" + title + "\"}")); - - sendPacket.invoke(playerConnection.get(getHandle.invoke(player)), packet); - } catch (Exception e) { - System.out.println("Failed sending title packet: " + e.getMessage()); - } - } - - static HashMap effectlocd = new HashMap(); - static HashMap effectlocd_taskid = new HashMap(); - - /** - * Sends a hologram to a player - * - * @param p - * Player to send the hologram to - * @param l - * Location where the hologram will spawn (and slowly move down) - * @param text - * Hologram text - * @param moveDown - * Whether to play a moving down animation - * @param removeAfterCooldown - * Whether to remove the hologram after a few seconds or not - * @return - */ - public static ArrayList playHologram(final Player p, final Location l, String text, boolean moveDown, boolean removeAfterCooldown) { - ArrayList ret = new ArrayList(); - if (MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) - { - try { - final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - - Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".CraftWorld"); - Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".World"); - Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); - Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); - Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); - final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); - Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); - - // EntityArmorStand - Constructor entityArmorStandConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityArmorStand").getConstructor(w); - final Object entityArmorStand = entityArmorStandConstr.newInstance(worldServer); - final Method setLoc2 = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); - setLoc2.invoke(entityArmorStand, l.getX(), l.getY() - 1D, l.getZ(), 0F, 0F); - Method setCustomName = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomName", String.class); - setCustomName.invoke(entityArmorStand, text); - Method setCustomNameVisible = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomNameVisible", boolean.class); - setCustomNameVisible.invoke(entityArmorStand, true); - Method getArmorStandId = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("getId"); - final int armorstandId = (Integer) (getArmorStandId.invoke(entityArmorStand)); - Method setInvisble = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setInvisible", boolean.class); - setInvisble.invoke(entityArmorStand, true); - - effectlocd.put(armorstandId, 12); // send move packet 12 times - - // Send EntityArmorStand packet - Object horsePacket = packetPlayOutSpawnEntityLivingConstr.newInstance(entityArmorStand); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), horsePacket); - - // Send velocity packets to move the entities slowly down - if (moveDown) { - effectlocd_taskid.put(armorstandId, Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - try { - int i = effectlocd.get(armorstandId); - Object packet = packetPlayOutEntityVelocity.newInstance(armorstandId, 0D, -0.05D, 0D); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), packet); - if (i < -1) { - int taskid = effectlocd_taskid.get(armorstandId); - effectlocd_taskid.remove(armorstandId); - effectlocd.remove(armorstandId); - Bukkit.getScheduler().cancelTask(taskid); - return; - } - effectlocd.put(armorstandId, effectlocd.get(armorstandId) - 1); - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - } - }, 2L, 2L).getTaskId()); - } - - // Remove both entities (and thus the hologram) after 2 seconds - if (removeAfterCooldown) { - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - try { - Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance((Object) new int[] { armorstandId }); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - } - }, 20L * 2); - } - - ret.add(armorstandId); - - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - return ret; - } - try { - // If player is on 1.8, we'll have to use armor stands, otherwise just use the old 1.7 technique - final boolean playerIs1_8 = getClientProtocolVersion(p) > 5; - - final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - - Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".CraftWorld"); - Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".World"); - Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); - Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); - Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); - final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving").getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); - final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); - final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity").getConstructor(int.class, double.class, double.class, double.class); - - // WitherSkull - Constructor witherSkullConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityWitherSkull").getConstructor(w); - final Object witherSkull = witherSkullConstr.newInstance(worldServer); - final Method setLoc = witherSkull.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); - setLoc.invoke(witherSkull, l.getX(), l.getY() + 33D, l.getZ(), 0F, 0F); - Method getWitherSkullId = witherSkull.getClass().getSuperclass().getSuperclass().getDeclaredMethod("getId"); - final int witherSkullId = (Integer) (getWitherSkullId.invoke(witherSkull)); - - // EntityHorse - Constructor entityHorseConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityHorse").getConstructor(w); - final Object entityHorse = entityHorseConstr.newInstance(worldServer); - final Method setLoc2 = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); - setLoc2.invoke(entityHorse, l.getX(), l.getY() + (playerIs1_8 ? -1D : 33D), l.getZ(), 0F, 0F); - Method setAge = entityHorse.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setAge", int.class); - setAge.invoke(entityHorse, -1000000); - Method setCustomName = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomName", String.class); - setCustomName.invoke(entityHorse, text); - Method setCustomNameVisible = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomNameVisible", boolean.class); - setCustomNameVisible.invoke(entityHorse, true); - Method getHorseId = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("getId"); - final int horseId = (Integer) (getHorseId.invoke(entityHorse)); - - if (playerIs1_8) { - // Set horse (later armor stand) invisible - Method setInvisble = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setInvisible", boolean.class); - setInvisble.invoke(entityHorse, true); - } - - effectlocd.put(horseId, 12); // send move packet 12 times - - // Send Witherskull+EntityHorse packet - Object horsePacket = packetPlayOutSpawnEntityLivingConstr.newInstance(entityHorse); - if (playerIs1_8) { - // Set entity id to 30 (armor stand): - setValue(horsePacket, "b", 30); - // Fix datawatcher values to prevent crashes (ofc armor stands expect other data than horses): - Field datawatcher = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredField("datawatcher"); - datawatcher.setAccessible(true); - Object datawatcherInstance = datawatcher.get(entityHorse); - Field d = datawatcherInstance.getClass().getDeclaredField("d"); - d.setAccessible(true); - Map dmap = (Map) d.get(datawatcherInstance); - dmap.remove(10); - // These are the Rotation ones - dmap.remove(11); - dmap.remove(12); - dmap.remove(13); - dmap.remove(14); - dmap.remove(15); - dmap.remove(16); - Method a = datawatcherInstance.getClass().getDeclaredMethod("a", int.class, Object.class); - a.invoke(datawatcherInstance, 10, (byte) 0); - } - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), horsePacket); - if (!playerIs1_8) { - Object witherPacket = packetPlayOutSpawnEntityConstr.newInstance(witherSkull, 64); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), witherPacket); - } - - // Send attach packet - if (!playerIs1_8) { - Object attachPacket = packetPlayOutAttachEntityConstr.newInstance(0, entityHorse, witherSkull); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), attachPacket); - } - - // Send velocity packets to move the entities slowly down - if (moveDown) { - effectlocd_taskid.put(horseId, Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - try { - int i = effectlocd.get(horseId); - Object packet = packetPlayOutEntityVelocity.newInstance(horseId, 0D, -0.05D, 0D); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), packet); - if (!playerIs1_8) { - Object packet2 = packetPlayOutEntityVelocity.newInstance(witherSkullId, 0D, -0.05D, 0D); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), packet2); - } - if (i < -1) { - int taskid = effectlocd_taskid.get(horseId); - effectlocd_taskid.remove(horseId); - effectlocd.remove(horseId); - Bukkit.getScheduler().cancelTask(taskid); - return; - } - effectlocd.put(horseId, effectlocd.get(horseId) - 1); - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - } - }, 2L, 2L).getTaskId()); - } - - // Remove both entities (and thus the hologram) after 2 seconds - if (removeAfterCooldown) { - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - try { - Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance((Object) new int[] { witherSkullId, horseId }); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - } - }, 20L * 2); - } - - ret.add(witherSkullId); - ret.add(horseId); - - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - return ret; - } - - public static void sendGameModeChange(Player p, int gamemode) { - // NOT_SET(-1, ""), SURVIVAL(0, "survival"), CREATIVE(1, "creative"), ADVENTURE(2, "adventure"), SPECTATOR(3, "spectator"); - - if (MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7) && gamemode == 3) { - return; - } - - p.setGameMode(GameMode.getByValue(gamemode)); - - } +public class Effects +{ + + @Deprecated + public static int getClientProtocolVersion(final Player p) + { + int ret = 0; + try + { + if (!!MinigamesAPI.SERVER_VERSION.isEqual(MinecraftVersionsType.V1_7)) + { + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Object playerConInstance = playerConnection.get(getHandle.invoke(p)); + final Field networkManager = playerConInstance.getClass().getField("networkManager"); + networkManager.setAccessible(true); + final Object networkManagerInstance = networkManager.get(playerConInstance); + final Method getVersion = networkManagerInstance.getClass().getMethod("getVersion"); + final Object version = getVersion.invoke(networkManagerInstance); + ret = (Integer) version; + } + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + return ret; + } + + /** + * Shows the particles of a redstone block breaking + * + * @param p + */ + public static void playBloodEffect(final Player p) + { + p.getWorld().playEffect(p.getLocation().add(0D, 1D, 0D), Effect.STEP_SOUND, 152); + } + + public static void playEffect(final Arena a, final Location l, final String effectname) + { + for (final String p_ : a.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + final ParticleEffectNew eff = ParticleEffectNew.valueOf(effectname); + eff.setId(55); + eff.animateReflected(p, l, 1F, 2); + } + } + } + + public static BukkitTask playFakeBed(final Arena a, final Player p) + { + return Effects.playFakeBed(a, p, p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ()); + } + + public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, final int y, final int z) + { + try + { + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + + final Constructor packetPlayOutNamedEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutNamedEntitySpawn") + .getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityHuman")); + final Constructor packetPlayOutBedConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutBed").getConstructor(); + + final int id = -p.getEntityId() - 1000; + + final Object packet = packetPlayOutNamedEntityConstr.newInstance(getHandle.invoke(p)); + Effects.setValue(packet, "a", id); + + final Object packet_ = packetPlayOutBedConstr.newInstance(); + Effects.setValue(packet_, "a", id); + Effects.setValue(packet_, "b", x); + Effects.setValue(packet_, "c", y); + Effects.setValue(packet_, "d", z); + + for (final String p_ : a.getAllPlayers()) + { + final Player p__ = Bukkit.getPlayer(p_); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet_); + } + + // Move the effect (fake player) to 0 0 0 after 4 seconds + final ArrayList tempp = new ArrayList<>(a.getAllPlayers()); + final World currentworld = p.getWorld(); + return Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + try + { + Effects.setValue(packet_, "a", id); + Effects.setValue(packet_, "b", 0); + Effects.setValue(packet_, "c", 0); + Effects.setValue(packet_, "d", 0); + for (final String p_ : tempp) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p__ = Bukkit.getPlayer(p_); + if (p__.getWorld() == currentworld) + { + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet_); + } + } + } + } + catch (final Exception e) + { + e.printStackTrace(); + } + }, 20L * 4); + } + catch (final Exception e) + { + System.out.println("Failed playing fakebed effect: " + e.getMessage()); + } + return null; + } + + public static void setValue(final Object instance, final String fieldName, final Object value) throws Exception + { + final Field field = instance.getClass().getDeclaredField(fieldName); + field.setAccessible(true); + field.set(instance, value); + } + + /** + * Respawns a player using moveToWorld (which among others also sends a respawn packet) + * + * @param p + * Player to send it to + * @param plugin + */ + public static void playRespawn(final Player p, final JavaPlugin plugin) + { + Bukkit.getScheduler().runTaskLater(plugin, () -> { + try + { + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + final Field minecraftServer = playerConnection.get(getHandle.invoke(p)).getClass().getDeclaredField("minecraftServer"); + minecraftServer.setAccessible(true); + + final Object nmsMcServer = minecraftServer.get(playerConnection.get(getHandle.invoke(p))); + final Object playerlist = nmsMcServer.getClass().getDeclaredMethod("getPlayerList").invoke(nmsMcServer); + final Method moveToWorld = playerlist.getClass().getMethod("moveToWorld", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer"), + int.class, boolean.class); + moveToWorld.invoke(playerlist, getHandle.invoke(p), 0, false); + } + catch (final Exception e) + { + System.out.println("Failed additional respawn packet: " + e.getMessage()); + } + }, 1L); + } + + // TODO Unused right now + public void playAura(final Player p, final int cr) + { + final int cradius_s = cr * cr; + final Location start = p.getLocation(); + final int x = start.getBlockX(); + final int y = start.getBlockY(); + final int z = start.getBlockZ(); + for (int x_ = -cr; x_ <= cr; x_++) + { + for (int z_ = -cr; z_ <= cr; z_++) + { + final int t = (x_ * x_) + (z_ * z_); + if (t >= cradius_s && t <= (cradius_s + 90)) + { + p.playEffect(new Location(start.getWorld(), x - x_, y, z - z_), Effect.SMOKE/* todo not present in 1.9: PORTAL */, 5); + } + } + } + } + + /** + * Plays a title/subtitle + * + * @param player + * Player to play the title to + * @param title + * The title string + * @param eindex + * The enum index, can be 0 for title, 1 for subtitle, 4 for reset + */ + public static void playTitle(final Player player, final String title, int eindex) + { + int enumindex = eindex; + if (enumindex > 4) + { + enumindex = 0; + } + try + { + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + final Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".ChatSerializer").getMethod("a", String.class); + + final Constructor packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutTitle").getConstructor(); + + final Object packet = packetPlayOutTitleConstr.newInstance(); + Effects.setValue(packet, "a", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EnumTitleAction").getEnumConstants()[enumindex]); + Effects.setValue(packet, "b", a.invoke(null, "{text:\"" + title + "\"}")); + + sendPacket.invoke(playerConnection.get(getHandle.invoke(player)), packet); + } + catch (final Exception e) + { + System.out.println("Failed sending title packet: " + e.getMessage()); + } + } + + static HashMap effectlocd = new HashMap<>(); + static HashMap effectlocd_taskid = new HashMap<>(); + + /** + * Sends a hologram to a player + * + * @param p + * Player to send the hologram to + * @param l + * Location where the hologram will spawn (and slowly move down) + * @param text + * Hologram text + * @param moveDown + * Whether to play a moving down animation + * @param removeAfterCooldown + * Whether to remove the hologram after a few seconds or not + * @return + */ + public static ArrayList playHologram(final Player p, final Location l, final String text, final boolean moveDown, final boolean removeAfterCooldown) + { + final ArrayList ret = new ArrayList<>(); + if (MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { + try + { + final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + + final Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".CraftWorld"); + final Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".World"); + final Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); + final Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); + final Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); + Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); + final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving") + .getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); + Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy") + .getConstructor(int[].class); + final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity") + .getConstructor(int.class, double.class, double.class, double.class); + + // EntityArmorStand + final Constructor entityArmorStandConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityArmorStand").getConstructor(w); + final Object entityArmorStand = entityArmorStandConstr.newInstance(worldServer); + final Method setLoc2 = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); + setLoc2.invoke(entityArmorStand, l.getX(), l.getY() - 1D, l.getZ(), 0F, 0F); + final Method setCustomName = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomName", String.class); + setCustomName.invoke(entityArmorStand, text); + final Method setCustomNameVisible = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomNameVisible", boolean.class); + setCustomNameVisible.invoke(entityArmorStand, true); + final Method getArmorStandId = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("getId"); + final int armorstandId = (Integer) (getArmorStandId.invoke(entityArmorStand)); + final Method setInvisble = entityArmorStand.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setInvisible", boolean.class); + setInvisble.invoke(entityArmorStand, true); + + Effects.effectlocd.put(armorstandId, 12); // send move packet 12 times + + // Send EntityArmorStand packet + final Object horsePacket = packetPlayOutSpawnEntityLivingConstr.newInstance(entityArmorStand); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), horsePacket); + + // Send velocity packets to move the entities slowly down + if (moveDown) + { + Effects.effectlocd_taskid.put(armorstandId, Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), () -> { + try + { + final int i = Effects.effectlocd.get(armorstandId); + final Object packet = packetPlayOutEntityVelocity.newInstance(armorstandId, 0D, -0.05D, 0D); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), packet); + if (i < -1) + { + final int taskid = Effects.effectlocd_taskid.get(armorstandId); + Effects.effectlocd_taskid.remove(armorstandId); + Effects.effectlocd.remove(armorstandId); + Bukkit.getScheduler().cancelTask(taskid); + return; + } + Effects.effectlocd.put(armorstandId, Effects.effectlocd.get(armorstandId) - 1); + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + }, 2L, 2L).getTaskId()); + } + + // Remove both entities (and thus the hologram) after 2 seconds + if (removeAfterCooldown) + { + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + try + { + final Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance(new int[] { armorstandId }); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + }, 20L * 2); + } + + ret.add(armorstandId); + + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + return ret; + } + try + { + // If player is on 1.8, we'll have to use armor stands, otherwise just use the old 1.7 technique + final boolean playerIs1_8 = Effects.getClientProtocolVersion(p) > 5; + + final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + + final Class craftw = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".CraftWorld"); + final Class w = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".World"); + final Class entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); + final Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); + final Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); + final Constructor packetPlayOutSpawnEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity") + .getConstructor(entity, int.class); + final Constructor packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving") + .getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); + final Constructor packetPlayOutAttachEntityConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity") + .getConstructor(int.class, entity, entity); + final Constructor packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy") + .getConstructor(int[].class); + final Constructor packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity") + .getConstructor(int.class, double.class, double.class, double.class); + + // WitherSkull + final Constructor witherSkullConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityWitherSkull").getConstructor(w); + final Object witherSkull = witherSkullConstr.newInstance(worldServer); + final Method setLoc = witherSkull.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, double.class, double.class, float.class, float.class); + setLoc.invoke(witherSkull, l.getX(), l.getY() + 33D, l.getZ(), 0F, 0F); + final Method getWitherSkullId = witherSkull.getClass().getSuperclass().getSuperclass().getDeclaredMethod("getId"); + final int witherSkullId = (Integer) (getWitherSkullId.invoke(witherSkull)); + + // EntityHorse + final Constructor entityHorseConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityHorse").getConstructor(w); + final Object entityHorse = entityHorseConstr.newInstance(worldServer); + final Method setLoc2 = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setLocation", double.class, + double.class, double.class, float.class, float.class); + setLoc2.invoke(entityHorse, l.getX(), l.getY() + (playerIs1_8 ? -1D : 33D), l.getZ(), 0F, 0F); + final Method setAge = entityHorse.getClass().getSuperclass().getSuperclass().getDeclaredMethod("setAge", int.class); + setAge.invoke(entityHorse, -1000000); + final Method setCustomName = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomName", String.class); + setCustomName.invoke(entityHorse, text); + final Method setCustomNameVisible = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setCustomNameVisible", boolean.class); + setCustomNameVisible.invoke(entityHorse, true); + final Method getHorseId = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("getId"); + final int horseId = (Integer) (getHorseId.invoke(entityHorse)); + + if (playerIs1_8) + { + // Set horse (later armor stand) invisible + final Method setInvisble = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredMethod("setInvisible", + boolean.class); + setInvisble.invoke(entityHorse, true); + } + + Effects.effectlocd.put(horseId, 12); // send move packet 12 times + + // Send Witherskull+EntityHorse packet + final Object horsePacket = packetPlayOutSpawnEntityLivingConstr.newInstance(entityHorse); + if (playerIs1_8) + { + // Set entity id to 30 (armor stand): + Effects.setValue(horsePacket, "b", 30); + // Fix datawatcher values to prevent crashes (ofc armor stands expect other data than horses): + final Field datawatcher = entityHorse.getClass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getSuperclass().getDeclaredField("datawatcher"); + datawatcher.setAccessible(true); + final Object datawatcherInstance = datawatcher.get(entityHorse); + final Field d = datawatcherInstance.getClass().getDeclaredField("d"); + d.setAccessible(true); + final Map dmap = (Map) d.get(datawatcherInstance); + dmap.remove(10); + // These are the Rotation ones + dmap.remove(11); + dmap.remove(12); + dmap.remove(13); + dmap.remove(14); + dmap.remove(15); + dmap.remove(16); + final Method a = datawatcherInstance.getClass().getDeclaredMethod("a", int.class, Object.class); + a.invoke(datawatcherInstance, 10, (byte) 0); + } + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), horsePacket); + if (!playerIs1_8) + { + final Object witherPacket = packetPlayOutSpawnEntityConstr.newInstance(witherSkull, 64); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), witherPacket); + } + + // Send attach packet + if (!playerIs1_8) + { + final Object attachPacket = packetPlayOutAttachEntityConstr.newInstance(0, entityHorse, witherSkull); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), attachPacket); + } + + // Send velocity packets to move the entities slowly down + if (moveDown) + { + Effects.effectlocd_taskid.put(horseId, Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), () -> { + try + { + final int i = Effects.effectlocd.get(horseId); + final Object packet = packetPlayOutEntityVelocity.newInstance(horseId, 0D, -0.05D, 0D); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), packet); + if (!playerIs1_8) + { + final Object packet2 = packetPlayOutEntityVelocity.newInstance(witherSkullId, 0D, -0.05D, 0D); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), packet2); + } + if (i < -1) + { + final int taskid = Effects.effectlocd_taskid.get(horseId); + Effects.effectlocd_taskid.remove(horseId); + Effects.effectlocd.remove(horseId); + Bukkit.getScheduler().cancelTask(taskid); + return; + } + Effects.effectlocd.put(horseId, Effects.effectlocd.get(horseId) - 1); + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + }, 2L, 2L).getTaskId()); + } + + // Remove both entities (and thus the hologram) after 2 seconds + if (removeAfterCooldown) + { + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + try + { + final Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance(new int[] { witherSkullId, horseId }); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + }, 20L * 2); + } + + ret.add(witherSkullId); + ret.add(horseId); + + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + return ret; + } + + public static void sendGameModeChange(final Player p, final int gamemode) + { + // NOT_SET(-1, ""), SURVIVAL(0, "survival"), CREATIVE(1, "creative"), ADVENTURE(2, "adventure"), SPECTATOR(3, "spectator"); + + if (MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7) && gamemode == 3) + { + return; + } + + p.setGameMode(GameMode.getByValue(gamemode)); + + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 64c9a4d7..23d2eec5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -1,95 +1,121 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; /** * Supported versions of minecraft. - * + * * @author mepeisen */ -public enum MinecraftVersionsType { - Unknown(false), V1_7(true), V1_7_R1(true), V1_7_R2(true), V1_7_R3(true), V1_7_R4(true), V1_8(true), V1_8_R1( - true), V1_8_R2(true), V1_9(true), V1_9_R1(true), V1_9_R2(true), V1_10(true), V1_10_R1(true); - - /** - * {@code true} if this version is still supported. - */ - private final boolean isSupported; - - /** - * Constructor to create a version. - * - * @param supported - * true for support. - */ - private MinecraftVersionsType(boolean supported) { - this.isSupported = supported; - } - - /** - * {@code true} if this version is still supported. return {@code true} if - * this version is still supported. - */ - public boolean isSupported() { - return this.isSupported; - } - - /** - * Checks if this version equals given version. - * - *

- * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. - *

- * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isEqual(MinecraftVersionsType type) { - switch (this) { - case V1_10: - return type == V1_10 || type == V1_10_R1; - case V1_7: - return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; - case V1_8: - return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; - case V1_9: - return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; - default: - return type == this; - } - } - - /** - * Checks if this version is below given version. - * - *
    - *
  • V1_7 will be below V1_8*.
  • - *
  • V1_7_R3 will be below V1_7_R4.
  • - *
- * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isBelow(MinecraftVersionsType type) { - if (isEqual(type)) return false; - return this.ordinal() < type.ordinal(); - } - - /** - * Checks if this version is after given version. - * - *
    - *
  • V1_8 will be after V1_7*.
  • - *
  • V1_7_R4 will be after V1_7_R3.
  • - *
- * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isAfter(MinecraftVersionsType type) { - if (isEqual(type)) return false; - return this.ordinal() > type.ordinal(); - } - +public enum MinecraftVersionsType +{ + Unknown(false), V1_7(true), V1_7_R1(true), V1_7_R2(true), V1_7_R3(true), V1_7_R4(true), V1_8(true), V1_8_R1(true), V1_8_R2(true), V1_9(true), V1_9_R1(true), V1_9_R2(true), V1_10(true), V1_10_R1( + true); + + /** + * {@code true} if this version is still supported. + */ + private final boolean isSupported; + + /** + * Constructor to create a version. + * + * @param supported + * true for support. + */ + private MinecraftVersionsType(final boolean supported) + { + this.isSupported = supported; + } + + /** + * {@code true} if this version is still supported. return {@code true} if this version is still supported. + */ + public boolean isSupported() + { + return this.isSupported; + } + + /** + * Checks if this version equals given version. + * + *

+ * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. + *

+ * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isEqual(final MinecraftVersionsType type) + { + switch (this) + { + case V1_10: + return type == V1_10 || type == V1_10_R1; + case V1_7: + return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; + case V1_8: + return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; + case V1_9: + return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; + default: + return type == this; + } + } + + /** + * Checks if this version is below given version. + * + *
    + *
  • V1_7 will be below V1_8*.
  • + *
  • V1_7_R3 will be below V1_7_R4.
  • + *
+ * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isBelow(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return false; + } + return this.ordinal() < type.ordinal(); + } + + /** + * Checks if this version is after given version. + * + *
    + *
  • V1_8 will be after V1_7*.
  • + *
  • V1_7_R4 will be after V1_7_R3.
  • + *
+ * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAfter(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return false; + } + return this.ordinal() > type.ordinal(); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 891f9aed..5e327742 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ package com.comze_instancelabs.minigamesapi; import java.io.ByteArrayInputStream; @@ -38,637 +52,801 @@ import net.milkbowl.vault.economy.Economy; -public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { - - /** the overall minecraft server versioon. */ - public static final MinecraftVersionsType SERVER_VERSION = getServerVersion(); - - static MinigamesAPI instance = null; - public static Economy econ = null; - public static boolean economy = true; - public boolean crackshot = false; - public static boolean debug = false; - int updatetime = 20*10; - - public HashMap global_party = new HashMap(); - public HashMap> global_party_invites = new HashMap>(); - - public static HashMap pinstances = new HashMap(); - - public PartyMessagesConfig partymessages; - public StatsGlobalConfig statsglobal; - - @Deprecated - public String internalServerVersion = ""; - public boolean below1710 = false; // Used for scoreboard function (wether to use getScore(OfflinePlayer) or getScore(String)) - - Metrics metrics; - - public void onEnable() { - instance = this; - - this.internalServerVersion = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); - this.below1710 = SERVER_VERSION.isBelow(MinecraftVersionsType.V1_7_R4); - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Loaded MinigamesAPI. We're on " + SERVER_VERSION + "."); - - this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); - this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); - - if (economy) { - if (!setupEconomy()) { - getLogger().severe(String.format("[%s] - No Economy (Vault) dependency found! Disabling Economy.", getDescription().getName())); - economy = false; - } - } - - getConfig().options().header("Want bugfree versions? Set this to true:"); - getConfig().addDefault("config.auto_updating", false); - getConfig().addDefault("signs_updating_time", 20); - getConfig().addDefault("config.party_command_enabled", true); - getConfig().addDefault("config.debug", false); - - getConfig().options().copyDefaults(true); - this.saveConfig(); - - partymessages = new PartyMessagesConfig(this); - statsglobal = new StatsGlobalConfig(this, false); - - MinigamesAPI.debug = getConfig().getBoolean("config.debug"); - - Bukkit.getScheduler().runTaskLater(this, new Runnable() { - public void run() { - try { - metrics = new Metrics(instance); - - Graph components = metrics.createGraph("Minigames"); - for (PluginInstance pli : pinstances.values()) { - components.addPlotter(new Metrics.Plotter(pli.getPlugin().getName()) { - @Override - public int getValue() { - return 1; - } - }); - if (MinigamesAPI.debug) { - System.out.println("Loaded Graph for: " + pli.getPlugin().getName()); - } - } - - metrics.start(); - } catch (IOException e) { - System.out.println("# " + e.getMessage()); - } - } - }, 60L); - - if (getConfig().getBoolean("config.auto_updating")) { - new Updater(this, 83025, this.getFile(), Updater.UpdateType.DEFAULT, false); - } - - if (getServer().getPluginManager().getPlugin("CrackShot") != null) { - crackshot = true; - } - - Bukkit.getScheduler().runTaskLater(this, new Runnable() { - public void run() { - // Reset all arena signs and check if any arena was interrupted - int i = 0; - MinigamesAPI.getAPI(); - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - for (Arena a : pli.getArenas()) { - if (a != null) { - if (a.isSuccessfullyInit()) { - Util.updateSign(pli.getPlugin(), a); - a.getSmartReset().loadSmartBlocksFromFile(); - } else { - System.out.println(a.getInternalName() + " not initialized at onEnable."); - } - } - i++; - } - } - System.out.println("Found " + i + " arenas."); - } - }, 50L); - Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() { - @Override - public void run() { - MinigamesAPI.getAPI(); - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - for (Arena a : pli.getArenas()) { - Util.updateSign(pli.getPlugin(), a); - - } - } - } - }, 0, 20 * (int) getConfig().getInt("signs_updating_time")); - } +public class MinigamesAPI extends JavaPlugin implements PluginMessageListener +{ + + /** the overall minecraft server versioon. */ + public static final MinecraftVersionsType SERVER_VERSION = MinigamesAPI.getServerVersion(); + + static MinigamesAPI instance = null; + public static Economy econ = null; + public static boolean economy = true; + public boolean crackshot = false; + public static boolean debug = false; + int updatetime = 20 * 10; + + public HashMap global_party = new HashMap<>(); + public HashMap> global_party_invites = new HashMap<>(); + + public static HashMap pinstances = new HashMap<>(); + + public PartyMessagesConfig partymessages; + public StatsGlobalConfig statsglobal; + + @Deprecated + public String internalServerVersion = ""; + public boolean below1710 = false; // Used for scoreboard function (wether to use getScore(OfflinePlayer) or + // getScore(String)) + + Metrics metrics; + + @Override + public void onEnable() + { + MinigamesAPI.instance = this; + + this.internalServerVersion = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); + this.below1710 = MinigamesAPI.SERVER_VERSION.isBelow(MinecraftVersionsType.V1_7_R4); + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Loaded MinigamesAPI. We're on " + MinigamesAPI.SERVER_VERSION + "."); + + this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); + this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); + + if (MinigamesAPI.economy) + { + if (!this.setupEconomy()) + { + this.getLogger().severe(String.format("[%s] - No Economy (Vault) dependency found! Disabling Economy.", this.getDescription().getName())); + MinigamesAPI.economy = false; + } + } + + this.getConfig().options().header("Want bugfree versions? Set this to true:"); + this.getConfig().addDefault("config.auto_updating", false); + this.getConfig().addDefault("signs_updating_time", 20); + this.getConfig().addDefault("config.party_command_enabled", true); + this.getConfig().addDefault("config.debug", false); + + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + + this.partymessages = new PartyMessagesConfig(this); + this.statsglobal = new StatsGlobalConfig(this, false); + + MinigamesAPI.debug = this.getConfig().getBoolean("config.debug"); + + Bukkit.getScheduler().runTaskLater(this, () -> { + try + { + MinigamesAPI.this.metrics = new Metrics(MinigamesAPI.instance); + + final Graph components = MinigamesAPI.this.metrics.createGraph("Minigames"); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + components.addPlotter(new Metrics.Plotter(pli.getPlugin().getName()) { + @Override + public int getValue() + { + return 1; + } + }); + if (MinigamesAPI.debug) + { + System.out.println("Loaded Graph for: " + pli.getPlugin().getName()); + } + } + + MinigamesAPI.this.metrics.start(); + } + catch (final IOException e) + { + System.out.println("# " + e.getMessage()); + } + }, 60L); + + if (this.getConfig().getBoolean("config.auto_updating")) + { + new Updater(this, 83025, this.getFile(), Updater.UpdateType.DEFAULT, false); + } + + if (this.getServer().getPluginManager().getPlugin("CrackShot") != null) + { + this.crackshot = true; + } + + Bukkit.getScheduler().runTaskLater(this, () -> { + // Reset all arena signs and check if any arena was interrupted + int i = 0; + MinigamesAPI.getAPI(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + for (final Arena a : pli.getArenas()) + { + if (a != null) + { + if (a.isSuccessfullyInit()) + { + Util.updateSign(pli.getPlugin(), a); + a.getSmartReset().loadSmartBlocksFromFile(); + } + else + { + System.out.println(a.getInternalName() + " not initialized at onEnable."); + } + } + i++; + } + } + System.out.println("Found " + i + " arenas."); + }, 50L); + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> { + MinigamesAPI.getAPI(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + for (final Arena a : pli.getArenas()) + { + Util.updateSign(pli.getPlugin(), a); + + } + } + }, 0, 20 * this.getConfig().getInt("signs_updating_time")); + } + + /** + * Calculates the minecraft server version. + * + * @return Minecraft server version. + */ + private static MinecraftVersionsType getServerVersion() + { + final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); + if (v.startsWith("v1_7_R1")) + { + return MinecraftVersionsType.V1_7_R1; + } + if (v.startsWith("v1_7_R2")) + { + return MinecraftVersionsType.V1_7_R2; + } + if (v.startsWith("v1_7_R3")) + { + return MinecraftVersionsType.V1_7_R3; + } + if (v.startsWith("v1_7_R4")) + { + return MinecraftVersionsType.V1_7_R4; + } + if (v.startsWith("v1_8_R1")) + { + return MinecraftVersionsType.V1_8_R1; + } + if (v.startsWith("v1_8_R2")) + { + return MinecraftVersionsType.V1_8_R2; + } + if (v.startsWith("v1_9_R1")) + { + return MinecraftVersionsType.V1_9_R1; + } + if (v.startsWith("v1_9_R2")) + { + return MinecraftVersionsType.V1_9_R2; + } + if (v.startsWith("v1_10_R1")) + { + return MinecraftVersionsType.V1_10_R1; + } + return MinecraftVersionsType.Unknown; + } + + @Override + public void onDisable() + { + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + // Reset arenas + for (final Arena a : pli.getArenas()) + { + if (a != null) + { + if (a.isSuccessfullyInit()) + { + if (a.getArenaState() != ArenaState.JOIN) + { + a.getSmartReset().saveSmartBlocksToFile(); + } + final ArrayList temp = new ArrayList<>(a.getAllPlayers()); + for (final String p_ : temp) + { + a.leavePlayer(p_, true); + } + try + { + a.getSmartReset().resetRaw(); + } + catch (final Exception e) + { + System.out.println("Failed resetting arena at onDisable. " + e.getMessage()); + } + } + else + { + System.out.println(a.getName() + " not initialized thus not reset at onDisable."); + } + } + } + + // Save important configs + pli.getArenasConfig().saveConfig(); + pli.getPlugin().saveConfig(); + pli.getMessagesConfig().saveConfig(); + pli.getClassesConfig().saveConfig(); + } + + } + + /** + * Sets up the API allowing to override all configs + * + * @param plugin_ + * @param arenaclass + * @param arenasconfig + * @param messagesconfig + * @param classesconfig + * @param statsconfig + * @return + */ + @SuppressWarnings("deprecation") + public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minigame, final Class arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, + final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) + { + MinigamesAPI.pinstances.put(plugin_, new PluginInstance(plugin_, arenasconfig, messagesconfig, classesconfig, statsconfig, new ArrayList())); + if (!customlistener) + { + final ArenaListener al = new ArenaListener(plugin_, MinigamesAPI.pinstances.get(plugin_), minigame); + MinigamesAPI.pinstances.get(plugin_).setArenaListener(al); + Bukkit.getPluginManager().registerEvents(al, plugin_); + } + Classes.loadClasses(plugin_); + Guns.loadGuns(plugin_); + MinigamesAPI.pinstances.get(plugin_).getShopHandler().loadShopItems(); + return MinigamesAPI.instance; + } + + public static void registerArenaListenerLater(final JavaPlugin plugin_, final ArenaListener arenalistener) + { + Bukkit.getPluginManager().registerEvents(arenalistener, plugin_); + } + + public static void registerArenaSetup(final JavaPlugin plugin_, final ArenaSetup arenasetup) + { + MinigamesAPI.pinstances.get(plugin_).arenaSetup = arenasetup; + } + + public static void registerScoreboard(final JavaPlugin plugin_, final ArenaScoreboard board) + { + MinigamesAPI.pinstances.get(plugin_).scoreboardManager = board; + } + + /** + * Sets up the API, stuff won't work without that + * + * @param plugin_ + * @return + */ + // Allow loading of arenas with own extended arena class into + // PluginInstance: + // after this setup, get the PluginInstance, load the arenas by yourself + // and add the loaded arenas w/ custom arena class into the PluginInstance + public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minigame, final Class arenaclass) + { + MinigamesAPI.setupRaw(plugin_, minigame); + return MinigamesAPI.instance; + } + + /** + * Sets up the API, stuff won't work without that + * + * @param plugin_ + * @return + */ + public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minigame) + { + final PluginInstance pli = MinigamesAPI.setupRaw(plugin_, minigame); + pli.addLoadedArenas(Util.loadArenas(plugin_, pli.getArenasConfig())); + return MinigamesAPI.instance; + } + + public static PluginInstance setupRaw(final JavaPlugin plugin_, final String minigame) + { + final ArenasConfig arenasconfig = new ArenasConfig(plugin_); + final MessagesConfig messagesconfig = new MessagesConfig(plugin_); + final ClassesConfig classesconfig = new ClassesConfig(plugin_, false); + final StatsConfig statsconfig = new StatsConfig(plugin_, false); + DefaultConfig.init(plugin_, false); + final PluginInstance pli = new PluginInstance(plugin_, arenasconfig, messagesconfig, classesconfig, statsconfig); + MinigamesAPI.pinstances.put(plugin_, pli); + final ArenaListener al = new ArenaListener(plugin_, MinigamesAPI.pinstances.get(plugin_), minigame); + MinigamesAPI.pinstances.get(plugin_).setArenaListener(al); + Bukkit.getPluginManager().registerEvents(al, plugin_); + Classes.loadClasses(plugin_); + pli.getShopHandler().loadShopItems(); + Guns.loadGuns(plugin_); + return pli; + } + + public static MinigamesAPI getAPI() + { + return MinigamesAPI.instance; + } + + public static CommandHandler getCommandHandler() + { + return new CommandHandler(); + } + + private boolean setupEconomy() + { + if (this.getServer().getPluginManager().getPlugin("Vault") == null) + { + return false; + } + final RegisteredServiceProvider rsp = this.getServer().getServicesManager().getRegistration(Economy.class); + if (rsp == null) + { + return false; + } + MinigamesAPI.econ = rsp.getProvider(); + return MinigamesAPI.econ != null; + } + + @Override + public boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) + { + if (cmd.getName().equalsIgnoreCase("start")) + { + if (!(sender instanceof Player)) + { + sender.sendMessage("Please execute this command ingame."); + return true; + } + if (!sender.hasPermission("minigamesapi.start")) + { + // TODO no_perm message + return true; + } + final Player p = (Player) sender; + MinigamesAPI.getAPI(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + if (pli.containsGlobalPlayer(p.getName())) + { + final Arena a = pli.global_players.get(p.getName()); + System.out.println(a.getName()); + if (a.getArenaState() == ArenaState.JOIN || (a.getArenaState() == ArenaState.STARTING && !a.getIngameCountdownStarted())) + { + a.start(true); + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("", a.getDisplayName()).replaceAll("", "started")); + break; + } + } + } + return true; + } + if (cmd.getName().equalsIgnoreCase("party")) + { + if (!this.getConfig().getBoolean("config.party_command_enabled")) + { + return true; + } + final CommandHandler cmdhandler = MinigamesAPI.getCommandHandler(); + if (!(sender instanceof Player)) + { + sender.sendMessage("Please execute this command ingame."); + return true; + } + final Player p = (Player) sender; + if (args.length > 0) + { + final String action = args[0]; + if (action.equalsIgnoreCase("invite")) + { + cmdhandler.partyInvite(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + } + else if (action.equalsIgnoreCase("accept")) + { + cmdhandler.partyAccept(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + } + else if (action.equalsIgnoreCase("kick")) + { + cmdhandler.partyKick(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + } + else if (action.equalsIgnoreCase("list")) + { + cmdhandler.partyList(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + } + else if (action.equalsIgnoreCase("disband")) + { + cmdhandler.partyDisband(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + } + else if (action.equalsIgnoreCase("leave")) + { + cmdhandler.partyLeave(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + } + else + { + CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); + } + } + else + { + CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); + } + } + else + { + if (args.length > 0) + { + if (args[0].equalsIgnoreCase("info")) + { + if (args.length > 1) + { + final String p = args[1]; + sender.sendMessage("Debug info about " + p); + sender.sendMessage("~ global_players: "); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + if (pli.global_players.containsKey(p)) + { + sender.sendMessage(" " + pli.getPlugin().getName()); + } + } + sender.sendMessage("~ global_lost: "); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + if (pli.global_lost.containsKey(p)) + { + sender.sendMessage(" " + pli.getPlugin().getName()); + } + } + sender.sendMessage("~ SpectatorManager: "); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + pli.getSpectatorManager(); + if (SpectatorManager.isSpectating(Bukkit.getPlayer(p))) + { + sender.sendMessage(" " + pli.getPlugin().getName()); + } + } + sender.sendMessage("~ Arenas: "); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + if (pli.global_players.containsKey(p)) + { + sender.sendMessage(" " + pli.global_players.get(p).getInternalName() + " - " + pli.global_players.get(p).getArenaState()); + } + } + } + else + { + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + sender.sendMessage("~ All players for " + pli.getPlugin().getName() + ": "); + for (final Arena a : pli.getArenas()) + { + if (a != null) + { + for (final String p_ : a.getAllPlayers()) + { + sender.sendMessage(ChatColor.GRAY + " " + pli.getPlugin().getName() + " " + a.getInternalName() + " " + p_); + } + } + } + } + } + } + else if (args[0].equalsIgnoreCase("debug")) + { + MinigamesAPI.debug = !MinigamesAPI.debug; + this.getConfig().set("config.debug", MinigamesAPI.debug); + this.saveConfig(); + sender.sendMessage(ChatColor.GOLD + "Debug mode is now: " + MinigamesAPI.debug); + } + else if (args[0].equalsIgnoreCase("list")) + { + int c = 0; + MinigamesAPI.getAPI(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + c++; + sender.sendMessage("~ " + pli.getPlugin().getName() + ": " + pli.getArenas().size() + " Arenas"); + return false; + } + if (c < 1) + { + sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); + } + } + else if (args[0].equalsIgnoreCase("restartserver")) + { + if (sender.isOp()) + { + Util.restartServer(); + return false; + } + } + else if (args[0].equalsIgnoreCase("title")) + { + if (args.length > 1) + { + if (sender instanceof Player) + { + Effects.playTitle((Player) sender, args[1], 0); + return false; + } + } + } + else if (args[0].equalsIgnoreCase("subtitle")) + { + if (args.length > 1) + { + if (sender instanceof Player) + { + Effects.playTitle((Player) sender, args[1], 1); + return false; + } + } + } + else if (args[0].equalsIgnoreCase("signs")) + { + if (sender instanceof Player) + { + MinigamesAPI.getAPI(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + for (final Arena a : pli.getArenas()) + { + Util.updateSign(pli.getPlugin(), a); + sender.sendMessage(ChatColor.GREEN + "All signs updated!"); + return false; + } + } + } + else if (args[0].equalsIgnoreCase("hologram")) + { + if (sender instanceof Player) + { + final Player p = (Player) sender; + p.sendMessage("Playing hologram."); + Effects.playHologram(p, p.getLocation(), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "TEST", true, true); + return false; + } + } + else if (args[0].equalsIgnoreCase("statshologram")) + { + if (sender instanceof Player) + { + final Player p = (Player) sender; + if (args.length > 1) + { + final PluginInstance pli = this.getPluginInstance((JavaPlugin) Bukkit.getPluginManager().getPlugin(args[1])); + p.sendMessage("Playing statistics hologram."); + + Effects.playHologram(p, p.getLocation().add(0D, 1D, 0D), + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Wins: " + pli.getStatsInstance().getWins(p.getName()), false, false); + Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Potions: " + pli.getStatsInstance().getPoints(p.getName()), false, false); + Effects.playHologram(p, p.getLocation().add(0D, 0.5D, 0D), + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Kills: " + pli.getStatsInstance().getKills(p.getName()), false, false); + Effects.playHologram(p, p.getLocation().add(0D, 0.25D, 0D), + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Deaths: " + pli.getStatsInstance().getDeaths(p.getName()), false, false); + return false; + } + } + } + else if (args[0].equalsIgnoreCase("protocol")) + { + if (sender instanceof Player) + { + Player p = (Player) sender; + if (args.length > 1) + { + p = Bukkit.getPlayer(args[1]); + } + if (p != null) + { + final int version = Effects.getClientProtocolVersion(p); + sender.sendMessage("Protocol version of " + p.getName() + ": " + version); + return false; + } + } + } + else if (args[0].equalsIgnoreCase("gamemodetest")) + { + if (sender instanceof Player) + { + final Player p = (Player) sender; + if (p.isOp()) + { + Effects.sendGameModeChange(p, 3); + return false; + } + } + } + else if (args[0].equalsIgnoreCase("bungeetest")) + { + if (sender instanceof Player) + { + final Player p = (Player) sender; + if (p.isOp()) + { + final PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); + BungeeSocket.sendSignUpdate(pli, pli.getArenas().get(0)); + return false; + } + } + } + return true; + } + if (args.length < 1) + { + sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "MinigamesLib <3 " + this.getDescription().getVersion()); + int c = 0; + MinigamesAPI.getAPI(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + c++; + sender.sendMessage("~ " + ChatColor.GRAY + pli.getPlugin().getName() + ": " + ChatColor.WHITE + pli.getArenas().size() + " Arenas"); + } + if (c < 1) + { + sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); + } + sender.sendMessage(ChatColor.GOLD + "Subcommands: "); + sender.sendMessage("/mapi info "); + sender.sendMessage("/mapi debug"); + sender.sendMessage("/mapi list"); + sender.sendMessage("/mapi title "); + sender.sendMessage("/mapi subtitle <subtitle>"); + sender.sendMessage("/mapi restartserver"); + sender.sendMessage("/mapi hologram"); + sender.sendMessage("/mapi signs - Update all signs"); + sender.sendMessage("/mapi protocol <player>"); + sender.sendMessage("/mapi <potioneffect>"); + sender.sendMessage("/mapi setstatshologram"); + } + if (sender instanceof Player && args.length > 0) + { + final Player p = (Player) sender; + boolean cont = false; + for (final ParticleEffectNew f : ParticleEffectNew.values()) + { + if (f.name().equalsIgnoreCase(args[0])) + { + cont = true; + } + } + if (!cont) + { + sender.sendMessage(ChatColor.RED + "Couldn't find particle effect."); + return true; + } + final ParticleEffectNew eff = ParticleEffectNew.valueOf(args[0]); + eff.setId(152); + + for (float i = 0; i < 10; i++) + { + eff.animateReflected(p, p.getLocation().clone().add(i / 5F, i / 5F, i / 5F), 1F, 2); + } + + p.getWorld().playEffect(p.getLocation(), Effect.STEP_SOUND, 152); + p.getWorld().playEffect(p.getLocation().add(0D, 1D, 0D), Effect.STEP_SOUND, 152); + } + } + return true; + } + return false; + } + + @Override + public void onPluginMessageReceived(final String channel, final Player player, final byte[] message) + { + if (!channel.equals("BungeeCord")) + { + return; + } + final ByteArrayDataInput in = ByteStreams.newDataInput(message); + final String subchannel = in.readUTF(); + System.out.println(subchannel); + if (subchannel.equals("MinigamesLibBack")) + { + final short len = in.readShort(); + final byte[] msgbytes = new byte[len]; + in.readFully(msgbytes); + + final DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); + try + { + final String playerData = msgin.readUTF(); + final String plugin_ = playerData.split(":")[0]; + final String arena = playerData.split(":")[1]; + final String playername = playerData.split(":")[2]; + System.out.println(plugin_ + " -> " + arena); + JavaPlugin plugin = null; + for (final JavaPlugin pl : MinigamesAPI.pinstances.keySet()) + { + if (pl.getName().contains(plugin_)) + { + plugin = pl; + break; + } + } + if (plugin != null) + { + final Arena a = MinigamesAPI.pinstances.get(plugin).getArenaByName(arena); + if (a != null) + { + if (a.getArenaState() != ArenaState.INGAME && a.getArenaState() != ArenaState.RESTARTING && !a.containsPlayer(playername)) + { + Bukkit.getScheduler().runTaskLater(this, () -> { + if (!a.containsPlayer(playername)) + { + a.joinPlayerLobby(playername); + } + }, 20L); + } + } + else + { + System.out.println("Arena " + arena + " couldn't be found, please fix your setup."); + } + } + } + catch (final IOException e) + { + e.printStackTrace(); + } + } + else if (subchannel.equals("MinigamesLibRequest")) + { // Lobby requests sign data + final short len = in.readShort(); + final byte[] msgbytes = new byte[len]; + in.readFully(msgbytes); + + final DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); + try + { + final String requestData = msgin.readUTF(); + final String plugin_ = requestData.split(":")[0]; + final String arena = requestData.split(":")[1]; + System.out.println(plugin_ + " -> " + arena); + for (final JavaPlugin pl : MinigamesAPI.pinstances.keySet()) + { + if (pl.getName().contains(plugin_)) + { + final Arena a = MinigamesAPI.pinstances.get(pl).getArenaByName(arena); + if (a != null) + { + BungeeUtil.sendSignUpdateRequest(pl, pl.getName(), a); + } + else + { + System.out.println("Arena " + arena + " couldn't be found, please fix your setup."); + } + break; + } + } + } + catch (final IOException e) + { + e.printStackTrace(); + } + } + } + + public PluginInstance getPluginInstance(final JavaPlugin plugin) + { + return MinigamesAPI.pinstances.get(plugin); + } - - /** - * Calculates the minecraft server version. - * - * @return Minecraft server version. - */ - private static MinecraftVersionsType getServerVersion() { - final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); - if (v.startsWith("v1_7_R1")) - { - return MinecraftVersionsType.V1_7_R1; - } - if (v.startsWith("v1_7_R2")) - { - return MinecraftVersionsType.V1_7_R2; - } - if (v.startsWith("v1_7_R3")) - { - return MinecraftVersionsType.V1_7_R3; - } - if (v.startsWith("v1_7_R4")) - { - return MinecraftVersionsType.V1_7_R4; - } - if (v.startsWith("v1_8_R1")) - { - return MinecraftVersionsType.V1_8_R1; - } - if (v.startsWith("v1_8_R2")) - { - return MinecraftVersionsType.V1_8_R2; - } - if (v.startsWith("v1_9_R1")) - { - return MinecraftVersionsType.V1_9_R1; - } - if (v.startsWith("v1_9_R2")) - { - return MinecraftVersionsType.V1_9_R2; - } - if (v.startsWith("v1_10_R1")) - { - return MinecraftVersionsType.V1_10_R1; - } - return MinecraftVersionsType.Unknown; - } - - - public void onDisable() { - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - // Reset arenas - for (Arena a : pli.getArenas()) { - if (a != null) { - if (a.isSuccessfullyInit()) { - if (a.getArenaState() != ArenaState.JOIN) { - a.getSmartReset().saveSmartBlocksToFile(); - } - ArrayList<String> temp = new ArrayList<String>(a.getAllPlayers()); - for (String p_ : temp) { - a.leavePlayer(p_, true); - } - try { - a.getSmartReset().resetRaw(); - } catch (Exception e) { - System.out.println("Failed resetting arena at onDisable. " + e.getMessage()); - } - } else { - System.out.println(a.getName() + " not initialized thus not reset at onDisable."); - } - } - } - - // Save important configs - pli.getArenasConfig().saveConfig(); - pli.getPlugin().saveConfig(); - pli.getMessagesConfig().saveConfig(); - pli.getClassesConfig().saveConfig(); - } - - } - - /** - * Sets up the API allowing to override all configs - * - * @param plugin_ - * @param arenaclass - * @param arenasconfig - * @param messagesconfig - * @param classesconfig - * @param statsconfig - * @return - */ - @SuppressWarnings("deprecation") - public static MinigamesAPI setupAPI(JavaPlugin plugin_, String minigame, Class<?> arenaclass, ArenasConfig arenasconfig, MessagesConfig messagesconfig, ClassesConfig classesconfig, StatsConfig statsconfig, DefaultConfig defaultconfig, boolean customlistener) { - pinstances.put(plugin_, new PluginInstance(plugin_, arenasconfig, messagesconfig, classesconfig, statsconfig, new ArrayList<Arena>())); - if (!customlistener) { - ArenaListener al = new ArenaListener(plugin_, pinstances.get(plugin_), minigame); - pinstances.get(plugin_).setArenaListener(al); - Bukkit.getPluginManager().registerEvents(al, plugin_); - } - Classes.loadClasses(plugin_); - Guns.loadGuns(plugin_); - pinstances.get(plugin_).getShopHandler().loadShopItems(); - return instance; - } - - public static void registerArenaListenerLater(JavaPlugin plugin_, ArenaListener arenalistener) { - Bukkit.getPluginManager().registerEvents(arenalistener, plugin_); - } - - public static void registerArenaSetup(JavaPlugin plugin_, ArenaSetup arenasetup) { - pinstances.get(plugin_).arenaSetup = arenasetup; - } - - public static void registerScoreboard(JavaPlugin plugin_, ArenaScoreboard board) { - pinstances.get(plugin_).scoreboardManager = board; - } - - /** - * Sets up the API, stuff won't work without that - * - * @param plugin_ - * @return - */ - // Allow loading of arenas with own extended arena class into - // PluginInstance: - // after this setup, get the PluginInstance, load the arenas by yourself - // and add the loaded arenas w/ custom arena class into the PluginInstance - public static MinigamesAPI setupAPI(JavaPlugin plugin_, String minigame, Class<?> arenaclass) { - setupRaw(plugin_, minigame); - return instance; - } - - /** - * Sets up the API, stuff won't work without that - * - * @param plugin_ - * @return - */ - public static MinigamesAPI setupAPI(JavaPlugin plugin_, String minigame) { - PluginInstance pli = setupRaw(plugin_, minigame); - pli.addLoadedArenas(Util.loadArenas(plugin_, pli.getArenasConfig())); - return instance; - } - - public static PluginInstance setupRaw(JavaPlugin plugin_, String minigame) { - ArenasConfig arenasconfig = new ArenasConfig(plugin_); - MessagesConfig messagesconfig = new MessagesConfig(plugin_); - ClassesConfig classesconfig = new ClassesConfig(plugin_, false); - StatsConfig statsconfig = new StatsConfig(plugin_, false); - DefaultConfig.init(plugin_, false); - PluginInstance pli = new PluginInstance(plugin_, arenasconfig, messagesconfig, classesconfig, statsconfig); - pinstances.put(plugin_, pli); - ArenaListener al = new ArenaListener(plugin_, pinstances.get(plugin_), minigame); - pinstances.get(plugin_).setArenaListener(al); - Bukkit.getPluginManager().registerEvents(al, plugin_); - Classes.loadClasses(plugin_); - pli.getShopHandler().loadShopItems(); - Guns.loadGuns(plugin_); - return pli; - } - - public static MinigamesAPI getAPI() { - return instance; - } - - public static CommandHandler getCommandHandler() { - return new CommandHandler(); - } - - private boolean setupEconomy() { - if (getServer().getPluginManager().getPlugin("Vault") == null) { - return false; - } - RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class); - if (rsp == null) { - return false; - } - econ = rsp.getProvider(); - return econ != null; - } - - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (cmd.getName().equalsIgnoreCase("start")) { - if (!(sender instanceof Player)) { - sender.sendMessage("Please execute this command ingame."); - return true; - } - if (!sender.hasPermission("minigamesapi.start")) { - // TODO no_perm message - return true; - } - Player p = (Player) sender; - MinigamesAPI.getAPI(); - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - System.out.println(a.getName()); - if (a.getArenaState() == ArenaState.JOIN || (a.getArenaState() == ArenaState.STARTING && !a.getIngameCountdownStarted())) { - a.start(true); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", a.getDisplayName()).replaceAll("<action>", "started")); - break; - } - } - } - return true; - } - if (cmd.getName().equalsIgnoreCase("party")) { - if (!getConfig().getBoolean("config.party_command_enabled")) { - return true; - } - CommandHandler cmdhandler = MinigamesAPI.getCommandHandler(); - if (!(sender instanceof Player)) { - sender.sendMessage("Please execute this command ingame."); - return true; - } - Player p = (Player) sender; - if (args.length > 0) { - String action = args[0]; - if (action.equalsIgnoreCase("invite")) { - cmdhandler.partyInvite(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); - } else if (action.equalsIgnoreCase("accept")) { - cmdhandler.partyAccept(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); - } else if (action.equalsIgnoreCase("kick")) { - cmdhandler.partyKick(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); - } else if (action.equalsIgnoreCase("list")) { - cmdhandler.partyList(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); - } else if (action.equalsIgnoreCase("disband")) { - cmdhandler.partyDisband(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); - } else if (action.equalsIgnoreCase("leave")) { - cmdhandler.partyLeave(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); - } else { - CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); - } - } else { - CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); - } - } else { - if (args.length > 0) { - if (args[0].equalsIgnoreCase("info")) { - if (args.length > 1) { - String p = args[1]; - sender.sendMessage("Debug info about " + p); - sender.sendMessage("~ global_players: "); - for (PluginInstance pli : pinstances.values()) { - if (pli.global_players.containsKey(p)) { - sender.sendMessage(" " + pli.getPlugin().getName()); - } - } - sender.sendMessage("~ global_lost: "); - for (PluginInstance pli : pinstances.values()) { - if (pli.global_lost.containsKey(p)) { - sender.sendMessage(" " + pli.getPlugin().getName()); - } - } - sender.sendMessage("~ SpectatorManager: "); - for (PluginInstance pli : pinstances.values()) { - pli.getSpectatorManager(); - if (SpectatorManager.isSpectating(Bukkit.getPlayer(p))) { - sender.sendMessage(" " + pli.getPlugin().getName()); - } - } - sender.sendMessage("~ Arenas: "); - for (PluginInstance pli : pinstances.values()) { - if (pli.global_players.containsKey(p)) { - sender.sendMessage(" " + pli.global_players.get(p).getInternalName() + " - " + pli.global_players.get(p).getArenaState()); - } - } - } else { - for (PluginInstance pli : pinstances.values()) { - sender.sendMessage("~ All players for " + pli.getPlugin().getName() + ": "); - for (Arena a : pli.getArenas()) { - if (a != null) { - for (String p_ : a.getAllPlayers()) { - sender.sendMessage(ChatColor.GRAY + " " + pli.getPlugin().getName() + " " + a.getInternalName() + " " + p_); - } - } - } - } - } - } else if (args[0].equalsIgnoreCase("debug")) { - debug = !debug; - this.getConfig().set("config.debug", debug); - this.saveConfig(); - sender.sendMessage(ChatColor.GOLD + "Debug mode is now: " + debug); - } else if (args[0].equalsIgnoreCase("list")) { - int c = 0; - MinigamesAPI.getAPI(); - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - c++; - sender.sendMessage("~ " + pli.getPlugin().getName() + ": " + pli.getArenas().size() + " Arenas"); - return false; - } - if (c < 1) { - sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); - } - } else if (args[0].equalsIgnoreCase("restartserver")) { - if (sender.isOp()) { - Util.restartServer(); - return false; - } - } else if (args[0].equalsIgnoreCase("title")) { - if (args.length > 1) { - if (sender instanceof Player) { - Effects.playTitle((Player) sender, args[1], 0); - return false; - } - } - } else if (args[0].equalsIgnoreCase("subtitle")) { - if (args.length > 1) { - if (sender instanceof Player) { - Effects.playTitle((Player) sender, args[1], 1); - return false; - } - } - } else if (args[0].equalsIgnoreCase("signs")) { - if (sender instanceof Player) { - MinigamesAPI.getAPI(); - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - for (Arena a : pli.getArenas()) { - Util.updateSign(pli.getPlugin(), a); - sender.sendMessage(ChatColor.GREEN + "All signs updated!"); - return false; - } - } - } else if (args[0].equalsIgnoreCase("hologram")) { - if (sender instanceof Player) { - Player p = (Player) sender; - p.sendMessage("Playing hologram."); - Effects.playHologram(p, p.getLocation(), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "TEST", true, true); - return false; - } - } else if (args[0].equalsIgnoreCase("statshologram")) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (args.length > 1) { - PluginInstance pli = getPluginInstance((JavaPlugin) Bukkit.getPluginManager().getPlugin(args[1])); - p.sendMessage("Playing statistics hologram."); - - Effects.playHologram(p, p.getLocation().add(0D, 1D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Wins: " + pli.getStatsInstance().getWins(p.getName()), false, false); - Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Potions: " + pli.getStatsInstance().getPoints(p.getName()), false, false); - Effects.playHologram(p, p.getLocation().add(0D, 0.5D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Kills: " + pli.getStatsInstance().getKills(p.getName()), false, false); - Effects.playHologram(p, p.getLocation().add(0D, 0.25D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Deaths: " + pli.getStatsInstance().getDeaths(p.getName()), false, false); - return false; - } - } - } else if (args[0].equalsIgnoreCase("protocol")) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (args.length > 1) { - p = Bukkit.getPlayer(args[1]); - } - if (p != null) { - int version = Effects.getClientProtocolVersion(p); - sender.sendMessage("Protocol version of " + p.getName() + ": " + version); - return false; - } - } - } else if (args[0].equalsIgnoreCase("gamemodetest")) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (p.isOp()) { - Effects.sendGameModeChange(p, 3); - return false; - } - } - } else if (args[0].equalsIgnoreCase("bungeetest")) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (p.isOp()) { - PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); - BungeeSocket.sendSignUpdate(pli, pli.getArenas().get(0)); - return false; - } - } - } - return true; - } - if (args.length < 1) { - sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "MinigamesLib <3 " + this.getDescription().getVersion()); - int c = 0; - MinigamesAPI.getAPI(); - for (PluginInstance pli : MinigamesAPI.pinstances.values()) { - c++; - sender.sendMessage("~ " + ChatColor.GRAY + pli.getPlugin().getName() + ": " + ChatColor.WHITE + pli.getArenas().size() + " Arenas"); - } - if (c < 1) { - sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); - } - sender.sendMessage(ChatColor.GOLD + "Subcommands: "); - sender.sendMessage("/mapi info <player>"); - sender.sendMessage("/mapi debug"); - sender.sendMessage("/mapi list"); - sender.sendMessage("/mapi title <title>"); - sender.sendMessage("/mapi subtitle <subtitle>"); - sender.sendMessage("/mapi restartserver"); - sender.sendMessage("/mapi hologram"); - sender.sendMessage("/mapi signs - Update all signs"); - sender.sendMessage("/mapi protocol <player>"); - sender.sendMessage("/mapi <potioneffect>"); - sender.sendMessage("/mapi setstatshologram"); - } - if (sender instanceof Player && args.length > 0) { - Player p = (Player) sender; - boolean cont = false; - for (ParticleEffectNew f : ParticleEffectNew.values()) { - if (f.name().equalsIgnoreCase(args[0])) { - cont = true; - } - } - if (!cont) { - sender.sendMessage(ChatColor.RED + "Couldn't find particle effect."); - return true; - } - ParticleEffectNew eff = ParticleEffectNew.valueOf(args[0]); - eff.setId(152); - - for (float i = 0; i < 10; i++) { - eff.animateReflected(p, p.getLocation().clone().add(i / 5F, i / 5F, i / 5F), 1F, 2); - } - - p.getWorld().playEffect(p.getLocation(), Effect.STEP_SOUND, 152); - p.getWorld().playEffect(p.getLocation().add(0D, 1D, 0D), Effect.STEP_SOUND, 152); - } - } - return true; - } - return false; - } - - @Override - public void onPluginMessageReceived(String channel, Player player, byte[] message) { - if (!channel.equals("BungeeCord")) { - return; - } - ByteArrayDataInput in = ByteStreams.newDataInput(message); - String subchannel = in.readUTF(); - System.out.println(subchannel); - if (subchannel.equals("MinigamesLibBack")) { - short len = in.readShort(); - byte[] msgbytes = new byte[len]; - in.readFully(msgbytes); - - DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); - try { - final String playerData = msgin.readUTF(); - final String plugin_ = playerData.split(":")[0]; - final String arena = playerData.split(":")[1]; - final String playername = playerData.split(":")[2]; - System.out.println(plugin_ + " -> " + arena); - JavaPlugin plugin = null; - for (JavaPlugin pl : MinigamesAPI.pinstances.keySet()) { - if (pl.getName().contains(plugin_)) { - plugin = pl; - break; - } - } - if (plugin != null) { - final Arena a = pinstances.get(plugin).getArenaByName(arena); - if (a != null) { - if (a.getArenaState() != ArenaState.INGAME && a.getArenaState() != ArenaState.RESTARTING && !a.containsPlayer(playername)) { - Bukkit.getScheduler().runTaskLater(this, new Runnable() { - public void run() { - if (!a.containsPlayer(playername)) { - a.joinPlayerLobby(playername); - } - } - }, 20L); - } - } else { - System.out.println("Arena " + arena + " couldn't be found, please fix your setup."); - } - } - } catch (IOException e) { - e.printStackTrace(); - } - } else if (subchannel.equals("MinigamesLibRequest")) { // Lobby requests sign data - short len = in.readShort(); - byte[] msgbytes = new byte[len]; - in.readFully(msgbytes); - - DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); - try { - final String requestData = msgin.readUTF(); - final String plugin_ = requestData.split(":")[0]; - final String arena = requestData.split(":")[1]; - System.out.println(plugin_ + " -> " + arena); - for (JavaPlugin pl : MinigamesAPI.pinstances.keySet()) { - if (pl.getName().contains(plugin_)) { - Arena a = pinstances.get(pl).getArenaByName(arena); - if (a != null) { - BungeeUtil.sendSignUpdateRequest(pl, pl.getName(), a); - } else { - System.out.println("Arena " + arena + " couldn't be found, please fix your setup."); - } - break; - } - } - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - public PluginInstance getPluginInstance(JavaPlugin plugin) { - return pinstances.get(plugin); - } - } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java index 89516a46..25a9c162 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; @@ -5,67 +19,83 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; -public class Party { - - String owner; - ArrayList<String> players = new ArrayList<String>(); - - public Party(String owner) { - this.owner = owner; - } - - public String getOwner() { - return owner; - } - - public ArrayList<String> getPlayers() { - return players; - } - - public void addPlayer(String p) { - if (!players.contains(p)) { - players.add(p); - } - Bukkit.getPlayer(p).sendMessage(MinigamesAPI.getAPI().partymessages.you_joined_party.replaceAll("<player>", this.getOwner())); - tellAll(MinigamesAPI.getAPI().partymessages.player_joined_party.replaceAll("<player>", p)); - } - - public boolean removePlayer(String p) { - if (players.contains(p)) { - players.remove(p); - Player p___ = Bukkit.getPlayer(p); - if (p___ != null) { - p___.sendMessage(MinigamesAPI.getAPI().partymessages.you_left_party.replaceAll("<player>", this.getOwner())); - } - tellAll(MinigamesAPI.getAPI().partymessages.player_left_party.replaceAll("<player>", p)); - return true; - } - return false; - } - - public boolean containsPlayer(String p) { - return players.contains(p); - } - - public void disband() { - tellAll(MinigamesAPI.getAPI().partymessages.party_disbanded); - if (MinigamesAPI.getAPI().global_party.containsKey(owner)) { - this.players.clear(); - MinigamesAPI.getAPI().global_party.remove(owner); - } - } - - private void tellAll(String msg) { - for (String p_ : this.getPlayers()) { - Player p__ = Bukkit.getPlayer(p_); - if (p__ != null) { - p__.sendMessage(msg); - } - } - Player p___ = Bukkit.getPlayer(this.getOwner()); - if (p___ != null) { - p___.sendMessage(msg); - } - } - +public class Party +{ + + String owner; + ArrayList<String> players = new ArrayList<>(); + + public Party(final String owner) + { + this.owner = owner; + } + + public String getOwner() + { + return this.owner; + } + + public ArrayList<String> getPlayers() + { + return this.players; + } + + public void addPlayer(final String p) + { + if (!this.players.contains(p)) + { + this.players.add(p); + } + Bukkit.getPlayer(p).sendMessage(MinigamesAPI.getAPI().partymessages.you_joined_party.replaceAll("<player>", this.getOwner())); + this.tellAll(MinigamesAPI.getAPI().partymessages.player_joined_party.replaceAll("<player>", p)); + } + + public boolean removePlayer(final String p) + { + if (this.players.contains(p)) + { + this.players.remove(p); + final Player p___ = Bukkit.getPlayer(p); + if (p___ != null) + { + p___.sendMessage(MinigamesAPI.getAPI().partymessages.you_left_party.replaceAll("<player>", this.getOwner())); + } + this.tellAll(MinigamesAPI.getAPI().partymessages.player_left_party.replaceAll("<player>", p)); + return true; + } + return false; + } + + public boolean containsPlayer(final String p) + { + return this.players.contains(p); + } + + public void disband() + { + this.tellAll(MinigamesAPI.getAPI().partymessages.party_disbanded); + if (MinigamesAPI.getAPI().global_party.containsKey(this.owner)) + { + this.players.clear(); + MinigamesAPI.getAPI().global_party.remove(this.owner); + } + } + + private void tellAll(final String msg) + { + for (final String p_ : this.getPlayers()) + { + final Player p__ = Bukkit.getPlayer(p_); + if (p__ != null) + { + p__.sendMessage(msg); + } + } + final Player p___ = Bukkit.getPlayer(this.getOwner()); + if (p___ != null) + { + p___.sendMessage(msg); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java index 0c5a0d1d..5b63efb7 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; @@ -25,323 +39,395 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class PluginInstance { - - public HashMap<String, Arena> global_players = new HashMap<String, Arena>(); - public HashMap<String, Arena> global_lost = new HashMap<String, Arena>(); - public HashMap<String, Arena> global_arcade_spectator = new HashMap<String, Arena>(); - - private ArenaListener arenalistener = null; - private ArenasConfig arenasconfig = null; - private ClassesConfig classesconfig = null; - private MessagesConfig messagesconfig = null; - private StatsConfig statsconfig = null; - private GunsConfig gunsconfig = null; - private AchievementsConfig achievementsconfig = null; - private ShopConfig shopconfig = null; - private HologramsConfig hologramsconfig = null; - private JavaPlugin plugin = null; - private ArrayList<Arena> arenas = new ArrayList<Arena>(); - private HashMap<String, AClass> pclass = new HashMap<String, AClass>(); - private LinkedHashMap<String, AClass> aclasses = new LinkedHashMap<String, AClass>(); - private HashMap<String, Gun> guns = new HashMap<String, Gun>(); - private Rewards rew = null; - private MainSQL sql = null; - private Stats stats = null; - private Classes classes = null; - private Shop shop = null; - private SpectatorManager spectatormanager = null; - private ArenaAchievements achievements = null; - private Holograms holograms = null; - private boolean achievement_gui_enabled = false; - - public ArenaScoreboard scoreboardManager; - public ArenaLobbyScoreboard scoreboardLobbyManager; - public ArenaSetup arenaSetup = new ArenaSetup(); - - int lobby_countdown = 30; - int ingame_countdown = 10; - - boolean spectator_move_y_lock = true; - boolean use_xp_bar_level = true; - boolean blood_effects = true; - boolean dead_in_fake_bed_effects = true; - boolean spectator_mode_1_8 = true; - boolean damage_identifier_effects = true; - public boolean color_background_wool_of_signs; - boolean last_man_standing = true; - boolean old_reset = false; - public boolean show_classes_without_usage_permission = true; - public boolean chat_enabled = true; - - public HashMap<String, ArrayList<String>> cached_sign_states = new HashMap<String, ArrayList<String>>(); - - public PluginInstance(JavaPlugin plugin, ArenasConfig arenasconfig, MessagesConfig messagesconfig, ClassesConfig classesconfig, StatsConfig statsconfig, ArrayList<Arena> arenas) { - this.arenasconfig = arenasconfig; - this.messagesconfig = messagesconfig; - this.classesconfig = classesconfig; - this.statsconfig = statsconfig; - this.gunsconfig = new GunsConfig(plugin, false); - this.achievementsconfig = new AchievementsConfig(plugin); - this.shopconfig = new ShopConfig(plugin, false); - this.hologramsconfig = new HologramsConfig(plugin, false); - this.arenas = arenas; - this.plugin = plugin; - rew = new Rewards(plugin); - stats = new Stats(this, plugin); - sql = new MainSQL(plugin, true); - classes = new Classes(this, plugin); - shop = new Shop(this, plugin); - spectatormanager = new SpectatorManager(plugin); - achievements = new ArenaAchievements(this, plugin); - holograms = new Holograms(this); - scoreboardManager = new ArenaScoreboard(this, plugin); - scoreboardLobbyManager = new ArenaLobbyScoreboard(this, plugin); - reloadVariables(); - } - - public PluginInstance(JavaPlugin plugin, ArenasConfig arenasconfig, MessagesConfig messagesconfig, ClassesConfig classesconfig, StatsConfig statsconfig) { - this(plugin, arenasconfig, messagesconfig, classesconfig, statsconfig, new ArrayList<Arena>()); - } - - public void reloadVariables() { - lobby_countdown = plugin.getConfig().getInt("config.countdowns.lobby_countdown") + 1; - ingame_countdown = plugin.getConfig().getInt("config.countdowns.ingame_countdown") + 1; - spectator_move_y_lock = plugin.getConfig().getBoolean("config.spectator.spectator_move_y_lock"); - use_xp_bar_level = plugin.getConfig().getBoolean("config.use_xp_bar_level"); - blood_effects = plugin.getConfig().getBoolean("config.effects.blood"); - damage_identifier_effects = plugin.getConfig().getBoolean("config.effects.damage_identifier_holograms"); - dead_in_fake_bed_effects = plugin.getConfig().getBoolean("config.effects.dead_in_fake_bed"); - color_background_wool_of_signs = plugin.getConfig().getBoolean("config.color_background_wool_of_signs"); - spectator_mode_1_8 = plugin.getConfig().getBoolean("config.effects.1_8_spectator_mode"); - last_man_standing = plugin.getConfig().getBoolean("config.last_man_standing_wins"); - old_reset = plugin.getConfig().getBoolean("config.use_old_reset_method"); - show_classes_without_usage_permission = plugin.getConfig().getBoolean("config.show_classes_without_usage_permission"); - chat_enabled = plugin.getConfig().getBoolean("config.chat_enabled"); - - // Cache sign configuration - for (String state : ArenaState.getAllStateNames()) { - this.cached_sign_states.put(state, new ArrayList<String>(Arrays.asList(this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".0"), this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".1"), this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".2"), this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".3")))); - } - - } - - public JavaPlugin getPlugin() { - return plugin; - } - - public HashMap<String, AClass> getAClasses() { - return this.aclasses; - } - - public HashMap<String, AClass> getPClasses() { - return this.pclass; - } - - public void addAClass(String name, AClass a) { - this.aclasses.put(name, a); - } - - public void setPClass(String player, AClass a) { - this.pclass.put(player, a); - } - - public HashMap<String, Gun> getAllGuns() { - return this.guns; - } - - public void addGun(String name, Gun g) { - this.guns.put(name, g); - } - - public ArenasConfig getArenasConfig() { - return arenasconfig; - } - - public MessagesConfig getMessagesConfig() { - return messagesconfig; - } - - public ClassesConfig getClassesConfig() { - return classesconfig; - } - - public StatsConfig getStatsConfig() { - return statsconfig; - } - - public GunsConfig getGunsConfig() { - return gunsconfig; - } - - public AchievementsConfig getAchievementsConfig() { - return achievementsconfig; - } - - public ShopConfig getShopConfig() { - return shopconfig; - } - - public void setShopConfig(ShopConfig shopconfig) { - this.shopconfig = shopconfig; - } - - public HologramsConfig getHologramsConfig() { - return hologramsconfig; - } - - public Rewards getRewardsInstance() { - return rew; - } - - public void setRewardsInstance(Rewards r) { - rew = r; - } - - public MainSQL getSQLInstance() { - return sql; - } - - public Stats getStatsInstance() { - return stats; - } - - public ArenaListener getArenaListener() { - return this.arenalistener; - } - - public void setArenaListener(ArenaListener al) { - this.arenalistener = al; - } - - public Classes getClassesHandler() { - return this.classes; - } - - public void setClassesHandler(Classes c) { - this.classes = c; - } - - public Shop getShopHandler() { - return this.shop; - } - - public SpectatorManager getSpectatorManager() { - return this.spectatormanager; - } - - public void setSpectatorManager(SpectatorManager s) { - this.spectatormanager = s; - } - - public ArenaAchievements getArenaAchievements() { - return this.achievements; - } - - public Holograms getHologramsHandler() { - return this.holograms; - } - - public int getIngameCountdown() { - return this.ingame_countdown; - } - - public int getLobbyCountdown() { - return this.lobby_countdown; - } - - public ArrayList<Arena> getArenas() { - return arenas; - } - - public void clearArenas() { - arenas.clear(); - } - - public ArrayList<Arena> addArena(Arena arena) { - arenas.add(arena); - return getArenas(); - } - - public Arena getArenaByName(String arenaname) { - for (Arena a : getArenas()) { - if (a.getInternalName().equalsIgnoreCase(arenaname)) { - return a; - } - } - return null; - } - - public Arena removeArenaByName(String arenaname) { - Arena torem = null; - for (Arena a : getArenas()) { - if (a.getInternalName().equalsIgnoreCase(arenaname)) { - torem = a; - } - } - if (torem != null) { - removeArena(torem); - } - return null; - } - - public boolean removeArena(Arena arena) { - if (arenas.contains(arena)) { - arenas.remove(arena); - return true; - } - return false; - } - - public void addLoadedArenas(ArrayList<Arena> arenas) { - this.arenas = arenas; - } - - public boolean isAchievementGuiEnabled() { - return achievement_gui_enabled; - } - - public void setAchievementGuiEnabled(boolean achievement_gui_enabled) { - this.achievement_gui_enabled = achievement_gui_enabled; - } - - public void reloadAllArenas() { - for (Arena a : this.getArenas()) { - if (a != null) { - String arenaname = a.getInternalName(); - ArenaSetup s = this.arenaSetup; - a.init(Util.getSignLocationFromArena(plugin, arenaname), Util.getAllSpawns(plugin, arenaname), Util.getMainLobby(plugin), Util.getComponentForArena(plugin, arenaname, "lobby"), s.getPlayerCount(plugin, arenaname, true), s.getPlayerCount(plugin, arenaname, false), s.getArenaVIP(plugin, arenaname)); - if (a.isSuccessfullyInit()) { - Util.updateSign(plugin, a); - } - } - } - } - - public void reloadArena(String arenaname) { - if (Validator.isArenaValid(plugin, arenaname)) { - Arena a = this.getArenaByName(arenaname); - if (a != null) { - ArenaSetup s = this.arenaSetup; - a.init(Util.getSignLocationFromArena(plugin, arenaname), Util.getAllSpawns(plugin, arenaname), Util.getMainLobby(plugin), Util.getComponentForArena(plugin, arenaname, "lobby"), s.getPlayerCount(plugin, arenaname, true), s.getPlayerCount(plugin, arenaname, false), s.getArenaVIP(plugin, arenaname)); - } - } - } - - public boolean containsGlobalPlayer(String playername) { - return this.global_players.containsKey(playername); - } - - public boolean containsGlobalLost(String playername) { - return this.global_lost.containsKey(playername); - } - - public Arena getArenaByGlobalPlayer(String playername) { - if (containsGlobalPlayer(playername)) { - return this.global_players.get(playername); - } else { - return null; - } - } - +public class PluginInstance +{ + + public HashMap<String, Arena> global_players = new HashMap<>(); + public HashMap<String, Arena> global_lost = new HashMap<>(); + public HashMap<String, Arena> global_arcade_spectator = new HashMap<>(); + + private ArenaListener arenalistener = null; + private ArenasConfig arenasconfig = null; + private ClassesConfig classesconfig = null; + private MessagesConfig messagesconfig = null; + private StatsConfig statsconfig = null; + private GunsConfig gunsconfig = null; + private AchievementsConfig achievementsconfig = null; + private ShopConfig shopconfig = null; + private HologramsConfig hologramsconfig = null; + private JavaPlugin plugin = null; + private ArrayList<Arena> arenas = new ArrayList<>(); + private final HashMap<String, AClass> pclass = new HashMap<>(); + private final LinkedHashMap<String, AClass> aclasses = new LinkedHashMap<>(); + private final HashMap<String, Gun> guns = new HashMap<>(); + private Rewards rew = null; + private MainSQL sql = null; + private Stats stats = null; + private Classes classes = null; + private Shop shop = null; + private SpectatorManager spectatormanager = null; + private ArenaAchievements achievements = null; + private Holograms holograms = null; + private boolean achievement_gui_enabled = false; + + public ArenaScoreboard scoreboardManager; + public ArenaLobbyScoreboard scoreboardLobbyManager; + public ArenaSetup arenaSetup = new ArenaSetup(); + + int lobby_countdown = 30; + int ingame_countdown = 10; + + boolean spectator_move_y_lock = true; + boolean use_xp_bar_level = true; + boolean blood_effects = true; + boolean dead_in_fake_bed_effects = true; + boolean spectator_mode_1_8 = true; + boolean damage_identifier_effects = true; + public boolean color_background_wool_of_signs; + boolean last_man_standing = true; + boolean old_reset = false; + public boolean show_classes_without_usage_permission = true; + public boolean chat_enabled = true; + + public HashMap<String, ArrayList<String>> cached_sign_states = new HashMap<>(); + + public PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, + final ArrayList<Arena> arenas) + { + this.arenasconfig = arenasconfig; + this.messagesconfig = messagesconfig; + this.classesconfig = classesconfig; + this.statsconfig = statsconfig; + this.gunsconfig = new GunsConfig(plugin, false); + this.achievementsconfig = new AchievementsConfig(plugin); + this.shopconfig = new ShopConfig(plugin, false); + this.hologramsconfig = new HologramsConfig(plugin, false); + this.arenas = arenas; + this.plugin = plugin; + this.rew = new Rewards(plugin); + this.stats = new Stats(this, plugin); + this.sql = new MainSQL(plugin, true); + this.classes = new Classes(this, plugin); + this.shop = new Shop(this, plugin); + this.spectatormanager = new SpectatorManager(plugin); + this.achievements = new ArenaAchievements(this, plugin); + this.holograms = new Holograms(this); + this.scoreboardManager = new ArenaScoreboard(this, plugin); + this.scoreboardLobbyManager = new ArenaLobbyScoreboard(this, plugin); + this.reloadVariables(); + } + + public PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) + { + this(plugin, arenasconfig, messagesconfig, classesconfig, statsconfig, new ArrayList<Arena>()); + } + + public void reloadVariables() + { + this.lobby_countdown = this.plugin.getConfig().getInt("config.countdowns.lobby_countdown") + 1; + this.ingame_countdown = this.plugin.getConfig().getInt("config.countdowns.ingame_countdown") + 1; + this.spectator_move_y_lock = this.plugin.getConfig().getBoolean("config.spectator.spectator_move_y_lock"); + this.use_xp_bar_level = this.plugin.getConfig().getBoolean("config.use_xp_bar_level"); + this.blood_effects = this.plugin.getConfig().getBoolean("config.effects.blood"); + this.damage_identifier_effects = this.plugin.getConfig().getBoolean("config.effects.damage_identifier_holograms"); + this.dead_in_fake_bed_effects = this.plugin.getConfig().getBoolean("config.effects.dead_in_fake_bed"); + this.color_background_wool_of_signs = this.plugin.getConfig().getBoolean("config.color_background_wool_of_signs"); + this.spectator_mode_1_8 = this.plugin.getConfig().getBoolean("config.effects.1_8_spectator_mode"); + this.last_man_standing = this.plugin.getConfig().getBoolean("config.last_man_standing_wins"); + this.old_reset = this.plugin.getConfig().getBoolean("config.use_old_reset_method"); + this.show_classes_without_usage_permission = this.plugin.getConfig().getBoolean("config.show_classes_without_usage_permission"); + this.chat_enabled = this.plugin.getConfig().getBoolean("config.chat_enabled"); + + // Cache sign configuration + for (final String state : ArenaState.getAllStateNames()) + { + this.cached_sign_states.put(state, + new ArrayList<>(Arrays.asList(this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".0"), + this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".1"), this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".2"), + this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".3")))); + } + + } + + public JavaPlugin getPlugin() + { + return this.plugin; + } + + public HashMap<String, AClass> getAClasses() + { + return this.aclasses; + } + + public HashMap<String, AClass> getPClasses() + { + return this.pclass; + } + + public void addAClass(final String name, final AClass a) + { + this.aclasses.put(name, a); + } + + public void setPClass(final String player, final AClass a) + { + this.pclass.put(player, a); + } + + public HashMap<String, Gun> getAllGuns() + { + return this.guns; + } + + public void addGun(final String name, final Gun g) + { + this.guns.put(name, g); + } + + public ArenasConfig getArenasConfig() + { + return this.arenasconfig; + } + + public MessagesConfig getMessagesConfig() + { + return this.messagesconfig; + } + + public ClassesConfig getClassesConfig() + { + return this.classesconfig; + } + + public StatsConfig getStatsConfig() + { + return this.statsconfig; + } + + public GunsConfig getGunsConfig() + { + return this.gunsconfig; + } + + public AchievementsConfig getAchievementsConfig() + { + return this.achievementsconfig; + } + + public ShopConfig getShopConfig() + { + return this.shopconfig; + } + + public void setShopConfig(final ShopConfig shopconfig) + { + this.shopconfig = shopconfig; + } + + public HologramsConfig getHologramsConfig() + { + return this.hologramsconfig; + } + + public Rewards getRewardsInstance() + { + return this.rew; + } + + public void setRewardsInstance(final Rewards r) + { + this.rew = r; + } + + public MainSQL getSQLInstance() + { + return this.sql; + } + + public Stats getStatsInstance() + { + return this.stats; + } + + public ArenaListener getArenaListener() + { + return this.arenalistener; + } + + public void setArenaListener(final ArenaListener al) + { + this.arenalistener = al; + } + + public Classes getClassesHandler() + { + return this.classes; + } + + public void setClassesHandler(final Classes c) + { + this.classes = c; + } + + public Shop getShopHandler() + { + return this.shop; + } + + public SpectatorManager getSpectatorManager() + { + return this.spectatormanager; + } + + public void setSpectatorManager(final SpectatorManager s) + { + this.spectatormanager = s; + } + + public ArenaAchievements getArenaAchievements() + { + return this.achievements; + } + + public Holograms getHologramsHandler() + { + return this.holograms; + } + + public int getIngameCountdown() + { + return this.ingame_countdown; + } + + public int getLobbyCountdown() + { + return this.lobby_countdown; + } + + public ArrayList<Arena> getArenas() + { + return this.arenas; + } + + public void clearArenas() + { + this.arenas.clear(); + } + + public ArrayList<Arena> addArena(final Arena arena) + { + this.arenas.add(arena); + return this.getArenas(); + } + + public Arena getArenaByName(final String arenaname) + { + for (final Arena a : this.getArenas()) + { + if (a.getInternalName().equalsIgnoreCase(arenaname)) + { + return a; + } + } + return null; + } + + public Arena removeArenaByName(final String arenaname) + { + Arena torem = null; + for (final Arena a : this.getArenas()) + { + if (a.getInternalName().equalsIgnoreCase(arenaname)) + { + torem = a; + } + } + if (torem != null) + { + this.removeArena(torem); + } + return null; + } + + public boolean removeArena(final Arena arena) + { + if (this.arenas.contains(arena)) + { + this.arenas.remove(arena); + return true; + } + return false; + } + + public void addLoadedArenas(final ArrayList<Arena> arenas) + { + this.arenas = arenas; + } + + public boolean isAchievementGuiEnabled() + { + return this.achievement_gui_enabled; + } + + public void setAchievementGuiEnabled(final boolean achievement_gui_enabled) + { + this.achievement_gui_enabled = achievement_gui_enabled; + } + + public void reloadAllArenas() + { + for (final Arena a : this.getArenas()) + { + if (a != null) + { + final String arenaname = a.getInternalName(); + final ArenaSetup s = this.arenaSetup; + a.init(Util.getSignLocationFromArena(this.plugin, arenaname), Util.getAllSpawns(this.plugin, arenaname), Util.getMainLobby(this.plugin), + Util.getComponentForArena(this.plugin, arenaname, "lobby"), s.getPlayerCount(this.plugin, arenaname, true), s.getPlayerCount(this.plugin, arenaname, false), + s.getArenaVIP(this.plugin, arenaname)); + if (a.isSuccessfullyInit()) + { + Util.updateSign(this.plugin, a); + } + } + } + } + + public void reloadArena(final String arenaname) + { + if (Validator.isArenaValid(this.plugin, arenaname)) + { + final Arena a = this.getArenaByName(arenaname); + if (a != null) + { + final ArenaSetup s = this.arenaSetup; + a.init(Util.getSignLocationFromArena(this.plugin, arenaname), Util.getAllSpawns(this.plugin, arenaname), Util.getMainLobby(this.plugin), + Util.getComponentForArena(this.plugin, arenaname, "lobby"), s.getPlayerCount(this.plugin, arenaname, true), s.getPlayerCount(this.plugin, arenaname, false), + s.getArenaVIP(this.plugin, arenaname)); + } + } + } + + public boolean containsGlobalPlayer(final String playername) + { + return this.global_players.containsKey(playername); + } + + public boolean containsGlobalLost(final String playername) + { + return this.global_lost.containsKey(playername); + } + + public Arena getArenaByGlobalPlayer(final String playername) + { + if (this.containsGlobalPlayer(playername)) + { + return this.global_players.get(playername); + } + else + { + return null; + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java new file mode 100644 index 00000000..84a043e2 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java @@ -0,0 +1,164 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.channels.ClosedChannelException; +import java.util.ArrayList; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Chest; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.util.io.BukkitObjectInputStream; + +import com.comze_instancelabs.minigamesapi.util.ArenaBlock; +import com.comze_instancelabs.minigamesapi.util.Util; + +/** + * Helper class that is invisible in public API + * + * <p> + * NOTE: THIS IS INTERNAL API. It can change from one build to another. Do never use this Util directly. + * </p> + * + * @author mepeisen + */ +public class PrivateUtil +{ + + public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena arena) + { + int failcount = 0; + final ArrayList<ArenaBlock> failedblocks = new ArrayList<>(); + + final File f = new File(plugin.getDataFolder() + "/" + arena.getInternalName()); + if (!f.exists()) + { + plugin.getLogger().warning("Could not find arena file for " + arena.getInternalName()); + arena.setArenaState(ArenaState.JOIN); + Bukkit.getScheduler().runTask(plugin, () -> Util.updateSign(plugin, arena)); + return; + } + FileInputStream fis = null; + BukkitObjectInputStream ois = null; + try + { + fis = new FileInputStream(f); + ois = new BukkitObjectInputStream(fis); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + try + { + while (true) + { + Object b = null; + try + { + b = ois.readObject(); + } + catch (final EOFException e) + { + MinigamesAPI.getAPI().getLogger().info("Finished restoring map for " + arena.getInternalName() + " with old reset method."); + + arena.setArenaState(ArenaState.JOIN); + Bukkit.getScheduler().runTask(plugin, () -> Util.updateSign(plugin, arena)); + } + catch (final ClosedChannelException e) + { + System.out.println("Something is wrong with your arena file and the reset might not be successful. Also, you're using an outdated reset method."); + } + catch (final Exception e) + { + e.printStackTrace(); + arena.setArenaState(ArenaState.JOIN); + Bukkit.getScheduler().runTask(plugin, () -> Util.updateSign(plugin, arena)); + } + + if (b != null) + { + final ArenaBlock ablock = (ArenaBlock) b; + try + { + final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); + if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) + { + b_.setType(ablock.getMaterial()); + b_.setData(ablock.getData()); + } + if (b_.getType() == Material.CHEST) + { + ((Chest) b_.getState()).getInventory().setContents(ablock.getInventory()); + ((Chest) b_.getState()).update(); + } + } + catch (final IllegalStateException e) + { + failcount += 1; + failedblocks.add(ablock); + } + } + else + { + break; + } + } + + } + catch (final Exception e) + { + e.printStackTrace(); + } + + try + { + ois.close(); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(MinigamesAPI.getAPI(), () -> { + for (final ArenaBlock ablock : failedblocks) + { + final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); + if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) + { + b_.setType(ablock.getMaterial()); + b_.setData(ablock.getData()); + } + if (b_.getType() == Material.CHEST) + { + ((Chest) b_.getState()).getInventory().setContents(ablock.getInventory()); + ((Chest) b_.getState()).update(); + } + } + }, 40L); + MinigamesAPI.getAPI().getLogger().info("Successfully finished!"); + + return; + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index b42d6f60..ca78e14c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; @@ -10,252 +24,305 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class Rewards { - - private JavaPlugin plugin = null; - - private boolean economyrewards; - private boolean itemrewards; - private boolean commandrewards; - private boolean kill_economyrewards; - private boolean kill_commandrewards; - private boolean participation_economyrewards; - private boolean participation_commandrewards; - - private int econ_reward = 0; - private int kill_econ_reward = 0; - private int participation_econ_reward = 0; - private String command = ""; - private String kill_command = ""; - private String participation_command = ""; - private ItemStack[] items = null; - - public Rewards(JavaPlugin plugin) { - this.plugin = plugin; - reloadVariables(); - - if (!MinigamesAPI.economy) { - economyrewards = false; - kill_economyrewards = false; - participation_economyrewards = false; - } - } - - public void reloadVariables() { - economyrewards = plugin.getConfig().getBoolean("config.rewards.economy"); - itemrewards = plugin.getConfig().getBoolean("config.rewards.item_reward"); - commandrewards = plugin.getConfig().getBoolean("config.rewards.command_reward"); - kill_economyrewards = plugin.getConfig().getBoolean("config.rewards.economy_for_kills"); - kill_commandrewards = plugin.getConfig().getBoolean("config.rewards.command_reward_for_kills"); - participation_economyrewards = plugin.getConfig().getBoolean("config.rewards.economy_for_participation"); - participation_commandrewards = plugin.getConfig().getBoolean("config.rewards.command_reward_for_participation"); - - econ_reward = plugin.getConfig().getInt("config.rewards.economy_reward"); - command = plugin.getConfig().getString("config.rewards.command"); - items = Util.parseItems(plugin.getConfig().getString("config.rewards.item_reward_ids")).toArray(new ItemStack[0]); - kill_econ_reward = plugin.getConfig().getInt("config.rewards.economy_reward_for_kills"); - kill_command = plugin.getConfig().getString("config.rewards.command_for_kills"); - participation_econ_reward = plugin.getConfig().getInt("config.rewards.economy_reward_for_participation"); - participation_command = plugin.getConfig().getString("config.rewards.command_for_participation"); - } - - /** - * Give all win rewards to players who won the game - * - * @param arena - * Arena - */ - public void giveRewardsToWinners(Arena arena) { - for (String p_ : arena.getAllPlayers()) { - giveWinReward(p_, arena); - } - } - - @Deprecated - public void giveReward(String p_) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - - if (economyrewards) { - MinigamesAPI.getAPI().econ.depositPlayer(p.getName(), econ_reward); - } - - MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().win(p_, 10); - } - } - - /** - * Give a player a kill reward - * - * @param p_ - * Playername - * @param reward - * Amount of statistics points the player gets - */ - public void giveKillReward(String p_) { - if (Validator.isPlayerOnline(p_)) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - Player p = Bukkit.getPlayer(p_); - - if (kill_economyrewards && MinigamesAPI.economy) { - MinigamesAPI.getAPI().econ.depositPlayer(p.getName(), kill_econ_reward); - } - if (kill_commandrewards) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), kill_command.replaceAll("<player>", p_)); - } - - pli.getStatsInstance().addPoints(p_, pli.getStatsInstance().stats_kill_points); - pli.getStatsInstance().addKill(p_); - pli.getSQLInstance().updateWinnerStats(p, pli.getStatsInstance().stats_kill_points, false); - } - } - - @Deprecated - public void giveKillReward(String p_, int reward) { - this.giveKillReward(p_); - } - - /** - * Gives a player an achievement reward - * - * @param p_ - * Playername - * @param econ - * Whether economy rewards are enabled - * @param command - * Whether command rewards are enabled - * @param money_reward - * Amount of money to reward if economy rewards are enabled - * @param cmd - * Command to execute if command rewards are enabled - */ - public void giveAchievementReward(String p_, boolean econ, boolean command, int money_reward, String cmd) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - - if (econ && MinigamesAPI.economy) { - MinigamesAPI.getAPI().econ.depositPlayer(p.getName(), money_reward); - } - if (command) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.replaceAll("<player>", p_)); - } - } - } - - public void giveWinReward(String p_, Arena a) { - giveWinReward(p_, a, 1); - } - - public void giveWinReward(String p_, Arena a, int global_multiplier) { - giveWinReward(p_, a, a.getAllPlayers(), global_multiplier); - } - - /** - * Gives all rewards to a player who won and sends reward messages/win broadcasts - * - * @param p_ - * Playername - * @param a - * Arena - * @param players - * Optional array of players to send win broadcast to - * @param global_multiplier - * Money reward multiplier (default: 1) - */ - public void giveWinReward(String p_, Arena a, ArrayList<String> players, int global_multiplier) { - if (Validator.isPlayerOnline(p_)) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - final Player p = Bukkit.getPlayer(p_); - if (!pli.global_lost.containsKey(p_)) { - String received_rewards_msg = pli.getMessagesConfig().you_received_rewards; - if (economyrewards && MinigamesAPI.economy) { - int multiplier = global_multiplier; - if (pli.getShopHandler().hasItemBought(p_, "coin_boost2_solo")) { - multiplier = 2; - } - if (pli.getShopHandler().hasItemBought(p_, "coin_boost3_solo")) { - multiplier = 3; - } - MinigamesAPI.getAPI().econ.depositPlayer(p.getName(), econ_reward * multiplier); - received_rewards_msg = received_rewards_msg.replaceAll("<economyreward>", Integer.toString(econ_reward * multiplier) + " " + MinigamesAPI.econ.currencyNamePlural()); - } else { - received_rewards_msg = received_rewards_msg.replaceAll("<economyreward>", ""); - } - if (itemrewards) { - p.getInventory().addItem(items); - p.updateInventory(); - String items_str = ""; - for (ItemStack i : items) { - items_str += Integer.toString(i.getAmount()) + " " + Character.toUpperCase(i.getType().toString().charAt(0)) + i.getType().toString().toLowerCase().substring(1) + ", "; - } - if (items_str.length() > 2) { - items_str = items_str.substring(0, items_str.length() - 2); - } - if (economyrewards && MinigamesAPI.economy) { - received_rewards_msg += pli.getMessagesConfig().you_received_rewards_2; - received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", items_str); - } else { - received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", items_str); - } - } else { - received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", ""); - } - if (commandrewards) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("<player>", p_)); - } - - pli.getStatsInstance().win(p_, pli.getStatsInstance().stats_win_points); - - try { - if (plugin.getConfig().getBoolean("config.broadcast_win")) { - String msgs[] = pli.getMessagesConfig().server_broadcast_winner.replaceAll("<player>", p_).replaceAll("<arena>", a.getInternalName()).split(";"); - for (String msg : msgs) { - Bukkit.getServer().broadcastMessage(msg); - } - } else { - String msgs[] = pli.getMessagesConfig().server_broadcast_winner.replaceAll("<player>", p_).replaceAll("<arena>", a.getInternalName()).split(";"); - for (String playername : players) { - if (Validator.isPlayerOnline(playername)) { - Bukkit.getPlayer(playername).sendMessage(msgs); - } - } - } - } catch (Exception e) { - System.out.println("Could not find arena for broadcast. " + e.getMessage()); - } - - Util.sendMessage(plugin, p, pli.getMessagesConfig().you_won); - Util.sendMessage(plugin, p, received_rewards_msg); - if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) - { - Effects.playTitle(p, pli.getMessagesConfig().you_won, 0); - } - - // Participation Rewards - if (participation_economyrewards) { - MinigamesAPI.getAPI().econ.depositPlayer(p.getName(), participation_econ_reward); - Util.sendMessage(plugin, p, pli.getMessagesConfig().you_got_a_participation_reward.replaceAll("<economyreward>", Integer.toString(participation_econ_reward) + " " + MinigamesAPI.econ.currencyNamePlural())); - } - if (participation_commandrewards) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("<player>", p_)); - } - - if (plugin.getConfig().getBoolean("config.spawn_fireworks_for_winners")) { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - Util.spawnFirework(p); - } - }, 20L); - } - } else { - Util.sendMessage(plugin, p, pli.getMessagesConfig().you_lost); - if (plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) - { - Effects.playTitle(p, pli.getMessagesConfig().you_lost, 0); - } - MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().lose(p_); - } - } - } - +public class Rewards +{ + + private JavaPlugin plugin = null; + + private boolean economyrewards; + private boolean itemrewards; + private boolean commandrewards; + private boolean kill_economyrewards; + private boolean kill_commandrewards; + private boolean participation_economyrewards; + private boolean participation_commandrewards; + + private int econ_reward = 0; + private int kill_econ_reward = 0; + private int participation_econ_reward = 0; + private String command = ""; + private String kill_command = ""; + private String participation_command = ""; + private ItemStack[] items = null; + + public Rewards(final JavaPlugin plugin) + { + this.plugin = plugin; + this.reloadVariables(); + + if (!MinigamesAPI.economy) + { + this.economyrewards = false; + this.kill_economyrewards = false; + this.participation_economyrewards = false; + } + } + + public void reloadVariables() + { + this.economyrewards = this.plugin.getConfig().getBoolean("config.rewards.economy"); + this.itemrewards = this.plugin.getConfig().getBoolean("config.rewards.item_reward"); + this.commandrewards = this.plugin.getConfig().getBoolean("config.rewards.command_reward"); + this.kill_economyrewards = this.plugin.getConfig().getBoolean("config.rewards.economy_for_kills"); + this.kill_commandrewards = this.plugin.getConfig().getBoolean("config.rewards.command_reward_for_kills"); + this.participation_economyrewards = this.plugin.getConfig().getBoolean("config.rewards.economy_for_participation"); + this.participation_commandrewards = this.plugin.getConfig().getBoolean("config.rewards.command_reward_for_participation"); + + this.econ_reward = this.plugin.getConfig().getInt("config.rewards.economy_reward"); + this.command = this.plugin.getConfig().getString("config.rewards.command"); + this.items = Util.parseItems(this.plugin.getConfig().getString("config.rewards.item_reward_ids")).toArray(new ItemStack[0]); + this.kill_econ_reward = this.plugin.getConfig().getInt("config.rewards.economy_reward_for_kills"); + this.kill_command = this.plugin.getConfig().getString("config.rewards.command_for_kills"); + this.participation_econ_reward = this.plugin.getConfig().getInt("config.rewards.economy_reward_for_participation"); + this.participation_command = this.plugin.getConfig().getString("config.rewards.command_for_participation"); + } + + /** + * Give all win rewards to players who won the game + * + * @param arena + * Arena + */ + public void giveRewardsToWinners(final Arena arena) + { + for (final String p_ : arena.getAllPlayers()) + { + this.giveWinReward(p_, arena); + } + } + + @Deprecated + public void giveReward(final String p_) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + + if (this.economyrewards) + { + MinigamesAPI.getAPI(); + MinigamesAPI.econ.depositPlayer(p.getName(), this.econ_reward); + } + + MinigamesAPI.getAPI().getPluginInstance(this.plugin).getStatsInstance().win(p_, 10); + } + } + + /** + * Give a player a kill reward + * + * @param p_ + * Playername + * @param reward + * Amount of statistics points the player gets + */ + public void giveKillReward(final String p_) + { + if (Validator.isPlayerOnline(p_)) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); + final Player p = Bukkit.getPlayer(p_); + + if (this.kill_economyrewards && MinigamesAPI.economy) + { + MinigamesAPI.getAPI(); + MinigamesAPI.econ.depositPlayer(p.getName(), this.kill_econ_reward); + } + if (this.kill_commandrewards) + { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), this.kill_command.replaceAll("<player>", p_)); + } + + pli.getStatsInstance().addPoints(p_, pli.getStatsInstance().stats_kill_points); + pli.getStatsInstance().addKill(p_); + pli.getSQLInstance().updateWinnerStats(p, pli.getStatsInstance().stats_kill_points, false); + } + } + + @Deprecated + public void giveKillReward(final String p_, final int reward) + { + this.giveKillReward(p_); + } + + /** + * Gives a player an achievement reward + * + * @param p_ + * Playername + * @param econ + * Whether economy rewards are enabled + * @param command + * Whether command rewards are enabled + * @param money_reward + * Amount of money to reward if economy rewards are enabled + * @param cmd + * Command to execute if command rewards are enabled + */ + public void giveAchievementReward(final String p_, final boolean econ, final boolean command, final int money_reward, final String cmd) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + + if (econ && MinigamesAPI.economy) + { + MinigamesAPI.getAPI(); + MinigamesAPI.econ.depositPlayer(p.getName(), money_reward); + } + if (command) + { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.replaceAll("<player>", p_)); + } + } + } + + public void giveWinReward(final String p_, final Arena a) + { + this.giveWinReward(p_, a, 1); + } + + public void giveWinReward(final String p_, final Arena a, final int global_multiplier) + { + this.giveWinReward(p_, a, a.getAllPlayers(), global_multiplier); + } + + /** + * Gives all rewards to a player who won and sends reward messages/win broadcasts + * + * @param p_ + * Playername + * @param a + * Arena + * @param players + * Optional array of players to send win broadcast to + * @param global_multiplier + * Money reward multiplier (default: 1) + */ + public void giveWinReward(final String p_, final Arena a, final ArrayList<String> players, final int global_multiplier) + { + if (Validator.isPlayerOnline(p_)) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); + final Player p = Bukkit.getPlayer(p_); + if (!pli.global_lost.containsKey(p_)) + { + String received_rewards_msg = pli.getMessagesConfig().you_received_rewards; + if (this.economyrewards && MinigamesAPI.economy) + { + int multiplier = global_multiplier; + if (pli.getShopHandler().hasItemBought(p_, "coin_boost2_solo")) + { + multiplier = 2; + } + if (pli.getShopHandler().hasItemBought(p_, "coin_boost3_solo")) + { + multiplier = 3; + } + MinigamesAPI.getAPI(); + MinigamesAPI.econ.depositPlayer(p.getName(), this.econ_reward * multiplier); + received_rewards_msg = received_rewards_msg.replaceAll("<economyreward>", Integer.toString(this.econ_reward * multiplier) + " " + MinigamesAPI.econ.currencyNamePlural()); + } + else + { + received_rewards_msg = received_rewards_msg.replaceAll("<economyreward>", ""); + } + if (this.itemrewards) + { + p.getInventory().addItem(this.items); + p.updateInventory(); + String items_str = ""; + for (final ItemStack i : this.items) + { + items_str += Integer.toString(i.getAmount()) + " " + Character.toUpperCase(i.getType().toString().charAt(0)) + i.getType().toString().toLowerCase().substring(1) + ", "; + } + if (items_str.length() > 2) + { + items_str = items_str.substring(0, items_str.length() - 2); + } + if (this.economyrewards && MinigamesAPI.economy) + { + received_rewards_msg += pli.getMessagesConfig().you_received_rewards_2; + received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", items_str); + } + else + { + received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", items_str); + } + } + else + { + received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", ""); + } + if (this.commandrewards) + { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), this.command.replaceAll("<player>", p_)); + } + + pli.getStatsInstance().win(p_, pli.getStatsInstance().stats_win_points); + + try + { + if (this.plugin.getConfig().getBoolean("config.broadcast_win")) + { + final String msgs[] = pli.getMessagesConfig().server_broadcast_winner.replaceAll("<player>", p_).replaceAll("<arena>", a.getInternalName()).split(";"); + for (final String msg : msgs) + { + Bukkit.getServer().broadcastMessage(msg); + } + } + else + { + final String msgs[] = pli.getMessagesConfig().server_broadcast_winner.replaceAll("<player>", p_).replaceAll("<arena>", a.getInternalName()).split(";"); + for (final String playername : players) + { + if (Validator.isPlayerOnline(playername)) + { + Bukkit.getPlayer(playername).sendMessage(msgs); + } + } + } + } + catch (final Exception e) + { + System.out.println("Could not find arena for broadcast. " + e.getMessage()); + } + + Util.sendMessage(this.plugin, p, pli.getMessagesConfig().you_won); + Util.sendMessage(this.plugin, p, received_rewards_msg); + if (this.plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { + Effects.playTitle(p, pli.getMessagesConfig().you_won, 0); + } + + // Participation Rewards + if (this.participation_economyrewards) + { + MinigamesAPI.getAPI(); + MinigamesAPI.econ.depositPlayer(p.getName(), this.participation_econ_reward); + Util.sendMessage(this.plugin, p, pli.getMessagesConfig().you_got_a_participation_reward.replaceAll("<economyreward>", + Integer.toString(this.participation_econ_reward) + " " + MinigamesAPI.econ.currencyNamePlural())); + } + if (this.participation_commandrewards) + { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), this.command.replaceAll("<player>", p_)); + } + + if (this.plugin.getConfig().getBoolean("config.spawn_fireworks_for_winners")) + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> Util.spawnFirework(p), 20L); + } + } + else + { + Util.sendMessage(this.plugin, p, pli.getMessagesConfig().you_lost); + if (this.plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { + Effects.playTitle(p, pli.getMessagesConfig().you_lost, 0); + } + MinigamesAPI.getAPI().getPluginInstance(this.plugin).getStatsInstance().lose(p_); + } + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java index 3c12e8a7..e46a3ea2 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java @@ -1,10 +1,22 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.util.HashMap; import java.util.LinkedHashMap; -import net.milkbowl.vault.economy.EconomyResponse; - import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; @@ -17,169 +29,217 @@ import com.comze_instancelabs.minigamesapi.util.ShopItem; import com.comze_instancelabs.minigamesapi.util.Util; -public class Shop { - - // Allows buying extra stuff for the games like traits, coin boosters, extra weapons - // You can change whether the particular item is persistent or just for one game - - JavaPlugin plugin; - PluginInstance pli; - public HashMap<String, IconMenu> lasticonm = new HashMap<String, IconMenu>(); - public LinkedHashMap<String, ShopItem> shopitems = new LinkedHashMap<String, ShopItem>(); - - public Shop(PluginInstance pli, JavaPlugin plugin) { - this.plugin = plugin; - this.pli = pli; - } - - public void openGUI(final String p) { - IconMenu iconm; - int mincount = pli.getAClasses().keySet().size(); - if (lasticonm.containsKey(p)) { - iconm = lasticonm.get(p); - } else { - iconm = new IconMenu(pli.getMessagesConfig().shop_item, (9 * plugin.getConfig().getInt("config.GUI.shop_gui_rows") > mincount - 1) ? 9 * plugin.getConfig().getInt("config.GUI.shop_gui_rows") : Math.round(mincount / 9) * 9 + 9, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - if (event.getPlayer().getName().equalsIgnoreCase(p)) { - if (pli.global_players.containsKey(p)) { - if (pli.getArenas().contains(pli.global_players.get(p))) { - String d = event.getName(); - Player p = event.getPlayer(); - buy(p, d); - } - } - } - event.setWillClose(true); - } - }, plugin); - - ShopConfig shopConfig = pli.getShopConfig(); - int c = 0; - for (String ac : shopitems.keySet()) { - ShopItem ac_ = shopitems.get(ac); - if (ac_.isEnabled()) { - int slot = c; - if (pli.getShopConfig().getConfig().isSet("config.shop_items." + ac_.getInternalName() + ".slot")) { - slot = pli.getShopConfig().getConfig().getInt("config.shop_items." + ac_.getInternalName() + ".slot"); - if (slot < 0 || slot > iconm.getSize() - 1) { - slot = c; - } - } - String color = ChatColor.GREEN + ""; - if (shopConfig.getConfig().isSet("players.bought." + p + "." + ac_.getInternalName())) { - color = ChatColor.RED + ""; - } - iconm.setOption(slot, ac_.getIcon().clone(), color + ac_.getName(), pli.getShopConfig().getConfig().getString("config.shop_items." + ac_.getInternalName() + ".lore").split(";")); - c++; - } - } - } - - iconm.open(Bukkit.getPlayerExact(p)); - lasticonm.put(p, iconm); - } - - public void loadShopItems() { - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - FileConfiguration config = pli.getShopConfig().getConfig(); - if (config.isSet("config.shop_items")) { - for (String aclass : config.getConfigurationSection("config.shop_items.").getKeys(false)) { - ShopItem n = new ShopItem(plugin, config.getString("config.shop_items." + aclass + ".name"), aclass, config.isSet("config.shop_items." + aclass + ".enabled") ? config.getBoolean("config.shop_items." + aclass + ".enabled") : true, Util.parseItems(config.getString("config.shop_items." + aclass + ".items")), Util.parseItems(config.getString("config.shop_items." + aclass + ".icon")).get(0)); - shopitems.put(aclass, n); - } - } - } - }, 20L); - } - - /*** - * Buy a shop item - * - * @param p - * Player who buys it - * @param item_displayname - * Displayname of the item - * @return - */ - public boolean buy(Player p, String item_displayname) { - for (String ac : shopitems.keySet()) { - ShopItem ac_ = shopitems.get(ac); - if (ac_.getName().equalsIgnoreCase(ChatColor.stripColor(item_displayname))) { - takeMoney(p, ac_.getInternalName()); - // true -> player has item already or just bought it successfully - return true; - } - } - return false; - } - - public boolean buyByInternalName(Player p, String item_name) { - for (String ac : shopitems.keySet()) { - ShopItem ac_ = shopitems.get(ac); - if (ac_.getInternalName().equalsIgnoreCase(ChatColor.stripColor(item_name))) { - takeMoney(p, ac_.getInternalName()); - // true -> player has item already or just bought it successfully - return true; - } - } - return false; - } - - public boolean hasItemBought(String p, String item) { - return pli.getShopConfig().getConfig().isSet("players.bought." + p + "." + item); - } - - public boolean requiresMoney(String item) { - return pli.getShopConfig().getConfig().getBoolean("config.shop_items." + item + ".requires_money"); - } - - public boolean takeMoney(Player p, String item) { - if (!MinigamesAPI.getAPI().economy) { - plugin.getLogger().warning("Economy is turned OFF. Turn it ON in the config."); - return false; - } - if (!requiresMoney(item)) { - return false; - } - if (MinigamesAPI.economy) { - ShopConfig shopConfig = pli.getShopConfig(); - if (!shopConfig.getConfig().isSet("players.bought." + p.getName() + "." + item)) { - int money = shopConfig.getConfig().getInt("config.shop_items." + item + ".money_amount"); - if (MinigamesAPI.getAPI().econ.getBalance(p.getName()) >= money) { - EconomyResponse r = MinigamesAPI.getAPI().econ.withdrawPlayer(p.getName(), money); - if (!r.transactionSuccess()) { - p.sendMessage(String.format("An error occured: %s", r.errorMessage)); - return false; - } - shopConfig.getConfig().set("players.bought." + p.getName() + "." + item, true); - shopConfig.saveConfig(); - p.sendMessage(pli.getMessagesConfig().successfully_bought_shopitem.replaceAll("<shopitem>", shopitems.get(item).getName()).replaceAll("<money>", Integer.toString(money))); - } else { - p.sendMessage(pli.getMessagesConfig().not_enough_money); - return false; - } - } else { - p.sendMessage(pli.getMessagesConfig().already_bought_shopitem.replaceAll("<shopitem>", shopitems.get(item).getName())); - return true; - } - return true; - } else { - return false; - } - - } - - public void giveShopItems(Player p) { - for (ShopItem ac : shopitems.values()) { - if (ac.usesItems(pli)) { - for (ItemStack i : ac.getItems()) { - p.getInventory().addItem(i); - } - p.updateInventory(); - } - } - } +import net.milkbowl.vault.economy.EconomyResponse; +public class Shop +{ + + // Allows buying extra stuff for the games like traits, coin boosters, extra weapons + // You can change whether the particular item is persistent or just for one game + + JavaPlugin plugin; + PluginInstance pli; + public HashMap<String, IconMenu> lasticonm = new HashMap<>(); + public LinkedHashMap<String, ShopItem> shopitems = new LinkedHashMap<>(); + + public Shop(final PluginInstance pli, final JavaPlugin plugin) + { + this.plugin = plugin; + this.pli = pli; + } + + public void openGUI(final String p) + { + IconMenu iconm; + final int mincount = this.pli.getAClasses().keySet().size(); + if (this.lasticonm.containsKey(p)) + { + iconm = this.lasticonm.get(p); + } + else + { + iconm = new IconMenu(this.pli.getMessagesConfig().shop_item, + (9 * this.plugin.getConfig().getInt("config.GUI.shop_gui_rows") > mincount - 1) ? 9 * this.plugin.getConfig().getInt("config.GUI.shop_gui_rows") : Math.round(mincount / 9) * 9 + 9, + event -> { + if (event.getPlayer().getName().equalsIgnoreCase(p)) + { + if (Shop.this.pli.global_players.containsKey(p)) + { + if (Shop.this.pli.getArenas().contains(Shop.this.pli.global_players.get(p))) + { + final String d = event.getName(); + final Player p1 = event.getPlayer(); + Shop.this.buy(p1, d); + } + } + } + event.setWillClose(true); + }, this.plugin); + + final ShopConfig shopConfig = this.pli.getShopConfig(); + int c = 0; + for (final String ac : this.shopitems.keySet()) + { + final ShopItem ac_ = this.shopitems.get(ac); + if (ac_.isEnabled()) + { + int slot = c; + if (this.pli.getShopConfig().getConfig().isSet("config.shop_items." + ac_.getInternalName() + ".slot")) + { + slot = this.pli.getShopConfig().getConfig().getInt("config.shop_items." + ac_.getInternalName() + ".slot"); + if (slot < 0 || slot > iconm.getSize() - 1) + { + slot = c; + } + } + String color = ChatColor.GREEN + ""; + if (shopConfig.getConfig().isSet("players.bought." + p + "." + ac_.getInternalName())) + { + color = ChatColor.RED + ""; + } + iconm.setOption(slot, ac_.getIcon().clone(), color + ac_.getName(), + this.pli.getShopConfig().getConfig().getString("config.shop_items." + ac_.getInternalName() + ".lore").split(";")); + c++; + } + } + } + + iconm.open(Bukkit.getPlayerExact(p)); + this.lasticonm.put(p, iconm); + } + + public void loadShopItems() + { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + final FileConfiguration config = Shop.this.pli.getShopConfig().getConfig(); + if (config.isSet("config.shop_items")) + { + for (final String aclass : config.getConfigurationSection("config.shop_items.").getKeys(false)) + { + final ShopItem n = new ShopItem(Shop.this.plugin, config.getString("config.shop_items." + aclass + ".name"), aclass, + config.isSet("config.shop_items." + aclass + ".enabled") ? config.getBoolean("config.shop_items." + aclass + ".enabled") : true, + Util.parseItems(config.getString("config.shop_items." + aclass + ".items")), Util.parseItems(config.getString("config.shop_items." + aclass + ".icon")).get(0)); + Shop.this.shopitems.put(aclass, n); + } + } + }, 20L); + } + + /*** + * Buy a shop item + * + * @param p + * Player who buys it + * @param item_displayname + * Displayname of the item + * @return + */ + public boolean buy(final Player p, final String item_displayname) + { + for (final String ac : this.shopitems.keySet()) + { + final ShopItem ac_ = this.shopitems.get(ac); + if (ac_.getName().equalsIgnoreCase(ChatColor.stripColor(item_displayname))) + { + this.takeMoney(p, ac_.getInternalName()); + // true -> player has item already or just bought it successfully + return true; + } + } + return false; + } + + public boolean buyByInternalName(final Player p, final String item_name) + { + for (final String ac : this.shopitems.keySet()) + { + final ShopItem ac_ = this.shopitems.get(ac); + if (ac_.getInternalName().equalsIgnoreCase(ChatColor.stripColor(item_name))) + { + this.takeMoney(p, ac_.getInternalName()); + // true -> player has item already or just bought it successfully + return true; + } + } + return false; + } + + public boolean hasItemBought(final String p, final String item) + { + return this.pli.getShopConfig().getConfig().isSet("players.bought." + p + "." + item); + } + + public boolean requiresMoney(final String item) + { + return this.pli.getShopConfig().getConfig().getBoolean("config.shop_items." + item + ".requires_money"); + } + + public boolean takeMoney(final Player p, final String item) + { + MinigamesAPI.getAPI(); + if (!MinigamesAPI.economy) + { + this.plugin.getLogger().warning("Economy is turned OFF. Turn it ON in the config."); + return false; + } + if (!this.requiresMoney(item)) + { + return false; + } + if (MinigamesAPI.economy) + { + final ShopConfig shopConfig = this.pli.getShopConfig(); + if (!shopConfig.getConfig().isSet("players.bought." + p.getName() + "." + item)) + { + final int money = shopConfig.getConfig().getInt("config.shop_items." + item + ".money_amount"); + MinigamesAPI.getAPI(); + if (MinigamesAPI.econ.getBalance(p.getName()) >= money) + { + MinigamesAPI.getAPI(); + final EconomyResponse r = MinigamesAPI.econ.withdrawPlayer(p.getName(), money); + if (!r.transactionSuccess()) + { + p.sendMessage(String.format("An error occured: %s", r.errorMessage)); + return false; + } + shopConfig.getConfig().set("players.bought." + p.getName() + "." + item, true); + shopConfig.saveConfig(); + p.sendMessage( + this.pli.getMessagesConfig().successfully_bought_shopitem.replaceAll("<shopitem>", this.shopitems.get(item).getName()).replaceAll("<money>", Integer.toString(money))); + } + else + { + p.sendMessage(this.pli.getMessagesConfig().not_enough_money); + return false; + } + } + else + { + p.sendMessage(this.pli.getMessagesConfig().already_bought_shopitem.replaceAll("<shopitem>", this.shopitems.get(item).getName())); + return true; + } + return true; + } + else + { + return false; + } + + } + + public void giveShopItems(final Player p) + { + for (final ShopItem ac : this.shopitems.values()) + { + if (ac.usesItems(this.pli)) + { + for (final ItemStack i : ac.getItems()) + { + p.getInventory().addItem(i); + } + p.updateInventory(); + } + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 5f3c8f76..45e18210 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.io.EOFException; @@ -33,320 +47,408 @@ import com.comze_instancelabs.minigamesapi.util.SmartArenaBlock; import com.comze_instancelabs.minigamesapi.util.Util; -public class SmartReset implements Runnable { - - // will only reset broken/placed blocks - - HashMap<Location, SmartArenaBlock> changed = new HashMap<Location, SmartArenaBlock>(); - - Arena a; - private ArrayList<SmartArenaBlock> failedblocks = new ArrayList<SmartArenaBlock>(); - long time = 0L; - - public SmartReset(Arena a) { - this.a = a; - } - - public SmartArenaBlock addChanged(Block b) { - if (!changed.containsKey(b.getLocation())) { - SmartArenaBlock sablock = new SmartArenaBlock(b, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - changed.put(b.getLocation(), sablock); - return sablock; - } - return null; - } - - public SmartArenaBlock addChanged(Block b, boolean c) { - if (!changed.containsKey(b.getLocation())) { - SmartArenaBlock sablock = new SmartArenaBlock(b, c, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - changed.put(b.getLocation(), sablock); - return sablock; - } - return null; - } - - public SmartArenaBlock addChanged(Block b, boolean c, ChangeCause cause) { - if (!changed.containsKey(b.getLocation())) { - SmartArenaBlock sablock = new SmartArenaBlock(b, c, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - changed.put(b.getLocation(), sablock); - return sablock; - } - return null; - } - - @Deprecated - public void addChanged(Location l) { - if (!changed.containsKey(l)) { - changed.put(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); - } - } - - public void addChanged(Location l, Material m, byte data) { - if (!changed.containsKey(l)) { - changed.put(l, new SmartArenaBlock(l, m, data)); - } - } - - public void run() { - int rolledBack = 0; - - // Rollback 70 blocks at a time - Iterator<Entry<Location, SmartArenaBlock>> it = changed.entrySet().iterator(); - while (it.hasNext() && rolledBack <= 70) { - SmartArenaBlock ablock = it.next().getValue(); - - try { - resetSmartResetBlock(ablock); - it.remove(); - } catch (Exception e) { - failedblocks.add(ablock); - } - - rolledBack++; - } - - if (changed.size() != 0) { - Bukkit.getScheduler().runTaskLater(a.getPlugin(), this, 2L); - return; - } - - a.setArenaState(ArenaState.JOIN); - Util.updateSign(a.getPlugin(), a); - - ArenaLogger.debug(failedblocks.size() + " to redo."); - - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - changed.clear(); - for (SmartArenaBlock ablock : failedblocks) { - Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); - if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) { - b_.setType(ablock.getMaterial()); - b_.setData(ablock.getData()); - } - if (b_.getType() == Material.CHEST) { - b_.setType(ablock.getMaterial()); - b_.setData(ablock.getData()); - ((Chest) b_.getState()).getInventory().setContents(ablock.getInventory()); - ((Chest) b_.getState()).update(); - } - } - } - }, 25L); - - ArenaLogger.debug("Reset time: " + (System.currentTimeMillis() - time) + "ms"); - } - - /** - * Resets all changed blocks in tasks each 70 blocks - */ - public void reset() { - time = System.currentTimeMillis(); - a.getPlugin().getLogger().info(changed.size() + " to reset for arena " + a.getInternalName() + "."); - Bukkit.getScheduler().runTask(a.getPlugin(), this); - } - - /** - * Resets the raw changed blocks on the main thread - */ - public void resetRaw() { - for (final SmartArenaBlock ablock : changed.values()) { - try { - resetSmartResetBlock(ablock); - } catch (Exception e) { - a.setArenaState(ArenaState.JOIN); - Util.updateSign(a.getPlugin(), a); - } - } - - changed.clear(); - a.setArenaState(ArenaState.JOIN); - Util.updateSign(a.getPlugin(), a); - } - - public void resetSmartResetBlock(SmartArenaBlock ablock) { - final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); - if (b_.getType() == Material.FURNACE) { - ((Furnace) b_.getState()).getInventory().clear(); - ((Furnace) b_.getState()).update(); - } - if (b_.getType() == Material.CHEST) { - ((Chest) b_.getState()).getBlockInventory().clear(); - ((Chest) b_.getState()).update(); - } - if (b_.getType() == Material.DISPENSER) { - ((Dispenser) b_.getState()).getInventory().clear(); - ((Dispenser) b_.getState()).update(); - } - if (b_.getType() == Material.DROPPER) { - ((Dropper) b_.getState()).getInventory().clear(); - ((Dropper) b_.getState()).update(); - } - if (b_.getType() == Material.BREWING_STAND) { - ((BrewingStand) b_.getState()).getInventory().clear(); - ((BrewingStand) b_.getState()).update(); - } - if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) { - b_.setType(ablock.getMaterial()); - b_.setData(ablock.getData()); - } - if (b_.getType() == Material.CHEST) { - if (ablock.isDoubleChest()) { - DoubleChest dc = ablock.getDoubleChest(); - HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); - for (Integer i : chestinv.keySet()) { - ItemStack item = chestinv.get(i); - if (item != null) { - dc.getInventory().setItem(i, item); - } - } - ((Chest) b_.getState()).update(); - return; - } - ((Chest) b_.getState()).getBlockInventory().clear(); - ((Chest) b_.getState()).update(); - HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); - for (Integer i : chestinv.keySet()) { - ItemStack item = chestinv.get(i); - if (item != null) { - if (i < 27) { - ((Chest) b_.getState()).getBlockInventory().setItem(i, item); - } - } - } - ((Chest) b_.getState()).update(); - } - if (b_.getType() == Material.DISPENSER) { - Dispenser d = (Dispenser) b_.getState(); - d.getInventory().clear(); - HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); - for (Integer i : chestinv.keySet()) { - ItemStack item = chestinv.get(i); - if (item != null) { - if (i < 9) { - d.getInventory().setItem(i, item); - } - } - } - d.getInventory().setContents(ablock.getInventory()); - d.update(); - } - if (b_.getType() == Material.DROPPER) { - Dropper d = (Dropper) b_.getState(); - d.getInventory().clear(); - HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); - for (Integer i : chestinv.keySet()) { - ItemStack item = chestinv.get(i); - if (item != null) { - if (i < 9) { - d.getInventory().setItem(i, item); - } - } - } - d.update(); - } - if (b_.getType() == Material.WALL_SIGN || b_.getType() == Material.SIGN_POST) { - Sign sign = (Sign) b_.getState(); - if (sign != null) { - int i = 0; - for (String line : ablock.getSignLines()) { - sign.setLine(i, line); - i++; - if (i > 3) { - break; - } - } - sign.update(); - } - } - if (b_.getType() == Material.SKULL) { - b_.setData((byte) 0x1); - b_.getState().setType(Material.SKULL); - if (b_.getState() instanceof Skull) { - Skull s = (Skull) b_.getState(); - s.setSkullType(SkullType.PLAYER); - s.setOwner(ablock.getSkullOwner()); - s.setRotation(ablock.getSkullORotation()); - s.update(); - } - } - } - - public void saveSmartBlocksToFile() { - File f = new File(a.getPlugin().getDataFolder() + "/" + a.getInternalName() + "_smart"); - - FileOutputStream fos; - ObjectOutputStream oos = null; - try { - fos = new FileOutputStream(f); - oos = new BukkitObjectOutputStream(fos); - } catch (IOException e) { - e.printStackTrace(); - } - - for (SmartArenaBlock bl : changed.values()) { - try { - oos.writeObject(bl); - } catch (IOException e) { - System.out.println(e.getMessage()); - } - } - - try { - oos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - MinigamesAPI.getAPI().getLogger().info("Saved SmartBlocks of " + a.getInternalName()); - } - - public void loadSmartBlocksFromFile() { - File f = new File(a.getPlugin().getDataFolder() + "/" + a.getInternalName() + "_smart"); - if (!f.exists()) { - return; - } - FileInputStream fis = null; - BukkitObjectInputStream ois = null; - try { - fis = new FileInputStream(f); - ois = new BukkitObjectInputStream(fis); - } catch (IOException e) { - e.printStackTrace(); - } - - try { - while (true) { - Object b = null; - try { - b = ois.readObject(); - } catch (EOFException e) { - MinigamesAPI.getAPI().getLogger().info("Finished restoring SmartReset blocks for " + a.getInternalName() + "."); - } catch (ClosedChannelException e) { - System.out.println("Something is wrong with your SmartReset file and the reset might not be successful."); - } - - if (b != null) { - SmartArenaBlock ablock = (SmartArenaBlock) b; - this.resetSmartResetBlock(ablock); - } else { - break; - } - } - } catch (IOException e) { - e.printStackTrace(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - - try { - ois.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - if (f.exists()) { - f.delete(); - } - } +public class SmartReset implements Runnable +{ + + // will only reset broken/placed blocks + + HashMap<Location, SmartArenaBlock> changed = new HashMap<>(); + + Arena a; + private final ArrayList<SmartArenaBlock> failedblocks = new ArrayList<>(); + long time = 0L; + + public SmartReset(final Arena a) + { + this.a = a; + } + + public SmartArenaBlock addChanged(final Block b) + { + if (!this.changed.containsKey(b.getLocation())) + { + final SmartArenaBlock sablock = new SmartArenaBlock(b, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); + this.changed.put(b.getLocation(), sablock); + return sablock; + } + return null; + } + + public SmartArenaBlock addChanged(final Block b, final boolean c) + { + if (!this.changed.containsKey(b.getLocation())) + { + final SmartArenaBlock sablock = new SmartArenaBlock(b, c, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); + this.changed.put(b.getLocation(), sablock); + return sablock; + } + return null; + } + + public SmartArenaBlock addChanged(final Block b, final boolean c, final ChangeCause cause) + { + if (!this.changed.containsKey(b.getLocation())) + { + final SmartArenaBlock sablock = new SmartArenaBlock(b, c, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); + this.changed.put(b.getLocation(), sablock); + return sablock; + } + return null; + } + + @Deprecated + public void addChanged(final Location l) + { + if (!this.changed.containsKey(l)) + { + this.changed.put(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); + } + } + + public void addChanged(final Location l, final Material m, final byte data) + { + if (!this.changed.containsKey(l)) + { + this.changed.put(l, new SmartArenaBlock(l, m, data)); + } + } + + @Override + public void run() + { + int rolledBack = 0; + + // Rollback 70 blocks at a time + final Iterator<Entry<Location, SmartArenaBlock>> it = this.changed.entrySet().iterator(); + while (it.hasNext() && rolledBack <= 70) + { + final SmartArenaBlock ablock = it.next().getValue(); + + try + { + this.resetSmartResetBlock(ablock); + it.remove(); + } + catch (final Exception e) + { + this.failedblocks.add(ablock); + } + + rolledBack++; + } + + if (this.changed.size() != 0) + { + Bukkit.getScheduler().runTaskLater(this.a.getPlugin(), this, 2L); + return; + } + + this.a.setArenaState(ArenaState.JOIN); + Util.updateSign(this.a.getPlugin(), this.a); + + ArenaLogger.debug(this.failedblocks.size() + " to redo."); + + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(MinigamesAPI.getAPI(), () -> { + SmartReset.this.changed.clear(); + for (final SmartArenaBlock ablock : SmartReset.this.failedblocks) + { + final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); + if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) + { + b_.setType(ablock.getMaterial()); + b_.setData(ablock.getData()); + } + if (b_.getType() == Material.CHEST) + { + b_.setType(ablock.getMaterial()); + b_.setData(ablock.getData()); + ((Chest) b_.getState()).getInventory().setContents(ablock.getInventory()); + ((Chest) b_.getState()).update(); + } + } + }, 25L); + + ArenaLogger.debug("Reset time: " + (System.currentTimeMillis() - this.time) + "ms"); + } + + /** + * Resets all changed blocks in tasks each 70 blocks + */ + public void reset() + { + this.time = System.currentTimeMillis(); + this.a.getPlugin().getLogger().info(this.changed.size() + " to reset for arena " + this.a.getInternalName() + "."); + Bukkit.getScheduler().runTask(this.a.getPlugin(), this); + } + + /** + * Resets the raw changed blocks on the main thread + */ + public void resetRaw() + { + for (final SmartArenaBlock ablock : this.changed.values()) + { + try + { + this.resetSmartResetBlock(ablock); + } + catch (final Exception e) + { + this.a.setArenaState(ArenaState.JOIN); + Util.updateSign(this.a.getPlugin(), this.a); + } + } + + this.changed.clear(); + this.a.setArenaState(ArenaState.JOIN); + Util.updateSign(this.a.getPlugin(), this.a); + } + + public void resetSmartResetBlock(final SmartArenaBlock ablock) + { + final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); + if (b_.getType() == Material.FURNACE) + { + ((Furnace) b_.getState()).getInventory().clear(); + ((Furnace) b_.getState()).update(); + } + if (b_.getType() == Material.CHEST) + { + ((Chest) b_.getState()).getBlockInventory().clear(); + ((Chest) b_.getState()).update(); + } + if (b_.getType() == Material.DISPENSER) + { + ((Dispenser) b_.getState()).getInventory().clear(); + ((Dispenser) b_.getState()).update(); + } + if (b_.getType() == Material.DROPPER) + { + ((Dropper) b_.getState()).getInventory().clear(); + ((Dropper) b_.getState()).update(); + } + if (b_.getType() == Material.BREWING_STAND) + { + ((BrewingStand) b_.getState()).getInventory().clear(); + ((BrewingStand) b_.getState()).update(); + } + if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) + { + b_.setType(ablock.getMaterial()); + b_.setData(ablock.getData()); + } + if (b_.getType() == Material.CHEST) + { + if (ablock.isDoubleChest()) + { + final DoubleChest dc = ablock.getDoubleChest(); + final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); + for (final Integer i : chestinv.keySet()) + { + final ItemStack item = chestinv.get(i); + if (item != null) + { + dc.getInventory().setItem(i, item); + } + } + ((Chest) b_.getState()).update(); + return; + } + ((Chest) b_.getState()).getBlockInventory().clear(); + ((Chest) b_.getState()).update(); + final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); + for (final Integer i : chestinv.keySet()) + { + final ItemStack item = chestinv.get(i); + if (item != null) + { + if (i < 27) + { + ((Chest) b_.getState()).getBlockInventory().setItem(i, item); + } + } + } + ((Chest) b_.getState()).update(); + } + if (b_.getType() == Material.DISPENSER) + { + final Dispenser d = (Dispenser) b_.getState(); + d.getInventory().clear(); + final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); + for (final Integer i : chestinv.keySet()) + { + final ItemStack item = chestinv.get(i); + if (item != null) + { + if (i < 9) + { + d.getInventory().setItem(i, item); + } + } + } + d.getInventory().setContents(ablock.getInventory()); + d.update(); + } + if (b_.getType() == Material.DROPPER) + { + final Dropper d = (Dropper) b_.getState(); + d.getInventory().clear(); + final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); + for (final Integer i : chestinv.keySet()) + { + final ItemStack item = chestinv.get(i); + if (item != null) + { + if (i < 9) + { + d.getInventory().setItem(i, item); + } + } + } + d.update(); + } + if (b_.getType() == Material.WALL_SIGN || b_.getType() == Material.SIGN_POST) + { + final Sign sign = (Sign) b_.getState(); + if (sign != null) + { + int i = 0; + for (final String line : ablock.getSignLines()) + { + sign.setLine(i, line); + i++; + if (i > 3) + { + break; + } + } + sign.update(); + } + } + if (b_.getType() == Material.SKULL) + { + b_.setData((byte) 0x1); + b_.getState().setType(Material.SKULL); + if (b_.getState() instanceof Skull) + { + final Skull s = (Skull) b_.getState(); + s.setSkullType(SkullType.PLAYER); + s.setOwner(ablock.getSkullOwner()); + s.setRotation(ablock.getSkullORotation()); + s.update(); + } + } + } + + public void saveSmartBlocksToFile() + { + final File f = new File(this.a.getPlugin().getDataFolder() + "/" + this.a.getInternalName() + "_smart"); + + FileOutputStream fos; + ObjectOutputStream oos = null; + try + { + fos = new FileOutputStream(f); + oos = new BukkitObjectOutputStream(fos); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + for (final SmartArenaBlock bl : this.changed.values()) + { + try + { + oos.writeObject(bl); + } + catch (final IOException e) + { + System.out.println(e.getMessage()); + } + } + + try + { + oos.close(); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + MinigamesAPI.getAPI().getLogger().info("Saved SmartBlocks of " + this.a.getInternalName()); + } + + public void loadSmartBlocksFromFile() + { + final File f = new File(this.a.getPlugin().getDataFolder() + "/" + this.a.getInternalName() + "_smart"); + if (!f.exists()) + { + return; + } + FileInputStream fis = null; + BukkitObjectInputStream ois = null; + try + { + fis = new FileInputStream(f); + ois = new BukkitObjectInputStream(fis); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + try + { + while (true) + { + Object b = null; + try + { + b = ois.readObject(); + } + catch (final EOFException e) + { + MinigamesAPI.getAPI().getLogger().info("Finished restoring SmartReset blocks for " + this.a.getInternalName() + "."); + } + catch (final ClosedChannelException e) + { + System.out.println("Something is wrong with your SmartReset file and the reset might not be successful."); + } + + if (b != null) + { + final SmartArenaBlock ablock = (SmartArenaBlock) b; + this.resetSmartResetBlock(ablock); + } + else + { + break; + } + } + } + catch (final IOException e) + { + e.printStackTrace(); + } + catch (final ClassNotFoundException e) + { + e.printStackTrace(); + } + + try + { + ois.close(); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + if (f.exists()) + { + f.delete(); + } + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java index d99139fb..055b931e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; @@ -17,147 +31,186 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class SpectatorManager { - - JavaPlugin plugin; - private HashMap<String, IconMenu> lasticonm = new HashMap<String, IconMenu>(); - - public SpectatorManager(JavaPlugin plugin) { - this.plugin = plugin; - this.setup(); - } - - public void setup() { - if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators") == null) { - Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("spectators"); - } - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").setCanSeeFriendlyInvisibles(true); - clear(); - } - - public void setSpectate(Player p, boolean spectate) { - try { - if (spectate) { - p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 9999999, 5), true); - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").addPlayer(p); - } else { - if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p)) { - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").removePlayer(p); - p.removePotionEffect(PotionEffectType.INVISIBILITY); - } - } - } catch (Exception e) { - } - } - - @Deprecated - public static boolean isSpectating(Player p) { - return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); - } - - private void clear() { - Team t = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators"); - ArrayList<OfflinePlayer> offp_set = new ArrayList<OfflinePlayer>(t.getPlayers()); - for (OfflinePlayer offp : offp_set) { - t.removePlayer(offp); - - } - } - - public void openSpectatorGUI(final Player p, Arena a) { - IconMenu iconm; - int mincount = a.getAllPlayers().size(); - if (lasticonm.containsKey(p.getName())) { - iconm = lasticonm.get(p.getName()); - } else { - iconm = new IconMenu(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().spectator_item, (9 > mincount - 1) ? 9 : Math.round(mincount / 9) * 9 + 9, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - if (event.getPlayer().getName().equalsIgnoreCase(p.getName())) { - String d = event.getName(); - Player p = event.getPlayer(); - - Player p_ = Bukkit.getPlayer(d); - if (p_ != null && p != null) { - Util.teleportPlayerFixed(p, new Location(p.getWorld(), p_.getLocation().getX(), p.getLocation().getY(), p_.getLocation().getZ())); - } - } - event.setWillClose(true); - } - }, plugin); - } - - iconm.clear(); - - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - int c = 0; - for (String p__ : a.getAllPlayers()) { - Player p_ = Bukkit.getPlayer(p__); - if (p_ != null) { - if (pli.global_players.containsKey(p__) && !pli.global_lost.containsKey(p__)) { - if (a.getInternalName().equalsIgnoreCase(pli.global_players.get(p__).getInternalName())) { - iconm.setOption(c, Util.getCustomHead(p__), p__, ""); - c++; - } - } - } - } - - iconm.open(p); - lasticonm.put(p.getName(), iconm); - } - - HashMap<String, ArrayList<String>> pspecs = new HashMap<String, ArrayList<String>>(); - HashMap<String, ArrayList<String>> splayers = new HashMap<String, ArrayList<String>>(); - - public void hideSpectator(Player spec, ArrayList<String> players) { - for (String p_ : players) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - spec.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 20*600, 1)); - if (pspecs.containsKey(p_)) { - ArrayList<String> t = pspecs.get(p_); - t.add(spec.getName()); - pspecs.put(p_, t); - } else { - pspecs.put(p_, new ArrayList<String>(Arrays.asList(spec.getName()))); - } - } - } - splayers.put(spec.getName(), players); - } - - public void showSpectator(Player spec) { - if (splayers.containsKey(spec.getName())) { - for (String p_ : splayers.get(spec.getName())) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - if (pspecs.containsKey(p_)) { - ArrayList<String> t = pspecs.get(p_); - t.remove(spec.getName()); - spec.removePotionEffect(PotionEffectType.INVISIBILITY); - pspecs.put(p_, t); - } - } - } - splayers.remove(spec.getName()); - } - } - - public void showSpectators(Player p) { - if (pspecs.containsKey(p.getName())) { - for (String p_ : pspecs.get(p.getName())) { - if (Validator.isPlayerOnline(p_)) { - Player spec = Bukkit.getPlayer(p_); - if (splayers.containsKey(p_)) { - ArrayList<String> t = splayers.get(p_); - t.remove(spec.getName()); - spec.removePotionEffect(PotionEffectType.INVISIBILITY); - splayers.put(p_, t); - } - } - } - pspecs.remove(p.getName()); - } - } +public class SpectatorManager +{ + + JavaPlugin plugin; + private final HashMap<String, IconMenu> lasticonm = new HashMap<>(); + + public SpectatorManager(final JavaPlugin plugin) + { + this.plugin = plugin; + this.setup(); + } + + public void setup() + { + if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators") == null) + { + Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("spectators"); + } + Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").setCanSeeFriendlyInvisibles(true); + this.clear(); + } + + public void setSpectate(final Player p, final boolean spectate) + { + try + { + if (spectate) + { + p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 9999999, 5), true); + Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").addPlayer(p); + } + else + { + if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p)) + { + Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").removePlayer(p); + p.removePotionEffect(PotionEffectType.INVISIBILITY); + } + } + } + catch (final Exception e) + { + // silently ignore + } + } + + @Deprecated + public static boolean isSpectating(final Player p) + { + return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); + } + + private void clear() + { + final Team t = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators"); + final ArrayList<OfflinePlayer> offp_set = new ArrayList<>(t.getPlayers()); + for (final OfflinePlayer offp : offp_set) + { + t.removePlayer(offp); + + } + } + + public void openSpectatorGUI(final Player p, final Arena a) + { + IconMenu iconm; + final int mincount = a.getAllPlayers().size(); + if (this.lasticonm.containsKey(p.getName())) + { + iconm = this.lasticonm.get(p.getName()); + } + else + { + iconm = new IconMenu(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().spectator_item, (9 > mincount - 1) ? 9 : Math.round(mincount / 9) * 9 + 9, event -> { + if (event.getPlayer().getName().equalsIgnoreCase(p.getName())) + { + final String d = event.getName(); + final Player p1 = event.getPlayer(); + + final Player p_ = Bukkit.getPlayer(d); + if (p_ != null && p1 != null) + { + Util.teleportPlayerFixed(p1, new Location(p1.getWorld(), p_.getLocation().getX(), p1.getLocation().getY(), p_.getLocation().getZ())); + } + } + event.setWillClose(true); + }, this.plugin); + } + + iconm.clear(); + + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); + int c = 0; + for (final String p__ : a.getAllPlayers()) + { + final Player p_ = Bukkit.getPlayer(p__); + if (p_ != null) + { + if (pli.global_players.containsKey(p__) && !pli.global_lost.containsKey(p__)) + { + if (a.getInternalName().equalsIgnoreCase(pli.global_players.get(p__).getInternalName())) + { + iconm.setOption(c, Util.getCustomHead(p__), p__, ""); + c++; + } + } + } + } + + iconm.open(p); + this.lasticonm.put(p.getName(), iconm); + } + + HashMap<String, ArrayList<String>> pspecs = new HashMap<>(); + HashMap<String, ArrayList<String>> splayers = new HashMap<>(); + + public void hideSpectator(final Player spec, final ArrayList<String> players) + { + for (final String p_ : players) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + spec.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 20 * 600, 1)); + if (this.pspecs.containsKey(p_)) + { + final ArrayList<String> t = this.pspecs.get(p_); + t.add(spec.getName()); + this.pspecs.put(p_, t); + } + else + { + this.pspecs.put(p_, new ArrayList<>(Arrays.asList(spec.getName()))); + } + } + } + this.splayers.put(spec.getName(), players); + } + + public void showSpectator(final Player spec) + { + if (this.splayers.containsKey(spec.getName())) + { + for (final String p_ : this.splayers.get(spec.getName())) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + if (this.pspecs.containsKey(p_)) + { + final ArrayList<String> t = this.pspecs.get(p_); + t.remove(spec.getName()); + spec.removePotionEffect(PotionEffectType.INVISIBILITY); + this.pspecs.put(p_, t); + } + } + } + this.splayers.remove(spec.getName()); + } + } + + public void showSpectators(final Player p) + { + if (this.pspecs.containsKey(p.getName())) + { + for (final String p_ : this.pspecs.get(p.getName())) + { + if (Validator.isPlayerOnline(p_)) + { + final Player spec = Bukkit.getPlayer(p_); + if (this.splayers.containsKey(p_)) + { + final ArrayList<String> t = this.splayers.get(p_); + t.remove(spec.getName()); + spec.removePotionEffect(PotionEffectType.INVISIBILITY); + this.splayers.put(p_, t); + } + } + } + this.pspecs.remove(p.getName()); + } + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java index cf024f6f..71420ca4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; @@ -21,336 +35,406 @@ import com.comze_instancelabs.minigamesapi.config.StatsConfig; import com.comze_instancelabs.minigamesapi.util.Util.ValueComparator; -public class Stats { - - // used for wins and points - // you can get points for pretty much everything in the games, - // but these points are just for top stats, nothing more - - private JavaPlugin plugin = null; - PluginInstance pli = null; - - public ArrayList<String> skullsetup = new ArrayList<String>(); - int stats_kill_points = 2; - int stats_win_points = 10; - - public Stats(PluginInstance pli, JavaPlugin plugin) { - this.plugin = plugin; - reloadVariables(); - this.pli = pli; - } - - public void reloadVariables() { - this.stats_kill_points = plugin.getConfig().getInt("config.stats.points_for_kill"); - this.stats_win_points = plugin.getConfig().getInt("config.stats.points_for_win"); - } - - public void win(String playername, int count) { - addWin(playername); - addPoints(playername, count); - Player p = Bukkit.getPlayer(playername); - if (p != null) { - pli.getSQLInstance().updateWinnerStats(p, count, true); - } else { - if (MinigamesAPI.debug) { - System.out.println("Failed updating SQL Stats as the player is not online anymore!"); - } - } - } - - public void lose(String playername) { - addLose(playername); - Player p = Bukkit.getPlayer(playername); - if (p != null) { - pli.getSQLInstance().updateLoserStats(p); - } else { - if (MinigamesAPI.debug) { - System.out.println("Failed updating SQL Stats as the player is not online anymore!"); - } - } - } - - /** - * Gets called on player join to ensure file stats are up to date (with mysql stats) - * - * @param playername - */ - public void update(String playername) { - if (plugin.getConfig().getBoolean("mysql.enabled")) { - Player p = Bukkit.getPlayer(playername); - String uuid = p.getUniqueId().toString(); - if (pli.getStatsConfig().getConfig().isSet("players." + uuid + ".wins")) { - int wins = getWins(playername); - int sqlwins = pli.getSQLInstance().getWins(p); - setWins(playername, Math.max(wins, sqlwins)); - } - if (pli.getStatsConfig().getConfig().isSet("players." + uuid + ".points")) { - int points = getPoints(playername); - int sqlpoints = pli.getSQLInstance().getPoints(p); - setPoints(playername, Math.max(points, sqlpoints)); - } - } - } - - public void updateSQLKillsDeathsAfter(Player p, Arena a) { - if (!a.getPlugin().isEnabled()) { - System.out.println("Couldn't save Death/Kill SQL stats as the server stopped/restarted."); - return; - } - // Update sql server with kills stats at the end - if (a.temp_kill_count.containsKey(p.getName())) { - if (MinigamesAPI.debug) { - System.out.println(a.temp_kill_count.get(p.getName())); - } - pli.getSQLInstance().updateKillerStats(p, a.temp_kill_count.get(p.getName())); - a.temp_kill_count.remove(p.getName()); - } - // death stats - if (a.temp_death_count.containsKey(p.getName())) { - if (MinigamesAPI.debug) { - System.out.println(a.temp_death_count.get(p.getName())); - } - pli.getSQLInstance().updateDeathStats(p, a.temp_death_count.get(p.getName())); - a.temp_death_count.remove(p.getName()); - } - } - - public void setWins(String playername, int count) { - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - pli.getStatsConfig().getConfig().set("players." + uuid + ".wins", count); - pli.getStatsConfig().saveConfig(); - } - - public void setPoints(String playername, int count) { - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - pli.getStatsConfig().getConfig().set("players." + uuid + ".points", count); - pli.getStatsConfig().saveConfig(); - } - - public void addWin(String playername) { - StatsConfig config = pli.getStatsConfig(); - int temp = 0; - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.getConfig().isSet("players." + uuid + ".wins")) { - temp = config.getConfig().getInt("players." + uuid + ".wins"); - } - temp++; - pli.getArenaAchievements().setAchievementDone(playername, "first_win", false); - if (temp >= 10) { - pli.getArenaAchievements().setAchievementDone(playername, "ten_wins", false); - } - config.getConfig().set("players." + uuid + ".wins", temp); - config.getConfig().set("players." + uuid + ".playername", playername); - config.saveConfig(); - } - - public void addLose(String playername) { - StatsConfig config = pli.getStatsConfig(); - int temp = 0; - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.getConfig().isSet("players." + uuid + ".loses")) { - temp = config.getConfig().getInt("players." + uuid + ".loses"); - } - config.getConfig().set("players." + uuid + ".loses", temp + 1); - config.getConfig().set("players." + uuid + ".playername", playername); - config.saveConfig(); - } - - public void addKill(String playername) { - StatsConfig config = pli.getStatsConfig(); - int temp = 0; - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.getConfig().isSet("players." + uuid + ".kills")) { - temp = config.getConfig().getInt("players." + uuid + ".kills"); - } - temp++; - config.getConfig().set("players." + uuid + ".kills", temp); - config.getConfig().set("players." + uuid + ".playername", playername); - config.saveConfig(); - pli.getArenaAchievements().setAchievementDone(playername, "first_blood", false); - if (temp >= 10 && temp < 100) { - pli.getArenaAchievements().setAchievementDone(playername, "ten_kills", false); - } else if (temp >= 100) { - pli.getArenaAchievements().setAchievementDone(playername, "hundred_kills", false); - } - // Moved to Rewards.java:257 - // pli.getSQLInstance().updateKillerStats(Bukkit.getPlayer(playername)); - } - - public void addDeath(String playername) { - StatsConfig config = pli.getStatsConfig(); - int temp = 0; - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.getConfig().isSet("players." + uuid + ".deaths")) { - temp = config.getConfig().getInt("players." + uuid + ".deaths"); - } - temp++; - config.getConfig().set("players." + uuid + ".deaths", temp); - config.getConfig().set("players." + uuid + ".playername", playername); - config.saveConfig(); - // Moved to Rewards.java:265 - // pli.getSQLInstance().updateDeathStats(Bukkit.getPlayer(playername)); - } - - public void addPoints(String playername, int count) { - StatsConfig config = pli.getStatsConfig(); - int temp = 0; - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.getConfig().isSet("players." + uuid + ".points")) { - temp = config.getConfig().getInt("players." + uuid + ".points"); - } - int temp_ = 0; - if (MinigamesAPI.getAPI().statsglobal.getConfig().isSet("players." + uuid + ".points")) { - temp_ = MinigamesAPI.getAPI().statsglobal.getConfig().getInt("players." + uuid + ".points"); - } else { - temp_ = temp; - } - MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", temp_ + count); - MinigamesAPI.getAPI().statsglobal.saveConfig(); - config.getConfig().set("players." + uuid + ".points", temp + count); - config.saveConfig(); - } - - public int getPoints(String playername) { - FileConfiguration config = pli.getStatsConfig().getConfig(); - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.isSet("players." + uuid + ".points")) { - int points = config.getInt("players." + uuid + ".points"); - return points; - } - return 0; - } - - public int getWins(String playername) { - FileConfiguration config = pli.getStatsConfig().getConfig(); - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.isSet("players." + uuid + ".wins")) { - return config.getInt("players." + uuid + ".wins"); - } - return 0; - } - - public int getLoses(String playername) { - FileConfiguration config = pli.getStatsConfig().getConfig(); - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.isSet("players." + uuid + ".loses")) { - return config.getInt("players." + uuid + ".loses"); - } - return 0; - } - - public int getKills(String playername) { - FileConfiguration config = pli.getStatsConfig().getConfig(); - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.isSet("players." + uuid + ".kills")) { - return config.getInt("players." + uuid + ".kills"); - } - return 0; - } - - public int getDeaths(String playername) { - FileConfiguration config = pli.getStatsConfig().getConfig(); - String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); - if (config.isSet("players." + uuid + ".deaths")) { - return config.getInt("players." + uuid + ".deaths"); - } - return 0; - } - - public TreeMap<String, Double> getTop(int count, boolean wins) { - int c = 0; - String key = "wins"; - if (!wins) { - key = "points"; - } - FileConfiguration config = pli.getStatsConfig().getConfig(); - HashMap<String, Double> pwins = new HashMap<String, Double>(); - if (config.isSet("players.")) { - for (String p : config.getConfigurationSection("players.").getKeys(false)) { - c++; - if (c > 100) { - break; - } - pwins.put(config.getString("players." + p + ".playername"), (double) config.getInt("players." + p + "." + key)); - } - } - ValueComparator bvc = new ValueComparator(pwins); - TreeMap<String, Double> sorted_wins = new TreeMap<String, Double>(bvc); - sorted_wins.putAll(pwins); - return sorted_wins; - } - - public TreeMap<String, Double> getTop() { - FileConfiguration config = pli.getStatsConfig().getConfig(); - HashMap<String, Double> pwins = new HashMap<String, Double>(); - if (config.isSet("players.")) { - for (String p : config.getConfigurationSection("players.").getKeys(false)) { - pwins.put(config.getString("players." + p + ".playername"), (double) config.getInt("players." + p + ".wins")); - } - } - ValueComparator bvc = new ValueComparator(pwins); - TreeMap<String, Double> sorted_wins = new TreeMap<String, Double>(bvc); - sorted_wins.putAll(pwins); - return sorted_wins; - } - - public static ItemStack giveSkull(String name) { - ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); - SkullMeta skullmeta = (SkullMeta) item.getItemMeta(); - skullmeta.setDisplayName(name); - skullmeta.setOwner(name); - item.setItemMeta(skullmeta); - return item; - } - - public void saveSkull(Location t, int count) { - FileConfiguration config = pli.getStatsConfig().getConfig(); - String base = "skulls." + UUID.randomUUID().toString() + "."; - config.set(base + "world", t.getWorld().getName()); - config.set(base + "x", t.getBlockX()); - config.set(base + "y", t.getBlockY()); - config.set(base + "z", t.getBlockZ()); - config.set(base + "pos", count); - BlockState state = t.getBlock().getState(); - if (state instanceof Skull) { - Skull skull_ = (Skull) state; - config.set(base + "dir", skull_.getRotation().toString()); - } else { - config.set(base + "dir", "SELF"); - } - - pli.getStatsConfig().saveConfig(); - } - - /* - * Since Mojangs new public API this seems to be lagging hardcore (and they're disallowing more than 1 connection per minute, gg) - */ - public void updateSkulls() { - TreeMap<String, Double> sorted_wins = getTop(); - FileConfiguration config = pli.getStatsConfig().getConfig(); - if (config.isSet("skulls.")) { - for (String skull : config.getConfigurationSection("skulls.").getKeys(false)) { - String base = "skulls." + skull; - Location t = new Location(Bukkit.getWorld(config.getString(base + ".world")), config.getDouble(base + ".x"), config.getDouble(base + ".y"), config.getDouble(base + ".z")); - t.getBlock().setData((byte) 0x1); - BlockState state = t.getBlock().getState(); - - int pos = config.getInt(base + ".pos"); - String dir = config.getString(base + ".dir"); - - if (state instanceof Skull) { - Skull skull_ = (Skull) state; - skull_.setRotation(BlockFace.valueOf(dir)); - skull_.setSkullType(SkullType.PLAYER); - System.out.println(pos + " " + sorted_wins.keySet().size()); - if (pos <= sorted_wins.keySet().size()) { - String name = (String) sorted_wins.keySet().toArray()[pos - 1]; - skull_.setOwner(name); - System.out.println(name); - } - skull_.update(); - } - } - } - } -} \ No newline at end of file +public class Stats +{ + + // used for wins and points + // you can get points for pretty much everything in the games, + // but these points are just for top stats, nothing more + + private JavaPlugin plugin = null; + PluginInstance pli = null; + + public ArrayList<String> skullsetup = new ArrayList<>(); + int stats_kill_points = 2; + int stats_win_points = 10; + + public Stats(final PluginInstance pli, final JavaPlugin plugin) + { + this.plugin = plugin; + this.reloadVariables(); + this.pli = pli; + } + + public void reloadVariables() + { + this.stats_kill_points = this.plugin.getConfig().getInt("config.stats.points_for_kill"); + this.stats_win_points = this.plugin.getConfig().getInt("config.stats.points_for_win"); + } + + public void win(final String playername, final int count) + { + this.addWin(playername); + this.addPoints(playername, count); + final Player p = Bukkit.getPlayer(playername); + if (p != null) + { + this.pli.getSQLInstance().updateWinnerStats(p, count, true); + } + else + { + if (MinigamesAPI.debug) + { + System.out.println("Failed updating SQL Stats as the player is not online anymore!"); + } + } + } + + public void lose(final String playername) + { + this.addLose(playername); + final Player p = Bukkit.getPlayer(playername); + if (p != null) + { + this.pli.getSQLInstance().updateLoserStats(p); + } + else + { + if (MinigamesAPI.debug) + { + System.out.println("Failed updating SQL Stats as the player is not online anymore!"); + } + } + } + + /** + * Gets called on player join to ensure file stats are up to date (with mysql stats) + * + * @param playername + */ + public void update(final String playername) + { + if (this.plugin.getConfig().getBoolean("mysql.enabled")) + { + final Player p = Bukkit.getPlayer(playername); + final String uuid = p.getUniqueId().toString(); + if (this.pli.getStatsConfig().getConfig().isSet("players." + uuid + ".wins")) + { + final int wins = this.getWins(playername); + final int sqlwins = this.pli.getSQLInstance().getWins(p); + this.setWins(playername, Math.max(wins, sqlwins)); + } + if (this.pli.getStatsConfig().getConfig().isSet("players." + uuid + ".points")) + { + final int points = this.getPoints(playername); + final int sqlpoints = this.pli.getSQLInstance().getPoints(p); + this.setPoints(playername, Math.max(points, sqlpoints)); + } + } + } + + public void updateSQLKillsDeathsAfter(final Player p, final Arena a) + { + if (!a.getPlugin().isEnabled()) + { + System.out.println("Couldn't save Death/Kill SQL stats as the server stopped/restarted."); + return; + } + // Update sql server with kills stats at the end + if (a.temp_kill_count.containsKey(p.getName())) + { + if (MinigamesAPI.debug) + { + System.out.println(a.temp_kill_count.get(p.getName())); + } + this.pli.getSQLInstance().updateKillerStats(p, a.temp_kill_count.get(p.getName())); + a.temp_kill_count.remove(p.getName()); + } + // death stats + if (a.temp_death_count.containsKey(p.getName())) + { + if (MinigamesAPI.debug) + { + System.out.println(a.temp_death_count.get(p.getName())); + } + this.pli.getSQLInstance().updateDeathStats(p, a.temp_death_count.get(p.getName())); + a.temp_death_count.remove(p.getName()); + } + } + + public void setWins(final String playername, final int count) + { + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + this.pli.getStatsConfig().getConfig().set("players." + uuid + ".wins", count); + this.pli.getStatsConfig().saveConfig(); + } + + public void setPoints(final String playername, final int count) + { + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + this.pli.getStatsConfig().getConfig().set("players." + uuid + ".points", count); + this.pli.getStatsConfig().saveConfig(); + } + + public void addWin(final String playername) + { + final StatsConfig config = this.pli.getStatsConfig(); + int temp = 0; + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.getConfig().isSet("players." + uuid + ".wins")) + { + temp = config.getConfig().getInt("players." + uuid + ".wins"); + } + temp++; + this.pli.getArenaAchievements().setAchievementDone(playername, "first_win", false); + if (temp >= 10) + { + this.pli.getArenaAchievements().setAchievementDone(playername, "ten_wins", false); + } + config.getConfig().set("players." + uuid + ".wins", temp); + config.getConfig().set("players." + uuid + ".playername", playername); + config.saveConfig(); + } + + public void addLose(final String playername) + { + final StatsConfig config = this.pli.getStatsConfig(); + int temp = 0; + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.getConfig().isSet("players." + uuid + ".loses")) + { + temp = config.getConfig().getInt("players." + uuid + ".loses"); + } + config.getConfig().set("players." + uuid + ".loses", temp + 1); + config.getConfig().set("players." + uuid + ".playername", playername); + config.saveConfig(); + } + + public void addKill(final String playername) + { + final StatsConfig config = this.pli.getStatsConfig(); + int temp = 0; + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.getConfig().isSet("players." + uuid + ".kills")) + { + temp = config.getConfig().getInt("players." + uuid + ".kills"); + } + temp++; + config.getConfig().set("players." + uuid + ".kills", temp); + config.getConfig().set("players." + uuid + ".playername", playername); + config.saveConfig(); + this.pli.getArenaAchievements().setAchievementDone(playername, "first_blood", false); + if (temp >= 10 && temp < 100) + { + this.pli.getArenaAchievements().setAchievementDone(playername, "ten_kills", false); + } + else if (temp >= 100) + { + this.pli.getArenaAchievements().setAchievementDone(playername, "hundred_kills", false); + } + // Moved to Rewards.java:257 + // pli.getSQLInstance().updateKillerStats(Bukkit.getPlayer(playername)); + } + + public void addDeath(final String playername) + { + final StatsConfig config = this.pli.getStatsConfig(); + int temp = 0; + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.getConfig().isSet("players." + uuid + ".deaths")) + { + temp = config.getConfig().getInt("players." + uuid + ".deaths"); + } + temp++; + config.getConfig().set("players." + uuid + ".deaths", temp); + config.getConfig().set("players." + uuid + ".playername", playername); + config.saveConfig(); + // Moved to Rewards.java:265 + // pli.getSQLInstance().updateDeathStats(Bukkit.getPlayer(playername)); + } + + public void addPoints(final String playername, final int count) + { + final StatsConfig config = this.pli.getStatsConfig(); + int temp = 0; + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.getConfig().isSet("players." + uuid + ".points")) + { + temp = config.getConfig().getInt("players." + uuid + ".points"); + } + int temp_ = 0; + if (MinigamesAPI.getAPI().statsglobal.getConfig().isSet("players." + uuid + ".points")) + { + temp_ = MinigamesAPI.getAPI().statsglobal.getConfig().getInt("players." + uuid + ".points"); + } + else + { + temp_ = temp; + } + MinigamesAPI.getAPI().statsglobal.getConfig().set("players." + uuid + ".points", temp_ + count); + MinigamesAPI.getAPI().statsglobal.saveConfig(); + config.getConfig().set("players." + uuid + ".points", temp + count); + config.saveConfig(); + } + + public int getPoints(final String playername) + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.isSet("players." + uuid + ".points")) + { + final int points = config.getInt("players." + uuid + ".points"); + return points; + } + return 0; + } + + public int getWins(final String playername) + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.isSet("players." + uuid + ".wins")) + { + return config.getInt("players." + uuid + ".wins"); + } + return 0; + } + + public int getLoses(final String playername) + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.isSet("players." + uuid + ".loses")) + { + return config.getInt("players." + uuid + ".loses"); + } + return 0; + } + + public int getKills(final String playername) + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.isSet("players." + uuid + ".kills")) + { + return config.getInt("players." + uuid + ".kills"); + } + return 0; + } + + public int getDeaths(final String playername) + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final String uuid = Bukkit.getPlayer(playername).getUniqueId().toString(); + if (config.isSet("players." + uuid + ".deaths")) + { + return config.getInt("players." + uuid + ".deaths"); + } + return 0; + } + + public TreeMap<String, Double> getTop(final int count, final boolean wins) + { + int c = 0; + String key = "wins"; + if (!wins) + { + key = "points"; + } + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final HashMap<String, Double> pwins = new HashMap<>(); + if (config.isSet("players.")) + { + for (final String p : config.getConfigurationSection("players.").getKeys(false)) + { + c++; + if (c > 100) + { + break; + } + pwins.put(config.getString("players." + p + ".playername"), (double) config.getInt("players." + p + "." + key)); + } + } + final ValueComparator bvc = new ValueComparator(pwins); + final TreeMap<String, Double> sorted_wins = new TreeMap<>(bvc); + sorted_wins.putAll(pwins); + return sorted_wins; + } + + public TreeMap<String, Double> getTop() + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final HashMap<String, Double> pwins = new HashMap<>(); + if (config.isSet("players.")) + { + for (final String p : config.getConfigurationSection("players.").getKeys(false)) + { + pwins.put(config.getString("players." + p + ".playername"), (double) config.getInt("players." + p + ".wins")); + } + } + final ValueComparator bvc = new ValueComparator(pwins); + final TreeMap<String, Double> sorted_wins = new TreeMap<>(bvc); + sorted_wins.putAll(pwins); + return sorted_wins; + } + + public static ItemStack giveSkull(final String name) + { + final ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); + final SkullMeta skullmeta = (SkullMeta) item.getItemMeta(); + skullmeta.setDisplayName(name); + skullmeta.setOwner(name); + item.setItemMeta(skullmeta); + return item; + } + + public void saveSkull(final Location t, final int count) + { + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + final String base = "skulls." + UUID.randomUUID().toString() + "."; + config.set(base + "world", t.getWorld().getName()); + config.set(base + "x", t.getBlockX()); + config.set(base + "y", t.getBlockY()); + config.set(base + "z", t.getBlockZ()); + config.set(base + "pos", count); + final BlockState state = t.getBlock().getState(); + if (state instanceof Skull) + { + final Skull skull_ = (Skull) state; + config.set(base + "dir", skull_.getRotation().toString()); + } + else + { + config.set(base + "dir", "SELF"); + } + + this.pli.getStatsConfig().saveConfig(); + } + + /* + * Since Mojangs new public API this seems to be lagging hardcore (and they're disallowing more than 1 connection per minute, gg) + */ + public void updateSkulls() + { + final TreeMap<String, Double> sorted_wins = this.getTop(); + final FileConfiguration config = this.pli.getStatsConfig().getConfig(); + if (config.isSet("skulls.")) + { + for (final String skull : config.getConfigurationSection("skulls.").getKeys(false)) + { + final String base = "skulls." + skull; + final Location t = new Location(Bukkit.getWorld(config.getString(base + ".world")), config.getDouble(base + ".x"), config.getDouble(base + ".y"), config.getDouble(base + ".z")); + t.getBlock().setData((byte) 0x1); + final BlockState state = t.getBlock().getState(); + + final int pos = config.getInt(base + ".pos"); + final String dir = config.getString(base + ".dir"); + + if (state instanceof Skull) + { + final Skull skull_ = (Skull) state; + skull_.setRotation(BlockFace.valueOf(dir)); + skull_.setSkullType(SkullType.PLAYER); + System.out.println(pos + " " + sorted_wins.keySet().size()); + if (pos <= sorted_wins.keySet().size()) + { + final String name = (String) sorted_wins.keySet().toArray()[pos - 1]; + skull_.setOwner(name); + System.out.println(name); + } + skull_.update(); + } + } + } + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/AAchievement.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/AAchievement.java index 7f00d857..8d1d9def 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/AAchievement.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/AAchievement.java @@ -1,26 +1,45 @@ -package com.comze_instancelabs.minigamesapi.achievements; - -public class AAchievement { - - String name; - boolean done; - String playername; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - public AAchievement(String name, String playername, boolean done) { - this.name = name; - this.playername = playername; - this.done = done; - } + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - public boolean isDone() { - return done; - } - - public void setDone(boolean t) { - this.done = t; - } + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.achievements; - public String getAchievementNameRaw() { - return name; - } +public class AAchievement +{ + + String name; + boolean done; + String playername; + + public AAchievement(final String name, final String playername, final boolean done) + { + this.name = name; + this.playername = playername; + this.done = done; + } + + public boolean isDone() + { + return this.done; + } + + public void setDone(final boolean t) + { + this.done = t; + } + + public String getAchievementNameRaw() + { + return this.name; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java index 1591f9e9..1c76c4f0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.achievements; import java.util.ArrayList; @@ -13,104 +27,130 @@ import com.comze_instancelabs.minigamesapi.PluginInstance; import com.comze_instancelabs.minigamesapi.util.IconMenu; -public class ArenaAchievements { - - JavaPlugin plugin; - PluginInstance pli; - public HashMap<String, IconMenu> lasticonm = new HashMap<String, IconMenu>(); - - public ArenaAchievements(PluginInstance pli, JavaPlugin plugin) { - this.plugin = plugin; - this.pli = pli; - } - - public void openGUI(final String p, boolean sql) { - IconMenu iconm; - ArrayList<AAchievement> alist = loadPlayerAchievements(p, sql); - int mincount = alist.size(); - if (lasticonm.containsKey(p)) { - iconm = lasticonm.get(p); - } else { - iconm = new IconMenu(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().achievement_item, (9 > mincount - 1) ? 9 * 1 : Math.round(mincount / 9) * 9 + 9, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - event.setWillClose(true); - } - }, plugin); - } - - int c = 0; - for (AAchievement aa : alist) { - ItemStack icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 14); - if (aa.isDone()) { - icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 5); - } - iconm.setOption(c, icon, ChatColor.translateAlternateColorCodes('&', pli.getAchievementsConfig().getConfig().getString("config.achievements." + aa.getAchievementNameRaw() + ".name")), "Done: " + aa.isDone()); - c++; - } - - iconm.open(Bukkit.getPlayerExact(p)); - lasticonm.put(p, iconm); - } - - public ArrayList<AAchievement> loadPlayerAchievements(String playername, boolean sql) { - ArrayList<AAchievement> ret = new ArrayList<AAchievement>(); - if (sql) { - // TODO MySQL Support - } else { - for (String achievement : pli.getAchievementsConfig().getConfig().getConfigurationSection("config.achievements").getKeys(false)) { - AAchievement ac = new AAchievement(achievement, playername, pli.getAchievementsConfig().getConfig().isSet("players." + playername + "." + achievement + ".done") ? pli.getAchievementsConfig().getConfig().getBoolean("players." + playername + "." + achievement + ".done") : false); - ret.add(ac); - } - } - return ret; - } - - public void setAchievementDone(String playername, String achievement, boolean sql) { - if (sql) { - // TODO - } else { - if (!pli.getAchievementsConfig().getConfig().isSet("players." + playername + "." + achievement + ".done")) { - pli.getAchievementsConfig().getConfig().set("players." + playername + "." + achievement + ".done", true); - pli.getAchievementsConfig().saveConfig(); - ArrayList<AAchievement> alist = loadPlayerAchievements(playername, sql); - boolean allDone = true; - AAchievement a; - for (AAchievement aac : alist) { - if (aac.getAchievementNameRaw().equalsIgnoreCase(achievement)) { - a = aac; - } - if (!aac.isDone() && !aac.getAchievementNameRaw().equalsIgnoreCase("achievement_guy")) { - allDone = false; - } - } - String base = "config.achievements." + achievement; - pli.getRewardsInstance().giveAchievementReward(playername, pli.getAchievementsConfig().getConfig().getBoolean(base + ".reward.economy_reward"), pli.getAchievementsConfig().getConfig().getBoolean(base + ".reward.command_reward"), pli.getAchievementsConfig().getConfig().getInt(base + ".reward.econ_reward_amount"), pli.getAchievementsConfig().getConfig().getString(base + ".reward.cmd")); - Bukkit.getPlayer(playername).sendMessage(pli.getMessagesConfig().you_got_the_achievement.replaceAll("<achievement>", ChatColor.translateAlternateColorCodes('&', pli.getAchievementsConfig().getConfig().getString("config.achievements." + achievement + ".name")))); - - if (allDone) { - setAchievementDone(playername, "achievement_guy", sql); - } - } - } - } - - public void addDefaultAchievement(String internalname, String name, int default_money_reward) { - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".enabled", false); - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".name", name); - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.economy_reward", true); - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.econ_reward_amount", default_money_reward); - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.command_reward", false); - pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.cmd", "tell <player> Good job!"); - } - - public boolean isEnabled() { - return pli.getAchievementsConfig().getConfig().getBoolean("config.enabled"); - } - - public void setEnabled(boolean t) { - pli.getAchievementsConfig().getConfig().set("config.enabled", t); - pli.getAchievementsConfig().saveConfig(); - } - +public class ArenaAchievements +{ + + JavaPlugin plugin; + PluginInstance pli; + public HashMap<String, IconMenu> lasticonm = new HashMap<>(); + + public ArenaAchievements(final PluginInstance pli, final JavaPlugin plugin) + { + this.plugin = plugin; + this.pli = pli; + } + + public void openGUI(final String p, final boolean sql) + { + IconMenu iconm; + final ArrayList<AAchievement> alist = this.loadPlayerAchievements(p, sql); + final int mincount = alist.size(); + if (this.lasticonm.containsKey(p)) + { + iconm = this.lasticonm.get(p); + } + else + { + iconm = new IconMenu(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().achievement_item, (9 > mincount - 1) ? 9 * 1 : Math.round(mincount / 9) * 9 + 9, + event -> event.setWillClose(true), this.plugin); + } + + int c = 0; + for (final AAchievement aa : alist) + { + ItemStack icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 14); + if (aa.isDone()) + { + icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 5); + } + iconm.setOption(c, icon, ChatColor.translateAlternateColorCodes('&', this.pli.getAchievementsConfig().getConfig().getString("config.achievements." + aa.getAchievementNameRaw() + ".name")), + "Done: " + aa.isDone()); + c++; + } + + iconm.open(Bukkit.getPlayerExact(p)); + this.lasticonm.put(p, iconm); + } + + public ArrayList<AAchievement> loadPlayerAchievements(final String playername, final boolean sql) + { + final ArrayList<AAchievement> ret = new ArrayList<>(); + if (sql) + { + // TODO MySQL Support + } + else + { + for (final String achievement : this.pli.getAchievementsConfig().getConfig().getConfigurationSection("config.achievements").getKeys(false)) + { + final AAchievement ac = new AAchievement(achievement, playername, this.pli.getAchievementsConfig().getConfig().isSet("players." + playername + "." + achievement + ".done") + ? this.pli.getAchievementsConfig().getConfig().getBoolean("players." + playername + "." + achievement + ".done") : false); + ret.add(ac); + } + } + return ret; + } + + public void setAchievementDone(final String playername, final String achievement, final boolean sql) + { + if (sql) + { + // TODO + } + else + { + if (!this.pli.getAchievementsConfig().getConfig().isSet("players." + playername + "." + achievement + ".done")) + { + this.pli.getAchievementsConfig().getConfig().set("players." + playername + "." + achievement + ".done", true); + this.pli.getAchievementsConfig().saveConfig(); + final ArrayList<AAchievement> alist = this.loadPlayerAchievements(playername, sql); + boolean allDone = true; + AAchievement a; + for (final AAchievement aac : alist) + { + if (aac.getAchievementNameRaw().equalsIgnoreCase(achievement)) + { + a = aac; + } + if (!aac.isDone() && !aac.getAchievementNameRaw().equalsIgnoreCase("achievement_guy")) + { + allDone = false; + } + } + final String base = "config.achievements." + achievement; + this.pli.getRewardsInstance().giveAchievementReward(playername, this.pli.getAchievementsConfig().getConfig().getBoolean(base + ".reward.economy_reward"), + this.pli.getAchievementsConfig().getConfig().getBoolean(base + ".reward.command_reward"), + this.pli.getAchievementsConfig().getConfig().getInt(base + ".reward.econ_reward_amount"), this.pli.getAchievementsConfig().getConfig().getString(base + ".reward.cmd")); + Bukkit.getPlayer(playername).sendMessage(this.pli.getMessagesConfig().you_got_the_achievement.replaceAll("<achievement>", + ChatColor.translateAlternateColorCodes('&', this.pli.getAchievementsConfig().getConfig().getString("config.achievements." + achievement + ".name")))); + + if (allDone) + { + this.setAchievementDone(playername, "achievement_guy", sql); + } + } + } + } + + public void addDefaultAchievement(final String internalname, final String name, final int default_money_reward) + { + this.pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".enabled", false); + this.pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".name", name); + this.pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.economy_reward", true); + this.pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.econ_reward_amount", default_money_reward); + this.pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.command_reward", false); + this.pli.getAchievementsConfig().getConfig().addDefault("config.achievements." + internalname + ".reward.cmd", "tell <player> Good job!"); + } + + public boolean isEnabled() + { + return this.pli.getAchievementsConfig().getConfig().getBoolean("config.enabled"); + } + + public void setEnabled(final boolean t) + { + this.pli.getAchievementsConfig().getConfig().set("config.enabled", t); + this.pli.getAchievementsConfig().saveConfig(); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java index 38c11c40..163b5f8d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.arcade; import java.util.ArrayList; @@ -15,305 +29,394 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class ArcadeInstance { - - public ArrayList<PluginInstance> minigames = new ArrayList<PluginInstance>(); - int currentindex = 0; - public ArrayList<String> players = new ArrayList<String>(); - Arena arena; - JavaPlugin plugin; - - boolean in_a_game = false; - Arena currentarena = null; - boolean started; - - public ArcadeInstance(JavaPlugin plugin, ArrayList<PluginInstance> minigames, Arena arena) { - this.minigames = minigames; - this.arena = arena; - this.plugin = plugin; - } - - // TODO max 16 players! - public void joinArcade(String playername) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (!players.contains(playername)) { - players.add(playername); - arena.addPlayer(playername); - } - Player p = Bukkit.getPlayer(playername); - if (p == null) { - return; - } - if (players.size() >= plugin.getConfig().getInt("config.arcade.min_players")) { - boolean msg = true; - if (!started) { - startArcade(); - } else { - if (currentindex < minigames.size()) { - if (in_a_game) { - if (currentarena != null) { - if (p != null) { - PluginInstance pli_ = minigames.get(currentindex); - System.out.println(pli_.getPlugin().getName() + " " + currentarena.getInternalName() + " " + p.getName()); - if (currentarena.getArenaState() != ArenaState.INGAME && currentarena.getArenaState() != ArenaState.RESTARTING) { - currentarena.joinPlayerLobby(playername, this, false, true); - } else { - msg = false; - currentarena.spectateArcade(playername); - } - - pli_.scoreboardManager.updateScoreboard(pli_.getPlugin(), currentarena); - } - } - } - } - } - if (msg) { - p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().arcade_joined_waiting.replaceAll("<count>", "0")); - } else { - p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().arcade_joined_spectator); - } - } else { - p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().arcade_joined_waiting.replaceAll("<count>", Integer.toString(plugin.getConfig().getInt("config.arcade.min_players") - players.size()))); - } - } - - public void leaveArcade(final String playername) { - this.leaveArcade(playername, true); - } - - public void leaveArcade(final String playername, boolean endOfGame) { - final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (players.contains(playername)) { - players.remove(playername); - } - if (arena.containsPlayer(playername)) { - arena.removePlayer(playername); - } - if (minigames.get(currentindex).getArenas().size() > 0) { - if (minigames.get(currentindex).getArenas().get(0).containsPlayer(playername)) { - minigames.get(currentindex).getArenas().get(0).leavePlayer(playername, false, false); - } - } - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - Player p = Bukkit.getPlayer(playername); - if (p != null) { - Util.teleportPlayerFixed(p, arena.getMainLobbyTemp()); - pli.getSpectatorManager().setSpectate(p, false); - if (!p.isOp()) { - p.setFlying(false); - p.setAllowFlight(false); - } - } - } - }, 20L); - clean(); - - // This shouldn't be necessary anymore except for arcade spectators - if (pli.containsGlobalPlayer(playername)) { - pli.global_players.remove(playername); - } - if (pli.containsGlobalLost(playername)) { - pli.global_lost.remove(playername); - } - if (currentarena != null) { - PluginInstance pli_ = MinigamesAPI.getAPI().pinstances.get(currentarena.getPlugin()); - if (pli_ != null) { - if (pli_.containsGlobalPlayer(playername)) { - pli_.global_players.remove(playername); - } - if (pli_.containsGlobalLost(playername)) { - pli_.global_lost.remove(playername); - } - } - } - - Util.updateSign(plugin, arena); - - if (endOfGame) { - if (players.size() < 2) { - stopArcade(false); - } - } - } - - int currentlobbycount = 31; - int currenttaskid = 0; - - public void startArcade() { - if (started) { - return; - } - started = true; - Collections.shuffle(minigames); - - currentlobbycount = plugin.getConfig().getInt("config.arcade.lobby_countdown") + 1; - final ArcadeInstance ai = this; - final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - - currenttaskid = Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - currentlobbycount--; - if (currentlobbycount == 60 || currentlobbycount == 30 || currentlobbycount == 15 || currentlobbycount == 10 || currentlobbycount < 6) { - for (String p_ : ai.players) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - p.sendMessage(pli.getMessagesConfig().starting_in.replaceAll("<count>", Integer.toString(currentlobbycount))); - } - } - } - if (currentlobbycount < 1) { - currentindex--; - ai.nextMinigame(); - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - } - } - } - }, 5L, 20).getTaskId(); - } - - public void stopArcade(boolean stopOfGame) { - try { - Bukkit.getScheduler().cancelTask(currenttaskid); - } catch (Exception e) { - - } - final ArrayList<String> temp = new ArrayList<String>(players); - for (String p_ : temp) { - this.leaveArcade(p_, false); - } - players.clear(); - started = false; - in_a_game = false; - currentarena = null; - this.currentindex = 0; - - HashSet hs = new HashSet(); - hs.addAll(temp); - temp.clear(); - temp.addAll(hs); - final ArcadeInstance ai = this; - if (stopOfGame && plugin.getConfig().getBoolean("config.arcade.infinite_mode.enabled")) { - if (temp.size() > 1) { - for (String p_ : temp) { - Util.sendMessage(plugin, Bukkit.getPlayer(p_), MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().arcade_new_round.replaceAll("<count>", Integer.toString(plugin.getConfig().getInt("config.arcade.infinite_mode.seconds_to_new_round")))); - } - Bukkit.getScheduler().runTaskLater(plugin, new Runnable() { - public void run() { - for (String p_ : temp) { - if (!players.contains(p_)) { - players.add(p_); - } - } - ai.startArcade(); - } - }, Math.max(40L, 20L * plugin.getConfig().getInt("config.arcade.infinite_mode.seconds_to_new_round"))); - } - } - } - - public void stopArcade() { - this.stopArcade(false); - } - - public void stopCurrentMinigame() { - if (currentindex < minigames.size()) { - PluginInstance mg = minigames.get(currentindex); - if (mg.getArenas().size() > 0) { - if (mg.getPlugin().getConfig().getBoolean("config.arcade.arena_to_prefer.enabled")) { - String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); - Arena a = mg.getArenaByName(arenaname); - if (a != null) { - a.stopArena(); - } - } else { - minigames.get(currentindex).getArenas().get(0).stopArena(); - } - } - } - } - - public void nextMinigame() { - nextMinigame(30L); - } - - public void nextMinigame(long delay) { - in_a_game = false; - - if (currentindex < minigames.size() - 1) { - currentindex++; - } else { - arena.stopArena(); - // stopArcade(); - return; - } - // System.out.println(delay + " " + currentindex); - final ArcadeInstance ai = this; - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - ArrayList<String> temp = new ArrayList<String>(players); - - PluginInstance mg = minigames.get(currentindex); - if (mg.getPlugin().getConfig().getBoolean("config.arcade.enabled")) { - Arena a = null; - if (mg.getPlugin().getConfig().getBoolean("config.arcade.arena_to_prefer.enabled")) { - String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); - a = mg.getArenaByName(arenaname); - if (a == null) { - for (Arena a_ : mg.getArenas()) { - if (a_.getArenaState() == ArenaState.JOIN || a_.getArenaState() == ArenaState.STARTING) { - a = a_; - break; - } - } - } - } else { - for (Arena a_ : mg.getArenas()) { - if (a_.getArenaState() == ArenaState.JOIN || a_.getArenaState() == ArenaState.STARTING) { - a = a_; - break; - } - } - } - if (a != null) { - in_a_game = true; - currentarena = a; - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - for (String p_ : temp) { - if (Validator.isPlayerOnline(p_)) { - String minigame = mg.getArenaListener().getName(); - if (!a.containsPlayer(p_)) { - Bukkit.getPlayer(p_).sendMessage(mg.getMessagesConfig().arcade_next_minigame.replaceAll("<minigame>", Character.toUpperCase(minigame.charAt(0)) + minigame.substring(1))); - a.joinPlayerLobby(p_, ai, plugin.getConfig().getBoolean("config.arcade.show_each_lobby_countdown"), false); - } - pli.getSpectatorManager().setSpectate(Bukkit.getPlayer(p_), false); - } - } - } else { - nextMinigame(5L); - } - } else { - nextMinigame(5L); - } - } - }, delay); - } - - public void clean() { - ArrayList<String> rem = new ArrayList<String>(); - for (String p_ : this.players) { - if (!Validator.isPlayerOnline(p_)) { - rem.add(p_); - } - } - for (String r : rem) { - if (players.contains(r)) { - players.remove(r); - } - } - } - +public class ArcadeInstance +{ + + public ArrayList<PluginInstance> minigames = new ArrayList<>(); + int currentindex = 0; + public ArrayList<String> players = new ArrayList<>(); + Arena arena; + JavaPlugin plugin; + + boolean in_a_game = false; + Arena currentarena = null; + boolean started; + + public ArcadeInstance(final JavaPlugin plugin, final ArrayList<PluginInstance> minigames, final Arena arena) + { + this.minigames = minigames; + this.arena = arena; + this.plugin = plugin; + } + + // TODO max 16 players! + public void joinArcade(final String playername) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); + if (!this.players.contains(playername)) + { + this.players.add(playername); + this.arena.addPlayer(playername); + } + final Player p = Bukkit.getPlayer(playername); + if (p == null) + { + return; + } + if (this.players.size() >= this.plugin.getConfig().getInt("config.arcade.min_players")) + { + boolean msg = true; + if (!this.started) + { + this.startArcade(); + } + else + { + if (this.currentindex < this.minigames.size()) + { + if (this.in_a_game) + { + if (this.currentarena != null) + { + if (p != null) + { + final PluginInstance pli_ = this.minigames.get(this.currentindex); + System.out.println(pli_.getPlugin().getName() + " " + this.currentarena.getInternalName() + " " + p.getName()); + if (this.currentarena.getArenaState() != ArenaState.INGAME && this.currentarena.getArenaState() != ArenaState.RESTARTING) + { + this.currentarena.joinPlayerLobby(playername, this, false, true); + } + else + { + msg = false; + this.currentarena.spectateArcade(playername); + } + + pli_.scoreboardManager.updateScoreboard(pli_.getPlugin(), this.currentarena); + } + } + } + } + } + if (msg) + { + p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().arcade_joined_waiting.replaceAll("<count>", "0")); + } + else + { + p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().arcade_joined_spectator); + } + } + else + { + p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().arcade_joined_waiting.replaceAll("<count>", + Integer.toString(this.plugin.getConfig().getInt("config.arcade.min_players") - this.players.size()))); + } + } + + public void leaveArcade(final String playername) + { + this.leaveArcade(playername, true); + } + + public void leaveArcade(final String playername, final boolean endOfGame) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); + if (this.players.contains(playername)) + { + this.players.remove(playername); + } + if (this.arena.containsPlayer(playername)) + { + this.arena.removePlayer(playername); + } + if (this.minigames.get(this.currentindex).getArenas().size() > 0) + { + if (this.minigames.get(this.currentindex).getArenas().get(0).containsPlayer(playername)) + { + this.minigames.get(this.currentindex).getArenas().get(0).leavePlayer(playername, false, false); + } + } + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + final Player p = Bukkit.getPlayer(playername); + if (p != null) + { + Util.teleportPlayerFixed(p, ArcadeInstance.this.arena.getMainLobbyTemp()); + pli.getSpectatorManager().setSpectate(p, false); + if (!p.isOp()) + { + p.setFlying(false); + p.setAllowFlight(false); + } + } + }, 20L); + this.clean(); + + // This shouldn't be necessary anymore except for arcade spectators + if (pli.containsGlobalPlayer(playername)) + { + pli.global_players.remove(playername); + } + if (pli.containsGlobalLost(playername)) + { + pli.global_lost.remove(playername); + } + if (this.currentarena != null) + { + MinigamesAPI.getAPI(); + final PluginInstance pli_ = MinigamesAPI.pinstances.get(this.currentarena.getPlugin()); + if (pli_ != null) + { + if (pli_.containsGlobalPlayer(playername)) + { + pli_.global_players.remove(playername); + } + if (pli_.containsGlobalLost(playername)) + { + pli_.global_lost.remove(playername); + } + } + } + + Util.updateSign(this.plugin, this.arena); + + if (endOfGame) + { + if (this.players.size() < 2) + { + this.stopArcade(false); + } + } + } + + int currentlobbycount = 31; + int currenttaskid = 0; + + public void startArcade() + { + if (this.started) + { + return; + } + this.started = true; + Collections.shuffle(this.minigames); + + this.currentlobbycount = this.plugin.getConfig().getInt("config.arcade.lobby_countdown") + 1; + final ArcadeInstance ai = this; + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); + + this.currenttaskid = Bukkit.getScheduler().runTaskTimer(MinigamesAPI.getAPI(), () -> { + ArcadeInstance.this.currentlobbycount--; + if (ArcadeInstance.this.currentlobbycount == 60 || ArcadeInstance.this.currentlobbycount == 30 || ArcadeInstance.this.currentlobbycount == 15 || ArcadeInstance.this.currentlobbycount == 10 + || ArcadeInstance.this.currentlobbycount < 6) + { + for (final String p_ : ai.players) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + p.sendMessage(pli.getMessagesConfig().starting_in.replaceAll("<count>", Integer.toString(ArcadeInstance.this.currentlobbycount))); + } + } + } + if (ArcadeInstance.this.currentlobbycount < 1) + { + ArcadeInstance.this.currentindex--; + ai.nextMinigame(); + try + { + Bukkit.getScheduler().cancelTask(ArcadeInstance.this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + } + }, 5L, 20).getTaskId(); + } + + public void stopArcade(final boolean stopOfGame) + { + try + { + Bukkit.getScheduler().cancelTask(this.currenttaskid); + } + catch (final Exception e) + { + // silently ignore + } + final ArrayList<String> temp = new ArrayList<>(this.players); + for (final String p_ : temp) + { + this.leaveArcade(p_, false); + } + this.players.clear(); + this.started = false; + this.in_a_game = false; + this.currentarena = null; + this.currentindex = 0; + + final HashSet hs = new HashSet(); + hs.addAll(temp); + temp.clear(); + temp.addAll(hs); + final ArcadeInstance ai = this; + if (stopOfGame && this.plugin.getConfig().getBoolean("config.arcade.infinite_mode.enabled")) + { + if (temp.size() > 1) + { + for (final String p_ : temp) + { + Util.sendMessage(this.plugin, Bukkit.getPlayer(p_), MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().arcade_new_round.replaceAll("<count>", + Integer.toString(this.plugin.getConfig().getInt("config.arcade.infinite_mode.seconds_to_new_round")))); + } + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + for (final String p_ : temp) + { + if (!ArcadeInstance.this.players.contains(p_)) + { + ArcadeInstance.this.players.add(p_); + } + } + ai.startArcade(); + }, Math.max(40L, 20L * this.plugin.getConfig().getInt("config.arcade.infinite_mode.seconds_to_new_round"))); + } + } + } + + public void stopArcade() + { + this.stopArcade(false); + } + + public void stopCurrentMinigame() + { + if (this.currentindex < this.minigames.size()) + { + final PluginInstance mg = this.minigames.get(this.currentindex); + if (mg.getArenas().size() > 0) + { + if (mg.getPlugin().getConfig().getBoolean("config.arcade.arena_to_prefer.enabled")) + { + final String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); + final Arena a = mg.getArenaByName(arenaname); + if (a != null) + { + a.stopArena(); + } + } + else + { + this.minigames.get(this.currentindex).getArenas().get(0).stopArena(); + } + } + } + } + + public void nextMinigame() + { + this.nextMinigame(30L); + } + + public void nextMinigame(final long delay) + { + this.in_a_game = false; + + if (this.currentindex < this.minigames.size() - 1) + { + this.currentindex++; + } + else + { + this.arena.stopArena(); + // stopArcade(); + return; + } + // System.out.println(delay + " " + currentindex); + final ArcadeInstance ai = this; + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + final ArrayList<String> temp = new ArrayList<>(ArcadeInstance.this.players); + + final PluginInstance mg = ArcadeInstance.this.minigames.get(ArcadeInstance.this.currentindex); + if (mg.getPlugin().getConfig().getBoolean("config.arcade.enabled")) + { + Arena a = null; + if (mg.getPlugin().getConfig().getBoolean("config.arcade.arena_to_prefer.enabled")) + { + final String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); + a = mg.getArenaByName(arenaname); + if (a == null) + { + for (final Arena a_1 : mg.getArenas()) + { + if (a_1.getArenaState() == ArenaState.JOIN || a_1.getArenaState() == ArenaState.STARTING) + { + a = a_1; + break; + } + } + } + } + else + { + for (final Arena a_2 : mg.getArenas()) + { + if (a_2.getArenaState() == ArenaState.JOIN || a_2.getArenaState() == ArenaState.STARTING) + { + a = a_2; + break; + } + } + } + if (a != null) + { + ArcadeInstance.this.in_a_game = true; + ArcadeInstance.this.currentarena = a; + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(ArcadeInstance.this.plugin); + for (final String p_ : temp) + { + if (Validator.isPlayerOnline(p_)) + { + final String minigame = mg.getArenaListener().getName(); + if (!a.containsPlayer(p_)) + { + Bukkit.getPlayer(p_) + .sendMessage(mg.getMessagesConfig().arcade_next_minigame.replaceAll("<minigame>", Character.toUpperCase(minigame.charAt(0)) + minigame.substring(1))); + a.joinPlayerLobby(p_, ai, ArcadeInstance.this.plugin.getConfig().getBoolean("config.arcade.show_each_lobby_countdown"), false); + } + pli.getSpectatorManager().setSpectate(Bukkit.getPlayer(p_), false); + } + } + } + else + { + ArcadeInstance.this.nextMinigame(5L); + } + } + else + { + ArcadeInstance.this.nextMinigame(5L); + } + }, delay); + } + + public void clean() + { + final ArrayList<String> rem = new ArrayList<>(); + for (final String p_ : this.players) + { + if (!Validator.isPlayerOnline(p_)) + { + rem.add(p_); + } + } + for (final String r : rem) + { + if (this.players.contains(r)) + { + this.players.remove(r); + } + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java index d3cc3184..02b69f2a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.bungee; import java.io.PrintWriter; @@ -8,62 +22,75 @@ import com.comze_instancelabs.minigamesapi.ArenaLogger; import com.comze_instancelabs.minigamesapi.PluginInstance; -public class BungeeSocket { - - // Here sits the lovely MGLib server waiting for requests from our Lobby slaves >:D - // Socket server moved to lobby, dis our slave now :( - - // We're gonna send simple strings like: sign:<minigame>:<arena>:<state>:<players>/<amxplayers> - - public static String signUpdateString(PluginInstance pli, Arena a) { - if (a == null) { - return "sign:" + pli.getPlugin().getName() + ":null:JOIN:0:0"; - } - return "sign:" + pli.getPlugin().getName() + ":" + a.getInternalName() + ":" + a.getArenaState().toString() + ":" + a.getAllPlayers().size() + ":" + a.getMaxPlayers(); - } - - static ArrayList<Integer> portsUp = new ArrayList<Integer>(); - static boolean init = false; - static boolean initializing = false; - - public static void sendSignUpdate(final PluginInstance pli, final Arena a) { - try { - if (init) { - for (int i : portsUp) { - ArenaLogger.debug("Sending to port " + i); - Socket socket = new Socket("127.0.0.1", i); - PrintWriter out = new PrintWriter(socket.getOutputStream(), true); - out.println(signUpdateString(pli, a)); - socket.close(); - } - return; - } - // Of course we'll have lags at the first sign update as we check through 20 ports - if (!initializing) { - initializing = true; - new Thread(new Runnable() { - public void run() { - for (int i = 13380; i < 13400; i++) { - try { - ArenaLogger.debug("Trying port " + i); - Socket socket = new Socket("127.0.0.1", i); - if (socket.isConnected()) { - portsUp.add(i); - } - PrintWriter out = new PrintWriter(socket.getOutputStream(), true); - out.println(signUpdateString(pli, a)); - socket.close(); - } catch (Exception e) { - ArenaLogger.debug("Could not connect to port " + i); - } - } - init = true; - } - }).start(); - } - } catch (Exception e) { - e.printStackTrace(); - } - - } +public class BungeeSocket +{ + + // Here sits the lovely MGLib server waiting for requests from our Lobby slaves >:D + // Socket server moved to lobby, dis our slave now :( + + // We're gonna send simple strings like: sign:<minigame>:<arena>:<state>:<players>/<amxplayers> + + public static String signUpdateString(final PluginInstance pli, final Arena a) + { + if (a == null) + { + return "sign:" + pli.getPlugin().getName() + ":null:JOIN:0:0"; + } + return "sign:" + pli.getPlugin().getName() + ":" + a.getInternalName() + ":" + a.getArenaState().toString() + ":" + a.getAllPlayers().size() + ":" + a.getMaxPlayers(); + } + + static ArrayList<Integer> portsUp = new ArrayList<>(); + static boolean init = false; + static boolean initializing = false; + + public static void sendSignUpdate(final PluginInstance pli, final Arena a) + { + try + { + if (BungeeSocket.init) + { + for (final int i : BungeeSocket.portsUp) + { + ArenaLogger.debug("Sending to port " + i); + final Socket socket = new Socket("127.0.0.1", i); + final PrintWriter out = new PrintWriter(socket.getOutputStream(), true); + out.println(BungeeSocket.signUpdateString(pli, a)); + socket.close(); + } + return; + } + // Of course we'll have lags at the first sign update as we check through 20 ports + if (!BungeeSocket.initializing) + { + BungeeSocket.initializing = true; + new Thread(() -> { + for (int i = 13380; i < 13400; i++) + { + try + { + ArenaLogger.debug("Trying port " + i); + final Socket socket = new Socket("127.0.0.1", i); + if (socket.isConnected()) + { + BungeeSocket.portsUp.add(i); + } + final PrintWriter out = new PrintWriter(socket.getOutputStream(), true); + out.println(BungeeSocket.signUpdateString(pli, a)); + socket.close(); + } + catch (final Exception e) + { + ArenaLogger.debug("Could not connect to port " + i); + } + } + BungeeSocket.init = true; + }).start(); + } + } + catch (final Exception e) + { + e.printStackTrace(); + } + + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 96ce1a76..a323693a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.commands; import java.util.ArrayList; @@ -13,1123 +27,1588 @@ import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaPlayer; import com.comze_instancelabs.minigamesapi.ArenaState; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.Party; import com.comze_instancelabs.minigamesapi.PluginInstance; +import com.comze_instancelabs.minigamesapi.PrivateUtil; +import com.comze_instancelabs.minigamesapi.Stats; import com.comze_instancelabs.minigamesapi.config.HologramsConfig; import com.comze_instancelabs.minigamesapi.util.AClass; import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; -public class CommandHandler { - - /** - * Handles the default commands needed for arena management. - * - * @param uber_permission - * Main setup permission. Example: Skywars.setup - * @param cmd - * The command. Example: /sw - * @param sender - * @param args - * @return - */ - public boolean handleArgs(JavaPlugin plugin, String uber_permission, String cmd, CommandSender sender, String args[]) { - if (args.length > 0) { - if (!(sender instanceof Player)) { - sender.sendMessage("Please execute this command ingame."); - return true; - } - Player p = (Player) sender; - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - String action = args[0]; - if (action.equalsIgnoreCase("setspawn")) { - return this.setSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setspecspawn")) { - return this.setSpecSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setlobby")) { - return this.setLobby(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setmainlobby")) { - return this.setMainLobby(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setbounds")) { - return this.setBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setlobbybounds")) { - return this.setLobbyBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setspecbounds")) { - return this.setSpecBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("savearena") || action.equalsIgnoreCase("save")) { - return this.saveArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setmaxplayers")) { - return this.setMaxPlayers(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setminplayers")) { - return this.setMinPlayers(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setarenavip") || action.equalsIgnoreCase("setvip")) { - return this.setArenaVIP(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("join")) { - return this.joinArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("leave")) { - return this.leaveArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("start")) { - return this.startArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("stop")) { - return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("sings")) { - return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("stopall")) { - return this.stopAllArenas(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("removearena")) { - return this.removeArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("removespawn")) { - return this.removeSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setskull")) { - return this.setSkull(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setenabled")) { - return this.setEnabled(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setshowscoreboard")) { - return this.setShowScoreboard(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("reset")) { - return this.resetArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setauthor")) { - return this.setAuthor(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setdescription")) { - return this.setDescription(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("setdisplayname")) { - return this.setArenaDisplayName(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("kit")) { - return this.setKit(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("spectate")) { - return this.spectate(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("shop")) { - return this.openShop(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("leaderboards") || action.equalsIgnoreCase("lb") || action.equalsIgnoreCase("top")) { - return this.getLeaderboards(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("stats")) { - return this.getStats(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("sethologram")) { - return this.setHologram(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("listholograms")) { - return this.listHolograms(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("removehologram")) { - return this.removeHologram(pli, sender, args, uber_permission, cmd, action, plugin, p); - } else if (action.equalsIgnoreCase("help")) { - sendHelp(cmd, sender); - } else if (action.equalsIgnoreCase("list")) { - sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Arenas" + ChatColor.DARK_GRAY + " -------"); - for (Arena a : pli.getArenas()) { - if (args.length > 1) { - sender.sendMessage(ChatColor.GREEN + a.getInternalName() + "[" + a.getClass().getSimpleName().toString() + "]"); - } else { - sender.sendMessage(ChatColor.GREEN + a.getInternalName()); - } - } - } else if (action.equalsIgnoreCase("reload")) { - plugin.reloadConfig(); - pli.getMessagesConfig().reloadConfig(); - pli.getArenasConfig().reloadConfig(); - pli.getClassesConfig().reloadConfig(); - pli.getAchievementsConfig().reloadConfig(); - pli.getStatsConfig().reloadConfig(); - pli.getShopConfig().reloadConfig(); - pli.getMessagesConfig().init(); - pli.reloadVariables(); - pli.getRewardsInstance().reloadVariables(); - pli.getStatsInstance().reloadVariables(); - pli.getAClasses().clear(); - pli.getClassesHandler().loadClasses(); - try { - pli.reloadAllArenas(); - } catch (Exception e) { - System.out.println("Looks like one arena is invalid, but most arenas should be reloaded just fine. " + e.getMessage()); - } - sender.sendMessage(pli.getMessagesConfig().successfully_reloaded); - } else { - boolean cont = false; - ArrayList<String> cmds = new ArrayList<String>(); - for (String cmd_ : cmddesc.keySet()) { - if (cmd_.toLowerCase().contains(action.toLowerCase())) { - cmds.add(cmd_); - cont = true; - } - } - if (cont) { - sendHelp(cmd, sender); - for (String cmd_ : cmds) { - sender.sendMessage(ChatColor.RED + "Did you mean " + ChatColor.DARK_RED + cmd + " " + cmd_ + ChatColor.RED + "?"); - } - } - } - } else { - sendHelp(cmd, sender); - } - return true; - } - - public static LinkedHashMap<String, String> cmddesc; - static { - cmddesc = new LinkedHashMap<String, String>(); - cmddesc.put("", null); - cmddesc.put("setspawn <arena>", "Sets the spawn point."); - cmddesc.put("setlobby <arena>", "Sets the lobby point."); - cmddesc.put("setmainlobby", "Sets the main lobby point."); - cmddesc.put("setbounds <arena> <low/high>", "Sets the low or high boundary point for later arena regeneration."); - cmddesc.put("savearena <arena>", "Saves the arena."); - cmddesc.put("", null); - cmddesc.put("setmaxplayers <arena> <count>", "Sets the max players allowed to join to given count."); - cmddesc.put("setminplayers <arena> <count>", "Sets the min players needed to start to given count."); - cmddesc.put("setarenavip <arena> <true/false>", "Sets whether arena needs permission to join."); - cmddesc.put("removearena <arena>", "Deletes an arena from config."); - cmddesc.put("removespawn <arena> <count>", "Deletes a spawn from config."); - cmddesc.put("setenabled", "Enables/Disables the arena."); - cmddesc.put("", null); - cmddesc.put("join <arena>", "Joins the arena."); - cmddesc.put("leave", "Leaves the arena."); - cmddesc.put("", ""); - cmddesc.put("start <arena>", "Forces the arena to start."); - cmddesc.put("stop <arena>", "Forces the arena to stop."); - cmddesc.put("list", "Lists all arenas."); - cmddesc.put("reload", "Reloads the config."); - cmddesc.put("reset <arena>", "Forces the arena to reset."); - cmddesc.put("", null); - cmddesc.put("setlobbybounds <arena> <low/high>", "Optional: Set lobby boundaries."); - cmddesc.put("setspecbounds <arena> <low/high>", "Optional: Set extra spectator boundaries."); - cmddesc.put("setauthor <arena> <author>", "Will always display the author of the map at join."); - cmddesc.put("setdescription <arena> <description>", "Will always display a description of the map at join."); - cmddesc.put("setdisplayname <arena> <displayname>", "Allows changing displayname of an arena (whitespaces and colors)."); - cmddesc.put("", null); - } - - public static void sendHelp(String cmd, CommandSender sender) { - sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Help" + ChatColor.DARK_GRAY + " -------"); - for (String k : cmddesc.keySet()) { - if (k.length() < 3) { - sender.sendMessage(""); - continue; - } - String v = cmddesc.get(k); - sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); - } - } - - public static LinkedHashMap<String, String> cmdpartydesc; - static { - cmdpartydesc = new LinkedHashMap<String, String>(); - cmdpartydesc.put("", ""); - cmdpartydesc.put("invite <player>", "Invites a player to your party and creates one if you don't have one yet."); - cmdpartydesc.put("accept <player>", "Accepts an invitation to a party"); - cmdpartydesc.put("disband", "Disbands the party"); - cmdpartydesc.put("kick <player>", "Kicks a player from your party."); - cmdpartydesc.put("leave", "Leaves a party you're in."); - cmdpartydesc.put("list", "Lists all players and the owner of the party."); - } - - public static void sendPartyHelp(String cmd, CommandSender sender) { - sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Help" + ChatColor.DARK_GRAY + " -------"); - for (String k : cmdpartydesc.keySet()) { - if (k.length() < 3) { - sender.sendMessage(""); - continue; - } - String v = cmdpartydesc.get(k); - sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); - } - } - - public boolean setSpawn(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - pli.arenaSetup.setSpawn(plugin, args[1], p.getLocation()); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spawn")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); - } - return true; - } - - public boolean setSpecSpawn(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - Util.saveComponentForArena(plugin, args[1], "specspawn", p.getLocation()); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spectator spawn")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); - } - return true; - } - - public boolean setLobby(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - pli.arenaSetup.setLobby(plugin, args[1], p.getLocation()); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "waiting lobby")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); - } - return true; - } - - public boolean setMainLobby(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - pli.arenaSetup.setMainLobby(plugin, p.getLocation()); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "main lobby")); - return true; - } - - public boolean setBounds(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (args[2].equalsIgnoreCase("low")) { - pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), true); - } else if (args[2].equalsIgnoreCase("high")) { - pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), false); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); - return true; - } - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "boundary")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); - } - return true; - } - - public boolean setLobbyBounds(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (args[2].equalsIgnoreCase("low")) { - pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), true, "lobbybounds"); - } else if (args[2].equalsIgnoreCase("high")) { - pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), false, "lobbybounds"); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); - return true; - } - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "lobby boundary")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); - } - return true; - } - - public boolean setSpecBounds(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (args[2].equalsIgnoreCase("low")) { - pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), true, "specbounds"); - } else if (args[2].equalsIgnoreCase("high")) { - pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), false, "specbounds"); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); - return true; - } - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spectator boundary")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); - } - return true; - } - - public boolean saveArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - Arena temp = pli.arenaSetup.saveArena(plugin, args[1]); - if (temp != null) { - sender.sendMessage(pli.getMessagesConfig().successfully_saved_arena.replaceAll("<arena>", args[1])); - } else { - sender.sendMessage(pli.getMessagesConfig().failed_saving_arena.replaceAll("<arena>", args[1])); - sender.sendMessage(ChatColor.GRAY + "++ Debug Info ++"); - sender.sendMessage(ChatColor.GRAY + "LOBBY:" + Util.isComponentForArenaValidRaw(plugin, args[1], "lobby") + ChatColor.RED + ";" + ChatColor.GRAY + " SPAWN0:" + Util.isComponentForArenaValidRaw(plugin, args[1], "spawns.spawn0") + ChatColor.RED + ";" + ChatColor.GRAY + " BOUNDARIES(possibly needed): low:" + Util.isComponentForArenaValidRaw(plugin, args[1], "bounds.low") + ", high:" + Util.isComponentForArenaValidRaw(plugin, args[1], "bounds.high")); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); - } - return true; - } - - public boolean setMaxPlayers(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (!Util.isNumeric(args[2])) { - return true; - } - pli.arenaSetup.setPlayerCount(plugin, args[1], Integer.parseInt(args[2]), true); - if (pli.getArenaByName(args[1]) != null) { - pli.getArenaByName(args[1]).setMaxPlayers(Integer.parseInt(args[2])); - } - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "max players")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <count>"); - } - return true; - } - - public boolean setMinPlayers(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (!Util.isNumeric(args[2])) { - return true; - } - pli.arenaSetup.setPlayerCount(plugin, args[1], Integer.parseInt(args[2]), false); - if (pli.getArenaByName(args[1]) != null) { - pli.getArenaByName(args[1]).setMinPlayers(Integer.parseInt(args[2])); - } - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "min players")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <count>"); - } - return true; - } - - public boolean setArenaVIP(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (!args[2].equalsIgnoreCase("true") && !args[2].equalsIgnoreCase("false")) { - return true; - } - pli.arenaSetup.setArenaVIP(plugin, args[1], Boolean.parseBoolean(args[2])); - if (pli.getArenaByName(args[1]) != null) { - pli.getArenaByName(args[1]).setVIPArena(Boolean.parseBoolean(args[2])); - } - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "vip value")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); - } - return true; - } - - public boolean joinArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (args.length > 1) { - String playername = p.getName(); - if (args.length > 2) { - if (Validator.isPlayerOnline(args[2])) { - playername = args[2]; - } - } - Arena temp = pli.getArenaByName(args[1]); - if (temp != null) { - if (!temp.containsPlayer(playername)) { - temp.joinPlayerLobby(playername); - } else { - sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); - } - } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); - } - } else { - Arena a_ = null; - for (Arena a : pli.getArenas()) { - if (a.getArenaState() != ArenaState.INGAME) { - a_ = a; - } - } - if (a_ != null) { - a_.joinPlayerLobby(p.getName()); - } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); - } - } - return true; - } - - public boolean leaveArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (pli.global_players.containsKey(p.getName())) { - String playername = p.getName(); - if (args.length > 1) { - if (sender.hasPermission(uber_permission + ".kickplayer")) { - if (Validator.isPlayerOnline(args[1])) { - playername = args[1]; - } - } - } - Arena a = pli.global_players.get(playername); - if (a.getArcadeInstance() != null) { - a.getArcadeInstance().leaveArcade(playername, true); - } - a.leavePlayer(playername, false, false); - } else { - sender.sendMessage(pli.getMessagesConfig().not_in_arena); - } - return true; - } - - public boolean startArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".start")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - Arena temp = pli.getArenaByName(args[1]); - if (temp != null) { - temp.start(true); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "started")); - } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); - } - } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); - } - return true; - } - - public boolean stopArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".stop")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - Arena temp = pli.getArenaByName(args[1]); - if (temp != null) { - temp.stopArena(); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "stopped")); - } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); - } - } else { - if (pli.containsGlobalPlayer(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - a.stopArena(); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "stopped")); - return true; - } - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); - } - return true; - } - - public boolean stopAllArenas(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".stop")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - for (Arena a : pli.getArenas()) { - a.stopArena(); - } - return true; - } - - public boolean removeArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - pli.getArenasConfig().getConfig().set("arenas." + args[1], null); - pli.getArenasConfig().saveConfig(); - if (pli.removeArena(pli.getArenaByName(args[1]))) { - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "removed")); - } else { - sender.sendMessage(pli.getMessagesConfig().failed_removing_arena.replaceAll("<arena>", args[1])); - } - // TODO remove arena file if present - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); - } - return true; - } - - public boolean removeSpawn(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (Util.isNumeric(args[2])) { - if (pli.arenaSetup.removeSpawn(plugin, args[1], Integer.parseInt(args[2]))) { - sender.sendMessage(pli.getMessagesConfig().successfully_removed.replaceAll("<component>", "spawn " + args[2])); - } else { - sender.sendMessage(pli.getMessagesConfig().failed_removing_component.replaceAll("<component>", "spawn " + args[2]).replaceAll("<cause>", "Possibly the provided count couldn't be found: " + args[2])); - } - } else { - - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <count>"); - } - return true; - } - - // TODO Implement skulls - public boolean setSkull(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - sender.sendMessage(ChatColor.GRAY + "This feature is not implemented yet."); - if (args.length > 1) { - if (Util.isNumeric(args[1])) { - int count = Integer.parseInt(args[1]); - p.getInventory().addItem(pli.getStatsInstance().giveSkull(args[1])); - p.updateInventory(); - pli.getStatsInstance().skullsetup.add(p.getName()); - } else { - - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <count>"); - } - return true; - } - - public boolean setEnabled(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (args[2].equalsIgnoreCase("true") || args[2].equalsIgnoreCase("false")) { - pli.arenaSetup.setArenaEnabled(plugin, args[1], Boolean.parseBoolean(args[2])); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "enabled state")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); - } - return true; - } - - public boolean setShowScoreboard(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - if (args[2].equalsIgnoreCase("true") || args[2].equalsIgnoreCase("false")) { - pli.arenaSetup.setShowScoreboard(plugin, args[1], Boolean.parseBoolean(args[2])); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "scoreboard state")); - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); - } - return true; - } - - public boolean resetArena(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".reset")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 1) { - final Arena a = pli.getArenaByName(args[1]); - if (a != null) { - if (Validator.isArenaValid(plugin, a)) { - Bukkit.getScheduler().runTask(plugin, new Runnable() { - public void run() { - Util.loadArenaFromFileSYNC(plugin, a); - } - }); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "reset")); - } - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); - } - return true; - } - - public boolean setAuthor(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - String author = args[2]; - if (Validator.isArenaValid(plugin, args[1])) { - pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".author", author); - pli.getArenasConfig().saveConfig(); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "author")); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <author>"); - } - return true; - } - - public boolean setDescription(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - String desc = args[2]; - if (Validator.isArenaValid(plugin, args[1])) { - pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".description", desc); - pli.getArenasConfig().saveConfig(); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "description")); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <description>"); - } - return true; - } - - public boolean setArenaDisplayName(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - if (args.length > 2) { - String displayname = args[2]; - if (Validator.isArenaValid(plugin, args[1])) { - pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".displayname", displayname); - pli.getArenasConfig().saveConfig(); - pli.reloadArena(args[1]); - sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "displayname")); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <displayname>"); - } - return true; - } - - public boolean spectate(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, JavaPlugin plugin, Player p) { - if (args.length > 0) { - String playername = p.getName(); - if (args.length > 2) { - if (Validator.isPlayerOnline(args[2])) { - playername = args[2]; - } - } - Arena temp = pli.getArenaByName(args[1]); - if (temp != null) { - if (temp.getArenaState() == ArenaState.INGAME) { - if (!temp.containsPlayer(playername)) { - temp.addPlayer(playername); - ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); - ap.setNoReward(true); - ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); - ap.setOriginalGamemode(p.getGameMode()); - ap.setOriginalXplvl(p.getLevel()); - pli.global_players.put(playername, temp); - pli.global_lost.put(playername, temp); - temp.spectateGame(playername); - } else { - sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); - } - } - } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); - } - } - return true; - } - - public boolean setKit(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 1) { - if (!plugin.getConfig().getBoolean("config.classes_enabled")) { - return true; - } - if (args.length > 2) { - p = Bukkit.getPlayer(args[2]); - if (p == null) - return true; - } - if (!plugin.getConfig().getBoolean("config.allow_classes_selection_out_of_arenas")) { - if (pli.global_players.containsKey(p.getName())) { - Arena a = pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME) { - return true; - } - } else { - sender.sendMessage(pli.getMessagesConfig().not_in_arena); - return true; - } - } - - String kit = args[1]; - AClass ac = pli.getClassesHandler().getClassByInternalname(kit); - if (ac != null) { - if (pli.getAClasses().containsKey(ac.getName())) { - if (ac.isEnabled()) { - pli.getClassesHandler().setClass(kit, p.getName(), MinigamesAPI.economy); - return true; - } - } - } - - String all = ""; - for (AClass k : pli.getAClasses().values()) { - if (k.isEnabled()) { - if (!pli.show_classes_without_usage_permission) { - if (!pli.getClassesHandler().kitPlayerHasPermission(k.getInternalName(), p)) { - continue; - } - } - all += k.getInternalName() + ", "; - } - } - if (all.length() < 2) { - all = "No kits found! "; - } - all = all.substring(0, all.length() - 2); - sender.sendMessage(pli.getMessagesConfig().possible_kits + all); - - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <kit>"); - if (!plugin.getConfig().getBoolean("config.classes_enabled")) { - return true; - } - if (pli.global_players.containsKey(p.getName())) { - pli.getClassesHandler().openGUI(p.getName()); - } else { - sender.sendMessage(pli.getMessagesConfig().not_in_arena); - } - } - return true; - } - - public boolean openShop(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 1) { - if (!plugin.getConfig().getBoolean("config.shop_enabled")) { - return true; - } - if (pli.global_players.containsKey(p.getName())) { - String shop_item = args[1]; - if (!pli.getShopHandler().buyByInternalName(p, shop_item)) { - String all = ""; - for (String ac : pli.getShopHandler().shopitems.keySet()) { - all += ac + ", "; - } - if (all.length() < 2) { - all = "No shop items found! "; - } - all = all.substring(0, all.length() - 2); - sender.sendMessage(pli.getMessagesConfig().possible_shopitems + all); - } - } else { - sender.sendMessage(pli.getMessagesConfig().not_in_arena); - } - } else { - if (!plugin.getConfig().getBoolean("config.shop_enabled")) { - return true; - } - if (pli.global_players.containsKey(p.getName())) { - pli.getShopHandler().openGUI(p.getName()); - } else { - sender.sendMessage(pli.getMessagesConfig().not_in_arena); - } - } - return true; - } - - public boolean getStats(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - Util.sendStatsMessage(pli, p); - return true; - } - - public boolean getLeaderboards(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - boolean wins = true; - int count = 10; - if (args.length > 2) { - if (Util.isNumeric(args[2])) { - count = Integer.parseInt(args[2]); - if (!args[1].equalsIgnoreCase("wins")) { - wins = false; - } - } else { - if (Util.isNumeric(args[1])) { - count = Integer.parseInt(args[1]); - } - if (!args[2].equalsIgnoreCase("wins")) { - wins = false; - } - } - } else if (args.length > 1 && args.length < 3) { - if (Util.isNumeric(args[1])) { - count = Integer.parseInt(args[1]); - } else { - if (!args[1].equalsIgnoreCase("wins")) { - wins = false; - } - } - } - sendLeaderboards(pli, sender, count, wins); - return true; - } - - /** - * Send the leaderboards to a player - * - * @param sender - * Player to send the leaderboards to - * @param count - * Amount of result items to show - * @param wins - * whether to check for wins or points leaderboards - */ - private void sendLeaderboards(PluginInstance pli, CommandSender sender, int count, boolean wins) { - int c = 0; - if (wins) { - sender.sendMessage(ChatColor.DARK_GREEN + "--- TOP WINS ---"); - TreeMap<String, Double> sorted_wins = pli.getStatsInstance().getTop(count, true); - for (Map.Entry<String, Double> entry : sorted_wins.entrySet()) { - c++; - if (c > count) { - break; - } - sender.sendMessage(ChatColor.GREEN + "" + Integer.toString((int) entry.getValue().doubleValue()) + ChatColor.DARK_GREEN + " - " + ChatColor.GREEN + "" + entry.getKey()); - } - } else { - sender.sendMessage(ChatColor.DARK_GREEN + "-- TOP POINTS --"); - TreeMap<String, Double> sorted_wins = pli.getStatsInstance().getTop(count, false); - for (Map.Entry<String, Double> entry : sorted_wins.entrySet()) { - c++; - if (c > count) { - break; - } - sender.sendMessage(ChatColor.GREEN + "" + Integer.toString((int) entry.getValue().doubleValue()) + ChatColor.DARK_GREEN + " - " + ChatColor.GREEN + "" + entry.getKey()); - } - } - } - - // Hologram commands - public boolean setHologram(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - Location l = p.getLocation(); - pli.getHologramsHandler().addHologram(l); - p.sendMessage(ChatColor.GREEN + "Successfully set hologram."); - return true; - } - - public boolean listHolograms(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - HologramsConfig config = pli.getHologramsConfig(); - int c = 0; - if (config.getConfig().isSet("holograms.")) { - for (String str : config.getConfig().getConfigurationSection("holograms.").getKeys(false)) { - String base = "holograms." + str; - Location l = new Location(Bukkit.getWorld(config.getConfig().getString(base + ".world")), config.getConfig().getDouble(base + ".location.x"), config.getConfig().getDouble(base + ".location.y"), config.getConfig().getDouble(base + ".location.z"), (float) config.getConfig().getDouble(base + ".location.yaw"), (float) config.getConfig().getDouble(base + ".location.pitch")); - p.sendMessage(ChatColor.GRAY + " ~ " + "world:" + l.getWorld().getName() + ", x:" + l.getBlockX() + ", y:" + l.getBlockY() + ", z:" + l.getBlockZ()); - c++; - } - } - if (c == 0) { - p.sendMessage(ChatColor.RED + "No holograms found!"); - } - return true; - } - - public boolean removeHologram(PluginInstance pli, CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (!sender.hasPermission(uber_permission + ".setup")) { - sender.sendMessage(pli.getMessagesConfig().no_perm); - return true; - } - Location ploc = p.getLocation(); - boolean foundHologram = pli.getHologramsHandler().removeHologram(ploc); - if (foundHologram) { - p.sendMessage(ChatColor.GREEN + "Successfully removed hologram from config. It won't be sent anymore from now on!"); - return true; - } - // No holograms found - p.sendMessage(ChatColor.RED + "No near holograms found! Please stand in a maximum distance of 2 blocks to a hologram to remove it."); - return true; - } - - // Party commands - public boolean partyInvite(CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 1) { - if (p.getName().equalsIgnoreCase(args[1])) { - p.sendMessage(MinigamesAPI.getAPI().partymessages.cannot_invite_yourself); - return true; - } - boolean isInParty = false; - for (Party party : MinigamesAPI.getAPI().global_party.values()) { - if (party.containsPlayer(p.getName())) { - isInParty = true; - } - } - if (!isInParty) { - if (!Validator.isPlayerOnline(args[1])) { - p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); - return true; - } - Party party = null; - if (!MinigamesAPI.getAPI().global_party.containsKey(p.getName())) { - party = new Party(p.getName()); - MinigamesAPI.getAPI().global_party.put(p.getName(), party); - } else { - party = MinigamesAPI.getAPI().global_party.get(p.getName()); - } - ArrayList<Party> parties = new ArrayList<Party>(); - if (MinigamesAPI.getAPI().global_party_invites.containsKey(p.getName())) { - parties.addAll(MinigamesAPI.getAPI().global_party_invites.get(p.getName())); - } - if (!parties.contains(party)) { - parties.add(party); - } - MinigamesAPI.getAPI().global_party_invites.put(args[1], parties); - p.sendMessage(MinigamesAPI.getAPI().partymessages.you_invited.replaceAll("<player>", args[1])); - Bukkit.getPlayer(args[1]).sendMessage(MinigamesAPI.getAPI().partymessages.you_were_invited.replaceAll("<player>", p.getName())); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <player>"); - } - return true; - } - - public boolean partyAccept(CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 1) { - if (!Validator.isPlayerOnline(args[1])) { - p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); - return true; - } - if (!MinigamesAPI.getAPI().global_party_invites.containsKey(p.getName())) { - p.sendMessage(MinigamesAPI.getAPI().partymessages.not_invited_to_any_party); - return true; - } - - boolean isInParty = false; - Party party_ = null; - for (Party party : MinigamesAPI.getAPI().global_party.values()) { - if (party.containsPlayer(p.getName())) { - isInParty = true; - party_ = party; - } - } - if (isInParty) { - if (party_ != null) { - party_.removePlayer(p.getName()); - } - } - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) { - MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); - } - - Party party__ = null; - for (Party party : MinigamesAPI.getAPI().global_party_invites.get(p.getName())) { - if (party.getOwner().equalsIgnoreCase(args[1])) { - party__ = party; - break; - } - } - if (party__ != null) { - party__.addPlayer(p.getName()); - MinigamesAPI.getAPI().global_party_invites.remove(p.getName()); - } else { - p.sendMessage(MinigamesAPI.getAPI().partymessages.not_invited_to_players_party.replaceAll("<player>", args[1])); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <player>"); - } - return true; - } - - public boolean partyKick(CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 1) { - if (!Validator.isPlayerOnline(args[1])) { - p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); - return true; - } - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) { - Party party = MinigamesAPI.getAPI().global_party.get(p.getName()); - if (party.containsPlayer(args[1])) { - party.removePlayer(args[1]); - } else { - p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_in_party.replaceAll("<player>", args[1])); - } - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <player>"); - } - return true; - } - - public boolean partyList(CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 0) { - Party party_ = null; - for (Party party : MinigamesAPI.getAPI().global_party.values()) { - if (party.containsPlayer(p.getName())) { - party_ = party; - } - } - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) { - party_ = MinigamesAPI.getAPI().global_party.get(p.getName()); - } - if (party_ != null) { - String ret = ChatColor.DARK_GREEN + party_.getOwner(); - for (String p_ : party_.getPlayers()) { - ret += ChatColor.GREEN + ", " + p_; - } - p.sendMessage(ret); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action); - } - return true; - } - - public boolean partyDisband(CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 0) { - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) { - MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action); - } - return true; - } - - public boolean partyLeave(CommandSender sender, String[] args, String uber_permission, String cmd, String action, final JavaPlugin plugin, Player p) { - if (args.length > 0) { - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) { - MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); - return true; - } - Party party_ = null; - for (Party party : MinigamesAPI.getAPI().global_party.values()) { - if (party.containsPlayer(p.getName())) { - party_ = party; - } - } - if (party_ != null) { - party_.removePlayer(p.getName()); - } - } else { - sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action); - } - return true; - } - +public class CommandHandler +{ + + /** + * Handles the default commands needed for arena management. + * + * @param uber_permission + * Main setup permission. Example: Skywars.setup + * @param cmd + * The command. Example: /sw + * @param sender + * @param args + * @return + */ + public boolean handleArgs(final JavaPlugin plugin, final String uber_permission, final String cmd, final CommandSender sender, final String args[]) + { + if (args.length > 0) + { + if (!(sender instanceof Player)) + { + sender.sendMessage("Please execute this command ingame."); + return true; + } + final Player p = (Player) sender; + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + final String action = args[0]; + if (action.equalsIgnoreCase("setspawn")) + { + return this.setSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setspecspawn")) + { + return this.setSpecSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setlobby")) + { + return this.setLobby(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setmainlobby")) + { + return this.setMainLobby(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setbounds")) + { + return this.setBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setlobbybounds")) + { + return this.setLobbyBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setspecbounds")) + { + return this.setSpecBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("savearena") || action.equalsIgnoreCase("save")) + { + return this.saveArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setmaxplayers")) + { + return this.setMaxPlayers(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setminplayers")) + { + return this.setMinPlayers(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setarenavip") || action.equalsIgnoreCase("setvip")) + { + return this.setArenaVIP(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("join")) + { + return this.joinArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("leave")) + { + return this.leaveArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("start")) + { + return this.startArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("stop")) + { + return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("sings")) + { + return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("stopall")) + { + return this.stopAllArenas(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("removearena")) + { + return this.removeArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("removespawn")) + { + return this.removeSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setskull")) + { + return this.setSkull(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setenabled")) + { + return this.setEnabled(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setshowscoreboard")) + { + return this.setShowScoreboard(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("reset")) + { + return this.resetArena(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setauthor")) + { + return this.setAuthor(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setdescription")) + { + return this.setDescription(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("setdisplayname")) + { + return this.setArenaDisplayName(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("kit")) + { + return this.setKit(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("spectate")) + { + return this.spectate(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("shop")) + { + return this.openShop(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("leaderboards") || action.equalsIgnoreCase("lb") || action.equalsIgnoreCase("top")) + { + return this.getLeaderboards(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("stats")) + { + return this.getStats(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("sethologram")) + { + return this.setHologram(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("listholograms")) + { + return this.listHolograms(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("removehologram")) + { + return this.removeHologram(pli, sender, args, uber_permission, cmd, action, plugin, p); + } + else if (action.equalsIgnoreCase("help")) + { + CommandHandler.sendHelp(cmd, sender); + } + else if (action.equalsIgnoreCase("list")) + { + sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Arenas" + ChatColor.DARK_GRAY + " -------"); + for (final Arena a : pli.getArenas()) + { + if (args.length > 1) + { + sender.sendMessage(ChatColor.GREEN + a.getInternalName() + "[" + a.getClass().getSimpleName().toString() + "]"); + } + else + { + sender.sendMessage(ChatColor.GREEN + a.getInternalName()); + } + } + } + else if (action.equalsIgnoreCase("reload")) + { + plugin.reloadConfig(); + pli.getMessagesConfig().reloadConfig(); + pli.getArenasConfig().reloadConfig(); + pli.getClassesConfig().reloadConfig(); + pli.getAchievementsConfig().reloadConfig(); + pli.getStatsConfig().reloadConfig(); + pli.getShopConfig().reloadConfig(); + pli.getMessagesConfig().init(); + pli.reloadVariables(); + pli.getRewardsInstance().reloadVariables(); + pli.getStatsInstance().reloadVariables(); + pli.getAClasses().clear(); + pli.getClassesHandler().loadClasses(); + try + { + pli.reloadAllArenas(); + } + catch (final Exception e) + { + System.out.println("Looks like one arena is invalid, but most arenas should be reloaded just fine. " + e.getMessage()); + } + sender.sendMessage(pli.getMessagesConfig().successfully_reloaded); + } + else + { + boolean cont = false; + final ArrayList<String> cmds = new ArrayList<>(); + for (final String cmd_ : CommandHandler.cmddesc.keySet()) + { + if (cmd_.toLowerCase().contains(action.toLowerCase())) + { + cmds.add(cmd_); + cont = true; + } + } + if (cont) + { + CommandHandler.sendHelp(cmd, sender); + for (final String cmd_ : cmds) + { + sender.sendMessage(ChatColor.RED + "Did you mean " + ChatColor.DARK_RED + cmd + " " + cmd_ + ChatColor.RED + "?"); + } + } + } + } + else + { + CommandHandler.sendHelp(cmd, sender); + } + return true; + } + + public static LinkedHashMap<String, String> cmddesc; + static + { + CommandHandler.cmddesc = new LinkedHashMap<>(); + CommandHandler.cmddesc.put("", null); + CommandHandler.cmddesc.put("setspawn <arena>", "Sets the spawn point."); + CommandHandler.cmddesc.put("setlobby <arena>", "Sets the lobby point."); + CommandHandler.cmddesc.put("setmainlobby", "Sets the main lobby point."); + CommandHandler.cmddesc.put("setbounds <arena> <low/high>", "Sets the low or high boundary point for later arena regeneration."); + CommandHandler.cmddesc.put("savearena <arena>", "Saves the arena."); + CommandHandler.cmddesc.put("", null); + CommandHandler.cmddesc.put("setmaxplayers <arena> <count>", "Sets the max players allowed to join to given count."); + CommandHandler.cmddesc.put("setminplayers <arena> <count>", "Sets the min players needed to start to given count."); + CommandHandler.cmddesc.put("setarenavip <arena> <true/false>", "Sets whether arena needs permission to join."); + CommandHandler.cmddesc.put("removearena <arena>", "Deletes an arena from config."); + CommandHandler.cmddesc.put("removespawn <arena> <count>", "Deletes a spawn from config."); + CommandHandler.cmddesc.put("setenabled", "Enables/Disables the arena."); + CommandHandler.cmddesc.put("", null); + CommandHandler.cmddesc.put("join <arena>", "Joins the arena."); + CommandHandler.cmddesc.put("leave", "Leaves the arena."); + CommandHandler.cmddesc.put("", ""); + CommandHandler.cmddesc.put("start <arena>", "Forces the arena to start."); + CommandHandler.cmddesc.put("stop <arena>", "Forces the arena to stop."); + CommandHandler.cmddesc.put("list", "Lists all arenas."); + CommandHandler.cmddesc.put("reload", "Reloads the config."); + CommandHandler.cmddesc.put("reset <arena>", "Forces the arena to reset."); + CommandHandler.cmddesc.put("", null); + CommandHandler.cmddesc.put("setlobbybounds <arena> <low/high>", "Optional: Set lobby boundaries."); + CommandHandler.cmddesc.put("setspecbounds <arena> <low/high>", "Optional: Set extra spectator boundaries."); + CommandHandler.cmddesc.put("setauthor <arena> <author>", "Will always display the author of the map at join."); + CommandHandler.cmddesc.put("setdescription <arena> <description>", "Will always display a description of the map at join."); + CommandHandler.cmddesc.put("setdisplayname <arena> <displayname>", "Allows changing displayname of an arena (whitespaces and colors)."); + CommandHandler.cmddesc.put("", null); + } + + public static void sendHelp(final String cmd, final CommandSender sender) + { + sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Help" + ChatColor.DARK_GRAY + " -------"); + for (final String k : CommandHandler.cmddesc.keySet()) + { + if (k.length() < 3) + { + sender.sendMessage(""); + continue; + } + final String v = CommandHandler.cmddesc.get(k); + sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); + } + } + + public static LinkedHashMap<String, String> cmdpartydesc; + static + { + CommandHandler.cmdpartydesc = new LinkedHashMap<>(); + CommandHandler.cmdpartydesc.put("", ""); + CommandHandler.cmdpartydesc.put("invite <player>", "Invites a player to your party and creates one if you don't have one yet."); + CommandHandler.cmdpartydesc.put("accept <player>", "Accepts an invitation to a party"); + CommandHandler.cmdpartydesc.put("disband", "Disbands the party"); + CommandHandler.cmdpartydesc.put("kick <player>", "Kicks a player from your party."); + CommandHandler.cmdpartydesc.put("leave", "Leaves a party you're in."); + CommandHandler.cmdpartydesc.put("list", "Lists all players and the owner of the party."); + } + + public static void sendPartyHelp(final String cmd, final CommandSender sender) + { + sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Help" + ChatColor.DARK_GRAY + " -------"); + for (final String k : CommandHandler.cmdpartydesc.keySet()) + { + if (k.length() < 3) + { + sender.sendMessage(""); + continue; + } + final String v = CommandHandler.cmdpartydesc.get(k); + sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); + } + } + + public boolean setSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + pli.arenaSetup.setSpawn(plugin, args[1], p.getLocation()); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spawn")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); + } + return true; + } + + public boolean setSpecSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + Util.saveComponentForArena(plugin, args[1], "specspawn", p.getLocation()); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spectator spawn")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); + } + return true; + } + + public boolean setLobby(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + pli.arenaSetup.setLobby(plugin, args[1], p.getLocation()); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "waiting lobby")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); + } + return true; + } + + public boolean setMainLobby(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + pli.arenaSetup.setMainLobby(plugin, p.getLocation()); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "main lobby")); + return true; + } + + public boolean setBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (args[2].equalsIgnoreCase("low")) + { + pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), true); + } + else if (args[2].equalsIgnoreCase("high")) + { + pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), false); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); + return true; + } + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "boundary")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); + } + return true; + } + + public boolean setLobbyBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (args[2].equalsIgnoreCase("low")) + { + pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), true, "lobbybounds"); + } + else if (args[2].equalsIgnoreCase("high")) + { + pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), false, "lobbybounds"); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); + return true; + } + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "lobby boundary")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); + } + return true; + } + + public boolean setSpecBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (args[2].equalsIgnoreCase("low")) + { + pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), true, "specbounds"); + } + else if (args[2].equalsIgnoreCase("high")) + { + pli.arenaSetup.setBoundaries(plugin, args[1], p.getLocation(), false, "specbounds"); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); + return true; + } + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spectator boundary")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <low/high>"); + } + return true; + } + + public boolean saveArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + final Arena temp = pli.arenaSetup.saveArena(plugin, args[1]); + if (temp != null) + { + sender.sendMessage(pli.getMessagesConfig().successfully_saved_arena.replaceAll("<arena>", args[1])); + } + else + { + sender.sendMessage(pli.getMessagesConfig().failed_saving_arena.replaceAll("<arena>", args[1])); + sender.sendMessage(ChatColor.GRAY + "++ Debug Info ++"); + sender.sendMessage(ChatColor.GRAY + "LOBBY:" + Util.isComponentForArenaValidRaw(plugin, args[1], "lobby") + ChatColor.RED + ";" + ChatColor.GRAY + " SPAWN0:" + + Util.isComponentForArenaValidRaw(plugin, args[1], "spawns.spawn0") + ChatColor.RED + ";" + ChatColor.GRAY + " BOUNDARIES(possibly needed): low:" + + Util.isComponentForArenaValidRaw(plugin, args[1], ArenaConfigStrings.BOUNDS_LOW) + ", high:" + Util.isComponentForArenaValidRaw(plugin, args[1], ArenaConfigStrings.BOUNDS_HIGH)); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); + } + return true; + } + + public boolean setMaxPlayers(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (!Util.isNumeric(args[2])) + { + return true; + } + pli.arenaSetup.setPlayerCount(plugin, args[1], Integer.parseInt(args[2]), true); + if (pli.getArenaByName(args[1]) != null) + { + pli.getArenaByName(args[1]).setMaxPlayers(Integer.parseInt(args[2])); + } + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "max players")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <count>"); + } + return true; + } + + public boolean setMinPlayers(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (!Util.isNumeric(args[2])) + { + return true; + } + pli.arenaSetup.setPlayerCount(plugin, args[1], Integer.parseInt(args[2]), false); + if (pli.getArenaByName(args[1]) != null) + { + pli.getArenaByName(args[1]).setMinPlayers(Integer.parseInt(args[2])); + } + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "min players")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <count>"); + } + return true; + } + + public boolean setArenaVIP(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (!args[2].equalsIgnoreCase("true") && !args[2].equalsIgnoreCase("false")) + { + return true; + } + pli.arenaSetup.setArenaVIP(plugin, args[1], Boolean.parseBoolean(args[2])); + if (pli.getArenaByName(args[1]) != null) + { + pli.getArenaByName(args[1]).setVIPArena(Boolean.parseBoolean(args[2])); + } + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "vip value")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); + } + return true; + } + + public boolean joinArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (args.length > 1) + { + String playername = p.getName(); + if (args.length > 2) + { + if (Validator.isPlayerOnline(args[2])) + { + playername = args[2]; + } + } + final Arena temp = pli.getArenaByName(args[1]); + if (temp != null) + { + if (!temp.containsPlayer(playername)) + { + temp.joinPlayerLobby(playername); + } + else + { + sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); + } + } + else + { + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); + } + } + else + { + Arena a_ = null; + for (final Arena a : pli.getArenas()) + { + if (a.getArenaState() != ArenaState.INGAME) + { + a_ = a; + } + } + if (a_ != null) + { + a_.joinPlayerLobby(p.getName()); + } + else + { + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); + } + } + return true; + } + + public boolean leaveArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (pli.global_players.containsKey(p.getName())) + { + String playername = p.getName(); + if (args.length > 1) + { + if (sender.hasPermission(uber_permission + ".kickplayer")) + { + if (Validator.isPlayerOnline(args[1])) + { + playername = args[1]; + } + } + } + final Arena a = pli.global_players.get(playername); + if (a.getArcadeInstance() != null) + { + a.getArcadeInstance().leaveArcade(playername, true); + } + a.leavePlayer(playername, false, false); + } + else + { + sender.sendMessage(pli.getMessagesConfig().not_in_arena); + } + return true; + } + + public boolean startArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".start")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + final Arena temp = pli.getArenaByName(args[1]); + if (temp != null) + { + temp.start(true); + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "started")); + } + else + { + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); + } + } + else + { + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); + } + return true; + } + + public boolean stopArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".stop")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + final Arena temp = pli.getArenaByName(args[1]); + if (temp != null) + { + temp.stopArena(); + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "stopped")); + } + else + { + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); + } + } + else + { + if (pli.containsGlobalPlayer(p.getName())) + { + final Arena a = pli.global_players.get(p.getName()); + a.stopArena(); + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "stopped")); + return true; + } + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); + } + return true; + } + + public boolean stopAllArenas(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".stop")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + for (final Arena a : pli.getArenas()) + { + a.stopArena(); + } + return true; + } + + public boolean removeArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + pli.getArenasConfig().getConfig().set("arenas." + args[1], null); + pli.getArenasConfig().saveConfig(); + if (pli.removeArena(pli.getArenaByName(args[1]))) + { + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "removed")); + } + else + { + sender.sendMessage(pli.getMessagesConfig().failed_removing_arena.replaceAll("<arena>", args[1])); + } + // TODO remove arena file if present + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); + } + return true; + } + + public boolean removeSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (Util.isNumeric(args[2])) + { + if (pli.arenaSetup.removeSpawn(plugin, args[1], Integer.parseInt(args[2]))) + { + sender.sendMessage(pli.getMessagesConfig().successfully_removed.replaceAll("<component>", "spawn " + args[2])); + } + else + { + sender.sendMessage(pli.getMessagesConfig().failed_removing_component.replaceAll("<component>", "spawn " + args[2]).replaceAll("<cause>", + "Possibly the provided count couldn't be found: " + args[2])); + } + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <count>"); + } + return true; + } + + // TODO Implement skulls + public boolean setSkull(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + sender.sendMessage(ChatColor.GRAY + "This feature is not implemented yet."); + if (args.length > 1) + { + if (Util.isNumeric(args[1])) + { + final int count = Integer.parseInt(args[1]); + pli.getStatsInstance(); + p.getInventory().addItem(Stats.giveSkull(args[1])); + p.updateInventory(); + pli.getStatsInstance().skullsetup.add(p.getName()); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <count>"); + } + return true; + } + + public boolean setEnabled(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (args[2].equalsIgnoreCase("true") || args[2].equalsIgnoreCase("false")) + { + pli.arenaSetup.setArenaEnabled(plugin, args[1], Boolean.parseBoolean(args[2])); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "enabled state")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); + } + return true; + } + + public boolean setShowScoreboard(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + if (args[2].equalsIgnoreCase("true") || args[2].equalsIgnoreCase("false")) + { + pli.arenaSetup.setShowScoreboard(plugin, args[1], Boolean.parseBoolean(args[2])); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "scoreboard state")); + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <true/false>"); + } + return true; + } + + public boolean resetArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".reset")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 1) + { + final Arena a = pli.getArenaByName(args[1]); + if (a != null) + { + if (Validator.isArenaValid(plugin, a)) + { + Bukkit.getScheduler().runTask(plugin, () -> PrivateUtil.loadArenaFromFileSYNC(plugin, a)); + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "reset")); + } + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena>"); + } + return true; + } + + public boolean setAuthor(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + final String author = args[2]; + if (Validator.isArenaValid(plugin, args[1])) + { + pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".author", author); + pli.getArenasConfig().saveConfig(); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "author")); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <author>"); + } + return true; + } + + public boolean setDescription(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + final String desc = args[2]; + if (Validator.isArenaValid(plugin, args[1])) + { + pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".description", desc); + pli.getArenasConfig().saveConfig(); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "description")); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <description>"); + } + return true; + } + + public boolean setArenaDisplayName(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + if (args.length > 2) + { + final String displayname = args[2]; + if (Validator.isArenaValid(plugin, args[1])) + { + pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".displayname", displayname); + pli.getArenasConfig().saveConfig(); + pli.reloadArena(args[1]); + sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "displayname")); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <arena> <displayname>"); + } + return true; + } + + public boolean spectate(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (args.length > 0) + { + String playername = p.getName(); + if (args.length > 2) + { + if (Validator.isPlayerOnline(args[2])) + { + playername = args[2]; + } + } + final Arena temp = pli.getArenaByName(args[1]); + if (temp != null) + { + if (temp.getArenaState() == ArenaState.INGAME) + { + if (!temp.containsPlayer(playername)) + { + temp.addPlayer(playername); // TODO seems to be a bad hack. Influences the players list; do we really need this? Instead fill a list of spectators. + final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); + ap.setNoReward(true); + ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); + ap.setOriginalGamemode(p.getGameMode()); + ap.setOriginalXplvl(p.getLevel()); + pli.global_players.put(playername, temp); + pli.global_lost.put(playername, temp); + temp.spectateGame(playername); + } + else + { + sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); + } + } + } + else + { + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); + } + } + return true; + } + + public boolean setKit(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + Player player) + { + Player p = player; + if (args.length > 1) + { + if (!plugin.getConfig().getBoolean("config.classes_enabled")) + { + return true; + } + if (args.length > 2) + { + p = Bukkit.getPlayer(args[2]); + if (p == null) + { + return true; + } + } + if (!plugin.getConfig().getBoolean("config.allow_classes_selection_out_of_arenas")) + { + if (pli.global_players.containsKey(p.getName())) + { + final Arena a = pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME) + { + return true; + } + } + else + { + sender.sendMessage(pli.getMessagesConfig().not_in_arena); + return true; + } + } + + final String kit = args[1]; + final AClass ac = pli.getClassesHandler().getClassByInternalname(kit); + if (ac != null) + { + if (pli.getAClasses().containsKey(ac.getName())) + { + if (ac.isEnabled()) + { + pli.getClassesHandler().setClass(kit, p.getName(), MinigamesAPI.economy); + return true; + } + } + } + + String all = ""; + for (final AClass k : pli.getAClasses().values()) + { + if (k.isEnabled()) + { + if (!pli.show_classes_without_usage_permission) + { + if (!pli.getClassesHandler().kitPlayerHasPermission(k.getInternalName(), p)) + { + continue; + } + } + all += k.getInternalName() + ", "; + } + } + if (all.length() < 2) + { + all = "No kits found! "; + } + all = all.substring(0, all.length() - 2); + sender.sendMessage(pli.getMessagesConfig().possible_kits + all); + + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <kit>"); + if (!plugin.getConfig().getBoolean("config.classes_enabled")) + { + return true; + } + if (pli.global_players.containsKey(p.getName())) + { + pli.getClassesHandler().openGUI(p.getName()); + } + else + { + sender.sendMessage(pli.getMessagesConfig().not_in_arena); + } + } + return true; + } + + public boolean openShop(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (args.length > 1) + { + if (!plugin.getConfig().getBoolean("config.shop_enabled")) + { + return true; + } + if (pli.global_players.containsKey(p.getName())) + { + final String shop_item = args[1]; + if (!pli.getShopHandler().buyByInternalName(p, shop_item)) + { + String all = ""; + for (final String ac : pli.getShopHandler().shopitems.keySet()) + { + all += ac + ", "; + } + if (all.length() < 2) + { + all = "No shop items found! "; + } + all = all.substring(0, all.length() - 2); + sender.sendMessage(pli.getMessagesConfig().possible_shopitems + all); + } + } + else + { + sender.sendMessage(pli.getMessagesConfig().not_in_arena); + } + } + else + { + if (!plugin.getConfig().getBoolean("config.shop_enabled")) + { + return true; + } + if (pli.global_players.containsKey(p.getName())) + { + pli.getShopHandler().openGUI(p.getName()); + } + else + { + sender.sendMessage(pli.getMessagesConfig().not_in_arena); + } + } + return true; + } + + public boolean getStats(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + Util.sendStatsMessage(pli, p); + return true; + } + + public boolean getLeaderboards(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + boolean wins = true; + int count = 10; + if (args.length > 2) + { + if (Util.isNumeric(args[2])) + { + count = Integer.parseInt(args[2]); + if (!args[1].equalsIgnoreCase("wins")) + { + wins = false; + } + } + else + { + if (Util.isNumeric(args[1])) + { + count = Integer.parseInt(args[1]); + } + if (!args[2].equalsIgnoreCase("wins")) + { + wins = false; + } + } + } + else if (args.length > 1 && args.length < 3) + { + if (Util.isNumeric(args[1])) + { + count = Integer.parseInt(args[1]); + } + else + { + if (!args[1].equalsIgnoreCase("wins")) + { + wins = false; + } + } + } + this.sendLeaderboards(pli, sender, count, wins); + return true; + } + + /** + * Send the leaderboards to a player + * + * @param sender + * Player to send the leaderboards to + * @param count + * Amount of result items to show + * @param wins + * whether to check for wins or points leaderboards + */ + private void sendLeaderboards(final PluginInstance pli, final CommandSender sender, final int count, final boolean wins) + { + int c = 0; + if (wins) + { + sender.sendMessage(ChatColor.DARK_GREEN + "--- TOP WINS ---"); + final TreeMap<String, Double> sorted_wins = pli.getStatsInstance().getTop(count, true); + for (final Map.Entry<String, Double> entry : sorted_wins.entrySet()) + { + c++; + if (c > count) + { + break; + } + sender.sendMessage(ChatColor.GREEN + "" + Integer.toString((int) entry.getValue().doubleValue()) + ChatColor.DARK_GREEN + " - " + ChatColor.GREEN + "" + entry.getKey()); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GREEN + "-- TOP POINTS --"); + final TreeMap<String, Double> sorted_wins = pli.getStatsInstance().getTop(count, false); + for (final Map.Entry<String, Double> entry : sorted_wins.entrySet()) + { + c++; + if (c > count) + { + break; + } + sender.sendMessage(ChatColor.GREEN + "" + Integer.toString((int) entry.getValue().doubleValue()) + ChatColor.DARK_GREEN + " - " + ChatColor.GREEN + "" + entry.getKey()); + } + } + } + + // Hologram commands + public boolean setHologram(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, + final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + final Location l = p.getLocation(); + pli.getHologramsHandler().addHologram(l); + p.sendMessage(ChatColor.GREEN + "Successfully set hologram."); + return true; + } + + public boolean listHolograms(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + final HologramsConfig config = pli.getHologramsConfig(); + int c = 0; + if (config.getConfig().isSet("holograms.")) + { + for (final String str : config.getConfig().getConfigurationSection("holograms.").getKeys(false)) + { + final String base = "holograms." + str; + final Location l = new Location(Bukkit.getWorld(config.getConfig().getString(base + ".world")), config.getConfig().getDouble(base + ".location.x"), + config.getConfig().getDouble(base + ".location.y"), config.getConfig().getDouble(base + ".location.z"), (float) config.getConfig().getDouble(base + ".location.yaw"), + (float) config.getConfig().getDouble(base + ".location.pitch")); + p.sendMessage(ChatColor.GRAY + " ~ " + "world:" + l.getWorld().getName() + ", x:" + l.getBlockX() + ", y:" + l.getBlockY() + ", z:" + l.getBlockZ()); + c++; + } + } + if (c == 0) + { + p.sendMessage(ChatColor.RED + "No holograms found!"); + } + return true; + } + + public boolean removeHologram(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, + final JavaPlugin plugin, final Player p) + { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } + final Location ploc = p.getLocation(); + final boolean foundHologram = pli.getHologramsHandler().removeHologram(ploc); + if (foundHologram) + { + p.sendMessage(ChatColor.GREEN + "Successfully removed hologram from config. It won't be sent anymore from now on!"); + return true; + } + // No holograms found + p.sendMessage(ChatColor.RED + "No near holograms found! Please stand in a maximum distance of 2 blocks to a hologram to remove it."); + return true; + } + + // Party commands + public boolean partyInvite(final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) + { + if (args.length > 1) + { + if (p.getName().equalsIgnoreCase(args[1])) + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.cannot_invite_yourself); + return true; + } + boolean isInParty = false; + for (final Party party : MinigamesAPI.getAPI().global_party.values()) + { + if (party.containsPlayer(p.getName())) + { + isInParty = true; + } + } + if (!isInParty) + { + if (!Validator.isPlayerOnline(args[1])) + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); + return true; + } + Party party = null; + if (!MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + { + party = new Party(p.getName()); + MinigamesAPI.getAPI().global_party.put(p.getName(), party); + } + else + { + party = MinigamesAPI.getAPI().global_party.get(p.getName()); + } + final ArrayList<Party> parties = new ArrayList<>(); + if (MinigamesAPI.getAPI().global_party_invites.containsKey(p.getName())) + { + parties.addAll(MinigamesAPI.getAPI().global_party_invites.get(p.getName())); + } + if (!parties.contains(party)) + { + parties.add(party); + } + MinigamesAPI.getAPI().global_party_invites.put(args[1], parties); + p.sendMessage(MinigamesAPI.getAPI().partymessages.you_invited.replaceAll("<player>", args[1])); + Bukkit.getPlayer(args[1]).sendMessage(MinigamesAPI.getAPI().partymessages.you_were_invited.replaceAll("<player>", p.getName())); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <player>"); + } + return true; + } + + public boolean partyAccept(final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) + { + if (args.length > 1) + { + if (!Validator.isPlayerOnline(args[1])) + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); + return true; + } + if (!MinigamesAPI.getAPI().global_party_invites.containsKey(p.getName())) + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.not_invited_to_any_party); + return true; + } + + boolean isInParty = false; + Party party_ = null; + for (final Party party : MinigamesAPI.getAPI().global_party.values()) + { + if (party.containsPlayer(p.getName())) + { + isInParty = true; + party_ = party; + } + } + if (isInParty) + { + if (party_ != null) + { + party_.removePlayer(p.getName()); + } + } + if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + { + MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); + } + + Party party__ = null; + for (final Party party : MinigamesAPI.getAPI().global_party_invites.get(p.getName())) + { + if (party.getOwner().equalsIgnoreCase(args[1])) + { + party__ = party; + break; + } + } + if (party__ != null) + { + party__.addPlayer(p.getName()); + MinigamesAPI.getAPI().global_party_invites.remove(p.getName()); + } + else + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.not_invited_to_players_party.replaceAll("<player>", args[1])); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <player>"); + } + return true; + } + + public boolean partyKick(final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) + { + if (args.length > 1) + { + if (!Validator.isPlayerOnline(args[1])) + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); + return true; + } + if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + { + final Party party = MinigamesAPI.getAPI().global_party.get(p.getName()); + if (party.containsPlayer(args[1])) + { + party.removePlayer(args[1]); + } + else + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_in_party.replaceAll("<player>", args[1])); + } + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <player>"); + } + return true; + } + + public boolean partyList(final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) + { + if (args.length > 0) + { + Party party_ = null; + for (final Party party : MinigamesAPI.getAPI().global_party.values()) + { + if (party.containsPlayer(p.getName())) + { + party_ = party; + } + } + if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + { + party_ = MinigamesAPI.getAPI().global_party.get(p.getName()); + } + if (party_ != null) + { + String ret = ChatColor.DARK_GREEN + party_.getOwner(); + for (final String p_ : party_.getPlayers()) + { + ret += ChatColor.GREEN + ", " + p_; + } + p.sendMessage(ret); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action); + } + return true; + } + + public boolean partyDisband(final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) + { + if (args.length > 0) + { + if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + { + MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action); + } + return true; + } + + public boolean partyLeave(final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) + { + if (args.length > 0) + { + if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + { + MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); + return true; + } + Party party_ = null; + for (final Party party : MinigamesAPI.getAPI().global_party.values()) + { + if (party.containsPlayer(p.getName())) + { + party_ = party; + } + } + if (party_ != null) + { + party_.removePlayer(p.getName()); + } + } + else + { + sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action); + } + return true; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java index 40a96e17..57e5fe59 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java @@ -1,100 +1,126 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.config; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; - import java.io.File; import java.io.IOException; import java.io.InputStream; -public class AchievementsConfig { - - private FileConfiguration arenaConfig = null; - private File arenaFile = null; - private JavaPlugin plugin = null; - - public AchievementsConfig(JavaPlugin plugin) { - this.plugin = plugin; - this.getConfig().options().header("Used for saving achievements details."); - - this.getConfig().addDefault("config.enabled", true); - - this.getConfig().addDefault("config.achievements.first_blood.enabled", true); - this.getConfig().addDefault("config.achievements.first_blood.name", "First Blood!"); - this.getConfig().addDefault("config.achievements.first_blood.reward.economy_reward", true); - this.getConfig().addDefault("config.achievements.first_blood.reward.econ_reward_amount", 20); - this.getConfig().addDefault("config.achievements.first_blood.reward.command_reward", false); - this.getConfig().addDefault("config.achievements.first_blood.reward.cmd", "tell <player> Good job!"); - - this.getConfig().addDefault("config.achievements.ten_kills.enabled", true); - this.getConfig().addDefault("config.achievements.ten_kills.name", "Ten Kills!"); - this.getConfig().addDefault("config.achievements.ten_kills.reward.economy_reward", true); - this.getConfig().addDefault("config.achievements.ten_kills.reward.econ_reward_amount", 50); - this.getConfig().addDefault("config.achievements.ten_kills.reward.command_reward", false); - this.getConfig().addDefault("config.achievements.ten_kills.reward.cmd", "tell <player> Good job!"); - - this.getConfig().addDefault("config.achievements.hundred_kills.enabled", true); - this.getConfig().addDefault("config.achievements.hundred_kills.name", "Hundred Kills!"); - this.getConfig().addDefault("config.achievements.hundred_kills.reward.economy_reward", true); - this.getConfig().addDefault("config.achievements.hundred_kills.reward.econ_reward_amount", 1000); - this.getConfig().addDefault("config.achievements.hundred_kills.reward.command_reward", false); - this.getConfig().addDefault("config.achievements.hundred_kills.reward.cmd", "tell <player> Good job!"); - - this.getConfig().addDefault("config.achievements.first_win.enabled", true); - this.getConfig().addDefault("config.achievements.first_win.name", "Your first win!"); - this.getConfig().addDefault("config.achievements.first_win.reward.economy_reward", true); - this.getConfig().addDefault("config.achievements.first_win.reward.econ_reward_amount", 30); - this.getConfig().addDefault("config.achievements.first_win.reward.command_reward", false); - this.getConfig().addDefault("config.achievements.first_win.reward.cmd", "tell <player> Good job!"); - - this.getConfig().addDefault("config.achievements.ten_wins.enabled", true); - this.getConfig().addDefault("config.achievements.ten_wins.name", "Ten wins!"); - this.getConfig().addDefault("config.achievements.ten_wins.reward.economy_reward", true); - this.getConfig().addDefault("config.achievements.ten_wins.reward.econ_reward_amount", 30); - this.getConfig().addDefault("config.achievements.ten_wins.reward.command_reward", false); - this.getConfig().addDefault("config.achievements.ten_wins.reward.cmd", "tell <player> Good job!"); - - this.getConfig().addDefault("config.achievements.achievement_guy.enabled", true); - this.getConfig().addDefault("config.achievements.achievement_guy.name", "All achievement guy!"); - this.getConfig().addDefault("config.achievements.achievement_guy.reward.economy_reward", true); - this.getConfig().addDefault("config.achievements.achievement_guy.reward.econ_reward_amount", 30); - this.getConfig().addDefault("config.achievements.achievement_guy.reward.command_reward", false); - this.getConfig().addDefault("config.achievements.achievement_guy.reward.cmd", "tell <player> Good job!"); - - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - } - - public FileConfiguration getConfig() { - if (arenaConfig == null) { - reloadConfig(); - } - return arenaConfig; - } - - public void saveConfig() { - if (arenaConfig == null || arenaFile == null) { - return; - } - try { - getConfig().save(arenaFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (arenaFile == null) { - arenaFile = new File(plugin.getDataFolder(), "achievements.yml"); - } - arenaConfig = YamlConfiguration.loadConfiguration(arenaFile); - - InputStream defConfigStream = plugin.getResource("achievements.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - arenaConfig.setDefaults(defConfig); - } - } +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +public class AchievementsConfig +{ + + private FileConfiguration arenaConfig = null; + private File arenaFile = null; + private JavaPlugin plugin = null; + + public AchievementsConfig(final JavaPlugin plugin) + { + this.plugin = plugin; + this.getConfig().options().header("Used for saving achievements details."); + + this.getConfig().addDefault("config.enabled", true); + + this.getConfig().addDefault("config.achievements.first_blood.enabled", true); + this.getConfig().addDefault("config.achievements.first_blood.name", "First Blood!"); + this.getConfig().addDefault("config.achievements.first_blood.reward.economy_reward", true); + this.getConfig().addDefault("config.achievements.first_blood.reward.econ_reward_amount", 20); + this.getConfig().addDefault("config.achievements.first_blood.reward.command_reward", false); + this.getConfig().addDefault("config.achievements.first_blood.reward.cmd", "tell <player> Good job!"); + + this.getConfig().addDefault("config.achievements.ten_kills.enabled", true); + this.getConfig().addDefault("config.achievements.ten_kills.name", "Ten Kills!"); + this.getConfig().addDefault("config.achievements.ten_kills.reward.economy_reward", true); + this.getConfig().addDefault("config.achievements.ten_kills.reward.econ_reward_amount", 50); + this.getConfig().addDefault("config.achievements.ten_kills.reward.command_reward", false); + this.getConfig().addDefault("config.achievements.ten_kills.reward.cmd", "tell <player> Good job!"); + + this.getConfig().addDefault("config.achievements.hundred_kills.enabled", true); + this.getConfig().addDefault("config.achievements.hundred_kills.name", "Hundred Kills!"); + this.getConfig().addDefault("config.achievements.hundred_kills.reward.economy_reward", true); + this.getConfig().addDefault("config.achievements.hundred_kills.reward.econ_reward_amount", 1000); + this.getConfig().addDefault("config.achievements.hundred_kills.reward.command_reward", false); + this.getConfig().addDefault("config.achievements.hundred_kills.reward.cmd", "tell <player> Good job!"); + + this.getConfig().addDefault("config.achievements.first_win.enabled", true); + this.getConfig().addDefault("config.achievements.first_win.name", "Your first win!"); + this.getConfig().addDefault("config.achievements.first_win.reward.economy_reward", true); + this.getConfig().addDefault("config.achievements.first_win.reward.econ_reward_amount", 30); + this.getConfig().addDefault("config.achievements.first_win.reward.command_reward", false); + this.getConfig().addDefault("config.achievements.first_win.reward.cmd", "tell <player> Good job!"); + + this.getConfig().addDefault("config.achievements.ten_wins.enabled", true); + this.getConfig().addDefault("config.achievements.ten_wins.name", "Ten wins!"); + this.getConfig().addDefault("config.achievements.ten_wins.reward.economy_reward", true); + this.getConfig().addDefault("config.achievements.ten_wins.reward.econ_reward_amount", 30); + this.getConfig().addDefault("config.achievements.ten_wins.reward.command_reward", false); + this.getConfig().addDefault("config.achievements.ten_wins.reward.cmd", "tell <player> Good job!"); + + this.getConfig().addDefault("config.achievements.achievement_guy.enabled", true); + this.getConfig().addDefault("config.achievements.achievement_guy.name", "All achievement guy!"); + this.getConfig().addDefault("config.achievements.achievement_guy.reward.economy_reward", true); + this.getConfig().addDefault("config.achievements.achievement_guy.reward.econ_reward_amount", 30); + this.getConfig().addDefault("config.achievements.achievement_guy.reward.command_reward", false); + this.getConfig().addDefault("config.achievements.achievement_guy.reward.cmd", "tell <player> Good job!"); + + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + } + + public FileConfiguration getConfig() + { + if (this.arenaConfig == null) + { + this.reloadConfig(); + } + return this.arenaConfig; + } + + public void saveConfig() + { + if (this.arenaConfig == null || this.arenaFile == null) + { + return; + } + try + { + this.getConfig().save(this.arenaFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.arenaFile == null) + { + this.arenaFile = new File(this.plugin.getDataFolder(), "achievements.yml"); + } + this.arenaConfig = YamlConfiguration.loadConfiguration(this.arenaFile); + + final InputStream defConfigStream = this.plugin.getResource("achievements.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.arenaConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java index 1b4928a6..518df001 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java @@ -1,55 +1,81 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class ArenasConfig { - - private FileConfiguration arenaConfig = null; - private File arenaFile = null; - private JavaPlugin plugin = null; - - public ArenasConfig(JavaPlugin plugin) { - this.plugin = plugin; - this.getConfig().options().header("Used for saving arena details."); - // this.getConfig().options().copyDefaults(true); - this.saveConfig(); - } - - public FileConfiguration getConfig() { - if (arenaConfig == null) { - reloadConfig(); - } - return arenaConfig; - } - - public void saveConfig() { - if (arenaConfig == null || arenaFile == null) { - return; - } - try { - getConfig().save(arenaFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (arenaFile == null) { - arenaFile = new File(plugin.getDataFolder(), "arenas.yml"); - } - arenaConfig = YamlConfiguration.loadConfiguration(arenaFile); - - InputStream defConfigStream = plugin.getResource("arenas.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - arenaConfig.setDefaults(defConfig); - } - } +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +public class ArenasConfig +{ + + private FileConfiguration arenaConfig = null; + private File arenaFile = null; + private JavaPlugin plugin = null; + + public ArenasConfig(final JavaPlugin plugin) + { + this.plugin = plugin; + this.getConfig().options().header("Used for saving arena details."); + // this.getConfig().options().copyDefaults(true); + this.saveConfig(); + } + + public FileConfiguration getConfig() + { + if (this.arenaConfig == null) + { + this.reloadConfig(); + } + return this.arenaConfig; + } + + public void saveConfig() + { + if (this.arenaConfig == null || this.arenaFile == null) + { + return; + } + try + { + this.getConfig().save(this.arenaFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.arenaFile == null) + { + this.arenaFile = new File(this.plugin.getDataFolder(), "arenas.yml"); + } + this.arenaConfig = YamlConfiguration.loadConfiguration(this.arenaFile); + + final InputStream defConfigStream = this.plugin.getResource("arenas.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.arenaConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java index d5d830c5..f86c2bd9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java @@ -1,66 +1,93 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class ClassesConfig { - - private FileConfiguration classesConfig = null; - private File classesFile = null; - private JavaPlugin plugin = null; - - public ClassesConfig(JavaPlugin plugin, boolean custom) { - this.plugin = plugin; - if (!custom) { - this.getConfig().options().header("Used for saving classes. Default class:"); - this.getConfig().addDefault("config.kits.default.name", "default"); - this.getConfig().addDefault("config.kits.default.enabled", true); - this.getConfig().addDefault("config.kits.default.items", "351:5#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.kits.default.icon", "351:5#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.kits.default.lore", "The default class.;Second line"); - this.getConfig().addDefault("config.kits.default.requires_money", false); - this.getConfig().addDefault("config.kits.default.requires_permission", false); - this.getConfig().addDefault("config.kits.default.money_amount", 100); - this.getConfig().addDefault("config.kits.default.permission_node", "minigames.kits.default"); - } - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - } - - public FileConfiguration getConfig() { - if (classesConfig == null) { - reloadConfig(); - } - return classesConfig; - } - - public void saveConfig() { - if (classesConfig == null || classesFile == null) { - return; - } - try { - getConfig().save(classesFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (classesFile == null) { - classesFile = new File(plugin.getDataFolder(), "classes.yml"); - } - classesConfig = YamlConfiguration.loadConfiguration(classesFile); - - InputStream defConfigStream = plugin.getResource("classes.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - classesConfig.setDefaults(defConfig); - } - } +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +public class ClassesConfig +{ + + private FileConfiguration classesConfig = null; + private File classesFile = null; + private JavaPlugin plugin = null; + + public ClassesConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + if (!custom) + { + this.getConfig().options().header("Used for saving classes. Default class:"); + this.getConfig().addDefault("config.kits.default.name", "default"); + this.getConfig().addDefault("config.kits.default.enabled", true); + this.getConfig().addDefault("config.kits.default.items", "351:5#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.kits.default.icon", "351:5#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.kits.default.lore", "The default class.;Second line"); + this.getConfig().addDefault("config.kits.default.requires_money", false); + this.getConfig().addDefault("config.kits.default.requires_permission", false); + this.getConfig().addDefault("config.kits.default.money_amount", 100); + this.getConfig().addDefault("config.kits.default.permission_node", "minigames.kits.default"); + } + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + } + + public FileConfiguration getConfig() + { + if (this.classesConfig == null) + { + this.reloadConfig(); + } + return this.classesConfig; + } + + public void saveConfig() + { + if (this.classesConfig == null || this.classesFile == null) + { + return; + } + try + { + this.getConfig().save(this.classesFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.classesFile == null) + { + this.classesFile = new File(this.plugin.getDataFolder(), "classes.yml"); + } + this.classesConfig = YamlConfiguration.loadConfiguration(this.classesFile); + + final InputStream defConfigStream = this.plugin.getResource("classes.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.classesConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index 755a8a92..16a1af29 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.config; import java.io.IOException; @@ -5,172 +19,184 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; -public class DefaultConfig { - - JavaPlugin plugin; - - public DefaultConfig(JavaPlugin plugin, boolean custom) { - this.plugin = plugin; - DefaultConfig.init(plugin, custom); - } - - public static void init(JavaPlugin plugin, boolean custom) { - FileConfiguration config = plugin.getConfig(); - config.options().header("The default config. Check http://dev.bukkit.org/bukkit-plugins/instances-minigamesapi/#w-tutorials \n" + "or https://github.com/instance01/MinigamesAPI/wiki/Default-Config-and-Item-Markup \n" + "for more information if you don't understand a config entry. \n" + "You can find classes (kits) in classes.yml, all saved arenas in arenas.yml, all messages in messages.yml. \n" + "You can edit/disable achievements in achievements.yml."); - if (!custom) { - config.addDefault("config.selection_items.classes_selection_item", 399); - config.addDefault("config.selection_items.exit_item", 152); - config.addDefault("config.selection_items.achievement_item", 160); - config.addDefault("config.selection_items.spectator_item", 345); - config.addDefault("config.selection_items.shop_selection_item", 388); - config.addDefault("config.GUI.classes_gui_rows", 3); - config.addDefault("config.GUI.shop_gui_rows", 3); - config.addDefault("config.spectator.spectator_after_fall_or_death", true); - config.addDefault("config.spectator.spectator_move_y_lock", true); - config.addDefault("config.defaults.default_max_players", 4); - config.addDefault("config.defaults.default_min_players", 2); - config.addDefault("config.defaults.default_max_game_time_in_minutes", 30); - config.addDefault("config.countdowns.lobby_countdown", 30); - config.addDefault("config.countdowns.ingame_countdown", 10); - config.addDefault("config.countdowns.ingame_countdown_enabled", true); - config.addDefault("config.countdowns.skip_lobby", false); - config.addDefault("config.countdowns.clearinv_while_ingamecountdown", false); - - config.addDefault("config.classes_enabled", true); - config.addDefault("config.shop_enabled", true); - config.addDefault("config.use_credits_instead_of_money_for_kits", false); - config.addDefault("config.reset_inventory_when_players_leave_server", true); - config.addDefault("config.color_background_wool_of_signs", false); - config.addDefault("config.show_classes_without_usage_permission", true); - - config.addDefault("config.rewards.economy", true); - config.addDefault("config.rewards.economy_reward", 10); - config.addDefault("config.rewards.item_reward", false); - config.addDefault("config.rewards.item_reward_ids", "264*1;11*1"); - config.addDefault("config.rewards.command_reward", false); - config.addDefault("config.rewards.command", "pex user <player> add SKILLZ.*"); - config.addDefault("config.rewards.economy_for_kills", true); - config.addDefault("config.rewards.economy_reward_for_kills", 5); - config.addDefault("config.rewards.command_reward_for_kills", false); - config.addDefault("config.rewards.command_for_kills", "pex user <player> add SKILLZ.*"); - config.addDefault("config.rewards.economy_for_participation", false); - config.addDefault("config.rewards.economy_reward_for_participation", 5); - config.addDefault("config.rewards.command_reward_for_participation", false); - config.addDefault("config.rewards.command_for_participation", "pex user <player> add SKILLZ.*"); - - config.addDefault("config.stats.points_for_kill", 2); - config.addDefault("config.stats.points_for_win", 10); - - config.addDefault("config.arcade.enabled", true); - config.addDefault("config.arcade.min_players", 1); - config.addDefault("config.arcade.max_players", 16); - config.addDefault("config.arcade.arena_to_prefer.enabled", false); - config.addDefault("config.arcade.arena_to_prefer.arena", "arena1"); - config.addDefault("config.arcade.lobby_countdown", 20); - config.addDefault("config.arcade.show_each_lobby_countdown", false); - config.addDefault("config.arcade.infinite_mode.enabled", false); - config.addDefault("config.arcade.infinite_mode.seconds_to_new_round", 10); - config.addDefault("config.bungee.game_on_join", false); - config.addDefault("config.bungee.teleport_all_to_server_on_stop.tp", false); - config.addDefault("config.bungee.teleport_all_to_server_on_stop.server", "lobby"); - config.addDefault("config.bungee.whitelist_while_game_running", false); - config.addDefault("config.execute_cmds_on_stop", false); - config.addDefault("config.cmds", ""); - config.addDefault("config.cmds_after", "say SERVER STOPPING;stop"); - config.addDefault("config.map_rotation", false); - config.addDefault("config.broadcast_win", true); - config.addDefault("config.buy_classes_forever", true); - config.addDefault("config.disable_commands_in_arena", true); - config.addDefault("config.command_whitelist", "/msg,/pm,/help"); - config.addDefault("config.leave_command", "/leave"); - config.addDefault("config.spawn_fireworks_for_winners", true); - config.addDefault("config.powerup_spawning.broadcast", false); - config.addDefault("config.powerup_spawning.spawn_firework", false); - config.addDefault("config.use_custom_scoreboard", false); - config.addDefault("config.delay.enabled", false); - config.addDefault("config.delay.amount_seconds", 5); - config.addDefault("config.send_game_started_msg", false); - config.addDefault("config.auto_add_default_kit", true); - config.addDefault("config.last_man_standing_wins", true); - config.addDefault("config.effects.blood", true); - config.addDefault("config.effects.damage_identifier_holograms", true); - config.addDefault("config.effects.dead_in_fake_bed", true); - config.addDefault("config.effects.1_8_titles", true); - config.addDefault("config.effects.1_8_spectator_mode", false); - config.addDefault("config.sounds.lobby_countdown", "none"); - config.addDefault("config.sounds.ingame_countdown", "SUCCESSFUL_HIT"); - config.addDefault("config.chat_per_arena_only", false); - config.addDefault("config.chat_show_score_in_arena", false); - config.addDefault("config.compass_tracking_enabled", true); - config.addDefault("config.allow_classes_selection_out_of_arenas", false); - config.addDefault("config.send_stats_on_stop", true); - config.addDefault("config.use_xp_bar_level", true); - config.addDefault("config.use_old_reset_method", false); - config.addDefault("config.chat_enabled", true); - - config.addDefault("config.extra_lobby_item.item0.enabled", false); - config.addDefault("config.extra_lobby_item.item0.item", 9); - config.addDefault("config.extra_lobby_item.item0.name", "Custom Name".replace("&", "§")); - config.addDefault("config.extra_lobby_item.item0.command", "say This is a custom extra lobby item."); - - config.addDefault("mysql.enabled", false); - config.addDefault("mysql.host", "127.0.0.1"); - config.addDefault("mysql.user", "root"); - config.addDefault("mysql.pw", "root"); - config.addDefault("mysql.database", "mcminigames"); - } - config.options().copyDefaults(true); - plugin.saveConfig(); - - try { - convert(plugin); - } catch (Exception e) { - - } - } - - public static void convert(JavaPlugin plugin) throws IOException { - FileConfiguration config = plugin.getConfig(); - if (!config.isSet("config.version")) { - // TODO new config - config.set("config.selection_items.classes_selection_item", config.get("config.classes_selection_item")); - config.set("config.selection_items.exit_item", config.get("config.exit_item")); - config.set("config.selection_items.achievement_item", config.get("config.achievement_item")); - config.set("config.selection_items.spectator_item", config.get("config.exit_item")); - config.set("config.selection_items.shop_selection_item", config.get("config.shop_selection_item")); - config.set("config.GUI.classes_gui_rows", config.get("config.classes_gui_rows")); - config.set("config.GUI.shop_gui_rows", config.get("config.shop_gui_rows")); - config.set("config.spectator.spectator_after_fall_or_death", config.get("config.spectator_after_fall_or_death")); - config.set("config.spectator.spectator_move_y_lock", config.get("config.spectator_move_y_lock")); - config.set("config.defaults.default_max_players", config.get("config.default_max_players")); - config.set("config.defaults.default_min_players", config.get("config.default_min_players")); - config.set("config.defaults.default_max_game_time_in_minutes", config.get("config.default_max_game_time_in_minutes")); - config.set("config.countdowns.lobby_countdown", config.get("config.lobby_countdown")); - config.set("config.countdowns.ingame_countdown", config.get("config.ingame_countdown")); - config.set("config.countdowns.ingame_countdown_enabled", config.get("config.ingame_countdown_enabled")); - config.set("config.countdowns.skip_lobby", config.get("config.skip_lobby")); - config.set("config.countdowns.clearinv_while_ingamecountdown", config.get("config.clearinv_while_ingamecountdown")); - - config.set("config.classes_selection_item", null); - config.set("config.exit_item", null); - config.set("config.achievement_item", null); - config.set("config.shop_selection_item", null); - config.set("config.classes_gui_rows", null); - config.set("config.shop_gui_rows", null); - config.set("config.clearinv_while_ingamecountdown", null); - config.set("config.spectator_after_fall_or_death", null); - config.set("config.spectator_move_y_lock", null); - config.set("config.default_max_players", null); - config.set("config.default_min_players", null); - config.set("config.default_max_game_time_in_minutes", null); - config.set("config.lobby_countdown", null); - config.set("config.ingame_countdown", null); - config.set("config.ingame_countdown_enabled", null); - config.set("config.skip_lobby", null); - - config.set("config.version", 1); - plugin.saveConfig(); - } - } - +public class DefaultConfig +{ + + JavaPlugin plugin; + + public DefaultConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + DefaultConfig.init(plugin, custom); + } + + public static void init(final JavaPlugin plugin, final boolean custom) + { + final FileConfiguration config = plugin.getConfig(); + config.options() + .header("The default config. Check http://dev.bukkit.org/bukkit-plugins/instances-minigamesapi/#w-tutorials \n" + + "or https://github.com/instance01/MinigamesAPI/wiki/Default-Config-and-Item-Markup \n" + "for more information if you don't understand a config entry. \n" + + "You can find classes (kits) in classes.yml, all saved arenas in arenas.yml, all messages in messages.yml. \n" + "You can edit/disable achievements in achievements.yml."); + if (!custom) + { + config.addDefault("config.selection_items.classes_selection_item", 399); + config.addDefault("config.selection_items.exit_item", 152); + config.addDefault("config.selection_items.achievement_item", 160); + config.addDefault("config.selection_items.spectator_item", 345); + config.addDefault("config.selection_items.shop_selection_item", 388); + config.addDefault("config.GUI.classes_gui_rows", 3); + config.addDefault("config.GUI.shop_gui_rows", 3); + config.addDefault("config.spectator.spectator_after_fall_or_death", true); + config.addDefault("config.spectator.spectator_move_y_lock", true); + config.addDefault("config.defaults.default_max_players", 4); + config.addDefault("config.defaults.default_min_players", 2); + config.addDefault("config.defaults.default_max_game_time_in_minutes", 30); + config.addDefault("config.countdowns.lobby_countdown", 30); + config.addDefault("config.countdowns.ingame_countdown", 10); + config.addDefault("config.countdowns.ingame_countdown_enabled", true); + config.addDefault("config.countdowns.skip_lobby", false); + config.addDefault("config.countdowns.clearinv_while_ingamecountdown", false); + + config.addDefault("config.classes_enabled", true); + config.addDefault("config.shop_enabled", true); + config.addDefault("config.use_credits_instead_of_money_for_kits", false); + config.addDefault("config.reset_inventory_when_players_leave_server", true); + config.addDefault("config.color_background_wool_of_signs", false); + config.addDefault("config.show_classes_without_usage_permission", true); + + config.addDefault("config.rewards.economy", true); + config.addDefault("config.rewards.economy_reward", 10); + config.addDefault("config.rewards.item_reward", false); + config.addDefault("config.rewards.item_reward_ids", "264*1;11*1"); + config.addDefault("config.rewards.command_reward", false); + config.addDefault("config.rewards.command", "pex user <player> add SKILLZ.*"); + config.addDefault("config.rewards.economy_for_kills", true); + config.addDefault("config.rewards.economy_reward_for_kills", 5); + config.addDefault("config.rewards.command_reward_for_kills", false); + config.addDefault("config.rewards.command_for_kills", "pex user <player> add SKILLZ.*"); + config.addDefault("config.rewards.economy_for_participation", false); + config.addDefault("config.rewards.economy_reward_for_participation", 5); + config.addDefault("config.rewards.command_reward_for_participation", false); + config.addDefault("config.rewards.command_for_participation", "pex user <player> add SKILLZ.*"); + + config.addDefault("config.stats.points_for_kill", 2); + config.addDefault("config.stats.points_for_win", 10); + + config.addDefault("config.arcade.enabled", true); + config.addDefault("config.arcade.min_players", 1); + config.addDefault("config.arcade.max_players", 16); + config.addDefault("config.arcade.arena_to_prefer.enabled", false); + config.addDefault("config.arcade.arena_to_prefer.arena", "arena1"); + config.addDefault("config.arcade.lobby_countdown", 20); + config.addDefault("config.arcade.show_each_lobby_countdown", false); + config.addDefault("config.arcade.infinite_mode.enabled", false); + config.addDefault("config.arcade.infinite_mode.seconds_to_new_round", 10); + config.addDefault("config.bungee.game_on_join", false); + config.addDefault("config.bungee.teleport_all_to_server_on_stop.tp", false); + config.addDefault("config.bungee.teleport_all_to_server_on_stop.server", "lobby"); + config.addDefault("config.bungee.whitelist_while_game_running", false); + config.addDefault("config.execute_cmds_on_stop", false); + config.addDefault("config.cmds", ""); + config.addDefault("config.cmds_after", "say SERVER STOPPING;stop"); + config.addDefault("config.map_rotation", false); + config.addDefault("config.broadcast_win", true); + config.addDefault("config.buy_classes_forever", true); + config.addDefault("config.disable_commands_in_arena", true); + config.addDefault("config.command_whitelist", "/msg,/pm,/help"); + config.addDefault("config.leave_command", "/leave"); + config.addDefault("config.spawn_fireworks_for_winners", true); + config.addDefault("config.powerup_spawning.broadcast", false); + config.addDefault("config.powerup_spawning.spawn_firework", false); + config.addDefault("config.use_custom_scoreboard", false); + config.addDefault("config.delay.enabled", false); + config.addDefault("config.delay.amount_seconds", 5); + config.addDefault("config.send_game_started_msg", false); + config.addDefault("config.auto_add_default_kit", true); + config.addDefault("config.last_man_standing_wins", true); + config.addDefault("config.effects.blood", true); + config.addDefault("config.effects.damage_identifier_holograms", true); + config.addDefault("config.effects.dead_in_fake_bed", true); + config.addDefault("config.effects.1_8_titles", true); + config.addDefault("config.effects.1_8_spectator_mode", false); + config.addDefault("config.sounds.lobby_countdown", "none"); + config.addDefault("config.sounds.ingame_countdown", "SUCCESSFUL_HIT"); + config.addDefault("config.chat_per_arena_only", false); + config.addDefault("config.chat_show_score_in_arena", false); + config.addDefault("config.compass_tracking_enabled", true); + config.addDefault("config.allow_classes_selection_out_of_arenas", false); + config.addDefault("config.send_stats_on_stop", true); + config.addDefault("config.use_xp_bar_level", true); + config.addDefault("config.use_old_reset_method", false); + config.addDefault("config.chat_enabled", true); + + config.addDefault("config.extra_lobby_item.item0.enabled", false); + config.addDefault("config.extra_lobby_item.item0.item", 9); + config.addDefault("config.extra_lobby_item.item0.name", "Custom Name".replace("&", "§")); + config.addDefault("config.extra_lobby_item.item0.command", "say This is a custom extra lobby item."); + + config.addDefault("mysql.enabled", false); + config.addDefault("mysql.host", "127.0.0.1"); + config.addDefault("mysql.user", "root"); + config.addDefault("mysql.pw", "root"); + config.addDefault("mysql.database", "mcminigames"); + } + config.options().copyDefaults(true); + plugin.saveConfig(); + + try + { + DefaultConfig.convert(plugin); + } + catch (final Exception e) + { + // silently ignore + } + } + + public static void convert(final JavaPlugin plugin) throws IOException + { + final FileConfiguration config = plugin.getConfig(); + if (!config.isSet("config.version")) + { + // TODO new config + config.set("config.selection_items.classes_selection_item", config.get("config.classes_selection_item")); + config.set("config.selection_items.exit_item", config.get("config.exit_item")); + config.set("config.selection_items.achievement_item", config.get("config.achievement_item")); + config.set("config.selection_items.spectator_item", config.get("config.exit_item")); + config.set("config.selection_items.shop_selection_item", config.get("config.shop_selection_item")); + config.set("config.GUI.classes_gui_rows", config.get("config.classes_gui_rows")); + config.set("config.GUI.shop_gui_rows", config.get("config.shop_gui_rows")); + config.set("config.spectator.spectator_after_fall_or_death", config.get("config.spectator_after_fall_or_death")); + config.set("config.spectator.spectator_move_y_lock", config.get("config.spectator_move_y_lock")); + config.set("config.defaults.default_max_players", config.get("config.default_max_players")); + config.set("config.defaults.default_min_players", config.get("config.default_min_players")); + config.set("config.defaults.default_max_game_time_in_minutes", config.get("config.default_max_game_time_in_minutes")); + config.set("config.countdowns.lobby_countdown", config.get("config.lobby_countdown")); + config.set("config.countdowns.ingame_countdown", config.get("config.ingame_countdown")); + config.set("config.countdowns.ingame_countdown_enabled", config.get("config.ingame_countdown_enabled")); + config.set("config.countdowns.skip_lobby", config.get("config.skip_lobby")); + config.set("config.countdowns.clearinv_while_ingamecountdown", config.get("config.clearinv_while_ingamecountdown")); + + config.set("config.classes_selection_item", null); + config.set("config.exit_item", null); + config.set("config.achievement_item", null); + config.set("config.shop_selection_item", null); + config.set("config.classes_gui_rows", null); + config.set("config.shop_gui_rows", null); + config.set("config.clearinv_while_ingamecountdown", null); + config.set("config.spectator_after_fall_or_death", null); + config.set("config.spectator_move_y_lock", null); + config.set("config.default_max_players", null); + config.set("config.default_min_players", null); + config.set("config.default_max_game_time_in_minutes", null); + config.set("config.lobby_countdown", null); + config.set("config.ingame_countdown", null); + config.set("config.ingame_countdown_enabled", null); + config.set("config.skip_lobby", null); + + config.set("config.version", 1); + plugin.saveConfig(); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java index 8d6f5923..4407aa31 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java @@ -1,98 +1,125 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class GunsConfig { - - private FileConfiguration arenaConfig = null; - private File arenaFile = null; - private JavaPlugin plugin = null; - - // TODO add bullet option - - public GunsConfig(JavaPlugin plugin, boolean custom) { - this.plugin = plugin; - if (!custom) { - this.getConfig().options().header("Be aware that this config is barely used in any minigame. \nUsed for saving gun classes. Default:"); - this.getConfig().addDefault("config.guns.pistol.name", "Pistol"); - this.getConfig().addDefault("config.guns.pistol.items", "256#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.pistol.icon", "256#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.pistol.lore", "The Pistol."); - this.getConfig().addDefault("config.guns.pistol.speed", 1D); - this.getConfig().addDefault("config.guns.pistol.durability", 50); - this.getConfig().addDefault("config.guns.pistol.shoot_amount", 1); - this.getConfig().addDefault("config.guns.pistol.knockback_multiplier", 1.1D); - this.getConfig().addDefault("config.guns.pistol.permission_node", "minigames.guns.pistol"); - - this.getConfig().addDefault("config.guns.sniper.name", "Sniper"); - this.getConfig().addDefault("config.guns.sniper.items", "292#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.sniper.icon", "292#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.sniper.lore", "The Sniper."); - this.getConfig().addDefault("config.guns.sniper.speed", 0.5D); - this.getConfig().addDefault("config.guns.sniper.durability", 10); - this.getConfig().addDefault("config.guns.sniper.shoot_amount", 1); - this.getConfig().addDefault("config.guns.sniper.knockback_multiplier", 3D); - this.getConfig().addDefault("config.guns.sniper.permission_node", "minigames.guns.sniper"); - - this.getConfig().addDefault("config.guns.grenade.name", "Grenade Launcher"); - this.getConfig().addDefault("config.guns.grenade.items", "257#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.grenade.icon", "257#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.grenade.lore", "The Grenade Launcher."); - this.getConfig().addDefault("config.guns.grenade.speed", 0.1D); - this.getConfig().addDefault("config.guns.grenade.durability", 10); - this.getConfig().addDefault("config.guns.grenade.shoot_amount", 1); - this.getConfig().addDefault("config.guns.grenade.knockback_multiplier", 2.5D); - this.getConfig().addDefault("config.guns.grenade.permission_node", "minigames.guns.grenade"); - - this.getConfig().addDefault("config.guns.freeze.name", "Freeze Gun"); - this.getConfig().addDefault("config.guns.freeze.items", "258#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.freeze.icon", "258#DAMAGE_ALL:1#KNOCKBACK*1"); - this.getConfig().addDefault("config.guns.freeze.lore", "The Freeze Gun."); - this.getConfig().addDefault("config.guns.freeze.speed", 0.8D); - this.getConfig().addDefault("config.guns.freeze.durability", 5); - this.getConfig().addDefault("config.guns.freeze.shoot_amount", 1); - this.getConfig().addDefault("config.guns.freeze.knockback_multiplier", 0.5D); - this.getConfig().addDefault("config.guns.freeze.permission_node", "minigames.guns.freeze"); - } - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - } - - public FileConfiguration getConfig() { - if (arenaConfig == null) { - reloadConfig(); - } - return arenaConfig; - } - - public void saveConfig() { - if (arenaConfig == null || arenaFile == null) { - return; - } - try { - getConfig().save(arenaFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (arenaFile == null) { - arenaFile = new File(plugin.getDataFolder(), "guns.yml"); - } - arenaConfig = YamlConfiguration.loadConfiguration(arenaFile); - - InputStream defConfigStream = plugin.getResource("guns.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - arenaConfig.setDefaults(defConfig); - } - } +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +public class GunsConfig +{ + + private FileConfiguration arenaConfig = null; + private File arenaFile = null; + private JavaPlugin plugin = null; + + // TODO add bullet option + + public GunsConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + if (!custom) + { + this.getConfig().options().header("Be aware that this config is barely used in any minigame. \nUsed for saving gun classes. Default:"); + this.getConfig().addDefault("config.guns.pistol.name", "Pistol"); + this.getConfig().addDefault("config.guns.pistol.items", "256#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.pistol.icon", "256#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.pistol.lore", "The Pistol."); + this.getConfig().addDefault("config.guns.pistol.speed", 1D); + this.getConfig().addDefault("config.guns.pistol.durability", 50); + this.getConfig().addDefault("config.guns.pistol.shoot_amount", 1); + this.getConfig().addDefault("config.guns.pistol.knockback_multiplier", 1.1D); + this.getConfig().addDefault("config.guns.pistol.permission_node", "minigames.guns.pistol"); + + this.getConfig().addDefault("config.guns.sniper.name", "Sniper"); + this.getConfig().addDefault("config.guns.sniper.items", "292#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.sniper.icon", "292#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.sniper.lore", "The Sniper."); + this.getConfig().addDefault("config.guns.sniper.speed", 0.5D); + this.getConfig().addDefault("config.guns.sniper.durability", 10); + this.getConfig().addDefault("config.guns.sniper.shoot_amount", 1); + this.getConfig().addDefault("config.guns.sniper.knockback_multiplier", 3D); + this.getConfig().addDefault("config.guns.sniper.permission_node", "minigames.guns.sniper"); + + this.getConfig().addDefault("config.guns.grenade.name", "Grenade Launcher"); + this.getConfig().addDefault("config.guns.grenade.items", "257#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.grenade.icon", "257#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.grenade.lore", "The Grenade Launcher."); + this.getConfig().addDefault("config.guns.grenade.speed", 0.1D); + this.getConfig().addDefault("config.guns.grenade.durability", 10); + this.getConfig().addDefault("config.guns.grenade.shoot_amount", 1); + this.getConfig().addDefault("config.guns.grenade.knockback_multiplier", 2.5D); + this.getConfig().addDefault("config.guns.grenade.permission_node", "minigames.guns.grenade"); + + this.getConfig().addDefault("config.guns.freeze.name", "Freeze Gun"); + this.getConfig().addDefault("config.guns.freeze.items", "258#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.freeze.icon", "258#DAMAGE_ALL:1#KNOCKBACK*1"); + this.getConfig().addDefault("config.guns.freeze.lore", "The Freeze Gun."); + this.getConfig().addDefault("config.guns.freeze.speed", 0.8D); + this.getConfig().addDefault("config.guns.freeze.durability", 5); + this.getConfig().addDefault("config.guns.freeze.shoot_amount", 1); + this.getConfig().addDefault("config.guns.freeze.knockback_multiplier", 0.5D); + this.getConfig().addDefault("config.guns.freeze.permission_node", "minigames.guns.freeze"); + } + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + } + + public FileConfiguration getConfig() + { + if (this.arenaConfig == null) + { + this.reloadConfig(); + } + return this.arenaConfig; + } + + public void saveConfig() + { + if (this.arenaConfig == null || this.arenaFile == null) + { + return; + } + try + { + this.getConfig().save(this.arenaFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.arenaFile == null) + { + this.arenaFile = new File(this.plugin.getDataFolder(), "guns.yml"); + } + this.arenaConfig = YamlConfiguration.loadConfiguration(this.arenaFile); + + final InputStream defConfigStream = this.plugin.getResource("guns.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.arenaConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java index 78d6fef2..61524371 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java @@ -1,57 +1,84 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class HologramsConfig { - - private FileConfiguration holoConfig = null; - private File holoFile = null; - private JavaPlugin plugin = null; - - public HologramsConfig(JavaPlugin plugin, boolean custom) { - this.plugin = plugin; - if (!custom) { - this.getConfig().options().header("Used for saving stats holograms."); - } - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - } - - public FileConfiguration getConfig() { - if (holoConfig == null) { - reloadConfig(); - } - return holoConfig; - } - - public void saveConfig() { - if (holoConfig == null || holoFile == null) { - return; - } - try { - getConfig().save(holoFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (holoFile == null) { - holoFile = new File(plugin.getDataFolder(), "holograms.yml"); - } - holoConfig = YamlConfiguration.loadConfiguration(holoFile); - - InputStream defConfigStream = plugin.getResource("holograms.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - holoConfig.setDefaults(defConfig); - } - } +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +public class HologramsConfig +{ + + private FileConfiguration holoConfig = null; + private File holoFile = null; + private JavaPlugin plugin = null; + + public HologramsConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + if (!custom) + { + this.getConfig().options().header("Used for saving stats holograms."); + } + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + } + + public FileConfiguration getConfig() + { + if (this.holoConfig == null) + { + this.reloadConfig(); + } + return this.holoConfig; + } + + public void saveConfig() + { + if (this.holoConfig == null || this.holoFile == null) + { + return; + } + try + { + this.getConfig().save(this.holoFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.holoFile == null) + { + this.holoFile = new File(this.plugin.getDataFolder(), "holograms.yml"); + } + this.holoConfig = YamlConfiguration.loadConfiguration(this.holoFile); + + final InputStream defConfigStream = this.plugin.getResource("holograms.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.holoConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index 4000d7a5..25a83499 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.config; import java.io.File; @@ -13,329 +27,346 @@ import com.comze_instancelabs.minigamesapi.ArenaState; -public class MessagesConfig { - - private FileConfiguration messagesConfig = null; - private File messagesFile = null; - private JavaPlugin plugin = null; - - public MessagesConfig(JavaPlugin plugin) { - this.plugin = plugin; - Arrays.fill(squares_mid, (char) 0x25A0); - Arrays.fill(squares_full, (char) 0x2588); - Arrays.fill(squares_medium, (char) 0x2592); - Arrays.fill(squares_light, (char) 0x2591); - for (int i = 0; i < 10; i++) { - squares += Character.toString((char) 0x25A0); - } - this.init(); - } - - public static String squares = Character.toString((char) 0x25A0); - - public static char[] squares_mid = new char[10]; - public static char[] squares_full = new char[10]; - public static char[] squares_medium = new char[10]; - public static char[] squares_light = new char[10]; - - public void init() { - // all signs - this.getConfig().options().header("Contains all messages for easy translation. You can remove a mesage by setting it to nothing, like so: ''"); - HashMap<String, String> namecol = ArenaState.getAllStateNameColors(); - for (String state : namecol.keySet()) { - String color = namecol.get(state); - this.getConfig().addDefault("signs." + state.toLowerCase() + ".0", color + "[]"); - this.getConfig().addDefault("signs." + state.toLowerCase() + ".1", color + "<arena>"); - this.getConfig().addDefault("signs." + state.toLowerCase() + ".2", color + "<count>/<maxcount>"); - this.getConfig().addDefault("signs." + state.toLowerCase() + ".3", color + "[]"); - } - - // Arcade sign (I think that one is unused) - this.getConfig().addDefault("signs.arcade.0", "[]"); - this.getConfig().addDefault("signs.arcade.1", "&cArcade"); - this.getConfig().addDefault("signs.arcade.2", "<count>/<maxcount>"); - this.getConfig().addDefault("signs.arcade.3", "[]"); - - // Leave sign - this.getConfig().addDefault("signs.leave.0", ""); - this.getConfig().addDefault("signs.leave.1", "&4Leave"); - this.getConfig().addDefault("signs.leave.2", ""); - this.getConfig().addDefault("signs.leave.3", ""); - - // Random arena sign - this.getConfig().addDefault("signs.random.0", "&a[]"); - this.getConfig().addDefault("signs.random.1", "&2Random"); - this.getConfig().addDefault("signs.random.2", ""); - this.getConfig().addDefault("signs.random.3", "&a[]"); - - this.getConfig().addDefault("messages.no_perm", no_perm); - this.getConfig().addDefault("messages.successfully_reloaded", successfully_reloaded); - this.getConfig().addDefault("messages.successfully_set", successfully_set); - this.getConfig().addDefault("messages.successfully_saved_arena", successfully_saved_arena); - this.getConfig().addDefault("messages.arena_invalid", arena_invalid); - this.getConfig().addDefault("messages.failed_saving_arena", failed_saving_arena); - this.getConfig().addDefault("messages.broadcast_players_left", broadcast_players_left); - this.getConfig().addDefault("messages.broadcast_player_joined", broadcast_player_joined); - this.getConfig().addDefault("messages.player_died", player_died); - this.getConfig().addDefault("messages.arena_action", arena_action); - this.getConfig().addDefault("messages.you_already_are_in_arena", you_already_are_in_arena); - this.getConfig().addDefault("messages.you_joined_arena", you_joined_arena); - this.getConfig().addDefault("messages.not_in_arena", not_in_arena); - this.getConfig().addDefault("messages.teleporting_to_arena_in", teleporting_to_arena_in); - this.getConfig().addDefault("messages.starting_in", starting_in); - this.getConfig().addDefault("messages.failed_removing_arena", failed_removing_arena); - this.getConfig().addDefault("messages.successfully_removed", successfully_removed); - this.getConfig().addDefault("messages.failed_removing_component", failed_removing_component); - this.getConfig().addDefault("messages.joined_arena", joined_arena); - this.getConfig().addDefault("messages.you_won", you_won); - this.getConfig().addDefault("messages.you_lost", you_lost); - this.getConfig().addDefault("messages.you_got_a_kill", you_got_a_kill); - this.getConfig().addDefault("messages.player_was_killed_by", player_was_killed_by); - this.getConfig().addDefault("messages.arena_not_initialized", arena_not_initialized); - this.getConfig().addDefault("messages.guns.attributelevel_increased", attributelevel_increased); - this.getConfig().addDefault("messages.guns.not_enough_credits", not_enough_credits); - this.getConfig().addDefault("messages.guns.too_many_main_guns", too_many_main_guns); - this.getConfig().addDefault("messages.guns.successfully_set_main_gun", successfully_set_main_gun); - this.getConfig().addDefault("messages.guns.all_guns", all_guns); - this.getConfig().addDefault("messages.arcade_next_minigame", arcade_next_minigame); - this.getConfig().addDefault("messages.arcade_joined_waiting", arcade_joined_waiting); - this.getConfig().addDefault("messages.arcade_joined_spectator", arcade_joined_spectator); - this.getConfig().addDefault("messages.arcade_new_round", arcade_new_round); - this.getConfig().addDefault("messages.arena_disabled", arena_disabled); - this.getConfig().addDefault("messages.you_can_leave_with", you_can_leave_with); - this.getConfig().addDefault("messages.no_perm_to_join_arena", no_perm_to_join_arena); - this.getConfig().addDefault("messages.set_kit", set_kit); - this.getConfig().addDefault("messages.classes_item", classes_item); - this.getConfig().addDefault("messages.achievement_item", achievement_item); - this.getConfig().addDefault("messages.shop_item", shop_item); - this.getConfig().addDefault("messages.spectator_item", spectator_item); - this.getConfig().addDefault("messages.server_broadcast_winner", server_broadcast_winner); - this.getConfig().addDefault("messages.exit_item", exit_item); - this.getConfig().addDefault("messages.successfully_bought_kit", successfully_bought_kit); - this.getConfig().addDefault("messages.scoreboard.title", scoreboard_title); - this.getConfig().addDefault("messages.scoreboard.lobby_title", scoreboard_lobby_title); - this.getConfig().addDefault("messages.you_got_kicked_because_vip_joined", you_got_kicked_because_vip_joined); - this.getConfig().addDefault("messages.powerup_spawned", powerup_spawned); - if (!this.getConfig().isSet("config.generatedv182")) { - this.getConfig().addDefault("messages.custom_scoreboard.line0", "Players:<playercount>"); - this.getConfig().addDefault("messages.custom_scoreboard.line1", "Spectators:<lostplayercount>"); - this.getConfig().addDefault("messages.custom_scoreboard.line2", "Alive:<playeralivecount>"); - this.getConfig().addDefault("messages.custom_scoreboard.line3", "Your Credits:<points>"); - this.getConfig().addDefault("messages.custom_scoreboard.line4", "Your Wins:<wins>"); - this.getConfig().addDefault("messages.custom_lobby_scoreboard.line0", "Players:<playercount>"); - this.getConfig().addDefault("messages.custom_lobby_scoreboard.line1", "Max Players:<maxplayercount>"); - this.getConfig().addDefault("messages.custom_lobby_scoreboard.line2", "Your Credits:<points>"); - this.getConfig().addDefault("messages.custom_lobby_scoreboard.line3", "Your Wins:<wins>"); - } - this.getConfig().addDefault("messages.you_got_the_achievement", you_got_the_achievement); - this.getConfig().addDefault("messages.game_started", game_started); - this.getConfig().addDefault("messages.author_of_the_map", author_of_the_map); - this.getConfig().addDefault("messages.description_of_the_map", description_of_the_map); - this.getConfig().addDefault("messages.not_enough_money", not_enough_money); - this.getConfig().addDefault("messages.possible_kits", possible_kits); - this.getConfig().addDefault("messages.possible_shopitems", possible_shopitems); - this.getConfig().addDefault("messages.cancelled_starting", cancelled_starting); - this.getConfig().addDefault("messages.minigame_description", minigame_description); - this.getConfig().addDefault("messages.successfully_bought_shopitem", successfully_bought_shopitem); - this.getConfig().addDefault("messages.already_bought_shopitem", already_bought_shopitem); - this.getConfig().addDefault("messages.you_received_rewards", you_received_rewards); - this.getConfig().addDefault("messages.you_received_rewards_2", you_received_rewards_2); - this.getConfig().addDefault("messages.you_received_rewards_3", you_received_rewards_3); - this.getConfig().addDefault("messages.already_in_arena", already_in_arena); - this.getConfig().addDefault("messages.stop_cause_maximum_game_time", stop_cause_maximum_game_time); - this.getConfig().addDefault("messages.compass.no_player_found", compass_no_player_found); - this.getConfig().addDefault("messages.compass.found_player", compass_player_found); - this.getConfig().addDefault("messages.you_got_a_participation_reward", you_got_a_participation_reward); - this.getConfig().addDefault("messages.kit_warning", kit_warning); - if (!this.getConfig().isSet("config.generatedv1102")) { - this.getConfig().addDefault("messages.stats.line0", "&7----- &a&lStats &7-----; "); - this.getConfig().addDefault("messages.stats.line1", "&7Wins: &a<wins>"); - this.getConfig().addDefault("messages.stats.line2", "&7Loses: &c<loses>"); - this.getConfig().addDefault("messages.stats.line3", "&7Alltime Kills: &a<alltime_kills>"); - this.getConfig().addDefault("messages.stats.line4", "&7Alltime Deaths: &c<alltime_deaths>"); - this.getConfig().addDefault("messages.stats.line5", "&7KDR: &e<kdr>"); - this.getConfig().addDefault("messages.stats.line6", "&7Points: &e<points>"); - this.getConfig().addDefault("messages.stats.line7", " ;&7-----------------"); - } - - // save - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - - // load - this.no_perm = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.no_perm")); - this.successfully_reloaded = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.successfully_reloaded")); - this.successfully_set = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.successfully_set")); - this.successfully_saved_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.successfully_saved_arena")); - this.failed_saving_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.failed_saving_arena")); - this.arena_invalid = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arena_invalid")); - this.player_died = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.player_died")); - this.broadcast_players_left = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.broadcast_players_left")); - this.broadcast_player_joined = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.broadcast_player_joined")); - this.arena_action = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arena_action")); - this.you_already_are_in_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_already_are_in_arena")); - this.you_joined_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_joined_arena")); - this.not_in_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.not_in_arena")); - this.teleporting_to_arena_in = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.teleporting_to_arena_in")); - this.starting_in = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.starting_in")); - this.failed_removing_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.failed_removing_arena")); - this.successfully_removed = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.successfully_removed")); - this.failed_removing_component = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.failed_removing_component")); - this.joined_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.joined_arena")); - this.you_won = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_won")); - this.you_lost = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_lost")); - this.you_got_a_kill = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_got_a_kill")); - this.player_was_killed_by = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.player_was_killed_by")); - this.arena_not_initialized = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arena_not_initialized")); - this.arcade_next_minigame = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arcade_next_minigame")); - this.arcade_new_round = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arcade_new_round")); - this.arena_disabled = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arena_disabled")); - this.you_can_leave_with = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_can_leave_with")); - this.arcade_joined_waiting = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arcade_joined_waiting")); - this.arcade_joined_spectator = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.arcade_joined_spectator")); - this.no_perm_to_join_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.no_perm_to_join_arena")); - this.set_kit = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.set_kit")); - this.classes_item = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.classes_item")); - this.achievement_item = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.achievement_item")); - this.shop_item = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.shop_item")); - this.spectator_item = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.spectator_item")); - this.server_broadcast_winner = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.server_broadcast_winner")); - this.exit_item = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.exit_item")); - this.successfully_bought_kit = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.successfully_bought_kit")); - this.scoreboard_title = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.scoreboard.title")); - this.scoreboard_lobby_title = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.scoreboard.lobby_title")); - this.you_got_kicked_because_vip_joined = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_got_kicked_because_vip_joined")); - this.powerup_spawned = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.powerup_spawned")); - this.you_got_the_achievement = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_got_the_achievement")); - this.game_started = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.game_started")); - this.author_of_the_map = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.author_of_the_map")); - this.description_of_the_map = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.description_of_the_map")); - this.not_enough_money = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.not_enough_money")); - this.possible_kits = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.possible_kits")); - this.possible_shopitems = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.possible_shopitems")); - this.cancelled_starting = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.cancelled_starting")); - this.minigame_description = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.minigame_description")); - this.successfully_bought_shopitem = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.successfully_bought_shopitem")); - this.already_bought_shopitem = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.already_bought_shopitem")); - this.you_received_rewards = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_received_rewards")); - this.you_received_rewards_2 = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_received_rewards_2")); - this.you_received_rewards_3 = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_received_rewards_3")); - this.already_in_arena = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.already_in_arena")); - this.stop_cause_maximum_game_time = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.stop_cause_maximum_game_time")); - this.compass_no_player_found = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.compass.no_player_found")); - this.compass_player_found = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.compass.found_player")); - this.you_got_a_participation_reward = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_got_a_participation_reward")); - this.kit_warning = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.kit_warning")); - - this.attributelevel_increased = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.guns.attributelevel_increased")); - this.not_enough_credits = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.guns.not_enough_credits")); - this.too_many_main_guns = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.guns.too_many_main_guns")); - this.successfully_set_main_gun = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.guns.successfully_set_main_gun")); - this.all_guns = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.guns.all_guns")); - - this.getConfig().set("config.generatedv182", true); - this.getConfig().set("config.generatedv1102", true); - this.saveConfig(); - } - - public String no_perm = "&cYou don't have permission."; - public String successfully_reloaded = "&aSuccessfully reloaded all configs."; - public String successfully_set = "&aSuccessfully set &3<component>&a."; - public String successfully_saved_arena = "&aSuccessfully saved &3<arena>&a."; - public String failed_saving_arena = "&cFailed to save &3<arena>&c."; - public String failed_removing_arena = "&cFailed to remove &3<arena>&c."; - public String arena_invalid = "&3<arena> &cappears to be invalid."; - public String broadcast_players_left = "&eThere are &4<count> &eplayers left!"; - public String broadcast_player_joined = "&2<player> &ajoined the arena! (<count>/<maxcount>)"; - public String player_died = "&c<player> died."; - public String arena_action = "&aYou <action> arena &3<arena>&a!"; - public String you_joined_arena = "&aYou joined arena &3<arena>&a!"; - public String you_already_are_in_arena = "&aYou already seem to be in arena &3<arena>&a!"; - public String arena_not_initialized = "&cThe arena appears to be not initialized, did you save the arena?"; - public String not_in_arena = "&cYou don't seem to be in an arena right now."; - public String teleporting_to_arena_in = "&7Teleporting to arena in <count>."; - public String starting_in = "&aStarting in <count>!"; - public String successfully_removed = "&cSuccessfully removed &3<component>&c!"; - public String failed_removing_component = "&cFailed removing &3<component>&c. <cause>."; - public String joined_arena = "&aYou joined &3<arena>&a."; - public String you_won = "&aYou &2won &athe game!"; - public String you_lost = "&cYou &4lost &cthe game."; - public String you_got_a_kill = "&aYou killed &2<player>!"; - public String player_was_killed_by = "&4<player> &cwas killed by &4<killer>&c!"; - public String attributelevel_increased = "&aThe <attribute> level was increased successfully!"; - public String not_enough_credits = "&cThe max level of 3 was reached or you don't have enough credits. Needed: <credits>"; - public String too_many_main_guns = "&cYou already have 2 main guns, remove one first."; - public String successfully_set_main_gun = "&aSuccessfully set a main gun (of a maximum of two)."; - public String arcade_next_minigame = "&6Next Arcade game: &4<minigame>&6!"; - public String arena_disabled = "&cThe arena is disabled thus you can't join."; - public String all_guns = "&aYour current main guns: &2<guns>"; - public String you_can_leave_with = "&cYou can leave with <cmd> or /l!"; - public String arcade_joined_spectator = "&6You joined Arcade as a spectator! You'll be able to play in the next minigame."; - public String arcade_joined_waiting = "&6You joined Arcade! Waiting for <count> more players to start."; - public String arcade_new_round = "&6Next Arcade round in <count>!"; - public String no_perm_to_join_arena = "&cYou don't have permission (arenas.<arena>) to join this arena as it's vip!"; - public String set_kit = "&aSuccessfully set &2<kit>&a!"; - public String classes_item = "&4Classes"; - public String achievement_item = "&4Achievements"; - public String shop_item = "&4Shop"; - public String spectator_item = "&4Players"; - public String server_broadcast_winner = "&2<player> &awon the game on &2<arena>&a!"; - public String exit_item = "&4Leave the game"; - public String successfully_bought_kit = "&aSuccessfully bought &2<kit> &afor &2<money>&a."; - public String scoreboard_title = "&4<arena>"; - public String scoreboard_lobby_title = "&4[<arena>]"; - public String you_got_kicked_because_vip_joined = "&cYou got kicked out of the game because a vip joined!"; - public String powerup_spawned = "&2A Powerup spawned!"; - public String you_got_the_achievement = "&3You got the achievement &b<achievement>&3!"; - public String game_started = "&2The game has started!"; - public String author_of_the_map = "&3You are playing on the map &b<arena> &3by &b<author>&3!"; - public String description_of_the_map = "<description>"; - public String not_enough_money = "&cYou don't have enough money."; - public String possible_kits = "&aPossible kits: &2"; - public String possible_shopitems = "&aPossible shop items: &2"; - public String cancelled_starting = "&cThe starting countdown was cancelled because there's only one player left in the arena."; - public String minigame_description = ""; - public String successfully_bought_shopitem = "&aSuccessfully bought &2<shopitem> &afor &2<money>&a."; - public String already_bought_shopitem = "&aYou already had &2<shopitem>&a."; - public String you_received_rewards = "&aYou received a reward of &2<economyreward>"; - public String you_received_rewards_2 = " &aand "; - public String you_received_rewards_3 = "&2<itemreward>&a!"; - public String already_in_arena = "&cYou are already in an arena."; - public String stop_cause_maximum_game_time = "&cThe game is stopping in 5 seconds because the maximum game time was reached."; - public String compass_no_player_found = "&cNo near players found!"; - public String compass_player_found = "&aThe compass is tracking &3<player> &anow. Distance: <distance>"; - public String you_got_a_participation_reward = "&aYou received &2<economyreward> &afor participating!"; - public String kit_warning = "&7Be aware that you'll only get the &8last &7kit you bought even if you buy all of them."; - - public FileConfiguration getConfig() { - if (messagesConfig == null) { - reloadConfig(); - } - return messagesConfig; - } - - public void saveConfig() { - if (messagesConfig == null || messagesFile == null) { - return; - } - try { - getConfig().save(messagesFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (messagesFile == null) { - messagesFile = new File(plugin.getDataFolder(), "messages.yml"); - } - messagesConfig = YamlConfiguration.loadConfiguration(messagesFile); - - InputStream defConfigStream = plugin.getResource("messages.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - messagesConfig.setDefaults(defConfig); - } - } - +public class MessagesConfig +{ + + private FileConfiguration messagesConfig = null; + private File messagesFile = null; + private JavaPlugin plugin = null; + + public MessagesConfig(final JavaPlugin plugin) + { + this.plugin = plugin; + Arrays.fill(MessagesConfig.squares_mid, (char) 0x25A0); + Arrays.fill(MessagesConfig.squares_full, (char) 0x2588); + Arrays.fill(MessagesConfig.squares_medium, (char) 0x2592); + Arrays.fill(MessagesConfig.squares_light, (char) 0x2591); + for (int i = 0; i < 10; i++) + { + MessagesConfig.squares += Character.toString((char) 0x25A0); + } + this.init(); + } + + public static String squares = Character.toString((char) 0x25A0); + + public static char[] squares_mid = new char[10]; + public static char[] squares_full = new char[10]; + public static char[] squares_medium = new char[10]; + public static char[] squares_light = new char[10]; + + public void init() + { + // all signs + this.getConfig().options().header("Contains all messages for easy translation. You can remove a mesage by setting it to nothing, like so: ''"); + final HashMap<String, String> namecol = ArenaState.getAllStateNameColors(); + for (final String state : namecol.keySet()) + { + final String color = namecol.get(state); + this.getConfig().addDefault("signs." + state.toLowerCase() + ".0", color + "[]"); + this.getConfig().addDefault("signs." + state.toLowerCase() + ".1", color + "<arena>"); + this.getConfig().addDefault("signs." + state.toLowerCase() + ".2", color + "<count>/<maxcount>"); + this.getConfig().addDefault("signs." + state.toLowerCase() + ".3", color + "[]"); + } + + // Arcade sign (I think that one is unused) + this.getConfig().addDefault("signs.arcade.0", "[]"); + this.getConfig().addDefault("signs.arcade.1", "&cArcade"); + this.getConfig().addDefault("signs.arcade.2", "<count>/<maxcount>"); + this.getConfig().addDefault("signs.arcade.3", "[]"); + + // Leave sign + this.getConfig().addDefault("signs.leave.0", ""); + this.getConfig().addDefault("signs.leave.1", "&4Leave"); + this.getConfig().addDefault("signs.leave.2", ""); + this.getConfig().addDefault("signs.leave.3", ""); + + // Random arena sign + this.getConfig().addDefault("signs.random.0", "&a[]"); + this.getConfig().addDefault("signs.random.1", "&2Random"); + this.getConfig().addDefault("signs.random.2", ""); + this.getConfig().addDefault("signs.random.3", "&a[]"); + + this.getConfig().addDefault("messages.no_perm", this.no_perm); + this.getConfig().addDefault("messages.successfully_reloaded", this.successfully_reloaded); + this.getConfig().addDefault("messages.successfully_set", this.successfully_set); + this.getConfig().addDefault("messages.successfully_saved_arena", this.successfully_saved_arena); + this.getConfig().addDefault("messages.arena_invalid", this.arena_invalid); + this.getConfig().addDefault("messages.failed_saving_arena", this.failed_saving_arena); + this.getConfig().addDefault("messages.broadcast_players_left", this.broadcast_players_left); + this.getConfig().addDefault("messages.broadcast_player_joined", this.broadcast_player_joined); + this.getConfig().addDefault("messages.player_died", this.player_died); + this.getConfig().addDefault("messages.arena_action", this.arena_action); + this.getConfig().addDefault("messages.you_already_are_in_arena", this.you_already_are_in_arena); + this.getConfig().addDefault("messages.you_joined_arena", this.you_joined_arena); + this.getConfig().addDefault("messages.not_in_arena", this.not_in_arena); + this.getConfig().addDefault("messages.teleporting_to_arena_in", this.teleporting_to_arena_in); + this.getConfig().addDefault("messages.starting_in", this.starting_in); + this.getConfig().addDefault("messages.failed_removing_arena", this.failed_removing_arena); + this.getConfig().addDefault("messages.successfully_removed", this.successfully_removed); + this.getConfig().addDefault("messages.failed_removing_component", this.failed_removing_component); + this.getConfig().addDefault("messages.joined_arena", this.joined_arena); + this.getConfig().addDefault("messages.you_won", this.you_won); + this.getConfig().addDefault("messages.you_lost", this.you_lost); + this.getConfig().addDefault("messages.you_got_a_kill", this.you_got_a_kill); + this.getConfig().addDefault("messages.player_was_killed_by", this.player_was_killed_by); + this.getConfig().addDefault("messages.arena_not_initialized", this.arena_not_initialized); + this.getConfig().addDefault("messages.guns.attributelevel_increased", this.attributelevel_increased); + this.getConfig().addDefault("messages.guns.not_enough_credits", this.not_enough_credits); + this.getConfig().addDefault("messages.guns.too_many_main_guns", this.too_many_main_guns); + this.getConfig().addDefault("messages.guns.successfully_set_main_gun", this.successfully_set_main_gun); + this.getConfig().addDefault("messages.guns.all_guns", this.all_guns); + this.getConfig().addDefault("messages.arcade_next_minigame", this.arcade_next_minigame); + this.getConfig().addDefault("messages.arcade_joined_waiting", this.arcade_joined_waiting); + this.getConfig().addDefault("messages.arcade_joined_spectator", this.arcade_joined_spectator); + this.getConfig().addDefault("messages.arcade_new_round", this.arcade_new_round); + this.getConfig().addDefault("messages.arena_disabled", this.arena_disabled); + this.getConfig().addDefault("messages.you_can_leave_with", this.you_can_leave_with); + this.getConfig().addDefault("messages.no_perm_to_join_arena", this.no_perm_to_join_arena); + this.getConfig().addDefault("messages.set_kit", this.set_kit); + this.getConfig().addDefault("messages.classes_item", this.classes_item); + this.getConfig().addDefault("messages.achievement_item", this.achievement_item); + this.getConfig().addDefault("messages.shop_item", this.shop_item); + this.getConfig().addDefault("messages.spectator_item", this.spectator_item); + this.getConfig().addDefault("messages.server_broadcast_winner", this.server_broadcast_winner); + this.getConfig().addDefault("messages.exit_item", this.exit_item); + this.getConfig().addDefault("messages.successfully_bought_kit", this.successfully_bought_kit); + this.getConfig().addDefault("messages.scoreboard.title", this.scoreboard_title); + this.getConfig().addDefault("messages.scoreboard.lobby_title", this.scoreboard_lobby_title); + this.getConfig().addDefault("messages.you_got_kicked_because_vip_joined", this.you_got_kicked_because_vip_joined); + this.getConfig().addDefault("messages.powerup_spawned", this.powerup_spawned); + if (!this.getConfig().isSet("config.generatedv182")) + { + this.getConfig().addDefault("messages.custom_scoreboard.line0", "Players:<playercount>"); + this.getConfig().addDefault("messages.custom_scoreboard.line1", "Spectators:<lostplayercount>"); + this.getConfig().addDefault("messages.custom_scoreboard.line2", "Alive:<playeralivecount>"); + this.getConfig().addDefault("messages.custom_scoreboard.line3", "Your Credits:<points>"); + this.getConfig().addDefault("messages.custom_scoreboard.line4", "Your Wins:<wins>"); + this.getConfig().addDefault("messages.custom_lobby_scoreboard.line0", "Players:<playercount>"); + this.getConfig().addDefault("messages.custom_lobby_scoreboard.line1", "Max Players:<maxplayercount>"); + this.getConfig().addDefault("messages.custom_lobby_scoreboard.line2", "Your Credits:<points>"); + this.getConfig().addDefault("messages.custom_lobby_scoreboard.line3", "Your Wins:<wins>"); + } + this.getConfig().addDefault("messages.you_got_the_achievement", this.you_got_the_achievement); + this.getConfig().addDefault("messages.game_started", this.game_started); + this.getConfig().addDefault("messages.author_of_the_map", this.author_of_the_map); + this.getConfig().addDefault("messages.description_of_the_map", this.description_of_the_map); + this.getConfig().addDefault("messages.not_enough_money", this.not_enough_money); + this.getConfig().addDefault("messages.possible_kits", this.possible_kits); + this.getConfig().addDefault("messages.possible_shopitems", this.possible_shopitems); + this.getConfig().addDefault("messages.cancelled_starting", this.cancelled_starting); + this.getConfig().addDefault("messages.minigame_description", this.minigame_description); + this.getConfig().addDefault("messages.successfully_bought_shopitem", this.successfully_bought_shopitem); + this.getConfig().addDefault("messages.already_bought_shopitem", this.already_bought_shopitem); + this.getConfig().addDefault("messages.you_received_rewards", this.you_received_rewards); + this.getConfig().addDefault("messages.you_received_rewards_2", this.you_received_rewards_2); + this.getConfig().addDefault("messages.you_received_rewards_3", this.you_received_rewards_3); + this.getConfig().addDefault("messages.already_in_arena", this.already_in_arena); + this.getConfig().addDefault("messages.stop_cause_maximum_game_time", this.stop_cause_maximum_game_time); + this.getConfig().addDefault("messages.compass.no_player_found", this.compass_no_player_found); + this.getConfig().addDefault("messages.compass.found_player", this.compass_player_found); + this.getConfig().addDefault("messages.you_got_a_participation_reward", this.you_got_a_participation_reward); + this.getConfig().addDefault("messages.kit_warning", this.kit_warning); + if (!this.getConfig().isSet("config.generatedv1102")) + { + this.getConfig().addDefault("messages.stats.line0", "&7----- &a&lStats &7-----; "); + this.getConfig().addDefault("messages.stats.line1", "&7Wins: &a<wins>"); + this.getConfig().addDefault("messages.stats.line2", "&7Loses: &c<loses>"); + this.getConfig().addDefault("messages.stats.line3", "&7Alltime Kills: &a<alltime_kills>"); + this.getConfig().addDefault("messages.stats.line4", "&7Alltime Deaths: &c<alltime_deaths>"); + this.getConfig().addDefault("messages.stats.line5", "&7KDR: &e<kdr>"); + this.getConfig().addDefault("messages.stats.line6", "&7Points: &e<points>"); + this.getConfig().addDefault("messages.stats.line7", " ;&7-----------------"); + } + + // save + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + + // load + this.no_perm = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.no_perm")); + this.successfully_reloaded = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.successfully_reloaded")); + this.successfully_set = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.successfully_set")); + this.successfully_saved_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.successfully_saved_arena")); + this.failed_saving_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.failed_saving_arena")); + this.arena_invalid = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arena_invalid")); + this.player_died = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.player_died")); + this.broadcast_players_left = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.broadcast_players_left")); + this.broadcast_player_joined = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.broadcast_player_joined")); + this.arena_action = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arena_action")); + this.you_already_are_in_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_already_are_in_arena")); + this.you_joined_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_joined_arena")); + this.not_in_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.not_in_arena")); + this.teleporting_to_arena_in = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.teleporting_to_arena_in")); + this.starting_in = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.starting_in")); + this.failed_removing_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.failed_removing_arena")); + this.successfully_removed = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.successfully_removed")); + this.failed_removing_component = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.failed_removing_component")); + this.joined_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.joined_arena")); + this.you_won = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_won")); + this.you_lost = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_lost")); + this.you_got_a_kill = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_got_a_kill")); + this.player_was_killed_by = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.player_was_killed_by")); + this.arena_not_initialized = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arena_not_initialized")); + this.arcade_next_minigame = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arcade_next_minigame")); + this.arcade_new_round = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arcade_new_round")); + this.arena_disabled = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arena_disabled")); + this.you_can_leave_with = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_can_leave_with")); + this.arcade_joined_waiting = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arcade_joined_waiting")); + this.arcade_joined_spectator = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.arcade_joined_spectator")); + this.no_perm_to_join_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.no_perm_to_join_arena")); + this.set_kit = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.set_kit")); + this.classes_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.classes_item")); + this.achievement_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.achievement_item")); + this.shop_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.shop_item")); + this.spectator_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.spectator_item")); + this.server_broadcast_winner = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.server_broadcast_winner")); + this.exit_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.exit_item")); + this.successfully_bought_kit = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.successfully_bought_kit")); + this.scoreboard_title = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.scoreboard.title")); + this.scoreboard_lobby_title = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.scoreboard.lobby_title")); + this.you_got_kicked_because_vip_joined = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_got_kicked_because_vip_joined")); + this.powerup_spawned = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.powerup_spawned")); + this.you_got_the_achievement = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_got_the_achievement")); + this.game_started = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.game_started")); + this.author_of_the_map = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.author_of_the_map")); + this.description_of_the_map = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.description_of_the_map")); + this.not_enough_money = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.not_enough_money")); + this.possible_kits = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.possible_kits")); + this.possible_shopitems = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.possible_shopitems")); + this.cancelled_starting = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.cancelled_starting")); + this.minigame_description = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.minigame_description")); + this.successfully_bought_shopitem = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.successfully_bought_shopitem")); + this.already_bought_shopitem = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.already_bought_shopitem")); + this.you_received_rewards = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_received_rewards")); + this.you_received_rewards_2 = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_received_rewards_2")); + this.you_received_rewards_3 = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_received_rewards_3")); + this.already_in_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.already_in_arena")); + this.stop_cause_maximum_game_time = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.stop_cause_maximum_game_time")); + this.compass_no_player_found = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.compass.no_player_found")); + this.compass_player_found = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.compass.found_player")); + this.you_got_a_participation_reward = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_got_a_participation_reward")); + this.kit_warning = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.kit_warning")); + + this.attributelevel_increased = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.guns.attributelevel_increased")); + this.not_enough_credits = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.guns.not_enough_credits")); + this.too_many_main_guns = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.guns.too_many_main_guns")); + this.successfully_set_main_gun = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.guns.successfully_set_main_gun")); + this.all_guns = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.guns.all_guns")); + + this.getConfig().set("config.generatedv182", true); + this.getConfig().set("config.generatedv1102", true); + this.saveConfig(); + } + + public String no_perm = "&cYou don't have permission."; + public String successfully_reloaded = "&aSuccessfully reloaded all configs."; + public String successfully_set = "&aSuccessfully set &3<component>&a."; + public String successfully_saved_arena = "&aSuccessfully saved &3<arena>&a."; + public String failed_saving_arena = "&cFailed to save &3<arena>&c."; + public String failed_removing_arena = "&cFailed to remove &3<arena>&c."; + public String arena_invalid = "&3<arena> &cappears to be invalid."; + public String broadcast_players_left = "&eThere are &4<count> &eplayers left!"; + public String broadcast_player_joined = "&2<player> &ajoined the arena! (<count>/<maxcount>)"; + public String player_died = "&c<player> died."; + public String arena_action = "&aYou <action> arena &3<arena>&a!"; + public String you_joined_arena = "&aYou joined arena &3<arena>&a!"; + public String you_already_are_in_arena = "&aYou already seem to be in arena &3<arena>&a!"; + public String arena_not_initialized = "&cThe arena appears to be not initialized, did you save the arena?"; + public String not_in_arena = "&cYou don't seem to be in an arena right now."; + public String teleporting_to_arena_in = "&7Teleporting to arena in <count>."; + public String starting_in = "&aStarting in <count>!"; + public String successfully_removed = "&cSuccessfully removed &3<component>&c!"; + public String failed_removing_component = "&cFailed removing &3<component>&c. <cause>."; + public String joined_arena = "&aYou joined &3<arena>&a."; + public String you_won = "&aYou &2won &athe game!"; + public String you_lost = "&cYou &4lost &cthe game."; + public String you_got_a_kill = "&aYou killed &2<player>!"; + public String player_was_killed_by = "&4<player> &cwas killed by &4<killer>&c!"; + public String attributelevel_increased = "&aThe <attribute> level was increased successfully!"; + public String not_enough_credits = "&cThe max level of 3 was reached or you don't have enough credits. Needed: <credits>"; + public String too_many_main_guns = "&cYou already have 2 main guns, remove one first."; + public String successfully_set_main_gun = "&aSuccessfully set a main gun (of a maximum of two)."; + public String arcade_next_minigame = "&6Next Arcade game: &4<minigame>&6!"; + public String arena_disabled = "&cThe arena is disabled thus you can't join."; + public String all_guns = "&aYour current main guns: &2<guns>"; + public String you_can_leave_with = "&cYou can leave with <cmd> or /l!"; + public String arcade_joined_spectator = "&6You joined Arcade as a spectator! You'll be able to play in the next minigame."; + public String arcade_joined_waiting = "&6You joined Arcade! Waiting for <count> more players to start."; + public String arcade_new_round = "&6Next Arcade round in <count>!"; + public String no_perm_to_join_arena = "&cYou don't have permission (arenas.<arena>) to join this arena as it's vip!"; + public String set_kit = "&aSuccessfully set &2<kit>&a!"; + public String classes_item = "&4Classes"; + public String achievement_item = "&4Achievements"; + public String shop_item = "&4Shop"; + public String spectator_item = "&4Players"; + public String server_broadcast_winner = "&2<player> &awon the game on &2<arena>&a!"; + public String exit_item = "&4Leave the game"; + public String successfully_bought_kit = "&aSuccessfully bought &2<kit> &afor &2<money>&a."; + public String scoreboard_title = "&4<arena>"; + public String scoreboard_lobby_title = "&4[<arena>]"; + public String you_got_kicked_because_vip_joined = "&cYou got kicked out of the game because a vip joined!"; + public String powerup_spawned = "&2A Powerup spawned!"; + public String you_got_the_achievement = "&3You got the achievement &b<achievement>&3!"; + public String game_started = "&2The game has started!"; + public String author_of_the_map = "&3You are playing on the map &b<arena> &3by &b<author>&3!"; + public String description_of_the_map = "<description>"; + public String not_enough_money = "&cYou don't have enough money."; + public String possible_kits = "&aPossible kits: &2"; + public String possible_shopitems = "&aPossible shop items: &2"; + public String cancelled_starting = "&cThe starting countdown was cancelled because there's only one player left in the arena."; + public String minigame_description = ""; + public String successfully_bought_shopitem = "&aSuccessfully bought &2<shopitem> &afor &2<money>&a."; + public String already_bought_shopitem = "&aYou already had &2<shopitem>&a."; + public String you_received_rewards = "&aYou received a reward of &2<economyreward>"; + public String you_received_rewards_2 = " &aand "; + public String you_received_rewards_3 = "&2<itemreward>&a!"; + public String already_in_arena = "&cYou are already in an arena."; + public String stop_cause_maximum_game_time = "&cThe game is stopping in 5 seconds because the maximum game time was reached."; + public String compass_no_player_found = "&cNo near players found!"; + public String compass_player_found = "&aThe compass is tracking &3<player> &anow. Distance: <distance>"; + public String you_got_a_participation_reward = "&aYou received &2<economyreward> &afor participating!"; + public String kit_warning = "&7Be aware that you'll only get the &8last &7kit you bought even if you buy all of them."; + + public FileConfiguration getConfig() + { + if (this.messagesConfig == null) + { + this.reloadConfig(); + } + return this.messagesConfig; + } + + public void saveConfig() + { + if (this.messagesConfig == null || this.messagesFile == null) + { + return; + } + try + { + this.getConfig().save(this.messagesFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.messagesFile == null) + { + this.messagesFile = new File(this.plugin.getDataFolder(), "messages.yml"); + } + this.messagesConfig = YamlConfiguration.loadConfiguration(this.messagesFile); + + final InputStream defConfigStream = this.plugin.getResource("messages.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.messagesConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java index 0b17ed7c..cda344a9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java @@ -1,107 +1,131 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.util.HashMap; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; -import com.comze_instancelabs.minigamesapi.ArenaState; - -public class PartyMessagesConfig { - - private FileConfiguration messagesConfig = null; - private File messagesFile = null; - private JavaPlugin plugin = null; - - public PartyMessagesConfig(JavaPlugin plugin) { - this.plugin = plugin; - this.init(); - } - - public void init() { - this.getConfig().addDefault("messages.cannot_invite_yourself", cannot_invite_yourself); - this.getConfig().addDefault("messages.player_not_online", player_not_online); - this.getConfig().addDefault("messages.you_invited", you_invited); - this.getConfig().addDefault("messages.you_were_invited", you_were_invited); - this.getConfig().addDefault("messages.not_invited_to_any_party", not_invited_to_any_party); - this.getConfig().addDefault("messages.not_invited_to_players_party", not_invited_to_players_party); - this.getConfig().addDefault("messages.player_not_in_party", player_not_in_party); - this.getConfig().addDefault("messages.you_joined_party", you_joined_party); - this.getConfig().addDefault("messages.player_joined_party", player_joined_party); - this.getConfig().addDefault("messages.you_left_party", you_left_party); - this.getConfig().addDefault("messages.player_left_party", player_left_party); - this.getConfig().addDefault("messages.party_disbanded", party_disbanded); - this.getConfig().addDefault("messages.party_too_big_to_join", party_too_big_to_join); - - // save - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - - // load - this.cannot_invite_yourself = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.cannot_invite_yourself")); - this.player_not_online = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.player_not_online")); - this.you_invited = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_invited")); - this.you_were_invited = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_were_invited")); - this.not_invited_to_any_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.not_invited_to_any_party")); - this.not_invited_to_players_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.not_invited_to_players_party")); - this.player_not_in_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.player_not_in_party")); - this.you_joined_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_joined_party")); - this.player_joined_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.player_joined_party")); - this.you_left_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.you_left_party")); - this.player_left_party = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.player_left_party")); - this.party_disbanded = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.party_disbanded")); - this.party_too_big_to_join = ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages.party_too_big_to_join")); - - } - - public String cannot_invite_yourself = "&cYou cannot invite yourself!"; - public String player_not_online = "&4<player> &cis not online!"; - public String you_invited = "&aYou invited &2<player>&a!"; - public String you_were_invited = "&2<player> &ainvited you to join his/her party! Type &2/party accept <player> &ato accept."; - public String not_invited_to_any_party = "&cYou are not invited to any party."; - public String not_invited_to_players_party = "&cYou are not invited to the party of &4<player>&c."; - public String player_not_in_party = "&4<player> &cis not in your party."; - public String you_joined_party = "&7You joined the party of &8<player>&7."; - public String player_joined_party = "&2<player> &ajoined the party."; - public String you_left_party = "&7You left the party of &8<player>&7."; - public String player_left_party = "&4<player> &cleft the party."; - public String party_disbanded = "&cThe party was disbanded."; - public String party_too_big_to_join = "&cYour party is too big to join this arena."; - - public FileConfiguration getConfig() { - if (messagesConfig == null) { - reloadConfig(); - } - return messagesConfig; - } - - public void saveConfig() { - if (messagesConfig == null || messagesFile == null) { - return; - } - try { - getConfig().save(messagesFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (messagesFile == null) { - messagesFile = new File(plugin.getDataFolder(), "partymessages.yml"); - } - messagesConfig = YamlConfiguration.loadConfiguration(messagesFile); - - InputStream defConfigStream = plugin.getResource("partymessages.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - messagesConfig.setDefaults(defConfig); - } - } - +public class PartyMessagesConfig +{ + + private FileConfiguration messagesConfig = null; + private File messagesFile = null; + private JavaPlugin plugin = null; + + public PartyMessagesConfig(final JavaPlugin plugin) + { + this.plugin = plugin; + this.init(); + } + + public void init() + { + this.getConfig().addDefault("messages.cannot_invite_yourself", this.cannot_invite_yourself); + this.getConfig().addDefault("messages.player_not_online", this.player_not_online); + this.getConfig().addDefault("messages.you_invited", this.you_invited); + this.getConfig().addDefault("messages.you_were_invited", this.you_were_invited); + this.getConfig().addDefault("messages.not_invited_to_any_party", this.not_invited_to_any_party); + this.getConfig().addDefault("messages.not_invited_to_players_party", this.not_invited_to_players_party); + this.getConfig().addDefault("messages.player_not_in_party", this.player_not_in_party); + this.getConfig().addDefault("messages.you_joined_party", this.you_joined_party); + this.getConfig().addDefault("messages.player_joined_party", this.player_joined_party); + this.getConfig().addDefault("messages.you_left_party", this.you_left_party); + this.getConfig().addDefault("messages.player_left_party", this.player_left_party); + this.getConfig().addDefault("messages.party_disbanded", this.party_disbanded); + this.getConfig().addDefault("messages.party_too_big_to_join", this.party_too_big_to_join); + + // save + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + + // load + this.cannot_invite_yourself = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.cannot_invite_yourself")); + this.player_not_online = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.player_not_online")); + this.you_invited = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_invited")); + this.you_were_invited = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_were_invited")); + this.not_invited_to_any_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.not_invited_to_any_party")); + this.not_invited_to_players_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.not_invited_to_players_party")); + this.player_not_in_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.player_not_in_party")); + this.you_joined_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_joined_party")); + this.player_joined_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.player_joined_party")); + this.you_left_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_left_party")); + this.player_left_party = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.player_left_party")); + this.party_disbanded = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.party_disbanded")); + this.party_too_big_to_join = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.party_too_big_to_join")); + + } + + public String cannot_invite_yourself = "&cYou cannot invite yourself!"; + public String player_not_online = "&4<player> &cis not online!"; + public String you_invited = "&aYou invited &2<player>&a!"; + public String you_were_invited = "&2<player> &ainvited you to join his/her party! Type &2/party accept <player> &ato accept."; + public String not_invited_to_any_party = "&cYou are not invited to any party."; + public String not_invited_to_players_party = "&cYou are not invited to the party of &4<player>&c."; + public String player_not_in_party = "&4<player> &cis not in your party."; + public String you_joined_party = "&7You joined the party of &8<player>&7."; + public String player_joined_party = "&2<player> &ajoined the party."; + public String you_left_party = "&7You left the party of &8<player>&7."; + public String player_left_party = "&4<player> &cleft the party."; + public String party_disbanded = "&cThe party was disbanded."; + public String party_too_big_to_join = "&cYour party is too big to join this arena."; + + public FileConfiguration getConfig() + { + if (this.messagesConfig == null) + { + this.reloadConfig(); + } + return this.messagesConfig; + } + + public void saveConfig() + { + if (this.messagesConfig == null || this.messagesFile == null) + { + return; + } + try + { + this.getConfig().save(this.messagesFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.messagesFile == null) + { + this.messagesFile = new File(this.plugin.getDataFolder(), "partymessages.yml"); + } + this.messagesConfig = YamlConfiguration.loadConfiguration(this.messagesFile); + + final InputStream defConfigStream = this.plugin.getResource("partymessages.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.messagesConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java index f1d7595d..70b5244b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java @@ -1,100 +1,127 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class ShopConfig { - - private FileConfiguration shopConfig = null; - private File shopFile = null; - private JavaPlugin plugin = null; - - public ShopConfig(JavaPlugin plugin, boolean custom) { - this.plugin = plugin; - if (!custom) { - this.getConfig().options().header("Used for saving shop items. Default shop items:"); - this.getConfig().addDefault("config.shop_items.coin_boost2.name", "Coin boost * 2"); - this.getConfig().addDefault("config.shop_items.coin_boost2.enabled", true); - this.getConfig().addDefault("config.shop_items.coin_boost2.uses_items", false); - this.getConfig().addDefault("config.shop_items.coin_boost2.items", "388*1"); - this.getConfig().addDefault("config.shop_items.coin_boost2.icon", "388*1"); - this.getConfig().addDefault("config.shop_items.coin_boost2.lore", "Will give all winners a double money reward boost."); - this.getConfig().addDefault("config.shop_items.coin_boost2.requires_money", true); - this.getConfig().addDefault("config.shop_items.coin_boost2.requires_permission", false); - this.getConfig().addDefault("config.shop_items.coin_boost2.money_amount", 1500); - this.getConfig().addDefault("config.shop_items.coin_boost2.permission_node", "minigames.shop_item.coin_boost2"); - - this.getConfig().addDefault("config.shop_items.coin_boost3.name", "Coin boost * 3"); - this.getConfig().addDefault("config.shop_items.coin_boost3.enabled", true); - this.getConfig().addDefault("config.shop_items.coin_boost3.uses_items", false); - this.getConfig().addDefault("config.shop_items.coin_boost3.items", "388*2"); - this.getConfig().addDefault("config.shop_items.coin_boost3.icon", "388*2"); - this.getConfig().addDefault("config.shop_items.coin_boost3.lore", "Will give all winners a triple money reward boost."); - this.getConfig().addDefault("config.shop_items.coin_boost3.requires_money", true); - this.getConfig().addDefault("config.shop_items.coin_boost3.requires_permission", false); - this.getConfig().addDefault("config.shop_items.coin_boost3.money_amount", 3000); - this.getConfig().addDefault("config.shop_items.coin_boost3.permission_node", "minigames.shop_item.coin_boost3"); - - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.name", "Coin boost * 2 Solo"); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.enabled", true); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.uses_items", false); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.items", "264*1"); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.icon", "264*1"); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.lore", "Will give you a double money reward boost."); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.requires_money", true); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.requires_permission", false); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.money_amount", 1000); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.permission_node", "minigames.shop_item.coin_boost2_solo"); - - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.name", "Coin boost * 3 Solo"); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.enabled", true); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.uses_items", false); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.items", "264*2"); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.icon", "264*2"); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.lore", "Will give you a triple money reward boost."); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.requires_money", true); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.requires_permission", false); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.money_amount", 2000); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.permission_node", "minigames.shop_item.coin_boost3_solo"); - } - this.getConfig().options().copyDefaults(true); - this.saveConfig(); - } - - public FileConfiguration getConfig() { - if (shopConfig == null) { - reloadConfig(); - } - return shopConfig; - } - - public void saveConfig() { - if (shopConfig == null || shopFile == null) { - return; - } - try { - getConfig().save(shopFile); - } catch (IOException ex) { - - } - } - - public void reloadConfig() { - if (shopFile == null) { - shopFile = new File(plugin.getDataFolder(), "shop.yml"); - } - shopConfig = YamlConfiguration.loadConfiguration(shopFile); - - InputStream defConfigStream = plugin.getResource("shop.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - shopConfig.setDefaults(defConfig); - } - } +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +public class ShopConfig +{ + + private FileConfiguration shopConfig = null; + private File shopFile = null; + private JavaPlugin plugin = null; + + public ShopConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + if (!custom) + { + this.getConfig().options().header("Used for saving shop items. Default shop items:"); + this.getConfig().addDefault("config.shop_items.coin_boost2.name", "Coin boost * 2"); + this.getConfig().addDefault("config.shop_items.coin_boost2.enabled", true); + this.getConfig().addDefault("config.shop_items.coin_boost2.uses_items", false); + this.getConfig().addDefault("config.shop_items.coin_boost2.items", "388*1"); + this.getConfig().addDefault("config.shop_items.coin_boost2.icon", "388*1"); + this.getConfig().addDefault("config.shop_items.coin_boost2.lore", "Will give all winners a double money reward boost."); + this.getConfig().addDefault("config.shop_items.coin_boost2.requires_money", true); + this.getConfig().addDefault("config.shop_items.coin_boost2.requires_permission", false); + this.getConfig().addDefault("config.shop_items.coin_boost2.money_amount", 1500); + this.getConfig().addDefault("config.shop_items.coin_boost2.permission_node", "minigames.shop_item.coin_boost2"); + + this.getConfig().addDefault("config.shop_items.coin_boost3.name", "Coin boost * 3"); + this.getConfig().addDefault("config.shop_items.coin_boost3.enabled", true); + this.getConfig().addDefault("config.shop_items.coin_boost3.uses_items", false); + this.getConfig().addDefault("config.shop_items.coin_boost3.items", "388*2"); + this.getConfig().addDefault("config.shop_items.coin_boost3.icon", "388*2"); + this.getConfig().addDefault("config.shop_items.coin_boost3.lore", "Will give all winners a triple money reward boost."); + this.getConfig().addDefault("config.shop_items.coin_boost3.requires_money", true); + this.getConfig().addDefault("config.shop_items.coin_boost3.requires_permission", false); + this.getConfig().addDefault("config.shop_items.coin_boost3.money_amount", 3000); + this.getConfig().addDefault("config.shop_items.coin_boost3.permission_node", "minigames.shop_item.coin_boost3"); + + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.name", "Coin boost * 2 Solo"); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.enabled", true); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.uses_items", false); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.items", "264*1"); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.icon", "264*1"); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.lore", "Will give you a double money reward boost."); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.requires_money", true); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.requires_permission", false); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.money_amount", 1000); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.permission_node", "minigames.shop_item.coin_boost2_solo"); + + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.name", "Coin boost * 3 Solo"); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.enabled", true); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.uses_items", false); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.items", "264*2"); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.icon", "264*2"); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.lore", "Will give you a triple money reward boost."); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.requires_money", true); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.requires_permission", false); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.money_amount", 2000); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.permission_node", "minigames.shop_item.coin_boost3_solo"); + } + this.getConfig().options().copyDefaults(true); + this.saveConfig(); + } + + public FileConfiguration getConfig() + { + if (this.shopConfig == null) + { + this.reloadConfig(); + } + return this.shopConfig; + } + + public void saveConfig() + { + if (this.shopConfig == null || this.shopFile == null) + { + return; + } + try + { + this.getConfig().save(this.shopFile); + } + catch (final IOException ex) + { + // silently ignore + } + } + + public void reloadConfig() + { + if (this.shopFile == null) + { + this.shopFile = new File(this.plugin.getDataFolder(), "shop.yml"); + } + this.shopConfig = YamlConfiguration.loadConfiguration(this.shopFile); + + final InputStream defConfigStream = this.plugin.getResource("shop.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.shopConfig.setDefaults(defConfig); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java index e323bb62..14081044 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java @@ -1,61 +1,88 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class StatsConfig { +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; - private FileConfiguration statsConfig = null; - private File statsFile = null; - private JavaPlugin plugin = null; +public class StatsConfig +{ - public StatsConfig(JavaPlugin plugin, boolean custom){ - this.plugin = plugin; - if(!custom){ - this.getConfig().options().header("Used for saving user statistics. Example user stats:"); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.wins", 1); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.loses", 1); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.points", 10); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "TheMrQuake"); - } - this.getConfig().options().copyDefaults(true); - this.saveConfig(); + private FileConfiguration statsConfig = null; + private File statsFile = null; + private JavaPlugin plugin = null; + + public StatsConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + if (!custom) + { + this.getConfig().options().header("Used for saving user statistics. Example user stats:"); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.wins", 1); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.loses", 1); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.points", 10); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "TheMrQuake"); + } + this.getConfig().options().copyDefaults(true); + this.saveConfig(); } - - public FileConfiguration getConfig() { - if (statsConfig == null) { - reloadConfig(); + + public FileConfiguration getConfig() + { + if (this.statsConfig == null) + { + this.reloadConfig(); } - return statsConfig; + return this.statsConfig; } - - public void saveConfig() { - if (statsConfig == null || statsFile == null) { + + public void saveConfig() + { + if (this.statsConfig == null || this.statsFile == null) + { return; } - try { - getConfig().save(statsFile); - } catch (IOException ex) { - + try + { + this.getConfig().save(this.statsFile); } - } - - public void reloadConfig() { - if (statsFile == null) { - statsFile = new File(plugin.getDataFolder(), "stats.yml"); + catch (final IOException ex) + { + // silently ignore } - statsConfig = YamlConfiguration.loadConfiguration(statsFile); + } - InputStream defConfigStream = plugin.getResource("stats.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - statsConfig.setDefaults(defConfig); + public void reloadConfig() + { + if (this.statsFile == null) + { + this.statsFile = new File(this.plugin.getDataFolder(), "stats.yml"); + } + this.statsConfig = YamlConfiguration.loadConfiguration(this.statsFile); + + final InputStream defConfigStream = this.plugin.getResource("stats.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.statsConfig.setDefaults(defConfig); } } - + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java index 5e6156ae..2bcf2c54 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java @@ -1,61 +1,88 @@ -package com.comze_instancelabs.minigamesapi.config; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.config; import java.io.File; import java.io.IOException; import java.io.InputStream; -public class StatsGlobalConfig { +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; - private FileConfiguration statsConfig = null; - private File statsFile = null; - private JavaPlugin plugin = null; +public class StatsGlobalConfig +{ - public StatsGlobalConfig(JavaPlugin plugin, boolean custom){ - this.plugin = plugin; - if(!custom){ - this.getConfig().options().header("Used for saving user statistics. Example user stats:"); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.wins", 1); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.loses", 1); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.points", 10); - this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "TheMrQuake"); - } - this.getConfig().options().copyDefaults(true); - this.saveConfig(); + private FileConfiguration statsConfig = null; + private File statsFile = null; + private JavaPlugin plugin = null; + + public StatsGlobalConfig(final JavaPlugin plugin, final boolean custom) + { + this.plugin = plugin; + if (!custom) + { + this.getConfig().options().header("Used for saving user statistics. Example user stats:"); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.wins", 1); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.loses", 1); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.points", 10); + this.getConfig().addDefault("players.3c8c41ff-51f5-4b7a-8c2b-44df0beba03b.playername", "TheMrQuake"); + } + this.getConfig().options().copyDefaults(true); + this.saveConfig(); } - - public FileConfiguration getConfig() { - if (statsConfig == null) { - reloadConfig(); + + public FileConfiguration getConfig() + { + if (this.statsConfig == null) + { + this.reloadConfig(); } - return statsConfig; + return this.statsConfig; } - - public void saveConfig() { - if (statsConfig == null || statsFile == null) { + + public void saveConfig() + { + if (this.statsConfig == null || this.statsFile == null) + { return; } - try { - getConfig().save(statsFile); - } catch (IOException ex) { - + try + { + this.getConfig().save(this.statsFile); } - } - - public void reloadConfig() { - if (statsFile == null) { - statsFile = new File(plugin.getDataFolder(), "global_stats.yml"); + catch (final IOException ex) + { + // silently ignore } - statsConfig = YamlConfiguration.loadConfiguration(statsFile); + } - InputStream defConfigStream = plugin.getResource("global_stats.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); - statsConfig.setDefaults(defConfig); + public void reloadConfig() + { + if (this.statsFile == null) + { + this.statsFile = new File(this.plugin.getDataFolder(), "global_stats.yml"); + } + this.statsConfig = YamlConfiguration.loadConfiguration(this.statsFile); + + final InputStream defConfigStream = this.plugin.getResource("global_stats.yml"); + if (defConfigStream != null) + { + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + this.statsConfig.setDefaults(defConfig); } } - + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java index 6960c2c0..3fe6b915 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.event.Event; @@ -6,29 +20,36 @@ import com.comze_instancelabs.minigamesapi.Arena; -public class ArenaEvent extends Event { - private static final HandlerList handlers = new HandlerList(); - private Arena arena; - private JavaPlugin plugin; - - public ArenaEvent(JavaPlugin plugin, Arena a) { - this.arena = a; - this.plugin = plugin; - } - - public Arena getArena() { - return arena; - } - - public JavaPlugin getPlugin() { - return plugin; - } - - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } +public class ArenaEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + private final Arena arena; + private final JavaPlugin plugin; + + public ArenaEvent(final JavaPlugin plugin, final Arena a) + { + this.arena = a; + this.plugin = plugin; + } + + public Arena getArena() + { + return this.arena; + } + + public JavaPlugin getPlugin() + { + return this.plugin; + } + + @Override + public HandlerList getHandlers() + { + return ArenaEvent.handlers; + } + + public static HandlerList getHandlerList() + { + return ArenaEvent.handlers; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java index 036b66e5..cde7adaa 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java @@ -1,15 +1,29 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; -public class ArenaStartEvent extends ArenaEvent { - - public ArenaStartEvent(JavaPlugin plugin, Arena a) { - super(plugin, a); - } - +public class ArenaStartEvent extends ArenaEvent +{ + + public ArenaStartEvent(final JavaPlugin plugin, final Arena a) + { + super(plugin, a); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java index 9f892624..627dfa4c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java @@ -1,13 +1,29 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; -public class ArenaStartedEvent extends ArenaEvent { - - public ArenaStartedEvent(JavaPlugin plugin, Arena a) { - super(plugin, a); - } - +public class ArenaStartedEvent extends ArenaEvent +{ + + public ArenaStartedEvent(final JavaPlugin plugin, final Arena a) + { + super(plugin, a); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java index fafb4d8c..a8ff3e24 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java @@ -1,13 +1,29 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; -public class ArenaStopEvent extends ArenaEvent { - - public ArenaStopEvent(JavaPlugin plugin, Arena a) { - super(plugin, a); - } - +public class ArenaStopEvent extends ArenaEvent +{ + + public ArenaStopEvent(final JavaPlugin plugin, final Arena a) + { + super(plugin, a); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java index d08b370e..bfdc6a3b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.entity.Player; @@ -7,35 +21,43 @@ import com.comze_instancelabs.minigamesapi.Arena; -public class PlayerEvent extends Event { - private static final HandlerList handlers = new HandlerList(); - private Arena arena; - private JavaPlugin plugin; - private Player player; - - public PlayerEvent(Player p, JavaPlugin plugin, Arena a) { - this.arena = a; - this.plugin = plugin; - this.player = p; - } - - public Arena getArena() { - return arena; - } - - public Player getPlayer() { - return player; - } - - public JavaPlugin getPlugin() { - return plugin; - } - - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } +public class PlayerEvent extends Event +{ + private static final HandlerList handlers = new HandlerList(); + private final Arena arena; + private final JavaPlugin plugin; + private final Player player; + + public PlayerEvent(final Player p, final JavaPlugin plugin, final Arena a) + { + this.arena = a; + this.plugin = plugin; + this.player = p; + } + + public Arena getArena() + { + return this.arena; + } + + public Player getPlayer() + { + return this.player; + } + + public JavaPlugin getPlugin() + { + return this.plugin; + } + + @Override + public HandlerList getHandlers() + { + return PlayerEvent.handlers; + } + + public static HandlerList getHandlerList() + { + return PlayerEvent.handlers; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java index b0d63230..191856f4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.entity.Player; @@ -5,10 +19,12 @@ import com.comze_instancelabs.minigamesapi.Arena; -public class PlayerJoinLobbyEvent extends PlayerEvent { - - public PlayerJoinLobbyEvent(Player p, JavaPlugin plugin, Arena a) { - super(p, plugin, a); - } - +public class PlayerJoinLobbyEvent extends PlayerEvent +{ + + public PlayerJoinLobbyEvent(final Player p, final JavaPlugin plugin, final Arena a) + { + super(p, plugin, a); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java index c7b05384..7ef9bb11 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.entity.Player; @@ -5,10 +19,12 @@ import com.comze_instancelabs.minigamesapi.Arena; -public class PlayerLeaveArenaEvent extends PlayerEvent { - - public PlayerLeaveArenaEvent(Player p, JavaPlugin plugin, Arena a) { - super(p, plugin, a); - } - +public class PlayerLeaveArenaEvent extends PlayerEvent +{ + + public PlayerLeaveArenaEvent(final Player p, final JavaPlugin plugin, final Arena a) + { + super(p, plugin, a); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Gun.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Gun.java index 8bf78920..4303eb56 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Gun.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Gun.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.guns; import java.util.ArrayList; @@ -11,95 +25,99 @@ import org.bukkit.entity.Snowball; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.util.Vector; - -public class Gun { - - public double speed = 1D; // the higher the faster - public int shoot_amount = 1; - public int max_durability = 50; - public int durability = 50; - public Class<? extends Projectile> bullet = Egg.class; - public JavaPlugin plugin; - public double knockback_multiplier = 1.1D; - public String name = "Gun"; - - boolean canshoot = true; - public HashMap<String, Boolean> canshoot_ = new HashMap<String, Boolean>(); - - ArrayList<ItemStack> items; - ArrayList<ItemStack> icon; - - public Gun(JavaPlugin plugin, String name, double speed, int shoot_amount, int durability, double knockback_multiplier, Class<? extends Projectile> bullet, ArrayList<ItemStack> items, ArrayList<ItemStack> icon) { - this.plugin = plugin; - this.name = name; - this.speed = speed; - this.shoot_amount = shoot_amount; - this.durability = durability; - this.max_durability = durability; - this.bullet = bullet; - this.knockback_multiplier = knockback_multiplier; - this.items = items; - this.icon = icon; - if(name.equalsIgnoreCase("grenade")){ - this.bullet = Snowball.class; - } - } - - public Gun(JavaPlugin plugin, ArrayList<ItemStack> items, ArrayList<ItemStack> icon) { - this(plugin, "Gun", 1D, 1, 50, 1.1D, Egg.class, items, icon); - } - - public void shoot(Player p) { - if(canshoot){ - for (int i = 0; i < shoot_amount; i++) { - p.launchProjectile(bullet); - this.durability -= 1; - } - canshoot = false; - Bukkit.getScheduler().runTaskLater(plugin, new Runnable(){ - public void run(){ - canshoot = true; - } - }, (long) (20D / speed)); - } - } - - public void shoot(final Player p, int shoot_amount, int durability, int speed) { - if(!canshoot_.containsKey(p.getName())){ - canshoot_.put(p.getName(), true); - } - if(canshoot_.get(p.getName())){ - for (int i = 0; i < shoot_amount + 1; i++) { - p.launchProjectile(bullet); - this.durability -= (int) (10D / durability); - } - canshoot_.put(p.getName(), false); - Bukkit.getScheduler().runTaskLater(plugin, new Runnable(){ - public void run(){ - canshoot_.put(p.getName(), true); - } - }, (long) (60D / speed)); - } - } - - public void onHit(Entity ent, int knockback_multiplier) { - if(this.name.equalsIgnoreCase("freeze")){ - final Player p = (Player) ent; - p.setWalkSpeed(0.0F); - Bukkit.getScheduler().runTaskLater(plugin, new Runnable(){ - public void run(){ - p.setWalkSpeed(0.2F); - } - }, 20L + 20L * knockback_multiplier); - }else{ - ent.setVelocity(ent.getLocation().getDirection().multiply((-1D) * knockback_multiplier)); - } - } - public void reloadGun(){ - this.durability = this.max_durability; - this.canshoot = true; - } - +public class Gun +{ + + public double speed = 1D; // the higher the faster + public int shoot_amount = 1; + public int max_durability = 50; + public int durability = 50; + public Class<? extends Projectile> bullet = Egg.class; + public JavaPlugin plugin; + public double knockback_multiplier = 1.1D; + public String name = "Gun"; + + boolean canshoot = true; + public HashMap<String, Boolean> canshoot_ = new HashMap<>(); + + ArrayList<ItemStack> items; + ArrayList<ItemStack> icon; + + public Gun(final JavaPlugin plugin, final String name, final double speed, final int shoot_amount, final int durability, final double knockback_multiplier, + final Class<? extends Projectile> bullet, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) + { + this.plugin = plugin; + this.name = name; + this.speed = speed; + this.shoot_amount = shoot_amount; + this.durability = durability; + this.max_durability = durability; + this.bullet = bullet; + this.knockback_multiplier = knockback_multiplier; + this.items = items; + this.icon = icon; + if (name.equalsIgnoreCase("grenade")) + { + this.bullet = Snowball.class; + } + } + + public Gun(final JavaPlugin plugin, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) + { + this(plugin, "Gun", 1D, 1, 50, 1.1D, Egg.class, items, icon); + } + + public void shoot(final Player p) + { + if (this.canshoot) + { + for (int i = 0; i < this.shoot_amount; i++) + { + p.launchProjectile(this.bullet); + this.durability -= 1; + } + this.canshoot = false; + Bukkit.getScheduler().runTaskLater(this.plugin, () -> Gun.this.canshoot = true, (long) (20D / this.speed)); + } + } + + public void shoot(final Player p, final int shoot_amount, final int durability, final int speed) + { + if (!this.canshoot_.containsKey(p.getName())) + { + this.canshoot_.put(p.getName(), true); + } + if (this.canshoot_.get(p.getName())) + { + for (int i = 0; i < shoot_amount + 1; i++) + { + p.launchProjectile(this.bullet); + this.durability -= (int) (10D / durability); + } + this.canshoot_.put(p.getName(), false); + Bukkit.getScheduler().runTaskLater(this.plugin, () -> Gun.this.canshoot_.put(p.getName(), true), (long) (60D / speed)); + } + } + + public void onHit(final Entity ent, final int knockback_multiplier) + { + if (this.name.equalsIgnoreCase("freeze")) + { + final Player p = (Player) ent; + p.setWalkSpeed(0.0F); + Bukkit.getScheduler().runTaskLater(this.plugin, () -> p.setWalkSpeed(0.2F), 20L + 20L * knockback_multiplier); + } + else + { + ent.setVelocity(ent.getLocation().getDirection().multiply((-1D) * knockback_multiplier)); + } + } + + public void reloadGun() + { + this.durability = this.max_durability; + this.canshoot = true; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java index 67158b56..a3dcae61 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.guns; import java.util.ArrayList; @@ -15,331 +29,392 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; -import com.comze_instancelabs.minigamesapi.guns.Gun; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.util.IconMenu; import com.comze_instancelabs.minigamesapi.util.Util; -public class Guns { - - // Four gun types: - // - default pistol - // - sniper - // - freeze gun - // - grenade launcher - - // Four upgradable attributes: - // - speed - // - durability - // - shoot_amount - // - knockback_multiplier - - // each attribute has 3 levels - // that gives us 4*4*3 = 48 levels - - // how much more the next level of an attribute will cost - public double level_multiplier = 3D; - - // attribute base costs - public int speed_cost = 40; - public int durability_cost = 30; - public int shoot_amount_cost = 70; - public int knockback_multiplier_cost = 100; - - public HashMap<String, IconMenu> lastmainiconm = new HashMap<String, IconMenu>(); - public HashMap<String, IconMenu> lastmainediticonm = new HashMap<String, IconMenu>(); - public HashMap<String, IconMenu> lastupgradeiconm = new HashMap<String, IconMenu>(); - - // TODO this means only for one plugin for now - public HashMap<String, HashMap<Gun, int[]>> pgunattributes = new HashMap<String, HashMap<Gun, int[]>>(); - - public JavaPlugin plugin; - - public Guns(JavaPlugin plugin) { - this.plugin = plugin; - } - - public void openGUI(String p) { - final int credits = MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().getPoints(p); - IconMenu iconm; - if (lastmainiconm.containsKey(p)) { - iconm = lastmainiconm.get(p); - } else { - iconm = new IconMenu("Gun Upgrades (Credits: " + credits + ")", 36, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - String d = event.getName(); - Player p = event.getPlayer(); - if (MinigamesAPI.getAPI().getPluginInstance(plugin).getAllGuns().containsKey(d)) { - openGunMainEditGUI(p.getName(), d); - } else { - String raw = event.getItem().getItemMeta().getLore().get(0); - String gun = raw.substring(0, raw.indexOf(" ")); - Gun g = MinigamesAPI.getAPI().getPluginInstance(plugin).getAllGuns().get(gun); - if (g != null) { - int[] pattributes = getPlayerGunAttributeLevels(plugin, p.getName(), g); - HashMap<Gun, int[]> t; - if (pgunattributes.containsKey(p.getName())) { - t = pgunattributes.get(p.getName()); - t.put(g, pattributes); - } else { - t = new HashMap<Gun, int[]>(); - t.put(g, pattributes); - } - pgunattributes.put(p.getName(), t); - boolean done = false; - double cost = 0.0D; - if (d.startsWith("Speed")) { - int i = pattributes[0]; - cost = Math.pow(level_multiplier, i) * speed_cost; - if (i < 3 && credits >= cost) { - openUpgradeGUI(p.getName(), gun, "speed", pattributes[0] + 1, cost); - done = true; - // setPlayerGunLevel(plugin, p.getName(), gun, "speed", pattributes[0] + 1); - } - } else if (d.startsWith("Durability")) { - int i = pattributes[1]; - cost = Math.pow(level_multiplier, i) * durability_cost; - if (i < 3 && credits >= cost) { - openUpgradeGUI(p.getName(), gun, "durability", pattributes[1] + 1, cost); - done = true; - } - } else if (d.startsWith("Shoot")) { - int i = pattributes[2]; - cost = Math.pow(level_multiplier, i) * shoot_amount_cost; - if (i < 3 && credits >= cost) { - openUpgradeGUI(p.getName(), gun, "shoot", pattributes[2] + 1, cost); - done = true; - } - } else if (d.startsWith("Knockback")) { - int i = pattributes[3]; - cost = Math.pow(level_multiplier, i) * knockback_multiplier_cost; - if (i < 3 && credits >= cost) { - openUpgradeGUI(p.getName(), gun, "knockback", pattributes[3] + 1, cost); - done = true; - } - } - if (!done) { - p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().not_enough_credits.replaceAll("<credits>", Double.toString(cost))); - } - } - } - event.setWillClose(false); - } - }, plugin); - lastmainiconm.put(p, iconm); - } - - int c = 0; - for (String ac : MinigamesAPI.getAPI().getPluginInstance(plugin).getAllGuns().keySet()) { - Gun ac_ = MinigamesAPI.getAPI().getPluginInstance(plugin).getAllGuns().get(ac); - int[] pattributes = getPlayerGunAttributeLevels(plugin, p, ac_); - iconm.setOption(c, ac_.icon.get(0), ac, MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig().getString("config.guns." + ac + ".lore")); - iconm.setOption(c + 2, new ItemStack(Material.SUGAR), "Speed Lv " + ChatColor.DARK_RED + pattributes[0], ac + " Speed Upgrade"); - iconm.setOption(c + 3, new ItemStack(Material.DIAMOND), "Durability Lv " + ChatColor.DARK_RED + pattributes[1], ac + " Durability Upgrade"); - iconm.setOption(c + 4, new ItemStack(Material.EGG), "Shoot Lv " + ChatColor.DARK_RED + pattributes[2], ac + " Shoot amount Upgrade"); - iconm.setOption(c + 5, new ItemStack(Material.STICK), "Knockback Lv " + ChatColor.DARK_RED + pattributes[3], ac + " Knockback Upgrade"); - c += 9; - } - - iconm.open(Bukkit.getPlayerExact(p)); - } - - public int[] getPlayerGunAttributeLevels(JavaPlugin plugin, String p, Gun g) { - int[] ret = new int[4]; - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - String path = "players." + p + "." + g.name + "."; - ret[0] = config.isSet(path + "speed") ? config.getInt(path + "speed") : 0; - ret[1] = config.isSet(path + "durability") ? config.getInt(path + "durability") : 0; - ret[2] = config.isSet(path + "shoot") ? config.getInt(path + "shoot") : 0; - ret[3] = config.isSet(path + "knockback") ? config.getInt(path + "knockback") : 0; - HashMap<Gun, int[]> t; - if (pgunattributes.containsKey(p)) { - t = pgunattributes.get(p); - t.put(g, ret); - } else { - t = new HashMap<Gun, int[]>(); - t.put(g, ret); - } - pgunattributes.put(p, t); - return ret; - } - - public void setPlayerGunLevel(JavaPlugin plugin, String p, String g, String attribute, int level, double cost) { - int credits = MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().getPoints(p); - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - String path = "players." + p + "." + g + "."; - config.set(path + attribute, level); - MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().saveConfig(); - MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().setPoints(p, (int) (credits - cost)); - } - - public void setPlayerGunMain(JavaPlugin plugin, String p, String g, boolean val) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - String path = "players." + p + "." + g + ".main"; - if (getPlayerAllMainGunsCount(plugin, p) > 1 && val) { - Bukkit.getPlayer(p).sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().too_many_main_guns); - return; - } - config.set(path, val); - MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().saveConfig(); - } - - public int getPlayerAllMainGunsCount(JavaPlugin plugin, String p) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - String path = "players." + p + "."; - int ret = 0; - if (config.isSet(path)) { - for (String g : config.getConfigurationSection(path).getKeys(false)) { - if (config.isSet(path + g + ".main")) { - if (config.getBoolean(path + g + ".main")) { - ret++; - } - } - } - } - return ret; - } - - public void openGunMainEditGUI(String p, final String g) { - IconMenu iconm; - Player p_ = Bukkit.getPlayer(p); - String guns = ""; - for (String gun : getAllMainGuns(p_)) { - guns += gun + ", "; - } - if(guns.equalsIgnoreCase("")){ - guns = "--"; - } - guns = guns.substring(0, guns.length() - 2); - p_.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().all_guns.replaceAll("<guns>", guns)); - - if (lastmainediticonm.containsKey(p)) { - iconm = lastmainediticonm.get(p); - } else { - iconm = new IconMenu("Set Main Gun", 9, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - String d = event.getName(); - Player p = event.getPlayer(); - if (d.startsWith("Set")) { - setPlayerGunMain(plugin, p.getName(), g, true); - } else if (d.startsWith("Remove")) { - setPlayerGunMain(plugin, p.getName(), g, false); - } - openGUI(p.getName()); - event.setWillClose(false); - event.setWillDestroy(true); - } - }, plugin); - } - - iconm.setOption(0, new ItemStack(Material.WOOL, 1, (short) 5), "Set " + g + " as Main/Secondary Gun", ""); - iconm.setOption(8, new ItemStack(Material.WOOL, 1, (short) 14), "Remove " + g + " as Main/Secondary Gun", ""); - - iconm.open(Bukkit.getPlayerExact(p)); - } - - public void openUpgradeGUI(String p, final String g, final String attribute, final int level, final double cost) { - IconMenu iconm; - if (lastupgradeiconm.containsKey(p)) { - iconm = lastupgradeiconm.get(p); - } else { - iconm = new IconMenu("Upgrade?", 9, new IconMenu.OptionClickEventHandler() { - @Override - public void onOptionClick(IconMenu.OptionClickEvent event) { - String d = event.getName(); - Player p = event.getPlayer(); - if (d.startsWith("Buy")) { - setPlayerGunLevel(plugin, p.getName(), g, attribute, level, cost); - p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().attributelevel_increased.replaceAll("<attribute>", attribute)); - } - openGUI(p.getName()); - event.setWillClose(false); - event.setWillDestroy(true); - } - }, plugin); - } - - iconm.setOption(0, new ItemStack(Material.WOOL, 1, (short) 5), "Buy " + attribute + " Upgrade", ""); - iconm.setOption(8, new ItemStack(Material.WOOL, 1, (short) 14), "DON'T buy " + attribute + " Upgrade", ""); - - iconm.open(Bukkit.getPlayerExact(p)); - } - - public static void loadGuns(JavaPlugin plugin) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - if (config.isSet("config.guns")) { - for (String gun : config.getConfigurationSection("config.guns.").getKeys(false)) { - String path = "config.guns." + gun + "."; - Gun n = new Gun(plugin, gun, config.getDouble(path + "speed"), config.getInt(path + "durability"), config.getInt(path + "shoot_amount"), config.getDouble(path + "knockback_multiplier"), Egg.class, Util.parseItems(config.getString(path + "items")), Util.parseItems(config.getString(path + "icon"))); - MinigamesAPI.getAPI().getPluginInstance(plugin).addGun(gun, n); - } - } - } - - public ArrayList<String> getAllMainGuns(Player p) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - ArrayList<String> ret = new ArrayList<String>(); - if(config.isSet("players." + p.getName())){ - for (String gun : config.getConfigurationSection("players." + p.getName() + ".").getKeys(false)) { - String path = "players." + p.getName() + "." + gun + ".main"; - if (config.isSet(path)) { - if(config.getBoolean(path)){ - ret.add(gun); - } - } - } - } - return ret; - } - - public void giveMainGuns(Player p) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); - if (config.isSet("players." + p.getName() + ".")) { - int count = 0; - for (String gun : config.getConfigurationSection("players." + p.getName() + ".").getKeys(false)) { - String path = "players." + p.getName() + "." + gun + ".main"; - if (config.isSet(path)) { - if (config.getBoolean(path)) { - // main gun - Gun g = MinigamesAPI.getAPI().getPluginInstance(plugin).getAllGuns().get(gun); - if (g != null) { - p.updateInventory(); - for (ItemStack i : g.items) { - ItemStack temp = i; - ItemMeta itemm = temp.getItemMeta(); - itemm.setDisplayName(gun); - //System.out.println(itemm.getDisplayName()); - temp.setItemMeta(itemm); - p.getInventory().addItem(temp); - } - p.updateInventory(); - count++; - } - } - } - } - if (count < 1) { - // player doesn't have any main, give random gun - HashMap<String, Gun> guns = MinigamesAPI.getAPI().getPluginInstance(plugin).getAllGuns(); - List<String> t = new ArrayList<String>(guns.keySet()); - String gun = t.get((new Random()).nextInt(t.size())); - Gun g = guns.get(gun); - if (g != null) { - p.updateInventory(); - for (ItemStack i : g.items) { - ItemStack temp = i; - ItemMeta itemm = temp.getItemMeta(); - itemm.setDisplayName(gun); - temp.setItemMeta(itemm); - p.getInventory().addItem(temp); - } - p.updateInventory(); - count++; - } - } - } - } - +public class Guns +{ + + // Four gun types: + // - default pistol + // - sniper + // - freeze gun + // - grenade launcher + + // Four upgradable attributes: + // - speed + // - durability + // - shoot_amount + // - knockback_multiplier + + // each attribute has 3 levels + // that gives us 4*4*3 = 48 levels + + // how much more the next level of an attribute will cost + public double level_multiplier = 3D; + + // attribute base costs + public int speed_cost = 40; + public int durability_cost = 30; + public int shoot_amount_cost = 70; + public int knockback_multiplier_cost = 100; + + public HashMap<String, IconMenu> lastmainiconm = new HashMap<>(); + public HashMap<String, IconMenu> lastmainediticonm = new HashMap<>(); + public HashMap<String, IconMenu> lastupgradeiconm = new HashMap<>(); + + // TODO this means only for one plugin for now + public HashMap<String, HashMap<Gun, int[]>> pgunattributes = new HashMap<>(); + + public JavaPlugin plugin; + + public Guns(final JavaPlugin plugin) + { + this.plugin = plugin; + } + + public void openGUI(final String p) + { + final int credits = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getStatsInstance().getPoints(p); + IconMenu iconm; + if (this.lastmainiconm.containsKey(p)) + { + iconm = this.lastmainiconm.get(p); + } + else + { + iconm = new IconMenu("Gun Upgrades (Credits: " + credits + ")", 36, event -> { + final String d = event.getName(); + final Player p1 = event.getPlayer(); + if (MinigamesAPI.getAPI().getPluginInstance(Guns.this.plugin).getAllGuns().containsKey(d)) + { + Guns.this.openGunMainEditGUI(p1.getName(), d); + } + else + { + final String raw = event.getItem().getItemMeta().getLore().get(0); + final String gun = raw.substring(0, raw.indexOf(" ")); + final Gun g = MinigamesAPI.getAPI().getPluginInstance(Guns.this.plugin).getAllGuns().get(gun); + if (g != null) + { + final int[] pattributes = Guns.this.getPlayerGunAttributeLevels(Guns.this.plugin, p1.getName(), g); + HashMap<Gun, int[]> t; + if (Guns.this.pgunattributes.containsKey(p1.getName())) + { + t = Guns.this.pgunattributes.get(p1.getName()); + t.put(g, pattributes); + } + else + { + t = new HashMap<>(); + t.put(g, pattributes); + } + Guns.this.pgunattributes.put(p1.getName(), t); + boolean done = false; + double cost = 0.0D; + if (d.startsWith("Speed")) + { + final int i1 = pattributes[0]; + cost = Math.pow(Guns.this.level_multiplier, i1) * Guns.this.speed_cost; + if (i1 < 3 && credits >= cost) + { + Guns.this.openUpgradeGUI(p1.getName(), gun, "speed", pattributes[0] + 1, cost); + done = true; + // setPlayerGunLevel(plugin, p.getName(), gun, "speed", pattributes[0] + 1); + } + } + else if (d.startsWith("Durability")) + { + final int i2 = pattributes[1]; + cost = Math.pow(Guns.this.level_multiplier, i2) * Guns.this.durability_cost; + if (i2 < 3 && credits >= cost) + { + Guns.this.openUpgradeGUI(p1.getName(), gun, "durability", pattributes[1] + 1, cost); + done = true; + } + } + else if (d.startsWith("Shoot")) + { + final int i3 = pattributes[2]; + cost = Math.pow(Guns.this.level_multiplier, i3) * Guns.this.shoot_amount_cost; + if (i3 < 3 && credits >= cost) + { + Guns.this.openUpgradeGUI(p1.getName(), gun, "shoot", pattributes[2] + 1, cost); + done = true; + } + } + else if (d.startsWith("Knockback")) + { + final int i4 = pattributes[3]; + cost = Math.pow(Guns.this.level_multiplier, i4) * Guns.this.knockback_multiplier_cost; + if (i4 < 3 && credits >= cost) + { + Guns.this.openUpgradeGUI(p1.getName(), gun, "knockback", pattributes[3] + 1, cost); + done = true; + } + } + if (!done) + { + p1.sendMessage(MinigamesAPI.getAPI().getPluginInstance(Guns.this.plugin).getMessagesConfig().not_enough_credits.replaceAll("<credits>", Double.toString(cost))); + } + } + } + event.setWillClose(false); + }, this.plugin); + this.lastmainiconm.put(p, iconm); + } + + int c = 0; + for (final String ac : MinigamesAPI.getAPI().getPluginInstance(this.plugin).getAllGuns().keySet()) + { + final Gun ac_ = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getAllGuns().get(ac); + final int[] pattributes = this.getPlayerGunAttributeLevels(this.plugin, p, ac_); + iconm.setOption(c, ac_.icon.get(0), ac, MinigamesAPI.getAPI().getPluginInstance(this.plugin).getGunsConfig().getConfig().getString("config.guns." + ac + ".lore")); + iconm.setOption(c + 2, new ItemStack(Material.SUGAR), "Speed Lv " + ChatColor.DARK_RED + pattributes[0], ac + " Speed Upgrade"); + iconm.setOption(c + 3, new ItemStack(Material.DIAMOND), "Durability Lv " + ChatColor.DARK_RED + pattributes[1], ac + " Durability Upgrade"); + iconm.setOption(c + 4, new ItemStack(Material.EGG), "Shoot Lv " + ChatColor.DARK_RED + pattributes[2], ac + " Shoot amount Upgrade"); + iconm.setOption(c + 5, new ItemStack(Material.STICK), "Knockback Lv " + ChatColor.DARK_RED + pattributes[3], ac + " Knockback Upgrade"); + c += 9; + } + + iconm.open(Bukkit.getPlayerExact(p)); + } + + public int[] getPlayerGunAttributeLevels(final JavaPlugin plugin, final String p, final Gun g) + { + final int[] ret = new int[4]; + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); + final String path = "players." + p + "." + g.name + "."; + ret[0] = config.isSet(path + "speed") ? config.getInt(path + "speed") : 0; + ret[1] = config.isSet(path + "durability") ? config.getInt(path + "durability") : 0; + ret[2] = config.isSet(path + "shoot") ? config.getInt(path + "shoot") : 0; + ret[3] = config.isSet(path + "knockback") ? config.getInt(path + "knockback") : 0; + HashMap<Gun, int[]> t; + if (this.pgunattributes.containsKey(p)) + { + t = this.pgunattributes.get(p); + t.put(g, ret); + } + else + { + t = new HashMap<>(); + t.put(g, ret); + } + this.pgunattributes.put(p, t); + return ret; + } + + public void setPlayerGunLevel(final JavaPlugin plugin, final String p, final String g, final String attribute, final int level, final double cost) + { + final int credits = MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().getPoints(p); + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); + final String path = "players." + p + "." + g + "."; + config.set(path + attribute, level); + MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().saveConfig(); + MinigamesAPI.getAPI().getPluginInstance(plugin).getStatsInstance().setPoints(p, (int) (credits - cost)); + } + + public void setPlayerGunMain(final JavaPlugin plugin, final String p, final String g, final boolean val) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); + final String path = "players." + p + "." + g + ".main"; + if (this.getPlayerAllMainGunsCount(plugin, p) > 1 && val) + { + Bukkit.getPlayer(p).sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().too_many_main_guns); + return; + } + config.set(path, val); + MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().saveConfig(); + } + + public int getPlayerAllMainGunsCount(final JavaPlugin plugin, final String p) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); + final String path = "players." + p + "."; + int ret = 0; + if (config.isSet(path)) + { + for (final String g : config.getConfigurationSection(path).getKeys(false)) + { + if (config.isSet(path + g + ".main")) + { + if (config.getBoolean(path + g + ".main")) + { + ret++; + } + } + } + } + return ret; + } + + public void openGunMainEditGUI(final String p, final String g) + { + IconMenu iconm; + final Player p_ = Bukkit.getPlayer(p); + String guns = ""; + for (final String gun : this.getAllMainGuns(p_)) + { + guns += gun + ", "; + } + if (guns.equalsIgnoreCase("")) + { + guns = "--"; + } + guns = guns.substring(0, guns.length() - 2); + p_.sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().all_guns.replaceAll("<guns>", guns)); + + if (this.lastmainediticonm.containsKey(p)) + { + iconm = this.lastmainediticonm.get(p); + } + else + { + iconm = new IconMenu("Set Main Gun", 9, event -> { + final String d = event.getName(); + final Player p1 = event.getPlayer(); + if (d.startsWith("Set")) + { + Guns.this.setPlayerGunMain(Guns.this.plugin, p1.getName(), g, true); + } + else if (d.startsWith("Remove")) + { + Guns.this.setPlayerGunMain(Guns.this.plugin, p1.getName(), g, false); + } + Guns.this.openGUI(p1.getName()); + event.setWillClose(false); + event.setWillDestroy(true); + }, this.plugin); + } + + iconm.setOption(0, new ItemStack(Material.WOOL, 1, (short) 5), "Set " + g + " as Main/Secondary Gun", ""); + iconm.setOption(8, new ItemStack(Material.WOOL, 1, (short) 14), "Remove " + g + " as Main/Secondary Gun", ""); + + iconm.open(Bukkit.getPlayerExact(p)); + } + + public void openUpgradeGUI(final String p, final String g, final String attribute, final int level, final double cost) + { + IconMenu iconm; + if (this.lastupgradeiconm.containsKey(p)) + { + iconm = this.lastupgradeiconm.get(p); + } + else + { + iconm = new IconMenu("Upgrade?", 9, event -> { + final String d = event.getName(); + final Player p1 = event.getPlayer(); + if (d.startsWith("Buy")) + { + Guns.this.setPlayerGunLevel(Guns.this.plugin, p1.getName(), g, attribute, level, cost); + p1.sendMessage(MinigamesAPI.getAPI().getPluginInstance(Guns.this.plugin).getMessagesConfig().attributelevel_increased.replaceAll("<attribute>", attribute)); + } + Guns.this.openGUI(p1.getName()); + event.setWillClose(false); + event.setWillDestroy(true); + }, this.plugin); + } + + iconm.setOption(0, new ItemStack(Material.WOOL, 1, (short) 5), "Buy " + attribute + " Upgrade", ""); + iconm.setOption(8, new ItemStack(Material.WOOL, 1, (short) 14), "DON'T buy " + attribute + " Upgrade", ""); + + iconm.open(Bukkit.getPlayerExact(p)); + } + + public static void loadGuns(final JavaPlugin plugin) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getGunsConfig().getConfig(); + if (config.isSet("config.guns")) + { + for (final String gun : config.getConfigurationSection("config.guns.").getKeys(false)) + { + final String path = "config.guns." + gun + "."; + final Gun n = new Gun(plugin, gun, config.getDouble(path + "speed"), config.getInt(path + "durability"), config.getInt(path + "shoot_amount"), + config.getDouble(path + "knockback_multiplier"), Egg.class, Util.parseItems(config.getString(path + "items")), Util.parseItems(config.getString(path + "icon"))); + MinigamesAPI.getAPI().getPluginInstance(plugin).addGun(gun, n); + } + } + } + + public ArrayList<String> getAllMainGuns(final Player p) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getGunsConfig().getConfig(); + final ArrayList<String> ret = new ArrayList<>(); + if (config.isSet("players." + p.getName())) + { + for (final String gun : config.getConfigurationSection("players." + p.getName() + ".").getKeys(false)) + { + final String path = "players." + p.getName() + "." + gun + ".main"; + if (config.isSet(path)) + { + if (config.getBoolean(path)) + { + ret.add(gun); + } + } + } + } + return ret; + } + + public void giveMainGuns(final Player p) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getGunsConfig().getConfig(); + if (config.isSet("players." + p.getName() + ".")) + { + int count = 0; + for (final String gun : config.getConfigurationSection("players." + p.getName() + ".").getKeys(false)) + { + final String path = "players." + p.getName() + "." + gun + ".main"; + if (config.isSet(path)) + { + if (config.getBoolean(path)) + { + // main gun + final Gun g = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getAllGuns().get(gun); + if (g != null) + { + p.updateInventory(); + for (final ItemStack i : g.items) + { + final ItemStack temp = i; + final ItemMeta itemm = temp.getItemMeta(); + itemm.setDisplayName(gun); + // System.out.println(itemm.getDisplayName()); + temp.setItemMeta(itemm); + p.getInventory().addItem(temp); + } + p.updateInventory(); + count++; + } + } + } + } + if (count < 1) + { + // player doesn't have any main, give random gun + final HashMap<String, Gun> guns = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getAllGuns(); + final List<String> t = new ArrayList<>(guns.keySet()); + final String gun = t.get((new Random()).nextInt(t.size())); + final Gun g = guns.get(gun); + if (g != null) + { + p.updateInventory(); + for (final ItemStack i : g.items) + { + final ItemStack temp = i; + final ItemMeta itemm = temp.getItemMeta(); + itemm.setDisplayName(gun); + temp.setItemMeta(itemm); + p.getInventory().addItem(temp); + } + p.updateInventory(); + count++; + } + } + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java index 33120b15..5da8097c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java @@ -1,64 +1,97 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.sql; // replace this with yours - - + import java.sql.Connection; - - -public abstract class Database -{ - protected boolean connected; - protected Connection connection; - public int lastUpdate; - - - public Database() - { - this.connected = false; - this.connection = null; - } - - - protected Statements getStatement(String query) { - String trimmedQuery = query.trim(); - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("SELECT")) - return Statements.SELECT; - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("INSERT")) - return Statements.INSERT; - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("UPDATE")) - return Statements.UPDATE; - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("DELETE")) - return Statements.DELETE; - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("CREATE")) - return Statements.CREATE; - if (trimmedQuery.substring(0, 5).equalsIgnoreCase("ALTER")) - return Statements.ALTER; - if (trimmedQuery.substring(0, 4).equalsIgnoreCase("DROP")) - return Statements.DROP; - if (trimmedQuery.substring(0, 8).equalsIgnoreCase("TRUNCATE")) - return Statements.TRUNCATE; - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("RENAME")) - return Statements.RENAME; - if (trimmedQuery.substring(0, 2).equalsIgnoreCase("DO")) - return Statements.DO; - if (trimmedQuery.substring(0, 7).equalsIgnoreCase("REPLACE")) - return Statements.REPLACE; - if (trimmedQuery.substring(0, 4).equalsIgnoreCase("LOAD")) - return Statements.LOAD; - if (trimmedQuery.substring(0, 7).equalsIgnoreCase("HANDLER")) - return Statements.HANDLER; - if (trimmedQuery.substring(0, 4).equalsIgnoreCase("CALL")) { - return Statements.CALL; - } - return Statements.SELECT; - } - - - protected static enum Statements - { - SELECT, INSERT, UPDATE, DELETE, DO, REPLACE, LOAD, HANDLER, CALL, - CREATE, ALTER, DROP, TRUNCATE, RENAME, START, COMMIT, ROLLBACK, - SAVEPOINT, LOCK, UNLOCK, PREPARE, EXECUTE, DEALLOCATE, SET, SHOW, - DESCRIBE, EXPLAIN, HELP, USE, ANALYZE, ATTACH, BEGIN, DETACH, - END, INDEXED, ON, PRAGMA, REINDEX, RELEASE, VACUUM; - } -} \ No newline at end of file + +public abstract class Database +{ + protected boolean connected; + protected Connection connection; + public int lastUpdate; + + public Database() + { + this.connected = false; + this.connection = null; + } + + protected Statements getStatement(final String query) + { + final String trimmedQuery = query.trim(); + if (trimmedQuery.substring(0, 6).equalsIgnoreCase("SELECT")) + { + return Statements.SELECT; + } + if (trimmedQuery.substring(0, 6).equalsIgnoreCase("INSERT")) + { + return Statements.INSERT; + } + if (trimmedQuery.substring(0, 6).equalsIgnoreCase("UPDATE")) + { + return Statements.UPDATE; + } + if (trimmedQuery.substring(0, 6).equalsIgnoreCase("DELETE")) + { + return Statements.DELETE; + } + if (trimmedQuery.substring(0, 6).equalsIgnoreCase("CREATE")) + { + return Statements.CREATE; + } + if (trimmedQuery.substring(0, 5).equalsIgnoreCase("ALTER")) + { + return Statements.ALTER; + } + if (trimmedQuery.substring(0, 4).equalsIgnoreCase("DROP")) + { + return Statements.DROP; + } + if (trimmedQuery.substring(0, 8).equalsIgnoreCase("TRUNCATE")) + { + return Statements.TRUNCATE; + } + if (trimmedQuery.substring(0, 6).equalsIgnoreCase("RENAME")) + { + return Statements.RENAME; + } + if (trimmedQuery.substring(0, 2).equalsIgnoreCase("DO")) + { + return Statements.DO; + } + if (trimmedQuery.substring(0, 7).equalsIgnoreCase("REPLACE")) + { + return Statements.REPLACE; + } + if (trimmedQuery.substring(0, 4).equalsIgnoreCase("LOAD")) + { + return Statements.LOAD; + } + if (trimmedQuery.substring(0, 7).equalsIgnoreCase("HANDLER")) + { + return Statements.HANDLER; + } + if (trimmedQuery.substring(0, 4).equalsIgnoreCase("CALL")) + { + return Statements.CALL; + } + return Statements.SELECT; + } + + protected static enum Statements + { + SELECT, INSERT, UPDATE, DELETE, DO, REPLACE, LOAD, HANDLER, CALL, CREATE, ALTER, DROP, TRUNCATE, RENAME, START, COMMIT, ROLLBACK, SAVEPOINT, LOCK, UNLOCK, PREPARE, EXECUTE, DEALLOCATE, SET, SHOW, DESCRIBE, EXPLAIN, HELP, USE, ANALYZE, ATTACH, BEGIN, DETACH, END, INDEXED, ON, PRAGMA, REINDEX, RELEASE, VACUUM; + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java index a11fd440..f5f1c008 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java @@ -1,264 +1,350 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.sql; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import com.comze_instancelabs.minigamesapi.sql.MySQL; -import com.comze_instancelabs.minigamesapi.sql.SQLite; - import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; -public class MainSQL { - - // used for rewards and stats - - JavaPlugin plugin = null; - private boolean mysql = true; // false for sqlite - MySQL MySQL; - SQLite SQLite; - - // Set to true if tables don't contain UUIDs - boolean oldFormat = false; - - public MainSQL(JavaPlugin plugin, boolean mysql) { - this.plugin = plugin; - this.mysql = mysql; - - if (mysql) { - MySQL = new MySQL(plugin.getConfig().getString("mysql.host"), "3306", plugin.getConfig().getString("mysql.database"), plugin.getConfig().getString("mysql.user"), plugin.getConfig().getString("mysql.pw")); - } else { - SQLite = new SQLite(plugin.getConfig().getString("mysql.database"), plugin.getConfig().getString("mysql.user"), plugin.getConfig().getString("mysql.pw")); - } - - if (plugin.getConfig().getBoolean("mysql.enabled") && MySQL != null) { - try { - this.createTables(); - } catch (Exception e) { - System.out.println("Failed initializing MySQL. Disabling!"); - plugin.getConfig().set("mysql.enabled", false); - plugin.saveConfig(); - } - } else if (plugin.getConfig().getBoolean("mysql.enabled") && MySQL == null) { - System.out.println("Failed initializing MySQL. Disabling!"); - plugin.getConfig().set("mysql.enabled", false); - plugin.saveConfig(); - } - } - - public void createTables() { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return; - } - if (!mysql) { - // TODO SQLite - } - Connection c = MySQL.open(); - - try { - c.createStatement().execute("CREATE DATABASE IF NOT EXISTS `" + plugin.getConfig().getString("mysql.database") + "`"); - c.createStatement().execute("CREATE TABLE IF NOT EXISTS " + plugin.getName() + " (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player VARCHAR(100), points INT, wins INT, loses INT, kills INT)"); - ResultSet res = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + plugin.getName() + "` LIKE 'kills'"); - if (!res.isBeforeFirst()) { - // old table format without kills column -> add kills column - c.createStatement().execute("ALTER TABLE " + plugin.getName() + " ADD kills INT"); - } - ResultSet res2 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + plugin.getName() + "` LIKE 'deaths'"); - if (!res2.isBeforeFirst()) { - // old table format without deaths column -> add deaths column - c.createStatement().execute("ALTER TABLE " + plugin.getName() + " ADD deaths INT"); - } - ResultSet res3 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + plugin.getName() + "` LIKE 'uuid'"); - if (!res3.isBeforeFirst()) { - // old table format without uuid column -> add uuid column - c.createStatement().execute("ALTER TABLE " + plugin.getName() + " ADD uuid VARCHAR(100)"); - oldFormat = true; - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public void updateWinnerStats(Player p, int reward, boolean addwin) { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return; - } - if (!mysql) { - // TODO SQLite - } - String uuid = p.getUniqueId().toString(); - Connection c = MySQL.open(); - - int wincount = addwin ? 1 : 0; - - try { - if (oldFormat) { - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); - } - ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + plugin.getName() + " VALUES('0', '" + p.getName() + "', '" + Integer.toString(reward) + "', '" + Integer.toString(wincount) + "', '0', '0', '0', '" + uuid + "')"); - return; - } - res3.next(); - int points = res3.getInt("points") + reward; - int wins = res3.getInt("wins") + wincount; - - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET points='" + Integer.toString(points) + "', wins='" + Integer.toString(wins) + "' WHERE uuid='" + uuid + "'"); - - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public void updateLoserStats(Player p) { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return; - } - if (!mysql) { - // TODO SQLite - } - String uuid = p.getUniqueId().toString(); - Connection c = MySQL.open(); - - try { - if (oldFormat) { - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); - } - ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '1', '0', '0', '" + uuid + "')"); - return; - } - res3.next(); - int loses = res3.getInt("loses") + 1; - - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET loses='" + Integer.toString(loses) + "' WHERE uuid='" + uuid + "'"); - - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public void updateKillerStats(Player p, int kills_) { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return; - } - if (!mysql) { - // TODO SQLite - } - String uuid = p.getUniqueId().toString(); - Connection c = MySQL.open(); - - try { - if (oldFormat) { - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); - } - ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '0', '1', '0', '" + uuid + "')"); - return; - } - res3.next(); - int kills = res3.getInt("kills") + kills_; - - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET kills='" + Integer.toString(kills) + "' WHERE uuid='" + uuid + "'"); - - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public void updateDeathStats(Player p, int deaths_) { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return; - } - if (!mysql) { - // TODO SQLite - } - String uuid = p.getUniqueId().toString(); - Connection c = MySQL.open(); - - try { - if (oldFormat) { - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); - } - ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '0', '0', '1', '" + uuid + "')"); - return; - } - res3.next(); - int deaths = res3.getInt("deaths") + deaths_; - - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET deaths='" + Integer.toString(deaths) + "' WHERE uuid='" + uuid + "'"); - - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public int getPoints(Player p) { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return -1; - } - if (!mysql) { - // TODO SQLite - } - String uuid = p.getUniqueId().toString(); - Connection c = MySQL.open(); - - try { - if (oldFormat) { - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); - } - ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + plugin.getName() + " WHERE uuid='" + uuid + "'"); - - if (res3.isBeforeFirst()) { - res3.next(); - int credits = res3.getInt("points"); - return credits; - } else { - // System.out.println("New User detected."); - } - } catch (SQLException e) { - // - } - return -1; - } - - public int getWins(Player p) { - if (!plugin.getConfig().getBoolean("mysql.enabled")) { - return -1; - } - if (!mysql) { - // TODO SQLite - } - String uuid = p.getUniqueId().toString(); - Connection c = MySQL.open(); - - try { - if (oldFormat) { - c.createStatement().executeUpdate("UPDATE " + plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); - } - ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + plugin.getName() + " WHERE uuid='" + uuid + "'"); - - if (res3.isBeforeFirst()) { - res3.next(); - int wins = res3.getInt("wins"); - return wins; - } else { - // System.out.println("New User detected."); - } - } catch (SQLException e) { - // - } - return -1; - } +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; +public class MainSQL +{ + + // used for rewards and stats + + JavaPlugin plugin = null; + private boolean mysql = true; // false for sqlite + MySQL MySQL; + SQLite SQLite; + + // Set to true if tables don't contain UUIDs + boolean oldFormat = false; + + public MainSQL(final JavaPlugin plugin, final boolean mysql) + { + this.plugin = plugin; + this.mysql = mysql; + + if (mysql) + { + this.MySQL = new MySQL(plugin.getConfig().getString("mysql.host"), "3306", plugin.getConfig().getString("mysql.database"), plugin.getConfig().getString("mysql.user"), + plugin.getConfig().getString("mysql.pw")); + } + else + { + this.SQLite = new SQLite(plugin.getConfig().getString("mysql.database"), plugin.getConfig().getString("mysql.user"), plugin.getConfig().getString("mysql.pw")); + } + + if (plugin.getConfig().getBoolean("mysql.enabled") && this.MySQL != null) + { + try + { + this.createTables(); + } + catch (final Exception e) + { + System.out.println("Failed initializing MySQL. Disabling!"); + plugin.getConfig().set("mysql.enabled", false); + plugin.saveConfig(); + } + } + else if (plugin.getConfig().getBoolean("mysql.enabled") && this.MySQL == null) + { + System.out.println("Failed initializing MySQL. Disabling!"); + plugin.getConfig().set("mysql.enabled", false); + plugin.saveConfig(); + } + } + + public void createTables() + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return; + } + if (!this.mysql) + { + // TODO SQLite + } + final Connection c = this.MySQL.open(); + + try + { + c.createStatement().execute("CREATE DATABASE IF NOT EXISTS `" + this.plugin.getConfig().getString("mysql.database") + "`"); + c.createStatement() + .execute("CREATE TABLE IF NOT EXISTS " + this.plugin.getName() + " (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player VARCHAR(100), points INT, wins INT, loses INT, kills INT)"); + final ResultSet res = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'kills'"); + if (!res.isBeforeFirst()) + { + // old table format without kills column -> add kills column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD kills INT"); + } + final ResultSet res2 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'deaths'"); + if (!res2.isBeforeFirst()) + { + // old table format without deaths column -> add deaths column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD deaths INT"); + } + final ResultSet res3 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'uuid'"); + if (!res3.isBeforeFirst()) + { + // old table format without uuid column -> add uuid column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD uuid VARCHAR(100)"); + this.oldFormat = true; + } + } + catch (final SQLException e) + { + e.printStackTrace(); + } + } + + public void updateWinnerStats(final Player p, final int reward, final boolean addwin) + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return; + } + if (!this.mysql) + { + // TODO SQLite + } + final String uuid = p.getUniqueId().toString(); + final Connection c = this.MySQL.open(); + + final int wincount = addwin ? 1 : 0; + + try + { + if (this.oldFormat) + { + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + } + final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); + if (!res3.isBeforeFirst()) + { + // there's no such user + c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '" + Integer.toString(reward) + "', '" + Integer.toString(wincount) + + "', '0', '0', '0', '" + uuid + "')"); + return; + } + res3.next(); + final int points = res3.getInt("points") + reward; + final int wins = res3.getInt("wins") + wincount; + + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET points='" + Integer.toString(points) + "', wins='" + Integer.toString(wins) + "' WHERE uuid='" + uuid + "'"); + + } + catch (final SQLException e) + { + e.printStackTrace(); + } + } + + public void updateLoserStats(final Player p) + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return; + } + if (!this.mysql) + { + // TODO SQLite + } + final String uuid = p.getUniqueId().toString(); + final Connection c = this.MySQL.open(); + + try + { + if (this.oldFormat) + { + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + } + final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); + if (!res3.isBeforeFirst()) + { + // there's no such user + c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '1', '0', '0', '" + uuid + "')"); + return; + } + res3.next(); + final int loses = res3.getInt("loses") + 1; + + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET loses='" + Integer.toString(loses) + "' WHERE uuid='" + uuid + "'"); + + } + catch (final SQLException e) + { + e.printStackTrace(); + } + } + + public void updateKillerStats(final Player p, final int kills_) + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return; + } + if (!this.mysql) + { + // TODO SQLite + } + final String uuid = p.getUniqueId().toString(); + final Connection c = this.MySQL.open(); + + try + { + if (this.oldFormat) + { + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + } + final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); + if (!res3.isBeforeFirst()) + { + // there's no such user + c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '0', '1', '0', '" + uuid + "')"); + return; + } + res3.next(); + final int kills = res3.getInt("kills") + kills_; + + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET kills='" + Integer.toString(kills) + "' WHERE uuid='" + uuid + "'"); + + } + catch (final SQLException e) + { + e.printStackTrace(); + } + } + + public void updateDeathStats(final Player p, final int deaths_) + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return; + } + if (!this.mysql) + { + // TODO SQLite + } + final String uuid = p.getUniqueId().toString(); + final Connection c = this.MySQL.open(); + + try + { + if (this.oldFormat) + { + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + } + final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); + if (!res3.isBeforeFirst()) + { + // there's no such user + c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '0', '0', '1', '" + uuid + "')"); + return; + } + res3.next(); + final int deaths = res3.getInt("deaths") + deaths_; + + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET deaths='" + Integer.toString(deaths) + "' WHERE uuid='" + uuid + "'"); + + } + catch (final SQLException e) + { + e.printStackTrace(); + } + } + + public int getPoints(final Player p) + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return -1; + } + if (!this.mysql) + { + // TODO SQLite + } + final String uuid = p.getUniqueId().toString(); + final Connection c = this.MySQL.open(); + + try + { + if (this.oldFormat) + { + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + } + final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); + + if (res3.isBeforeFirst()) + { + res3.next(); + final int credits = res3.getInt("points"); + return credits; + } + else + { + // System.out.println("New User detected."); + } + } + catch (final SQLException e) + { + // + } + return -1; + } + + public int getWins(final Player p) + { + if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + { + return -1; + } + if (!this.mysql) + { + // TODO SQLite + } + final String uuid = p.getUniqueId().toString(); + final Connection c = this.MySQL.open(); + + try + { + if (this.oldFormat) + { + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + } + final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); + + if (res3.isBeforeFirst()) + { + res3.next(); + final int wins = res3.getInt("wins"); + return wins; + } + else + { + // System.out.println("New User detected."); + } + } + catch (final SQLException e) + { + // + } + return -1; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java index 49e085c9..f4215388 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.sql; import java.sql.Connection; @@ -5,55 +19,71 @@ import java.sql.SQLException; import com.comze_instancelabs.minigamesapi.MinigamesAPI; -import com.comze_instancelabs.minigamesapi.sql.Database; - -public class MySQL extends Database { - String user = ""; - String database = ""; - String password = ""; - String port = ""; - String hostname = ""; - Connection c = null; - - public MySQL(String hostname, String portnmbr, String database, String username, String password) { - this.hostname = hostname; - this.port = portnmbr; - this.database = database; - this.user = username; - this.password = password; - } - - public Connection open() { - try { - Class.forName("com.mysql.jdbc.Driver"); - this.c = DriverManager.getConnection("jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.database, this.user, this.password); - return c; - } catch (SQLException e) { - System.out.println("Could not connect to MySQL server! Cause: " + e.getMessage()); - } catch (ClassNotFoundException e) { - System.out.println("JDBC Driver not found!"); - } - return this.c; - } - - public boolean checkConnection() { - if (this.c != null) { - return true; - } - return false; - } - - public Connection getConn() { - return this.c; - } - public void closeConnection(Connection c) { - try { - c.close(); - } catch (SQLException e) { - if (MinigamesAPI.debug) - e.printStackTrace(); - } - c = null; - } -} \ No newline at end of file +public class MySQL extends Database +{ + String user = ""; + String database = ""; + String password = ""; + String port = ""; + String hostname = ""; + Connection c = null; + + public MySQL(final String hostname, final String portnmbr, final String database, final String username, final String password) + { + this.hostname = hostname; + this.port = portnmbr; + this.database = database; + this.user = username; + this.password = password; + } + + public Connection open() + { + try + { + Class.forName("com.mysql.jdbc.Driver"); + this.c = DriverManager.getConnection("jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.database, this.user, this.password); + return this.c; + } + catch (final SQLException e) + { + System.out.println("Could not connect to MySQL server! Cause: " + e.getMessage()); + } + catch (final ClassNotFoundException e) + { + System.out.println("JDBC Driver not found!"); + } + return this.c; + } + + public boolean checkConnection() + { + if (this.c != null) + { + return true; + } + return false; + } + + public Connection getConn() + { + return this.c; + } + + public void closeConnection(Connection c) + { + try + { + c.close(); + } + catch (final SQLException e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + this.c = null; + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java index d640437f..437b1938 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java @@ -1,48 +1,72 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.sql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import com.comze_instancelabs.minigamesapi.sql.Database; - -public class SQLite extends Database { - String user = ""; - String database = ""; - String password = ""; - Connection c = null; - - public SQLite(String database, String username, String password) { - this.database = database; - this.user = username; - this.password = password; - } - - public Connection open() { - try { - Class.forName("org.sqlite.JDBC"); - this.c = DriverManager.getConnection("jdbc:sqlite:main.db"); - return c; - } catch (SQLException e) { - System.out.println("Could not connect to SQLite database! Cause: " + e.getMessage()); - } catch (ClassNotFoundException e) { - System.out.println("JDBC Driver not found!"); - } - return this.c; - } - - public boolean checkConnection() { - if (this.c != null) { - return true; - } - return false; - } - - public Connection getConn() { - return this.c; - } - - public void closeConnection(Connection c) { - c = null; - } +public class SQLite extends Database +{ + String user = ""; + String database = ""; + String password = ""; + Connection c = null; + + public SQLite(final String database, final String username, final String password) + { + this.database = database; + this.user = username; + this.password = password; + } + + public Connection open() + { + try + { + Class.forName("org.sqlite.JDBC"); + this.c = DriverManager.getConnection("jdbc:sqlite:main.db"); + return this.c; + } + catch (final SQLException e) + { + System.out.println("Could not connect to SQLite database! Cause: " + e.getMessage()); + } + catch (final ClassNotFoundException e) + { + System.out.println("JDBC Driver not found!"); + } + return this.c; + } + + public boolean checkConnection() + { + if (this.c != null) + { + return true; + } + return false; + } + + public Connection getConn() + { + return this.c; + } + + public void closeConnection(Connection c) + { + this.c = null; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java index 1dfa40a0..f9fd1754 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Hologram.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.statsholograms; import java.util.ArrayList; @@ -11,46 +25,53 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; -public class Hologram { - - ArrayList<Integer> ids = new ArrayList<Integer>(); - PluginInstance pli; - Location l; - - public Hologram(PluginInstance pli, Location l) { - this.pli = pli; - this.l = l; - } - - public void send(Player p) { - if (pli.getMessagesConfig().getConfig().isSet("messages.stats")) { - - double ydelta = 0.25D; - - int kills_ = pli.getStatsInstance().getKills(p.getName()); - int deaths_ = pli.getStatsInstance().getDeaths(p.getName()); - int money_ = (int) MinigamesAPI.econ.getBalance(p.getName()); - - String wins = Integer.toString(pli.getStatsInstance().getWins(p.getName())); - String loses = Integer.toString(pli.getStatsInstance().getLoses(p.getName())); - String kills = Integer.toString(kills_); - String deaths = Integer.toString(deaths_); - String money = Integer.toString(money_); - String points = Integer.toString(pli.getStatsInstance().getPoints(p.getName())); - String kdr = Integer.toString(Math.max(kills_, 1) / Math.max(deaths_, 1)); - ArrayList<String> s = new ArrayList<String>(pli.getMessagesConfig().getConfig().getConfigurationSection("messages.stats").getKeys(false)); - Collections.reverse(s); - for (String key : s) { - // Each line from the config gets checked for variables like <wins> or <money> and these get replaced by the values calculated above - String msg = pli.getMessagesConfig().getConfig().getString("messages.stats." + key).replaceAll("<wins>", wins).replaceAll("<loses>", loses).replaceAll("<alltime_kills>", kills).replaceAll("<alltime_deaths>", deaths).replaceAll("<points>", points).replaceAll("<kdr>", kdr).replaceAll("<money>", money); - ids.addAll(Effects.playHologram(p, l.clone().add(0D, ydelta, 0D), ChatColor.translateAlternateColorCodes('&', msg), false, false)); - ydelta += 0.25D; - } - } - } - - public ArrayList<Integer> getIds() { - return ids; - } - +public class Hologram +{ + + ArrayList<Integer> ids = new ArrayList<>(); + PluginInstance pli; + Location l; + + public Hologram(final PluginInstance pli, final Location l) + { + this.pli = pli; + this.l = l; + } + + public void send(final Player p) + { + if (this.pli.getMessagesConfig().getConfig().isSet("messages.stats")) + { + + double ydelta = 0.25D; + + final int kills_ = this.pli.getStatsInstance().getKills(p.getName()); + final int deaths_ = this.pli.getStatsInstance().getDeaths(p.getName()); + final int money_ = (int) MinigamesAPI.econ.getBalance(p.getName()); + + final String wins = Integer.toString(this.pli.getStatsInstance().getWins(p.getName())); + final String loses = Integer.toString(this.pli.getStatsInstance().getLoses(p.getName())); + final String kills = Integer.toString(kills_); + final String deaths = Integer.toString(deaths_); + final String money = Integer.toString(money_); + final String points = Integer.toString(this.pli.getStatsInstance().getPoints(p.getName())); + final String kdr = Integer.toString(Math.max(kills_, 1) / Math.max(deaths_, 1)); + final ArrayList<String> s = new ArrayList<>(this.pli.getMessagesConfig().getConfig().getConfigurationSection("messages.stats").getKeys(false)); + Collections.reverse(s); + for (final String key : s) + { + // Each line from the config gets checked for variables like <wins> or <money> and these get replaced by the values calculated above + final String msg = this.pli.getMessagesConfig().getConfig().getString("messages.stats." + key).replaceAll("<wins>", wins).replaceAll("<loses>", loses) + .replaceAll("<alltime_kills>", kills).replaceAll("<alltime_deaths>", deaths).replaceAll("<points>", points).replaceAll("<kdr>", kdr).replaceAll("<money>", money); + this.ids.addAll(Effects.playHologram(p, this.l.clone().add(0D, ydelta, 0D), ChatColor.translateAlternateColorCodes('&', msg), false, false)); + ydelta += 0.25D; + } + } + } + + public ArrayList<Integer> getIds() + { + return this.ids; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java index 69f9edf2..a89e4aac 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.statsholograms; import java.lang.reflect.Constructor; @@ -7,7 +21,6 @@ import java.util.HashMap; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -16,98 +29,126 @@ import com.comze_instancelabs.minigamesapi.PluginInstance; import com.comze_instancelabs.minigamesapi.config.HologramsConfig; -public class Holograms { - - PluginInstance pli; - HashMap<Location, Hologram> holo = new HashMap<Location, Hologram>(); - - public Holograms(PluginInstance pli) { - this.pli = pli; - loadHolograms(); - } - - public void loadHolograms() { - HologramsConfig config = pli.getHologramsConfig(); - if (config.getConfig().isSet("holograms.")) { - for (String str : config.getConfig().getConfigurationSection("holograms.").getKeys(false)) { - String base = "holograms." + str; - try { - Location l = new Location(Bukkit.getWorld(config.getConfig().getString(base + ".world")), config.getConfig().getDouble(base + ".location.x"), config.getConfig().getDouble(base + ".location.y"), config.getConfig().getDouble(base + ".location.z"), (float) config.getConfig().getDouble(base + ".location.yaw"), (float) config.getConfig().getDouble(base + ".location.pitch")); - if (l != null && l.getWorld() != null) { - holo.put(l, new Hologram(pli, l)); - } - } catch (Exception e) { - ArenaLogger.debug("Failed loading hologram as invalid location was found: " + e.getMessage()); - } - } - } - } - - public void sendAllHolograms(Player p) { - for (Hologram h : holo.values()) { - h.send(p); - } - } - - public void addHologram(Location l) { - String base = "holograms." + Integer.toString((int) Math.round(Math.random() * 10000)); - HologramsConfig config = pli.getHologramsConfig(); - config.getConfig().set(base + ".world", l.getWorld().getName()); - config.getConfig().set(base + ".location.x", l.getX()); - config.getConfig().set(base + ".location.y", l.getY()); - config.getConfig().set(base + ".location.z", l.getZ()); - config.getConfig().set(base + ".location.yaw", l.getYaw()); - config.getConfig().set(base + ".location.pitch", l.getPitch()); - config.saveConfig(); - Hologram h = new Hologram(pli, l); - holo.put(l, h); - } - - public boolean removeHologram(Location ploc) { - HologramsConfig config = pli.getHologramsConfig(); - if (config.getConfig().isSet("holograms.")) { - for (String str : config.getConfig().getConfigurationSection("holograms.").getKeys(false)) { - String base = "holograms." + str; - Location l = new Location(Bukkit.getWorld(config.getConfig().getString(base + ".world")), config.getConfig().getDouble(base + ".location.x"), config.getConfig().getDouble(base + ".location.y"), config.getConfig().getDouble(base + ".location.z"), (float) config.getConfig().getDouble(base + ".location.yaw"), (float) config.getConfig().getDouble(base + ".location.pitch")); - if (l.distance(ploc) <= 2) { - config.getConfig().set("holograms." + str, null); - config.saveConfig(); - if (holo.containsKey(l)) { - for (Player p : Bukkit.getOnlinePlayers()) { - destroyHologram(p, holo.get(l)); - } - } - return true; - } - } - } - return false; - } - - public void destroyHologram(final Player p, Hologram h) { - String version = MinigamesAPI.getAPI().internalServerVersion; - try { - // TODO Do not use reflection :-( - final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + version + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + version + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + version + ".Packet")); - - final Constructor<?> packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); - - Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance((Object) convertIntegers(h.getIds())); - sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); - - } catch (Exception e) { - e.printStackTrace(); - } - } - - public int[] convertIntegers(ArrayList<Integer> integers) { - int[] ret = new int[integers.size()]; - for (int i = 0; i < ret.length; i++) { - ret[i] = integers.get(i).intValue(); - } - return ret; - } +public class Holograms +{ + + PluginInstance pli; + HashMap<Location, Hologram> holo = new HashMap<>(); + + public Holograms(final PluginInstance pli) + { + this.pli = pli; + this.loadHolograms(); + } + + public void loadHolograms() + { + final HologramsConfig config = this.pli.getHologramsConfig(); + if (config.getConfig().isSet("holograms.")) + { + for (final String str : config.getConfig().getConfigurationSection("holograms.").getKeys(false)) + { + final String base = "holograms." + str; + try + { + final Location l = new Location(Bukkit.getWorld(config.getConfig().getString(base + ".world")), config.getConfig().getDouble(base + ".location.x"), + config.getConfig().getDouble(base + ".location.y"), config.getConfig().getDouble(base + ".location.z"), (float) config.getConfig().getDouble(base + ".location.yaw"), + (float) config.getConfig().getDouble(base + ".location.pitch")); + if (l != null && l.getWorld() != null) + { + this.holo.put(l, new Hologram(this.pli, l)); + } + } + catch (final Exception e) + { + ArenaLogger.debug("Failed loading hologram as invalid location was found: " + e.getMessage()); + } + } + } + } + + public void sendAllHolograms(final Player p) + { + for (final Hologram h : this.holo.values()) + { + h.send(p); + } + } + + public void addHologram(final Location l) + { + final String base = "holograms." + Integer.toString((int) Math.round(Math.random() * 10000)); + final HologramsConfig config = this.pli.getHologramsConfig(); + config.getConfig().set(base + ".world", l.getWorld().getName()); + config.getConfig().set(base + ".location.x", l.getX()); + config.getConfig().set(base + ".location.y", l.getY()); + config.getConfig().set(base + ".location.z", l.getZ()); + config.getConfig().set(base + ".location.yaw", l.getYaw()); + config.getConfig().set(base + ".location.pitch", l.getPitch()); + config.saveConfig(); + final Hologram h = new Hologram(this.pli, l); + this.holo.put(l, h); + } + + public boolean removeHologram(final Location ploc) + { + final HologramsConfig config = this.pli.getHologramsConfig(); + if (config.getConfig().isSet("holograms.")) + { + for (final String str : config.getConfig().getConfigurationSection("holograms.").getKeys(false)) + { + final String base = "holograms." + str; + final Location l = new Location(Bukkit.getWorld(config.getConfig().getString(base + ".world")), config.getConfig().getDouble(base + ".location.x"), + config.getConfig().getDouble(base + ".location.y"), config.getConfig().getDouble(base + ".location.z"), (float) config.getConfig().getDouble(base + ".location.yaw"), + (float) config.getConfig().getDouble(base + ".location.pitch")); + if (l.distance(ploc) <= 2) + { + config.getConfig().set("holograms." + str, null); + config.saveConfig(); + if (this.holo.containsKey(l)) + { + for (final Player p : Bukkit.getOnlinePlayers()) + { + this.destroyHologram(p, this.holo.get(l)); + } + } + return true; + } + } + } + return false; + } + + public void destroyHologram(final Player p, final Hologram h) + { + final String version = MinigamesAPI.getAPI().internalServerVersion; + try + { + // TODO Do not use reflection :-( + final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + version + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + version + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + version + ".Packet")); + + final Constructor<?> packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + version + ".PacketPlayOutEntityDestroy").getConstructor(int[].class); + + final Object destroyPacket = packetPlayOutEntityDestroyConstr.newInstance(this.convertIntegers(h.getIds())); + sendPacket.invoke(playerConnection.get(getPlayerHandle.invoke(p)), destroyPacket); + + } + catch (final Exception e) + { + e.printStackTrace(); + } + } + + public int[] convertIntegers(final ArrayList<Integer> integers) + { + final int[] ret = new int[integers.size()]; + for (int i = 0; i < ret.length; i++) + { + ret[i] = integers.get(i).intValue(); + } + return ret; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/AClass.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/AClass.java index ffa7710b..ad8ff943 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/AClass.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/AClass.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.ArrayList; @@ -5,60 +19,71 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; -public class AClass { - - private JavaPlugin plugin; - private String name; - private String internalname; - private ArrayList<ItemStack> items = new ArrayList<ItemStack>(); - private ItemStack icon; - private boolean enabled = true; - - @Deprecated - public AClass(JavaPlugin plugin, String name, ArrayList<ItemStack> items) { - this(plugin, name, name, true, items, items.get(0)); - } - - public AClass(JavaPlugin plugin, String name, String internalname, ArrayList<ItemStack> items) { - this(plugin, name, internalname, true, items, items.get(0)); - } - - public AClass(JavaPlugin plugin, String name, String internalname, boolean enabled, ArrayList<ItemStack> items) { - this(plugin, name, internalname, enabled, items, items.get(0)); - } - - public AClass(JavaPlugin plugin, String name, String internalname, boolean enabled, ArrayList<ItemStack> items, ItemStack icon) { - this.plugin = plugin; - this.name = name; - this.items = items; - this.icon = icon; - this.enabled = enabled; - this.internalname = internalname; - } - - public ItemStack[] getItems() { - ItemStack[] ret = new ItemStack[items.size()]; - int c = 0; - for (ItemStack f : items) { - ret[c] = f; - c++; - } - return ret; - } - - public ItemStack getIcon() { - return this.icon; - } - - public String getName() { - return this.name; - } - - public String getInternalName() { - return this.internalname; - } - - public boolean isEnabled() { - return enabled; - } +public class AClass +{ + + private final JavaPlugin plugin; + private final String name; + private final String internalname; + private ArrayList<ItemStack> items = new ArrayList<>(); + private final ItemStack icon; + private boolean enabled = true; + + @Deprecated + public AClass(final JavaPlugin plugin, final String name, final ArrayList<ItemStack> items) + { + this(plugin, name, name, true, items, items.get(0)); + } + + public AClass(final JavaPlugin plugin, final String name, final String internalname, final ArrayList<ItemStack> items) + { + this(plugin, name, internalname, true, items, items.get(0)); + } + + public AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items) + { + this(plugin, name, internalname, enabled, items, items.get(0)); + } + + public AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items, final ItemStack icon) + { + this.plugin = plugin; + this.name = name; + this.items = items; + this.icon = icon; + this.enabled = enabled; + this.internalname = internalname; + } + + public ItemStack[] getItems() + { + final ItemStack[] ret = new ItemStack[this.items.size()]; + int c = 0; + for (final ItemStack f : this.items) + { + ret[c] = f; + c++; + } + return ret; + } + + public ItemStack getIcon() + { + return this.icon; + } + + public String getName() + { + return this.name; + } + + public String getInternalName() + { + return this.internalname; + } + + public boolean isEnabled() + { + return this.enabled; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java index e5925123..0f02f4d0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaBlock.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.io.Serializable; @@ -15,110 +29,130 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.Potion; -public class ArenaBlock implements Serializable { - private static final long serialVersionUID = -1894759842709524780L; - - private int x, y, z; - private String world; - private Material m; - private byte data; +public class ArenaBlock implements Serializable +{ + private static final long serialVersionUID = -1894759842709524780L; + + private final int x, y, z; + private final String world; + private final Material m; + private byte data; private ArrayList<Material> item_mats; - private ArrayList<Byte> item_data; - private ArrayList<Integer> item_amounts; - private ArrayList<String> item_displaynames; - + private ArrayList<Byte> item_data; + private ArrayList<Integer> item_amounts; + private ArrayList<String> item_displaynames; + // optional stuff - private ArrayList<Boolean> item_splash; - - private ItemStack[] inv; - - public ArenaBlock(Block b, boolean c) { - m = b.getType(); - x = b.getX(); - y = b.getY(); - z = b.getZ(); - data = b.getData(); - world = b.getWorld().getName(); - if (c) { - inv = ((Chest) b.getState()).getInventory().getContents(); - item_mats = new ArrayList<Material>(); - item_data = new ArrayList<Byte>(); - item_amounts = new ArrayList<Integer>(); - item_displaynames = new ArrayList<String>(); - item_splash = new ArrayList<Boolean>(); - - for (ItemStack i : ((Chest) b.getState()).getInventory().getContents()) { - if (i != null) { - item_mats.add(i.getType()); - item_data.add(i.getData().getData()); - item_amounts.add(i.getAmount()); - item_displaynames.add(i.getItemMeta().getDisplayName()); - if (i.getType() == Material.POTION && i.getDurability() > 0 && i.getData().getData() > 0) { - Potion potion = Potion.fromDamage(i.getDurability() & 0x3F); - item_splash.add(potion.isSplash()); - } else { - item_splash.add(false); + private ArrayList<Boolean> item_splash; + + private ItemStack[] inv; + + public ArenaBlock(final Block b, final boolean c) + { + this.m = b.getType(); + this.x = b.getX(); + this.y = b.getY(); + this.z = b.getZ(); + this.data = b.getData(); + this.world = b.getWorld().getName(); + if (c) + { + this.inv = ((Chest) b.getState()).getInventory().getContents(); + this.item_mats = new ArrayList<>(); + this.item_data = new ArrayList<>(); + this.item_amounts = new ArrayList<>(); + this.item_displaynames = new ArrayList<>(); + this.item_splash = new ArrayList<>(); + + for (final ItemStack i : ((Chest) b.getState()).getInventory().getContents()) + { + if (i != null) + { + this.item_mats.add(i.getType()); + this.item_data.add(i.getData().getData()); + this.item_amounts.add(i.getAmount()); + this.item_displaynames.add(i.getItemMeta().getDisplayName()); + if (i.getType() == Material.POTION && i.getDurability() > 0 && i.getData().getData() > 0) + { + final Potion potion = Potion.fromDamage(i.getDurability() & 0x3F); + this.item_splash.add(potion.isSplash()); + } + else + { + this.item_splash.add(false); } } } } } - - public ArenaBlock(Location l) { - m = Material.AIR; - x = l.getBlockX(); - y = l.getBlockY(); - z = l.getBlockZ(); - world = l.getWorld().getName(); + + public ArenaBlock(final Location l) + { + this.m = Material.AIR; + this.x = l.getBlockX(); + this.y = l.getBlockY(); + this.z = l.getBlockZ(); + this.world = l.getWorld().getName(); } - - public Block getBlock() { - World w = Bukkit.getWorld(world); + + public Block getBlock() + { + final World w = Bukkit.getWorld(this.world); if (w == null) + { return null; - Block b = w.getBlockAt(x, y, z); + } + final Block b = w.getBlockAt(this.x, this.y, this.z); return b; } - - public Material getMaterial() { - return m; + + public Material getMaterial() + { + return this.m; } - - public Byte getData() { - return data; + + public Byte getData() + { + return this.data; } - - public ItemStack[] getInventory() { - return inv; + + public ItemStack[] getInventory() + { + return this.inv; } - - public ArrayList<ItemStack> getNewInventory() { - int c = 0; - ArrayList<ItemStack> ret = new ArrayList<ItemStack>(); - for (int i = 0; i < item_mats.size(); i++) { - ItemStack item = new ItemStack(item_mats.get(i), item_amounts.get(i), item_data.get(i)); - ItemMeta im = item.getItemMeta(); - im.setDisplayName(item_displaynames.get(i)); + + public ArrayList<ItemStack> getNewInventory() + { + final int c = 0; + final ArrayList<ItemStack> ret = new ArrayList<>(); + for (int i = 0; i < this.item_mats.size(); i++) + { + ItemStack item = new ItemStack(this.item_mats.get(i), this.item_amounts.get(i), this.item_data.get(i)); + final ItemMeta im = item.getItemMeta(); + im.setDisplayName(this.item_displaynames.get(i)); item.setItemMeta(im); - if (item.getType() == Material.POTION && item.getDurability() > 0) { - Potion potion = Potion.fromDamage(item.getDurability() & 0x3F); - potion.setSplash(item_splash.get(i)); - item = potion.toItemStack(item_amounts.get(i)); + if (item.getType() == Material.POTION && item.getDurability() > 0) + { + final Potion potion = Potion.fromDamage(item.getDurability() & 0x3F); + potion.setSplash(this.item_splash.get(i)); + item = potion.toItemStack(this.item_amounts.get(i)); } ret.add(item); } return ret; } - - public static ItemStack getEnchantmentBook(Map<Enchantment, Integer> t) { - ItemStack book = new ItemStack(Material.ENCHANTED_BOOK, 1); - ItemMeta meta = book.getItemMeta(); - int i = 0; - for (Enchantment e : t.keySet()) { + + public static ItemStack getEnchantmentBook(final Map<Enchantment, Integer> t) + { + final ItemStack book = new ItemStack(Material.ENCHANTED_BOOK, 1); + final ItemMeta meta = book.getItemMeta(); + final int i = 0; + for (final Enchantment e : t.keySet()) + { meta.addEnchant(e, t.get(e), true); } book.setItemMeta(meta); return book; } - -} \ No newline at end of file + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java index 9969b51d..69b08a56 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.ArrayList; @@ -16,111 +30,146 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; -public class ArenaLobbyScoreboard { - - HashMap<String, Scoreboard> ascore = new HashMap<String, Scoreboard>(); - HashMap<String, Objective> aobjective = new HashMap<String, Objective>(); - - int initialized = 0; // 0 = false; 1 = true; - boolean custom = false; - - PluginInstance pli; - - ArrayList<String> loaded_custom_strings = new ArrayList<String>(); - - public ArenaLobbyScoreboard(PluginInstance pli, JavaPlugin plugin) { - custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); - initialized = 1; - this.pli = pli; - if (pli.getMessagesConfig().getConfig().isSet("messages.custom_lobby_scoreboard.")) { - for (String configline : pli.getMessagesConfig().getConfig().getConfigurationSection("messages.custom_lobby_scoreboard.").getKeys(false)) { - String line = ChatColor.translateAlternateColorCodes('&', pli.getMessagesConfig().getConfig().getString("messages.custom_lobby_scoreboard." + configline)); - loaded_custom_strings.add(line); - } - } - } - - public void updateScoreboard(final JavaPlugin plugin, final Arena arena) { - if (!arena.getShowScoreboard()) { - return; - } - - if (pli == null) { - pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - } - - Bukkit.getScheduler().runTask(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - for (String playername : arena.getAllPlayers()) { - if (!Validator.isPlayerValid(plugin, playername, arena)) { - return; - } - Player p = Bukkit.getPlayer(playername); - if (!ascore.containsKey(playername)) { - ascore.put(playername, Bukkit.getScoreboardManager().getNewScoreboard()); - } - if (!aobjective.containsKey(playername)) { - aobjective.put(playername, ascore.get(playername).registerNewObjective(playername, "dummy")); - aobjective.get(playername).setDisplaySlot(DisplaySlot.SIDEBAR); - aobjective.get(playername).setDisplayName(pli.getMessagesConfig().scoreboard_lobby_title.replaceAll("<arena>", arena.getInternalName())); - } - - try { - if (loaded_custom_strings.size() < 1) { - return; - } - for (String line : loaded_custom_strings) { - String[] line_arr = line.split(":"); - String line_ = line_arr[0]; - String score_identifier = line_arr[line_arr.length - 1]; - if (line_arr.length > 2) { - line_ += ":" + line_arr[1]; - } - int score = 0; - if (score_identifier.equalsIgnoreCase("<playercount>")) { - score = arena.getAllPlayers().size(); - } else if (score_identifier.equalsIgnoreCase("<maxplayercount>")) { - score = arena.getMaxPlayers(); - } else if (score_identifier.equalsIgnoreCase("<points>")) { - score = pli.getStatsInstance().getPoints(playername); - } else if (score_identifier.equalsIgnoreCase("<wins>")) { - score = pli.getStatsInstance().getWins(playername); - } else if (score_identifier.equalsIgnoreCase("<money>")) { - score = (int) MinigamesAPI.econ.getBalance(playername); - } else if (score_identifier.equalsIgnoreCase("<kills>")) { - score = pli.getStatsInstance().getKills(playername); - } - if (line_.length() < 15) { - // ascore.get(arena.getInternalName()).resetScores(Bukkit.getOfflinePlayer(ChatColor.GREEN + line_)); - Util.getScore(aobjective.get(playername), ChatColor.GREEN + line_).setScore(score); - } else { - // ascore.get(arena.getInternalName()).resetScores(Bukkit.getOfflinePlayer(ChatColor.GREEN + line_.substring(0, - // Math.min(line_.length() - 3, 13)))); - Util.getScore(aobjective.get(playername), ChatColor.GREEN + line_.substring(0, Math.min(line_.length() - 3, 13))).setScore(score); - } - } - p.setScoreboard(ascore.get(playername)); - } catch (Exception e) { - System.out.println("Failed to set custom scoreboard: "); - e.printStackTrace(); - } - } - } - }); - } - - public void removeScoreboard(String arena, Player p) { - try { - ScoreboardManager manager = Bukkit.getScoreboardManager(); - Scoreboard sc = manager.getNewScoreboard(); - - p.setScoreboard(sc); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void clearScoreboard(String arenaname) { - // TODO - } +public class ArenaLobbyScoreboard +{ + + HashMap<String, Scoreboard> ascore = new HashMap<>(); + HashMap<String, Objective> aobjective = new HashMap<>(); + + int initialized = 0; // 0 = false; 1 = true; + boolean custom = false; + + PluginInstance pli; + + ArrayList<String> loaded_custom_strings = new ArrayList<>(); + + public ArenaLobbyScoreboard(final PluginInstance pli, final JavaPlugin plugin) + { + this.custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); + this.initialized = 1; + this.pli = pli; + if (pli.getMessagesConfig().getConfig().isSet("messages.custom_lobby_scoreboard.")) + { + for (final String configline : pli.getMessagesConfig().getConfig().getConfigurationSection("messages.custom_lobby_scoreboard.").getKeys(false)) + { + final String line = ChatColor.translateAlternateColorCodes('&', pli.getMessagesConfig().getConfig().getString("messages.custom_lobby_scoreboard." + configline)); + this.loaded_custom_strings.add(line); + } + } + } + + public void updateScoreboard(final JavaPlugin plugin, final Arena arena) + { + if (!arena.getShowScoreboard()) + { + return; + } + + if (this.pli == null) + { + this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + } + + Bukkit.getScheduler().runTask(MinigamesAPI.getAPI(), () -> { + for (final String playername : arena.getAllPlayers()) + { + if (!Validator.isPlayerValid(plugin, playername, arena)) + { + return; + } + final Player p = Bukkit.getPlayer(playername); + if (!ArenaLobbyScoreboard.this.ascore.containsKey(playername)) + { + ArenaLobbyScoreboard.this.ascore.put(playername, Bukkit.getScoreboardManager().getNewScoreboard()); + } + if (!ArenaLobbyScoreboard.this.aobjective.containsKey(playername)) + { + ArenaLobbyScoreboard.this.aobjective.put(playername, ArenaLobbyScoreboard.this.ascore.get(playername).registerNewObjective(playername, "dummy")); + ArenaLobbyScoreboard.this.aobjective.get(playername).setDisplaySlot(DisplaySlot.SIDEBAR); + ArenaLobbyScoreboard.this.aobjective.get(playername) + .setDisplayName(ArenaLobbyScoreboard.this.pli.getMessagesConfig().scoreboard_lobby_title.replaceAll("<arena>", arena.getInternalName())); + } + + try + { + if (ArenaLobbyScoreboard.this.loaded_custom_strings.size() < 1) + { + return; + } + for (final String line : ArenaLobbyScoreboard.this.loaded_custom_strings) + { + final String[] line_arr = line.split(":"); + String line_ = line_arr[0]; + final String score_identifier = line_arr[line_arr.length - 1]; + if (line_arr.length > 2) + { + line_ += ":" + line_arr[1]; + } + int score = 0; + if (score_identifier.equalsIgnoreCase("<playercount>")) + { + score = arena.getAllPlayers().size(); + } + else if (score_identifier.equalsIgnoreCase("<maxplayercount>")) + { + score = arena.getMaxPlayers(); + } + else if (score_identifier.equalsIgnoreCase("<points>")) + { + score = ArenaLobbyScoreboard.this.pli.getStatsInstance().getPoints(playername); + } + else if (score_identifier.equalsIgnoreCase("<wins>")) + { + score = ArenaLobbyScoreboard.this.pli.getStatsInstance().getWins(playername); + } + else if (score_identifier.equalsIgnoreCase("<money>")) + { + score = (int) MinigamesAPI.econ.getBalance(playername); + } + else if (score_identifier.equalsIgnoreCase("<kills>")) + { + score = ArenaLobbyScoreboard.this.pli.getStatsInstance().getKills(playername); + } + if (line_.length() < 15) + { + // ascore.get(arena.getInternalName()).resetScores(Bukkit.getOfflinePlayer(ChatColor.GREEN + line_)); + Util.getScore(ArenaLobbyScoreboard.this.aobjective.get(playername), ChatColor.GREEN + line_).setScore(score); + } + else + { + // ascore.get(arena.getInternalName()).resetScores(Bukkit.getOfflinePlayer(ChatColor.GREEN + line_.substring(0, + // Math.min(line_.length() - 3, 13)))); + Util.getScore(ArenaLobbyScoreboard.this.aobjective.get(playername), ChatColor.GREEN + line_.substring(0, Math.min(line_.length() - 3, 13))).setScore(score); + } + } + p.setScoreboard(ArenaLobbyScoreboard.this.ascore.get(playername)); + } + catch (final Exception e) + { + System.out.println("Failed to set custom scoreboard: "); + e.printStackTrace(); + } + } + }); + } + + public void removeScoreboard(final String arena, final Player p) + { + try + { + final ScoreboardManager manager = Bukkit.getScoreboardManager(); + final Scoreboard sc = manager.getNewScoreboard(); + + p.setScoreboard(sc); + } + catch (final Exception e) + { + e.printStackTrace(); + } + } + + public void clearScoreboard(final String arenaname) + { + // TODO + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java index 7d1c808f..18a40f9e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.ArrayList; @@ -17,198 +31,276 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; -public class ArenaScoreboard { - - HashMap<String, Scoreboard> ascore = new HashMap<String, Scoreboard>(); - HashMap<String, Objective> aobjective = new HashMap<String, Objective>(); - HashMap<String, Integer> currentscore = new HashMap<String, Integer>(); - - int initialized = 0; // 0 = false; 1 = true; - boolean custom = false; - - PluginInstance pli; - - ArrayList<String> loaded_custom_strings = new ArrayList<String>(); - - public ArenaScoreboard() { - // - } - - public ArenaScoreboard(PluginInstance pli, JavaPlugin plugin) { - custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); - initialized = 1; - this.pli = pli; - if (pli.getMessagesConfig().getConfig().isSet("messages.custom_scoreboard.")) { - for (String configline : pli.getMessagesConfig().getConfig().getConfigurationSection("messages.custom_scoreboard.").getKeys(false)) { - String line = ChatColor.translateAlternateColorCodes('&', pli.getMessagesConfig().getConfig().getString("messages.custom_scoreboard." + configline)); - loaded_custom_strings.add(line); - } - } - } - - public void updateScoreboard(final JavaPlugin plugin, final Arena arena) { - if (!arena.getShowScoreboard()) { - return; - } - - if (initialized != 1) { - custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); - } - - if (pli == null) { - pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - } - - Bukkit.getScheduler().runTask(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - for (String playername : arena.getAllPlayers()) { - if (!Validator.isPlayerValid(plugin, playername, arena)) { - return; - } - Player p = Bukkit.getPlayer(playername); - if (!custom) { - if (!ascore.containsKey(arena.getInternalName())) { - ascore.put(arena.getInternalName(), Bukkit.getScoreboardManager().getNewScoreboard()); - } - if (!aobjective.containsKey(arena.getInternalName())) { - aobjective.put(arena.getInternalName(), ascore.get(arena.getInternalName()).registerNewObjective(arena.getInternalName(), "dummy")); - aobjective.get(arena.getInternalName()).setDisplaySlot(DisplaySlot.SIDEBAR); - aobjective.get(arena.getInternalName()).setDisplayName(pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getInternalName())); - } - } else { - if (!ascore.containsKey(playername)) { - ascore.put(playername, Bukkit.getScoreboardManager().getNewScoreboard()); - } - if (!aobjective.containsKey(playername)) { - aobjective.put(playername, ascore.get(playername).registerNewObjective(playername, "dummy")); - aobjective.get(playername).setDisplaySlot(DisplaySlot.SIDEBAR); - aobjective.get(playername).setDisplayName(pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getInternalName())); - } - } - - if (custom) { - try { - for (String line : loaded_custom_strings) { - String[] line_arr = line.split(":"); - String line_ = line_arr[0]; - String score_identifier = line_arr[1]; - int score = 0; - if (score_identifier.equalsIgnoreCase("<playercount>")) { - score = arena.getAllPlayers().size(); - } else if (score_identifier.equalsIgnoreCase("<lostplayercount>")) { - score = arena.getAllPlayers().size() - arena.getPlayerAlive(); - } else if (score_identifier.equalsIgnoreCase("<playeralivecount>")) { - score = arena.getPlayerAlive(); - } else if (score_identifier.equalsIgnoreCase("<points>")) { - score = pli.getStatsInstance().getPoints(playername); - } else if (score_identifier.equalsIgnoreCase("<wins>")) { - score = pli.getStatsInstance().getWins(playername); - } else if (score_identifier.equalsIgnoreCase("<money>")) { - score = (int) MinigamesAPI.econ.getBalance(playername); - } - if (line_.length() < 15) { - Util.resetScores(ascore.get(playername), ChatColor.GREEN + line_); - Util.getScore(aobjective.get(playername), ChatColor.GREEN + line_).setScore(score); - } else { - Util.resetScores(ascore.get(playername), ChatColor.GREEN + line_.substring(0, Math.min(line_.length() - 3, 13))); - Util.getScore(aobjective.get(playername), ChatColor.GREEN + line_.substring(0, Math.min(line_.length() - 3, 13))).setScore(score); - } - } - - if (ascore.get(playername) != null) { - p.setScoreboard(ascore.get(playername)); - } - } catch (Exception e) { - System.out.println("Failed to set custom scoreboard: "); - e.printStackTrace(); - } - } else { - for (String playername_ : arena.getAllPlayers()) { - if (!Validator.isPlayerOnline(playername_)) { - continue; - } - Player p_ = Bukkit.getPlayer(playername_); - if (!pli.global_lost.containsKey(playername_)) { - int score = 0; - if (currentscore.containsKey(playername_)) { - int oldscore = currentscore.get(playername_); - if (score > oldscore) { - currentscore.put(playername_, score); - } else { - score = oldscore; - } - } else { - currentscore.put(playername_, score); - } - try { - if (p_.getName().length() < 15) { - Util.getScore(aobjective.get(arena.getInternalName()), ChatColor.GREEN + p_.getName()).setScore(0); - } else { - Util.getScore(aobjective.get(arena.getInternalName()), ChatColor.GREEN + p_.getName().substring(0, p_.getName().length() - 3)).setScore(0); - ; - } - } catch (Exception e) { - } - } else if (pli.global_lost.containsKey(playername_)) { - try { - if (currentscore.containsKey(playername_)) { - int score = currentscore.get(playername_); - if (p_.getName().length() < 15) { - Util.resetScores(ascore.get(arena.getInternalName()), ChatColor.GREEN + p_.getName()); - Util.getScore(aobjective.get(arena.getInternalName()), ChatColor.RED + p_.getName()).setScore(0); - } else { - Util.resetScores(ascore.get(arena.getInternalName()), ChatColor.GREEN + p_.getName().substring(0, p_.getName().length() - 3)); - Util.getScore(aobjective.get(arena.getInternalName()), ChatColor.RED + p_.getName().substring(0, p_.getName().length() - 3)).setScore(0); - } - } - } catch (Exception e) { - } - } - } - - if (ascore.get(arena.getInternalName()) != null) { - p.setScoreboard(ascore.get(arena.getInternalName())); - } - } - - } - } - }); - } - - public void removeScoreboard(String arena, Player p) { - try { - ScoreboardManager manager = Bukkit.getScoreboardManager(); - Scoreboard sc = manager.getNewScoreboard(); - - p.setScoreboard(sc); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void clearScoreboard(String arenaname) { - if (ascore.containsKey(arenaname)) { - try { - Scoreboard sc = ascore.get(arenaname); - for (OfflinePlayer player : sc.getPlayers()) { - sc.resetScores(player); - } - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - ascore.remove(arenaname); - } - if (aobjective.containsKey(arenaname)) { - aobjective.remove(arenaname); - } - - // ascore.put(arenaname, Bukkit.getScoreboardManager().getNewScoreboard()); - } - - public void setCurrentScoreMap(HashMap<String, Integer> newcurrentscore) { - this.currentscore = newcurrentscore; - } +public class ArenaScoreboard +{ + + HashMap<String, Scoreboard> ascore = new HashMap<>(); + HashMap<String, Objective> aobjective = new HashMap<>(); + HashMap<String, Integer> currentscore = new HashMap<>(); + + int initialized = 0; // 0 = false; 1 = true; + boolean custom = false; + + PluginInstance pli; + + ArrayList<String> loaded_custom_strings = new ArrayList<>(); + + public ArenaScoreboard() + { + // + } + + public ArenaScoreboard(final PluginInstance pli, final JavaPlugin plugin) + { + this.custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); + this.initialized = 1; + this.pli = pli; + if (pli.getMessagesConfig().getConfig().isSet("messages.custom_scoreboard.")) + { + for (final String configline : pli.getMessagesConfig().getConfig().getConfigurationSection("messages.custom_scoreboard.").getKeys(false)) + { + final String line = ChatColor.translateAlternateColorCodes('&', pli.getMessagesConfig().getConfig().getString("messages.custom_scoreboard." + configline)); + this.loaded_custom_strings.add(line); + } + } + } + + public void updateScoreboard(final JavaPlugin plugin, final Arena arena) + { + if (!arena.getShowScoreboard()) + { + return; + } + + if (this.initialized != 1) + { + this.custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); + } + + if (this.pli == null) + { + this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + } + + Bukkit.getScheduler().runTask(MinigamesAPI.getAPI(), () -> { + for (final String playername : arena.getAllPlayers()) + { + if (!Validator.isPlayerValid(plugin, playername, arena)) + { + return; + } + final Player p = Bukkit.getPlayer(playername); + if (!ArenaScoreboard.this.custom) + { + if (!ArenaScoreboard.this.ascore.containsKey(arena.getInternalName())) + { + ArenaScoreboard.this.ascore.put(arena.getInternalName(), Bukkit.getScoreboardManager().getNewScoreboard()); + } + if (!ArenaScoreboard.this.aobjective.containsKey(arena.getInternalName())) + { + ArenaScoreboard.this.aobjective.put(arena.getInternalName(), ArenaScoreboard.this.ascore.get(arena.getInternalName()).registerNewObjective(arena.getInternalName(), "dummy")); + ArenaScoreboard.this.aobjective.get(arena.getInternalName()).setDisplaySlot(DisplaySlot.SIDEBAR); + ArenaScoreboard.this.aobjective.get(arena.getInternalName()) + .setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getInternalName())); + } + } + else + { + if (!ArenaScoreboard.this.ascore.containsKey(playername)) + { + ArenaScoreboard.this.ascore.put(playername, Bukkit.getScoreboardManager().getNewScoreboard()); + } + if (!ArenaScoreboard.this.aobjective.containsKey(playername)) + { + ArenaScoreboard.this.aobjective.put(playername, ArenaScoreboard.this.ascore.get(playername).registerNewObjective(playername, "dummy")); + ArenaScoreboard.this.aobjective.get(playername).setDisplaySlot(DisplaySlot.SIDEBAR); + ArenaScoreboard.this.aobjective.get(playername).setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getInternalName())); + } + } + + if (ArenaScoreboard.this.custom) + { + try + { + for (final String line : ArenaScoreboard.this.loaded_custom_strings) + { + final String[] line_arr = line.split(":"); + final String line_ = line_arr[0]; + final String score_identifier = line_arr[1]; + int score1 = 0; + if (score_identifier.equalsIgnoreCase("<playercount>")) + { + score1 = arena.getAllPlayers().size(); + } + else if (score_identifier.equalsIgnoreCase("<lostplayercount>")) + { + score1 = arena.getAllPlayers().size() - arena.getPlayerAlive(); + } + else if (score_identifier.equalsIgnoreCase("<playeralivecount>")) + { + score1 = arena.getPlayerAlive(); + } + else if (score_identifier.equalsIgnoreCase("<points>")) + { + score1 = ArenaScoreboard.this.pli.getStatsInstance().getPoints(playername); + } + else if (score_identifier.equalsIgnoreCase("<wins>")) + { + score1 = ArenaScoreboard.this.pli.getStatsInstance().getWins(playername); + } + else if (score_identifier.equalsIgnoreCase("<money>")) + { + score1 = (int) MinigamesAPI.econ.getBalance(playername); + } + if (line_.length() < 15) + { + Util.resetScores(ArenaScoreboard.this.ascore.get(playername), ChatColor.GREEN + line_); + Util.getScore(ArenaScoreboard.this.aobjective.get(playername), ChatColor.GREEN + line_).setScore(score1); + } + else + { + Util.resetScores(ArenaScoreboard.this.ascore.get(playername), ChatColor.GREEN + line_.substring(0, Math.min(line_.length() - 3, 13))); + Util.getScore(ArenaScoreboard.this.aobjective.get(playername), ChatColor.GREEN + line_.substring(0, Math.min(line_.length() - 3, 13))).setScore(score1); + } + } + + if (ArenaScoreboard.this.ascore.get(playername) != null) + { + p.setScoreboard(ArenaScoreboard.this.ascore.get(playername)); + } + } + catch (final Exception e1) + { + System.out.println("Failed to set custom scoreboard: "); + e1.printStackTrace(); + } + } + else + { + for (final String playername_ : arena.getAllPlayers()) + { + if (!Validator.isPlayerOnline(playername_)) + { + continue; + } + final Player p_ = Bukkit.getPlayer(playername_); + if (!ArenaScoreboard.this.pli.global_lost.containsKey(playername_)) + { + int score2 = 0; + if (ArenaScoreboard.this.currentscore.containsKey(playername_)) + { + final int oldscore = ArenaScoreboard.this.currentscore.get(playername_); + if (score2 > oldscore) + { + ArenaScoreboard.this.currentscore.put(playername_, score2); + } + else + { + score2 = oldscore; + } + } + else + { + ArenaScoreboard.this.currentscore.put(playername_, score2); + } + try + { + if (p_.getName().length() < 15) + { + Util.getScore(ArenaScoreboard.this.aobjective.get(arena.getInternalName()), ChatColor.GREEN + p_.getName()).setScore(0); + } + else + { + Util.getScore(ArenaScoreboard.this.aobjective.get(arena.getInternalName()), ChatColor.GREEN + p_.getName().substring(0, p_.getName().length() - 3)).setScore(0); + } + } + catch (final Exception e2) + { + // silently ignore + } + } + else if (ArenaScoreboard.this.pli.global_lost.containsKey(playername_)) + { + try + { + if (ArenaScoreboard.this.currentscore.containsKey(playername_)) + { + final int score3 = ArenaScoreboard.this.currentscore.get(playername_); + if (p_.getName().length() < 15) + { + Util.resetScores(ArenaScoreboard.this.ascore.get(arena.getInternalName()), ChatColor.GREEN + p_.getName()); + Util.getScore(ArenaScoreboard.this.aobjective.get(arena.getInternalName()), ChatColor.RED + p_.getName()).setScore(0); + } + else + { + Util.resetScores(ArenaScoreboard.this.ascore.get(arena.getInternalName()), ChatColor.GREEN + p_.getName().substring(0, p_.getName().length() - 3)); + Util.getScore(ArenaScoreboard.this.aobjective.get(arena.getInternalName()), ChatColor.RED + p_.getName().substring(0, p_.getName().length() - 3)).setScore(0); + } + } + } + catch (final Exception e3) + { + // silently ignore + } + } + } + + if (ArenaScoreboard.this.ascore.get(arena.getInternalName()) != null) + { + p.setScoreboard(ArenaScoreboard.this.ascore.get(arena.getInternalName())); + } + } + + } + }); + } + + public void removeScoreboard(final String arena, final Player p) + { + try + { + final ScoreboardManager manager = Bukkit.getScoreboardManager(); + final Scoreboard sc = manager.getNewScoreboard(); + + p.setScoreboard(sc); + } + catch (final Exception e) + { + e.printStackTrace(); + } + } + + public void clearScoreboard(final String arenaname) + { + if (this.ascore.containsKey(arenaname)) + { + try + { + final Scoreboard sc = this.ascore.get(arenaname); + for (final OfflinePlayer player : sc.getPlayers()) + { + sc.resetScores(player); + } + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + this.ascore.remove(arenaname); + } + if (this.aobjective.containsKey(arenaname)) + { + this.aobjective.remove(arenaname); + } + + // ascore.put(arenaname, Bukkit.getScoreboardManager().getNewScoreboard()); + } + + public void setCurrentScoreMap(final HashMap<String, Integer> newcurrentscore) + { + this.currentscore = newcurrentscore; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java index e0759bc7..b95374ae 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.io.ByteArrayOutputStream; @@ -14,40 +28,50 @@ import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -public class BungeeUtil { - - public static void connectToServer(JavaPlugin plugin, String player, String server) { - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(stream); - try { - out.writeUTF("Connect"); - out.writeUTF(server); - } catch (IOException e) { - e.printStackTrace(); - } - Bukkit.getPlayer(player).sendPluginMessage(plugin, "BungeeCord", stream.toByteArray()); - } - - public static void sendSignUpdateRequest(JavaPlugin plugin, String minigame, Arena arena) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - BungeeSocket.sendSignUpdate(pli, arena); - ByteArrayDataOutput out = ByteStreams.newDataOutput(); - try { - out.writeUTF("Forward"); - out.writeUTF("ALL"); - out.writeUTF("MinigamesLib"); - - ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); - DataOutputStream msgout = new DataOutputStream(msgbytes); - msgout.writeUTF(minigame + ":" + arena.getInternalName() + ":" + arena.getArenaState().toString() + ":" + Integer.toString(arena.getAllPlayers().size()) + ":" + Integer.toString(arena.getMaxPlayers())); - - out.writeShort(msgbytes.toByteArray().length); - out.write(msgbytes.toByteArray()); - - Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), "BungeeCord", out.toByteArray()); - } catch (Exception e) { - e.printStackTrace(); - } - } - +public class BungeeUtil +{ + + public static void connectToServer(final JavaPlugin plugin, final String player, final String server) + { + final ByteArrayOutputStream stream = new ByteArrayOutputStream(); + final DataOutputStream out = new DataOutputStream(stream); + try + { + out.writeUTF("Connect"); + out.writeUTF(server); + } + catch (final IOException e) + { + e.printStackTrace(); + } + Bukkit.getPlayer(player).sendPluginMessage(plugin, "BungeeCord", stream.toByteArray()); + } + + public static void sendSignUpdateRequest(final JavaPlugin plugin, final String minigame, final Arena arena) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + BungeeSocket.sendSignUpdate(pli, arena); + final ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); + out.writeUTF("ALL"); + out.writeUTF("MinigamesLib"); + + final ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + final DataOutputStream msgout = new DataOutputStream(msgbytes); + msgout.writeUTF(minigame + ":" + arena.getInternalName() + ":" + arena.getArenaState().toString() + ":" + Integer.toString(arena.getAllPlayers().size()) + ":" + + Integer.toString(arena.getMaxPlayers())); + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), "BungeeCord", out.toByteArray()); + } + catch (final Exception e) + { + e.printStackTrace(); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ChangeCause.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ChangeCause.java index 43024259..af1d0c8b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ChangeCause.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ChangeCause.java @@ -1,7 +1,22 @@ -package com.comze_instancelabs.minigamesapi.util; +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -public enum ChangeCause { + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.comze_instancelabs.minigamesapi.util; - FADE, PHYSICS, BREAK, SPREAD, BURN, FROM_TO, ENTITY_CHANGE +public enum ChangeCause +{ + + FADE, PHYSICS, BREAK, SPREAD, BURN, FROM_TO, ENTITY_CHANGE } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java index e30fe5d6..f2e3b202 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.LinkedHashMap; @@ -10,250 +24,284 @@ /** * Modified by: - * + * * @author instancelabs - * + * * Original version by: * @author Pandemoneus - https://github.com/Pandemoneus */ -public final class Cuboid { - private final Location highPoints; - private final Location lowPoints; - - /** - * Constructs a new cuboid. - * - * @param startLoc - * the first point - * @param endLoc - * the second point - */ - public Cuboid(Location startLoc, Location endLoc) { - - if (startLoc != null && endLoc != null) { - final int lowx = Math.min(startLoc.getBlockX(), endLoc.getBlockX()); - final int lowy = Math.min(startLoc.getBlockY(), endLoc.getBlockY()); - final int lowz = Math.min(startLoc.getBlockZ(), endLoc.getBlockZ()); - - final int highx = Math.max(startLoc.getBlockX(), endLoc.getBlockX()); - final int highy = Math.max(startLoc.getBlockY(), endLoc.getBlockY()); - final int highz = Math.max(startLoc.getBlockZ(), endLoc.getBlockZ()); - - highPoints = new Location(startLoc.getWorld(), highx, highy, highz); - lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz); - } else { - highPoints = null; - lowPoints = null; - } - - } - - /** - * Determines whether the passed area is within this area. - * - * @param area - * the area to check - * @return true if the area is within this area, otherwise false - */ - public boolean isAreaWithinArea(Cuboid area) { - return (containsLoc(area.highPoints) && containsLoc(area.lowPoints)); - } - - /** - * Determines whether the this cuboid contains the passed location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid, otherwise false - */ - public boolean containsLoc(Location loc) { - if (loc == null || !loc.getWorld().equals(highPoints.getWorld())) { - return false; - } - - return lowPoints.getBlockX() <= loc.getBlockX() && highPoints.getBlockX() >= loc.getBlockX() && lowPoints.getBlockZ() <= loc.getBlockZ() && highPoints.getBlockZ() >= loc.getBlockZ() && lowPoints.getBlockY() <= loc.getBlockY() && highPoints.getBlockY() >= loc.getBlockY(); - } - - public boolean containsLocWithoutY(Location loc) { - if (highPoints == null || lowPoints == null) { - return false; - } - if (loc == null || !loc.getWorld().equals(highPoints.getWorld())) { - return false; - } - - return lowPoints.getBlockX() <= loc.getBlockX() && highPoints.getBlockX() >= loc.getBlockX() && lowPoints.getBlockZ() <= loc.getBlockZ() && highPoints.getBlockZ() >= loc.getBlockZ(); - } - - public boolean containsLocWithoutYD(Location loc) { - if (highPoints == null || lowPoints == null) { - return false; - } - if (loc == null || !loc.getWorld().equals(highPoints.getWorld())) { - return false; - } - - return lowPoints.getBlockX() <= loc.getBlockX() + 2 && highPoints.getBlockX() >= loc.getBlockX() - 2 && lowPoints.getBlockZ() <= loc.getBlockZ() + 2 && highPoints.getBlockZ() >= loc.getBlockZ() - 2; - } - - /** - * Returns the volume of this cuboid. - * - * @return the volume of this cuboid - */ - public long getSize() { - return Math.abs(getXSize() * getYSize() * getZSize()); - } - - /** - * Determines a random location inside the cuboid and returns it. - * - * @return a random location within the cuboid - */ - public Location getRandomLocation() { - final World world = getWorld(); - final Random randomGenerator = new Random(); - - Location result = new Location(world, highPoints.getBlockX(), highPoints.getBlockY(), highPoints.getZ()); - - if (getSize() > 1) { - final double randomX = lowPoints.getBlockX() + randomGenerator.nextInt(getXSize()); - final double randomY = lowPoints.getBlockY() + randomGenerator.nextInt(getYSize()); - final double randomZ = lowPoints.getBlockZ() + randomGenerator.nextInt(getZSize()); - - result = new Location(world, randomX, randomY, randomZ); - } - - return result; - } - - /** - * Determines a random location inside the cuboid that is suitable for mob spawning and returns it. - * - * @return a random location inside the cuboid that is suitable for mob spawning - */ - public Location getRandomLocationForMobs() { - final Location temp = getRandomLocation(); - - return new Location(temp.getWorld(), temp.getBlockX() + 0.5, temp.getBlockY() + 0.5, temp.getBlockZ() + 0.5); - } - - /** - * Returns the x span of this cuboid. - * - * @return the x span of this cuboid - */ - public int getXSize() { - return (highPoints.getBlockX() - lowPoints.getBlockX()) + 1; - } - - /** - * Returns the y span of this cuboid. - * - * @return the y span of this cuboid - */ - public int getYSize() { - return (highPoints.getBlockY() - lowPoints.getBlockY()) + 1; - } - - /** - * Returns the z span of this cuboid. - * - * @return the z span of this cuboid - */ - public int getZSize() { - return (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1; - } - - /** - * Returns the higher location of this cuboid. - * - * @return the higher location of this cuboid - */ - public Location getHighLoc() { - return highPoints; - } - - /** - * Returns the lower location of this cuboid. - * - * @return the lower location of this cuboid - */ - public Location getLowLoc() { - return lowPoints; - } - - /** - * Returns the world this cuboid is in. - * - * @return the world this cuboid is in - */ - public World getWorld() { - return highPoints.getWorld(); - } - - /** - * Saves the cuboid to a Map. - * - * @return the cuboid in a Map - */ - public Map<String, Object> save() { - Map<String, Object> root = new LinkedHashMap<String, Object>(); - - root.put("World", this.highPoints.getWorld().getName()); - root.put("X1", this.highPoints.getBlockX()); - root.put("Y1", this.highPoints.getBlockY()); - root.put("Z1", this.highPoints.getBlockZ()); - root.put("X2", this.lowPoints.getBlockX()); - root.put("Y2", this.lowPoints.getBlockY()); - root.put("Z2", this.lowPoints.getBlockZ()); - - return root; - } - - /** - * Loads the cuboid from a Map. - * - * @param root - * the Map - * @param world - * the world it should be in - * @return the cuboid - * @throws IllegalArgumentException - */ - public static Cuboid load(Map<String, Object> root) throws IllegalArgumentException { - if (root == null) { - throw new IllegalArgumentException("Invalid root map!"); - } - - final String owner = (String) root.get("Owner"); - final World world = Bukkit.getServer().getWorld((String) root.get("World")); - final int x1 = (Integer) root.get("X1"); - final int y1 = (Integer) root.get("Y1"); - final int z1 = (Integer) root.get("Z1"); - final int x2 = (Integer) root.get("X2"); - final int y2 = (Integer) root.get("Y2"); - final int z2 = (Integer) root.get("Z2"); - - final Cuboid newArea = new Cuboid(new Location(world, x1, y1, z1), new Location(world, x2, y2, z2)); - - return newArea; - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return new StringBuilder("(").append(lowPoints.getBlockX()).append(", ").append(lowPoints.getBlockY()).append(", ").append(lowPoints.getBlockZ()).append(") to (").append(highPoints.getBlockX()).append(", ").append(highPoints.getBlockY()).append(", ").append(highPoints.getBlockZ()).append(")").toString(); - } - - /** - * Returns a raw representation that is easy to read for Java. - * - * @return a raw representation of this cuboid - */ - public String toRaw() { - return new StringBuilder(getWorld().getName()).append(",").append(lowPoints.getBlockX()).append(",").append(lowPoints.getBlockY()).append(",").append(lowPoints.getBlockZ()).append(",").append(highPoints.getBlockX()).append(",").append(highPoints.getBlockY()).append(",").append(highPoints.getBlockZ()).toString(); - } -} \ No newline at end of file +public final class Cuboid +{ + private final Location highPoints; + private final Location lowPoints; + + /** + * Constructs a new cuboid. + * + * @param startLoc + * the first point + * @param endLoc + * the second point + */ + public Cuboid(final Location startLoc, final Location endLoc) + { + + if (startLoc != null && endLoc != null) + { + final int lowx = Math.min(startLoc.getBlockX(), endLoc.getBlockX()); + final int lowy = Math.min(startLoc.getBlockY(), endLoc.getBlockY()); + final int lowz = Math.min(startLoc.getBlockZ(), endLoc.getBlockZ()); + + final int highx = Math.max(startLoc.getBlockX(), endLoc.getBlockX()); + final int highy = Math.max(startLoc.getBlockY(), endLoc.getBlockY()); + final int highz = Math.max(startLoc.getBlockZ(), endLoc.getBlockZ()); + + this.highPoints = new Location(startLoc.getWorld(), highx, highy, highz); + this.lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz); + } + else + { + this.highPoints = null; + this.lowPoints = null; + } + + } + + /** + * Determines whether the passed area is within this area. + * + * @param area + * the area to check + * @return true if the area is within this area, otherwise false + */ + public boolean isAreaWithinArea(final Cuboid area) + { + return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints)); + } + + /** + * Determines whether the this cuboid contains the passed location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid, otherwise false + */ + public boolean containsLoc(final Location loc) + { + if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + { + return false; + } + + return this.lowPoints.getBlockX() <= loc.getBlockX() && this.highPoints.getBlockX() >= loc.getBlockX() && this.lowPoints.getBlockZ() <= loc.getBlockZ() + && this.highPoints.getBlockZ() >= loc.getBlockZ() && this.lowPoints.getBlockY() <= loc.getBlockY() && this.highPoints.getBlockY() >= loc.getBlockY(); + } + + public boolean containsLocWithoutY(final Location loc) + { + if (this.highPoints == null || this.lowPoints == null) + { + return false; + } + if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + { + return false; + } + + return this.lowPoints.getBlockX() <= loc.getBlockX() && this.highPoints.getBlockX() >= loc.getBlockX() && this.lowPoints.getBlockZ() <= loc.getBlockZ() + && this.highPoints.getBlockZ() >= loc.getBlockZ(); + } + + public boolean containsLocWithoutYD(final Location loc) + { + if (this.highPoints == null || this.lowPoints == null) + { + return false; + } + if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + { + return false; + } + + return this.lowPoints.getBlockX() <= loc.getBlockX() + 2 && this.highPoints.getBlockX() >= loc.getBlockX() - 2 && this.lowPoints.getBlockZ() <= loc.getBlockZ() + 2 + && this.highPoints.getBlockZ() >= loc.getBlockZ() - 2; + } + + /** + * Returns the volume of this cuboid. + * + * @return the volume of this cuboid + */ + public long getSize() + { + return Math.abs(this.getXSize() * this.getYSize() * this.getZSize()); + } + + /** + * Determines a random location inside the cuboid and returns it. + * + * @return a random location within the cuboid + */ + public Location getRandomLocation() + { + final World world = this.getWorld(); + final Random randomGenerator = new Random(); + + Location result = new Location(world, this.highPoints.getBlockX(), this.highPoints.getBlockY(), this.highPoints.getZ()); + + if (this.getSize() > 1) + { + final double randomX = this.lowPoints.getBlockX() + randomGenerator.nextInt(this.getXSize()); + final double randomY = this.lowPoints.getBlockY() + randomGenerator.nextInt(this.getYSize()); + final double randomZ = this.lowPoints.getBlockZ() + randomGenerator.nextInt(this.getZSize()); + + result = new Location(world, randomX, randomY, randomZ); + } + + return result; + } + + /** + * Determines a random location inside the cuboid that is suitable for mob spawning and returns it. + * + * @return a random location inside the cuboid that is suitable for mob spawning + */ + public Location getRandomLocationForMobs() + { + final Location temp = this.getRandomLocation(); + + return new Location(temp.getWorld(), temp.getBlockX() + 0.5, temp.getBlockY() + 0.5, temp.getBlockZ() + 0.5); + } + + /** + * Returns the x span of this cuboid. + * + * @return the x span of this cuboid + */ + public int getXSize() + { + return (this.highPoints.getBlockX() - this.lowPoints.getBlockX()) + 1; + } + + /** + * Returns the y span of this cuboid. + * + * @return the y span of this cuboid + */ + public int getYSize() + { + return (this.highPoints.getBlockY() - this.lowPoints.getBlockY()) + 1; + } + + /** + * Returns the z span of this cuboid. + * + * @return the z span of this cuboid + */ + public int getZSize() + { + return (this.highPoints.getBlockZ() - this.lowPoints.getBlockZ()) + 1; + } + + /** + * Returns the higher location of this cuboid. + * + * @return the higher location of this cuboid + */ + public Location getHighLoc() + { + return this.highPoints; + } + + /** + * Returns the lower location of this cuboid. + * + * @return the lower location of this cuboid + */ + public Location getLowLoc() + { + return this.lowPoints; + } + + /** + * Returns the world this cuboid is in. + * + * @return the world this cuboid is in + */ + public World getWorld() + { + return this.highPoints.getWorld(); + } + + /** + * Saves the cuboid to a Map. + * + * @return the cuboid in a Map + */ + public Map<String, Object> save() + { + final Map<String, Object> root = new LinkedHashMap<>(); + + root.put("World", this.highPoints.getWorld().getName()); + root.put("X1", this.highPoints.getBlockX()); + root.put("Y1", this.highPoints.getBlockY()); + root.put("Z1", this.highPoints.getBlockZ()); + root.put("X2", this.lowPoints.getBlockX()); + root.put("Y2", this.lowPoints.getBlockY()); + root.put("Z2", this.lowPoints.getBlockZ()); + + return root; + } + + /** + * Loads the cuboid from a Map. + * + * @param root + * the Map + * @param world + * the world it should be in + * @return the cuboid + * @throws IllegalArgumentException + */ + public static Cuboid load(final Map<String, Object> root) throws IllegalArgumentException + { + if (root == null) + { + throw new IllegalArgumentException("Invalid root map!"); + } + + final String owner = (String) root.get("Owner"); + final World world = Bukkit.getServer().getWorld((String) root.get("World")); + final int x1 = (Integer) root.get("X1"); + final int y1 = (Integer) root.get("Y1"); + final int z1 = (Integer) root.get("Z1"); + final int x2 = (Integer) root.get("X2"); + final int y2 = (Integer) root.get("Y2"); + final int z2 = (Integer) root.get("Z2"); + + final Cuboid newArea = new Cuboid(new Location(world, x1, y1, z1), new Location(world, x2, y2, z2)); + + return newArea; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() + { + return new StringBuilder("(").append(this.lowPoints.getBlockX()).append(", ").append(this.lowPoints.getBlockY()).append(", ").append(this.lowPoints.getBlockZ()).append(") to (") + .append(this.highPoints.getBlockX()).append(", ").append(this.highPoints.getBlockY()).append(", ").append(this.highPoints.getBlockZ()).append(")").toString(); + } + + /** + * Returns a raw representation that is easy to read for Java. + * + * @return a raw representation of this cuboid + */ + public String toRaw() + { + return new StringBuilder(this.getWorld().getName()).append(",").append(this.lowPoints.getBlockX()).append(",").append(this.lowPoints.getBlockY()).append(",").append(this.lowPoints.getBlockZ()) + .append(",").append(this.highPoints.getBlockX()).append(",").append(this.highPoints.getBlockY()).append(",").append(this.highPoints.getBlockZ()).toString(); + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java index 8e615623..92787337 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.ArrayList; @@ -16,165 +30,199 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.Plugin; -public class IconMenu implements Listener { - - private String name; - private int size; - private OptionClickEventHandler handler; - private Plugin plugin; - private Player player; - - private String[] optionNames; - private ItemStack[] optionIcons; - - public IconMenu(String name, int size, OptionClickEventHandler handler, Plugin plugin) { - this.name = name; - this.size = size; - this.handler = handler; - this.plugin = plugin; - this.optionNames = new String[size]; - this.optionIcons = new ItemStack[size]; - plugin.getServer().getPluginManager().registerEvents(this, plugin); - } - - public IconMenu setOption(int position, ItemStack icon, String name, String... info) { - if (position < 0) - position = 0; - if (optionNames == null) - this.optionNames = new String[size]; - if (optionIcons == null) - this.optionIcons = new ItemStack[size]; - optionNames[position] = name; - optionIcons[position] = setItemNameAndLore(icon, name, info); - return this; - } - - public void setSpecificTo(Player player) { - this.player = player; - } - - public boolean isSpecific() { - return player != null; - } - - public int getSize() { - return size; - } - - public void open(Player player) { - Inventory inventory = Bukkit.createInventory(player, size, name); - for (int i = 0; i < optionIcons.length; i++) { - if (optionIcons[i] != null) { - inventory.setItem(i, optionIcons[i]); - } - } - player.openInventory(inventory); - } - - public void destroy() { - HandlerList.unregisterAll(this); - handler = null; - plugin = null; - optionNames = null; - optionIcons = null; - } - - public void clear() { - optionNames = null; - optionIcons = null; - } - - @EventHandler(priority = EventPriority.HIGHEST) - void onInventoryClick(InventoryClickEvent event) { - if (event.getInventory().getTitle().equals(name) && (player == null || event.getWhoClicked() == player)) { - event.setCancelled(true); - if (event.getClick() != ClickType.LEFT) - return; - int slot = event.getRawSlot(); - if (slot >= 0 && slot < size && optionNames[slot] != null) { - Plugin plugin = this.plugin; - OptionClickEvent e = new OptionClickEvent((Player) event.getWhoClicked(), slot, optionNames[slot], optionIcons[slot]); - handler.onOptionClick(e); - ((Player) event.getWhoClicked()).updateInventory(); - if (e.willClose()) { - final Player p = (Player) event.getWhoClicked(); - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { - public void run() { - p.closeInventory(); - } - }); - } - if (e.willDestroy()) { - destroy(); - } - } - } - } - - public interface OptionClickEventHandler { - public void onOptionClick(OptionClickEvent event); - } - - public class OptionClickEvent { - private Player player; - private int position; - private String name; - private boolean close; - private boolean destroy; - private ItemStack item; - - public OptionClickEvent(Player player, int position, String name, ItemStack item) { - this.player = player; - this.position = position; - this.name = name; - this.close = true; - this.destroy = false; - this.item = item; - } - - public Player getPlayer() { - return player; - } - - public int getPosition() { - return position; - } - - public String getName() { - return name; - } - - public boolean willClose() { - return close; - } - - public boolean willDestroy() { - return destroy; - } - - public void setWillClose(boolean close) { - this.close = close; - } - - public void setWillDestroy(boolean destroy) { - this.destroy = destroy; - } - - public ItemStack getItem() { - return item; - } - } - - private ItemStack setItemNameAndLore(ItemStack item, String name, String[] lore) { - ItemMeta im = item.getItemMeta(); - im.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); - ArrayList<String> lore_lines = new ArrayList<String>(); - for (String l : lore) { - lore_lines.add(ChatColor.translateAlternateColorCodes('&', l)); - } - im.setLore(lore_lines); - item.setItemMeta(im); - return item; - } - -} \ No newline at end of file +public class IconMenu implements Listener +{ + + private final String name; + private final int size; + private OptionClickEventHandler handler; + private Plugin plugin; + private Player player; + + private String[] optionNames; + private ItemStack[] optionIcons; + + public IconMenu(final String name, final int size, final OptionClickEventHandler handler, final Plugin plugin) + { + this.name = name; + this.size = size; + this.handler = handler; + this.plugin = plugin; + this.optionNames = new String[size]; + this.optionIcons = new ItemStack[size]; + plugin.getServer().getPluginManager().registerEvents(this, plugin); + } + + public IconMenu setOption(int pos, final ItemStack icon, final String name, final String... info) + { + int position = pos; + if (position < 0) + { + position = 0; + } + if (this.optionNames == null) + { + this.optionNames = new String[this.size]; + } + if (this.optionIcons == null) + { + this.optionIcons = new ItemStack[this.size]; + } + this.optionNames[position] = name; + this.optionIcons[position] = this.setItemNameAndLore(icon, name, info); + return this; + } + + public void setSpecificTo(final Player player) + { + this.player = player; + } + + public boolean isSpecific() + { + return this.player != null; + } + + public int getSize() + { + return this.size; + } + + public void open(final Player player) + { + final Inventory inventory = Bukkit.createInventory(player, this.size, this.name); + for (int i = 0; i < this.optionIcons.length; i++) + { + if (this.optionIcons[i] != null) + { + inventory.setItem(i, this.optionIcons[i]); + } + } + player.openInventory(inventory); + } + + public void destroy() + { + HandlerList.unregisterAll(this); + this.handler = null; + this.plugin = null; + this.optionNames = null; + this.optionIcons = null; + } + + public void clear() + { + this.optionNames = null; + this.optionIcons = null; + } + + @EventHandler(priority = EventPriority.HIGHEST) + void onInventoryClick(final InventoryClickEvent event) + { + if (event.getInventory().getTitle().equals(this.name) && (this.player == null || event.getWhoClicked() == this.player)) + { + event.setCancelled(true); + if (event.getClick() != ClickType.LEFT) + { + return; + } + final int slot = event.getRawSlot(); + if (slot >= 0 && slot < this.size && this.optionNames[slot] != null) + { + final Plugin plugin = this.plugin; + final OptionClickEvent e = new OptionClickEvent((Player) event.getWhoClicked(), slot, this.optionNames[slot], this.optionIcons[slot]); + this.handler.onOptionClick(e); + ((Player) event.getWhoClicked()).updateInventory(); + if (e.willClose()) + { + final Player p = (Player) event.getWhoClicked(); + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> p.closeInventory()); + } + if (e.willDestroy()) + { + this.destroy(); + } + } + } + } + + public interface OptionClickEventHandler + { + public void onOptionClick(OptionClickEvent event); + } + + public class OptionClickEvent + { + private final Player player; + private final int position; + private final String name; + private boolean close; + private boolean destroy; + private final ItemStack item; + + public OptionClickEvent(final Player player, final int position, final String name, final ItemStack item) + { + this.player = player; + this.position = position; + this.name = name; + this.close = true; + this.destroy = false; + this.item = item; + } + + public Player getPlayer() + { + return this.player; + } + + public int getPosition() + { + return this.position; + } + + public String getName() + { + return this.name; + } + + public boolean willClose() + { + return this.close; + } + + public boolean willDestroy() + { + return this.destroy; + } + + public void setWillClose(final boolean close) + { + this.close = close; + } + + public void setWillDestroy(final boolean destroy) + { + this.destroy = destroy; + } + + public ItemStack getItem() + { + return this.item; + } + } + + private ItemStack setItemNameAndLore(final ItemStack item, final String name, final String[] lore) + { + final ItemMeta im = item.getItemMeta(); + im.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); + final ArrayList<String> lore_lines = new ArrayList<>(); + for (final String l : lore) + { + lore_lines.add(ChatColor.translateAlternateColorCodes('&', l)); + } + im.setLore(lore_lines); + item.setItemMeta(im); + return item; + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java index dbd3b605..efe0d5a0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/InventoryManager.java @@ -1,41 +1,58 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; - + import java.util.HashMap; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; - -public class InventoryManager { - - private static HashMap<String, ItemStack[]> armourContents = new HashMap<String, ItemStack[]>(); - private static HashMap<String, ItemStack[]> inventoryContents = new HashMap<String, ItemStack[]>(); - private static HashMap<String, Location> locations = new HashMap<String, Location>(); - private static HashMap<String, Integer> xplevel = new HashMap<String, Integer>(); - private static HashMap<String, GameMode> gamemode = new HashMap<String, GameMode>(); - - public static void saveInventory(Player player){ - armourContents.put(player.getName(), player.getInventory().getArmorContents()); - inventoryContents.put(player.getName(), player.getInventory().getContents()); - locations.put(player.getName(), player.getLocation()); - xplevel.put(player.getName(), player.getLevel()); - gamemode.put(player.getName(), player.getGameMode()); + +public class InventoryManager +{ + + private static HashMap<String, ItemStack[]> armourContents = new HashMap<>(); + private static HashMap<String, ItemStack[]> inventoryContents = new HashMap<>(); + private static HashMap<String, Location> locations = new HashMap<>(); + private static HashMap<String, Integer> xplevel = new HashMap<>(); + private static HashMap<String, GameMode> gamemode = new HashMap<>(); + + public static void saveInventory(final Player player) + { + InventoryManager.armourContents.put(player.getName(), player.getInventory().getArmorContents()); + InventoryManager.inventoryContents.put(player.getName(), player.getInventory().getContents()); + InventoryManager.locations.put(player.getName(), player.getLocation()); + InventoryManager.xplevel.put(player.getName(), player.getLevel()); + InventoryManager.gamemode.put(player.getName(), player.getGameMode()); player.getInventory().clear(); } - - public static void restoreInventory(Player player){ + + public static void restoreInventory(final Player player) + { player.getInventory().clear(); - player.teleport(locations.get(player.getName())); - - player.getInventory().setContents(inventoryContents.get(player.getName())); - player.getInventory().setArmorContents(armourContents.get(player.getName())); - player.setLevel(xplevel.get(player.getName())); - player.setGameMode(gamemode.get(player.getName())); - - xplevel.remove(player.getName()); - locations.remove(player.getName()); - armourContents.remove(player.getName()); - inventoryContents.remove(player.getName()); + player.teleport(InventoryManager.locations.get(player.getName())); + + player.getInventory().setContents(InventoryManager.inventoryContents.get(player.getName())); + player.getInventory().setArmorContents(InventoryManager.armourContents.get(player.getName())); + player.setLevel(InventoryManager.xplevel.get(player.getName())); + player.setGameMode(InventoryManager.gamemode.get(player.getName())); + + InventoryManager.xplevel.remove(player.getName()); + InventoryManager.locations.remove(player.getName()); + InventoryManager.armourContents.remove(player.getName()); + InventoryManager.inventoryContents.remove(player.getName()); } -} \ No newline at end of file +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java index 553fc80a..270917dc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Leaderboard.java @@ -1,8 +1,21 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; @@ -22,189 +35,228 @@ import org.bukkit.block.Sign; import org.bukkit.block.Skull; import org.bukkit.configuration.file.FileConfiguration; - -public class Leaderboard { - - protected Object convertUUID(String s) { - if (s.matches("[0-9a-f]{8}-[0-9a-f]{4}-4[0-9]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}")) { - return UUID.fromString(s); - } else { - return s; + +public class Leaderboard +{ + + protected Object convertUUID(final String s) + { + if (s.matches("[0-9a-f]{8}-[0-9a-f]{4}-4[0-9]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}")) + { + return UUID.fromString(s); + } + else + { + return s; + } + } + + protected static Map<Integer, String> sortByComparator(final Map<String, Integer> unsortMap, final boolean order) + { + final List<Entry<String, Integer>> list = new LinkedList<>(unsortMap.entrySet()); + + Collections.sort(list, (o1, o2) -> { + if (order) + { + return o1.getValue().compareTo(o2.getValue()); + } + else + { + return o2.getValue().compareTo(o1.getValue()); + } + }); + + final Map<Integer, String> sortedMap = new LinkedHashMap<>(); + for (final Entry<String, Integer> entry : list) + { + for (int i = 1; i < 4; i++) + { + if (!sortedMap.containsKey(i)) + { + sortedMap.put(i, entry.getKey()); + break; + } + } + } + + return sortedMap; + } + + @SuppressWarnings("deprecation") + public Leaderboard(final Location firstPlace, final Location secondPlace, final Location thirdPlace, final Material firstBlockType, final Material secondBlockType, final Material thirdBlockType, + final BlockFace direction, final FileConfiguration configurationFile, final String configurationFormat) + { + final String[] a = configurationFormat.split("\\."); + + int playerConfigLocation = -1; + + for (int i = 0; i < a.length; i++) + { + if (a[i].equals("player")) + { + playerConfigLocation = i; + } + } + + if (playerConfigLocation == -1) + { + return; + } + + final ArrayList<String> b = new ArrayList<>(); + + for (final String ba : a) + { + if (!ba.equals("player")) + { + b.add(ba); + } + else + { + break; + } + } + + final ArrayList<String> c = new ArrayList<>(); + + for (final String ca : a) + { + if (!ca.equals("integer")) + { + c.add(ca); + } + else + { + break; + } + } + + final HashMap<String, Integer> playersEdit = new HashMap<>(); + final HashMap<String, Integer> playersKeep = new HashMap<>(); + + for (final String player : configurationFile.getConfigurationSection(b.toString().replace("[", "").replace("]", "").replace(", ", ".")).getKeys(false)) + { + playersEdit.put(player, configurationFile.getInt(c.toString().replace("[", "").replace("]", "").replace(", ", ".").replace("player", player))); + playersKeep.put(player, configurationFile.getInt(c.toString().replace("[", "").replace("]", "").replace(", ", ".").replace("player", player))); + } + + final Map<Integer, String> leaderboard = Leaderboard.sortByComparator(playersEdit, false); + + firstPlace.getBlock().setType(firstBlockType); + secondPlace.getBlock().setType(secondBlockType); + thirdPlace.getBlock().setType(thirdBlockType); + + final ArrayList<BlockState> signBlockState = new ArrayList<>(); + + final Block firstSign = firstPlace.getBlock().getRelative(direction); + final Block secondSign = secondPlace.getBlock().getRelative(direction); + final Block thirdSign = thirdPlace.getBlock().getRelative(direction); + + switch (direction) + { + case EAST: + firstSign.setTypeIdAndData(68, (byte) 0x5, true); + secondSign.setTypeIdAndData(68, (byte) 0x5, true); + thirdSign.setTypeIdAndData(68, (byte) 0x5, true); + break; + case NORTH: + firstSign.setTypeIdAndData(68, (byte) 0x2, true); + secondSign.setTypeIdAndData(68, (byte) 0x2, true); + thirdSign.setTypeIdAndData(68, (byte) 0x2, true); + break; + case SOUTH: + firstSign.setTypeIdAndData(68, (byte) 0x3, true); + secondSign.setTypeIdAndData(68, (byte) 0x3, true); + thirdSign.setTypeIdAndData(68, (byte) 0x3, true); + break; + case WEST: + firstSign.setTypeIdAndData(68, (byte) 0x4, true); + secondSign.setTypeIdAndData(68, (byte) 0x4, true); + thirdSign.setTypeIdAndData(68, (byte) 0x4, true); + break; + default: + break; + + } + + signBlockState.add(firstSign.getState()); + signBlockState.add(secondSign.getState()); + signBlockState.add(thirdSign.getState()); + + for (final BlockState bs : signBlockState) + { + if (bs instanceof Sign) + { + final Sign s = (Sign) bs; + + if (leaderboard.containsKey(signBlockState.indexOf(bs) + 1)) + { + if (this.convertUUID(leaderboard.get(signBlockState.indexOf(bs) + 1)) instanceof UUID) + { + s.setLine(1, Bukkit.getPlayer((UUID) this.convertUUID(leaderboard.get(signBlockState.indexOf(bs) + 1))).getName()); + } + else + { + s.setLine(1, leaderboard.get(signBlockState.indexOf(bs) + 1)); + } + + switch (signBlockState.indexOf(bs) + 1) + { + case 1: + s.setLine(0, ChatColor.AQUA + "" + ChatColor.BOLD + "1st"); + break; + case 2: + s.setLine(0, ChatColor.YELLOW + "" + ChatColor.BOLD + "2st"); + break; + case 3: + s.setLine(0, ChatColor.DARK_RED + "" + ChatColor.BOLD + "3st"); + break; + } } + s.setLine(2, playersKeep.get(leaderboard.get(signBlockState.indexOf(bs) + 1)) + " Points"); + bs.getBlock().getChunk().load(); + s.update(true); + } } - - protected static Map<Integer, String> sortByComparator(Map<String, Integer> unsortMap, final boolean order) { - List<Entry<String, Integer>> list = new LinkedList<Entry<String, Integer>>(unsortMap.entrySet()); - - Collections.sort(list, new Comparator<Entry<String, Integer>>() { - public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { - if (order) { - return o1.getValue().compareTo(o2.getValue()); - } else { - return o2.getValue().compareTo(o1.getValue()); - } - } - }); - - Map<Integer, String> sortedMap = new LinkedHashMap<Integer, String>(); - for (Entry<String, Integer> entry : list) { - for (int i = 1; i < 4; i++) { - if (!sortedMap.containsKey(i)) { - sortedMap.put(i, entry.getKey()); - break; - } - } - } - - return sortedMap; - } - - - @SuppressWarnings("deprecation") - public Leaderboard(Location firstPlace, Location secondPlace, Location thirdPlace, Material firstBlockType, Material secondBlockType, Material thirdBlockType, BlockFace direction, FileConfiguration configurationFile, String configurationFormat) { - String[] a = configurationFormat.split("\\."); - - int playerConfigLocation = -1; - - for (int i = 0; i < a.length; i++) { - if (a[i].equals("player")) { - playerConfigLocation = i; - } - } - - if (playerConfigLocation == -1) return; - - ArrayList<String> b = new ArrayList<String>(); - - for (String ba : a) { - if (!ba.equals("player")) { - b.add(ba); - } else { - break; - } - } - - ArrayList<String> c = new ArrayList<String>(); - - for (String ca : a) { - if (!ca.equals("integer")) { - c.add(ca); - } else { - break; - } - } - - HashMap<String, Integer> playersEdit = new HashMap<String, Integer>(); - HashMap<String, Integer> playersKeep = new HashMap<String, Integer>(); - - for (String player : configurationFile.getConfigurationSection(b.toString().replace("[", "").replace("]", "").replace(", ", ".")).getKeys(false)) { - playersEdit.put(player, configurationFile.getInt(c.toString().replace("[", "").replace("]", "").replace(", ", ".").replace("player", player))); - playersKeep.put(player, configurationFile.getInt(c.toString().replace("[", "").replace("]", "").replace(", ", ".").replace("player", player))); - } - - Map<Integer, String> leaderboard = sortByComparator(playersEdit, false); - - firstPlace.getBlock().setType(firstBlockType); - secondPlace.getBlock().setType(secondBlockType); - thirdPlace.getBlock().setType(thirdBlockType); - - ArrayList<BlockState> signBlockState = new ArrayList<BlockState>(); - - Block firstSign = firstPlace.getBlock().getRelative(direction); - Block secondSign = secondPlace.getBlock().getRelative(direction); - Block thirdSign = thirdPlace.getBlock().getRelative(direction); - - switch (direction) { - case EAST: - firstSign.setTypeIdAndData(68, (byte) 0x5, true); - secondSign.setTypeIdAndData(68, (byte) 0x5, true); - thirdSign.setTypeIdAndData(68, (byte) 0x5, true); - break; - case NORTH: - firstSign.setTypeIdAndData(68, (byte) 0x2, true); - secondSign.setTypeIdAndData(68, (byte) 0x2, true); - thirdSign.setTypeIdAndData(68, (byte) 0x2, true); - break; - case SOUTH: - firstSign.setTypeIdAndData(68, (byte) 0x3, true); - secondSign.setTypeIdAndData(68, (byte) 0x3, true); - thirdSign.setTypeIdAndData(68, (byte) 0x3, true); - break; - case WEST: - firstSign.setTypeIdAndData(68, (byte) 0x4, true); - secondSign.setTypeIdAndData(68, (byte) 0x4, true); - thirdSign.setTypeIdAndData(68, (byte) 0x4, true); - break; - default: - break; - - } - - signBlockState.add(firstSign.getState()); - signBlockState.add(secondSign.getState()); - signBlockState.add(thirdSign.getState()); - - for (BlockState bs : signBlockState) { - if (bs instanceof Sign) { - Sign s = (Sign) bs; - - if (leaderboard.containsKey(signBlockState.indexOf(bs) + 1)) { - if (convertUUID(leaderboard.get(signBlockState.indexOf(bs) + 1)) instanceof UUID) { - s.setLine(1, Bukkit.getPlayer((UUID) convertUUID(leaderboard.get(signBlockState.indexOf(bs) + 1))).getName()); - } else { - s.setLine(1, leaderboard.get(signBlockState.indexOf(bs) + 1)); - } - - switch (signBlockState.indexOf(bs) + 1) { - case 1: - s.setLine(0, ChatColor.AQUA + "" + ChatColor.BOLD + "1st"); - break; - case 2: - s.setLine(0, ChatColor.YELLOW + "" + ChatColor.BOLD + "2st"); - break; - case 3: - s.setLine(0, ChatColor.DARK_RED + "" + ChatColor.BOLD + "3st"); - break; - } - } - s.setLine(2, playersKeep.get(leaderboard.get(signBlockState.indexOf(bs) + 1)) + " Points"); - bs.getBlock().getChunk().load(); - s.update(true); - } + + final Location firstSkull = firstPlace.getBlock().getLocation().add(0, 1, 0); + final Location secondSkull = secondPlace.getBlock().getLocation().add(0, 1, 0); + final Location thirdSkull = thirdPlace.getBlock().getLocation().add(0, 1, 0); + + firstSkull.getBlock().setType(Material.SKULL); + secondSkull.getBlock().setType(Material.SKULL); + thirdSkull.getBlock().setType(Material.SKULL); + + final ArrayList<BlockState> skullBlockState = new ArrayList<>(); + + skullBlockState.add(firstSkull.getBlock().getState()); + skullBlockState.add(secondSkull.getBlock().getState()); + skullBlockState.add(thirdSkull.getBlock().getState()); + + for (final BlockState bs : skullBlockState) + { + if (bs instanceof Skull) + { + final Skull s = (Skull) bs; + s.setSkullType(SkullType.PLAYER); + s.setRawData((byte) 1); + s.setRotation(direction); + + if (leaderboard.containsKey(skullBlockState.indexOf(bs) + 1)) + { + if (this.convertUUID(leaderboard.get(skullBlockState.indexOf(bs) + 1)) instanceof UUID) + { + s.setOwner(Bukkit.getPlayer((UUID) this.convertUUID(leaderboard.get(skullBlockState.indexOf(bs) + 1))).getName()); + } + else + { + s.setOwner(leaderboard.get(skullBlockState.indexOf(bs) + 1)); + } } - - Location firstSkull = firstPlace.getBlock().getLocation().add(0, 1, 0); - Location secondSkull = secondPlace.getBlock().getLocation().add(0, 1, 0); - Location thirdSkull = thirdPlace.getBlock().getLocation().add(0, 1, 0); - - firstSkull.getBlock().setType(Material.SKULL); - secondSkull.getBlock().setType(Material.SKULL); - thirdSkull.getBlock().setType(Material.SKULL); - - ArrayList<BlockState> skullBlockState = new ArrayList<BlockState>(); - - skullBlockState.add(firstSkull.getBlock().getState()); - skullBlockState.add(secondSkull.getBlock().getState()); - skullBlockState.add(thirdSkull.getBlock().getState()); - - for (BlockState bs : skullBlockState) { - if (bs instanceof Skull) { - Skull s = (Skull) bs; - s.setSkullType(SkullType.PLAYER); - s.setRawData((byte) 1); - s.setRotation(direction); - - if (leaderboard.containsKey(skullBlockState.indexOf(bs) + 1)) { - if (convertUUID(leaderboard.get(skullBlockState.indexOf(bs) + 1)) instanceof UUID) { - s.setOwner(Bukkit.getPlayer((UUID) convertUUID(leaderboard.get(skullBlockState.indexOf(bs) + 1))).getName()); - } else { - s.setOwner(leaderboard.get(skullBlockState.indexOf(bs) + 1)); - } - } - - bs.getBlock().getChunk().load(); - s.update(true); - } - } + + bs.getBlock().getChunk().load(); + s.update(true); + } } -} \ No newline at end of file + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java index 65d187cf..54db3aa8 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java @@ -27,13 +27,6 @@ */ package com.comze_instancelabs.minigamesapi.util; -import org.bukkit.Bukkit; -import org.bukkit.configuration.InvalidConfigurationException; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.PluginDescriptionFile; -import org.bukkit.scheduler.BukkitTask; - import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; @@ -54,710 +47,828 @@ import java.util.logging.Level; import java.util.zip.GZIPOutputStream; -public class Metrics { - - /** - * The current revision number - */ - private final static int REVISION = 7; - - /** - * The base url of the metrics domain - */ - private static final String BASE_URL = "http://report.mcstats.org"; - - /** - * The url used to report a server's status - */ - private static final String REPORT_URL = "/plugin/%s"; - - /** - * Interval of time to ping (in minutes) - */ - private static final int PING_INTERVAL = 15; - - /** - * The plugin this metrics submits for - */ - private final Plugin plugin; - - /** - * All of the custom graphs to submit to metrics - */ - private final Set<Graph> graphs = Collections.synchronizedSet(new HashSet<Graph>()); - - /** - * The plugin configuration file - */ - private final YamlConfiguration configuration; - - /** - * The plugin configuration file - */ - private final File configurationFile; - - /** - * Unique server id - */ - private final String guid; - - /** - * Debug mode - */ - private final boolean debug; - - /** - * Lock for synchronization - */ - private final Object optOutLock = new Object(); - - /** - * The scheduled task - */ - private volatile BukkitTask task = null; - - public Metrics(final Plugin plugin) throws IOException { - if (plugin == null) { - throw new IllegalArgumentException("Plugin cannot be null"); - } - - this.plugin = plugin; - - // load the config - configurationFile = getConfigFile(); - configuration = YamlConfiguration.loadConfiguration(configurationFile); - - // add some defaults - configuration.addDefault("opt-out", false); - configuration.addDefault("guid", UUID.randomUUID().toString()); - configuration.addDefault("debug", false); - - // Do we need to create the file? - if (configuration.get("guid", null) == null) { - configuration.options().header("http://mcstats.org").copyDefaults(true); - configuration.save(configurationFile); - } - - // Load the guid then - guid = configuration.getString("guid"); - debug = configuration.getBoolean("debug", false); - } - - /** - * Construct and create a Graph that can be used to separate specific plotters to their own graphs on the metrics website. Plotters can be added - * to the graph object returned. - * - * @param name - * The name of the graph - * @return Graph object created. Will never return NULL under normal circumstances unless bad parameters are given - */ - public Graph createGraph(final String name) { - if (name == null) { - throw new IllegalArgumentException("Graph name cannot be null"); - } - - // Construct the graph object - final Graph graph = new Graph(name); - - // Now we can add our graph - graphs.add(graph); - - // and return back - return graph; - } - - /** - * Add a Graph object to BukkitMetrics that represents data for the plugin that should be sent to the backend - * - * @param graph - * The name of the graph - */ - public void addGraph(final Graph graph) { - if (graph == null) { - throw new IllegalArgumentException("Graph cannot be null"); - } - - graphs.add(graph); - } - - /** - * Start measuring statistics. This will immediately create an async repeating task as the plugin and send the initial data to the metrics - * backend, and then after that it will post in increments of PING_INTERVAL * 1200 ticks. - * - * @return True if statistics measuring is running, otherwise false. - */ - public boolean start() { - synchronized (optOutLock) { - // Did we opt out? - if (isOptOut()) { - return false; - } - - // Is metrics already running? - if (task != null) { - return true; - } - - // Begin hitting the server with glorious data - task = plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() { - - private boolean firstPost = true; - - public void run() { - try { - // This has to be synchronized or it can collide with the disable method. - synchronized (optOutLock) { - // Disable Task, if it is running and the server owner decided to opt-out - if (isOptOut() && task != null) { - task.cancel(); - task = null; - // Tell all plotters to stop gathering information. - for (Graph graph : graphs) { - graph.onOptOut(); - } - } - } - - // We use the inverse of firstPost because if it is the first time we are posting, - // it is not a interval ping, so it evaluates to FALSE - // Each time thereafter it will evaluate to TRUE, i.e PING! - postPlugin(!firstPost); - - // After the first post we set firstPost to false - // Each post thereafter will be a ping - firstPost = false; - } catch (IOException e) { - if (debug) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); - } - } - } - }, 0, PING_INTERVAL * 1200); - - return true; - } - } - - /** - * Has the server owner denied plugin metrics? - * - * @return true if metrics should be opted out of it - */ - public boolean isOptOut() { - synchronized (optOutLock) { - try { - // Reload the metrics file - configuration.load(getConfigFile()); - } catch (IOException ex) { - if (debug) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); - } - return true; - } catch (InvalidConfigurationException ex) { - if (debug) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); - } - return true; - } - return configuration.getBoolean("opt-out", false); - } - } - - /** - * Enables metrics for the server by setting "opt-out" to false in the config file and starting the metrics task. - * - * @throws java.io.IOException - */ - public void enable() throws IOException { - // This has to be synchronized or it can collide with the check in the task. - synchronized (optOutLock) { - // Check if the server owner has already set opt-out, if not, set it. - if (isOptOut()) { - configuration.set("opt-out", false); - configuration.save(configurationFile); - } - - // Enable Task, if it is not running - if (task == null) { - start(); - } - } - } - - /** - * Disables metrics for the server by setting "opt-out" to true in the config file and canceling the metrics task. - * - * @throws java.io.IOException - */ - public void disable() throws IOException { - // This has to be synchronized or it can collide with the check in the task. - synchronized (optOutLock) { - // Check if the server owner has already set opt-out, if not, set it. - if (!isOptOut()) { - configuration.set("opt-out", true); - configuration.save(configurationFile); - } - - // Disable Task, if it is running - if (task != null) { - task.cancel(); - task = null; - } - } - } - - /** - * Gets the File object of the config file that should be used to store data such as the GUID and opt-out status - * - * @return the File object for the config file - */ - public File getConfigFile() { - // I believe the easiest way to get the base folder (e.g craftbukkit set via -P) for plugins to use - // is to abuse the plugin object we already have - // plugin.getDataFolder() => base/plugins/PluginA/ - // pluginsFolder => base/plugins/ - // The base is not necessarily relative to the startup directory. - File pluginsFolder = plugin.getDataFolder().getParentFile(); - - // return => base/plugins/PluginMetrics/config.yml - return new File(new File(pluginsFolder, "PluginMetrics"), "config.yml"); - } - - /** - * Generic method that posts a plugin to the metrics website - */ - private void postPlugin(final boolean isPing) throws IOException { - // Server software specific section - PluginDescriptionFile description = plugin.getDescription(); - String pluginName = description.getName(); - boolean onlineMode = Bukkit.getServer().getOnlineMode(); // TRUE if online mode is enabled - String pluginVersion = description.getVersion(); - String serverVersion = Bukkit.getVersion(); - int playersOnline = Bukkit.getServer().getOnlinePlayers().size(); - - // END server software specific section -- all code below does not use any code outside of this class / Java - - // Construct the post data - StringBuilder json = new StringBuilder(1024); - json.append('{'); - - // The plugin's description file containg all of the plugin data such as name, version, author, etc - appendJSONPair(json, "guid", guid); - appendJSONPair(json, "plugin_version", pluginVersion); - appendJSONPair(json, "server_version", serverVersion); - appendJSONPair(json, "players_online", Integer.toString(playersOnline)); - - // New data as of R6 - String osname = System.getProperty("os.name"); - String osarch = System.getProperty("os.arch"); - String osversion = System.getProperty("os.version"); - String java_version = System.getProperty("java.version"); - int coreCount = Runtime.getRuntime().availableProcessors(); - - // normalize os arch .. amd64 -> x86_64 - if (osarch.equals("amd64")) { - osarch = "x86_64"; - } - - appendJSONPair(json, "osname", osname); - appendJSONPair(json, "osarch", osarch); - appendJSONPair(json, "osversion", osversion); - appendJSONPair(json, "cores", Integer.toString(coreCount)); - appendJSONPair(json, "auth_mode", onlineMode ? "1" : "0"); - appendJSONPair(json, "java_version", java_version); - - // If we're pinging, append it - if (isPing) { - appendJSONPair(json, "ping", "1"); - } - - if (graphs.size() > 0) { - synchronized (graphs) { - json.append(','); - json.append('"'); - json.append("graphs"); - json.append('"'); - json.append(':'); - json.append('{'); - - boolean firstGraph = true; - - final Iterator<Graph> iter = graphs.iterator(); - - while (iter.hasNext()) { - Graph graph = iter.next(); - - StringBuilder graphJson = new StringBuilder(); - graphJson.append('{'); - - for (Plotter plotter : graph.getPlotters()) { - appendJSONPair(graphJson, plotter.getColumnName(), Integer.toString(plotter.getValue())); - } - - graphJson.append('}'); - - if (!firstGraph) { - json.append(','); - } - - json.append(escapeJSON(graph.getName())); - json.append(':'); - json.append(graphJson); - - firstGraph = false; - } - - json.append('}'); - } - } - - // close json - json.append('}'); - - // Create the url - URL url = new URL(BASE_URL + String.format(REPORT_URL, urlEncode(pluginName))); - - // Connect to the website - URLConnection connection; - - // Mineshafter creates a socks proxy, so we can safely bypass it - // It does not reroute POST requests so we need to go around it - if (isMineshafterPresent()) { - connection = url.openConnection(Proxy.NO_PROXY); - } else { - connection = url.openConnection(); - } - - byte[] uncompressed = json.toString().getBytes(); - byte[] compressed = gzip(json.toString()); - - // Headers - connection.addRequestProperty("User-Agent", "MCStats/" + REVISION); - connection.addRequestProperty("Content-Type", "application/json"); - connection.addRequestProperty("Content-Encoding", "gzip"); - connection.addRequestProperty("Content-Length", Integer.toString(compressed.length)); - connection.addRequestProperty("Accept", "application/json"); - connection.addRequestProperty("Connection", "close"); - - connection.setDoOutput(true); - - if (debug) { - System.out.println("[Metrics] Prepared request for " + pluginName + " uncompressed=" + uncompressed.length + " compressed=" + compressed.length); - } - - // Write the data - OutputStream os = connection.getOutputStream(); - os.write(compressed); - os.flush(); - - // Now read the response - final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); - String response = reader.readLine(); - - // close resources - os.close(); - reader.close(); - - if (response == null || response.startsWith("ERR") || response.startsWith("7")) { - if (response == null) { - response = "null"; - } else if (response.startsWith("7")) { - response = response.substring(response.startsWith("7,") ? 2 : 1); - } - - throw new IOException(response); - } else { - // Is this the first update this hour? - if (response.equals("1") || response.contains("This is your first update this hour")) { - synchronized (graphs) { - final Iterator<Graph> iter = graphs.iterator(); - - while (iter.hasNext()) { - final Graph graph = iter.next(); - - for (Plotter plotter : graph.getPlotters()) { - plotter.reset(); - } - } - } - } - } - } - - /** - * GZip compress a string of bytes - * - * @param input - * @return - */ - public static byte[] gzip(String input) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - GZIPOutputStream gzos = null; - - try { - gzos = new GZIPOutputStream(baos); - gzos.write(input.getBytes("UTF-8")); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (gzos != null) - try { - gzos.close(); - } catch (IOException ignore) { - } - } - - return baos.toByteArray(); - } - - /** - * Check if mineshafter is present. If it is, we need to bypass it to send POST requests - * - * @return true if mineshafter is installed on the server - */ - private boolean isMineshafterPresent() { - try { - Class.forName("mineshafter.MineServer"); - return true; - } catch (Exception e) { - return false; - } - } - - /** - * Appends a json encoded key/value pair to the given string builder. - * - * @param json - * @param key - * @param value - * @throws UnsupportedEncodingException - */ - private static void appendJSONPair(StringBuilder json, String key, String value) throws UnsupportedEncodingException { - boolean isValueNumeric = false; - - try { - if (value.equals("0") || !value.endsWith("0")) { - Double.parseDouble(value); - isValueNumeric = true; - } - } catch (NumberFormatException e) { - isValueNumeric = false; - } - - if (json.charAt(json.length() - 1) != '{') { - json.append(','); - } - - json.append(escapeJSON(key)); - json.append(':'); - - if (isValueNumeric) { - json.append(value); - } else { - json.append(escapeJSON(value)); - } - } - - /** - * Escape a string to create a valid JSON string - * - * @param text - * @return - */ - private static String escapeJSON(String text) { - StringBuilder builder = new StringBuilder(); - - builder.append('"'); - for (int index = 0; index < text.length(); index++) { - char chr = text.charAt(index); - - switch (chr) { - case '"': - case '\\': - builder.append('\\'); - builder.append(chr); - break; - case '\b': - builder.append("\\b"); - break; - case '\t': - builder.append("\\t"); - break; - case '\n': - builder.append("\\n"); - break; - case '\r': - builder.append("\\r"); - break; - default: - if (chr < ' ') { - String t = "000" + Integer.toHexString(chr); - builder.append("\\u" + t.substring(t.length() - 4)); - } else { - builder.append(chr); - } - break; - } - } - builder.append('"'); - - return builder.toString(); - } - - /** - * Encode text as UTF-8 - * - * @param text - * the text to encode - * @return the encoded text, as UTF-8 - */ - private static String urlEncode(final String text) throws UnsupportedEncodingException { - return URLEncoder.encode(text, "UTF-8"); - } - - /** - * Represents a custom graph on the website - */ - public static class Graph { - - /** - * The graph's name, alphanumeric and spaces only :) If it does not comply to the above when submitted, it is rejected - */ - private final String name; - - /** - * The set of plotters that are contained within this graph - */ - private final Set<Plotter> plotters = new LinkedHashSet<Plotter>(); - - private Graph(final String name) { - this.name = name; - } - - /** - * Gets the graph's name - * - * @return the Graph's name - */ - public String getName() { - return name; - } - - /** - * Add a plotter to the graph, which will be used to plot entries - * - * @param plotter - * the plotter to add to the graph - */ - public void addPlotter(final Plotter plotter) { - plotters.add(plotter); - } - - /** - * Remove a plotter from the graph - * - * @param plotter - * the plotter to remove from the graph - */ - public void removePlotter(final Plotter plotter) { - plotters.remove(plotter); - } - - /** - * Gets an <b>unmodifiable</b> set of the plotter objects in the graph - * - * @return an unmodifiable {@link java.util.Set} of the plotter objects - */ - public Set<Plotter> getPlotters() { - return Collections.unmodifiableSet(plotters); - } - - @Override - public int hashCode() { - return name.hashCode(); - } - - @Override - public boolean equals(final Object object) { - if (!(object instanceof Graph)) { - return false; - } - - final Graph graph = (Graph) object; - return graph.name.equals(name); - } - - /** - * Called when the server owner decides to opt-out of BukkitMetrics while the server is running. - */ - protected void onOptOut() { - } - } - - /** - * Interface used to collect custom data for a plugin - */ - public static abstract class Plotter { - - /** - * The plot's name - */ - private final String name; - - /** - * Construct a plotter with the default plot name - */ - public Plotter() { - this("Default"); - } - - /** - * Construct a plotter with a specific plot name - * - * @param name - * the name of the plotter to use, which will show up on the website - */ - public Plotter(final String name) { - this.name = name; - } - - /** - * Get the current value for the plotted point. Since this function defers to an external function it may or may not return immediately thus - * cannot be guaranteed to be thread friendly or safe. This function can be called from any thread so care should be taken when accessing - * resources that need to be synchronized. - * - * @return the current value for the point to be plotted. - */ - public abstract int getValue(); - - /** - * Get the column name for the plotted point - * - * @return the plotted point's column name - */ - public String getColumnName() { - return name; - } - - /** - * Called after the website graphs have been updated - */ - public void reset() { - } - - @Override - public int hashCode() { - return getColumnName().hashCode(); - } - - @Override - public boolean equals(final Object object) { - if (!(object instanceof Plotter)) { - return false; - } +import org.bukkit.Bukkit; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.scheduler.BukkitTask; - final Plotter plotter = (Plotter) object; - return plotter.name.equals(name) && plotter.getValue() == getValue(); - } - } -} \ No newline at end of file +public class Metrics +{ + + /** + * The current revision number + */ + private final static int REVISION = 7; + + /** + * The base url of the metrics domain + */ + private static final String BASE_URL = "http://report.mcstats.org"; + + /** + * The url used to report a server's status + */ + private static final String REPORT_URL = "/plugin/%s"; + + /** + * Interval of time to ping (in minutes) + */ + private static final int PING_INTERVAL = 15; + + /** + * The plugin this metrics submits for + */ + private final Plugin plugin; + + /** + * All of the custom graphs to submit to metrics + */ + private final Set<Graph> graphs = Collections.synchronizedSet(new HashSet<Graph>()); + + /** + * The plugin configuration file + */ + private final YamlConfiguration configuration; + + /** + * The plugin configuration file + */ + private final File configurationFile; + + /** + * Unique server id + */ + private final String guid; + + /** + * Debug mode + */ + private final boolean debug; + + /** + * Lock for synchronization + */ + private final Object optOutLock = new Object(); + + /** + * The scheduled task + */ + private volatile BukkitTask task = null; + + public Metrics(final Plugin plugin) throws IOException + { + if (plugin == null) + { + throw new IllegalArgumentException("Plugin cannot be null"); + } + + this.plugin = plugin; + + // load the config + this.configurationFile = this.getConfigFile(); + this.configuration = YamlConfiguration.loadConfiguration(this.configurationFile); + + // add some defaults + this.configuration.addDefault("opt-out", false); + this.configuration.addDefault("guid", UUID.randomUUID().toString()); + this.configuration.addDefault("debug", false); + + // Do we need to create the file? + if (this.configuration.get("guid", null) == null) + { + this.configuration.options().header("http://mcstats.org").copyDefaults(true); + this.configuration.save(this.configurationFile); + } + + // Load the guid then + this.guid = this.configuration.getString("guid"); + this.debug = this.configuration.getBoolean("debug", false); + } + + /** + * Construct and create a Graph that can be used to separate specific plotters to their own graphs on the metrics website. Plotters can be added to the graph object returned. + * + * @param name + * The name of the graph + * @return Graph object created. Will never return NULL under normal circumstances unless bad parameters are given + */ + public Graph createGraph(final String name) + { + if (name == null) + { + throw new IllegalArgumentException("Graph name cannot be null"); + } + + // Construct the graph object + final Graph graph = new Graph(name); + + // Now we can add our graph + this.graphs.add(graph); + + // and return back + return graph; + } + + /** + * Add a Graph object to BukkitMetrics that represents data for the plugin that should be sent to the backend + * + * @param graph + * The name of the graph + */ + public void addGraph(final Graph graph) + { + if (graph == null) + { + throw new IllegalArgumentException("Graph cannot be null"); + } + + this.graphs.add(graph); + } + + /** + * Start measuring statistics. This will immediately create an async repeating task as the plugin and send the initial data to the metrics backend, and then after that it will post in increments + * of PING_INTERVAL * 1200 ticks. + * + * @return True if statistics measuring is running, otherwise false. + */ + public boolean start() + { + synchronized (this.optOutLock) + { + // Did we opt out? + if (this.isOptOut()) + { + return false; + } + + // Is metrics already running? + if (this.task != null) + { + return true; + } + + // Begin hitting the server with glorious data + this.task = this.plugin.getServer().getScheduler().runTaskTimerAsynchronously(this.plugin, new Runnable() { + + private boolean firstPost = true; + + @Override + public void run() + { + try + { + // This has to be synchronized or it can collide with the disable method. + synchronized (Metrics.this.optOutLock) + { + // Disable Task, if it is running and the server owner decided to opt-out + if (Metrics.this.isOptOut() && Metrics.this.task != null) + { + Metrics.this.task.cancel(); + Metrics.this.task = null; + // Tell all plotters to stop gathering information. + for (final Graph graph : Metrics.this.graphs) + { + graph.onOptOut(); + } + } + } + + // We use the inverse of firstPost because if it is the first time we are posting, + // it is not a interval ping, so it evaluates to FALSE + // Each time thereafter it will evaluate to TRUE, i.e PING! + Metrics.this.postPlugin(!this.firstPost); + + // After the first post we set firstPost to false + // Each post thereafter will be a ping + this.firstPost = false; + } + catch (final IOException e) + { + if (Metrics.this.debug) + { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); + } + } + } + }, 0, Metrics.PING_INTERVAL * 1200); + + return true; + } + } + + /** + * Has the server owner denied plugin metrics? + * + * @return true if metrics should be opted out of it + */ + public boolean isOptOut() + { + synchronized (this.optOutLock) + { + try + { + // Reload the metrics file + this.configuration.load(this.getConfigFile()); + } + catch (final IOException ex) + { + if (this.debug) + { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + } + return true; + } + catch (final InvalidConfigurationException ex) + { + if (this.debug) + { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + } + return true; + } + return this.configuration.getBoolean("opt-out", false); + } + } + + /** + * Enables metrics for the server by setting "opt-out" to false in the config file and starting the metrics task. + * + * @throws java.io.IOException + */ + public void enable() throws IOException + { + // This has to be synchronized or it can collide with the check in the task. + synchronized (this.optOutLock) + { + // Check if the server owner has already set opt-out, if not, set it. + if (this.isOptOut()) + { + this.configuration.set("opt-out", false); + this.configuration.save(this.configurationFile); + } + + // Enable Task, if it is not running + if (this.task == null) + { + this.start(); + } + } + } + + /** + * Disables metrics for the server by setting "opt-out" to true in the config file and canceling the metrics task. + * + * @throws java.io.IOException + */ + public void disable() throws IOException + { + // This has to be synchronized or it can collide with the check in the task. + synchronized (this.optOutLock) + { + // Check if the server owner has already set opt-out, if not, set it. + if (!this.isOptOut()) + { + this.configuration.set("opt-out", true); + this.configuration.save(this.configurationFile); + } + + // Disable Task, if it is running + if (this.task != null) + { + this.task.cancel(); + this.task = null; + } + } + } + + /** + * Gets the File object of the config file that should be used to store data such as the GUID and opt-out status + * + * @return the File object for the config file + */ + public File getConfigFile() + { + // I believe the easiest way to get the base folder (e.g craftbukkit set via -P) for plugins to use + // is to abuse the plugin object we already have + // plugin.getDataFolder() => base/plugins/PluginA/ + // pluginsFolder => base/plugins/ + // The base is not necessarily relative to the startup directory. + final File pluginsFolder = this.plugin.getDataFolder().getParentFile(); + + // return => base/plugins/PluginMetrics/config.yml + return new File(new File(pluginsFolder, "PluginMetrics"), "config.yml"); + } + + /** + * Generic method that posts a plugin to the metrics website + */ + private void postPlugin(final boolean isPing) throws IOException + { + // Server software specific section + final PluginDescriptionFile description = this.plugin.getDescription(); + final String pluginName = description.getName(); + final boolean onlineMode = Bukkit.getServer().getOnlineMode(); // TRUE if online mode is enabled + final String pluginVersion = description.getVersion(); + final String serverVersion = Bukkit.getVersion(); + final int playersOnline = Bukkit.getServer().getOnlinePlayers().size(); + + // END server software specific section -- all code below does not use any code outside of this class / Java + + // Construct the post data + final StringBuilder json = new StringBuilder(1024); + json.append('{'); + + // The plugin's description file containg all of the plugin data such as name, version, author, etc + Metrics.appendJSONPair(json, "guid", this.guid); + Metrics.appendJSONPair(json, "plugin_version", pluginVersion); + Metrics.appendJSONPair(json, "server_version", serverVersion); + Metrics.appendJSONPair(json, "players_online", Integer.toString(playersOnline)); + + // New data as of R6 + final String osname = System.getProperty("os.name"); + String osarch = System.getProperty("os.arch"); + final String osversion = System.getProperty("os.version"); + final String java_version = System.getProperty("java.version"); + final int coreCount = Runtime.getRuntime().availableProcessors(); + + // normalize os arch .. amd64 -> x86_64 + if (osarch.equals("amd64")) + { + osarch = "x86_64"; + } + + Metrics.appendJSONPair(json, "osname", osname); + Metrics.appendJSONPair(json, "osarch", osarch); + Metrics.appendJSONPair(json, "osversion", osversion); + Metrics.appendJSONPair(json, "cores", Integer.toString(coreCount)); + Metrics.appendJSONPair(json, "auth_mode", onlineMode ? "1" : "0"); + Metrics.appendJSONPair(json, "java_version", java_version); + + // If we're pinging, append it + if (isPing) + { + Metrics.appendJSONPair(json, "ping", "1"); + } + + if (this.graphs.size() > 0) + { + synchronized (this.graphs) + { + json.append(','); + json.append('"'); + json.append("graphs"); + json.append('"'); + json.append(':'); + json.append('{'); + + boolean firstGraph = true; + + final Iterator<Graph> iter = this.graphs.iterator(); + + while (iter.hasNext()) + { + final Graph graph = iter.next(); + + final StringBuilder graphJson = new StringBuilder(); + graphJson.append('{'); + + for (final Plotter plotter : graph.getPlotters()) + { + Metrics.appendJSONPair(graphJson, plotter.getColumnName(), Integer.toString(plotter.getValue())); + } + + graphJson.append('}'); + + if (!firstGraph) + { + json.append(','); + } + + json.append(Metrics.escapeJSON(graph.getName())); + json.append(':'); + json.append(graphJson); + + firstGraph = false; + } + + json.append('}'); + } + } + + // close json + json.append('}'); + + // Create the url + final URL url = new URL(Metrics.BASE_URL + String.format(Metrics.REPORT_URL, Metrics.urlEncode(pluginName))); + + // Connect to the website + URLConnection connection; + + // Mineshafter creates a socks proxy, so we can safely bypass it + // It does not reroute POST requests so we need to go around it + if (this.isMineshafterPresent()) + { + connection = url.openConnection(Proxy.NO_PROXY); + } + else + { + connection = url.openConnection(); + } + + final byte[] uncompressed = json.toString().getBytes(); + final byte[] compressed = Metrics.gzip(json.toString()); + + // Headers + connection.addRequestProperty("User-Agent", "MCStats/" + Metrics.REVISION); + connection.addRequestProperty("Content-Type", "application/json"); + connection.addRequestProperty("Content-Encoding", "gzip"); + connection.addRequestProperty("Content-Length", Integer.toString(compressed.length)); + connection.addRequestProperty("Accept", "application/json"); + connection.addRequestProperty("Connection", "close"); + + connection.setDoOutput(true); + + if (this.debug) + { + System.out.println("[Metrics] Prepared request for " + pluginName + " uncompressed=" + uncompressed.length + " compressed=" + compressed.length); + } + + // Write the data + final OutputStream os = connection.getOutputStream(); + os.write(compressed); + os.flush(); + + // Now read the response + final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String response = reader.readLine(); + + // close resources + os.close(); + reader.close(); + + if (response == null || response.startsWith("ERR") || response.startsWith("7")) + { + if (response == null) + { + response = "null"; + } + else if (response.startsWith("7")) + { + response = response.substring(response.startsWith("7,") ? 2 : 1); + } + + throw new IOException(response); + } + else + { + // Is this the first update this hour? + if (response.equals("1") || response.contains("This is your first update this hour")) + { + synchronized (this.graphs) + { + final Iterator<Graph> iter = this.graphs.iterator(); + + while (iter.hasNext()) + { + final Graph graph = iter.next(); + + for (final Plotter plotter : graph.getPlotters()) + { + plotter.reset(); + } + } + } + } + } + } + + /** + * GZip compress a string of bytes + * + * @param input + * @return + */ + public static byte[] gzip(final String input) + { + final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + GZIPOutputStream gzos = null; + + try + { + gzos = new GZIPOutputStream(baos); + gzos.write(input.getBytes("UTF-8")); + } + catch (final IOException e) + { + e.printStackTrace(); + } + finally + { + if (gzos != null) + { + try + { + gzos.close(); + } + catch (final IOException ignore) + { + // silently ignore + } + } + } + + return baos.toByteArray(); + } + + /** + * Check if mineshafter is present. If it is, we need to bypass it to send POST requests + * + * @return true if mineshafter is installed on the server + */ + private boolean isMineshafterPresent() + { + try + { + Class.forName("mineshafter.MineServer"); + return true; + } + catch (final Exception e) + { + return false; + } + } + + /** + * Appends a json encoded key/value pair to the given string builder. + * + * @param json + * @param key + * @param value + * @throws UnsupportedEncodingException + */ + private static void appendJSONPair(final StringBuilder json, final String key, final String value) throws UnsupportedEncodingException + { + boolean isValueNumeric = false; + + try + { + if (value.equals("0") || !value.endsWith("0")) + { + Double.parseDouble(value); + isValueNumeric = true; + } + } + catch (final NumberFormatException e) + { + isValueNumeric = false; + } + + if (json.charAt(json.length() - 1) != '{') + { + json.append(','); + } + + json.append(Metrics.escapeJSON(key)); + json.append(':'); + + if (isValueNumeric) + { + json.append(value); + } + else + { + json.append(Metrics.escapeJSON(value)); + } + } + + /** + * Escape a string to create a valid JSON string + * + * @param text + * @return + */ + private static String escapeJSON(final String text) + { + final StringBuilder builder = new StringBuilder(); + + builder.append('"'); + for (int index = 0; index < text.length(); index++) + { + final char chr = text.charAt(index); + + switch (chr) + { + case '"': + case '\\': + builder.append('\\'); + builder.append(chr); + break; + case '\b': + builder.append("\\b"); + break; + case '\t': + builder.append("\\t"); + break; + case '\n': + builder.append("\\n"); + break; + case '\r': + builder.append("\\r"); + break; + default: + if (chr < ' ') + { + final String t = "000" + Integer.toHexString(chr); + builder.append("\\u" + t.substring(t.length() - 4)); + } + else + { + builder.append(chr); + } + break; + } + } + builder.append('"'); + + return builder.toString(); + } + + /** + * Encode text as UTF-8 + * + * @param text + * the text to encode + * @return the encoded text, as UTF-8 + */ + private static String urlEncode(final String text) throws UnsupportedEncodingException + { + return URLEncoder.encode(text, "UTF-8"); + } + + /** + * Represents a custom graph on the website + */ + public static class Graph + { + + /** + * The graph's name, alphanumeric and spaces only :) If it does not comply to the above when submitted, it is rejected + */ + private final String name; + + /** + * The set of plotters that are contained within this graph + */ + private final Set<Plotter> plotters = new LinkedHashSet<>(); + + private Graph(final String name) + { + this.name = name; + } + + /** + * Gets the graph's name + * + * @return the Graph's name + */ + public String getName() + { + return this.name; + } + + /** + * Add a plotter to the graph, which will be used to plot entries + * + * @param plotter + * the plotter to add to the graph + */ + public void addPlotter(final Plotter plotter) + { + this.plotters.add(plotter); + } + + /** + * Remove a plotter from the graph + * + * @param plotter + * the plotter to remove from the graph + */ + public void removePlotter(final Plotter plotter) + { + this.plotters.remove(plotter); + } + + /** + * Gets an <b>unmodifiable</b> set of the plotter objects in the graph + * + * @return an unmodifiable {@link java.util.Set} of the plotter objects + */ + public Set<Plotter> getPlotters() + { + return Collections.unmodifiableSet(this.plotters); + } + + @Override + public int hashCode() + { + return this.name.hashCode(); + } + + @Override + public boolean equals(final Object object) + { + if (!(object instanceof Graph)) + { + return false; + } + + final Graph graph = (Graph) object; + return graph.name.equals(this.name); + } + + /** + * Called when the server owner decides to opt-out of BukkitMetrics while the server is running. + */ + protected void onOptOut() + { + // silently ignore + } + } + + /** + * Interface used to collect custom data for a plugin + */ + public static abstract class Plotter + { + + /** + * The plot's name + */ + private final String name; + + /** + * Construct a plotter with the default plot name + */ + public Plotter() + { + this("Default"); + } + + /** + * Construct a plotter with a specific plot name + * + * @param name + * the name of the plotter to use, which will show up on the website + */ + public Plotter(final String name) + { + this.name = name; + } + + /** + * Get the current value for the plotted point. Since this function defers to an external function it may or may not return immediately thus cannot be guaranteed to be thread friendly or safe. + * This function can be called from any thread so care should be taken when accessing resources that need to be synchronized. + * + * @return the current value for the point to be plotted. + */ + public abstract int getValue(); + + /** + * Get the column name for the plotted point + * + * @return the plotted point's column name + */ + public String getColumnName() + { + return this.name; + } + + /** + * Called after the website graphs have been updated + */ + public void reset() + { + // silently ignore + } + + @Override + public int hashCode() + { + return this.getColumnName().hashCode(); + } + + @Override + public boolean equals(final Object object) + { + if (!(object instanceof Plotter)) + { + return false; + } + + final Plotter plotter = (Plotter) object; + return plotter.name.equals(this.name) && plotter.getValue() == this.getValue(); + } + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java index ce8cdb1c..7184bd1a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.lang.reflect.Constructor; @@ -5,205 +19,218 @@ import java.lang.reflect.Method; import org.bukkit.Location; -import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import com.comze_instancelabs.minigamesapi.MinigamesAPI; //modified by instancelabs -public enum ParticleEffectNew { - /** - * Each ParticleEffect has the packet name, and the environment in which it will be successfully displayed. - */ - HUGE_EXPLOSION("hugeexplosion", Environment.ANY), // works in any block type - LARGE_EXPLODE("largeexplode", Environment.ANY), FIREWORK_SPARK("fireworksSpark", Environment.ANY), TOWN_AURA("townaura", Environment.ANY), CRIT("crit", Environment.ANY), MAGIC_CRIT("magicCrit", Environment.ANY), SMOKE("smoke", Environment.ANY), MOB_SPELL("mobSpell", Environment.ANY), MOB_SPELL_AMBIENT("mobSpellAmbient", Environment.ANY), SPELL("spell", Environment.ANY), INSTANT_SPELL("instantSpell", Environment.ANY), WITCH_MAGIC("witchMagic", Environment.ANY), NOTE("note", Environment.ANY), PORTAL("portal", Environment.ANY), ENCHANTMENT_TABLE( - "enchantmenttable", Environment.ANY), EXPLODE("explode", Environment.ANY), FLAME("flame", Environment.ANY), LAVA("lava", Environment.ANY), FOOTSTEP("footstep", Environment.ANY), LARGE_SMOKE("largesmoke", Environment.ANY), CLOUD("cloud", Environment.ANY), RED_DUST("reddust", Environment.ANY), SNOWBALL_POOF("snowballpoof", Environment.ANY), DRIP_WATER("dripWater", Environment.ANY), DRIP_LAVA("dripLava", Environment.ANY), SNOW_SHOVEL("snowshovel", Environment.ANY), SLIME("slime", Environment.ANY), HEART("heart", Environment.ANY), ANGRY_VILLAGER( - "angryVillager", Environment.ANY), HAPPY_VILLAGER("happerVillager", Environment.ANY), - // ICONCRACK is not reliable and should not be added to the API, across different sized texture packs it displays a different item) - ICONCRACK("iconcrack_%id%", Environment.UKNOWN), //Guessing it is any, but didn't test - TILECRACK("tilecrack_%id%_%data%", Environment.UKNOWN), // Guessing it is any, but didn't test - SPLASH("splash", Environment.AIR), // only works in air - BUBBLE("bubble", Environment.IN_WATER), // only works in water - SUSPEND("suspend", Environment.UKNOWN), // Can't figure out what this does - DEPTH_SUSPEND("depthSuspend", Environment.UKNOWN); // Can't figure out what this does - - private final String packetName; - private final Environment environment; - - private int xStack, yStack, zStack; - private int _id = 1; - private int _data = 0; - - /** - * Each particle effect has a packet name, and an environment for developers - * - * @param packetName - * @param environment - */ - ParticleEffectNew(String packetName, Environment environment) { - this.packetName = packetName; - this.environment = environment; - } - - /** - * Setting the stack in the x,y,z axis makes another emitter in both directions on each block for length of the stack - * - * @param stackXAxis - * @param stackYAxis - * @param stackZAxis - */ - public void setStack(int stackXAxis, int stackYAxis, int stackZAxis) { - xStack = stackXAxis; - yStack = stackYAxis; - zStack = stackZAxis; - } - - /** - * This is used for the icon/tile crack and sets the id - * - * @param id - */ - public void setId(int id) { - _id = id; - } - - /** - * This is used for tile crack and sets the block data - * - * @param data - */ - public void setData(int data) { - _data = data; - } - - /** - * This is used to send a particle effect to only one player, no one else will see this. - * - * @param player - * @param count - * @param speed - */ - /* - * public void animateToPlayer(Player player, int count, float speed) { if (player == null) return; - * - * CraftPlayer craftPlayer = (CraftPlayer) player; - * - * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(player.getLocation(), xStack, yStack, zStack, speed, count)); } catch - * (Exception e) { e.printStackTrace(); } } - */ - - // added - /** - * This is used to send a particle effect to only one player at a given location, no one else will see this. - * - * @param player - * @param count - * @param speed - */ - /* - * public void animateToPlayer(Player player, Location loc, int count, float speed) { if (player == null) return; - * - * CraftPlayer craftPlayer = (CraftPlayer) player; - * - * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(loc, xStack, yStack, zStack, speed, count)); } catch (Exception e) { - * e.printStackTrace(); } } - */ - - /** - * This is used to send a particle effect to a location and all players near it will see it - * - * @param location - * @param count - * @param speed - */ - /* - * public void animateAtLocation(Location location, int count, float speed) { if (location == null) return; - * - * try { for (Entity entity : location.getWorld().getEntities()) { if (entity instanceof CraftPlayer) { if - * (entity.getLocation().distance(location) < 333) { // Not sure what max render distance is for particles, so made up 333 CraftPlayer craftPlayer - * = (CraftPlayer) entity; craftPlayer.getHandle().playerConnection.sendPacket(getParticle(location, xStack, yStack, zStack, speed, count)); } } } - * } catch (Exception e) { e.printStackTrace(); } } - */ - - /** - * Returns the environment that the particle must be in for it to be seen - * - * @return - */ - public Environment getEnvironment() { - return environment; - } - - /** - * Enum that depicts in what environments a particle effect will be seen - */ - public enum Environment { - ANY, AIR, IN_WATER, UKNOWN; - } - - /** - * Returns the actual packet that is sent to a player This will replace id and data variables for icon/tile crack as well - * - * @param location - * @param offsetX - * @param offsetY - * @param offsetZ - * @param speed - * @param count - * @return - * @throws Exception - */ - /* - * private PacketPlayOutWorldParticles getParticle(Location location, float offsetX, float offsetY, float offsetZ, float speed, int count) throws - * Exception { PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(); setValue(packet, "a", packetName.replace("%id%", "" + - * _id).replace("%data%", "" + _data)); setValue(packet, "b", (float) location.getX()); setValue(packet, "c", (float) location.getY()); - * setValue(packet, "d", (float) location.getZ()); setValue(packet, "e", offsetX); setValue(packet, "f", offsetY); setValue(packet, "g", offsetZ); - * setValue(packet, "h", speed); setValue(packet, "i", count); return packet; } - */ - - /** - * Reflection to set the values of the packet - * - * @param instance - * @param fieldName - * @param value - * @throws Exception - */ - private static void setValue(Object instance, String fieldName, Object value) throws Exception { - Field field = instance.getClass().getDeclaredField(fieldName); - field.setAccessible(true); - field.set(instance, value); - } - - public void animateReflected(Player p, Location location, float speed, int count) { - try { - Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - - String packetname = "PacketPlayOutWorldParticles"; - if (MinigamesAPI.getAPI().internalServerVersion.equalsIgnoreCase("v1_6_R2")) { - packetname = "Packet63WorldParticles"; - } - - Constructor packetConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + "." + packetname).getConstructor(); - - Object packet = packetConstr.newInstance(); - setValue(packet, "a", packetName.replace("%id%", "" + _id).replace("%data%", "" + _data)); - setValue(packet, "b", (float) location.getX()); - setValue(packet, "c", (float) location.getY()); - setValue(packet, "d", (float) location.getZ()); - setValue(packet, "e", 0F); - setValue(packet, "f", 0F); - setValue(packet, "g", 0F); - setValue(packet, "h", speed); - setValue(packet, "i", count); - - sendPacket.invoke(playerConnection.get(getHandle.invoke(p)), packet); - } catch (Exception e) { - e.printStackTrace(); - } - } -} \ No newline at end of file +public enum ParticleEffectNew +{ + /** + * Each ParticleEffect has the packet name, and the environment in which it will be successfully displayed. + */ + HUGE_EXPLOSION("hugeexplosion", Environment.ANY), // works in any block type + LARGE_EXPLODE("largeexplode", Environment.ANY), FIREWORK_SPARK("fireworksSpark", Environment.ANY), TOWN_AURA("townaura", Environment.ANY), CRIT("crit", Environment.ANY), MAGIC_CRIT("magicCrit", + Environment.ANY), SMOKE("smoke", Environment.ANY), MOB_SPELL("mobSpell", Environment.ANY), MOB_SPELL_AMBIENT("mobSpellAmbient", Environment.ANY), SPELL("spell", + Environment.ANY), INSTANT_SPELL("instantSpell", Environment.ANY), WITCH_MAGIC("witchMagic", Environment.ANY), NOTE("note", Environment.ANY), PORTAL("portal", + Environment.ANY), ENCHANTMENT_TABLE("enchantmenttable", Environment.ANY), EXPLODE("explode", Environment.ANY), FLAME("flame", Environment.ANY), LAVA("lava", + Environment.ANY), FOOTSTEP("footstep", Environment.ANY), LARGE_SMOKE("largesmoke", Environment.ANY), CLOUD("cloud", Environment.ANY), RED_DUST("reddust", + Environment.ANY), SNOWBALL_POOF("snowballpoof", Environment.ANY), DRIP_WATER("dripWater", Environment.ANY), DRIP_LAVA("dripLava", + Environment.ANY), SNOW_SHOVEL("snowshovel", Environment.ANY), SLIME("slime", Environment.ANY), HEART("heart", + Environment.ANY), ANGRY_VILLAGER("angryVillager", Environment.ANY), HAPPY_VILLAGER("happerVillager", Environment.ANY), + // ICONCRACK is not reliable and should not be added to the API, across different sized texture packs it displays a different item) + ICONCRACK("iconcrack_%id%", Environment.UKNOWN), // Guessing it is any, but didn't test + TILECRACK("tilecrack_%id%_%data%", Environment.UKNOWN), // Guessing it is any, but didn't test + SPLASH("splash", Environment.AIR), // only works in air + BUBBLE("bubble", Environment.IN_WATER), // only works in water + SUSPEND("suspend", Environment.UKNOWN), // Can't figure out what this does + DEPTH_SUSPEND("depthSuspend", Environment.UKNOWN); // Can't figure out what this does + + private final String packetName; + private final Environment environment; + + private int xStack, yStack, zStack; + private int _id = 1; + private int _data = 0; + + /** + * Each particle effect has a packet name, and an environment for developers + * + * @param packetName + * @param environment + */ + ParticleEffectNew(final String packetName, final Environment environment) + { + this.packetName = packetName; + this.environment = environment; + } + + /** + * Setting the stack in the x,y,z axis makes another emitter in both directions on each block for length of the stack + * + * @param stackXAxis + * @param stackYAxis + * @param stackZAxis + */ + public void setStack(final int stackXAxis, final int stackYAxis, final int stackZAxis) + { + this.xStack = stackXAxis; + this.yStack = stackYAxis; + this.zStack = stackZAxis; + } + + /** + * This is used for the icon/tile crack and sets the id + * + * @param id + */ + public void setId(final int id) + { + this._id = id; + } + + /** + * This is used for tile crack and sets the block data + * + * @param data + */ + public void setData(final int data) + { + this._data = data; + } + + /** + * This is used to send a particle effect to only one player, no one else will see this. + * + * @param player + * @param count + * @param speed + */ + /* + * public void animateToPlayer(Player player, int count, float speed) { if (player == null) return; + * + * CraftPlayer craftPlayer = (CraftPlayer) player; + * + * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(player.getLocation(), xStack, yStack, zStack, speed, count)); } catch (Exception e) { e.printStackTrace(); } } + */ + + // added + /** + * This is used to send a particle effect to only one player at a given location, no one else will see this. + * + * @param player + * @param count + * @param speed + */ + /* + * public void animateToPlayer(Player player, Location loc, int count, float speed) { if (player == null) return; + * + * CraftPlayer craftPlayer = (CraftPlayer) player; + * + * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(loc, xStack, yStack, zStack, speed, count)); } catch (Exception e) { e.printStackTrace(); } } + */ + + /** + * This is used to send a particle effect to a location and all players near it will see it + * + * @param location + * @param count + * @param speed + */ + /* + * public void animateAtLocation(Location location, int count, float speed) { if (location == null) return; + * + * try { for (Entity entity : location.getWorld().getEntities()) { if (entity instanceof CraftPlayer) { if (entity.getLocation().distance(location) < 333) { // Not sure what max render distance is + * for particles, so made up 333 CraftPlayer craftPlayer = (CraftPlayer) entity; craftPlayer.getHandle().playerConnection.sendPacket(getParticle(location, xStack, yStack, zStack, speed, count)); } + * } } } catch (Exception e) { e.printStackTrace(); } } + */ + + /** + * Returns the environment that the particle must be in for it to be seen + * + * @return + */ + public Environment getEnvironment() + { + return this.environment; + } + + /** + * Enum that depicts in what environments a particle effect will be seen + */ + public enum Environment + { + ANY, AIR, IN_WATER, UKNOWN; + } + + /** + * Returns the actual packet that is sent to a player This will replace id and data variables for icon/tile crack as well + * + * @param location + * @param offsetX + * @param offsetY + * @param offsetZ + * @param speed + * @param count + * @return + * @throws Exception + */ + /* + * private PacketPlayOutWorldParticles getParticle(Location location, float offsetX, float offsetY, float offsetZ, float speed, int count) throws Exception { PacketPlayOutWorldParticles packet = + * new PacketPlayOutWorldParticles(); setValue(packet, "a", packetName.replace("%id%", "" + _id).replace("%data%", "" + _data)); setValue(packet, "b", (float) location.getX()); setValue(packet, + * "c", (float) location.getY()); setValue(packet, "d", (float) location.getZ()); setValue(packet, "e", offsetX); setValue(packet, "f", offsetY); setValue(packet, "g", offsetZ); setValue(packet, + * "h", speed); setValue(packet, "i", count); return packet; } + */ + + /** + * Reflection to set the values of the packet + * + * @param instance + * @param fieldName + * @param value + * @throws Exception + */ + private static void setValue(final Object instance, final String fieldName, final Object value) throws Exception + { + final Field field = instance.getClass().getDeclaredField(fieldName); + field.setAccessible(true); + field.set(instance, value); + } + + public void animateReflected(final Player p, final Location location, final float speed, final int count) + { + try + { + final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); + final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + + String packetname = "PacketPlayOutWorldParticles"; + if (MinigamesAPI.getAPI().internalServerVersion.equalsIgnoreCase("v1_6_R2")) + { + packetname = "Packet63WorldParticles"; + } + + final Constructor packetConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + "." + packetname).getConstructor(); + + final Object packet = packetConstr.newInstance(); + ParticleEffectNew.setValue(packet, "a", this.packetName.replace("%id%", "" + this._id).replace("%data%", "" + this._data)); + ParticleEffectNew.setValue(packet, "b", (float) location.getX()); + ParticleEffectNew.setValue(packet, "c", (float) location.getY()); + ParticleEffectNew.setValue(packet, "d", (float) location.getZ()); + ParticleEffectNew.setValue(packet, "e", 0F); + ParticleEffectNew.setValue(packet, "f", 0F); + ParticleEffectNew.setValue(packet, "g", 0F); + ParticleEffectNew.setValue(packet, "h", speed); + ParticleEffectNew.setValue(packet, "i", count); + + sendPacket.invoke(playerConnection.get(getHandle.invoke(p)), packet); + } + catch (final Exception e) + { + e.printStackTrace(); + } + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ShopItem.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ShopItem.java index c7839242..6a870c2d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ShopItem.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ShopItem.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.util.ArrayList; @@ -7,14 +21,17 @@ import com.comze_instancelabs.minigamesapi.PluginInstance; -public class ShopItem extends AClass { - - public ShopItem(JavaPlugin plugin, String name, String internalname, boolean enabled, ArrayList<ItemStack> items, ItemStack icon) { - super(plugin, name, internalname, enabled, items, icon); - } - - public boolean usesItems(PluginInstance pli) { - return pli.getShopConfig().getConfig().getBoolean("config.shop_items." + this.getInternalName() + ".uses_items"); - } - +public class ShopItem extends AClass +{ + + public ShopItem(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items, final ItemStack icon) + { + super(plugin, name, internalname, enabled, items, icon); + } + + public boolean usesItems(final PluginInstance pli) + { + return pli.getShopConfig().getConfig().getBoolean("config.shop_items." + this.getInternalName() + ".uses_items"); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java index 548e15a8..5df8a96b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import java.io.Serializable; @@ -24,235 +38,288 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.Potion; -public class SmartArenaBlock implements Serializable { - private static final long serialVersionUID = -1894759842709524780L; - - private int x, y, z; - private String world; - private Material m; - private byte data; - private ArrayList<Material> item_mats; - private ArrayList<Byte> item_data; - private ArrayList<Integer> item_amounts; - private ArrayList<String> item_displaynames; - private HashMap<Integer, ArrayList<Integer>> item_enchid; - private HashMap<Integer, ArrayList<Integer>> item_enchid_lv; - private HashMap<Integer, ArrayList<Integer>> enchbook_id; - private HashMap<Integer, ArrayList<Integer>> enchbook_id_lv; - private ArrayList<Short> item_durability; - private ArrayList<Integer> item_pos; - - // Sign lines - private ArrayList<String> sign_lines = new ArrayList<String>(); - - // Sign lines - private String skull_owner = ""; - private BlockFace skull_rotation = BlockFace.SELF; - - // optional stuff - private ArrayList<Boolean> item_splash; - - private ItemStack[] inv; - - boolean isDoubleChest = false; - DoubleChest doubleChest = null; - - public SmartArenaBlock(Block b, boolean c, boolean s) { - m = b.getType(); - x = b.getX(); - y = b.getY(); - z = b.getZ(); - data = b.getData(); - world = b.getWorld().getName(); - if (m.equals(Material.SKULL)) { - if (b.getState() instanceof Skull) { - skull_owner = ((Skull) b.getState()).getOwner(); - skull_rotation = ((Skull) b.getState()).getRotation(); - } - } - if (m.equals(Material.DROPPER)) { - if (b.getState() instanceof Dropper) { - setInventory(((Dropper) b.getState()).getInventory()); - } - } - if (m.equals(Material.DISPENSER)) { - if (b.getState() instanceof Dispenser) { - setInventory(((Dispenser) b.getState()).getInventory()); - } - } - if (s) { - Sign sign = (Sign) b.getState(); - if (sign != null) { - sign_lines.addAll(Arrays.asList(sign.getLines())); - } - } else if (c) { - Chest chest = (Chest) b.getState(); - setInventory(chest.getInventory()); - } - } - - public SmartArenaBlock(Location l, Material m, byte data) { - this.m = m; - x = l.getBlockX(); - y = l.getBlockY(); - z = l.getBlockZ(); - world = l.getWorld().getName(); - this.data = data; - } - - public Block getBlock() { - World w = Bukkit.getWorld(world); - if (w == null) - return null; - Block b = w.getBlockAt(x, y, z); - return b; - } - - public Material getMaterial() { - return m; - } - - public Byte getData() { - return data; - } - - public void setData(byte data) { - this.data = data; - } - - public ItemStack[] getInventory() { - return inv; - } - - public HashMap<Integer, ItemStack> getNewInventory() { - HashMap<Integer, ItemStack> ret = new HashMap<Integer, ItemStack>(); - for (int i = 0; i < item_mats.size(); i++) { - ItemStack item = new ItemStack(item_mats.get(i), item_amounts.get(i), item_data.get(i)); - item.setDurability(item_durability.get(i)); - ItemMeta im = item.getItemMeta(); - im.setDisplayName(item_displaynames.get(i)); - - if (item_enchid.size() > i && item_enchid.get(i) != null) { - int c = 0; - for (Integer ench : item_enchid.get(i)) { - im.addEnchant(Enchantment.getById(ench), item_enchid_lv.get(i).get(c), true); - c++; - } - } - - item.setItemMeta(im); - if (item.getType() == Material.POTION && item.getDurability() > 0) { - Potion potion = Potion.fromDamage(item.getDurability() & 0x3F); - if (item_splash.size() > i) { - potion.setSplash(item_splash.get(i)); - } - } else if (item.getType() == Material.ENCHANTED_BOOK) { - ItemStack neww = new ItemStack(Material.ENCHANTED_BOOK); - EnchantmentStorageMeta meta = (EnchantmentStorageMeta) neww.getItemMeta(); - int c_ = 0; - if (enchbook_id.size() > i) { - for (Integer ench : enchbook_id.get(i)) { - try { - meta.addStoredEnchant(Enchantment.getById(ench), enchbook_id_lv.get(i).get(c_), true); - } catch (Exception e) { - System.out.println("Failed applying enchantment to enchantment book at reset."); - } - c_++; - } - } - neww.setItemMeta(meta); - item = neww; - } - int pos = i; - if (i < item_pos.size()) { - pos = item_pos.get(i); - } - ret.put(pos, item); - } - return ret; - } - - public void setInventory(Inventory inventory) { - inv = inventory.getContents(); - item_mats = new ArrayList<Material>(); - item_data = new ArrayList<Byte>(); - item_amounts = new ArrayList<Integer>(); - item_displaynames = new ArrayList<String>(); - item_splash = new ArrayList<Boolean>(); - item_pos = new ArrayList<Integer>(); - item_enchid = new HashMap<Integer, ArrayList<Integer>>(); - item_enchid_lv = new HashMap<Integer, ArrayList<Integer>>(); - enchbook_id = new HashMap<Integer, ArrayList<Integer>>(); - enchbook_id_lv = new HashMap<Integer, ArrayList<Integer>>(); - item_durability = new ArrayList<Short>(); - - if (inventory.getHolder() instanceof DoubleChest) { - isDoubleChest = true; - doubleChest = (DoubleChest) inventory.getHolder(); - } - - int pos = 0; - for (ItemStack i : inventory.getContents()) { - if (i != null) { - item_mats.add(i.getType()); - item_data.add(i.getData().getData()); - item_amounts.add(i.getAmount()); - item_displaynames.add(i.getItemMeta().getDisplayName()); - item_durability.add(i.getDurability()); - if (i.getType() == Material.POTION && i.getDurability() > 0) { - Potion potion = Potion.fromDamage(i.getDurability() & 0x3F); - item_splash.add(potion.isSplash()); - } else if (i.getType() == Material.ENCHANTED_BOOK) { - EnchantmentStorageMeta meta = (EnchantmentStorageMeta) i.getItemMeta(); - ArrayList<Integer> tempid = new ArrayList<Integer>(); - ArrayList<Integer> templv = new ArrayList<Integer>(); - for (Enchantment ench : meta.getStoredEnchants().keySet()) { - tempid.add(ench.getId()); - templv.add(meta.getStoredEnchants().get(ench)); - } - enchbook_id.put(pos, tempid); - enchbook_id_lv.put(pos, templv); - item_splash.add(false); - } else { - item_splash.add(false); - } - item_pos.add(pos); - if (i.getItemMeta().getEnchants().size() > 0) { - ArrayList<Integer> tempid = new ArrayList<Integer>(); - ArrayList<Integer> templv = new ArrayList<Integer>(); - for (Enchantment ench : i.getItemMeta().getEnchants().keySet()) { - tempid.add(ench.getId()); - templv.add(i.getItemMeta().getEnchants().get(ench)); - } - item_enchid.put(pos, tempid); - item_enchid_lv.put(pos, templv); - } else { - item_enchid.put(pos, new ArrayList<Integer>()); - item_enchid_lv.put(pos, new ArrayList<Integer>()); - } - } - pos++; - } - } - - public ArrayList<String> getSignLines() { - return this.sign_lines; - } - - public boolean isDoubleChest() { - return isDoubleChest; - } - - public DoubleChest getDoubleChest() { - return doubleChest; - } - - public String getSkullOwner() { - return skull_owner; - } - - public BlockFace getSkullORotation() { - return skull_rotation; - } - -} \ No newline at end of file +public class SmartArenaBlock implements Serializable +{ + private static final long serialVersionUID = -1894759842709524780L; + + private final int x, y, z; + private final String world; + private final Material m; + private byte data; + private ArrayList<Material> item_mats; + private ArrayList<Byte> item_data; + private ArrayList<Integer> item_amounts; + private ArrayList<String> item_displaynames; + private HashMap<Integer, ArrayList<Integer>> item_enchid; + private HashMap<Integer, ArrayList<Integer>> item_enchid_lv; + private HashMap<Integer, ArrayList<Integer>> enchbook_id; + private HashMap<Integer, ArrayList<Integer>> enchbook_id_lv; + private ArrayList<Short> item_durability; + private ArrayList<Integer> item_pos; + + // Sign lines + private final ArrayList<String> sign_lines = new ArrayList<>(); + + // Sign lines + private String skull_owner = ""; + private BlockFace skull_rotation = BlockFace.SELF; + + // optional stuff + private ArrayList<Boolean> item_splash; + + private ItemStack[] inv; + + boolean isDoubleChest = false; + DoubleChest doubleChest = null; + + public SmartArenaBlock(final Block b, final boolean c, final boolean s) + { + this.m = b.getType(); + this.x = b.getX(); + this.y = b.getY(); + this.z = b.getZ(); + this.data = b.getData(); + this.world = b.getWorld().getName(); + if (this.m.equals(Material.SKULL)) + { + if (b.getState() instanceof Skull) + { + this.skull_owner = ((Skull) b.getState()).getOwner(); + this.skull_rotation = ((Skull) b.getState()).getRotation(); + } + } + if (this.m.equals(Material.DROPPER)) + { + if (b.getState() instanceof Dropper) + { + this.setInventory(((Dropper) b.getState()).getInventory()); + } + } + if (this.m.equals(Material.DISPENSER)) + { + if (b.getState() instanceof Dispenser) + { + this.setInventory(((Dispenser) b.getState()).getInventory()); + } + } + if (s) + { + final Sign sign = (Sign) b.getState(); + if (sign != null) + { + this.sign_lines.addAll(Arrays.asList(sign.getLines())); + } + } + else if (c) + { + final Chest chest = (Chest) b.getState(); + this.setInventory(chest.getInventory()); + } + } + + public SmartArenaBlock(final Location l, final Material m, final byte data) + { + this.m = m; + this.x = l.getBlockX(); + this.y = l.getBlockY(); + this.z = l.getBlockZ(); + this.world = l.getWorld().getName(); + this.data = data; + } + + public Block getBlock() + { + final World w = Bukkit.getWorld(this.world); + if (w == null) + { + return null; + } + final Block b = w.getBlockAt(this.x, this.y, this.z); + return b; + } + + public Material getMaterial() + { + return this.m; + } + + public Byte getData() + { + return this.data; + } + + public void setData(final byte data) + { + this.data = data; + } + + public ItemStack[] getInventory() + { + return this.inv; + } + + public HashMap<Integer, ItemStack> getNewInventory() + { + final HashMap<Integer, ItemStack> ret = new HashMap<>(); + for (int i = 0; i < this.item_mats.size(); i++) + { + ItemStack item = new ItemStack(this.item_mats.get(i), this.item_amounts.get(i), this.item_data.get(i)); + item.setDurability(this.item_durability.get(i)); + final ItemMeta im = item.getItemMeta(); + im.setDisplayName(this.item_displaynames.get(i)); + + if (this.item_enchid.size() > i && this.item_enchid.get(i) != null) + { + int c = 0; + for (final Integer ench : this.item_enchid.get(i)) + { + im.addEnchant(Enchantment.getById(ench), this.item_enchid_lv.get(i).get(c), true); + c++; + } + } + + item.setItemMeta(im); + if (item.getType() == Material.POTION && item.getDurability() > 0) + { + final Potion potion = Potion.fromDamage(item.getDurability() & 0x3F); + if (this.item_splash.size() > i) + { + potion.setSplash(this.item_splash.get(i)); + } + } + else if (item.getType() == Material.ENCHANTED_BOOK) + { + final ItemStack neww = new ItemStack(Material.ENCHANTED_BOOK); + final EnchantmentStorageMeta meta = (EnchantmentStorageMeta) neww.getItemMeta(); + int c_ = 0; + if (this.enchbook_id.size() > i) + { + for (final Integer ench : this.enchbook_id.get(i)) + { + try + { + meta.addStoredEnchant(Enchantment.getById(ench), this.enchbook_id_lv.get(i).get(c_), true); + } + catch (final Exception e) + { + System.out.println("Failed applying enchantment to enchantment book at reset."); + } + c_++; + } + } + neww.setItemMeta(meta); + item = neww; + } + int pos = i; + if (i < this.item_pos.size()) + { + pos = this.item_pos.get(i); + } + ret.put(pos, item); + } + return ret; + } + + public void setInventory(final Inventory inventory) + { + this.inv = inventory.getContents(); + this.item_mats = new ArrayList<>(); + this.item_data = new ArrayList<>(); + this.item_amounts = new ArrayList<>(); + this.item_displaynames = new ArrayList<>(); + this.item_splash = new ArrayList<>(); + this.item_pos = new ArrayList<>(); + this.item_enchid = new HashMap<>(); + this.item_enchid_lv = new HashMap<>(); + this.enchbook_id = new HashMap<>(); + this.enchbook_id_lv = new HashMap<>(); + this.item_durability = new ArrayList<>(); + + if (inventory.getHolder() instanceof DoubleChest) + { + this.isDoubleChest = true; + this.doubleChest = (DoubleChest) inventory.getHolder(); + } + + int pos = 0; + for (final ItemStack i : inventory.getContents()) + { + if (i != null) + { + this.item_mats.add(i.getType()); + this.item_data.add(i.getData().getData()); + this.item_amounts.add(i.getAmount()); + this.item_displaynames.add(i.getItemMeta().getDisplayName()); + this.item_durability.add(i.getDurability()); + if (i.getType() == Material.POTION && i.getDurability() > 0) + { + final Potion potion = Potion.fromDamage(i.getDurability() & 0x3F); + this.item_splash.add(potion.isSplash()); + } + else if (i.getType() == Material.ENCHANTED_BOOK) + { + final EnchantmentStorageMeta meta = (EnchantmentStorageMeta) i.getItemMeta(); + final ArrayList<Integer> tempid = new ArrayList<>(); + final ArrayList<Integer> templv = new ArrayList<>(); + for (final Enchantment ench : meta.getStoredEnchants().keySet()) + { + tempid.add(ench.getId()); + templv.add(meta.getStoredEnchants().get(ench)); + } + this.enchbook_id.put(pos, tempid); + this.enchbook_id_lv.put(pos, templv); + this.item_splash.add(false); + } + else + { + this.item_splash.add(false); + } + this.item_pos.add(pos); + if (i.getItemMeta().getEnchants().size() > 0) + { + final ArrayList<Integer> tempid = new ArrayList<>(); + final ArrayList<Integer> templv = new ArrayList<>(); + for (final Enchantment ench : i.getItemMeta().getEnchants().keySet()) + { + tempid.add(ench.getId()); + templv.add(i.getItemMeta().getEnchants().get(ench)); + } + this.item_enchid.put(pos, tempid); + this.item_enchid_lv.put(pos, templv); + } + else + { + this.item_enchid.put(pos, new ArrayList<Integer>()); + this.item_enchid_lv.put(pos, new ArrayList<Integer>()); + } + } + pos++; + } + } + + public ArrayList<String> getSignLines() + { + return this.sign_lines; + } + + public boolean isDoubleChest() + { + return this.isDoubleChest; + } + + public DoubleChest getDoubleChest() + { + return this.doubleChest; + } + + public String getSkullOwner() + { + return this.skull_owner; + } + + public BlockFace getSkullORotation() + { + return this.skull_rotation; + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java index 30b5619d..57bc855d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; /* @@ -29,54 +43,54 @@ /** * Check dev.bukkit.org to find updates for a given plugin, and download the updates if needed. * <p/> - * <b>VERY, VERY IMPORTANT</b>: Because there are no standards for adding auto-update toggles in your plugin's config, this system provides NO CHECK WITH YOUR CONFIG to make sure the user has allowed auto-updating. - * <br> - * It is a <b>BUKKIT POLICY</b> that you include a boolean value in your config that prevents the auto-updater from running <b>AT ALL</b>. - * <br> + * <b>VERY, VERY IMPORTANT</b>: Because there are no standards for adding auto-update toggles in your plugin's config, this system provides NO CHECK WITH YOUR CONFIG to make sure the user has allowed + * auto-updating. <br> + * It is a <b>BUKKIT POLICY</b> that you include a boolean value in your config that prevents the auto-updater from running <b>AT ALL</b>. <br> * If you fail to include this option in your config, your plugin will be <b>REJECTED</b> when you attempt to submit it to dev.bukkit.org. * <p/> - * An example of a good configuration option would be something similar to 'auto-update: true' - if this value is set to false you may NOT run the auto-updater. - * <br> + * An example of a good configuration option would be something similar to 'auto-update: true' - if this value is set to false you may NOT run the auto-updater. <br> * If you are unsure about these rules, please read the plugin submission guidelines: http://goo.gl/8iU5l * * @author Gravity * @version 2.0 */ -public class Updater { - - private Plugin plugin; - private UpdateType type; - private String versionName; - private String versionLink; - private String versionType; - private String versionGameVersion; - - private boolean announce; // Whether to announce file downloads - - private URL url; // Connecting to RSS - private File file; // The plugin's file - private Thread thread; // Updater thread - - private int id = -1; // Project's Curse ID - private String apiKey = null; // BukkitDev ServerMods API key - private static final String TITLE_VALUE = "name"; // Gets remote file's title - private static final String LINK_VALUE = "downloadUrl"; // Gets remote file's download link - private static final String TYPE_VALUE = "releaseType"; // Gets remote file's release type - private static final String VERSION_VALUE = "gameVersion"; // Gets remote file's build version - private static final String QUERY = "/servermods/files?projectIds="; // Path to GET - private static final String HOST = "https://api.curseforge.com"; // Slugs will be appended to this to get to the project's RSS feed - +public class Updater +{ + + private Plugin plugin; + private UpdateType type; + private String versionName; + private String versionLink; + private String versionType; + private String versionGameVersion; + + private boolean announce; // Whether to announce file downloads + + private URL url; // Connecting to RSS + private File file; // The plugin's file + private Thread thread; // Updater thread + + private int id = -1; // Project's Curse ID + private String apiKey = null; // BukkitDev ServerMods API key + private static final String TITLE_VALUE = "name"; // Gets remote file's title + private static final String LINK_VALUE = "downloadUrl"; // Gets remote file's download link + private static final String TYPE_VALUE = "releaseType"; // Gets remote file's release type + private static final String VERSION_VALUE = "gameVersion"; // Gets remote file's build version + private static final String QUERY = "/servermods/files?projectIds="; // Path to GET + private static final String HOST = "https://api.curseforge.com"; // Slugs will be appended to this to get to the project's RSS feed + private static final String[] NO_UPDATE_TAG = { "-DEV", "-PRE", "-SNAPSHOT" }; // If the version number contains one of these, don't update. - private static final int BYTE_SIZE = 1024; // Used for downloading files - private YamlConfiguration config; // Config file - private String updateFolder;// The folder that downloads will be placed in - private Updater.UpdateResult result = Updater.UpdateResult.SUCCESS; // Used for determining the outcome of the update process - + private static final int BYTE_SIZE = 1024; // Used for downloading files + private YamlConfiguration config; // Config file + private String updateFolder; // The folder that downloads will be placed in + private Updater.UpdateResult result = Updater.UpdateResult.SUCCESS; // Used for determining the outcome of the update process + /** * Gives the dev the result of the update process. Can be obtained by called getResult(). */ - public enum UpdateResult { + public enum UpdateResult + { /** * The updater found an update, and has readied it to be loaded the next time the server restarts/reloads. */ @@ -114,11 +128,12 @@ public enum UpdateResult { */ UPDATE_AVAILABLE } - + /** * Allows the dev to specify the type of update that will be run. */ - public enum UpdateType { + public enum UpdateType + { /** * Run a version check, and then if the file is out of date, download the newest version. */ @@ -132,225 +147,283 @@ public enum UpdateType { */ NO_DOWNLOAD } - + /** * Initialize the updater * - * @param plugin The plugin that is checking for an update. - * @param id The dev.bukkit.org id of the project - * @param file The file that the plugin is running from, get this by doing this.getFile() from within your main class. - * @param type Specify the type of update this will be. See {@link UpdateType} - * @param announce True if the program should announce the progress of new updates in console + * @param plugin + * The plugin that is checking for an update. + * @param id + * The dev.bukkit.org id of the project + * @param file + * The file that the plugin is running from, get this by doing this.getFile() from within your main class. + * @param type + * Specify the type of update this will be. See {@link UpdateType} + * @param announce + * True if the program should announce the progress of new updates in console */ - public Updater(Plugin plugin, int id, File file, UpdateType type, boolean announce) { + public Updater(final Plugin plugin, final int id, final File file, final UpdateType type, final boolean announce) + { this.plugin = plugin; this.type = type; this.announce = announce; this.file = file; this.id = id; this.updateFolder = plugin.getServer().getUpdateFolder(); - + final File pluginFile = plugin.getDataFolder().getParentFile(); final File updaterFile = new File(pluginFile, "Updater"); final File updaterConfigFile = new File(updaterFile, "config.yml"); - - if (!updaterFile.exists()) { + + if (!updaterFile.exists()) + { updaterFile.mkdir(); } - if (!updaterConfigFile.exists()) { - try { + if (!updaterConfigFile.exists()) + { + try + { updaterConfigFile.createNewFile(); - } catch (final IOException e) { + } + catch (final IOException e) + { plugin.getLogger().severe("The updater could not create a configuration in " + updaterFile.getAbsolutePath()); e.printStackTrace(); } } this.config = YamlConfiguration.loadConfiguration(updaterConfigFile); - - this.config.options().header("This configuration file affects all plugins using the Updater system (version 2+ - http://forums.bukkit.org/threads/96681/ )" + '\n' - + "If you wish to use your API key, read http://wiki.bukkit.org/ServerMods_API and place it below." + '\n' - + "Some updating systems will not adhere to the disabled value, but these may be turned off in their plugin's configuration."); + + this.config.options() + .header("This configuration file affects all plugins using the Updater system (version 2+ - http://forums.bukkit.org/threads/96681/ )" + '\n' + + "If you wish to use your API key, read http://wiki.bukkit.org/ServerMods_API and place it below." + '\n' + + "Some updating systems will not adhere to the disabled value, but these may be turned off in their plugin's configuration."); this.config.addDefault("api-key", "PUT_API_KEY_HERE"); this.config.addDefault("disable", false); - - if (this.config.get("api-key", null) == null) { + + if (this.config.get("api-key", null) == null) + { this.config.options().copyDefaults(true); - try { + try + { this.config.save(updaterConfigFile); - } catch (final IOException e) { + } + catch (final IOException e) + { plugin.getLogger().severe("The updater could not save the configuration in " + updaterFile.getAbsolutePath()); e.printStackTrace(); } } - - if (this.config.getBoolean("disable")) { + + if (this.config.getBoolean("disable")) + { this.result = UpdateResult.DISABLED; return; } - + String key = this.config.getString("api-key"); - if (key.equalsIgnoreCase("PUT_API_KEY_HERE") || key.equals("")) { + if (key.equalsIgnoreCase("PUT_API_KEY_HERE") || key.equals("")) + { key = null; } - + this.apiKey = key; - - try { + + try + { this.url = new URL(Updater.HOST + Updater.QUERY + id); - } catch (final MalformedURLException e) { + } + catch (final MalformedURLException e) + { plugin.getLogger().severe("The project ID provided for updating, " + id + " is invalid."); this.result = UpdateResult.FAIL_BADID; e.printStackTrace(); } - + this.thread = new Thread(new UpdateRunnable()); this.thread.start(); } - + /** * Get the result of the update process. */ - public Updater.UpdateResult getResult() { + public Updater.UpdateResult getResult() + { this.waitForThread(); return this.result; } - + /** * Get the latest version's release type (release, beta, or alpha). */ - public String getLatestType() { + public String getLatestType() + { this.waitForThread(); return this.versionType; } - + /** * Get the latest version's game version. */ - public String getLatestGameVersion() { + public String getLatestGameVersion() + { this.waitForThread(); return this.versionGameVersion; } - + /** * Get the latest version's name. */ - public String getLatestName() { + public String getLatestName() + { this.waitForThread(); return this.versionName; } - + /** * Get the latest version's file link. */ - public String getLatestFileLink() { + public String getLatestFileLink() + { this.waitForThread(); return this.versionLink; } - + /** - * As the result of Updater output depends on the thread's completion, it is necessary to wait for the thread to finish - * before allowing anyone to check the result. + * As the result of Updater output depends on the thread's completion, it is necessary to wait for the thread to finish before allowing anyone to check the result. */ - private void waitForThread() { - if ((this.thread != null) && this.thread.isAlive()) { - try { + private void waitForThread() + { + if ((this.thread != null) && this.thread.isAlive()) + { + try + { this.thread.join(); - } catch (final InterruptedException e) { + } + catch (final InterruptedException e) + { e.printStackTrace(); } } } - + /** * Save an update from dev.bukkit.org into the server's update folder. */ - private void saveFile(File folder, String file, String u) { - if (!folder.exists()) { + private void saveFile(final File folder, final String file, final String u) + { + if (!folder.exists()) + { folder.mkdir(); } BufferedInputStream in = null; FileOutputStream fout = null; - try { + try + { // Download the file final URL url = new URL(u); final int fileLength = url.openConnection().getContentLength(); in = new BufferedInputStream(url.openStream()); fout = new FileOutputStream(folder.getAbsolutePath() + "/" + file); - + final byte[] data = new byte[Updater.BYTE_SIZE]; int count; - if (this.announce) { + if (this.announce) + { this.plugin.getLogger().info("About to download a new update: " + this.versionName); } long downloaded = 0; - while ((count = in.read(data, 0, Updater.BYTE_SIZE)) != -1) { + while ((count = in.read(data, 0, Updater.BYTE_SIZE)) != -1) + { downloaded += count; fout.write(data, 0, count); final int percent = (int) ((downloaded * 100) / fileLength); - if (this.announce && ((percent % 10) == 0)) { + if (this.announce && ((percent % 10) == 0)) + { this.plugin.getLogger().info("Downloading update: " + percent + "% of " + fileLength + " bytes."); } } - //Just a quick check to make sure we didn't leave any files from last time... - for (final File xFile : new File(this.plugin.getDataFolder().getParent(), this.updateFolder).listFiles()) { - if (xFile.getName().endsWith(".zip")) { + // Just a quick check to make sure we didn't leave any files from last time... + for (final File xFile : new File(this.plugin.getDataFolder().getParent(), this.updateFolder).listFiles()) + { + if (xFile.getName().endsWith(".zip")) + { xFile.delete(); } } // Check to see if it's a zip file, if it is, unzip it. final File dFile = new File(folder.getAbsolutePath() + "/" + file); - if (dFile.getName().endsWith(".zip")) { + if (dFile.getName().endsWith(".zip")) + { // Unzip this.unzip(dFile.getCanonicalPath()); } - if (this.announce) { + if (this.announce) + { this.plugin.getLogger().info("Finished updating."); } - } catch (final Exception ex) { + } + catch (final Exception ex) + { this.plugin.getLogger().warning("The auto-updater tried to download a new update, but was unsuccessful."); this.result = Updater.UpdateResult.FAIL_DOWNLOAD; - } finally { - try { - if (in != null) { + } + finally + { + try + { + if (in != null) + { in.close(); } - if (fout != null) { + if (fout != null) + { fout.close(); } - } catch (final Exception ex) { + } + catch (final Exception ex) + { + // silently ignore } } } - + /** * Part of Zip-File-Extractor, modified by Gravity for use with Bukkit */ - private void unzip(String file) { - try { + private void unzip(final String file) + { + try + { final File fSourceZip = new File(file); final String zipPath = file.substring(0, file.length() - 4); ZipFile zipFile = new ZipFile(fSourceZip); Enumeration<? extends ZipEntry> e = zipFile.entries(); - while (e.hasMoreElements()) { + while (e.hasMoreElements()) + { ZipEntry entry = e.nextElement(); File destinationFilePath = new File(zipPath, entry.getName()); destinationFilePath.getParentFile().mkdirs(); - if (entry.isDirectory()) { + if (entry.isDirectory()) + { continue; - } else { + } + else + { final BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry)); int b; final byte buffer[] = new byte[Updater.BYTE_SIZE]; final FileOutputStream fos = new FileOutputStream(destinationFilePath); final BufferedOutputStream bos = new BufferedOutputStream(fos, Updater.BYTE_SIZE); - while ((b = bis.read(buffer, 0, Updater.BYTE_SIZE)) != -1) { + while ((b = bis.read(buffer, 0, Updater.BYTE_SIZE)) != -1) + { bos.write(buffer, 0, b); } bos.flush(); bos.close(); bis.close(); final String name = destinationFilePath.getName(); - if (name.endsWith(".jar") && this.pluginFile(name)) { + if (name.endsWith(".jar") && this.pluginFile(name)) + { destinationFilePath.renameTo(new File(this.plugin.getDataFolder().getParent(), this.updateFolder + "/" + name)); } } @@ -360,11 +433,14 @@ private void unzip(String file) { e = null; zipFile.close(); zipFile = null; - + // Move any plugin data folders that were included to the right place, Bukkit won't do this for us. - for (final File dFile : new File(zipPath).listFiles()) { - if (dFile.isDirectory()) { - if (this.pluginFile(dFile.getName())) { + for (final File dFile : new File(zipPath).listFiles()) + { + if (dFile.isDirectory()) + { + if (this.pluginFile(dFile.getName())) + { final File oFile = new File(this.plugin.getDataFolder().getParent(), dFile.getName()); // Get current dir final File[] contents = oFile.listFiles(); // List of existing files in the current dir for (final File cFile : dFile.listFiles()) // Loop through all the files in the new dir @@ -372,15 +448,19 @@ private void unzip(String file) { boolean found = false; for (final File xFile : contents) // Loop through contents to see if it exists { - if (xFile.getName().equals(cFile.getName())) { + if (xFile.getName().equals(cFile.getName())) + { found = true; break; } } - if (!found) { + if (!found) + { // Move the new file into the current dir cFile.renameTo(new File(oFile.getCanonicalFile() + "/" + cFile.getName())); - } else { + } + else + { // This file already exists, so we don't need it anymore. cFile.delete(); } @@ -391,47 +471,61 @@ private void unzip(String file) { } new File(zipPath).delete(); fSourceZip.delete(); - } catch (final IOException ex) { + } + catch (final IOException ex) + { this.plugin.getLogger().warning("The auto-updater tried to unzip a new update file, but was unsuccessful."); this.result = Updater.UpdateResult.FAIL_DOWNLOAD; ex.printStackTrace(); } new File(file).delete(); } - + /** * Check if the name of a jar is one of the plugins currently installed, used for extracting the correct files out of a zip. */ - private boolean pluginFile(String name) { - for (final File file : new File("plugins").listFiles()) { - if (file.getName().equals(name)) { + private boolean pluginFile(final String name) + { + for (final File file : new File("plugins").listFiles()) + { + if (file.getName().equals(name)) + { return true; } } return false; } - + /** * Check to see if the program should continue by evaluation whether the plugin is already updated, or shouldn't be updated */ - private boolean versionCheck(String title) { - if (this.type != UpdateType.NO_VERSION_CHECK) { + private boolean versionCheck(final String title) + { + if (this.type != UpdateType.NO_VERSION_CHECK) + { final String version = this.plugin.getDescription().getVersion(); - if (title.split(" v").length == 2) { + if (title.split(" v").length == 2) + { final String remoteVersion = title.split(" v")[1].split(" ")[0]; // Get the newest file's version number int remVer = -1, curVer = 0; - try { + try + { remVer = this.calVer(remoteVersion); curVer = this.calVer(version); - } catch (final NumberFormatException nfe) { + } + catch (final NumberFormatException nfe) + { remVer = -1; } - if (this.hasTag(version) || version.equalsIgnoreCase(remoteVersion) || (curVer >= remVer)) { + if (this.hasTag(version) || version.equalsIgnoreCase(remoteVersion) || (curVer >= remVer)) + { // We already have the latest version, or this build is tagged for no-update this.result = Updater.UpdateResult.NO_UPDATE; return false; } - } else { + } + else + { // The file's name did not contain the string 'vVersion' final String authorInfo = this.plugin.getDescription().getAuthors().size() == 0 ? "" : " (" + this.plugin.getDescription().getAuthors().get(0) + ")"; this.plugin.getLogger().warning("The author of this plugin" + authorInfo + " has misconfigured their Auto Update system"); @@ -443,16 +537,20 @@ private boolean versionCheck(String title) { } return true; } - + /** * Used to calculate the version string as an Integer */ - private Integer calVer(String s) throws NumberFormatException { - if (s.contains(".")) { + private Integer calVer(final String s) throws NumberFormatException + { + if (s.contains(".")) + { final StringBuilder sb = new StringBuilder(); - for (int i = 0; i < s.length(); i++) { + for (int i = 0; i < s.length(); i++) + { final Character c = s.charAt(i); - if (Character.isLetterOrDigit(c)) { + if (Character.isLetterOrDigit(c)) + { sb.append(c); } } @@ -460,80 +558,102 @@ private Integer calVer(String s) throws NumberFormatException { } return Integer.parseInt(s); } - + /** * Evaluate whether the version number is marked showing that it should not be updated by this program */ - private boolean hasTag(String version) { - for (final String string : Updater.NO_UPDATE_TAG) { - if (version.contains(string)) { + private boolean hasTag(final String version) + { + for (final String string : Updater.NO_UPDATE_TAG) + { + if (version.contains(string)) + { return true; } } return false; } - - private boolean read() { - try { + + private boolean read() + { + try + { final URLConnection conn = this.url.openConnection(); conn.setConnectTimeout(5000); - - if (this.apiKey != null) { + + if (this.apiKey != null) + { conn.addRequestProperty("X-API-Key", this.apiKey); } conn.addRequestProperty("User-Agent", "Updater (by Gravity)"); - + conn.setDoOutput(true); - + final BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); final String response = reader.readLine(); - + final JSONArray array = (JSONArray) JSONValue.parse(response); - - if (array.size() == 0) { + + if (array.size() == 0) + { this.plugin.getLogger().warning("The updater could not find any files for the project id " + this.id); this.result = UpdateResult.FAIL_BADID; return false; } - + this.versionName = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.TITLE_VALUE); this.versionLink = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.LINK_VALUE); this.versionType = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.TYPE_VALUE); this.versionGameVersion = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.VERSION_VALUE); - + return true; - } catch (final IOException e) { - if (e.getMessage().contains("HTTP response code: 403")) { + } + catch (final IOException e) + { + if (e.getMessage().contains("HTTP response code: 403")) + { this.plugin.getLogger().warning("dev.bukkit.org rejected the API key provided in plugins/Updater/config.yml"); this.plugin.getLogger().warning("Please double-check your configuration to ensure it is correct."); this.result = UpdateResult.FAIL_APIKEY; - } else { + } + else + { this.plugin.getLogger().warning("The updater could not contact dev.bukkit.org for updating."); - this.plugin.getLogger().warning("If you have not recently modified your configuration and this is the first time you are seeing this message, the site may be experiencing temporary downtime."); + this.plugin.getLogger() + .warning("If you have not recently modified your configuration and this is the first time you are seeing this message, the site may be experiencing temporary downtime."); this.result = UpdateResult.FAIL_DBO; } e.printStackTrace(); return false; } } - - private class UpdateRunnable implements Runnable { - + + private class UpdateRunnable implements Runnable + { + @Override - public void run() { - if (Updater.this.url != null) { + public void run() + { + if (Updater.this.url != null) + { // Obtain the results of the project's file feed - if (Updater.this.read()) { - if (Updater.this.versionCheck(Updater.this.versionName)) { - if ((Updater.this.versionLink != null) && (Updater.this.type != UpdateType.NO_DOWNLOAD)) { + if (Updater.this.read()) + { + if (Updater.this.versionCheck(Updater.this.versionName)) + { + if ((Updater.this.versionLink != null) && (Updater.this.type != UpdateType.NO_DOWNLOAD)) + { String name = Updater.this.file.getName(); // If it's a zip file, it shouldn't be downloaded as the plugin's name - if (Updater.this.versionLink.endsWith(".zip")) { + if (Updater.this.versionLink.endsWith(".zip")) + { final String[] split = Updater.this.versionLink.split("/"); name = split[split.length - 1]; } Updater.this.saveFile(new File(Updater.this.plugin.getDataFolder().getParent(), Updater.this.updateFolder), name, Updater.this.versionLink); - } else { + } + else + { Updater.this.result = UpdateResult.UPDATE_AVAILABLE; } } @@ -541,4 +661,4 @@ public void run() { } } } -} \ No newline at end of file +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 6441c589..f84bdc86 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -1,14 +1,25 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; -import java.io.EOFException; import java.io.File; -import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.lang.reflect.Method; -import java.nio.channels.ClosedChannelException; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -20,8 +31,8 @@ import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.FireworkEffect; -import org.bukkit.GameMode; import org.bukkit.FireworkEffect.Type; +import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.OfflinePlayer; @@ -29,7 +40,6 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockState; -import org.bukkit.block.Chest; import org.bukkit.block.Sign; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.enchantments.Enchantment; @@ -53,10 +63,10 @@ import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.util.Vector; -import org.bukkit.util.io.BukkitObjectInputStream; import org.bukkit.util.io.BukkitObjectOutputStream; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaLogger; import com.comze_instancelabs.minigamesapi.ArenaSetup; import com.comze_instancelabs.minigamesapi.ArenaState; @@ -65,969 +75,1121 @@ import com.comze_instancelabs.minigamesapi.config.ArenasConfig; import com.comze_instancelabs.minigamesapi.config.MessagesConfig; - -public class Util { - - public static HashMap<String, ItemStack[]> armourContents = new HashMap<String, ItemStack[]>(); - public static HashMap<String, ItemStack[]> inventoryContents = new HashMap<String, ItemStack[]>(); - public static HashMap<String, Location> locations = new HashMap<String, Location>(); - public static HashMap<String, Integer> xplevel = new HashMap<String, Integer>(); - public static HashMap<String, GameMode> gamemode = new HashMap<String, GameMode>(); - - public static void clearInv(Player p) { - if (p != null) { - ArenaLogger.debug("Clearing inventory of " + p.getName()); - p.getInventory().clear(); - p.updateInventory(); - p.getInventory().setHelmet(null); - p.getInventory().setChestplate(null); - p.getInventory().setLeggings(null); - p.getInventory().setBoots(null); - p.updateInventory(); - } - } - - - @SuppressWarnings("deprecation") - public static void teleportPlayerFixed(final Player p, final Location l) { - ArenaLogger.debug("Teleporting " + p.getName()); - if (p.isInsideVehicle()) { - Entity ent = p.getVehicle(); - p.leaveVehicle(); - ent.eject(); - } - if (l != null) { - if (l.getWorld() == null) { - return; - } - p.teleport(l, TeleportCause.PLUGIN); - p.setFallDistance(-1F); - p.setVelocity(new Vector(0D, 0D, 0D)); - l.getWorld().refreshChunk(l.getChunk().getX(), l.getChunk().getZ()); - } else { - System.out.println("Couldn't teleport Player " + p.getName() + ", the location was not valid. Probably forgot to set a spawn/lobby?"); - } - p.setFireTicks(0); - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 30)); - } - - public static void teleportAllPlayers(ArrayList<String> players, final Location l) { - Long delay = 1L; - for (String pl : players) { - if (!Validator.isPlayerOnline(pl)) { - continue; - } - final Player p = Bukkit.getPlayer(pl); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - Util.teleportPlayerFixed(p, l); - } - }, delay); - delay++; - } - } - - public static HashMap<String, Location> teleportAllPlayers(ArrayList<String> players, ArrayList<Location> locs) { - HashMap<String, Location> pspawnloc = new HashMap<String, Location>(); - int currentid = 0; - int locslength = locs.size(); - for (String p_ : players) { - Player p = Bukkit.getPlayer(p_); - Util.teleportPlayerFixed(p, locs.get(currentid)); - pspawnloc.put(p_, locs.get(currentid)); - currentid++; - if (currentid > locslength - 1) { - currentid = 0; - } - } - return pspawnloc; - } - - public static Location getComponentForArena(JavaPlugin plugin, String arenaname, String component, String count) { - if (Validator.isArenaValid(plugin, arenaname)) { - String base = "arenas." + arenaname + "." + component + count; - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (!pli.getArenasConfig().getConfig().isSet(base + ".world") || Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")) == null) { - return null; - } - return new Location(Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")), pli.getArenasConfig().getConfig().getDouble(base + ".location.x"), pli.getArenasConfig().getConfig().getDouble(base + ".location.y"), pli.getArenasConfig().getConfig().getDouble(base + ".location.z"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.yaw"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.pitch")); - } - return null; - } - - public static Location getComponentForArena(JavaPlugin plugin, String arenaname, String component) { - if (Validator.isArenaValid(plugin, arenaname)) { - String base = "arenas." + arenaname + "." + component; - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (!pli.getArenasConfig().getConfig().isSet(base + ".world") || Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")) == null) { - return null; - } - return new Location(Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")), pli.getArenasConfig().getConfig().getDouble(base + ".location.x"), pli.getArenasConfig().getConfig().getDouble(base + ".location.y"), pli.getArenasConfig().getConfig().getDouble(base + ".location.z"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.yaw"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.pitch")); - } - return null; - } - - public static Location getComponentForArenaRaw(JavaPlugin plugin, String arenaname, String component) { - String base = "arenas." + arenaname + "." + component; - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (pli.getArenasConfig().getConfig().isSet(base)) { - return new Location(Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")), pli.getArenasConfig().getConfig().getDouble(base + ".location.x"), pli.getArenasConfig().getConfig().getDouble(base + ".location.y"), pli.getArenasConfig().getConfig().getDouble(base + ".location.z"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.yaw"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.pitch")); - } - return null; - } - - public static boolean isComponentForArenaValid(JavaPlugin plugin, String arenaname, String component) { - if (Validator.isArenaValid(plugin, arenaname)) { - return isComponentForArenaValidRaw(plugin, arenaname, component); - } - return false; - } - - public static boolean isComponentForArenaValidRaw(JavaPlugin plugin, String arenaname, String component) { - String base = "arenas." + arenaname + "." + component; - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet(base); - } - - public static void saveComponentForArena(JavaPlugin plugin, String arenaname, String component, Location comploc) { - String base = "arenas." + arenaname + "." + component; - ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); - config.getConfig().set(base + ".world", comploc.getWorld().getName()); - config.getConfig().set(base + ".location.x", comploc.getX()); - config.getConfig().set(base + ".location.y", comploc.getY()); - config.getConfig().set(base + ".location.z", comploc.getZ()); - config.getConfig().set(base + ".location.yaw", comploc.getYaw()); - config.getConfig().set(base + ".location.pitch", comploc.getPitch()); - config.saveConfig(); - } - - public static void saveMainLobby(JavaPlugin plugin, Location comploc) { - String base = "mainlobby"; - ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); - config.getConfig().set(base + ".world", comploc.getWorld().getName()); - config.getConfig().set(base + ".location.x", comploc.getX()); - config.getConfig().set(base + ".location.y", comploc.getY()); - config.getConfig().set(base + ".location.z", comploc.getZ()); - config.getConfig().set(base + ".location.yaw", comploc.getYaw()); - config.getConfig().set(base + ".location.pitch", comploc.getPitch()); - config.saveConfig(); - } - - public static Location getMainLobby(JavaPlugin plugin) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - if (!config.isSet("mainlobby")) { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "You forgot to set the mainlobby!"); - } - return new Location(plugin.getServer().getWorld(config.getString("mainlobby.world")), config.getDouble("mainlobby.location.x"), config.getDouble("mainlobby.location.y"), config.getDouble("mainlobby.location.z"), (float) config.getDouble("mainlobby.location.yaw"), (float) config.getDouble("mainlobby.location.pitch")); - } - - public static ArrayList<Location> getAllSpawns(JavaPlugin plugin, String arena) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - ArrayList<Location> ret = new ArrayList<Location>(); - if (config.isSet("arenas." + arena + ".spawns")) { - for (String spawn : config.getConfigurationSection("arenas." + arena + ".spawns.").getKeys(false)) { - ret.add(getComponentForArena(plugin, arena, "spawns." + spawn)); - } - } - return ret; - } - - public static void saveArenaToFile(JavaPlugin plugin, String arena) { - File f = new File(plugin.getDataFolder() + "/" + arena); - Cuboid c = new Cuboid(Util.getComponentForArena(plugin, arena, "bounds.low"), Util.getComponentForArena(plugin, arena, "bounds.high")); - Location start = c.getLowLoc(); - Location end = c.getHighLoc(); - - int width = end.getBlockX() - start.getBlockX(); - int length = end.getBlockZ() - start.getBlockZ(); - int height = end.getBlockY() - start.getBlockY(); - - MinigamesAPI.getAPI().getLogger().info("Bounds: " + Integer.toString(width) + " " + Integer.toString(height) + " " + Integer.toString(length)); - MinigamesAPI.getAPI().getLogger().info("Blocks to save: " + Integer.toString(width * height * length)); - - FileOutputStream fos; - ObjectOutputStream oos = null; - try { - fos = new FileOutputStream(f); - oos = new BukkitObjectOutputStream(fos); - } catch (IOException e) { - e.printStackTrace(); - } - - for (int i = 0; i <= width; i++) { - for (int j = 0; j <= height; j++) { - for (int k = 0; k <= length; k++) { - Block change = c.getWorld().getBlockAt(start.getBlockX() + i, start.getBlockY() + j, start.getBlockZ() + k); - - ArenaBlock bl = new ArenaBlock(change, change.getType().equals(Material.CHEST)); - - try { - oos.writeObject(bl); - } catch (IOException e) { - System.out.println(e.getMessage()); - } - } - } - } - - try { - oos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - MinigamesAPI.getAPI().getLogger().info("saved"); - } - - public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena arena) { - int failcount = 0; - final ArrayList<ArenaBlock> failedblocks = new ArrayList<ArenaBlock>(); - - File f = new File(plugin.getDataFolder() + "/" + arena.getInternalName()); - if (!f.exists()) { - plugin.getLogger().warning("Could not find arena file for " + arena.getInternalName()); - arena.setArenaState(ArenaState.JOIN); - Bukkit.getScheduler().runTask(plugin, new Runnable() { - public void run() { - Util.updateSign(plugin, arena); - } - }); - return; - } - FileInputStream fis = null; - BukkitObjectInputStream ois = null; - try { - fis = new FileInputStream(f); - ois = new BukkitObjectInputStream(fis); - } catch (IOException e) { - e.printStackTrace(); - } - - try { - while (true) { - Object b = null; - try { - b = ois.readObject(); - } catch (EOFException e) { - MinigamesAPI.getAPI().getLogger().info("Finished restoring map for " + arena.getInternalName() + " with old reset method."); - - arena.setArenaState(ArenaState.JOIN); - Bukkit.getScheduler().runTask(plugin, new Runnable() { - public void run() { - Util.updateSign(plugin, arena); - } - }); - } catch (ClosedChannelException e) { - System.out.println("Something is wrong with your arena file and the reset might not be successful. Also, you're using an outdated reset method."); - } catch (Exception e) { - e.printStackTrace(); - arena.setArenaState(ArenaState.JOIN); - Bukkit.getScheduler().runTask(plugin, new Runnable() { - public void run() { - Util.updateSign(plugin, arena); - } - }); - } - - if (b != null) { - ArenaBlock ablock = (ArenaBlock) b; - try { - Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); - if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) { - b_.setType(ablock.getMaterial()); - b_.setData(ablock.getData()); - } - if (b_.getType() == Material.CHEST) { - ((Chest) b_.getState()).getInventory().setContents(ablock.getInventory()); - ((Chest) b_.getState()).update(); - } - } catch (IllegalStateException e) { - failcount += 1; - failedblocks.add(ablock); - } - } else { - break; - } - } - - } catch (Exception e) { - e.printStackTrace(); - } - - try { - ois.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - for (ArenaBlock ablock : failedblocks) { - Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); - if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) { - b_.setType(ablock.getMaterial()); - b_.setData(ablock.getData()); - } - if (b_.getType() == Material.CHEST) { - ((Chest) b_.getState()).getInventory().setContents(ablock.getInventory()); - ((Chest) b_.getState()).update(); - } - } - } - }, 40L); - MinigamesAPI.getAPI().getLogger().info("Successfully finished!"); - - return; - } - - public static Sign getSignFromArena(JavaPlugin plugin, String arena) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (!pli.getArenasConfig().getConfig().isSet("arenas." + arena + ".sign.world")) { - return null; - } - Location b_ = new Location(Bukkit.getServer().getWorld(pli.getArenasConfig().getConfig().getString("arenas." + arena + ".sign.world")), pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.x"), pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.y"), pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.z")); - if (b_ != null) { - if (b_.getWorld() != null) { - if (b_.getBlock().getState() != null) { - BlockState bs = b_.getBlock().getState(); - Sign s_ = null; - if (bs instanceof Sign) { - s_ = (Sign) bs; - } - return s_; - } - } - } - return null; - } - - public static Location getSignLocationFromArena(JavaPlugin plugin, String arena) { - Sign s = getSignFromArena(plugin, arena); - if (s != null) { - return s.getBlock().getLocation(); - } else { - return null; - } - } - - public static Arena getArenaBySignLocation(JavaPlugin plugin, Location sign) { - for (Arena arena : MinigamesAPI.getAPI().getPluginInstance(plugin).getArenas()) { - if (sign != null && arena.getArena().getSignLocation() != null) { - if (sign.getWorld().getName().equalsIgnoreCase(arena.getSignLocation().getWorld().getName())) { - if (sign.distance(arena.getArena().getSignLocation()) < 1) { - return arena; - } - } - } - } - return null; - } - - public static void updateSign(JavaPlugin plugin, Arena arena) { - if (arena == null) return; - - Sign s = getSignFromArena(plugin, arena.getInternalName()); - if (s != null) { - ArenaLogger.debug("Updating sign for arena " + arena.getInternalName() + " in " + plugin.getName()); - int count = arena.getAllPlayers().size(); - int maxcount = arena.getMaxPlayers(); - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - String state = arena.getArenaState().toString().toLowerCase(); - if (pli.cached_sign_states.containsKey(state)) { - s.setLine(0, pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(1, pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(2, pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(3, pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - } else { - s.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - s.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - } - s.getBlock().getChunk().load(); - s.update(); - if (pli.color_background_wool_of_signs) { - org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) s.getBlock().getState().getData(); - Block attachedBlock = s.getBlock().getRelative(s_.getAttachedFace()); - byte data = (byte) 5; - if (arena.getArenaState() == ArenaState.INGAME) { - data = (byte) 14; - } else if (arena.getArenaState() == ArenaState.RESTARTING) { - data = (byte) 4; - } - attachedBlock.setData(data); - } - } - try { - if (plugin.isEnabled()) { - BungeeUtil.sendSignUpdateRequest(plugin, plugin.getName(), arena); - } - } catch (Exception e) { - System.out.println("Failed sending bungee sign update: " + e.getMessage()); - } - } - - public static void updateSign(JavaPlugin plugin, Arena arena, SignChangeEvent event) { - int count = arena.getAllPlayers().size(); - int maxcount = arena.getMaxPlayers(); - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - String arenastate = arena.getArenaState().toString().toLowerCase(); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - if (pli.color_background_wool_of_signs) { - org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) event.getBlock().getState().getData(); - Block attachedBlock = event.getBlock().getRelative(s_.getAttachedFace()); - byte data = (byte) 5; - if (arena.getArenaState() == ArenaState.INGAME) { - data = (byte) 14; - } else if (arena.getArenaState() == ArenaState.RESTARTING) { - data = (byte) 4; - } - attachedBlock.setData(data); - } - } - - // used for random and leave sign - public static void updateSign(JavaPlugin plugin, SignChangeEvent event, String arenastate) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - } - - public static ArrayList<Arena> loadArenas(JavaPlugin plugin, ArenasConfig cf) { - ArrayList<Arena> ret = new ArrayList<Arena>(); - FileConfiguration config = cf.getConfig(); - if (!config.isSet("arenas")) { - return ret; - } - for (String arena : config.getConfigurationSection("arenas.").getKeys(false)) { - if (Validator.isArenaValid(plugin, arena, cf.getConfig())) { - ret.add(initArena(plugin, arena)); - } - } - return ret; - } - - public static Arena initArena(JavaPlugin plugin, String arena) { - Arena a = new Arena(plugin, arena); - ArenaSetup s = MinigamesAPI.getAPI().getPluginInstance(plugin).arenaSetup; - a.init(getSignLocationFromArena(plugin, arena), getAllSpawns(plugin, arena), getMainLobby(plugin), getComponentForArena(plugin, arena, "lobby"), s.getPlayerCount(plugin, arena, true), s.getPlayerCount(plugin, arena, false), s.getArenaVIP(plugin, arena)); - return a; - } - - public static boolean isNumeric(String s) { - return s.matches("[-+]?\\d*\\.?\\d+"); - } - - // example items: 351:6#ALL_DAMAGE:2#KNOCKBACK:2*1=NAME:LORE;267*1;3*64;3*64 - public static ArrayList<ItemStack> parseItems(String rawitems) { - ArrayList<ItemStack> ret = new ArrayList<ItemStack>(); - - try { - String[] a = rawitems.split(";"); - - for (String rawitem : a) { - // crackshot support - if (rawitem.startsWith("crackshot:")) { - String[] guntype = rawitem.split(":"); - if (guntype.length > 1) { - if (guntype[1].length() > 1) { - ItemStack gun = new ItemStack(Material.WOOD_HOE); - ItemMeta gunmeta = gun.getItemMeta(); - gunmeta.setDisplayName(rawitem); - gun.setItemMeta(gunmeta); - ret.add(gun); - } - } - continue; - } - - // Potioneffects support - if (rawitem.startsWith("potioneffect:")) { - String[] potioneffecttype = rawitem.split(":"); - if (potioneffecttype.length > 1) { - String str = potioneffecttype[1]; - if (potioneffecttype.length > 2) { - str += ":" + potioneffecttype[2]; - } - if (str.length() > 1) { - if (!str.contains(":")) { - // duration - rawitem += ":99999"; - } - if (!str.contains("#")) { - // level - rawitem += "#1"; - } - ItemStack gun = new ItemStack(Material.WOOD_HOE); - ItemMeta gunmeta = gun.getItemMeta(); - gunmeta.setDisplayName(rawitem); - gun.setItemMeta(gunmeta); - ret.add(gun); - } - } - continue; - } - - int nameindex = rawitem.indexOf("="); - String[] c = rawitem.split("\\*"); - int optional_armor_color_index = -1; - String itemid = c[0]; - String itemdata = "0"; - String[] enchantments_ = itemid.split("#"); - String[] enchantments = new String[enchantments_.length - 1]; - if (enchantments_.length > 1) { - for (int i = 1; i < enchantments_.length; i++) { - enchantments[i - 1] = enchantments_[i]; - } - } - itemid = enchantments_[0]; - String[] d = itemid.split(":"); - if (d.length > 1) { - itemid = d[0]; - itemdata = d[1]; - } - String itemamount = "1"; - if (c.length > 1) { - itemamount = c[1]; - optional_armor_color_index = c[1].indexOf("#"); - if (optional_armor_color_index > 0) { - itemamount = c[1].substring(0, optional_armor_color_index); - } - } - if (nameindex > -1) { - itemamount = c[1].substring(0, c[1].indexOf("=")); - } - int itemid_int = isNumeric(itemid) ? Integer.parseInt(itemid) : 0; - if (itemid_int < 1) { - System.out.println("Invalid item id: " + itemid); - continue; - } - int itemamount_int = isNumeric(itemamount) ? Integer.parseInt(itemamount) : 1; - int itemdata_int = isNumeric(itemdata) ? Integer.parseInt(itemdata) : 0; - ItemStack nitem = new ItemStack(itemid_int, itemamount_int, (short) itemdata_int); - ItemMeta m = nitem.getItemMeta(); - if (nitem.getType() != Material.ENCHANTED_BOOK) { - for (String enchant : enchantments) { - String[] e = enchant.split(":"); - String ench = e[0]; - String lv = "1"; - if (e.length > 1) { - lv = e[1]; - } - if (Enchantment.getByName(ench) != null) { - m.addEnchant(Enchantment.getByName(ench), Integer.parseInt(lv), true); - } - } - } - - if (nameindex > -1) { - String namelore = rawitem.substring(nameindex + 1); - String name = ""; - String lore = ""; - int i = namelore.indexOf(":"); - if (i > -1) { - name = namelore.substring(0, i); - lore = namelore.substring(i + 1); - } else { - name = namelore; - } - m.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); - m.setLore(Arrays.asList(lore)); - } - - // RGB Color support for Armor - if (optional_armor_color_index > -1) { - m.setDisplayName(c[1].substring(optional_armor_color_index)); - } - - nitem.setItemMeta(m); - if (nitem.getType() == Material.ENCHANTED_BOOK) { - try { - EnchantmentStorageMeta meta = (EnchantmentStorageMeta) nitem.getItemMeta(); - for (String enchant : enchantments) { - String[] e = enchant.split(":"); - String ench = e[0]; - String lv = "1"; - if (e.length > 1) { - lv = e[1]; - } - if (Enchantment.getByName(ench) != null) { - meta.addStoredEnchant(Enchantment.getByName(ench), Integer.parseInt(lv), true); - } - } - nitem.setItemMeta(meta); - } catch (Exception e) { - System.out.println("Failed parsing enchanted book. " + e.getMessage()); - } - } - ret.add(nitem); - } - if (ret == null || ret.size() < 1) { - MinigamesAPI.getAPI().getLogger().severe("Found invalid class in config!"); - } - } catch (Exception e) { - ret.add(new ItemStack(Material.STAINED_GLASS_PANE)); - System.out.println("Failed to load class items: " + e.getMessage() + " at [1] " + e.getStackTrace()[1].getLineNumber() + " [0] " + e.getStackTrace()[0].getLineNumber()); - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - ItemStack rose = new ItemStack(Material.RED_ROSE); - ItemMeta im = rose.getItemMeta(); - im.setDisplayName(ChatColor.RED + "Sowwy, failed to load class."); - rose.setItemMeta(im); - ret.add(rose); - } - return ret; - } - - public static void giveLobbyItems(JavaPlugin plugin, Player p) { - ArenaLogger.debug("Giving lobby items to " + p.getName()); - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - ItemStack classes_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.classes_selection_item")); - if (classes_item.getType() != Material.AIR) { - ItemMeta cimeta = classes_item.getItemMeta(); - cimeta.setDisplayName(pli.getMessagesConfig().classes_item); - classes_item.setItemMeta(cimeta); - } - - if (!plugin.getConfig().getBoolean("config.bungee.game_on_join")) { - ItemStack exit_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.exit_item")); - if (exit_item.getType() != Material.AIR) { - ItemMeta exitimeta = exit_item.getItemMeta(); - exitimeta.setDisplayName(pli.getMessagesConfig().exit_item); - exit_item.setItemMeta(exitimeta); - } - p.getInventory().setItem(8, exit_item); - p.updateInventory(); - } - - ItemStack achievement_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.achievement_item")); - if (achievement_item.getType() != Material.AIR) { - ItemMeta achievement_itemmeta = achievement_item.getItemMeta(); - achievement_itemmeta.setDisplayName(pli.getMessagesConfig().achievement_item); - achievement_item.setItemMeta(achievement_itemmeta); - } - - ItemStack shop_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.shop_selection_item")); - if (shop_item.getType() != Material.AIR) { - ItemMeta shop_itemmeta = shop_item.getItemMeta(); - shop_itemmeta.setDisplayName(pli.getMessagesConfig().shop_item); - shop_item.setItemMeta(shop_itemmeta); - } - - if (plugin.getConfig().getBoolean("config.classes_enabled")) { - p.getInventory().addItem(classes_item); - } - if (pli.isAchievementGuiEnabled() && pli.getAchievementsConfig().getConfig().getBoolean("config.enabled")) { - p.getInventory().addItem(achievement_item); - } - if (plugin.getConfig().getBoolean("config.shop_enabled")) { - p.getInventory().addItem(shop_item); - } - p.updateInventory(); - - // custom lobby item - if (plugin.getConfig().getBoolean("config.extra_lobby_item.item0.enabled")) { - ItemStack custom_item0 = new ItemStack(plugin.getConfig().getInt("config.extra_lobby_item.item0.item")); - if (custom_item0.getType() != Material.AIR) { - ItemMeta custom_item0meta = custom_item0.getItemMeta(); - custom_item0meta.setDisplayName(plugin.getConfig().getString("config.extra_lobby_item.item0.name")); - custom_item0.setItemMeta(custom_item0meta); - } - p.getInventory().addItem(custom_item0); - p.updateInventory(); - } - } - - public static void giveSpectatorItems(JavaPlugin plugin, Player p) { - PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - ItemStack s_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.spectator_item")); - ItemMeta s_imeta = s_item.getItemMeta(); - s_imeta.setDisplayName(pli.getMessagesConfig().spectator_item); - s_item.setItemMeta(s_imeta); - - ItemStack exit_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.exit_item")); - ItemMeta exitimeta = exit_item.getItemMeta(); - exitimeta.setDisplayName(pli.getMessagesConfig().exit_item); - exit_item.setItemMeta(exitimeta); - - p.getInventory().addItem(s_item); - p.getInventory().setItem(8, exit_item); - p.updateInventory(); - } - - public static void sendMessage(Player p, String arenaname, String msgraw) { - String[] msgs = msgraw.replaceAll("<player>", p.getName()).replaceAll("<arena>", arenaname).split(";"); - for (String msg : msgs) { - p.sendMessage(msgs); - } - } - - public static void sendMessage(JavaPlugin plugin, Player p, String msgraw) { - if (msgraw.equalsIgnoreCase("")) { - return; - } - String[] msgs = msgraw.replaceAll("<player>", p.getName()).replaceAll("<game>", plugin.getName()).split(";"); - for (String msg : msgs) { - p.sendMessage(msg); - } - } - - public static ItemStack getCustomHead(String name) { - ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); - SkullMeta skullmeta = (SkullMeta) item.getItemMeta(); - skullmeta.setOwner(name); - item.setItemMeta(skullmeta); - return item; - } - - public static void spawnPowerup(JavaPlugin plugin, Arena a, Location l, ItemStack item) { - World w = l.getWorld(); - Chicken c = w.spawn(l, Chicken.class); - c.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 100000, 100000)); - Item i = w.dropItem(l, item); - c.setPassenger(i); - if (plugin.getConfig().getBoolean("config.powerup_spawning.broadcast")) { - for (String p_ : a.getAllPlayers()) { - if (Validator.isPlayerOnline(p_)) { - Player p = Bukkit.getPlayer(p_); - p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().powerup_spawned); - } - } - } - if (plugin.getConfig().getBoolean("config.powerup_spawning.spawn_firework")) { - spawnFirework(l); - } - } - - static Random r = new Random(); - - public static void spawnFirework(Player p) { - spawnFirework(p.getLocation()); - } - - public static void spawnFirework(Location l) { - Firework fw = (Firework) l.getWorld().spawnEntity(l, EntityType.FIREWORK); - FireworkMeta fwm = fw.getFireworkMeta(); - FireworkEffect effect = FireworkEffect.builder().flicker(r.nextBoolean()).withColor(Color.AQUA).withFade(Color.ORANGE).with(Type.BURST).trail(r.nextBoolean()).build(); - fwm.addEffect(effect); - int rp = r.nextInt(2) + 1; - fwm.setPower(rp); - fw.setFireworkMeta(fwm); - } - - public static Color hexToRgb(String colorStr) { - return Color.fromRGB(Integer.valueOf(colorStr.substring(1, 3), 16), Integer.valueOf(colorStr.substring(3, 5), 16), Integer.valueOf(colorStr.substring(5, 7), 16)); - } - - public static class ValueComparator implements Comparator<String> { - Map<String, Double> base; - - public ValueComparator(Map<String, Double> base) { - this.base = base; - } - - public int compare(String a, String b) { - if (base.get(a) >= base.get(b)) { - return -1; - } else { - return 1; - } - } - } - - public static class CompassPlayer { - Player p = null; - Double d = null; - - public CompassPlayer(Player p, Double d) { - this.p = p; - this.d = d; - } - - public Player getPlayer() { - return p; - } - - public Double getDistance() { - return d; - } - } - - public static CompassPlayer getNearestPlayer(Player p, Arena a) { - CompassPlayer ret = null; - double distance = 10000; - for (String p_ : a.getAllPlayers()) { - if (!p_.equalsIgnoreCase(p.getName()) && !MinigamesAPI.getAPI().getPluginInstance(a.getPlugin()).containsGlobalLost(p_)) { - if (Validator.isPlayerOnline(p_)) { - double newdist = Bukkit.getPlayer(p_).getLocation().distance(p.getLocation()); - if (newdist < distance) { - distance = newdist; - ret = new CompassPlayer(Bukkit.getPlayer(p_), distance); - } - } - } - } - return ret; - } - - static boolean windows = false; - - public static void restartServer() { - String system = System.getProperty("os.name"); - String startDir = System.getProperty("user.dir"); - String fileName = "start.sh"; - String jarFile = "craftbukkit.jar"; - if (system.contains("Windows")) { - fileName = "start.bat"; - windows = true; - } - if (Bukkit.getVersion().contains("Spigot")) { - jarFile = "spigot.jar"; - } - System.out.println(Bukkit.getVersion()); - System.out.println(system); - System.out.println(startDir); - final File f = new File(startDir + "\\" + fileName); - if (!f.exists()) { - PrintWriter writer; - try { - - writer = new PrintWriter(f, "UTF-8"); - if (windows) { - writer.println("@ECHO OFF"); - } else { - writer.println("#!/bin/bash"); - } - writer.println("java -Xms1024M -Xmx1024M -jar " + jarFile); - if (windows) { - writer.println("PAUSE"); - } - writer.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - Runtime.getRuntime().addShutdownHook(new Thread() { - public void run() { - try { - if (windows) { - Runtime.getRuntime().exec("CMD /C START \"" + f.getPath() + "\""); - } else { - Runtime.getRuntime().exec("sh " + f); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), new Runnable() { - public void run() { - Bukkit.getServer().shutdown(); - } - }, 20L); - } - - public static void sendStatsMessage(PluginInstance pli, Player p) { - if (pli.getMessagesConfig().getConfig().isSet("messages.stats")) { - int kills_ = pli.getStatsInstance().getKills(p.getName()); - int deaths_ = pli.getStatsInstance().getDeaths(p.getName()); - int money_ = 0; - if (MinigamesAPI.economy) { - money_ = (int) MinigamesAPI.econ.getBalance(p.getName()); - } - - String wins = Integer.toString(pli.getStatsInstance().getWins(p.getName())); - String loses = Integer.toString(pli.getStatsInstance().getLoses(p.getName())); - String kills = Integer.toString(kills_); - String deaths = Integer.toString(deaths_); - String money = Integer.toString(money_); - String points = Integer.toString(pli.getStatsInstance().getPoints(p.getName())); - String kdr = Integer.toString(Math.max(kills_, 1) / Math.max(deaths_, 1)); - for (String key : pli.getMessagesConfig().getConfig().getConfigurationSection("messages.stats").getKeys(false)) { - // Each line from the config gets checked for variables like <wins> or <money> and these get replaced by the values calculated above - String msg = pli.getMessagesConfig().getConfig().getString("messages.stats." + key).replaceAll("<wins>", wins).replaceAll("<loses>", loses).replaceAll("<alltime_kills>", kills).replaceAll("<alltime_deaths>", deaths).replaceAll("<points>", points).replaceAll("<kdr>", kdr).replaceAll("<money>", money); - Util.sendMessage(pli.getPlugin(), p, ChatColor.translateAlternateColorCodes('&', msg)); - } - } - } - - - public static void pushBack(Location l, Player p) { - Vector direction = l.toVector().subtract(p.getLocation().toVector()).normalize(); - p.setVelocity(direction); - if (p.isInsideVehicle()) { - p.getVehicle().setVelocity(direction.multiply(2.2D)); - } - p.spawnParticle(Particle.PORTAL, p.getLocation(), 10); - } - - public static Score getScore(Objective obj, String text) { - Score s = null; - Method getScore_ = null; - try { - if (MinigamesAPI.getAPI().below1710) { - getScore_ = obj.getClass().getDeclaredMethod("getScore", OfflinePlayer.class); - getScore_.setAccessible(true); - s = (Score) getScore_.invoke(obj, Bukkit.getOfflinePlayer(text)); - } else { - getScore_ = obj.getClass().getDeclaredMethod("getScore", String.class); - getScore_.setAccessible(true); - s = (Score) getScore_.invoke(obj, text); - } - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - return s; - } - - public static void resetScores(Scoreboard obj, String text) { - Method resetScores_ = null; - try { - if (MinigamesAPI.getAPI().below1710) { - resetScores_ = obj.getClass().getDeclaredMethod("resetScores", OfflinePlayer.class); - resetScores_.setAccessible(true); - resetScores_.invoke(obj, Bukkit.getOfflinePlayer(text)); - } else { - resetScores_ = obj.getClass().getDeclaredMethod("resetScores", String.class); - resetScores_.setAccessible(true); - resetScores_.invoke(obj, text); - } - } catch (Exception e) { - if (MinigamesAPI.debug) { - e.printStackTrace(); - } - } - } - - public static void saveInventory(Player player){ - armourContents.put(player.getName(), player.getInventory().getArmorContents()); - inventoryContents.put(player.getName(), player.getInventory().getContents()); - locations.put(player.getName(), player.getLocation()); - xplevel.put(player.getName(), player.getLevel()); - gamemode.put(player.getName(), player.getGameMode()); +public class Util +{ + + public static HashMap<String, ItemStack[]> armourContents = new HashMap<>(); + public static HashMap<String, ItemStack[]> inventoryContents = new HashMap<>(); + public static HashMap<String, Location> locations = new HashMap<>(); + public static HashMap<String, Integer> xplevel = new HashMap<>(); + public static HashMap<String, GameMode> gamemode = new HashMap<>(); + + public static void clearInv(final Player p) + { + if (p != null) + { + ArenaLogger.debug("Clearing inventory of " + p.getName()); + p.getInventory().clear(); + p.updateInventory(); + p.getInventory().setHelmet(null); + p.getInventory().setChestplate(null); + p.getInventory().setLeggings(null); + p.getInventory().setBoots(null); + p.updateInventory(); + } + } + + @SuppressWarnings("deprecation") + public static void teleportPlayerFixed(final Player p, final Location l) + { + ArenaLogger.debug("Teleporting " + p.getName()); + if (p.isInsideVehicle()) + { + final Entity ent = p.getVehicle(); + p.leaveVehicle(); + ent.eject(); + } + if (l != null) + { + if (l.getWorld() == null) + { + return; + } + p.teleport(l, TeleportCause.PLUGIN); + p.setFallDistance(-1F); + p.setVelocity(new Vector(0D, 0D, 0D)); + l.getWorld().refreshChunk(l.getChunk().getX(), l.getChunk().getZ()); + } + else + { + System.out.println("Couldn't teleport Player " + p.getName() + ", the location was not valid. Probably forgot to set a spawn/lobby?"); + } + p.setFireTicks(0); + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 30)); + } + + public static void teleportAllPlayers(final ArrayList<String> players, final Location l) + { + Long delay = 1L; + for (final String pl : players) + { + if (!Validator.isPlayerOnline(pl)) + { + continue; + } + final Player p = Bukkit.getPlayer(pl); + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> Util.teleportPlayerFixed(p, l), delay); + delay++; + } + } + + public static HashMap<String, Location> teleportAllPlayers(final ArrayList<String> players, final ArrayList<Location> locs) + { + final HashMap<String, Location> pspawnloc = new HashMap<>(); + int currentid = 0; + final int locslength = locs.size(); + for (final String p_ : players) + { + final Player p = Bukkit.getPlayer(p_); + Util.teleportPlayerFixed(p, locs.get(currentid)); + pspawnloc.put(p_, locs.get(currentid)); + currentid++; + if (currentid > locslength - 1) + { + currentid = 0; + } + } + return pspawnloc; + } + + public static Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final String count) + { + if (Validator.isArenaValid(plugin, arenaname)) + { + final String base = "arenas." + arenaname + "." + component + count; + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (!pli.getArenasConfig().getConfig().isSet(base + ".world") || Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")) == null) + { + return null; + } + return new Location(Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")), pli.getArenasConfig().getConfig().getDouble(base + ".location.x"), + pli.getArenasConfig().getConfig().getDouble(base + ".location.y"), pli.getArenasConfig().getConfig().getDouble(base + ".location.z"), + (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.yaw"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.pitch")); + } + return null; + } + + public static Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component) + { + if (Validator.isArenaValid(plugin, arenaname)) + { + final String base = "arenas." + arenaname + "." + component; + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (!pli.getArenasConfig().getConfig().isSet(base + ".world") || Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")) == null) + { + return null; + } + return new Location(Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")), pli.getArenasConfig().getConfig().getDouble(base + ".location.x"), + pli.getArenasConfig().getConfig().getDouble(base + ".location.y"), pli.getArenasConfig().getConfig().getDouble(base + ".location.z"), + (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.yaw"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.pitch")); + } + return null; + } + + public static Location getComponentForArenaRaw(final JavaPlugin plugin, final String arenaname, final String component) + { + final String base = "arenas." + arenaname + "." + component; + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (pli.getArenasConfig().getConfig().isSet(base)) + { + return new Location(Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")), pli.getArenasConfig().getConfig().getDouble(base + ".location.x"), + pli.getArenasConfig().getConfig().getDouble(base + ".location.y"), pli.getArenasConfig().getConfig().getDouble(base + ".location.z"), + (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.yaw"), (float) pli.getArenasConfig().getConfig().getDouble(base + ".location.pitch")); + } + return null; + } + + public static boolean isComponentForArenaValid(final JavaPlugin plugin, final String arenaname, final String component) + { + if (Validator.isArenaValid(plugin, arenaname)) + { + return Util.isComponentForArenaValidRaw(plugin, arenaname, component); + } + return false; + } + + public static boolean isComponentForArenaValidRaw(final JavaPlugin plugin, final String arenaname, final String component) + { + final String base = "arenas." + arenaname + "." + component; + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet(base); + } + + public static void saveComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final Location comploc) + { + final String base = "arenas." + arenaname + "." + component; + final ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); + config.getConfig().set(base + ".world", comploc.getWorld().getName()); + config.getConfig().set(base + ".location.x", comploc.getX()); + config.getConfig().set(base + ".location.y", comploc.getY()); + config.getConfig().set(base + ".location.z", comploc.getZ()); + config.getConfig().set(base + ".location.yaw", comploc.getYaw()); + config.getConfig().set(base + ".location.pitch", comploc.getPitch()); + config.saveConfig(); + } + + public static void saveMainLobby(final JavaPlugin plugin, final Location comploc) + { + final String base = "mainlobby"; + final ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); + config.getConfig().set(base + ".world", comploc.getWorld().getName()); + config.getConfig().set(base + ".location.x", comploc.getX()); + config.getConfig().set(base + ".location.y", comploc.getY()); + config.getConfig().set(base + ".location.z", comploc.getZ()); + config.getConfig().set(base + ".location.yaw", comploc.getYaw()); + config.getConfig().set(base + ".location.pitch", comploc.getPitch()); + config.saveConfig(); + } + + public static Location getMainLobby(final JavaPlugin plugin) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); + if (!config.isSet("mainlobby")) + { + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "You forgot to set the mainlobby!"); + } + return new Location(plugin.getServer().getWorld(config.getString("mainlobby.world")), config.getDouble("mainlobby.location.x"), config.getDouble("mainlobby.location.y"), + config.getDouble("mainlobby.location.z"), (float) config.getDouble("mainlobby.location.yaw"), (float) config.getDouble("mainlobby.location.pitch")); + } + + public static ArrayList<Location> getAllSpawns(final JavaPlugin plugin, final String arena) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); + final ArrayList<Location> ret = new ArrayList<>(); + if (config.isSet("arenas." + arena + ".spawns")) + { + for (final String spawn : config.getConfigurationSection("arenas." + arena + ".spawns.").getKeys(false)) + { + ret.add(Util.getComponentForArena(plugin, arena, "spawns." + spawn)); + } + } + return ret; + } + + public static void saveArenaToFile(final JavaPlugin plugin, final String arena) + { + final File f = new File(plugin.getDataFolder() + "/" + arena); + final Cuboid c = new Cuboid(Util.getComponentForArena(plugin, arena, ArenaConfigStrings.BOUNDS_LOW), Util.getComponentForArena(plugin, arena, ArenaConfigStrings.BOUNDS_HIGH)); + final Location start = c.getLowLoc(); + final Location end = c.getHighLoc(); + + final int width = end.getBlockX() - start.getBlockX(); + final int length = end.getBlockZ() - start.getBlockZ(); + final int height = end.getBlockY() - start.getBlockY(); + + MinigamesAPI.getAPI().getLogger().info("Bounds: " + Integer.toString(width) + " " + Integer.toString(height) + " " + Integer.toString(length)); + MinigamesAPI.getAPI().getLogger().info("Blocks to save: " + Integer.toString(width * height * length)); + + FileOutputStream fos; + ObjectOutputStream oos = null; + try + { + fos = new FileOutputStream(f); + oos = new BukkitObjectOutputStream(fos); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + for (int i = 0; i <= width; i++) + { + for (int j = 0; j <= height; j++) + { + for (int k = 0; k <= length; k++) + { + final Block change = c.getWorld().getBlockAt(start.getBlockX() + i, start.getBlockY() + j, start.getBlockZ() + k); + + final ArenaBlock bl = new ArenaBlock(change, change.getType().equals(Material.CHEST)); + + try + { + oos.writeObject(bl); + } + catch (final IOException e) + { + System.out.println(e.getMessage()); + } + } + } + } + + try + { + oos.close(); + } + catch (final IOException e) + { + e.printStackTrace(); + } + + MinigamesAPI.getAPI().getLogger().info("saved"); + } + + public static Sign getSignFromArena(final JavaPlugin plugin, final String arena) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (!pli.getArenasConfig().getConfig().isSet("arenas." + arena + ".sign.world")) + { + return null; + } + final Location b_ = new Location(Bukkit.getServer().getWorld(pli.getArenasConfig().getConfig().getString("arenas." + arena + ".sign.world")), + pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.x"), pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.y"), + pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.z")); + if (b_ != null) + { + if (b_.getWorld() != null) + { + if (b_.getBlock().getState() != null) + { + final BlockState bs = b_.getBlock().getState(); + Sign s_ = null; + if (bs instanceof Sign) + { + s_ = (Sign) bs; + } + return s_; + } + } + } + return null; + } + + public static Location getSignLocationFromArena(final JavaPlugin plugin, final String arena) + { + final Sign s = Util.getSignFromArena(plugin, arena); + if (s != null) + { + return s.getBlock().getLocation(); + } + else + { + return null; + } + } + + public static Arena getArenaBySignLocation(final JavaPlugin plugin, final Location sign) + { + for (final Arena arena : MinigamesAPI.getAPI().getPluginInstance(plugin).getArenas()) + { + if (sign != null && arena.getSignLocation() != null) + { + if (sign.getWorld().getName().equalsIgnoreCase(arena.getSignLocation().getWorld().getName())) + { + if (sign.distance(arena.getSignLocation()) < 1) + { + return arena; + } + } + } + } + return null; + } + + public static void updateSign(final JavaPlugin plugin, final Arena arena) + { + if (arena == null) + { + return; + } + + final Sign s = Util.getSignFromArena(plugin, arena.getInternalName()); + if (s != null) + { + ArenaLogger.debug("Updating sign for arena " + arena.getInternalName() + " in " + plugin.getName()); + final int count = arena.getAllPlayers().size(); + final int maxcount = arena.getMaxPlayers(); + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + final String state = arena.getArenaState().toString().toLowerCase(); + if (pli.cached_sign_states.containsKey(state)) + { + s.setLine(0, + pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(1, + pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(2, + pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(3, + pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + } + else + { + s.setLine(0, + pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(1, + pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(2, + pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + s.setLine(3, + pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + } + s.getBlock().getChunk().load(); + s.update(); + if (pli.color_background_wool_of_signs) + { + final org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) s.getBlock().getState().getData(); + final Block attachedBlock = s.getBlock().getRelative(s_.getAttachedFace()); + byte data = (byte) 5; + if (arena.getArenaState() == ArenaState.INGAME) + { + data = (byte) 14; + } + else if (arena.getArenaState() == ArenaState.RESTARTING) + { + data = (byte) 4; + } + attachedBlock.setData(data); + } + } + try + { + if (plugin.isEnabled()) + { + BungeeUtil.sendSignUpdateRequest(plugin, plugin.getName(), arena); + } + } + catch (final Exception e) + { + System.out.println("Failed sending bungee sign update: " + e.getMessage()); + } + } + + public static void updateSign(final JavaPlugin plugin, final Arena arena, final SignChangeEvent event) + { + final int count = arena.getAllPlayers().size(); + final int maxcount = arena.getMaxPlayers(); + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + final String arenastate = arena.getArenaState().toString().toLowerCase(); + event.setLine(0, + pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) + .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(1, + pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) + .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(2, + pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) + .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(3, + pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) + .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + if (pli.color_background_wool_of_signs) + { + final org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) event.getBlock().getState().getData(); + final Block attachedBlock = event.getBlock().getRelative(s_.getAttachedFace()); + byte data = (byte) 5; + if (arena.getArenaState() == ArenaState.INGAME) + { + data = (byte) 14; + } + else if (arena.getArenaState() == ArenaState.RESTARTING) + { + data = (byte) 4; + } + attachedBlock.setData(data); + } + } + + // used for random and leave sign + public static void updateSign(final JavaPlugin plugin, final SignChangeEvent event, final String arenastate) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", + new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + } + + public static ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasConfig cf) + { + final ArrayList<Arena> ret = new ArrayList<>(); + final FileConfiguration config = cf.getConfig(); + if (!config.isSet("arenas")) + { + return ret; + } + for (final String arena : config.getConfigurationSection("arenas.").getKeys(false)) + { + if (Validator.isArenaValid(plugin, arena, cf.getConfig())) + { + ret.add(Util.initArena(plugin, arena)); + } + } + return ret; + } + + public static Arena initArena(final JavaPlugin plugin, final String arena) + { + final Arena a = new Arena(plugin, arena); + final ArenaSetup s = MinigamesAPI.getAPI().getPluginInstance(plugin).arenaSetup; + a.init(Util.getSignLocationFromArena(plugin, arena), Util.getAllSpawns(plugin, arena), Util.getMainLobby(plugin), Util.getComponentForArena(plugin, arena, "lobby"), + s.getPlayerCount(plugin, arena, true), s.getPlayerCount(plugin, arena, false), s.getArenaVIP(plugin, arena)); + return a; + } + + public static boolean isNumeric(final String s) + { + return s.matches("[-+]?\\d*\\.?\\d+"); + } + + // example items: 351:6#ALL_DAMAGE:2#KNOCKBACK:2*1=NAME:LORE;267*1;3*64;3*64 + public static ArrayList<ItemStack> parseItems(final String rawitems) + { + final ArrayList<ItemStack> ret = new ArrayList<>(); + + try + { + final String[] a = rawitems.split(";"); + + for (String rawitem : a) + { + // crackshot support + if (rawitem.startsWith("crackshot:")) + { + final String[] guntype = rawitem.split(":"); + if (guntype.length > 1) + { + if (guntype[1].length() > 1) + { + final ItemStack gun = new ItemStack(Material.WOOD_HOE); + final ItemMeta gunmeta = gun.getItemMeta(); + gunmeta.setDisplayName(rawitem); + gun.setItemMeta(gunmeta); + ret.add(gun); + } + } + continue; + } + + // Potioneffects support + if (rawitem.startsWith("potioneffect:")) + { + final String[] potioneffecttype = rawitem.split(":"); + if (potioneffecttype.length > 1) + { + String str = potioneffecttype[1]; + if (potioneffecttype.length > 2) + { + str += ":" + potioneffecttype[2]; + } + if (str.length() > 1) + { + if (!str.contains(":")) + { + // duration + rawitem += ":99999"; + } + if (!str.contains("#")) + { + // level + rawitem += "#1"; + } + final ItemStack gun = new ItemStack(Material.WOOD_HOE); + final ItemMeta gunmeta = gun.getItemMeta(); + gunmeta.setDisplayName(rawitem); + gun.setItemMeta(gunmeta); + ret.add(gun); + } + } + continue; + } + + final int nameindex = rawitem.indexOf("="); + final String[] c = rawitem.split("\\*"); + int optional_armor_color_index = -1; + String itemid = c[0]; + String itemdata = "0"; + final String[] enchantments_ = itemid.split("#"); + final String[] enchantments = new String[enchantments_.length - 1]; + if (enchantments_.length > 1) + { + for (int i = 1; i < enchantments_.length; i++) + { + enchantments[i - 1] = enchantments_[i]; + } + } + itemid = enchantments_[0]; + final String[] d = itemid.split(":"); + if (d.length > 1) + { + itemid = d[0]; + itemdata = d[1]; + } + String itemamount = "1"; + if (c.length > 1) + { + itemamount = c[1]; + optional_armor_color_index = c[1].indexOf("#"); + if (optional_armor_color_index > 0) + { + itemamount = c[1].substring(0, optional_armor_color_index); + } + } + if (nameindex > -1) + { + itemamount = c[1].substring(0, c[1].indexOf("=")); + } + final int itemid_int = Util.isNumeric(itemid) ? Integer.parseInt(itemid) : 0; + if (itemid_int < 1) + { + System.out.println("Invalid item id: " + itemid); + continue; + } + final int itemamount_int = Util.isNumeric(itemamount) ? Integer.parseInt(itemamount) : 1; + final int itemdata_int = Util.isNumeric(itemdata) ? Integer.parseInt(itemdata) : 0; + final ItemStack nitem = new ItemStack(itemid_int, itemamount_int, (short) itemdata_int); + final ItemMeta m = nitem.getItemMeta(); + if (nitem.getType() != Material.ENCHANTED_BOOK) + { + for (final String enchant : enchantments) + { + final String[] e = enchant.split(":"); + final String ench = e[0]; + String lv = "1"; + if (e.length > 1) + { + lv = e[1]; + } + if (Enchantment.getByName(ench) != null) + { + m.addEnchant(Enchantment.getByName(ench), Integer.parseInt(lv), true); + } + } + } + + if (nameindex > -1) + { + final String namelore = rawitem.substring(nameindex + 1); + String name = ""; + String lore = ""; + final int i = namelore.indexOf(":"); + if (i > -1) + { + name = namelore.substring(0, i); + lore = namelore.substring(i + 1); + } + else + { + name = namelore; + } + m.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); + m.setLore(Arrays.asList(lore)); + } + + // RGB Color support for Armor + if (optional_armor_color_index > -1) + { + m.setDisplayName(c[1].substring(optional_armor_color_index)); + } + + nitem.setItemMeta(m); + if (nitem.getType() == Material.ENCHANTED_BOOK) + { + try + { + final EnchantmentStorageMeta meta = (EnchantmentStorageMeta) nitem.getItemMeta(); + for (final String enchant : enchantments) + { + final String[] e = enchant.split(":"); + final String ench = e[0]; + String lv = "1"; + if (e.length > 1) + { + lv = e[1]; + } + if (Enchantment.getByName(ench) != null) + { + meta.addStoredEnchant(Enchantment.getByName(ench), Integer.parseInt(lv), true); + } + } + nitem.setItemMeta(meta); + } + catch (final Exception e) + { + System.out.println("Failed parsing enchanted book. " + e.getMessage()); + } + } + ret.add(nitem); + } + if (ret == null || ret.size() < 1) + { + MinigamesAPI.getAPI().getLogger().severe("Found invalid class in config!"); + } + } + catch (final Exception e) + { + ret.add(new ItemStack(Material.STAINED_GLASS_PANE)); + System.out.println("Failed to load class items: " + e.getMessage() + " at [1] " + e.getStackTrace()[1].getLineNumber() + " [0] " + e.getStackTrace()[0].getLineNumber()); + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + final ItemStack rose = new ItemStack(Material.RED_ROSE); + final ItemMeta im = rose.getItemMeta(); + im.setDisplayName(ChatColor.RED + "Sowwy, failed to load class."); + rose.setItemMeta(im); + ret.add(rose); + } + return ret; + } + + public static void giveLobbyItems(final JavaPlugin plugin, final Player p) + { + ArenaLogger.debug("Giving lobby items to " + p.getName()); + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + final ItemStack classes_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.classes_selection_item")); + if (classes_item.getType() != Material.AIR) + { + final ItemMeta cimeta = classes_item.getItemMeta(); + cimeta.setDisplayName(pli.getMessagesConfig().classes_item); + classes_item.setItemMeta(cimeta); + } + + if (!plugin.getConfig().getBoolean("config.bungee.game_on_join")) + { + final ItemStack exit_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.exit_item")); + if (exit_item.getType() != Material.AIR) + { + final ItemMeta exitimeta = exit_item.getItemMeta(); + exitimeta.setDisplayName(pli.getMessagesConfig().exit_item); + exit_item.setItemMeta(exitimeta); + } + p.getInventory().setItem(8, exit_item); + p.updateInventory(); + } + + final ItemStack achievement_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.achievement_item")); + if (achievement_item.getType() != Material.AIR) + { + final ItemMeta achievement_itemmeta = achievement_item.getItemMeta(); + achievement_itemmeta.setDisplayName(pli.getMessagesConfig().achievement_item); + achievement_item.setItemMeta(achievement_itemmeta); + } + + final ItemStack shop_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.shop_selection_item")); + if (shop_item.getType() != Material.AIR) + { + final ItemMeta shop_itemmeta = shop_item.getItemMeta(); + shop_itemmeta.setDisplayName(pli.getMessagesConfig().shop_item); + shop_item.setItemMeta(shop_itemmeta); + } + + if (plugin.getConfig().getBoolean("config.classes_enabled")) + { + p.getInventory().addItem(classes_item); + } + if (pli.isAchievementGuiEnabled() && pli.getAchievementsConfig().getConfig().getBoolean("config.enabled")) + { + p.getInventory().addItem(achievement_item); + } + if (plugin.getConfig().getBoolean("config.shop_enabled")) + { + p.getInventory().addItem(shop_item); + } + p.updateInventory(); + + // custom lobby item + if (plugin.getConfig().getBoolean("config.extra_lobby_item.item0.enabled")) + { + final ItemStack custom_item0 = new ItemStack(plugin.getConfig().getInt("config.extra_lobby_item.item0.item")); + if (custom_item0.getType() != Material.AIR) + { + final ItemMeta custom_item0meta = custom_item0.getItemMeta(); + custom_item0meta.setDisplayName(plugin.getConfig().getString("config.extra_lobby_item.item0.name")); + custom_item0.setItemMeta(custom_item0meta); + } + p.getInventory().addItem(custom_item0); + p.updateInventory(); + } + } + + public static void giveSpectatorItems(final JavaPlugin plugin, final Player p) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + final ItemStack s_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.spectator_item")); + final ItemMeta s_imeta = s_item.getItemMeta(); + s_imeta.setDisplayName(pli.getMessagesConfig().spectator_item); + s_item.setItemMeta(s_imeta); + + final ItemStack exit_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.exit_item")); + final ItemMeta exitimeta = exit_item.getItemMeta(); + exitimeta.setDisplayName(pli.getMessagesConfig().exit_item); + exit_item.setItemMeta(exitimeta); + + p.getInventory().addItem(s_item); + p.getInventory().setItem(8, exit_item); + p.updateInventory(); + } + + public static void sendMessage(final Player p, final String arenaname, final String msgraw) + { + final String[] msgs = msgraw.replaceAll("<player>", p.getName()).replaceAll("<arena>", arenaname).split(";"); + for (final String msg : msgs) + { + p.sendMessage(msgs); + } + } + + public static void sendMessage(final JavaPlugin plugin, final Player p, final String msgraw) + { + if (msgraw.equalsIgnoreCase("")) + { + return; + } + final String[] msgs = msgraw.replaceAll("<player>", p.getName()).replaceAll("<game>", plugin.getName()).split(";"); + for (final String msg : msgs) + { + p.sendMessage(msg); + } + } + + public static ItemStack getCustomHead(final String name) + { + final ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); + final SkullMeta skullmeta = (SkullMeta) item.getItemMeta(); + skullmeta.setOwner(name); + item.setItemMeta(skullmeta); + return item; + } + + public static void spawnPowerup(final JavaPlugin plugin, final Arena a, final Location l, final ItemStack item) + { + final World w = l.getWorld(); + final Chicken c = w.spawn(l, Chicken.class); + c.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 100000, 100000)); + final Item i = w.dropItem(l, item); + c.setPassenger(i); + if (plugin.getConfig().getBoolean("config.powerup_spawning.broadcast")) + { + for (final String p_ : a.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_)) + { + final Player p = Bukkit.getPlayer(p_); + p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(plugin).getMessagesConfig().powerup_spawned); + } + } + } + if (plugin.getConfig().getBoolean("config.powerup_spawning.spawn_firework")) + { + Util.spawnFirework(l); + } + } + + static Random r = new Random(); + + public static void spawnFirework(final Player p) + { + Util.spawnFirework(p.getLocation()); + } + + public static void spawnFirework(final Location l) + { + final Firework fw = (Firework) l.getWorld().spawnEntity(l, EntityType.FIREWORK); + final FireworkMeta fwm = fw.getFireworkMeta(); + final FireworkEffect effect = FireworkEffect.builder().flicker(Util.r.nextBoolean()).withColor(Color.AQUA).withFade(Color.ORANGE).with(Type.BURST).trail(Util.r.nextBoolean()).build(); + fwm.addEffect(effect); + final int rp = Util.r.nextInt(2) + 1; + fwm.setPower(rp); + fw.setFireworkMeta(fwm); + } + + public static Color hexToRgb(final String colorStr) + { + return Color.fromRGB(Integer.valueOf(colorStr.substring(1, 3), 16), Integer.valueOf(colorStr.substring(3, 5), 16), Integer.valueOf(colorStr.substring(5, 7), 16)); + } + + public static class ValueComparator implements Comparator<String> + { + Map<String, Double> base; + + public ValueComparator(final Map<String, Double> base) + { + this.base = base; + } + + @Override + public int compare(final String a, final String b) + { + if (this.base.get(a) >= this.base.get(b)) + { + return -1; + } + else + { + return 1; + } + } + } + + public static class CompassPlayer + { + Player p = null; + Double d = null; + + public CompassPlayer(final Player p, final Double d) + { + this.p = p; + this.d = d; + } + + public Player getPlayer() + { + return this.p; + } + + public Double getDistance() + { + return this.d; + } + } + + public static CompassPlayer getNearestPlayer(final Player p, final Arena a) + { + CompassPlayer ret = null; + double distance = 10000; + for (final String p_ : a.getAllPlayers()) + { + if (!p_.equalsIgnoreCase(p.getName()) && !MinigamesAPI.getAPI().getPluginInstance(a.getPlugin()).containsGlobalLost(p_)) + { + if (Validator.isPlayerOnline(p_)) + { + final double newdist = Bukkit.getPlayer(p_).getLocation().distance(p.getLocation()); + if (newdist < distance) + { + distance = newdist; + ret = new CompassPlayer(Bukkit.getPlayer(p_), distance); + } + } + } + } + return ret; + } + + static boolean windows = false; + + public static void restartServer() + { + final String system = System.getProperty("os.name"); + final String startDir = System.getProperty("user.dir"); + String fileName = "start.sh"; + String jarFile = "craftbukkit.jar"; + if (system.contains("Windows")) + { + fileName = "start.bat"; + Util.windows = true; + } + if (Bukkit.getVersion().contains("Spigot")) + { + jarFile = "spigot.jar"; + } + System.out.println(Bukkit.getVersion()); + System.out.println(system); + System.out.println(startDir); + final File f = new File(startDir + "\\" + fileName); + if (!f.exists()) + { + PrintWriter writer; + try + { + + writer = new PrintWriter(f, "UTF-8"); + if (Util.windows) + { + writer.println("@ECHO OFF"); + } + else + { + writer.println("#!/bin/bash"); + } + writer.println("java -Xms1024M -Xmx1024M -jar " + jarFile); + if (Util.windows) + { + writer.println("PAUSE"); + } + writer.close(); + } + catch (final Exception e) + { + e.printStackTrace(); + } + } + + Runtime.getRuntime().addShutdownHook(new Thread() { + @Override + public void run() + { + try + { + if (Util.windows) + { + Runtime.getRuntime().exec("CMD /C START \"" + f.getPath() + "\""); + } + else + { + Runtime.getRuntime().exec("sh " + f); + } + } + catch (final IOException e) + { + e.printStackTrace(); + } + } + }); + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> Bukkit.getServer().shutdown(), 20L); + } + + public static void sendStatsMessage(final PluginInstance pli, final Player p) + { + if (pli.getMessagesConfig().getConfig().isSet("messages.stats")) + { + final int kills_ = pli.getStatsInstance().getKills(p.getName()); + final int deaths_ = pli.getStatsInstance().getDeaths(p.getName()); + int money_ = 0; + if (MinigamesAPI.economy) + { + money_ = (int) MinigamesAPI.econ.getBalance(p.getName()); + } + + final String wins = Integer.toString(pli.getStatsInstance().getWins(p.getName())); + final String loses = Integer.toString(pli.getStatsInstance().getLoses(p.getName())); + final String kills = Integer.toString(kills_); + final String deaths = Integer.toString(deaths_); + final String money = Integer.toString(money_); + final String points = Integer.toString(pli.getStatsInstance().getPoints(p.getName())); + final String kdr = Integer.toString(Math.max(kills_, 1) / Math.max(deaths_, 1)); + for (final String key : pli.getMessagesConfig().getConfig().getConfigurationSection("messages.stats").getKeys(false)) + { + // Each line from the config gets checked for variables like <wins> or <money> and these get replaced by the values calculated above + final String msg = pli.getMessagesConfig().getConfig().getString("messages.stats." + key).replaceAll("<wins>", wins).replaceAll("<loses>", loses).replaceAll("<alltime_kills>", kills) + .replaceAll("<alltime_deaths>", deaths).replaceAll("<points>", points).replaceAll("<kdr>", kdr).replaceAll("<money>", money); + Util.sendMessage(pli.getPlugin(), p, ChatColor.translateAlternateColorCodes('&', msg)); + } + } + } + + public static void pushBack(final Location l, final Player p) + { + final Vector direction = l.toVector().subtract(p.getLocation().toVector()).normalize(); + p.setVelocity(direction); + if (p.isInsideVehicle()) + { + p.getVehicle().setVelocity(direction.multiply(2.2D)); + } + p.spawnParticle(Particle.PORTAL, p.getLocation(), 10); + } + + public static Score getScore(final Objective obj, final String text) + { + Score s = null; + Method getScore_ = null; + try + { + if (MinigamesAPI.getAPI().below1710) + { + getScore_ = obj.getClass().getDeclaredMethod("getScore", OfflinePlayer.class); + getScore_.setAccessible(true); + s = (Score) getScore_.invoke(obj, Bukkit.getOfflinePlayer(text)); + } + else + { + getScore_ = obj.getClass().getDeclaredMethod("getScore", String.class); + getScore_.setAccessible(true); + s = (Score) getScore_.invoke(obj, text); + } + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + return s; + } + + public static void resetScores(final Scoreboard obj, final String text) + { + Method resetScores_ = null; + try + { + if (MinigamesAPI.getAPI().below1710) + { + resetScores_ = obj.getClass().getDeclaredMethod("resetScores", OfflinePlayer.class); + resetScores_.setAccessible(true); + resetScores_.invoke(obj, Bukkit.getOfflinePlayer(text)); + } + else + { + resetScores_ = obj.getClass().getDeclaredMethod("resetScores", String.class); + resetScores_.setAccessible(true); + resetScores_.invoke(obj, text); + } + } + catch (final Exception e) + { + if (MinigamesAPI.debug) + { + e.printStackTrace(); + } + } + } + + public static void saveInventory(final Player player) + { + Util.armourContents.put(player.getName(), player.getInventory().getArmorContents()); + Util.inventoryContents.put(player.getName(), player.getInventory().getContents()); + Util.locations.put(player.getName(), player.getLocation()); + Util.xplevel.put(player.getName(), player.getLevel()); + Util.gamemode.put(player.getName(), player.getGameMode()); player.getInventory().clear(); } - - public static void restoreInventory(Player player){ + + public static void restoreInventory(final Player player) + { player.getInventory().clear(); - player.teleport(locations.get(player.getName())); - - player.getInventory().setContents(inventoryContents.get(player.getName())); - player.getInventory().setArmorContents(armourContents.get(player.getName())); - player.setLevel(xplevel.get(player.getName())); - player.setGameMode(gamemode.get(player.getName())); - - xplevel.remove(player.getName()); - locations.remove(player.getName()); - armourContents.remove(player.getName()); - inventoryContents.remove(player.getName()); + player.teleport(Util.locations.get(player.getName())); + + player.getInventory().setContents(Util.inventoryContents.get(player.getName())); + player.getInventory().setArmorContents(Util.armourContents.get(player.getName())); + player.setLevel(Util.xplevel.get(player.getName())); + player.setGameMode(Util.gamemode.get(player.getName())); + + Util.xplevel.remove(player.getName()); + Util.locations.remove(player.getName()); + Util.armourContents.remove(player.getName()); + Util.inventoryContents.remove(player.getName()); } -} \ No newline at end of file +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java index 4c7f9e36..22a98170 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java @@ -1,3 +1,17 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ package com.comze_instancelabs.minigamesapi.util; import org.bukkit.Bukkit; @@ -10,88 +24,101 @@ import com.comze_instancelabs.minigamesapi.ArenaLogger; import com.comze_instancelabs.minigamesapi.MinigamesAPI; -public class Validator { - - /*** - * returns true if given player is online - * - * @param arena - * @return - */ - public static boolean isPlayerOnline(String player) { - Player p = Bukkit.getPlayer(player); - if (p != null) { - return true; - } - return false; - } - - /*** - * returns true if given player is online and in arena - * - * @param arena - * @return - */ - public static boolean isPlayerValid(JavaPlugin plugin, String player, Arena arena) { - return isPlayerValid(plugin, player, arena.getInternalName()); - } - - /*** - * returns true if given player is online and in arena - * - * @param arena - * @return - */ - public static boolean isPlayerValid(JavaPlugin plugin, String player, String arena) { - if (!isPlayerOnline(player)) { - return false; - } - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).global_players.containsKey(player)) { - return false; - } - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).global_players.get(player).getInternalName().equalsIgnoreCase(arena)) { - return false; - } - return true; - } - - /*** - * returns true if given arena was set up correctly - * - * @param arena - * @return - */ - public static boolean isArenaValid(JavaPlugin plugin, Arena arena) { - return isArenaValid(plugin, arena.getInternalName()); - } - - /*** - * returns true if given arena was set up correctly - * - * @param arena - * @return - */ - public static boolean isArenaValid(JavaPlugin plugin, String arena) { - FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - if (!config.isSet("arenas." + arena + ".lobby") || !config.isSet("arenas." + arena + ".spawns.spawn0")) { - ArenaLogger.debug(ChatColor.AQUA + arena + " is invalid! lobby:" + config.isSet("arenas." + arena + ".lobby") + " spawns.spawn0:" + config.isSet("arenas." + arena + ".spawns.spawn0")); - return false; - } - return true; - } - - /*** - * returns true if given arena was set up correctly - * - * @param arena - * @return - */ - public static boolean isArenaValid(JavaPlugin plugin, String arena, FileConfiguration cf) { - FileConfiguration config = cf; - if (!config.isSet("arenas." + arena + ".lobby") || !config.isSet("arenas." + arena + ".spawns.spawn0")) { - return false; - } - return true; - } - +public class Validator +{ + + /*** + * returns true if given player is online + * + * @param arena + * @return + */ + public static boolean isPlayerOnline(final String player) + { + final Player p = Bukkit.getPlayer(player); + if (p != null) + { + return true; + } + return false; + } + + /*** + * returns true if given player is online and in arena + * + * @param arena + * @return + */ + public static boolean isPlayerValid(final JavaPlugin plugin, final String player, final Arena arena) + { + return Validator.isPlayerValid(plugin, player, arena.getInternalName()); + } + + /*** + * returns true if given player is online and in arena + * + * @param arena + * @return + */ + public static boolean isPlayerValid(final JavaPlugin plugin, final String player, final String arena) + { + if (!Validator.isPlayerOnline(player)) + { + return false; + } + if (!MinigamesAPI.getAPI().getPluginInstance(plugin).global_players.containsKey(player)) + { + return false; + } + if (!MinigamesAPI.getAPI().getPluginInstance(plugin).global_players.get(player).getInternalName().equalsIgnoreCase(arena)) + { + return false; + } + return true; + } + + /*** + * returns true if given arena was set up correctly + * + * @param arena + * @return + */ + public static boolean isArenaValid(final JavaPlugin plugin, final Arena arena) + { + return Validator.isArenaValid(plugin, arena.getInternalName()); + } + + /*** + * returns true if given arena was set up correctly + * + * @param arena + * @return + */ + public static boolean isArenaValid(final JavaPlugin plugin, final String arena) + { + final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); + if (!config.isSet("arenas." + arena + ".lobby") || !config.isSet("arenas." + arena + ".spawns.spawn0")) + { + ArenaLogger.debug(ChatColor.AQUA + arena + " is invalid! lobby:" + config.isSet("arenas." + arena + ".lobby") + " spawns.spawn0:" + config.isSet("arenas." + arena + ".spawns.spawn0")); + return false; + } + return true; + } + + /*** + * returns true if given arena was set up correctly + * + * @param arena + * @return + */ + public static boolean isArenaValid(final JavaPlugin plugin, final String arena, final FileConfiguration cf) + { + final FileConfiguration config = cf; + if (!config.isSet("arenas." + arena + ".lobby") || !config.isSet("arenas." + arena + ".spawns.spawn0")) + { + return false; + } + return true; + } + } From 5399471cc13c1f8faff2c53247d5bcd8dd246a98 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 25 Jun 2016 20:41:37 +0200 Subject: [PATCH 019/266] rework config strings --- .../minigamesapi/Arena.java | 92 +++---- .../minigamesapi/ArenaConfigStrings.java | 230 ++++++++++++++++++ .../minigamesapi/ArenaListener.java | 57 +++-- .../minigamesapi/ArenaSetup.java | 34 +-- .../minigamesapi/Classes.java | 10 +- .../minigamesapi/PluginInstance.java | 26 +- .../minigamesapi/Rewards.java | 36 +-- .../comze_instancelabs/minigamesapi/Shop.java | 2 +- .../minigamesapi/Stats.java | 6 +- .../minigamesapi/arcade/ArcadeInstance.java | 25 +- .../minigamesapi/commands/CommandHandler.java | 20 +- .../minigamesapi/config/DefaultConfig.java | 224 ++++++++--------- .../minigamesapi/sql/MainSQL.java | 32 +-- .../util/ArenaLobbyScoreboard.java | 3 +- .../minigamesapi/util/ArenaScoreboard.java | 5 +- .../minigamesapi/util/Util.java | 52 ++-- .../minigamesapi/util/Validator.java | 7 +- 17 files changed, 549 insertions(+), 312 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 7a2ae05e..6f6552cd 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -333,13 +333,13 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final this.isSuccessfullyInitialized = false; } } - if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "lobbybounds.bounds.low") - && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "lobbybounds.bounds.high")) + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.LOBBY_BOUNDS_LOW) + && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.LOBBY_BOUNDS_HIGH)) { try { - this.lobby_boundaries = new Cuboid(Util.getComponentForArena(this.plugin, this.getInternalName(), "lobbybounds.bounds.low"), - Util.getComponentForArena(this.plugin, this.getInternalName(), "lobbybounds.bounds.high")); + this.lobby_boundaries = new Cuboid(Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.LOBBY_BOUNDS_LOW), + Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.LOBBY_BOUNDS_HIGH)); } catch (final Exception e) { @@ -347,12 +347,12 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final this.isSuccessfullyInitialized = false; } } - if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "specbounds.bounds.low") && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "specbounds.bounds.high")) + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_LOW) && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_HIGH)) { try { - this.spec_boundaries = new Cuboid(Util.getComponentForArena(this.plugin, this.getInternalName(), "specbounds.bounds.low"), - Util.getComponentForArena(this.plugin, this.getInternalName(), "specbounds.bounds.high")); + this.spec_boundaries = new Cuboid(Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_LOW), + Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_HIGH)); } catch (final Exception e) { @@ -361,15 +361,15 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final } } - if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), "specspawn")) + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_SPAWN)) { - this.specspawn = Util.getComponentForArena(this.plugin, this.getInternalName(), "specspawn"); + this.specspawn = Util.getComponentForArena(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_SPAWN); } - final String path = "arenas." + this.name + ".displayname"; + final String path = ArenaConfigStrings.ARENAS_PREFIX + this.name + ArenaConfigStrings.DISPLAYNAME_SUFFIX; if (this.pli.getArenasConfig().getConfig().isSet(path)) { - this.displayname = ChatColor.translateAlternateColorCodes('&', this.pli.getArenasConfig().getConfig().getString("arenas." + this.name + ".displayname")); + this.displayname = ChatColor.translateAlternateColorCodes('&', this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.name + ArenaConfigStrings.DISPLAYNAME_SUFFIX)); } else { @@ -749,7 +749,7 @@ public void joinPlayerLobby(final String playername) { if (Validator.isPlayerOnline(playername)) { - if (!Bukkit.getPlayer(playername).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) + if (!Bukkit.getPlayer(playername).hasPermission(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) { Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().no_perm_to_join_arena.replaceAll("<arena>", this.getInternalName())); return; @@ -762,7 +762,7 @@ public void joinPlayerLobby(final String playername) // if player vip -> kick someone and continue System.out.println(playername + " is vip: " + Bukkit.getPlayer(playername).hasPermission("arenas.*")); - if (!Bukkit.getPlayer(playername).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) + if (!Bukkit.getPlayer(playername).hasPermission(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) { // no VIP. return; @@ -775,7 +775,7 @@ public void joinPlayerLobby(final String playername) { if (Validator.isPlayerOnline(p_)) { - if (!Bukkit.getPlayer(p_).hasPermission("arenas." + this.getInternalName()) && !Bukkit.getPlayer(p_).hasPermission("arenas.*")) + if (!Bukkit.getPlayer(p_).hasPermission(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName()) && !Bukkit.getPlayer(p_).hasPermission("arenas.*")) { this.leavePlayer(p_, false, true); Bukkit.getPlayer(p_).sendMessage(this.pli.getMessagesConfig().you_got_kicked_because_vip_joined); @@ -840,15 +840,15 @@ public void joinPlayerLobby(final String playername) Bukkit.getServer().getPluginManager().callEvent(new PlayerJoinLobbyEvent(p, this.plugin, this)); Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().you_joined_arena.replaceAll("<arena>", this.getDisplayName())); Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().minigame_description); - if (this.pli.getArenasConfig().getConfig().isSet("arenas." + this.getInternalName() + ".author")) + if (this.pli.getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.AUTHOR_SUFFIX)) { Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().author_of_the_map.replaceAll("<arena>", this.getDisplayName()).replaceAll("<author>", - this.pli.getArenasConfig().getConfig().getString("arenas." + this.getInternalName() + ".author"))); + this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.AUTHOR_SUFFIX))); } - if (this.pli.getArenasConfig().getConfig().isSet("arenas." + this.getInternalName() + ".description")) + if (this.pli.getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.DESCRIPTION_SUFFIX)) { Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().description_of_the_map.replaceAll("<arena>", this.getDisplayName()).replaceAll("<description>", - this.pli.getArenasConfig().getConfig().getString("arenas." + this.getInternalName() + ".description"))); + this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.DESCRIPTION_SUFFIX))); } Bukkit.getScheduler().runTaskLater(this.getPlugin(), () -> { @@ -885,7 +885,7 @@ public void joinPlayerLobby(final String playername) if (this.ai == null && !this.isArcadeMain()) { - this.skip_join_lobby = this.plugin.getConfig().getBoolean("config.countdowns.skip_lobby"); + this.skip_join_lobby = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SKIP_LOBBY); } final Arena a = this; @@ -1112,7 +1112,7 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) { this.plugin.getConfig().set("temp.left_players." + playername + ".name", playername); this.plugin.getConfig().set("temp.left_players." + playername + ".plugin", this.plugin.getName()); - if (this.plugin.getConfig().getBoolean("config.reset_inventory_when_players_leave_server")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_RESET_INV_WHEN_LEAVING_SERVER)) { for (final ItemStack i : ap.getInventory()) { @@ -1291,7 +1291,7 @@ else if (a.waitinglobby != null) } } - if (Arena.this.plugin.getConfig().getBoolean("config.send_stats_on_stop")) + if (Arena.this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SEND_STATS_ON_STOP)) { Util.sendStatsMessage(Arena.this.pli, p); } @@ -1317,9 +1317,9 @@ else if (a.waitinglobby != null) } }, 5L); - if (this.plugin.getConfig().getBoolean("config.bungee.teleport_all_to_server_on_stop.tp")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP)) { - final String server = this.plugin.getConfig().getString("config.bungee.teleport_all_to_server_on_stop.server"); + final String server = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_SERVER); Bukkit.getScheduler().runTaskLater(this.plugin, () -> BungeeUtil.connectToServer(MinigamesAPI.getAPI(), p.getName(), server), 30L); return; } @@ -1333,7 +1333,7 @@ else if (a.waitinglobby != null) */ void playLeaveCommand(final Player p) { - final String path = "arenas." + this.name + ".leavecommand"; + final String path = ArenaConfigStrings.ARENAS_PREFIX + this.name + ".leavecommand"; final String leavecommand = this.pli.getArenasConfig().getConfig().getString(path); p.getServer().dispatchCommand(p, leavecommand); } @@ -1345,7 +1345,7 @@ void playLeaveCommand(final Player p) */ private boolean hasLeaveCommand() { - final String path = "arenas." + this.name + ".leavecommand"; + final String path = ArenaConfigStrings.ARENAS_PREFIX + this.name + ".leavecommand"; return this.pli.getArenasConfig().getConfig().isSet(path); } @@ -1417,7 +1417,7 @@ public void spectate(final String playername) this.pli.global_lost.put(playername, this); this.pli.getSpectatorManager().setSpectate(p, true); - if (!this.plugin.getConfig().getBoolean("config.spectator.spectator_after_fall_or_death")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SPECTATOR_AFTER_FALL_OR_DEATH)) { this.leavePlayer(playername, false, false); this.pli.scoreboardManager.updateScoreboard(this.plugin, this); @@ -1550,7 +1550,7 @@ public void startLobby(final boolean countdown) Sound lobbycountdown_sound_ = null; try { - lobbycountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString("config.sounds.lobby_countdown")); + lobbycountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SOUNDS_LOBBY_COUNTDOWN)); } catch (final Exception e) { @@ -1624,7 +1624,7 @@ public void start(final boolean tp) { this.pspawnloc = Util.teleportAllPlayers(this.getAllPlayers(), this.spawns); } - final boolean clearinv = this.plugin.getConfig().getBoolean("config.countdowns.clearinv_while_ingamecountdown"); + final boolean clearinv = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CLEANINV_WHILE_INGAMECOUNTDOWN); for (final String p_ : this.getAllPlayers()) { final Player p = Bukkit.getPlayer(p_); @@ -1639,7 +1639,7 @@ public void start(final boolean tp) } Bukkit.getScheduler().runTaskLater(this.plugin, () -> Arena.this.pli.scoreboardManager.updateScoreboard(Arena.this.plugin, this), 20L); this.startedIngameCountdown = true; - if (!this.plugin.getConfig().getBoolean("config.countdowns.ingame_countdown_enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_INGAME_COUNTDOWN_ENABLED)) { this.startRaw(); return; @@ -1648,7 +1648,7 @@ public void start(final boolean tp) Sound ingamecountdown_sound_ = null; try { - ingamecountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString("config.sounds.ingame_countdown")); + ingamecountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SOUNDS_INGAME_COUNTDOWN)); } catch (final Exception e) { @@ -1716,7 +1716,7 @@ void startRaw() this.startedIngameCountdown = false; Util.updateSign(this.plugin, this); Bukkit.getServer().getPluginManager().callEvent(new ArenaStartEvent(this.plugin, this)); - final boolean send_game_started_msg = this.plugin.getConfig().getBoolean("config.send_game_started_msg"); + final boolean send_game_started_msg = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SEND_GAME_STARTED_MSG); for (final String p_ : this.getAllPlayers()) { try @@ -1724,7 +1724,7 @@ void startRaw() if (!this.pli.global_lost.containsKey(p_)) { final Player p = Bukkit.getPlayer(p_); - if (this.plugin.getConfig().getBoolean("config.auto_add_default_kit")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_AUTO_ADD_DEFAULT_KIT)) { if (!this.pli.getClassesHandler().hasClass(p_)) { @@ -1737,7 +1737,7 @@ void startRaw() Util.clearInv(Bukkit.getPlayer(p_)); this.pli.getClassesHandler().getClass(p_); } - if (this.plugin.getConfig().getBoolean("config.shop_enabled")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SHOP_ENABLED)) { this.pli.getShopHandler().giveShopItems(p); } @@ -1763,7 +1763,7 @@ void startRaw() p.sendMessage(this.pli.getMessagesConfig().game_started); } } - if (this.plugin.getConfig().getBoolean("config.bungee.whitelist_while_game_running")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_WHITELIST_WHILE_GAME_RUNNING)) { Bukkit.setWhitelist(true); } @@ -1789,7 +1789,7 @@ void startRaw() } } Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> this.stopArena(), 5 * 20L); - }, 20L * 60L * (long) this.plugin.getConfig().getDouble("config.defaults.default_max_game_time_in_minutes") - 5 * 20L); + }, 20L * 60L * (long) this.plugin.getConfig().getDouble(ArenaConfigStrings.CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES) - 5 * 20L); } /** @@ -1826,15 +1826,15 @@ protected void stop() this.temp_players = new ArrayList<>(this.players); if (!this.temp_delay_stopped) { - if (this.plugin.getConfig().getBoolean("config.delay.enabled")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_DELAY_ENABLED)) { Bukkit.getScheduler().runTaskLater(this.plugin, () -> { Arena.this.temp_delay_stopped = true; a.stopArena(); - }, this.plugin.getConfig().getInt("config.delay.amount_seconds") * 20L); + }, this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_DELAY_AMOUNT_SECONDS) * 20L); this.setArenaState(ArenaState.RESTARTING); Util.updateSign(this.plugin, this); - if (this.plugin.getConfig().getBoolean("config.spawn_fireworks_for_winners")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SPAWN_FIREWORKS_FOR_WINNERS)) { if (this.getAllPlayers().size() > 0) { @@ -1940,14 +1940,14 @@ protected void stop() * } */ - if (this.plugin.getConfig().getBoolean("config.bungee.whitelist_while_game_running")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_WHITELIST_WHILE_GAME_RUNNING)) { Bukkit.setWhitelist(false); } - if (this.plugin.getConfig().getBoolean("config.execute_cmds_on_stop")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXECUTE_CMDS_ON_STOP)) { - final String[] cmds = this.plugin.getConfig().getString("config.cmds").split(";"); + final String[] cmds = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_CMDS).split(";"); if (cmds.length > 0) { for (final String cmd : cmds) @@ -1957,9 +1957,9 @@ protected void stop() } } - if (this.plugin.getConfig().getBoolean("config.bungee.teleport_all_to_server_on_stop.tp")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP)) { - final String server = this.plugin.getConfig().getString("config.bungee.teleport_all_to_server_on_stop.server"); + final String server = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_SERVER); Bukkit.getScheduler().runTaskLater(this.plugin, () -> { for (final Player p : Bukkit.getOnlinePlayers()) { @@ -1969,9 +1969,9 @@ protected void stop() return; } - if (this.plugin.getConfig().getBoolean("config.execute_cmds_on_stop")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXECUTE_CMDS_ON_STOP)) { - final String[] cmds = this.plugin.getConfig().getString("config.cmds_after").split(";"); + final String[] cmds = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_CMDS_AFTER).split(";"); if (cmds.length > 0) { for (final String cmd : cmds) @@ -1999,7 +1999,7 @@ protected void stop() { return; } - if (this.plugin.getConfig().getBoolean("config.map_rotation")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MAP_ROTATION)) { Bukkit.getScheduler().runTaskLater(this.plugin, () -> a.nextArenaOnMapRotation(temp), 35L); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java index 045555be..f47a13cf 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -29,4 +29,234 @@ public interface ArenaConfigStrings /** arenas higher boundary. */ String BOUNDS_HIGH = "bounds.high"; //$NON-NLS-1$ + /** arenas lobby lower boundary. */ + String LOBBY_BOUNDS_LOW = "lobbybounds.bounds.low"; //$NON-NLS-1$ + + /** arenas lobby higher boundary. */ + String LOBBY_BOUNDS_HIGH = "lobbybounds.bounds.high"; //$NON-NLS-1$ + + /** arenas spectator lower boundary. */ + String SPEC_BOUNDS_LOW = "specbounds.bounds.low"; //$NON-NLS-1$ + + /** arenas spectator higher boundary. */ + String SPEC_BOUNDS_HIGH = "specbounds.bounds.high"; //$NON-NLS-1$ + + /** arenas spectator spawn location. */ + String SPEC_SPAWN = "specspawn"; //$NON-NLS-1$ + + + + /** prefix for arenas config. */ + String ARENAS_PREFIX = "arenas."; //$NON-NLS-1$ + + /** suffix for arenas display name. */ + String DISPLAYNAME_SUFFIX = ".displayname"; //$NON-NLS-1$ + + /** suffix for arenas author. */ + String AUTHOR_SUFFIX = ".author"; //$NON-NLS-1$ + + /** suffix for arenas description. */ + String DESCRIPTION_SUFFIX = ".description"; //$NON-NLS-1$ + + + + /** TODO: describe config option. */ + String CONFIG_CLASS_SELECTION_ITEM = "config.selection_items.classes_selection_item"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EXIT_ITEM = "config.selection_items.exit_item"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ACHIEVEMENT_ITEMS = "config.selection_items.achievement_item"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SPECTATOR_ITEM = "config.selection_items.spectator_item"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SHOP_SELECTION_ITEM = "config.selection_items.shop_selection_item"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_CLASSES_GUI_ROWS = "config.GUI.classes_gui_rows"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SHOP_GUI_ROWS = "config.GUI.shop_gui_rows"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SPECTATOR_AFTER_FALL_OR_DEATH = "config.spectator.spectator_after_fall_or_death"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SPECTATOR_MOVE_Y_LOCK = "config.spectator.spectator_move_y_lock"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_DEFAULT_MAX_PLAYERS = "config.defaults.default_max_players"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_DEFAULT_MIN_PLAYERS = "config.defaults.default_min_players"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES = "config.defaults.default_max_game_time_in_minutes"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_LOBBY_COUNTDOWN = "config.countdowns.lobby_countdown"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_INGAME_COUNTDOWN = "config.countdowns.ingame_countdown"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_INGAME_COUNTDOWN_ENABLED = "config.countdowns.ingame_countdown_enabled"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_SKIP_LOBBY = "config.countdowns.skip_lobby"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_CLEANINV_WHILE_INGAMECOUNTDOWN = "config.countdowns.clearinv_while_ingamecountdown"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_CLASSES_ENABLED = "config.classes_enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SHOP_ENABLED = "config.shop_enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_USE_CREADITS_INSTEAD_MONEY_FOR_KITS = "config.use_credits_instead_of_money_for_kits"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_RESET_INV_WHEN_LEAVING_SERVER = "config.reset_inventory_when_players_leave_server"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_COLOR_BACKGROUND_WOOL = "config.color_background_wool_of_signs"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SHOW_CLASSES_WITHOUT_PERM = "config.show_classes_without_usage_permission"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_REWARDS_ECONOMY = "config.rewards.economy"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ECONOMY_REWARD = "config.rewards.economy_reward"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ITEM_REWARD = "config.rewards.item_reward"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ITEM_REWARD_IDS = "config.rewards.item_reward_ids"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_COMMAND_REWARD = "config.rewards.command_reward"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_COMMAND = "config.rewards.command"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ECONOMY_FOR_KILLS = "config.rewards.economy_for_kills"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ECONOMY_REWARD_FOR_KILLS = "config.rewards.economy_reward_for_kills"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_COMMAND_REWARD_FOR_KILLS = "config.rewards.command_reward_for_kills"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_COMMAND_FOR_KILLS = "config.rewards.command_for_kills"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ECONOMY_FOR_PARTICIPATION = "config.rewards.economy_for_participation"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_ECONOMY_REWARD_FOR_PARTICIPATION = "config.rewards.economy_reward_for_participation"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_COMMAND_REWARD_FOR_PARTICIPATION = "config.rewards.command_reward_for_participation"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_REWARDS_COMMAND_FOR_PARTICIPATION = "config.rewards.command_for_participation"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_STATS_POINTS_FOR_KILL = "config.stats.points_for_kill"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_STATS_POINTS_FOR_WIN = "config.stats.points_for_win"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_ARCADE_ENABLED = "config.arcade.enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_MIN_PLAYERS = "config.arcade.min_players"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_MAX_PLAYERS = "config.arcade.max_players"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_ARENA_TO_PREFER_ENABLED = "config.arcade.arena_to_prefer.enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_ARENA_TO_PREFER_ARENA = "config.arcade.arena_to_prefer.arena"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_LOBBY_COUNTDOWN = "config.arcade.lobby_countdown"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_SHOW_EACH_LOBBY_COUNTDOWN = "config.arcade.show_each_lobby_countdown"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_INFINITE_ENABLED = "config.arcade.infinite_mode.enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ARCADE_INFINITE_SECONDS_TO_NEW_ROUND = "config.arcade.infinite_mode.seconds_to_new_round"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_BUNGEE_GAME_ON_JOIN = "config.bungee.game_on_join"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP = "config.bungee.teleport_all_to_server_on_stop.tp"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_SERVER = "config.bungee.teleport_all_to_server_on_stop.server"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_BUNGEE_WHITELIST_WHILE_GAME_RUNNING = "config.bungee.whitelist_while_game_running"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EXECUTE_CMDS_ON_STOP = "config.execute_cmds_on_stop"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_CMDS = "config.cmds"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_CMDS_AFTER = "config.cmds_after"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_MAP_ROTATION = "config.map_rotation"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_BROADCAST_WIN = "config.broadcast_win"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_BUY_CLASSES_FOREVER = "config.buy_classes_forever"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_DISABLE_COMMANDS_IN_ARENA = "config.disable_commands_in_arena"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_COMMAND_WHITELIST = "config.command_whitelist"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_LEAVE_COMMAND = "config.leave_command"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SPAWN_FIREWORKS_FOR_WINNERS = "config.spawn_fireworks_for_winners"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_POWERUP_BROADCAST = "config.powerup_spawning.broadcast"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_POWERUP_FIREWORKS = "config.powerup_spawning.spawn_firework"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_USE_CUSTOM_SCOREBOARD = "config.use_custom_scoreboard"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_DELAY_ENABLED = "config.delay.enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_DELAY_AMOUNT_SECONDS = "config.delay.amount_seconds"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SEND_GAME_STARTED_MSG = "config.send_game_started_msg"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_AUTO_ADD_DEFAULT_KIT = "config.auto_add_default_kit"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_LAST_MAN_STANDING_WINS = "config.last_man_standing_wins"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EFFECTS_BLOOD = "config.effects.blood"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EFFECTS_DMG_IDENTIFIER_HOLO = "config.effects.damage_identifier_holograms"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EFFECTS_DEAD_IN_FAKE_BED = "config.effects.dead_in_fake_bed"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EFFECTS_1_8_TITLES = "config.effects.1_8_titles"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EFFECTS_1_8_SPECTATOR_MODE = "config.effects.1_8_spectator_mode"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SOUNDS_LOBBY_COUNTDOWN = "config.sounds.lobby_countdown"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SOUNDS_INGAME_COUNTDOWN = "config.sounds.ingame_countdown"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_CHAT_PER_ARENA_ONLY = "config.chat_per_arena_only"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_CHAT_SHOW_SCORE_IN_ARENA = "config.chat_show_score_in_arena"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_COMPASS_TRACKING_ENABLED = "config.compass_tracking_enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_ALLOW_CLASSES_SELECTION_OUT_OF_ARENAS = "config.allow_classes_selection_out_of_arenas"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_SEND_STATS_ON_STOP = "config.send_stats_on_stop"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_USE_XP_BAR_LEVEL = "config.use_xp_bar_level"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_USE_OLD_RESET_METHOD = "config.use_old_reset_method"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_CHAT_ENABLED = "config.chat_enabled"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_EXTRA_LOBBY_ITEM_PREFIX = "config.extra_lobby_item."; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX = ".enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX = ".item"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EXTRA_LOBBY_ITEM_NAME_SUFFIX = ".name"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX = ".command"; //$NON-NLS-1$ + + /** TODO: describe config option. */ + String CONFIG_MYSQL_ENABLED = "mysql.enabled"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_MYSQL_HOST = "mysql.host"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_MYSQL_USER = "mysql.user"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_MYSQL_PW = "mysql.pw"; //$NON-NLS-1$ + /** TODO: describe config option. */ + String CONFIG_MYSQL_DATABASE = "mysql.database"; //$NON-NLS-1$ + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 7e827813..68198904 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -103,7 +103,7 @@ public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, fi this.plugin = plugin; this.pli = pinstance; this.setName(minigame); - this.leave_cmd = plugin.getConfig().getString("config.leave_command"); + this.leave_cmd = plugin.getConfig().getString(ArenaConfigStrings.CONFIG_LEAVE_COMMAND); } public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) @@ -901,7 +901,7 @@ public void onBlockBreak(final BlockBreakEvent event) final Arena arena = Util.getArenaBySignLocation(this.plugin, event.getBlock().getLocation()); if (arena != null) { - this.pli.getArenasConfig().getConfig().set("arenas." + arena.getInternalName() + ".sign", null); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena.getInternalName() + ".sign", null); this.pli.getArenasConfig().saveConfig(); } } @@ -1186,7 +1186,7 @@ else if (event.getClickedBlock().getType() == Material.DISPENSER || event.getCli { return; } - if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.classes_selection_item")) + if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_CLASS_SELECTION_ITEM)) { if (a.getArenaState() != ArenaState.INGAME) { @@ -1194,7 +1194,7 @@ else if (event.getClickedBlock().getType() == Material.DISPENSER || event.getCli event.setCancelled(true); } } - else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.exit_item")) + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_EXIT_ITEM)) { if (a.getArenaState() != ArenaState.INGAME) { @@ -1210,7 +1210,7 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.s } } } - else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.spectator_item")) + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_SPECTATOR_ITEM)) { if (this.pli.containsGlobalLost(p.getName())) { @@ -1218,7 +1218,7 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.s event.setCancelled(true); } } - else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.achievement_item")) + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ACHIEVEMENT_ITEMS)) { if (this.pli.isAchievementGuiEnabled()) { @@ -1229,7 +1229,7 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.s } } } - else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.selection_items.shop_selection_item")) + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_SHOP_SELECTION_ITEM)) { if (a.getArenaState() != ArenaState.INGAME) { @@ -1237,14 +1237,13 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.s event.setCancelled(true); } } - else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.extra_lobby_item.item0.item")) + else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX)) { - if (this.plugin.getConfig().getBoolean("config.extra_lobby_item.item0.enabled")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX)) { if (a.getArenaState() != ArenaState.INGAME) { - // Bukkit.dispatchCommand(Bukkit.getConsoleSender(), plugin.getConfig().getString("config.extra_lobby_item.item0.command")); - p.performCommand(this.plugin.getConfig().getString("config.extra_lobby_item.item0.command")); + p.performCommand(this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX)); } } } @@ -1252,7 +1251,7 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt("config.e { if (a.getArenaState() == ArenaState.INGAME) { - if (this.plugin.getConfig().getBoolean("config.compass_tracking_enabled")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_COMPASS_TRACKING_ENABLED)) { final CompassPlayer temp = Util.getNearestPlayer(p, a); if (temp.getPlayer() != null) @@ -1284,10 +1283,10 @@ public void onSignChange(final SignChangeEvent event) final String arena = event.getLine(1); if (arena.equalsIgnoreCase("random")) { - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.world", p.getWorld().getName()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.x", event.getBlock().getLocation().getBlockX()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.y", event.getBlock().getLocation().getBlockY()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.location.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.location.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); this.pli.getArenasConfig().saveConfig(); Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("<component>", "arena (random) sign")); Util.updateSign(this.plugin, event, arena); @@ -1302,10 +1301,10 @@ else if (arena.equalsIgnoreCase("leave")) count++; } } - this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.world", p.getWorld().getName()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.x", event.getBlock().getLocation().getBlockX()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.y", event.getBlock().getLocation().getBlockY()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + "." + count + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + "." + count + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + "." + count + ".sign.location.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + "." + count + ".sign.location.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + "." + count + ".sign.location.z", event.getBlock().getLocation().getBlockZ()); this.pli.getArenasConfig().saveConfig(); Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("<component>", "arena (leave) sign")); Util.updateSign(this.plugin, event, arena); @@ -1314,10 +1313,10 @@ else if (arena.equalsIgnoreCase("leave")) { if (Validator.isArenaValid(this.plugin, arena)) { - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.world", p.getWorld().getName()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.x", event.getBlock().getLocation().getBlockX()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.y", event.getBlock().getLocation().getBlockY()); - this.pli.getArenasConfig().getConfig().set("arenas." + arena + ".sign.loc.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.z", event.getBlock().getLocation().getBlockZ()); this.pli.getArenasConfig().saveConfig(); Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("<component>", "arena sign")); } @@ -1391,7 +1390,7 @@ public void onPlayerJoin(final PlayerJoinEvent event) }, 5); } - if (this.plugin.getConfig().getBoolean("config.bungee.game_on_join")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_GAME_ON_JOIN)) { int c = 0; final List<String> arenas = new ArrayList<>(); @@ -1482,14 +1481,14 @@ public void onChat(final AsyncPlayerChatEvent event) return; } } - if (this.plugin.getConfig().getBoolean("config.chat_show_score_in_arena")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CHAT_SHOW_SCORE_IN_ARENA)) { if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) { event.setFormat(ChatColor.GRAY + "[" + ChatColor.GREEN + this.pli.getStatsInstance().getPoints(event.getPlayer().getName()) + ChatColor.GRAY + "] " + event.getFormat()); } } - if (this.plugin.getConfig().getBoolean("config.chat_per_arena_only")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CHAT_PER_ARENA_ONLY)) { if (this.pli.containsGlobalPlayer(p.getName())) { @@ -1524,11 +1523,11 @@ public void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent ev } if (this.pli.containsGlobalPlayer(event.getPlayer().getName()) && !event.getPlayer().isOp()) { - if (!this.plugin.getConfig().getBoolean("config.disable_commands_in_arena")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_DISABLE_COMMANDS_IN_ARENA)) { return; } - if (this.plugin.getConfig().getString("config.command_whitelist").toLowerCase().contains(event.getMessage().toLowerCase())) + if (this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_COMMAND_WHITELIST).toLowerCase().contains(event.getMessage().toLowerCase())) { return; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java index 5d460e06..ec1df148 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java @@ -85,7 +85,7 @@ public void setSpawn(final JavaPlugin plugin, final String arenaname, final Loca public boolean removeSpawn(final JavaPlugin plugin, final String arenaname, final int count) { final ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); - final String path = "arenas." + arenaname + ".spawns.spawn" + Integer.toString(count); + final String path = ArenaConfigStrings.ARENAS_PREFIX + arenaname + ".spawns.spawn" + Integer.toString(count); boolean ret = false; if (config.getConfig().isSet(path)) { @@ -217,7 +217,7 @@ public Arena saveArena(final JavaPlugin plugin, final String arenaname) e.printStackTrace(); } - final String path = "arenas." + arenaname + ".displayname"; + final String path = ArenaConfigStrings.ARENAS_PREFIX + arenaname + ArenaConfigStrings.DISPLAYNAME_SUFFIX; if (!pli.getArenasConfig().getConfig().isSet(path)) { pli.getArenasConfig().getConfig().set(path, arenaname); @@ -234,7 +234,7 @@ public void setPlayerCount(final JavaPlugin plugin, final String arena, final in { component = "min_players"; } - final String base = "arenas." + arena + "." + component; + final String base = ArenaConfigStrings.ARENAS_PREFIX + arena + "." + component; MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set(base, count); MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); } @@ -243,53 +243,53 @@ public int getPlayerCount(final JavaPlugin plugin, final String arena, final boo { if (!max) { - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet("arenas." + arena + ".min_players")) + if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".min_players")) { - this.setPlayerCount(plugin, arena, plugin.getConfig().getInt("config.defaults.default_min_players"), max); - return plugin.getConfig().getInt("config.defaults.default_min_players"); + this.setPlayerCount(plugin, arena, plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_DEFAULT_MIN_PLAYERS), max); + return plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_DEFAULT_MIN_PLAYERS); } - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt("arenas." + arena + ".min_players"); + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".min_players"); } - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet("arenas." + arena + ".max_players")) + if (!MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".max_players")) { - this.setPlayerCount(plugin, arena, plugin.getConfig().getInt("config.defaults.default_max_players"), max); - return plugin.getConfig().getInt("config.defaults.default_max_players"); + this.setPlayerCount(plugin, arena, plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_DEFAULT_MAX_PLAYERS), max); + return plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_DEFAULT_MAX_PLAYERS); } - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt("arenas." + arena + ".max_players"); + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".max_players"); } public void setArenaVIP(final JavaPlugin plugin, final String arena, final boolean vip) { - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".is_vip", vip); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".is_vip", vip); MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); } public boolean getArenaVIP(final JavaPlugin plugin, final String arena) { - return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getBoolean("arenas." + arena + ".is_vip"); + return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().getBoolean(ArenaConfigStrings.ARENAS_PREFIX + arena + ".is_vip"); } public void setArenaEnabled(final JavaPlugin plugin, final String arena, final boolean enabled) { - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".enabled", enabled); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".enabled", enabled); MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); } public boolean getArenaEnabled(final JavaPlugin plugin, final String arena) { final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - return config.isSet("arenas." + arena + ".enabled") ? config.getBoolean("arenas." + arena + ".enabled") : true; + return config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".enabled") ? config.getBoolean(ArenaConfigStrings.ARENAS_PREFIX + arena + ".enabled") : true; } public void setShowScoreboard(final JavaPlugin plugin, final String arena, final boolean enabled) { - MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set("arenas." + arena + ".showscoreboard", enabled); + MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".showscoreboard", enabled); MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().saveConfig(); } public boolean getShowScoreboard(final JavaPlugin plugin, final String arena) { final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - return config.isSet("arenas." + arena + ".showscoreboard") ? config.getBoolean("arenas." + arena + ".showscoreboard") : true; + return config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".showscoreboard") ? config.getBoolean(ArenaConfigStrings.ARENAS_PREFIX + arena + ".showscoreboard") : true; } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java index a1b66eb4..7c32bf53 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java @@ -74,8 +74,8 @@ public void openGUI(final String p) } else { - iconm = new IconMenu(this.pli.getMessagesConfig().classes_item, (9 * this.plugin.getConfig().getInt("config.GUI.classes_gui_rows") > mincount - 1) - ? 9 * this.plugin.getConfig().getInt("config.GUI.classes_gui_rows") : Math.round(mincount / 9) * 9 + 9, event -> { + iconm = new IconMenu(this.pli.getMessagesConfig().classes_item, (9 * this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_CLASSES_GUI_ROWS) > mincount - 1) + ? 9 * this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_CLASSES_GUI_ROWS) : Math.round(mincount / 9) * 9 + 9, event -> { if (event.getPlayer().getName().equalsIgnoreCase(p)) { if (Classes.this.pli.global_players.containsKey(p)) @@ -448,7 +448,7 @@ public boolean kitRequiresMoney(final String kit) public boolean kitTakeMoney(final Player p, final String kit) { // Credits - if (this.plugin.getConfig().getBoolean("config.use_credits_instead_of_money_for_kits")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_CREADITS_INSTEAD_MONEY_FOR_KITS)) { final String uuid = p.getUniqueId().toString(); int points = 0; @@ -462,7 +462,7 @@ public boolean kitTakeMoney(final Player p, final String kit) { points = MinigamesAPI.getAPI().statsglobal.getConfig().getInt("players." + uuid + ".points"); } - if (this.plugin.getConfig().getBoolean("config.buy_classes_forever")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUY_CLASSES_FOREVER)) { final ClassesConfig cl = this.pli.getClassesConfig(); if (!cl.getConfig().isSet("players.bought_kits." + p.getName() + "." + kit)) @@ -524,7 +524,7 @@ public boolean kitTakeMoney(final Player p, final String kit) } if (MinigamesAPI.economy) { - if (this.plugin.getConfig().getBoolean("config.buy_classes_forever")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUY_CLASSES_FOREVER)) { final ClassesConfig cl = this.pli.getClassesConfig(); if (!cl.getConfig().isSet("players.bought_kits." + p.getName() + "." + kit)) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java index 5b63efb7..048ce031 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java @@ -124,19 +124,19 @@ public PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, public void reloadVariables() { - this.lobby_countdown = this.plugin.getConfig().getInt("config.countdowns.lobby_countdown") + 1; - this.ingame_countdown = this.plugin.getConfig().getInt("config.countdowns.ingame_countdown") + 1; - this.spectator_move_y_lock = this.plugin.getConfig().getBoolean("config.spectator.spectator_move_y_lock"); - this.use_xp_bar_level = this.plugin.getConfig().getBoolean("config.use_xp_bar_level"); - this.blood_effects = this.plugin.getConfig().getBoolean("config.effects.blood"); - this.damage_identifier_effects = this.plugin.getConfig().getBoolean("config.effects.damage_identifier_holograms"); - this.dead_in_fake_bed_effects = this.plugin.getConfig().getBoolean("config.effects.dead_in_fake_bed"); - this.color_background_wool_of_signs = this.plugin.getConfig().getBoolean("config.color_background_wool_of_signs"); - this.spectator_mode_1_8 = this.plugin.getConfig().getBoolean("config.effects.1_8_spectator_mode"); - this.last_man_standing = this.plugin.getConfig().getBoolean("config.last_man_standing_wins"); - this.old_reset = this.plugin.getConfig().getBoolean("config.use_old_reset_method"); - this.show_classes_without_usage_permission = this.plugin.getConfig().getBoolean("config.show_classes_without_usage_permission"); - this.chat_enabled = this.plugin.getConfig().getBoolean("config.chat_enabled"); + this.lobby_countdown = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_LOBBY_COUNTDOWN) + 1; + this.ingame_countdown = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_INGAME_COUNTDOWN) + 1; + this.spectator_move_y_lock = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SPECTATOR_MOVE_Y_LOCK); + this.use_xp_bar_level = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_XP_BAR_LEVEL); + this.blood_effects = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_BLOOD); + this.damage_identifier_effects = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_DMG_IDENTIFIER_HOLO); + this.dead_in_fake_bed_effects = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_DEAD_IN_FAKE_BED); + this.color_background_wool_of_signs = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_COLOR_BACKGROUND_WOOL); + this.spectator_mode_1_8 = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_1_8_SPECTATOR_MODE); + this.last_man_standing = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_LAST_MAN_STANDING_WINS); + this.old_reset = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_OLD_RESET_METHOD); + this.show_classes_without_usage_permission = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SHOW_CLASSES_WITHOUT_PERM); + this.chat_enabled = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CHAT_ENABLED); // Cache sign configuration for (final String state : ArenaState.getAllStateNames()) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index ca78e14c..3ead5a97 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -60,21 +60,21 @@ public Rewards(final JavaPlugin plugin) public void reloadVariables() { - this.economyrewards = this.plugin.getConfig().getBoolean("config.rewards.economy"); - this.itemrewards = this.plugin.getConfig().getBoolean("config.rewards.item_reward"); - this.commandrewards = this.plugin.getConfig().getBoolean("config.rewards.command_reward"); - this.kill_economyrewards = this.plugin.getConfig().getBoolean("config.rewards.economy_for_kills"); - this.kill_commandrewards = this.plugin.getConfig().getBoolean("config.rewards.command_reward_for_kills"); - this.participation_economyrewards = this.plugin.getConfig().getBoolean("config.rewards.economy_for_participation"); - this.participation_commandrewards = this.plugin.getConfig().getBoolean("config.rewards.command_reward_for_participation"); + this.economyrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY); + this.itemrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_ITEM_REWARD); + this.commandrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_REWARD); + this.kill_economyrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_FOR_KILLS); + this.kill_commandrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_REWARD_FOR_KILLS); + this.participation_economyrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_FOR_PARTICIPATION); + this.participation_commandrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_REWARD_FOR_PARTICIPATION); - this.econ_reward = this.plugin.getConfig().getInt("config.rewards.economy_reward"); - this.command = this.plugin.getConfig().getString("config.rewards.command"); - this.items = Util.parseItems(this.plugin.getConfig().getString("config.rewards.item_reward_ids")).toArray(new ItemStack[0]); - this.kill_econ_reward = this.plugin.getConfig().getInt("config.rewards.economy_reward_for_kills"); - this.kill_command = this.plugin.getConfig().getString("config.rewards.command_for_kills"); - this.participation_econ_reward = this.plugin.getConfig().getInt("config.rewards.economy_reward_for_participation"); - this.participation_command = this.plugin.getConfig().getString("config.rewards.command_for_participation"); + this.econ_reward = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_REWARD); + this.command = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_REWARDS_COMMAND); + this.items = Util.parseItems(this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_REWARDS_ITEM_REWARD_IDS)).toArray(new ItemStack[0]); + this.kill_econ_reward = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_REWARD_FOR_KILLS); + this.kill_command = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_FOR_KILLS); + this.participation_econ_reward = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_REWARD_FOR_PARTICIPATION); + this.participation_command = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_FOR_PARTICIPATION); } /** @@ -263,7 +263,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String try { - if (this.plugin.getConfig().getBoolean("config.broadcast_win")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BROADCAST_WIN)) { final String msgs[] = pli.getMessagesConfig().server_broadcast_winner.replaceAll("<player>", p_).replaceAll("<arena>", a.getInternalName()).split(";"); for (final String msg : msgs) @@ -290,7 +290,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String Util.sendMessage(this.plugin, p, pli.getMessagesConfig().you_won); Util.sendMessage(this.plugin, p, received_rewards_msg); - if (this.plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_1_8_TITLES) && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) { Effects.playTitle(p, pli.getMessagesConfig().you_won, 0); } @@ -308,7 +308,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String Bukkit.dispatchCommand(Bukkit.getConsoleSender(), this.command.replaceAll("<player>", p_)); } - if (this.plugin.getConfig().getBoolean("config.spawn_fireworks_for_winners")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SPAWN_FIREWORKS_FOR_WINNERS)) { Bukkit.getScheduler().runTaskLater(this.plugin, () -> Util.spawnFirework(p), 20L); } @@ -316,7 +316,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String else { Util.sendMessage(this.plugin, p, pli.getMessagesConfig().you_lost); - if (this.plugin.getConfig().getBoolean("config.effects.1_8_titles") && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_1_8_TITLES) && MinigamesAPI.SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) { Effects.playTitle(p, pli.getMessagesConfig().you_lost, 0); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java index e46a3ea2..0cde31cc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java @@ -59,7 +59,7 @@ public void openGUI(final String p) else { iconm = new IconMenu(this.pli.getMessagesConfig().shop_item, - (9 * this.plugin.getConfig().getInt("config.GUI.shop_gui_rows") > mincount - 1) ? 9 * this.plugin.getConfig().getInt("config.GUI.shop_gui_rows") : Math.round(mincount / 9) * 9 + 9, + (9 * this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_SHOP_GUI_ROWS) > mincount - 1) ? 9 * this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_SHOP_GUI_ROWS) : Math.round(mincount / 9) * 9 + 9, event -> { if (event.getPlayer().getName().equalsIgnoreCase(p)) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java index 71420ca4..0c4ea1b0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java @@ -58,8 +58,8 @@ public Stats(final PluginInstance pli, final JavaPlugin plugin) public void reloadVariables() { - this.stats_kill_points = this.plugin.getConfig().getInt("config.stats.points_for_kill"); - this.stats_win_points = this.plugin.getConfig().getInt("config.stats.points_for_win"); + this.stats_kill_points = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_STATS_POINTS_FOR_KILL); + this.stats_win_points = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_STATS_POINTS_FOR_WIN); } public void win(final String playername, final int count) @@ -104,7 +104,7 @@ public void lose(final String playername) */ public void update(final String playername) { - if (this.plugin.getConfig().getBoolean("mysql.enabled")) + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { final Player p = Bukkit.getPlayer(playername); final String uuid = p.getUniqueId().toString(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java index 163b5f8d..8febb42e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java @@ -23,6 +23,7 @@ import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaState; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; @@ -63,7 +64,7 @@ public void joinArcade(final String playername) { return; } - if (this.players.size() >= this.plugin.getConfig().getInt("config.arcade.min_players")) + if (this.players.size() >= this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ARCADE_MIN_PLAYERS)) { boolean msg = true; if (!this.started) @@ -110,7 +111,7 @@ public void joinArcade(final String playername) else { p.sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().arcade_joined_waiting.replaceAll("<count>", - Integer.toString(this.plugin.getConfig().getInt("config.arcade.min_players") - this.players.size()))); + Integer.toString(this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ARCADE_MIN_PLAYERS) - this.players.size()))); } } @@ -201,7 +202,7 @@ public void startArcade() this.started = true; Collections.shuffle(this.minigames); - this.currentlobbycount = this.plugin.getConfig().getInt("config.arcade.lobby_countdown") + 1; + this.currentlobbycount = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ARCADE_LOBBY_COUNTDOWN) + 1; final ArcadeInstance ai = this; final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); @@ -261,14 +262,14 @@ public void stopArcade(final boolean stopOfGame) temp.clear(); temp.addAll(hs); final ArcadeInstance ai = this; - if (stopOfGame && this.plugin.getConfig().getBoolean("config.arcade.infinite_mode.enabled")) + if (stopOfGame && this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_ARCADE_INFINITE_ENABLED)) { if (temp.size() > 1) { for (final String p_ : temp) { Util.sendMessage(this.plugin, Bukkit.getPlayer(p_), MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().arcade_new_round.replaceAll("<count>", - Integer.toString(this.plugin.getConfig().getInt("config.arcade.infinite_mode.seconds_to_new_round")))); + Integer.toString(this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ARCADE_INFINITE_SECONDS_TO_NEW_ROUND)))); } Bukkit.getScheduler().runTaskLater(this.plugin, () -> { for (final String p_ : temp) @@ -279,7 +280,7 @@ public void stopArcade(final boolean stopOfGame) } } ai.startArcade(); - }, Math.max(40L, 20L * this.plugin.getConfig().getInt("config.arcade.infinite_mode.seconds_to_new_round"))); + }, Math.max(40L, 20L * this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ARCADE_INFINITE_SECONDS_TO_NEW_ROUND))); } } } @@ -296,9 +297,9 @@ public void stopCurrentMinigame() final PluginInstance mg = this.minigames.get(this.currentindex); if (mg.getArenas().size() > 0) { - if (mg.getPlugin().getConfig().getBoolean("config.arcade.arena_to_prefer.enabled")) + if (mg.getPlugin().getConfig().getBoolean(ArenaConfigStrings.CONFIG_ARCADE_ARENA_TO_PREFER_ENABLED)) { - final String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); + final String arenaname = mg.getPlugin().getConfig().getString(ArenaConfigStrings.CONFIG_ARCADE_ARENA_TO_PREFER_ARENA); final Arena a = mg.getArenaByName(arenaname); if (a != null) { @@ -338,12 +339,12 @@ public void nextMinigame(final long delay) final ArrayList<String> temp = new ArrayList<>(ArcadeInstance.this.players); final PluginInstance mg = ArcadeInstance.this.minigames.get(ArcadeInstance.this.currentindex); - if (mg.getPlugin().getConfig().getBoolean("config.arcade.enabled")) + if (mg.getPlugin().getConfig().getBoolean(ArenaConfigStrings.CONFIG_ARCADE_ENABLED)) { Arena a = null; - if (mg.getPlugin().getConfig().getBoolean("config.arcade.arena_to_prefer.enabled")) + if (mg.getPlugin().getConfig().getBoolean(ArenaConfigStrings.CONFIG_ARCADE_ARENA_TO_PREFER_ENABLED)) { - final String arenaname = mg.getPlugin().getConfig().getString("config.arcade.arena_to_prefer.arena"); + final String arenaname = mg.getPlugin().getConfig().getString(ArenaConfigStrings.CONFIG_ARCADE_ARENA_TO_PREFER_ARENA); a = mg.getArenaByName(arenaname); if (a == null) { @@ -382,7 +383,7 @@ public void nextMinigame(final long delay) { Bukkit.getPlayer(p_) .sendMessage(mg.getMessagesConfig().arcade_next_minigame.replaceAll("<minigame>", Character.toUpperCase(minigame.charAt(0)) + minigame.substring(1))); - a.joinPlayerLobby(p_, ai, ArcadeInstance.this.plugin.getConfig().getBoolean("config.arcade.show_each_lobby_countdown"), false); + a.joinPlayerLobby(p_, ai, ArcadeInstance.this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_ARCADE_SHOW_EACH_LOBBY_COUNTDOWN), false); } pli.getSpectatorManager().setSpectate(Bukkit.getPlayer(p_), false); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index a323693a..0c8f3b5b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -383,7 +383,7 @@ public boolean setSpecSpawn(final PluginInstance pli, final CommandSender sender } if (args.length > 1) { - Util.saveComponentForArena(plugin, args[1], "specspawn", p.getLocation()); + Util.saveComponentForArena(plugin, args[1], ArenaConfigStrings.SPEC_SPAWN, p.getLocation()); sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spectator spawn")); } else @@ -807,7 +807,7 @@ public boolean removeArena(final PluginInstance pli, final CommandSender sender, } if (args.length > 1) { - pli.getArenasConfig().getConfig().set("arenas." + args[1], null); + pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + args[1], null); pli.getArenasConfig().saveConfig(); if (pli.removeArena(pli.getArenaByName(args[1]))) { @@ -978,7 +978,7 @@ public boolean setAuthor(final PluginInstance pli, final CommandSender sender, f final String author = args[2]; if (Validator.isArenaValid(plugin, args[1])) { - pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".author", author); + pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + args[1] + ArenaConfigStrings.AUTHOR_SUFFIX, author); pli.getArenasConfig().saveConfig(); sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "author")); } @@ -1003,7 +1003,7 @@ public boolean setDescription(final PluginInstance pli, final CommandSender send final String desc = args[2]; if (Validator.isArenaValid(plugin, args[1])) { - pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".description", desc); + pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + args[1] + ArenaConfigStrings.DESCRIPTION_SUFFIX, desc); pli.getArenasConfig().saveConfig(); sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "description")); } @@ -1028,7 +1028,7 @@ public boolean setArenaDisplayName(final PluginInstance pli, final CommandSender final String displayname = args[2]; if (Validator.isArenaValid(plugin, args[1])) { - pli.getArenasConfig().getConfig().set("arenas." + args[1] + ".displayname", displayname); + pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + args[1] + ArenaConfigStrings.DISPLAYNAME_SUFFIX, displayname); pli.getArenasConfig().saveConfig(); pli.reloadArena(args[1]); sender.sendMessage(pli.getMessagesConfig().successfully_set.replaceAll("<component>", "displayname")); @@ -1091,7 +1091,7 @@ public boolean setKit(final PluginInstance pli, final CommandSender sender, fina Player p = player; if (args.length > 1) { - if (!plugin.getConfig().getBoolean("config.classes_enabled")) + if (!plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CLASSES_ENABLED)) { return true; } @@ -1103,7 +1103,7 @@ public boolean setKit(final PluginInstance pli, final CommandSender sender, fina return true; } } - if (!plugin.getConfig().getBoolean("config.allow_classes_selection_out_of_arenas")) + if (!plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_ALLOW_CLASSES_SELECTION_OUT_OF_ARENAS)) { if (pli.global_players.containsKey(p.getName())) { @@ -1160,7 +1160,7 @@ public boolean setKit(final PluginInstance pli, final CommandSender sender, fina else { sender.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.RED + "-" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + " Usage: " + cmd + " " + action + " <kit>"); - if (!plugin.getConfig().getBoolean("config.classes_enabled")) + if (!plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CLASSES_ENABLED)) { return true; } @@ -1181,7 +1181,7 @@ public boolean openShop(final PluginInstance pli, final CommandSender sender, fi { if (args.length > 1) { - if (!plugin.getConfig().getBoolean("config.shop_enabled")) + if (!plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SHOP_ENABLED)) { return true; } @@ -1210,7 +1210,7 @@ public boolean openShop(final PluginInstance pli, final CommandSender sender, fi } else { - if (!plugin.getConfig().getBoolean("config.shop_enabled")) + if (!plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SHOP_ENABLED)) { return true; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index 16a1af29..ceb78fcb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -19,6 +19,8 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; + public class DefaultConfig { @@ -39,106 +41,106 @@ public static void init(final JavaPlugin plugin, final boolean custom) + "You can find classes (kits) in classes.yml, all saved arenas in arenas.yml, all messages in messages.yml. \n" + "You can edit/disable achievements in achievements.yml."); if (!custom) { - config.addDefault("config.selection_items.classes_selection_item", 399); - config.addDefault("config.selection_items.exit_item", 152); - config.addDefault("config.selection_items.achievement_item", 160); - config.addDefault("config.selection_items.spectator_item", 345); - config.addDefault("config.selection_items.shop_selection_item", 388); - config.addDefault("config.GUI.classes_gui_rows", 3); - config.addDefault("config.GUI.shop_gui_rows", 3); - config.addDefault("config.spectator.spectator_after_fall_or_death", true); - config.addDefault("config.spectator.spectator_move_y_lock", true); - config.addDefault("config.defaults.default_max_players", 4); - config.addDefault("config.defaults.default_min_players", 2); - config.addDefault("config.defaults.default_max_game_time_in_minutes", 30); - config.addDefault("config.countdowns.lobby_countdown", 30); - config.addDefault("config.countdowns.ingame_countdown", 10); - config.addDefault("config.countdowns.ingame_countdown_enabled", true); - config.addDefault("config.countdowns.skip_lobby", false); - config.addDefault("config.countdowns.clearinv_while_ingamecountdown", false); + config.addDefault(ArenaConfigStrings.CONFIG_CLASS_SELECTION_ITEM, 399); + config.addDefault(ArenaConfigStrings.CONFIG_EXIT_ITEM, 152); + config.addDefault(ArenaConfigStrings.CONFIG_ACHIEVEMENT_ITEMS, 160); + config.addDefault(ArenaConfigStrings.CONFIG_SPECTATOR_ITEM, 345); + config.addDefault(ArenaConfigStrings.CONFIG_SHOP_SELECTION_ITEM, 388); + config.addDefault(ArenaConfigStrings.CONFIG_CLASSES_GUI_ROWS, 3); + config.addDefault(ArenaConfigStrings.CONFIG_SHOP_GUI_ROWS, 3); + config.addDefault(ArenaConfigStrings.CONFIG_SPECTATOR_AFTER_FALL_OR_DEATH, true); + config.addDefault(ArenaConfigStrings.CONFIG_SPECTATOR_MOVE_Y_LOCK, true); + config.addDefault(ArenaConfigStrings.CONFIG_DEFAULT_MAX_PLAYERS, 4); + config.addDefault(ArenaConfigStrings.CONFIG_DEFAULT_MIN_PLAYERS, 2); + config.addDefault(ArenaConfigStrings.CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES, 30); + config.addDefault(ArenaConfigStrings.CONFIG_LOBBY_COUNTDOWN, 30); + config.addDefault(ArenaConfigStrings.CONFIG_INGAME_COUNTDOWN, 10); + config.addDefault(ArenaConfigStrings.CONFIG_INGAME_COUNTDOWN_ENABLED, true); + config.addDefault(ArenaConfigStrings.CONFIG_SKIP_LOBBY, false); + config.addDefault(ArenaConfigStrings.CONFIG_CLEANINV_WHILE_INGAMECOUNTDOWN, false); - config.addDefault("config.classes_enabled", true); - config.addDefault("config.shop_enabled", true); - config.addDefault("config.use_credits_instead_of_money_for_kits", false); - config.addDefault("config.reset_inventory_when_players_leave_server", true); - config.addDefault("config.color_background_wool_of_signs", false); - config.addDefault("config.show_classes_without_usage_permission", true); + config.addDefault(ArenaConfigStrings.CONFIG_CLASSES_ENABLED, true); + config.addDefault(ArenaConfigStrings.CONFIG_SHOP_ENABLED, true); + config.addDefault(ArenaConfigStrings.CONFIG_USE_CREADITS_INSTEAD_MONEY_FOR_KITS, false); + config.addDefault(ArenaConfigStrings.CONFIG_RESET_INV_WHEN_LEAVING_SERVER, true); + config.addDefault(ArenaConfigStrings.CONFIG_COLOR_BACKGROUND_WOOL, false); + config.addDefault(ArenaConfigStrings.CONFIG_SHOW_CLASSES_WITHOUT_PERM, true); - config.addDefault("config.rewards.economy", true); - config.addDefault("config.rewards.economy_reward", 10); - config.addDefault("config.rewards.item_reward", false); - config.addDefault("config.rewards.item_reward_ids", "264*1;11*1"); - config.addDefault("config.rewards.command_reward", false); - config.addDefault("config.rewards.command", "pex user <player> add SKILLZ.*"); - config.addDefault("config.rewards.economy_for_kills", true); - config.addDefault("config.rewards.economy_reward_for_kills", 5); - config.addDefault("config.rewards.command_reward_for_kills", false); - config.addDefault("config.rewards.command_for_kills", "pex user <player> add SKILLZ.*"); - config.addDefault("config.rewards.economy_for_participation", false); - config.addDefault("config.rewards.economy_reward_for_participation", 5); - config.addDefault("config.rewards.command_reward_for_participation", false); - config.addDefault("config.rewards.command_for_participation", "pex user <player> add SKILLZ.*"); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY, true); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_REWARD, 10); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ITEM_REWARD, false); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ITEM_REWARD_IDS, "264*1;11*1"); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_REWARD, false); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_COMMAND, "pex user <player> add SKILLZ.*"); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_FOR_KILLS, true); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_REWARD_FOR_KILLS, 5); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_REWARD_FOR_KILLS, false); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_FOR_KILLS, "pex user <player> add SKILLZ.*"); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_FOR_PARTICIPATION, false); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY_REWARD_FOR_PARTICIPATION, 5); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_REWARD_FOR_PARTICIPATION, false); + config.addDefault(ArenaConfigStrings.CONFIG_REWARDS_COMMAND_FOR_PARTICIPATION, "pex user <player> add SKILLZ.*"); - config.addDefault("config.stats.points_for_kill", 2); - config.addDefault("config.stats.points_for_win", 10); + config.addDefault(ArenaConfigStrings.CONFIG_STATS_POINTS_FOR_KILL, 2); + config.addDefault(ArenaConfigStrings.CONFIG_STATS_POINTS_FOR_WIN, 10); - config.addDefault("config.arcade.enabled", true); - config.addDefault("config.arcade.min_players", 1); - config.addDefault("config.arcade.max_players", 16); - config.addDefault("config.arcade.arena_to_prefer.enabled", false); - config.addDefault("config.arcade.arena_to_prefer.arena", "arena1"); - config.addDefault("config.arcade.lobby_countdown", 20); - config.addDefault("config.arcade.show_each_lobby_countdown", false); - config.addDefault("config.arcade.infinite_mode.enabled", false); - config.addDefault("config.arcade.infinite_mode.seconds_to_new_round", 10); - config.addDefault("config.bungee.game_on_join", false); - config.addDefault("config.bungee.teleport_all_to_server_on_stop.tp", false); - config.addDefault("config.bungee.teleport_all_to_server_on_stop.server", "lobby"); - config.addDefault("config.bungee.whitelist_while_game_running", false); - config.addDefault("config.execute_cmds_on_stop", false); - config.addDefault("config.cmds", ""); - config.addDefault("config.cmds_after", "say SERVER STOPPING;stop"); - config.addDefault("config.map_rotation", false); - config.addDefault("config.broadcast_win", true); - config.addDefault("config.buy_classes_forever", true); - config.addDefault("config.disable_commands_in_arena", true); - config.addDefault("config.command_whitelist", "/msg,/pm,/help"); - config.addDefault("config.leave_command", "/leave"); - config.addDefault("config.spawn_fireworks_for_winners", true); - config.addDefault("config.powerup_spawning.broadcast", false); - config.addDefault("config.powerup_spawning.spawn_firework", false); - config.addDefault("config.use_custom_scoreboard", false); - config.addDefault("config.delay.enabled", false); - config.addDefault("config.delay.amount_seconds", 5); - config.addDefault("config.send_game_started_msg", false); - config.addDefault("config.auto_add_default_kit", true); - config.addDefault("config.last_man_standing_wins", true); - config.addDefault("config.effects.blood", true); - config.addDefault("config.effects.damage_identifier_holograms", true); - config.addDefault("config.effects.dead_in_fake_bed", true); - config.addDefault("config.effects.1_8_titles", true); - config.addDefault("config.effects.1_8_spectator_mode", false); - config.addDefault("config.sounds.lobby_countdown", "none"); - config.addDefault("config.sounds.ingame_countdown", "SUCCESSFUL_HIT"); - config.addDefault("config.chat_per_arena_only", false); - config.addDefault("config.chat_show_score_in_arena", false); - config.addDefault("config.compass_tracking_enabled", true); - config.addDefault("config.allow_classes_selection_out_of_arenas", false); - config.addDefault("config.send_stats_on_stop", true); - config.addDefault("config.use_xp_bar_level", true); - config.addDefault("config.use_old_reset_method", false); - config.addDefault("config.chat_enabled", true); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_ENABLED, true); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_MIN_PLAYERS, 1); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_MAX_PLAYERS, 16); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_ARENA_TO_PREFER_ENABLED, false); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_ARENA_TO_PREFER_ARENA, "arena1"); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_LOBBY_COUNTDOWN, 20); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_SHOW_EACH_LOBBY_COUNTDOWN, false); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_INFINITE_ENABLED, false); + config.addDefault(ArenaConfigStrings.CONFIG_ARCADE_INFINITE_SECONDS_TO_NEW_ROUND, 10); + config.addDefault(ArenaConfigStrings.CONFIG_BUNGEE_GAME_ON_JOIN, false); + config.addDefault(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP, false); + config.addDefault(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_SERVER, "lobby"); + config.addDefault(ArenaConfigStrings.CONFIG_BUNGEE_WHITELIST_WHILE_GAME_RUNNING, false); + config.addDefault(ArenaConfigStrings.CONFIG_EXECUTE_CMDS_ON_STOP, false); + config.addDefault(ArenaConfigStrings.CONFIG_CMDS, ""); + config.addDefault(ArenaConfigStrings.CONFIG_CMDS_AFTER, "say SERVER STOPPING;stop"); + config.addDefault(ArenaConfigStrings.CONFIG_MAP_ROTATION, false); + config.addDefault(ArenaConfigStrings.CONFIG_BROADCAST_WIN, true); + config.addDefault(ArenaConfigStrings.CONFIG_BUY_CLASSES_FOREVER, true); + config.addDefault(ArenaConfigStrings.CONFIG_DISABLE_COMMANDS_IN_ARENA, true); + config.addDefault(ArenaConfigStrings.CONFIG_COMMAND_WHITELIST, "/msg,/pm,/help"); + config.addDefault(ArenaConfigStrings.CONFIG_LEAVE_COMMAND, "/leave"); + config.addDefault(ArenaConfigStrings.CONFIG_SPAWN_FIREWORKS_FOR_WINNERS, true); + config.addDefault(ArenaConfigStrings.CONFIG_POWERUP_BROADCAST, false); + config.addDefault(ArenaConfigStrings.CONFIG_POWERUP_FIREWORKS, false); + config.addDefault(ArenaConfigStrings.CONFIG_USE_CUSTOM_SCOREBOARD, false); + config.addDefault(ArenaConfigStrings.CONFIG_DELAY_ENABLED, false); + config.addDefault(ArenaConfigStrings.CONFIG_DELAY_AMOUNT_SECONDS, 5); + config.addDefault(ArenaConfigStrings.CONFIG_SEND_GAME_STARTED_MSG, false); + config.addDefault(ArenaConfigStrings.CONFIG_AUTO_ADD_DEFAULT_KIT, true); + config.addDefault(ArenaConfigStrings.CONFIG_LAST_MAN_STANDING_WINS, true); + config.addDefault(ArenaConfigStrings.CONFIG_EFFECTS_BLOOD, true); + config.addDefault(ArenaConfigStrings.CONFIG_EFFECTS_DMG_IDENTIFIER_HOLO, true); + config.addDefault(ArenaConfigStrings.CONFIG_EFFECTS_DEAD_IN_FAKE_BED, true); + config.addDefault(ArenaConfigStrings.CONFIG_EFFECTS_1_8_TITLES, true); + config.addDefault(ArenaConfigStrings.CONFIG_EFFECTS_1_8_SPECTATOR_MODE, false); + config.addDefault(ArenaConfigStrings.CONFIG_SOUNDS_LOBBY_COUNTDOWN, "none"); + config.addDefault(ArenaConfigStrings.CONFIG_SOUNDS_INGAME_COUNTDOWN, "SUCCESSFUL_HIT"); + config.addDefault(ArenaConfigStrings.CONFIG_CHAT_PER_ARENA_ONLY, false); + config.addDefault(ArenaConfigStrings.CONFIG_CHAT_SHOW_SCORE_IN_ARENA, false); + config.addDefault(ArenaConfigStrings.CONFIG_COMPASS_TRACKING_ENABLED, true); + config.addDefault(ArenaConfigStrings.CONFIG_ALLOW_CLASSES_SELECTION_OUT_OF_ARENAS, false); + config.addDefault(ArenaConfigStrings.CONFIG_SEND_STATS_ON_STOP, true); + config.addDefault(ArenaConfigStrings.CONFIG_USE_XP_BAR_LEVEL, true); + config.addDefault(ArenaConfigStrings.CONFIG_USE_OLD_RESET_METHOD, false); + config.addDefault(ArenaConfigStrings.CONFIG_CHAT_ENABLED, true); - config.addDefault("config.extra_lobby_item.item0.enabled", false); - config.addDefault("config.extra_lobby_item.item0.item", 9); - config.addDefault("config.extra_lobby_item.item0.name", "Custom Name".replace("&", "§")); - config.addDefault("config.extra_lobby_item.item0.command", "say This is a custom extra lobby item."); + config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX, false); + config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX, 9); + config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_NAME_SUFFIX, "Custom Name".replace("&", "§")); + config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX, "say This is a custom extra lobby item."); - config.addDefault("mysql.enabled", false); - config.addDefault("mysql.host", "127.0.0.1"); - config.addDefault("mysql.user", "root"); - config.addDefault("mysql.pw", "root"); - config.addDefault("mysql.database", "mcminigames"); + config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); + config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_HOST, "127.0.0.1"); + config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_USER, "root"); + config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_PW, "root"); + config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_DATABASE, "mcminigames"); } config.options().copyDefaults(true); plugin.saveConfig(); @@ -159,23 +161,23 @@ public static void convert(final JavaPlugin plugin) throws IOException if (!config.isSet("config.version")) { // TODO new config - config.set("config.selection_items.classes_selection_item", config.get("config.classes_selection_item")); - config.set("config.selection_items.exit_item", config.get("config.exit_item")); - config.set("config.selection_items.achievement_item", config.get("config.achievement_item")); - config.set("config.selection_items.spectator_item", config.get("config.exit_item")); - config.set("config.selection_items.shop_selection_item", config.get("config.shop_selection_item")); - config.set("config.GUI.classes_gui_rows", config.get("config.classes_gui_rows")); - config.set("config.GUI.shop_gui_rows", config.get("config.shop_gui_rows")); - config.set("config.spectator.spectator_after_fall_or_death", config.get("config.spectator_after_fall_or_death")); - config.set("config.spectator.spectator_move_y_lock", config.get("config.spectator_move_y_lock")); - config.set("config.defaults.default_max_players", config.get("config.default_max_players")); - config.set("config.defaults.default_min_players", config.get("config.default_min_players")); - config.set("config.defaults.default_max_game_time_in_minutes", config.get("config.default_max_game_time_in_minutes")); - config.set("config.countdowns.lobby_countdown", config.get("config.lobby_countdown")); - config.set("config.countdowns.ingame_countdown", config.get("config.ingame_countdown")); - config.set("config.countdowns.ingame_countdown_enabled", config.get("config.ingame_countdown_enabled")); - config.set("config.countdowns.skip_lobby", config.get("config.skip_lobby")); - config.set("config.countdowns.clearinv_while_ingamecountdown", config.get("config.clearinv_while_ingamecountdown")); + config.set(ArenaConfigStrings.CONFIG_CLASS_SELECTION_ITEM, config.get("config.classes_selection_item")); + config.set(ArenaConfigStrings.CONFIG_EXIT_ITEM, config.get("config.exit_item")); + config.set(ArenaConfigStrings.CONFIG_ACHIEVEMENT_ITEMS, config.get("config.achievement_item")); + config.set(ArenaConfigStrings.CONFIG_SPECTATOR_ITEM, config.get("config.exit_item")); + config.set(ArenaConfigStrings.CONFIG_SHOP_SELECTION_ITEM, config.get("config.shop_selection_item")); + config.set(ArenaConfigStrings.CONFIG_CLASSES_GUI_ROWS, config.get("config.classes_gui_rows")); + config.set(ArenaConfigStrings.CONFIG_SHOP_GUI_ROWS, config.get("config.shop_gui_rows")); + config.set(ArenaConfigStrings.CONFIG_SPECTATOR_AFTER_FALL_OR_DEATH, config.get("config.spectator_after_fall_or_death")); + config.set(ArenaConfigStrings.CONFIG_SPECTATOR_MOVE_Y_LOCK, config.get("config.spectator_move_y_lock")); + config.set(ArenaConfigStrings.CONFIG_DEFAULT_MAX_PLAYERS, config.get("config.default_max_players")); + config.set(ArenaConfigStrings.CONFIG_DEFAULT_MIN_PLAYERS, config.get("config.default_min_players")); + config.set(ArenaConfigStrings.CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES, config.get("config.default_max_game_time_in_minutes")); + config.set(ArenaConfigStrings.CONFIG_LOBBY_COUNTDOWN, config.get("config.lobby_countdown")); + config.set(ArenaConfigStrings.CONFIG_INGAME_COUNTDOWN, config.get("config.ingame_countdown")); + config.set(ArenaConfigStrings.CONFIG_INGAME_COUNTDOWN_ENABLED, config.get("config.ingame_countdown_enabled")); + config.set(ArenaConfigStrings.CONFIG_SKIP_LOBBY, config.get("config.skip_lobby")); + config.set(ArenaConfigStrings.CONFIG_CLEANINV_WHILE_INGAMECOUNTDOWN, config.get("config.clearinv_while_ingamecountdown")); config.set("config.classes_selection_item", null); config.set("config.exit_item", null); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java index f5f1c008..f6f38ebc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java @@ -21,6 +21,8 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; + public class MainSQL { @@ -41,15 +43,15 @@ public MainSQL(final JavaPlugin plugin, final boolean mysql) if (mysql) { - this.MySQL = new MySQL(plugin.getConfig().getString("mysql.host"), "3306", plugin.getConfig().getString("mysql.database"), plugin.getConfig().getString("mysql.user"), - plugin.getConfig().getString("mysql.pw")); + this.MySQL = new MySQL(plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_HOST), "3306", plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_USER), + plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_PW)); } else { - this.SQLite = new SQLite(plugin.getConfig().getString("mysql.database"), plugin.getConfig().getString("mysql.user"), plugin.getConfig().getString("mysql.pw")); + this.SQLite = new SQLite(plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_USER), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_PW)); } - if (plugin.getConfig().getBoolean("mysql.enabled") && this.MySQL != null) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED) && this.MySQL != null) { try { @@ -58,21 +60,21 @@ public MainSQL(final JavaPlugin plugin, final boolean mysql) catch (final Exception e) { System.out.println("Failed initializing MySQL. Disabling!"); - plugin.getConfig().set("mysql.enabled", false); + plugin.getConfig().set(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); plugin.saveConfig(); } } - else if (plugin.getConfig().getBoolean("mysql.enabled") && this.MySQL == null) + else if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED) && this.MySQL == null) { System.out.println("Failed initializing MySQL. Disabling!"); - plugin.getConfig().set("mysql.enabled", false); + plugin.getConfig().set(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); plugin.saveConfig(); } } public void createTables() { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return; } @@ -84,7 +86,7 @@ public void createTables() try { - c.createStatement().execute("CREATE DATABASE IF NOT EXISTS `" + this.plugin.getConfig().getString("mysql.database") + "`"); + c.createStatement().execute("CREATE DATABASE IF NOT EXISTS `" + this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE) + "`"); c.createStatement() .execute("CREATE TABLE IF NOT EXISTS " + this.plugin.getName() + " (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player VARCHAR(100), points INT, wins INT, loses INT, kills INT)"); final ResultSet res = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'kills'"); @@ -115,7 +117,7 @@ public void createTables() public void updateWinnerStats(final Player p, final int reward, final boolean addwin) { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return; } @@ -157,7 +159,7 @@ public void updateWinnerStats(final Player p, final int reward, final boolean ad public void updateLoserStats(final Player p) { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return; } @@ -195,7 +197,7 @@ public void updateLoserStats(final Player p) public void updateKillerStats(final Player p, final int kills_) { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return; } @@ -233,7 +235,7 @@ public void updateKillerStats(final Player p, final int kills_) public void updateDeathStats(final Player p, final int deaths_) { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return; } @@ -271,7 +273,7 @@ public void updateDeathStats(final Player p, final int deaths_) public int getPoints(final Player p) { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return -1; } @@ -310,7 +312,7 @@ public int getPoints(final Player p) public int getWins(final Player p) { - if (!this.plugin.getConfig().getBoolean("mysql.enabled")) + if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { return -1; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java index 69b08a56..959feafc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java @@ -27,6 +27,7 @@ import org.bukkit.scoreboard.ScoreboardManager; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; @@ -45,7 +46,7 @@ public class ArenaLobbyScoreboard public ArenaLobbyScoreboard(final PluginInstance pli, final JavaPlugin plugin) { - this.custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); + this.custom = plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_CUSTOM_SCOREBOARD); this.initialized = 1; this.pli = pli; if (pli.getMessagesConfig().getConfig().isSet("messages.custom_lobby_scoreboard.")) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java index 18a40f9e..8a487e63 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java @@ -28,6 +28,7 @@ import org.bukkit.scoreboard.ScoreboardManager; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; @@ -52,7 +53,7 @@ public ArenaScoreboard() public ArenaScoreboard(final PluginInstance pli, final JavaPlugin plugin) { - this.custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); + this.custom = plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_CUSTOM_SCOREBOARD); this.initialized = 1; this.pli = pli; if (pli.getMessagesConfig().getConfig().isSet("messages.custom_scoreboard.")) @@ -74,7 +75,7 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) if (this.initialized != 1) { - this.custom = plugin.getConfig().getBoolean("config.use_custom_scoreboard"); + this.custom = plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_CUSTOM_SCOREBOARD); } if (this.pli == null) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index f84bdc86..65883138 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -166,7 +166,7 @@ public static Location getComponentForArena(final JavaPlugin plugin, final Strin { if (Validator.isArenaValid(plugin, arenaname)) { - final String base = "arenas." + arenaname + "." + component + count; + final String base = ArenaConfigStrings.ARENAS_PREFIX + arenaname + "." + component + count; final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); if (!pli.getArenasConfig().getConfig().isSet(base + ".world") || Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")) == null) { @@ -183,7 +183,7 @@ public static Location getComponentForArena(final JavaPlugin plugin, final Strin { if (Validator.isArenaValid(plugin, arenaname)) { - final String base = "arenas." + arenaname + "." + component; + final String base = ArenaConfigStrings.ARENAS_PREFIX + arenaname + "." + component; final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); if (!pli.getArenasConfig().getConfig().isSet(base + ".world") || Bukkit.getWorld(pli.getArenasConfig().getConfig().getString(base + ".world")) == null) { @@ -198,7 +198,7 @@ public static Location getComponentForArena(final JavaPlugin plugin, final Strin public static Location getComponentForArenaRaw(final JavaPlugin plugin, final String arenaname, final String component) { - final String base = "arenas." + arenaname + "." + component; + final String base = ArenaConfigStrings.ARENAS_PREFIX + arenaname + "." + component; final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); if (pli.getArenasConfig().getConfig().isSet(base)) { @@ -220,13 +220,13 @@ public static boolean isComponentForArenaValid(final JavaPlugin plugin, final St public static boolean isComponentForArenaValidRaw(final JavaPlugin plugin, final String arenaname, final String component) { - final String base = "arenas." + arenaname + "." + component; + final String base = ArenaConfigStrings.ARENAS_PREFIX + arenaname + "." + component; return MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig().isSet(base); } public static void saveComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final Location comploc) { - final String base = "arenas." + arenaname + "." + component; + final String base = ArenaConfigStrings.ARENAS_PREFIX + arenaname + "." + component; final ArenasConfig config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig(); config.getConfig().set(base + ".world", comploc.getWorld().getName()); config.getConfig().set(base + ".location.x", comploc.getX()); @@ -265,9 +265,9 @@ public static ArrayList<Location> getAllSpawns(final JavaPlugin plugin, final St { final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); final ArrayList<Location> ret = new ArrayList<>(); - if (config.isSet("arenas." + arena + ".spawns")) + if (config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns")) { - for (final String spawn : config.getConfigurationSection("arenas." + arena + ".spawns.").getKeys(false)) + for (final String spawn : config.getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.").getKeys(false)) { ret.add(Util.getComponentForArena(plugin, arena, "spawns." + spawn)); } @@ -338,13 +338,13 @@ public static void saveArenaToFile(final JavaPlugin plugin, final String arena) public static Sign getSignFromArena(final JavaPlugin plugin, final String arena) { final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - if (!pli.getArenasConfig().getConfig().isSet("arenas." + arena + ".sign.world")) + if (!pli.getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.world")) { return null; } - final Location b_ = new Location(Bukkit.getServer().getWorld(pli.getArenasConfig().getConfig().getString("arenas." + arena + ".sign.world")), - pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.x"), pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.y"), - pli.getArenasConfig().getConfig().getInt("arenas." + arena + ".sign.loc.z")); + final Location b_ = new Location(Bukkit.getServer().getWorld(pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.world")), + pli.getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.x"), pli.getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.y"), + pli.getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.z")); if (b_ != null) { if (b_.getWorld() != null) @@ -540,7 +540,7 @@ public static ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasC { return ret; } - for (final String arena : config.getConfigurationSection("arenas.").getKeys(false)) + for (final String arena : config.getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX).getKeys(false)) { if (Validator.isArenaValid(plugin, arena, cf.getConfig())) { @@ -769,7 +769,7 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) { ArenaLogger.debug("Giving lobby items to " + p.getName()); final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - final ItemStack classes_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.classes_selection_item")); + final ItemStack classes_item = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_CLASS_SELECTION_ITEM)); if (classes_item.getType() != Material.AIR) { final ItemMeta cimeta = classes_item.getItemMeta(); @@ -777,9 +777,9 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) classes_item.setItemMeta(cimeta); } - if (!plugin.getConfig().getBoolean("config.bungee.game_on_join")) + if (!plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_GAME_ON_JOIN)) { - final ItemStack exit_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.exit_item")); + final ItemStack exit_item = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_EXIT_ITEM)); if (exit_item.getType() != Material.AIR) { final ItemMeta exitimeta = exit_item.getItemMeta(); @@ -790,7 +790,7 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) p.updateInventory(); } - final ItemStack achievement_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.achievement_item")); + final ItemStack achievement_item = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_ACHIEVEMENT_ITEMS)); if (achievement_item.getType() != Material.AIR) { final ItemMeta achievement_itemmeta = achievement_item.getItemMeta(); @@ -798,7 +798,7 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) achievement_item.setItemMeta(achievement_itemmeta); } - final ItemStack shop_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.shop_selection_item")); + final ItemStack shop_item = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_SHOP_SELECTION_ITEM)); if (shop_item.getType() != Material.AIR) { final ItemMeta shop_itemmeta = shop_item.getItemMeta(); @@ -806,7 +806,7 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) shop_item.setItemMeta(shop_itemmeta); } - if (plugin.getConfig().getBoolean("config.classes_enabled")) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CLASSES_ENABLED)) { p.getInventory().addItem(classes_item); } @@ -814,20 +814,20 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) { p.getInventory().addItem(achievement_item); } - if (plugin.getConfig().getBoolean("config.shop_enabled")) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SHOP_ENABLED)) { p.getInventory().addItem(shop_item); } p.updateInventory(); // custom lobby item - if (plugin.getConfig().getBoolean("config.extra_lobby_item.item0.enabled")) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX)) { - final ItemStack custom_item0 = new ItemStack(plugin.getConfig().getInt("config.extra_lobby_item.item0.item")); + final ItemStack custom_item0 = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX)); if (custom_item0.getType() != Material.AIR) { final ItemMeta custom_item0meta = custom_item0.getItemMeta(); - custom_item0meta.setDisplayName(plugin.getConfig().getString("config.extra_lobby_item.item0.name")); + custom_item0meta.setDisplayName(plugin.getConfig().getString(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_NAME_SUFFIX)); custom_item0.setItemMeta(custom_item0meta); } p.getInventory().addItem(custom_item0); @@ -838,12 +838,12 @@ public static void giveLobbyItems(final JavaPlugin plugin, final Player p) public static void giveSpectatorItems(final JavaPlugin plugin, final Player p) { final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - final ItemStack s_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.spectator_item")); + final ItemStack s_item = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_SPECTATOR_ITEM)); final ItemMeta s_imeta = s_item.getItemMeta(); s_imeta.setDisplayName(pli.getMessagesConfig().spectator_item); s_item.setItemMeta(s_imeta); - final ItemStack exit_item = new ItemStack(plugin.getConfig().getInt("config.selection_items.exit_item")); + final ItemStack exit_item = new ItemStack(plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_EXIT_ITEM)); final ItemMeta exitimeta = exit_item.getItemMeta(); exitimeta.setDisplayName(pli.getMessagesConfig().exit_item); exit_item.setItemMeta(exitimeta); @@ -891,7 +891,7 @@ public static void spawnPowerup(final JavaPlugin plugin, final Arena a, final Lo c.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 100000, 100000)); final Item i = w.dropItem(l, item); c.setPassenger(i); - if (plugin.getConfig().getBoolean("config.powerup_spawning.broadcast")) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_POWERUP_BROADCAST)) { for (final String p_ : a.getAllPlayers()) { @@ -902,7 +902,7 @@ public static void spawnPowerup(final JavaPlugin plugin, final Arena a, final Lo } } } - if (plugin.getConfig().getBoolean("config.powerup_spawning.spawn_firework")) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_POWERUP_FIREWORKS)) { Util.spawnFirework(l); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java index 22a98170..86e34fb6 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java @@ -21,6 +21,7 @@ import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaLogger; import com.comze_instancelabs.minigamesapi.MinigamesAPI; @@ -97,9 +98,9 @@ public static boolean isArenaValid(final JavaPlugin plugin, final Arena arena) public static boolean isArenaValid(final JavaPlugin plugin, final String arena) { final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - if (!config.isSet("arenas." + arena + ".lobby") || !config.isSet("arenas." + arena + ".spawns.spawn0")) + if (!config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby") || !config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0")) { - ArenaLogger.debug(ChatColor.AQUA + arena + " is invalid! lobby:" + config.isSet("arenas." + arena + ".lobby") + " spawns.spawn0:" + config.isSet("arenas." + arena + ".spawns.spawn0")); + ArenaLogger.debug(ChatColor.AQUA + arena + " is invalid! lobby:" + config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby") + " spawns.spawn0:" + config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0")); return false; } return true; @@ -114,7 +115,7 @@ public static boolean isArenaValid(final JavaPlugin plugin, final String arena) public static boolean isArenaValid(final JavaPlugin plugin, final String arena, final FileConfiguration cf) { final FileConfiguration config = cf; - if (!config.isSet("arenas." + arena + ".lobby") || !config.isSet("arenas." + arena + ".spawns.spawn0")) + if (!config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby") || !config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0")) { return false; } From 4335d2c2e9bb60657d7677e7a28661630bb7e922 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 1 Jul 2016 08:14:34 +0200 Subject: [PATCH 020/266] refactoring --- API/pom.xml | 8 +- .../minigamesapi/Arena.java | 315 +++++---- .../minigamesapi/ArenaLogger.java | 663 +++++++++++++++++- .../minigamesapi/ArenaMessageStrings.java | 47 ++ .../minigamesapi/ArenaPermissionStrings.java | 32 + .../minigamesapi/Messages.java | 79 +++ .../minigamesapi/MinecraftVersionsType.java | 21 + .../minigamesapi/MinigamesAPI.java | 73 ++ .../minigamesapi/messages.properties | 2 + .../minigamesapi/util/Util.java | 6 +- 10 files changed, 1091 insertions(+), 155 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/Messages.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties diff --git a/API/pom.xml b/API/pom.xml index 9f729f6d..119550a9 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -35,7 +35,13 @@ <directory>src/main/resources</directory> <filtering>true</filtering> </resource> - </resources> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> <plugins> <plugin> <version>3.0.0</version> diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 6f6552cd..7747f23e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -17,6 +17,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.UUID; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -240,6 +242,9 @@ public class Arena boolean temp_delay_stopped = false; + /** the arenam logger. */ + protected ArenaLogger logger; + /** * Creates a normal singlespawn arena * @@ -254,6 +259,7 @@ public Arena(final JavaPlugin plugin, final String name) this.name = name; this.sr = new SmartReset(this); this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + this.logger = new ArenaLogger(this.plugin.getLogger(), this.name); } /** @@ -308,7 +314,8 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final this.max_players = max_players; this.showArenascoreboard = this.pli.arenaSetup.getShowScoreboard(this.plugin, this.getInternalName()); this.isSuccessfullyInitialized = true; - if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_LOW) && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)) + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_LOW) + && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)) { try { @@ -320,16 +327,14 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final } else { - this.plugin.getServer().getConsoleSender() - .sendMessage(ChatColor.RED + "The boundaries of an arena appear to be invalid (missing world?), please fix! Arena: " + this.getInternalName()); + this.plugin.getServer().getConsoleSender().sendMessage(String.format(Messages.getString("Arena.BoundariesInvalid", MinigamesAPI.LOCALE), this.getInternalName())); //$NON-NLS-1$ this.isSuccessfullyInitialized = false; } } catch (final Exception e) { - // TODO log stack trace - this.plugin.getServer().getConsoleSender().sendMessage( - ChatColor.RED + "Failed to save arenas as you forgot to set boundaries or they could not be found. This will lead to errors later, please fix your setup. " + e.getMessage()); + this.logger.log(Level.WARNING, "Problems checking arena boundaries", e); //$NON-NLS-1$ + this.plugin.getServer().getConsoleSender().sendMessage(String.format(Messages.getString("Arena.SaveFailedBoundaries", MinigamesAPI.LOCALE), e.getMessage())); //$NON-NLS-1$ this.isSuccessfullyInitialized = false; } } @@ -343,11 +348,12 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final } catch (final Exception e) { - // TODO log stack trace + this.logger.log(Level.WARNING, "Problems checking lobby boundaries", e); //$NON-NLS-1$ this.isSuccessfullyInitialized = false; } } - if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_LOW) && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_HIGH)) + if (Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_LOW) + && Util.isComponentForArenaValid(this.plugin, this.getInternalName(), ArenaConfigStrings.SPEC_BOUNDS_HIGH)) { try { @@ -356,7 +362,7 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final } catch (final Exception e) { - // TODO log stack trace + this.logger.log(Level.WARNING, "Problems checking spectator boundaries", e); //$NON-NLS-1$ this.isSuccessfullyInitialized = false; } } @@ -369,7 +375,8 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final final String path = ArenaConfigStrings.ARENAS_PREFIX + this.name + ArenaConfigStrings.DISPLAYNAME_SUFFIX; if (this.pli.getArenasConfig().getConfig().isSet(path)) { - this.displayname = ChatColor.translateAlternateColorCodes('&', this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.name + ArenaConfigStrings.DISPLAYNAME_SUFFIX)); + this.displayname = ChatColor.translateAlternateColorCodes('&', + this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.name + ArenaConfigStrings.DISPLAYNAME_SUFFIX)); } else { @@ -727,31 +734,49 @@ public ArenaType getArenaType() * * @param playername * the playername + * @deprecated will be removed in 1.5.0; string names replaced by UUID */ + @Deprecated public void joinPlayerLobby(final String playername) + { + this.joinPlayerLobby(MinigamesAPI.playerToUUID(playername)); + } + + /** + * Joins the waiting lobby of an arena + * + * @param playerUuid + * the players uuid + */ + public void joinPlayerLobby(final UUID playerUuid) { if (this.getArenaState() != ArenaState.JOIN && this.getArenaState() != ArenaState.STARTING) { // arena ingame or restarting return; } + final Player player = MinigamesAPI.uuidToPlayer(playerUuid); + if (player == null) + return; + + final String playername = player.getName(); if (!this.pli.arenaSetup.getArenaEnabled(this.plugin, this.getInternalName())) { - Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().arena_disabled); + Util.sendMessage(this.plugin, player, this.pli.getMessagesConfig().arena_disabled); return; } if (this.pli.containsGlobalPlayer(playername)) { - Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().already_in_arena); + Util.sendMessage(this.plugin, player, this.pli.getMessagesConfig().already_in_arena); return; } if (this.ai == null && this.isVIPArena()) { if (Validator.isPlayerOnline(playername)) { - if (!Bukkit.getPlayer(playername).hasPermission(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) + if (!player.hasPermission(ArenaPermissionStrings.PREFIX + this.getInternalName()) && !player.hasPermission(ArenaPermissionStrings.VIP)) { - Util.sendMessage(this.plugin, Bukkit.getPlayer(playername), this.pli.getMessagesConfig().no_perm_to_join_arena.replaceAll("<arena>", this.getInternalName())); + Util.sendMessage(this.plugin, player, this.pli.getMessagesConfig().no_perm_to_join_arena.replaceAll(ArenaMessageStrings.ARENA, this.getInternalName())); return; } } @@ -761,8 +786,8 @@ public void joinPlayerLobby(final String playername) // arena full // if player vip -> kick someone and continue - System.out.println(playername + " is vip: " + Bukkit.getPlayer(playername).hasPermission("arenas.*")); - if (!Bukkit.getPlayer(playername).hasPermission(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName()) && !Bukkit.getPlayer(playername).hasPermission("arenas.*")) + this.logger.fine(playername + " is vip: " + player.hasPermission(ArenaPermissionStrings.VIP)); //$NON-NLS-1$ + if (!player.hasPermission(ArenaPermissionStrings.PREFIX + this.getInternalName()) && !player.hasPermission(ArenaPermissionStrings.VIP)) { // no VIP. return; @@ -775,10 +800,11 @@ public void joinPlayerLobby(final String playername) { if (Validator.isPlayerOnline(p_)) { - if (!Bukkit.getPlayer(p_).hasPermission(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName()) && !Bukkit.getPlayer(p_).hasPermission("arenas.*")) + final Player player_ = Bukkit.getPlayer(p_); + if (!player_.hasPermission(ArenaPermissionStrings.PREFIX + this.getInternalName()) && !player_.hasPermission(ArenaPermissionStrings.VIP)) { this.leavePlayer(p_, false, true); - Bukkit.getPlayer(p_).sendMessage(this.pli.getMessagesConfig().you_got_kicked_because_vip_joined); + player_.sendMessage(this.pli.getMessagesConfig().you_got_kicked_because_vip_joined); noone_found = false; break; } @@ -797,7 +823,7 @@ public void joinPlayerLobby(final String playername) final int playersize = party.getPlayers().size() + 1; if (this.getAllPlayers().size() + playersize > this.max_players) { - Bukkit.getPlayer(playername).sendMessage(MinigamesAPI.getAPI().partymessages.party_too_big_to_join); + player.sendMessage(MinigamesAPI.getAPI().partymessages.party_too_big_to_join); return; } @@ -835,33 +861,31 @@ public void joinPlayerLobby(final String playername) if (Validator.isPlayerValid(this.plugin, playername, this)) { - final Player p = Bukkit.getPlayer(playername); + final Player p = player; final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); Bukkit.getServer().getPluginManager().callEvent(new PlayerJoinLobbyEvent(p, this.plugin, this)); - Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().you_joined_arena.replaceAll("<arena>", this.getDisplayName())); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().you_joined_arena.replaceAll(ArenaMessageStrings.ARENA, this.getDisplayName())); Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().minigame_description); if (this.pli.getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.AUTHOR_SUFFIX)) { - Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().author_of_the_map.replaceAll("<arena>", this.getDisplayName()).replaceAll("<author>", + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().author_of_the_map.replaceAll(ArenaMessageStrings.ARENA, this.getDisplayName()).replaceAll(ArenaMessageStrings.AUTHOR, this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.AUTHOR_SUFFIX))); } if (this.pli.getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.DESCRIPTION_SUFFIX)) { - Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().description_of_the_map.replaceAll("<arena>", this.getDisplayName()).replaceAll("<description>", - this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.DESCRIPTION_SUFFIX))); + Util.sendMessage(this.plugin, p, + this.pli.getMessagesConfig().description_of_the_map.replaceAll(ArenaMessageStrings.ARENA, this.getDisplayName()).replaceAll(ArenaMessageStrings.DESCRIPTION, + this.pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.DESCRIPTION_SUFFIX))); } Bukkit.getScheduler().runTaskLater(this.getPlugin(), () -> { try { - if (p != null) - { - Arena.this.pli.getHologramsHandler().sendAllHolograms(p); - } + Arena.this.pli.getHologramsHandler().sendAllHolograms(p); } catch (final Exception e) { - System.out.println("Failed playing hologram: " + e.getMessage()); + this.logger.log(Level.WARNING, "Failed playing hologram: ", e); //$NON-NLS-1$ MinigamesAPI.getAPI(); if (MinigamesAPI.debug) { @@ -877,8 +901,8 @@ public void joinPlayerLobby(final String playername) final Player p__ = Bukkit.getPlayer(p_); final int count = this.getAllPlayers().size(); final int maxcount = this.getMaxPlayers(); - Util.sendMessage(this.plugin, p__, this.pli.getMessagesConfig().broadcast_player_joined.replaceAll("<player>", p.getName()).replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount))); + Util.sendMessage(this.plugin, p__, this.pli.getMessagesConfig().broadcast_player_joined.replaceAll(ArenaMessageStrings.PLAYER, p.getName()) + .replace(ArenaMessageStrings.COUNT, Integer.toString(count)).replace(ArenaMessageStrings.MAXCOUNT, Integer.toString(maxcount))); } } Util.updateSign(this.plugin, this); @@ -1057,7 +1081,7 @@ public void leavePlayer(final String playername, final boolean fullLeave, final { Bukkit.getScheduler().cancelTask(this.currenttaskid); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1098,7 +1122,7 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) } if (p.isDead()) { - System.out.println(p.getName() + " unexpectedly appeared dead! Sending respawn packet."); + this.logger.log(Level.WARNING, p.getName() + " unexpectedly appeared dead! Sending respawn packet."); //$NON-NLS-1$ Effects.playRespawn(p, this.plugin); Bukkit.getScheduler().runTaskLater(this.plugin, () -> Arena.this.leavePlayerRaw(playername, fullLeave), 10L); return; @@ -1139,32 +1163,30 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) { this.pli.global_arcade_spectator.remove(playername); } - // TODO Do we need null check here? It already returns if p is null (see above) - if (p != null) + + p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); + Util.teleportPlayerFixed(p, this.mainlobby); + p.setFireTicks(0); + p.setFlying(false); + if (!p.isOp()) { - p.removePotionEffect(PotionEffectType.JUMP); - p.removePotionEffect(PotionEffectType.INVISIBILITY); - Util.teleportPlayerFixed(p, this.mainlobby); - p.setFireTicks(0); - p.setFlying(false); - if (!p.isOp()) - { - p.setAllowFlight(false); - } - p.setGameMode(ap.getOriginalGamemode()); - p.setLevel(ap.getOriginalXplvl()); - p.getInventory().setContents(ap.getInventory()); - p.getInventory().setArmorContents(ap.getArmorInventory()); - p.updateInventory(); - - p.setWalkSpeed(0.2F); - p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 20 * 2, 50)); - p.setHealth(20); - p.removePotionEffect(PotionEffectType.JUMP); - p.removePotionEffect(PotionEffectType.INVISIBILITY); - this.pli.getSpectatorManager().setSpectate(p, false); - this.pli.getStatsInstance().updateSQLKillsDeathsAfter(p, this); + p.setAllowFlight(false); } + p.setGameMode(ap.getOriginalGamemode()); + p.setLevel(ap.getOriginalXplvl()); + p.getInventory().setContents(ap.getInventory()); + p.getInventory().setArmorContents(ap.getArmorInventory()); + p.updateInventory(); + + p.setWalkSpeed(0.2F); + p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 20 * 2, 50)); + p.setHealth(20); + p.removePotionEffect(PotionEffectType.JUMP); + p.removePotionEffect(PotionEffectType.INVISIBILITY); + this.pli.getSpectatorManager().setSpectate(p, false); + this.pli.getStatsInstance().updateSQLKillsDeathsAfter(p, this); + if (this.pli.getClassesHandler().lasticonm.containsKey(p.getName())) { final IconMenu iconm = this.pli.getClassesHandler().lasticonm.get(p.getName()); @@ -1174,7 +1196,7 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) } catch (final Exception e) { - System.out.println("Failed to log out player out of arena. " + e.getMessage()); + this.logger.log(Level.WARNING, "Failed to log out player out of arena.", e); //$NON-NLS-1$ } return; } @@ -1221,14 +1243,11 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) Bukkit.getScheduler().runTaskLater(this.getPlugin(), () -> { try { - if (p != null) - { - Arena.this.pli.getHologramsHandler().sendAllHolograms(p); - } + Arena.this.pli.getHologramsHandler().sendAllHolograms(p); } catch (final Exception e) { - System.out.println("Failed playing hologram: " + e.getMessage()); + this.logger.log(Level.WARNING, "Failed playing hologram:", e); //$NON-NLS-1$ MinigamesAPI.getAPI(); if (MinigamesAPI.debug) { @@ -1248,73 +1267,70 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) final Arena a = this; final boolean started_ = this.started; Bukkit.getScheduler().runTaskLater(this.plugin, () -> { - if (p != null) + if (Arena.this.ai == null || a.isArcadeMain()) { - if (Arena.this.ai == null || a.isArcadeMain()) - { - if (a.mainlobby != null) - { - Util.teleportPlayerFixed(p, a.mainlobby); - if (Arena.this.hasLeaveCommand()) - { - Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.playLeaveCommand(p), 10L); - } - } - else if (a.waitinglobby != null) - { - Util.teleportPlayerFixed(p, a.waitinglobby); - } - } - p.setFireTicks(0); - p.setFlying(false); - if (!p.isOp()) - { - p.setAllowFlight(false); - } - p.setGameMode(ap.getOriginalGamemode()); - p.setLevel(ap.getOriginalXplvl()); - p.getInventory().setContents(ap.getInventory()); - p.getInventory().setArmorContents(ap.getArmorInventory()); - p.updateInventory(); - p.updateInventory(); - - if (started_) + if (a.mainlobby != null) { - Arena.this.pli.getStatsInstance().updateSQLKillsDeathsAfter(p, a); - if (!ap.isNoReward()) + Util.teleportPlayerFixed(p, a.mainlobby); + if (Arena.this.hasLeaveCommand()) { - Arena.this.pli.getRewardsInstance().giveWinReward(playername, a, Arena.this.temp_players, Arena.this.global_coin_multiplier); - } - else - { - ap.setNoReward(false); + Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.playLeaveCommand(p), 10L); } } - - if (Arena.this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SEND_STATS_ON_STOP)) + else if (a.waitinglobby != null) { - Util.sendStatsMessage(Arena.this.pli, p); + Util.teleportPlayerFixed(p, a.waitinglobby); } - - if (Arena.this.pli.global_lost.containsKey(playername)) + } + p.setFireTicks(0); + p.setFlying(false); + if (!p.isOp()) + { + p.setAllowFlight(false); + } + p.setGameMode(ap.getOriginalGamemode()); + p.setLevel(ap.getOriginalXplvl()); + p.getInventory().setContents(ap.getInventory()); + p.getInventory().setArmorContents(ap.getArmorInventory()); + p.updateInventory(); + p.updateInventory(); + + if (started_) + { + Arena.this.pli.getStatsInstance().updateSQLKillsDeathsAfter(p, a); + if (!ap.isNoReward()) { - Arena.this.pli.getSpectatorManager().showSpectator(p); - Arena.this.pli.global_lost.remove(playername); + Arena.this.pli.getRewardsInstance().giveWinReward(playername, a, Arena.this.temp_players, Arena.this.global_coin_multiplier); } else { - Arena.this.pli.getSpectatorManager().showSpectators(p); - } - - try - { - Arena.this.pli.scoreboardManager.removeScoreboard(arenaname, p); - } - catch (final Exception e) - { - // + ap.setNoReward(false); } } + + if (Arena.this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SEND_STATS_ON_STOP)) + { + Util.sendStatsMessage(Arena.this.pli, p); + } + + if (Arena.this.pli.global_lost.containsKey(playername)) + { + Arena.this.pli.getSpectatorManager().showSpectator(p); + Arena.this.pli.global_lost.remove(playername); + } + else + { + Arena.this.pli.getSpectatorManager().showSpectators(p); + } + + try + { + Arena.this.pli.scoreboardManager.removeScoreboard(arenaname, p); + } + catch (final Exception e) + { + this.logger.log(Level.WARNING, "Failed removing scoreboard for player " + p.getName(), e); //$NON-NLS-1$ + } }, 5L); if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP)) @@ -1459,7 +1475,7 @@ private void spectateRaw(final Player p) } }, 2L); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { if (this.specspawn != null) { @@ -1517,7 +1533,7 @@ public int getTaskId() /** * Starts the lobby count down and the arena afterwards * - * You can instant start an arena by using {@link #start()}. + * You can instant start an arena by using {@link #start(boolean)}. */ public void startLobby() { @@ -1552,7 +1568,7 @@ public void startLobby(final boolean countdown) { lobbycountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SOUNDS_LOBBY_COUNTDOWN)); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1570,7 +1586,7 @@ public void startLobby(final boolean countdown) final Player p1 = Bukkit.getPlayer(p_1); if (countdown) { - Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll("<count>", Integer.toString(Arena.this.currentlobbycount))); + Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll(ArenaMessageStrings.COUNT, Integer.toString(Arena.this.currentlobbycount))); if (lobbycountdown_sound != null) { p1.playSound(p1.getLocation(), lobbycountdown_sound, 1F, 0F); @@ -1598,7 +1614,7 @@ public void startLobby(final boolean countdown) { Bukkit.getScheduler().cancelTask(Arena.this.currenttaskid); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1607,7 +1623,9 @@ public void startLobby(final boolean countdown) } /** - * Instantly starts the arena, teleports players and udpates the arena + * Instantly starts the arena, teleports players and udpates the arena. + * + * @param tp {@code true} to teleport players to spawns */ public void start(final boolean tp) { @@ -1615,7 +1633,7 @@ public void start(final boolean tp) { Bukkit.getScheduler().cancelTask(this.currenttaskid); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1650,7 +1668,7 @@ public void start(final boolean tp) { ingamecountdown_sound_ = Sound.valueOf(this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SOUNDS_INGAME_COUNTDOWN)); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1666,7 +1684,7 @@ public void start(final boolean tp) if (Validator.isPlayerOnline(p_1)) { final Player p1 = Bukkit.getPlayer(p_1); - Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().starting_in.replaceAll("<count>", Integer.toString(Arena.this.currentingamecount))); + Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().starting_in.replaceAll(ArenaMessageStrings.COUNT, Integer.toString(Arena.this.currentingamecount))); if (ingamecountdown_sound != null) { p1.playSound(p1.getLocation(), ingamecountdown_sound, 1F, 0F); @@ -1747,11 +1765,7 @@ void startRaw() } catch (final Exception e) { - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } - System.out.println("Failed to set class: " + e.getMessage() + " at [1] " + e.getStackTrace()[1].getLineNumber() + " [0] " + e.getStackTrace()[0].getLineNumber()); + this.logger.log(Level.WARNING, "Failed to set class", e); //$NON-NLS-1$ } final Player p = Bukkit.getPlayer(p_); p.setWalkSpeed(0.2F); @@ -1774,7 +1788,7 @@ void startRaw() { Bukkit.getScheduler().cancelTask(this.currenttaskid); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1797,12 +1811,11 @@ void startRaw() */ public void started() { - // TODO replace println with logging - System.out.println(this.getInternalName() + " started."); + this.logger.info("started"); //$NON-NLS-1$ } /** - * Invoked externally to stop the arena; esures that it only is called once. + * Invoked externally to stop the arena; ensures that it only is called once. */ public synchronized void stopArena() { @@ -1850,7 +1863,7 @@ protected void stop() { Bukkit.getScheduler().cancelTask(this.currenttaskid); } - catch (final Exception e) + catch (@SuppressWarnings("unused") final Exception e) { // silently ignore } @@ -1879,7 +1892,7 @@ protected void stop() } catch (final Exception e) { - System.out.println("Failed clearing entities."); + this.logger.log(Level.WARNING, "failed clearing entities", e); //$NON-NLS-1$ } this.leavePlayer(p_, false, true); } @@ -1896,7 +1909,7 @@ protected void stop() } catch (final Exception e) { - System.out.println("Failed clearing items: " + e.getMessage()); + this.logger.log(Level.WARNING, "failed clearing entities", e); //$NON-NLS-1$ } if (a.getArenaType() == ArenaType.REGENERATION) @@ -1931,7 +1944,7 @@ protected void stop() } catch (final Exception e) { - // + this.logger.log(Level.WARNING, "failed clearing score boards", e); //$NON-NLS-1$ } /* @@ -1947,7 +1960,7 @@ protected void stop() if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXECUTE_CMDS_ON_STOP)) { - final String[] cmds = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_CMDS).split(";"); + final String[] cmds = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_CMDS).split(";"); //$NON-NLS-1$ if (cmds.length > 0) { for (final String cmd : cmds) @@ -1971,7 +1984,7 @@ protected void stop() if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXECUTE_CMDS_ON_STOP)) { - final String[] cmds = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_CMDS_AFTER).split(";"); + final String[] cmds = this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_CMDS_AFTER).split(";"); //$NON-NLS-1$ if (cmds.length > 0) { for (final String cmd : cmds) @@ -2014,14 +2027,15 @@ public void reset() { if (this.pli.old_reset) { - ArenaLogger.debug("Resetting using old method."); + ArenaLogger.debug("Resetting using old method."); //$NON-NLS-1$ try { PrivateUtil.loadArenaFromFileSYNC(this.plugin, this); } catch (final Exception e) { - ArenaLogger.debug("Error resetting map using old method. " + e.getMessage()); + // TODO Exception log. + ArenaLogger.debug("Error resetting map using old method. " + e.getMessage()); //$NON-NLS-1$ } } else @@ -2047,15 +2061,15 @@ public void onEliminated(final String playername) this.temp_kill_count.put(killer.getName(), this.temp_kill_count.containsKey(killer.getName()) ? this.temp_kill_count.get(killer.getName()) + 1 : 1); this.temp_death_count.put(playername, this.temp_death_count.containsKey(playername) ? this.temp_death_count.get(playername) + 1 : 1); this.pli.getRewardsInstance().giveKillReward(killer.getName()); - Util.sendMessage(this.plugin, killer, MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().you_got_a_kill.replaceAll("<player>", playername)); + Util.sendMessage(this.plugin, killer, MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().you_got_a_kill.replaceAll(ArenaMessageStrings.PLAYER, playername)); for (final String p_ : this.getAllPlayers()) { if (!p_.equalsIgnoreCase(killer.getName())) { if (Validator.isPlayerOnline(p_)) { - Bukkit.getPlayer(p_).sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().player_was_killed_by.replaceAll("<player>", playername) - .replaceAll("<killer>", killer.getName())); + Bukkit.getPlayer(p_).sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().player_was_killed_by.replaceAll(ArenaMessageStrings.PLAYER, playername) + .replaceAll(ArenaMessageStrings.KILLER, killer.getName())); } } } @@ -2082,7 +2096,7 @@ public void nextArenaOnMapRotation(final ArrayList<String> players) { if (a.getArenaState() == ArenaState.JOIN && a != this) { - System.out.println(this.plugin.getName() + ": Next arena on map rotation: " + a.getInternalName()); + this.logger.info("Next arena on map rotation: " + a.getInternalName()); //$NON-NLS-1$ for (final String p_ : players) { if (!a.containsPlayer(p_)) @@ -2101,7 +2115,7 @@ public void nextArenaOnMapRotation(final ArrayList<String> players) */ public String getPlayerCount() { - return Integer.toString(this.getPlayerAlive()) + "/" + Integer.toString(this.getAllPlayers().size()); + return Integer.toString(this.getPlayerAlive()) + "/" + Integer.toString(this.getAllPlayers().size()); //$NON-NLS-1$ } /** @@ -2118,10 +2132,7 @@ public int getPlayerAlive() { continue; } - else - { - alive++; - } + alive++; } return alive; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java index 81520d5e..a37a1f84 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java @@ -14,16 +14,677 @@ */ package com.comze_instancelabs.minigamesapi; +import java.util.function.Supplier; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + import org.bukkit.Bukkit; +/** + * Logging helper for arenas. + * + * @author mepeisen + */ public class ArenaLogger { + /** the plugin logger. */ + private Logger pluginLogger; + + /** the arena name to be used. */ + private String arenaName; + + /** + * The plugin logger to be used. + * + * @param logger + * logger to be used. + * @param arenaName + * arena name to use for logging. + */ + public ArenaLogger(Logger logger, String arenaName) + { + this.pluginLogger = logger; + this.arenaName = arenaName; + } + + /** + * Returns the arena prefix string. + * + * @return arena prefix string for logging. + */ + private String getArenaPrefix() + { + return "[arena:" + this.arenaName + "] "; //$NON-NLS-1$//$NON-NLS-2$ + } + + /** + * Log a SEVERE message. + * <p> + * If the logger is currently enabled for the SEVERE message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void severe(String msg) + { + log(Level.SEVERE, msg); + } + + /** + * Log a WARNING message. + * <p> + * If the logger is currently enabled for the WARNING message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void warning(String msg) + { + log(Level.WARNING, msg); + } + + /** + * Log an INFO message. + * <p> + * If the logger is currently enabled for the INFO message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void info(String msg) + { + log(Level.INFO, msg); + } + + /** + * Log a CONFIG message. + * <p> + * If the logger is currently enabled for the CONFIG message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void config(String msg) + { + log(Level.CONFIG, msg); + } + + /** + * Log a FINE message. + * <p> + * If the logger is currently enabled for the FINE message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void fine(String msg) + { + log(Level.FINE, msg); + } + + /** + * Log a FINER message. + * <p> + * If the logger is currently enabled for the FINER message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void finer(String msg) + { + log(Level.FINER, msg); + } + + /** + * Log a FINEST message. + * <p> + * If the logger is currently enabled for the FINEST message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param msg + * The string message (or a key in the message catalog) + */ + public void finest(String msg) + { + log(Level.FINEST, msg); + } + + /** + * Log a message, with no arguments. + * <p> + * If the logger is currently enabled for the given message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param msg + * The string message (or a key in the message catalog) + */ + public void log(Level level, String msg) + { + this.pluginLogger.log(level, getArenaPrefix() + msg); + } + + /** + * Log a message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the given message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param msgSupplier + * A function, which when called, produces the desired log message + */ + public void log(Level level, Supplier<String> msgSupplier) + { + this.pluginLogger.log(level, () -> (getArenaPrefix() + msgSupplier.get())); + } + + /** + * Log a message, with one object parameter. + * <p> + * If the logger is currently enabled for the given message level then a corresponding LogRecord is created and forwarded to all the registered output Handler objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param msg + * The string message (or a key in the message catalog) + * @param param1 + * parameter to the message + */ + public void log(Level level, String msg, Object param1) + { + this.pluginLogger.log(level, getArenaPrefix() + msg, param1); + } + + /** + * Log a message, with an array of object arguments. + * <p> + * If the logger is currently enabled for the given message level then a corresponding LogRecord is created and forwarded to all the registered output Handler objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param msg + * The string message (or a key in the message catalog) + * @param params + * array of parameters to the message + */ + public void log(Level level, String msg, Object params[]) + { + this.pluginLogger.log(level, getArenaPrefix() + msg, params); + } + + /** + * Log a message, with associated Throwable information. + * <p> + * If the logger is currently enabled for the given message level then the given arguments are stored in a LogRecord which is forwarded to all registered output handlers. + * <p> + * Note that the thrown argument is stored in the LogRecord thrown property, rather than the LogRecord parameters property. Thus it is processed specially by output Formatters and is not treated + * as a formatting parameter to the LogRecord message property. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param msg + * The string message (or a key in the message catalog) + * @param thrown + * Throwable associated with log message. + */ + public void log(Level level, String msg, Throwable thrown) + { + this.pluginLogger.log(level, getArenaPrefix() + msg, thrown); + } + + /** + * Log a lazily constructed message, with associated Throwable information. + * <p> + * If the logger is currently enabled for the given message level then the message is constructed by invoking the provided supplier function. The message and the given {@link Throwable} are then + * stored in a {@link LogRecord} which is forwarded to all registered output handlers. + * <p> + * Note that the thrown argument is stored in the LogRecord thrown property, rather than the LogRecord parameters property. Thus it is processed specially by output Formatters and is not treated + * as a formatting parameter to the LogRecord message property. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param thrown + * Throwable associated with log message. + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void log(Level level, Throwable thrown, Supplier<String> msgSupplier) + { + this.pluginLogger.log(level, thrown, () -> (getArenaPrefix() + msgSupplier.get())); + } + + /** + * Log a message, specifying source class and method, with no arguments. + * <p> + * If the logger is currently enabled for the given message level then the given message is forwarded to all the registered output Handler objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that issued the logging request + * @param msg + * The string message (or a key in the message catalog) + */ + public void logp(Level level, String sourceClass, String sourceMethod, String msg) + { + this.pluginLogger.logp(level, sourceClass, sourceMethod, getArenaPrefix() + msg); + } + + /** + * Log a lazily constructed message, specifying source class and method, with no arguments. + * <p> + * If the logger is currently enabled for the given message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that issued the logging request + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void logp(Level level, String sourceClass, String sourceMethod, Supplier<String> msgSupplier) + { + this.pluginLogger.logp(level, sourceClass, sourceMethod, () -> (getArenaPrefix() + msgSupplier.get())); + } + + /** + * Log a message, specifying source class and method, with a single object parameter to the log message. + * <p> + * If the logger is currently enabled for the given message level then a corresponding LogRecord is created and forwarded to all the registered output Handler objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that issued the logging request + * @param msg + * The string message (or a key in the message catalog) + * @param param1 + * Parameter to the log message. + */ + public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object param1) + { + this.pluginLogger.logp(level, sourceClass, sourceMethod, getArenaPrefix() + msg, param1); + } + + /** + * Log a message, specifying source class and method, with an array of object arguments. + * <p> + * If the logger is currently enabled for the given message level then a corresponding LogRecord is created and forwarded to all the registered output Handler objects. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that issued the logging request + * @param msg + * The string message (or a key in the message catalog) + * @param params + * Array of parameters to the message + */ + public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object params[]) + { + this.pluginLogger.logp(level, sourceClass, sourceMethod, getArenaPrefix() + msg, params); + } + + /** + * Log a message, specifying source class and method, with associated Throwable information. + * <p> + * If the logger is currently enabled for the given message level then the given arguments are stored in a LogRecord which is forwarded to all registered output handlers. + * <p> + * Note that the thrown argument is stored in the LogRecord thrown property, rather than the LogRecord parameters property. Thus it is processed specially by output Formatters and is not treated + * as a formatting parameter to the LogRecord message property. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that issued the logging request + * @param msg + * The string message (or a key in the message catalog) + * @param thrown + * Throwable associated with log message. + */ + public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown) + { + this.pluginLogger.logp(level, sourceClass, sourceMethod, getArenaPrefix() + msg, thrown); + } + + /** + * Log a lazily constructed message, specifying source class and method, with associated Throwable information. + * <p> + * If the logger is currently enabled for the given message level then the message is constructed by invoking the provided supplier function. The message and the given {@link Throwable} are then + * stored in a {@link LogRecord} which is forwarded to all registered output handlers. + * <p> + * Note that the thrown argument is stored in the LogRecord thrown property, rather than the LogRecord parameters property. Thus it is processed specially by output Formatters and is not treated + * as a formatting parameter to the LogRecord message property. + * <p> + * + * @param level + * One of the message level identifiers, e.g., SEVERE + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that issued the logging request + * @param thrown + * Throwable associated with log message. + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void logp(Level level, String sourceClass, String sourceMethod, Throwable thrown, Supplier<String> msgSupplier) + { + this.pluginLogger.logp(level, sourceClass, sourceMethod, thrown, () -> (getArenaPrefix() + msgSupplier.get())); + } + + /** + * Log a method entry. + * <p> + * This is a convenience method that can be used to log entry to a method. A LogRecord with message "ENTRY", log level FINER, and the given sourceMethod and sourceClass is logged. + * <p> + * + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that is being entered + */ + public void entering(String sourceClass, String sourceMethod) + { + this.pluginLogger.logp(Level.FINER, sourceClass, sourceMethod, getArenaPrefix() + "ENTRY"); //$NON-NLS-1$ + } + + /** + * Log a method entry, with one parameter. + * <p> + * This is a convenience method that can be used to log entry to a method. A LogRecord with message "ENTRY {0}", log level FINER, and the given sourceMethod, sourceClass, and parameter is logged. + * <p> + * + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that is being entered + * @param param1 + * parameter to the method being entered + */ + public void entering(String sourceClass, String sourceMethod, Object param1) + { + this.pluginLogger.logp(Level.FINER, sourceClass, sourceMethod, getArenaPrefix() + "ENTRY {0}", param1); //$NON-NLS-1$ + } + + /** + * Log a method entry, with an array of parameters. + * <p> + * This is a convenience method that can be used to log entry to a method. A LogRecord with message "ENTRY" (followed by a format {N} indicator for each entry in the parameter array), log level + * FINER, and the given sourceMethod, sourceClass, and parameters is logged. + * <p> + * + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of method that is being entered + * @param params + * array of parameters to the method being entered + */ + public void entering(String sourceClass, String sourceMethod, Object params[]) + { + String msg = getArenaPrefix() + "ENTRY"; //$NON-NLS-1$ + if (params == null) + { + logp(Level.FINER, sourceClass, sourceMethod, msg); + return; + } + if (!isLoggable(Level.FINER)) + return; + for (int i = 0; i < params.length; i++) + { + msg = msg + " {" + i + "}"; //$NON-NLS-1$ //$NON-NLS-2$ + } + this.pluginLogger.logp(Level.FINER, sourceClass, sourceMethod, msg, params); + } + + /** + * Log a method return. + * <p> + * This is a convenience method that can be used to log returning from a method. A LogRecord with message "RETURN", log level FINER, and the given sourceMethod and sourceClass is logged. + * <p> + * + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of the method + */ + public void exiting(String sourceClass, String sourceMethod) + { + this.pluginLogger.logp(Level.FINER, sourceClass, sourceMethod, getArenaPrefix() + "RETURN"); //$NON-NLS-1$ + } + + /** + * Log a method return, with result object. + * <p> + * This is a convenience method that can be used to log returning from a method. A LogRecord with message "RETURN {0}", log level FINER, and the gives sourceMethod, sourceClass, and result object + * is logged. + * <p> + * + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of the method + * @param result + * Object that is being returned + */ + public void exiting(String sourceClass, String sourceMethod, Object result) + { + this.pluginLogger.logp(Level.FINER, sourceClass, sourceMethod, getArenaPrefix() + "RETURN {0}", result); //$NON-NLS-1$ + } + + /** + * Log throwing an exception. + * <p> + * This is a convenience method to log that a method is terminating by throwing an exception. The logging is done using the FINER level. + * <p> + * If the logger is currently enabled for the given message level then the given arguments are stored in a LogRecord which is forwarded to all registered output handlers. The LogRecord's message + * is set to "THROW". + * <p> + * Note that the thrown argument is stored in the LogRecord thrown property, rather than the LogRecord parameters property. Thus it is processed specially by output Formatters and is not treated + * as a formatting parameter to the LogRecord message property. + * <p> + * + * @param sourceClass + * name of class that issued the logging request + * @param sourceMethod + * name of the method. + * @param thrown + * The Throwable that is being thrown. + */ + public void throwing(String sourceClass, String sourceMethod, Throwable thrown) + { + if (!isLoggable(Level.FINER)) + { + return; + } + LogRecord lr = new LogRecord(Level.FINER, getArenaPrefix() + "THROW"); //$NON-NLS-1$ + lr.setSourceClassName(sourceClass); + lr.setSourceMethodName(sourceMethod); + lr.setThrown(thrown); + this.pluginLogger.log(lr); + } + + /** + * Log a SEVERE message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the SEVERE message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void severe(Supplier<String> msgSupplier) + { + log(Level.SEVERE, msgSupplier); + } + + /** + * Log a WARNING message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the WARNING message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void warning(Supplier<String> msgSupplier) + { + log(Level.WARNING, msgSupplier); + } + + /** + * Log a INFO message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the INFO message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void info(Supplier<String> msgSupplier) + { + log(Level.INFO, msgSupplier); + } + + /** + * Log a CONFIG message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the CONFIG message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void config(Supplier<String> msgSupplier) + { + log(Level.CONFIG, msgSupplier); + } + + /** + * Log a FINE message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the FINE message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void fine(Supplier<String> msgSupplier) + { + log(Level.FINE, msgSupplier); + } + + /** + * Log a FINER message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the FINER message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void finer(Supplier<String> msgSupplier) + { + log(Level.FINER, msgSupplier); + } + + /** + * Log a FINEST message, which is only to be constructed if the logging level is such that the message will actually be logged. + * <p> + * If the logger is currently enabled for the FINEST message level then the message is constructed by invoking the provided supplier function and forwarded to all the registered output Handler + * objects. + * <p> + * + * @param msgSupplier + * A function, which when called, produces the desired log message + * @since 1.8 + */ + public void finest(Supplier<String> msgSupplier) + { + log(Level.FINEST, msgSupplier); + } + + /** + * Get the log Level that has been specified for this Logger. The result may be null, which means that this logger's effective level will be inherited from its parent. + * + * @return this Logger's level + */ + public Level getLevel() + { + return this.pluginLogger.getLevel(); + } + + /** + * Check if a message of the given level would actually be logged by this logger. This check is based on the Loggers effective level, which may be inherited from its parent. + * + * @param level + * a message logging level + * @return true if the given message level is currently being logged. + */ + public boolean isLoggable(Level level) + { + return this.pluginLogger.isLoggable(level); + } + + /** + * Debug some string. + * + * @param msg + * debug message. + */ public static void debug(final String msg) { if (MinigamesAPI.debug) { - Bukkit.getConsoleSender().sendMessage("[" + System.currentTimeMillis() + " MGLIB-DBG] " + msg); + Bukkit.getConsoleSender().sendMessage("[" + System.currentTimeMillis() + " MGLIB-DBG] " + msg); //$NON-NLS-1$ //$NON-NLS-2$ } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java new file mode 100644 index 00000000..cc9508cb --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java @@ -0,0 +1,47 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Strings for messages. + * + * @author mepeisen + */ +public interface ArenaMessageStrings +{ + + /** ARENA replacement. */ + String ARENA = "<arena>"; //$NON-NLS-1$ + + /** AUTHOR replacement. */ + String AUTHOR = "<author>"; //$NON-NLS-1$ + + /** DESCRIPTION replacement. */ + String DESCRIPTION = "<description>"; //$NON-NLS-1$ + + /** PLAYER replacement. */ + String PLAYER = "<player>"; //$NON-NLS-1$ + + /** KILLER replacement. */ + String KILLER = "<killer>"; //$NON-NLS-1$ + + /** COUNT replacement. */ + String COUNT = "<count>"; //$NON-NLS-1$ + + /** MAXCOUNT replacement. */ + String MAXCOUNT = "<maxcount>"; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java new file mode 100644 index 00000000..52937c66 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Strings for arenas permissions. + * + * @author mepeisen + */ +public interface ArenaPermissionStrings +{ + + /** arenas vip permission. */ + String VIP = "arenas.*"; //$NON-NLS-1$ + + /** arena prefix for permission. */ + String PREFIX = "arenas."; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Messages.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Messages.java new file mode 100644 index 00000000..5c2b86b8 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Messages.java @@ -0,0 +1,79 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +import java.util.Locale; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.ResourceBundle; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Localized message helper. + * + * @author mepeisen + */ +public class Messages +{ + + /** the resource bundle name. */ + private static final String BUNDLE_NAME = "com.comze_instancelabs.minigamesapi.messages"; //$NON-NLS-1$ + + /** the default resource bundle; used as fallback. */ + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); + + /** the bundles by locales. */ + private static final Map<Locale, ResourceBundle> BUNDLES = new ConcurrentHashMap<>(); + + /** + * hidden constructor. + */ + private Messages() + { + } + + /** + * Returns the localized string + * + * @param key + * string key + * @param locale + * locale to be used. + * @return localized string. + */ + public static String getString(String key, Locale locale) + { + try + { + final ResourceBundle res = BUNDLES.computeIfAbsent(locale, (l) -> { + try + { + return ResourceBundle.getBundle(BUNDLE_NAME, l); + } + catch (@SuppressWarnings("unused") MissingResourceException ex) + { + return RESOURCE_BUNDLE; + } + }); + return res.getString(key); + } + catch (@SuppressWarnings("unused") MissingResourceException e) + { + return '!' + key + '!'; + } + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 23d2eec5..6ac3dc20 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -118,4 +118,25 @@ public boolean isAfter(final MinecraftVersionsType type) return this.ordinal() > type.ordinal(); } + /** + * Checks if this version is at least given version. + * + * <ul> + * <li>V1_7_R4 will be at least V1_7.</li> + * <li>V1_7_R3 will be after V1_7_R2.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAtLeast(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return true; + } + return this.ordinal() > type.ordinal(); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 5e327742..7d535d40 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -19,10 +19,13 @@ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.Locale; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; +import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -58,6 +61,9 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** the overall minecraft server versioon. */ public static final MinecraftVersionsType SERVER_VERSION = MinigamesAPI.getServerVersion(); + /** the locale to be used. TODO: Change via config */ + public static Locale LOCALE = Locale.ENGLISH; + static MinigamesAPI instance = null; public static Economy econ = null; public static boolean economy = true; @@ -849,4 +855,71 @@ public PluginInstance getPluginInstance(final JavaPlugin plugin) return MinigamesAPI.pinstances.get(plugin); } + /** + * Version safe conversion utility (temporary workaround) + * @param playername + * @return uuid of the player + * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Player#getUniqueId()} + */ + @Deprecated + public static UUID playerToUUID(String playername) + { + final Player player = Bukkit.getPlayer(playername); + if (player != null) + { + return playerToUUID(player); + } + return null; + } + + /** + * Version safe conversion utility (temporary workaround) + * @param player + * @return uuid of the player + * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Player#getUniqueId()} + */ + public static UUID playerToUUID(Player player) + { + if (SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { + return player.getUniqueId(); + } + else + { + try + { + final Object handle = player.getClass().getDeclaredMethod("getHandle").invoke(player); + return (UUID) handle.getClass().getDeclaredMethod("getUniqueID").invoke(handle); + } + catch (Exception ex) + { + // TODO Logging + return null; + } + } + } + + /** + * Version safe conversion utility (temporary workaround) + * @param uuid + * @return player object + * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Bukkit#getPlayer(UUID)} + */ + public static Player uuidToPlayer(UUID uuid) + { + if (SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) + { + return Bukkit.getPlayer(uuid); + } + + for (Player p : Bukkit.getServer().getOnlinePlayers()) + { + if (uuid.equals(playerToUUID(p))) + { + return p; + } + } + return null; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties b/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties new file mode 100644 index 00000000..ec64e57f --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties @@ -0,0 +1,2 @@ +Arena.BoundariesInvalid=&cThe boundaries of an arena appear to be invalid (missing world?), please fix\! Arena: %0$s +Arena.SaveFailedBoundaries=&cFailed to save arenas as you forgot to set boundaries or they could not be found. This will lead to errors later, please fix your setup. %0$s diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 65883138..e94a9ab2 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -70,6 +70,7 @@ import com.comze_instancelabs.minigamesapi.ArenaLogger; import com.comze_instancelabs.minigamesapi.ArenaSetup; import com.comze_instancelabs.minigamesapi.ArenaState; +import com.comze_instancelabs.minigamesapi.MinecraftVersionsType; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; import com.comze_instancelabs.minigamesapi.config.ArenasConfig; @@ -1108,7 +1109,10 @@ public static void pushBack(final Location l, final Player p) { p.getVehicle().setVelocity(direction.multiply(2.2D)); } - p.spawnParticle(Particle.PORTAL, p.getLocation(), 10); + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_9)) + { + p.spawnParticle(Particle.PORTAL, p.getLocation(), 10); + } } public static Score getScore(final Objective obj, final String text) From ac31471696c6383c8de00149b8f3b8f2e9fb4c5a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 2 Jul 2016 12:16:28 +0200 Subject: [PATCH 021/266] refactoring and fixes NPE from https://github.com/MysticCity/MinigamesAPI/issues/41 --- .../minigamesapi/ArenaListener.java | 1563 +++++++++++------ .../minigamesapi/ArenaType.java | 3 + 2 files changed, 1015 insertions(+), 551 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 68198904..cf599cac 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -85,19 +85,41 @@ import com.comze_instancelabs.minigamesapi.util.Util.CompassPlayer; import com.comze_instancelabs.minigamesapi.util.Validator; +/** + * Bukkit event listener for minigames-lib; one instance per minigame plugin. + * + * @author mepeisen + */ public class ArenaListener implements Listener { + /** minigame plugin. */ private JavaPlugin plugin = null; + + /** reference to internal representation of minigames plugin. */ private PluginInstance pli = null; - private String minigame = "minigame"; + /** name of the minigame. */ + private String minigame = "minigame"; //$NON-NLS-1$ + /** the commands that we use. */ private ArrayList<String> cmds = new ArrayList<>(); - private String leave_cmd = "/leave"; + + /** the leave command. */ + private String leave_cmd = "/leave"; //$NON-NLS-1$ public int loseY = 4; + /** + * Constructor to create the arena listener. + * + * @param plugin + * minigame plugin + * @param pinstance + * internal representation of minigame plugin + * @param minigame + * name of the minigame. + */ public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame) { this.plugin = plugin; @@ -106,325 +128,555 @@ public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, fi this.leave_cmd = plugin.getConfig().getString(ArenaConfigStrings.CONFIG_LEAVE_COMMAND); } + /** + * Constructor to create the arena listener. + * + * @param plugin + * minigame plugin + * @param pinstance + * internal representation of minigame plugin + * @param minigame + * name of the minigame. + * @param cmds + * the commands that we use + */ public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) { this(plugin, pinstance, minigame); this.cmds = cmds; } - @EventHandler - public void onPlayerDrop(final PlayerDropItemEvent event) + // ************************* + // ***** smart reset support + // ************************* + + /** + * Player explode event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onExplode(final EntityExplodeEvent event) { - if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + for (final Arena a : this.pli.getArenas()) { - final Arena a = this.pli.global_players.get(event.getPlayer().getName()); - if (a != null) + if (a.getArenaType() == ArenaType.REGENERATION) { - if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.isArcadeMain()) - { - event.setCancelled(true); - } - if (a.getArenaState() == ArenaState.INGAME && this.pli.containsGlobalLost(event.getPlayer().getName())) + final Cuboid c = a.getBoundaries(); + if (c != null) { - event.setCancelled(true); + if (event.getEntity() != null) + { + if (c.containsLocWithoutY(event.getEntity().getLocation())) + { + for (final Block b : event.blockList()) + { + a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + } + } + } } } } } - @EventHandler - public void onPlayerPickupItem(final PlayerPickupItemEvent event) + /** + * Block from/to event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * <p> + * Will cancel the event during RESTARTING phase of the arena. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onBlockFromTo(final BlockFromToEvent event) { - this.pli.getSpectatorManager(); - // spectators shall not pick up items - if (this.pli.containsGlobalLost(event.getPlayer().getName()) || SpectatorManager.isSpectating(event.getPlayer())) + for (final Arena a : this.pli.getArenas()) { - final Arena a = this.pli.global_lost.get(event.getPlayer().getName()); - if (a != null) + if (a.getArenaType() == ArenaType.REGENERATION) { - if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null) + final Cuboid c = a.getBoundaries(); + if (c != null) { - event.setCancelled(true); + if (c.containsLocWithoutYD(event.getBlock().getLocation())) + { + if (a.getArenaState() == ArenaState.INGAME) + { + a.getSmartReset().addChanged(event.getToBlock(), event.getToBlock().getType().equals(Material.CHEST), ChangeCause.FROM_TO); + } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } + } } } } } - @EventHandler - public void onInventoryClick(final InventoryClickEvent event) + /** + * Block fade event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries and while in INGAME arena state. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onBlockFade(final BlockFadeEvent event) { - if (event.getWhoClicked() instanceof Player) + for (final Arena a : this.pli.getArenas()) { - final Player p = (Player) event.getWhoClicked(); - if (this.pli.containsGlobalPlayer(p.getName())) + if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { - final Arena a = this.pli.global_players.get(p.getName()); - if (a != null) + final Cuboid c = a.getBoundaries(); + if (c != null) { - if (a.getArenaState() == ArenaState.STARTING && a.getArcadeInstance() == null && !a.isArcadeMain()) + if (c.containsLocWithoutY(event.getBlock().getLocation())) { - event.setCancelled(true); + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.FADE); } } } } } - private List<Entity> getEntitiesByLocation(final Location loc, final double d) + /** + * Block physics event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries and while in INGAME arena state. + * </p> + * + * <p> + * Ignores materials: carpet and red_block (=bed). + * </p> + * + * <p> + * Will cancel the event during RESTARTING phase of the arena. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onBlockPhysics(final BlockPhysicsEvent event) { - final List<Entity> ent = new ArrayList(); - for (final Entity e : loc.getWorld().getEntities()) + for (final Arena a : this.pli.getArenas()) { - if (e.getLocation().distanceSquared(loc) <= d) + if (a.getArenaType() == ArenaType.REGENERATION) { - ent.add(e); + final Cuboid c = a.getBoundaries(); + if (c != null) + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + if (event.getChangedType() == Material.CARPET || event.getChangedType() == Material.BED_BLOCK) + { + return; + } + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.PHYSICS); + } + } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } + } } } - return ent; } + /** + * Block redstone event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries and while in INGAME arena state. + * </p> + * + * @param event + * event object + */ @EventHandler - public void Space(final PlayerMoveEvent event) + public void onBlockRedstone(final BlockRedstoneEvent event) { - final Player p = event.getPlayer(); - if (this.pli.containsGlobalPlayer(p.getName())) + for (final Arena a : this.pli.getArenas()) { - final Arena a = this.pli.global_players.get(p.getName()); - if (a != null) + if (a.getArenaType() == ArenaType.REGENERATION) { - if (a.getArenaState() == ArenaState.INGAME) + final Cuboid c = a.getBoundaries(); + if (c != null) { - if (!ArenaListener.isSpectating(p)) + if (a.getArenaState() == ArenaState.INGAME) { - for (final Entity e : this.getEntitiesByLocation(p.getLocation(), 30D)) - { - - if (e instanceof Player) - { - final Player sp = (Player) e; - - if (ArenaListener.isSpectating(sp)) - { - sp.setVelocity(sp.getLocation().getDirection().setY(0.05D)); - sp.setVelocity(sp.getLocation().getDirection().multiply(-2)); - } - - } - } + a.getSmartReset().addChanged(event.getBlock(), false); } } } } } - @Deprecated - public static boolean isSpectating(final Player p) - { - return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onMove(final PlayerMoveEvent event) + /** + * Block spread event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries and while in INGAME arena state. + * </p> + * + * <p> + * Will cancel the event during RESTARTING phase of the arena. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onBlockSpread(final BlockSpreadEvent event) { - try + // disallow fire spread while the arena restarts + for (final Arena a : this.pli.getArenas()) { - final Player p = event.getPlayer(); - if (this.pli.containsGlobalPlayer(p.getName())) + if (a.getArenaType() == ArenaType.REGENERATION) { - final Arena a = this.pli.global_players.get(p.getName()); - if (!this.pli.containsGlobalLost(p.getName()) && !this.pli.global_arcade_spectator.containsKey(p.getName())) + final Cuboid c = a.getBoundaries(); + if (c != null) { if (a.getArenaState() == ArenaState.INGAME) { - if (p.getLocation().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) - { - if (a.getArenaType() == ArenaType.JUMPNRUN) - { - Util.teleportPlayerFixed(p, a.getSpawns().get(0)); - } - else - { - a.spectate(p.getName()); - } - return; - } - if (a.getBoundaries() != null) - { - if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) - { - Util.pushBack(a.getSpawns().get(0), p); - } - } + a.getSmartReset().addChanged(event.getBlock().getLocation(), Material.AIR, (byte) 0); } - else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaState.JOIN) + else if (a.getArenaState() == ArenaState.RESTARTING) { - if (!a.isArcadeMain()) - { - if (!a.getIngameCountdownStarted()) - { - if (p.getLocation().getBlockY() < 0) - { - try - { - Util.teleportPlayerFixed(p, a.getWaitingLobbyTemp()); - } - catch (final Exception e) - { - System.out.println("Waiting lobby for arena " + a.getInternalName() + " missing, please fix by setting it. " + e.getMessage()); - } - } - if (a.getLobbyBoundaries() != null && !a.skip_join_lobby) - { - if (!a.getLobbyBoundaries().containsLocWithoutY(p.getLocation())) - { - Util.pushBack(a.getWaitingLobbyTemp(), p); - } - } - } - } + event.setCancelled(true); } } - else + } + } + } + + /** + * Entity change block event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onEntityChangeBlock(final EntityChangeBlockEvent event) + { + if (event.getEntity() instanceof Enderman) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) { - if (a.getArenaState() == ArenaState.INGAME) + final Cuboid c = a.getBoundaries(); + if (c != null) { - if (this.pli.spectator_move_y_lock && event.getPlayer().getLocation().getBlockY() < (a.getSpawns().get(0).getBlockY() + 30D) - || event.getPlayer().getLocation().getBlockY() > (a.getSpawns().get(0).getBlockY() + 30D)) - { - final float b = p.getLocation().getYaw(); - final float c = p.getLocation().getPitch(); - Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> { - p.setAllowFlight(true); - p.setFlying(true); - if (p.isInsideVehicle()) - { - final Entity ent = p.getVehicle(); - p.leaveVehicle(); - ent.eject(); - } - p.teleport(new Location(p.getWorld(), p.getLocation().getBlockX(), (a.getSpawns().get(0).getBlockY() + 30D), p.getLocation().getBlockZ(), b, c)); - }, 1); - return; - } - - if (a.getSpecBoundaries() != null) - { - if (!a.getSpecBoundaries().containsLocWithoutY(p.getLocation())) - { - Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); - } - return; - } - if (a.getBoundaries() != null) + if (c.containsLocWithoutY(event.getEntity().getLocation())) { - if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) - { - Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); - } + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.ENTITY_CHANGE); } } } } } - catch (final Exception e) - { - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } - } - } - @EventHandler - public void onHunger(final FoodLevelChangeEvent event) + /** + * Leaves decay event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries and while in INGAME arena state. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onLeavesDecay(final LeavesDecayEvent event) { - if (event.getEntity() instanceof Player) + for (final Arena a : this.pli.getArenas()) { - final Player p = (Player) event.getEntity(); - if (this.pli.containsGlobalPlayer(p.getName())) + if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { - if (!this.pli.global_players.get(p.getName()).isArcadeMain()) + final Cuboid c = a.getBoundaries(); + if (c != null) { - event.setCancelled(true); + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST)); + } } } } } - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerDeath(final PlayerDeathEvent event) + /** + * Block burn event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onBlockBurn(final BlockBurnEvent event) { - if (this.pli.containsGlobalPlayer(event.getEntity().getName())) + for (final Arena a : this.pli.getArenas()) { - event.setDeathMessage(null); - final Player p = event.getEntity(); - - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 3, 50)); - - final Arena arena = this.pli.global_players.get(p.getName()); - if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.getIngameCountdownStarted())) + if (Validator.isArenaValid(this.plugin, a) && a.getArenaType() == ArenaType.REGENERATION) { - if (arena.isArcadeMain()) + final Cuboid c = new Cuboid(Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_LOW), + Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)); + if (c != null) { - Util.teleportPlayerFixed(p, arena.getWaitingLobbyTemp()); + if (c.containsLocWithoutY(event.getBlock().getLocation())) + { + a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BURN); + } } } - - arena.global_drops.addAll(event.getDrops()); - - arena.spectate(p.getName()); - - this.pli.global_lost.put(p.getName(), arena); - - int count = 0; - // for (String p_ : pli.global_players.keySet()) { - // if (Validator.isPlayerOnline(p_)) { - // if (pli.global_players.get(p_).getInternalName().equalsIgnoreCase(arena.getInternalName())) { - // if (!pli.containsGlobalLost(p_)) { - // count++; - // } - // } - // } - // } - for (final String p_ : arena.getAllPlayers()) + } + } + + /** + * On Structure grow event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onStructureGrow(final StructureGrowEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) { - if (Validator.isPlayerOnline(p_)) + final Cuboid c = new Cuboid(Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_LOW), + Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)); + if (c != null) { - if (!this.pli.containsGlobalLost(p_)) + final Location start = event.getLocation(); + if (c.containsLocWithoutY(start)) { - count++; + a.getSmartReset().addChanged(start.getBlock(), false); + for (final BlockState bs : event.getBlocks()) + { + final Block b = bs.getBlock(); + a.getSmartReset().addChanged(b.getLocation(), Material.AIR, (byte) 0); + } } } } - final int count_ = count; - - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { - if (ArenaListener.this.pli.containsGlobalPlayer(p.getName()) && count_ > 1) + } + } + + /** + * Block break event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * TODO difference to blockbreak2? + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onBlockBreak2(final BlockBreakEvent event) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (event.getBlock().getType() != Material.AIR) + { + a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); + } + } + } + + // ******************* + // ***** cancel events + // ******************* + + /** + * Player drop item event. + * + * <p> + * Cancelled while ingame and player already lost the game. + * </p> + * + * <p> + * Cancelled while not ingame and this is not an arcade arena. + * TODO: Any reason why? + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onPlayerDrop(final PlayerDropItemEvent event) + { + if (this.pli.containsGlobalPlayer(event.getPlayer().getName())) + { + final Arena a = this.pli.global_players.get(event.getPlayer().getName()); + if (a != null) + { + if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.isArcadeMain()) { - arena.spectate(p.getName()); + event.setCancelled(true); } - for (final String p_ : arena.getAllPlayers()) + if (a.getArenaState() == ArenaState.INGAME && this.pli.containsGlobalLost(event.getPlayer().getName())) { - if (Validator.isPlayerOnline(p_)) + event.setCancelled(true); + } + } + } + } + + /** + * Player pickup item event. + * + * <p> + * Cancelled while ingame and this is not arcade. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onPlayerPickupItem(final PlayerPickupItemEvent event) + { + this.pli.getSpectatorManager(); + // spectators shall not pick up items + if (this.pli.containsGlobalLost(event.getPlayer().getName()) || SpectatorManager.isSpectating(event.getPlayer())) + { + final Arena a = this.pli.global_lost.get(event.getPlayer().getName()); + if (a != null) + { + if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null) + { + event.setCancelled(true); + } + } + } + } + + /** + * Player inventory click event. + * + * <p> + * Cancelled while starting and this is not arcade. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onInventoryClick(final InventoryClickEvent event) + { + if (event.getWhoClicked() instanceof Player) + { + final Player p = (Player) event.getWhoClicked(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a != null) + { + if (a.getArenaState() == ArenaState.STARTING && a.getArcadeInstance() == null && !a.isArcadeMain()) { - final Player p__ = Bukkit.getPlayer(p_); - Util.sendMessage(ArenaListener.this.plugin, p__, ArenaListener.this.pli.getMessagesConfig().broadcast_players_left.replaceAll("<count>", arena.getPlayerCount())); + event.setCancelled(true); } } - }, 5); - - if (this.pli.last_man_standing) + } + } + } + + /** + * Player hunger event. + * + * <p> + * Cancelled while in arena and not in arcade. + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onHunger(final FoodLevelChangeEvent event) + { + if (event.getEntity() instanceof Player) + { + final Player p = (Player) event.getEntity(); + if (this.pli.containsGlobalPlayer(p.getName())) { - if (count < 2) + if (!this.pli.global_players.get(p.getName()).isArcadeMain()) { - // last man standing - arena.stopArena(); + event.setCancelled(true); } } } } + /** + * Player damage event. + * + * <p> + * Cancelled while in lobby (JOIN/STARTING state) + * </p> + * + * @param event + * event object + */ @EventHandler public void NoDamageEntityInLobby(final EntityDamageByEntityEvent event) { @@ -446,6 +698,16 @@ public void NoDamageEntityInLobby(final EntityDamageByEntityEvent event) } } + /** + * Player interact entity event. + * + * <p> + * Cancelled while in lobby (JOIN/STARTING phase) + * </p> + * + * @param event + * event object + */ @EventHandler public void NoClickEntityInLobby(final PlayerInteractEntityEvent event) throws IOException { @@ -454,381 +716,494 @@ public void NoClickEntityInLobby(final PlayerInteractEntityEvent event) throws I if (!(e instanceof Player)) { final Arena arena = this.pli.global_players.get(p.getName()); - if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) + if (arena != null) { - if (event.getRightClicked().getType().equals(EntityType.ARMOR_STAND) || event.getRightClicked().getType().equals(EntityType.MINECART) - || event.getRightClicked().getType().equals(EntityType.MINECART_CHEST) || event.getRightClicked().getType().equals(EntityType.MINECART_HOPPER) - || event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) || event.getRightClicked().getType().equals(EntityType.PAINTING)) + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING)) { - event.setCancelled(true); - return; + if (event.getRightClicked().getType().equals(EntityType.ARMOR_STAND) || event.getRightClicked().getType().equals(EntityType.MINECART) + || event.getRightClicked().getType().equals(EntityType.MINECART_CHEST) || event.getRightClicked().getType().equals(EntityType.MINECART_HOPPER) + || event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) || event.getRightClicked().getType().equals(EntityType.PAINTING)) + { + event.setCancelled(true); + return; + } } } } } - @EventHandler - public void onEntityDamage(final EntityDamageEvent event) + /** + * Player painting break event. + * + * <p> + * Cancelled while being in arena. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onPaintingBreak(final HangingBreakByEntityEvent event) { - if (event.getEntity() instanceof Player) + if (event.getRemover() instanceof Player) { - final Player p = (Player) event.getEntity(); - if (this.pli.containsGlobalPlayer(p.getName()) && this.pli.containsGlobalLost(p.getName())) - { - final Arena a = this.pli.global_players.get(p.getName()); - if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) - { - event.setCancelled(true); - } - } - if (event.getCause().equals(DamageCause.ENTITY_ATTACK)) + final String p_ = ((Player) event.getRemover()).getName(); + if (this.pli.containsGlobalPlayer(p_)) { - if (this.pli.containsGlobalPlayer(p.getName())) - { - final Arena a = this.pli.global_players.get(p.getName()); - if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) - { - // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); - event.setCancelled(true); - } - if (this.pli.blood_effects && (a.getArenaState() == ArenaState.INGAME || a.getAlwaysPvP()) && !a.isArcadeMain()) - { - Effects.playBloodEffect(p); - } - } - this.pli.getSpectatorManager(); - if (this.pli.containsGlobalLost(p.getName()) || SpectatorManager.isSpectating(p)) - { - // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); - event.setCancelled(true); - } + event.setCancelled(true); } - else if (event.getCause().equals(DamageCause.FALL)) + } + + } + + // ****************** + // ***** other events + // ****************** + + /** + * Fetches player move event. + * + * <p> + * TODO describe what this event is doing. Seems to ensure that players cannot collide. + * </p> + * + * @param event + * the player move event. + */ + @EventHandler + public void Space(final PlayerMoveEvent event) + { + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (a != null) { - if (this.pli.containsGlobalPlayer(p.getName())) + if (a.getArenaState() == ArenaState.INGAME) { - final Arena a = this.pli.global_players.get(p.getName()); - if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() != null) + if (!ArenaListener.isSpectating(p)) { - event.setCancelled(true); + for (final Entity e : this.getEntitiesByLocation(p.getLocation(), 30D)) + { + + if (e instanceof Player) + { + final Player sp = (Player) e; + + if (ArenaListener.isSpectating(sp)) + { + sp.setVelocity(sp.getLocation().getDirection().setY(0.05D)); + sp.setVelocity(sp.getLocation().getDirection().multiply(-2)); + } + + } + } } } } } } - @EventHandler - public void onEntityDamageByEntity(final EntityDamageByEntityEvent event) + /** + * Fetches player move event. + * + * <p> + * TODO describe what this event is doing. + * </p> + * + * @param event + * the player move event. + */ + @EventHandler(priority = EventPriority.HIGHEST) + public void onMove(final PlayerMoveEvent event) { - if (event.getEntity() instanceof Player) + try { - final Player p = (Player) event.getEntity(); - Player attacker = null; - if (event.getDamager() instanceof Projectile) - { - final Projectile projectile = (Projectile) event.getDamager(); - if (projectile.getShooter() instanceof Player) - { - attacker = (Player) projectile.getShooter(); - } - } - else if (event.getDamager() instanceof Player) - { - attacker = (Player) event.getDamager(); - } - else - { - return; - } - - if (p != null && attacker != null) + final Player p = event.getPlayer(); + if (this.pli.containsGlobalPlayer(p.getName())) { - if (this.pli.containsGlobalPlayer(p.getName()) && this.pli.containsGlobalPlayer(attacker.getName())) + final Arena a = this.pli.global_players.get(p.getName()); + if (!this.pli.containsGlobalLost(p.getName()) && !this.pli.global_arcade_spectator.containsKey(p.getName())) { - this.pli.getSpectatorManager(); - if (SpectatorManager.isSpectating(p)) + if (a.getArenaState() == ArenaState.INGAME) { - if (event.getDamager() instanceof Arrow) - { - p.teleport(p.getLocation().add(0, 3D, 0)); - - final Arrow arr = attacker.launchProjectile(Arrow.class); - arr.setShooter(attacker); - arr.setVelocity(((Arrow) event.getDamager()).getVelocity()); - arr.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); - } - else if (event.getDamager() instanceof Egg) - { - p.teleport(p.getLocation().add(0, 3D, 0)); - - final Egg egg = attacker.launchProjectile(Egg.class); - egg.setShooter(attacker); - egg.setVelocity(((Egg) event.getDamager()).getVelocity()); - egg.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); - } - else if (event.getDamager() instanceof Snowball) + if (p.getLocation().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) { - p.teleport(p.getLocation().add(0, 3D, 0)); - - final Snowball sb = attacker.launchProjectile(Snowball.class); - sb.setShooter(attacker); - sb.setVelocity(((Snowball) event.getDamager()).getVelocity()); - sb.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); + if (a.getArenaType() == ArenaType.JUMPNRUN) + { + Util.teleportPlayerFixed(p, a.getSpawns().get(0)); + } + else + { + a.spectate(p.getName()); + } + return; } - else if (event.getDamager() instanceof EnderPearl) + if (a.getBoundaries() != null) { - p.teleport(p.getLocation().add(0, 3D, 0)); - - final EnderPearl sb = attacker.launchProjectile(EnderPearl.class); - sb.setShooter(attacker); - sb.setVelocity(((EnderPearl) event.getDamager()).getVelocity()); - sb.setBounce(false); - - event.setCancelled(true); - event.getDamager().remove(); + if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) + { + Util.pushBack(a.getSpawns().get(0), p); + } } - event.setCancelled(true); - return; } - if (this.pli.containsGlobalLost(attacker.getName())) + else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaState.JOIN) { - event.setCancelled(true); - return; + if (!a.isArcadeMain()) + { + if (!a.getIngameCountdownStarted()) + { + if (p.getLocation().getBlockY() < 0) + { + try + { + Util.teleportPlayerFixed(p, a.getWaitingLobbyTemp()); + } + catch (final Exception e) + { + System.out.println("Waiting lobby for arena " + a.getInternalName() + " missing, please fix by setting it. " + e.getMessage()); + } + } + if (a.getLobbyBoundaries() != null && !a.skip_join_lobby) + { + if (!a.getLobbyBoundaries().containsLocWithoutY(p.getLocation())) + { + Util.pushBack(a.getWaitingLobbyTemp(), p); + } + } + } + } } - final Arena a = this.pli.global_players.get(p.getName()); + } + else + { if (a.getArenaState() == ArenaState.INGAME) { - a.setLastDamager(p.getName(), attacker.getName()); - if (this.pli.damage_identifier_effects) + if (this.pli.spectator_move_y_lock && event.getPlayer().getLocation().getBlockY() < (a.getSpawns().get(0).getBlockY() + 30D) + || event.getPlayer().getLocation().getBlockY() > (a.getSpawns().get(0).getBlockY() + 30D)) { - ChatColor c = ChatColor.YELLOW; - if (event.getDamage() >= 5D) + final float b = p.getLocation().getYaw(); + final float c = p.getLocation().getPitch(); + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> { + p.setAllowFlight(true); + p.setFlying(true); + if (p.isInsideVehicle()) + { + final Entity ent = p.getVehicle(); + p.leaveVehicle(); + ent.eject(); + } + p.teleport(new Location(p.getWorld(), p.getLocation().getBlockX(), (a.getSpawns().get(0).getBlockY() + 30D), p.getLocation().getBlockZ(), b, c)); + }, 1); + return; + } + + if (a.getSpecBoundaries() != null) + { + if (!a.getSpecBoundaries().containsLocWithoutY(p.getLocation())) { - c = ChatColor.GOLD; + Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); } - if (event.getDamage() >= 9D) + return; + } + if (a.getBoundaries() != null) + { + if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) { - c = ChatColor.RED; + Util.pushBack(a.getSpawns().get(0).clone().add(0D, 30D, 0D), p); } - Effects.playHologram(attacker, p.getLocation(), c + Double.toString(event.getDamage()), true, true); } } - else if (a.getArenaState() == ArenaState.RESTARTING) - { - event.setCancelled(true); - } } } } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onPaintingBreak(final HangingBreakByEntityEvent event) - { - if (event.getRemover() instanceof Player) + catch (final Exception e) { - final String p_ = ((Player) event.getRemover()).getName(); - if (this.pli.containsGlobalPlayer(p_)) + if (MinigamesAPI.debug) { - event.setCancelled(true); + e.printStackTrace(); } } } - @EventHandler(priority = EventPriority.HIGH) - public void onExplode(final EntityExplodeEvent event) + /** + * Player death event. + * + * <p> + * TODO describe what is going on + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerDeath(final PlayerDeathEvent event) { - for (final Arena a : this.pli.getArenas()) + if (this.pli.containsGlobalPlayer(event.getEntity().getName())) { - if (a.getArenaType() == ArenaType.REGENERATION) + event.setDeathMessage(null); + final Player p = event.getEntity(); + + p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 3, 50)); + + final Arena arena = this.pli.global_players.get(p.getName()); + if (arena.getArenaState() == ArenaState.JOIN || (arena.getArenaState() == ArenaState.STARTING && !arena.getIngameCountdownStarted())) { - final Cuboid c = a.getBoundaries(); - if (c != null) + if (arena.isArcadeMain()) { - if (event.getEntity() != null) - { - if (c.containsLocWithoutY(event.getEntity().getLocation())) - { - for (final Block b : event.blockList()) - { - a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); - } - } - } + Util.teleportPlayerFixed(p, arena.getWaitingLobbyTemp()); } } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockFromTo(final BlockFromToEvent event) - { - for (final Arena a : this.pli.getArenas()) - { - if (a.getArenaType() == ArenaType.REGENERATION) + + arena.global_drops.addAll(event.getDrops()); + + arena.spectate(p.getName()); + + this.pli.global_lost.put(p.getName(), arena); + + int count = 0; + // for (String p_ : pli.global_players.keySet()) { + // if (Validator.isPlayerOnline(p_)) { + // if (pli.global_players.get(p_).getInternalName().equalsIgnoreCase(arena.getInternalName())) { + // if (!pli.containsGlobalLost(p_)) { + // count++; + // } + // } + // } + // } + for (final String p_ : arena.getAllPlayers()) { - final Cuboid c = a.getBoundaries(); - if (c != null) + if (Validator.isPlayerOnline(p_)) { - if (c.containsLocWithoutYD(event.getBlock().getLocation())) + if (!this.pli.containsGlobalLost(p_)) { - if (a.getArenaState() == ArenaState.INGAME) - { - a.getSmartReset().addChanged(event.getToBlock(), event.getToBlock().getType().equals(Material.CHEST), ChangeCause.FROM_TO); - } - else if (a.getArenaState() == ArenaState.RESTARTING) - { - event.setCancelled(true); - } + count++; } } } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockFade(final BlockFadeEvent event) - { - for (final Arena a : this.pli.getArenas()) - { - if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) - { - final Cuboid c = a.getBoundaries(); - if (c != null) + final int count_ = count; + + Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { + if (ArenaListener.this.pli.containsGlobalPlayer(p.getName()) && count_ > 1) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) + arena.spectate(p.getName()); + } + for (final String p_ : arena.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_)) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.FADE); + final Player p__ = Bukkit.getPlayer(p_); + Util.sendMessage(ArenaListener.this.plugin, p__, ArenaListener.this.pli.getMessagesConfig().broadcast_players_left.replaceAll("<count>", arena.getPlayerCount())); } } + }, 5); + + if (this.pli.last_man_standing) + { + if (count < 2) + { + // last man standing + arena.stopArena(); + } } } } - @EventHandler(priority = EventPriority.HIGH) - public void onLeavesDecay(final LeavesDecayEvent event) + /** + * Player entity damage event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ + @EventHandler + public void onEntityDamage(final EntityDamageEvent event) { - for (final Arena a : this.pli.getArenas()) + if (event.getEntity() instanceof Player) { - if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) + final Player p = (Player) event.getEntity(); + if (this.pli.containsGlobalPlayer(p.getName()) && this.pli.containsGlobalLost(p.getName())) { - final Cuboid c = a.getBoundaries(); - if (c != null) + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) - { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST)); - } + event.setCancelled(true); } } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockPhysics(final BlockPhysicsEvent event) - { - for (final Arena a : this.pli.getArenas()) - { - if (a.getArenaType() == ArenaType.REGENERATION) + if (event.getCause().equals(DamageCause.ENTITY_ATTACK)) { - final Cuboid c = a.getBoundaries(); - if (c != null) + if (this.pli.containsGlobalPlayer(p.getName())) { - if (a.getArenaState() == ArenaState.INGAME) + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) { - if (c.containsLocWithoutY(event.getBlock().getLocation())) - { - if (event.getChangedType() == Material.CARPET || event.getChangedType() == Material.BED_BLOCK) - { - return; - } - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.PHYSICS); - } + // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); + event.setCancelled(true); } - else if (a.getArenaState() == ArenaState.RESTARTING) + if (this.pli.blood_effects && (a.getArenaState() == ArenaState.INGAME || a.getAlwaysPvP()) && !a.isArcadeMain()) { - event.setCancelled(true); + Effects.playBloodEffect(p); } } + this.pli.getSpectatorManager(); + if (this.pli.containsGlobalLost(p.getName()) || SpectatorManager.isSpectating(p)) + { + // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); + event.setCancelled(true); + } } - } - } - - @EventHandler - public void onBlockRedstone(final BlockRedstoneEvent event) - { - for (final Arena a : this.pli.getArenas()) - { - if (a.getArenaType() == ArenaType.REGENERATION) + else if (event.getCause().equals(DamageCause.FALL)) { - final Cuboid c = a.getBoundaries(); - if (c != null) + if (this.pli.containsGlobalPlayer(p.getName())) { - if (a.getArenaState() == ArenaState.INGAME) + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() != null) { - a.getSmartReset().addChanged(event.getBlock(), false); + event.setCancelled(true); } } } } } + /** + * Player entity damage event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler - public void onBlockSpread(final BlockSpreadEvent event) + public void onEntityDamageByEntity(final EntityDamageByEntityEvent event) { - // disallow fire spread while the arena restarts - for (final Arena a : this.pli.getArenas()) + if (event.getEntity() instanceof Player) { - if (a.getArenaType() == ArenaType.REGENERATION) + final Player p = (Player) event.getEntity(); + Player attacker = null; + if (event.getDamager() instanceof Projectile) { - final Cuboid c = a.getBoundaries(); - if (c != null) + final Projectile projectile = (Projectile) event.getDamager(); + if (projectile.getShooter() instanceof Player) { - if (a.getArenaState() == ArenaState.INGAME) + attacker = (Player) projectile.getShooter(); + } + } + else if (event.getDamager() instanceof Player) + { + attacker = (Player) event.getDamager(); + } + else + { + return; + } + + if (p != null && attacker != null) + { + if (this.pli.containsGlobalPlayer(p.getName()) && this.pli.containsGlobalPlayer(attacker.getName())) + { + this.pli.getSpectatorManager(); + if (SpectatorManager.isSpectating(p)) { - a.getSmartReset().addChanged(event.getBlock().getLocation(), Material.AIR, (byte) 0); + if (event.getDamager() instanceof Arrow) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final Arrow arr = attacker.launchProjectile(Arrow.class); + arr.setShooter(attacker); + arr.setVelocity(((Arrow) event.getDamager()).getVelocity()); + arr.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + else if (event.getDamager() instanceof Egg) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final Egg egg = attacker.launchProjectile(Egg.class); + egg.setShooter(attacker); + egg.setVelocity(((Egg) event.getDamager()).getVelocity()); + egg.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + else if (event.getDamager() instanceof Snowball) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final Snowball sb = attacker.launchProjectile(Snowball.class); + sb.setShooter(attacker); + sb.setVelocity(((Snowball) event.getDamager()).getVelocity()); + sb.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + else if (event.getDamager() instanceof EnderPearl) + { + p.teleport(p.getLocation().add(0, 3D, 0)); + + final EnderPearl sb = attacker.launchProjectile(EnderPearl.class); + sb.setShooter(attacker); + sb.setVelocity(((EnderPearl) event.getDamager()).getVelocity()); + sb.setBounce(false); + + event.setCancelled(true); + event.getDamager().remove(); + } + event.setCancelled(true); + return; } - else if (a.getArenaState() == ArenaState.RESTARTING) + if (this.pli.containsGlobalLost(attacker.getName())) { event.setCancelled(true); + return; } - } - } - } - } - - @EventHandler - public void onEntityChangeBlock(final EntityChangeBlockEvent event) - { - if (event.getEntity() instanceof Enderman) - { - for (final Arena a : this.pli.getArenas()) - { - if (a.getArenaType() == ArenaType.REGENERATION) - { - final Cuboid c = a.getBoundaries(); - if (c != null) + final Arena a = this.pli.global_players.get(p.getName()); + if (a.getArenaState() == ArenaState.INGAME) { - if (c.containsLocWithoutY(event.getEntity().getLocation())) + a.setLastDamager(p.getName(), attacker.getName()); + if (this.pli.damage_identifier_effects) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.ENTITY_CHANGE); + ChatColor c = ChatColor.YELLOW; + if (event.getDamage() >= 5D) + { + c = ChatColor.GOLD; + } + if (event.getDamage() >= 9D) + { + c = ChatColor.RED; + } + Effects.playHologram(attacker, p.getLocation(), c + Double.toString(event.getDamage()), true, true); } } + else if (a.getArenaState() == ArenaState.RESTARTING) + { + event.setCancelled(true); + } } } } } + /** + * Block break event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler(priority = EventPriority.HIGH) public void onBlockBreak(final BlockBreakEvent event) { @@ -907,25 +1282,16 @@ public void onBlockBreak(final BlockBreakEvent event) } } - @EventHandler - public void onBlockBurn(final BlockBurnEvent event) - { - for (final Arena a : this.pli.getArenas()) - { - if (Validator.isArenaValid(this.plugin, a) && a.getArenaType() == ArenaType.REGENERATION) - { - final Cuboid c = new Cuboid(Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_LOW), Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)); - if (c != null) - { - if (c.containsLocWithoutY(event.getBlock().getLocation())) - { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BURN); - } - } - } - } - } - + /** + * Player bucket empty event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler(priority = EventPriority.HIGHEST) public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) { @@ -952,45 +1318,16 @@ public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) } } - @EventHandler - public void onStructureGrow(final StructureGrowEvent event) - { - for (final Arena a : this.pli.getArenas()) - { - if (a.getArenaType() == ArenaType.REGENERATION && a.getArenaState() == ArenaState.INGAME) - { - final Cuboid c = new Cuboid(Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_LOW), Util.getComponentForArena(this.plugin, a.getInternalName(), ArenaConfigStrings.BOUNDS_HIGH)); - if (c != null) - { - final Location start = event.getLocation(); - if (c.containsLocWithoutY(start)) - { - a.getSmartReset().addChanged(start.getBlock(), false); - for (final BlockState bs : event.getBlocks()) - { - final Block b = bs.getBlock(); - a.getSmartReset().addChanged(b.getLocation(), Material.AIR, (byte) 0); - } - } - } - } - } - } - - @EventHandler(priority = EventPriority.HIGH) - public void onBlockBreak2(final BlockBreakEvent event) - { - final Player p = event.getPlayer(); - if (this.pli.containsGlobalPlayer(p.getName())) - { - final Arena a = this.pli.global_players.get(p.getName()); - if (event.getBlock().getType() != Material.AIR) - { - a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); - } - } - } - + /** + * Block place event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler(priority = EventPriority.HIGH) public void onBlockPlace(final BlockPlaceEvent event) { @@ -1022,24 +1359,20 @@ public void onBlockPlace(final BlockPlaceEvent event) } } - private boolean checkLocationMatchesSign(final Location l, final Sign s) - { - if (l != null) - { - if (l.getWorld() != null) - { - if (l.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) - { - if (l.distance(s.getLocation()) < 1) - { - return true; - } - } - } - } - return false; - } + // ***************** + // ***** sign events + // ***************** + /** + * Sign use event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler public void onSignUse(final PlayerInteractEvent event) { @@ -1237,7 +1570,8 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConf event.setCancelled(true); } } - else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX)) + else if (event.getItem().getTypeId() == this.plugin.getConfig() + .getInt(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX)) { if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX)) { @@ -1270,6 +1604,16 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig().getInt(ArenaConf } } + /** + * Sign change event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler public void onSignChange(final SignChangeEvent event) { @@ -1342,6 +1686,16 @@ else if (arena.equalsIgnoreCase("leave")) } } + /** + * Player join event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler public void onPlayerJoin(final PlayerJoinEvent event) { @@ -1419,6 +1773,16 @@ public void onPlayerJoin(final PlayerJoinEvent event) } } + /** + * Player leave event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler public void onPlayerLeave(final PlayerQuitEvent event) { @@ -1469,6 +1833,16 @@ public void onPlayerLeave(final PlayerQuitEvent event) } } + /** + * Player chat event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler(priority = EventPriority.MONITOR) public void onChat(final AsyncPlayerChatEvent event) { @@ -1508,6 +1882,16 @@ public void onChat(final AsyncPlayerChatEvent event) } } + /** + * Player command preprocessor event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ @EventHandler public void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent event) { @@ -1548,6 +1932,16 @@ public void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent ev } } + /** + * Player teleport event. + * + * <p> + * TODO describe when this event is cancelled + * </p> + * + * @param event + * event object + */ // TP Fix start @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerTeleport(final PlayerTeleportEvent event) @@ -1569,6 +1963,73 @@ public void onPlayerTeleport(final PlayerTeleportEvent event) } } + // ************************* + // ***** helpers / utilities + // ************************* + + /** + * Checks if a player is in spectation mode. + * + * @param p + * player object + * @return {@code true} if player is spectating + * @deprecated TODO replacement? + */ + @Deprecated + public static boolean isSpectating(final Player p) + { + return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); + } + + /** + * Finds entities by location and squared distance. + * + * @param loc + * base + * @param d + * maximum squared distance + * @return list of entities. + */ + private List<Entity> getEntitiesByLocation(final Location loc, final double d) + { + final List<Entity> ent = new ArrayList<>(); + for (final Entity e : loc.getWorld().getEntities()) + { + if (e.getLocation().distanceSquared(loc) <= d) + { + ent.add(e); + } + } + return ent; + } + + /** + * Check if given location matches given sign. + * + * @param l + * the location to be checked + * @param s + * the sign to be checked + * @return {@code true} if the location matches given sign. + */ + private boolean checkLocationMatchesSign(final Location l, final Sign s) + { + if (l != null) + { + if (l.getWorld() != null) + { + if (l.getWorld().getName().equalsIgnoreCase(s.getLocation().getWorld().getName())) + { + if (l.distance(s.getLocation()) < 1) + { + return true; + } + } + } + } + return false; + } + private void updateEntities(final List<Player> players, final boolean visible) { for (final Player observer : players) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java index 17d3c28c..eb8436b5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaType.java @@ -14,6 +14,9 @@ */ package com.comze_instancelabs.minigamesapi; +/** + * Arena types. + */ public enum ArenaType { From 50ee4edbaf350f2cb17500b23431b9cc96fd751e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 2 Jul 2016 19:28:14 +0200 Subject: [PATCH 022/266] refactoring --- .../minigamesapi/Arena.java | 4 +- .../minigamesapi/ArenaListener.java | 2 +- .../minigamesapi/ArenaLogger.java | 2 +- .../minigamesapi/ArenaMessageStrings.java | 3 + .../minigamesapi/ArenaPlayer.java | 140 +++++- .../minigamesapi/ArenaState.java | 85 +++- .../minigamesapi/ChannelStrings.java | 39 ++ .../minigamesapi/CommandStrings.java | 351 +++++++++++++ .../minigamesapi/Effects.java | 32 +- .../minigamesapi/MinecraftVersionsType.java | 48 +- .../minigamesapi/MinigamesAPI.java | 473 +++++++++++------- .../minigamesapi/PermissionStrings.java | 32 ++ .../minigamesapi/PluginConfigStrings.java | 46 ++ .../minigamesapi/commands/CommandHandler.java | 77 ++- .../minigamesapi/config/MessagesConfig.java | 4 +- .../minigamesapi/messages.properties | 38 ++ .../minigamesapi/util/BungeeUtil.java | 5 +- .../minigamesapi/util/Util.java | 77 +-- 18 files changed, 1093 insertions(+), 365 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 7747f23e..d7f679b3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -62,8 +62,8 @@ * NOTICE: There are some race conditions on high load. For example joining VIPs while state switches etc. Spigot itself may invoke the tasks serial meaning one after another but there can be external * events from network at the moment (MinigamesAPI-Bungee). * </p> - * - * @author mepeisen + * + * @author instancelabs */ public class Arena { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index cf599cac..7da7a78c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -88,7 +88,7 @@ /** * Bukkit event listener for minigames-lib; one instance per minigame plugin. * - * @author mepeisen + * @author instancelabs */ public class ArenaListener implements Listener { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java index a37a1f84..cfde87a4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaLogger.java @@ -24,7 +24,7 @@ /** * Logging helper for arenas. * - * @author mepeisen + * @author instancelabs */ public class ArenaLogger { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java index cc9508cb..55640cf5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaMessageStrings.java @@ -25,6 +25,9 @@ public interface ArenaMessageStrings /** ARENA replacement. */ String ARENA = "<arena>"; //$NON-NLS-1$ + + /** ACTION replacement. */ + String ACTION = "<action>"; //$NON-NLS-1$ /** AUTHOR replacement. */ String AUTHOR = "<author>"; //$NON-NLS-1$ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java index 6108c8a9..8dd03943 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPlayer.java @@ -23,104 +23,214 @@ import com.comze_instancelabs.minigamesapi.util.AClass; +/** + * Internal minigames representation of a player being present in any arena. + * + * <p> + * TODO: Remove from hashmap players as soon as a player leaves the server. + * </p> + * + * <p> + * TODO: Clear inventories as soon as it was re set while leaving. + * </p> + * + * @author instancelabs + */ public class ArenaPlayer { - String playername; - ItemStack[] inv; - ItemStack[] armor_inv; - GameMode original_gamemode = GameMode.SURVIVAL; - int original_xplvl = 0; - boolean noreward = false; - Arena currentArena; - AClass currentClass; - - private static HashMap<String, ArenaPlayer> players = new HashMap<>(); - + /** The players name. */ + private String playername; + /** the inventory stack. */ + private ItemStack[] inv; + /** the armor inventory stack. */ + private ItemStack[] armor_inv; + /** the original game mode of the player. */ + private GameMode original_gamemode = GameMode.SURVIVAL; + /** the original xp level of the player. */ + private int original_xplvl = 0; + /** the no-reward flag. */ + private boolean noreward = false; + /** the current arena. */ + private Arena currentArena; + /** the current class. */ + private AClass currentClass; + + /** the map holding the known arena player instances. */ + private static final HashMap<String, ArenaPlayer> players = new HashMap<>(); + + /** + * Returns the player instance for given player name; creates it on demand. + * + * @param playername + * name of the player. + * @return arena player instance. + */ public static ArenaPlayer getPlayerInstance(final String playername) { if (!ArenaPlayer.players.containsKey(playername)) { return new ArenaPlayer(playername); } - else - { - return ArenaPlayer.players.get(playername); - } + return ArenaPlayer.players.get(playername); } + /** + * Constructor to create the arena player. + * + * @param playername + * players name. + */ public ArenaPlayer(final String playername) { this.playername = playername; ArenaPlayer.players.put(playername, this); } + /** + * Returns the bukkit player. + * + * @return bukkit player. + */ public Player getPlayer() { return Bukkit.getPlayer(this.playername); } + /** + * Sets the inventories being present befor the player joins the lobby. + * + * @param inv + * inventory of the player. + * @param armor_inv + * armor inventory of the player. + */ public void setInventories(final ItemStack[] inv, final ItemStack[] armor_inv) { this.inv = inv; this.armor_inv = armor_inv; } + /** + * Returns the players inventory before joining the lobby. + * + * @return player inventory. + */ public ItemStack[] getInventory() { return this.inv; } + /** + * Returns the players armor inventory before joining the lobby. + * + * @return players armo inventory. + */ public ItemStack[] getArmorInventory() { return this.armor_inv; } + /** + * Returns the original game mode before joining the lobby. + * + * @return original game mode. + */ public GameMode getOriginalGamemode() { return this.original_gamemode; } + /** + * Sets the original game mode before joining the lobby. + * + * @param original_gamemode + * the players original game mode. + */ public void setOriginalGamemode(final GameMode original_gamemode) { this.original_gamemode = original_gamemode; } + /** + * Returns the original xp level before joining the lobby. + * + * @return original xp mode before joining the lobby. + */ public int getOriginalXplvl() { return this.original_xplvl; } + /** + * Sets the original xp level of the player. + * + * @param original_xplvl + * cp level before joining the lobby. + */ public void setOriginalXplvl(final int original_xplvl) { this.original_xplvl = original_xplvl; } + /** + * Returns the is no reward flag. + * + * @return {@code true} if the player does not receive rewards. + */ public boolean isNoReward() { return this.noreward; } + /** + * Sets the no-reward flag. + * + * @param noreward + * {@code true} if the player does not receive rewards. + */ public void setNoReward(final boolean noreward) { this.noreward = noreward; } + /** + * Returns the current arena the player is located in. + * + * @return current arena or {@code null} if the player is not in any arena. + */ public Arena getCurrentArena() { return this.currentArena; } + /** + * Sets the current arena the player is located in. + * + * @param currentArena + * current arena. + */ public void setCurrentArena(final Arena currentArena) { this.currentArena = currentArena; } + /** + * Returns the current player class. + * + * @return player class. + */ public AClass getCurrentClass() { return this.currentClass; } + /** + * Sets the current player class. + * + * @param currentClass + * player class. + */ public void setCurrentClass(final AClass currentClass) { this.currentClass = currentClass; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java index b2502eb9..d350c946 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaState.java @@ -15,34 +15,81 @@ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; +import java.util.List; +import java.util.Map; +/** + * The states for an arena. + * + * @author instancelabs + */ public enum ArenaState { - JOIN, STARTING, INGAME, RESTARTING; + /** the default state; players can join. */ + JOIN("&a"), //$NON-NLS-1$ - public static ArrayList<String> getAllStateNames() + /** the game is starting. */ + STARTING("&a"), //$NON-NLS-1$ + + /** the game is running. */ + INGAME("&4"), //$NON-NLS-1$ + + /** the arena is restarting after game ended; for example the broken blocks are replaced. */ + RESTARTING("&e"); //$NON-NLS-1$ + + /** the states color code. */ + private String colorCode; + + /** + * Constructor. + * + * @param colorCode + * the states color code + */ + private ArenaState(String colorCode) + { + this.colorCode = colorCode; + } + + /** + * Returns the color code for this state. + * + * @return color code used to display this state. + */ + public String getColorCode() + { + return this.colorCode; + } + + /** + * Returns a list with all state names. + * + * @return list with all state names. + */ + public static Iterable<String> getAllStateNames() { - return new ArrayList<>(Arrays.asList("JOIN", "STARTING", "INGAME", "RESTARTING")); + final List<String> result = new ArrayList<>(); + for (final ArenaState state : ArenaState.values()) + { + result.add(state.name()); + } + return result; } - public static HashMap<String, String> getAllStateNameColors() + /** + * Returns a map from state name to color code. + * + * @return map from state name to color code. + */ + public static Map<String, String> getAllStateNameColors() { - final HashMap<String, String> ret = new HashMap<String, String>() { - /** - * - */ - private static final long serialVersionUID = 3343763360644032212L; - - { - this.put("JOIN", "&a"); - this.put("STARTING", "&a"); - this.put("INGAME", "&4"); - this.put("RESTARTING", "&e"); - } - }; - return ret; + final Map<String, String> result = new HashMap<>(); + for (final ArenaState state : ArenaState.values()) + { + result.put(state.name(), state.getColorCode()); + } + return result; } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java new file mode 100644 index 00000000..f8b49bd1 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Pluginc hannel strings. + * + * @author mepeisen + */ +public interface ChannelStrings +{ + + /** bungee cord plugin channel. */ + String CHANNEL_BUNGEE_CORD = "BungeeCord"; //$NON-NLS-1$ + + /** + * Bungee-cord sub channel for minigames lib. + */ + String SUBCHANNEL_MINIGAMESLIB_BACK = "MinigamesLibBack"; //$NON-NLS-1$ + + /** + * Bungee-cord sub channel for minigames lib. + */ + String SUBCHANNEL_MINIGAMESLIB_REQUEST = "MinigamesLibRequest"; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java new file mode 100644 index 00000000..a1de89e5 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java @@ -0,0 +1,351 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Common command strings. + * + * @author mepeisen + */ +public interface CommandStrings +{ + + /** + * "/start" command. + */ + String START = "start"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <start> ... + */ + String GAME_START = "start"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setspawn> ... + */ + String GAME_SET_SPAWN = "setspawn"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setspecspawn> ... + */ + String GAME_SET_SPEC_SPAWN = "setspecspawn"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setlobby> ... + */ + String GAME_SET_LOBBY = "setlobby"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setmainlobby> ... + */ + String GAME_SET_MAINLOBBY = "setmainlobby"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setbounds> ... + */ + String GAME_SET_BOUNDS = "setbounds"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setlobbybounds> ... + */ + String GAME_SET_LOBBY_BOUNDS = "setlobbybounds"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setlobbybounds> ... + */ + String GAME_SET_SPEC_BOUNDS = "setlobbybounds"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <savearena> ... + */ + String GAME_SAVE_ARENA = "savearena"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <save> ... + */ + String GAME_SAVE = "save"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setmaxplayers> ... + */ + String GAME_SET_MAX_PLAYERS = "setmaxplayers"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setminplayers> ... + */ + String GAME_SET_MIN_PLAYERS = "setminplayers"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setarenavip> ... + */ + String GAME_SET_ARENA_VIP = "setarenavip"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setvip> ... + */ + String GAME_SET_VIP = "setvip"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <join> ... + */ + String GAME_JOIN = "join"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <leave> ... + */ + String GAME_LEAVE = "leave"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <stop> ... + */ + String GAME_STOP = "stop"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <stopall> ... + */ + String GAME_STOP_ALL = "stopall"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <removearena> ... + */ + String GAME_REMOVE_ARENA = "removearena"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <removespawn> ... + */ + String GAME_REMOVE_SPAWN = "removespawn"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setskull> ... + */ + String GAME_SET_SKULL = "setskull"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setenabled> ... + */ + String GAME_SET_ENABLED = "setenabled"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setshowscoreboard> ... + */ + String GAME_SET_SHOW_SCOREBOARD = "setshowscoreboard"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <reset> ... + */ + String GAME_RESET = "reset"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setauthor> ... + */ + String GAME_SET_AUTHOR = "setauthor"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setdescription> ... + */ + String GAME_SET_DESCRIPTION = "setdescription"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <setdisplayname> ... + */ + String GAME_SET_DISPLAYNAME = "setdisplayname"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <kit> ... + */ + String GAME_KIT = "kit"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <spectate> ... + */ + String GAME_SPECTATE = "spectate"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <shop> ... + */ + String GAME_SHOP = "shop"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <leaderboards> ... + */ + String GAME_LEADER_BOARDS = "leaderboards"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <lb> ... + */ + String GAME_LB = "lb"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <top> ... + */ + String GAME_TOP = "top"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <stats> ... + */ + String GAME_STATS = "stats"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <sethologram> ... + */ + String GAME_SET_HOLOGRAM = "sethologram"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <listholograms> ... + */ + String GAME_LIST_HOLOGRAMS = "listholograms"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <removehologram> ... + */ + String GAME_REMOVE_HOLOGRAM = "removehologram"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <help> ... + */ + String GAME_HELP = "help"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <list> ... + */ + String GAME_LIST = "list"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <reload> ... + */ + String GAME_RELOAD = "reload"; //$NON-NLS-1$ + + // old commands + + /** + * Command action: "/minigame <createarena> ... + * @deprecated removed in 1.5.0 + */ + @Deprecated + String GAME_CREATE_ARENA = "createarena"; //$NON-NLS-1$ + + /** + * Command action: "/minigame <endall> ... + * @deprecated removed in 1.5.0 + */ + @Deprecated + String GAME_END_ALL = "endall"; //$NON-NLS-1$ + + // party commands + + /** + * "/party" command. + */ + String PARTY = "party"; //$NON-NLS-1$ + + /** + * Command action: "/party <invite> ... + */ + String PARTY_INVITE = "invite"; //$NON-NLS-1$ + + /** + * Command action: "/party <accept> ... + */ + String PARTY_ACCEPT = "accept"; //$NON-NLS-1$ + + /** + * Command action: "/party <kick> ... + */ + String PARTY_KICK = "kick"; //$NON-NLS-1$ + + /** + * Command action: "/party <list> ... + */ + String PARTY_LIST = "list"; //$NON-NLS-1$ + + /** + * Command action: "/party <disband> ... + */ + String PARTY_DISBAND = "disband"; //$NON-NLS-1$ + + /** + * Command action: "/party <leave> ... + */ + String PARTY_LEAVE = "leave"; //$NON-NLS-1$ + + // minigames api commands + + /** + * "/mapi" command. + */ + String MAPI = "mapi"; //$NON-NLS-1$ + + /** + * "/mgapi" command. + */ + String MGAPI = "mgapi"; //$NON-NLS-1$ + + /** + * "/mglib" command. + */ + String MGLIB = "mglib"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <info> ... + */ + String MGLIB_INFO = "info"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <debug> ... + */ + String MGLIB_DEBUG = "debug"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <list> ... + */ + String MGLIB_LIST = "list"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <title> ... + */ + String MGLIB_TITLE = "title"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <subtitle> ... + */ + String MGLIB_SUBTITLE = "subtitle"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <signs> ... + */ + String MGLIB_SIGNS = "signs"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <hologram> ... + */ + String MGLIB_HOLOGRAM = "hologram"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <statshologram> ... + */ + String MGLIB_STATS_HOLOGRAM = "statshologram"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <gamemodetest> ... + */ + String MGLIB_GAMEMODE_TEST = "gamemodetest"; //$NON-NLS-1$ + + /** + * Command action: "/mglib <bungeetest> ... + */ + String MGLIB_BUNGEE_TEST = "bungeetest"; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 010740fe..0c21560d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -36,36 +36,6 @@ public class Effects { - @Deprecated - public static int getClientProtocolVersion(final Player p) - { - int ret = 0; - try - { - if (!!MinigamesAPI.SERVER_VERSION.isEqual(MinecraftVersionsType.V1_7)) - { - final Method getHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); - final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); - playerConnection.setAccessible(true); - final Object playerConInstance = playerConnection.get(getHandle.invoke(p)); - final Field networkManager = playerConInstance.getClass().getField("networkManager"); - networkManager.setAccessible(true); - final Object networkManagerInstance = networkManager.get(playerConInstance); - final Method getVersion = networkManagerInstance.getClass().getMethod("getVersion"); - final Object version = getVersion.invoke(networkManagerInstance); - ret = (Integer) version; - } - } - catch (final Exception e) - { - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } - } - return ret; - } - /** * Shows the particles of a redstone block breaking * @@ -386,7 +356,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, try { // If player is on 1.8, we'll have to use armor stands, otherwise just use the old 1.7 technique - final boolean playerIs1_8 = Effects.getClientProtocolVersion(p) > 5; + final boolean playerIs1_8 = MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_8); final Method getPlayerHandle = Class.forName("org.bukkit.craftbukkit." + MinigamesAPI.getAPI().internalServerVersion + ".entity.CraftPlayer").getMethod("getHandle"); final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 6ac3dc20..13e25f16 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -21,8 +21,47 @@ */ public enum MinecraftVersionsType { - Unknown(false), V1_7(true), V1_7_R1(true), V1_7_R2(true), V1_7_R3(true), V1_7_R4(true), V1_8(true), V1_8_R1(true), V1_8_R2(true), V1_9(true), V1_9_R1(true), V1_9_R2(true), V1_10(true), V1_10_R1( - true); + /** an unknown version/ not supported. */ + Unknown(false), + + /** any 1.7 version. */ + V1_7(true), + + /** V1.7 R1 */ + V1_7_R1(true), + + /** V1.7 R2 */ + V1_7_R2(true), + + /** V1.7 R3 */ + V1_7_R3(true), + + /** V1.7 R4 */ + V1_7_R4(true), + + /** any 1.8 version. */ + V1_8(true), + + /** V1.8 R1 */ + V1_8_R1(true), + + /** V1.8 R2 */ + V1_8_R2(true), + + /** any 1.9 version. */ + V1_9(true), + + /** V1.9 R1 */ + V1_9_R1(true), + + /** V1.9 R2 */ + V1_9_R2(true), + + /** any 1.10 version. */ + V1_10(true), + + /** V1.10 R1 */ + V1_10_R1(true); /** * {@code true} if this version is still supported. @@ -41,7 +80,9 @@ private MinecraftVersionsType(final boolean supported) } /** - * {@code true} if this version is still supported. return {@code true} if this version is still supported. + * {@code true} if this version is still supported. + * + * @return {@code true} if this version is still supported. */ public boolean isSupported() { @@ -71,6 +112,7 @@ public boolean isEqual(final MinecraftVersionsType type) return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; case V1_9: return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; + //$CASES-OMITTED$ default: return type == this; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 7d535d40..59214ccb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -21,11 +21,11 @@ import java.util.HashMap; import java.util.Locale; import java.util.UUID; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; -import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -55,6 +55,12 @@ import net.milkbowl.vault.economy.Economy; +/** + * Main minigames API; plugin mplementation. + * + * @author instancelabs + * + */ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener { @@ -62,13 +68,18 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener public static final MinecraftVersionsType SERVER_VERSION = MinigamesAPI.getServerVersion(); /** the locale to be used. TODO: Change via config */ - public static Locale LOCALE = Locale.ENGLISH; + public static Locale LOCALE = Locale.ENGLISH; + + /** the minigames plugin instance. */ + private static MinigamesAPI instance = null; - static MinigamesAPI instance = null; public static Economy econ = null; public static boolean economy = true; public boolean crackshot = false; + + /** a global debug flag; controls the output of finer debug messages. */ public static boolean debug = false; + int updatetime = 20 * 10; public HashMap<String, Party> global_party = new HashMap<>(); @@ -79,11 +90,24 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener public PartyMessagesConfig partymessages; public StatsGlobalConfig statsglobal; + /** + * textual server version. + * + * @deprecated will be removed in 1.5.0; replaced by SERVER_VERSION enumeration. + */ @Deprecated - public String internalServerVersion = ""; - public boolean below1710 = false; // Used for scoreboard function (wether to use getScore(OfflinePlayer) or - // getScore(String)) + public String internalServerVersion = ""; //$NON-NLS-1$ + /** + * {@code true} if this is below 1.7.10 + * + * @deprecated will be removed in 1.5.0; replaced by SERVER_VERSION enumeration. + */ + public boolean below1710 = false; // Used for scoreboard function (wether to use getScore(OfflinePlayer) or + // getScore(String)) + /** + * The plugin metrics report. + */ Metrics metrics; @Override @@ -91,27 +115,27 @@ public void onEnable() { MinigamesAPI.instance = this; - this.internalServerVersion = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); + this.internalServerVersion = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); //$NON-NLS-1$ this.below1710 = MinigamesAPI.SERVER_VERSION.isBelow(MinecraftVersionsType.V1_7_R4); - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "" + ChatColor.BOLD + "Loaded MinigamesAPI. We're on " + MinigamesAPI.SERVER_VERSION + "."); + this.getLogger().info(String.format("§c§lLoaded MinigamesAPI. We're on %0$s.", MinigamesAPI.SERVER_VERSION.name())); //$NON-NLS-1$ - this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); - this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); + this.getServer().getMessenger().registerOutgoingPluginChannel(this, ChannelStrings.CHANNEL_BUNGEE_CORD); + this.getServer().getMessenger().registerIncomingPluginChannel(this, ChannelStrings.CHANNEL_BUNGEE_CORD, this); if (MinigamesAPI.economy) { if (!this.setupEconomy()) { - this.getLogger().severe(String.format("[%s] - No Economy (Vault) dependency found! Disabling Economy.", this.getDescription().getName())); + this.getLogger().severe(String.format("[%s] - No Economy (Vault) dependency found! Disabling Economy.", this.getDescription().getName())); //$NON-NLS-1$ MinigamesAPI.economy = false; } } - this.getConfig().options().header("Want bugfree versions? Set this to true:"); - this.getConfig().addDefault("config.auto_updating", false); - this.getConfig().addDefault("signs_updating_time", 20); - this.getConfig().addDefault("config.party_command_enabled", true); - this.getConfig().addDefault("config.debug", false); + this.getConfig().options().header("Want bugfree versions? Set this to true for automatic updates:"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.AUTO_UPDATING, false); + this.getConfig().addDefault(PluginConfigStrings.SIGNS_UPDATE_TIME, 20); + this.getConfig().addDefault(PluginConfigStrings.PARTY_COMMAND_ENABLED, true); + this.getConfig().addDefault(PluginConfigStrings.DEBUG, false); this.getConfig().options().copyDefaults(true); this.saveConfig(); @@ -119,14 +143,14 @@ public void onEnable() this.partymessages = new PartyMessagesConfig(this); this.statsglobal = new StatsGlobalConfig(this, false); - MinigamesAPI.debug = this.getConfig().getBoolean("config.debug"); + MinigamesAPI.debug = this.getConfig().getBoolean(PluginConfigStrings.DEBUG); Bukkit.getScheduler().runTaskLater(this, () -> { try { MinigamesAPI.this.metrics = new Metrics(MinigamesAPI.instance); - final Graph components = MinigamesAPI.this.metrics.createGraph("Minigames"); + final Graph components = MinigamesAPI.this.metrics.createGraph("Minigames"); //$NON-NLS-1$ for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { components.addPlotter(new Metrics.Plotter(pli.getPlugin().getName()) { @@ -138,7 +162,7 @@ public int getValue() }); if (MinigamesAPI.debug) { - System.out.println("Loaded Graph for: " + pli.getPlugin().getName()); + this.getLogger().fine("Loaded Graph for: " + pli.getPlugin().getName()); //$NON-NLS-1$ } } @@ -146,16 +170,16 @@ public int getValue() } catch (final IOException e) { - System.out.println("# " + e.getMessage()); + this.getLogger().log(Level.WARNING, "Exception while updating metrics", e); //$NON-NLS-1$ } }, 60L); - if (this.getConfig().getBoolean("config.auto_updating")) + if (this.getConfig().getBoolean(PluginConfigStrings.AUTO_UPDATING)) { new Updater(this, 83025, this.getFile(), Updater.UpdateType.DEFAULT, false); } - if (this.getServer().getPluginManager().getPlugin("CrackShot") != null) + if (this.getServer().getPluginManager().getPlugin("CrackShot") != null) //$NON-NLS-1$ { this.crackshot = true; } @@ -177,13 +201,13 @@ public int getValue() } else { - System.out.println(a.getInternalName() + " not initialized at onEnable."); + this.getLogger().log(Level.WARNING, "Arena " + pli.getPlugin().getName() + "/" + a.getInternalName() + " not initialized at onEnable."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } i++; } } - System.out.println("Found " + i + " arenas."); + this.getLogger().info("Found " + i + " arenas."); //$NON-NLS-1$//$NON-NLS-2$ }, 50L); Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> { MinigamesAPI.getAPI(); @@ -195,7 +219,7 @@ public int getValue() } } - }, 0, 20 * this.getConfig().getInt("signs_updating_time")); + }, 0, 20 * this.getConfig().getInt(PluginConfigStrings.SIGNS_UPDATE_TIME)); } /** @@ -205,40 +229,40 @@ public int getValue() */ private static MinecraftVersionsType getServerVersion() { - final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); - if (v.startsWith("v1_7_R1")) + final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); //$NON-NLS-1$ + if (v.startsWith("v1_7_R1")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_7_R1; } - if (v.startsWith("v1_7_R2")) + if (v.startsWith("v1_7_R2")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_7_R2; } - if (v.startsWith("v1_7_R3")) + if (v.startsWith("v1_7_R3")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_7_R3; } - if (v.startsWith("v1_7_R4")) + if (v.startsWith("v1_7_R4")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_7_R4; } - if (v.startsWith("v1_8_R1")) + if (v.startsWith("v1_8_R1")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_8_R1; } - if (v.startsWith("v1_8_R2")) + if (v.startsWith("v1_8_R2")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_8_R2; } - if (v.startsWith("v1_9_R1")) + if (v.startsWith("v1_9_R1")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_9_R1; } - if (v.startsWith("v1_9_R2")) + if (v.startsWith("v1_9_R2")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_9_R2; } - if (v.startsWith("v1_10_R1")) + if (v.startsWith("v1_10_R1")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_10_R1; } @@ -272,12 +296,12 @@ public void onDisable() } catch (final Exception e) { - System.out.println("Failed resetting arena at onDisable. " + e.getMessage()); + this.getLogger().log(Level.WARNING, "Failed resetting arena " + pli.getPlugin().getName() + "/" + a.getInternalName() + " at onDisable.", e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } else { - System.out.println(a.getName() + " not initialized thus not reset at onDisable."); + this.getLogger().log(Level.WARNING, "Arena " + pli.getPlugin().getName() + "/" + a.getInternalName() + " not initialized thus not reset at onDisable."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } } @@ -292,17 +316,32 @@ public void onDisable() } /** - * Sets up the API allowing to override all configs + * Sets up the API allowing to override all configs. + * + * <p> + * This method is meant to be called within concrete minigame plugin onEable. + * </p> * * @param plugin_ + * the java plugin representing the minigame. + * @param minigame + * internal name of the minigame. * @param arenaclass + * the class implementing/ overriding the arena class; {@link Arena}. * @param arenasconfig + * the arenas config store. * @param messagesconfig + * the messages config store. * @param classesconfig + * the classes config store. * @param statsconfig - * @return + * the statistics store. + * @param defaultconfig + * the default plugin config. TODO variable is never read? + * @param customlistener + * {@code true} if there is a custom listener handling the arenas; {@code false} to register the default arena listener; {@link ArenaListener}. + * @return the api instance (this plugin). */ - @SuppressWarnings("deprecation") public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minigame, final Class<?> arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) { @@ -319,31 +358,76 @@ public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minig return MinigamesAPI.instance; } + /** + * Use this to register your custom arena listener. + * + * @param plugin_ + * the minigames plugin. + * @param arenalistener + * the arena listener. + */ public static void registerArenaListenerLater(final JavaPlugin plugin_, final ArenaListener arenalistener) { + // TODO check plugin code; should we invoke MinigamesAPI.pinstances.get(plugin_).setArenaListener(arenalistener); Bukkit.getPluginManager().registerEvents(arenalistener, plugin_); } + /** + * registers additional arena setup + * + * <p> + * TODO: Do we still need this? + * </p> + * + * @param plugin_ + * the minigames plugin. + * @param arenasetup + * the arena setup. + */ public static void registerArenaSetup(final JavaPlugin plugin_, final ArenaSetup arenasetup) { MinigamesAPI.pinstances.get(plugin_).arenaSetup = arenasetup; } + /** + * registers additional scoreboard + * + * <p> + * TODO: Do we still need this? + * </p> + * + * @param plugin_ + * the minigames plugin. + * @param board + * the arena scoreboard. + */ public static void registerScoreboard(final JavaPlugin plugin_, final ArenaScoreboard board) { MinigamesAPI.pinstances.get(plugin_).scoreboardManager = board; } /** - * Sets up the API, stuff won't work without that + * Sets up the API and prepare for manual setup. + * + * <p> + * This method is meant to be called within concrete minigame plugin onEable. + * </p> + * + * <p> + * Allow loading of arenas with own extended arena class into PluginInstance: after this setup, get the PluginInstance, load the arenas by yourself and add the loaded arenas w/ custom arena class + * into the PluginInstance + * </p> * * @param plugin_ - * @return + * the java plugin representing the minigame. + * @param minigame + * internal name of the minigame. + * @param arenaclass + * the class implementing/ overriding the arena class; {@link Arena}. + * @return the api instance (this plugin). + * @deprecated will be removed in 1.5.0 */ - // Allow loading of arenas with own extended arena class into - // PluginInstance: - // after this setup, get the PluginInstance, load the arenas by yourself - // and add the loaded arenas w/ custom arena class into the PluginInstance + @Deprecated public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minigame, final Class<?> arenaclass) { MinigamesAPI.setupRaw(plugin_, minigame); @@ -351,11 +435,24 @@ public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minig } /** - * Sets up the API, stuff won't work without that + * Sets up the API. + * + * <p> + * This method is meant to be called within concrete minigame plugin onEable. Loads all arenas (default implementation). + * </p> + * + * <p> + * TODO: Compare to {@link #setupAPI(JavaPlugin, String, Class, ArenasConfig, MessagesConfig, ClassesConfig, StatsConfig, DefaultConfig, boolean)} + * </p> * * @param plugin_ - * @return + * the java plugin representing the minigame. + * @param minigame + * internal name of the minigame. + * @return the api instance (this plugin). + * @deprecated will be removed in 1.5.0 */ + @Deprecated public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minigame) { final PluginInstance pli = MinigamesAPI.setupRaw(plugin_, minigame); @@ -363,6 +460,17 @@ public static MinigamesAPI setupAPI(final JavaPlugin plugin_, final String minig return MinigamesAPI.instance; } + /** + * Raw (internal) setup method. + * + * @param plugin_ + * the java plugin representing the minigame. + * @param minigame + * internal name of the minigame. + * @return internal plugin representation of the minigame. + * @deprecated will be removed in 1.5.0 + */ + @Deprecated public static PluginInstance setupRaw(final JavaPlugin plugin_, final String minigame) { final ArenasConfig arenasconfig = new ArenasConfig(plugin_); @@ -381,19 +489,36 @@ public static PluginInstance setupRaw(final JavaPlugin plugin_, final String min return pli; } + /** + * Returns the minigames API plugin. + * + * @return minigames API plugin. + */ public static MinigamesAPI getAPI() { return MinigamesAPI.instance; } + /** + * Creates a new Command handler. + * + * @return command handler. + * @deprecated removed in 1.5.0 + */ + @Deprecated public static CommandHandler getCommandHandler() { return new CommandHandler(); } + /** + * Setup the economy vault. + * + * @return {@code true} if vault was initialized. + */ private boolean setupEconomy() { - if (this.getServer().getPluginManager().getPlugin("Vault") == null) + if (this.getServer().getPluginManager().getPlugin("Vault") == null) //$NON-NLS-1$ { return false; } @@ -409,16 +534,16 @@ private boolean setupEconomy() @Override public boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) { - if (cmd.getName().equalsIgnoreCase("start")) + if (cmd.getName().equalsIgnoreCase(CommandStrings.START)) { if (!(sender instanceof Player)) { - sender.sendMessage("Please execute this command ingame."); + sender.sendMessage(Messages.getString("MinigamesAPI.ExecuteIngame", LOCALE)); //$NON-NLS-1$ return true; } - if (!sender.hasPermission("minigamesapi.start")) + if (!sender.hasPermission(PermissionStrings.MINIGAMES_START)) { - // TODO no_perm message + sender.sendMessage(Messages.getString("MinigamesAPI.NoPermissionForStart", LOCALE)); //$NON-NLS-1$ return true; } final Player p = (Player) sender; @@ -428,108 +553,112 @@ public boolean onCommand(final CommandSender sender, final Command cmd, final St if (pli.containsGlobalPlayer(p.getName())) { final Arena a = pli.global_players.get(p.getName()); - System.out.println(a.getName()); + this.getLogger().info("Arena " + a.getInternalName() + " started because of start command from player " + p.getName()); //$NON-NLS-1$//$NON-NLS-2$ if (a.getArenaState() == ArenaState.JOIN || (a.getArenaState() == ArenaState.STARTING && !a.getIngameCountdownStarted())) { a.start(true); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", a.getDisplayName()).replaceAll("<action>", "started")); - break; + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll(ArenaMessageStrings.ARENA, a.getDisplayName()).replaceAll(ArenaMessageStrings.ACTION, Messages.getString("MinigamesAPI.Started", LOCALE))); //$NON-NLS-1$ + return true; } } } + sender.sendMessage(Messages.getString("MinigamesAPI.StartNotWithinArena", LOCALE)); //$NON-NLS-1$ return true; } - if (cmd.getName().equalsIgnoreCase("party")) + + if (cmd.getName().equalsIgnoreCase(CommandStrings.PARTY)) { - if (!this.getConfig().getBoolean("config.party_command_enabled")) + if (!this.getConfig().getBoolean(PluginConfigStrings.PARTY_COMMAND_ENABLED)) { return true; } - final CommandHandler cmdhandler = MinigamesAPI.getCommandHandler(); + final CommandHandler cmdhandler = new CommandHandler(); if (!(sender instanceof Player)) { - sender.sendMessage("Please execute this command ingame."); + sender.sendMessage(Messages.getString("MinigamesAPI.ExecuteIngame", LOCALE)); //$NON-NLS-1$ return true; } final Player p = (Player) sender; if (args.length > 0) { final String action = args[0]; - if (action.equalsIgnoreCase("invite")) + if (action.equalsIgnoreCase(CommandStrings.PARTY_INVITE)) { - cmdhandler.partyInvite(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + cmdhandler.partyInvite(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } - else if (action.equalsIgnoreCase("accept")) + else if (action.equalsIgnoreCase(CommandStrings.PARTY_ACCEPT)) { - cmdhandler.partyAccept(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + cmdhandler.partyAccept(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } - else if (action.equalsIgnoreCase("kick")) + else if (action.equalsIgnoreCase(CommandStrings.PARTY_KICK)) { - cmdhandler.partyKick(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + cmdhandler.partyKick(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } - else if (action.equalsIgnoreCase("list")) + else if (action.equalsIgnoreCase(CommandStrings.PARTY_LIST)) { - cmdhandler.partyList(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + cmdhandler.partyList(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } - else if (action.equalsIgnoreCase("disband")) + else if (action.equalsIgnoreCase(CommandStrings.PARTY_DISBAND)) { - cmdhandler.partyDisband(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + cmdhandler.partyDisband(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } - else if (action.equalsIgnoreCase("leave")) + else if (action.equalsIgnoreCase(CommandStrings.PARTY_LEAVE)) { - cmdhandler.partyLeave(sender, args, "minigamesapi.party", "/" + cmd.getName(), action, this, p); + cmdhandler.partyLeave(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else { - CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); + CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); //$NON-NLS-1$ } } else { - CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); + CommandHandler.sendPartyHelp("/" + cmd.getName(), sender); //$NON-NLS-1$ } + return true; } - else + + if (cmd.getName().equalsIgnoreCase(CommandStrings.MGAPI) || cmd.getName().equalsIgnoreCase(CommandStrings.MGLIB) || cmd.getName().equalsIgnoreCase(CommandStrings.MAPI)) { if (args.length > 0) { - if (args[0].equalsIgnoreCase("info")) + if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_INFO)) { if (args.length > 1) { final String p = args[1]; - sender.sendMessage("Debug info about " + p); - sender.sendMessage("~ global_players: "); + sender.sendMessage(Messages.getString("MinigamesAPI.DebugInfoHeader", LOCALE) + p); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.DebugGlobalPlayers", LOCALE)); //$NON-NLS-1$ for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { if (pli.global_players.containsKey(p)) { - sender.sendMessage(" " + pli.getPlugin().getName()); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugGlobalPlayersLine", LOCALE), pli.getPlugin().getName())); //$NON-NLS-1$ } } - sender.sendMessage("~ global_lost: "); + sender.sendMessage(Messages.getString("MinigamesAPI.DebugGlobalLost", LOCALE)); //$NON-NLS-1$ for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { if (pli.global_lost.containsKey(p)) { - sender.sendMessage(" " + pli.getPlugin().getName()); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugGlobalLostLine", LOCALE), pli.getPlugin().getName())); //$NON-NLS-1$ } } - sender.sendMessage("~ SpectatorManager: "); + sender.sendMessage(Messages.getString("MinigamesAPI.DebugSpectatorManager", LOCALE)); //$NON-NLS-1$ for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { pli.getSpectatorManager(); if (SpectatorManager.isSpectating(Bukkit.getPlayer(p))) { - sender.sendMessage(" " + pli.getPlugin().getName()); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugSpectatorManagerLine", LOCALE), pli.getPlugin().getName())); //$NON-NLS-1$ } } - sender.sendMessage("~ Arenas: "); + sender.sendMessage(Messages.getString("MinigamesAPI.DebugArenas", LOCALE)); //$NON-NLS-1$ for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { if (pli.global_players.containsKey(p)) { - sender.sendMessage(" " + pli.global_players.get(p).getInternalName() + " - " + pli.global_players.get(p).getArenaState()); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugArenasLine", LOCALE), pli.global_players.get(p).getInternalName(), pli.global_players.get(p).getArenaState().name())); //$NON-NLS-1$ } } } @@ -537,51 +666,43 @@ else if (action.equalsIgnoreCase("leave")) { for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { - sender.sendMessage("~ All players for " + pli.getPlugin().getName() + ": "); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugAllPlayers", LOCALE), pli.getPlugin().getName())); //$NON-NLS-1$ for (final Arena a : pli.getArenas()) { if (a != null) { for (final String p_ : a.getAllPlayers()) { - sender.sendMessage(ChatColor.GRAY + " " + pli.getPlugin().getName() + " " + a.getInternalName() + " " + p_); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugAllPlayersLine", LOCALE), pli.getPlugin().getName(), a.getInternalName(), p_)); //$NON-NLS-1$ } } } } } } - else if (args[0].equalsIgnoreCase("debug")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_DEBUG)) { MinigamesAPI.debug = !MinigamesAPI.debug; - this.getConfig().set("config.debug", MinigamesAPI.debug); + this.getConfig().set(PluginConfigStrings.DEBUG, MinigamesAPI.debug); this.saveConfig(); - sender.sendMessage(ChatColor.GOLD + "Debug mode is now: " + MinigamesAPI.debug); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.SetDebugMode", LOCALE), String.valueOf(MinigamesAPI.debug))); //$NON-NLS-1$ } - else if (args[0].equalsIgnoreCase("list")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_LIST)) { int c = 0; MinigamesAPI.getAPI(); for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { c++; - sender.sendMessage("~ " + pli.getPlugin().getName() + ": " + pli.getArenas().size() + " Arenas"); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.ListArenasLine", LOCALE), pli.getPlugin().getName(), pli.getArenas().size())); //$NON-NLS-1$ return false; } if (c < 1) { - sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); + sender.sendMessage(Messages.getString("MinigamesAPI.NoMinigamesFound", LOCALE)); //$NON-NLS-1$ } } - else if (args[0].equalsIgnoreCase("restartserver")) - { - if (sender.isOp()) - { - Util.restartServer(); - return false; - } - } - else if (args[0].equalsIgnoreCase("title")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_TITLE)) { if (args.length > 1) { @@ -592,7 +713,7 @@ else if (args[0].equalsIgnoreCase("title")) } } } - else if (args[0].equalsIgnoreCase("subtitle")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_SUBTITLE)) { if (args.length > 1) { @@ -603,7 +724,7 @@ else if (args[0].equalsIgnoreCase("subtitle")) } } } - else if (args[0].equalsIgnoreCase("signs")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_SIGNS)) { if (sender instanceof Player) { @@ -613,22 +734,22 @@ else if (args[0].equalsIgnoreCase("signs")) for (final Arena a : pli.getArenas()) { Util.updateSign(pli.getPlugin(), a); - sender.sendMessage(ChatColor.GREEN + "All signs updated!"); + sender.sendMessage(Messages.getString("MinigamesAPI.AllSignsUpdated", LOCALE)); //$NON-NLS-1$ return false; } } } - else if (args[0].equalsIgnoreCase("hologram")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_HOLOGRAM)) { if (sender instanceof Player) { final Player p = (Player) sender; - p.sendMessage("Playing hologram."); - Effects.playHologram(p, p.getLocation(), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "TEST", true, true); + p.sendMessage(Messages.getString("MinigamesAPI.PlayingHologram", LOCALE)); //$NON-NLS-1$ + Effects.playHologram(p, p.getLocation(), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "TEST", true, true); //$NON-NLS-1$ return false; } } - else if (args[0].equalsIgnoreCase("statshologram")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_STATS_HOLOGRAM)) { if (sender instanceof Player) { @@ -636,38 +757,21 @@ else if (args[0].equalsIgnoreCase("statshologram")) if (args.length > 1) { final PluginInstance pli = this.getPluginInstance((JavaPlugin) Bukkit.getPluginManager().getPlugin(args[1])); - p.sendMessage("Playing statistics hologram."); + p.sendMessage(Messages.getString("MinigamesAPI.PlayingStatsHologram", LOCALE)); //$NON-NLS-1$ Effects.playHologram(p, p.getLocation().add(0D, 1D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Wins: " + pli.getStatsInstance().getWins(p.getName()), false, false); + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsWins", LOCALE) + pli.getStatsInstance().getWins(p.getName()), false, false); //$NON-NLS-1$ Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Potions: " + pli.getStatsInstance().getPoints(p.getName()), false, false); + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsPotions", LOCALE) + pli.getStatsInstance().getPoints(p.getName()), false, false); //$NON-NLS-1$ Effects.playHologram(p, p.getLocation().add(0D, 0.5D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Kills: " + pli.getStatsInstance().getKills(p.getName()), false, false); + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsKills", LOCALE) + pli.getStatsInstance().getKills(p.getName()), false, false); //$NON-NLS-1$ Effects.playHologram(p, p.getLocation().add(0D, 0.25D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + "Deaths: " + pli.getStatsInstance().getDeaths(p.getName()), false, false); - return false; - } - } - } - else if (args[0].equalsIgnoreCase("protocol")) - { - if (sender instanceof Player) - { - Player p = (Player) sender; - if (args.length > 1) - { - p = Bukkit.getPlayer(args[1]); - } - if (p != null) - { - final int version = Effects.getClientProtocolVersion(p); - sender.sendMessage("Protocol version of " + p.getName() + ": " + version); + ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsDeaths", LOCALE) + pli.getStatsInstance().getDeaths(p.getName()), false, false); //$NON-NLS-1$ return false; } } } - else if (args[0].equalsIgnoreCase("gamemodetest")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_GAMEMODE_TEST)) { if (sender instanceof Player) { @@ -679,14 +783,15 @@ else if (args[0].equalsIgnoreCase("gamemodetest")) } } } - else if (args[0].equalsIgnoreCase("bungeetest")) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_BUNGEE_TEST)) { if (sender instanceof Player) { final Player p = (Player) sender; if (p.isOp()) { - final PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); + // TODO Why we have sky wars hard coded??? + final PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); //$NON-NLS-1$ BungeeSocket.sendSignUpdate(pli, pli.getArenas().get(0)); return false; } @@ -696,30 +801,28 @@ else if (args[0].equalsIgnoreCase("bungeetest")) } if (args.length < 1) { - sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "MinigamesLib <3 " + this.getDescription().getVersion()); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.MinigamesLibHeader", LOCALE), this.getDescription().getVersion())); //$NON-NLS-1$ int c = 0; MinigamesAPI.getAPI(); for (final PluginInstance pli : MinigamesAPI.pinstances.values()) { c++; - sender.sendMessage("~ " + ChatColor.GRAY + pli.getPlugin().getName() + ": " + ChatColor.WHITE + pli.getArenas().size() + " Arenas"); + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.PluginArenaCount", LOCALE), pli.getPlugin().getName(), pli.getArenas().size())); //$NON-NLS-1$ } if (c < 1) { - sender.sendMessage("~ No installed minigames found! Download/Install some from the project page."); + sender.sendMessage(Messages.getString("MinigamesAPI.NoMinigamesFound", LOCALE)); //$NON-NLS-1$ } - sender.sendMessage(ChatColor.GOLD + "Subcommands: "); - sender.sendMessage("/mapi info <player>"); - sender.sendMessage("/mapi debug"); - sender.sendMessage("/mapi list"); - sender.sendMessage("/mapi title <title>"); - sender.sendMessage("/mapi subtitle <subtitle>"); - sender.sendMessage("/mapi restartserver"); - sender.sendMessage("/mapi hologram"); - sender.sendMessage("/mapi signs - Update all signs"); - sender.sendMessage("/mapi protocol <player>"); - sender.sendMessage("/mapi <potioneffect>"); - sender.sendMessage("/mapi setstatshologram"); + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommands", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandInfo", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandDebug", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandList", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandTitle", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandSubtitle", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandHologram", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandSigns", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandPotionEffect", LOCALE)); //$NON-NLS-1$ + sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandStatsHologram", LOCALE)); //$NON-NLS-1$ } if (sender instanceof Player && args.length > 0) { @@ -734,7 +837,7 @@ else if (args[0].equalsIgnoreCase("bungeetest")) } if (!cont) { - sender.sendMessage(ChatColor.RED + "Couldn't find particle effect."); + sender.sendMessage(Messages.getString("MinigamesAPI.CannotFindParticleEffect", LOCALE)); //$NON-NLS-1$ return true; } final ParticleEffectNew eff = ParticleEffectNew.valueOf(args[0]); @@ -757,14 +860,14 @@ else if (args[0].equalsIgnoreCase("bungeetest")) @Override public void onPluginMessageReceived(final String channel, final Player player, final byte[] message) { - if (!channel.equals("BungeeCord")) + if (!channel.equals(ChannelStrings.CHANNEL_BUNGEE_CORD)) { return; } final ByteArrayDataInput in = ByteStreams.newDataInput(message); final String subchannel = in.readUTF(); System.out.println(subchannel); - if (subchannel.equals("MinigamesLibBack")) + if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK)) { final short len = in.readShort(); final byte[] msgbytes = new byte[len]; @@ -774,10 +877,16 @@ public void onPluginMessageReceived(final String channel, final Player player, f try { final String playerData = msgin.readUTF(); - final String plugin_ = playerData.split(":")[0]; - final String arena = playerData.split(":")[1]; - final String playername = playerData.split(":")[2]; - System.out.println(plugin_ + " -> " + arena); + final String[] split = playerData.split(":"); //$NON-NLS-1$ + final String plugin_ = split[0]; + final String arena = split[1]; + final String playername = split[2]; + + if (debug) + { + this.getLogger().info("channel message: " + ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK + " -> " + playerData); //$NON-NLS-1$ //$NON-NLS-2$ + } + JavaPlugin plugin = null; for (final JavaPlugin pl : MinigamesAPI.pinstances.keySet()) { @@ -804,7 +913,7 @@ public void onPluginMessageReceived(final String channel, final Player player, f } else { - System.out.println("Arena " + arena + " couldn't be found, please fix your setup."); + this.getLogger().warning("Arena " + arena + " for MINIGAMESLIB_BACK couldn't be found, please fix your setup."); //$NON-NLS-1$//$NON-NLS-2$ } } } @@ -813,7 +922,7 @@ public void onPluginMessageReceived(final String channel, final Player player, f e.printStackTrace(); } } - else if (subchannel.equals("MinigamesLibRequest")) + else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST)) { // Lobby requests sign data final short len = in.readShort(); final byte[] msgbytes = new byte[len]; @@ -823,9 +932,15 @@ else if (subchannel.equals("MinigamesLibRequest")) try { final String requestData = msgin.readUTF(); - final String plugin_ = requestData.split(":")[0]; - final String arena = requestData.split(":")[1]; - System.out.println(plugin_ + " -> " + arena); + final String[] split = requestData.split(":"); //$NON-NLS-1$ + final String plugin_ = split[0]; + final String arena = split[1]; + + if (debug) + { + this.getLogger().info("channel message: " + ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST + " -> " + requestData); //$NON-NLS-1$ //$NON-NLS-2$ + } + for (final JavaPlugin pl : MinigamesAPI.pinstances.keySet()) { if (pl.getName().contains(plugin_)) @@ -837,7 +952,7 @@ else if (subchannel.equals("MinigamesLibRequest")) } else { - System.out.println("Arena " + arena + " couldn't be found, please fix your setup."); + this.getLogger().warning("Arena " + arena + " for MINIGAMESLIB_REQUEST couldn't be found, please fix your setup."); //$NON-NLS-1$//$NON-NLS-2$ } break; } @@ -850,6 +965,13 @@ else if (subchannel.equals("MinigamesLibRequest")) } } + /** + * Returns the minigames lib representation of a minigame plugin. + * + * @param plugin + * minigame java plugin. + * @return plugin instance or {@code null} if this is not a minigames plugin or if setupAPI was not called. + */ public PluginInstance getPluginInstance(final JavaPlugin plugin) { return MinigamesAPI.pinstances.get(plugin); @@ -857,9 +979,10 @@ public PluginInstance getPluginInstance(final JavaPlugin plugin) /** * Version safe conversion utility (temporary workaround) + * * @param playername * @return uuid of the player - * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Player#getUniqueId()} + * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Player#getUniqueId()} */ @Deprecated public static UUID playerToUUID(String playername) @@ -874,37 +997,39 @@ public static UUID playerToUUID(String playername) /** * Version safe conversion utility (temporary workaround) + * * @param player * @return uuid of the player * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Player#getUniqueId()} */ + @Deprecated public static UUID playerToUUID(Player player) { if (SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) { return player.getUniqueId(); } - else + + try { - try - { - final Object handle = player.getClass().getDeclaredMethod("getHandle").invoke(player); - return (UUID) handle.getClass().getDeclaredMethod("getUniqueID").invoke(handle); - } - catch (Exception ex) - { - // TODO Logging - return null; - } + final Object handle = player.getClass().getDeclaredMethod("getHandle").invoke(player); //$NON-NLS-1$ + return (UUID) handle.getClass().getDeclaredMethod("getUniqueID").invoke(handle); //$NON-NLS-1$ + } + catch (Exception ex) + { + instance.getLogger().log(Level.SEVERE, "Problems converting player to uuid.", ex); //$NON-NLS-1$ + return null; } } /** * Version safe conversion utility (temporary workaround) + * * @param uuid * @return player object * @deprecated starting with 1.5.0 (and by dropping support for spigot 1.7.x) you should directly use {@link Bukkit#getPlayer(UUID)} */ + @Deprecated public static Player uuidToPlayer(UUID uuid) { if (SERVER_VERSION.isAfter(MinecraftVersionsType.V1_7)) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java new file mode 100644 index 00000000..76d477d3 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Strings for common permissions. + * + * @author mepeisen + */ +public interface PermissionStrings +{ + + /** permission prefix for minigames party. */ + String MINIGAMES_PARTY = "minigamesapi.party"; //$NON-NLS-1$ + + /** permission for start command. */ + String MINIGAMES_START = "minigamesapi.start"; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java new file mode 100644 index 00000000..831dc596 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java @@ -0,0 +1,46 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +/** + * Strings for plugins config. + * + * @author mepeisen + */ +public interface PluginConfigStrings +{ + + /** + * debug flag for minigames lib. + */ + String DEBUG = "config.debug"; //$NON-NLS-1$ + + /** + * flag to support the party command (playing with friends). + */ + String PARTY_COMMAND_ENABLED = "config.party_command_enabled"; //$NON-NLS-1$ + + /** + * the update interval for arena signs. + */ + String SIGNS_UPDATE_TIME = "signs_updating_time"; //$NON-NLS-1$ + + /** + * flag for controlling auto updates. + */ + String AUTO_UPDATING = "config.auto_updating"; //$NON-NLS-1$ + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 0c8f3b5b..02685eb2 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -30,6 +30,7 @@ import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaPlayer; import com.comze_instancelabs.minigamesapi.ArenaState; +import com.comze_instancelabs.minigamesapi.CommandStrings; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.Party; import com.comze_instancelabs.minigamesapi.PluginInstance; @@ -66,147 +67,143 @@ public boolean handleArgs(final JavaPlugin plugin, final String uber_permission, final Player p = (Player) sender; final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); final String action = args[0]; - if (action.equalsIgnoreCase("setspawn")) + if (action.equalsIgnoreCase(CommandStrings.GAME_SET_SPAWN)) { return this.setSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setspecspawn")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_SPEC_SPAWN)) { return this.setSpecSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setlobby")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_LOBBY)) { return this.setLobby(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setmainlobby")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_MAINLOBBY)) { return this.setMainLobby(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setbounds")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_BOUNDS)) { return this.setBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setlobbybounds")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_LOBBY_BOUNDS)) { return this.setLobbyBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setspecbounds")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_SPEC_BOUNDS)) { return this.setSpecBounds(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("savearena") || action.equalsIgnoreCase("save")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SAVE_ARENA) || action.equalsIgnoreCase(CommandStrings.GAME_SAVE)) { return this.saveArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setmaxplayers")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_MAX_PLAYERS)) { return this.setMaxPlayers(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setminplayers")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_MIN_PLAYERS)) { return this.setMinPlayers(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setarenavip") || action.equalsIgnoreCase("setvip")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_ARENA_VIP) || action.equalsIgnoreCase(CommandStrings.GAME_SET_VIP)) { return this.setArenaVIP(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("join")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_JOIN)) { return this.joinArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("leave")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_LEAVE)) { return this.leaveArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("start")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_START)) { return this.startArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("stop")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_STOP)) { return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("sings")) - { - return this.stopArena(pli, sender, args, uber_permission, cmd, action, plugin, p); - } - else if (action.equalsIgnoreCase("stopall")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_STOP_ALL)) { return this.stopAllArenas(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("removearena")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_REMOVE_ARENA)) { return this.removeArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("removespawn")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_REMOVE_SPAWN)) { return this.removeSpawn(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setskull")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_SKULL)) { return this.setSkull(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setenabled")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_ENABLED)) { return this.setEnabled(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setshowscoreboard")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_SHOW_SCOREBOARD)) { return this.setShowScoreboard(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("reset")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_RESET)) { return this.resetArena(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setauthor")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_AUTHOR)) { return this.setAuthor(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setdescription")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_DESCRIPTION)) { return this.setDescription(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("setdisplayname")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_DISPLAYNAME)) { return this.setArenaDisplayName(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("kit")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_KIT)) { return this.setKit(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("spectate")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SPECTATE)) { return this.spectate(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("shop")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SHOP)) { return this.openShop(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("leaderboards") || action.equalsIgnoreCase("lb") || action.equalsIgnoreCase("top")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_LEADER_BOARDS) || action.equalsIgnoreCase(CommandStrings.GAME_LB) || action.equalsIgnoreCase(CommandStrings.GAME_TOP)) { return this.getLeaderboards(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("stats")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_STATS)) { return this.getStats(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("sethologram")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_SET_HOLOGRAM)) { return this.setHologram(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("listholograms")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_LIST_HOLOGRAMS)) { return this.listHolograms(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("removehologram")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_REMOVE_HOLOGRAM)) { return this.removeHologram(pli, sender, args, uber_permission, cmd, action, plugin, p); } - else if (action.equalsIgnoreCase("help")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_HELP)) { CommandHandler.sendHelp(cmd, sender); } - else if (action.equalsIgnoreCase("list")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_LIST)) { sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Arenas" + ChatColor.DARK_GRAY + " -------"); for (final Arena a : pli.getArenas()) @@ -221,7 +218,7 @@ else if (action.equalsIgnoreCase("list")) } } } - else if (action.equalsIgnoreCase("reload")) + else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) { plugin.reloadConfig(); pli.getMessagesConfig().reloadConfig(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index 25a83499..b93db6dc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -18,7 +18,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Arrays; -import java.util.HashMap; +import java.util.Map; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; @@ -59,7 +59,7 @@ public void init() { // all signs this.getConfig().options().header("Contains all messages for easy translation. You can remove a mesage by setting it to nothing, like so: ''"); - final HashMap<String, String> namecol = ArenaState.getAllStateNameColors(); + final Map<String, String> namecol = ArenaState.getAllStateNameColors(); for (final String state : namecol.keySet()) { final String color = namecol.get(state); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties b/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties index ec64e57f..58ab066f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/messages.properties @@ -1,2 +1,40 @@ Arena.BoundariesInvalid=&cThe boundaries of an arena appear to be invalid (missing world?), please fix\! Arena: %0$s Arena.SaveFailedBoundaries=&cFailed to save arenas as you forgot to set boundaries or they could not be found. This will lead to errors later, please fix your setup. %0$s +MinigamesAPI.AllSignsUpdated=§aAll signs updated\! +MinigamesAPI.CannotFindParticleEffect=§cCouldn't find particle effect. +MinigamesAPI.DebugAllPlayers=~ All players for %0$s: +MinigamesAPI.DebugAllPlayersLine=§7 %0$s %1$s %2$s +MinigamesAPI.DebugArenas=~ Arenas: +MinigamesAPI.DebugArenasLine=\ %0$s - %1$s +MinigamesAPI.DebugGlobalLost=~ global_lost: +MinigamesAPI.DebugGlobalLostLine=\ %0$s +MinigamesAPI.DebugGlobalPlayers=~ global_players: +MinigamesAPI.DebugGlobalPlayersLine=\ %0$s +MinigamesAPI.DebugInfoHeader=Debug info about +MinigamesAPI.DebugSpectatorManager=~ SpectatorManager: +MinigamesAPI.DebugSpectatorManagerLine=\ %0$s +MinigamesAPI.ExecuteIngame=Please execute this command ingame. +MinigamesAPI.ListArenasLine=~ %0$s: %1$d Arenas +MinigamesAPI.MgApiSubcommandDebug=/mapi debug +MinigamesAPI.MgApiSubcommandHologram=/mapi hologram +MinigamesAPI.MgApiSubcommandInfo=/mapi info <player> +MinigamesAPI.MgApiSubcommandList=/mapi list +MinigamesAPI.MgApiSubcommandPotionEffect=/mapi <potioneffect> +MinigamesAPI.MgApiSubcommands=§6Subcommands: +MinigamesAPI.MgApiSubcommandSigns=/mapi signs - Update all signs +MinigamesAPI.MgApiSubcommandStatsHologram=/mapi setstatshologram +MinigamesAPI.MgApiSubcommandSubtitle=/mapi subtitle <subtitle> +MinigamesAPI.MgApiSubcommandTitle=/mapi title <title> +MinigamesAPI.MinigamesLibHeader=§6§lMinigamesLib <3 %0$s +MinigamesAPI.NoMinigamesFound=~ No installed minigames found\! Download/Install some from the project page. +MinigamesAPI.NoPermissionForStart=§c§lYou are not allowed to use command /start. +MinigamesAPI.PlayingHologram=Playing hologram. +MinigamesAPI.PlayingStatsHologram=Playing statistics hologram. +MinigamesAPI.PluginArenaCount=~ §7 %0$s: §f%1$d Arenas +MinigamesAPI.SetDebugMode=§6Debug mode is now: %0$s +MinigamesAPI.Started=started +MinigamesAPI.StartNotWithinArena=§c§lYou are not within any arena. Nothing found to start. +MinigamesAPI.StatsDeaths=Deaths: +MinigamesAPI.StatsKills=Kills: +MinigamesAPI.StatsPotions=Potions: +MinigamesAPI.StatsWins=Wins: diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java index b95374ae..95c56bc7 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java @@ -22,6 +22,7 @@ import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ChannelStrings; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; import com.comze_instancelabs.minigamesapi.bungee.BungeeSocket; @@ -44,7 +45,7 @@ public static void connectToServer(final JavaPlugin plugin, final String player, { e.printStackTrace(); } - Bukkit.getPlayer(player).sendPluginMessage(plugin, "BungeeCord", stream.toByteArray()); + Bukkit.getPlayer(player).sendPluginMessage(plugin, ChannelStrings.CHANNEL_BUNGEE_CORD, stream.toByteArray()); } public static void sendSignUpdateRequest(final JavaPlugin plugin, final String minigame, final Arena arena) @@ -66,7 +67,7 @@ public static void sendSignUpdateRequest(final JavaPlugin plugin, final String m out.writeShort(msgbytes.toByteArray().length); out.write(msgbytes.toByteArray()); - Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), "BungeeCord", out.toByteArray()); + Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); } catch (final Exception e) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index e94a9ab2..7c2d0ccd 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -999,79 +999,6 @@ public static CompassPlayer getNearestPlayer(final Player p, final Arena a) return ret; } - static boolean windows = false; - - public static void restartServer() - { - final String system = System.getProperty("os.name"); - final String startDir = System.getProperty("user.dir"); - String fileName = "start.sh"; - String jarFile = "craftbukkit.jar"; - if (system.contains("Windows")) - { - fileName = "start.bat"; - Util.windows = true; - } - if (Bukkit.getVersion().contains("Spigot")) - { - jarFile = "spigot.jar"; - } - System.out.println(Bukkit.getVersion()); - System.out.println(system); - System.out.println(startDir); - final File f = new File(startDir + "\\" + fileName); - if (!f.exists()) - { - PrintWriter writer; - try - { - - writer = new PrintWriter(f, "UTF-8"); - if (Util.windows) - { - writer.println("@ECHO OFF"); - } - else - { - writer.println("#!/bin/bash"); - } - writer.println("java -Xms1024M -Xmx1024M -jar " + jarFile); - if (Util.windows) - { - writer.println("PAUSE"); - } - writer.close(); - } - catch (final Exception e) - { - e.printStackTrace(); - } - } - - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() - { - try - { - if (Util.windows) - { - Runtime.getRuntime().exec("CMD /C START \"" + f.getPath() + "\""); - } - else - { - Runtime.getRuntime().exec("sh " + f); - } - } - catch (final IOException e) - { - e.printStackTrace(); - } - } - }); - Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> Bukkit.getServer().shutdown(), 20L); - } - public static void sendStatsMessage(final PluginInstance pli, final Player p) { if (pli.getMessagesConfig().getConfig().isSet("messages.stats")) @@ -1121,7 +1048,7 @@ public static Score getScore(final Objective obj, final String text) Method getScore_ = null; try { - if (MinigamesAPI.getAPI().below1710) + if (MinigamesAPI.SERVER_VERSION.isBelow(MinecraftVersionsType.V1_7_R4)) { getScore_ = obj.getClass().getDeclaredMethod("getScore", OfflinePlayer.class); getScore_.setAccessible(true); @@ -1149,7 +1076,7 @@ public static void resetScores(final Scoreboard obj, final String text) Method resetScores_ = null; try { - if (MinigamesAPI.getAPI().below1710) + if (MinigamesAPI.SERVER_VERSION.isBelow(MinecraftVersionsType.V1_7_R4)) { resetScores_ = obj.getClass().getDeclaredMethod("resetScores", OfflinePlayer.class); resetScores_.setAccessible(true); From 049df19eab52f80c7b6b30f5e5c179ca5613280c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 2 Jul 2016 19:40:44 +0200 Subject: [PATCH 023/266] refactoring --- .../minigamesapi/Classes.java | 6 +- .../minigamesapi/MinigamesAPI.java | 79 +++++++++++++++++-- .../minigamesapi/Rewards.java | 10 +-- .../comze_instancelabs/minigamesapi/Shop.java | 4 +- .../minigamesapi/commands/CommandHandler.java | 2 +- .../minigamesapi/util/Util.java | 2 +- 6 files changed, 83 insertions(+), 20 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java index 7c32bf53..3eab7a13 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java @@ -256,7 +256,7 @@ else if (item.getItemMeta().getDisplayName().startsWith("potioneffect:")) // p.getInventory().setContents((ItemStack[]) items.toArray(new ItemStack[items.size()])); p.updateInventory(); - if (MinigamesAPI.getAPI().crackshot) + if (MinigamesAPI.getAPI().crackshotAvailable()) { for (final String t : tempguns) { @@ -517,12 +517,12 @@ public boolean kitTakeMoney(final Player p, final String kit) MinigamesAPI.getAPI(); // Money (economy) - if (!MinigamesAPI.economy) + if (!MinigamesAPI.getAPI().economyAvailable()) { this.plugin.getLogger().warning("Economy is turned OFF. You can turn it on in the config."); return false; } - if (MinigamesAPI.economy) + if (MinigamesAPI.getAPI().economyAvailable()) { if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_BUY_CLASSES_FOREVER)) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 59214ccb..e26d675d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -73,21 +73,69 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** the minigames plugin instance. */ private static MinigamesAPI instance = null; + /** + * Vault economy instance. + * @deprecated will be private and non-static in 1.5.0; replaced by new method + */ + @Deprecated public static Economy econ = null; + + /** + * {@code true} if economy is installed. + * @deprecated will be private and non-static in 1.5.0, replace by {@link #economyAvailable()} + */ + @Deprecated public static boolean economy = true; + + /** + * {@code true} if crackshot is installed. + * @deprecated will be private in 1.5.0, replace by {@link #crackshotAvailable()} + */ + @Deprecated public boolean crackshot = false; /** a global debug flag; controls the output of finer debug messages. */ public static boolean debug = false; + /** + * @deprecated will be removed in 1.5.0 + */ + @Deprecated int updatetime = 20 * 10; + /** + * TODO decribe this field. + * @deprecated will be be private in 1.5.0; replaced by new method + */ + @Deprecated public HashMap<String, Party> global_party = new HashMap<>(); + + /** + * TODO decribe this field. + * @deprecated will be be private in 1.5.0; replaced by new method + */ + @Deprecated public HashMap<String, ArrayList<Party>> global_party_invites = new HashMap<>(); + /** + * Hash map with internal plugin representations of each registered minigame. + * @deprecated will be private in 1.5.0; replaced by {@link #getPluginInstance(JavaPlugin)} + */ + @Deprecated public static HashMap<JavaPlugin, PluginInstance> pinstances = new HashMap<>(); + /** + * The party messages. + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public PartyMessagesConfig partymessages; + + /** + * The stats config. + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public StatsGlobalConfig statsglobal; /** @@ -103,8 +151,8 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener * * @deprecated will be removed in 1.5.0; replaced by SERVER_VERSION enumeration. */ - public boolean below1710 = false; // Used for scoreboard function (wether to use getScore(OfflinePlayer) or - // getScore(String)) + public boolean below1710 = false; + /** * The plugin metrics report. */ @@ -122,13 +170,10 @@ public void onEnable() this.getServer().getMessenger().registerOutgoingPluginChannel(this, ChannelStrings.CHANNEL_BUNGEE_CORD); this.getServer().getMessenger().registerIncomingPluginChannel(this, ChannelStrings.CHANNEL_BUNGEE_CORD, this); - if (MinigamesAPI.economy) + if (!this.setupEconomy()) { - if (!this.setupEconomy()) - { - this.getLogger().severe(String.format("[%s] - No Economy (Vault) dependency found! Disabling Economy.", this.getDescription().getName())); //$NON-NLS-1$ - MinigamesAPI.economy = false; - } + this.getLogger().severe(String.format("[%s] - No Economy (Vault) dependency found! Disabling Economy.", this.getDescription().getName())); //$NON-NLS-1$ + MinigamesAPI.economy = false; } this.getConfig().options().header("Want bugfree versions? Set this to true for automatic updates:"); //$NON-NLS-1$ @@ -222,6 +267,24 @@ public int getValue() }, 0, 20 * this.getConfig().getInt(PluginConfigStrings.SIGNS_UPDATE_TIME)); } + /** + * Checks if crackshot is available. + * @return {@code true} if crackshot is available. + */ + public boolean crackshotAvailable() + { + return this.crackshot; + } + + /** + * Checks if economy is available. + * @return {@code true} if economy is available. + */ + public boolean economyAvailable() + { + return this.economy; + } + /** * Calculates the minecraft server version. * diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index 3ead5a97..911913a4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -50,7 +50,7 @@ public Rewards(final JavaPlugin plugin) this.plugin = plugin; this.reloadVariables(); - if (!MinigamesAPI.economy) + if (!MinigamesAPI.getAPI().economyAvailable()) { this.economyrewards = false; this.kill_economyrewards = false; @@ -123,7 +123,7 @@ public void giveKillReward(final String p_) final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(this.plugin); final Player p = Bukkit.getPlayer(p_); - if (this.kill_economyrewards && MinigamesAPI.economy) + if (this.kill_economyrewards && MinigamesAPI.getAPI().economyAvailable()) { MinigamesAPI.getAPI(); MinigamesAPI.econ.depositPlayer(p.getName(), this.kill_econ_reward); @@ -165,7 +165,7 @@ public void giveAchievementReward(final String p_, final boolean econ, final boo { final Player p = Bukkit.getPlayer(p_); - if (econ && MinigamesAPI.economy) + if (econ && MinigamesAPI.getAPI().economyAvailable()) { MinigamesAPI.getAPI(); MinigamesAPI.econ.depositPlayer(p.getName(), money_reward); @@ -208,7 +208,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String if (!pli.global_lost.containsKey(p_)) { String received_rewards_msg = pli.getMessagesConfig().you_received_rewards; - if (this.economyrewards && MinigamesAPI.economy) + if (this.economyrewards && MinigamesAPI.getAPI().economyAvailable()) { int multiplier = global_multiplier; if (pli.getShopHandler().hasItemBought(p_, "coin_boost2_solo")) @@ -240,7 +240,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String { items_str = items_str.substring(0, items_str.length() - 2); } - if (this.economyrewards && MinigamesAPI.economy) + if (this.economyrewards && MinigamesAPI.getAPI().economyAvailable()) { received_rewards_msg += pli.getMessagesConfig().you_received_rewards_2; received_rewards_msg += pli.getMessagesConfig().you_received_rewards_3.replaceAll("<itemreward>", items_str); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java index 0cde31cc..4797b0b0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java @@ -177,7 +177,7 @@ public boolean requiresMoney(final String item) public boolean takeMoney(final Player p, final String item) { MinigamesAPI.getAPI(); - if (!MinigamesAPI.economy) + if (!MinigamesAPI.getAPI().economyAvailable()) { this.plugin.getLogger().warning("Economy is turned OFF. Turn it ON in the config."); return false; @@ -186,7 +186,7 @@ public boolean takeMoney(final Player p, final String item) { return false; } - if (MinigamesAPI.economy) + if (MinigamesAPI.getAPI().economyAvailable()) { final ShopConfig shopConfig = this.pli.getShopConfig(); if (!shopConfig.getConfig().isSet("players.bought." + p.getName() + "." + item)) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 02685eb2..f587ca28 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -1125,7 +1125,7 @@ public boolean setKit(final PluginInstance pli, final CommandSender sender, fina { if (ac.isEnabled()) { - pli.getClassesHandler().setClass(kit, p.getName(), MinigamesAPI.economy); + pli.getClassesHandler().setClass(kit, p.getName(), MinigamesAPI.getAPI().economyAvailable()); return true; } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 7c2d0ccd..ac5c2b6d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -1006,7 +1006,7 @@ public static void sendStatsMessage(final PluginInstance pli, final Player p) final int kills_ = pli.getStatsInstance().getKills(p.getName()); final int deaths_ = pli.getStatsInstance().getDeaths(p.getName()); int money_ = 0; - if (MinigamesAPI.economy) + if (MinigamesAPI.getAPI().economyAvailable()) { money_ = (int) MinigamesAPI.econ.getBalance(p.getName()); } From fac5117b2aa5f7f1ee149d9ba24c4b1a0db51d6d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 3 Jul 2016 08:12:44 +0200 Subject: [PATCH 024/266] refactoring --- .../minigamesapi/Arena.java | 8 +- .../minigamesapi/ArenaConfigStrings.java | 36 +- .../minigamesapi/ArenaSetup.java | 5 + .../minigamesapi/Classes.java | 5 + .../minigamesapi/Effects.java | 88 ++- .../minigamesapi/Party.java | 57 +- .../minigamesapi/PluginInstance.java | 594 +++++++++++++++++- .../minigamesapi/PrivateUtil.java | 32 +- .../minigamesapi/Rewards.java | 80 ++- .../comze_instancelabs/minigamesapi/Shop.java | 5 + .../minigamesapi/SmartReset.java | 5 + .../minigamesapi/SpectatorManager.java | 5 + .../minigamesapi/Stats.java | 5 + 13 files changed, 853 insertions(+), 72 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index d7f679b3..7caab042 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -1554,7 +1554,7 @@ public void startLobby(final boolean countdown) } this.setArenaState(ArenaState.STARTING); Util.updateSign(this.plugin, this); - this.currentlobbycount = this.pli.lobby_countdown; + this.currentlobbycount = this.pli.getLobbyCountdown(); final Arena a = this; // skip countdown @@ -1600,7 +1600,7 @@ public void startLobby(final boolean countdown) if (Validator.isPlayerOnline(p_2)) { final Player p2 = Bukkit.getPlayer(p_2); - p2.setExp(1F * ((1F * Arena.this.currentlobbycount) / (1F * Arena.this.pli.lobby_countdown))); + p2.setExp(1F * ((1F * Arena.this.currentlobbycount) / (1F * Arena.this.pli.getLobbyCountdown()))); if (Arena.this.pli.use_xp_bar_level) { p2.setLevel(Arena.this.currentlobbycount); @@ -1637,7 +1637,7 @@ public void start(final boolean tp) { // silently ignore } - this.currentingamecount = this.pli.ingame_countdown; + this.currentingamecount = this.pli.getIngameCountdown(); if (tp) { this.pspawnloc = Util.teleportAllPlayers(this.getAllPlayers(), this.spawns); @@ -1697,7 +1697,7 @@ public void start(final boolean tp) if (Validator.isPlayerOnline(p_2)) { final Player p2 = Bukkit.getPlayer(p_2); - p2.setExp(1F * ((1F * Arena.this.currentingamecount) / (1F * Arena.this.pli.ingame_countdown))); + p2.setExp(1F * ((1F * Arena.this.currentingamecount) / (1F * Arena.this.pli.getIngameCountdown()))); if (Arena.this.pli.use_xp_bar_level) { p2.setLevel(Arena.this.currentingamecount); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java index f47a13cf..f48725cd 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -110,33 +110,33 @@ public interface ArenaConfigStrings /** TODO: describe config option. */ String CONFIG_SHOW_CLASSES_WITHOUT_PERM = "config.show_classes_without_usage_permission"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to gain economy rewards on win. */ String CONFIG_REWARDS_ECONOMY = "config.rewards.economy"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** Amount of money to give for win. */ String CONFIG_REWARDS_ECONOMY_REWARD = "config.rewards.economy_reward"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to gain item rewards on win. */ String CONFIG_REWARDS_ITEM_REWARD = "config.rewards.item_reward"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** the items wo give for win. */ String CONFIG_REWARDS_ITEM_REWARD_IDS = "config.rewards.item_reward_ids"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to execute a command on win. */ String CONFIG_REWARDS_COMMAND_REWARD = "config.rewards.command_reward"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** the command to execute for win. */ String CONFIG_REWARDS_COMMAND = "config.rewards.command"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to gain economy rewards on kills. */ String CONFIG_REWARDS_ECONOMY_FOR_KILLS = "config.rewards.economy_for_kills"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** money to give per kill. */ String CONFIG_REWARDS_ECONOMY_REWARD_FOR_KILLS = "config.rewards.economy_reward_for_kills"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to gain a command for kills. */ String CONFIG_REWARDS_COMMAND_REWARD_FOR_KILLS = "config.rewards.command_reward_for_kills"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** command to execute for kills. */ String CONFIG_REWARDS_COMMAND_FOR_KILLS = "config.rewards.command_for_kills"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to gain economy rewards for participation. */ String CONFIG_REWARDS_ECONOMY_FOR_PARTICIPATION = "config.rewards.economy_for_participation"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** money to give for participation. */ String CONFIG_REWARDS_ECONOMY_REWARD_FOR_PARTICIPATION = "config.rewards.economy_reward_for_participation"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** {@code true} to execute a command for participation. */ String CONFIG_REWARDS_COMMAND_REWARD_FOR_PARTICIPATION = "config.rewards.command_reward_for_participation"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** command to execute for participation. */ String CONFIG_REWARDS_COMMAND_FOR_PARTICIPATION = "config.rewards.command_for_participation"; //$NON-NLS-1$ /** TODO: describe config option. */ @@ -232,8 +232,14 @@ public interface ArenaConfigStrings String CONFIG_SEND_STATS_ON_STOP = "config.send_stats_on_stop"; //$NON-NLS-1$ /** TODO: describe config option. */ String CONFIG_USE_XP_BAR_LEVEL = "config.use_xp_bar_level"; //$NON-NLS-1$ - /** TODO: describe config option. */ + + /** + * {@code true} for using old reset (from files); {@code false} for using smart reset + * @deprecated will be removed in 1.4.10 + */ + @Deprecated String CONFIG_USE_OLD_RESET_METHOD = "config.use_old_reset_method"; //$NON-NLS-1$ + /** TODO: describe config option. */ String CONFIG_CHAT_ENABLED = "config.chat_enabled"; //$NON-NLS-1$ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java index ec1df148..d365b480 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java @@ -27,6 +27,11 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; +/** + * Arena setup helper. + * + * @author instancelabs + */ public class ArenaSetup { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java index 3eab7a13..bccda11e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java @@ -39,6 +39,11 @@ import net.milkbowl.vault.economy.EconomyResponse; +/** + * Classes helper. + * + * @author instancelabs + */ public class Classes { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 0c21560d..8d8c7b79 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -33,19 +33,35 @@ import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Validator; +/** + * Particle/Animation helper. + * + * @author instancelabs + */ public class Effects { /** - * Shows the particles of a redstone block breaking + * Shows the particles of a redstone block breaking, simulating a blood effect. * * @param p + * target player. */ public static void playBloodEffect(final Player p) { p.getWorld().playEffect(p.getLocation().add(0D, 1D, 0D), Effect.STEP_SOUND, 152); } + /** + * Plays an effect by name. + * + * @param a + * arena + * @param l + * target location + * @param effectname + * effect name. + */ public static void playEffect(final Arena a, final Location l, final String effectname) { for (final String p_ : a.getAllPlayers()) @@ -60,11 +76,35 @@ public static void playEffect(final Arena a, final Location l, final String effe } } + /** + * Places a fake bed on the current player position. + * + * @param a + * arena + * @param p + * target player + * @return bukkit task that can be cancelled. + */ public static BukkitTask playFakeBed(final Arena a, final Player p) { return Effects.playFakeBed(a, p, p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ()); } + /** + * Places a fake bed on the given position. + * + * @param a + * arena + * @param p + * target player + * @param x + * x-position + * @param y + * y-position + * @param z + * z-position + * @return bukkit task that can be cancelled. + */ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, final int y, final int z) { try @@ -132,7 +172,19 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, return null; } - public static void setValue(final Object instance, final String fieldName, final Object value) throws Exception + /** + * Sets private object value. + * + * @param instance + * object instance + * @param fieldName + * field name + * @param value + * new value + * @throws Exception + * thrown on problems setting the field. + */ + private static void setValue(final Object instance, final String fieldName, final Object value) throws Exception { final Field field = instance.getClass().getDeclaredField(fieldName); field.setAccessible(true); @@ -169,27 +221,6 @@ public static void playRespawn(final Player p, final JavaPlugin plugin) }, 1L); } - // TODO Unused right now - public void playAura(final Player p, final int cr) - { - final int cradius_s = cr * cr; - final Location start = p.getLocation(); - final int x = start.getBlockX(); - final int y = start.getBlockY(); - final int z = start.getBlockZ(); - for (int x_ = -cr; x_ <= cr; x_++) - { - for (int z_ = -cr; z_ <= cr; z_++) - { - final int t = (x_ * x_) + (z_ * z_); - if (t >= cradius_s && t <= (cradius_s + 90)) - { - p.playEffect(new Location(start.getWorld(), x - x_, y, z - z_), Effect.SMOKE/* todo not present in 1.9: PORTAL */, 5); - } - } - } - } - /** * Plays a title/subtitle * @@ -245,7 +276,7 @@ public static void playTitle(final Player player, final String title, int eindex * Whether to play a moving down animation * @param removeAfterCooldown * Whether to remove the hologram after a few seconds or not - * @return + * @return ids */ public static ArrayList<Integer> playHologram(final Player p, final Location l, final String text, final boolean moveDown, final boolean removeAfterCooldown) { @@ -517,6 +548,14 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, return ret; } + /** + * Sends a game mode change to given player. + * + * @param p + * target player + * @param gamemode + * new game mode. + */ public static void sendGameModeChange(final Player p, final int gamemode) { // NOT_SET(-1, ""), SURVIVAL(0, "survival"), CREATIVE(1, "creative"), ADVENTURE(2, "adventure"), SPECTATOR(3, "spectator"); @@ -527,6 +566,5 @@ public static void sendGameModeChange(final Player p, final int gamemode) } p.setGameMode(GameMode.getByValue(gamemode)); - } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java index 25a9c162..09a3031a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java @@ -19,27 +19,57 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; +/** + * A (temporary) party for group playing with friends. + * + * @author instancelabs + */ public class Party { - String owner; - ArrayList<String> players = new ArrayList<>(); + /** party owner. */ + private String owner; + /** party members. */ + private ArrayList<String> players = new ArrayList<>(); + + /** + * Constructor. + * + * @param owner + * party owner (player name) + */ public Party(final String owner) { this.owner = owner; } + /** + * returns the owner player name + * + * @return player name + */ public String getOwner() { return this.owner; } + /** + * Returns the party members. + * + * @return party members. + */ public ArrayList<String> getPlayers() { return this.players; } + /** + * Adds a players (invite). + * + * @param p + * player to add. + */ public void addPlayer(final String p) { if (!this.players.contains(p)) @@ -50,6 +80,13 @@ public void addPlayer(final String p) this.tellAll(MinigamesAPI.getAPI().partymessages.player_joined_party.replaceAll("<player>", p)); } + /** + * Removes a player. + * + * @param p + * player to remove + * @return {@code true} if the player was contained in the list + */ public boolean removePlayer(final String p) { if (this.players.contains(p)) @@ -66,11 +103,21 @@ public boolean removePlayer(final String p) return false; } + /** + * Checks if a player is present in party list. + * + * @param p + * playeer to be checked. + * @return {@code true} if the player is within the party list. + */ public boolean containsPlayer(final String p) { return this.players.contains(p); } + /** + * Disband/Delete the party. + */ public void disband() { this.tellAll(MinigamesAPI.getAPI().partymessages.party_disbanded); @@ -81,6 +128,12 @@ public void disband() } } + /** + * Internal chat message for all players within the list. + * + * @param msg + * message + */ private void tellAll(final String msg) { for (final String p_ : this.getPlayers()) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java index 048ce031..39a1c6ab 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java @@ -39,59 +39,308 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; +/** + * Internal representation of a minigames plugin. + * + * @author instancelabs + */ public class PluginInstance { + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public HashMap<String, Arena> global_players = new HashMap<>(); + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public HashMap<String, Arena> global_lost = new HashMap<>(); + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public HashMap<String, Arena> global_arcade_spectator = new HashMap<>(); + /** + * The arena listener for this plugin. + */ private ArenaListener arenalistener = null; + + /** + * The arenas configuration (arenas.yml). + */ private ArenasConfig arenasconfig = null; + + /** + * The classes configuration (classes.yml). + */ private ClassesConfig classesconfig = null; + + /** + * The messages configuration (messages.yml). + */ private MessagesConfig messagesconfig = null; + + /** + * The stats configuration (stats.yml). + */ private StatsConfig statsconfig = null; + + /** + * The guns configuration (guns.yml). + */ private GunsConfig gunsconfig = null; + + /** + * The achievements configuration (achievements.yml) + */ private AchievementsConfig achievementsconfig = null; + + /** + * The shops config (shops.yml) + */ private ShopConfig shopconfig = null; + + /** + * The holograms config (holograms.yml) + */ private HologramsConfig hologramsconfig = null; + + /** + * The minigames spigot/java plugin + */ private JavaPlugin plugin = null; + + /** + * The known/loaded arenas. + */ private ArrayList<Arena> arenas = new ArrayList<>(); + + /** + * The classes per player. + */ private final HashMap<String, AClass> pclass = new HashMap<>(); + + /** + * The current configured classes from classes config. + */ private final LinkedHashMap<String, AClass> aclasses = new LinkedHashMap<>(); + + /** + * The configured guns from guns config. + */ private final HashMap<String, Gun> guns = new HashMap<>(); + + /** + * The rewards. + */ private Rewards rew = null; + + /** + * The main sql reference for database support. + */ private MainSQL sql = null; + + /** + * The stats from stats config. + */ private Stats stats = null; + + /** + * The classes gui. + */ private Classes classes = null; + + /** + * The shop gui. + */ private Shop shop = null; + + /** + * The spectator manager for controlling spectators. + */ private SpectatorManager spectatormanager = null; + + /** + * The achivements manager. + */ private ArenaAchievements achievements = null; + + /** + * The holograms manager. + */ private Holograms holograms = null; + + /** + * Flag to enable the achivements gui. + */ private boolean achievement_gui_enabled = false; + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public ArenaScoreboard scoreboardManager; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public ArenaLobbyScoreboard scoreboardLobbyManager; - public ArenaSetup arenaSetup = new ArenaSetup(); - int lobby_countdown = 30; - int ingame_countdown = 10; + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated + public ArenaSetup arenaSetup = new ArenaSetup(); + /** + * Default lobby cooldown in seconds. + * + * <p> + * TODO Allow override in arena config. + * </p> + */ + private int lobby_countdown = 30; + + /** + * Default ingame cooldown in seconds. + * + * <p> + * TODO Allow override in arena config. + * </p> + */ + private int ingame_countdown = 10; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean spectator_move_y_lock = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean use_xp_bar_level = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean blood_effects = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean dead_in_fake_bed_effects = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean spectator_mode_1_8 = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean damage_identifier_effects = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public boolean color_background_wool_of_signs; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated boolean last_man_standing = true; + + /** + * {@code true} for old reset method. + * + * @deprecated will be removed in 1.4.10 + */ + @Deprecated boolean old_reset = false; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public boolean show_classes_without_usage_permission = true; + + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public boolean chat_enabled = true; + /** + * TODO describe field. + * + * @deprecated will be private in 1.5.0; replaced by new methods. + */ + @Deprecated public HashMap<String, ArrayList<String>> cached_sign_states = new HashMap<>(); - public PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, + /** + * Constructor to create a new plugin instance. + * + * @param plugin + * java plugin. + * @param arenasconfig + * arenas config. + * @param messagesconfig + * messages config. + * @param classesconfig + * classes config. + * @param statsconfig + * stats config. + * @param arenas + * loaded arenas. + */ + PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final ArrayList<Arena> arenas) { this.arenasconfig = arenasconfig; @@ -117,11 +366,28 @@ public PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, this.reloadVariables(); } - public PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) + /** + * Constructor to create a new plugin instance. + * + * @param plugin + * java plugin. + * @param arenasconfig + * arenas config. + * @param messagesconfig + * messages config. + * @param classesconfig + * classes config. + * @param statsconfig + * stats config. + */ + PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) { this(plugin, arenasconfig, messagesconfig, classesconfig, statsconfig, new ArrayList<Arena>()); } + /** + * Reloads variables from plugins config.yml and caches sign states. + */ public void reloadVariables() { this.lobby_countdown = this.plugin.getConfig().getInt(ArenaConfigStrings.CONFIG_LOBBY_COUNTDOWN) + 1; @@ -135,6 +401,10 @@ public void reloadVariables() this.spectator_mode_1_8 = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_EFFECTS_1_8_SPECTATOR_MODE); this.last_man_standing = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_LAST_MAN_STANDING_WINS); this.old_reset = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_OLD_RESET_METHOD); + if (this.old_reset) + { + this.plugin.getLogger().severe("SEVERE! The old reset method will be removed in next version! Check if your arenas work with smart reset."); //$NON-NLS-1$ + } this.show_classes_without_usage_permission = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SHOW_CLASSES_WITHOUT_PERM); this.chat_enabled = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_CHAT_ENABLED); @@ -149,177 +419,376 @@ public void reloadVariables() } + /** + * Returns the minigames java plugin. + * + * @return java plugin of this minigame. + */ public JavaPlugin getPlugin() { return this.plugin; } + /** + * Returns the known classes. + * + * @return known classes map. + * @deprecated method signature will change to java.util.Map; will return a read-only map; manipulation is done by a new method if needed + */ + @Deprecated public HashMap<String, AClass> getAClasses() { return this.aclasses; } + /** + * Returns the classes per player map. + * + * @return classes per players. + * @deprecated method signature will change to java.util.Map; will return a read-only map; manipulation is done by a new method if needed + */ + @Deprecated public HashMap<String, AClass> getPClasses() { return this.pclass; } + /** + * Adds/Sets a new class. + * + * @param name + * class name + * @param a + * class + */ public void addAClass(final String name, final AClass a) { this.aclasses.put(name, a); } + /** + * Sets a class for given player + * + * @param player + * player name + * @param a + * class + */ public void setPClass(final String player, final AClass a) { this.pclass.put(player, a); } + /** + * Returns all guns. + * + * @return guns of this minigame. + * @deprecated method signature will change to java.util.Map; will return a read-only map; manipulation is done by a new method if needed + */ + @Deprecated public HashMap<String, Gun> getAllGuns() { return this.guns; } + /** + * Adds/Sets a new gun. + * + * @param name + * gun name + * @param g + * gun + */ public void addGun(final String name, final Gun g) { this.guns.put(name, g); } + /** + * Returns the arenas config. + * + * @return arenas config. + */ public ArenasConfig getArenasConfig() { return this.arenasconfig; } + /** + * Returns the messages config. + * + * @return messages config. + */ public MessagesConfig getMessagesConfig() { return this.messagesconfig; } + /** + * Returns the classes config. + * + * @return classes config + */ public ClassesConfig getClassesConfig() { return this.classesconfig; } + /** + * Returns the stats config. + * + * @return stats config + */ public StatsConfig getStatsConfig() { return this.statsconfig; } + /** + * Returns the guns config + * + * @return guns config. + */ public GunsConfig getGunsConfig() { return this.gunsconfig; } + /** + * Returns the achievement config + * + * @return achievement config + */ public AchievementsConfig getAchievementsConfig() { return this.achievementsconfig; } + /** + * Returns the shop config. + * + * @return shop config. + */ public ShopConfig getShopConfig() { return this.shopconfig; } + /** + * Sets the shop config. + * + * @param shopconfig + * new shop config. + */ public void setShopConfig(final ShopConfig shopconfig) { this.shopconfig = shopconfig; } + /** + * Returns the holograms config. + * + * @return holograms config. + */ public HologramsConfig getHologramsConfig() { return this.hologramsconfig; } + /** + * Returns the reward instance. + * + * @return rewards. + */ public Rewards getRewardsInstance() { return this.rew; } + /** + * Sets the reward instance. + * + * @param r + * rewards to be used. + */ public void setRewardsInstance(final Rewards r) { this.rew = r; } + /** + * Returns the main sql instance for database support. + * + * @return database support. + */ public MainSQL getSQLInstance() { return this.sql; } + /** + * Returns the stats instance. + * + * @return stats instance. + */ public Stats getStatsInstance() { return this.stats; } + /** + * The arena listener. + * + * @return arena listener. + */ public ArenaListener getArenaListener() { return this.arenalistener; } + /** + * Sets the arena listener. + * + * @param al + * new custom arena listener. + */ public void setArenaListener(final ArenaListener al) { this.arenalistener = al; } + /** + * Returns the classes manager. + * + * @return classes manager. + */ public Classes getClassesHandler() { return this.classes; } + /** + * Sets the classes manager. + * + * @param c + * classes manager. + */ public void setClassesHandler(final Classes c) { this.classes = c; } + /** + * Returns the shop handler. + * + * @return shop handler. + */ public Shop getShopHandler() { return this.shop; } + /** + * Returns the spectator manager. + * + * @return spectator manager. + */ public SpectatorManager getSpectatorManager() { return this.spectatormanager; } + /** + * Sets the spectator manager. + * + * @param s + * spectator manager. + */ public void setSpectatorManager(final SpectatorManager s) { this.spectatormanager = s; } + /** + * Returns the arena achievements. + * + * @return arena achievments. + */ public ArenaAchievements getArenaAchievements() { return this.achievements; } + /** + * Returns the holograms handler. + * + * @return holograms handler. + */ public Holograms getHologramsHandler() { return this.holograms; } + /** + * Returns the ingame cooldown + * + * @return ingame cooldown + */ public int getIngameCountdown() { return this.ingame_countdown; } + /** + * Returns the lobby cooldown + * + * @return lobby cooldown + */ public int getLobbyCountdown() { return this.lobby_countdown; } + /** + * Returns the arenas. + * + * @return arenas + * @deprecated will be changed in 1.5.0; returning list interface and returning a read-only copy + */ public ArrayList<Arena> getArenas() { return this.arenas; } + /** + * Clears the arena list + */ public void clearArenas() { this.arenas.clear(); } + /** + * Adds a new arena + * + * @param arena + * @return new arena list + * @deprecated will be changed in 1.5.0; returning list interface and returning a read-only copy + */ + @Deprecated public ArrayList<Arena> addArena(final Arena arena) { this.arenas.add(arena); return this.getArenas(); } + /** + * Returns arena by given name + * + * @param arenaname + * name of the arena to be searched for + * @return arena or {@code null} if the arena does not exist. + */ public Arena getArenaByName(final String arenaname) { for (final Arena a : this.getArenas()) @@ -332,6 +801,13 @@ public Arena getArenaByName(final String arenaname) return null; } + /** + * Removes arena by name. + * + * @param arenaname + * name of the arena to be removed + * @return removed arena or {@code null} if the arena does not exist. + */ public Arena removeArenaByName(final String arenaname) { Arena torem = null; @@ -349,6 +825,13 @@ public Arena removeArenaByName(final String arenaname) return null; } + /** + * Remove arena by instance. + * + * @param arena + * arena to be removed + * @return {@code true} if the arena was caontained in the list + */ public boolean removeArena(final Arena arena) { if (this.arenas.contains(arena)) @@ -359,21 +842,95 @@ public boolean removeArena(final Arena arena) return false; } + /** + * Adds given list of arenas + * + * @param arenas + * arenas to add. + * @deprecated will be removed in 1.5.0; replaced by setArenas and addArenas + */ + @Deprecated public void addLoadedArenas(final ArrayList<Arena> arenas) { this.arenas = arenas; } + /** + * Adds given list of arenas + * + * @param arenaList + * arenas to add. + */ + public void addArenas(final Iterable<Arena> arenaList) + { + for (final Arena arena : arenaList) + { + this.arenas.add(arena); + } + } + + /** + * Adds given list of arenas + * + * @param arenaList + * arenas to add. + */ + public void addArenas(final Arena... arenaList) + { + for (final Arena arena : arenaList) + { + this.arenas.add(arena); + } + } + + /** + * Replaces the arenas with given list of arenas + * + * @param arenaList + * arenas to set. + */ + public void setArenas(final Iterable<Arena> arenaList) + { + this.clearArenas(); + this.addArenas(arenaList); + } + + /** + * Replaces the arenas with given list of arenas + * + * @param arenaList + * arenas to set. + */ + public void setArenas(final Arena... arenaList) + { + this.clearArenas(); + this.addArenas(arenaList); + } + + /** + * Returns the achievement gui flag. + * + * @return achievement gui flag. + */ public boolean isAchievementGuiEnabled() { return this.achievement_gui_enabled; } + /** + * Sets the achievement gui flag + * + * @param achievement_gui_enabled + * achievement gui flag. + */ public void setAchievementGuiEnabled(final boolean achievement_gui_enabled) { this.achievement_gui_enabled = achievement_gui_enabled; } + /** + * Reloads all existing arenas. + */ public void reloadAllArenas() { for (final Arena a : this.getArenas()) @@ -393,6 +950,12 @@ public void reloadAllArenas() } } + /** + * Reload arena by name + * + * @param arenaname + * arena to be reloaded + */ public void reloadArena(final String arenaname) { if (Validator.isArenaValid(this.plugin, arenaname)) @@ -408,16 +971,37 @@ public void reloadArena(final String arenaname) } } + /** + * Checks if the player is contained in given arena. + * + * @param playername + * player name. + * @return {@code true} if the player is contained in arena. + */ public boolean containsGlobalPlayer(final String playername) { return this.global_players.containsKey(playername); } + /** + * Checks if the player already lost. + * + * @param playername + * player name + * @return {@code true} if the player already lost. + */ public boolean containsGlobalLost(final String playername) { return this.global_lost.containsKey(playername); } + /** + * Returns the arena by player name. + * + * @param playername + * player to be searched for. + * @return arena or {@code null} if the player is not present in any arena. + */ public Arena getArenaByGlobalPlayer(final String playername) { if (this.containsGlobalPlayer(playername)) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java index 84a043e2..8a9c92c2 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.nio.channels.ClosedChannelException; import java.util.ArrayList; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -44,15 +45,23 @@ public class PrivateUtil { + /** + * Old arena regeneration, developed by instancelabs + * @param plugin + * @param arena + * @deprecated will be removed in 1.4.10 + */ + @Deprecated public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena arena) { + @SuppressWarnings("unused") int failcount = 0; final ArrayList<ArenaBlock> failedblocks = new ArrayList<>(); - final File f = new File(plugin.getDataFolder() + "/" + arena.getInternalName()); + final File f = new File(plugin.getDataFolder() + "/" + arena.getInternalName()); //$NON-NLS-1$ if (!f.exists()) { - plugin.getLogger().warning("Could not find arena file for " + arena.getInternalName()); + plugin.getLogger().warning("Could not find arena file for " + arena.getInternalName()); //$NON-NLS-1$ arena.setArenaState(ArenaState.JOIN); Bukkit.getScheduler().runTask(plugin, () -> Util.updateSign(plugin, arena)); return; @@ -64,9 +73,10 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar fis = new FileInputStream(f); ois = new BukkitObjectInputStream(fis); } - catch (final IOException e) + catch (final IOException ex) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Something is wrong with your arena file and the reset might not be successful. Also, you're using an outdated reset method.", ex); //$NON-NLS-1$ + return; } try @@ -78,16 +88,16 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar { b = ois.readObject(); } - catch (final EOFException e) + catch (@SuppressWarnings("unused") final EOFException ex) { - MinigamesAPI.getAPI().getLogger().info("Finished restoring map for " + arena.getInternalName() + " with old reset method."); + MinigamesAPI.getAPI().getLogger().info("Finished restoring map for " + arena.getInternalName() + " with old reset method."); //$NON-NLS-1$//$NON-NLS-2$ arena.setArenaState(ArenaState.JOIN); Bukkit.getScheduler().runTask(plugin, () -> Util.updateSign(plugin, arena)); } - catch (final ClosedChannelException e) + catch (final ClosedChannelException ex) { - System.out.println("Something is wrong with your arena file and the reset might not be successful. Also, you're using an outdated reset method."); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Something is wrong with your arena file and the reset might not be successful. Also, you're using an outdated reset method.", ex); //$NON-NLS-1$ } catch (final Exception e) { @@ -113,7 +123,7 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar ((Chest) b_.getState()).update(); } } - catch (final IllegalStateException e) + catch (@SuppressWarnings("unused") final IllegalStateException ex) { failcount += 1; failedblocks.add(ablock); @@ -156,9 +166,7 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar } } }, 40L); - MinigamesAPI.getAPI().getLogger().info("Successfully finished!"); - - return; + MinigamesAPI.getAPI().getLogger().info("Successfully finished!"); //$NON-NLS-1$ } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index 911913a4..af93d391 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -24,27 +24,53 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; +/** + * Rewards helper for minigames. + * + * @author instancelabs + */ public class Rewards { + /** minigame java plugin. */ private JavaPlugin plugin = null; + /** {@code true} for activated economy rewards. */ private boolean economyrewards; + /** {@code true} for activated item rewards. */ private boolean itemrewards; + /** {@code true} for activated command rewards. */ private boolean commandrewards; + /** {@code true} for activated kill economy rewards. */ private boolean kill_economyrewards; + /** {@code true} for activated kill command rewards. */ private boolean kill_commandrewards; + /** {@code true} for activated participation economy rewards. */ private boolean participation_economyrewards; + /** {@code true} for activated participation command rewards. */ private boolean participation_commandrewards; + /** money to give for winning. */ private int econ_reward = 0; + /** money to give per kill. */ private int kill_econ_reward = 0; + /** money to give for participation. */ private int participation_econ_reward = 0; - private String command = ""; - private String kill_command = ""; - private String participation_command = ""; + /** command to execute for winning. */ + private String command = ""; //$NON-NLS-1$ + /** command to execute per kill. */ + private String kill_command = ""; //$NON-NLS-1$ + /** command to execute for participation. */ + private String participation_command = ""; //$NON-NLS-1$ + /** items to reward for winning. */ private ItemStack[] items = null; + /** + * Constructor to create a rewards helper. + * + * @param plugin + * minigame java plugin. + */ public Rewards(final JavaPlugin plugin) { this.plugin = plugin; @@ -58,6 +84,9 @@ public Rewards(final JavaPlugin plugin) } } + /** + * Reload variables from config. + */ public void reloadVariables() { this.economyrewards = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_REWARDS_ECONOMY); @@ -91,6 +120,13 @@ public void giveRewardsToWinners(final Arena arena) } } + /** + * Give reward for given player. + * + * @param p_ + * player name + * @deprecated will be removed in 1.5.0 + */ @Deprecated public void giveReward(final String p_) { @@ -139,6 +175,15 @@ public void giveKillReward(final String p_) } } + /** + * Give a player a kill reward + * + * @param p_ + * Playername + * @param reward + * Amount of statistics points the player gets; will be ignored + * @deprecated will be removed in 1.5.0; replaced by {@link #giveKillReward(String)} + */ @Deprecated public void giveKillReward(final String p_, final int reward) { @@ -152,14 +197,14 @@ public void giveKillReward(final String p_, final int reward) * Playername * @param econ * Whether economy rewards are enabled - * @param command + * @param isCommand * Whether command rewards are enabled * @param money_reward * Amount of money to reward if economy rewards are enabled * @param cmd * Command to execute if command rewards are enabled */ - public void giveAchievementReward(final String p_, final boolean econ, final boolean command, final int money_reward, final String cmd) + public void giveAchievementReward(final String p_, final boolean econ, final boolean isCommand, final int money_reward, final String cmd) { if (Validator.isPlayerOnline(p_)) { @@ -170,19 +215,36 @@ public void giveAchievementReward(final String p_, final boolean econ, final boo MinigamesAPI.getAPI(); MinigamesAPI.econ.depositPlayer(p.getName(), money_reward); } - if (command) + if (isCommand) { Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd.replaceAll("<player>", p_)); } } } - public void giveWinReward(final String p_, final Arena a) + /** + * Give win rewards to given player + * + * @param p_ + * player name + * @param a + * Arena + */ + private void giveWinReward(final String p_, final Arena a) { this.giveWinReward(p_, a, 1); } - public void giveWinReward(final String p_, final Arena a, final int global_multiplier) + /** + * Give all win rewards to players who won the game + * + * @param p_ + * player name + * @param a + * Arena + * @param global_multiplier + */ + private void giveWinReward(final String p_, final Arena a, final int global_multiplier) { this.giveWinReward(p_, a, a.getAllPlayers(), global_multiplier); } @@ -305,7 +367,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String } if (this.participation_commandrewards) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), this.command.replaceAll("<player>", p_)); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), this.participation_command.replaceAll("<player>", p_)); } if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SPAWN_FIREWORKS_FOR_WINNERS)) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java index 4797b0b0..68ab493e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Shop.java @@ -31,6 +31,11 @@ import net.milkbowl.vault.economy.EconomyResponse; +/** + * The shop gui. + * + * @author instancelabs + */ public class Shop { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 45e18210..2e144c92 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -47,6 +47,11 @@ import com.comze_instancelabs.minigamesapi.util.SmartArenaBlock; import com.comze_instancelabs.minigamesapi.util.Util; +/** + * The smart reset for resetting an arena to original state. + * + * @author instancelabs + */ public class SmartReset implements Runnable { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java index 055b931e..91ce589e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java @@ -31,6 +31,11 @@ import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; +/** + * Spectator manager. + * + * @author instancelabs + */ public class SpectatorManager { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java index 0c4ea1b0..e1658714 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java @@ -35,6 +35,11 @@ import com.comze_instancelabs.minigamesapi.config.StatsConfig; import com.comze_instancelabs.minigamesapi.util.Util.ValueComparator; +/** + * Statistics helper. + * + * @author instancelabs + */ public class Stats { From 02391809e8be932dce28a32b3753f5c9b2fd8ff5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 3 Jul 2016 10:52:55 +0200 Subject: [PATCH 025/266] junit tests --- API/pom.xml | 43 ++ .../minigamesapi/MinecraftVersionsType.java | 15 +- .../minigamesapi/test/ArenaLoggerTest.java | 628 ++++++++++++++++++ .../minigamesapi/test/ArenaPlayerTest.java | 235 +++++++ .../minigamesapi/test/VersionTypeTest.java | 335 ++++++++++ .../minigamesapi/testutil/ArgUtil.java | 71 ++ pom.xml | 20 + 7 files changed, 1346 insertions(+), 1 deletion(-) create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaPlayerTest.java create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java diff --git a/API/pom.xml b/API/pom.xml index 119550a9..9daf7446 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -27,6 +27,19 @@ <groupId>com.shampaggon.crackshot</groupId> <artifactId>Crackshot</artifactId> </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> </dependencies> <build> @@ -89,6 +102,36 @@ </execution> </executions> </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + </execution> + <execution> + <id>default-report</id> + <phase>prepare-package</phase> + <goals><goal>report</goal></goals> + </execution> + <execution> + <id>default-check</id> + <goals><goal>check</goal></goals> + <configuration> + <rules> + </rules> + </configuration> + </execution> + <execution> + <id>jacoco-site</id> + <phase>verify</phase> + <goals><goal>report</goal></goals> + </execution> + </executions> + </plugin> </plugins> </build> diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 13e25f16..450f937a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -114,7 +114,20 @@ public boolean isEqual(final MinecraftVersionsType type) return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; //$CASES-OMITTED$ default: - return type == this; + switch (type) + { + case V1_10: + return this == V1_10 || this == V1_10_R1; + case V1_7: + return this == V1_7 || this == V1_7_R1 || this == V1_7_R2 || this == V1_7_R3 || this == V1_7_R4; + case V1_8: + return this == V1_8 || this == V1_8_R1 || this == V1_8_R2; + case V1_9: + return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; + //$CASES-OMITTED$ + default: + return type == this; + } } } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java new file mode 100644 index 00000000..232418aa --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java @@ -0,0 +1,628 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static com.comze_instancelabs.minigamesapi.testutil.ArgUtil.argEquals; +import static com.comze_instancelabs.minigamesapi.testutil.ArgUtil.argSupplier; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.argThat; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +import org.junit.Test; +import org.mockito.ArgumentMatcher; + +import com.comze_instancelabs.minigamesapi.ArenaLogger; + +/** + * Test class for the arena logger. + * + * @author mepeisen + * @see ArenaLogger + */ +public class ArenaLoggerTest +{ + + /** arena name */ + private static final String ARENA = "ARENA"; //$NON-NLS-1$ + /** some message */ + private static final String MESSAGE = "SOME-MESSAGE"; //$NON-NLS-1$ + /** resulting message */ + private static final String RESULT = "[arena:" + ARENA + "] " + MESSAGE; //$NON-NLS-1$ //$NON-NLS-2$ + /** resulting message */ + private static final String RESULT_ENTRY = "[arena:" + ARENA + "] ENTRY"; //$NON-NLS-1$ //$NON-NLS-2$ + /** resulting message */ + private static final String RESULT_RETURN = "[arena:" + ARENA + "] RETURN"; //$NON-NLS-1$ //$NON-NLS-2$ + /** resulting message */ + private static final String RESULT_THROW = "[arena:" + ARENA + "] RETURN"; //$NON-NLS-1$ //$NON-NLS-2$ + /** source class for logp */ + static final String SOURCE_CLASS = ArenaLoggerTest.class.getName(); + /** source method for logp */ + static final String SOURCE_METHOD = "someMethod"; //$NON-NLS-1$ + + /** + * Tests log method + */ + @Test + public void testSevere() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.severe(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.SEVERE, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testSevereLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.severe(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.SEVERE), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testWarning() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.warning(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.WARNING, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testWarningLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.warning(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.WARNING), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testInfo() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.info(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.INFO, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testInfoLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.info(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.INFO), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testConfig() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.config(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.CONFIG, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testConfigLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.config(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.CONFIG), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testFine() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.fine(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.FINE, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testFineLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.fine(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.FINE), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testFiner() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.finer(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.FINER, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testFinerLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.finer(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.FINER), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testFinest() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.finest(MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.FINEST, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testFinestLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.finest(() -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.FINEST), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testLog() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.log(Level.FINEST, MESSAGE); + + // epilog + verify(logger, times(1)).log(Level.FINEST, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testLogLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.log(Level.FINEST, () -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.FINEST), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testLog2() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object someObject = new Object(); + arenaLogger.log(Level.FINEST, MESSAGE, someObject); + + // epilog + verify(logger, times(1)).log(Level.FINEST, RESULT, someObject); + } + + /** + * Tests log method + */ + @Test + public void testLog3() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object[] someObject = new Object[]{}; + arenaLogger.log(Level.FINEST, MESSAGE, someObject); + + // epilog + verify(logger, times(1)).log(Level.FINEST, RESULT, someObject); + } + + /** + * Tests log method + */ + @Test + public void testLog4() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Throwable someObject = new Exception(); + arenaLogger.log(Level.FINEST, MESSAGE, someObject); + + // epilog + verify(logger, times(1)).log(Level.FINEST, RESULT, someObject); + } + + /** + * Tests log method + */ + @Test + public void testLog4Lambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Throwable someObject = new Exception(); + arenaLogger.log(Level.FINEST, someObject, () -> MESSAGE); + + // epilog + verify(logger, times(1)).log(argEquals(Level.FINEST), argEquals(someObject), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testLogp() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, MESSAGE); + + // epilog + verify(logger, times(1)).logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, RESULT); + } + + /** + * Tests log method + */ + @Test + public void testLogpLambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, () -> MESSAGE); + + // epilog + verify(logger, times(1)).logp(argEquals(Level.FINEST), argEquals(SOURCE_CLASS), argEquals(SOURCE_METHOD), argSupplier(RESULT)); + } + + /** + * Tests log method + */ + @Test + public void testLogp2() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object someObject = new Object(); + arenaLogger.logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, MESSAGE, someObject); + + // epilog + verify(logger, times(1)).logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, RESULT, someObject); + } + + /** + * Tests log method + */ + @Test + public void testLogp3() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object[] someObject = new Object[]{}; + arenaLogger.logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, MESSAGE, someObject); + + // epilog + verify(logger, times(1)).logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, RESULT, someObject); + } + + /** + * Tests log method + */ + @Test + public void testLogp4() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Throwable someObject = new Exception(); + arenaLogger.logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, MESSAGE, someObject); + + // epilog + verify(logger, times(1)).logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, RESULT, someObject); + } + + /** + * Tests log method + */ + @Test + public void testLogp4Lambda() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Throwable someObject = new Exception(); + arenaLogger.logp(Level.FINEST, SOURCE_CLASS, SOURCE_METHOD, someObject, () -> MESSAGE); + + // epilog + verify(logger, times(1)).logp(argEquals(Level.FINEST), argEquals(SOURCE_CLASS), argEquals(SOURCE_METHOD), argEquals(someObject), argSupplier(RESULT)); + } + + /** + * Tests entering method + */ + @Test + public void testEntering() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.entering(SOURCE_CLASS, SOURCE_METHOD); + + // epilog + verify(logger, times(1)).logp(Level.FINER, SOURCE_CLASS, SOURCE_METHOD, RESULT_ENTRY); + } + + /** + * Tests entering method + */ + @Test + public void testEntering2() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object someObject = new Object(); + arenaLogger.entering(SOURCE_CLASS, SOURCE_METHOD, someObject); + + // epilog + verify(logger, times(1)).logp(Level.FINER, SOURCE_CLASS, SOURCE_METHOD, RESULT_ENTRY + " {0}", someObject); //$NON-NLS-1$ + } + + /** + * Tests entering method + */ + @Test + public void testEntering3() + { + // prolog + final Logger logger = mock(Logger.class); + when(logger.isLoggable(any())).thenReturn(Boolean.TRUE); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object[] someObject = new Object[]{new Object(), new Object()}; + arenaLogger.entering(SOURCE_CLASS, SOURCE_METHOD, someObject); + + // epilog + verify(logger, times(1)).logp(Level.FINER, SOURCE_CLASS, SOURCE_METHOD, RESULT_ENTRY + " {0} {1}", someObject); //$NON-NLS-1$ + } + + /** + * Tests exiting method + */ + @Test + public void testExiting() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + arenaLogger.exiting(SOURCE_CLASS, SOURCE_METHOD); + + // epilog + verify(logger, times(1)).logp(Level.FINER, SOURCE_CLASS, SOURCE_METHOD, RESULT_RETURN); + } + + /** + * Tests exiting method + */ + @Test + public void testExiting2() + { + // prolog + final Logger logger = mock(Logger.class); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Object someObject = new Object(); + arenaLogger.exiting(SOURCE_CLASS, SOURCE_METHOD, someObject); + + // epilog + verify(logger, times(1)).logp(Level.FINER, SOURCE_CLASS, SOURCE_METHOD, RESULT_RETURN + " {0}", someObject); //$NON-NLS-1$ + } + + /** + * Tests throwing method + */ + @Test + public void testThrowing() + { + // prolog + final Logger logger = mock(Logger.class); + when(logger.isLoggable(any())).thenReturn(Boolean.TRUE); + + // test + final ArenaLogger arenaLogger = new ArenaLogger(logger, ARENA); + final Throwable someObject = new Exception(); + arenaLogger.throwing(SOURCE_CLASS, SOURCE_METHOD, someObject); + + // epilog + verify(logger, times(1)).log(argThat(new ArgumentMatcher<LogRecord>() { + + @Override + public boolean matches(Object argument) + { + final LogRecord lr = (LogRecord) argument; + return lr.getSourceClassName().equals(SOURCE_CLASS) && lr.getSourceMethodName().equals(SOURCE_METHOD) && lr.getThrown().equals(someObject) && Level.FINER == lr.getLevel() && RESULT_THROW.equals(lr.getMessage()); + } + })); + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaPlayerTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaPlayerTest.java new file mode 100644 index 00000000..90002b34 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaPlayerTest.java @@ -0,0 +1,235 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.mockStatic; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaPlayer; +import com.comze_instancelabs.minigamesapi.util.AClass; + +/** + * Test case for the arena player class. + * + * @author mepeisen + * @see ArenaPlayer + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest(Bukkit.class) +public class ArenaPlayerTest +{ + + /** + * tests if the player instances are created as needed. + */ + @Test + public void testCreatePlayerInstance() + { + // prolog + final String name = "ArenaPlayerTest#testCreatePlayerInstance"; //$NON-NLS-1$ + + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertEquals(name, arenaPlayer.getPlayer().getName()); + } + + /** + * tests if the player instances are returned when already known. + */ + @Test + public void testCreatePlayerInstanceTwice() + { + // prolog + final String name = "ArenaPlayerTest#testCreatePlayerInstanceTwice"; //$NON-NLS-1$ + + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer1 = ArenaPlayer.getPlayerInstance(name); + final ArenaPlayer arenaPlayer2 = ArenaPlayer.getPlayerInstance(name); + assertSame(arenaPlayer1, arenaPlayer2); + } + + /** + * tests the inventory setting + */ + @Test + public void testInventories() + { + // prolog + final String name = "ArenaPlayerTest#testInventories"; //$NON-NLS-1$ + + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertNull(arenaPlayer.getInventory()); + assertNull(arenaPlayer.getArmorInventory()); + + final ItemStack[] inv = new ItemStack[]{new ItemStack(Material.AIR, 1)}; + final ItemStack[] armor_inv = new ItemStack[]{new ItemStack(Material.STONE, 1), new ItemStack(Material.WOOD, 1)}; + arenaPlayer.setInventories(inv, armor_inv); + + assertArrayEquals(inv, arenaPlayer.getInventory()); + assertArrayEquals(armor_inv, arenaPlayer.getArmorInventory()); + } + + /** + * tests the original gamemode setting + */ + @Test + public void testOriginalGamemode() + { + // prolog + final String name = "ArenaPlayerTest#testOriginalGamemode"; //$NON-NLS-1$ + + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertEquals(GameMode.SURVIVAL, arenaPlayer.getOriginalGamemode()); + arenaPlayer.setOriginalGamemode(GameMode.CREATIVE); + assertEquals(GameMode.CREATIVE, arenaPlayer.getOriginalGamemode()); + } + + /** + * tests the original xp level + */ + @Test + public void testOriginalXpLevel() + { + // prolog + final String name = "ArenaPlayerTest#testOriginalXpLevel"; //$NON-NLS-1$ + + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertEquals(0, arenaPlayer.getOriginalXplvl()); + arenaPlayer.setOriginalXplvl(100); + assertEquals(100, arenaPlayer.getOriginalXplvl()); + } + + /** + * tests the no reward flag + */ + @Test + public void testNoReward() + { + // prolog + final String name = "ArenaPlayerTest#testNoReward"; //$NON-NLS-1$ + + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertFalse(arenaPlayer.isNoReward()); + arenaPlayer.setNoReward(true); + assertTrue(arenaPlayer.isNoReward()); + } + + /** + * tests the arena field + */ + @Test + public void testArena() + { + // prolog + final String name = "ArenaPlayerTest#testArena"; //$NON-NLS-1$ + + final Arena arena = mock(Arena.class); + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertNull(arenaPlayer.getCurrentArena()); + arenaPlayer.setCurrentArena(arena); + assertSame(arena, arenaPlayer.getCurrentArena()); + } + + /** + * tests the class field + */ + @Test + public void testClass() + { + // prolog + final String name = "ArenaPlayerTest#testArena"; //$NON-NLS-1$ + + final AClass clazz = mock(AClass.class); + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(anyString())).thenReturn(player); + + // test + final ArenaPlayer arenaPlayer = ArenaPlayer.getPlayerInstance(name); + assertNull(arenaPlayer.getCurrentClass()); + arenaPlayer.setCurrentClass(clazz); + assertSame(clazz, arenaPlayer.getCurrentClass()); + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java new file mode 100644 index 00000000..46507535 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java @@ -0,0 +1,335 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.comze_instancelabs.minigamesapi.MinecraftVersionsType; + +/** + * Test for the version types. + * + * @author mepeisen + * @see MinecraftVersionsType + */ +public class VersionTypeTest +{ + + /** + * tests the ordinal values. + */ + @Test + public void testOrdinals() + { + assertEquals(0, MinecraftVersionsType.Unknown.ordinal()); + assertEquals(1, MinecraftVersionsType.V1_7.ordinal()); + assertEquals(2, MinecraftVersionsType.V1_7_R1.ordinal()); + assertEquals(3, MinecraftVersionsType.V1_7_R2.ordinal()); + assertEquals(4, MinecraftVersionsType.V1_7_R3.ordinal()); + assertEquals(5, MinecraftVersionsType.V1_7_R4.ordinal()); + assertEquals(6, MinecraftVersionsType.V1_8.ordinal()); + assertEquals(7, MinecraftVersionsType.V1_8_R1.ordinal()); + assertEquals(8, MinecraftVersionsType.V1_8_R2.ordinal()); + assertEquals(9, MinecraftVersionsType.V1_9.ordinal()); + assertEquals(10, MinecraftVersionsType.V1_9_R1.ordinal()); + assertEquals(11, MinecraftVersionsType.V1_9_R2.ordinal()); + assertEquals(12, MinecraftVersionsType.V1_10.ordinal()); + assertEquals(13, MinecraftVersionsType.V1_10_R1.ordinal()); + } + + /** + * Tests the supported flags. + */ + @Test + public void testSupported() + { + assertFalse(MinecraftVersionsType.Unknown.isSupported()); + assertTrue(MinecraftVersionsType.V1_7.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R1.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R2.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R3.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R4.isSupported()); + assertTrue(MinecraftVersionsType.V1_8.isSupported()); + assertTrue(MinecraftVersionsType.V1_8_R1.isSupported()); + assertTrue(MinecraftVersionsType.V1_8_R2.isSupported()); + assertTrue(MinecraftVersionsType.V1_9.isSupported()); + assertTrue(MinecraftVersionsType.V1_9_R1.isSupported()); + assertTrue(MinecraftVersionsType.V1_9_R2.isSupported()); + assertTrue(MinecraftVersionsType.V1_10.isSupported()); + assertTrue(MinecraftVersionsType.V1_10_R1.isSupported()); + } + + /** + * tests the isEqual method + */ + @Test + public void testEquals() + { + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R2.isEqual(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7_R2.isEqual(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R3.isEqual(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7_R3.isEqual(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_7)); + + assertTrue(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R1.isEqual(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8_R1.isEqual(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.V1_8)); + + assertTrue(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.V1_9)); + assertTrue(MinecraftVersionsType.V1_9_R2.isEqual(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R2.isEqual(MinecraftVersionsType.V1_9)); + + assertTrue(MinecraftVersionsType.V1_10.isEqual(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_10)); + + assertTrue(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.Unknown)); + + assertFalse(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_10_R1)); + + assertFalse(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_9_R2)); + } + + /** + * tests the isBelow method + */ + @Test + public void testIsBelow() + { + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R2.isBelow(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R2.isBelow(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R3.isBelow(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7_R3.isBelow(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_7)); + + assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R1.isBelow(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8_R1.isBelow(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.V1_8)); + + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.V1_9_R2.isBelow(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R2.isBelow(MinecraftVersionsType.V1_9)); + + assertFalse(MinecraftVersionsType.V1_10.isBelow(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_10)); + + assertFalse(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.Unknown)); + + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_9)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_10)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_10_R1)); + + assertTrue(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_10)); + assertTrue(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_9_R2)); + } + + /** + * tests the isAfter method + */ + @Test + public void testIsAfter() + { + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R2.isAfter(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R2.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R3.isAfter(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7_R3.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_7)); + + assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R1.isAfter(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8_R1.isAfter(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.V1_8)); + + assertFalse(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.V1_9_R2.isAfter(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R2.isAfter(MinecraftVersionsType.V1_9)); + + assertFalse(MinecraftVersionsType.V1_10.isAfter(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_10)); + + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.Unknown)); + + assertTrue(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_10_R1)); + + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_9_R2)); + } + + /** + * tests the isAtLeast method + */ + @Test + public void testIsAtLeast() + { + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R2.isAtLeast(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7_R2.isAtLeast(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R3.isAtLeast(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7_R3.isAtLeast(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_7)); + + assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R1.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8_R1.isAtLeast(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.V1_8)); + + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.V1_9)); + assertTrue(MinecraftVersionsType.V1_9_R2.isAtLeast(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R2.isAtLeast(MinecraftVersionsType.V1_9)); + + assertTrue(MinecraftVersionsType.V1_10.isAtLeast(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_10)); + + assertTrue(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.Unknown)); + + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_10_R1)); + + assertFalse(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_9_R2)); + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java new file mode 100644 index 00000000..45d362b8 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java @@ -0,0 +1,71 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.testutil; + +import static org.mockito.Matchers.argThat; + +import java.util.function.Supplier; + +import org.mockito.ArgumentMatcher; + +/** + * @author mepeisen + * + */ +public class ArgUtil +{ + + /** + * Returns a argument matcher that matches a value argument + * @param expected expected value + * @return matcher + */ + public static <T> T argEquals(T expected) + { + return argThat(new ArgumentMatcher<T>() { + + @Override + public boolean matches(Object argument) + { + @SuppressWarnings("unchecked") + final T actual = (T) argument; + return expected.equals(actual); + } + + }); + } + + /** + * Returns a argument matcher that matches a lambda supplier argument + * @param expected expected value returned by supplier + * @return matcher + */ + public static <T> Supplier<T> argSupplier(T expected) + { + return argThat(new ArgumentMatcher<Supplier<T>>() { + + @Override + public boolean matches(Object argument) + { + @SuppressWarnings("unchecked") + final T actual = ((Supplier<T>) argument).get(); + return expected.equals(actual); + } + + }); + } + +} diff --git a/pom.xml b/pom.xml index eb694bd1..72bdbf06 100644 --- a/pom.xml +++ b/pom.xml @@ -11,6 +11,7 @@ <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> + <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> <minigames.releaseversion>1.14.9</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> @@ -63,6 +64,25 @@ <version>0.98.5</version> <scope>provided</scope> </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + <version>${powermock.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + <version>${powermock.version}</version> + <scope>test</scope> + </dependency> </dependencies> </dependencyManagement> From 875bbb13a5ea2576029bf3fb5a2b185063607298 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 3 Jul 2016 17:24:35 +0200 Subject: [PATCH 026/266] junit testing --- .../minigamesapi/MinigamesAPI.java | 73 ++-- .../minigamesapi/test/ArenaLoggerTest.java | 13 +- .../minigamesapi/test/ArenaStateTest.java | 72 ++++ .../minigamesapi/test/ArenaTypeTest.java | 69 ++++ .../minigamesapi/test/PartyTest.java | 335 ++++++++++++++++++ 5 files changed, 527 insertions(+), 35 deletions(-) create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaStateTest.java create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTypeTest.java create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index e26d675d..e460aecb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -292,42 +292,49 @@ public boolean economyAvailable() */ private static MinecraftVersionsType getServerVersion() { - final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); //$NON-NLS-1$ - if (v.startsWith("v1_7_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R1; - } - if (v.startsWith("v1_7_R2")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R2; - } - if (v.startsWith("v1_7_R3")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R3; - } - if (v.startsWith("v1_7_R4")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R4; - } - if (v.startsWith("v1_8_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_8_R1; - } - if (v.startsWith("v1_8_R2")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_8_R2; - } - if (v.startsWith("v1_9_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_9_R1; - } - if (v.startsWith("v1_9_R2")) //$NON-NLS-1$ + try { - return MinecraftVersionsType.V1_9_R2; + final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); //$NON-NLS-1$ + if (v.startsWith("v1_7_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R1; + } + if (v.startsWith("v1_7_R2")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R2; + } + if (v.startsWith("v1_7_R3")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R3; + } + if (v.startsWith("v1_7_R4")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R4; + } + if (v.startsWith("v1_8_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_8_R1; + } + if (v.startsWith("v1_8_R2")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_8_R2; + } + if (v.startsWith("v1_9_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_9_R1; + } + if (v.startsWith("v1_9_R2")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_9_R2; + } + if (v.startsWith("v1_10_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_10_R1; + } } - if (v.startsWith("v1_10_R1")) //$NON-NLS-1$ + catch (@SuppressWarnings("unused") Exception ex) { - return MinecraftVersionsType.V1_10_R1; + // silently ignore } return MinecraftVersionsType.Unknown; } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java index 232418aa..f4efad10 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java @@ -53,7 +53,7 @@ public class ArenaLoggerTest /** resulting message */ private static final String RESULT_RETURN = "[arena:" + ARENA + "] RETURN"; //$NON-NLS-1$ //$NON-NLS-2$ /** resulting message */ - private static final String RESULT_THROW = "[arena:" + ARENA + "] RETURN"; //$NON-NLS-1$ //$NON-NLS-2$ + private static final String RESULT_THROW = "[arena:" + ARENA + "] THROW"; //$NON-NLS-1$ //$NON-NLS-2$ /** source class for logp */ static final String SOURCE_CLASS = ArenaLoggerTest.class.getName(); /** source method for logp */ @@ -620,7 +620,16 @@ public void testThrowing() public boolean matches(Object argument) { final LogRecord lr = (LogRecord) argument; - return lr.getSourceClassName().equals(SOURCE_CLASS) && lr.getSourceMethodName().equals(SOURCE_METHOD) && lr.getThrown().equals(someObject) && Level.FINER == lr.getLevel() && RESULT_THROW.equals(lr.getMessage()); + final boolean m1 = lr.getSourceClassName().equals(SOURCE_CLASS); + final boolean m2 = lr.getSourceMethodName().equals(SOURCE_METHOD); + final boolean m3 = lr.getThrown().equals(someObject); + final boolean m4 = RESULT_THROW.equals(lr.getMessage()); + return m1 && m2 && m3 && m4(lr) && m4; + } + + private boolean m4(final LogRecord lr) + { + return Level.FINER == lr.getLevel(); } })); } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaStateTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaStateTest.java new file mode 100644 index 00000000..fd656660 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaStateTest.java @@ -0,0 +1,72 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.comze_instancelabs.minigamesapi.ArenaState; + +/** + * Test case for arena states enumeration. + * + * @author mepeisen + * + * @see ArenaState + */ +public class ArenaStateTest +{ + + /** + * Test the ordinals + */ + @Test + public void testOrdinals() + { + assertEquals(0, ArenaState.JOIN.ordinal()); + assertEquals(1, ArenaState.STARTING.ordinal()); + assertEquals(2, ArenaState.INGAME.ordinal()); + assertEquals(3, ArenaState.RESTARTING.ordinal()); + } + + /** + * Test the values method + */ + @Test + public void testValues() + { + final ArenaState[] types = ArenaState.values(); + assertEquals(4, types.length); + assertEquals(ArenaState.JOIN, types[0]); + assertEquals(ArenaState.STARTING, types[1]); + assertEquals(ArenaState.INGAME, types[2]); + assertEquals(ArenaState.RESTARTING, types[3]); + } + + /** + * Test the valueOf method + */ + @Test + public void testValueOf() + { + assertEquals(ArenaState.JOIN, ArenaState.valueOf("JOIN")); //$NON-NLS-1$ + assertEquals(ArenaState.STARTING, ArenaState.valueOf("STARTING")); //$NON-NLS-1$ + assertEquals(ArenaState.INGAME, ArenaState.valueOf("INGAME")); //$NON-NLS-1$ + assertEquals(ArenaState.RESTARTING, ArenaState.valueOf("RESTARTING")); //$NON-NLS-1$ + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTypeTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTypeTest.java new file mode 100644 index 00000000..4c681f3b --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTypeTest.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.comze_instancelabs.minigamesapi.ArenaType; + +/** + * Test case for arena types enumeration. + * + * @author mepeisen + * + * @see ArenaType + */ +public class ArenaTypeTest +{ + + /** + * Test the ordinals + */ + @Test + public void testOrdinals() + { + assertEquals(0, ArenaType.DEFAULT.ordinal()); + assertEquals(1, ArenaType.JUMPNRUN.ordinal()); + assertEquals(2, ArenaType.REGENERATION.ordinal()); + } + + /** + * Test the values method + */ + @Test + public void testValues() + { + final ArenaType[] types = ArenaType.values(); + assertEquals(3, types.length); + assertEquals(ArenaType.DEFAULT, types[0]); + assertEquals(ArenaType.JUMPNRUN, types[1]); + assertEquals(ArenaType.REGENERATION, types[2]); + } + + /** + * Test the valueOf method + */ + @Test + public void testValueOf() + { + assertEquals(ArenaType.DEFAULT, ArenaType.valueOf("DEFAULT")); //$NON-NLS-1$ + assertEquals(ArenaType.JUMPNRUN, ArenaType.valueOf("JUMPNRUN")); //$NON-NLS-1$ + assertEquals(ArenaType.REGENERATION, ArenaType.valueOf("REGENERATION")); //$NON-NLS-1$ + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java new file mode 100644 index 00000000..d414e71d --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java @@ -0,0 +1,335 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.mockStatic; + +import java.util.HashMap; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; + +import com.comze_instancelabs.minigamesapi.MinigamesAPI; +import com.comze_instancelabs.minigamesapi.Party; +import com.comze_instancelabs.minigamesapi.config.PartyMessagesConfig; + +/** + * Test for the party class + * + * @author mepeisen + * + * @see Party + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest({Bukkit.class, MinigamesAPI.class}) +public class PartyTest +{ + + /** owner name. */ + private static final String OWNER = "OWNER"; //$NON-NLS-1$ + + /** friend name. */ + private static final String FRIEND_1 = "FRIEND1"; //$NON-NLS-1$ + + /** friend name. */ + private static final String FRIEND_2 = "FRIEND2"; //$NON-NLS-1$ + + /** + * Test that owner name is returned. + */ + @Test + public void testReturnsOwner() + { + final Party party = new Party(OWNER); + assertEquals(OWNER, party.getOwner()); + } + + /** + * Test that party is empty upon creation. + */ + @Test + public void testEmpty() + { + final Party party = new Party(OWNER); + assertEquals(0, party.getPlayers().size()); + } + + /** + * Simple Mock minigames api. + */ + private void mockAPI() + { + final MinigamesAPI api = mock(MinigamesAPI.class); + final PartyMessagesConfig messages = mock(PartyMessagesConfig.class); + Whitebox.setInternalState(api, "partymessages", messages); //$NON-NLS-1$ + messages.you_joined_party = "JOINED PARTY <player>"; //$NON-NLS-1$ + messages.player_joined_party = "PLAYER <player> JOINED"; //$NON-NLS-1$ + messages.you_left_party = "LEFT PARTY <player>"; //$NON-NLS-1$ + messages.player_left_party = "PLAYER <player> LEFT"; //$NON-NLS-1$ + messages.party_disbanded = "DISBAND"; //$NON-NLS-1$ + Whitebox.setInternalState(api, "global_party", new HashMap<>()); //$NON-NLS-1$ + + mockStatic(MinigamesAPI.class); + when(MinigamesAPI.getAPI()).thenReturn(api); + } + + /** + * Test that player is added to party + */ + @Test + public void testPlayerAdded() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + party.addPlayer(FRIEND_1); + assertEquals(1, party.getPlayers().size()); + assertEquals(FRIEND_1, party.getPlayers().get(0)); + + // epilog + verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + } + + /** + * Test that player is contained in party + */ + @Test + public void testPlayerContains() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + party.addPlayer(FRIEND_1); + assertTrue(party.containsPlayer(FRIEND_1)); + assertFalse(party.containsPlayer(FRIEND_2)); + } + + /** + * Test that two players are added to party + */ + @Test + public void testPlayer2Added() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + final Player player2 = mock(Player.class); + when(player2.getName()).thenReturn(FRIEND_2); + + when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + party.addPlayer(FRIEND_1); + party.addPlayer(FRIEND_2); + assertEquals(2, party.getPlayers().size()); + assertEquals(FRIEND_1, party.getPlayers().get(0)); + assertEquals(FRIEND_2, party.getPlayers().get(1)); + + // epilog + verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("PLAYER FRIEND2 JOINED"); //$NON-NLS-1$ + } + + /** + * Test that player hast left the party + */ + @Test + public void testPlayerLeft() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + party.addPlayer(FRIEND_1); + party.removePlayer(FRIEND_1); + assertEquals(0, party.getPlayers().size()); + + // epilog + verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("LEFT PARTY OWNER"); //$NON-NLS-1$ + } + + /** + * Test that two players are added and one left the party + */ + @Test + public void testPlayer2Left() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + final Player player2 = mock(Player.class); + when(player2.getName()).thenReturn(FRIEND_2); + + when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + party.addPlayer(FRIEND_1); + party.addPlayer(FRIEND_2); + assertTrue(party.removePlayer(FRIEND_1)); + assertEquals(1, party.getPlayers().size()); + assertEquals(FRIEND_2, party.getPlayers().get(0)); + + // epilog + verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("PLAYER FRIEND2 JOINED"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("LEFT PARTY OWNER"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("PLAYER FRIEND1 LEFT"); //$NON-NLS-1$ + } + + /** + * Test that players are informed about disband + */ + @Test + public void testDisbandClearsList() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + final Player player2 = mock(Player.class); + when(player2.getName()).thenReturn(FRIEND_2); + + when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + // TODO clearing the list should not depend on finding it in global_party + MinigamesAPI.getAPI().global_party.put(OWNER, party); + party.addPlayer(FRIEND_1); + party.addPlayer(FRIEND_2); + party.disband(); + assertEquals(0, party.getPlayers().size()); + } + + /** + * Test that players are informed about disband + */ + @Test + public void testDisbandInformsPlayers() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + final Player player2 = mock(Player.class); + when(player2.getName()).thenReturn(FRIEND_2); + + when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + party.addPlayer(FRIEND_1); + party.addPlayer(FRIEND_2); + party.disband(); + + // epilog + verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("PLAYER FRIEND2 JOINED"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("DISBAND"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("DISBAND"); //$NON-NLS-1$ + } + + /** + * Test if disband removes from global party map + */ + @Test + public void testDisbandRemovesFromApi() + { + // prolog + final Player player1 = mock(Player.class); + when(player1.getName()).thenReturn(FRIEND_1); + + mockStatic(Bukkit.class); + when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + + final Player player2 = mock(Player.class); + when(player2.getName()).thenReturn(FRIEND_2); + + when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + + this.mockAPI(); + + // test + final Party party = new Party(OWNER); + MinigamesAPI.getAPI().global_party.put(OWNER, party); + party.disband(); + assertFalse(MinigamesAPI.getAPI().global_party.containsKey(OWNER)); + } + +} From 688c3c906373f3bb2819484fc91934cad9f5b5d1 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 5 Jul 2016 07:44:09 +0200 Subject: [PATCH 027/266] JUnit tests --- API/$$JUNIT-MINIGAME/achievements.yml | 52 +++ API/$$JUNIT-MINIGAME/arenas.yml | 4 + API/$$JUNIT-MINIGAME/classes.yml | 0 API/$$JUNIT-MINIGAME/guns.yml | 44 +++ API/$$JUNIT-MINIGAME/holograms.yml | 1 + API/$$JUNIT-MINIGAME/messages.yml | 141 +++++++ API/$$JUNIT-MINIGAME/shop.yml | 47 +++ API/$$JUNIT-MINIGAME/stats.yml | 0 API/logs/latest.log | 0 API/pom.xml | 8 +- .../minigamesapi/MinigamesAPI.java | 2 +- .../minigamesapi/config/MessagesConfig.java | 1 + .../minigamesapi/test/ArenaLoggerTest.java | 4 +- .../minigamesapi/test/ArenaTest.java | 127 ++++++ .../minigamesapi/testutil/TestUtil.java | 164 ++++++++ Spigot-Test/pom.xml | 87 ++++ .../minigamesapi/spigottest}/ArgUtil.java | 2 +- .../spigottest/DummyEnchantments.java | 17 + .../spigottest/DummyPluginManager.java | 372 ++++++++++++++++++ .../spigottest/DummyScoreboard.java | 201 ++++++++++ .../spigottest/DummyScoreboardManager.java | 54 +++ .../spigottest/DummyScoreboardTeam.java | 293 ++++++++++++++ .../minigamesapi/spigottest/DummyServer.java | 181 +++++++++ .../spigottest/SpigotTestSupport.java | 250 ++++++++++++ pom.xml | 16 +- 25 files changed, 2061 insertions(+), 7 deletions(-) create mode 100644 API/$$JUNIT-MINIGAME/achievements.yml create mode 100644 API/$$JUNIT-MINIGAME/arenas.yml create mode 100644 API/$$JUNIT-MINIGAME/classes.yml create mode 100644 API/$$JUNIT-MINIGAME/guns.yml create mode 100644 API/$$JUNIT-MINIGAME/holograms.yml create mode 100644 API/$$JUNIT-MINIGAME/messages.yml create mode 100644 API/$$JUNIT-MINIGAME/shop.yml create mode 100644 API/$$JUNIT-MINIGAME/stats.yml create mode 100644 API/logs/latest.log create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java create mode 100644 Spigot-Test/pom.xml rename {API/src/test/java/com/comze_instancelabs/minigamesapi/testutil => Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest}/ArgUtil.java (97%) create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java diff --git a/API/$$JUNIT-MINIGAME/achievements.yml b/API/$$JUNIT-MINIGAME/achievements.yml new file mode 100644 index 00000000..350aa17a --- /dev/null +++ b/API/$$JUNIT-MINIGAME/achievements.yml @@ -0,0 +1,52 @@ +# Used for saving achievements details. +config: + enabled: true + achievements: + first_blood: + enabled: true + name: First Blood! + reward: + economy_reward: true + econ_reward_amount: 20 + command_reward: false + cmd: tell <player> Good job! + ten_kills: + enabled: true + name: Ten Kills! + reward: + economy_reward: true + econ_reward_amount: 50 + command_reward: false + cmd: tell <player> Good job! + hundred_kills: + enabled: true + name: Hundred Kills! + reward: + economy_reward: true + econ_reward_amount: 1000 + command_reward: false + cmd: tell <player> Good job! + first_win: + enabled: true + name: Your first win! + reward: + economy_reward: true + econ_reward_amount: 30 + command_reward: false + cmd: tell <player> Good job! + ten_wins: + enabled: true + name: Ten wins! + reward: + economy_reward: true + econ_reward_amount: 30 + command_reward: false + cmd: tell <player> Good job! + achievement_guy: + enabled: true + name: All achievement guy! + reward: + economy_reward: true + econ_reward_amount: 30 + command_reward: false + cmd: tell <player> Good job! diff --git a/API/$$JUNIT-MINIGAME/arenas.yml b/API/$$JUNIT-MINIGAME/arenas.yml new file mode 100644 index 00000000..b7268fc9 --- /dev/null +++ b/API/$$JUNIT-MINIGAME/arenas.yml @@ -0,0 +1,4 @@ +# Used for saving arena details. +arenas: + junit-arena: + displayname: junit-arena diff --git a/API/$$JUNIT-MINIGAME/classes.yml b/API/$$JUNIT-MINIGAME/classes.yml new file mode 100644 index 00000000..e69de29b diff --git a/API/$$JUNIT-MINIGAME/guns.yml b/API/$$JUNIT-MINIGAME/guns.yml new file mode 100644 index 00000000..d53a3d06 --- /dev/null +++ b/API/$$JUNIT-MINIGAME/guns.yml @@ -0,0 +1,44 @@ +# Be aware that this config is barely used in any minigame. +# Used for saving gun classes. Default: +config: + guns: + pistol: + name: Pistol + items: 256#DAMAGE_ALL:1#KNOCKBACK*1 + icon: 256#DAMAGE_ALL:1#KNOCKBACK*1 + lore: The Pistol. + speed: 1.0 + durability: 50 + shoot_amount: 1 + knockback_multiplier: 1.1 + permission_node: minigames.guns.pistol + sniper: + name: Sniper + items: 292#DAMAGE_ALL:1#KNOCKBACK*1 + icon: 292#DAMAGE_ALL:1#KNOCKBACK*1 + lore: The Sniper. + speed: 0.5 + durability: 10 + shoot_amount: 1 + knockback_multiplier: 3.0 + permission_node: minigames.guns.sniper + grenade: + name: Grenade Launcher + items: 257#DAMAGE_ALL:1#KNOCKBACK*1 + icon: 257#DAMAGE_ALL:1#KNOCKBACK*1 + lore: The Grenade Launcher. + speed: 0.1 + durability: 10 + shoot_amount: 1 + knockback_multiplier: 2.5 + permission_node: minigames.guns.grenade + freeze: + name: Freeze Gun + items: 258#DAMAGE_ALL:1#KNOCKBACK*1 + icon: 258#DAMAGE_ALL:1#KNOCKBACK*1 + lore: The Freeze Gun. + speed: 0.8 + durability: 5 + shoot_amount: 1 + knockback_multiplier: 0.5 + permission_node: minigames.guns.freeze diff --git a/API/$$JUNIT-MINIGAME/holograms.yml b/API/$$JUNIT-MINIGAME/holograms.yml new file mode 100644 index 00000000..2adfcc6e --- /dev/null +++ b/API/$$JUNIT-MINIGAME/holograms.yml @@ -0,0 +1 @@ +# Used for saving stats holograms. diff --git a/API/$$JUNIT-MINIGAME/messages.yml b/API/$$JUNIT-MINIGAME/messages.yml new file mode 100644 index 00000000..c635e69e --- /dev/null +++ b/API/$$JUNIT-MINIGAME/messages.yml @@ -0,0 +1,141 @@ +# Contains all messages for easy translation. You can remove a mesage by setting it to nothing, like so: '' +signs: + starting: + '0': '&a[]' + '1': '&a<arena>' + '2': '&a<count>/<maxcount>' + '3': '&a[]' + join: + '0': '&a[]' + '1': '&a<arena>' + '2': '&a<count>/<maxcount>' + '3': '&a[]' + ingame: + '0': '&4[]' + '1': '&4<arena>' + '2': '&4<count>/<maxcount>' + '3': '&4[]' + restarting: + '0': '&e[]' + '1': '&e<arena>' + '2': '&e<count>/<maxcount>' + '3': '&e[]' + arcade: + '0': '[]' + '1': '&cArcade' + '2': <count>/<maxcount> + '3': '[]' + leave: + '0': '' + '1': '&4Leave' + '2': '' + '3': '' + random: + '0': '&a[]' + '1': '&2Random' + '2': '' + '3': '&a[]' +messages: + no_perm: '&cYou don''t have permission.' + successfully_reloaded: '&aSuccessfully reloaded all configs.' + successfully_set: '&aSuccessfully set &3<component>&a.' + successfully_saved_arena: '&aSuccessfully saved &3<arena>&a.' + arena_invalid: '&3<arena> &cappears to be invalid.' + failed_saving_arena: '&cFailed to save &3<arena>&c.' + broadcast_players_left: '&eThere are &4<count> &eplayers left!' + broadcast_player_joined: '&2<player> &ajoined the arena! (<count>/<maxcount>)' + player_died: '&c<player> died.' + arena_action: '&aYou <action> arena &3<arena>&a!' + you_already_are_in_arena: '&aYou already seem to be in arena &3<arena>&a!' + you_joined_arena: '&aYou joined arena &3<arena>&a!' + not_in_arena: '&cYou don''t seem to be in an arena right now.' + teleporting_to_arena_in: '&7Teleporting to arena in <count>.' + starting_in: '&aStarting in <count>!' + failed_removing_arena: '&cFailed to remove &3<arena>&c.' + successfully_removed: '&cSuccessfully removed &3<component>&c!' + failed_removing_component: '&cFailed removing &3<component>&c. <cause>.' + joined_arena: '&aYou joined &3<arena>&a.' + you_won: '&aYou &2won &athe game!' + you_lost: '&cYou &4lost &cthe game.' + you_got_a_kill: '&aYou killed &2<player>!' + player_was_killed_by: '&4<player> &cwas killed by &4<killer>&c!' + arena_not_initialized: '&cThe arena appears to be not initialized, did you save + the arena?' + guns: + attributelevel_increased: '&aThe <attribute> level was increased successfully!' + not_enough_credits: '&cThe max level of 3 was reached or you don''t have enough + credits. Needed: <credits>' + too_many_main_guns: '&cYou already have 2 main guns, remove one first.' + successfully_set_main_gun: '&aSuccessfully set a main gun (of a maximum of two).' + all_guns: '&aYour current main guns: &2<guns>' + arcade_next_minigame: '&6Next Arcade game: &4<minigame>&6!' + arcade_joined_waiting: '&6You joined Arcade! Waiting for <count> more players to + start.' + arcade_joined_spectator: '&6You joined Arcade as a spectator! You''ll be able to + play in the next minigame.' + arcade_new_round: '&6Next Arcade round in <count>!' + arena_disabled: '&cThe arena is disabled thus you can''t join.' + you_can_leave_with: '&cYou can leave with <cmd> or /l!' + no_perm_to_join_arena: '&cYou don''t have permission (arenas.<arena>) to join this + arena as it''s vip!' + set_kit: '&aSuccessfully set &2<kit>&a!' + classes_item: '&4Classes' + achievement_item: '&4Achievements' + shop_item: '&4Shop' + spectator_item: '&4Players' + server_broadcast_winner: '&2<player> &awon the game on &2<arena>&a!' + exit_item: '&4Leave the game' + successfully_bought_kit: '&aSuccessfully bought &2<kit> &afor &2<money>&a.' + scoreboard: + title: '&4<arena>' + lobby_title: '&4[<arena>]' + you_got_kicked_because_vip_joined: '&cYou got kicked out of the game because a vip + joined!' + powerup_spawned: '&2A Powerup spawned!' + you_got_the_achievement: '&3You got the achievement &b<achievement>&3!' + game_started: '&2The game has started!' + author_of_the_map: '&3You are playing on the map &b<arena> &3by &b<author>&3!' + description_of_the_map: <description> + not_enough_money: '&cYou don''t have enough money.' + possible_kits: '&aPossible kits: &2' + possible_shopitems: '&aPossible shop items: &2' + cancelled_starting: '&cThe starting countdown was cancelled because there''s only + one player left in the arena.' + minigame_description: '' + successfully_bought_shopitem: '&aSuccessfully bought &2<shopitem> &afor &2<money>&a.' + already_bought_shopitem: '&aYou already had &2<shopitem>&a.' + you_received_rewards: '&aYou received a reward of &2<economyreward>' + you_received_rewards_2: ' &aand ' + you_received_rewards_3: '&2<itemreward>&a!' + already_in_arena: '&cYou are already in an arena.' + stop_cause_maximum_game_time: '&cThe game is stopping in 5 seconds because the maximum + game time was reached.' + compass: + no_player_found: '&cNo near players found!' + found_player: '&aThe compass is tracking &3<player> &anow. Distance: <distance>' + you_got_a_participation_reward: '&aYou received &2<economyreward> &afor participating!' + kit_warning: '&7Be aware that you''ll only get the &8last &7kit you bought even + if you buy all of them.' + custom_scoreboard: + line0: Players:<playercount> + line1: Spectators:<lostplayercount> + line2: Alive:<playeralivecount> + line3: Your Credits:<points> + line4: Your Wins:<wins> + custom_lobby_scoreboard: + line0: Players:<playercount> + line1: Max Players:<maxplayercount> + line2: Your Credits:<points> + line3: Your Wins:<wins> + stats: + line0: '&7----- &a&lStats &7-----; ' + line1: '&7Wins: &a<wins>' + line2: '&7Loses: &c<loses>' + line3: '&7Alltime Kills: &a<alltime_kills>' + line4: '&7Alltime Deaths: &c<alltime_deaths>' + line5: '&7KDR: &e<kdr>' + line6: '&7Points: &e<points>' + line7: ' ;&7-----------------' +config: + generatedv182: true + generatedv1102: true diff --git a/API/$$JUNIT-MINIGAME/shop.yml b/API/$$JUNIT-MINIGAME/shop.yml new file mode 100644 index 00000000..0ca63ab0 --- /dev/null +++ b/API/$$JUNIT-MINIGAME/shop.yml @@ -0,0 +1,47 @@ +# Used for saving shop items. Default shop items: +config: + shop_items: + coin_boost2: + name: Coin boost * 2 + enabled: true + uses_items: false + items: 388*1 + icon: 388*1 + lore: Will give all winners a double money reward boost. + requires_money: true + requires_permission: false + money_amount: 1500 + permission_node: minigames.shop_item.coin_boost2 + coin_boost3: + name: Coin boost * 3 + enabled: true + uses_items: false + items: 388*2 + icon: 388*2 + lore: Will give all winners a triple money reward boost. + requires_money: true + requires_permission: false + money_amount: 3000 + permission_node: minigames.shop_item.coin_boost3 + coin_boost2_solo: + name: Coin boost * 2 Solo + enabled: true + uses_items: false + items: 264*1 + icon: 264*1 + lore: Will give you a double money reward boost. + requires_money: true + requires_permission: false + money_amount: 1000 + permission_node: minigames.shop_item.coin_boost2_solo + coin_boost3_solo: + name: Coin boost * 3 Solo + enabled: true + uses_items: false + items: 264*2 + icon: 264*2 + lore: Will give you a triple money reward boost. + requires_money: true + requires_permission: false + money_amount: 2000 + permission_node: minigames.shop_item.coin_boost3_solo diff --git a/API/$$JUNIT-MINIGAME/stats.yml b/API/$$JUNIT-MINIGAME/stats.yml new file mode 100644 index 00000000..e69de29b diff --git a/API/logs/latest.log b/API/logs/latest.log new file mode 100644 index 00000000..e69de29b diff --git a/API/pom.xml b/API/pom.xml index 9daf7446..1b31f858 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -16,8 +16,8 @@ <dependencies> <dependency> - <groupId>org.bukkit</groupId> - <artifactId>bukkit</artifactId> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> </dependency> <dependency> <groupId>net.milkbowl.vault</groupId> @@ -40,6 +40,10 @@ <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-Spigot-Test</artifactId> + </dependency> </dependencies> <build> diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index e460aecb..d67dea5d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -397,7 +397,7 @@ public void onDisable() * @param minigame * internal name of the minigame. * @param arenaclass - * the class implementing/ overriding the arena class; {@link Arena}. + * the class implementing/ overriding the arena class; {@link Arena}. TODO currently not in use * @param arenasconfig * the arenas config store. * @param messagesconfig diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index b93db6dc..c1fd5ae6 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -37,6 +37,7 @@ public class MessagesConfig public MessagesConfig(final JavaPlugin plugin) { this.plugin = plugin; + // TODO use static initializer Arrays.fill(MessagesConfig.squares_mid, (char) 0x25A0); Arrays.fill(MessagesConfig.squares_full, (char) 0x2588); Arrays.fill(MessagesConfig.squares_medium, (char) 0x2592); diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java index f4efad10..33a8a61b 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaLoggerTest.java @@ -15,8 +15,8 @@ package com.comze_instancelabs.minigamesapi.test; -import static com.comze_instancelabs.minigamesapi.testutil.ArgUtil.argEquals; -import static com.comze_instancelabs.minigamesapi.testutil.ArgUtil.argSupplier; +import static com.comze_instancelabs.minigamesapi.spigottest.ArgUtil.argEquals; +import static com.comze_instancelabs.minigamesapi.spigottest.ArgUtil.argSupplier; import static org.mockito.Matchers.any; import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.times; diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java new file mode 100644 index 00000000..f7712394 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java @@ -0,0 +1,127 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; + +import java.util.ArrayList; + +import org.bukkit.Location; +import org.junit.Test; + +import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaType; +import com.comze_instancelabs.minigamesapi.testutil.TestUtil; + +/** + * The tester for the arena class. + * + * @author mepeisen + * + * @see Arena + */ +public class ArenaTest extends TestUtil +{ + + /** the default arena name. */ + private static final String ARENA = "junit-arena"; //$NON-NLS-1$ + + /** the junit minigame. */ + private static final String MINIGAME = "$JUNIT-MINIGAME"; //$NON-NLS-1$ + + /** + * Tests the arena class constructor. + */ + @Test + public void testConstructor() + { + final Minigame minigame = this.setupMinigame(MINIGAME); + final Arena arena = new Arena(minigame.javaPlugin, ARENA); + + assertSame(arena.getPlugin(), minigame.javaPlugin); + assertSame(arena.getPluginInstance(), minigame.pluginInstance); + assertEquals(ARENA, arena.getInternalName()); + assertEquals(ARENA, arena.getInternalName()); + assertEquals(ARENA, arena.getName()); + assertEquals(ArenaType.DEFAULT, arena.getArenaType()); + } + + /** + * Tests the arena class constructor. + */ + @Test + public void testConstructorType() + { + final Minigame minigame = this.setupMinigame(MINIGAME); + final Arena arena = new Arena(minigame.javaPlugin, ARENA, ArenaType.JUMPNRUN); + + assertSame(arena.getPlugin(), minigame.javaPlugin); + assertSame(arena.getPluginInstance(), minigame.pluginInstance); + assertEquals(ARENA, arena.getInternalName()); + assertEquals(ARENA, arena.getInternalName()); + assertEquals(ARENA, arena.getName()); + assertEquals(ArenaType.JUMPNRUN, arena.getArenaType()); + } + + /** + * Tests the init method call. + */ + @Test + public void testInit() + { + final Minigame minigame = this.setupMinigame(MINIGAME); + final Arena arena = new Arena(minigame.javaPlugin, ARENA); + + final Location signLoc = new Location(null, 1, 1, 1); + + final ArrayList<Location> spawns = new ArrayList<>(); + spawns.add(new Location(null, 2, 2, 2)); + spawns.add(new Location(null, 3, 3, 3)); + + final Location mainlobby = new Location(null, 4, 4, 4); + + final Location waitinglobby = new Location(null, 5, 5, 5); + + arena.init(signLoc, spawns, mainlobby, waitinglobby, 10, 2, false); + + assertEquals(1, arena.getSignLocation().getX(), 0); + assertEquals(1, arena.getSignLocation().getY(), 0); + assertEquals(1, arena.getSignLocation().getZ(), 0); + + assertEquals(2, arena.getSpawns().size()); + assertEquals(2, arena.getSpawns().get(0).getX(), 0); + assertEquals(2, arena.getSpawns().get(0).getY(), 0); + assertEquals(2, arena.getSpawns().get(0).getZ(), 0); + assertEquals(3, arena.getSpawns().get(1).getX(), 0); + assertEquals(3, arena.getSpawns().get(1).getY(), 0); + assertEquals(3, arena.getSpawns().get(1).getZ(), 0); + + assertEquals(4, arena.getMainLobby().getX(), 0); + assertEquals(4, arena.getMainLobby().getY(), 0); + assertEquals(4, arena.getMainLobby().getZ(), 0); + + assertEquals(5, arena.getWaitingLobby().getX(), 0); + assertEquals(5, arena.getWaitingLobby().getY(), 0); + assertEquals(5, arena.getWaitingLobby().getZ(), 0); + + assertFalse(arena.isVIPArena()); + assertEquals(2, arena.getMinPlayers()); + assertEquals(10, arena.getMaxPlayers()); + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java new file mode 100644 index 00000000..f6c607f6 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java @@ -0,0 +1,164 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.testutil; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.mockStatic; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; + +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; +import org.junit.After; +import org.junit.Before; +import org.powermock.core.classloader.annotations.PrepareForTest; + +import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; +import com.comze_instancelabs.minigamesapi.PluginInstance; +import com.comze_instancelabs.minigamesapi.config.ArenasConfig; +import com.comze_instancelabs.minigamesapi.config.ClassesConfig; +import com.comze_instancelabs.minigamesapi.config.DefaultConfig; +import com.comze_instancelabs.minigamesapi.config.MessagesConfig; +import com.comze_instancelabs.minigamesapi.config.StatsConfig; +import com.comze_instancelabs.minigamesapi.spigottest.SpigotTestSupport; + +/** + * Test tooling for minigames API. + * + * @author mepeisen + */ +@PrepareForTest({MinigamesAPI.class}) +public abstract class TestUtil extends SpigotTestSupport +{ + + /** test helper. */ + protected MinigameTestHelper minigameTest; + + /** + * Setup the minigame test framework. + */ + @Before + public void setupMinigameTest() + { + this.minigameTest = new MinigameTestHelper(); + + final MinigamesAPI api = mock(MinigamesAPI.class); + mockStatic(MinigamesAPI.class); + when(MinigamesAPI.getAPI()).thenReturn(api); + when(api.getPluginInstance(any())).thenCallRealMethod(); + when(MinigamesAPI.setupAPI(any(), anyString(), any(), any(), any(), any(), any(), any(), anyBoolean())).thenCallRealMethod(); + + this.minigameTest.api = api; + } + + /** + * Tear down all plugins and players. + */ + @After + public void teardownMinigamesAndPlayers() + { + this.teardownPlugins(); + this.teardownPlayers(); + teardownConfigFiles(); + this.teardownScoreboards(); + this.teardownTasks(); + } + + /** + * Setup a minigame. + * @param name minigame plugin name + * @return the minigame data + */ + protected Minigame setupMinigame(String name) + { + return setupMinigame(name, null); + } + + /** + * Setup a minigame and perform some setup before loading via minigames api. + * @param name minigame plugin name + * @param preSetup setup function + * @return the minigame data + */ + protected Minigame setupMinigame(String name, Consumer<Minigame> preSetup) + { + final Minigame minigame = new Minigame(); + final YamlConfiguration config = mockFileConfig(); + final JavaPlugin plugin = this.mockPlugin(name, "1.0", config); //$NON-NLS-1$ + minigame.javaPlugin = plugin; + minigame.achievementsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "achievements.yml"))); //$NON-NLS-1$ + minigame.arenasYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "arenas.yml"))); //$NON-NLS-1$ + minigame.classesYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "classes.yml"))); //$NON-NLS-1$ + minigame.gunsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "guns.yml"))); //$NON-NLS-1$ + minigame.hologramsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "holograms.yml"))); //$NON-NLS-1$ + minigame.messagesYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "messages.yml"))); //$NON-NLS-1$ + minigame.shopYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "shop.yml"))); //$NON-NLS-1$ + minigame.statsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "stats.yml"))); //$NON-NLS-1$ + if (preSetup != null) + { + preSetup.accept(minigame); + } + MinigamesAPI.setupAPI( + plugin, + name, + Arena.class, + new ArenasConfig(plugin), + new MessagesConfig(plugin), + new ClassesConfig(plugin, true), + new StatsConfig(plugin, true), + new DefaultConfig(plugin, true), + false); + minigame.pluginInstance = MinigamesAPI.getAPI().getPluginInstance(plugin); + return minigame; + } + + /** + * Helper class for minigame api access. + * @author mepeisen + */ + public static final class MinigameTestHelper + { + public MinigamesAPI api; + public Map<String, Minigame> minigames = new HashMap<>(); + } + + /** + * data of a single minigame + * @author mepeisen + */ + public static final class Minigame + { + public YamlConfiguration statsYml; + public YamlConfiguration shopYml; + public YamlConfiguration messagesYml; + public YamlConfiguration hologramsYml; + public YamlConfiguration classesYml; + public YamlConfiguration gunsYml; + public YamlConfiguration arenasYml; + public YamlConfiguration achievementsYml; + public PluginInstance pluginInstance; + public JavaPlugin javaPlugin; + } + +} diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml new file mode 100644 index 00000000..ba6a139a --- /dev/null +++ b/Spigot-Test/pom.xml @@ -0,0 +1,87 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-Spigot-Test</artifactId> + <version>1.14.9-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesLib-Spigot-Test</name> + <description>Spigot-Test-Utilities</description> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.9-SNAPSHOT</version> + </parent> + + <dependencies> + <!-- <dependency> + <groupId>org.bukkit</groupId> + <artifactId>bukkit</artifactId> + </dependency> --> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + <scope>compile</scope> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/ArgUtil.java similarity index 97% rename from API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java rename to Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/ArgUtil.java index 45d362b8..96fbb52d 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/ArgUtil.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/ArgUtil.java @@ -13,7 +13,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.comze_instancelabs.minigamesapi.testutil; +package com.comze_instancelabs.minigamesapi.spigottest; import static org.mockito.Matchers.argThat; diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java new file mode 100644 index 00000000..a4af5319 --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java @@ -0,0 +1,17 @@ +package com.comze_instancelabs.minigamesapi.spigottest; + +import net.minecraft.server.v1_10_R1.Enchantments; + +/** + * taken from spigot test sources + */ +class DummyEnchantments { + static { + Enchantments.DAMAGE_ALL.getClass(); + org.bukkit.enchantments.Enchantment.stopAcceptingRegistrations(); + } + + public static void setup() { + // dummy method + } +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java new file mode 100644 index 00000000..2de58dcd --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java @@ -0,0 +1,372 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; + +import org.bukkit.event.Event; +import org.bukkit.event.EventException; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.HandlerList; +import org.bukkit.event.Listener; +import org.bukkit.permissions.Permissible; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionDefault; +import org.bukkit.plugin.EventExecutor; +import org.bukkit.plugin.IllegalPluginAccessException; +import org.bukkit.plugin.InvalidDescriptionException; +import org.bukkit.plugin.InvalidPluginException; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginLoader; +import org.bukkit.plugin.PluginManager; +import org.bukkit.plugin.RegisteredListener; +import org.bukkit.plugin.UnknownDependencyException; +import org.bukkit.plugin.java.JavaPlugin; + +import com.google.common.collect.ImmutableSet; + +/** + * Simple plugin manager for testing. + * + * @author mepeisen + */ +class DummyPluginManager implements PluginManager +{ + + /** registered plugins per name. */ + private Map<String, JavaPlugin> plugins = new HashMap<>(); + + private final Map<String, Permission> permissions = new HashMap<String, Permission>(); + private final Map<Boolean, Set<Permission>> defaultPerms = new LinkedHashMap<Boolean, Set<Permission>>(); + private final Map<String, Map<Permissible, Boolean>> permSubs = new HashMap<String, Map<Permissible, Boolean>>(); + private final Map<Boolean, Map<Permissible, Boolean>> defSubs = new HashMap<Boolean, Map<Permissible, Boolean>>(); + + @Override + public void registerInterface(Class<? extends PluginLoader> loader) throws IllegalArgumentException + { + throw new UnsupportedOperationException(); + } + + /** + * Adds a mocked plugin. + * @param plugin java plugin to be registered. + */ + public void addMockedPlugin(JavaPlugin plugin) + { + this.plugins.put(plugin.getName().replace(' ', '_'), plugin); + } + + @Override + public Plugin getPlugin(String name) + { + return this.plugins.get(name.replace(' ' , '_')); + } + + @Override + public Plugin[] getPlugins() + { + return this.plugins.values().toArray(new Plugin[this.plugins.size()]); + } + + @Override + public boolean isPluginEnabled(String name) + { + return this.getPlugin(name) != null; + } + + @Override + public boolean isPluginEnabled(Plugin plugin) + { + return true; + } + + @Override + public Plugin loadPlugin(File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException + { + throw new UnsupportedOperationException(); + } + + @Override + public Plugin[] loadPlugins(File directory) + { + throw new UnsupportedOperationException(); + } + + @Override + public void disablePlugins() + { + throw new UnsupportedOperationException(); + } + + @Override + public void clearPlugins() + { + this.plugins.clear(); + permissions.clear(); + if (defaultPerms.get(true) != null) defaultPerms.get(true).clear(); + if (defaultPerms.get(false) != null) defaultPerms.get(false).clear(); + HandlerList.unregisterAll(); + } + + @Override + public void callEvent(Event event) throws IllegalStateException + { + throw new UnsupportedOperationException(); + } + + @Override + public void registerEvents(Listener listener, Plugin plugin) + { + // code mostly taken from Spigot: JavaPluginLoader.createRegisteredListeners + final Method[] publicMethods = listener.getClass().getMethods(); + final Method[] privateMethods = listener.getClass().getDeclaredMethods(); + final Set<Method> methods = new HashSet<>(publicMethods.length + privateMethods.length, 1.0f); + for (Method method : publicMethods) + { + methods.add(method); + } + for (Method method : privateMethods) + { + methods.add(method); + } + for (final Method method : methods) + { + final EventHandler eh = method.getAnnotation(EventHandler.class); + if (eh == null) continue; + if (method.isBridge() || method.isSynthetic()) + { + continue; + } + final Class<?> checkClass; + if (method.getParameterTypes().length != 1 || !Event.class.isAssignableFrom(checkClass = method.getParameterTypes()[0])) + { + continue; + } + final Class<? extends Event> eventClass = checkClass.asSubclass(Event.class); + method.setAccessible(true); + final EventExecutor executor = new EventExecutor() { + public void execute(Listener listener, Event event) throws EventException { + try { + if (!eventClass.isAssignableFrom(event.getClass())) { + return; + } + method.invoke(listener, event); + } catch (InvocationTargetException ex) { + throw new EventException(ex.getCause()); + } catch (Throwable t) { + throw new EventException(t); + } + } + }; + getEventListeners(getRegistrationClass(eventClass)).register(new RegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled())); + } + } + + // taken from Spigot: SimplePluginManager + private Class<? extends Event> getRegistrationClass(Class<? extends Event> clazz) { + try { + clazz.getDeclaredMethod("getHandlerList"); + return clazz; + } catch (NoSuchMethodException e) { + if (clazz.getSuperclass() != null + && !clazz.getSuperclass().equals(Event.class) + && Event.class.isAssignableFrom(clazz.getSuperclass())) { + return getRegistrationClass(clazz.getSuperclass().asSubclass(Event.class)); + } else { + throw new IllegalPluginAccessException("Unable to find handler list for event " + clazz.getName() + ". Static getHandlerList method required!"); + } + } + } + + // taken from Spigot: SimplePluginManager + private HandlerList getEventListeners(Class<? extends Event> type) { + try { + Method method = getRegistrationClass(type).getDeclaredMethod("getHandlerList"); + method.setAccessible(true); + return (HandlerList) method.invoke(null); + } catch (Exception e) { + throw new IllegalPluginAccessException(e.toString()); + } + } + + @Override + public void registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin) + { + throw new UnsupportedOperationException(); + } + + @Override + public void registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin, boolean ignoreCancelled) + { + throw new UnsupportedOperationException(); + } + + @Override + public void enablePlugin(Plugin plugin) + { + throw new UnsupportedOperationException(); + } + + @Override + public void disablePlugin(Plugin plugin) + { + throw new UnsupportedOperationException(); + } + + public Permission getPermission(String name) { + return permissions.get(name.toLowerCase()); + } + + public void addPermission(Permission perm) { + String name = perm.getName().toLowerCase(); + + if (permissions.containsKey(name)) { + throw new IllegalArgumentException("The permission " + name + " is already defined!"); + } + + permissions.put(name, perm); + calculatePermissionDefault(perm); + } + + public Set<Permission> getDefaultPermissions(boolean op) { + return ImmutableSet.copyOf(defaultPerms.get(op)); + } + + public void removePermission(Permission perm) { + removePermission(perm.getName()); + } + + public void removePermission(String name) { + permissions.remove(name.toLowerCase()); + } + + public void recalculatePermissionDefaults(Permission perm) { + if (perm != null && permissions.containsKey(perm.getName().toLowerCase())) { + defaultPerms.get(true).remove(perm); + defaultPerms.get(false).remove(perm); + + calculatePermissionDefault(perm); + } + } + + private void calculatePermissionDefault(Permission perm) { + if ((perm.getDefault() == PermissionDefault.OP) || (perm.getDefault() == PermissionDefault.TRUE)) { + defaultPerms.get(true).add(perm); + dirtyPermissibles(true); + } + if ((perm.getDefault() == PermissionDefault.NOT_OP) || (perm.getDefault() == PermissionDefault.TRUE)) { + defaultPerms.get(false).add(perm); + dirtyPermissibles(false); + } + } + + private void dirtyPermissibles(boolean op) { + Set<Permissible> permissibles = getDefaultPermSubscriptions(op); + + for (Permissible p : permissibles) { + p.recalculatePermissions(); + } + } + + public void subscribeToPermission(String permission, Permissible permissible) { + String name = permission.toLowerCase(); + Map<Permissible, Boolean> map = permSubs.get(name); + + if (map == null) { + map = new WeakHashMap<Permissible, Boolean>(); + permSubs.put(name, map); + } + + map.put(permissible, true); + } + + public void unsubscribeFromPermission(String permission, Permissible permissible) { + String name = permission.toLowerCase(); + Map<Permissible, Boolean> map = permSubs.get(name); + + if (map != null) { + map.remove(permissible); + + if (map.isEmpty()) { + permSubs.remove(name); + } + } + } + + public Set<Permissible> getPermissionSubscriptions(String permission) { + String name = permission.toLowerCase(); + Map<Permissible, Boolean> map = permSubs.get(name); + + if (map == null) { + return ImmutableSet.of(); + } else { + return ImmutableSet.copyOf(map.keySet()); + } + } + + public void subscribeToDefaultPerms(boolean op, Permissible permissible) { + Map<Permissible, Boolean> map = defSubs.get(op); + + if (map == null) { + map = new WeakHashMap<Permissible, Boolean>(); + defSubs.put(op, map); + } + + map.put(permissible, true); + } + + public void unsubscribeFromDefaultPerms(boolean op, Permissible permissible) { + Map<Permissible, Boolean> map = defSubs.get(op); + + if (map != null) { + map.remove(permissible); + + if (map.isEmpty()) { + defSubs.remove(op); + } + } + } + + public Set<Permissible> getDefaultPermSubscriptions(boolean op) { + Map<Permissible, Boolean> map = defSubs.get(op); + + if (map == null) { + return ImmutableSet.of(); + } else { + return ImmutableSet.copyOf(map.keySet()); + } + } + + public Set<Permission> getPermissions() { + return new HashSet<Permission>(permissions.values()); + } + + @Override + public boolean useTimings() + { + return false; + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java new file mode 100644 index 00000000..6fc34acb --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java @@ -0,0 +1,201 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.bukkit.OfflinePlayer; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Score; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.Team; + +/** + * A dummy score board. + * + * @author mepeisen + */ +class DummyScoreboard implements Scoreboard +{ + + /** registered teams. */ + private Map<String, Team> teams = new HashMap<>(); + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#registerNewObjective(java.lang.String, java.lang.String) + */ + @Override + public Objective registerNewObjective(String name, String criteria) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getObjective(java.lang.String) + */ + @Override + public Objective getObjective(String name) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getObjectivesByCriteria(java.lang.String) + */ + @Override + public Set<Objective> getObjectivesByCriteria(String criteria) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getObjectives() + */ + @Override + public Set<Objective> getObjectives() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getObjective(org.bukkit.scoreboard.DisplaySlot) + */ + @Override + public Objective getObjective(DisplaySlot slot) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getScores(org.bukkit.OfflinePlayer) + */ + @Override + public Set<Score> getScores(OfflinePlayer player) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getScores(java.lang.String) + */ + @Override + public Set<Score> getScores(String entry) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#resetScores(org.bukkit.OfflinePlayer) + */ + @Override + public void resetScores(OfflinePlayer player) throws IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#resetScores(java.lang.String) + */ + @Override + public void resetScores(String entry) throws IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getPlayerTeam(org.bukkit.OfflinePlayer) + */ + @Override + public Team getPlayerTeam(OfflinePlayer player) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getEntryTeam(java.lang.String) + */ + @Override + public Team getEntryTeam(String entry) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + @Override + public Team getTeam(String teamName) throws IllegalArgumentException + { + return this.teams.get(teamName); + } + + @Override + public Set<Team> getTeams() + { + return new HashSet<>(this.teams.values()); + } + + @Override + public Team registerNewTeam(String name) throws IllegalArgumentException + { + final Team team = new DummyScoreboardTeam(); + this.teams.put(name, team); + return team; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getPlayers() + */ + @Override + public Set<OfflinePlayer> getPlayers() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#getEntries() + */ + @Override + public Set<String> getEntries() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Scoreboard#clearSlot(org.bukkit.scoreboard.DisplaySlot) + */ + @Override + public void clearSlot(DisplaySlot slot) throws IllegalArgumentException + { + // TODO Auto-generated method stub + + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java new file mode 100644 index 00000000..245c0cc2 --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.ScoreboardManager; + +/** + * A dummy scoreboard manager. + * + * @author mepeisen + */ +class DummyScoreboardManager implements ScoreboardManager +{ + + /** + * the main score board. + */ + private DummyScoreboard main = new DummyScoreboard(); + + /** + * tears down score boards. + */ + public void teardown() + { + this.main = new DummyScoreboard(); + } + + @Override + public Scoreboard getMainScoreboard() + { + return this.main; + } + + @Override + public Scoreboard getNewScoreboard() + { + return new DummyScoreboard(); + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java new file mode 100644 index 00000000..556457a8 --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java @@ -0,0 +1,293 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.util.HashSet; +import java.util.Set; + +import org.bukkit.OfflinePlayer; +import org.bukkit.scoreboard.NameTagVisibility; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.Team; + +/** + * @author mepeisen + * + */ +class DummyScoreboardTeam implements Team +{ + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getName() + */ + @Override + public String getName() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getDisplayName() + */ + @Override + public String getDisplayName() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setDisplayName(java.lang.String) + */ + @Override + public void setDisplayName(String displayName) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getPrefix() + */ + @Override + public String getPrefix() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setPrefix(java.lang.String) + */ + @Override + public void setPrefix(String prefix) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getSuffix() + */ + @Override + public String getSuffix() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setSuffix(java.lang.String) + */ + @Override + public void setSuffix(String suffix) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#allowFriendlyFire() + */ + @Override + public boolean allowFriendlyFire() throws IllegalStateException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setAllowFriendlyFire(boolean) + */ + @Override + public void setAllowFriendlyFire(boolean enabled) throws IllegalStateException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#canSeeFriendlyInvisibles() + */ + @Override + public boolean canSeeFriendlyInvisibles() throws IllegalStateException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setCanSeeFriendlyInvisibles(boolean) + */ + @Override + public void setCanSeeFriendlyInvisibles(boolean enabled) throws IllegalStateException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getNameTagVisibility() + */ + @Override + public NameTagVisibility getNameTagVisibility() throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setNameTagVisibility(org.bukkit.scoreboard.NameTagVisibility) + */ + @Override + public void setNameTagVisibility(NameTagVisibility visibility) throws IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getPlayers() + */ + @Override + public Set<OfflinePlayer> getPlayers() throws IllegalStateException + { + // TODO Auto-generated method stub + return new HashSet<>(); + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getEntries() + */ + @Override + public Set<String> getEntries() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getSize() + */ + @Override + public int getSize() throws IllegalStateException + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getScoreboard() + */ + @Override + public Scoreboard getScoreboard() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#addPlayer(org.bukkit.OfflinePlayer) + */ + @Override + public void addPlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#addEntry(java.lang.String) + */ + @Override + public void addEntry(String entry) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#removePlayer(org.bukkit.OfflinePlayer) + */ + @Override + public boolean removePlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#removeEntry(java.lang.String) + */ + @Override + public boolean removeEntry(String entry) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#unregister() + */ + @Override + public void unregister() throws IllegalStateException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#hasPlayer(org.bukkit.OfflinePlayer) + */ + @Override + public boolean hasPlayer(OfflinePlayer player) throws IllegalArgumentException, IllegalStateException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#hasEntry(java.lang.String) + */ + @Override + public boolean hasEntry(String entry) throws IllegalArgumentException, IllegalStateException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getOption(org.bukkit.scoreboard.Team.Option) + */ + @Override + public OptionStatus getOption(Option option) throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setOption(org.bukkit.scoreboard.Team.Option, org.bukkit.scoreboard.Team.OptionStatus) + */ + @Override + public void setOption(Option option, OptionStatus status) throws IllegalStateException + { + // TODO Auto-generated method stub + + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java new file mode 100644 index 00000000..49449010 --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -0,0 +1,181 @@ +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; +import java.util.logging.Logger; + +import org.bukkit.Bukkit; +import org.bukkit.Server; +import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemFactory; +import org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftScheduler; +import org.bukkit.craftbukkit.v1_10_R1.util.Versioning; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitScheduler; + +/** + * originally taken from spigot test sources + */ +class DummyServer implements InvocationHandler { + private static interface MethodHandler { + Object handle(DummyServer server, Object[] args); + } + private static final HashMap<Method, MethodHandler> methods = new HashMap<Method, MethodHandler>(); + static { + try { + methods.put( + Server.class.getMethod("getItemFactory"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return CraftItemFactory.instance(); + } + } + ); + methods.put( + Server.class.getMethod("getName"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return DummyServer.class.getName(); + } + } + ); + methods.put( + Server.class.getMethod("getVersion"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return DummyServer.class.getPackage().getImplementationVersion(); + } + } + ); + methods.put( + Server.class.getMethod("getBukkitVersion"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return Versioning.getBukkitVersion(); + } + } + ); + methods.put( + Server.class.getMethod("getLogger"), + new MethodHandler() { + final Logger logger = Logger.getLogger(DummyServer.class.getCanonicalName()); + public Object handle(DummyServer server, Object[] args) { + return logger; + } + } + ); + Bukkit.setServer(Proxy.getProxyClass(Server.class.getClassLoader(), Server.class).asSubclass(Server.class).getConstructor(InvocationHandler.class).newInstance(new DummyServer())); + } catch (Throwable t) { + throw new Error(t); + } + } + + public static void setup() { + // dummy + } + + private List<Player> onlineList = new ArrayList<>(); + private DummyPluginManager pluginManager = new DummyPluginManager(); + private DummyScoreboardManager scoreboardManager = new DummyScoreboardManager(); + private CraftScheduler scheduler = new CraftScheduler(); + + private int tick = 1; + + private DummyServer() { + } + + void addMockedPlayer(Player player) + { + this.onlineList.add(player); + } + + void tick() + { + this.scheduler.mainThreadHeartbeat(this.tick); + this.tick++; + } + + public Object invoke(Object proxy, Method method, Object[] args) { + MethodHandler handler = methods.get(method); + if (handler != null) { + return handler.handle(this, args); + } + switch (method.getName()) + { + case "getPluginManager": + return this.pluginManager; + case "getScoreboardManager": + return this.scoreboardManager; + case "getOnlinePlayers": + return Collections.unmodifiableList(this.onlineList); + case "getScheduler": + return this.scheduler; + case "getPlayer": + for (final Player player : onlineList) + { + if (args[0] instanceof String) + { + if (args[0].toString().equalsIgnoreCase(player.getName())) + { + return player; + } + } + if (args[0] instanceof UUID) + { + if (((UUID) args[0]).equals(player.getUniqueId())) + { + return player; + } + } + } + return null; + case "getPlayerExact": + for (final Player player : onlineList) + { + if (args[0].toString().equals(player.getName())) + { + return player; + } + } + return null; + case "matchPlayer": + final List<Player> result = new ArrayList<>(); + for (final Player player : onlineList) + { + if (args[0].toString().equals(player.getName())) + { + return Collections.singletonList(player); + } + if (player.getName().toLowerCase().contains(args[0].toString().toLowerCase())) + { + result.add(player); + } + } + return result; + } + throw new UnsupportedOperationException(String.valueOf(method)); + } + + /** + * clears all players + */ + public void clearPlayers() + { + this.onlineList.clear(); + } + + /** + * + */ + public void clearTicks() + { + this.scheduler.cancelAllTasks(); + this.tick = 1; + this.scheduler = new CraftScheduler(); + } +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java new file mode 100644 index 00000000..0f2b8041 --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -0,0 +1,250 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.mockStatic; + +import java.io.File; +import java.io.InputStream; +import java.io.Reader; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.function.Function; +import java.util.function.Predicate; + +import org.bukkit.Bukkit; +import org.bukkit.Server; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.plugin.PluginLogger; +import org.bukkit.plugin.java.JavaPlugin; +import org.junit.BeforeClass; +import org.junit.runner.RunWith; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; + +import net.minecraft.server.v1_10_R1.DispenserRegistry; + +/** + * Test tooling for minigames API. + * + * @author mepeisen + */ +@RunWith(PowerMockRunner.class) +@PrepareForTest(YamlConfiguration.class) +@PowerMockIgnore({"org.apache.*", "com.sun.*", "javax.*"}) +public abstract class SpigotTestSupport +{ + + /** installed yaml configurations. */ + static final List<Function<File, YamlConfiguration>> configFiles = new ArrayList<>(); + + /** + * Initializes the dummy server. + */ + @BeforeClass + public static void setupServer() + { + DispenserRegistry.c(); + DummyServer.setup(); + DummyEnchantments.setup(); + mockStatic(YamlConfiguration.class); + when(YamlConfiguration.loadConfiguration(any(File.class))).thenAnswer(new Answer<YamlConfiguration>(){ + + @Override + public YamlConfiguration answer(InvocationOnMock invocation) throws Throwable + { + final File arg = invocation.getArgumentAt(0, File.class); + for (final Function<File, YamlConfiguration> func : configFiles) + { + final YamlConfiguration cfg = func.apply(arg); + if (cfg != null) + { + return cfg; + } + } + return null; + } + + }); + } + + /** + * Returns the dummy server. + * @return summy server + */ + private DummyServer getDummyServer() + { + final Server server = Bukkit.getServer(); + return (DummyServer) Proxy.getInvocationHandler(server); + } + + /** + * Setup a config file for being returned by {@link YamlConfiguration#load(File)} + * @param predicate test function + * @return config file + */ + protected static YamlConfiguration setupConfigFile(Predicate<File> predicate) + { + final YamlConfiguration config = mockFileConfig(); + configFiles.add((file) -> { + if (predicate.test(file)) { + return config; + } + return null; + }); + return config; + } + + /** + * Tear down all config files. + */ + protected static void teardownConfigFiles() + { + configFiles.clear(); + } + + /** + * Removes all plugins. + */ + protected void teardownPlugins() + { + Bukkit.getServer().getPluginManager().clearPlugins(); + } + + /** + * Removes all players. + */ + protected void teardownPlayers() + { + this.getDummyServer().clearPlayers(); + } + + /** + * Teardown the score board support. + */ + protected void teardownScoreboards() + { + ((DummyScoreboardManager)Bukkit.getScoreboardManager()).teardown(); + } + + /** + * Teardown the server tasks and ticks. + */ + protected void teardownTasks() + { + this.getDummyServer().clearTicks(); + } + + /** + * Mocks a player and adds it to the server. + * + * @param name + * players name + * @param uuid + * unique player id. + * @return mocked player object. + */ + protected Player mockOnlinePlayer(String name, UUID uuid) + { + final DummyServer server = (DummyServer) Bukkit.getServer(); + final Player player = mock(Player.class); + when(player.getName()).thenReturn(name); + when(player.getUniqueId()).thenReturn(uuid); + server.addMockedPlayer(player); + return player; + } + + /** + * mocks a file configuration to not load/write from/to disk. + * + * @return yaml file configuration + */ + protected static YamlConfiguration mockFileConfig() + { + final YamlConfiguration config = spy(YamlConfiguration.class); + try + { + doNothing().when(config).load(any(File.class)); + doNothing().when(config).load(any(InputStream.class)); + doNothing().when(config).load(any(Reader.class)); + doNothing().when(config).load(anyString()); + doNothing().when(config).loadFromString(anyString()); + doNothing().when(config).save(any(File.class)); + doNothing().when(config).save(anyString()); + } + catch (@SuppressWarnings("unused") Exception ex) + { + // silently ignore; should never happen because we config a mock here. + } + return config; + } + + /** + * Mocks a plugin and returns it. + * + * @param name + * plugin name + * @param version + * plugin version + * @param config + * plugin config + * @return mocked java plugin. + */ + protected JavaPlugin mockPlugin(String name, String version, FileConfiguration config) + { + final JavaPlugin plugin = mock(JavaPlugin.class, (Answer<?>) invocation -> { + if (invocation.getMethod().getName().equals("getResource")) //$NON-NLS-1$ + return null; + return invocation.callRealMethod(); + }); + final PluginLogger logger = mock(PluginLogger.class); + final File dataFolder = new File("$" + name); //$NON-NLS-1$ + final PluginDescriptionFile description = new PluginDescriptionFile(name, version, "foo"); //$NON-NLS-1$ + Whitebox.setInternalState(plugin, "newConfig", config); //$NON-NLS-1$ + Whitebox.setInternalState(plugin, "logger", logger); //$NON-NLS-1$ + Whitebox.setInternalState(plugin, "dataFolder", dataFolder); //$NON-NLS-1$ + Whitebox.setInternalState(plugin, "description", description); //$NON-NLS-1$ + Whitebox.setInternalState(plugin, "isEnabled", true); //$NON-NLS-1$ + + ((DummyPluginManager)Bukkit.getPluginManager()).addMockedPlugin(plugin); + + return plugin; + } + + /** + * Performs the main tick. + */ + protected void tick() + { + this.getDummyServer().tick(); + } + +} diff --git a/pom.xml b/pom.xml index 72bdbf06..7f886bbb 100644 --- a/pom.xml +++ b/pom.xml @@ -15,12 +15,14 @@ <junit.version>4.12</junit.version> <minigames.releaseversion>1.14.9</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> + <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> </properties> <description>Rich Minigames API and base of all of my new minigames.</description> <modules> <module>API</module> + <module>Spigot-Test</module> </modules> <repositories> @@ -43,7 +45,13 @@ <dependency> <groupId>org.bukkit</groupId> <artifactId>bukkit</artifactId> - <version>1.10-R0.1-SNAPSHOT</version> + <version>${spigot.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>${spigot.version}</version> <scope>provided</scope> </dependency> <dependency> @@ -83,6 +91,12 @@ <version>${powermock.version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-Spigot-Test</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> </dependencies> </dependencyManagement> From 96715c5b4a4f93fde529e9017878b5354f8b1e9c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 5 Jul 2016 07:45:40 +0200 Subject: [PATCH 028/266] removed junit files --- API/$$JUNIT-MINIGAME/achievements.yml | 52 ---------- API/$$JUNIT-MINIGAME/arenas.yml | 4 - API/$$JUNIT-MINIGAME/classes.yml | 0 API/$$JUNIT-MINIGAME/guns.yml | 44 -------- API/$$JUNIT-MINIGAME/holograms.yml | 1 - API/$$JUNIT-MINIGAME/messages.yml | 141 -------------------------- API/$$JUNIT-MINIGAME/shop.yml | 47 --------- API/$$JUNIT-MINIGAME/stats.yml | 0 8 files changed, 289 deletions(-) delete mode 100644 API/$$JUNIT-MINIGAME/achievements.yml delete mode 100644 API/$$JUNIT-MINIGAME/arenas.yml delete mode 100644 API/$$JUNIT-MINIGAME/classes.yml delete mode 100644 API/$$JUNIT-MINIGAME/guns.yml delete mode 100644 API/$$JUNIT-MINIGAME/holograms.yml delete mode 100644 API/$$JUNIT-MINIGAME/messages.yml delete mode 100644 API/$$JUNIT-MINIGAME/shop.yml delete mode 100644 API/$$JUNIT-MINIGAME/stats.yml diff --git a/API/$$JUNIT-MINIGAME/achievements.yml b/API/$$JUNIT-MINIGAME/achievements.yml deleted file mode 100644 index 350aa17a..00000000 --- a/API/$$JUNIT-MINIGAME/achievements.yml +++ /dev/null @@ -1,52 +0,0 @@ -# Used for saving achievements details. -config: - enabled: true - achievements: - first_blood: - enabled: true - name: First Blood! - reward: - economy_reward: true - econ_reward_amount: 20 - command_reward: false - cmd: tell <player> Good job! - ten_kills: - enabled: true - name: Ten Kills! - reward: - economy_reward: true - econ_reward_amount: 50 - command_reward: false - cmd: tell <player> Good job! - hundred_kills: - enabled: true - name: Hundred Kills! - reward: - economy_reward: true - econ_reward_amount: 1000 - command_reward: false - cmd: tell <player> Good job! - first_win: - enabled: true - name: Your first win! - reward: - economy_reward: true - econ_reward_amount: 30 - command_reward: false - cmd: tell <player> Good job! - ten_wins: - enabled: true - name: Ten wins! - reward: - economy_reward: true - econ_reward_amount: 30 - command_reward: false - cmd: tell <player> Good job! - achievement_guy: - enabled: true - name: All achievement guy! - reward: - economy_reward: true - econ_reward_amount: 30 - command_reward: false - cmd: tell <player> Good job! diff --git a/API/$$JUNIT-MINIGAME/arenas.yml b/API/$$JUNIT-MINIGAME/arenas.yml deleted file mode 100644 index b7268fc9..00000000 --- a/API/$$JUNIT-MINIGAME/arenas.yml +++ /dev/null @@ -1,4 +0,0 @@ -# Used for saving arena details. -arenas: - junit-arena: - displayname: junit-arena diff --git a/API/$$JUNIT-MINIGAME/classes.yml b/API/$$JUNIT-MINIGAME/classes.yml deleted file mode 100644 index e69de29b..00000000 diff --git a/API/$$JUNIT-MINIGAME/guns.yml b/API/$$JUNIT-MINIGAME/guns.yml deleted file mode 100644 index d53a3d06..00000000 --- a/API/$$JUNIT-MINIGAME/guns.yml +++ /dev/null @@ -1,44 +0,0 @@ -# Be aware that this config is barely used in any minigame. -# Used for saving gun classes. Default: -config: - guns: - pistol: - name: Pistol - items: 256#DAMAGE_ALL:1#KNOCKBACK*1 - icon: 256#DAMAGE_ALL:1#KNOCKBACK*1 - lore: The Pistol. - speed: 1.0 - durability: 50 - shoot_amount: 1 - knockback_multiplier: 1.1 - permission_node: minigames.guns.pistol - sniper: - name: Sniper - items: 292#DAMAGE_ALL:1#KNOCKBACK*1 - icon: 292#DAMAGE_ALL:1#KNOCKBACK*1 - lore: The Sniper. - speed: 0.5 - durability: 10 - shoot_amount: 1 - knockback_multiplier: 3.0 - permission_node: minigames.guns.sniper - grenade: - name: Grenade Launcher - items: 257#DAMAGE_ALL:1#KNOCKBACK*1 - icon: 257#DAMAGE_ALL:1#KNOCKBACK*1 - lore: The Grenade Launcher. - speed: 0.1 - durability: 10 - shoot_amount: 1 - knockback_multiplier: 2.5 - permission_node: minigames.guns.grenade - freeze: - name: Freeze Gun - items: 258#DAMAGE_ALL:1#KNOCKBACK*1 - icon: 258#DAMAGE_ALL:1#KNOCKBACK*1 - lore: The Freeze Gun. - speed: 0.8 - durability: 5 - shoot_amount: 1 - knockback_multiplier: 0.5 - permission_node: minigames.guns.freeze diff --git a/API/$$JUNIT-MINIGAME/holograms.yml b/API/$$JUNIT-MINIGAME/holograms.yml deleted file mode 100644 index 2adfcc6e..00000000 --- a/API/$$JUNIT-MINIGAME/holograms.yml +++ /dev/null @@ -1 +0,0 @@ -# Used for saving stats holograms. diff --git a/API/$$JUNIT-MINIGAME/messages.yml b/API/$$JUNIT-MINIGAME/messages.yml deleted file mode 100644 index c635e69e..00000000 --- a/API/$$JUNIT-MINIGAME/messages.yml +++ /dev/null @@ -1,141 +0,0 @@ -# Contains all messages for easy translation. You can remove a mesage by setting it to nothing, like so: '' -signs: - starting: - '0': '&a[]' - '1': '&a<arena>' - '2': '&a<count>/<maxcount>' - '3': '&a[]' - join: - '0': '&a[]' - '1': '&a<arena>' - '2': '&a<count>/<maxcount>' - '3': '&a[]' - ingame: - '0': '&4[]' - '1': '&4<arena>' - '2': '&4<count>/<maxcount>' - '3': '&4[]' - restarting: - '0': '&e[]' - '1': '&e<arena>' - '2': '&e<count>/<maxcount>' - '3': '&e[]' - arcade: - '0': '[]' - '1': '&cArcade' - '2': <count>/<maxcount> - '3': '[]' - leave: - '0': '' - '1': '&4Leave' - '2': '' - '3': '' - random: - '0': '&a[]' - '1': '&2Random' - '2': '' - '3': '&a[]' -messages: - no_perm: '&cYou don''t have permission.' - successfully_reloaded: '&aSuccessfully reloaded all configs.' - successfully_set: '&aSuccessfully set &3<component>&a.' - successfully_saved_arena: '&aSuccessfully saved &3<arena>&a.' - arena_invalid: '&3<arena> &cappears to be invalid.' - failed_saving_arena: '&cFailed to save &3<arena>&c.' - broadcast_players_left: '&eThere are &4<count> &eplayers left!' - broadcast_player_joined: '&2<player> &ajoined the arena! (<count>/<maxcount>)' - player_died: '&c<player> died.' - arena_action: '&aYou <action> arena &3<arena>&a!' - you_already_are_in_arena: '&aYou already seem to be in arena &3<arena>&a!' - you_joined_arena: '&aYou joined arena &3<arena>&a!' - not_in_arena: '&cYou don''t seem to be in an arena right now.' - teleporting_to_arena_in: '&7Teleporting to arena in <count>.' - starting_in: '&aStarting in <count>!' - failed_removing_arena: '&cFailed to remove &3<arena>&c.' - successfully_removed: '&cSuccessfully removed &3<component>&c!' - failed_removing_component: '&cFailed removing &3<component>&c. <cause>.' - joined_arena: '&aYou joined &3<arena>&a.' - you_won: '&aYou &2won &athe game!' - you_lost: '&cYou &4lost &cthe game.' - you_got_a_kill: '&aYou killed &2<player>!' - player_was_killed_by: '&4<player> &cwas killed by &4<killer>&c!' - arena_not_initialized: '&cThe arena appears to be not initialized, did you save - the arena?' - guns: - attributelevel_increased: '&aThe <attribute> level was increased successfully!' - not_enough_credits: '&cThe max level of 3 was reached or you don''t have enough - credits. Needed: <credits>' - too_many_main_guns: '&cYou already have 2 main guns, remove one first.' - successfully_set_main_gun: '&aSuccessfully set a main gun (of a maximum of two).' - all_guns: '&aYour current main guns: &2<guns>' - arcade_next_minigame: '&6Next Arcade game: &4<minigame>&6!' - arcade_joined_waiting: '&6You joined Arcade! Waiting for <count> more players to - start.' - arcade_joined_spectator: '&6You joined Arcade as a spectator! You''ll be able to - play in the next minigame.' - arcade_new_round: '&6Next Arcade round in <count>!' - arena_disabled: '&cThe arena is disabled thus you can''t join.' - you_can_leave_with: '&cYou can leave with <cmd> or /l!' - no_perm_to_join_arena: '&cYou don''t have permission (arenas.<arena>) to join this - arena as it''s vip!' - set_kit: '&aSuccessfully set &2<kit>&a!' - classes_item: '&4Classes' - achievement_item: '&4Achievements' - shop_item: '&4Shop' - spectator_item: '&4Players' - server_broadcast_winner: '&2<player> &awon the game on &2<arena>&a!' - exit_item: '&4Leave the game' - successfully_bought_kit: '&aSuccessfully bought &2<kit> &afor &2<money>&a.' - scoreboard: - title: '&4<arena>' - lobby_title: '&4[<arena>]' - you_got_kicked_because_vip_joined: '&cYou got kicked out of the game because a vip - joined!' - powerup_spawned: '&2A Powerup spawned!' - you_got_the_achievement: '&3You got the achievement &b<achievement>&3!' - game_started: '&2The game has started!' - author_of_the_map: '&3You are playing on the map &b<arena> &3by &b<author>&3!' - description_of_the_map: <description> - not_enough_money: '&cYou don''t have enough money.' - possible_kits: '&aPossible kits: &2' - possible_shopitems: '&aPossible shop items: &2' - cancelled_starting: '&cThe starting countdown was cancelled because there''s only - one player left in the arena.' - minigame_description: '' - successfully_bought_shopitem: '&aSuccessfully bought &2<shopitem> &afor &2<money>&a.' - already_bought_shopitem: '&aYou already had &2<shopitem>&a.' - you_received_rewards: '&aYou received a reward of &2<economyreward>' - you_received_rewards_2: ' &aand ' - you_received_rewards_3: '&2<itemreward>&a!' - already_in_arena: '&cYou are already in an arena.' - stop_cause_maximum_game_time: '&cThe game is stopping in 5 seconds because the maximum - game time was reached.' - compass: - no_player_found: '&cNo near players found!' - found_player: '&aThe compass is tracking &3<player> &anow. Distance: <distance>' - you_got_a_participation_reward: '&aYou received &2<economyreward> &afor participating!' - kit_warning: '&7Be aware that you''ll only get the &8last &7kit you bought even - if you buy all of them.' - custom_scoreboard: - line0: Players:<playercount> - line1: Spectators:<lostplayercount> - line2: Alive:<playeralivecount> - line3: Your Credits:<points> - line4: Your Wins:<wins> - custom_lobby_scoreboard: - line0: Players:<playercount> - line1: Max Players:<maxplayercount> - line2: Your Credits:<points> - line3: Your Wins:<wins> - stats: - line0: '&7----- &a&lStats &7-----; ' - line1: '&7Wins: &a<wins>' - line2: '&7Loses: &c<loses>' - line3: '&7Alltime Kills: &a<alltime_kills>' - line4: '&7Alltime Deaths: &c<alltime_deaths>' - line5: '&7KDR: &e<kdr>' - line6: '&7Points: &e<points>' - line7: ' ;&7-----------------' -config: - generatedv182: true - generatedv1102: true diff --git a/API/$$JUNIT-MINIGAME/shop.yml b/API/$$JUNIT-MINIGAME/shop.yml deleted file mode 100644 index 0ca63ab0..00000000 --- a/API/$$JUNIT-MINIGAME/shop.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Used for saving shop items. Default shop items: -config: - shop_items: - coin_boost2: - name: Coin boost * 2 - enabled: true - uses_items: false - items: 388*1 - icon: 388*1 - lore: Will give all winners a double money reward boost. - requires_money: true - requires_permission: false - money_amount: 1500 - permission_node: minigames.shop_item.coin_boost2 - coin_boost3: - name: Coin boost * 3 - enabled: true - uses_items: false - items: 388*2 - icon: 388*2 - lore: Will give all winners a triple money reward boost. - requires_money: true - requires_permission: false - money_amount: 3000 - permission_node: minigames.shop_item.coin_boost3 - coin_boost2_solo: - name: Coin boost * 2 Solo - enabled: true - uses_items: false - items: 264*1 - icon: 264*1 - lore: Will give you a double money reward boost. - requires_money: true - requires_permission: false - money_amount: 1000 - permission_node: minigames.shop_item.coin_boost2_solo - coin_boost3_solo: - name: Coin boost * 3 Solo - enabled: true - uses_items: false - items: 264*2 - icon: 264*2 - lore: Will give you a triple money reward boost. - requires_money: true - requires_permission: false - money_amount: 2000 - permission_node: minigames.shop_item.coin_boost3_solo diff --git a/API/$$JUNIT-MINIGAME/stats.yml b/API/$$JUNIT-MINIGAME/stats.yml deleted file mode 100644 index e69de29b..00000000 From d5b25377a8cce61ab2c7bbe8fc56dc6b46979ce4 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 5 Jul 2016 07:46:09 +0200 Subject: [PATCH 029/266] gitignore junit files --- .gitignore | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index e11e9ab3..f3b4b120 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,12 @@ -.settings -bin -.classpath -.project -*.bak -*.rar -*.zip -*.class -target/ -javadocs/ -*.iml \ No newline at end of file +.settings +bin +.classpath +.project +*.bak +*.rar +*.zip +*.class +target/ +javadocs/ +*.iml +$$*/* \ No newline at end of file From eeaf4231e57d88d20703e234097d234e169060a5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 5 Jul 2016 07:47:25 +0200 Subject: [PATCH 030/266] gitignore junit files --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f3b4b120..307dab7f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,4 @@ bin target/ javadocs/ *.iml -$$*/* \ No newline at end of file +API/$*/* \ No newline at end of file From 60a25ffc5105e52a4da5c937793a17a543947148 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 5 Jul 2016 07:47:25 +0200 Subject: [PATCH 031/266] gitignore junit files --- .gitignore | 3 ++- .../minigamesapi/spigottest/SpigotTestSupport.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 307dab7f..7e6aa541 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ bin target/ javadocs/ *.iml -API/$*/* \ No newline at end of file +**/.$* +**/.$* \ No newline at end of file diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java index 0f2b8041..f59626ba 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -226,7 +226,7 @@ protected JavaPlugin mockPlugin(String name, String version, FileConfiguration c return invocation.callRealMethod(); }); final PluginLogger logger = mock(PluginLogger.class); - final File dataFolder = new File("$" + name); //$NON-NLS-1$ + final File dataFolder = new File(".$" + name); //$NON-NLS-1$ final PluginDescriptionFile description = new PluginDescriptionFile(name, version, "foo"); //$NON-NLS-1$ Whitebox.setInternalState(plugin, "newConfig", config); //$NON-NLS-1$ Whitebox.setInternalState(plugin, "logger", logger); //$NON-NLS-1$ From 28255cc5a4df8f0a39cb67a5556da31de6a8a824 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 6 Jul 2016 05:52:56 +0200 Subject: [PATCH 032/266] junit tests --- API/pom.xml | 8 + .../minigamesapi/util/Validator.java | 61 +- .../minigamesapi/test/ArenaTest.java | 92 +- .../minigamesapi/test/ValidatorTest.java | 109 ++ .../minigamesapi/testutil/TestUtil.java | 190 ++- .../minigamesapi/spigottest/DummyServer.java | 31 +- .../minigamesapi/spigottest/DummyWorld.java | 1403 +++++++++++++++++ .../spigottest/SpigotTestSupport.java | 97 +- 8 files changed, 1862 insertions(+), 129 deletions(-) create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/ValidatorTest.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java diff --git a/API/pom.xml b/API/pom.xml index 1b31f858..cc2cf93d 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -107,6 +107,14 @@ </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>@{argLine}</argLine> + </configuration> + </plugin> + <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java index 86e34fb6..3413c11e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java @@ -24,15 +24,22 @@ import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaLogger; import com.comze_instancelabs.minigamesapi.MinigamesAPI; +import com.comze_instancelabs.minigamesapi.PluginInstance; +/** + * Validation helpers. + * + * @author instancelabs + */ public class Validator { /*** * returns true if given player is online * - * @param arena - * @return + * @param player + * name of the player. + * @return true if the player is online. */ public static boolean isPlayerOnline(final String player) { @@ -47,8 +54,13 @@ public static boolean isPlayerOnline(final String player) /*** * returns true if given player is online and in arena * + * @param plugin + * minigame java plugin. + * @param player + * the player name * @param arena - * @return + * the arena + * @return {@code true} if the player is online and in given arena. */ public static boolean isPlayerValid(final JavaPlugin plugin, final String player, final Arena arena) { @@ -58,8 +70,13 @@ public static boolean isPlayerValid(final JavaPlugin plugin, final String player /*** * returns true if given player is online and in arena * + * @param plugin + * the minigame java plugin + * @param player + * the player name * @param arena - * @return + * the arena name + * @return {@code true} if the player is online and in given arena. */ public static boolean isPlayerValid(final JavaPlugin plugin, final String player, final String arena) { @@ -67,11 +84,12 @@ public static boolean isPlayerValid(final JavaPlugin plugin, final String player { return false; } - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).global_players.containsKey(player)) + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (!pli.global_players.containsKey(player)) { return false; } - if (!MinigamesAPI.getAPI().getPluginInstance(plugin).global_players.get(player).getInternalName().equalsIgnoreCase(arena)) + if (!pli.global_players.get(player).getInternalName().equalsIgnoreCase(arena)) { return false; } @@ -79,10 +97,13 @@ public static boolean isPlayerValid(final JavaPlugin plugin, final String player } /*** - * returns true if given arena was set up correctly + * returns true if given arena was set up correctly; if it contains a lobby and at leats one spawn. * + * @param plugin + * the minigame java plugin * @param arena - * @return + * the arena to test + * @return {@code true} if the arena is valid */ public static boolean isArenaValid(final JavaPlugin plugin, final Arena arena) { @@ -92,31 +113,37 @@ public static boolean isArenaValid(final JavaPlugin plugin, final Arena arena) /*** * returns true if given arena was set up correctly * + * @param plugin + * the minigame java plugin * @param arena - * @return + * the arena to test + * @return {@code true} if the arena is valid */ public static boolean isArenaValid(final JavaPlugin plugin, final String arena) { final FileConfiguration config = MinigamesAPI.getAPI().getPluginInstance(plugin).getArenasConfig().getConfig(); - if (!config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby") || !config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0")) - { - ArenaLogger.debug(ChatColor.AQUA + arena + " is invalid! lobby:" + config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby") + " spawns.spawn0:" + config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0")); - return false; - } - return true; + return isArenaValid(plugin, arena, config); } /*** * returns true if given arena was set up correctly * + * @param plugin + * the minigame java plugin * @param arena - * @return + * the arena to test + * @param cf + * the configuration to test + * @return {@code true} if the arena is valid */ public static boolean isArenaValid(final JavaPlugin plugin, final String arena, final FileConfiguration cf) { final FileConfiguration config = cf; - if (!config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby") || !config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0")) + final boolean hasLobby = config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".lobby"); + final boolean hasSpawn0 = config.isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".spawns.spawn0"); + if (!hasLobby || !hasSpawn0) { + ArenaLogger.debug(ChatColor.AQUA + arena + " is invalid! lobby:" + hasLobby + " spawns.spawn0:" + hasSpawn0); //$NON-NLS-1$ //$NON-NLS-2$ return false; } return true; diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java index f7712394..a939a24f 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; import java.util.ArrayList; @@ -25,6 +26,7 @@ import org.junit.Test; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.ArenaType; import com.comze_instancelabs.minigamesapi.testutil.TestUtil; @@ -41,8 +43,14 @@ public class ArenaTest extends TestUtil /** the default arena name. */ private static final String ARENA = "junit-arena"; //$NON-NLS-1$ + /** the default arena name. */ + private static final String ARENA2 = "junit-arena2"; //$NON-NLS-1$ + + /** the default arena name. */ + private static final String ARENA3 = "junit-arena3"; //$NON-NLS-1$ + /** the junit minigame. */ - private static final String MINIGAME = "$JUNIT-MINIGAME"; //$NON-NLS-1$ + private static final String MINIGAME = "$JUNIT-ARENA-TEST"; //$NON-NLS-1$ /** * Tests the arena class constructor. @@ -50,7 +58,7 @@ public class ArenaTest extends TestUtil @Test public void testConstructor() { - final Minigame minigame = this.setupMinigame(MINIGAME); + final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "Constructor"); //$NON-NLS-1$ final Arena arena = new Arena(minigame.javaPlugin, ARENA); assertSame(arena.getPlugin(), minigame.javaPlugin); @@ -59,6 +67,8 @@ public void testConstructor() assertEquals(ARENA, arena.getInternalName()); assertEquals(ARENA, arena.getName()); assertEquals(ArenaType.DEFAULT, arena.getArenaType()); + + assertSame(arena, arena.getArena()); } /** @@ -67,7 +77,7 @@ public void testConstructor() @Test public void testConstructorType() { - final Minigame minigame = this.setupMinigame(MINIGAME); + final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "ConstructorType"); //$NON-NLS-1$ final Arena arena = new Arena(minigame.javaPlugin, ARENA, ArenaType.JUMPNRUN); assertSame(arena.getPlugin(), minigame.javaPlugin); @@ -84,7 +94,26 @@ public void testConstructorType() @Test public void testInit() { - final Minigame minigame = this.setupMinigame(MINIGAME); + this.initWorld("world"); //$NON-NLS-1$ + final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "Init", (mg) -> { //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA3, "lobby", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + mg.addArenaComponentToConfig(ARENA3, "spawns.spawn0", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.BOUNDS_LOW, "world", 1, 2, 3, 80, 80); //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.BOUNDS_HIGH, "world", 2, 3, 4, 80, 80); //$NON-NLS-1$ + + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.LOBBY_BOUNDS_LOW, "world", 3, 4, 5, 80, 80); //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.LOBBY_BOUNDS_HIGH, "world", 4, 5, 6, 80, 80); //$NON-NLS-1$ + + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.SPEC_BOUNDS_LOW, "world", 5, 6, 7, 80, 80); //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.SPEC_BOUNDS_HIGH, "world", 6, 7, 8, 80, 80); //$NON-NLS-1$ + + mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.SPEC_SPAWN, "world", 9, 10, 11, 80, 80); //$NON-NLS-1$ + + mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA3).set("displayname", "FOO"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + }); + + // 1) normal init with unknown arena final Arena arena = new Arena(minigame.javaPlugin, ARENA); final Location signLoc = new Location(null, 1, 1, 1); @@ -122,6 +151,61 @@ public void testInit() assertFalse(arena.isVIPArena()); assertEquals(2, arena.getMinPlayers()); assertEquals(10, arena.getMaxPlayers()); + + assertTrue(arena.isSuccessfullyInit()); + + + + // 2) init without spawns, deprecated method (should be changed to init as soon as we remove the method) + final Arena arena2 = new Arena(minigame.javaPlugin, ARENA2); + arena2.initArena(signLoc, null, mainlobby, waitinglobby, 5, 4, true); + + assertEquals(1, arena2.getSignLocation().getX(), 0); + assertEquals(1, arena2.getSignLocation().getY(), 0); + assertEquals(1, arena2.getSignLocation().getZ(), 0); + + assertEquals(0, arena2.getSpawns().size()); + assertEquals(4, arena2.getMainLobby().getX(), 0); + assertEquals(4, arena2.getMainLobby().getY(), 0); + assertEquals(4, arena2.getMainLobby().getZ(), 0); + + assertEquals(5, arena2.getWaitingLobby().getX(), 0); + assertEquals(5, arena2.getWaitingLobby().getY(), 0); + assertEquals(5, arena2.getWaitingLobby().getZ(), 0); + + assertTrue(arena2.isVIPArena()); + assertEquals(4, arena2.getMinPlayers()); + assertEquals(5, arena2.getMaxPlayers()); + + assertTrue(arena2.isSuccessfullyInit()); + + + + // 3) init configured arena + final Arena arena3 = new Arena(minigame.javaPlugin, ARENA3); + arena3.init(signLoc, null, mainlobby, waitinglobby, 5, 4, true); + assertEquals("FOO", arena3.getDisplayName()); //$NON-NLS-1$ + + assertEquals(1, arena3.getBoundaries().getLowLoc().getX(), 0); + assertEquals(2, arena3.getBoundaries().getLowLoc().getY(), 0); + assertEquals(3, arena3.getBoundaries().getLowLoc().getZ(), 0); + assertEquals(2, arena3.getBoundaries().getHighLoc().getX(), 0); + assertEquals(3, arena3.getBoundaries().getHighLoc().getY(), 0); + assertEquals(4, arena3.getBoundaries().getHighLoc().getZ(), 0); + + assertEquals(3, arena3.getLobbyBoundaries().getLowLoc().getX(), 0); + assertEquals(4, arena3.getLobbyBoundaries().getLowLoc().getY(), 0); + assertEquals(5, arena3.getLobbyBoundaries().getLowLoc().getZ(), 0); + assertEquals(4, arena3.getLobbyBoundaries().getHighLoc().getX(), 0); + assertEquals(5, arena3.getLobbyBoundaries().getHighLoc().getY(), 0); + assertEquals(6, arena3.getLobbyBoundaries().getHighLoc().getZ(), 0); + + assertEquals(5, arena3.getSpecBoundaries().getLowLoc().getX(), 0); + assertEquals(6, arena3.getSpecBoundaries().getLowLoc().getY(), 0); + assertEquals(7, arena3.getSpecBoundaries().getLowLoc().getZ(), 0); + assertEquals(6, arena3.getSpecBoundaries().getHighLoc().getX(), 0); + assertEquals(7, arena3.getSpecBoundaries().getHighLoc().getY(), 0); + assertEquals(8, arena3.getSpecBoundaries().getHighLoc().getZ(), 0); } } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ValidatorTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ValidatorTest.java new file mode 100644 index 00000000..6fa1b5d1 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ValidatorTest.java @@ -0,0 +1,109 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.UUID; + +import org.junit.Test; + +import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.testutil.TestUtil; +import com.comze_instancelabs.minigamesapi.util.Validator; + +/** + * The tester for the validator class. + * + * @author mepeisen + * + * @see Validator + */ +public class ValidatorTest extends TestUtil +{ + + /** the default arena name. */ + private static final String ARENA = "junit-arena"; //$NON-NLS-1$ + + /** the default arena name. */ + private static final String ARENA_EXISTING = "existing-arena"; //$NON-NLS-1$ + + /** the default arena name. */ + private static final String ARENA_VALID = "valid-arena"; //$NON-NLS-1$ + + /** the junit minigame. */ + private static final String MINIGAME = "$JUNIT-VALIDATOR-TEST"; //$NON-NLS-1$ + + /** + * tests the validator isPlayerOnline + */ + @Test + public void testIsPlayerOnline() + { + this.mockOnlinePlayer("PLAYER_ONLINE", UUID.randomUUID()); //$NON-NLS-1$ + assertTrue(Validator.isPlayerOnline("PLAYER_ONLINE")); //$NON-NLS-1$ + assertFalse(Validator.isPlayerOnline("PLAYER_OFFLINE")); //$NON-NLS-1$ + } + + /** + * tests the validator isPlayerValid + */ + @Test + public void testIsPlayerValid() + { + this.mockOnlinePlayer("PLAYER_ONLINE", UUID.randomUUID()); //$NON-NLS-1$ + this.mockOnlinePlayer("PLAYER_ARENA", UUID.randomUUID()); //$NON-NLS-1$ + final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "isPlayerValid"); //$NON-NLS-1$ + final Arena arena = new Arena(minigame.javaPlugin, ARENA); + final Arena arenaValid = new Arena(minigame.javaPlugin, ARENA_VALID); + minigame.pluginInstance.global_players.put("PLAYER_ARENA", arenaValid); //$NON-NLS-1$ + + assertFalse(Validator.isPlayerValid(minigame.javaPlugin, "PLAYER_OFFLINE", arena)); //$NON-NLS-1$ + assertFalse(Validator.isPlayerValid(minigame.javaPlugin, "PLAYER_OFFLINE", arenaValid)); //$NON-NLS-1$ + assertFalse(Validator.isPlayerValid(minigame.javaPlugin, "PLAYER_ONLINE", arena)); //$NON-NLS-1$ + assertFalse(Validator.isPlayerValid(minigame.javaPlugin, "PLAYER_ONLINE", arenaValid)); //$NON-NLS-1$ + assertFalse(Validator.isPlayerValid(minigame.javaPlugin, "PLAYER_ARENA", arena)); //$NON-NLS-1$ + assertTrue(Validator.isPlayerValid(minigame.javaPlugin, "PLAYER_ARENA", arenaValid)); //$NON-NLS-1$ + } + + /** + * Tests the validator isArenaValid + */ + @Test + public void testArenaIsValid() + { + final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "isArenaValid", (mg) -> { //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA_EXISTING, "lobby", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + + mg.addArenaComponentToConfig(ARENA_VALID, "lobby", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + mg.addArenaComponentToConfig(ARENA_VALID, "spawns.spawn0", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + }); + + // check if unknown arena is not valid + final Arena arena = new Arena(minigame.javaPlugin, ARENA); + assertFalse(Validator.isArenaValid(minigame.javaPlugin, arena)); + + // check if known arena is not valid + final Arena arenaExisting = new Arena(minigame.javaPlugin, ARENA_EXISTING); + assertFalse(Validator.isArenaValid(minigame.javaPlugin, arenaExisting)); + + // check if unknown arena is not valid + final Arena arenaValid = new Arena(minigame.javaPlugin, ARENA_VALID); + assertTrue(Validator.isArenaValid(minigame.javaPlugin, arenaValid)); + } + +} diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java index f6c607f6..10f0957d 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java @@ -27,9 +27,9 @@ import java.util.Map; import java.util.function.Consumer; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; -import org.junit.After; import org.junit.Before; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -48,7 +48,7 @@ * * @author mepeisen */ -@PrepareForTest({MinigamesAPI.class}) +@PrepareForTest({ MinigamesAPI.class }) public abstract class TestUtil extends SpigotTestSupport { @@ -62,7 +62,7 @@ public abstract class TestUtil extends SpigotTestSupport public void setupMinigameTest() { this.minigameTest = new MinigameTestHelper(); - + final MinigamesAPI api = mock(MinigamesAPI.class); mockStatic(MinigamesAPI.class); when(MinigamesAPI.getAPI()).thenReturn(api); @@ -72,93 +72,147 @@ public void setupMinigameTest() this.minigameTest.api = api; } - /** - * Tear down all plugins and players. - */ - @After - public void teardownMinigamesAndPlayers() - { - this.teardownPlugins(); - this.teardownPlayers(); - teardownConfigFiles(); - this.teardownScoreboards(); - this.teardownTasks(); - } - - /** - * Setup a minigame. - * @param name minigame plugin name - * @return the minigame data - */ - protected Minigame setupMinigame(String name) - { - return setupMinigame(name, null); - } - - /** - * Setup a minigame and perform some setup before loading via minigames api. - * @param name minigame plugin name - * @param preSetup setup function - * @return the minigame data - */ - protected Minigame setupMinigame(String name, Consumer<Minigame> preSetup) - { - final Minigame minigame = new Minigame(); - final YamlConfiguration config = mockFileConfig(); - final JavaPlugin plugin = this.mockPlugin(name, "1.0", config); //$NON-NLS-1$ - minigame.javaPlugin = plugin; - minigame.achievementsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "achievements.yml"))); //$NON-NLS-1$ - minigame.arenasYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "arenas.yml"))); //$NON-NLS-1$ - minigame.classesYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "classes.yml"))); //$NON-NLS-1$ - minigame.gunsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "guns.yml"))); //$NON-NLS-1$ - minigame.hologramsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "holograms.yml"))); //$NON-NLS-1$ - minigame.messagesYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "messages.yml"))); //$NON-NLS-1$ - minigame.shopYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "shop.yml"))); //$NON-NLS-1$ - minigame.statsYml = setupConfigFile((file) -> file.equals(new File(plugin.getDataFolder(), "stats.yml"))); //$NON-NLS-1$ - if (preSetup != null) - { - preSetup.accept(minigame); - } - MinigamesAPI.setupAPI( - plugin, - name, - Arena.class, - new ArenasConfig(plugin), - new MessagesConfig(plugin), - new ClassesConfig(plugin, true), - new StatsConfig(plugin, true), - new DefaultConfig(plugin, true), - false); - minigame.pluginInstance = MinigamesAPI.getAPI().getPluginInstance(plugin); - return minigame; - } - /** * Helper class for minigame api access. + * * @author mepeisen */ - public static final class MinigameTestHelper + public final class MinigameTestHelper { - public MinigamesAPI api; + /** the minigames api. */ + public MinigamesAPI api; + /** hashmap with minigames by internal name. */ public Map<String, Minigame> minigames = new HashMap<>(); + + /** + * Setup a minigame. + * + * @param name + * minigame plugin name + * @return the minigame data + */ + public Minigame setupMinigame(String name) + { + return setupMinigame(name, null); + } + + /** + * Setup a minigame and perform some setup before loading via minigames api. + * + * @param name + * minigame plugin name + * @param preSetup + * setup function + * @return the minigame data + */ + public Minigame setupMinigame(String name, Consumer<Minigame> preSetup) + { + final Minigame minigame = new Minigame(); + this.minigames.put(name, minigame); + final YamlConfiguration config = mockFileConfig(); + final JavaPlugin plugin = mockPlugin(name, "1.0", config); //$NON-NLS-1$ + minigame.javaPlugin = plugin; + minigame.achievementsYml = setupConfigFile(new File(plugin.getDataFolder(), "achievements.yml")); //$NON-NLS-1$ + minigame.arenasYml = setupConfigFile(new File(plugin.getDataFolder(), "arenas.yml")); //$NON-NLS-1$ + minigame.classesYml = setupConfigFile(new File(plugin.getDataFolder(), "classes.yml")); //$NON-NLS-1$ + minigame.gunsYml = setupConfigFile(new File(plugin.getDataFolder(), "guns.yml")); //$NON-NLS-1$ + minigame.hologramsYml = setupConfigFile(new File(plugin.getDataFolder(), "holograms.yml")); //$NON-NLS-1$ + minigame.messagesYml = setupConfigFile(new File(plugin.getDataFolder(), "messages.yml")); //$NON-NLS-1$ + minigame.shopYml = setupConfigFile(new File(plugin.getDataFolder(), "shop.yml")); //$NON-NLS-1$ + minigame.statsYml = setupConfigFile(new File(plugin.getDataFolder(), "stats.yml")); //$NON-NLS-1$ + if (preSetup != null) + { + preSetup.accept(minigame); + } + MinigamesAPI.setupAPI(plugin, name, Arena.class, new ArenasConfig(plugin), new MessagesConfig(plugin), new ClassesConfig(plugin, true), new StatsConfig(plugin, true), + new DefaultConfig(plugin, true), false); + minigame.pluginInstance = MinigamesAPI.getAPI().getPluginInstance(plugin); + return minigame; + } } /** * data of a single minigame + * * @author mepeisen */ public static final class Minigame { + /** stats.yml */ public YamlConfiguration statsYml; + /** shop.yml */ public YamlConfiguration shopYml; + /** messages.yml */ public YamlConfiguration messagesYml; + /** holograms.yml */ public YamlConfiguration hologramsYml; + /** classes.yml */ public YamlConfiguration classesYml; + /** guns.yml */ public YamlConfiguration gunsYml; + /** arenas.yml */ public YamlConfiguration arenasYml; + /** achievements.yml */ public YamlConfiguration achievementsYml; - public PluginInstance pluginInstance; - public JavaPlugin javaPlugin; + /** this minigame plugin instance. */ + public PluginInstance pluginInstance; + /** the minigame java plugin. */ + public JavaPlugin javaPlugin; + + /** + * Adds a location component to config + * + * @param arenaName + * arena name + * @param component + * component path (f.e. "lobby") + * @param world + * the world + * @param x + * the x coordinate + * @param y + * the y coordinate + * @param z + * the z coordinate + * @param pitch + * the pitch + * @param yaw + * the yaw + */ + public void addArenaComponentToConfig(String arenaName, String component, String world, double x, double y, double z, double pitch, double yaw) + { + ConfigurationSection arenas = this.arenasYml.getConfigurationSection("arenas"); //$NON-NLS-1$ + if (arenas == null) + { + arenas = this.arenasYml.createSection("arenas"); //$NON-NLS-1$ + } + + ConfigurationSection carena = arenas.getConfigurationSection(arenaName); + if (carena == null) + { + carena = arenas.createSection(arenaName); + } + + ConfigurationSection ccomponent = carena; + for (String path : component.split("\\.")) //$NON-NLS-1$ + { + ConfigurationSection csect = ccomponent.getConfigurationSection(path); + if (csect == null) + { + csect = ccomponent.createSection(path); + } + ccomponent = csect; + } + + ccomponent.set("world", world); //$NON-NLS-1$ + final Map<String, Object> location = new HashMap<>(); + location.put("x", Double.valueOf(x)); //$NON-NLS-1$ + location.put("y", Double.valueOf(y)); //$NON-NLS-1$ + location.put("z", Double.valueOf(z)); //$NON-NLS-1$ + location.put("pitch", Double.valueOf(pitch)); //$NON-NLS-1$ + location.put("yaw", Double.valueOf(yaw)); //$NON-NLS-1$ + ccomponent.createSection("location", location); //$NON-NLS-1$ + } } } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java index 49449010..5d7d0f91 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -1,5 +1,6 @@ package com.comze_instancelabs.minigamesapi.spigottest; +import java.io.File; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; @@ -7,16 +8,19 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; +import java.util.function.Function; import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemFactory; import org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftScheduler; import org.bukkit.craftbukkit.v1_10_R1.util.Versioning; import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitScheduler; /** * originally taken from spigot test sources @@ -83,6 +87,9 @@ public static void setup() { private DummyPluginManager pluginManager = new DummyPluginManager(); private DummyScoreboardManager scoreboardManager = new DummyScoreboardManager(); private CraftScheduler scheduler = new CraftScheduler(); + private Map<String, World> worlds = new HashMap<>(); + + private final Map<File, YamlConfiguration> configFiles = new HashMap<>(); private int tick = 1; @@ -115,6 +122,8 @@ public Object invoke(Object proxy, Method method, Object[] args) { return Collections.unmodifiableList(this.onlineList); case "getScheduler": return this.scheduler; + case "getWorld": + return this.worlds.get((String) args[0]); case "getPlayer": for (final Player player : onlineList) { @@ -168,6 +177,16 @@ public void clearPlayers() { this.onlineList.clear(); } + + public Map<File, YamlConfiguration> getConfigFiles() + { + return this.configFiles; + } + + public void clearWorlds() + { + this.worlds.clear(); + } /** * @@ -178,4 +197,14 @@ public void clearTicks() this.tick = 1; this.scheduler = new CraftScheduler(); } + + /** + * Initializes a new dummy world. + * @param name + * @return world instance + */ + public World initWorld(String name) + { + return this.worlds.computeIfAbsent(name, (n) -> new DummyWorld()); + } } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java new file mode 100644 index 00000000..6686c83b --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java @@ -0,0 +1,1403 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.io.File; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.UUID; + +import org.bukkit.BlockChangeDelegate; +import org.bukkit.Chunk; +import org.bukkit.ChunkSnapshot; +import org.bukkit.Difficulty; +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Particle; +import org.bukkit.Sound; +import org.bukkit.TreeType; +import org.bukkit.World; +import org.bukkit.WorldBorder; +import org.bukkit.WorldType; +import org.bukkit.block.Biome; +import org.bukkit.block.Block; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.FallingBlock; +import org.bukkit.entity.Item; +import org.bukkit.entity.LightningStrike; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.generator.BlockPopulator; +import org.bukkit.generator.ChunkGenerator; +import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.MetadataValue; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.Vector; + +/** + * @author mepeisen + */ +public class DummyWorld implements World +{ + + /* (non-Javadoc) + * @see org.bukkit.plugin.messaging.PluginMessageRecipient#sendPluginMessage(org.bukkit.plugin.Plugin, java.lang.String, byte[]) + */ + @Override + public void sendPluginMessage(Plugin paramPlugin, String paramString, byte[] paramArrayOfByte) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.plugin.messaging.PluginMessageRecipient#getListeningPluginChannels() + */ + @Override + public Set<String> getListeningPluginChannels() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.metadata.Metadatable#setMetadata(java.lang.String, org.bukkit.metadata.MetadataValue) + */ + @Override + public void setMetadata(String paramString, MetadataValue paramMetadataValue) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.metadata.Metadatable#getMetadata(java.lang.String) + */ + @Override + public List<MetadataValue> getMetadata(String paramString) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.metadata.Metadatable#hasMetadata(java.lang.String) + */ + @Override + public boolean hasMetadata(String paramString) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.metadata.Metadatable#removeMetadata(java.lang.String, org.bukkit.plugin.Plugin) + */ + @Override + public void removeMetadata(String paramString, Plugin paramPlugin) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getBlockAt(int, int, int) + */ + @Override + public Block getBlockAt(int paramInt1, int paramInt2, int paramInt3) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getBlockAt(org.bukkit.Location) + */ + @Override + public Block getBlockAt(Location paramLocation) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getBlockTypeIdAt(int, int, int) + */ + @Override + public int getBlockTypeIdAt(int paramInt1, int paramInt2, int paramInt3) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getBlockTypeIdAt(org.bukkit.Location) + */ + @Override + public int getBlockTypeIdAt(Location paramLocation) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getHighestBlockYAt(int, int) + */ + @Override + public int getHighestBlockYAt(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getHighestBlockYAt(org.bukkit.Location) + */ + @Override + public int getHighestBlockYAt(Location paramLocation) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getHighestBlockAt(int, int) + */ + @Override + public Block getHighestBlockAt(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getHighestBlockAt(org.bukkit.Location) + */ + @Override + public Block getHighestBlockAt(Location paramLocation) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getChunkAt(int, int) + */ + @Override + public Chunk getChunkAt(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getChunkAt(org.bukkit.Location) + */ + @Override + public Chunk getChunkAt(Location paramLocation) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getChunkAt(org.bukkit.block.Block) + */ + @Override + public Chunk getChunkAt(Block paramBlock) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#isChunkLoaded(org.bukkit.Chunk) + */ + @Override + public boolean isChunkLoaded(Chunk paramChunk) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getLoadedChunks() + */ + @Override + public Chunk[] getLoadedChunks() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#loadChunk(org.bukkit.Chunk) + */ + @Override + public void loadChunk(Chunk paramChunk) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#isChunkLoaded(int, int) + */ + @Override + public boolean isChunkLoaded(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#isChunkInUse(int, int) + */ + @Override + public boolean isChunkInUse(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#loadChunk(int, int) + */ + @Override + public void loadChunk(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#loadChunk(int, int, boolean) + */ + @Override + public boolean loadChunk(int paramInt1, int paramInt2, boolean paramBoolean) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#unloadChunk(org.bukkit.Chunk) + */ + @Override + public boolean unloadChunk(Chunk paramChunk) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#unloadChunk(int, int) + */ + @Override + public boolean unloadChunk(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#unloadChunk(int, int, boolean) + */ + @Override + public boolean unloadChunk(int paramInt1, int paramInt2, boolean paramBoolean) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#unloadChunk(int, int, boolean, boolean) + */ + @Override + public boolean unloadChunk(int paramInt1, int paramInt2, boolean paramBoolean1, boolean paramBoolean2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#unloadChunkRequest(int, int) + */ + @Override + public boolean unloadChunkRequest(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#unloadChunkRequest(int, int, boolean) + */ + @Override + public boolean unloadChunkRequest(int paramInt1, int paramInt2, boolean paramBoolean) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#regenerateChunk(int, int) + */ + @Override + public boolean regenerateChunk(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#refreshChunk(int, int) + */ + @Override + public boolean refreshChunk(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#dropItem(org.bukkit.Location, org.bukkit.inventory.ItemStack) + */ + @Override + public Item dropItem(Location paramLocation, ItemStack paramItemStack) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#dropItemNaturally(org.bukkit.Location, org.bukkit.inventory.ItemStack) + */ + @Override + public Item dropItemNaturally(Location paramLocation, ItemStack paramItemStack) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnArrow(org.bukkit.Location, org.bukkit.util.Vector, float, float) + */ + @Override + public Arrow spawnArrow(Location paramLocation, Vector paramVector, float paramFloat1, float paramFloat2) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnArrow(org.bukkit.Location, org.bukkit.util.Vector, float, float, java.lang.Class) + */ + @Override + public <T extends Arrow> T spawnArrow(Location paramLocation, Vector paramVector, float paramFloat1, float paramFloat2, Class<T> paramClass) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#generateTree(org.bukkit.Location, org.bukkit.TreeType) + */ + @Override + public boolean generateTree(Location paramLocation, TreeType paramTreeType) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#generateTree(org.bukkit.Location, org.bukkit.TreeType, org.bukkit.BlockChangeDelegate) + */ + @Override + public boolean generateTree(Location paramLocation, TreeType paramTreeType, BlockChangeDelegate paramBlockChangeDelegate) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnEntity(org.bukkit.Location, org.bukkit.entity.EntityType) + */ + @Override + public Entity spawnEntity(Location paramLocation, EntityType paramEntityType) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#strikeLightning(org.bukkit.Location) + */ + @Override + public LightningStrike strikeLightning(Location paramLocation) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#strikeLightningEffect(org.bukkit.Location) + */ + @Override + public LightningStrike strikeLightningEffect(Location paramLocation) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getEntities() + */ + @Override + public List<Entity> getEntities() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getLivingEntities() + */ + @Override + public List<LivingEntity> getLivingEntities() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getEntitiesByClass(java.lang.Class[]) + */ + @Override + public <T extends Entity> Collection<T> getEntitiesByClass(Class<T>... paramArrayOfClass) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getEntitiesByClass(java.lang.Class) + */ + @Override + public <T extends Entity> Collection<T> getEntitiesByClass(Class<T> paramClass) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getEntitiesByClasses(java.lang.Class[]) + */ + @Override + public Collection<Entity> getEntitiesByClasses(Class<?>... paramArrayOfClass) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getPlayers() + */ + @Override + public List<Player> getPlayers() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getNearbyEntities(org.bukkit.Location, double, double, double) + */ + @Override + public Collection<Entity> getNearbyEntities(Location paramLocation, double paramDouble1, double paramDouble2, double paramDouble3) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getName() + */ + @Override + public String getName() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getUID() + */ + @Override + public UUID getUID() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getSpawnLocation() + */ + @Override + public Location getSpawnLocation() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setSpawnLocation(int, int, int) + */ + @Override + public boolean setSpawnLocation(int paramInt1, int paramInt2, int paramInt3) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getTime() + */ + @Override + public long getTime() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setTime(long) + */ + @Override + public void setTime(long paramLong) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getFullTime() + */ + @Override + public long getFullTime() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setFullTime(long) + */ + @Override + public void setFullTime(long paramLong) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#hasStorm() + */ + @Override + public boolean hasStorm() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setStorm(boolean) + */ + @Override + public void setStorm(boolean paramBoolean) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getWeatherDuration() + */ + @Override + public int getWeatherDuration() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setWeatherDuration(int) + */ + @Override + public void setWeatherDuration(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#isThundering() + */ + @Override + public boolean isThundering() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setThundering(boolean) + */ + @Override + public void setThundering(boolean paramBoolean) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getThunderDuration() + */ + @Override + public int getThunderDuration() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setThunderDuration(int) + */ + @Override + public void setThunderDuration(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#createExplosion(double, double, double, float) + */ + @Override + public boolean createExplosion(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#createExplosion(double, double, double, float, boolean) + */ + @Override + public boolean createExplosion(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat, boolean paramBoolean) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#createExplosion(double, double, double, float, boolean, boolean) + */ + @Override + public boolean createExplosion(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat, boolean paramBoolean1, boolean paramBoolean2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#createExplosion(org.bukkit.Location, float) + */ + @Override + public boolean createExplosion(Location paramLocation, float paramFloat) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#createExplosion(org.bukkit.Location, float, boolean) + */ + @Override + public boolean createExplosion(Location paramLocation, float paramFloat, boolean paramBoolean) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getEnvironment() + */ + @Override + public Environment getEnvironment() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getSeed() + */ + @Override + public long getSeed() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getPVP() + */ + @Override + public boolean getPVP() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setPVP(boolean) + */ + @Override + public void setPVP(boolean paramBoolean) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getGenerator() + */ + @Override + public ChunkGenerator getGenerator() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#save() + */ + @Override + public void save() + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getPopulators() + */ + @Override + public List<BlockPopulator> getPopulators() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawn(org.bukkit.Location, java.lang.Class) + */ + @Override + public <T extends Entity> T spawn(Location paramLocation, Class<T> paramClass) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnFallingBlock(org.bukkit.Location, org.bukkit.Material, byte) + */ + @Override + public FallingBlock spawnFallingBlock(Location paramLocation, Material paramMaterial, byte paramByte) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnFallingBlock(org.bukkit.Location, int, byte) + */ + @Override + public FallingBlock spawnFallingBlock(Location paramLocation, int paramInt, byte paramByte) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#playEffect(org.bukkit.Location, org.bukkit.Effect, int) + */ + @Override + public void playEffect(Location paramLocation, Effect paramEffect, int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#playEffect(org.bukkit.Location, org.bukkit.Effect, int, int) + */ + @Override + public void playEffect(Location paramLocation, Effect paramEffect, int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#playEffect(org.bukkit.Location, org.bukkit.Effect, java.lang.Object) + */ + @Override + public <T> void playEffect(Location paramLocation, Effect paramEffect, T paramT) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#playEffect(org.bukkit.Location, org.bukkit.Effect, java.lang.Object, int) + */ + @Override + public <T> void playEffect(Location paramLocation, Effect paramEffect, T paramT, int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getEmptyChunkSnapshot(int, int, boolean, boolean) + */ + @Override + public ChunkSnapshot getEmptyChunkSnapshot(int paramInt1, int paramInt2, boolean paramBoolean1, boolean paramBoolean2) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setSpawnFlags(boolean, boolean) + */ + @Override + public void setSpawnFlags(boolean paramBoolean1, boolean paramBoolean2) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getAllowAnimals() + */ + @Override + public boolean getAllowAnimals() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getAllowMonsters() + */ + @Override + public boolean getAllowMonsters() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getBiome(int, int) + */ + @Override + public Biome getBiome(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setBiome(int, int, org.bukkit.block.Biome) + */ + @Override + public void setBiome(int paramInt1, int paramInt2, Biome paramBiome) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getTemperature(int, int) + */ + @Override + public double getTemperature(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getHumidity(int, int) + */ + @Override + public double getHumidity(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getMaxHeight() + */ + @Override + public int getMaxHeight() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getSeaLevel() + */ + @Override + public int getSeaLevel() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getKeepSpawnInMemory() + */ + @Override + public boolean getKeepSpawnInMemory() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setKeepSpawnInMemory(boolean) + */ + @Override + public void setKeepSpawnInMemory(boolean paramBoolean) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#isAutoSave() + */ + @Override + public boolean isAutoSave() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setAutoSave(boolean) + */ + @Override + public void setAutoSave(boolean paramBoolean) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#setDifficulty(org.bukkit.Difficulty) + */ + @Override + public void setDifficulty(Difficulty paramDifficulty) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getDifficulty() + */ + @Override + public Difficulty getDifficulty() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getWorldFolder() + */ + @Override + public File getWorldFolder() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getWorldType() + */ + @Override + public WorldType getWorldType() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#canGenerateStructures() + */ + @Override + public boolean canGenerateStructures() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getTicksPerAnimalSpawns() + */ + @Override + public long getTicksPerAnimalSpawns() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setTicksPerAnimalSpawns(int) + */ + @Override + public void setTicksPerAnimalSpawns(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getTicksPerMonsterSpawns() + */ + @Override + public long getTicksPerMonsterSpawns() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setTicksPerMonsterSpawns(int) + */ + @Override + public void setTicksPerMonsterSpawns(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getMonsterSpawnLimit() + */ + @Override + public int getMonsterSpawnLimit() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setMonsterSpawnLimit(int) + */ + @Override + public void setMonsterSpawnLimit(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getAnimalSpawnLimit() + */ + @Override + public int getAnimalSpawnLimit() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setAnimalSpawnLimit(int) + */ + @Override + public void setAnimalSpawnLimit(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getWaterAnimalSpawnLimit() + */ + @Override + public int getWaterAnimalSpawnLimit() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setWaterAnimalSpawnLimit(int) + */ + @Override + public void setWaterAnimalSpawnLimit(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getAmbientSpawnLimit() + */ + @Override + public int getAmbientSpawnLimit() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setAmbientSpawnLimit(int) + */ + @Override + public void setAmbientSpawnLimit(int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#playSound(org.bukkit.Location, org.bukkit.Sound, float, float) + */ + @Override + public void playSound(Location paramLocation, Sound paramSound, float paramFloat1, float paramFloat2) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#playSound(org.bukkit.Location, java.lang.String, float, float) + */ + @Override + public void playSound(Location paramLocation, String paramString, float paramFloat1, float paramFloat2) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#getGameRules() + */ + @Override + public String[] getGameRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getGameRuleValue(java.lang.String) + */ + @Override + public String getGameRuleValue(String paramString) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#setGameRuleValue(java.lang.String, java.lang.String) + */ + @Override + public boolean setGameRuleValue(String paramString1, String paramString2) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#isGameRule(java.lang.String) + */ + @Override + public boolean isGameRule(String paramString) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spigot() + */ + @Override + public Spigot spigot() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#getWorldBorder() + */ + @Override + public WorldBorder getWorldBorder() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, org.bukkit.Location, int) + */ + @Override + public void spawnParticle(Particle paramParticle, Location paramLocation, int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, double, double, double, int) + */ + @Override + public void spawnParticle(Particle paramParticle, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, org.bukkit.Location, int, java.lang.Object) + */ + @Override + public <T> void spawnParticle(Particle paramParticle, Location paramLocation, int paramInt, T paramT) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, double, double, double, int, java.lang.Object) + */ + @Override + public <T> void spawnParticle(Particle paramParticle, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt, T paramT) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, org.bukkit.Location, int, double, double, double) + */ + @Override + public void spawnParticle(Particle paramParticle, Location paramLocation, int paramInt, double paramDouble1, double paramDouble2, double paramDouble3) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, double, double, double, int, double, double, double) + */ + @Override + public void spawnParticle(Particle paramParticle, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt, double paramDouble4, double paramDouble5, double paramDouble6) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, org.bukkit.Location, int, double, double, double, java.lang.Object) + */ + @Override + public <T> void spawnParticle(Particle paramParticle, Location paramLocation, int paramInt, double paramDouble1, double paramDouble2, double paramDouble3, T paramT) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, double, double, double, int, double, double, double, java.lang.Object) + */ + @Override + public <T> void spawnParticle(Particle paramParticle, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt, double paramDouble4, double paramDouble5, double paramDouble6, + T paramT) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, org.bukkit.Location, int, double, double, double, double) + */ + @Override + public void spawnParticle(Particle paramParticle, Location paramLocation, int paramInt, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, double, double, double, int, double, double, double, double) + */ + @Override + public void spawnParticle(Particle paramParticle, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt, double paramDouble4, double paramDouble5, double paramDouble6, + double paramDouble7) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, org.bukkit.Location, int, double, double, double, double, java.lang.Object) + */ + @Override + public <T> void spawnParticle(Particle paramParticle, Location paramLocation, int paramInt, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, T paramT) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnParticle(org.bukkit.Particle, double, double, double, int, double, double, double, double, java.lang.Object) + */ + @Override + public <T> void spawnParticle(Particle paramParticle, double paramDouble1, double paramDouble2, double paramDouble3, int paramInt, double paramDouble4, double paramDouble5, double paramDouble6, + double paramDouble7, T paramT) + { + // TODO Auto-generated method stub + + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java index f59626ba..085da2a8 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -27,21 +27,19 @@ import java.io.InputStream; import java.io.Reader; import java.lang.reflect.Proxy; -import java.util.ArrayList; -import java.util.List; import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; import org.bukkit.Bukkit; import org.bukkit.Server; +import org.bukkit.World; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginLogger; import org.bukkit.plugin.java.JavaPlugin; -import org.junit.BeforeClass; +import org.junit.After; +import org.junit.Before; import org.junit.runner.RunWith; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -59,48 +57,63 @@ */ @RunWith(PowerMockRunner.class) @PrepareForTest(YamlConfiguration.class) -@PowerMockIgnore({"org.apache.*", "com.sun.*", "javax.*"}) +@PowerMockIgnore({ "org.apache.*", "com.sun.*", "javax.*" }) public abstract class SpigotTestSupport { - /** installed yaml configurations. */ - static final List<Function<File, YamlConfiguration>> configFiles = new ArrayList<>(); - /** * Initializes the dummy server. */ - @BeforeClass - public static void setupServer() + @Before + public void setupServer() { DispenserRegistry.c(); DummyServer.setup(); DummyEnchantments.setup(); mockStatic(YamlConfiguration.class); - when(YamlConfiguration.loadConfiguration(any(File.class))).thenAnswer(new Answer<YamlConfiguration>(){ - + when(YamlConfiguration.loadConfiguration(any(File.class))).thenAnswer(new Answer<YamlConfiguration>() { + @Override public YamlConfiguration answer(InvocationOnMock invocation) throws Throwable { final File arg = invocation.getArgumentAt(0, File.class); - for (final Function<File, YamlConfiguration> func : configFiles) - { - final YamlConfiguration cfg = func.apply(arg); - if (cfg != null) - { - return cfg; - } - } - return null; + return getDummyServer().getConfigFiles().get(arg); } }); } + + + /** + * Tear down all plugins and players. + */ + @After + public void teardownMinigamesAndPlayers() + { + this.teardownPlugins(); + this.teardownPlayers(); + this.teardownConfigFiles(); + this.teardownScoreboards(); + this.teardownTasks(); + this.teardownWorlds(); + } + + /** + * Initializes a new dummy world. + * @param name world name + * @return World instance. + */ + public World initWorld(String name) + { + return getDummyServer().initWorld(name); + } /** * Returns the dummy server. + * * @return summy server */ - private DummyServer getDummyServer() + static DummyServer getDummyServer() { final Server server = Bukkit.getServer(); return (DummyServer) Proxy.getInvocationHandler(server); @@ -108,27 +121,25 @@ private DummyServer getDummyServer() /** * Setup a config file for being returned by {@link YamlConfiguration#load(File)} - * @param predicate test function + * + * @param file + * the file path * @return config file */ - protected static YamlConfiguration setupConfigFile(Predicate<File> predicate) + public static YamlConfiguration setupConfigFile(File file) { final YamlConfiguration config = mockFileConfig(); - configFiles.add((file) -> { - if (predicate.test(file)) { - return config; - } - return null; - }); + getDummyServer().getConfigFiles().put(file, config); + file.deleteOnExit(); return config; } /** * Tear down all config files. */ - protected static void teardownConfigFiles() + protected void teardownConfigFiles() { - configFiles.clear(); + getDummyServer().getConfigFiles().clear(); } /** @@ -144,7 +155,15 @@ protected void teardownPlugins() */ protected void teardownPlayers() { - this.getDummyServer().clearPlayers(); + getDummyServer().clearPlayers(); + } + + /** + * Removes all players. + */ + protected void teardownWorlds() + { + getDummyServer().clearWorlds(); } /** @@ -152,7 +171,7 @@ protected void teardownPlayers() */ protected void teardownScoreboards() { - ((DummyScoreboardManager)Bukkit.getScoreboardManager()).teardown(); + ((DummyScoreboardManager) Bukkit.getScoreboardManager()).teardown(); } /** @@ -174,7 +193,7 @@ protected void teardownTasks() */ protected Player mockOnlinePlayer(String name, UUID uuid) { - final DummyServer server = (DummyServer) Bukkit.getServer(); + final DummyServer server = this.getDummyServer(); final Player player = mock(Player.class); when(player.getName()).thenReturn(name); when(player.getUniqueId()).thenReturn(uuid); @@ -187,7 +206,7 @@ protected Player mockOnlinePlayer(String name, UUID uuid) * * @return yaml file configuration */ - protected static YamlConfiguration mockFileConfig() + public static YamlConfiguration mockFileConfig() { final YamlConfiguration config = spy(YamlConfiguration.class); try @@ -218,7 +237,7 @@ protected static YamlConfiguration mockFileConfig() * plugin config * @return mocked java plugin. */ - protected JavaPlugin mockPlugin(String name, String version, FileConfiguration config) + public JavaPlugin mockPlugin(String name, String version, FileConfiguration config) { final JavaPlugin plugin = mock(JavaPlugin.class, (Answer<?>) invocation -> { if (invocation.getMethod().getName().equals("getResource")) //$NON-NLS-1$ @@ -234,7 +253,7 @@ protected JavaPlugin mockPlugin(String name, String version, FileConfiguration c Whitebox.setInternalState(plugin, "description", description); //$NON-NLS-1$ Whitebox.setInternalState(plugin, "isEnabled", true); //$NON-NLS-1$ - ((DummyPluginManager)Bukkit.getPluginManager()).addMockedPlugin(plugin); + ((DummyPluginManager) Bukkit.getPluginManager()).addMockedPlugin(plugin); return plugin; } From 85f127275957b1a3f3ad187c043f4a0b2945e70f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 6 Jul 2016 06:47:44 +0200 Subject: [PATCH 033/266] maven ci build fix --- API/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/pom.xml b/API/pom.xml index cc2cf93d..4406cd42 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -111,7 +111,7 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> - <argLine>@{argLine}</argLine> + <argLine>${argLine}</argLine> </configuration> </plugin> From 7c0a894fc754222af785394141509cb6f2d63e73 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 6 Jul 2016 09:44:53 +0200 Subject: [PATCH 034/266] maven ci build fix --- API/pom.xml | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 4406cd42..9fc2bb1f 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -107,14 +107,6 @@ </executions> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${argLine}</argLine> - </configuration> - </plugin> - <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> @@ -123,27 +115,28 @@ <execution> <id>default-prepare-agent</id> <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> </execution> <execution> <id>default-report</id> - <phase>prepare-package</phase> + <phase>test</phase> <goals><goal>report</goal></goals> - </execution> - <execution> - <id>default-check</id> - <goals><goal>check</goal></goals> <configuration> - <rules> - </rules> - </configuration> - </execution> - <execution> - <id>jacoco-site</id> - <phase>verify</phase> - <goals><goal>report</goal></goals> - </execution> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> </executions> </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> </plugins> </build> From 7d310728b646c572f108c94de60914ff470d0584 Mon Sep 17 00:00:00 2001 From: XJ12601 <XJ12601@C1927CE7.fidudom.fiducia.de> Date: Sat, 9 Jul 2016 09:53:59 +0200 Subject: [PATCH 035/266] refactoring and merging of minigames-bungee; eliminated use of additional sockets --- .../minigamesapi/ChannelStrings.java | 5 + .../minigamesapi/CommandStrings.java | 5 + .../minigamesapi/MinigamesAPI.java | 480 +++++++++++++++++- .../minigamesapi/bungee/BungeeSocket.java | 96 ---- .../minigamesapi/config/MessagesConfig.java | 16 - .../minigamesapi/util/BungeeUtil.java | 3 +- .../minigamesapi/util/Signs.java | 100 ++++ .../minigamesapi/util/Util.java | 72 +-- 8 files changed, 599 insertions(+), 178 deletions(-) delete mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/util/Signs.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java index f8b49bd1..f9676112 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ChannelStrings.java @@ -36,4 +36,9 @@ public interface ChannelStrings */ String SUBCHANNEL_MINIGAMESLIB_REQUEST = "MinigamesLibRequest"; //$NON-NLS-1$ + /** + * Bungee-cord sub channel for minigames lib. + */ + String SUBCHANNEL_MINIGAMESLIB_SIGN = "MinigamesLibSign"; //$NON-NLS-1$ + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java index a1de89e5..04c7752c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java @@ -348,4 +348,9 @@ public interface CommandStrings */ String MGLIB_BUNGEE_TEST = "bungeetest"; //$NON-NLS-1$ + /** + * Command action: "/mglib <join> ... + */ + String MGLIB_JOIN = "join"; //$NON-NLS-1$ + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index d67dea5d..ea723120 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -15,7 +15,9 @@ package com.comze_instancelabs.minigamesapi; import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.DataInputStream; +import java.io.DataOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -26,14 +28,23 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.BlockState; +import org.bukkit.block.Sign; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +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.block.SignChangeEvent; +import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.messaging.PluginMessageListener; -import com.comze_instancelabs.minigamesapi.bungee.BungeeSocket; import com.comze_instancelabs.minigamesapi.commands.CommandHandler; import com.comze_instancelabs.minigamesapi.config.ArenasConfig; import com.comze_instancelabs.minigamesapi.config.ClassesConfig; @@ -48,9 +59,11 @@ import com.comze_instancelabs.minigamesapi.util.Metrics; import com.comze_instancelabs.minigamesapi.util.Metrics.Graph; import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; +import com.comze_instancelabs.minigamesapi.util.Signs; import com.comze_instancelabs.minigamesapi.util.Updater; import com.comze_instancelabs.minigamesapi.util.Util; import com.google.common.io.ByteArrayDataInput; +import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; import net.milkbowl.vault.economy.Economy; @@ -61,7 +74,7 @@ * @author instancelabs * */ -public class MinigamesAPI extends JavaPlugin implements PluginMessageListener +public class MinigamesAPI extends JavaPlugin implements PluginMessageListener, Listener { /** the overall minecraft server versioon. */ @@ -75,6 +88,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * Vault economy instance. + * * @deprecated will be private and non-static in 1.5.0; replaced by new method */ @Deprecated @@ -82,6 +96,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * {@code true} if economy is installed. + * * @deprecated will be private and non-static in 1.5.0, replace by {@link #economyAvailable()} */ @Deprecated @@ -89,6 +104,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * {@code true} if crackshot is installed. + * * @deprecated will be private in 1.5.0, replace by {@link #crackshotAvailable()} */ @Deprecated @@ -105,13 +121,15 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * TODO decribe this field. + * * @deprecated will be be private in 1.5.0; replaced by new method */ @Deprecated public HashMap<String, Party> global_party = new HashMap<>(); - + /** * TODO decribe this field. + * * @deprecated will be be private in 1.5.0; replaced by new method */ @Deprecated @@ -119,6 +137,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * Hash map with internal plugin representations of each registered minigame. + * * @deprecated will be private in 1.5.0; replaced by {@link #getPluginInstance(JavaPlugin)} */ @Deprecated @@ -126,6 +145,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * The party messages. + * * @deprecated will be private in 1.5.0; replaced by new methods. */ @Deprecated @@ -133,6 +153,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener /** * The stats config. + * * @deprecated will be private in 1.5.0; replaced by new methods. */ @Deprecated @@ -144,7 +165,7 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener * @deprecated will be removed in 1.5.0; replaced by SERVER_VERSION enumeration. */ @Deprecated - public String internalServerVersion = ""; //$NON-NLS-1$ + public String internalServerVersion = ""; //$NON-NLS-1$ /** * {@code true} if this is below 1.7.10 @@ -182,6 +203,14 @@ public void onEnable() this.getConfig().addDefault(PluginConfigStrings.PARTY_COMMAND_ENABLED, true); this.getConfig().addDefault(PluginConfigStrings.DEBUG, false); + for (final ArenaState state : ArenaState.values()) + { + this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".0", state.getColorCode() + "<minigame>"); + this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".1", state.getColorCode() + "<arena>"); + this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".2", state.getColorCode() + "<count>/<maxcount>"); + this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".3", state.getColorCode() + ""); + } + this.getConfig().options().copyDefaults(true); this.saveConfig(); @@ -265,10 +294,13 @@ public int getValue() } } }, 0, 20 * this.getConfig().getInt(PluginConfigStrings.SIGNS_UPDATE_TIME)); + + Bukkit.getPluginManager().registerEvents(this, this); } /** * Checks if crackshot is available. + * * @return {@code true} if crackshot is available. */ public boolean crackshotAvailable() @@ -278,6 +310,7 @@ public boolean crackshotAvailable() /** * Checks if economy is available. + * * @return {@code true} if economy is available. */ public boolean economyAvailable() @@ -627,7 +660,8 @@ public boolean onCommand(final CommandSender sender, final Command cmd, final St if (a.getArenaState() == ArenaState.JOIN || (a.getArenaState() == ArenaState.STARTING && !a.getIngameCountdownStarted())) { a.start(true); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll(ArenaMessageStrings.ARENA, a.getDisplayName()).replaceAll(ArenaMessageStrings.ACTION, Messages.getString("MinigamesAPI.Started", LOCALE))); //$NON-NLS-1$ + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll(ArenaMessageStrings.ARENA, a.getDisplayName()).replaceAll(ArenaMessageStrings.ACTION, + Messages.getString("MinigamesAPI.Started", LOCALE))); //$NON-NLS-1$ return true; } } @@ -728,7 +762,8 @@ else if (action.equalsIgnoreCase(CommandStrings.PARTY_LEAVE)) { if (pli.global_players.containsKey(p)) { - sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugArenasLine", LOCALE), pli.global_players.get(p).getInternalName(), pli.global_players.get(p).getArenaState().name())); //$NON-NLS-1$ + sender.sendMessage(String.format(Messages.getString("MinigamesAPI.DebugArenasLine", LOCALE), pli.global_players.get(p).getInternalName(), //$NON-NLS-1$ + pli.global_players.get(p).getArenaState().name())); } } } @@ -829,19 +864,73 @@ else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_STATS_HOLOGRAM)) final PluginInstance pli = this.getPluginInstance((JavaPlugin) Bukkit.getPluginManager().getPlugin(args[1])); p.sendMessage(Messages.getString("MinigamesAPI.PlayingStatsHologram", LOCALE)); //$NON-NLS-1$ - Effects.playHologram(p, p.getLocation().add(0D, 1D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsWins", LOCALE) + pli.getStatsInstance().getWins(p.getName()), false, false); //$NON-NLS-1$ - Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsPotions", LOCALE) + pli.getStatsInstance().getPoints(p.getName()), false, false); //$NON-NLS-1$ - Effects.playHologram(p, p.getLocation().add(0D, 0.5D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsKills", LOCALE) + pli.getStatsInstance().getKills(p.getName()), false, false); //$NON-NLS-1$ - Effects.playHologram(p, p.getLocation().add(0D, 0.25D, 0D), - ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + Messages.getString("MinigamesAPI.StatsDeaths", LOCALE) + pli.getStatsInstance().getDeaths(p.getName()), false, false); //$NON-NLS-1$ + Effects.playHologram(p, p.getLocation().add(0D, 1D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + + Messages.getString("MinigamesAPI.StatsWins", LOCALE) + pli.getStatsInstance().getWins(p.getName()), false, false); //$NON-NLS-1$ + Effects.playHologram(p, p.getLocation().add(0D, 0.75D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + + Messages.getString("MinigamesAPI.StatsPotions", LOCALE) + pli.getStatsInstance().getPoints(p.getName()), false, false); //$NON-NLS-1$ + Effects.playHologram(p, p.getLocation().add(0D, 0.5D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + + Messages.getString("MinigamesAPI.StatsKills", LOCALE) + pli.getStatsInstance().getKills(p.getName()), false, false); //$NON-NLS-1$ + Effects.playHologram(p, p.getLocation().add(0D, 0.25D, 0D), ChatColor.values()[(int) (Math.random() * ChatColor.values().length - 1)] + + Messages.getString("MinigamesAPI.StatsDeaths", LOCALE) + pli.getStatsInstance().getDeaths(p.getName()), false, false); //$NON-NLS-1$ return false; } } } - else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_GAMEMODE_TEST)) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_JOIN)) + { + if (args.length > 3) + { + String game = args[1]; + String arena = args[2]; + String server = args[3]; + + Player p = null; + + if (sender instanceof Player) + { + p = (Player) sender; + } + if (args.length > 3) + { + // TODO permission to teleport foreign players + p = Bukkit.getPlayer(args[3]); + } + if (p == null) + { + return true; + } + + ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); + out.writeUTF("ALL"); + out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK); + + ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + DataOutputStream msgout = new DataOutputStream(msgbytes); + String info = game + ":" + arena + ":" + p.getName(); + getLogger().info("player join: " + info); //$NON-NLS-1$ + msgout.writeUTF(info); + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); + } + catch (Exception e) + { + e.printStackTrace(); + } + connectToServer(this, p.getName(), server); + } + else + { + sender.sendMessage(ChatColor.GRAY + "Usage: /join <game> <arena> <server> [player]"); + sender.sendMessage(ChatColor.GRAY + "[player] is optional."); + } + } + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_GAMEMODE_TEST)) // TODO remove { if (sender instanceof Player) { @@ -853,16 +942,15 @@ else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_GAMEMODE_TEST)) } } } - else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_BUNGEE_TEST)) + else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_BUNGEE_TEST)) // TODO remove { if (sender instanceof Player) { final Player p = (Player) sender; if (p.isOp()) { - // TODO Why we have sky wars hard coded??? - final PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); //$NON-NLS-1$ - BungeeSocket.sendSignUpdate(pli, pli.getArenas().get(0)); + // final PluginInstance pli = MinigamesAPI.pinstances.get(Bukkit.getPluginManager().getPlugin("MGSkyWars")); //$NON-NLS-1$ + // BungeeSocket.sendSignUpdate(pli, pli.getArenas().get(0)); return false; } } @@ -893,6 +981,7 @@ else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_BUNGEE_TEST)) sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandSigns", LOCALE)); //$NON-NLS-1$ sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandPotionEffect", LOCALE)); //$NON-NLS-1$ sender.sendMessage(Messages.getString("MinigamesAPI.MgApiSubcommandStatsHologram", LOCALE)); //$NON-NLS-1$ + // TODO Subcommand join } if (sender instanceof Player && args.length > 0) { @@ -927,6 +1016,22 @@ else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_BUNGEE_TEST)) return false; } + private void connectToServer(JavaPlugin plugin, String player, String server) + { + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(stream); + try + { + out.writeUTF("Connect"); + out.writeUTF(server); + } + catch (IOException e) + { + e.printStackTrace(); + } + Bukkit.getPlayer(player).sendPluginMessage(plugin, ChannelStrings.CHANNEL_BUNGEE_CORD, stream.toByteArray()); + } + @Override public void onPluginMessageReceived(final String channel, final Player player, final byte[] message) { @@ -993,7 +1098,8 @@ public void onPluginMessageReceived(final String channel, final Player player, f } } else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST)) - { // Lobby requests sign data + { + // Lobby requests sign data final short len = in.readShort(); final byte[] msgbytes = new byte[len]; in.readFully(msgbytes); @@ -1033,6 +1139,36 @@ else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST)) e.printStackTrace(); } } + else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN)) + { + short len = in.readShort(); + byte[] msgbytes = new byte[len]; + in.readFully(msgbytes); + + DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); + try { + final String signData = msgin.readUTF(); + final String[] splitted = signData.split(":"); //$NON-NLS-1$ + final String plugin_ = splitted[0]; + final String arena = splitted[1]; + final String arenastate = splitted[2]; + final int count = Integer.parseInt(splitted[3]); + final int maxcount = Integer.parseInt(splitted[4]); + + if (debug) + { + this.getLogger().info("channel message: " + ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN + " -> " + signData); //$NON-NLS-1$ //$NON-NLS-2$ + } + + Bukkit.getScheduler().runTaskLater(this, new Runnable() { + public void run() { + updateSign(plugin_, arena, arenastate, count, maxcount); + } + }, 10L); + } catch (IOException e) { + e.printStackTrace(); + } + } } /** @@ -1117,4 +1253,308 @@ public static Player uuidToPlayer(UUID uuid) return null; } + // Bungee-support + + /** + * Sign break event. + * + * <p> + * TODO description. + * </p> + * + * @param event + */ + @EventHandler + public void onBreak(BlockBreakEvent event) + { + if (event.getBlock().getType() == Material.SIGN_POST || event.getBlock().getType() == Material.WALL_SIGN) + { + if (getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX)) + { + for (String mg_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX).getKeys(false)) + { + for (String arena_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + ".").getKeys(false)) + { + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); + // TODO debug System.out.println(l); + if (l.distance(event.getBlock().getLocation()) < 1) + { + // getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server", null); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key, null); + saveConfig(); + return; + } + } + } + } + } + } + + /** + * Sign use event. + * + * <p> + * TODO description. + * </p> + * + * @param event + */ + @EventHandler + public void onSignUse(PlayerInteractEvent event) + { + if (event.hasBlock()) + { + if (event.getClickedBlock().getType() == Material.SIGN_POST || event.getClickedBlock().getType() == Material.WALL_SIGN) + { + if (event.getAction() != Action.RIGHT_CLICK_BLOCK) + { + return; + } + final Sign s = (Sign) event.getClickedBlock().getState(); + String server = getServerBySignLocation(s.getLocation()); + if (server != null && server != "") + { + try + { + ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); + out.writeUTF("ALL"); + out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK); + + ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + DataOutputStream msgout = new DataOutputStream(msgbytes); + String info = getInfoBySignLocation(s.getLocation()) + ":" + event.getPlayer().getName(); + System.out.println(info); + msgout.writeUTF(info); + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); + } + catch (Exception e) + { + // TODO logging + e.printStackTrace(); + } + } + catch (Exception e) + { + // TODO Logging + System.out.println("Error occurred while sending first sign request: " + e.getMessage() + " - Invalid server/minigame/arena?"); + } + connectToServer(this, event.getPlayer().getName(), server); + } + } + } + + } + + @EventHandler + public void onSignChange(SignChangeEvent event) + { + Player p = event.getPlayer(); + if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglib")) + { + if (event.getPlayer().hasPermission("mgapi.sign") || event.getPlayer().isOp()) + { + if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) + { + String mg = event.getLine(1); + String arena = event.getLine(2); + String server = event.getLine(3); + + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".server", server); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world", p.getWorld().getName()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x", event.getBlock().getLocation().getBlockX()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y", event.getBlock().getLocation().getBlockY()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z", event.getBlock().getLocation().getBlockZ()); + saveConfig(); + + p.sendMessage(ChatColor.GREEN + "Successfully set sign."); + + updateSign(mg, arena, "JOIN", event); + + requestServerSign(mg, arena); + + } + } + } + } + + public void requestServerSign(String mg_key, String arena_key) + { + try + { + ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); + out.writeUTF("ALL"); + out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST); + + ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + DataOutputStream msgout = new DataOutputStream(msgbytes); + msgout.writeUTF(mg_key + ":" + arena_key); + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); + + // TODO if no answer after 2 seconds, server empty! + + } + catch (Exception e) + { + e.printStackTrace(); + } + } + catch (Exception e) + { + System.out.println("Error occurred while sending extra sign request: " + e.getMessage()); + } + } + + private Sign getSignFromArena(String mg, String arena) { + if (!getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world")) { + return null; + } + Location b_ = new Location(Bukkit.getServer().getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world")), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z")); + if (b_ != null) { + if (b_.getWorld() != null) { + if (b_.getBlock().getState() != null) { + BlockState bs = b_.getBlock().getState(); + Sign s_ = null; + if (bs instanceof Sign) { + s_ = (Sign) bs; + } + return s_; + } + } + } + return null; + } + + public void updateSign(String mg, String arenaname, String arenastate, int count, int maxcount) { + Sign s = getSignFromArena(mg, arenaname); + if (s != null) { + s.getBlock().getChunk().load(); + s.setLine(0, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.setLine(1, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.setLine(2, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.setLine(3, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.update(); + } + } + + public void sendSignUpdate(final PluginInstance pli, final Arena a) + { + String signString; + + if (a == null) + { + signString = pli.getPlugin().getName() + ":null:JOIN:0:0"; + } + else + { + signString = pli.getPlugin().getName() + ":" + a.getInternalName() + ":" + a.getArenaState().toString() + ":" + a.getAllPlayers().size() + ":" + a.getMaxPlayers(); + } + + try + { + ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); + out.writeUTF("ALL"); + out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN); + + ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + DataOutputStream msgout = new DataOutputStream(msgbytes); + msgout.writeUTF(signString); + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + catch (Exception e) + { + System.out.println("Error occurred while sending extra sign request: " + e.getMessage()); + } + } + + public void updateSign(String mg, String arenaname, String arenastate, SignChangeEvent event) + { + int count = 0; + int maxcount = 10; + event.setLine(0, + Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arenaname).replace("<minigame>", mg))); + event.setLine(1, + Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arenaname).replace("<minigame>", mg))); + event.setLine(2, + Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arenaname).replace("<minigame>", mg))); + event.setLine(3, + Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arenaname).replace("<minigame>", mg))); + } + + public String getServerBySignLocation(Location sign) + { + if (getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX)) + { + for (String mg_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX).getKeys(false)) + { + for (String arena_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + ".").getKeys(false)) + { + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); + if (l.distance(sign) < 1) + { + return getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server"); + } + } + } + } + return ""; + } + + public String getInfoBySignLocation(Location sign) + { + if (getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX)) + { + for (String mg_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX).getKeys(false)) + { + for (String arena_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + ".").getKeys(false)) + { + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); + if (l.distance(sign) < 1) + { + return mg_key + ":" + arena_key; + } + } + } + } + return ""; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java deleted file mode 100644 index 02b69f2a..00000000 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/bungee/BungeeSocket.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -package com.comze_instancelabs.minigamesapi.bungee; - -import java.io.PrintWriter; -import java.net.Socket; -import java.util.ArrayList; - -import com.comze_instancelabs.minigamesapi.Arena; -import com.comze_instancelabs.minigamesapi.ArenaLogger; -import com.comze_instancelabs.minigamesapi.PluginInstance; - -public class BungeeSocket -{ - - // Here sits the lovely MGLib server waiting for requests from our Lobby slaves >:D - // Socket server moved to lobby, dis our slave now :( - - // We're gonna send simple strings like: sign:<minigame>:<arena>:<state>:<players>/<amxplayers> - - public static String signUpdateString(final PluginInstance pli, final Arena a) - { - if (a == null) - { - return "sign:" + pli.getPlugin().getName() + ":null:JOIN:0:0"; - } - return "sign:" + pli.getPlugin().getName() + ":" + a.getInternalName() + ":" + a.getArenaState().toString() + ":" + a.getAllPlayers().size() + ":" + a.getMaxPlayers(); - } - - static ArrayList<Integer> portsUp = new ArrayList<>(); - static boolean init = false; - static boolean initializing = false; - - public static void sendSignUpdate(final PluginInstance pli, final Arena a) - { - try - { - if (BungeeSocket.init) - { - for (final int i : BungeeSocket.portsUp) - { - ArenaLogger.debug("Sending to port " + i); - final Socket socket = new Socket("127.0.0.1", i); - final PrintWriter out = new PrintWriter(socket.getOutputStream(), true); - out.println(BungeeSocket.signUpdateString(pli, a)); - socket.close(); - } - return; - } - // Of course we'll have lags at the first sign update as we check through 20 ports - if (!BungeeSocket.initializing) - { - BungeeSocket.initializing = true; - new Thread(() -> { - for (int i = 13380; i < 13400; i++) - { - try - { - ArenaLogger.debug("Trying port " + i); - final Socket socket = new Socket("127.0.0.1", i); - if (socket.isConnected()) - { - BungeeSocket.portsUp.add(i); - } - final PrintWriter out = new PrintWriter(socket.getOutputStream(), true); - out.println(BungeeSocket.signUpdateString(pli, a)); - socket.close(); - } - catch (final Exception e) - { - ArenaLogger.debug("Could not connect to port " + i); - } - } - BungeeSocket.init = true; - }).start(); - } - } - catch (final Exception e) - { - e.printStackTrace(); - } - - } -} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index c1fd5ae6..c460cbcf 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -37,25 +37,9 @@ public class MessagesConfig public MessagesConfig(final JavaPlugin plugin) { this.plugin = plugin; - // TODO use static initializer - Arrays.fill(MessagesConfig.squares_mid, (char) 0x25A0); - Arrays.fill(MessagesConfig.squares_full, (char) 0x2588); - Arrays.fill(MessagesConfig.squares_medium, (char) 0x2592); - Arrays.fill(MessagesConfig.squares_light, (char) 0x2591); - for (int i = 0; i < 10; i++) - { - MessagesConfig.squares += Character.toString((char) 0x25A0); - } this.init(); } - public static String squares = Character.toString((char) 0x25A0); - - public static char[] squares_mid = new char[10]; - public static char[] squares_full = new char[10]; - public static char[] squares_medium = new char[10]; - public static char[] squares_light = new char[10]; - public void init() { // all signs diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java index 95c56bc7..d4af44db 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java @@ -25,7 +25,6 @@ import com.comze_instancelabs.minigamesapi.ChannelStrings; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; -import com.comze_instancelabs.minigamesapi.bungee.BungeeSocket; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; @@ -51,7 +50,7 @@ public static void connectToServer(final JavaPlugin plugin, final String player, public static void sendSignUpdateRequest(final JavaPlugin plugin, final String minigame, final Arena arena) { final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - BungeeSocket.sendSignUpdate(pli, arena); + MinigamesAPI.getAPI().sendSignUpdate(pli, arena); final ByteArrayDataOutput out = ByteStreams.newDataOutput(); try { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Signs.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Signs.java new file mode 100644 index 00000000..aa7fe12f --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Signs.java @@ -0,0 +1,100 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.util; + +import java.util.Arrays; + +/** + * Utility class for signs. + * + * @author mepeisen + */ +public class Signs +{ + + /** a string of sqaures. */ + private static final String squares; + + /** mid size squares. */ + private static final char[] squares_mid = new char[10]; + /** full size squares. */ + private static final char[] squares_full = new char[10]; + /** medium size squares. */ + private static final char[] squares_medium = new char[10]; + /** light size squares. */ + private static final char[] squares_light = new char[10]; + + /** mid size squares. */ + private static final String ssquares_mid; + /** full size squares. */ + private static final String ssquares_full; + /** medium size squares. */ + private static final String ssquares_medium; + /** light size squares. */ + private static final String ssquares_light; + + static + { + Arrays.fill(squares_mid, (char) 0x25A0); + Arrays.fill(squares_full, (char) 0x2588); + Arrays.fill(squares_medium, (char) 0x2592); + Arrays.fill(squares_light, (char) 0x2591); + final StringBuilder builder = new StringBuilder(); + for (int i = 0; i < 11; i++) + { + builder.append((char) 0x25A0); + } + squares = builder.toString(); + ssquares_mid = new String(squares_mid); + ssquares_full = new String(squares_full); + ssquares_medium = new String(squares_medium); + ssquares_light = new String(squares_light); + } + + /** + * Formats the source string from messages config to be used ingame. + * @param src source string + * @return formatted string. + */ + public static final String format(String src) + { + return replaceSquares(replaceColorCodes(src)); + } + + /** + * Replaces color codes from message strings. + * @param src source string + * @return formatted string. + */ + public static final String replaceColorCodes(String src) + { + return src.replaceAll("&", "§"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Replaces "[...]" characters with squares of different sizes. + * @param src source string. + * @return formatted string. + */ + public static final String replaceSquares(String src) + { + return src.replace("[]", new String(ssquares_mid)). //$NON-NLS-1$ + replace("[1]", new String(ssquares_full). //$NON-NLS-1$ + replace("[2]", new String(ssquares_medium)). //$NON-NLS-1$ + replace("[3]", new String(ssquares_light))); //$NON-NLS-1$ + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index ac5c2b6d..758502b4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -414,40 +414,32 @@ public static void updateSign(final JavaPlugin plugin, final Arena arena) if (pli.cached_sign_states.containsKey(state)) { s.setLine(0, - pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); s.setLine(1, - pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); s.setLine(2, - pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); s.setLine(3, - pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); } else { s.setLine(0, - pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); s.setLine(1, - pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); s.setLine(2, - pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); s.setLine(3, - pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); } s.getBlock().getChunk().load(); s.update(); @@ -487,21 +479,17 @@ public static void updateSign(final JavaPlugin plugin, final Arena arena, final final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); final String arenastate = arena.getArenaState().toString().toLowerCase(); event.setLine(0, - pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) - .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); event.setLine(1, - pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) - .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); event.setLine(2, - pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) - .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); event.setLine(3, - pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) - .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()).replace("[]", new String(MessagesConfig.squares_mid)) - .replace("[1]", new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); if (pli.color_background_wool_of_signs) { final org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) event.getBlock().getState().getData(); @@ -523,14 +511,10 @@ else if (arena.getArenaState() == ArenaState.RESTARTING) public static void updateSign(final JavaPlugin plugin, final SignChangeEvent event, final String arenastate) { final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); - event.setLine(0, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(1, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(2, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); - event.setLine(3, pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§").replace("[]", new String(MessagesConfig.squares_mid)).replace("[1]", - new String(MessagesConfig.squares_full).replace("[2]", new String(MessagesConfig.squares_medium)).replace("[3]", new String(MessagesConfig.squares_light)))); + event.setLine(0, Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".0").replaceAll("&", "§"))); + event.setLine(1, Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".1").replaceAll("&", "§"))); + event.setLine(2, Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".2").replaceAll("&", "§"))); + event.setLine(3, Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + arenastate + ".3").replaceAll("&", "§"))); } public static ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasConfig cf) From 11f7b29ed940475c54ea3d6aa9bae7cd6472165b Mon Sep 17 00:00:00 2001 From: XJ12601 <XJ12601@C1927CE7.fidudom.fiducia.de> Date: Tue, 12 Jul 2016 17:18:55 +0200 Subject: [PATCH 036/266] JUnit tests --- .../minigamesapi/util/BungeeUtil.java | 42 ++-- .../minigamesapi/util/Util.java | 2 +- .../minigamesapi/test/ArenaTest.java | 213 +++++++++++++++++- .../minigamesapi/testutil/TestUtil.java | 24 +- .../spigottest/DummyPlayerInventory.java | 45 ++++ .../spigottest/DummyPluginManager.java | 12 +- .../minigamesapi/spigottest/DummyServer.java | 22 ++ .../minigamesapi/spigottest/DummyWorld.java | 26 +-- .../spigottest/PluginMessage.java | 115 ++++++++++ .../spigottest/SpigotTestSupport.java | 143 +++++++++++- 10 files changed, 591 insertions(+), 53 deletions(-) create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/PluginMessage.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java index d4af44db..61a8a9ca 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java @@ -51,27 +51,27 @@ public static void sendSignUpdateRequest(final JavaPlugin plugin, final String m { final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); MinigamesAPI.getAPI().sendSignUpdate(pli, arena); - final ByteArrayDataOutput out = ByteStreams.newDataOutput(); - try - { - out.writeUTF("Forward"); - out.writeUTF("ALL"); - out.writeUTF("MinigamesLib"); - - final ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); - final DataOutputStream msgout = new DataOutputStream(msgbytes); - msgout.writeUTF(minigame + ":" + arena.getInternalName() + ":" + arena.getArenaState().toString() + ":" + Integer.toString(arena.getAllPlayers().size()) + ":" - + Integer.toString(arena.getMaxPlayers())); - - out.writeShort(msgbytes.toByteArray().length); - out.write(msgbytes.toByteArray()); - - Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); - } - catch (final Exception e) - { - e.printStackTrace(); - } +// final ByteArrayDataOutput out = ByteStreams.newDataOutput(); +// try +// { +// out.writeUTF("Forward"); +// out.writeUTF("ALL"); +// out.writeUTF("MinigamesLib"); +// +// final ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); +// final DataOutputStream msgout = new DataOutputStream(msgbytes); +// msgout.writeUTF(minigame + ":" + arena.getInternalName() + ":" + arena.getArenaState().toString() + ":" + Integer.toString(arena.getAllPlayers().size()) + ":" +// + Integer.toString(arena.getMaxPlayers())); +// +// out.writeShort(msgbytes.toByteArray().length); +// out.write(msgbytes.toByteArray()); +// +// Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); +// } +// catch (final Exception e) +// { +// e.printStackTrace(); +// } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 758502b4..61a2fd74 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -853,7 +853,7 @@ public static void sendMessage(final JavaPlugin plugin, final Player p, final St { return; } - final String[] msgs = msgraw.replaceAll("<player>", p.getName()).replaceAll("<game>", plugin.getName()).split(";"); + final String[] msgs = msgraw.replace("<player>", p.getName()).replace("<game>", plugin.getName()).split(";"); for (final String msg : msgs) { p.sendMessage(msg); diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java index a939a24f..873979fd 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java @@ -19,15 +19,33 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.mock; import java.util.ArrayList; +import java.util.UUID; +import org.bukkit.GameMode; import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.util.Vector; import org.junit.Test; import com.comze_instancelabs.minigamesapi.Arena; import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; +import com.comze_instancelabs.minigamesapi.ArenaPlayer; +import com.comze_instancelabs.minigamesapi.ArenaState; import com.comze_instancelabs.minigamesapi.ArenaType; +import com.comze_instancelabs.minigamesapi.ChannelStrings; import com.comze_instancelabs.minigamesapi.testutil.TestUtil; /** @@ -49,6 +67,15 @@ public class ArenaTest extends TestUtil /** the default arena name. */ private static final String ARENA3 = "junit-arena3"; //$NON-NLS-1$ + /** the player name. */ + private static final String PLAYER1 = "player1"; //$NON-NLS-1$ + + /** the player name. */ + private static final String PLAYER2 = "player2"; //$NON-NLS-1$ + + /** the player name. */ + private static final String PLAYER3 = "player3"; //$NON-NLS-1$ + /** the junit minigame. */ private static final String MINIGAME = "$JUNIT-ARENA-TEST"; //$NON-NLS-1$ @@ -111,6 +138,7 @@ public void testInit() mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.SPEC_SPAWN, "world", 9, 10, 11, 80, 80); //$NON-NLS-1$ mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA3).set("displayname", "FOO"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA3).set("showscoreboard", Boolean.FALSE); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ }); // 1) normal init with unknown arena @@ -154,6 +182,60 @@ public void testInit() assertTrue(arena.isSuccessfullyInit()); + // default values + assertTrue(arena.getShowScoreboard()); + assertFalse(arena.getAlwaysPvP()); + + // setters + arena.setAlwaysPvP(true); + assertTrue(arena.getAlwaysPvP()); + + final Location l2 = new Location(null, -1, -2, -3); + arena.setSignLocation(l2); + assertEquals(-1, arena.getSignLocation().getX(), 0); + assertEquals(-2, arena.getSignLocation().getY(), 0); + assertEquals(-3, arena.getSignLocation().getZ(), 0); + + arena.setMinPlayers(17); + arena.setMaxPlayers(25); + assertEquals(17, arena.getMinPlayers()); + assertEquals(25, arena.getMaxPlayers()); + + arena.setVIPArena(true); + assertTrue(arena.isVIPArena()); + assertEquals(ArenaState.JOIN, arena.getArenaState()); + + // player management + assertEquals(0, arena.getAllPlayers().size()); + arena.addPlayer(PLAYER1); + assertEquals(1, arena.getAllPlayers().size()); + assertEquals(PLAYER1, arena.getAllPlayers().get(0)); + assertTrue(arena.containsPlayer(PLAYER1)); + assertFalse(arena.containsPlayer(PLAYER2)); + assertFalse(arena.containsPlayer(PLAYER3)); + arena.addPlayer(PLAYER2); + assertEquals(2, arena.getAllPlayers().size()); + assertEquals(PLAYER1, arena.getAllPlayers().get(0)); + assertEquals(PLAYER2, arena.getAllPlayers().get(1)); + assertTrue(arena.containsPlayer(PLAYER1)); + assertTrue(arena.containsPlayer(PLAYER2)); + assertFalse(arena.containsPlayer(PLAYER3)); + arena.addPlayer(PLAYER3); + assertEquals(3, arena.getAllPlayers().size()); + assertEquals(PLAYER1, arena.getAllPlayers().get(0)); + assertEquals(PLAYER2, arena.getAllPlayers().get(1)); + assertEquals(PLAYER3, arena.getAllPlayers().get(2)); + assertTrue(arena.containsPlayer(PLAYER1)); + assertTrue(arena.containsPlayer(PLAYER2)); + assertTrue(arena.containsPlayer(PLAYER3)); + arena.removePlayer(PLAYER2); + assertEquals(2, arena.getAllPlayers().size()); + assertEquals(PLAYER1, arena.getAllPlayers().get(0)); + assertEquals(PLAYER3, arena.getAllPlayers().get(1)); + assertTrue(arena.containsPlayer(PLAYER1)); + assertFalse(arena.containsPlayer(PLAYER2)); + assertTrue(arena.containsPlayer(PLAYER3)); + // 2) init without spawns, deprecated method (should be changed to init as soon as we remove the method) @@ -184,7 +266,6 @@ public void testInit() // 3) init configured arena final Arena arena3 = new Arena(minigame.javaPlugin, ARENA3); arena3.init(signLoc, null, mainlobby, waitinglobby, 5, 4, true); - assertEquals("FOO", arena3.getDisplayName()); //$NON-NLS-1$ assertEquals(1, arena3.getBoundaries().getLowLoc().getX(), 0); assertEquals(2, arena3.getBoundaries().getLowLoc().getY(), 0); @@ -206,6 +287,136 @@ public void testInit() assertEquals(6, arena3.getSpecBoundaries().getHighLoc().getX(), 0); assertEquals(7, arena3.getSpecBoundaries().getHighLoc().getY(), 0); assertEquals(8, arena3.getSpecBoundaries().getHighLoc().getZ(), 0); + + // additional configs + assertEquals("FOO", arena3.getDisplayName()); //$NON-NLS-1$ + assertFalse(arena3.getShowScoreboard()); + } + + /** + * Tests joining the lobby and waiting for the game to start. + */ + @Test + public void testJoinLobbyAndWait() + { + final World world = this.initWorld("world"); //$NON-NLS-1$ + final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "NormalGame", (mg) -> { //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA, "lobby", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + mg.addArenaComponentToConfig(ARENA, "spawns.spawn0", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.BOUNDS_LOW, "world", 1, 2, 3, 80, 80); //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.BOUNDS_HIGH, "world", 2, 3, 4, 80, 80); //$NON-NLS-1$ + + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.LOBBY_BOUNDS_LOW, "world", 3, 4, 5, 80, 80); //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.LOBBY_BOUNDS_HIGH, "world", 4, 5, 6, 80, 80); //$NON-NLS-1$ + + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.SPEC_BOUNDS_LOW, "world", 5, 6, 7, 80, 80); //$NON-NLS-1$ + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.SPEC_BOUNDS_HIGH, "world", 6, 7, 8, 80, 80); //$NON-NLS-1$ + + mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.SPEC_SPAWN, "world", 9, 10, 11, 80, 80); //$NON-NLS-1$ + + mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA).set("author", "JUNIT-AUTHOR"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA).set("description", "JUNIT TEST CASE"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + }); + + minigame.pluginInstance.getMessagesConfig().you_joined_arena = "<player> joined <arena> of <game>"; //$NON-NLS-1$ + minigame.pluginInstance.getMessagesConfig().minigame_description = "description"; //$NON-NLS-1$ + minigame.pluginInstance.getMessagesConfig().author_of_the_map = "<arena> was created by <author>"; //$NON-NLS-1$ + minigame.pluginInstance.getMessagesConfig().description_of_the_map = "<arena> description: <description>"; //$NON-NLS-1$ + minigame.pluginInstance.getMessagesConfig().broadcast_player_joined = "<player> joined arena <count>/<maxcount>"; //$NON-NLS-1$ + + final Arena arena = new Arena(minigame.javaPlugin, ARENA); + final Location signLoc = new Location(world, 1, 1, 1); + final ArrayList<Location> spawns = new ArrayList<>(); + spawns.add(new Location(world, 2, 2, 2)); + spawns.add(new Location(world, 3, 3, 3)); + final Location mainlobby = new Location(world, 4, 4, 4); + final Location waitinglobby = new Location(world, 5, 5, 5); + arena.init(signLoc, null, mainlobby, waitinglobby, 5, 3, false); + + final Player player1 = this.mockOnlinePlayer(PLAYER1, UUID.randomUUID()); + final Player player2 = this.mockOnlinePlayer(PLAYER2, UUID.randomUUID()); + player1.getInventory().addItem(new ItemStack(Material.APPLE, 12)); + when(player1.getGameMode()).thenReturn(GameMode.CREATIVE); + when(player1.getLevel()).thenReturn(16); + when(player2.getGameMode()).thenReturn(GameMode.ADVENTURE); + when(player2.getLevel()).thenReturn(17); + when(player2.isInsideVehicle()).thenReturn(true); + final Entity vehicle = mock(Entity.class); + when(player2.getVehicle()).thenReturn(vehicle); + + // join the lobby + arena.joinPlayerLobby(PLAYER1); + arena.joinPlayerLobby(PLAYER2); + assertTrue(arena.containsPlayer(PLAYER1)); + assertTrue(arena.containsPlayer(PLAYER2)); + + // verify messages + verify(player1, times(1)).sendMessage(PLAYER1 + " joined " + ARENA + " of " + MINIGAME + "NormalGame"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + verify(player2, times(1)).sendMessage(PLAYER2 + " joined " + ARENA + " of " + MINIGAME + "NormalGame"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + verify(player1, times(1)).sendMessage("description"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("description"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage(ARENA + " was created by JUNIT-AUTHOR"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage(ARENA + " was created by JUNIT-AUTHOR"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage(ARENA + " description: JUNIT TEST CASE"); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage(ARENA + " description: JUNIT TEST CASE"); //$NON-NLS-1$ + + verify(player1, times(1)).sendMessage(PLAYER2 + " joined arena 2/5"); //$NON-NLS-1$ + + for (int i = 0; i < 15; i++) this.tick(); + + // verify saved inv/gamemode etc. + final ArenaPlayer aplayer1 = ArenaPlayer.getPlayerInstance(PLAYER1); + final ArenaPlayer aplayer2 = ArenaPlayer.getPlayerInstance(PLAYER2); + assertEquals(GameMode.CREATIVE, aplayer1.getOriginalGamemode()); + assertEquals(16, aplayer1.getOriginalXplvl()); + assertEquals(GameMode.ADVENTURE, aplayer2.getOriginalGamemode()); + assertEquals(17, aplayer2.getOriginalXplvl()); + // TODO inventory + + // verify set game mode survival + verify(player1, times(1)).setGameMode(GameMode.SURVIVAL); + verify(player2, times(1)).setGameMode(GameMode.SURVIVAL); + + // verify set potion effect (heal) + // TODO Why are there three heal invocations? + verify(player1, times(2)).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); + verify(player2, times(2)).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 50)); + verify(player1, times(1)).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 30)); // From Util.teleportFixed + verify(player2, times(1)).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 30)); // From Util.teleportFixed + + // verify teleport to lobby + verify(player1, times(1)).teleport(waitinglobby, TeleportCause.PLUGIN); + verify(player1, times(1)).setFallDistance(-1F); + verify(player1, times(1)).setVelocity(new Vector(0D, 0D, 0D)); + verify(player1, times(1)).setFireTicks(0); + verify(player2, times(1)).teleport(waitinglobby, TeleportCause.PLUGIN); + verify(player2, times(1)).setFallDistance(-1F); + verify(player2, times(1)).setVelocity(new Vector(0D, 0D, 0D)); + verify(player2, times(1)).setFireTicks(0); + verify(player2, times(1)).leaveVehicle(); + verify(vehicle, times(1)).eject(); + + // sign updates (bungee) + verifyPluginMessage(this.minigameTest.api, ChannelStrings.CHANNEL_BUNGEE_CORD, + "Forward", //$NON-NLS-1$ + "ALL", //$NON-NLS-1$ + ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN, + new Object[]{MINIGAME + "NormalGame:" + ARENA + ":" + ArenaState.JOIN.name() + ":1:5"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + + verifyPluginMessage(this.minigameTest.api, ChannelStrings.CHANNEL_BUNGEE_CORD, + "Forward", //$NON-NLS-1$ + "ALL", //$NON-NLS-1$ + ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN, + new Object[]{MINIGAME + "NormalGame:" + ARENA + ":" + ArenaState.JOIN.name() + ":2:5"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + + // TODO sendAllHolograms + // TODO Util.updateSign + + // TODO Saved inventory (ArenaPlayer) + + // TODO Add Task to clear inv (Arena:968) + // TODO giveLobbyItems (Arena:973) } } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java index 10f0957d..d8dc1961 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java @@ -20,20 +20,26 @@ import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.doReturn; import static org.powermock.api.mockito.PowerMockito.mockStatic; import java.io.File; +import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; +import java.util.UUID; import java.util.function.Consumer; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import org.junit.Before; +import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import com.comze_instancelabs.minigamesapi.Arena; +import com.comze_instancelabs.minigamesapi.MinecraftVersionsType; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; import com.comze_instancelabs.minigamesapi.config.ArenasConfig; @@ -57,19 +63,29 @@ public abstract class TestUtil extends SpigotTestSupport /** * Setup the minigame test framework. + * @throws IllegalAccessException + * @throws IllegalArgumentException */ @Before - public void setupMinigameTest() + public void setupMinigameTest() throws IllegalArgumentException, IllegalAccessException { this.minigameTest = new MinigameTestHelper(); - - final MinigamesAPI api = mock(MinigamesAPI.class); + + final YamlConfiguration config = mockFileConfig(); + final MinigamesAPI api = this.mockPlugin("MinigamesLib", "1.0", config, MinigamesAPI.class, null); mockStatic(MinigamesAPI.class); when(MinigamesAPI.getAPI()).thenReturn(api); - when(api.getPluginInstance(any())).thenCallRealMethod(); when(MinigamesAPI.setupAPI(any(), anyString(), any(), any(), any(), any(), any(), any(), anyBoolean())).thenCallRealMethod(); + when(MinigamesAPI.playerToUUID(any(Player.class))).thenCallRealMethod(); + when(MinigamesAPI.playerToUUID(anyString())).thenCallRealMethod(); + when(MinigamesAPI.uuidToPlayer(any(UUID.class))).thenCallRealMethod(); this.minigameTest.api = api; + api.global_party = new HashMap<>(); + + final Field field = PowerMockito.field(MinigamesAPI.class, "SERVER_VERSION"); + field.setAccessible(true); + field.set(MinigamesAPI.class, MinecraftVersionsType.V1_10_R1); } /** diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java new file mode 100644 index 00000000..ac22884d --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventoryPlayer; +import org.bukkit.inventory.InventoryHolder; + +/** + * Helper class for player inventories. + * + * @author mepeisen + */ +public class DummyPlayerInventory extends CraftInventoryPlayer +{ + + /** + * Constructor + */ + public DummyPlayerInventory() + { + super(new net.minecraft.server.v1_10_R1.PlayerInventory(null){ + + @Override + public InventoryHolder getOwner() + { + return null; + } + + }); + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java index 2de58dcd..d25bf444 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java @@ -133,7 +133,17 @@ public void clearPlugins() @Override public void callEvent(Event event) throws IllegalStateException { - throw new UnsupportedOperationException(); + for (final RegisteredListener listener : getEventListeners(getRegistrationClass(event.getClass())).getRegisteredListeners()) + { + try + { + listener.callEvent(event); + } + catch (EventException ex) + { + ex.printStackTrace(); + } + } } @Override diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java index 5d7d0f91..825002ce 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -21,6 +21,7 @@ import org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftScheduler; import org.bukkit.craftbukkit.v1_10_R1.util.Versioning; import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; /** * originally taken from spigot test sources @@ -88,6 +89,7 @@ public static void setup() { private DummyScoreboardManager scoreboardManager = new DummyScoreboardManager(); private CraftScheduler scheduler = new CraftScheduler(); private Map<String, World> worlds = new HashMap<>(); + private List<PluginMessage> messages = new ArrayList<>(); private final Map<File, YamlConfiguration> configFiles = new HashMap<>(); @@ -114,6 +116,9 @@ public Object invoke(Object proxy, Method method, Object[] args) { } switch (method.getName()) { + case "sendPluginMessage": + this.messages.add(new PluginMessage((Plugin) args[0], (String) args[1], (byte[]) args[2])); + return null; case "getPluginManager": return this.pluginManager; case "getScoreboardManager": @@ -197,6 +202,23 @@ public void clearTicks() this.tick = 1; this.scheduler = new CraftScheduler(); } + + /** + * + */ + public void clearMessages() + { + this.messages.clear(); + } + + /** + * Returns the plugin messages + * @return plugin messages + */ + public Iterable<PluginMessage> getMessages() + { + return this.messages; + } /** * Initializes a new dummy world. diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java index 6686c83b..c8829681 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java @@ -15,6 +15,8 @@ package com.comze_instancelabs.minigamesapi.spigottest; +import static org.powermock.api.mockito.PowerMockito.mock; + import java.io.File; import java.util.Collection; import java.util.List; @@ -197,44 +199,28 @@ public Block getHighestBlockAt(Location paramLocation) return null; } - /* (non-Javadoc) - * @see org.bukkit.World#getChunkAt(int, int) - */ @Override public Chunk getChunkAt(int paramInt1, int paramInt2) { - // TODO Auto-generated method stub - return null; + return mock(Chunk.class); } - /* (non-Javadoc) - * @see org.bukkit.World#getChunkAt(org.bukkit.Location) - */ @Override public Chunk getChunkAt(Location paramLocation) { - // TODO Auto-generated method stub - return null; + return mock(Chunk.class); } - /* (non-Javadoc) - * @see org.bukkit.World#getChunkAt(org.bukkit.block.Block) - */ @Override public Chunk getChunkAt(Block paramBlock) { - // TODO Auto-generated method stub - return null; + return mock(Chunk.class); } - /* (non-Javadoc) - * @see org.bukkit.World#isChunkLoaded(org.bukkit.Chunk) - */ @Override public boolean isChunkLoaded(Chunk paramChunk) { - // TODO Auto-generated method stub - return false; + return true; } /* (non-Javadoc) diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/PluginMessage.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/PluginMessage.java new file mode 100644 index 00000000..c29bf011 --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/PluginMessage.java @@ -0,0 +1,115 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.util.Arrays; + +import org.bukkit.plugin.Plugin; + +/** + * @author mepeisen + */ +public class PluginMessage +{ + + /** + * the sender plugin. + */ + private Plugin plugin; + /** + * the message channel. + */ + private String channel; + /** + * the data. + */ + private byte[] data; + /** + * @param plugin + * @param channel + * @param data + */ + public PluginMessage(Plugin plugin, String channel, byte[] data) + { + super(); + this.plugin = plugin; + this.channel = channel; + this.data = data; + } + /** + * @return the plugin + */ + public Plugin getPlugin() + { + return this.plugin; + } + /** + * @return the channel + */ + public String getChannel() + { + return this.channel; + } + /** + * @return the data + */ + public byte[] getData() + { + return this.data; + } + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((this.channel == null) ? 0 : this.channel.hashCode()); + result = prime * result + Arrays.hashCode(this.data); + result = prime * result + ((this.plugin == null) ? 0 : this.plugin.hashCode()); + return result; + } + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PluginMessage other = (PluginMessage) obj; + if (this.channel == null) + { + if (other.channel != null) + return false; + } + else if (!this.channel.equals(other.channel)) + return false; + if (!Arrays.equals(this.data, other.data)) + return false; + if (this.plugin != other.plugin) + { + return false; + } + return true; + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java index 085da2a8..4f835365 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -15,6 +15,7 @@ package com.comze_instancelabs.minigamesapi.spigottest; +import static org.junit.Assert.fail; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doNothing; @@ -23,10 +24,14 @@ import static org.mockito.Mockito.when; import static org.powermock.api.mockito.PowerMockito.mockStatic; +import java.io.DataOutputStream; import java.io.File; import java.io.InputStream; import java.io.Reader; +import java.lang.reflect.Method; import java.lang.reflect.Proxy; +import java.util.Arrays; +import java.util.Map; import java.util.UUID; import org.bukkit.Bukkit; @@ -35,6 +40,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import org.bukkit.inventory.PlayerInventory; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginLogger; import org.bukkit.plugin.java.JavaPlugin; @@ -48,6 +54,9 @@ import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; +import com.google.common.io.ByteArrayDataOutput; +import com.google.common.io.ByteStreams; + import net.minecraft.server.v1_10_R1.DispenserRegistry; /** @@ -82,7 +91,6 @@ public YamlConfiguration answer(InvocationOnMock invocation) throws Throwable }); } - /** * Tear down all plugins and players. @@ -96,11 +104,14 @@ public void teardownMinigamesAndPlayers() this.teardownScoreboards(); this.teardownTasks(); this.teardownWorlds(); + this.teardownMessages(); } /** * Initializes a new dummy world. - * @param name world name + * + * @param name + * world name * @return World instance. */ public World initWorld(String name) @@ -142,6 +153,14 @@ protected void teardownConfigFiles() getDummyServer().getConfigFiles().clear(); } + /** + * Tear down all messages. + */ + protected void teardownMessages() + { + getDummyServer().clearMessages(); + } + /** * Removes all plugins. */ @@ -193,11 +212,13 @@ protected void teardownTasks() */ protected Player mockOnlinePlayer(String name, UUID uuid) { - final DummyServer server = this.getDummyServer(); + final DummyServer server = getDummyServer(); final Player player = mock(Player.class); + final PlayerInventory inv = new DummyPlayerInventory(); when(player.getName()).thenReturn(name); when(player.getUniqueId()).thenReturn(uuid); server.addMockedPlayer(player); + when(player.getInventory()).thenReturn(inv); return player; } @@ -239,7 +260,31 @@ public static YamlConfiguration mockFileConfig() */ public JavaPlugin mockPlugin(String name, String version, FileConfiguration config) { - final JavaPlugin plugin = mock(JavaPlugin.class, (Answer<?>) invocation -> { + return mockPlugin(name, version, config, JavaPlugin.class, null); + } + + /** + * Mocks a plugin and returns it. + * + * @param name + * plugin name + * @param version + * plugin version + * @param config + * plugin config + * @param clazz + * plugin class + * @param answers + * additional answers for mocking + * @return mocked java plugin. + */ + public <T extends JavaPlugin> T mockPlugin(String name, String version, FileConfiguration config, Class<T> clazz, Map<Method, Answer<?>> answers) + { + final T plugin = mock(clazz, (Answer<?>) invocation -> { + if (answers != null && answers.containsKey(invocation.getMethod())) + { + return answers.get(invocation.getMethod()).answer(invocation); + } if (invocation.getMethod().getName().equals("getResource")) //$NON-NLS-1$ return null; return invocation.callRealMethod(); @@ -263,7 +308,95 @@ public JavaPlugin mockPlugin(String name, String version, FileConfiguration conf */ protected void tick() { - this.getDummyServer().tick(); + getDummyServer().tick(); + } + + /** + * Assert that a given message was sent. + * @param senderPlugin + * @param channel + * @param message + */ + public static void verifyPluginMessage(JavaPlugin senderPlugin, String channel, Object... message) + { + final byte[] bytes = toByteArray(message); + final PluginMessage msg = new PluginMessage(senderPlugin, channel, bytes); + + final StringBuilder builder = new StringBuilder(); + builder.append("Expected plugin message not sent.\nplugin: ").append(senderPlugin.getName()); //$NON-NLS-1$ + builder.append("\nchannel: ").append(channel); //$NON-NLS-1$ + for (Object obj : message) + { + builder.append("\n arg:").append(obj); //$NON-NLS-1$ + } + builder.append("\n bytes: ").append(Arrays.toString(bytes)); //$NON-NLS-1$ + + for (final PluginMessage sent : getDummyServer().getMessages()) + { + if (sent.equals(msg)) + { + // we found the message + return; + } + builder.append("\n candidate: ").append(sent.getPlugin().getName()).append("/").append(sent.getChannel()).append("/").append(Arrays.toString(sent.getData())); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + fail(builder.toString()); + } + + private static byte[] toByteArray(Object... message) + { + final ByteArrayDataOutput out = ByteStreams.newDataOutput(); + for (Object obj : message) + { + if (obj instanceof String) + { + out.writeUTF((String) obj); + } + else if (obj instanceof Boolean) + { + out.writeBoolean((Boolean) obj); + } + else if (obj instanceof Byte) + { + out.writeByte((Byte) obj); + } + else if (obj instanceof Character) + { + out.writeChar((Character) obj); + } + else if (obj instanceof Double) + { + out.writeDouble((Double) obj); + } + else if (obj instanceof Float) + { + out.writeFloat((Float) obj); + } + else if (obj instanceof Integer) + { + out.writeInt((Integer) obj); + } + else if (obj instanceof Long) + { + out.writeLong((Long) obj); + } + else if (obj instanceof Short) + { + out.writeShort((Short) obj); + } + else if (obj instanceof Object[]) + { + final byte[] arr = toByteArray((Object[]) obj); + out.writeShort(arr.length); + out.write(arr); + } + else + { + fail("Unknown object type for assert message"); //$NON-NLS-1$ + } + } + final byte[] bytes = out.toByteArray(); + return bytes; } } From 89fbf1c90216d5acdfa7aee5309cd77fe5799546 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 24 Jul 2016 02:08:04 +0200 Subject: [PATCH 037/266] junit test cases --- .../minigamesapi/test/ArenaTest.java | 57 +- .../minigamesapi/testutil/TestUtil.java | 55 +- .../spigottest/DummyObjective.java | 140 +++++ .../minigamesapi/spigottest/DummyScore.java | 100 ++++ .../spigottest/DummyScoreboard.java | 201 ------- .../spigottest/DummyScoreboardManager.java | 54 -- .../minigamesapi/spigottest/DummyServer.java | 533 +++++++++++++++--- .../spigottest/SpigotTestSupport.java | 37 +- 8 files changed, 808 insertions(+), 369 deletions(-) create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyObjective.java create mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScore.java delete mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java delete mode 100644 Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java index 873979fd..210e9330 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/ArenaTest.java @@ -17,6 +17,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.times; @@ -35,6 +37,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; @@ -137,8 +140,8 @@ public void testInit() mg.addArenaComponentToConfig(ARENA3, ArenaConfigStrings.SPEC_SPAWN, "world", 9, 10, 11, 80, 80); //$NON-NLS-1$ - mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA3).set("displayname", "FOO"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA3).set("showscoreboard", Boolean.FALSE); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + mg.arenasYml.set("arenas." + ARENA3 + ".displayname", "FOO"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + mg.arenasYml.set("arenas." + ARENA3 + ".showscoreboard", Boolean.FALSE); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ }); // 1) normal init with unknown arena @@ -299,10 +302,12 @@ public void testInit() @Test public void testJoinLobbyAndWait() { - final World world = this.initWorld("world"); //$NON-NLS-1$ + final World world = this.initFlatWorld("world"); //$NON-NLS-1$ final Minigame minigame = this.minigameTest.setupMinigame(MINIGAME + "NormalGame", (mg) -> { //$NON-NLS-1$ mg.addArenaComponentToConfig(ARENA, "lobby", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ mg.addArenaComponentToConfig(ARENA, "spawns.spawn0", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ + + mg.addArenaComponentToConfig(ARENA, "sign", "world", 1, 1, 1, 80, 80); //$NON-NLS-1$ //$NON-NLS-2$ mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.BOUNDS_LOW, "world", 1, 2, 3, 80, 80); //$NON-NLS-1$ mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.BOUNDS_HIGH, "world", 2, 3, 4, 80, 80); //$NON-NLS-1$ @@ -315,8 +320,13 @@ public void testJoinLobbyAndWait() mg.addArenaComponentToConfig(ARENA, ArenaConfigStrings.SPEC_SPAWN, "world", 9, 10, 11, 80, 80); //$NON-NLS-1$ - mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA).set("author", "JUNIT-AUTHOR"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mg.arenasYml.getConfigurationSection("arenas").getConfigurationSection(ARENA).set("description", "JUNIT TEST CASE"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + mg.arenasYml.set("arenas." + ARENA + ".author", "JUNIT-AUTHOR"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + mg.arenasYml.set("arenas." + ARENA + ".description", "JUNIT TEST CASE"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + + // old config name, ensures it is migrated to newer version because config.version is not set... + mg.javaPlugin.getConfig().set("config.exit_item", Integer.valueOf(1)); + + //mg.add }); minigame.pluginInstance.getMessagesConfig().you_joined_arena = "<player> joined <arena> of <game>"; //$NON-NLS-1$ @@ -325,6 +335,8 @@ public void testJoinLobbyAndWait() minigame.pluginInstance.getMessagesConfig().description_of_the_map = "<arena> description: <description>"; //$NON-NLS-1$ minigame.pluginInstance.getMessagesConfig().broadcast_player_joined = "<player> joined arena <count>/<maxcount>"; //$NON-NLS-1$ + minigame.pluginInstance.getMessagesConfig().exit_item = "EXIT"; //$NON-NLS-1$ + final Arena arena = new Arena(minigame.javaPlugin, ARENA); final Location signLoc = new Location(world, 1, 1, 1); final ArrayList<Location> spawns = new ArrayList<>(); @@ -337,6 +349,7 @@ public void testJoinLobbyAndWait() final Player player1 = this.mockOnlinePlayer(PLAYER1, UUID.randomUUID()); final Player player2 = this.mockOnlinePlayer(PLAYER2, UUID.randomUUID()); player1.getInventory().addItem(new ItemStack(Material.APPLE, 12)); + player1.getInventory().setBoots(new ItemStack(Material.GOLD_BOOTS, 1)); when(player1.getGameMode()).thenReturn(GameMode.CREATIVE); when(player1.getLevel()).thenReturn(16); when(player2.getGameMode()).thenReturn(GameMode.ADVENTURE); @@ -372,7 +385,32 @@ public void testJoinLobbyAndWait() assertEquals(16, aplayer1.getOriginalXplvl()); assertEquals(GameMode.ADVENTURE, aplayer2.getOriginalGamemode()); assertEquals(17, aplayer2.getOriginalXplvl()); - // TODO inventory + + final ItemStack[] savedInv = aplayer1.getInventory(); + assertNotNull(savedInv[0]); + assertEquals(12, savedInv[0].getAmount()); + assertEquals(Material.APPLE, savedInv[0].getType()); + for (int i = 1; i < savedInv.length - 5; i++) assertNull(savedInv[i]); // -5 to skip the armory contents (the boots) + final ItemStack[] savedArmor = aplayer1.getArmorInventory(); + assertNotNull(savedArmor[0]); + assertEquals(1, savedArmor[0].getAmount()); + assertEquals(Material.GOLD_BOOTS, savedArmor[0].getType()); + for (int i = 1; i < savedArmor.length; i++) assertNull(savedArmor[i]); + + // check for cleared/lobby inventory + final ItemStack exitItem = new ItemStack(1); + final ItemMeta exitItemMeta = exitItem.getItemMeta(); + exitItemMeta.setDisplayName("EXIT"); //$NON-NLS-1$ + exitItem.setItemMeta(exitItemMeta); + final ItemStack[] newInv = player1.getInventory().getContents(); + for (int i = 0; i < newInv.length; i++) + { + // check for giveLobbyItems + if (i == 8) assertEquals(exitItem, newInv[i]); + else assertNull(newInv[i]); + } + final ItemStack[] newArmor = player1.getInventory().getArmorContents(); + for (int i = 0; i < newArmor.length; i++) assertNull(newArmor[i]); // verify set game mode survival verify(player1, times(1)).setGameMode(GameMode.SURVIVAL); @@ -411,12 +449,7 @@ public void testJoinLobbyAndWait() new Object[]{MINIGAME + "NormalGame:" + ARENA + ":" + ArenaState.JOIN.name() + ":2:5"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // TODO sendAllHolograms - // TODO Util.updateSign - - // TODO Saved inventory (ArenaPlayer) - - // TODO Add Task to clear inv (Arena:968) - // TODO giveLobbyItems (Arena:973) + // TODO sign updates (in current world) Util.updateSign } } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java index d8dc1961..32f15cf8 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java @@ -18,9 +18,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyBoolean; import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import static org.powermock.api.mockito.PowerMockito.doReturn; import static org.powermock.api.mockito.PowerMockito.mockStatic; import java.io.File; @@ -30,7 +28,6 @@ import java.util.UUID; import java.util.function.Consumer; -import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -197,37 +194,39 @@ public static final class Minigame */ public void addArenaComponentToConfig(String arenaName, String component, String world, double x, double y, double z, double pitch, double yaw) { - ConfigurationSection arenas = this.arenasYml.getConfigurationSection("arenas"); //$NON-NLS-1$ - if (arenas == null) - { - arenas = this.arenasYml.createSection("arenas"); //$NON-NLS-1$ - } - - ConfigurationSection carena = arenas.getConfigurationSection(arenaName); - if (carena == null) - { - carena = arenas.createSection(arenaName); - } - - ConfigurationSection ccomponent = carena; - for (String path : component.split("\\.")) //$NON-NLS-1$ - { - ConfigurationSection csect = ccomponent.getConfigurationSection(path); - if (csect == null) - { - csect = ccomponent.createSection(path); - } - ccomponent = csect; - } - - ccomponent.set("world", world); //$NON-NLS-1$ + this.addComponentToConfig(this.arenasYml, "arenas." + arenaName + "." + component, world, x, y, z, pitch, yaw); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Adds a location component to config + * + * @param config + * configuration to use + * @param path + * component path (f.e. "arenas.xyz.lobby") + * @param world + * the world + * @param x + * the x coordinate + * @param y + * the y coordinate + * @param z + * the z coordinate + * @param pitch + * the pitch + * @param yaw + * the yaw + */ + public void addComponentToConfig(YamlConfiguration config, String path, String world, double x, double y, double z, double pitch, double yaw) + { + config.set(path + ".world", world); //$NON-NLS-1$ final Map<String, Object> location = new HashMap<>(); location.put("x", Double.valueOf(x)); //$NON-NLS-1$ location.put("y", Double.valueOf(y)); //$NON-NLS-1$ location.put("z", Double.valueOf(z)); //$NON-NLS-1$ location.put("pitch", Double.valueOf(pitch)); //$NON-NLS-1$ location.put("yaw", Double.valueOf(yaw)); //$NON-NLS-1$ - ccomponent.createSection("location", location); //$NON-NLS-1$ + config.createSection(path + ".location", location); //$NON-NLS-1$ } } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyObjective.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyObjective.java new file mode 100644 index 00000000..13cdf68b --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyObjective.java @@ -0,0 +1,140 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.OfflinePlayer; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Score; +import org.bukkit.scoreboard.Scoreboard; + +/** + * @author mepeisen + * + */ +public class DummyObjective implements Objective +{ + + private final String name; + + private final Map<String, Score> scores = new HashMap<>(); + + /** + * @param name + */ + public DummyObjective(String name) + { + this.name = name; + } + + @Override + public String getName() throws IllegalStateException + { + return this.name; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#getDisplayName() + */ + @Override + public String getDisplayName() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#setDisplayName(java.lang.String) + */ + @Override + public void setDisplayName(String arg0) throws IllegalStateException, IllegalArgumentException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#getCriteria() + */ + @Override + public String getCriteria() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isModifiable() throws IllegalStateException + { + return true; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#getScoreboard() + */ + @Override + public Scoreboard getScoreboard() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#unregister() + */ + @Override + public void unregister() throws IllegalStateException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#setDisplaySlot(org.bukkit.scoreboard.DisplaySlot) + */ + @Override + public void setDisplaySlot(DisplaySlot arg0) throws IllegalStateException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Objective#getDisplaySlot() + */ + @Override + public DisplaySlot getDisplaySlot() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + @Override + public Score getScore(OfflinePlayer arg0) throws IllegalArgumentException, IllegalStateException + { + return this.getScore(arg0.getName()); + } + + @Override + public Score getScore(String arg0) throws IllegalArgumentException, IllegalStateException + { + return this.scores.computeIfAbsent(arg0, (k) -> new DummyScore()); + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScore.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScore.java new file mode 100644 index 00000000..b1052c6d --- /dev/null +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScore.java @@ -0,0 +1,100 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.spigottest; + +import org.bukkit.OfflinePlayer; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Score; +import org.bukkit.scoreboard.Scoreboard; + +/** + * @author mepeisen + * + */ +public class DummyScore implements Score +{ + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#getEntry() + */ + @Override + public String getEntry() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#getObjective() + */ + @Override + public Objective getObjective() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#getPlayer() + */ + @Override + public OfflinePlayer getPlayer() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#getScore() + */ + @Override + public int getScore() throws IllegalStateException + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#getScoreboard() + */ + @Override + public Scoreboard getScoreboard() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#isScoreSet() + */ + @Override + public boolean isScoreSet() throws IllegalStateException + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Score#setScore(int) + */ + @Override + public void setScore(int arg0) throws IllegalStateException + { + // TODO Auto-generated method stub + + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java deleted file mode 100644 index 6fc34acb..00000000 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboard.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.comze_instancelabs.minigamesapi.spigottest; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import org.bukkit.OfflinePlayer; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; -import org.bukkit.scoreboard.Score; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.Team; - -/** - * A dummy score board. - * - * @author mepeisen - */ -class DummyScoreboard implements Scoreboard -{ - - /** registered teams. */ - private Map<String, Team> teams = new HashMap<>(); - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#registerNewObjective(java.lang.String, java.lang.String) - */ - @Override - public Objective registerNewObjective(String name, String criteria) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getObjective(java.lang.String) - */ - @Override - public Objective getObjective(String name) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getObjectivesByCriteria(java.lang.String) - */ - @Override - public Set<Objective> getObjectivesByCriteria(String criteria) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getObjectives() - */ - @Override - public Set<Objective> getObjectives() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getObjective(org.bukkit.scoreboard.DisplaySlot) - */ - @Override - public Objective getObjective(DisplaySlot slot) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getScores(org.bukkit.OfflinePlayer) - */ - @Override - public Set<Score> getScores(OfflinePlayer player) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getScores(java.lang.String) - */ - @Override - public Set<Score> getScores(String entry) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#resetScores(org.bukkit.OfflinePlayer) - */ - @Override - public void resetScores(OfflinePlayer player) throws IllegalArgumentException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#resetScores(java.lang.String) - */ - @Override - public void resetScores(String entry) throws IllegalArgumentException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getPlayerTeam(org.bukkit.OfflinePlayer) - */ - @Override - public Team getPlayerTeam(OfflinePlayer player) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getEntryTeam(java.lang.String) - */ - @Override - public Team getEntryTeam(String entry) throws IllegalArgumentException - { - // TODO Auto-generated method stub - return null; - } - - @Override - public Team getTeam(String teamName) throws IllegalArgumentException - { - return this.teams.get(teamName); - } - - @Override - public Set<Team> getTeams() - { - return new HashSet<>(this.teams.values()); - } - - @Override - public Team registerNewTeam(String name) throws IllegalArgumentException - { - final Team team = new DummyScoreboardTeam(); - this.teams.put(name, team); - return team; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getPlayers() - */ - @Override - public Set<OfflinePlayer> getPlayers() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#getEntries() - */ - @Override - public Set<String> getEntries() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see org.bukkit.scoreboard.Scoreboard#clearSlot(org.bukkit.scoreboard.DisplaySlot) - */ - @Override - public void clearSlot(DisplaySlot slot) throws IllegalArgumentException - { - // TODO Auto-generated method stub - - } - -} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java deleted file mode 100644 index 245c0cc2..00000000 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardManager.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.comze_instancelabs.minigamesapi.spigottest; - -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.ScoreboardManager; - -/** - * A dummy scoreboard manager. - * - * @author mepeisen - */ -class DummyScoreboardManager implements ScoreboardManager -{ - - /** - * the main score board. - */ - private DummyScoreboard main = new DummyScoreboard(); - - /** - * tears down score boards. - */ - public void teardown() - { - this.main = new DummyScoreboard(); - } - - @Override - public Scoreboard getMainScoreboard() - { - return this.main; - } - - @Override - public Scoreboard getNewScoreboard() - { - return new DummyScoreboard(); - } - -} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java index 825002ce..1a254066 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -1,38 +1,225 @@ package com.comze_instancelabs.minigamesapi.spigottest; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.when; +import static org.powermock.api.mockito.PowerMockito.mock; + import java.io.File; +import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; -import java.lang.reflect.Proxy; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; -import java.util.function.Function; import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.World; +import org.bukkit.World.Environment; +import org.bukkit.WorldType; import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.craftbukkit.v1_10_R1.CraftServer; +import org.bukkit.craftbukkit.v1_10_R1.CraftWorld; import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemFactory; import org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftScheduler; +import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboard; +import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboardManager; import org.bukkit.craftbukkit.v1_10_R1.util.Versioning; import org.bukkit.entity.Player; +import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; +import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Team; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +import net.minecraft.server.v1_10_R1.Chunk; +import net.minecraft.server.v1_10_R1.DedicatedPlayerList; +import net.minecraft.server.v1_10_R1.DefinedStructureManager; +import net.minecraft.server.v1_10_R1.EnumGamemode; +import net.minecraft.server.v1_10_R1.ExceptionWorldConflict; +import net.minecraft.server.v1_10_R1.IChunkLoader; +import net.minecraft.server.v1_10_R1.IDataManager; +import net.minecraft.server.v1_10_R1.IPlayerFileData; +import net.minecraft.server.v1_10_R1.MethodProfiler; +import net.minecraft.server.v1_10_R1.MinecraftServer; +import net.minecraft.server.v1_10_R1.NBTTagCompound; +import net.minecraft.server.v1_10_R1.PlayerChunkMap; +import net.minecraft.server.v1_10_R1.PlayerList; +import net.minecraft.server.v1_10_R1.WorldData; +import net.minecraft.server.v1_10_R1.WorldProvider; +import net.minecraft.server.v1_10_R1.WorldServer; +import net.minecraft.server.v1_10_R1.WorldSettings; /** * originally taken from spigot test sources */ -class DummyServer implements InvocationHandler { +class DummyServer implements InvocationHandler, Answer { + /** + * + */ + static final DummyServer DUMMY_SERVER = new DummyServer(); + private static interface MethodHandler { Object handle(DummyServer server, Object[] args); } private static final HashMap<Method, MethodHandler> methods = new HashMap<Method, MethodHandler>(); static { try { + methods.put( + CraftServer.class.getMethod("addWorld", World.class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + // silently ignore + return null; + } + }); + methods.put( + CraftServer.class.getMethod("getHandle"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return server.playerList; + } + }); + methods.put( + CraftServer.class.getMethod("getServer"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return null; + } + }); + methods.put( + Server.class.getMethod("getViewDistance"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return 10; + } + }); + methods.put( + Server.class.getMethod("getTicksPerAnimalSpawns"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return 50; + } + }); + methods.put( + Server.class.getMethod("getTicksPerMonsterSpawns"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return 50; + } + }); + methods.put( + Server.class.getMethod("sendPluginMessage", Plugin.class, String.class, byte[].class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + server.messages.add(new PluginMessage((Plugin) args[0], (String) args[1], (byte[]) args[2])); + return null; + } + }); + methods.put( + Server.class.getMethod("getPluginManager"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return server.pluginManager; + } + }); + methods.put( + Server.class.getMethod("getScoreboardManager"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return server.scoreboardManager; + } + }); + methods.put( + Server.class.getMethod("getOnlinePlayers"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return Collections.unmodifiableList(server.onlineList); + } + }); + methods.put( + Server.class.getMethod("getScheduler"), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return server.scheduler; + } + }); + methods.put( + Server.class.getMethod("getWorld", String.class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + return server.worlds.get((String) args[0]); + } + }); + methods.put( + Server.class.getMethod("getPlayer", String.class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + for (final Player player : server.onlineList) + { + if (args[0].toString().equalsIgnoreCase(player.getName())) + { + return player; + } + } + return null; + } + }); + methods.put( + Server.class.getMethod("getPlayer", UUID.class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + for (final Player player : server.onlineList) + { + if (((UUID)args[0]).equals(player.getUniqueId())) + { + return player; + } + } + return null; + } + }); + methods.put( + Server.class.getMethod("getPlayerExact", String.class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + for (final Player player : server.onlineList) + { + if (args[0].toString().equals(player.getName())) + { + return player; + } + } + return null; + } + }); + methods.put( + Server.class.getMethod("matchPlayer", String.class), + new MethodHandler() { + public Object handle(DummyServer server, Object[] args) { + final List<Player> result = new ArrayList<>(); + for (final Player player : server.onlineList) + { + if (args[0].toString().equals(player.getName())) + { + return Collections.singletonList(player); + } + if (player.getName().toLowerCase().contains(args[0].toString().toLowerCase())) + { + result.add(player); + } + } + return result; + } + }); methods.put( Server.class.getMethod("getItemFactory"), new MethodHandler() { @@ -74,7 +261,9 @@ public Object handle(DummyServer server, Object[] args) { } } ); - Bukkit.setServer(Proxy.getProxyClass(Server.class.getClassLoader(), Server.class).asSubclass(Server.class).getConstructor(InvocationHandler.class).newInstance(new DummyServer())); + final CraftServer server = mock(CraftServer.class, DUMMY_SERVER); + Bukkit.setServer(server); + //Bukkit.setServer(Proxy.getProxyClass(Server.class.getClassLoader(), Server.class).asSubclass(Server.class).getConstructor(InvocationHandler.class).newInstance(DUMMY_SERVER)); } catch (Throwable t) { throw new Error(t); } @@ -86,16 +275,117 @@ public static void setup() { private List<Player> onlineList = new ArrayList<>(); private DummyPluginManager pluginManager = new DummyPluginManager(); - private DummyScoreboardManager scoreboardManager = new DummyScoreboardManager(); + private CraftScoreboardManager scoreboardManager; + private CraftScoreboard mainScoreboard = mock(CraftScoreboard.class); private CraftScheduler scheduler = new CraftScheduler(); private Map<String, World> worlds = new HashMap<>(); private List<PluginMessage> messages = new ArrayList<>(); + private DedicatedPlayerList playerList = mock(DedicatedPlayerList.class); private final Map<File, YamlConfiguration> configFiles = new HashMap<>(); private int tick = 1; private DummyServer() { + when(this.playerList.d()).thenReturn(PlayerChunkMap.getFurthestViewableBlock(10)); + this.mainScoreboard = mockScoreboard(); + this.scoreboardManager = mock(CraftScoreboardManager.class); + when(this.scoreboardManager.getMainScoreboard()).thenReturn(this.mainScoreboard); + when(this.scoreboardManager.getNewScoreboard()).thenAnswer(new Answer() { + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + return mockScoreboard(); + } + }); + } + + CraftScoreboard mockScoreboard() + { + final CraftScoreboard result = mock(CraftScoreboard.class); + final Map<String, Team> teams = new HashMap<>(); + final Map<String, List<Objective>> objetivesByCriteria = new HashMap<>(); + final Map<String, Objective> objectiveByName = new HashMap<>(); + when(result.getTeam(anyString())).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + return teams.get(invocation.getArgumentAt(0, String.class)); + }}); + when(result.getTeams()).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + return new HashSet<>(teams.values()); + }}); + when(result.registerNewTeam(anyString())).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + final Team team = new DummyScoreboardTeam(); + teams.put(invocation.getArgumentAt(0, String.class), team); + return team; + }}); + when(result.registerNewObjective(anyString(), anyString())).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + final String name = invocation.getArgumentAt(0, String.class); + final String criteria = invocation.getArgumentAt(1, String.class); + if (objectiveByName.containsKey(name)) + { + throw new IllegalArgumentException("An objective with the name \'" + name + "\' already exists!"); + } + final Objective obj = new DummyObjective(name); + List<Objective> list = objetivesByCriteria.get(criteria); + if (list == null) + { + list = new ArrayList<>(); + objetivesByCriteria.put(criteria, list); + } + list.add(obj); + objectiveByName.put(name, obj); + return obj; + }}); + when(result.getObjective(anyString())).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + return objectiveByName.get(invocation.getArgumentAt(0, String.class)); + }}); + + when(result.getObjectivesByCriteria(anyString())).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + final String criteria = invocation.getArgumentAt(0, String.class); + if (objetivesByCriteria.containsKey(criteria)) + { + return new HashSet<>(objetivesByCriteria.get(criteria)); + } + return Collections.emptySet(); + }}); + + when(result.getObjectives()).thenAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + return new HashSet<>(objectiveByName.values()); + }}); + return result; + } + + void teardownScoreboards() + { + this.mainScoreboard = mockScoreboard(); } void addMockedPlayer(Player player) @@ -109,70 +399,31 @@ void tick() this.tick++; } + @Override + public Object answer(InvocationOnMock invocation) throws Throwable + { + Method method = invocation.getMethod(); + try + { + method = Server.class.getMethod(method.getName(), method.getParameterTypes()); + } + catch (@SuppressWarnings("unused") NoSuchMethodException ex) + { + // silently ignore; use the CraftServer method instead for fetching the handler. + } + MethodHandler handler = methods.get(method); + if (handler != null) { + return handler.handle(this, invocation.getArguments()); + } + throw new UnsupportedOperationException(String.valueOf(method) + " not within methods: " + Arrays.toString(methods.keySet().toArray())); + } + public Object invoke(Object proxy, Method method, Object[] args) { MethodHandler handler = methods.get(method); if (handler != null) { return handler.handle(this, args); } - switch (method.getName()) - { - case "sendPluginMessage": - this.messages.add(new PluginMessage((Plugin) args[0], (String) args[1], (byte[]) args[2])); - return null; - case "getPluginManager": - return this.pluginManager; - case "getScoreboardManager": - return this.scoreboardManager; - case "getOnlinePlayers": - return Collections.unmodifiableList(this.onlineList); - case "getScheduler": - return this.scheduler; - case "getWorld": - return this.worlds.get((String) args[0]); - case "getPlayer": - for (final Player player : onlineList) - { - if (args[0] instanceof String) - { - if (args[0].toString().equalsIgnoreCase(player.getName())) - { - return player; - } - } - if (args[0] instanceof UUID) - { - if (((UUID) args[0]).equals(player.getUniqueId())) - { - return player; - } - } - } - return null; - case "getPlayerExact": - for (final Player player : onlineList) - { - if (args[0].toString().equals(player.getName())) - { - return player; - } - } - return null; - case "matchPlayer": - final List<Player> result = new ArrayList<>(); - for (final Player player : onlineList) - { - if (args[0].toString().equals(player.getName())) - { - return Collections.singletonList(player); - } - if (player.getName().toLowerCase().contains(args[0].toString().toLowerCase())) - { - result.add(player); - } - } - return result; - } - throw new UnsupportedOperationException(String.valueOf(method)); + throw new UnsupportedOperationException(String.valueOf(method) + " not within methods: " + Arrays.toString(methods.keySet().toArray())); } /** @@ -229,4 +480,158 @@ public World initWorld(String name) { return this.worlds.computeIfAbsent(name, (n) -> new DummyWorld()); } + + /** + * Initializes a new dummy world. + * @param name + * @param type + * @param seed + * @return world instance + */ + public World initWorld(String name, WorldType type, long seed) + { + return this.worlds.computeIfAbsent(name, (n) -> { + final UUID uuid = UUID.randomUUID(); + final ChunkGenerator generator = null; + int dimension = this.worlds.size() + 1; + net.minecraft.server.v1_10_R1.WorldType mctype = null; + switch (type) + { + case AMPLIFIED: + mctype = net.minecraft.server.v1_10_R1.WorldType.AMPLIFIED; + break; + case CUSTOMIZED: + mctype = net.minecraft.server.v1_10_R1.WorldType.CUSTOMIZED; + break; + default: + case FLAT: + mctype = net.minecraft.server.v1_10_R1.WorldType.FLAT; + break; + case LARGE_BIOMES: + mctype = net.minecraft.server.v1_10_R1.WorldType.LARGE_BIOMES; + break; + case NORMAL: + mctype = net.minecraft.server.v1_10_R1.WorldType.NORMAL; + break; + case VERSION_1_1: + mctype = net.minecraft.server.v1_10_R1.WorldType.NORMAL_1_1; + break; + + } + final WorldSettings worldsettings = new WorldSettings(seed, EnumGamemode.SURVIVAL, true, false, mctype); + final WorldData worlddata = new WorldData(worldsettings, name); + final Map<Integer, Map<Integer, Chunk>> chunks = new HashMap<>(); + + final MinecraftServer mock = mock(MinecraftServer.class); + when(mock.getPlayerList()).thenReturn(playerList); + final WorldServer internal = (WorldServer) (new WorldServer(mock, new IDataManager(){ + + @Override + public WorldData getWorldData() + { + return worlddata; + } + + @Override + public void checkSession() throws ExceptionWorldConflict + { + // ignore + } + + @Override + public IChunkLoader createChunkLoader(WorldProvider arg0) + { + return new IChunkLoader(){ + @Override + public Chunk a(net.minecraft.server.v1_10_R1.World arg0, int arg1, int arg2) throws IOException + { + final Map<Integer, Chunk> map = chunks.get(arg1); + return map == null ? null : map.get(arg2); + } + + @Override + public void a(net.minecraft.server.v1_10_R1.World arg0, Chunk arg1) throws IOException, ExceptionWorldConflict + { + final Map<Integer, Chunk> map = chunks.computeIfAbsent(arg1.locX, (x) -> new HashMap<>()); + map.put(arg1.locZ, arg1); + } + + @Override + public void b(net.minecraft.server.v1_10_R1.World arg0, Chunk arg1) throws IOException + { + // ignore + } + + @Override + public void a() + { + // ignore + } + + @Override + public void b() + { + // ignore + } + }; + } + + @Override + public void saveWorldData(WorldData arg0, NBTTagCompound arg1) + { + // ignore + } + + @Override + public void saveWorldData(WorldData arg0) + { + // ignore + } + + @Override + public IPlayerFileData getPlayerFileData() + { + // ignore + return null; + } + + @Override + public void a() + { + // ignore + } + + @Override + public File getDirectory() + { + // ignore + return null; + } + + @Override + public File getDataFile(String arg0) + { + // ignore + return null; + } + + @Override + public DefinedStructureManager h() + { + // ignore + return null; + } + + @Override + public UUID getUUID() + { + return uuid; + } + + }, worlddata, dimension, + mock(MethodProfiler.class), Environment.NORMAL, generator)).b(); + return new CraftWorld(internal, generator, Environment.NORMAL); + }); + } + } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java index 4f835365..75573c8e 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -24,21 +24,22 @@ import static org.mockito.Mockito.when; import static org.powermock.api.mockito.PowerMockito.mockStatic; -import java.io.DataOutputStream; import java.io.File; import java.io.InputStream; import java.io.Reader; import java.lang.reflect.Method; -import java.lang.reflect.Proxy; import java.util.Arrays; import java.util.Map; import java.util.UUID; import org.bukkit.Bukkit; -import org.bukkit.Server; import org.bukkit.World; +import org.bukkit.WorldType; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.craftbukkit.v1_10_R1.CraftServer; +import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboard; +import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboardManager; import org.bukkit.entity.Player; import org.bukkit.inventory.PlayerInventory; import org.bukkit.plugin.PluginDescriptionFile; @@ -53,6 +54,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; +import org.spigotmc.SpigotConfig; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; @@ -65,7 +67,7 @@ * @author mepeisen */ @RunWith(PowerMockRunner.class) -@PrepareForTest(YamlConfiguration.class) +@PrepareForTest({ YamlConfiguration.class, CraftServer.class, CraftScoreboardManager.class, CraftScoreboard.class }) @PowerMockIgnore({ "org.apache.*", "com.sun.*", "javax.*" }) public abstract class SpigotTestSupport { @@ -90,6 +92,7 @@ public YamlConfiguration answer(InvocationOnMock invocation) throws Throwable } }); + SpigotConfig.config = mockFileConfig(); } /** @@ -119,15 +122,28 @@ public World initWorld(String name) return getDummyServer().initWorld(name); } + /** + * Initializes a flat world hold in memory. + * + * @param name + * world name + * @return world instance. + */ + public World initFlatWorld(String name) + { + return getDummyServer().initWorld(name, WorldType.FLAT, 123); + } + /** * Returns the dummy server. * - * @return summy server + * @return dummy server */ static DummyServer getDummyServer() { - final Server server = Bukkit.getServer(); - return (DummyServer) Proxy.getInvocationHandler(server); +// final Server server = Bukkit.getServer(); +// return (DummyServer) Proxy.getInvocationHandler(server); + return DummyServer.DUMMY_SERVER; } /** @@ -190,7 +206,7 @@ protected void teardownWorlds() */ protected void teardownScoreboards() { - ((DummyScoreboardManager) Bukkit.getScoreboardManager()).teardown(); + getDummyServer().teardownScoreboards(); } /** @@ -313,6 +329,7 @@ protected void tick() /** * Assert that a given message was sent. + * * @param senderPlugin * @param channel * @param message @@ -321,7 +338,7 @@ public static void verifyPluginMessage(JavaPlugin senderPlugin, String channel, { final byte[] bytes = toByteArray(message); final PluginMessage msg = new PluginMessage(senderPlugin, channel, bytes); - + final StringBuilder builder = new StringBuilder(); builder.append("Expected plugin message not sent.\nplugin: ").append(senderPlugin.getName()); //$NON-NLS-1$ builder.append("\nchannel: ").append(channel); //$NON-NLS-1$ @@ -342,7 +359,7 @@ public static void verifyPluginMessage(JavaPlugin senderPlugin, String channel, } fail(builder.toString()); } - + private static byte[] toByteArray(Object... message) { final ByteArrayDataOutput out = ByteStreams.newDataOutput(); From dd536695741fe148f88fba6c91dbd02fd7b140b8 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 29 Jul 2016 20:20:44 +0200 Subject: [PATCH 038/266] changelog and wiki images --- changelog.md | 25 +++++++++++++++++++++++++ planned.md | 18 ++++++++++++++++++ wiki/images/join-signs.png | Bin 0 -> 898459 bytes 3 files changed, 43 insertions(+) create mode 100644 changelog.md create mode 100644 planned.md create mode 100644 wiki/images/join-signs.png diff --git a/changelog.md b/changelog.md new file mode 100644 index 00000000..3286cff7 --- /dev/null +++ b/changelog.md @@ -0,0 +1,25 @@ +# Changelog + + +#### 1.14.9 + +###### All + +* Using same version numbers (Games and minigamesAPI share same version number to make dependencies more intuitive) +* Support for Spigot 1.10 + +###### Minigames-API +* various JUnit-Tests +* refactoring of MinigamesAPI-Bungee (merge to Minigames-API) +* migration to maven and hudson build +* various refactoring and javadoc +* NPE fix (https://github.com/MysticCity/MinigamesAPI/issues/41) +* new leave command invoked on arena leave (https://github.com/MysticCity/MinigamesAPI/issues/29) +* NPE fix (https://github.com/MysticCity/MinigamesAPI/issues/26) +* Upgraded dependencies to vault and crackshot +* Fix for some race conditions while stopping arena +* Fixed some UTF-8 encoding + +###### Minigames-API-Bungee +* removed everything (now part of Minigames-API) + diff --git a/planned.md b/planned.md new file mode 100644 index 00000000..596a02fb --- /dev/null +++ b/planned.md @@ -0,0 +1,18 @@ +#### upcomming (1.14.10/1.15.0)... +* Dropping some deprecated methods +* Dropping support for Spigot 1.7 +* More JUnit Tests and refactorings +* New Game: Variants of Capture The Flag +* Minigame tutorials (using/playing the existing games, creating your own game) +* Rework of auto-updater +* Rework of reflection use in Minigames-API +* Rework of metrics +* Migrate Jumper/Sudoku/Destroyer/ColorMatch/HorseRacingPlus to Minigames-API +* Add some kind of "load-balancing"/ server hopping (improve support for bungee) +* Add more sign options + +#### known issues... +* https://github.com/MysticCity/MinigamesAPI/issues/37 +* https://github.com/MysticCity/MinigamesAPI/issues/5 +* https://github.com/MysticCity/MinigamesAPI/issues/4 + diff --git a/wiki/images/join-signs.png b/wiki/images/join-signs.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5b968f52acc334f2b65fa2dc36d2bb70f8ab35 GIT binary patch literal 898459 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 =i|1f9$gCBigWMEu4Xmk3 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%0A<TvX#!BH)|k^(9jTgfB#}2r?G79^ z6RwaMh*SC}&qNwt7mKwK=RaxEio0agr#yGe+T+8W`zP2Muxe?c+1^~9mZ1(NCkKxd zJlgDkkCRe4brc~9gm56#uVqSW*L6{SAzDLB$LOZY%{KWNamH<X*8kjzdU3n_Xypxs zG&IUdB0MW+!bVH%)BBZ!q|6fx_jL;LmJM-hf8vnBP%SQW^IDjmRIK4Mo^zSUf>uO^ z>qSQnukNuve_r>m<iaJ}Z4M0{Y13{8ruR7Tac!^QUVM5KM>EQ2LiHo>T|w(APV-T? zwdmeOPo!T=ZM@Kq91rLBPU^gTh}PZBi1)9nQdb>ib>eOyjW1p@HrMB1kZ99`f<6=^ zNGe!l19O}F!k%`Eh{)|xGm&1ZR%d>{IcWO#bIRn8ZRx5p<OGYRzy|M6oVNr+yaV%j z!QhLg3)mEnvf>8130Q>r;{prVFmNr@ULYui)wEf1Yq#`Z?;V_WWH%YjGposIJC9eW zD_xDBKS7=;>koSJX>qjFaCIM}t(V6O_eHO_YX;chtg-+F(A&U6cnY_p0YS;+urRCv z5RBP1XQ!({Q2$Xo@{e6-9k%%M#`p17P#i^Xf7)dw9IW``mCj+3!Ew5lI7mx^q?&(A z!3SbcW+z^6o&9<_Eej0Yle47h83gYj2}AKP7af|F#)FXJ9j?EV4v=8W|M?962)hb4 z`VfC{x@2k!1jW2C|9}xx&^6F*pArXvMq^E;l%0WktC!M-6hiHwHzJWtf&1Yp+}6O< zhECPQlNFh=IVrWUF`5pl3DOrRyL{%|k)$8=ZsdPnHDG$p`R6WF0azuUmO+JY(kG*N zAQRC3+<?!v7({}75*+pad2Db9cBwvq;x#n`39_4Qt>OfqORgrcL;~a_Dw!G0)iV6g z77dR=-qfR$ra6@aUu`i+cR7cUeyb)`J+;S`t+9YLd?V7H#xsUccLerHp|8VUGLpLH zB#^a29QpC)SZvrAD?}-s?Ece?AKcP3Z-Gy{n$oveSMWmQ+fYR?nv9>n?~w$lL7Pl! z1dTU9sWE9ExWYF<;=oXCh@Pbi(=3i$HQd}Bo2mWTK-6Gk=2H>m!^-g9ppK30l81;h zdGp^6nSlSW@1JQkf6lzS4b{PZUf8E4-;sk86H9%0L#P~2o9Sf4TE720!8sWER0EU< zZW;pv=j^g)+`aaem6p`h95u{4<t>%#M?<w0#tW!|?e>KlUV<N4Iu=Jc{8heZ9p|*G zx&^Ow*g>uvU|rp3YsX2ia7W1b9J@mq=eJGlYZqTo&)dhhXzqOHnuCk+H4oQ9m!Uhh zhsQ6?Y5<MS4B)pO#eX1{$q3OTxuowcUJct=mK-mhAKtNf<0vC|By-4jrhCR7JQN)v zaDa_L6#pfCr$(nf@Q$^M`6(^7BBX*--v<ZVZ4RQgM`+sr`V~x8|IwJUgxqP`Lqiuz z!)xcRagr_i_2o5+))p*kIW==*=UbglG0%D#AT$p~RQnJTVn>904N1~z$4<VGqI<X9 zPqNqfTn#<C<48B+F$Ll&jlu(ULw0*JEsEsKw|6J}WQv^w^Y_ytr0Gd5X7IZvq!rmG zp7Jp!PvOA$`ny%4K$pN{ZKh6m%NbwEI`ZrE$Jus9yv78?rDCd~&{-k0_8bq)0`b|) zM(L&Nk(B=&zqThNr=jH3QJDtGG*9+dCmyAyJ~c6+UOmftTl1J}G!7GeNy|AJ7i+}~ z4D_m>Da$E0(}Kge(4HSN1hN@i<xLNIOs@ZG%GUj)>Wak(X#Z$Yd?6a@EgO6LS%%D% z`Ay+{OP212M)?}gOI1~SZ23sPrTJKaZ*vUXWFcm3BnfK~tdX{mSWfCvnY8yZa9Urm zPre4ev?J<E1J4_$J^np4YLLr!{jDuIw%HJ@hYOV31-JJYfmVa3`qJrHu|#seaNdhz zIk7j@XB2K=b3>$h;bGyI#y8#?u`iEq?mh-YnwoQu^4>m_Ixo=naMo7{D-}F+#tWU$ z+(uzN48z0y1Awzy+1WfD5vbAZ-^<Zq*7=p4PC462kpSB1#rJ@{93mg0CD8LCASZ&c z#zITalI~6b9SIQ1cU7&Z0rR7Zi@v&sw1{@7I1$&i={D$e@C8rt_Ab(04|{qy^co1e z`Y5JpF$kJ_3!Fhg)+NSrKT8PU4t8ZgcOrmaLU;1n1RJxfbE5<ENLjt?-HIIse3VM5 zXda5xknlb$y5g&e;&fK=?$!Ud6X7OFo^co#2NG#ulnSYU4V-=GvMxxuxk7%a%1<eU zB~DlgF3`{U6rF>T!!P_R4;B#=Za6utbl1_@s;MY-$QfsburUq-@Vh~;Ipuu;Ni71( z4`{#^EGkZX!c$mR53gSr1%1^g2$MdjOaS*_e$uKpAEiZ^)D_62Uaw5w{bWl4Z-o(w z)(29l-oK-YbOXki=r8*w_8?W^bvCKg-_HRgnk(wqz1Hjkh;7xYMX`gcUq44ocS(S~ z<<Gl-8NrL{Yw(?@C&H{_R&X^qey@p0hklUx<9rsEZuP^;W(`#J?Cf`I3}ywDpPAy0 zOd7gB9NXVCI@&NdcaTA8`124)Z1WYZGK1~l`NT-^2aDyiU2FZRms)~(NtTIQ^PUGo z@skT%Lpd7_nW12*HeCbR@tI+pl;Z{Lk8^^<u2VjYH~Y?;nZ<zK?Tew9+rG3cDOJl} zX5oApRP$#hj?x*7ga9Golt^LB0sHz9{)7F|np!ngYIz@)$0-g+ee50FJRIB-Z>pC= z<QhZJ{I0=se`XlsLTtWXO}=QIf7%z>&;nndRa_uD<hSkOZikfbGpyLO6PoeP|13~R z9p!8ett`zv5OtiPU3}@9R7qHB9aS0sd*!?%AHyDR#jgcz(K*Lw|J)l~ouMI2{0!Ll z&b8Y(b!8wllw?&SAr1uE#II{jYU`^vbS>7O^qox36S$$#Hl!h_8zUIYim6^j*7opH zIt9_XYiYn;UQ^fygE*+$8`e)EsVYod-@T4`+1tN&u;)9*KSKt(OeDpHa4)<5kzE?Y z1cv^o4#?YDo(zA_ih(YZe3TC;QlSuP=JOe$y@4<sVN_cunu$DWO+EDSiNvLk`%QNL zN-W~J<0=~>TUsKZcY5J?4tF_#%|ompc4o7#W5ssn??Zb$&w~W+<&u-bm!d1lqW(o! zEE`Vj&wZ5on$2Y$#PQnq{~q|hx^ApuRLS_-N<~rdCd_0`Xx(STrrAxo{{}180{d%V zMOA=b(te~c$mttWsIx8R&#agvwLQlmJ?BcxpVR-AX@3!svue)Fy;qxMzxCM~>>?F= zd2MXX3|<ZzJN{ah`kTku%-=Gn^Nf*Ez{k@Mj~hLy$*NfydMed5cv<^<rFYo+jF9vt zd1iwL@g--vQ#yaS#^ZIjGvMC0y^T>Qc~vK)i(@yuC?grCH7f?8%eX*!25dGO?_<ct zi7h$%vtVzeCDr2J)tWLOrdM>-za_bQJd_9;m{zGyUHT$}mm9ipUO$HOwS*@wDXx8a zX=1HJsOhTbwn<)dB6eB|0rR8CH6)eI=5*#eNF$*>M1)!}VN#1Bjjks~h<RY;!pk4t zn*$YyokZkSx6W*l{+7x_(J5Clbj6p6pUMnD{W?wYR7B4J@8jPhX^4j?al|wt1|ET< zNV@t3L9ou4HmQr!MJPM!%!Q|F-*n-n#J$vYXph8Mi*`lQ=P?9OWlV`ILb<={j!<Ov z%q?(bh0zd{kfCd?fJ60z=^xFxZn%DUe^9|&1=u|B!K(yjT{*2pGRT2bGR#=P+id&_ zl|Z}25y(d;&(gz)b#ATE6KQ@4DB-L#)Kr{t))OXZuI|8I4na~IJKjgX=}$t|<Zk%k zEr~em9|yZr#7S+@O@|rDcNwXlWpL^`Ny_sQ=dlDfM)KiRgw*z!o#g+)_&h3HhR8w= zpRNG9Ilr~Og(q#jJFbLVTb@o<>weJuGJonb2g>9D@|nCYBH3^tZ+8kWM6w1}ws{2D zq#%fg=9=E=uAstg8*AO>IvaXRLs~p@GIEqD_m$!%VHKr+c}(O#+wxg3Yu?X3@du>z z+_qV-A5lCkubrRWOl4@glx1(U-ze8KkDEo^({0RP{q>ouSKk_A=8E_dY@}VjvFx7s z%wwpaZTpaNVp)tpv&EClwZc%dl<D@m5C4kW{t<rHd)<rIkt5BE%ov_iOjW#KlbF=G z4X1wQZc|UhAN9uR_1fy%W1ioO@y{MzjM)D5QAL*6iH-H)t%v`nGwa0w{ea(Q8$S{< z3)V#h>ITGt#1g4XVt872Q;NlbE~h11<72~n?CQT8JvJELSeyM_+`l-ujVDq=Z!93p zpLLYiEis<oS<tfdj9a|TPP5oNNdm2oh!t?7J@@^xI)TO)sh{bF(3TIgCnM})dp!GB zMZP^S`g}gxG4^$tN?to{hB?^hrP#%>%)t9&LRF=PH@!yxo#0}{^fLtr<imA3!lY>p zS2juj?m7hHc5-xfaG3fZ-k>g8F?`IrVmxyBmiGMG*vAU{&<($prUj*z7p0Z;&zY#+ ztQc__Pdlbe647QN*}*CB+Kc}A4H(dD*ye`DW&Deu91Q6JfD3PDmTPWLc+1`=$NS@M zD7L2fCxhMf?+@L(`P6b@PVBS=;_)XFn_M?wqy|~}+8$!>B^*i~QxzvDtqi<2FZzAy zpJ(KXw65vT&!2ZN9NHM)>}Wn4P%=M0P!Ys3K3M#r;akj5eQ2WQL6Rj?N)$qE;zji@ z-vRerky0Dc9?K1<-`{L1TsKwhBh=rF$2%l!{u$@^toKOZ*W06E7nRMwUe)j#rvzJ! zx}0YjJTqiJD7!2Ck5)f{I!FW;4P{bhAmTymgTErAb)Br+NMQMHQmp-Dx3J2`DUTn2 zFdpfM|MB<P(`{fEb~brp$3NP6+tlCTC7*8xbA)eZO+|jj2fSh>Kk8UV&>;f|0Ca0J zE<LV}+Hw$-hIo217zn&C<y7W8y<D#g@j6Qv3jUmNG{5E>D&FwK$Wd;8+?dT{4aI1r z>}ZFeI6G3-iTUDu9%Xfb0Q@Tw{gg<3$i`0R@~fd8v1~?P5G6kK-ISJs56b_QqKh9> zk!W}!`P6ZgkZ`CsVLv||N0Y?qU&ci#WNZnpdlY~tb(&f5m30=!2LkJ#iR^~ueh2U+ zl0CIRi;LodfkDvPdeu8bR^$RV>2ehr%ROockQH>eT3Tk|MZ%e-+hE(Jj0?18HL=8% zi6a<ri5IVFlhU%n3lRQrJ}!!cHefj{n5>A-Uqlwx<9ItJ_=I%$_K64<%%RAK39&wc zCh4rwBVq-6FJjjZLd9c8lLi>5hAzs7(WLDZiHoR8d6^8U?OMr&hdTc#c-kjN!%ki{ zQmi^E+%EdpH}LywOK*hSWp0HFJTbL<xrPbBN(f-P7Vvu;vf;lA_G=q|X5px;`+MQA z^s3hb1KQ;XWnf@t<Q_tWD4_`;_}7FoqDgtY=;lv?lB-Wm;OdX|v|a_LcZkP=rE=eQ z3)Z5u4(x6uhno#IHnVW)$k^F+J^`W6H(m@Lr_BXc?cn$x*TykfVs-b)%Zwmjm%u8= zjA0OZE#rKqK$aOVBA~ZCnK3t)A#Cb*Zs5V`oG)J=>St6_Bp7)XXniSsRtH%!B;;c| zKZ#Bp^RA4$a4^zHY>6{$1BXfB)SZN#LiQDd4QdOM2?KR!YZnX}zB2zw(7ft5o~$nO z(9-su!sg_^jTByL@vzXaT0GL!|MT%T+z02e%o};Pf?98wT@VNw#?#ax5N;1zcbo-i zbZFfQ(qH!20T-Bo)FvUA0`ZVE0d-a!NF2OiAZLHXn=-={<g4p2`hn}qp_hq?F;j&K zllsV-`VPwBZxq7ZBpx%%ln8d)GtsHabEjZEIC`Y`5OtCh%iB#+mcp&6;%U9m({M47 zXKw}u%r`&zT9>q6aaM)!HE>9^o^t$C?+H0gymn)~r-x3v@tK=RBLh`+XZ5czHU7R; z+2_Krp{g@%*FvEAYLddt*s*#o71DezkvyV7D0kc;dFkLKiT>HpSBjJK!RLhQlxtRo zL)Rll47AVwWajnJB&F%{cj0Ku%T3E-I9jjQid_L>t%@E;|FBty_5OT*-bU8=jcmh1 zxsI5)=xz%Z96#&MXLomeZXJBjQAI6!^)3jSfLb*-r&<mXidJ}C5f1*d^_5qBLP9ow z&<^jQBu2E4UejU2iatGT7INiGIo&57vm%ep{rVWsP<!rNa%Ys1qEl?(+Roh2jn%;l z9U~iIv2Xs1m%o;d5m;JIM<dkeR78sltX>uotwdppK_g-s&cvSJv-c&*v9)h8qnXWt z^lmVzqV&~0VoKX-f%Q89qMYfxH<G;3eZP;5)?*-8^5{5~!A)AHx#Rf5$ZV7Z`f-oD zF;o<Y>rbZc2OX^X4|A|YZiS(Vn#wjy@IkW@Kq`;LtwlX-Hh|x}CUdb1lFDS`4fO(A zoI@mIbsc3%dX=Ep4Gs|MWDyWqsVMdqoR6U1x?(H=lD@+c+52&jwk!|p7D(9TL}vAC zS@CdeZsF7gx2!Hg2eF>0{_@EIWR}f(A8d=c7|53Q-)-T4J-XG6XgSoWDZ?qBC6v`H zA`nTkj8RtaL9KCYnIn`bl5=~ZW%<63BnGkw3j5e=AK!B*)5w3NWU}1-HY53pBCh`- zk#EFqJxaIwBH=te&=)DwJc6n?>C2F&1zwzK=Jf{08hLGf)X#X1;1l_M4~YnRURmNv zqzoFb^3+5exe|vaA(ZihFu_sgv!zYE3T){$;B5Hj`tZWYKt(ZpbCPi|eN7JOrmh}w z7LG>V`$-kAm7pn`i&`;8RgPsX`*KrsG>NFNAz(tV{5p;bE6Mfu^?i1_sbh84PYgAl z5tt&+|N8Y{WYADMr7S?+&7{l2d3>QN)>$@IY{EQbDTYW?VwB}SFGA`Bh{%DHNWP5e zAZw658v3Ppbjw>qIOW4#Hyq8>1Fcg*HstU$FKiMhWp|mVX|8CUKC-(T2}$9n#MXX! zqJDuZLM0wOaE?$#4YfV8dK_OSWHM#X=`nS`bmx8oQ7_!k#^$kTk#1;&isr@s@3j`; zbzr(7xr~%`j2>bn73=VmhHYG)<E)q3de8qH*hplE*)!UezU#bIgbma8zM};sOx@<> z9S7RJKa@VD#@IhQ&gYNi<NCWM)seN$ZI$(h!;YfPtRfAUqdTs0xgU6AW_45gA+fxo zIzmL9!oVKN@;yaF>v7{Bxw>i-ggU&7;w8ooUJ)u(AlFqAF`i`tO&;lY<^OeEO}w_c z7t8jrbnCV0U*;?yeH-$3F8ff~YPsQfOlQgF^}wjN=@)MgvrtTzN5PB2h@EUB%N_oj z>e8^XHeu9wO%(TFeC*pSad&Kb@heRRvUj{<<B?NsZTGv8LXo5ChzD!1G-+!ok>|%> zIC-I`Q0=9gOZ?t}+W8HPH^ajT%w|SbON^1nR@R@%PDW>QhcPy!HJuf2SYR45XADf_ zEaJA0mRe7&WJPEx&?H3Q_#Fh6o-G~)cK4&g6JaG`fhC>c&@3t_g)P0m!Ni>@ZcmOm zKkcRv#QyHw;i$cHOR9~Pm95ap@&oRnRCUbQ{=J6A^qtxDnkw;8c}APOoRDaWiQ+@l zN#*LNDm4v~S<FvCXQDxhx6PUI3FE`uhcy`FiEw&n!L6|)Jsc6Tr&b~AW>26;_=1p( zQ-|uKRjE%kl}Rn~K7u5I(rG;Hg>LIZWEOVIq~s`N1A>pTUUIW{JoE}rvs@K?@T7Gn zAtGeJbHF*#cw~r>72tvEY(gv;E}Y}e%iwJ+NFkFD0ds^(Ar^;t5RXLR$?4rbpH<2D zGG*#^m}CfUbq04;@DvRV>vv$`K?g~2>JB)lF@gnjA(HtnQY<tJFQTuSf-fA#K<%4? zDqxI9qOT)^9_;-DazGU)7D4vbCRqw79k@nYgDSI+qydou^acV>IbWispd!+4hP@uq z&rSRP&w}TKB*~Z=<C+(W=At+SFk=a04h-Z<T~vj&c#kv;gJ3hqK#iN(1K)xg?~>%! zbXkNFNp#vdD@Nj3I*gP(-i=V8qNKeNQ%5iYq4t|E`4}4kw&!@7&gP;&QudDpk=<$3 zRhGT66R9e$0GG1Y=7sQPO3yW|g~NaLG@E)?7yDf%lH2HHuk~W(HcGqO#qkf`idr^z ztgg@Qi2C>_;?lDIo7(=g1_rH{4xE(r3@*w5q#9)k6DaE!#CBW0b}ldQ^>cJ|bay`k zJ%f{^(WTwsB$?GSl>0it*CjqZKQb~>oUCo=D5Yebz!1I7Dt{yXqeW7H(1%STX$zrB z;;30!DN`;C<#ytckwmT@;Yz=d!pnJi;^RvSM|w%!X5nqBT-%m=!D0t(?C!p;fB)*^ zHA5VhoR3@kMj&@jwjk6o7*>jbL%ScXJ9c6%g`0qR_KwDXx?_l4Zk>oY`^EmQ?K`ZW z%BYu_DY)0&=H1Nx4vm3nF29Jub8=#B#@_MQ(SvIc%^7(8V&f?;SUvMFVs-$DYy1wx zt=Wf7?_t1Pvpr`t7!nF!9Ne?(^4D<DiB$E(aR--MZW_TnsoNQ-t|2NCYVNq{>S<P% z`w9O>ky;*BtoFDoI;4nrXp?2DF5M75|6-%&;CQv)b=#@mbxsu?E0uPSMN$L@F1EX~ zQx)6vi|$qQ#dAWm=}+p3QU{HBFZ+Zf&3&X{Mx;O5ke3}xp2Dpq2O`$^E8--F3KBZh zf59Lr*_YRGHDf*N-IKorBah=J0>bm8g-OyUK3)!(dVcvhS~DXlfRG<Peh%x2R8IO; zN5u8lIuS9y*~0)X4)-vSS*GO}-3M)MJLqVy$bbH^JRZ8fEO7Ihbp6&JS%t06t$(K* zD<XVvAO0|{El7!df&{*{MT?>&16pkV36t#Lg@Yw7SLo?~-%g!LzWhiwHdgJzkCLp@ zk!_k}(ZCZ!!}8pUv}?Df+Y}4sXE}%y>(x=OZc2Q)@)FU?z6+A518AKQ0juJbLINk{ zae-z7oBa!pvGy-#-YDgmVyF{>UFW7gXHW_b2&GQ``oUaTr<R1oc@>+*Y3y9>2mU(8 zDFUS(C&5k{IMoYR{FTYupSjVYd;&#czfPme!XDm02M?(m8Dap94D!-(4=un%d`wY& z{zK$|wbO($$9@N@TF5?<0lj*NN#XbndoD+?rL$od>Bz?!m*a-rt$>1<A^!m*N?duJ zcV09*hG%^JMT8h@h@PUvsiA&aKeW&y6_{_D|LkV@ui~uJdj^5cgUpZ%NQv7+YO~DG zPNa7==9cGqp;=fDf-1rQN&*NVuhJ$7glA;10m{)&BtP9pst9xagR@qc&R1pDpl99S zm45aTA#gg1lRmXv#2Cn{yDbQ`XYf}#G6F@X`SQJ?E(WT3p$H3n&ZqT*g0c5@%3d&p zW#O>i?`Vh$|LWXMImyN^E-Oc*Pbvl_1U1e_sWM!Y@hBV}|Cpq!f|qvT%Xa@bgvh$_ zA<_2)xm>#NVA?kTu3YURA?RkS#pvHw-m-s&o6`hZOD?B2DLc<QEngOlX#XuWbt2>d ze+BvGz2c<HfmJ{C0TdCT*wqJ06)!D~-_HX=2BJ0Ns`p#!?dg(hVTpm{i|pH9en+JJ z2M!`O*9gKMJ>j`+GEdVJP3+(DKm5l7jIcfM!ZaUR@$TOWG*Zw}jpXRfy;auZN|JS1 ztxrrWIcod$Dfp0vAv8`j^b%T^4+jO35w*!PKF-Z5-@BKn`|bxazWuk>f1nYk`ME~t z>s4)K_l0cbj(u81)(^;q88cVByf~i-r+2+5EPT;T#3rFZIlGghV}Pe+;K;o~Y&nm$ z(2Rg>s53kHJ-eCOtNQY~;*hRCy3M@Y3;of=<MKz@*;#BiR_x~D>`X@)BVVdA7(~tc zhxp#3bTnt<%jCO&;dK7SMKme<$}Uo-I@+^LLYY*<)`P=O{PHR?7ui7xkXN`VG1>G% zBbEsZ64W`wPm#kTwW~0Ra}sD~%A~O;I7@*w<aXAqx!U?bi$M_A*MY%v=W(RpO3vS- zR`$s2CCm=m+U>DS&Wj&NV|{Ni^wvfdd$vqH|5w3vMu`J+R<%$i$!Q5v{GT9eU%5kG z>$cu^>&r?3Zqi2aa9r5tW<i@A+l!uElB*ZegBa42E04Sk($Ue;eR<>*eM3c2?SUyz zIv**MD*h*g>pxqDkcNkB_g?q?c5v8oB=S^!WVPQlRW{j`9Ru$M7nPU*c^li_d|d2A zqZRJX{NQ?HS|Oh5cK-tdb)5m#_7J3`>x#U`mE}iz3*yN_7rTjM7HBEHtFBx)B}EML z->W-y`K~le$V{ZcQ0Izugz)XGlkJ8#`4?-rm<`UWy%3irb@nh(QvmwVS0ZH!zzqQV zqxHK3kMb@&7Q8^+5yp8~t3UDOGg`x3^9?_y-o7Q>L$uGEyYYb&Hn*JQA6yk`1o%~> z8?lLQgQiSk|Dyq3QbLvh{gCG|P?^O0GtFzkw<^P!6YGk}I*o@}BpavxGu{Q^zyFYl zl5mP0)7Fzj=p)LyQLi&K*Z+S-;=dk5>@JdSjF2_8I4G@H9KA?TOJfM+>OS}{i!)=V zkMSyj2`HvSMMx`t{<oI-Sm13!J?MY|KH7-P^7%Lg20UOgMUxnie$Thv(C`%%eU^8{ zSzF#zrqU0)Ur1HZf{X~I{dfcbve1rruvLNMG}Xw0I+2U&t|PMfOw<G69kCp-htab` z%ZT+4n0(A70nNaHVZ8?f`EFs`C|kdLMIECISIl{Yn({^M<@IMe+0dRr*V0oZ!bDkD zuwfvlu>6O43?O8m;*MxGBR6(<Zp7yz;8txMU|5@ChWLcpal*YsPq;mTBO^3(XQd<G z5xS53+TegH_3Mk<X*xCD5RbG|CF~!9Ce;KlmQFEj>}FKePVxK<=A2pw<_EE#xw$JI znbwXG{TuYIYOWNa)=A>XM>UMvdh5z_y0sWD^0-)~-ErT~Z{xDmw|wTKej3%|UHgq{ zu7?F3(T*PVW3N63+bXE2BoXv^emlf6U<7s??UE+Rd=sIHAkZn6+~!%f)4e%+6wvs& z$)A6j^LJ9_gVDNLr>m1nNUZ?9x6Q`+9OS2P#`^6zTk*d8{d&*<b85T0i}xobrM6-{ z-Sx*pDtl{AsOUAHeNv7V_k7$Bu2B0R;(H2boq(q#!rVq?VXugv-pN89`92-S9^ss_ zqvmv=Qu6M>g2R19Wl8=$JQKM)IHqr%`rv#a|GOO<W#dwx4CU^rv=_Mck$;hCA6KVt zypLP_T(0{5iOxq+l|!NLhv&*V*RT3!`X^0JeE-BWLZB^%;{tV<C~b$Rc?7B#cv^ea zhc50!r~?DWj$U3tUS5$KhW`Gl{_XRGI|paip69&H4)KZ2Ve|Cz_&ds6G`xe-eMbx3 zlz6O$Zm!)%Y$TTA5L0*Gaxu^C13^`%w&@K+Bp?6HQmNgvmN#K#pGmRqGR>26e=ZX& z(|&yEeqIL`?AC_4;daX4-cLj_ztZa*10vO(jimVcH5+H~#P4G*j=h~5ABH_E)4lJP zPq#mu`YU)Ks;HOv{erD+#@=%1-|$MbJ{--3kz!dd0<CxgF3`!vw$Wkn<5F-yfN=Md z+BM5<6dL)KQ``mF``bp0KDK#tx$NE(?pzV2U-16IOj_jco2bMqBxL9isjW1IA4gp- zd1{L$VWNAMF-N~2&3G)k(|kpVDRq@q`Yb+D`mJCLXN82u`2tQnl_8>t1&fcs!NLTb z;x1DczW>6LpK6DzP#$wprtV7N`Y%%*Q4U3)H<EHM0s^m@aH-Iz2xWLcdhR&`1(H}R zGU)RD5FbUN6-l?phJt`^*h=;z#UogJL*1Mjv{${X^pr7&j5tL0E}d+T9fy#%C$s4u za2MRd_4E69sj{cW5|Kbku?8E)Rb&p>0|HheHVF~&_Z_T=82HJSN~yqUZgnCC!xOI4 zhYR*>rBY68_47p$I$lX+vz}W+WT&43BP@h|tv9qVkOP3Ryz~otyZ_)xeMxfH*f~X; z18~#NLSMAB2MLr>HGyUAj2MZNgLW2yiO1R#uuC%9YW%7FVJ;h~ZQ2?Yu0UjAs0#2! z%4!bM5BTQS{uzSOU>_$^wK_(;qDW81^VcR-RKSV{?9^gS=V4K7nor$EYRd$Qh(ncb z{lm*RitoO5)7RII8KjL(2;+TX3(y<CM9rQ_t1i5`NS@WzZ`_AVyT-?VCOJt!Ysh^k zl6qSiw%r|*EZ9rU@Qz;{OS=+wtX=ckC$?x5^R308#Hy=Soi!^dS!GI5C^#Y_GNRd+ zx%_HtW6jyy8JX$u5%*^FYoSIlwf>GUmONb>w;EQww4?Gx+}6F-m94=jMNS;~(=3q` z#)BSw%0PC}Hu~e|za3ATm}uS?l<QIC<^FAE&RvW=SM)G>hox^IQ=R*CUT6E0@2icC zg2KrH%o6;Tf}qkcE(Nsxo;EDkx&o2FT2ODjns{P(LzyC5Wg+(BVvEsqGP}L4Rn+F! z_@ys3PnE2WzS(M#=ZHMgY80T`XdK&V_UH2>f5fA@L3<~vKNtmFf}@Ai$;RcoDy7Ap zafs0Vg!WNBui{Q|yE(bI^)&CJ!ofyp59>3|X$CquDSJJ@28I<@%=UBQ$5@HvHJ2Y% zxPj<3e9qfwM&kv>QJ!B5SJqDq4UTdg-0?PXJ-L6CpYft>!sv8m)$3bm+PF!!8Cti5 ztUckUc!jR|%?tRjqjdlcwS&XN-m@h~^%O`%lq)^o%9%lu^POJ!oz3mq7LA;@xUk>L z%MvnNnT*}MwymMnF;TO3y#F4p3$5)9uH@u}hS+0j>p1E+uLN$l@2Bx()icU5d$`ff z;FV=>W{M8zdTxn4$@wj(@@S&hu1?gCWYgQmYwQ~ucypvncaV*RgY+#4dzYU6y;gXR zm8-9%n-S~#ii7|`s+kgd1PKAs%dj|3>E`gga}9jNqwBKOufhH0D?)Ym+upE}ob#+> zX53&~I|s#l-qV+(q9pCuCo{FTm@k3mEJI3W!KTMQjCpC2iX{*lX*;Dn{E)FN>BeWC zN2zQ@S~`OU2OWu!rkHX%XUC%w1|>HCvw?nJrT0!<(pG!%H|KD0cqkK~F&A~TNd`tf zdPsUcD<xt1Fpko7$mhG}G#<9B{c<nj00CTjPXnX^N2asTY?crJGOr@hqwBD1eOgef z>{Jf*1t3oj%0K}hGy~`e0~+H%#rW?q!6U?Q{i@W3*qvFi8r*Pci_sB@lvo^jBgOF= zbnGoPF>m4CuX4i!1ZlDz#43;wT6WYnnQ2x>7$Kj#f>4ad9O4mDS~sZa<L@5nfF&zJ zL;eFY>GOiDRchuE&Kk;1*mctJSDctw_y!%+WaOgkz$+a=C(v7u3coMo)RTq8NokZN zL!B6Ps4MdDt3#sYnOHd}67=$7eQEQl%}e^gL8B~s!dvk=BZk?FAc6f4bGIR7pLQw6 z@xTveqDMzBO(n^U<f#3}!IEIYVml?QM0Im<rG6EW1tf7v=C1-`J<;{=70a3oIJN0D zT?Rv?0m(;Rxp~I60EULeA9h=rgxs~}faOY?+_QJ{+dVRWi1)|)WLB#6$CkU?=KAVB z`;MKq7<W!5UM_Za+R?Z==20A%x0qE@|J#Rr8x12Gc-l`9Hq5)UG_|tt(knGv88~@n zE)9>)+XO#mtG+5Xy0wnO_M$y!ec%Wfe8JI7*hrn-4Aj-zRt&=>t*whBOrYpoS+C&B zLt4+C6cp^#)iPyaMh}%8(z*XaM$Sm>z@EK99!^#zm36RBrI!UQVG1jZqe@5!jff~+ z3k?-dNqU#Va?mj8tvcvs9+0-k&vRsZNBaM9Co5gdXQxiibub;#Xl8613Q{#BU;}Vf z9rQnH%s`g7cJKEJj$ETut?A`eX!JLWpz&>nNGfF@hJO(ZI`8&jYB3an3>F-HS#KV* zQhO0{i`HPX&hI0OY8%n-m0NaOg{FNMdLR1<rP`q?mH$Zcr`}9QyR}UP*Hz0`9!n9r zH11U&9QX1y!RVXaw`~MT>U;_V<_5^aH|V&t4;_Q~r9YzsjF2sNQqpBkdu6?wIpWr$ z=o8jt^0y}@mQ!3(QUyD|CRN4h?R!!FP3Vac-aXY;tdx^$V{wS}D`nu1Ucv=-6RD-Y z4oF`_|GcZXE4Gg#nCr3h(g$vYdcWZJ{Wk9+kFc-0NgdD5Osd|e6%U8Sz5KG0fRwEY zsWM}|Q@H*g#f4$x>KYEJw+|o1m+_bFzN)^twz^ip7tvt*T-0B0bv8MOp}w?4T&bn< z*r6rdO2uX|y6f_Vb9xamjMSVpgkL6&i9%r7xPm$}vhBXGR9anrV6*^@GLL;NA>HPE zJXA(HE=l?3yRPoOIQ{jjZZE}qEnAr14knGM4XqE++j%iW%W<g|QMY=MFnNK8l;=oY zK*FVPsfH}r)eXwnZaAXG-SjWaf5d>{BB1w&nckn=(wXFlzSc9^hliB~2Zg{Ur25vO zM3?7xpBk$F0}zUI2JDX>C!(bNo{Il*gHu&)azCgEkaQtI0X}iaxnXw$NMh9_B)sUC z^z5wp+V{8N7txMJN&znLZS^$!wQoC_sPT2#2ha(l-%v74A%QIfeN882w9cHN7ZMhX zwKM?`1gE%QH0dvJ%b=r}5W6-&q-NcSvfJr!{bek@$AGWw^Xey3hfH|rAm-eh>k9qP z2q3He&bGqS-bfuOEYCB|bB5MnJB~l3XtaY*sPWZD;Kr_tKic|vT^K6ec0dy@KoMv` zXm@bb$1-|;*D3p8&$+P;k==@hoO%dMYuA4~9$~_QCJ8;@#MCo;i+x7GMSqElN(Ar( zm{mi=$&0wP?l!RH=-HhzYVe2EvnLtTltkx3jL^BJhYs0?qiur=gJon-88olfNKs$h ze%tP%Rh{xOKvCQF%vSfS$`*<1NvY|T(s7Z8qK6icKp&;Z?Gz35ey}cRm?U5?t+#fF zq-V;KT6|0XY-v4?J^iO6R9~4A8EN&r$@5TYDfMGbY3=Qqxw$>(&!=&%E&Vd$yP;63 zUpm0i2D`AG1k4-AHxIW_oJ!@Cn6S1f9KV&6oM_r~!L{V@Ecr*VpZIi>3#Rf7kD4)V zKQlCP47@YneVFkvEU8h8q*6@wjop?v)Xq!@Hb67(;;7FzKLZtO=1cXfvq>X462YZ! zScM+gTYNGz7wv=i+(_9#C2eIqZF4jCJxKZSN`YZIj1Y)Mpu^yVviIvUG>LDMLi5Hq zSB&%T&iv-!j9=gn_@|(&a;f(^L#D<cWE3g`#tF7A9&RJz1lr&jQpTwJK(yuPZL_)A z{skkBE5dufC0)IOutyFKC%1#CKo1K!X<>$0*M>vmQ#zjJf+r30p?*%eoTBg++b}^= z=g)Msi)UmMaQsgHagc}0zw*p=1Mvwv?P24Z5&=62U~UlGpL7NRA<H0T-UqQc;)>9m z1W9)L2xXTs3!C*<<=Ng!;f<K{negYb48s@B4t*OQh+j|_Utg}*OkOy^u<OT&*DEz` zeLU?5Kicz4u*wpUh=4q7Qip*ep&=lxF)gj>e379(aXi2<hrwWZlaI*Hwjr6NV0<o^ zaO%?+K9Z{~pSQnQ^(74z2Uqm$7hj|nZf0tFVRt$h5qYcni5|IKU#p$C&=nAjI`hjk zjLOqiaNtm6mZ7LWn(&lJPCKHa1pom60S~fv(wCC0+8LlOWTakVNB8MT5`gi*0)`*3 z#tdCw%Mt%?ECA{h0q}%KxXZ~E4QCMkcN<N(GRG%}zHBF*2bF)>)+p12rjFLZEM3dj zuO8^`q^oh^*@#HhB@CeYat%#7Vv7WRn^RhQ5~$^GN$^?uaHSqd94+ll#Jy;S6gM7@ z>mT~H?s2ajAUbhvl3cqfBVw%pb`1YR3aS67+j-%}msR+0V1OlI#DCvu<}w^H@e^;t z;Tb%Yk@Psuueh?O6?q9rv~~v@u0Lw$ody=);3N1l;Q=;MP<pa-@iXox)rGp*lFEp6 zE)iw~JVjCyo$K;11RugwMpA5=FxGeR@Rk7VNz*=>4%!Iu6)I#Q(R&#@GQl;Ai}G7q zhzr{dKICE7w_d|G>1*E!)KAGBSJgEWVeRApJ9p|`5b(bM2IwCsYf(k|qY9I!+I`#t zs7Vt_Nc8hvRL4Pg+d-cePZw38*7iFwnf<fTAJszRh0h<%E**HKfKxxQ*=X9=l!uiR zYE)}~*gA;}W)UR)Qoo4Wgp_cZoZzxf^1gokMB~*R>w$YeH)K4g2FO}nICt*CS0vYF z_ldoMp`n`^G<35I=OeDF^EfNBNb~rbvfz6Dv5^1zM<K+cnd>WRtfpsnch&yi{#Mrj zr}7I)BgRVFp4r`<rVHE$f3|ElY3{kM;^t7dnJ8C0Lxh*e7a0VRcN-^xn%F|1&bgu) zK#kaO*F<rQkx@zFk!<AgADxlRPCMI3znn12v6J@))1!^5`<3#pt`<5rIhsoQ9$@&2 z!zLl@FDP+YXFDY%go8k9{J!hgt~7F{49DXSC3~3}?S^{Cl1KjjMres0?+MfbaWr=; z)!dP@DLvLk)wP0K=*E-3mdM<XMj3_FHc><->0wiH9K!xuzrvIS+Znb5;{9zDuU{bC zZ${R@7d93U5tf%~Uw^N#;v=1gT^FXkhU@mo^u<nId!sYi^hfJQvCKNM=E%oh84`Sk zKv^}b7b8tyZVBwE53WnNh4gPK^HT<2`1w~n{}^0ceD-6oNXe%PPp?Qwi90V4CH*lt zn7rxpvLbwh1hW6zl#-7ahTP;Ic9y<}qfU>E+_;PUA5G^SPj&zP@y|KO$POuFl~vgz zWFC>3Q7S7d>)06~^Mpu+P-gf@+o(`Ns1!*!vUgD&85t*=e%I;#{{Fe|`*ElHuAKM# zeO<5X`FdU3qI9U=K}^ktIHN*6d7Yubfss@TTfeD*8kR7?GPzrk#m(L5)4+7$hdHN{ z){j~(ZnP`A@9ZROx-8H1B|d2=q!%vk=|g`7^6UMf+{z4lU3a(aZfV<DHk3^e0lExi zhkJYRYH@esFdN;_MJq=Vn|v5l*~iZ33mu9$1ud#x9ove=r3w~AF@`>|JNVrfPEnGJ zV+bv3GNHi>LZ+4%v8;vkqNgCi+Y<@ebf#*Ba8HQ9t)Q4DfQk-Qs~p8!a;wt9Y%=fR z83SHo86{S_7a=6R34=L=CpHKGc8uy<IQvalprF#c|IH853nvh00%W1ZhY{aW^#>fq ziVr`Lo<svB9fH1KIfD!;z~MF*!PAe2`2F@~gZX(Q38TmY>;xw0nYzZ)zQ7P}G)X&U zoqE}y!NHFpQmNA*69k=8GG?OQ5A1^Il)D%fkxBvLDb*5Q`Ejtc<P^V{vjCByTm&I& zD^T;+3?Gp6O{Y#0GxUMq6eqwjJ|v6O=+A_Oz|VU}xjc|`lZ6v?T^7UdTRui@5=s@l zlYIg*k&&?>3k+F+iL@Q50UZMprl`CJvdw3O5NJNg?63px;q72a#Kv9}A<0DTFmw;C zJfTIlVYwti>CoD4q$h{?jad<Wuk4BjNl{4yD9SmXQcZm8jpNrNiS3lf+N~##BO_aP zF*RSgREt73!xhdrIyVc)->T$k*@(Y2_VtGfpT4h9eBx1y2Mp<kjfR2kcP4ik&MzKg z_80ScKi*I9_m%_}EfyBo(~_?KwIZ@|2f18IhCg>P13L022HyFGEgYI!SXiivgefq< z6qpSm2jCDpIdUkm%&38-VKOUs)@Ap+6Ny>+X3~MU(!|A>4-t!(v~-Mu*Sx}urLv-I zIo>Y53HTMHN}MmFBe&=h1+?Aj>G99{u;dfzq8@LBpN~BFXzk(_hP@)wb!{=3+#Zqg zy482EB2bi}iIC<fbivK{Vcedk0N@{(0s%#gTxiBr#>ST>aWQxWea<wDaT4E774MwN zqqkPyMU#qlsL@wd=H2K>c__wI-o9_2+pUWQtG7YAg^)oI;1`iFXu90z-EZE8olS@E zxu+{^T;59F<gxC)w5%IR$2vU4_VUq3#yyk1uvCPdD6hR+!(M!3-4K6IrlVu`$%x2H zr#R8o0y<RAolz3mn4R4NX;2wQH1N5+tV*Hti;J3&HGbs#hmuEEP_KoJCPu8kTNN&p zva<3p@z43MO6PcI+&+D2;Kb)Po<~saFOWs8txQA8RTIn7Qr0>z{nkPM`BJrP|9k6f z-m%v*tI7^RxK}fL(H9QnygiFu(|i87G9vdW5|)Y7F%av6LI2(W_eLf(7cf6lD0}Nl zi~2o_Bx<fA8_@S&g|QA7Q8Nig77kqaYFAu3{Ud7d18djK`QmV!5r*GRBK?r4nX&IA z|1%DbLq#`_Nw%8_zh2lkXVOc4#zJ!6i<-qEKH;KcEl*#Y(vc?+{E$Fz3L{|7m9HOY zB!6i;X=J6rY^Jy?irBg5nau1s`>>DT#bujSW%pf8Hg6g<^wTKSbtX#=JLHRheg($p z_VHaY567=wf`LHLJ?-eNg;$tZI-NdR=oL(%l#4e7ys`EPhSxlc15H(=HWHx4eD>G< zrGW6l2}s?BRbD<kHG82>ADW;_l`6zC57NZC_ggfQ*n5V#Mhk&E1n@DcvS3gL$O=pl zIjHCn6KQ}EFAO)0ktrJ~O_o~d!(ua-Lk^02U@Ik^xKU9ULi|@%P#cI0JqrXqDu5T( z#CPOI0c5Eb+mzECMx`zPzmSN<@o-o2iABP<P^Zq-2wVANuN{V9_)OxeoO-uDF@w;? zN>7EJ6j^v9xA^g1mR?v2`O|L9;Fs#Ly#p5k&$>MwjEn%^^}Hbyk!lWyo`Dg19swb| zgyMdpG=wrP9nrx>g0fCkAu~eaa@r5YERIhVXevcQ>|<3l7H<ryE8B0^_m&93u@XZT zqmCV;7>G)1LxWu-(>Pc#t*>7j;kgu=S^3f&k3&YfDLW73$a@b}%-Bn%w4Pq?H0>&F zqx?)}opYDcZX>hmj7CQh^OG>-0a<*CgzPcj-pi)XuUKNdx`K3Ze!*^GgIv=(>2LS4 zSlPUd5W)Z0skdMMAfhocl9TV7@r_&QYJS4cq-=ffYEP-~B|ePm`Its`g8Y0S9r<-M z=B8;>;@iN;pq1a6?!*kAy-rg5ypK~{Gun~hlCm<PlAGFTO*Axw;}s*CN0&Jw^hG4= zuWV@}8r_HR`=Hf32&k8AKl{|VAW>}mk8A4v1^fcKKUjo(C6CT@JDRuLd^6rn)4BKA zd)~IkZw_4PS(<+HK|~ZUIP1sX%|f~Xh@JT#8e+z`w^B|$?0kLwY)oY}<!^{z+A>7^ zk+z=ps`E;pT5BVI@8aS{>g=R@n5*8#-O4ZEL&1o9m4>LaUDOd9Ihv&6_4_zyhVS!B zU+t#dUHsfF-uqo2Lfp*R^7iq7eQ(y+@43xJSv6Dt>ByncYdG?i1Pn~Mw3tzL@piRc zd>JnbEiE%d)wNz6MeUvssSggFz&CLv)b*|xEydILT~Xco9lagj%|NR8>WQhet1?4K z`wid&>3B;gJ-37LS;!|D2QA}6?G1l7Ok&t<ViKock)_%-f0w1JCEx7K8?OEZ`*XLg zh{62d;X_xr0DE66k-BsmQnMUVmx+)H^0dV<loK@gT$$S}M#Hn-rN*!Rj2sp$cr9l< z^19yUVXWCZuH!U>*^;$wjp4D>^J+UynvCK52Od0M(>sVSc!ZFJaU_ZUmrV$zoR*+) zO+rFUiybd0I44kz<>e5PRF$k)_}KC;BM#Y~TYm6kdE~MR`KV-dwfc(lK;ME~o$ch- zZKUq16;Tsb=si{*$50aELMDc@*Pr2kcgIr;0^o7?=+Gz0Goq<<%r&*k>G!3fJ$OV9 z0wHY4&H_4;7ZeBXFlh~)j{69K)!2#?jf|haN&gR3plnt>gW*K!<z;yuG?j*E>PB9S z*juO#L|`Fw6*ltyf=ndt6SAz(cD#g#xjZ~v1aEmMrfi<+SsQ%^Xa#8o&?`VR0|Txy zV&ou8jdGV^Y*}}juOAE5_X;Vj2+45_cyl@vA>byd|ArebDw*~>N8m!X+4+To?>FN= z)ge@dhL9u~i>)j*gcU#%Ab~zA)^G%j0kS-DaNPGeD4!OPngeWXe+<KF)WU9R3jdQA zGcq7kXKEMdzEV_Ns$@ysZBz`gNhZT!5<#S%L58);4;<>M`8BzXl`W_;`XIjbGd<oJ zbJ8wZbIZdelob5vGmI&RhHO~y4QU7}O1(rjKHeyZAkxXT`arV*(-7XH=mR-sV(|Dd z12JCTy)x&yy<>joYCj7h<F6(oeuD1Ed9O%!%Z9A^5~0zDR~mq?yrO3D*xDs_dx><{ zEmH4{{GCtDZm{utZ|ruK;~V1pWLh@##$N`cje%}s^XO8;j^?_<vrYHr6JKVsuDxdQ zpR}Wt?&u(@-Y*Zg`hFNOecaA&*yJCv6^W>BJ)5+;*77OeEvwm`nY65l&peK3sHw%G zm7*83of(Y2>?<tLsx!ambBTZ7%`NN0zb9fMnHa~6y;%gegIz=wHR~7)eTn%{x;y}| zsT)cfeH`ISM%axiyw=A{A2?K&HU{NSW6muH#JSzR<)-YDF^jL|PrA$?mX22J{}rx> z31Ud3Atw$ZrL->v*wO0tNLY<WNA9_ELhH=8o~0N*j35(wgPVEacK2<^{f-xH-gksC zI!k6=4`a77n<{`L-Nt{%Y%nrS%Vr_rP`K!o&3mO~8KNSSv5ou;LN^D-hV)9*ybj-d zs@-$GV}5!651YWtzFce%7}SZQaG@7$B6XHHR2&2vi7)VwDH5=hhN!=1-~0cX|LrHj z{nIQUB&4Xi`nbWe(nB!@%WD%JwtKLCNzN2)N5gwoY*~6~jOZ~p=iTU80}bN2W0AY? z4tEO<${~4YT(2VhCFK_~cy5FR1YFw?+3!`%vEw3<prxfkdY*jwTQkS)Pk0^{%g^f> zGe4ByypvhQ5O?m<p)$Kj?yM-=Q%qO_QkTbpvZZ0dx)Dk+Tpo6xlPtFfl23=fX7UG1 z|AXq<n#_^zKh>5S>qb!F-U#HscBlC$LYa)$;Jp{Ddzq)Xw^}1G%h}AH897AX+)PU@ ziic1D^}Ashn}F9<iD=ZW4wl)q1aW#0)mu7~T>^c04$HJW`6M|w{fcF@>uS;Zi~VOv zD<72*6MsGPGUyFvyZD(%J@b4_q_mw;(-s|Wo6}XA2_ir`DGPNXWEEhS2#I%o{xf0_ z900id53Ghu<K$pB4Z)dI1XM%e%ty>WkQ!7;29kk1el_T&F|Q-k4X2MxRuXmgz=)P= zZ^e*_+VsDI%=YMeVkiWc$U9JFc=^-(Cs`z2Wdlut11=P55kWVSJAGe!(=5{xE)W=h zI`_D`KP(<O=17YA&Z>ZQ;sWaPESm%(m3^2Ct}?ndec3B)B%1?+B~1q`3y+Up`v*I1 z=XCGx(Pjg|7TBqVX;F9rb^|`ekDri+l;?`C3^tm))Q-dF0>;KBi-z#hnVv-E)Oh&k zNdf~27s(U&L&5HOcn!2rdb>y(Bm8mR2z<5FyJD|Z6&y*P6DlHYq>={y&9AWK4X!w4 zVTo1%v`sJ@?o1>Zhb?BHo*XNGY^#-i?4*3xpsrA*MOk*vAvF%?EZl3~Fd>x@8W)@5 zgZmuzpvz^4^V1c6TYnroTv>n7cDzMC(t1Mg`m@)|MweS?=Bio@jr%zVy%mnP$#+%E zS5JQa%%zypcP^uV6Q3fA3mWbZN|ok0_G9F)9C>|;mQ0ip&-`ZKI1?Afuc@<Hl^!1a z_X=Y7X{x0jBExnegTdDJRzfEyLUKZh_Qo{i%Yvx!G%~oSW)V~Kw-%}7k{JFtEE4fX z@ziZcZ@doDl=nz%@kZwG^CuaEl^^B&mGmU-+DvuEkl-7st`Dv;;`e!iA%6l_d1XQm z69(}f#-DF2b5PD_ympRc9eGfF1o=$Mzt<`@>MRFQ{;6{|Q`U2%+VEoMzKY^cSIWjD zFCAQlLAOIe0R~@e0%9n$w3yCWIfj~9Ir@jT1s`M{w`u-f`_}vB>6pRej!nK8Kl((T zeck(i8e+*k^cY1txo{dV!84G=7~#fW+|#>!Rjb@gBCMij?4$VWt*k5=Cx-Il=^H}y zfsG~RUKjK=xt1ToeCXO;0R#9j-YFiP!BBi8@qd?B9sa`LVshGym6U+m3j{qcc6U{{ z%NIb=`f~lJ7_slJf_?Hx<-3=&8%e)Le|QYLYF!{+Dnd$!vgk=?b2CPmZ)#FeWxM^T z%vWqB*NRNYu3iP@@DS~{-=BEj^3AQhqYQ0PLU%C1e5<F_MLC)Lj`e9zfk0~s>w0U~ z`gCgIingZO9kviP8j`R8J_S_Edtb_sU3v#KeuTzq6E#cd$hE~CFo_O41i1hH$c%4@ zB`wL;t0(il<hLBIo896Aqlb*&mV*iFLE;;lBECPhj#aQ)Z8*C(BI3E|6<&we?--oM z;wI7?`CA$>yf5!`VJc080b><`kv+qx+CwK6@_q|vnkXqlbcz?*#>e}5WHha8(qRTg z%FSbCI-OuYFI4dfJgQt&^idrz-aQUQ8aOzQg0ybh2&^-r13rqw*9(O+MP_==8X$zX zuJWLPaw7jV94(~BHu+F@ze(PLO{NAM_*Izfc7TeZcR@+&Z2N0}G1ncCmq3?>dxe=4 ztGZxo1JXk{-CXqV2oM2{H{|pF^%_ZL3JB>UK;UL3lZ|v5)+Nk#DxP{mw*ii%o_Po) zq}CJ>5aeS=OX8>}zme$rPE{!o0I)j)y;|x237eaAEDs*2fVcb{uG0JKxx1npdqR|{ z<I65|v2!=dqHIgdIJXyL^9pnlfl)quil^~ej7@?eAM89@&3^EHu_Gv^eN9WPNKFZ` z;k^g=(Me@+n0g>#2DWeLP~f6LudrOVahpLljsgMU%!%0ig;;jj;5GJlWeg#JDU|Bm zIuilEwI60O4)yqO?n?!y=!+W6&Q^6)mQ&ps7P0fce!b<6k9@kob2*{T*XX{o^LL#| z1@x%l1}>GJer_#Fse1Ogi)2E+>k5tkMYNBrm%L+!Bfk-rEj|+;CVJxr`C#4KUl?J! zYLUD=ejCX*bDS5R(lfiemU_k-S+n?j%Fp*r7ihPrePZgxxE@h>OWevV*-VI&b7BmG z7M;GWBJi@R>x@;|0Or_msY;o<f8AA;d>qWO!-i?DYz#&V;k_R0ORDq5%kW#-=stha z@mkQ?C05t`c%)|l_WK{2(7VEyms$@xC~u!?HfaiI$vPSR=Y`CvjbudQE)B_o0nq@z zu3mvNqB?_96m#w%w<Ka?qMk4*h|&yus4ja7N&v9hH!yENi~h0fAN@RhGC?x<pqOY; z5FJ4tiz=VgiJUlw4f2Dfm<&h|zCbi!=L*V|gxStoA2=MxpD^WStcAd%cZWk_Qrn*I zZOfOlSk8(-i;895ip0JCKQR+-@}=&(Xj#bDZ9^^H6XG2BvcCQL%n`=Yx>(0ftgi&~ z9)%X!P>1YDRFIW41liU1&+;nv(=J}ZX<U3(Cez9(#m2LY=LmVa+jOm3#rBp6l&uR3 zDu8l7q{mUDX5t+0aG-YLA>q2qJUMy8BhQnXL+vEmn-jvrhd87a+<vy7g8t&oj#<Yo zaO7$BLOfX}@IadSxXNPANC7%BCmUJ?Z98=HHs$3thrVCo7`w1HanQ;k^|_1IiW1%H zqgOh8PkD{@Cf2L!UreO?xIP2s76YH_Ml+)Pbg1hwHXM>v)4_^PN#gx1af&Oq@-=OV zqeIL%%2HbUFUTd!-$e=^Di)J?>pF12gL${{R^eZfwVCx60jz(M_iC`W<LCWe#=95^ ze6v0VD=zZsd2L(_;SmXttGC8RLpVyXXxV^2<HU{g`_cUw1SANn1FM3bpLwGVHv%tp zbRpAuiCRWjAVK|%VA87DtG{J2-mlC|b#GCP7@${hQ|(<g$jF7SIn1QAKAC7xHDEBp z$($qXo>thnaTENVR>$_Do3)$rdHx7L4}37d?g@IO9=6htsxVAG1m_k@Co87%<u?jY zkTB?QcnkImmuRr*8G=;d1pSF|SLh(@P)0x%1sy=0D1C-GtX>y>fJ#eEDt4u76Eo-| zi7RSB!UgJZhm35kyrd<s{vKUJMtTM&ao`qLgEew2q-}rr2~@+Uwb)f^H4&zl;BY#! zSMU&B7!(rQJU|buabs+lG*+#B#qh=p*A!V9NDvGCitFh}l-9do2GTAu1fP;q-|_W_ z&RIgXI30r`vds(PWG6PLA(k#16xHa>p=dy`H1W~i8{cq2#({8&Foji4Q|GvJqMYc@ zcR|R=rWG<W;g&r8phtWzjLSU)S4s%+sjYm_ObYmR=}G*f1daK3ABt3!GINfz<&Lx7 ze)LX*^WzJ{YzW**+<|Z3`q=##hf{4Gy*H(QdF$&#x!$;a5r^cRFTMA0RC71_chyAB z<lrO9lzE^pL#z2dNDKJ|6I%^IT2dejF6b}|zC#2{fhxz2GQadSMmOUtE9PmZALUK1 zRPfP4M)g-glC`D&*x6L8p@d928OblwWJ*Rq;shs&hmBO%gN)1}szV6AqvK?G>l{2x zaX!D-s}D2mA3DU{=FXlYH*lA!na$;oyGvNu@%Ig<?`gBWQM#-s-h9<bKFEjIenyl7 zWOcUf!w9diVNND#rZ#i0n@CWEH}X(3G1*P~LK8y@-xEmoZ2v5&P~+`q<#Kqr54!+i zZOQwC%UMB(vcyqdV<~)?n%y{(#ftmv27H6<?PaY$l)aUV*Gz8DN^48HW3v7IgX*`* zrl)cDZ;%VlDL(u{VGP#gn9Y0rR=s6f!QD5&{>rB(A15$D4n{<2vr3^347#m;@zYoW zbEP>8>5v}#2yR0TGZ;zwgRP{Y|J*p@L(_UOJo2*F=q_T`c3Y=7f3W2G)b9p^sK0+C zVydR;EZ=N-i`7?G<DWl1^v*wgE<iZtZUV9)!jHG4R0|NL^>LJ)6=#g%#+K3ZS{;9P zfgSUQ9y;vjDqfZyke*1iVF*jGPWTaU?R_cBz`Kk;+%=DRWRi_Ydt9H-*gM$i3Lqp2 zsF}qv#NhjzE=Z|66PQ?7#`l?P()wLta!b&mGz+MYG%t~gewUevDo^RB88IX`W65DW zFzPo*gwTbPp8&%IssTQgr@8sTHPS)?znnW+kviJcB_>lGjFS!!?PWoA@Fa0MQ)x&$ zPWYl0xKyd`31A|Z7V7{&5v?1UYk}hg15ietW~v_?%7SquEcChZwNHldjyD5u8n5)n z_O7Pc*`^~msWXi~ORL<UZy@CS_E$h!Qja!OdO#F=&w|xyvj%iYX)^gTZ5-8o&13eJ zS5fcgO&kF!10C~Y^$}u*q>L$aj<WPbX$*C);Y6}OJ98vf?=T0p@*&u2|C?-p&IpWd zQdye-e$^7*`S9(!e@erDaD$294|Z50lqrfgmH@x2(4#;9KqrWgI7y4DnH0JQb&BF! zW1+(G?vuQaRU8cPreM*R;|UmY$%==<S+OB4_`L%&$%QBmHj&?NEt~xfT^tt&JJvpA z``6DKRelct8NI)6t09%cvM&pBsa9sY*?CrvrnQpU9Q*6MUn%cnCpTWcpaX?C8r+)U z2Z>D%59AWvtU^K_Mf7uYr)7M5AKf+Eee&4UJx?x1XIc%ec21Q27@M7}nTt<7V@7tc zknzQZ!$n2azi}jdT>~9HL4R3z_F>#449pt?AMZmO^FH(ZeHYhs*@&3Y=5hgR+x|K@ zTlt;Vzy<b!{@pjDtesqy>4YXM3sd7THG43mtE!lqEQGW+y1pUlUy)~uC9iiQ8oVr| zZpG27FAWz|B=*6zM!wdTH}%cDAZ{gRKTkKAjNPf%Xxu4%U}*j7f_?C#97(Q#DBsUG z@-a44AEu(vOB&LXD#Ttr4q_zsHo(nPef`r<@U1ybxdLY9Rmd&S;Q0A=q}nZ=;N8vs z>Q=NQJ78xY9>p0Nb6%aICpmjyz;A|1oH)@x6)9X!{v2<jTd;Z}OuE<bvIoY=J@~xq z@28K=#+i<XV-0!`as=?VXK<7ldQw*s5|oYD`GO+!bBQBHR6EI;;q&gcwzjqJfiIpl zvRZJwp2T(J-R09Ksbx`M{)01&-dT8i=Um{~Zn#pw<ewJB4tVZMWaD&zAU&y1oA~f> z(eDb0RR8NQG*VK$%{SI(f9%GX!4~y{{g)P2#s4Y~#%zx4bFc+?W4?E1UQDJhR2E+V z4yIp?hz+e0FS<{ID6I>f=$gb8v7w#T=34Uen@i0cM9HTo#>Vmo&gU7t4p`6~yCG^N z+rBaz+R@R{X=+0p9l2$me(IqxH3H!%!dt|PMfsmNZ#DjABu$ILa~c_6wjW5NJYH0o zrv`k=peY`>@s9izS1HAMix-t(&SRy1O}FheELj#D4T>Dx2_%v36IHiNaHO=tEBP?w zx&WwRnJn}Oo6K{s`i~IxI1pZFGg@?=;HW#1aB|d>PD8lQm|D!_AIi*sNU@L&-f)-l ztQ#~0LlNp>244f%D+ixNO+?dg-h<&EEJA}RrV~8#6FziE&Kpx=#?35t;dD5s=L}NG zd{khKmXP$)4NJKj!J`2?v$B>jygWQlAu$F=76aW7+y#AbwqZIs@>GM^bTJw>#Q#H} zA)t?eB(F0D3MM$Aq^YQLtE(`~d2a#l%(7w)FAOqhR2ETF+6GMHZrHSEL6rnF+&qI& z4#oXttf)dBe}N0D;AjIxSp=U{f?)*j0%oIeGXx=L%0$!Q8$uVCbCsWofUd$u8YySr zgl#7i73IUEhnX{;fK}L^^1ZjWq;&p3c=ly!CahkdO^$KX(JzE3Pt4#&?C{Cg9wn_O z_vrI;R$NVq7aYmnSGxSN|Awq6zBUn-mb=%BgXO2w*Fw8iIemJrC(HBIM#t^z=Sp#W z7Te5aCavLCb}wFr^!4?LJl2qUH<I+{<x$&!5SA1&OJMkA!`f$>z6{AK3NX|^Y<y82 zf?|$oWAXY*@1fc~?2LqM!C<KYy(qt89<LS{7G=F~_V|@cE!{svVxDmg{h$$w=xSTA zP#t9tzniVJHP|%Bc(AGn6IRa(H<2Py;3*4f;5JgqJA<nfj6Sbvc*2fl(&nmU(#%^U zG48^A_$+4yhYXw;6cjO!;rPn;mf@&5f)EiyUF|bcyYnBnOz~m~wUyD3%rotvO4K7) zV-lr*1g7jFF)eqceKr?-7_A!3wI+?!VPnha(R~8Uqzy~Ud@sjPtHzWRha{w7u!3D# z?7%HvUo|(q<y$wCl5VzSsw(zAe$-TxGVbTNrq{<nS`R|%2x+Y7$V=-#SZE@^AGQnx z{!h<tvje}nrPZ^&(^cf{Pv9sT6evKSO<*==x%mqOG3XRRTKQTK0cG_Dl7u;v!Wwd` zb$P;g&OK77T1D-+=6+Zrt$N~H=b>#$489<bPpCfygRZMdNH_lU-_0!5bx?nENL*j7 zUbByme0%~)QvLJ?tH=W9&iG<(-ZQ7R+M(i4-$ygzE`CYlZT3~yYx(;1Ce8RPTepaH z`a}$an{i)LSm24rA^F_!8O(8sRq6s6#lYRxSQwcz46>t|rXkoVgG>`iH7rtu;gG3o z-4*yZBs2zBBMkhY=mu8i15EpCs^R~u`6fD@8OCpZMJ!b6@N~g{`W_$jsENQMe}K}N zp45(lKN7NZ!2omqrM8*b<RkHAa4kr&N3U;>fQO-IUm${7Z-^nJ$WzGNzVQXiJxmd+ ztCu>_pIyx0zJ|!oQO$pFaZqbB8-|#{#f1>G5P~7xuhdKxYk|R%zy5+~c(|&5{E>el zP5`Tc=?eqn|DceUjgUeWMS*U678BIKM$*B-qs*%~X-L$&EXh|{K6$|w=w{P-SXycm zql%@n$5MIhShAUvVC|(VFGJ-p8{4&22qA;T$<{Qt{+QYxC;OqduZ>hWskaD#g-O** zmJjuxK=1;vhEeO|?g-^ZL3CJA@87+M6x-+Mwoh@4q_0ZzvN~{mes9+p$phDx&^NHB zJm%>xCdBuoWw*}ozRz+=CA@j;k?bi^rYI-p`rbE%rf4xSMnp>~r_aAdkA>b=KR@qW z;<=%-g93VdJZ7G`ZI#<U;;})~^mr|OBJ1r6gLxu6CNtN4J=V7zXwg0$q;4-<q~CX> z1D-d;&dzzyUDi4Af^~MhgwN~|Lz|F-N8_`MOp&Zymmyl$L;a6V*Kd<GZ(ivpcLr7R zB6)Dc&p89TXe{=pPus+!oQP(~jWN}DIE!(Z#)qCrV%e;*d=X+iVFeHqZscJ=F9uq3 z(ADovrqB^G;>5m<$0eL~pePd))!jt1^HO!b-=A5w=V|`B;u%s=3g{z+6I*HMNfdz2 zlE8&e>1HBrrS9(uKh*x*+4QDxJ-^}0EcfQKcN1Lb=~D~eVHlbv^gha##`?ts*pvCB z)asVXXPx$1T7J&y2?!%<+RWbBqI$8C9Lc7hOWPwo+jDm$)C1<O=MH^6Sn^@+y0+z0 zt>xF#QKYll8AZF^a9_<;4&pl%S-o8+<>KyT2l4TNsvJ)o!k@xx3C3n#N@NkVg|7g^ zq$fQ**R%-j?db3!KVL~smlqaxSp{Fem=vDkd5lSVPg3)0-PN7-QEp3>i{s2!<Y07N zgRUo1iE&^ev1SVHN81#^7er6^u{3M`{(2A0i#fUve1Cp@wGZC-np!DdRN*Bi$AcLr zahRH-KaI7@EZmBxWk3$=qUMwc@}t>sD;D*eaJ{Fi+nv5XeSw##_jK$M4Hf!fCW&Q3 z+LH#^4KQHHRFgU-P^v^V|K*(i*g{7&+3;3cGo0P{0yqE>B21E|(h6}yXCH^@oxKWE ze7(u15IbQ4IR}aybmWtkwV<VwKl0I$@mp1b|No9s35w;s!KVNYYUB%osrdd-G2ew( z8EioLq=M5xRoj->>m;B-%y`ZT`T67j&Yu^F5eoToAZemDC-1P4N~KKT!Pd8xfR}nn zE~ASbOJxRzZ&^ZG0nFugQC+~hNb4^c@x^zohQAz-OJ#uE8ERC4wuLwd2IVyvz;n2W z8C48KY0u1~wA4t0c<t8KC+x4=`w%jK0KZ4;J$BZ#zvjL`N<XSXLvC>d-v9wd4`%i3 z8zM@vfDT-i1`|*r27Wbda}PP;{Bq#q*+}>wEsMwH{7xV}3M#!BCCZ9l-tt%&bwopK zf4D9&W6yc*DTpR=sSilq+4}l^t9PZw#r9sLlxVIE+u&~QvdrPZVUqqiOE<SiZYF5U z#7FG@g2>1^F`nT=dzZ4B_T=Z^LGMDptZqwW&HP4q&13Dyq)@%9DFjE(X*Gwrs(BQJ zgYOcivc<~R<--Z49QtAF7#UWGgzPuJ^+LP+zMg&b`A&50<P*ijTQ)+HbQYCIBoc0g zF%s=lVCRk%(S8?(5)g@K<T8`8=S>YAcOP#p8aQAY-%u{kvH2oQ^nRObsp-tOPQGR~ zeTfxTv7vWGhd(~Sgncb|iz7Ur)#Zk`&0$@C=5=Qb@7K?($Awq;d;6vcu@8rGvIE6t z+gP@KP6V_sY$JnK7uE6Z0yLzGBdx{o)@Lg|5*%Jj^_W{OBYk0%T_c8u5r6XC={m+~ z`?Pi=DCQC4YsKr|m1*}?wcM5^|E43AH|8u+p96&aeFIZ-9z%BJR{Ygok)jaqn_(@y z^@MF>YZy`Gu!mO_%>Pw1WG{pQ2~UDF@q&uYZ6-{l`Heym;^<2RLg!vMm)AX@H{W*4 zE{ya~#6?~H`TMHG&l3!oFu!OEY`ojTk+kIs9R>+=uazqEyovFWBX7sSfcujX?{^u| z08M;539D#ymIm2q9l0837b`WG^I}H?zh059k$4!Xb7;wKYx(}_!$2hqAvC&=?qbOe z_fZwy{V=NviG(F&aq4n-1q`wMJ}nftkLbxNiNMzwzzMrrvJVwa|9IXG+R!HaMW_-E z(^4fX2GE}X=U<;b2#Qkemn%^uw<quE_^UHcBbBZ|_xc{79%zJAudR=*JaM{eS`Qoa zaIa2lyEQzc($-@r?(BV0|Nl}GdBF-*tj}J8B|jKofHJt%j#`q!bJ_^oiCJRHkRbO5 zH}$yD?;o9r^K;Y8II4;Tr;mvxr*4q?6)T9%xru8|<RfslYgr~^)#1k*mh?pMwUCnk zKZPrJnXf>a3$*37pbez7e3oj(gQ+?^#wPF;w%>w_`0p9s733GgD_9{Ql+zHb4}iDV z5lUYV15T95S-4E6O9)eA*-W+|Hr;vi_|r|e;z)wIqd4?uJcckwmP)~)+8qRA$av&k zMhF(6>zvl>;Ov#xL11bRW<teB`!Wq@b|F&YRtOnvya++6ZE@L*<6pMp<#XI<VMo1o z#SUGsnH`c8MdGMyt8JqFLOcDrYb{-hEIFfUt{#T=-GBD=Jl_jttG|2ZP7XbLqZ0pp zR+L~qZDk*yKjrQ&fF;2;IgL&sydShoPX~J^A<lHET=D2p3Gz(kX-!pCb@{*GKuJkS z34T=-60BII+?O*n0|7e4tv7OKB+_R#Yi--MN7mN|KCZ7%8=0v@dlI93*A;LSnE4EV z3i1Nz5a>F#?g~qB&^QYi&B{o(=PCE~?MA;`$tiCt`oZ7Q`Of~(;LPWm<z%iY3*}wh zWks3jM`NP>jxTJUVM1#KY0>pYA2dXEGX6!H$lZLqr|kD+lU43A%Y1G*)QPxm2qUWB z+7A!~9;j#?z+28hQI*0LGL8wuUOr9K^YgNdbLkJOd_q4*|NClg+}M<z{Mod#mLj&! z7p#I=i1{XvLdc3P`y(3Lb;zLBst|r?S+MHDWw)4SW6p_BH?1A>FMaz#bMoOLcbLBu zYeUY|FtPEQBSTbH)%+}mve1Q7oUVqs&ujB(89LH5%Z3@iv}(CDgx3pCnOHB+e+eGp zV_a=p^tHe6YB_DF-JJzr0L*=a22!U(RH8SJD%}GH50&$6!U$#OoIKvR-E>7%pI+_L zWSI2@Zksvo+RusOkK>M_a<;bi&dqxV9M_%W_`^@}UG{O+j=^OJRD5AJ;XG?wpM<MS z9k)RuuYF5oMOP<~jeek3VX?z1_)ue<50)LDG(TBXeZcUt|K4{IRz~4{G|TEF%T7m+ zQ%P~OhE}`wt4k?!P^ydSUh<+Q2mOyBBz(cn$r4>)8Udh#MYaZ&em_B!)2UGf%*FbX zX%i(DxV_V=K+nJ{6#5^RZ@Cwyb3M#p1Dc<no4*Ak>^ffRQwcafHByX|jl=-qek&|6 zyRy<!1Q55?)|8s?0Xo(o4=lZb^dKbZE&OFp0p6%4H2ggx#Y3K1VHtcj!S~;@oGJ@n zMFrz5*<=RxBIKB0;||DaWPztrmf$NJ3WYPoqQY*v#~2dPO%UDIa(bf+R4$g%%=TNP zwA2KFKo67unq25K|I7L)rJEyP4t<=0Bz@jbL*61}AW|$q>3@*nF@zI8rAPT{g9YFX zMC}|pgxsF21nMLrbpUTny4jH{rlA_>wBBa>9FfvLhXm=XVK(@wRGr=&6X1W$)PIbk z3RV<oZ|%2Adf?C2#&lzDX7%?N7X7){n=yH=l<zAhmpq-(=;iem#dJl(4DW$k@KwEK zZ^NBp>5?k<lWHW&V6XU6eBRfyzhuu8{*D>Ryc==nfwgr`j{H(><(tY6<Ih7qIP07y ziy~zwFk#ye=d(s8VJPRg@MDTtlK-(At)7GDeO69P)|}gUgXG=%^vd`6V$$u)p|v5- z&XGMnj^!-}Uf24nbwBg<@fFJ5Kf~eu9sHfUpvh-M-Se5zka5K3&$=uPNn8#wA-MfL zAM|AMXCvXNz`W1E1<C=s6HF1VmobO;=&{dkskJ#7#At|22Zufve7AG=Y6`?abZYI# zTV#mepk>&!uE>=3zHJwIg?1>nc-Ix=%;#FxUEclUM<+~53tMfm_#%nB^rXQ`m`?m2 zuSF=bOV<#M8;j!Z#u2fO8=oDDu9wAazS(ai@UtmpnQ^D*QfSo!rH3Qp*IK;KW(PrC z7X^NR%Vz+{YYvd^|K`{LiAvn58u#P0LJG^0t0$eUgAaNYyE2&BnRDdyB&}T!xPF*{ z94LZ!C|ix6_{$5p27ByqSmIWpYPmok8*!%$sWTyt0tE(v=$mxt6hA&Qg7_-7<aIIM zQ~HIwdWYRNO|o;3KQCb8<C&U$68gkZZM9!Uc<`vYJZo;N{i(Wygi{07b8~+8vE)cv zG7f6%gZl7a42EWfhJ1Vv{`UtA#YUC*YLYnW7HS?N=T@csnPV^Mt$6~Uu4h#6>GJAV zaV5{B4I*+gP+xiGKH0Jr-}rqBLX$=sNw77+H3x1Y7HCvGfIHjx_O<(Ca*?|TBN|@o zJ<gJ&w8x!<tFueOD0U%KXa1*}9>@~CuiHmM_2Xb6RfC4~@x^zQ*o=>lS)g;3(t%(Z z`JkROeGJIVDOd>q^7Zqgh760P!rTdvcMqSPTZ!=Y$BRL^4p6-uY!wvtNAjk9)1m!+ z2*^Srk16b+NHrk7!mXZw9CkSJ)Nl@AOk~EV+u+s*pCQ!T9KRIcS%vY|f6CRUCtqsS zZg{Z+k3utT4QOn9ew?-hK39ZF$H}l!?KPSF3m6+#u6}=ISd9*-`~hmMdmLiH_^)f_ z94$hm%-~$Q_)#-^{=Ll%n402>B*c!p^&Apbi6wPeoPbyKb#UgBxqdw&qy~TpRrR{_ z>##0dTE7td%ol(()c8un;Aihelh}n3^1CaVIFe0-jxABR5h0hYC~<%IhL-{8twU=a z*`B9Hi^5{?(S~RV48HY4xnrAPZhttd%nzKRFDKf$kb7uSZlmB0dta%fpU)t}QE~ht zfg#RD?ArrU)>#ciV@n+rB!5iUNb107+38HR>aj_hk{-fY-+<$$?>06!PCgR%IhaFt zzdr7QAl(z?`B{>W{p6b}@qs(lEg%_$tgf!IuB;}rrraq?Np6U!2BO^^YWS7F7x@h0 z<?qh>`M%mXJxPy;@~U8D&gX;oV>Nif)D{cx$4lL;e~svLmPi_(U(dO;d?XAvCcN;% z<+2C6_D>egyv!DHEG789W;jIW*daB;+<3ODNKUAw;--sYyC`?erPE%bPZsFzXYG@( z_&}db&^7GS<-@N9^q*L+3r#@&kO7oCbieq~)(6Drl4H0R7x-`A><xF0<au`^?5E6Z zxwhZ>z4B0ys<tDu8Szu#4gQEwfT5XO{e1?}SUv=yFOU{<fS7>~kdXPFJhJP+&Bl!b zDkT&5PmJpwC<~CYClTo-%nB;sWyLWu1*WND!d4P7HY_!~Xy!4=?~p|`x^nGUHguE} zT%F3@1U?pFjB0s(Z^0fk1Qe+z93_kvO}T)CX=>n8z+6Is$2{X(4ND^bT3?U$@ncV3 z_MAv!MV~^Hk>vMlZ(EOw+{NXOulQN49lotE9i;V{5_C|d%t`+UXEQ>vq2_ML;Bz;) z7?8;GOlYL0Qs$qV#u@wEMT&o3{*Z8qVg7=OZf_SPL>a6VAB#`Cr|;YbOa7`XcQ=wG zV0wQlyG8(Z#XiD8Wu1W3$Oxd>O-PPTdJm*tSZqTDEPazT=ROu#)qm+ZUbxB|Y$Sg= zlc`b+ywa?HKrtp?w%DV>f)B5Ygjl&bML5Nf>Bqdi`=7v^YXsw5y$T$(%c(sA^dx^s z5Ej#EKD%%YM*zgEmB|9|)C~P`X4QiIj8HlQt_owL!x-KfU<TU+#~>AFq)_WZB;&tS z4N#&|5xjB&ASKX_&+?hL<`-nc+2r6Wczy={PL1-TW{{hVU7|&8ZF3@sQL8IQF@rz& znR&fUVw=h|IZ%H@4BwiXk4Pl|!20DnViKg3!VEhhXb8uaE>(a1N<*-a6Q=ga@N7?} zKqt*`!^)bdWD=tIje!)<e!mg->ScX;Yz&5Q`_C;)wtqvR(l?HX&0aQSd+BF~-{>1a zRL4A(1EFu;+}R#VUQt36n?!EAgGt_xF0!D34WC=nF*qov`&C$O|H%%6;7^ur4D^HY z;<x8GCZ5;5`Z6B+Zsn=8$tUkcbUHXmwVn5wSdo`>`M{G)N)HD#OK@oGm>}Amj;Wbd z)r1d$n+QI7eQA9rv!g(3EP6fS@A`6IheLf-YD91I(a9#L^L_zR+jr*^ZEwkmAL{bO zo!_r-8~^(pR?W~6j#LE44|aN&80iqK>s5E5**@O(?^6~@B*{K+KOt_VBmtlO{S{r1 zQ^S13+u;0z<n`V7OhFbj5D;`FSkx=`Vo9ZiTefYdoA5YLUYg5OuM3Ym?fu>H5<9uY z|1U&V|2ga7A@jnDCQMO_A8%2xpUR=G=P*R+ox->-g<fY%&2-^f68=O$hiWn8&sk9q zy&^&<qY6TzC|jQvhTod8!h6t_gj0-q`xwOJr&M_F04ut0_(Nduo(s-COcif#%-nsg z9<ULEpy6MLjjEHfHEwKdLfpeyNK)XVD_1nrqu%U0m!}sga!hy)LxNwp$B|nR1p)&Q zX+Gm6p|1Md+sEMbfkN*+#g=n(-bQN^62Cl3O7E}-dTQ9(+vs}Z-bMbtcqCa2G2wBD zrkF1xHG3e=LKe@4K^L8GT6aU&0R+(nRbu{ASVeZoM_}JXvTJ9{K5XkZN4qa6LJyCh z5|C_NARlhCW$4d*w-z;f!F!+zb}6hNydxQ)J0)q$81Z7sPrXZJj7?L5MK;xDc3l)? z^Sr5Vd~gJ&$}6I(jOeB(7#bnjittc6k`6Bn!F4Q&drdWmWD*sr6)j}n$OnbN@q&%4 zXzC#%t1LW`;dCYt583e%M>&5Do=w$q!5|U*RA8(eV&_V_?gzmY&Ja&^fDO2v|Ight zz*6063oDBhgGjwJV}oYuTS~=2{U<p82X(BvyQFl&p7@AixV#`3oT#mnK*dE@m}{iG z0SNc7Ga4q|T9NuR4CfcZ!59*DQ;@KL%TCv+4Ka0V04+fsOloS>#YxLxOIckFhJ+ky zS~vX8s1A23EZ&MiVa<s@A|(R`6h|Yz7rRKksE;Mt30tYu$cHz}yiP+taKhf!2Fe3? z1}|`;sgSF!85L?q?De|a*`Ll<Mo2j5g3Cun2Ats0PkO-;NmTl&?VT%#NVORtK@T4> z!Q*`<HVWMA+mL(*w^YY*2(3^QaB?C;?U({4%?H~p`(GWkegFLW3I5(MTMT<8pFRF5 zbJ80^?4G(<;dqsmlzUJ1hP+Y^dDW8x3G^pd+JtkD1nH4pRVgig`aB3JKB0Yo5X$-8 z=<0D~dwm@n^rNR1;&u-pb5j9D&ysaZ6KaQYmn$rOEI0}tJ9bR<m}X6Vjc$EJy^gP+ z->u@-<<{0f&Be(Lj_Nlm=>&gn&I(a4+kLhH^7z(}M_5Rgz>)I|AkI;`Uj^TRMO#~t zBuS~Z18WkPu=mX5Biai4d+0>2`(AxvH098z#=U9F8bK3&=UdN!?s*4Wz5Xx3FT?i5 zAf-ni(!=b8=@eqO)`-*uuskbtG5m)0iJSk@a&h3#(~{ylA7$~I8<NK^CIwf<Iql{M zKbmr5ok*F;%FZEgFkyn~g9}2WT-$4guCz5t)Z7EI`PI?-rW<KrL)jDTqV9ZiSox%B zmnNeWV^qF{)#SjZY!xCS`{+rpbSe)sv@J9TAc{;ke=HZJ{XQ2X?8zN_B$5@GFTkS0 zACJ951?xl%Oq$*AMKkP5nqx=EbGpP)SaShWEGkiC6Z4(rb?o~>lEi&y{c>$t|N0sm zR=Pjm7ri8v?-g0O%$a`qTWvfpU2=FMHP&Mf-s~(A28j$(Ko0?R-8BtD8SK?5(IhHy z9l;`P-$Ji*rog_A^7@)XPSeciMV*=KP4-;eA%2`F><yXX3E9`+V`jp|&Zi$r(!SrB z1mS$SXCXp{lTvL;ToF+%)5T-)LzGKL>HceFO<+Tah>n&j-q<k)vM;{)-2V(_QEJeH z3*iEo=q(k3IPgUx)IiI7NX_-a?<w%M;uK3tAwyCz+5m_vm<Q3o$%cBW1G4BqMaBi` z_37#J;hk?J(GXg`MjVE$8m7^2aaWe$fBA~`nf}rLQJXAa=;-DGcKe(z1GTp9cA|#n zs>LU-Jp?iX&`d=*hxT&+2>r?u`+siIByEVx{eZ2syhinvyG0t7oWv@!HqwyA6mAM& zc(aU&8I{L~dg{b>Iy#7nY(y823pe7Z$QeB;V2?OH#Ut7ioT*fx+ay*1Zc9j-LKJ^# z>J(_bR070+hCuoFDoG<y$5cB88JWjXYz5H@R=BnN2NmU+0S!+EE&K1h6hhtJ!QD^7 zR{n?$?wYLF4JY&V-<6;cx-bEgJ<DaTpVAdbh;*_7uGh@Opy*@_-O%{fmy#=N=c0SN zOcXlaU8yg`XynfRnkE05y-msb`210pXUR$sXI?o!zUl!TInj!kzgCZEOyMXtkw~d^ zUVeT~cDB4Lnh>9maQ{ytS~52~t2jL1SXr4gCEK1WIrGc&at}pe#L8jl*5A_7gYJ*S zb1J&PQN45F0;4ZsAgLp56X1Z6xwes!xn&Gt3{5wz!4Na5d+y?Qwh^)jQ4?a_Gd(b2 zo%Cc_XdFkn>BlMI7i#ykD!58H1=6j@nWQCEREKp|UcF+sxa>T&HOp;1cK*bd;^nZb zmr98qSZhE5+zUWRHUo~<etAZ~LDrg?GIZzL{O2Y0n7;Ah$~*Ng7jkB7XC!tlhWI<# zybqSN*(poZOmf%2;Js2Nf3uRj(rAc!E{}Gu!9pj^g%k3pxYJ42R%=5t+up+Br=r8a z+76ey)7(hXo!GiL-1a*UrcRlcJLWGuCQ5vqf^9gsz4kmi^a7Vu(<-(gwCer(^>tJF zlnjLgSk^>A@-FKV+dpE1vhoXX_|2jvJ=UJhhI?)T`SOM70ZT&H!O)-NaPh^vZ>U?; z=N>;6WYDqF_q)n^L0~G2{84<0CO2Ap>^4L)J3m3fo=X#7ok%!2z!H?Fm+4~Y=zeWH zX?T%!#g%STo?GFTnjYUZ+;ii6y3Hm0dC4ClLX)E>`(lx>qjc!Vp=fv_8NrlX>7#GP z#g88v6oL;K>Cdenc04-7_=cj2ec{PN_ik_VxR}mpnn+8XG+z5~_1L<uQKg^yHIH){ z?(8LB@BBO#_ec(WYrj5?w9tWQY~T!KaT(xv9CK`mdou`vD8CM9Rz=X?f?FI>Jnclb z0fn?}nkC02o0*hc=!Ffs3N9}ouxO~G-SXp1rETuiiBK9w)sf_{Whe44A|3*0si&Wx zZp4clo?8zRJCdY}0fw@0E&}o<n?SXbhvL|{T&M0IiNW&UDCu7xJ5+?&XueyRI!YRX z&Ngv&44&Qbwt|r|+`sqs-!W&-87}Ee1Ial*R{$*H$uQG3-YBLLRd7s`AXPTAar5*W zaeS>4mlS^0wFcDa{|~rshz8`EUIc=-k9l*V&3BCEwoDu*lmdO_@Khg%*00P;hKq1+ zKazui`|$%u-FEftZiu|V1nF-+f?(ZP(F?l#7R)xLbr;KB*{c=Q6ot%gBM@MNke)fz z-KNjgQo^7=8=wvd3K{qGg=m{sNm$AUC|%9D@WO73F5|FAr`^}Gj8}sg)>iG7!0Bl% zr}`mddO>tL$m|OxX!9Lsc#r>vccsIt;I>}-CLP|u9o0{aH|ORGTr8z8>meHH9B3az zme?`l#{g*OmwuO8E<ph&=cjeZ^E|n(j@f_$x{R>a!-=DKL#|i?5>{af8N{@t87HEf zo#mOv`*Nx2dnesQ_<ot^Cwv?KxxB2C+a;_Uj7v)|(r|$VI)^i-T7MqfyIV-TdZfsw zD|ug2{XV>m>?K^~E5E61XcQR{pFOriEu-P5LPiIzw9PqnVrmM`8%T4pdeRWouy<_Z zUqaXRtn`3(C-aK7&Q%izy}awtn4J830vT-Fa|^cBOw=mWRy{gYb1%AQrsm|q%{PG) zQyJ+9Dcula((@S6zQ3}>3}!YqqtJ|)f}zWFX$lU1y@PkXb4XwrHvZCc3U`QE>YW42 z+;lagx(#e2x`pJ3k^^DNpx@U$rGNMx`wHP&g;~e#E+SSdnwT8!yB555Tg>-G`dBwG zpmOAo5UK@6vIi<ex5WMN^yYkz-jX=Z|M?_%PA>WJ{`H7{vtFO&H}`RJ;tP?4R)b-) zkHK1QNZ4amu(7d_IRAiw7(z}tFX0qps$VGkdmNPMwExnS+V`2sYh$9=Q+|#s8arsT zV0p2WhRxT9Abw$Q^V`CLE;N%e{3Xui)QwHc5657Jy$$aPC*(CCbEkREl|?}wY51nm z5&;>p#-Z6Q;|6&es6NEFAv%393T=@K;-wlTuH;uRZ16Rc<h-0K&wS|t)`=H{rv!#_ zs-y&&h0G%yIBFnl_ii)L4!s-hV@ZXVl7D>x!eSsEsnM7qL_Ka02Q#-75Xit;$irwT z^$4-u8nj`m(}aJA+z9G1&paD0=)6k;s7fFWi<#^s^o$MtJFQ@@Bxmf#PuM}NoBi(; z8iH&f3QLLp*)Cz;1D>A-UX*?#EP~h@GWZoVPHObB_Wxw3O}deh!^Ks3h*THkG#DPC z(-=0RCO|GDs>ZNJ0uJ8+$bxi1NZfaKBio}m0>d|}8CZzbJKqn5zUIqsqCdVd!m@N; zQn~ClD>^pw^f4T1H4Hu_Tq6-7ZP)PtTY(S-cxV4QPD04*pJ^QUPyG-Q`S<Wh57;#X zZtsHx4SMG8)G@%}ygSeJtZ`z3!bcDdh{)PjIUztkDk0u%+PnAROXdf!7JslGbI%NZ zcxsv_(JNZ|PHQW7u0T(L^@jCB2SpQ$_2P3m(wRRg=f{mMQap7|4PCFM&Hm~V<z(** zDFO~rNM%Z^7E&Vz=4u8E-XZISgy@~QU!!!f_BnG#JH-p$0a32^PB@=Dw=j1|CbM<P z#QMTBjq3`(9(CoJBzcH>1mQKc)J_pK0VC>1@G{&m!$rt<elw5)J&+o3Q|&%$+1i_o zDWYjhFN)k3$@S~kT+iWv%fTYmH7a_(Wu~H!n!_LI=j67gd!-jI3p3c=xsxjQaQx%6 zwmRN&={1x#JAVgiJ9b{BO4(7C`Q1XQDoXF-K8jq|=HNPX>dKk+mhusg-`Rol#cCmw zcRQjido2Dux7tPX#Ibg0JN#9Z?iHb3X~<&p`=`>Fu(>OUPp*EkUPitqJtn6Z8!K5T z<q_$e6xhhy@8x@-150B1l#UBp??i0acD=f~LQZoFG=>P=7)Niz0Pgme-hE!Xw5*%; zH`BV(aX+?ZKefocXX1U^wzc-!IZ1O5x++MI2J#~{S-VgsAB110V~hz;-`GHhQMR(* ze*IzVF2ZkfM&M<C9Sm_cE>lBE>@mEVURmEPza(^Jxv>ZDzgls=)mW5kAo%;Qq^H&K zIOgj<VmHcv5`0bnC@Ch?^pE~({=8@Qu@(g9-{wY*TaX&KK5tR5q;NY#5v%D|%9RmE z|IN{Li=oGnBP&2j;YNS3=!8$Fa=CDVP4@EA`?dpFY{{!XH&5+`#}5OI+IN10_iO?9 zs|>~7lI)Nm8Xed*z#Y#@3(QFOnk>g>k{rT+ij#LNM(2r_CA`YXKIBd}(x(e@;=c{k z3Di|pvQRXK&=67zh4-iRbM>&Jn7n*#`fc`z0d`arFy5Q=1ajaT?S$U1bUe^uw~$Uz zi)&hPaJ)bui>jLP9B-u-;{&C(i^S2#y?vQFupv(^2GtaXKqMM4VR7aQ!E7k@*(K^P zSsGt^f<#09UKquOo)x^m=){IXY!*1jjL%0xtz1Tb9Uc0Gy0-Q8ohN3L81KPP>0rXj zXi08n6QE4fp{3dq#2wPA>2YFyC%=@+D5}ng3DeayvngQ523@Bs4Y4dw$Kjpbn*`bl zsf&Vv-4#A;1;k|v3ru;VX~?IJlE#Gw{SmZT4_uS7gaM5yc{j7W*}1g%Ru_ce+B}EY z*<{h<tIFK$;BOGOaD)}l#>Rq0$BM%Ut|Wv|8F#K%y$m!7C7>cD-;}%?m~KZ(^;u58 zv#h-H^JC6a+Fo23`Mb8K*V%1;Uw9i&Sm<cDU&^ZYuJ<1l>*KQPa!)q>qn){ZF6Xqv z-azZ%QF9jMppK;X5z=yav#4UEP7qo*2$sqD;p_AC`|eKJkmBUzj<ku1qVx&jnf5;A zK1=1b0i(*NmfKs?6@PRe#MRhyRmHJdaH@VbIiorE=s2gs({O!aFxya!)<i=CY^AA? zQh5&>qU7+=!N^7#4)3>#MDE6tOxV!W8_O0yejUF|nft>P;2#z9HqY;wjH``dao_U0 zeBH%ctSY$}eIvZFa^F5>%OmCZji*=bMg}Hm&So_8K6J)x+!H670$%8*jEu}8q)gbd zC{9PvZChSunF<b%j6d&?Z=gA9FU0uz(sQFbEuL!j4z?Mgf4Yq-FD0<lD2Rgzx<KII zq0dd~jmTiuZwo~64t$qa_u%)NU!x&!IAawjt6$YzBks5H<H{Z3ANW(bksTI&V#=g@ z+pwRuCpwAJwFRlvZ?TloB0yUo<vqWva#$2ZfYkGM`41d=H)%;r$2CCk7kYB$I>)h# z$A9Ez$7O0bT|05DLPXTzFC;2`q}8o=Q{RI!(V>|cM;13CtP5DSFYIO{&1YhU*P@4p zylCE5{^5VSUtW0+S{E=Wa(>er;rD*Wepi!n!(>m1eqx21>+>Y=CfclOIHWrYX*2BR z@e6;W(DPPyWBXN!@oAB@`xAC{oqZ-oyGSdZ@h5V7RqlBnI<-BrV~Zi5phq*q5%Nul z!aL>h%;|`M=S*u>q5SSgI*MD}^D^ho1wCR_@nb^&d{>$*a(i&9UxJ0sCH=hrr-oPM zYlo=!>t2NS|9JZHKq&Vw?q_D~Yh=q>30-TlWq%|TN{c0gB20wJR)b6wl@LNHJSdcq zkPzA|g**t^E8Ao(1|fRS^n2g;pL=h0Z@D$+d(Qcs&+_Jzs86}Y<V$A>vz$#KmmZUI z4k<O6?`Og-{h;D=_XTs~gd2x=@GO1_;F-)I5^ur7P3LBo8wD-R*VaZ$1*)XcYL;|y zY-CFxiH2+P{Ne%|aly<i0KVLS46-Bwg`aSddgv|>m%gef@TI?p_NjqnI$MsD6$0vJ zDZAhoVmvwl)dng*6eF`Dkr|NyG1Sw2N>ghy2X3Fo*2hfSds+D-#8kyzt?dT3R5k^P zEvq?Kb)f#b2RX8`^w{QA{Sg8%EvUeI{_u;B7qd&TfS18xN)v3S$yXE8S4BHm@PZh? z<xVu2zs&nEnQY3~2OPu#I2neFa9aYd3!u@#V$bcQQ8zg=s%?(21ND;^sGW-Qf5rSG zP0KLRN=i=slSZFmrER-Z3q%n;gdX|{DN~d}95x_ksq2^+HA4+?>KHTe%D=n!)4<UO z-~tyc8z;<k7eR9j%b!H0n1rrR!sZQ}#{5aI-9!fYtM0g7<p>%+{Qftsf*l`kc4b1V zNg~g0?adI`E$@BYsR67uUxa=N<#yk)`1FUk*2tH#?Q_XvGM9w-wJ*Nw@xE;0?2u?& z{@i4OpFr{VcRQBUyVzBqL<pE6AYqHpAugM4n6XwYMC0$&HkMtMWwhQHs|;)m2l>vE z+<aF~BwSoxCE%i1_}`fdm8SJZU8XsywJ9Z;RlvpGIL@w4b`a@Ktkj_;!YZWn{r-Z4 zwFB`1l1)sgL)_pdBo(q!_f|!aR=Ur=YvsfGpkRcUjPv6Q2mS11w7YhO$FVxRE>Fq! z%1Xk1_waw&HX&^YIv(&9$%F=$Ng<N`7cH643azj>R`PC{wLMaE8u3eMCp`43O-tkO zh}J3Z(8?>(UuC{LJZ%{z^NX$x`P@BnP0mND&f!O?zEQ-o%ejDJA310j$8-OB;U%s2 zw^aBaR4QH6I+Y{x3PORnnf%-`!i*+jodWr&AG3Yb_#s82D${fmm?eWl;~)XMFNC!b z@aQ&nTw^it6_=|=RzTpH1NFP5Om#<tMLvnY3BG&u%(keE1faqE-Taz1ib(jo-4O^k z*k9?g!}a^1s@L;TeJn?4{vM&v`wib)TmqbJ*>Ht!_|!VZveJ@ykb|5JspqVZ_s7R; z+q;KME9O{ztr|R%=DcNU{Pp{pyW2_znQbnLavk&iY<X^PjJ{TxE_6hgdx5Kc2&wTP zRHX?(AB2X@#N7TzVKyS#SEC&NCfGK#>&EL7e{RIE{x{yPW1C<vm=f=3HU`vL;c9Rt z^P;?B4GZFS=+Fg2#aRO86ctCHZ6Ig}ms3mIwqJ<E9oi0tbg9q$fkE_(k#n;{4Y*Pm z7<>t!1!i^=*Z2wQ8Gc8jod4_j9GXq&vv-pKMUw<CcqfU3`MS|qkpR}H7k&`52<0Sd zl5+$pOuTo#ClW4PJ3-Wd_=xBTFxCL149-hn@OMv>;no`4ABp%lo?I(lq+eylKVoA` zThaJfE*99A31y$Iv*P@`fQT!j(#mLm5w1iXzkAiUnTHn(uIP56Iy;}Bf<2?cbDIkY zr9^Lz81RW_rU?uWL?}GyUwUU<HLT?gJnRLaw|#uJ4;WZDLeSCIl3r6H259PAP+!Dq zv@j%`*%3oNBL(b8)rmBqwGKYF&+hXDipyLi0a(|Rix<H@Mb`qMx6pSWt2N!8>^Bp} ziXr74aac-+eh=lM=0!6JU`{C30Bh4=g<+4QrJe64zZvEiwZYy|>{9n<Wg?RiJry?M z)$)!HQQsj7BMkX?=~Za+?Mk2R)bBZax;oE|9|_N^)m6Ut;+EI#O&W*xv$#=1rGT)@ zi~~GhLnc&-v*TKJ!t}Auk(|!W$>~1+uWz^no|&jUUEF(ndQL+Coib`@w{r9Hx?mn} zetN2W;zh+&f8X=q;EG^(Q*h?`%$5B8%KbU(Gf!6IXF~%owe#RTqS#zrFg3_8Yfm*@ z{0?mh5!I?<pDUuZD4qT^Q)encoA1d_EbtS={GeA86PB|mj!*LIX7dw01s@c)A9+ah zO~Lf5P6wLAg{1zcG97(6h!Pq^*%v%c|LU=Qcc^{+ne_9W;4Pqx>aGqbpjvN{KD6}t z6DFhvobG@sL^YrztKaFH+Dzsr=9ZhJ>Mq~;voR%?q!QfZm+2>yY3RJ|cXEW~$@-iD zuo=WBRWdDKcV`+nyUJE*O*EyqLT09BhXOjcogE6!T9g?_mP?buM(6*qX=`_<RFy|H zk@UBtZd)#<e2;mhzT6|_*CsQ(1=ZS2po1yK0FlhEHY?*-QR9@H<Tg0gE40ro^0mB0 z(48nVss7(?vGQ4tusCv4TmtX-ZVi&nRajqIYS>H+01AO{2rD`G+}lQG^8Ic}LrE-B zqdrSs;;hdv8X^(cm@lULNy*El_`a^)t2vVscC+T35`Dj}AO}wr(Gqsa<gQmqbc*@O zt(eXb1Ijm}#SKI{95G@LvJd{qjG^&^q|4Z3o!P@zgiFKu0t838MxNV!7#JvfXj5H? z=+vJg9aB5T57|12sGXyvkD2%DO5=(n7kHte7xmaqLZoefkWCvakft_cd2)?|ST$Q5 z%`q%<_aukMkg!%-=3=HbJyuZrT=$WISLC;X^^Oz*IoFYT$PmJCxntvb%qa-t+orqy zk1^3)cY{>{<GocjmSZBPX7zjL=Mbvy2w+=81GrE*cQQA=jmwGsbO}|nTLKiM53FDx zxbf<m4zX-Ejg<tLT}5#44FWl3Z!|+%A;7qt1u+iEw}W@0BUUhJAOC2vmp}=kY!|>} zau@w|(Sp(O2q<74M$l82=R*n1Y|j-|oDD8a`oM*jXnFtpnFfuoR}p4_AR%Scf@1~v z1@pTvfpecD!!qFn)$|1PR8ac~!y5wjNoCn!^!i-k0vv2aK@v3<lL>clI~9O02U))a zGEAERWn=uCfwP~9>M7gU@aJoCXwDUZTJ9!@Yr3~p02{8o1ZlEN1j;$AEkL5(rs4U; z@yT6C0L512+e1A_=$`%hM`+<gOREq^Wd#33=soF8Z!rzD;0Q<S;l(Y8dXzfgal<ts zBSgANAI8eEI%<{X9!<bU+@!0*>&arMFc9WW)Pn=O{}1hC%RZV<<=qnD_|4e1x_zfZ zbCS30O_JI9-uZcKUJd)l`H${uORhTQCutem+B*upqGwv#t&4sJvyhVuVy32=y<5Xi z8mR?6IK~kclH;Hd>W$1uK3rtMGxmk-6o1q*H1k(z-DNK|Nb0lx^fcH2J?bxdf3U@T ziGOkaTHG-KPQ2m(VYSMW>KupAaxw_3=jtv&?!eu&#t~yK-CU&uCBhGHXvDWVb@8Vi zJgNPD%f?5SUXmzRn15JY=&S0Zl{Kr2&FP~{tKzWf8%grujvN>-_zbR7Ac}z<H)D+* ziDaqPBt@_j-nT|Iv~IPOnwi^w+={z@>}7c9^OxyiCeKDss4-2gj|WvCGe7)Qz!^Re zakvm3eB-N)adH)tiqKz5;AO>cliQa^1owS-CI5)G;F4$WT5H!9kccQ4H3|*}nAE@r zPg9o^pvHoEZ$q5oSjg$cM7-&WLA?pJdw8e3o^j@ZwgUoNrk)ll7Z=$MI(V!Im6epd zC@E3y)e@8H+$q&8t$o|4-6+ZN$m!zBYPr8pn2$9}SG*^cS+qG3%9f>q6@0^d$((Um z{t|-ctITp^Nzdjt6UzRGIS|$nYEgh<YaA~;HISWjcIsBC;-9y-NK8cap$0wXu{i0f z$`X%8KAYHwqorJ~<8qwU)}izk_3FU0+ovyPO&YJmLrEjjDLqK~JVMdjf-Za)<i)NO z?%a^c%RZ5Y#6Gi&3f7G<QynZyHP07Ne$1C>jjNLqn-fSkMfN_v``4D>@Q4|Y(I?P< z-+o9!qs`%A$&(Vqa)7{%HZqio(pg-P{P-(2-dJNxyX}1eEN2yh!-b(UZ_(KXn4K;$ zz%wccsfx`~*hYYP0XBgBW<c#EtPb9{OT0*JnAk3fWhH^6z3`^L9CUxE^Bb0%m?328 zFaQHk@LW|ASn5F0)+~6Od|Ao%Gn<v7;P3AEDFjykwY+PgIuP)<lEjK9T6)1hQhuvT zVaY}nBz4AA?7#U3+{XKup@N}fkiS1yjwq@^YD!*=5(3;p2AOGtGl9IA!VIEx9#R&5 z+L6k<@y#5l8F=t9cq&lWl9J-*2$a2okz!Oyn{)*()WRcImJL7S#Kf(e(jzN?H3!+< zTmT`}$`c^KKd~DIQzK=<YT@cx*WOije9k7AhnZ2M2wDH*Fm>jzCI>a;A`+{-h2Q=n z%>4!=>Ntw>cfJ-iW_cVXc}5tMYcM0=&$*-wUWNPu1y$J}U3{2Gz9hi-k;c*D3#oO= zDCp<@+=PGvtF}kGb*2fi?+nWhmkk%%sF5qHFP#{)E;+t)>v-I}rLcugE~~l@d%g#e zJaD4%NIw5)Yiyd%*KSNUIu$M^JynK&en{B51feYCb$7{%siR4$|Cc2}f)4#>S4gdD zV^td${v;ZlH6R=EEHAgCk>C8-g8sZz_(st}|KAOlzuRCusguq$4BMxy(k3(gs^nGK zRhs#Pyn!w|LXlxdU80Ee%R5o2<J2MeqZJK+LKNf0pSUdi`bBu_omsLjSM*<9r_H;N z*qNFJAyppM4{Nrwhou$Y6bFxg`?Rq*;W=8NQX!h^w+Y@9+ifa}=&&9Onz=1lc7hxP zS7!O|!~kh=tU~6_*nX<PkfDAYktWMoz}Kh$yywfl<HYz>c4PM-Cfd75CnhAe6A`xc zlX;mgspLK4NFv)mX@vDF+K4(dG+<Mhuk}mW=Sk79{JDv+uHSptlM(L29^d|4+3h0q zR!U-SPWra{Wx6PMk7QK7d3x~!an;OGI4OPpkS;nG$U<(0t8Yygkw%ijnoE$HX^l=C zDeTZk=c*tHxz_sqls`X}M}r1KY(;dem)D=4LgK$BD49~&y{m{sRd~1nRk?yhH)rsj zLzrnAoVW(fe;KLa1tC#VM@j9^y<wLFWB&Gie9k1VB(?c0O5gG{&A-aR#82k4GrOaF z(1XS^`!nvo=i5?cG>@~G>Cj%m$59*67Xw@pRMQ6jXKRYt@t|k+MD>WEwwJnjR~9aa zDoT13Ih>-o{K6HVE`2PBd6E+lRPNBNY7rwH&>dB5-OS%)%1?EE&R8J&((gS)W_Aad zL7Ue^S!Hyz84m(K<C?w=HRFEML%?Fc$TE{t$|+n2rMN`tOQtrkB8?r696I4*PQ;_K z+-2DjQTtgYnENk6aW^syi&z-T1QEF69x+kJsgl9mP{J3#t1^rZa+MZ(t#27k>@LlM zwCT|aShb&vf=qKKWEJ|7Xx*kj0y|CS#b8yRSagYGz=E}#^{7ExC;?wY%3kS{@d4Y9 zv9QAH0hp)Ahxvz={OjxgTDuta#RxBW&4`}ggpI-XH>BJ{Vm-~Ml424U;Bo5jQD(TO z3$f_y?ZG;&7~MVDNEaz|CFm4JD=@)9y-O>q(tgnS9a1*^n;jRMnlJYvAcY~u3e->e zNjo<qWSf^hkp9cd<4pn73&`K!HBZ1~@eC=2ZesWf90ypq6(Fq8j2o}N_KFwcQp6u^ zLekqF`ETjGM#A7$_X^a{R)2p7BlM{rm9;ek`f~W|oLgMHKkCI;(fIh-k96@y5@&Jd z)764~wY!cyI`+a6KJO{a%HDj+1=)!Hx$hBY99o6MX@yTsIaLSs8uAu{%df43BG^Qo zJerrW1=I4Hk{6r8wAjs`OpG7B&ab5rbeL~2+ue3&dN*74&)LJt4pRH$taz+;<VD}6 zHFLU$+NBD!u2m%z)e1*smYchnx6DMd_EYZtwM7QK;@a6UsiBCGVgv`&dewl4g-<cz zp1<JcF>JkPzr~sFY>`g!o%6cyj;#G$**<V`K<S3W-R83#dyFNmr4`7(bEJbOnCpbF zioFQMkbn*cG2?4cR8XEAM7r}%RO<!S=7X%mBw10XjX<!x;&qSqlAg{jTw&*fE<RrD z_V?PY5b17Oe=n|&Su043FU>FTvEsKw&m5@++^jU&`3Eox%p4=pS3X=}YIWWb{%46# z)nwLX_8>jvYfqcj^-y)0KglNx&9hYEj0vkTEVQ+&NKFMO6x3-M$m-7$q-v%mX+yvQ z7Yq(BzVVV2J6U3?V&lu#8N9JNDXwj(-=RI!J9y{z=udsK+K?|T2W%}>B4p04r^Tjg zQj5xwJ`Eaxwea(0(I1Fo3Had0zwA~oAIP>yFHtvcA`&uRnP^*84M}K$*8T3&vqB|y z?pprSUfOAyHfL<yTlB|2E#)$K`tHC+b3+>z4`=5ar0}LQlilCMrXQvbwM$i)GNE%7 z$Z9?_PW$73)|fg(<HDx~K^hGm@P?B1^XNyb+noef%yALX@D4#kd72dWOmd5Y^Zrt2 zkuMy#a)m=?l2y5<;!eG>V!?B3b{E_Nt&LI30mLCf8yP#Z>|w6!*g`ODb~S5<kt(+3 zP<)sYRPr(cvwbi#)O8U9vD=5#^l3n|pZR`rC(62|FAFl%5*{M4U~^vnDDj~*Y7vn$ z#7q$N?dM~_dN2(D8aSx=<|OU$IjW|)7zuu&!&G0@09hu+tZ%v({1CyqZYNc<{u2`| z#i%(dTLP0CAvnlzVKpri6DRTKhV$TIqA$kB7}Ys(SpIjBg|YL)WQLiUlRO1cG7LeS zifx>zDbv1%m9R0S1%s1051zO(@Bnx)0Nin4Hg>MZK3o19`^$|g5QkX^ZkLeUf%bnq zPr^GXOe84v+idu}pwZggttY<9t#IMvJ;-<(#$JM<^1>ZflVwk0+2q{QAD7Ny@rcru zZ=ViX5iw6sS#GFT9{RF9Rg%G-<3{t;(WyCqS`$>c7y&=yd1o&qy!4Ds#SQR*M?5Dr z#b&wFaASQe#s$HFuDUm#2ciGOUym~Bzy%^@j6wh4W+sQm)c;EM67ylz+owi$x>Fd3 zPw(p1*5J=sa(7Hfe-}2f5S6U@&h?aJkYYvCx4}?li};3TmnVsO-rdH=BxB>qM953A zfA%(1lH*Sy5}?X~Ra{13C1Z6wcXf$+=s01Wg!P^>w!>Y{P;22bH>^XT_u8@2juNRw zFG%XqEJ~@IiHjO)8<Rm{Zq?3i73ObM9Sr9j+g!7R0$LopWEymm(1AGKG`2>Ay_`I8 zn+sYFnRQ!kr*^wqNZn!~KWZ~ThefI5v<Qeg^0CNL(Lw0jI>gWgFY?{Dy}t}1Jk4)l z`xFj;=?`-B*?$PAH+@X6vwOend&c#qp_8T_`)j@S7<Hrd)kj_;`Ixd#^y7W4Yc++J z{J8i1&~R#(9R2*Npe(Iu6V@K!p2wXV&tn-Wa9lGa)Q}(Tk)S%?WG1V#O|s#s;=juz zuy_iI%oK6<^ToRJ1x4qM_NbjYYZFxVcfF#G-}h|z`u6*@wc+r!`RLJQ6{)!*nY*SD z2P<0SqB832sXVbgEa3h3=aM8fPDLynT#V}Bhz<h!3O%an;kBnKQ%8)dFZp(qEPm}0 z86dt?z19|lUyFf*rEZ^F>AM-OCB^P)t@9iU)|ttniqucAXRSacr{xDTqy6vp+@9e2 zb^LDB=g5`A_XxOiaEy7$)+~XXa{AJ^XhgMokfsi)Y+XYfTg(J4>Z#d3yQmqW$L>kS zB+(8bvGVOhh(pKnx59^>QSf1=31JDofW56h1i*YLbQcG7Ux@ME1Wi+Cva&ej;{ycK zkBVcVMZgW7QJ#@p5=`V*Z=gb(aJZBm18rb|skB54fowyny&X#=-_RU8N9A$<U(!3H zR2jUUPGxj~J+0N`0@Wjln-^=3mtlk9TNoSbEl)Z9(Vcb!Gx83b4gQDJjjmT~L67c3 zDE~42Z{1dg649rQ3+j`rPZ4yAgC!@gI3Vfikqj^*ui*q$Qk>>bpjeB+9-c0lbel1{ z_kAsAAxD*hpAanGJD6ZQ5W<3AbhG1Q-}ML%wRbjQsq!X7`t{HUWh%?fvO`4r-O22y z8F64xss(y05LG&4r(FQ+YT92os{ivZUa8Hl4)qu%cavymJ$N9GWXFlad&D^K=X!t_ zAb2iM)to-095Jn9atQw9m4l2%L0>wA_EH=wULj~flYeP)JLk%SkD<P2j)Z+E>az8w zg#LWatk}s_b)ql-F+g4PbBpiH1236`dq?Z`j8)%F+3g=&=(R7ekti=@+x3lh^YoFw z?3^jh?(BH%paeHA#)4I3a$r&yf6M*Yf<-Qx4fCO_teStOi0WTQCO0+?x%$<utONEQ zzR_ry5Wc>^%YH3Q7S3w2s(GH8T1~3I1??VN?0Px8(yQ8H68_XW$XZ1-xjClO!iMHW z(Kl2^?O@mKA_gciVOr{_6zoZ$7tms&bxOkY!o4&2(&bw}zr7Bxu=6~0NJfZ5g|B;$ zaY|Mjzl&h872m-mVZ}Qh@o|QA17(D=S>0dzkk$ziR=jnV&{xzEjnK=vfBaooPrl0h zHsiCDq=x(7rn-jHwYPuqGm)=bs-xlR2YB#_MoMxO5;jJluNxy(?VRY;Hm&%J923*@ zO;>bt9#=6H1_o^Qvf2GK#C`h0*w)abXJb6m7b{9)9;9b9k#b^r9Y08wHHg~y=zz0F zume)lqX8eL5E2NDwX~``+5N@ROgjPw(!+$2L7!}gbMyz0?Nt3fzuRU_p0+=-AUuN! z3$7JH{dADQ+ty<=tLT{wzH-05-ch{Vq|1M|AL|*ZMpcRKC~<6?NGjPuV(*ij{nyWN zI%=qTp7q~PQ;M@Xzw8RsclYLYC17^L*u2{D?J%|I4(I;uROe#z2t=vZ`*XtJOxo3V z+rHb~`n6SiU^r!3Ybr5vJmtgCi_<=px4xE~`xBQ{xZ~oTTyEd@`L}kTXQgiZ+&CD| zP&7UOo|<~67`ohoPp|hWp-F$Mh=7bi^G*4i2sR~wkMF`{aTOd#fahkhNf-|1=}1*Q z{_EPi)3h7yJTgna7(=`OTFoWFf#-@=9n5r;{3zKC6Sru<Cah2~nnVv(7KAjzquT&H zzR-A>>TE;5$H_{gw~YQKR~uEl5D~)Uz~6wCgJC4d2Avk6zhWl8Cz0PH0Z)zmb#YB+ z_e^tLv<{pSYWHw|0bMr#&?82;dJNWk&MmNV8otiF+Hnxa_*ah;%k~8YDx;gL33%ci zNH2m`3<U=F_g582tXOnl9j6-<^V*`$x3jFPhAm%8wtkKqCI(dAkwdKx-2zVS1swWi z(@;U~KNK!Zjo^^71u5Lp0~SwKW<tq`k}6WzcNuhHT=eCvLABf?ZY<!mQGpb`v?m3; z5i%ONxVwOLg&FmZwB1v^E3;X_Bz*y%1L5(oooM*)pP!h?_WOCUW3~?j2l6~RekXZZ zC49_P?S3}7_*B?R!ocRK=)3e41%gh&>ec+F;Ii{I4}S0UVAsua@S*vN?bz0GFZ-%< zhZR^G#`EA}ypY~2hHBA|&=O`Z#CXvPS97bJCVta4wHIcNU8j$a48|7P+3aYQ`qXwv z=A`!xA+JXr{Z&s^zX2?~Pk?e=P~2`;?uwh8*<lH2(!0*@j@$s554HBvZmNNS;Xw}k zmBd%?BDLf8nl(SVDs{>Qzni=lSvdSQSG*zDM~*Vs^t?&3Sp4$gR6V~hSL(esc@pXE z?FRG3hT+N6*NF6A1p3PCIB`{+7w_Fq9l8$S-D$*!ey=snjo@&w7Yg+5xbq<M@yCb* zU;vj*w`N#3m3D?PiNCJh{$*zVi{xho`wnjLOM1n@JLO-dzd7~y=Jd<JSN&sg5V>AH zi>y8oqo(M)`5_XPrAJbq8LVf9hwkN44zDsr@KCX@kCycuT)l^4%}U1yFKssq-9GUm zntk{tKQ|uBgA870rKN90GvS;p&j5qsNVLv}NZ6VCuLr{KbX_D#r<}}?Yh-16VHgyg z`R3B@XX#A(K0a&XPSx#d_jPYBbdB8`9bXk)i4R}@2U;8eaKR7$Jm6_?;l%E>-B>v9 z*U-E^G;KUTwyQqW1zEpc273rZpKTrY>Uxk{e>_5j$J%5r>)D8#lxOJaT~h2z_sJ0@ zPQ^cTeJ^NLJksKu90|>KH60inLR)ejjs5qaQks!SjUW-f?}X3+Cs28b=nH{i7@*|A zMA|(F-caf8Zpn~j>oc`D_sZ(6X$yLIhuhcZ>s>Vo`U&UVysx6%xS~~*x!ZF|B+a{p zL95Z?!1t@bc^j-jofs);Ksl=5KN!g2P6Hg_^#AT~ca8q^@$KS6ixmZB3Uo5|nGphN zURW0^0si)+jXz}@NI1Q5^67yinSAzNnGh$onGErpJsg<sma-jSas(r}D~!`i*R}$J z2j@cuYNt-yib@+%Wq(9u)$oYCa)ZMhFl=77@i}rS@^S$fFIv{)C7qehO)NXo1D=$J zte6N6Tj<u;jhdf;-?4$*3=(@0^dpEv`JRf^Y0dBF0F0l37bFcC9C&;Qz<OD<xX_vl z$}l7Cu#yWKEX2nW;WvuwF%W3_ofvjP!ot{aU5Ev>+sWJkR3Vw5SR4E!fKYs+K(}RG z$&92QYTM6-dw1R3BCvOP?DcZuqmM*F)$t}ijCGNEd41CIH5<V}QUJDrO$?Y#5w+sO z##j;hOL>G9tpg5DF+zUt9Q}x(<A>;^mTYbToQ-qAzEc1GAt1l<MW40XWRKYuI}?HO zXN#<_c3D7}Z~zmD{}5(bZAblNxCNbnKk(!K{YpvniMcY{5vKx4j!Rx)U9Fc6)GGI~ z@9!#okt=p>==sT!RaP#hJ0Dseb;{4Hsh{B9QmpdF?rLn+^n>h~Mi$z<9YR|#=EC0u zbgh)=QhAcbqCa!g8<HE@BS!ebBH{mc2iM*IDr;Y%pQ|Z3Q58x17H@QC?U9n4wP5== zNGj`?h$aRs0%kqUgqO!b(9;tC3jLR;QHA-?Az3varZ1&O1+Ux4e6jpx|BQF{>pt4T zC)v;O(oJEn)E1&IPj1wUnyOeSq7`%yrYqUMK*H{EVQnxCz#>fOo314xJ{%t{g_|#3 zU8FS4yMEwQE^oNjk(d~|rZj%|Dd6osVZ9_W`sAuKK~hRX=J-mYCe^?WQCfji30|cy zJh)ssvWhd)7Ho%;M-DmF9n`g(+{L2oU*vJPE1_{FIsPpBO!D3w>1a}`$iaYR`tP69 zzkj~xImVLR(Y&;Y>I)%VkC<s|(WHP<#z%7pQn-*8x3bt~cscpc(v%!i-Q|@(s!<u> zoH8Q&@~V96?SX5#?H_wsY3{;U593-tL!_5*;(;K|6GNw3nd#aPAolVEOV0DsW<9;M z!u*y?`$9at55_K5?4z1Ks~>t=c=zrg&Jj_Uc&tRuOUgdXA)de3E2W=6c>sp4Jh<8^ zBz=v76#fJrIDe6NPfYSwzrq8!YGmnP--+aNoBk6~wXCfF=#Ui88)Q6k$e%K>?<Wpq z0n1=SVi#GuU7w)7xw!2JNbnil74rZ)#$Wb^0rO=W12qQ(0=TSqz<t=3C6;<amske# zIWnUP%bN57#>&kYF|2h&)qn4i#8j&WNf7e$w+6UOGV?sZ2|u8$2EBa004jY1GSZ3U z9dJWCOyv<RtF|^`oYD)E7`+^d7@D~L1lUHZQJgLzvE4rn;NJh@J^<MB4serG_YH#c zoTF2~zrkJdDyTj*$v0qqUb^q>_;~-53tuOYGOv~IV2Z?znK>{h>x`3F4>lHr1k{05 zgE~Svees-^m$>fb_1GOI|5j%q;=irB;KCob#?xCF13YP+1#2`LBkj@D)VbQojE)p@ zV1b!aBGi=Q)XSXIPkqFRY-XDIW0=&1p_Yd)Lgs)nD_XEhe)O&sp;dmq^@C&gm%o!; z7LY*_yPI5(BQ)N*;Vdb2DC&22FWbASHh8D(j6Bqu-~3u5{MmaEm%7?OsxpZ|iKLWm zMpI!*J0fvL<BU(24KF!_eP;J5hwx;(8Q+5DNvpH2F}*@D%$o3@f7<_rM4?d3x4WE7 z^~rH8`;4*7$3bGiluqO1en%d2mA8b|@oHAu)f+m0EQV}yqUi`e<T5gIzrrw721fKe zsBu$LWo^~%=~>@xOyu9Y^Xh8#%;Kyw@2!(UW-47%Hw)5fUp0ONhQ*mh#BY0(#`@uR z!LRhfgW@Nl3*Kj<IRJPM7^@u=`aw3lItvK{YkpONs8O?rZdk!R7TL86;jsvINd-=$ z$rU-T>=<`)ey$+7H-qdrkZ0L=nC-oDFJIn;+SS2QOfNqMV9~0>PxI3|KY&55a{zav zPGRcW+t~9H_x(2uV}_TIuns{q(@+5Omqe?(;`G5V?n5dGA9@zee|UGpjyqrdTeoCy zF4Lvc5*~SdXkENEx-l!dve*;fG}HQs$@J;H;|GH-P_CZ!@!3Bud~0P7)z?4)t)>qY z8ijj<eSYLd3L%ZXs9|m0y5p+;RCT|?D?7s<{Fm8>K7_t=^SiDon%MBk)-5m2Dbdt3 z(1_%nnbq-fWTm$qs(BH#l8!8c%%~M@kS-9cOySLr8ZWrRnfvxYoO0mbo!Lsa??}dq z9T6=*rbT%1oFJ=kjZfV^NKDy6ajpCICUA~I%7zRLgwRebiKMQh$Xq&{4|nCXHsJ!k z#_1D&jnUQoT(*k#4kvCuYuw+16yDE%vV)mMzA?K6V>gE1iPP9z`a@P~gEZXoezCxK z9hH@O^8+F62OBO4x)VUIEWlc1i_XidlK)O)WzG06*u&!p<aaQn_c45r;yj^^!+gFI z2yw7^gImMGJ^KR!s9WGQqWY)pI98+k$<reTdS1|OICgU|y+a&QfIm2x=*h~sdLfi; zW|6jqk4Ow#cc@O*_iFx~yJ$Z?sPe)OFJBXZJ2xEQqKp{)7FpEIa<4EJJXru!_bGh9 z=}NNGKlsZ%uoBVN&>kn!Pk4P~re(b`AePC04O`qxg20YJ{ytE9&D^*9XXyK#Sf;m~ z;9z44w*RzktgY8yBjm6y|9g>3$~HF<n*HDt*TaTa!Sz#HHOg^F7a3fJY!AvsGJ?dG z$m%it&@?ix7cto(g$-iXU9FQ_VRl!o;>K*;fEI8s;3G5nT7xJyaTFj0pyhz%-0!Re z_^JsVPq7jj--h^9Y37_S?K(ABt<4+XZF;uPbjnlTODww_aR?t#v^}da;96hy^&~G@ zU*X&Wmq&fZXUZ9Oo0eV~Ez5<&)I-7Sc=AKU$p&!(8qmfK#3A@nE&e6=zskzmqY1`0 z7fNGd)U2~U^8TJ$Tojz0Ct-CldVp;Hkid8WY_Zcp$a~f3D@KgN4_SLxcT%CUitVOD z@q5n%RNa2&IM%TG<m&fVwMU)o-bJS+d5YclW{cXRtFOK9A}y}}{8Qyq$0EjOQ;zzE z{S@cMp`hSa6y`-(eW5_D{SCy*D-9Xq8hkI2XXx9=@Dr-7&TTIf;?NtWCL+P;WZ$VU zRgH1eyS~55hI;Owx@oZ>azP$$scmqrO&C2xSe<`w!G;d6ATz%Lo-wnog-M5pRwkFR zRH*yp&Yf*tBfy|-ab17-B<1|^sUvn@4$$_n6IKV9Y5G8slH|Zc4lsCQ-1x-q*7Lw5 z%qx-k^7J0xt%}KkL#_)u@9#q;FPl6r9}QohFqFCNo;+L!lh-*<9ubT9+5EOPUi?i` zxw1N|-w$p~HS>4f1_Eq1pC=h&49#Q8=f$Cg*M}m<wH05Q{>`5%P)qL|98Y2D=U9Ji z{r&6<(pqf#3^%)u?XL$y25W!r78fg7q*eE`^(p+YTK+^rD3YsB36v)iSfIttO>iS; zp;4I7Viv?<`Q^DaCt8ZI&opPd$C+KvD@rT#D3)D(Et!(BMWRz)I}HW>Rh&{AdR@=l zufETg=C<i$iB_u0L4KZm8mTO@IUa@yi0*S_+n}={67_J=lQ_aHA>Yo<0H~7?NC|^3 z2)vfK$@)`KeZaSQs6b_r4PuyRo=~*S>}RlAjlt}os?3P0c>uv@UE#*nZLG(*mETT; z@X?!D)kKhk<r}DRV4UB8iaN<?%)8)-C7kXHTTSd$$PeUzF9N91FmKPS4!p?cz=R!O z-3cP}DJ{#Qc^<Mmlu=K0c%<0zZ(K71Mhk+ed0;!$kqyR0|M={TdzYgg!_|yPb?#=s zV>-p#?jnU0514ivKHvEt-p$AagD;f>r?o$5&b_d7-VxF7flslJ4<Vq08BfdLMpbAf zTlJ_J4@6{8t6T91WOcK!;bBrk1n}<s9R!q@dJ>>3jr7=mk%5`H%3p7PA(3GYFD$A^ zYx^{zhLA7*I^jj}x)6FeFyiv^WLHe)<<&;W8y(^1hO}`z6&FyLY1<f2mL$|kqB)+| znQopA_c^#rS1s1ENnwv_?vv8MQ4M2RxyHr(8=JXu;oNO)t(AD|sTMoMw0U#%xgWod z3&~IlJr*4_W*)|HUh`z36~IooLc+q40BcPxZ}1M#=~`UWI2{~Z4Wu{Q$@C0yY3lg> zDGR|%e(9N2V6Gw!=4EVY9<;>JWU<AJP$G5c0->r1a7-agD}xW4QvB-hSb6&wXTtan zJ%@&EI{K>u`W$EDIajyp-FdfKzCC)lb*8!0_;g+6wa;3%GFLq?xj0Q=i1{ri`f*{N zn}Qa&SZRCNQ14sEO`dtYn3VsgAHgjvn2k$i)NQ5hntBMdY5>S8nQ8ZTAT`Nsn4LcL z1@oMYmIz_*TZ13XG4tt#E&adhBcF-sY`)`A{U*;bJo0G!+?DR*Ih(XXM+vz65-X8z zhR{<*s0M}x`Z~b6srLo#@cMN`!lVt>+ZqnCaC)6EmFLqo4or2-jSwKrBC+(|FuZDg zer2{fue!Qg;X{}wwcD6YmPlhkM5P|Blc@#(ofK^XX9|7l&@wy+>0DUr(9hM$<IMeE zVm6;mn$b8g&gEKDEC1~ib864IiNqAr-^w5LABhoz_mW*pV;X%0O7-pDElBRi3KB!Q zIwt>&&+ie(?7)+~(_i~P_zY)m#%?sT##Wv7bTj$B80;~{r7rhILgpu}rXiQf>R5!0 zQDbnAWNNo!SKsaq2{dF?T)zE0BH;rK6(BDo380l5F}USMU|9tJq=`7)Aknr$nZjQh zNo8jaPwfxTMT0$PB2*q_@N$Yi0IjuHQF(tN*p=|&mGoP1j*90hcu#^=I`aGUAPu;q z(J*RSTHR_O1n7VdoYLh*f<ty-KQrysayMLEZv6QVI`6yyFi@|8DntOQc@MTIjB*NR z9C!4ggN87?^E>|^?WE}fkZ8PZR<_=8qISFS7rjJ$mYjJ|R&G(QgZ3%uLI|a@hD|5) z2*UlBQE1#S0)x~7V#%VH{hX*Q>fz6%H$U0!%t*=FfMJhRWwx-1Kxxp7f}kz_@&#uC zIsus&5Z7nQh4Rv&#%CZdM_8Ak;-(qs4`hZ=2ACO{o*6{MK~@ctKf$l)xfimXwd#TZ zH`P|KclEHn>@K7*?&a=z6VMx<Qa$Y}@(tu^vx8!Q#`z#Vy1JW#k`0>cN;?r3U7CxK z#qqmsSu*Nx96H{*9&A(8>5leiq9w4B=v;&}+5-{nn9F8N?TmU@x816+%rqgrWb;-g zGS|JA*vq=(%BedXC(i|JHnjMOCibnSnfpk@Y8<kPZ!hf_ogSV4eqwC?#J8_MR0mf^ z8vEDcgA=6?I78_Y0^r0E3<oG1fI*9n+f7*WXooMoN7)x9&22pGEn+|RerW&kflnej zwX8>Lbl2H1Hy`e-ts`#DMx5?aw@xmYTyk-i2h8GN<g6gp^EzFhL_Yxhieb1JC?Dea zWW_V;BL3^>&6>E56Y_eG8@gE{jAuFP6TD$!yRoIyB|p+%aF@}uwBK~HRfJfb5L&(Z zr;woDbXO(&*x#b>$-De_KiIn!ox0)ZJ~zEn!eK!Yq4k4{qP_y!255uDsy>K1C^=bM zxip&iJEv@8HJ-5Ojpl8P%ygOASW@D|r!{uG5>`%e<t203pR#xc-ij@`<-La!95<;a z+A7Tl8ic)Ce;D+g7q}9X4LGltIGocnW~MK5;F$o1ywSbq=j88f8=P}AFGQ;wP9U$` zdih1Qj!MoP&W?T=^zDx|Gf6w2j}i#?sA%QGZ-!!Z!FYZReiv-P;S4_T(WOU2f1ac| zPjO&;HEVlTF8a%sthKIJ-|wvU4%EF6^jz-L!CxOv8D9uHzoW8F-`Ka<YR5o(X6Cd- zkxKmS7%&hjOAY1vz$|4E^sVQG_JlNn9><CA0%tQ^9@fY`hgfj$Lu)wbb8<;&uq%0g z0H{NxX9)mM4-(51+DnjhUQu<CDn>Xj&o#UK0l+Sl&}75+Kf5EsCBXu|M1y>At(xV+ zd5q0|s3kFB{UUH;gKHI$#<y-8&q_{j7oi6I6##q;w&DbkW+Unp`@2^*`g)ERG_xXA zcjDD(LH}cp_FzubAV=$JseAW6s2+d=AqHHMivc15{UW!104|qP40AH5Od7xgiHsXZ zhW%rabhGFSGp2Z`tQn+`AqchM7$lNEH1s9@>#5q3ML(Dd@55|e$U+K$oB7&54{h&O z*u!VEY8f^RM(@I&)V+6P_%7(Xg&13WKA+1>Ubz(J&WF@E_z(bkKS<RKQ({@gS`c#i z7a?pcC&KW<F=@0ed|3$5*VpEuW{5~ZIL2-g#>xtM3;V85dkXHKJq?sGYlK`Wfy6SW zj1-*B1^1t-v-Sk~dl7`<AVyzX_Je;zkH*9eSowvIOl?f~e<YlINmW%fD&)hhvoRCj zBYeKMMCGx0YUpd+pcx57FXAy(SE9z;?Cazwe^`B@^_>#8OzW3xXcf<uYjp)l8!z{U z31RgmNaALCR1*JgSi4?E=)6?ZLm;4tb-LQMTx75ryKh9T^<t%!jv`?RB3P;u)gUaC z%AnxYW*<6!;l*>`P1Z-%#?!+3g-&{Ulim~`7h#WS+U1`pUOkrmCFNX0ZVJEvg-R7# zqaxJ`)S+Nxb-OA$^3!G>+{0uoKtxuq-1V&};d`vj@kpk0V6-T(apu1vJm8Wu=v}>3 z@``%WRe5xE@;OtyO|kNyLBgt=7+N~VQGL5VZ8_|;TbN0Fvv-+ro%ukgTw>H^qmn0p zx?7u><4&Sl<`*mV#~*)E^$ehY80SH1K5xM+oPdZTfVz~E=%@IpLm;VIeq#J~rm@;v ztL}1T@Vi_vcnbToy##5kYv@#)%=tT49J6gDacAbzu{ZCh`x5O?RzK@oYmol)(#SA~ zGtP{K*1w<Ht=sD$g8Bs#$z6IA^wF)Nm{krUnrr#NBrWzJ6aA?eF6B4(IbpL#=(0g@ zxX1G8qgq^ri}sQ{c3;Z+WU{JjYWt%6QDaa2i@HTm(+}mr^e)wptUi>$mIYClWiFhx zY2`x(Q|Eqo%M>05E9#F}F_Ft&omA57a}}3pim5HFE4?N@>tpfBYB`~BCXl`0ehC*# z>Wp!JktoX@)q`%;O9Dvi#-kcUoqc>83wO~ZHzuP`D%;0xsipIo1cnFxolwK4FO_U% z*MKE9<*AJYuv;J2G7hh&@Ud%_7a~oe;U)@T1u`q+!@&A5SB2v;w{at59R|c1m|sR? zXP|6J?f))U1_BAdlX=p{wO@-3Pj+>NL6$3o^pE}xoG*Z)-(iFCEoET40uKb^*MQqJ z!vQ-4wu>c1hm8NUm%_>`DDX{RR$4?s8$XvMjTlg4yGWpPvXa{{-n2krOm#w&`YCt* zo)Fsh$+8MjngTk$h<c&6zOFI#^1|vP#`6U^6qi@#g;(A%(@rfWKmx~qEU2fCzJOOc z8~zi*wxbWfhBHa*dA6*Uc?FOAY3bWhE2~&gd&&~kZ(@0YHoFlZk#1}~My94{lQ6X( z_KXlrC)@f@xw;Sz416-1CeMXRSZRF;jDr^B+RWKJ{tfPd(Y$jfsF$;%E``b!{PF{; z%EpEPyc+6zsFwMQkI58EXZIDub(}w}IsbHn(6JmR({>(L&CIrK0i#FHXFW94Ryz`& zo;nIsamU+;eV0>CesI6sjyQ#~P<_V?^s=JUtkf0Pz{av05w#4xc=GKjrA6Ht%ZPEY z+}`GuALT#xUk0!9JZpKG(~qhYPg!txn|mKN7@fI8a|_&m>Get(*G>VfVmngR&4(2X zv!XeC(TfH_H81OGZsYnNu6s7F@lQ|()TN93ip;&do10eqI;wQGYm9LD-`VD>yf=$Q z^_g}<eeXAaQh<^w>NqwngiUo_y9nU^zFYYhxJPWfH7ECn`J22=<#l3YYZ)~><d$WJ zkx{jT2(p{6r*@!IxeDMC7z>oj%|Z2VCQ>6~blTs^_MdMn^P2fQ<G!(JVn%6ms6$PO zsVbf?>HV2)FmFxlhC8f!SG&_ZK7T>zr?yi~Yn9PbExJEo8p9hi!@n2)erbyRW3-VZ zu_gR#+x&3&VCn!<|AD{DsT>_kQ=V&66Wwip=KKH>WvPC3TP0R*TGIcK*+=)TQXjU` zTVItvCZ480OEi`f)W1XCiDots=#N?PMs@<Ff*X`qxu+;>Xb;SRyumOhDd;_^-*jC( zhu70T_=Oi+mEg!}rHTeQGj4XV-oL9q9OhR>WL!;^Y-1B|FRWGjKWgid%TG>065ina zh<g6&FG5<F5<el}An~8Q0p;Lc0boXV$^&X7^G7~Hqb2)C&EUZg^((a>AF~UM(DQFx zty&lXJM5^qF3<6T|GUr1a$)y2{Y$h!rJV@siA-3k1}e>an)cgBAPG_L;KQ2hpT1{6 z%ndOxGSgUKW92a}&@$CC&Z#>GHLDtkhs_O}zXem+#jNX0WSS2XN=oD0h7@l1YZr-B z7WN1JW<n#3&ix*ZpeB>m5aht!q$Bx|bRHO>H?!c0q22KPnxMZd+c&hsC^AJ3BwX7a zY!;?yrE$=R1H1qc3KXX*e}COU4Ct!HJv`k6S(F?@g)yf{19EqQ$)yh;3-5_hKYhw# zEhFJil%D@@$%RWY8_xDIn*l=u*8@yI+3=UL!Zfal`Zket1j62KlJI#ZMaK8bi(+G2 zKywbp5(!5CynMm2ObPhGeQ&N@woK7*(%9|sMra;Vrxcs~3{qLpR10Q=9#N~Bsez<3 z6x;=x!kv>x0Yqei+!o`y&?~0mD$alA_iAWg`j0c7i)V@V$CpF0#veVSS<MQohzX62 zcm5ojWKBy`SJK#8H~lQjalgXbjOT3<&zkK^TGj9Gi+ttjDDAt*fo~4y1K8WR^V+qy z5z46z7o(WSgBDfWdk2S(_Vym#lmDRThKSZ#&9rWAv1;AKoOi}aIgvRz??!UoZFVYO z)hCt(m-QaInY9xBj=zel?QHKbg3g(e==Qp(m>JAv7N?M~FU+V`(7Cf`IkUU!D{s4m z6-#KQUp4TX<YSXrtzr@k6O7Q&O8Jnly1)IM+1s(J!te5S=&=<mr^sA58<%g?7Ps`{ zQ+c_U2wH4UEehhrS%Gp4x$m^jks41x2RI+u|BTV`?vAlZHD}8p9uQ~?2=*kMO5*-4 zT^!Xg(A0T{tSBaCSzN3rJ^mQ5yYv1K6b8<TWoO*NzWnJ%C@$IdOe!~-yzkGbT-2rY z(rze)$SI3UY05mkl(%P2!+ox_zLdDzjlJpk<6qrrSCPT&g25d~*hyp+s9nL?2<3$x zbqILqQ+)kgs1yun#N8fS{(GVK_%l~_<F}@Br21Tayrwzk*yuu@?gzP~c-pHgLNz*e z!CFsFFU~GG0PEdM>+bmSu)*Jreqp#Pj0^_q>4&c&tu9XI$J^fM8?=LxIatr_;OC|9 z6fLQQzm-<4AwgM5CGscc1(B)@aZCaCL;`*v&Zf9F<CC4OSBz^|M8Di~ZI(_Ltljq_ zn_IB-*y~>Ndm?N08Np2IQ!CF#?aRM@DP2_*Q((p7^{KTG7tTS@86;pmaBx}<Hh+-y z!2p$-+XnB~2~myDifN|GZM+Ez5@j#G#_`L15a~D&@z&GUKQiO|$dE7hmH(QTC72{* zlLq()fFd$ANK*GI61zdrp?y-KMn&i|VY>SRh*TbPdMP2`aCQ<2PE25v8w-3B_$FMO z<k}?&I=0!Vx{MUt;L~KkmWCaO(|M8qOW`Ji6ap@)jcV!)nrnXi0cuu11Jl-|W;~O+ znQ&zf^#y}*0_^Pq>v3alQT@~$h9L`JXE18BA(TD>c?TCGP!52vP8iR@iXV|sC+np$ znmw$+KfutNtBT(hB$LTTeos~4KBWe1C@n7dVIW8q2Er5T?Pl`)c!nIRGP+wCbvwX@ z(+(O@54BptoW^XkHB%PN8S&o<S6*18E&pdc>M-=0iM*Hwfw^~L7MN%!WKF2bqkvo8 zuq0745>r9h|NF}>V3h1~kJf@@fffRubMr1YBi@R1Y7x7ZvzkI6syl^vQ1}riyxCSU z-vc}vw1MTBH<3%gpXfHeO0z8giXR4w$~^>=>vGMX?Re2k_eKK3heMuL`685^lGtJ! zup@#pOk-nJ;wx6&XlcJ}uh)l>!q#;>%*($>%jdky$w|BAv-1<}&id+NLC-wPF(2ol z@ZVTR&vKT_M2(l*ys{9MC&`QX^C9|w0j1`oF3taRUz3{ndH=^L8N>IOin7XKTg5Z6 zI{At(&p#d3YcylceZTR2;Fb>A-{a;l88d$E=doZK1YeLG6DB5!7BpWy@H*E@fl$@W zj&-&pH9&J+K0z%y!`8XG+%Mfbw)@2^>qPu`>C5-~%2$t=z3?xcPd0VB|JL;sRYE_l zHOG6(hW&BRh((-P^t&_KE#1+b{o#!86z?!+xQ7UE{GR{(dCyx?dwH@6yYK~{O3Sb~ zBDu&kgZHca+v2Bxn8&~0k78>6D}dC@jjs?^%hXVdX=5ou25sLag_I);L9fpJdHU_$ zwL>`ndO-JYc9WRn&R)-~|J(M2v+*c%U}NG8<zTj0aRK)ce)vTV+0i+8jjGqG#o%69 z!GaaL5?1}W&=C5cV1$P44w01Dab~%02h!TOnz`h8Rj!MKs<F2njjmPCa+%>mGhv9H zRQq%ad=?mt5dFwFR+=e-Era52rt%a8^;eh)+)|a=+Sk}zu#lq=rmL5BzcDh>iG8Vb zVFi-iKfZCuSUWh)T{(3`ce$Sblg4u|k<JtL%(Dny0pZz7k=@(j0x-G1j)Y20o9j^< z)IA#yGR<TVIJwu>307BndmWNCrT$W%S`2*uptDP%^FFVL!+|nqK{>cd6-|PQnxMY0 ziF!!6{RkqVwzdBlNGqxwsUCgcw3{7?v<5J^*`vU~W~B}NPrC(0C)>_YPyv7?Ow>OL zV#`ys<J34;plNNX8fkp*27JwgbJT7Yr4PXC(&WJc--6XanYjp>TJxX8KT<Y3z)HP6 z%;W=1Xr3`a2O9aMLBIc9k<-Ddogu-t*Zc=bD@5|FJ*`Ay4`;Ss`m~w`&6!9CkE({H zs(*c2cwQblwK{4A@@`^)S5OE1#DGmBG+~CMwQdu`Rzc$=*16#*c^xSv0JZC1Gj|hJ zFO+4p?)lbtwn1&c1<RQ<*)l!1hQcb~ozG1mm)-6Ttlo^!-i96`lueQoSW&yvo54}7 zdmBJu=fG-V1IF^>0=6tl@m;>eDH0$PExQIXBC9&18Yra$$C`f4M0nIoNM_|7Ap- zKyh^qC0e+9=lAXqJ^nz;c-xqVr{__f>4P^m+8=+Oe!wI5)#Rl^O3Xb=QKu~bN=4Ud z6O|?{`$hK`htWIUQ{Ty4^-BzFntlw@LptgAkg(h0n9PKy9RG{69$DF}xTl<%FVE6_ zwh+|qdCK3(=F2kWi#F`6yk&+@zwQ$8IWF@+GF?lYnlXjo-tge55V2(?v^bC%f1F1k z&(TEt$kC=J4A1&XJu#;E|EHR@#Vm|&`{H)Pz{SuQcg)QH@h*SyGK=G3XB+LTJIfG? zBZ>Zk6R(Oi+kxKST?YG)U8XUiuYCfjCsKZ&Wat95wBseOg_kt9p{0R0g1b*WayY<* zAL^NNCamrP|7T|cW$_9Ud!tKR-t*}Z-=_|4u@OxNJ3V{TXAkUe!A{F-K8WLtQsN!3 z&o+xc{O0u8=UJW|uNy#v;lqZy7$TTovF_wTaC^kaU(Wt3rU~btNov1b;~Cljmy>}X zBMlP-+TTAtQlQj0Fu&%Pd5(YV&xxP`v)sjn?kMH3o&Hicm(_|Tk2@a?v2^yLN+>Kp zWQ*pq5xe^6rrP^_(SbJ2b8XU(zK1fQe*D-nEGsJrwbqgiuLLuM{Z!u>eSPZ2dh^Vj zi?4&emT#NQbTQ^x7A=b!C-s(m4Cs1R_tx1eUX-8ru~qzi&3XSw_ogMwb4Q*#xl93} znbt_6IcWi9z<B;D;v=zSgy?JT-g-lomd8RC*abIW{*x}eh(s$6Ng^5sia%f~Cl4ox zV<5wq`9P?8aWrLzCoQ(T-VA&u#}Z*^cZ#x|kv3o1imF^KpPXgG>q8x2;J%pI2vhiv zr0ok^zM849L9&zl2q%Fo!Idon&O|a0WvP{NQcS^ad{FFhn>smobtg5$+vU-<6XpO) zm$gONRUxtE!c62l3#<fDY?`1RpaB(Q3+Lfij-Qnz(Tb=a{?LiR*>ss*7;9&)U&lVw zIuj#pbDzQ&Sq0mYCfRpbtbeL?W>E-j&N$=W#Z2oO>zI7bOgj<PmTqyhDbI<TVXM$h zq_>>*@NHnGT~M`xc#CGMM6F_%+K$yf-%~Rghh^A`gNV@h);4(O*zx)6$sKy<v{Mi8 zVeUSF7yr2T=wpP?(DdFnh&szQcv3v_*zhM$97yWT1v2w$2<7bQi<UPYD=UDj3O}}{ zfz|<Zi-7Ti2HHG>(DoWYk2N8pD*3rxq8O*PFjjg`0HFkVaG;7u!ge$O!_d#U?x@1U zITF~c93<lFpO3HgXxWwx*CwMKHZi>VNY2f)S{IY$@!2FK=GOvsGFSilyw~?V`F0WR zuZ^doDc4?Z-hZ(X%sYC9#Zk{HBF$#SCD1-1(`I^x{7m7mXZB?q!_T92v1y@>E-o%f z|1#KMTnpBt8vKp|>kYuaE|#@?GJN?UbK*nxD)H2HwK#ylUR?(e=KO`E#?e<DQcm+% zT===2<;ibO-Jh<Q_d(R-G&2P;nf$!mGtW=ef7^(ASpWUSK8kzg_AE2E+uNUOOpKI& zy{-TB>Y8ty^(|BJi|6&jc!*$xv&@G7U3d9wwF?ZxM4#yip~XyIL%}b+b;Mq8y>a;l z?~3W$wWJ`f|D2x+@MY+I@jh$u<yjY=81`Y8>^Ac8AI~m_by++eo@_J=0aGdtR+<tL zprMKugt{R$%`+4A^(CX7>q^<QmDPFLxxY;>Qc}bvX1CEO?@bT%_uudD5A=Ot^N!XJ z)|vwPf5BEY()16cPz2M|7_)QNioGi}<z17BFgEcHsrn2Q;eCkGw{Fs}C_$$Zxe5=@ zydCw|#3R~?y{QNM6jDl3PaATd_2J=d`D9(rs!cwZ6vGVw9c!!4hYr_vh!WODd!VB? z5NHd^;CEiYOg={7{#lOre5p{Nn&Q8S(s~CD_ePyh-0@{D@~-{B%<i)H_!VES)?{j& z_@8kq|Jm!Mr>kq_-$?W(xP=8CA(X8j5+vYLiLkHcZGRa|^@!kF*MmOFj!Wz0Wbp$O zZM+3si`1M5a5n-s17ajlwInfV5uJURgP;%q&K3!7R6w+BW)QXhKjAuEghKtNgWdW6 zsFfU`VJt4{z4qfUb=>9Ob$HXi+b<Ba`UpB;os5Y7LUb-RxV}j-2?4&t{~_v4;Gyil z|NrZnvF~JGlO)-aeQl&v)+A)Fgt2D{4Qfz{LiX$<TZM$75K<w8OH$cdC?-Y4P^9{u zxj*0k<NtWvx9SeJGVkl0_j$cu&$Atp&2T#gr`Br<3evF%W%b5Ir9i~ZBMcmsDNxjj zN#6bpbOH?ZpIbuypW&x=Mrt><&O`j^A!&6cn}y-pQuEjZ2^Sox*w13bt)V^JWH_US z1xh8jDeJbP;$=H<6fYexSy2&ZF)B(6t%slUQO=4rY@Ffdp+^J05T!YB!c-ZdCH=5P zs4-nQg3k*@_-+)aF04`RXeHvYu-gDEd=7P`g&(Qqb{^S<IP0C4Aat&S7kIwp!any- z(j^6GV^Q_|&8|&9>Gn>WrOj7E9^L2M*`)WWUH*&O95L$6Inu@}8@I#m7Aq_3_B0Oc z5+7Ohzti=Hs<giOHLEB$GBT1c>y2rq{gBnpXO)>f<DZ$UM$qG7*9rMNslJiTUk+K^ zeS(ncGzgAc@bnjDXn2JSSycfZkbiTd94xxZ2TOnDcAwfH&BvN?@0_Q0pJ?Rdd2qVl z`RqKgukS|((|e^5QqV1nq@NLAc0tFcTa&^<jQ$NWud^QHnLm$<@lslDTB-%R=ssWg zIwo{(R^?`Ig<sfhBL=tYJEp%QauKmQoWw#CI&6caR4Osi65zRSrc98#p%-mh)^s4S zDVeZ2Zj?}>d+miK+Y|4LX3g$y8Q(cBKY22D@&siBv|eq|8}xJNMm)m}fNU5tGBvnx zL!*Dp@cM|p#~R)%EO|kO{CD=}aLKpe^t4DvfsQ}g$3}Op$j($f((KnYe)RWdOPd!; zGUlRK@DO}Xp}?+^<tI31;^?8<3EvWNbV$Q`%_dE&MheSwf0{DP4?9uIT{*F(Y0ZDa zr%p9>`x`m<E3I>6F_X$da#8HQ<F%!#liz;Zqa+uw{cSYi317k{e-E}Mv0~0bV539T zzwNq0Owy<>50PW_ewyFXmZNnp9u<{WIGFMl)jxK#jhRN-zgGhe42a7Ir<Pb@kgPD$ zhr-SAKO+=)P`UC2ikK*J+X1=Thrz(_8vm0ButVfGvoY*asf;D8R9}NF+}H@0(R+B& zrkGfqLV%pA4;ui$^T;}@7$!)txQXa%X{d{^U;<thClQqa84hd@IQ$2yr+9$eoBMLr z3|t=bV1sPEUXU4u80i=Y0k6;h|HB2=N2wC<MLMsp8PEE_;kjJk38xK~^|*ROpyD=( zpsG$}?1a5G$Hd96)Otlx_^SZki1T0g8W`)O#5W2Vqv0w$4S>ad_1Jk!TB=ba6ZqRq z2zSd+rOyu~h$-ztDPDPi5ku&d21h`p{gDA^@sotiJr%IQn=w`bhJKk6+i@nO2yUVj zFWe_VlH@+FHdeB?91rZTIkaTp*^dw#_CynS^Q|%B;vQnY8`qkr{Ig*h<!6s?v$ur~ z@RGs9xyP&5`k2t@^4@7Z=L2J>s%4g20*uxAZdd=+2-{<{gsUnpu#oj#cl@XC&Eh86 zXsVcsuaV!gC21}|{`D{W1LueOI`!--YcKpkF~H>CMmHY1l|&=ND;iZk;d|*S!n>E1 ztxp=Ol`7S5sfZMPF1)CVRVYvLe6^dMy|c)R=GR`l$82U4%1OD(oMj(@$Gl`HB7l+q z2}2GVjxy|tI6wZ8W%%Cv>mzd874du<R?a@0&bPxMx+WLzd^yt4-ybUW!JH8I%MJ<0 zC~mQ!2`UY9V3Pd&Jt46n*WPR0On7e|*b$)|eK6@=b4=4{-0~KYm-@%5B(I&i?@sz- zHuHRBWDKQ^)iE<d3F5`}?sckn9dnzbam2sQ?`jU~s>h7`ms|MD5uT)~4cT1pS<1P% za?#xLs|maFJ{WZG&s(0>`o_uHd)t5$tK9~GN)Usb#7T79Fw;c&GpK&0P{Ws@cRYmq z+`hjS(ePU)U^Gh<r#Q+XByg>(E07(lb*JM)_CtpEpa9SPwl=$5a;cZXm1(8l%l77+ z0x{YxorK+nYN{;RCtPGr=D80%axNUa#qwngK%^oYl1#K%R+uJtYm?m<1t`2X(G3tn zQcV&O&8n_CkEJ1gmy@xoCslTv%|E%7AP}R6YT8wFb$ohZ7{9Idl<d{-5r+Zp`JUF{ znxW=)j+fG8qO=DrBldl3uNFpe^bej02(m_Shuo+}G&4mh2jfMjRS0t64b5;Z2^4PD z$$|0Eeht^7j9|U$b|%`+1fE#4Gt})!N|!{tKIk(E2Mxr-Z(mouE#A+Aq-=W?MV20e zJ@hSk?1#As35$=BiQVCy59{|n1kDrBHEAik5_Xv83O{!7ge-B88eqCK!t64R{O_6x zo+z+F{-4s*hlr~q?I-?A4^X$OxZI6^&a&<Q!UYrD5=PNbXeKV+e}JgeBW@F}9yv92 z%B@IkaVl^FMad5BdxTFHL20ZqBcGq<!8$iL({k0g2w^c0!MzD43%Mr={}~&hHu6#I zYwMY59lYNlRd|t!IOTR!`6DQUa;!M`@)}iOJN@MAcU8G}z9np0k|8#T&N$icHo(Kk z$r^gyDA9MrN0w{4&q0LfY<)8ek)S=HUY%!?3cu%rP-|qI$Y4u0(kI9rnM0d;Fm2M) zD~;UJMB<@66pd$VSd^=E--iE?r2gjeC(gd=T(t+Ar@bDc+l>P|V^{VgMGc>xLjv#% zy9Qe&uatn1-zI%>`tx<o$6+El!~DJ0a54+P&o!l-o&0R()PX8j#oS4*jgyGmUq7TM z1)=qAM^y6EeYh3W#lDE4y*ul2h{X=Q)wjYc<LiSs4^EUH7k2QBwoa?uUsi$VO*q#( zH{@+67Nkq?2uHDbH-x&lCW>My)*vbEC(j*9BF?yG*U|I~d8IjPOXM47UtRiE`B~fH z!P~?;qhr|oP8jF{Hy7iQ?4tCBAhqc~Cm{|FG4BUR`=l1Z^tx@|PLtlSF}iEP$Zh59 zp^=lbw0nIHwbERr1uLlwEULkm_4n@A?FB6Sg}7#Ut;x0hZn2&2pPG2s5z>zkAm#Be z$aZ+zmsG}gzP+WTzN5uya>~_l{CHZG&qpz2!s=MH*Hg&W7-@R&*vYEs;+}pTd=*{u zQ3xw-H~uSt#NI+l*^Fcn6C-SH%!Sijy9Sf5EH=hosMj%MZTLlJ=T$(A6)|-W-GA-F z)~xN`wreTv-t-d|*Z65BYxjnSBBK4%pZaV~AB)X=xQ0_=e6mR(BAgR8xQ`E)W=Fz{ zVQlg?)j;^zrMA{^QSl?HbJNdcJ0-qK`c(F$KaO#Z#|0h^JbT+a^5>h^7WY_BuQxL< zsTd&N;y!+TuzmwEDov-!g5l#dFG?$o<IQ*rTU!E-zmO+XQx}Zdn23*q91-q@!h)hh zT-c?>6tC?#ic;}@1JPVT3V$vTHTB<ImBUf4>IX8Wu><1&87P3hTlPQHCggxQD4wDd z5A)&oaggedMy9JE0c4aKS%b&!njB<on$aVu<*eAk#-b<3O;K_9;~d^e0Hd_?wz>f5 z4{dxpD)SB`pOeiMrG#Z41;%yK^Fe?VV7C=v7Gy$pP%|+g3`jv&TBqFS(*6-g4~h+h zXoj;P0pIjL|FP1-c0W!^SRQ21dV=~8`mOVRrc5-zZKX4`-Zh(DOyEiGK*xUlGGY;c zu`KH~hyk2n!*1s(;^>9qS|k5AAo@>Fy}B{LhqRV++!unOtT!9><PKY_P1r&-<9&?o ze#x>=_&n~5z|=_`QQ<_$s@03}ATSzdtDY-%G&p-!MFP<;D)tiL;l^h7Bp$X>K!{G~ zL3eue#{khhRbAy`cW2?VW8H3>J_(;UX4;n{uHGIGI8CUNoDL-&k7o_NEk0#vtgWx5 zrLLu=7m#@LG$&8NxU1?YAORv+XaFBrcpbn=X*4GIbm9mK!@0L4BhoR2U%q<{_afkL z89<1qee1W~cF5%$UG=JH?P%ULvbS1k@U?^E^^}yeW7q9<GSm64hzQTg?-x6;UB9~8 zzC&`>9zn>+;r%AZ*grgQ-L<Xt-*dxWu8;GFQeyQrpwDWAG4c9wL}l_cC)PdBMEvwP zpMTn$Gidi#0gFe6`pDj?P8UsswA&~@J|Jz~PY>>J=5i@xj&Bh&+|L9zKncVs<-vv| z2ljFv=5QZ04*XHel@ux7D@?G9b0c=#yZktlPsdRq!zMCUm@;S*y@&jk1Wffsb8^pV zCff8tlm-w*6)s9hzKo0y`;e#ot^-V~1*;@(_G?<LsfCh@7Vn1y41p;g`=H4w^PUu+ z@o&WIa87h!d-sjT_7-U=IOwuSJ3l*CJ`X%DcQ3l>Of2gaDBj{6Sf7k4$KdS0g>({4 zs$FXx(Bhr<+g?wZ<QupMbd)vU_ZK)%|K4LZdgJPfXLjRkLc1G#P}U9O&x@u>4H6xn z>x1^n>EfxjE`fj~T{aOU<RX|s8ZY)5{_PD!V$Vn2^*=kJp1`e1d&U;gD-&#;UQq3s z6xcAb{}DFdyxudtdi&#R8^_MK)s$S#r8hX@v=Tmn+dO9%bJ8ZpPZ0@^G*41^7Klur zm;3E!%uM()-QMqrCxVxKkj{nKazU$`=Z>^mB&jy71VIEAMz`Q~WFp!yG#JPUFgoMo zWT0lIGNJ>(It4Wb)-3`egOzrK;S$~h>!airkw5(p@4K9v7Y7{1!dm?Y(S#u%A5Wz9 z*t2GQIMBxJB~tXfNq(nb>@*KuiE%*&6DnS-qD=7lPkK?)$w^^gBjN5TzU4PktKAD@ zDTWSXrjPsY`iauEL12jHCPP`xR;&LHp9N8X)3wgBgn@w^YpXWIt#H_(a5@8zC3wo2 zs)94|!dAk+&6T}iYWTAtkCKkS^qj%ArmD8s+rthtqS4b5l%}Zi7@_$t@*qS(6HnRs zqtGw2r|w>j67+LeHZ{&2qJ3#Ry#w%otk@n?M)zElU&KQ2m(gJh>e-+1#GV^l{$mNF z-mnaZgZG?`UMy^zaf%0T<oWC>^1--LQ#TX~$c<awVWI&D%_Wz>?*|4WNajC(-k@q~ z)Oy}9d&P<?N@p(RlQn!R(O8B9&1vj6KcZjW0*ib)V?xQrfFqyg($BSJtytd3NLq0U z47>As<>SYT``@`ay!`&0PJez4M7q~=15UL8>+9<d*s<2#dp&kiZ?bB*?o?HVTkG1z z@VlF#nj#rbzF#zU{Wx>Us4Z<U@5EAgu@psQJ2npz%s4A;A`H=tiwY&-y3pFzXOFgj z>M0%&lMoZzckl4Ay<cpUv<n0Rp6Fe8<!6$tXSy~;@aGA%^h>*U?|L*3IfAZ-qxjq4 zF^M2}D#w@R9b!K=(b{n=@6wC!2T!RcIJ>=7@@I8>gqD~7`&t;N;3v(jqP0Cr_JR3_ zp@uR#GBGy4mEmtJ!c)cO7iJgr1f17~%qD+FPyW7jE^;dGhqd(giYnF*Q=P1s@|%OY z7t72lz_<)cOT7&UuMsSi=)<=ehqS+9!CcbVF`Cl_66qr0y53)j=H#z@vC(0l=a$yY zL(hg>c6Be@)+$C{ANwTs;>~nUq2!X>5BeqmB~~%$%@5JoXRG`LbFSC6;b>JZnIlN- z6iOME=A=0CX-=NpBCToVtPBRzzt{dKZ+t&=&$q(K^QB44miV-Pt&({QCw?Xl?Y)!g z60CkNb7p;L(AhpdJxYcP>y;*WK+pn4tAj8sS}h_Q1MFpZkd@}gtd0a;IAAabS$w9% zbpd+P+?lJlO1<0WC-Q5)%Tpy!%4?Nx(=te+gp03~noATkb8t;p%GK4W8uJqB90quq zX-ATlgaMi{Ed+q9RweS<_ErP3br05~gD+AA3a%%Engxr}wYj9qUAD^-<dz>CM)E&1 z!433vHDtUsiJ!`g5OEO5G8!yFc<Xwg4#^o~<s??(!!b`pJY@jhgg`wWlwH0Fusj^` zY0dFoSbZG9Me>VbnpMC2Uw&XWbl~^ZE^ty3LPU(&FfaR%Sv)m=D}o6bDFKe-)e}4s zOpm>0EJolal=uP1UuPcGZ2qQ72o9`?LfY*-&Z4Bo=7+acjfpVfX!?qyFW;1OgZMIc z!Yf$1Yc}?uu|k*MuVfng_2xQ5&(UO%wB*4m335N`?C`9{Fb5g~PRhJ1xwsxC<C+*N zqoW2TM=yezV3EcDrOb8xF`n_?tbF{Yuiz1*G6^pPU|e$nfkmtsbCb0oVR*jLDXeG$ z_9aUNE0L|E5hDX5b}&-em5dDqP;4BAV106jK4CQXV0h7k+MR{@5dQUc?cFrIYmj+u zl7<U=-!!uA`R?4lL(6%V7cR&wzc4mAswE!8cWFF0Uq$ynzv5qQRDb(PB|W-ROmdW! zsYXTe4?8xN7narPnm&9FKmAgAdoy#RR`o-4!9&<Re<=vn|5t>BkAM+eSr-u1QNrE( zq-8A=c8JV{vH4sbdYnBI<7ILwcNI4C9^QRsD!CTdL$IvwZyN|yPvFUpdhmA);suEF z<fj#s+WL(SBB%&R=o)z~QDpD?Gv+O1B!B$3DEH1^g5O_%<D#UEto}xk_8SPre!$m` zZ!l8peUjV5kaRTVc<s6$b0E6?gh%n}$ziXUnP2M%z7@TS%&y^hx4ovoL1zBI*n$-7 z52H^ce{5r+9f<{2z`H}mtQ56j8~UW#Un6i0b8FIFNYfG<HhNlI6M*XDq}&H@5i7U* zdGOp>b6_b$h>FRIe6cx`Q6o{r#e%D(t<8RN?6+0Gp)?*Vj4w$gsc3DZVCt-&UC<FK z+UEC$5IDHiJKW4z@6DnZh4<%u-e@M8Jky_=5-=`g+wKgxTU$UVWXA@3DnAbVsbIol zN+&WT&ENQnSJO0ivwiSudcHYH|H$?NRCay#bbty^WW$?$2oj~cBhCsXMT-b_lBIoj z37j<bw<jEtc6&Q^@$f8~eUq{RD-li=s~9Z)J^%)P###xNPpy!x1N%~}H)xy#Sn2<! zv6;~Ek{;~||FQ|B3W&u@^<ztCE}2~3LHKf7ct9l~!qHRJXjYtx1HSxdW*In`LOucH z>F{mohq55&sGBE5yu0bw1)69F{V~+Vp3~9<N8tt`i^*o*hCF*lp9(RZqoZQ>0h28M zjcEZT%RgyR{xs~`e@tq?QZpzQ%8tVD7A~tH5URydH{avJZ{J8XNlQ~qkd_wT3PtBf zBPT<-fHrp+#+9+;XG$-MinlX>Qd|DhQ@}VeNxsQDSeByue2|ZFj!XHVPUuBAST}C& zs_kP4sNUxg*l@fBOhcolD0PaBoCAZU2QvZ2bv((SQX%0xiu%1qi4<UQwA`G6F9H_K z&|n+FpM{Fg_tY`9v=@-6{Fj2{e|l3XYo@QItGl}#PY$v=vEltZb<#}igqPmqEavR% zt(LEy$0FpoO>%;p?AOh!dBQ(UcU*4@4E#~eWM9JZ{@CPH#?kvjkd*#!ZZwI~r~#D1 zBPYKry=(Ps$a|4jD4F}+E+OSIlg$11i@F0>cpqGp(9!gnuR3~u-@U*tA3Y{YB6wd8 zaAThpP}-$~2+fO?5~A#g$!$CIrrL3h$hknTs+}Jzua5k5M{?44_st!1>ayQb-NlY; zCn^5^#7{Y&Dqz{OaOcyf<>gQ>r|iV)gXh3*5--Ds<vn*b1Pj!cJx}V`Fy&u<DRWf` zjcmWIeGPFkvd0sP&r+_@I{g%lkEW0JAexmSXzLpzMu0_>q5!$CQIw*7zwAlnQ!)Qz zXQ}f~?b}U#<f5oiK}DgBDB;ToF?%8HC3%10uJ$NJ_6_sV2XF+ZT|J84O}o3TF=4j! zO+4ja4iqI6TZolrA~HpGArBu|nj9zz8h=$pkrxd<($}zdN<;t4Ww8gmC35af_c|JC zPT72TRMR4qEf>SyJU`X@L3wuJ=sA0h@KCTkM6%GDpeQ%`>y(1Miz(LFA5Y^>Vy2m~ z5o7>>);qFp%@ZO2Ci?MJc^coKxF6T6UfZH(|LTk_TDzYtnK2gntWY&8pK2O@53W<b zD+Bi6o!xJ~J-M2RP<^m8R_ym70GY&)Bc|cIlI}`swIK7T6S>vf@l>YNDGh?>4$z&( zYFGj9hKTnAI^^pSDBeC3h<+AytALY&Jql;9=>1>3UDY%Z4Nr%oNoDO~gkxtJ)CmS4 z{(mfru7X{lo<3<kcb63|p>3YQ5P*2{Tjwsr@GAnok+f1Hvi8er?g_WJak`~7D`QvW z6g&X_|0taad9DF0Lk|$Q`kx#)>R|)IWU(|0W!#ZeulbE3r_j``UPu!LfEPIsa1yJ% z>KecgdVi$<Af8s6;wM4KjfFYW7FY^lu1XkCeG1yA_NV{w6^tD1mN1WwU+}tM_!3}g zcj&1s#xnvoiF;aC49~6E=5ZlL8d|U<N|7BC{h?OY76BJ!`397Bs*A3lHERQ%?0_ML z`+?%95$<Jo8HaY1HV1ULJUnIf)>#fpBk3fFwz1C;>ZuuF!t4X*!}MRGz|we6WF?;N z;Y!q9ymZiid4lqZx_Hj-P84m(I+nWLHRO6$=hammBZKOjXZ(aeee@n`F6ZafFDv&w z?nONFUX23_0~`0Lu9hsZ;WNkT^Pi7fdhBW#ItGScClD}Sh6~*}9Trx0H(?Si3%ul1 zX4-fs2O$k&PZG~zYxud}l=X+aH@FIFw`gyDSoD<Z#@x)w-+dYpQy*uzWC}jMI9)$L zXd_o4v`=8&CTST<5vmc&;l3N9zm3@^&kO{G_bff!z9rLh%SPz7Ee5Sy3j(%AT*0k8 zUR`ZB1?b;~BpyTTz!%d32`g^WZP%=ry~y+#bRy+$<Xg`-vzO!{c^Gk{KKE9^=lZo< zw$IlbtR6>yn0<6VB_=UP_jrx5$<^#rKM|wPMQQ+gNd|ngG{YSJYw6f$eu_;v5DHE( zy)O8|$;4fD;df|S%=)Hn==qS#Pe)h47mdQ`pLB{GBt~VSsqjJ;5Mm#<N_);qG}O)- zvyCXUIv3quXh0;Y-=7Honob!r^Cud|uJh!gZM&B^)MWy;+soc7mgN)cek{Pn%N84f zIDZZcQ;;PnJv{G6X8C(cTs$01|Cex7sq)f`d-g=+_k^Keg6}$d;j{+h#TS#R>#5f> z?+uCjOWQSfxIO!sV$T20a(i{P5c?Y0mHl|$l*Up(ty{6wOW~DLI?(+sPr(l2R%Ug6 z0i!)HbKw?w7yKm*#d0?2hd1~TvS@rXE=03HuotCY;{}p;aG<grXp;=6v*TnboWxAX zxH9~|=?h2e0n%u=tEumD&c0rJxRZ?-FUGm93Cq`_lzKpaTxj&iV*a@#tf9^?d>Baf zKB%j}U;S@V`<en#(zlG9D=3*q$T=5rbgDHUn5K3Rs#S+kvKi;+tpt$<MNz6Fmo?d) z3LgkbbR*DQgaN+-Bq?TMm{kfMyTXY9HsqC)OAty0n{I~v>T6&>Muq}0if0n=>zCHK zQ1SafU$j4if-Md#4iLe6Re`Zk6nYQFHInCkjGXMFfBZ%Ncq7^XC6W9J5tZsxr1lL^ zo-KDI+H+8{pI5SBemX73AO8Ssl=L$^aecfRa_sTSURxTdFe2^y!8~n#^e>QMMAVRQ zhumo|t3T5<$^zSq4$khp&{MXPy!1~M6_49i|K?1;s`h+vs*uRQazvJ#4ag&t>04dz z-w?_Rc*=9}klKLfPK{|w#L3co9XmX(I?9WVS{~G5dQ>`lszQ<(!{!wb+W3D_w-Q0{ zLg;Cda|Ex#_AZ0buILvpC+5R8-#;)6yyP6q(lxljUGv!BaZ$*pHgnY!!8tFN+~{Lu z>2nd};`4&A$?<VDd+aW2ZVmstJYwBES0a0@lh3}Y;nB8#5)t%t>iJZF*~uxUZEey_ zMwENI1&*lga2U0*+LS`_H{c7Yd6WH9YbsAkk}_NcnN$54zKwb$UpOI?j~5EcZgS9m zz@bZ1uF4|QF&tzwUDchJm1jk+eg53%8+%H+-Xrt5&c!$NW>rP?W@FDPa&B1R(R~_0 zK2Kb~Q=e*p!^&QBL7th$iN_RdIIyZOng9OW7R<OO`!!x}`tZy_W!U}w4)Qf_#YYR( zsar4D*LpW=|2q7%U^LwA-L$@e-u2CYU#EQ?<@$0|X@9xzf74UY*s}w71;|hAvT;mT zoc7__G`GU;h~>fs=bxtUT<rf$Mh8a^He1dmxZ?MpmiKSJ%DgXha49G)_}%5QJ%$Ch zip{gcU@9UT9@gLY!}#Xp1Ep&YVJu71U%wf05>{H5Fg(Wk2MvGBOIbB+#elNlYvodx zqqy&h));%McdOZZzje<Zn!|XL_+`!v?_=+~1z(=}wiq-XXC)HKdL`oYSW13;zZdmA zmfbyBaQn3Km=-|>(qa2%8`KEjD*0Vm6NgK9DeK%;wdN#9tzPC~q4Dn}ucZ^2G1C!r z;v_8yok*v#Ax0l|Yi<WmpYY|iMXkc`2vx(jcrRgi1Fs1{jz*Jjm5<R0b=qJ`(-p*O z+$#9UO%1Bt$j;O?oaU*pduoJW(yoXEWWt-am2BOt5za>ldnIi8zh9dbmhI3c$aTQw zuJR(HDNk!mW<sg@XBxgDR8h^?AF*h@fM@6`N_=?Ao!oO$f|Vkb;2z9MR3}PMRv+eb zP%?#KGz6Bwn1WLVNQy2p$O6JjR=t`W4<ieshqSjEzVlnD(?+6uD9n_!wMm4elUYth z!@<?BjxXhA_#a2V^#lTGu2~7Osz>v;Ay)jcW&z>NrvC)U#l?~$#NuLc5pr=}@$~_9 zgP9tAjh_Sa{3uQSvbPMm^2DZ%BOl`j%jg5JhrXXOf_Gkc;HAuT<U~l1jn-dQ!l)@T zL1N`osWKv7+LeJ4r!OP~v5_4t5{P)pIp@xI=cDC*UX7D1QMhaU)7|Am68Gz<SDs<b zd(x(a9dm?Vx6B1Cs-c+DG)i}mV6~N(RS=|x8ydc`8}HOr^E`80PfhO9sOyg`h1+UE zHUky7yJq8#rdG-Pr>*+-3`=C`oot;sdg5GtlYQz^ZP#E~#XQR&aUAyVooBxSZ_x?| zc7dJjE<#TAC0m=Z((>-2`39x_<e)y^HW@4HR5{OC55B@bC(cogTe?C%s;^kFYNla# zZoKX(DZg*9ZA;;)ONaSGg2Ltj{8^7|tU!|Gtv9fS<A>%^A_V)Wo7Ofn;oDlWm05Li z^D<ZILUYz*B>_*Pb}w8L=E*VZYB30Hq23KuJs4ICKF6)3YW*Kx@d|<9O+AH~Ac0>R z)d*LO{{<i_6pF#!8*3s**HWvyqfCdpE_j^?e*JJVB0whedKu3vS=J@OHn%<6c3-Z1 zJ+@VtF#pdGF_J>C0#!nlj$#L5mA<#$nlH^vEp^*Bp)+T^vJUt(AFXQf<XGJGrqqp1 z;nA1S+lTaK&&YjVX%vX>kbH4Szpywx4o?qzp8vZuc*`HJ={_aGeUyHVJqAR332lPo zCbF?zoDh~JQm`iV`?xF{;oBW)g9g<-%<3eA_z;JE2X?SO4N>#$?`+|(VpE-cGZ~kD zsz!UHD=%Z($}Rv-0vv3V#?3;DMTt;i<Wbr{L*Dfx`0&+p$cE;9-qSx3%_sGE?E0zF zh$$_<dc`*nD4mVei#@S@R`(=7_)hDa?v3K^bw-|t#hK5}WoCNtO`I%$f9@;}uDpoK zA4?`mV5BtojOC$5>Y>PV1`&_NaZRV+h=ye89)P^SK;tc*U`GgcCtF7`&f|@IYONBv z$7*NlevoqoaG16!XWs!<TCteEBxN+2ACKzS?_vo&Om9f~S9me&3_K8c@I)c!V{C+I zpJ_Udnp+whJrc$60%^0EKzq!y@nGgKGpacQTx7NX9dpJ*0S{-pn-iNW1AHhpjuQJP zCgMdXV<T4y3C$=eq3UD+o_0WdZqUjAo(s+J=>qYZ8Cnu)Mq4D{Zp#X@{tR%m43DtT zbR*Y^D10^~{}i6yzg)<Tg-APtx73@o4-q#Vgf(&eWQP&NDzD3?dvLTh|5~q}+!IrT zn2czqv@%m(&nf{|>^z<j)|~@4!aE<#Z=a`Vl1hs6-=Ez43c)!2&=~QJorqDN{cz=% zdNJ^~`wB9VD|=b&C?l^M6fg8Vyu`^t8EMKp9P2QgrCT*Y+WB|xx75ZP5rW-rnM3(M z7o)<<%?d~zQiXn1Lb^@$H-&k`-yTov+ketf`D4ee>V=ofXDKU&!|dg^o%`>0=l*d0 zn7`1uIpuYHryPNokj9HZ<N)qdh492ai(=7uCYn7;<lxS_f9$&lM{KYnG|}bNaibQg zQ?0-gbR?V6p2)2}rk*!>KQzpS4XANql}GeNDSI!2#O&jqI;BR)i|>AHsfajr9pOK{ z@{r0_SFPdpYAjDxP%`}5N{GMFa_@r0SNr{w#s<9+^KmF$xk`%S!-`_i5z8$cPT>N6 zU6kw#p44|+oqk=>YQrCRtLReV>$6po5*S-qGa?<AL29u(asT1gH=iDjTjSwjO@mbf zA+Kjld`Z;L<@7w;-^U&n#0AHFWq&{Wk@Ec`ooSngYD<UIde6zUAlfMF{y%#9W-<!d zBO@m#DJ86w*=byOs|;C{843TSTv+_CAF*1$VDzKi|6Rs{vCQxV<LyNcMG2k}RzhdB zpE&XBy_u{yj<m}nMFx5`zfd|%Dm^iUbd>ZCkG1wizeA)N(blL1B>V+REX>W^GnjQ` zVKTqzkd(<Wg(2&sd+yw~PZzGnZH~p>vU+lAx8~0f<KPPC5j~}%BmLc;<u@OS+HHPr z78(!#OH30Gqv%y$*Gt?yM7EaSIfCYA9QP;<2z<&n<-4S7!GD<GY-O=Ib?y<O@>zm% zu*W!ZH_eBcc=7=oG7X};2pDxcxE49F5TIlL>5y`%6ovQ_(w-@h&@2xgKRFlkn`KBi zFPDm)APY*}P2CG-CFjA?*WQ>rM1b$w?xTy9<}%(<7D-XF&?QWANxkGXVxk<ptY?Bq zJ;m1SIB~?}M@pw6<9y`SXc}-31vegS;51{!V^Q(pX-@1Y(;}2wDmQiok5yiIt4<T` zMv14-m2y)==BuR0(v1$WAc~y#>X9N>zO!X&pI0Z2<D`}&U^VIH^$9qeDoBy5M-%G& z&OF$B_6nj2^)o$*BSr8&l5dt|f~2@h{!%lFL}_YePjFb{=$1zB9XBJ$bHlabC0vt; zRGJDWp|00~iK2+mQucFFMhheqjb!azk$fCkdgGTgVnqLufY6`5@j0ZFQm;i|SQvbn zIKeUOW4VuwTq(8Z*e#S|YiiXwtaM(8JU7>k&~!Tg#vn$coCLLBD7D|(`)Xr*Q&aXn zu9tUD^u6dhcjYZkNTX%Ol9YKcmT;P5(bz7uH_=d6`N;B(VIQTua&*U~zn3g{em21( zzi%VbclA%^w6u^y+}q2KsqQjd`yxSsJp<G8$k^-D*xt;zbF^*$KIiULB-k~y83^ii zgr4YM`@Ax6U^BYy(9(Cdt_xuc7Fl-hb};F9r1fH@_8nyZJFKa{u2Rd?M;0AEyv))P zidrh+rp%YHQyeGfV>~n_Q?-UaoiMr0lat{S5YxT0zTo88%8;BhOUglmeJV#Exjc{h zLW!3lq`|BE87$Px$^nE+{|jJ1To99TOaq3pVw4H+au!*a$J#va%>7B#zxDH(p?1vH z9}ZCEEp-VB(JVx5Vxi^tO~mLFv~j+7ZG}(!CRJP1&MJ}a+BTVmQuE{OT`vdbCsZE} z^OJm@<HqCssUm9jE^pK<Q_WFznIKG?keh%wFUI}CQOkzwkUtuD`Xi4X(wGS4^NQUO zq`j=UC8jtI(G)i-$+lTMVcq%a*v<aii|6+1tnU{6mRErHZavxh{3!A`sHxB)MQz60 z|B6t4K<z!NW1#17Vd^jrPF5u-Bp~|ZC`BP1c52ErLEk0?ix^<10*<yqAP-5O9@X#9 zui#~QFDj)`{zH>bY{s&y{aFd^a_K=@B`*uhuTUw1_R`Fmy$O_~F4Cf^*O;)Q@!oh% z?fzIK{DHw<PQs-2OJ0ISjQoZdGLc*Q2O&M?#N3lo!PB%BtVMF~tw<-xAtXjc8Q zy?E@9foU|VzsR8cGrvkl@*5hnuK@lok30DZoJng41p8y&YkE%@?TZGr&e#Gbzq_I5 z<urwo%B6qW+B%sVgUtrqro6FH5=@w2>(8xZ2d5v*MCv}6D%(<*U<1oa$SO#kqEy2W zH9`S99)J;Ws(#?88nUunP#+%zjQXsyJ6$sIC(kwWx_*E>`$_nAG%_|1aZRug;r{@s zHd9pd09`Bu(QnMVhw3+G-$V0@uZU9LE=Z97KCSKB%Lbiu+>oivJG-y!?93EJSY>%I zvA5UE88HH+nD})z!YFnO$-fMnK1qfHQ-KK;<jco#*u$!uh_jVYHjXg5l?$<QtPE5E z3%@n_1P21Wv(a6y{PWf}RuDK_ZMm7*y4omihNGzS%I?A)Q-Wm<^p8(<k^DVXX8s6~ z0};nBC;d=U|1>1{by0o`N%GkNqn>nIyTTEL^`IG!J;S`_=N|~}RBXFuXptn|cK44C zGwsQFWMg?ova>Mz>U>rsB>Pn)OTTPoUajJi8&>i%uQ+OKtiONlXM^D7uczWd$8Nc4 zEjUgIWCXc?=(+xB#wjnz#Vj?IC*9cP%tKsw2{LW({_DVbezNgyq+Odpc5m1r_T)Bi zTOQY`p(dGszkcAos9IGtKHS(oBdv-t3Fnr^U&|XLt}b&IWJ1$R+A+<~=^j^<f)3E{ zjF~82&)VTOPaSiH^<%}aRm$nj0hb$f6Cc?)uD{vE>+^Ar;-VL{;T0g*<^A#p@vH2S zi#JSCaD$=553{{LBLZT1P~up)5{wnP_A|mK@BY12kIe10#f7{=QquO@AcJ1t{0<%< zbsw4y-c(H8d)xml^CjCA<JtYMA3`dtqsn1aXcf$o*Y&l&EvFXzjQj=V-(b@Bbfiw> z)u5Jz{ujF@*oXQvyzb1#sIS*q4L2p|^(zrNalk1O;Uaw7Np^1p0ojOf)r6Da6Au^% z19HzLfq>G}(RX-@^S124m}K0vcD5!z(_A?$KdV^WafSOBLOSbZ!kV&eto;PDwTV#k z@$Z)x2I6c3cN0olfdR{gjf1<~PzgTgZyc5D<JrI_9FZSCtun!ei2FZv5aE|hE}mZ; z64W=bi>i@w$;pg*KXJou*WtQzG4fI#R}Kvib7Cd}plU{M->6{RM-lQIJaTr2GYkrx zSQhLQh_4iOzZ`^yx0wW2Z4s<9`5mc1JiGS_6P6*Y<AXz;MOzOtTno*K;GKtDnf7M{ z%j#bL4EHun{sYUOwfi2Xh&U%Zq(Ipy=?K|7fd$UEvncHC?b}T@lOzi#%q{!z67ad* zl*M`Lv?)$3YP=m8Ogw6caGORV;`MtqP$_5Xiaz6z(v^8Hg5`b3OaT?m-&c3p6CMub zG!15#{0Oo&4i0L)kaM&$v}1wTn;qj2EG0Rm8k#1nH^=;2(t)c0H<r0zgV5XVcd`>a zpDQ9pJqKO62sRL47??ka5<jCU^{q(wHTP}Im>^2LE3pS@?{={Yzjz4FYfv(d7?d8D zc;_)<#cS!*<HJtHA%i{yC35A!>h93<udY0Ks3)IdQ`Yl7BJ@<@Wy@BB6+<1b$_uF7 z+s+HWGmycvqb!sbvUqg;oCw#8i{8gnv^`Fpz4Quik@9&(-<>?CKG~z+>T~3QrOW+i z?=jCOpOj}f>B)m(+_NG>u%<%;h15I}JHbmR$sKchh@&eJBD0^83XPrg53;fue-w<7 zJKe9mj^$V|CkxV&j(qcqWTKc1AF@HDI8j=~5MuOq8`A!j87}xOlAkK}&=1549|(3h zeW=F!_)Utc(7y_{9oE-YF1Fqb@Ehw7Q=sbazIBV+&R=y$-cMe+)9LSgSctJoyoBL9 z`&npea#v7Vx(Q1CYRiOb(#JV5dWUCTXqB$JYF(9K)TB8JJ7xiW;a?jrjBW9??Mu!f zA3aOUYqD=5Gsem4F1MG~g0^9spGSLbyxoao5>~ALvQ1y=PMZW>3a+@WBdr~=i;2=r zDPg9Jon^sclzB(;d1hM765F8Wc0Z5Y#?JeV!KkKjW+H1F+jHkdfwH{csY3TN+W;=P zm251wozVLmfj_8A2{&Q*GD_dbCo6vxTueIIzoYlX=lHeko!O0sRfTnKf{KG1dY|q% z1Rc5K#n)W;Ek60gZF4i<dy7K?x2;q^{#1+tC(Zqx(<oK^7sSg|sl{q*s>RSs{b25U zgy=W#dAFBfATTXKm=u832I5ZnC4fFsyc%W)XNTnFD=fxG7``2akQ%jGN&>M!q@A&G zej9v9;D$F7F8pe##tszNz2I?UgPP{WMwq<>D~%jXv%w=9vnmEGvi~lNkKsfAz}ELe zd<41kV1(6YqbM2!t4KVIYXe99bF)tehp4bD)&^ZRfs1t3`HvmnYPhkr5kWPAU5yTD z%pX$;x2_?f`Ag4G;z=0rFlyQpN+1{v#Ls+1G%KVinc*(bd{tXOZ?D;#TyOQ*;RqtW zLlva?X%<XSOzG4YdAO^2jfhheW%fSY!pK>3bD!uD1hEV%8H*kVC6ON`x>Hc%#3Y=4 zb-k^~%3C7Y9llN9x^|Mi_o+ic!x}lQQ)fr+_|bTucyE2lgSj?vlZy+$>r?Gi8^zU9 zQ~kEQ<}jWrKB7)2NctPacj({EQbAZ#=W)SyU|k8P$&##17+_y@b*WvlFp?7Q4D@6> z*fw`=`l9XG=SQqGetmRs>vR=NGSD+L)SJ0gIo$ef#p_c|#9_TU$KmY#j=BpXw%+U| zdezT<9d$#cDr{C-{(E8V)gss((J7jq7QR#(?6jl3sWH=}L4aBH=y4Td{MmSFVUGKY zDcqF^K9vHq8!c%(r?(C&-DT>vJkorPa_<Mscx$Cm(sPt%FTr4^g!kZx?9Xhj36zl( zKWCs1ol?(#i->H#Ue+#^JatvE^u_qFH{bJ@3g-halF(@8qurHSCj<3FDSB>rfWt`w zBj#tbF+9;}VK6yf&qJI$L+02}Tx5i*EBDUmTxo1gHgT<tC+4|JA&DhX@_AU7fhd60 zaoEav<d0JYXmg|4pr<}G-8ZY`8<VDSzp_e!|6b8|P3w;W#b%gNNxYoTs9h%8E63J> zR}*(6&0i<JdtRcXWT6x@=r!%)p<*s<4IBrm6{Gd!z+&<AI95tRmB3i9H(k--xX9rr zGS}2Fi8I}nn!A+50!+QKPV*#v4wUK0c=ND-O?<NMm21bs@%(2yIC6YfCQwRlAi3Dh znT>_Ex)X{0%8P-zJA60Gm{$^d=@VN|uu?c%@CG~UjB~;$W20F?FKOEX2X*)yN7T0F zht14|su4TtdqzV-gy*Uh!x}RMc?l9H8>iNtU<1xxf?O<4lX>Qq20`N45>z0t736{i z0H!5y{&P#kDCxBhJdH4_l7MxU;#RwF;x$jL2Ek;-+*?DMpYr1wystmTet{fuZx0(K z@G^7>{9}A%ZC434%!F$(d;-$O%Fy%!pneMz_F(%n%E>Y}gkH`9r$~)3E3^W=<fMB7 z-2Ld!@H{HY=TQBYjs<4g>Kg%h#hMyJkrj1)#_TlZ`SFgL$q*`@UbCv^OVrwH;ESgY zVr0+aiZcdYKx^BxgwXY6?A+{M4I?RLlEQ?loj8o`U(49WC<`sSLJz8!UlHI@LpK|_ zF-}em942$@b{(R5fYBMkB&M>f6gZJ1P{m;W^0R9<<M!8t=$8VmpNbN#_X(NQDR2|) zPB(O=0SQinL;OX;PHhIoVfG2zX5C2oNklUixMRBOS?9&c(*E$gV|sD^hPah4Sy*ZO zh^A%R<vZBcycezMN4SedMxFjNG@%Za0lS8UO3f5#miqE;r9U_){L8gpT`EX%Qb1n` zV%j~94;?o+FcgXPmK;CvPVtXfsfDgj#mdzcj)OT)AC$5<?lAqncC_04C@{TMn~bOC z|F(_0{ns?nIdSx6c$U*2A*5arN*YAw_~9wUl>vHtUGQpah|%S-i6LuoMIr0tT~24W z8Mc}orKNAXH0o)-*l>;3lAZeV^X04pZ=seT*Q2UR2g*sd`<7eq{e2_S+fGm63BfI} zI~5o1{RnAK+7Bk?B586lESoAHOD1{6ZBy$u^t(M*X?wG+J$v7Gg$Vr4Q%~P4_qQj) zBFAV+a^<JGT2<Jp;q$R`3*pNKk&{yK)op*DrM%yrd$x<#24{D@GOcjSci`oIpFSGy zMWo?pqNtLZIQ1_o21?p8gpA13wAsXYX4)kmCK%upqom^K`p><i;3Dn4uv&EFb>t9v zuJ4*nXb_~atC)%4+O|uj@6QiJinswSzLorzhl%Jv_x%jnogacC%upxK{nmp1Yc-1` z+LV_PFtx+GiQBpI#G-<Pc|gJGU4{Xbc1fb4)XuP{cFIfRA94m+4Ft4qXWUiJ`Eo@o zm$MhBUY^*sX9#V|xLbr#b~)i7Uc+H8W(7qyT2~O1bly98`NDcuf6(2Z?3k3i{x-&@ zn&OOwTZqa=Kou)FV!OUR?0=)@Z4si(KSuK#GOd4!1F~l~k?+iYa?T6S#L@(4=EU@w zC{mY~WGI)EpP>3Xc?b$wCobbPjWuME#XsA0VIc8AN*<KTtqgp<{*}@|iA5-<Fk`Oo z+_7fV++O;spxggOcb+goDIupr=Ium8&-fegqFxb!QC?j#M3EJtk%D^LXUCM1+s#6J zP|Nrls*0}Sv0W-;vjB1>Blf5nm;y7*1K6@cY-s@K|DXtE<+4!JZ;e)6xHBTScEI@I z1&h)zY=nOs1Hgs&JW7Oti+BkWrRt?qg*&-2y&R#>Y}PPNpFY1w_Yf=h-&jO{1V@~B z7ys|YQhF_{ncdhD?Fh@=;ysgX(uy2L*{u=ENOit~Y<YUx()n9I+v%UF8g|m;R~4pv z;UemB@#0MV*s7@G(cs&kxxH%S_YHd9d*i2ESzYU?zG2sN%GE8s(Y4g}L43=Ho6iqb zYOFaS;`%#^bgWktn1#lUmc7&=l(-<VYaAFnv$x>rL)K=-nJJ_u+qUu>7W72n5`uX< zDNeI)AuI8BL88IX{VLY%-vwWKtQtoGUh=JX92+th)I0p}h_1=YPX`KvrQxX^$-<1a z+W!gHC5V6(1`^L|EG$^-#qlgr&xCF1?qWyvYinOw{=NLq+^ESlHSGFpxNz7W3QMic zId$-Q8gJvFzo$!%K9jj4yiJ(k(}oZ~uf0b!t=racRLzz(96d${;f{wF8MPMP_`eG4 z;#4YdZjrR%s9Qr&@yNtK+<n$Nx=VS}INJGT5vkvt2({?vw|BPR#VA*FCzq!3{a<Rb zqa63C&eNA}<c>w<U#*iml~XK1_1vOkpdv`mE-uQG-bqlSvtU<eJGbFkX_fD?TC#r6 z#AN*%8XpK-H@o_6v_*-!%z?dm^3K8FkyE>yb#SHj&R12ba@?9{1huVx|J(K6bNxg? z1Mi=T-5!~JVnUmGdRo@%8ePwyl}g2KR3_K38h_zQo<`{5$NrNYV$LA#pprSclqj;Y zP{L5eO;yq)CB%vYaVEJ6uCNx`6*+w4+{oQkmqWgzc!M2!tae>Y-&9SdE*F0%=S{nT zGWivcHXoTMa{ezWzNGvE2wEkG)b<gGB=ZVLO-+@FkaNO;d{=oN6zY^W@n9Sk4fhHW z{;`L;(ww}1K=1-AE1N{9+XV<Nqlg(w%h`VrA)W+*aLq8IX(xD4-wwchlAV=UP#TL) z{MG;O!WU(97FtWt6$;?l0;{?KG^*Tzs2ucvh}2HrfrYAEt@aK9R_AFd`w|zSkKFe! z6q%TcmLSY_heMFUxe7|0E@Bme<U?MxKg$!Nw~ixLUw*(d%Du4c4PuqXxA7GQq!JWG zZ30L%(tqh)EJSfNAivFFFje`#LiQ)m;4d#bLF2DDOhi#kaN<YCnurRy^2bAHE1gin z=%o)p7sVl(i+fRuZ>Kr1kga&r%#0D@jXgFww<@<BQxN3EQ+z6SAef<$Y{ciDkWYsZ z&4_NO;F}v)zb*zkTWRZ_@LFwCBPf;fptO(R$DR|~1h+2E!%WA=e0BL@gi~qZT&hWr z<LZKa8AnjtT(M~K+q;^NeyBOF`d6I&_34gt`<;*l^9}J;zjo5$PKij>#|?_aUA2~Z z7fc3yTaMMdzQc8Cbyu=Y8J_y>)^m>v{E3ZD+-UcsK1a8I!-4Veg4-)f`H}Y$sr4D* z!qW^;TJ*<CU)a%x&~0}UL||Sdir8U(rbVNVdN&2Uv#K5J4%Zyr8QnH{sO3gg7Ka|w z)e1oly=1|~%I8kX$Itb@7e2JVPfF&<qu%bvhucZ1t{(P^;0_y6B9t(p;eHs>{zje< zEawgoB%aUnzDtNnEOqt0)4mG+s+V46f1T~^!>%fDSLO)@sajHEomO{LK6@{t6UkAb z7)4z^@m&%onrxwLgu1)Rf1&HjZLdygDr8PO^qbRW+@LkMV#5Ee{rK;@)8SqsU9UgT zPKekhN=6K_`c7)z8i|zsnabNU0J2m#D_J_49b)@064%W5P-6Q(&(^n%2Ya343?_4r z%={2-pgtg!@^6J+YTxh$D{}LmZ-b`ix>DY`U;NhoYwz~Xs<6zGv!S)iIJo%aM=san zAGT$h-GtsrlU)1*54XKK<7kvbq#4EU4cVc@>~VN~kLvq}hpTmy;#ap%<=t$HzcE;1 z>|A;Iu3$jqz0&d%S;?m5bI-<c&Sup8z=2+jAP<2OknmENAfrh3=0AUu+|%sd^A&Oi zT;egxb)w!P*VPS#Q**Dl<lZ{rnkI3yatHC^?*rDxskeq<PsHpHJf?njnOoch74RUu zp<NM}4*5Vw+(jwA1y^98BH#gLD};LRrU4#Qd|Sj>6bh*vKO84sH35RZB^MLzSngSv zj`rdhnjs%U1cb>66hydD>Bd&XN|2aPdSYa!Z9Fm&#I=ZrRTRJ$cq&2}r{vDJBUVYZ z%2DvyUI(L8b>c%J)WRB-{NZb_d}f;&>lZ<1z;XwmMHHd<#_<roC=!*)Ecynpc1qJ- zUxG2esXWM&!1C;cPyo3{1H!Kp@7V})4eC#d;Tqb_Lc4LB_QA9v`~qiV2l8j`^#wLU zS*sI_F`-qR^(?~y=?MJDKz<ti8!r(;B+vEMp!q+81qszpck>ADxZd?|d7B!FSXpQz zM#_j$O^jqp0g7qP;0P;GmZ;`52Vx~6PA+EB!BeUfdQprnNL&v-|3`is!Dr9yz@Z(M zd9h+bSU-t={?5($_Gzv#n+OSocT!&$Z`y0Ng%y5^Ja;a{DW!w>b4z4$(J}Fm#d5o> zHw)&j2N2S<ps{JIIyN|y`ZD%*?7KlA%Hu^S!#5Fn$bNEA1VXzSgtWd#!u$MKQlfot zC7N8ATWPTq3L;-W{BILkOsP}sJj30T`7a1*FY4({TBb*(O-*a28zcFhBG~*HvN127 zxY+$g4P2~y$qw^6XPDlrD#@F-+%O&DP+*%{U#d(cUhZh!zc8k;{la6!P0!%KUBCHf zPKp;C`q__rxYNEztrEYT2$oP3u|Ad>Qhl{?6rjzLqJ(*#^jk>a#g{mubugl0ckFNs zI<cUC$J6HeA((4Bgig5il|u~>NS_{m9P8%5!R9XW{M-R(d$&5ShH<=|+KEVwP%gj# zaz7KT=nA58cJ#`_(qCM4HLBb8Ip5o*7&mn|*!H6h{a4P?@QwN-G3L4w3MK4DiA^LJ zv;Im#NVQuCy|j*P=>LQWaEXeByKK6fy-SRh(6h_jvhh`B%(SvyAkXJYQ)kF4^V!Dm z(A@F;UREzy3Bz;_tXAz;%xk2b55ca2-Tgf?(fM?|V~E9}%kxuZarQBG-SpdpqO-2z zPDjeQ50R8i)GMBboKZ1PS`ELV#QDfWZ{gaD071Fn@82`)t`*Eia!gMHgnTtwlTZQz z$&B0xT>l!VyQg^xi5B64WHWbZO1pp*KR~1>a8Tgd5f!e*-wq(k2}n_xFFkqw`V`G_ zmo>~=4hfQ*`<;P5p3Ak^bUwHs6>?Wj_mVHgqNGjE*gc6b%qgkhBR5y+aDCn>#e^OD zwRtfP@Bw362>6Itcp`v5yPO&06sPb<FPr|Z*pd)r^tb7N8lmyX=-33DK?~?}M5&0T zu>uc44p6iw3_c*?(Up=3ucWAsB5)E}gYlZu<+taGpENe2;^2;nc3IIrj)!wboM?b! zP;Qiz{y~`FIVumkvOTyO6XO(M=i*POhG)dGP~wIgLi#!YqM*0><8PT;JiIGm`S7dc z$}O5bD-Y}t%|GzBp{VHx6SUVY-C}BSYiAKGOv6r`0>SpC$ZpKC6U4rMoQTy09OdA_ zL=+46LNwbN^A|Y4<Ej^g*Ib@wp}BEmV$Uz!TDUzX)I8FYDxK{++^XWu{Ul?@NM`Hq zz<oQEGX&E9DDQ>Ik8hK0yRIp3N@HkT=#XVke2;YPA!icj%RAZmwk@Q^83jBo6J{+P zs+k=YQEZ}yfXVo`uw$4TOZ$0WFsP|?dG)h&SMTq&$|S?L@3uaW<g&8$kmNx&YGRVJ zEV2wg{i2b#aZjc3{M2QQ-s~<v8|N!q`}#mZ-(W4bc^y&&q7qPNhJlQ>xrr350K<DH z^kKbVfFf>lQZ3%fT4`0K?mB&)3GbcU(YAt%-#ct&J)W-zN^I7Kmsm?n>qkvBnV>IO zW{X_6-E#Qu)qHk1x7>i#{*K<yN_4A~;=*2-%p~G9BjPN_+k`WZe|eOk|7F~DN%Abh z@y%=WisV^cI^7MVXpOzHgxOAhbiz{ePTHB_A!|8Wic+k`iE}S_*!%^;?^m6Ow0O1q zjUH-hccx#2IgxNW`2cn9dbQIa-F}#<>7z743Y=5<Bt-E*L2v4%6a^QCz1+n{8GOD# zDt3>RO=&*%w&Ty@;-t<CJgZEo>%pKs>RsuXqT$bVoG)CMjNTY1nR}FBY=aZI>l}M= z0wtANkln9vVM$gO$f@nS38U>;g2@@HbCsf}X43--V#$I=cTRJ0RuM9pb3fn>?f7jR z%A<8=hkqmuvpFokXkw4m=F8K+arteTq3!prsB`MurWZ<t-=b8C3qTJ(vr=Nk;O-YK zztIi#48l=n#JCOsKw?UBw8Wp&TsWHWFEbWmVyO<EOB`9;4cCcD2J=0g=fL<}*Y?+r zkUV62p$*fNX!(i%*mPip8}m8LM)=*c-hUCHW4)1CTgjKNvmo?Cbuhr@#NK}4B-njj zO>!MqjSng*4SC5+afFtZWf9Sw`R^Yvz)%P8A^F_mxsz~aHB9PJaYrz_zz_APe%E)1 zZ_-)d#A&B!6RJ}@I4Lb2iHv<MD8!jnU^B|E_`%(m?WrHiOJ0a%pc{ZpIBvq2v;6t+ z$KbyK3rt<Ub%W0(PKBI`QtFlDxCXsO7ChGI32>j0ge}n`C`K)k?mnNbXCT^U#kdW^ zByR;e2_cgUM;kwJ;VGYoox+OMQtFQNc7|A5u))ft$pR49mk0L#H7--CQy7u)v=gy( zLTaxTYY*B;`93JUP-(|e6uA#2eSk7E$Km5cvX#H?T6Ug&)=p@Y>**Pv{_N0&iBHTb ziTiX)qiYLuZDX82#rywJ%eI(GzFD|Y7#bFPpry0TWGU#b?)|~XzQuOWf-5r${vS<W z0uJTk{r}F4Eo+MGv<b;hLU`>Vgb+eyX~<I6&@d4d;btp@$y$W6hENHWF!t<~Z6s6% zS^J;q`~N-9eLT0P+j7Ty-gD09e3qwulIY(6WO!|1Gok*LawI~Lq%7lb{wd$E{s8Q+ zqeKk~Jz#W)V%8OsG*v2lRa<z~qY`(`?Rfq?wZ^X6A(A;0e-<M@TNHM4^!SxW^Qs5S z?{x~K_+n~v!)=3KmK=!0QXpk40b+>1y8N}pY#cp^icF6C)e`8AcF2|p>sYKz=Y8>z z?<iZGud1Wt{O?T@*Li_eb={xOme+N39}4JQJ<(v;!8*!7wwN|C{z;DywQGWH{7pSD z_rSSOB!oYFa@p|B70GP6v<E%jwvEkk)qUep-gV_S$D+Lmx9Y7j8y<9=x$2pLT}V7M zUAJ#!^y4*;PXU4N2=BA`NNphiu|2@xKm9RM`8<*TeqHo8kuxL93A4dX3mKjUQ=<w- z(gd(4d8w~4!|pB#oY|*^zj!jqE+$n(pk3C5n|wmW=j^)<_;hx(?Duyy3`%sNvt0gc z{Nm>x<$x*C_dT+U!d!5s!+|?$WnKF4&JpJic<^I7*994l&GvaB#MNuFS~PnONB{Y~ zBmzxj7zngbLUpeK+7$&6zNqET2$&#G)gTM5pb_>`fNr-hdYn}jz<iaAo4=$}wT<s! z$v>yr89I8~+=t*e_?G+?+8@aMPn|$51+`b!&v$^M4Rw@CC(1<9B-}87tK3Dr6W|}4 z80x7tsS}Ekr6r#>v5KSt7ILg#FB}irJ#PWo^Pb-iX767^Y>W4MAh01TUVeriEI$lo z(B2LqVrw7_lnvaTj8HpXFqs4SQ=%9sWbH37b}^*s7Tt-2xYZ#}FJb{~fnOt=8A#XS z;j~PzzzwdD7<^TLC*0DJko%$6WaSbP;v!P$Nw=*yAq2d6vj$k7Nt0Nz$43@6vT-Z` z+|-Zf5TRbA<a;`XJnGksRNi|8^is=;jSF22h)KN?mRvr2Yy0T9p1=k|)YnopRTWSQ zwL$Rx1v&zX3r0QS(C;)caM(mtxj9K3eW!>1Z2#OJn%A5k+orl%SbIp<J0j{!G}rb2 z4j#FuZMj?YQHa^!;r1en`5){%dFKYFgadiQ7cD-mugs+L-J^twqYwT)C4a%sw5i5e zgnMeOEaA?b<=#o5>0e*<4T2S;!~|Y>k2*Sy9amYa8HBVv?%821#a9_2kTp>_poY}L zd^PxdfPXhS2uM@VN3V*QJG#mOJY4R(2v%kLiIcI**n?G{(xcmh^DHC|zO?&AeR(}Z z_Zn)u>yYvg((>_)wd{it3!4~rG`j(0{O#coBGozuJ2j46tzpR?s37b5YB<?9%U67H zG$dDm+o+<GZ$J9LG@+gWU$qxnT;_FaV(X@K@9k1)8H+rA&Lq)~H$`VNq=QOk`PHjt z`Mu}~<LgaFmAqfKd|f_l%5KzhGG|~{+`Jo`xf;jis_((#Xqyu&$twgdbT+VIT)-%l zRc?GZ)+uE-!P9FPjj=Hk{aA6g)3PqZs88{tvatHS3$I0QJgfIOr>COHO$(Lv$C2f! zpa<Yp^j<_18?G~*s<E<BR@Z1|eY<?XaO_26!TMeuhuU4K#9uETg+#oU6$$rX&d%0y zGCF49k#y}q!&^-O^meUZ4I=ccODdB6T8#$nG_6cXy+_#T1J%;51_&--B(8#E8x5;G zNMmzxlA0$aTh28Og3fP%wV`y+F4BE*q@;WwJxPZbT5sMV)RGeY6=CyWWyIG%cmXU+ zaOj|M%H9G4#bg(j5}c*95-S4a5VLqcn9IGNeTDV|@dEg&bl^8fXjz_zU{5cR*q)Kd zYYkREX#*h}uv}2H3vW?I5+@_cri4+(UdxW@wC#?by$lCBuP=xt2U?14qEFb!T#TfA zCcE%ICWT;9@trCv0ERv_=`Jl$O4l)VrT?9N2I$G|Q^529p3?szDC#Be_Q5I8gyoGR z{qcrT?qSvi3o1Jwu>emr1zcPWtGF<ZA<cztW720oufHa!aG?q5t(TphG-5Sy0R6gZ z_FyRCTiZU6Li`;_I^_by@gI;am70<MjZ~bg=<)7P$@!DhSM7<t6&5!Ss*}3a(Y3Y{ zl9#@{(avHh4mNuFpN+}!FYTv44KmMomzE_TQmAuKo*(Rp{-l2=tJ{;TpTh<OU(Cj( zGf3tQ+5@xdW`=AOgc7|OaFs?2i3#7%ye7vD)B6&vbbdO?Qh#-8l&J1T{$nby>?8gC zscE98P!hhIx_IKmXRYU}q%Td3Zc>MTy4dO49peV?6p(!m!Ue8GhA0idp8*ER1jkLT zlc$U-!s17d%Sd25)|8cE{>Y!N`XIyZWFpOTcOdHXk%xSSdFMh-=V}-q<|>dViF@Jv zx?*1;ur!{F5L=Bop{d^oLng`J`pN<+Gt2Pyk||H_nta<c$LY9gJybtzkXRm+<?^}j z)n;--MnbB}6iM^uibtAn?<-wlZvl=V!Q}Df!;g-(8Q3z9M}%Qix62U%Ke$&r5j6sl zx<z`tZU^_ZM`|j%&s}~zIpbm?%J_A6p<m_LsE*0tD}Bya)*Z?Ny2ZZ=&$>Va*6^G2 zR01;bK5&*cBi5M_Q-iNvHI4kBR(Y<kQ2s_=$EfJ)`%?@C7SH0!g^yXU-G9h`JL%Gs zQ!m;d=JDKCB)*+HH2)$+1LlY>2C`dx&Oj6w>xb~rWfuC`eU`1Q`Vvm~moZP)`h@Qq zyS(Ves3xj`wMX0^<~<maiaE6enE9W&PM_HTvAGP)e{2Bg1O5@O3&CBdY>>ET$2wtP ze*Bd}YgFI^<cv>~=;i_XCG1+fI-&E)y-&{>5L=tUY8Cntlp*X^05TjvOdf}_V(}lz zw`+jeC<&~BZx{+Ec(GjZ&Dl;-6fz!0hUM@#?U=o?hQZ*D+Ou_!g={&wy1qLw+(Ql| zD4cNXeuZ=}|9~rWY&EXZL#zRm4$H4xuFQhZ8Y5|rXDRK(adh6D5hx@A*O<`xbp|hD zeA#DYOv5;mHZigQ`?t<}!MjlWbB?pRjv90MP_9<N|M5lO2*7V|4P^<t*P{*zXq)p! zv+vRoYR}t8r%%4m9StNFIFUOd#dPg#v1psKWJSRh1?aS#ibMvqcdy*$x#sVmls=`O zxO<#TVFqUC&@O?ttm%On{q!U*qP0|3QqCtXtBy+1LEXt%p;F~Oby9#BULo-9ibO=W z_y?8IiTuAiL&ye|52+Kzk_S5&@*T?t1gi9Np&fr0HF!DnJYajZAUG)0B=}_$;l|6P zon1wH{d0#rnb2a1djoJx;wIrR8wC(US!=G;sf7^0IAoX}UBZzP&N@Pv5&5!_M$oDI zwTu~Y#<v=+0<#v&tkTUm29v>ld3}3sptGh;U~0a(N~rPi$L4_Tn=3^zOe@;AZiWC+ z`sXDVVrkKJ%!YOgLe;z5jEn_Vz4_k@??W;NIvc-wcA<V}c}o0>ft_jYD?9y3^5r?T zM{45+KOcG#;2dDGyeCt+Gd5V)CAG&BL(ND01N|2Ckc}r!MCoZ2z{=oiQ^rpN)Mu`q zQp;9D^Q=^teDady4Ud#ozo|D96fB%LExLQXvuL%~{i%WUBVo&_yqMlz=Z}l4`y$4j zd}AJ-*1A`-Id%Q-)F0xSY7WL<3r8J7p%|Mnb|E?(%p|7^1EX0rlV>JrUCdNQ<F>(O zD3ivm5ccS1bx-9NWv1OycrL5<PQN8Y{Vk%-br$2rIy?YrGdsMTBm-c)Nb-~1e@HOO zTr2cF)0>QT40kA}J{XQLFY<f*efW)5!*eCMXW!pGj$Zv$MgQ)e>dF}*9iI#SF2pR- zmIPvVHT)-H^1<!6I05Ug%B{0Ohc^tTsoEhl`V@STnuD9n`lpDe-k3V27Z+WK1^FdU zz($6hW+RjF_z+SVuWow@2F2sw+BuOBt2%`d2Iy4~3(I~PZ}6h|ALf7Z&u(IC+mZh} zu>lbaR<8ZP&9iek{H<LJRw(FEa8IKrTQUQv2-h@yxBz^t)C|R>TSq#=$a&mnz@?bC zR)};z5ZGJ=_9}>%suB>A9mSztaT<hf#`D#1_f0*7LJ^?#6UwR3K^oV@s(1DlaKM5q z+6r9>kK`|(8bTUM+)mJ;&MKc*i-n@N*~ojHEj@VX5EDKj;XTBe(vJ+JrgMl%C=N@j zx&DAyOo%hV1W6x13KckZ9FHiD?M6)0<o-zx3Pkgsv_`R#mnNE0EI(0MZ@scyv0aF1 z0Fh8XLavOYCt7p(ChlxKMfeBbsT5X<pSR3>@Nu@UeYdd*dn$Y=Dt}J*!)!{=yue&6 z9J^DJ?fwDZ{bV(9&ebWgQ@}1qOzfV<e9}2HGrwdJM)JyggfPH?YEE45Is%W&jvq#m zkkzEF{{034{nD8{5gwj*YW^}sp(eCZr}VyNSa{F+<h;m4lM#!%|2RodM8qPGo1yW1 z@_ehPXt?h?6%EzjILat!=Q?g8)CNXU*$5`xBE^loASHh*<ZEZ#_q4rtp5u=l2~YaE z*cr%t^H6d6fNIN~W%^Sas~g$|S{0*D{hu{9ehb&iA3^w)YK^juHAT?gYI#9YzMi`c zVp3Z_@J1kg?0oLl$XcQJ(3oMsr}f~kj~pJV<y=otJ^zSXyhpTo?TL;oI$MWO>^V@8 z;eQ#__6-=SH9UL_K+E+co4WgLp3lAPmSaA=&rh~jV*1&`+*3MPn<GbBwhZn6s^*(F zp$M5LCDEuh*h=rYc2a$5|B3Zc&Is<|3T&mi%2y{wQs!10LEc07;I!r@&06I&^o%mG zBiHWM<P1Ey5|a8LB}GryOzO(<m-w|;4OMqvKhwN%{Wj(4wU@hRbNL2Oqbj#=-`;)i zZY90hy_QRoa;2(070i=VYYfE<2i!Ia5KVb^qw}FltmI4Imi;Wbw(B`Bv-V6MxjMUE zYnZt%!A$hN7`EpPTX*WM90B~p_;EbxqO&4>+b-QS0|SaW|DG#5id4|KX2vgW?SZP> zOVT+E>)4`o&Nfmf+70se9s#tg%XB|jn&#QlMoK2sST`rq&db058SKk-b8XfK527{S zNm9|P;FUt#(^eTNE+Ymthfqd2#gC;6&t#RNfxVXVl_pgPqb+IB1fg>A9o%%}<gbs{ z;1Kr*eyuK|`Zd^a&M+7Zo9OY(WiR{ZFJ$J*R>&4_TnPn=rwfdvfG)yC`hA9IU&fbp z#?g`1PZup{{4OkczQ7^+pY{L-$y!DjJDW+<=3h;e%QC#*UBoFy%^s*^4H0X&D4?kR zYBzDlA#Qb_1C*Ko$!6ayJ!#GiWM-h7aQ~~1*y-V@4-letOAEkA0gF%YM>E%h5JesX z0b;b8@lU6all-KPTT9e>*e-v7w}!?K4w}FK1F=?l39EjZkThS!o*v5-y>3euiy86$ zjC3T0A*8>**1B?U?5DLQu&jqnm;cl{gq&aA8R(+yoL7;Q$e0-rblXbfA?j~py`w`3 zQNPU!lmiZUX#4avmC8wFl)Inr+0b*4ZaCqhf8wPA{g#9D+~~L>L=^TXU?}mwgdPMc zonqPZwRCFjU+0rRNFqy*yC5clfNTI&&_)Ak03jQIgiBf%r>;DiIsPj7{G$gy&UVI% zA5R|WIr#RDKi%-qxHk1eOF@XSHDQ*TB9qOGYK|&dl{Tu6S>!E8GyQ&z*%;;^$q+Dg zc%)8MoLCB>5?m5@Qrk!Dbp$6R`iiHcW0Dsm9=p2fxu<Jo^Tgnf#Jr?Wrhj&=xZ%e> zY;@}1nC70nH5h(rJ}fz>YX>PAXW}85VBjxEp1q90D}4o=Sq$*%RI}v%p!|Lly)_4S z$MK0i&KvCOszn9%A@{!gjt*`!j@ldZ%Jui>-NPa$PJST?#k`ud)!;drIj|`ppxp&5 z9Dq;qZ-^ibPM$Je@NmgdE<lDKj^f6IKFGmVes?dhHV_nS4Kx)uH~vyJ-`%aD7lJzf zy?j|M?mA|;02r7%Pmv8*M}1A=OzqwrTBAVxM==y=^Hg0%Vipq}{;P5Fo_Ril{?Gqm z?YI+Kznj0~v*+V`_f=bX`{{+<F*=1kXNON;Dbo{3Voa}&Q<eY1Mo-!GjsgBE6nMi3 z2|>SLWF!x#bE8ddAKDV30CSK9uq;I?ZT@#o18>7RjY?%A`+W**YCSAKq=Yq2)OZZ^ zt-!_PMw@32;uHnI59STBP&vuO2#0TQ68?h&{_<oPw7@~Qf5X^GQw&tP!3W^TV99_} zB&-4*WEULLF!(|YsOc<^gSL-NwYvNZ3mM-5h@&jN-jE#!H#Hel4OBTMo6Q<`o~65= zK!j{6&H%ydbB%)nL7Nqo`A{$D<lqn8kQut6WTgT($YAfVk$XoqU$Bw-PuFkNT|EAF z>~sw1^t{L;!1MsTv3imo@5v6i%)cu27)TXr8PM%uopbdHFh|m>W3lk3!@+y#9I_p} z6$|`ZU!gjh!URVSxs+|S_~Z!Ur5x#vp%yWKP=0OtOo}x^sU4E=8y^BE!zj$gq2sfx z<f8nQ(0+3lCd34e=<JU?ydZJ1pwJzsNMFI>b!1SEjVG?d!tkRiZ=KR*f+~IDjHKr? zOZ2s^{>1{9anZ34Kb9=2ON7Zq3b`EUvSEQmMupdt;d>l|&K^D~j%>32M;eA?(85>9 zw(AANfr23kI3WIq_Mj7E&($U-Mz4DNAY|o16XtCmrM~3elbU63-8E{pe1g6Kz{a~n zpW+!*bxULU8A9-X8SbnRXE8U5rT8$AM1+Wqix9{zOw=IXe&9(gb+RBq`L2OJR30J4 za&t3K+QB*Z0}she9U)B9Q#LcAjkb5HwVqlV-LVuW^gcUSSL;`jGd9HaUs1+jNB`%| zMQ;x-`~_}5oOO)+l2b#-K$bi<mU=oO2!t?@-mSnu>OUWmJj;Nen#QDGGP(cmek)h) zq&i*4OWKsG*r1yb#1@mx5l+Al2iG-e>t;K#lVT%r6iFIyssW)%_$;5U^c`u#P_}+y zA{wwNzQk(Y9yhxMsjK7-+aIj;eC67&ziU7LQ(#-~o^hq}=IdOUk1eqkds@zixnig( zqcNDe^-I9+XC^gJw}2|3f^Ie@5*jr|t&W7B?yjc}dELlx*}TJfv#6{ln!#<+>AV;z zsea%b)#U+OvEX-|=fdx2*})WZ7}+2Q0Oq(X_}dY}nlK?M%<!Wi4)QV(I@4LNE7%M2 z(_4~r6Te;MW61l>q}7GDtxYmKcrL<o-;2-cAwg$<PBe^3b#@*p&oH!*Z9hnVc1(Wn z$){I|VSiJ5l+bW0BV~6Gz?!*7G66dAy1U3os-k$&2x2*&H0h)=an%ThTkj;$y4w}n z6I)qEc99-P5mRA5eDHYT+w^fl>N(c2T_jPM?mMp42*RmqaNpoy>J4Q065hVQ88dwN zA`;T?hA)&b0tgch1tE9gAduJs9!wdy1MwOoP}<)sV5)4>;9$g5N(ZmvXvc8a1fA2M zDSkQ~51lhJ7QQX;29tv-igFBRB<*Fbf`rjwk`2!*(7-bMz>+uxXkd(M#bHpszGc7* z5~}_ujBUdLs{o<0`w#}{NxyXI;Lk}o0}8N8ZXOzuEF@H+zCskBPEXL)2Y(z_9Zot1 zmx<FX?EUA`M$&$z`uJ|eB9$Jb$Cz|yB*gt1q>Y}?oTR6`Omt!+7aPxiuYUOG3`Vg; z0o*95nef^OY(mJ)xtg|qN7)-fHw6M)C`Ulc6NW)8Hy9|_#Q`uxR7W^aXJ%aouZH>( zH4Ttjf4^AVEumA9K7RE<&j8L&&%w(%z;&0*pQ(2*Kk$ZOPET6jC}`sU4H$iF)Oo`f z<&S3Vts-^i-rrYK`S>&t!!zq@v>%;7NEx7ig~QHYD~#%t-cADXkMYfH`E$tFPezJQ z$$;QQ*5ds(#*O!5M#Yry?O$x`lbd^|CwA8BKPrD{I=eI2^mjgdds9=wETM)eWRS_l zSfsx_wxT`Ox4}*;FIaKJB=_jHRqY@1s*a11i_D}42eDKuS#<Cajw(uBFA9W%BXtO& z=F6Z?(HMUfE>aq2nZPVpx7F+H#bdSQSA8Gq344DBoooT0|H`k&T3Yj$jY5qn){3t* z91qp~x|WNLKRG&~_58!W%x6wq_rdw;5*cC-8~!|ukfEt(g^!_=Cbz#2i{R)?>g)}K zuE$P<^&Lp6E6P4}{UDcReaXr6@%ee<_?vDA+yw0?LL{q$)+pF}Z+62fg`r+7LpnH# z`oc>mf@+R@Z+a5hDA(}VHAQq`=^CDmEmvapa*H2PUc_ATT8C1;otDQ@Uvx3YqM)ys z=l$0=!lL!{aqn$iD<^e#75-1j(0~%huX_`%RbFr9oUE#6j=ssVT*2fWap2)G%>1%q zoOO?((asd{;Bw}{lH(>G+obrQ8HvxrPcweB|2kV0CG{cr@I%*|$I&N>+HB<vlt1k_ zDzEDqBu)U>l;hZ4Sz%YS^;Uj9D(F#M%=7HNV?iID<EKoo<8zkJ=w={S$RZz!K6AmJ zk(@l{pA$|@rS1Z;Ea-qh%CP+DwmJY@Hk5rN`ieRLd1O(UP#POW96XQ&@P81<jgji+ zM25fL>jru?6Vkvm3Ix7Ww~id9`d^CI0$q8{0uVfb?>YRifRSY1^2ZVsv@CG0=N*Q1 zbT{fl2Q8ZV`;`o;z`6m`G?rouP4ZvaR)F(UdWHNFJw?|OMrm36km*CwW1#&Rl4p|! zc-&TvR-qV*dzEWBCS6PwY?46Kle|z8$Hqbm>M?{m_T<NqKgQZ49m`mIn&|}apBeD? z3eIJ7qn3(jvB`e*Xn!M||G`EO)EQoJ#F5WwAR)R+#St2ot(pl46!#n!m27qJpoL?I z4sTl^Cd%*5M?Ilo6h%iP9BtI(u;lZMCCG*XA%qL%2-jX%HmI0}27G&spT-ksA@2PA zn)zu*Yu%;J;qRnKxK1;kc?_p+>OEAj=#Y7<GwSsp1x_cOX13v!ycZK@46s+h$+&m_ z?y6H!TlYV{aQ}7QDk898<HWMr7hlVou$jfKlm5@lrMp=-a(n}Azh24e#&&C_FTT)z zoS&T<Q&=>U9+nkR7`&^>SXX6*zCb)r^a)Ebm;0MvG%_f>Uj-r=AOMOR{o4z3>K0N5 z@JcWXNdWR+JTQt;QKzQMEws-ZzMihBeSPZLfM(D8J@@Y)PYo;!_&imBIg@Ja?W1V^ zCW8J;V|arO*<*6EMvabidVS+M8*v{2uBscy5CR_qdHMp;yZ?ng9X@hS9Y^IZv>|G! zywAFt?cH(zVBwPtZ}lK<cgG+8a{H!}-+Isq<w&F{n%!u#_ehCa=c5zcpHOrNom>G+ z_IQoIuxc#*_;pc?SP*m`N7eHuHXd)d^izKx`!^)t*P8T&Q23=K?@M)$Ie$KxaZ`=) zdn86)LuFX!WpOm~5%aTbjVCA!`(qlKvLCwy^)jU%;m)KwfB}mY2Wpc8H%$hLJ|oc^ z{MkIoqf#`{D<nWSApR%Ro3K=;-6Vl3W{s~2YlBBSiZ|%>;$LM6E?DNxeyZj`eX!8v z;b1Y0G{95qB8!TEXL>J4Q}r1r>XZt4@+N$yzY%|SMlFdGMlmM5E&I!N{L~wB_S$zp zug}|bd;eLmc)}{_U0oLIUF}0gDSBHH>dI$|?y)CvjojxbcfZ9^*C2?_kLN*jMsEsX zt~Lm2lY`v22YmYf$&3!cM@xBcV5E$6yeJ#Mp=zu`+@N=5H1Va-<8Q5|gTCQH-$gvo zVHEuL)6i827(PRE<ocG^_Jy~ShZNLHmHJF!B7;~}hIWVNfD=a|&|K=nffp@M*(m!D z87ctu)ip5WBok>cbruSjMs|U|Dgn1~FZh{jVNl4+6-hKW2vimBj4+LEkW`U|(z;ww zIK2HfN)r@0(@vAnS%L7`OloVo_Zf*RbjATCnh{EtMg*;#UdC3ctkyTya#jGt-23A{ zbuIi1$ErLtNhS0nspjmGdxb<lV)Dj%w~?{E0S4TI6CUo`3oRH+j$N)`CiOSI{hr7} z;yHUo3Ze3w**wYcK}eI|D`j9}b}q@trNBZ9Z!;ur*Dkp$vPj6S+BBNQTn&OBu7n%B z_Vz1E`_|l~k58B@aVInZX-EOa{LSnS1B-#G^&NQ0=9A)n#mlYZ?9%3@9cSaBu1a$B zqme5HR%Y*c4Oy9NUca-nKlbIb-<XT5^&=_rv&&DEk%sKC^;)EECkaD!51XW6^s104 zSg!VDv~X)@#XP?sw=uFecX_Z(^(UTrxc#L1=)s-{sH(OlhG$+O@SL)U5F6q3*6(%! z$;6;Off%xK7(y7ME%2OP<d5M?-X1;alXbTF@G_1$FMW?mG&y>gMf*MPb}acsEw9vm z2@9cn(cRb%fOwaC5CTMh0x1FQ@;;3_b)QF2W!P~IOTBnRL!78TCMT=s=q1>^o2X&E zF)E5Woibp@k%0>jOqz`xC*t@ZLip(k@)bT#o#!=?Lnaa!zc}sb((bR@b6;oX4;h5$ z{58Guwrp*}1Que#W=NZ6$qm9QJz<|R&fcfFZ!Y%DIK+bcdc?yK%*H5=%uT}tLlMe| zWwx%(9ITWI;5)^PE_>#z<KAT%apfQ7I#=O0Uijz^F-c&Gj{b+NGq4^88fr%mU^P<p z9{VtKPUc-G+o2F!h3c<fW-hS;K7<St{HE$iCJO`QmL}Q;YZy2of(Yk23#bBQR$0l( zNx2SFf3Dt+;8dn}_EH+!BbIi~>g#%vOU#jbZ>CjWUi5H|>p3_xw<|_g+MBXpNmy7I zp}*|u+|$B?;Ok^+fBRu7%XHTm$kn>A+$Vx!W2%=C=G#;%0%T1CplAmn4YF+2FxP;F zR%#bL7(Ri|&MBZ42I<J4SE5tf_R}aaf|lHiHljimlavZjyPrT~<pl_izkr;EB}+x` zBW7j#$K)Dl(1V493~>4;(m@7s;~(@hCOO1GdO^D&j@@a-;As%8+wm4TpR+P7U<n}i zC9=}n(d&kF1I)95NO})DyxB4YuCN2S8Vb6Q3mzOe8iKq+<G2S-vHJ3H6rf>xiiy?m zGw6@h+52Yj;NaRhNJ)%CtiWwaETHEnn)*h)WWfK3zaSZPsM6UZo8gBfZCpmf%^BE; z1#1Eu_YjhEQ3WKpy}{yt+-ylc!GiXh0g?O2+4D*bCn)wsA|HPK2doPIEpwAoe|BYd zLsVPXHa*g@P+4gNk(j+!VWG?OKzh-@p@rev#8xtw5C=EvcbEFRC*orc6;en_q%B`| z<b1DuFLu~BS%XK#P5fMu!|$hM_*bWz_4-Mvvxb&>r$<wN)j2kJ_ZfM<qmSX|lNY_B zt0DPR%h{YwW<3!hmNwF)vVQ^WU_dqD^+b?Gm76i?zGVX4ihtL)=QW!&G2Y@m#{55e zp4o5$I(v1pZ}i2Va>zXzuR`iB%p8m~w36xaXPtkYnZU8OTjdb%EX(BcY(~=Zadk~G z)M*!*`xADn!3`WG1ss3_R8#Z6b{kne%L*<FUf=9h()%7B{x@WKOy=)u8%}RAKg3-3 z(Lm3MwKS}4YVqS&HZk$`CHaT2mF0<H$nat~JPZaS^IaU|(cuvulF!Q@+xL2oh8l2K zTCPgVO1UoG32D1>VrsvE&}j(*x8EM4sfL|Zf1Uf|GXF^=D_h7HNORm~=6~QiHFebo zK^k~KkF!BfneRllxv*rDlt5ym_k{%Q0Z)AS0jbB`cXETRboxS`?(gqq>a5C{@_SXC zN8Z^(U$4w%S7Z5hZvDDna*r7L_dz&7L`$iC^)F&IxSz`yHeoA8P@oEJoM0mPU8I3G zq1OO~+~AY^yPc^RvC;)3bBU}UJSD@IpJ~cvmOV1?4GuHnBuaC~i}xF0BxX1ya{4d3 zvj4|FdB*6gOZGu!iRIDiF^r;73ISusx?u}n;Idip>{y3|ZY3y729L?Z(ApK##`TJ; zHrF99(42{m((%sYFXCkkUIQlPFROc?>zx7(+<_!n8d@tv1fLgsqJ9X1|9S2I(`Mk1 z0<_43*h<q7b!N0Z9N0J?FTsGTn(!D05<xf>7gz4f4X_nQa}94meJcIWtBFgxf(;}F zp8q5g{}=#Vb!tw;f@7U#K$p<~-vr2}VIjY-1fbRY!?$NVB(YWlxSfE>Bt2P`Ih~%i zUP@e>>F$IIszyTC1@zz^>3jjF=<0v{Jp=xeHvB8iU82emw6pu5$R_VSmdb)WO&S|i z4mdgmCGlW!!H>jM3$v21F;Mc-)^~%KjUkNz0P<UKSr8TmGbIoLI$AGe-TyOO4uy!L z!st7^{q|K9Z{sClZ6!mhJQC8vtLSvm7Ds(~G-9U5bK~6n2SE)L8lxVwk*Qj{3s|9Z zPVmyZ1$<PL<Iwl79n7dRqqzyCQ1!w)>lY%1n*@Qo=j1t!Gq&5MUQ^vH(sgq=+umel z8Ev8hR3~oIybz{tKT^_~ra1fx*{du*8bvyqeyoEu&Ep?YdiEoCpZZtps^Nf&$G&>G zw`Z)Hw?6a_zKq?PyS78URi0*K!QZAZe*JbPsF-Z%C|3}w4j>4s$hOcfI*J$vs_^SN zQuhpu6o5k`fZBlKDVUuQ2(1b@j&{KKn=T%Dc7Qk4vQk%om^wsXCXjMPxZZ=fQxmRn z;P2M<n~x1sYlQ;L3RE3QGY*qZ!rm{&=9Yi0<Z4CqTKlU`Ar9bQ1f%@N3&=1D<~z0Z z(lB;@Qo`;pZ-d|Hj#+=tovwAZuYRQ{CKhst*Z2W*8<X%o9#ZC<$cm1<0ez#o<00~_ zrW9&}1M7Li6DYBO39V2QSu!506z5$Vf0~smRj*rAbZt6zIcKk*e4{rHag1nP6Es}* z+2}*hvs!%>{7PwEgP#B!hEj+@{43Om)&XR=!B428ky(Frk?rsegtEi(<k0V+Y_$V2 zIC6kDeY3rV`;kbQ2+t*>mh*R;Ap9jZ%9-8ABSCy?VSHljT*849XKw9V;HnZed7YW` z^hBa{#$Yx-saP6y0#f*;{b+VIhRQijbxBAp%&sMTT<koeja!z|smu7l3;L}y7oKr# z*(!GX9e&c{_-I<X^LMg-m9Eyj6f<vwMdtyc-AM)vCAZm&Sz0l7g^dvmNv8J0Ect%; zJ2w9^F*Wp!WaRn*-LGm$WnMV30Qs>A?NSq2NTCE0g}*bAIYnt=_R7z~h~1}Bd(bw~ zLzjh?dRP?=Y9r4DfLb2LSY~LDP@Sh3iKg?0{1BPZ0Ti5n<Tj|pWqMFav6a6;O6t|0 zYt<ZC+)F#T(BoxvLjS@+<)wks|N1CaF)Bl76QdaZi|6vI|BnehJ>nL<id3fS{Z}%? zfPY^AazTKF<3A{-yyC+%Qe3S{0hyqcrV$ItK;sRqj~@GEGJ<3dovy@GDs5xK3O^%K zy$9lt5_jJE6w{OMDhZI*f-}<HU1gG#kW8a@duVCq>VOOVn_B&y7)YA02%Gu{IG3J> z(HfK`h)EMdDty`B%!{Pw+z95h!J%S<5V&wM6g0gccLBSm8ShSJ(i}v{iH#*kO6Fo9 zF4lt>wmidwC^}$?J1c`uj;tgT^F2<dFwDI&MdALfrzI;v%6~3Fw6C*R@$z}w0*>WG z#gG|Mmmv1?`cRK}t_>l_M^<r<CHNHHzH@$m^twL1vfE7_Vzu4XduFD-3~Xd8O``M$ zz%xg<Hi7}blbyJ{7~?Rdv0r(8=;uF!7n2F2^&gKb6s8wT?|v~WTv4DucJM+8^COjs zY+-Thk+?GOz2aCKyu*O+KNtBni8<Ab4HZdAf!LSIi~Jb8V6HD!<sd3!Ku-xVLkLUo z9}6KH10tk$JDXS)-Ml}gwz+7w#9+x0-g`wB_A!39TzAwTY3kM%WtzWA+C4ro@Z-yi zuM(D19%dXik3utV*E3`tnJr!);v^MA*q0m#bCp@q8c}9c4WiZHv;t)FB97Lyw3il5 zS=t{~G~!i%+5_Lp#sOTK_`tyO2BuB}+!o=xMg>6EiD>P#Dw$a?nbt?0``XGLW0-%> zuD(JdH}yhVk2lkH!L&<!@rJ10z%A3~j0by#fA3i=o8DqY{59m!k$=c7Y}_`Le>6NN zYGyPS_l%!F2%(m6@f1Y(H_ppe+y%SPw=87)1thM*;!lv(<AVk*yPqlIc_YZr?_hEH z7e0#$D4jb#u*;^vV0V1`$2Tg1#gf@sPXv|coUFb1A03IG8K~5vm2eIVpqVwwX7$h! z!!YT+V!#4iFO?J9OF#JL^?9QT<pCS<h(6vKW6bXl2N=zMQm*p63CMF}Cz83*Nj;*# zbB*GjrA8#gN9`_^kt}dzhqi8piq=80!#QNZk{KwZUs=^vx9;yn$ce(puw*wU7z6{J zGBCIg<VT}Np;Qwo#|hPtG6ixbq%I|%M)cl|8o&KVI$$2}-A&YgM}p4I3&ozIWi~{! z9dr#2JHiB=QePYhKXj0BXObpGbUb?l?k$zK0*P4=I;pbu3Z#e7S^-LQBv$i59n#z@ zXjC82VIRKK&W^I^jL@1YC@$=UV5wwBIeJ-k<|5h1r0{>cXNA1a5s>{ZSOdujmO(c1 zE(VIrC9iO0DTJWg%*#SsC6j-2rXp0~g#%v2=0U248DImb)cq68l!X7@Uh~0_eSjUc zxF7&G8DH%#-B(YTa{{)1|Biqb3n^XSScI29_P`GWDzTKq4WZy!$cIBZ8d|y0UUe)f z*o~2%JXv&dGwJO$L^0^wnSTsa>Rxb>5kR)rnzp+z7-}>RDfsus8w~ZkABGBkjdQj@ z+zeu`5F98yS@_IsU4}_VC&$W<m0eY%H>$=>{7F$-X{p@g?kg|eP7FtV(q|ejzSy{b z-gk_9!^rZ%`NxmzPYrTO`Z;1$Jxp_3gOYiZUr+llf2Pzz-RcrGoWnIpB#<DX>qXZL zYu~Xtq?A)V3|{6|`g#;I`aiaie$Th&tEyS#^kCm?_kRaUY_19HR^+=ac^Ip>JQX$} z?6dnm#S|fc)mDFH01kuCbOZG(I|FH{><6jvXJl=`S;qN7H`VKR)(2#axNbTJSK^-@ zK-jYO5mVW-zMMVXjAz_BDo(T(=n2*dx#mwtIp>*wh*mTQ5yBB<OrD~JQT#Y=<>F{` zW53Gxh9n%TQ@`5g_I!!h=pFq=_CMu)(jVVTtvxKY&CE5M3q3kvo4juMGxKfKu}<ce zcky6r7UcUM7~=<XpknnHN~<wo&HhAd44QF>BK9y_WuLts`ThHX*^i4{ptJb<4Kc~6 zcH2&j;5d*U9Pq(h<O?VP!Rxb%HjBaO{&WH&G|x<ef7%hs<bGmm@7?EtddB!iS1fWn zEF}!?$8q{soj<A1T#GYxEc6d~FOivi?unAfY{HuO+qRcyf`U5_%UQHOBVy}k^Y;Q1 zF}hEhnX9sY19E9LZofK=+DI011@l$Rap^U^ExcVjd2E`B=aG{!f2u~ibV72Fj$QWW zJq;ZdJuRUKt$VV$E;~~m!wFPj>x~HMHuTm*AQ1j%+~k#x4Z@HU#gPVb*fIqX`b5?M zT_8L7u7Q*=<FO97W^j@u>_1dpC1weVWV*~(Vm5MV{5-&GWx={Ux7l|$nmext<pO1S zi_4(5rkMv6wQV579|J-P630uJ`2_l;Nk0p>^F+so-TiICL<W~o48KntU__2Y1~#w@ zF69DZ0z0it_02rsQVjlVf~4E)KR=6sqv!^Ur8^7h+VitG>JilvF;C)*iH*k?10~?d z*gl%io-pLpNaa&)U9U{QVV8DeAv|FnMijF-^6T*np56V=Z_2Vg9{_SfrNlq;3ntXe zBpznrtL%tWJ{kWKvOF}7=OF2^nKUEPVuW&5UYd6L%)P6?Z`KZiIlT0p<3id9`O8eu zQdsV7X5!95hYSM5*GV5>iyMdFuV2T9dAo&mVkw{H_c+<#E&H(5SL`44uugYWCGAdg zLDd<t!8c^<B>eGdhb+G|>A_x?CEuQxM|2;iR-_Dn@$@DOty`foJKUI!A{^>;wp03S zDE?GsW9;{ql&6XMHu!)86E@RZ_q3Hka-jC5_U`KBFJ5>U!;hh%z5T|0f7QNi>ic*; zGk$!n_jJl#GYz2D0EY9IlanNK2;;BLOS&RVlpa9{Um$+d6dALg`$11Bs(Ya3{q576 zPo7*{>V}V>9Ak9NgS_B7qyvY4b;^n)TRva;t<6|?G&a>SE$NP&Y3jU9-kpbP0bIy^ zF@vE}j9t5%4KhZdBiBV5$fEOxOax#wTql}V;rw&WAAhDPxI669ekXzP;GJTQJxwN> zjHq87hSGbL*hoeE^RL@Uyf|;usp1=~5%h4j;?K$=CaaOI?QMQXW#xV}Pqftg!JC%H zf`uB?%^JoS#i2iwYX(NkMKM2b-8u?53Xal_5H*(RDfM9I1+g-$XmO*UlgLsOO^VUP zNV|jLz+>UXtJg0c?J@h<@#fkC{gNEtc%Mi9&Ia9gb3c4ev{)_YW3D?@oEf~cjHU$~ zua6>~#A{|~y{vS-%u-Qk@rn219<4dnF}=gYQuy#j!TI4)X^RLQxeaV(9{e~z*tL6i zg`d!Qrs#q%a(9$w<AYR;;`05N5G{T)=j-v+-Jr6m17^KJC?8$8@Q?gW3}tVxBMuhe z5=3?VJZ-F%#ta(($GHte(_dS%piv$Id$l@<dy8gITYe5iiIjP8?@uiKpTbxFM--ex zgOx{ELr@rK$3Pf`0YHeI45s`dV9}ju*aA|--UHDHHQl}J2c-h}XL)GZ#}&1M#QA8! zN(wrC)&+!`bIk?j-23GS6|A3HfzzG^DmZ3!nKCW2d+WT4<18`&0|^mL)0i&_kd(hk zvZFecLcn4bAUZ~9^-lUjfcxzrz-lwSXg(Q^(?tvW(0Qk0|Lie9u|GqHqh`s2eR<tl zswJZo^xV#)#PN<i(Ef5^D02M|a3Bfpkin9hvo)Ci4Z8^C;T&T_(Z(1a!Xf#A%J9@* z5&{_ybwb8pVFp;L4P1*a)Nt`<pcOBO5#2#1MGqDr<~VBMV-5s=R{ig4^oaLAo>0>^ zFVWNhi@()q%C%AOn31|@8uDOGLqR;*n!eAyGVC~zWrqSnBvY)n1+NLkoKGA*S9mID z?!}8P=X-yg`ZC_KHdL4E4)t8fRQ=o~TtsHKI}oldu`hUB^OgMkm16%6a8?6EECfLZ zw}B-ROe3ZP-G!f_L^9VWBS`sCnc3Q-HnpjdUfl2PHG`O6l)`^U(Crc2^xUs~wcZ2& z#V+^IcU9#t6ufpq+3h^u<J4rPInO&qcl5;K8f<B#cVy#>3bNt5A0gyoHU{7p6M?DY zM93x5`%++hphu)KY~0K5_QvH;XjeSG()P2ES9IrDTAl2hk3I<|AA7xU?kf{#8Xo_0 z0-kb~=iRJ3%&A8zn1p{N8!?lX;qpL`CYsVCiqzo!fJSN>uPKQWTLrESKKm|C+~+0d zx-|SNGnbuGX7o$_`+fu6#ibL!Qw`-b7L7GNKN$^w*%Wg2&Fu*eTAMS5-1&J1lBDR0 zyE`N0o7pZh9=8DCyKT+)0{8VA8#up{M5%Ea&m9<*+czxBu4gZjS?xf#=oNMF_BcoI ze3OB4&C2>e=$n^hn;nU<%cg*mNiuRqb1f1Rl7I<m$C2TFp#NOuKdTplhjS}CcYniq zRvD=zT!>r4=OnxyI~zbPk(Th!ogZEg=y;+iG9qbCzJV+4xE*Tsw7gdmH#33*Is>Rk z3*g0r{zCkPfvML*0vt`~bbxqNzbs>!S}&>*{z%W$qOeaUHnHLxr^P3sGe5%3OFde` zpe{AhrJn&OwDth+DD(ml$c64M^22ay*?2FES)L}oZ<?nksnZBXQIB(RihG<K?y!@! z8V+eAb#Y*wp~^Su&jB8zx#9?$lJI`?kOra-(Rg6=DPFAwblHlhe8ZtlzfS|!sO@9B z8!i4s1C!`LJaQaOu=^XbIU)nbHfe%?e_SEgxr}g-I7Nuozc6?(=Qdr(Rt~~s?EebL zu;7$|!4oV_tD$1w+JVXkP|{#<Y145q(Er9ubj1E2xGM!FP&VTXl$PMI*Y1$sv!?+z zR}k%kQVZBbbvHgE4Y0i+CMxgU=tyhNRPkTRJ#8ySGJyRi9@!djsTfER|KwJqmxpMR zZ932nmixX}^a7Lc7dLPxc8Z;9UYG+niGiZa3TXfk#`Cr)gaP%#d4pdfLjCjSG6Kgb zS@@NVs3k)F`)6|kzApdW5ur{TP)a+XS(IkjLZ)`4r)8ysh;Qrx97jel{BQ2W7urv$ zFa7wcwXdan#iQkyYe1)GexR+E4OlWdXmz#|=NPunE}lO&b>Cs-bWl)r5LG5^G8Y%) z@%y^A1UJj{p4<E2GHNZIm9p}?tLx+Uu0(or=s)kWNDL)|f^7Hkk;)EY{l|GoWdIqu zA^f6t+{HINzm9smIY2&^lsLC{*~ACWWifW%it`koUS?kS%4V<B!7+u;!N%*FVNHX< zb$VBqYFab%KkvP<%b0MMyWk<qqJGuT3YHqhMoxJ^hmQw4eOexP2Moqf-Xd|21l=U? z6NXQpCMpJd6pAqha(Nf|<>xb2e(#iEk2O5>e3x}wLV(^+x0pDcKLXRuG{-kZ#}{{K zrOQHWY&bFZ@JHZLaUmf4bCQzoBOBFf#4td(BF4!H3<XQ2e8it~`F%27;#X&xMUH+p zxLVMJC^pJt$q&m|{q^p*bFRl14}B=->qS|8YSR3E+XCfL2Gvy8L^au2N%f+`@PY$; zF}?LnqsCm9tjB6MZ+gUHS7mtYg~?L_m)<Q-b#{z$qcwJ7+@|864+gQ2LxsVJd$L*s zM9?LQy4gPce0nFIp2GMm?LnPtkd4)Jn+kXd^+2kqbouMu#MC<HbxTnW2lca;=PeTN zT767RE9Z!2F=?zV+Ar(+i&AWN_uv5QrP8cy>)_@*i2;AofZn?&{H>E8L@sw3wI#<^ z+@K>m>SgUBb#JBX|1#K269@9Y@PTd&|2?u2Y8>bBfQJ3Pz3WUK!}{CoX^>Usb0Lq0 zUvSG&j@)Ot$`4R45RlFis%ffZYuQ01+C<y%g^^rwv>RimKve)l3i5EkokJ>`9ib$L zsdhSqW|sjG;a{DCD&@)xfPIz3X8&U&=k9}VFI2UBe<x6Dfg?D1trKL;?^qyAS%8?8 z{^vB@acFl^+HFRV16^|2!;TtX{ytD)Nz)}qS&tq^!}&wZIEkqxKnR2@r+bE~x{^1p z@+ig|19Sv!bB@#h>Q!ZY{UM5@WC|@Fs=kb&h8>qeIv%sIp?*Q}3np|XPrx3={zCwB z-DMbh<HI?L$7goTO>if4LDvX20Cc1W`(_ZbVZS;UbA-i95QS%>I~hpMmD4lD-S0&Z zlcoKGE)v9@ld8|^uioIppk}6(t~a(6=)s+l0hDZ4h&xs|>Vz7O%Ia$8r2Qt%TVd2I zPNYeqBg@Iw@f>)Pntd$7p0^}6-O`jOdVi<G#^h{A@0Sbv4+q^`e`Y1AT*uQ`|Mlx* z&Q7tDYR9r8r1`k6P1O#~!MTJ3D6%1s^%JxZhf1XGFya6YRDnxS(21eUDl7g6|GU$K zCXJr@q5vOL>C=SLG}#K@UeDKB<cPH2SHpGgTfSXdDz!=v-`df|#J@zgtAt2psu(Jy zKP|D42c?J_0)nVmE<#lnAQ@{Q+uJZnn24j6d9e{no-@eiR8x`nMnukqQh#$5J$`Dk z)fv*5DrShT>UCRN{hd1sKGib?u8P;w)kuBPF?aCCw(NLA$Oz#c9E~nAp@YYWoy%Ni zr@Pj{?&Aj?*-(U7y`sWI(#r;3>BdQT;J-8<GUGFl__Vi+UMS!>qRO|6<g<-z3}Yyg z7|QKz$Qy_5q%ip86r>+~*C`X=QI2D&9savq=93J=#FW5KMZJ(~H!KOaNj+v9Aws9F z7{{na#zd|Z4cmXYps8iYZP*njjBKcKk-7yoTHHET;$)ud8`zhzv{!F(lhhEZa{}U! zz(77S?JLnH=h}VF^>HXeOS<dX0?hk@n&Z2L?;iVfDMN3_NEClg%-|x1Twd~SnDzFz zJbSJIhf43MWZ&`w3d<9zN@xwWmYEPHOzc!c2p5nLIaX2^5OeLW^O0hK-0bdgv8ak# z&Cu+3x>{FjiPL{ELc%hzI*F_H!|E!7UO~|Cn5l(q@R!z&qu(BVXFK+`_$E(M#O1?X zgCZm|c5y%g)c>PGE8PR!6y;YmbqjbN=2^ZlMb!D;k>$HC2JP{}_-E(>S23{^5}wX? zk^gK#tyeC!<7xR8u3>>du#c75MEuos))4Xm)`iz{dI3-2<jNma4@pyST-^`DM(6Jh zQQ%bn(T;-d{ZD2#*$a4ZZZ!CU#QlMC4Y}lbmWJ(~f5QWe`9`DxIK)^=nnY+17<ptI zx=HiQfzYeG*!Z~yKSZ@u5dt;#mxDY8M{Ym=e1x6+Qrq(b&~8E1ncbJ1a2)NW8RzsU zq8S?P@{yN(2`S}i_eKyC5#G8h7`!*)g`qwwBJKlJp>^PX7#I*7gvEi4*!g=3K>OZ| zyCyhtj4jXS8*NQz3dGvL(jcFlR1nFHq-!TY<sP~L&74mup!G14o>h-1cIiARWvFJL zwOSYpOf2W*>gW)4`K`Oc45eF9j`InX=DZsV9c8R!{cJB{v;+q)>46hJY1VBe@=+#$ zCB^N=*AcF&pN7m0>DT{ze>uzEw=aIrO%=XE*J_K08p1=SK3Rf7XD)O+3DWr7Rc<Lj z>|FHD6<G03Ezec6yc`tIz9!Ljdo%x=d+qgMEaf-N?V6g+Lz)K!a1Q2Ku|i8=ygIyZ z9vjJ!ocf(}8qR<Fe2<D<&4F}o-RMT;IDS2$nTxv;Z&uFCR9Kp>_j&9goL12oRnzz+ zEaXN{vd!IR|0Ye)9NDlJBkqjzk=iqnjYP&zYyu=1R`h`#LKtTtn}`rK=E3;`7+)#f z1?~kBe7%|?-uztdIH_-}(P4Ey`z;LPX5-~fw#?ZcYfFh;*NI`h*JY%_yq}nzF2P}- z>pX`6XJ7eqv}&e<YR={(tv8c`MR`eTDGj-EF+00swB{3UET2v>a58jSDhsmVDqdQS z`&a_hu{%HaI_g|i(2L>2oZIr&$5L{PY!G#L8C`-Ta}#$E>=*DbwqPk4XNc14SnA{$ z8@4HxTZY}!nSq7bRLTC_L!IXje08ocY7(o(#I}~0$qf=$sqzaH<)w!Y=qPHX^JRYb zv_M(8(uoi}=PMX!Snnm!b+;=b;3-p$qlUo3UWuuj;vgq`==n)`WZPel3y$s&aACQ_ zmVZWq)uzOJ`B6png)G!L*EKK9_K6eM*$x>-Tp(X!uE(FcuueGz=Ht@FT)6USxHrii zMVEpY$#)k{=YV9R?bKf+?!58|{D=ugXF^Hl$LMj%cr}hav`Lwf6i_{|2@*AN)GQhY z?N=!06G(;L@tATTQo$Iw+)8z=^Fv|0B|i-51{S_gj;y}`Dz-^aiCdXwGxLF?rs-23 z0|TG~V<=sRbU<hAyTV9G280*9>IT{Zs^Jh07)NW~eJ!M<1nhA^r&e%}HT=H`FJK@q zvbA(yru$8E`G@N$nPr;xxv-<5hho9rU$nZ8jHMi4gImrCf);pO@u?vlw)VbAy7gUl zG_s|Ir1u0IcvuOZI7)Z-0pKJ3uO&-ZCOQ4j4-yt$eT@V>v30;02~jf<sLn$a4Kf>| zoX8h-s(*1gU`kB?e2c@Y-W~W4Oa9yfqc_;-$>SBG-hRG}C@zUfb<Xw7tXN?vwvNI$ zs$%4C0F$vq{SjC*=JMIGc(;KM*AVLG2j-x5m!p0LzsXrdaeD6q&2T{>K4B~40)hA^ z56)ICeR&uv$k6#)$;zvWij!*@gmjDr9JyZD%IP_R5D`ONt+N+_9XVubDXXsTs#X!@ z=~dwWAuvR;S^c#9qs&i%M@)vkmM?lSOQn?>4i$ti`1a}Q7#ba|)oN<bPR|GmI(~dl z@|6C;`{xQh5ATGpF8bA9J3O*)MQwDfzP`BU=yXF3SLUg1BgKQ$gkj%?HI=5W_6cse zLq{U6(n%y06+M$PNY%Z$pD6<QrgK5h$oh^;$drg#^7^mvBMD2jnh4m+Qx`g1<%x|! z$c8i@8qSQND6o)~VXS&|0djZh5kmOn$~jgH#hHgxzmJrnv4&7RKv30Lzu;#TGbMQO z+T|1S#+oDcD?X0{3I-O!!`3G>8xMwWt=j&cUS`vNw7oTFrx(POLfVPuQ5zLe+)baW zsp{}J;7~12GzhZ+tWh&zMv|E`_<btC+C5_Mp=LMHI&QrXho{T*+C?V14G`U~Vqbsk zz8?7tk;=ZlhZwlBJ_kt%uaf9U?&L0T+66Z8ova^ct%3*KYuHDBPQG>uPNGw_tmsoR z6}w)hqfvO2_~K=W<${CF+y04-%?!Wum$5p=XK;gI+ia(ux5eo2+*s<MS>jjB#=H(@ zIDZy=owbn=veNorERcoB+T#qQmB-5o6J&KKub;pD@H<_9w~qdb9`AQz3~;v&=RCuk z-tf>|lb=!IZi8!Hq>NJh`%&&kf=@|_+)Mwx4ttHmJLFttA~x0^kL2SeF1F$npRH1Q ze<DITUH1`!hAcYa(2jlYp{awEJF4SbdWB||w`-@`+l+S=pR4Tm(&_h=xIHC5vgcv> z)Yi)bPg7P8pB%Vgc*9lhzg)L|wt0CT7BhCTsz;_cQG*{$<?9l#<W44E4tl)X83Oxo zzFAHvW>}{CF?3b^3&!kZ#pwe`Iv<v#9xc3^B&U1Pm+1Bl69Q|jO-@qyopM&KNH?pP zugGv4*&NBN;&D$zDqSvLsRA{dEJd7nM5hfV^M_`7a|)1!jsfc+9Yj^}jpM5M|Ieai zCZ9T!EjpQd2&j!f?|_`^)-!N65h2+;0JdVB5G0m!LZH&pIbA)+OomKf2#n^f1nM#A z#L7Y5^a^bZn+T+mASN-QXnUP6#;zo_U-(~Gvtb*S`jUgRCNGWJtS-~xzsPTBId?LK zupShgnNK;0v9tPm2U1U4RIpSaQDTO9AOcg4qUZ22*f8~~a#gK#6CAL^cad5A6cD^+ zCo9t6f`m|;A&p`586`Lb)P!X@7`qOG0t|Y^+zL_8Z#BIUxiz2tcRQ(we)~PbrjeEH zta6;yRDHJcg_X09!*FPOEPiQj*Nlp!$#;c4ac_^-ooId6_wI!Dq14NUsrzPkjlRD0 zvifjU#WahgiJDjEv=}{Qn+fDH$e0i-X>9{T&BBrA&Jj&*iQ~cRun5bnQPyKI)Xr7w z;(nCWRYd&MFX5Yi^uzV9Lf@P;#thFKu$vV$&*l2AxsGjeGwH9-V40fwbLuU7d&$gA zew}CLK}g612yL!|a{&gzfi<9B8W$i@Ll;mxabn{QsNEC7`;Tf_?z;PYx1(eF*zh^M z3-_O9veBt`o){HbI;OwL=jF32ihu0I5Wm54mMb4q$DjV>Ykzzrf4>1!w~_~G7h<p^ z_|_I^*%x?<F;FrO!{L+=BEUla^A23m&9X&!Nak-N^s;T41+^SvDaGuqx!3x?_LM5u zP+}HWOGP(!_GBECh1l~B1uXS0j=TZ}0QDLOVG>*UuD-NjRZn?T;_-mO6?CMr-|fK@ z@5z_7FJGO|DwP&3a3Mb(moz$aQRnS2x$g5IU$m}uRa0r-`@P5B+_c>9*fLniSU>n+ zR_<T0a{-*duw-)vAla_&5M2-g7bAHi@YZ$WYIK~5&*h$xS4J`Qdp$qBu06(gYg<LS z+F>|zM8@grN%>s%?}R?K1aH*-cjcVE7e}D@ooj@EW500zy655l8&U$rXbI)K>-#pg z<mgCh7ZJjN;Df|fKI&bm*zS|!#@D~-6Wg!r?V?6X5&9Ba$#()vgfHn4>eO_eul@=1 z33%=e(@N<5pkYQ*8c2~ec-0Y<Q8eTP(d{4-a(owBf9N?IhOBkhl%4#Egh<&w%=~{O zU3olIkJr94W8V|mw-DJw*||~(mC6!AB}^n`r!b*>DGH$oH!8Ab4<VF9xMT?-2@_Em z3ekJ~-hX_eKH28nbIx;~<vtq=Zg^{f71!<{5h^ZR4b#>_C5sI=VkJ2laSJv`k)5d0 zLqtv^UI_&ksQi=zF`#X&xfcUW4N)wCpOW%pCNKvPY!f2k>Qq3(P5>Oda(uf&?PA~! z&@_*Dt(6;6jFr7zpixU2Qk*PbX$sJRU*yeg@QmW-P3FU{u?;WqUzHL^OJHR;*Z_;a z*>bwKC}gRB=(MOs^h6Qzikk?<DWSSi_b15YIWX7Cj#ZTzLInq*_WU(HQtHzqM<}gD zMs#FmLK;I6A!L7f-C^JcJ(5K0M6yP&^9P#%a3&~&dKZ@<*h*2u?c2*sPTx-Jz#tOH z1m~=*MR1Sa7CF%4%TUHt0X+^0#6FXrlF2VdLOU7}@<RmCTiO~u{%>p0U~ADi+=${f z$BGnv@%P|9L65mxtH_VM4@p|M)T*VxD>oGyQ*`TurEsB9zVQ%w`Q=HMmiA8L`XNnx zpMmf|L9|)n?*#jz2;|xC+e`M+TGD++s+W(P)EPNWhc7j4BGlY2R;#UV2>Uk4$%miP zAi{->aG>R<%k#UB1vXSJoAkJ+1g(zG6nG1#VC)Kp;j=A~vBk|2Uc+n=n~Eb9ug*0F zpY{^Ax#&c<_x>ZL>0Z;K+PjoPbtch*SmO#pE6IA?O-J=^L1@A1XdoM!wSm+M5%DxX zMtU-j^B&YUf=p>hjv~?AOBmHZ-Pa2!{ZwSk`<^Q2z@7S7x;j;cX>9)*@6Y?ZPiwwC z5Q_i9{fI3{TJw@++9WOS2IhN}2Q81h!iKs$_-eq31}eEA>&1*%<0nF0Ls;$MUpqYS z*nIuVXomk?VvgLoWG61S>3X8~N$PT6*w@Nf;Vb@Z$3z~!E?+3_-r?Ni9wz%m#ipMu zIv^FimZ=YTN*E{u7U1<p4!qKAh=kaZXm)IR{}5`U1lloBpmC{k-@o<woG2HU^A7cm zb@wfwUVX=@@#Avt-X<qgj)p&(?N@zIQ!fANNT<Wppik}s&Sg#LMs~aj2RhD$DT|S? z<F!lif<I2Oo4T5~(T!eX#-Dxo&#Nz|mHydc2mvCZ9z=<GyPkU`@YR}H?rh*_*6`Wc zv>~*XWx9v3{wD!wP_%RBDaGbzLPgoI4KuK_7uns@f~arjYdslAu)KAQh(G4mJCqSO z0em1ID^)s_Q9v8YlRJYAOI4{DU2ne*&6Ar5idJTVcG9pZ5wD@8NWs5go0rFb5Y>BO zbNz1-iGwI@Zccpapgr7;OnIPMU1sl?5TH$6JHi9S7HZt8{|dM#?_)TjBySnIMEVin z+>2n+3M%uEVF0m}On9O=>Oyx=3>At5M;fsAQa)MCjElQKv;2yL_|X;gAT$=1{0}81 zO10aan4ZjbkV>REL14O{U0?*f@A!F$1R~Vo?EQK_NQhumeSHlJC8dhGlr2!q$bJB! zr4N>jH3T0G5iQ>?p&~k@NZyp6GIrWo0_`raAM<4**l)+9J2T^_k|q&y@L{Avmk&`? z-d8}dHSpX8T#!JYGd4T6?=tI`8pBrZhW|~aQ|r4OrzHfBiw9XIUS~HMF!$VCDc_H$ z@>u2>xQlL^2}KU9?3@1HC771G(wpD7g-~xGg6Ho3=<M`o-jW-#_C8g*v_33XR@$&< zBF)ausW;(YN=j$9T$x;%r?=6mF;Uh%Yxfg}7cQs-wU4)B&P0?`eWWwaKVW3gzm-#} z-;DX9a32F5b%a2u9VOv$a133908;|0p+~vwNhyYwY%GjAw<78X&9+w8Y?e9(b)xob zSnRVadQ`vZp?rGXE@H^W>>85}y-}=TG`FUs?THMzjQ4L}IKJoTIW(>@+2wj*ASK}( zVVx-ksPhO~;M^G6U@Xdl^U0X*rsy9)98X1GOJ*cic;9c6rQFhoIFm`2uQN+}$hz@6 zdU7)SoZ0M)E^uN6@K`bZGHK)N+ZA=#d-UW_?)x2-&Lc0R{w;4*|64PfGH47-_)L`$ zmWryW6S6jG<GAVZvlqXnThv|sNpCkk+l^d?jOQcBy2lkt{NRj?DiucA4~WQR9O`E$ z1O8hSo%?y1A9cP+xqN0MQkhVD)zW%DHWF<zZv_2#>Uk7s)Odo(lcrCYr~=n6>3zaj z0?zzp*+AB3XRY2kvHO^a+<#zRJ|pr5p+PG1PdykZoGAK`fAlm8yb#4X+402j#!<7= zqr{(Yi)0nQS9oUF#J#*U?!B`q^2J3nzud<k^Cf~_I4PRyQmQ(`>3B6A;#j`=&o%te z--$+_r~O+0EZM_JqK18Wz=at}hlo=Gq(fdF?8XY3kdX6zQsO;Fkl|!_iP(d$Y!Vx0 zJzzWi@EdY;yHx-CA)d&uUcZ04{6v0e&(9euED~TKkrvvubCNLZ3d8FvH#^S%P(>8; zSKWui9U`b#Xs}>6YEEqbnKoxD2QxC6687_d^~ODv%}rFVer-ufp##Tz>K{aq^VuUG zVFax7>fu+Wjo|#eS3<q6j)FP0INI31hzQDqJ*yD#JN9#8GcWQ$NBN<Yu^^if<6}pU zlPQ^&4D*DFsL`yBV@>QN{AM8odB2@RwY&ss4uA<O6UbWOPMw<a<WxExRclDg9)^t# zB;?yBNX28Jy*N4UM$30r#LlvoAoli85bB!1etiif<T{iy@D(9ss8Jiy<E6)`yNisK z`&_u&i5(H4fq;KMx_70^LqMH6c{S$X#KVi7AInysUFeNr=1p5!O1${G<+hhhL*-~j zk)yTeH6d3G)!OgUL&GW@^2gu!icm6}I}9(W)jhYccMWuRn3jC+{`7rXFcGNxT$FfK z>NiAW|5Y}Wai{iGa`r179;ci=qSVowv1{WD80U2)j-aB&FRn3ZGl>$%lGQmpO>;-@ zJKH7QKM`(Cx|p^m_NgcCSJ8X7lT32nrYXDlq?TNb%~n}ukKb?8;F;L@v2LWUZsh5C zr=>qgXlT6XxiCtx?g4b1jSU~AgT|ZUB22Kioya;DP3A#?ESq^?$MJ0cpxf%h-!7fa zvHofOp&~9k6_Iix993-Np;MuqtB?BDtHbnp=>Ag<;6{LWJ>(!|^}8<*dTJY7Dm~a2 zf=^j43S3PW$Q#iyPq^~P;*{Up)ux|{9KMTl)z_G3i_Lx&&?RdWo*Mr=-c}V#a8U)G zb0R<1?F7yyr@?F*ES7lCa3U%xiaLi^Wfb-p49EKhT@AiyD(JtawKHYXgeD@9TeM0@ z?EGPN1xx*MCvW89O8-p%_pEge%fB*2s%7LB0S9n;j6@xQvAq`=y?15}v7amdW=f#l zV8t(U!jJuE<S_)7Q9{R8NaRy{+6L~F?c=j7l_wdce|8RQXhg3p^15Qh%C$^p27$x= z-}3B|$f~Oc_qK}iI)*ltB^Gt^G8^Y5Vj0(h2jD+?wx>)CGjIyqq$;ldLPnPe6|?EO zU{;7Fk<|G(zh3w6F?=CK{g2)KU$(wTzx)~fGDd>>av7o>Ap*mQZFV$?{C;@p)dd)0 zZy~UG!c5pLdrF82dw2s$W6R*ete?-_gi?)rqgHYE4v<vJQb)hD;&nQn+)C*701Ftv zcTVt2iYBTHXm6i-Jw5Kykv|wfAdVPJhq0hTkMlO!R?8R>>{XYx*xBtn-w`W*^c*Az zUL_1~E-?^7u7*u-)(sj`7zP;#_OMvSeE7(T*BkA)MWkgiP%nkZ3!sfF1RCwz15V)i zhR+czUg^Yu^SiYpoB_T+UlgS{fkByFw|uQC1ILG_=WWgtv~O3FC}YYOq#v*$p_U`I z>t{|jK?j6J9?W|Y+huhVcjQ@DA#u+Vc?2<QzhpKNp5xJ?f++4o6utknT!So<W`*s_ zF0xq-GT(l9?802lR$YNt@%=HYiNPIevtS7UUpj<TC@>@TTeBqcnmn>zzy2Z&p`Aq( z-+vctYrpxb^sM@?ZzWWD_Dm%mq)5lIpjII7r^5TWCnr~>X@5^xlXiZib+_MNY33)7 z4P|S#Bve-&kRG|>u{PJWTD9dra%`1~=vm58Wevl`Q4;}L5|MW5+jHBWw+U2ZO;il{ zL7O`W+C^n^NJaWQv|e|I&mFrzUzG?so*nTPl^kM!8SAQaq|_`{r_(0qminb%3b88M zWb@hnP-YGzZuMpYE=Gb^WIU02Sr`>tMQE9f_#DWF8p@337ms;t#lFZ<w-vG3Ve^vC z$aZ3E4>N;t%9pDR+L?2+<q?x~$o%Z`ZzxATPW;`ihbl7x<?$DKb^hzX6GsZl>k8Bk zE^p4?r2DL(wQyj^8ISW`)JXdyiQV%=Y)FKE?=GLi4zu;u!*xsJcdH5&E&q(9Zh$0D z6rr-R;_l3Z;U^GjrL25hX(!3A+#eU-h1r6l38LBFx3o%_>Q6TrF-SwbEy4pPnB{WH z->o_K_a$Y|=RVbTXYJqvUq|Oqbv-Pdj%?-g?)R~57AFxaa=YfQ2`2yiV%CAr$n$z` z;q~^UAJM?ySs_t(5-UE;D(yp~XUplS^0rwy5Wp4}-yKG2nB|1+3z(H!UM*me8knzE z$vvYZ5~8ln<SWSWF8aYmni+bI%q;q<es=e3=afN2EXU7y8H=KXzW*rOblp;3e;-=V z!^cRV-hM|QpZwB6q&fu)3u0;kDz)HZAi#k+#@rHqOYnP*Ns~ylI|-GB1gJe>O!`G% z6w)b0M?Rjtb9;MAmV!DY&{hT61fd4G*RD(w($a0jC<BWmnv-@bwjK0J`x8$`hI~Eg z<zxPQFm~$4BjhK1*uSHZTWh)DhY9NJ!;E-a;?SRKh<*0DG9y&^{IRvIQP1sJ_3fGf z2|T8E_?-@boILi(RT3?L37sj|p`+@7$)+;|)J-S9p(i^7wkn_Czd)q54kvPAj*+na zrP82g3O^9mVb*+!I38$W7Niv0-ln5&UbjC8mYws6pG4Lk)VAXqoMpJ_@nBA@{JR&C z_T$47dUF4};17FAUWE1ejX-ZE960&e)AmS(Qr$UZnCH#_tR5eEQBNBNv;!8aQc%j% zmcHsD_S3@jxT++gF8(RSJF^M<FaKUe=!N0F7YDu+FrEHgbZf79igmbG|2h2ha<j1L z1RWb8O)XlranOAC3F};gJoKToZ@Gu6PkDa$W(A@*h0wb0AsNAflra$|tXcu}wx^7t zDJi=WT!mhZudQjlZ~iN+WA~H#<5>WgewWGLjI!n6LwxBr-aBvR@4J%yjS&r3rig~D zv@=9{9dGtH@ae47C-TSVJlPxH3(g)oS})-K$lL64<AXuNpIi0s7^ttru#er$cm@|` zL6?Zy{<!hHBFp4Y(2@A78(Lejy(c#|w4x+s+a9;G&)f|VX?>M^&-p4(k|a;WNF>L~ zjgwn%Cn}%J8syts`#d_VIWj{>W_iwt=aLA1JK!~Sl>)eferT8nrOH;sf_<lNe^cuj z{}<H(MRVpHp(WaEO!&+$>?Z?>I%!E66Q#p?%2m0sIZ^bdF~M)&g_k{7D8`hx|9*#u z8EySGXf)kg-mv{PmwJuPesg76B;w)qO`qt-;Tq7V<`WIKF6H|^uovccu{`g;A)Ku7 zs)xxx`L3s(V(p*SwTrgdj7Mxrk^1{|*pcpVJ&Mgm88dQeJRa3OLCE1+&Ik*qY)S7$ z!|xEOt1Sfk`5<Pz%_+<_JB`<a&*N5H=d-Dx>YP9k4^GaI=@Sebo+10fYnvs$SBxCG zf_y#8jDF~DPgV9Vjt@TabA9R0<fvAmUH8QO@G_$>Ro(vVaY<e0bkXrW1S*hh*!eJC zf@5Y?!Xc#Ss=y}ZElF56{mMvo==v&w#Qosw<-Y&+?3b>oO@+kK(L~DC|0MJ&4Vngt zSkg+TD<g1=8LeLFUNq~97iueU2IZwsOV{XKHk>n&3fQ;E!|5AHCmTCne29|(@_~1` zM|)<-l=!pctV6%IF;|J6_XPX0yq$DpU1=UHlx>s`dk;IP;7@G{Fn`x(fcM})xeSz0 zs5RrSaI4JAA!tvfO#VkCOPOU!pC+9^y#6~t#1xGnH|-Bq2QEdDF#SGwNF!Dp$|P<V zteYlk{>_|^j(kd63&A1v8J8DD%|Bo6Im5h!abk~4zh}f{lkmio5|boq=Zdr#>Y`vM zhBjW?XlKNe*1=zII{=7cll&}o#*t#PA`5oZ_xs%6&{O{|RI%byPEggcN@z|^nB{0H zC4I$NEe{Z=l>1MQo`>%(efaa}&>@#hdgEt%TA%UU$$z%d{75c?Kp6mP6WB)3Q=h-z z$BFT=p*gSBkr2nq|ExB4{f-1sO0X26a!USmt&%;gSl(<wsmkjiP*T1dzGn&D4`m+- znd;yrs>3$PPmE1WZF%I+cj;+fg^EMFokQ|+!NlOyVGHG^La0{pzJUleI%<XWCG~Hg z4%-V=uS=wlxyq1(cju<gY-s^j>@G`Dx<&L0ZX}<VLF;z}x!Me~uO2NbD%wrWhzqQ) ztbELP%xdxIp74XKt3FKH^8<1lrjsw?sRvu5tGL<;MY@t=d0n%!u~GCEEK34^9SQc{ zDs!9&^$rQI5eMS=2Gf_9CzW>JtXGJras9DhipM<_TiR%yW%+8ozaKqgz2TJ{8hkjz zqeix=Aa7l?pF5&msBq7b@3)wX=XRWuuCZX*yQ^&I!!dp|P?&OAj}7ZI%>QGGWQ0ml zT9bz(#Zf+ACiiQ3k81mL3&pv{2F}qN4%*+Mv#@#HF;V}^M;T5#J1)CVJc+VWxI@?R zy0`UthCj26%Yi{xdHV@%xFH1J)D*>RZFg-E5s~2;$B3&6LmFZ`oj?6jC2bs%<lngc zs=%giYF{HqgU-U*e5B5DM})G-vEwGWZ|5Xaw0h=w5MFf+P3UkQv$MRc4-PZsnO zqoiad8;%Df>>aEmc%Ka&H->D7-0S6<*Wku8`CW?zYhhn!L=6t0zdIubf<IZ)U4G;t z`R}^&xk`cmmc<&wj46GEgXeD7RG*1#9js!+=3K8gO<j4&hNUMU86>nI)L$7Lgt};1 zGbZ^Ba)PggvvWY_uSOQ^cneZ{m}2ui|BAXnPM*70^2Y<ZgBC+tZ?NmRj>`&tl-0Pf zikyy%Wxwb{WIsAB78JcYx2`;CP3;k%?$&T`t3IBZ2q3^#^Cl8<yq6L4lAdEE`3daP z&>A`@Hh@`2Qwz!^-*Dp2nc$_KKn+9K4}~$IYMgX1M0;gWn_#sqt<@Ap)jlpl<BU(C z9@<U-O7Q|8P&QNbELiU>pbLiDcQSd$Y#(U=UZMl03(igBfugMv!yIoxg64I!m1Uc< z)@L~5#|2M=u@X`A_w}FW5y1la?We=zZCE)ymPkzq^fu-h0}e)n1WPC!hnLrLEh(+K z=kVI=Rg8F53ph4tJdIQ3WdR^h42JJeB<|oYL)c8~;GTropOm|B9lp!}@Sp>aCduyv zsz%AnIu&5}YisS3OR9lSW4T{e7^?Ot#TWz$PHA%lYAGi-(eHAgr*p~>JZ=2Fsu0JX z>I`E-MMd#`RHyQ>e>c@fLPi43t<r!L?K>=l5D%X_h#~<sdIZb0Mu{^4n{xhN?Uxj_ zg`8$UOJ)PWqLoOoxoM(~cAVOyh&I~J`5t0jVngi1z+1uMC;@X<KwA=;+J)u{(&q~1 zJmrP{+p;cuYO*>qd?qQdG*7ios$ff*5tr|#$NxL=rHFl#Tj=?GCV~5->f5RlF8N9- zX(}0=Pps8{NxW{VzuvXywiwH`;3xKqgZZvHVj@Lj;M>sQ)0;bES9CwYzA~cEv)`RW zy(C6C(D0WI48vG)CixRq{??bfxLjqW=536cwFYS(sb>+{zt&$JxUKJ79k(f+cpGE( z{J#gu7h9MwuqJW+H^}og|H;XbyC=^JIY+%isArrh#qWsf4dTiKO!|`ONY?|#(VSaR zp$F_5b{)OkE{Gl_zIQE1XTS6XYZ?lv8Oqxoq{G<Hz1u{LuGP%q^YEGEAD2obzxPdF z_E=sc2qx|4?0{bJy$7(zwJ1p2gqd)iWnnPoOC{ySWtH7x&LRqPv%b39*<w<#7yVet zrKd(364o&%{UA+P!s+pMaAss~NaQ}VOWQ+4JjnT4eo7ikm-Uq;al;u>jFR14$!b`5 z_)Tn&&^f*pg5|o+!B?d2&Gq@65sX7|>jMKHUoea^VhL}M&;xX6bnh}J1t#%GqI!hG z&MTFb3Z1eUIaTX|0V8{0-j3nk6=|cT)oh!7_v}AP#tW$e<&tbV#-xsCQo2=N16V3s zYEIq|T+U=;OA|z>mle=JF?Q^D76VqvcMT~Dk3*=Z=v=td5}1K0_*UsUGODX^B>(BF zCpKe7FMb82G2B~!VdEER-|NI2Z+y5}>zk?rH{16&*D^jnXJ>xsP~$6wRwp2+vw1cW z;_J&BtWFU{VVw5M+XFq?Fh-OElm0$m$sZZdNOsc%=TR*;Z7t({ey6{5Y!Zf5E9#=) z+Y%TKJ+F%@D|ZzubnRgziy6Hmsly@L?t<htYUPCttNI;KSte6ND-Uyzi7##o^@jJu z<wZJq^AbP0(HH`-)f=S3iPPbKm{o;I>p4Vk)sUWH9xy8&Y)5~_XF+x6K37-k@D>m% zzyQyL=bKj+y_g_Y?0p9L?WSDVM;)PE*s1@&x(2;r#6P`q1O+alXP`4hp#713CV~21 zc^hZVh^6vfhmb*MK5UA;J$i;nTWT(ZWdYvh|4#H%DmS8B7PW$%0*=6tZJde3%?kHw zmd2gr#GdZ;H2Hf9U@ezSL{EDubNkrTjga5}p)%R`6?i;wA>sK)^ALOI{%WMiQ#>5s zOf`YRe)#<eLW8k=qKoyJa`}&SU`m#&oq{6|E1oEU3{SbKf4Xo{W8c%XAd%{dIfkMW z5-UoV=DI$sHrC&Gh)Gr{F=T7Uga`doI!zM1?Gcu-lz({A_EhvC*YiH-ulx8sQYqSh z-N~f%kEI^=G2D*QB~3?8jtpU+pu4X4Av{pyW}6gK*2%r8QV)(7*))}KFZW8TQFo`t zBK0p+?tXExA3uE<E%xY~t*TgS+r>vNdA9s#lH|8wh>QwCbo?bF#IJqm%zV{_0|)-u zzMf-hjQ!Bvx%-boA4AR4W-YF?dA5B`3}UHnQBimyUV}xL?f+x<)HZw3EAa~RO3_#I zPmZQvy10XT;Hgmw=g?o4l!aR$CDKB@jR~}31~T)b``9Z9MjH{yt}45^!v+mX(JmSH zYfpKIsHNsDS!$1@dnWb`FdVE?KjZ1em+>F#nq#_pc6`@{Ry<-cm=XiJ-gq(0tG`f& zfjs2aUaW6IP^W4!qt2O-J@sSnEtoc`q_*l?zm^a)-DpRD%jjWrG?_cQ;Ng_!-&CdA z?2@UR?z;LQ<jGlAudp2#(m@i;SC51ONE8TMzj^R5)euL+kI><O`OxQdAJgU*Z44?Z z?$5h6wQ@Ht_nk@N?Q)lIv~N@^#Vd?jTKb7Eq;?#;6okKNu;)M*w{N!L2+a~1^@G!3 zT*<j`ioOII2!;yp@EIUaT)4_+6}&a|aeoBgO@(WfnSOfgpGx2OyNks2rMytIkQYjJ z?&gU}d%UJ}Y?#U8@`H%315_P_=hnZabVke`_0KmxMn)Y%n;}jZ2RF)g?Y3>c0`vx< z)lhLjxr~tYCr3ORG%uRzk7gcuS#dfs{Wiz>0gt*p2^v$r?wn9Hb8RjJzwkS-;6xVc zLVs@gUQYMw!2q+F9{`9);CiIz${;7)hB-PfaN=r7k25M6A!&T<=3R)q7G$XZYU&38 zgXa8b!Hp#wzW*JKpmj$fen0<e45r*up@6O~jZFjw>O{5JvoMaU03FGwArw}HM}UVV zfFDpcB3NkxZ-AAeQ4$`uISZ{?w8xWkyZZSn1fp;PIYw8Mj_i1LJ(LR=S!jt;H_%(4 z#uGjE&Vc(OBhD>`-Yr;}B~++aPy55+wk;%pAZTI(j!`grb79gf0hNY3F=?P!m<97; zoVt{O-+OWcAt__ho(uC|et;AW+tYunXZ5n(W>m4_z2Y)xhl4a~&V*AL*(qTw%Z<!< zj+ilm=Xdxb*wiBLs72bqlnxu(9fas9joY&0Wq>yRudZwCNH}Z0eI=1>XZy^kRPOrU zKmzqGy~5gVvD~s9*nY;mt*X;LXDepgy~^?iDIPTw^LfWGYRpBQs0an-;JxyLQNZ<x z%_K20R8-9DeLU|g2<)qR7;oPLeHlTO*+Hm9tJ%|)cz3=|P5Z+ljR`-EtS*fy@8V)B zlmP)nOz$D|m;AV-%xe#Yp|meQIJ?Z5UXu6mpp)xhOEBiMlOCTd6T<-&v4OnB|47tk zNbBUG$DfM?_xML$<NwRsa{Gu!e<+=fuV2`GG*t>Ak0|S;j*S|h<~6i6vR`r|(>mF{ zw2s6!d0o0ln&g<3wrc${se}#^@KF`Y!20zEOqhl<H(Db8o=|HANhZwB9B142J^SPm zcvN3JmnQR8fc|;CZBL_IdU4SHN-1gpdx7<tg4Bnx6GFYQzD6bU4FH`%hlVQ71|E+2 zx@gWHHdg%c=os|A(Y}?{Zl_<LUezRitaD&WdGz$t)TKiaw^8ovm3G}CGcJi%9;eP< zu6fb){tlh(1D0z78EED23`ME*V>L*ey)YfMIgo)GB87@^lJL-#HAeJb5n_M9z{)E1 zti$H~2zdGv9y&1V3D&PL<NR((E)odlaMZVcm-BHrKdY|A3Cf*vw$?UisMk-je6){p zP7`KsK*PLlXtH3+fRpVb_b(pcz`R3{G|48xy9}coEO@_%=vTH#C#&Dj^CmClG~7k6 zIYhhC={>j8Cdq|{hx&NGn@jraoMmRoY#*_2y&>$?Axh1I#1(ZFd+`ksz{{>G$5C!M zM9Y~J$t@iutWT?(0`!)0@4Of*)*>AuOF8zSVYB49Tgx_pl>iLHc!(mrIe`csA>)tR zb!AcCGjDEe&(-^oc|n?)cW`tNg<}oO3Du6kzaip@deM*B(cFXEaM#8iXpnYga)R_Y z6Pq^JOF2<i!wHM*aRf3%*}(QJ0x(&zEZms@rusSFz(JyBotDyO!X*Rf0id4v@j;4B z`(+edcJGeVzSpN@W@WGtE4tGr2_Yte#pwlrZvlss3(~#rgTYjk(l!wz)AHpwX}gTO z&33jywv&&I3ld^A_);A8_AWMK!jnUJ;gWcmEsc(1oSq+SnZmDn1+m|61J+GZPuU3C z>0^7)p9_~D@7hTk#`&HKhg;y<mcY!6=e>nB`9)8iiUA2k)X(9Iii-yl26mGHbDe@1 z!m&os{I`qx$}X}|G9OsEYFu!97||t&^*k829BsO<^ONjw{Jq(k)@FqhkM<ugIeUxy zGpjP^LcUYbi1sbSPvnjr8&&3%J}Y`R+?L`L2Z@*93QPBhCFlN&!W*+*8OO};e6wK} zE|2soJ?r-~Z**3;GQQ5_o#VxXfN$<kMm=_q9;+MCs(q!|SZkFa=GWELeM|}h0uQ*G z)}JxPJ{(IOWB5v<4wI0O?~8=mA25Rzg9+}YA;CUuaFL<<gIl0<S@pq3&3hhMH@uX2 zFHv)ep=qXT4G%7rqIqWd`3fc7G<ort#ZFExD8w-|-i<iK;n*X(3tNsP(WW7bUW|?k z+R_>>ij#mS#@P%`3%5VBUU53=E)uXNB{<xXm1mJSL5(;|J{%j;$R0a7W^W|hbMJh* zHL>D(?xl5}?oT9~XuMxs)?f#knhAXA$B0*Z;)}b>EuccSHf6#UZeQ)oHvmVK0*>3J zRO{%&{c%b=P%%wtR8=#FTZn!DrE1R!(zw9uv!P}`vyPpovyS#c1s76LPxy+RBPr-F zs3**IoMQgj^4edy-RENX@smn?J9OLf57}g!f4Z46rE8;q)2v5;SIY~`p|~*(jX@1? zOsqpjEfD;p<UgkAy{!^|2{?FhJZ1o639)byK}_g9vVNwQot_-v-kN$s@T#>4qCU4G z`O1I#iNAQ$y()fT>ufng=gcdIJ|7R{<6c@6YrOt<GIe9TVN{~=dQAd#_d$1Vi#uzd zowD*YBN>Muou({sVM7ujOq61q<#7S*xP2QJGH(;%1_l;MT{qs`sgyOjAac6=?yzcI zI<Ow;3fi6r7u~Y1$l05wH1?oqFxO!WusP2nHU|6zx1Kus+YDOkSiHovUR-D*Bhk+? zd*}8W*F8osU0Y<mYq_YI@;C<*DA_N&jgCQtHE4I)Ix7cZ9%e#+i~AFy5yluotVICO zG%ir}98z2M!?tS<QE2diJ*9|<^M5UyAwUvXH+u&kgD@Q))Tr2qAQ(d=zc0wznu6=s zNOj5Bu;Ch<JlW^~E(<J3uWl2fBexZDV%CfA`fjn}BZ8Rps*yV4_@Us&Zdj!MAZaeP z+*qk8`6}#lW^p1EQ8A%}m)raFHpIn>Bc7+6?EcALC1~faZv-KVUiN(0Q{FW5pKa=7 zOWxnAbY#C(7_)ULV@dn(NucHLV^a(Wf?odS+4*wnLP5QS^xJS8EXL5<-x;67S*dT? zD8?@Q+qe40cR>&)IQ4c-YbaqTf!X8(CHg0VbDv$z-Zc?(#PPHpNj=ukfF1Q-L(+Qe zpPXUVmls<t3_GJ(wZ%1F9~$|=;&|tW2k|4UwadDy2i6IOUS#Hu=IqF-knFD6-rm`= z_V%)-y%lRQcC8s1tukf@eFcL@w~+d+Y^3&Y5E8lynjF4^$Kva_2hzyGqT)Or^;RY{ zDo{5rTs$Yb*iU(8>2maI3AcX2Q?-Es8>vT>mob$d+KKMHQEq-qM~Qf{J~En9O(Ob1 zV2YxA^#4vyH)Tjv4{6xM0`vv?m+ie<`aO=E98AuT=Hbd?3BOrm`s?LFUkSL`N$=j3 z;OyXR{G#P?#ghD;pUMQ=UCacz;8Es|!{`Hg>KRTn7bqNNSu2whNSr9ve*<JhU`I3Z zo)FT{iQ8l;qRK!E=$DgizAoJOwZwzC5p--c`rBj0!;pceIULo2a|g_|epbngjGF1y zv|1cp+aqZ)N&Q=o{C}~_WVD_lR5-;kV79w~t2#12T4?;wnz3W(^jbr${F!Ui>z&6R z%@y72HvRMVhUUm!{kufX&t^5!Uq)oyMcUG|&vUThhlw;}E=;WlssG4|_p4AY!@^Mi z_$$G$nhz^Aw_pOuW}!})qO|>rGS&=2js2s3%TXpQWoM2tDGiGB$wl@qx2PFxbw>ri z8C)j-fV{r7u(b5`Q%CUctyS)x$txi>_4-2K>24hY*Js~@l;T<>16ae#lZ17BkR1_` zP?k^*umnio31u3ZWp}gX(_AUDuAts?<~rF;w)tdAV6X-^$4$+67X)Q?GtYYaCG1Dd z9kT)1`xX^9?}j%RM2~C%l%4$g021mOtILB;-j+1jh5p=o#^yUC-T>oq-ZljO!3ZeJ zf^gmv<-zQ5NvrHhf_57Y!SDi1Skv_rNWCxvNc|ir3+Jf6;(On3Gn1)bj1%dwqeq3_ zVQ`?HRZ|m3-Th$DfORzkj?{LE*F(&u;fd3?Y7g@sDHecn9!%QX`5&BuG7WzdE4t<^ zDOIC4k^rJgQDnk9meo3H#VR;4=>^j}u*{w-qLQc<9;b+*dr<QW(f~Z~SteA>8;p@~ zbJp@Ois&M#LbrpS{Ju3!@Y@x0lDY$=e0ThHq@?&$VRok0-yu*VF8P#AOflowNn%A* zCC5daT+&S6$7C*u?bAyu?A?Oddi}ltH#YSn8k&HONXm>mGwwb9iUB@jIj95g!0uxH z!OQiwug4$eQNAFcijeSf7#h}g!c9wgCl<Z`dO(OrGbDci5|+sdFnCrjqn|Qb(s+g9 zw6y1!wuy^bf0!DrFeU4HA@$U6#fTgEC#BN5FSQ)!Eqp8aBk%UwX}__tG1Y?^o&5Ld zekJ_<?-e6se`L$-#JRZq|2+7sxJxU7IN`7=NyNHE;YoLkfxNU>PN>)t@B2F>k!JBB z|Fh12^?9$&_=@RGKiLUA)=3K0lCEOcduV^q$pz@-!aUlb?pe5Wq2`|2PF)=o(wA+z zI^<=$S@84;BqNT28vEl@2BxQQLqGSF16AS3C&dNV1mICd#kW@Z6`d@UdvKsJ<r|hW z>68A7%hUD8)JN__fmZJOl;q_a$2Wt#73BU)rzuV=BnZhC#Q2=V(MdWdNFckBw0DwV z?-({<ctTU>(76Poy+q7^(k`{Xce7AhbGpoB|A1Nv*B3Js9`#v3ZLaBaR1Qw9{_T60 z6R*lyUncqK(_tThZ0|Yy@?r@)e|Nj&-^A?O(m}OK|7LF+{|GG9Xm(6-nqZ8(t2*K^ zUq6&5A!{(I=dpW!+R$N5^+HkC!$2J$6|Vyv1xyRo{A^fh5=0Eqj~mLA2-N=NM>gGa zXTB-Z9tlttUolYz=m%U7`{wftwtO<&ItNN_xTIWaZMYwr6-r{$ewx+E|0FTT#?j~V zMe#qarCeNYZJVOT?GsHqY;Oi9aJ~)|86~Yx&wl&uybun1`_h5q36_+GIeM}KbFB_s z2SiDjqVR8`pO6G9NfqmK?up^&bjlEs$a~N<bx4o>j=1zyfi&f~;-SK1!qv<B+fAz- zlg{c3zed1;>g5^Zw2_gF7Bi6gfL}$`ldU$yi{CzSI0p{32eVsfHJoUjfPL0Rz)cP! z?K1y1)fwm^ZRHH~WU&=6?mpxUEHCXEee*jCoJ8D07FCWWsPFy>hdjpitAKV%_G}XD z6V1I_g(|Mu5*kz?1>EnOmoB<Ix6HN;hxy@HzX@pC{=Y4|)UnWSmoht~h|uJjF2N=} zffStuj32Ns=`sfB&wNWr2()oF!Dw}&pIe|B6G)NtK)Vl_Oc*n6%87OeKFEamcXF?b zq|&w+p}q|G%<61uz`RI2UI$N8DETuK{lfX3SSfD}gJYziCgRwKC`zC+eY}6Xh!uiM zZBWtM>Bfh*d#{&PyzM6+1fO&Pu}ZHJ5mlbc-=|Np8O>HiJKi8<=Iub$Km@jTS%Z#` z1RQf;vrVqB^!!<WIYO?fG_KzIZ(U7;S&T6&`)&m_DU|fA|4psp>{0K`vP(j<9STk7 z-f64-cZcIk;$rEEZ;<i!BWnk?W7k!E9ley-5z>EF{?gtYEWhfWaeJ<S^=0`p_qUya zkav2b?xrcLP!rpb$xGip2Coha3%{hg3UBTC^*PI#vf+ji;g>&MkqR>&^rtSM@j!<w zxCTgS%h%Dk$h0S;x`)~~=;=H+Xit1Y3VZcDB=|)V8l5t;cJs~1@VU#)?v*K<@=I7Q zcS-&@>G51vLcP4}$np!N?*aBqKds+o{D@|>ej<jJ{AQ$fLc-DM2uL+<KYisSrRsR$ zDj2oFE@J|zFSPLw?v_OnO`lbk^-RKc$jQ}h?tWBcW8kk~#4bPZ=JkoYPi{9Z@Rbb+ zcV1`u@9E~FSAoa=fx(id0-8gCPJR#&7hPfOdG{jXSiln;zjz3V8x|a+CuO|0X51N4 zTt9o(IFStw+E+`o^UBNMSRF#p79rp@xv)%pK{D7$R7v2Cf@bFClODzUv2hva%%^iA zeR`u;<eFPpxN59E8-*NKth(Cv<*2QS>yHMh)kp7QiqxLP=ciA<dTY`>R9XFaulL;} zVfeBdzWm$q>F?@YST`@~3`5W&kctKvv4T=WZyZqGV6C?NOD=&=oS*KwVW0TGU^K&A zf81F-u=WQ7b#*p7r|;8~x7t0j4Nb&%nl?+ar%HIFqE|xclo_qwcFT3<N3E!b5JDDj zY!gZyuJ}MXh6e(j*!%_3u-;|0rDJ{Z8{L7;xm3?@BQx^M47T@m_n>O<0Mn0AI&>U~ z31gseBtt5s@mF^p9<=-Whv*}IyP-7gNwh=v9_Mr%=VZf0_nFN3a$yfKLx2yzs`_Q0 z?1648=BJC!^rl}v$UaO@z7Xp57{o$wfBsIw-`<JcPo01}(T}1}3&2zRPjdd!xBCC_ zEfX75xL}Z$1?prZ7cjI8w&wmNML~=RAsPaY+Qb;}(^b&kE^rva_ppHo?nCO!n-U05 zRsih+Bx~Ia^#D779wKn1i(7%Yb^qseWz-x772cenpF~=1{@It%Xb;(6rK4W8=30Xg zNx-hHS>F+;`4tv$k&4gl;(Wn7bZ)$V(myoTh{9l<Qy+D;7r0$SKl@<F7x4376-k<L zduH+8ZS-3b{T^7COQ+f*5i*+^JdfKiZIdoP1GctSBY;%MtryN1Xz4S6`f*Ef`xcdA zF?*Oe-Ef-n?5`lt0b=EgmuF>JCZ)|(Yj57lOt1M+>~*VXTJ?3I`oAcXveoF(zFlco zp7F^fcE1qI%PjX8-NEvEX(-}?a&B70M*G$;(sfJggSg1CEPAY92jU2LoBLfbM$$t@ zV-f1XgOo0}kJ@#z{>=^c{MN_M%a}%{r>3TIX{+j-YDv}b61t|Gs<!WsXHY8sBko16 z5y$kSqiZ}uSvoQd)W0NT*iU#`5-7k|&r|eoGf+R8Ak>h`sIwM|A?kYcIu&Qx$)C-e z-fI#9O!6j_HiQRmwK}iZI?+o%k)F;BW$j$o50y>-Dpae&W=b4RN{t6X3L}2F#Vh#+ zq778}<xNCegAVm(BjOKFQ&ykN{2g_O@2dk({M~!5>}2fJ(o0h+D=QOkl6GQ__3P|D zD#<T!Fyi6ao8QXzUcZoOGLmX^-Dvs9uh|g?PeAwX63D5UlLW!bOM?WeKMAjW_AqvS z`Es-3N5wZy#dxhv<+^_RqWwYE*4L-FAH`jHb!hy;ANjd{q*9tcWcY`J)p6gO&b3nU z3xNtc?U&?4v2qab@G#?*rWBjHH%s4>5Zb^!xVh5Yz(V`8)`M?52LogxnL|UU_a8Hd zK5mTBG1#G(bDv$Q%;y_weKy~w_w9wglFwBMwOjI;yPv1r=5``jGb(F^47Ug`RJ^V} z9nq2Zcli9^?5r<8YU=`K`UvHix48m3$b=U;QMRZEt%#mlpb6X^B~<=nTZpUi^pjEp zotS`9x~V50UWA$Kr+d+X$?V@?ZOJ)a%gF6~n1kV|8q>SWaTgo*-w|jN%*5R7*ajg3 zXIE925)dwo8b~OoOwZyQw&~jszi1JFF%9&v5`9hdH=8${mJ5z`dc10i5jQfRM<spL zb^_7o-eaIhCsU(bc)JQRfVS=isz0g!DH^s3B<n=Kng<Cq0=Wau&5j>(;fxGp^qY|< zKt+=tG0<ZH<`#&R62t$^H5vh9dGu5CZ$Pyqw?uK^Vt{x!a+OeVXv~KTxB}DC`rGHG zIL1)Kk%^wV$f-|hjjIP9$iFgHJgArz|Bn^+77&BclYyG)CVP+--*{X2M&O?1en|pk zTv<Jp1s0bx0jH`+-_08dI(lutyw~A1J|ylKUKR1}0I(QY%@$mF(VU5>TeNR)WVI#d zc%McDuAloRLRjxF$U^Y5=iyb83+%jV7R=zzhc1g9nCt$7K7191b0_{76Yvt}O<ga> zxpZsCNFcYl(I*=l9qwht<v|W5hGg(#(v@a4PWwb<;*M-8@J8?FwW!N*=+`Ts3bpZ8 z@9uy0Su?LR_Hgbf-BQ^xV!pxL_x?A}g8Z}(Q*P~X3CjLBd93cLxR!^oC3v1%-Hc0` z?81=HzkiVW+fX3+heug)S=oIm=ub@n*mYQjf&=yLE=Ld;c`NqoRlR<0_@LEnvXW7y zRQ~NeoPKYrzRaBH@;KEa@h4xjb4JEp#*t3sVKh)FgMcW_h<e{5(P|0Qr*H(9L8$#e z@aGCSn`)(apk^(WpD$j~_nv@^<jgr$Z~Xva1DeR5(OJ=)%(<xxVo#0E13f44)_lk< z_saB2pd~oJv|iguR3G?cgb3akEguJ7f$K6nhnCzr{plSFJO+&i#z4|{Cw+#V3fdKo ztX)`v1fn>>m*m?LA2Aqq<;W4|BPXv(>838LZ<N;V-Q6v3A-jI3(G0=+w0S<BO?L0| zoIb{B=*Yp$sy!(yDZ@sfjIqFq%S~|tVRECCo{3_3b0Cf9$e-En?_JM?Q;MEmMuwfv zJQt!AOEXX-81cPur-61Pbl|qh+U3WuZ8J?+u3P&{o==-tAa0yqsNJ#a9JPv5%E#h9 zC|`Lj9S_GP#^!!Xu#$Iwr^s9)xbQvm^h|D%34z?bO@aJ(9;ppJeHmsECvJplL^qWw z(RB>6PWKC)GJA3MG%v5#Ih?Q;ljwf@*p$6LQGH^$!J{vA#w4*&*x3I?SLtdR<HmoU z9~0qdenV;-byB9oq&XR>*ddsC$OcB9F`~klz&k992TK6R8LAH~BVk&62*0HQj{k?7 zFHnOhw{C!4@?9WE51aJgtnlWsEcj6OzdNv>ho|+y8zMX)t(}&73@Qkq--d54ivf`< z3ij7Jag>zdND*a3=jaIb{f17DSV2tm(f!+tSw?E2x&jF)lJllR>{mW4LC_B?E|h<T z7YRwDSHBJeL@giYs>O?zC@h_pKXJ+!skrz|`+tM4a%XqjL>y9d>vABXU9!;rSv9=h z=O`rwg$$dys-uP)W}^pQoxCG*n4iCuCD(+Gd{MF6e*3SbYiZ>~@|hC|+PJ<ZL!|xr z#0ZwZbHK*dB!pOz)a}y|>h=k^BCU}D$X!>Fif^6iw))@{ev?RB2Rvz5HJqYZQc|2( z`0!-UaN3}i?Rckue^>XBfc>|h^n3jXk*2ym&UUIhcA>HSRq^oaXJ=X~1nE!E>ot^q zV)Cwy)_5Fv#q9h$rrzbx3Bj|*qYe6tqyL1673v-^m9LjDVE(lV#)RKbOdMY5>w9Q; z-8bn_6{jN`I~{Ev8>;9tx>!Fa92gH5?^#9rHqZRTTV_h>hhK$_U(;gFEwM4%h23re z?JkV*A7|Eqt?yX|SV1aZ?&BLe<|;#-EA+jWMRvy-tyy?Rxy7&h_jw3ca+LH@SLI#~ ztu7VTl{AVdR5l4$3MIB0@*c?z<ocZQxZr)kiyzFInoKwtzNHcoy(})Q=RiC{oj*qi z@kJ<OaFA$S`S5ui@ryy?{Dv8s(guWC6BNBh4}tBX1#a_G^r3JdM?#{o({I%Z$M~O& za$Xwwdsh7yH4Dytv0FV{V8vji<Yry^_T~_Pf3Im_NL*)$GP+ze<@?+nA(wjv>5cab z{dV;Ka+7hO?zIE!-0Fh=rj5TXjp6-K9*gc_!3Pf}>6WhQrV6Qu(yGEY>X%8h;Yp(3 zMOjLhCq?Nd!LP;u9c0*Mae?kzLFVqMpnE#TIs>J9IjX*~KQ3$zaeeu#`}>XIG3nE~ z#bGJooz7Z|zkOyJne_~2<VJ_a@W_Ts5}GL!XJ?X2du<abZ<&!=E*AVdfnXmHbA+H> zH#fU1NvP<Z0XiYb1=o?ZRF{>mfio8;BO9Eb#_b&%8R<XrxLUbn!;JMv#84S~U1jO3 z8i}G87cY4DSVUx==H_{jpEC6&-M!`2D`g$0i}^oxKahBqAZ*2Y4jD~iqNHp(?M3j` z`{xO@3wsd!Fx~HW1_EfolH?}*3cOA%k-=?zX^9^ZxlfHo)bmXtbmE<&#brkBGz8l) z_d7`mkOCRg^n*(z5F=&7!NPA{h}QhsN|mx;_W&v#UQgpD5S?b>OmWi~3ECFp+pjH+ zUDieG>_H9$SBLv0OGfa#Qa#6prXM0z{P-+w2q6TLCsMVgfCU1Tt_tVigK#y6!Pxl^ zk5wvo$!2UHe>)iof+Hk?;JflN7o3hPJOXVOI9nX|paaA0x3E1H0)mP<dpIH3$#*up zFNziS?4^sNrzStuf^B5&0|&uATS;(a!0J?WEvMYgNFRbV6W9&z*@5{RQ0q@Zwy4uB zB(APrQ}D6+UnX3~!E^e8X_om8Oy-@*_8d)XgD@Xz*4CynGsw5D-$(TJgXItFE^w@c zA7xNV=AY4SgH3Q+o?elMpPhk=X-gwNYR;0+@}%rbO2ZKwqU5RHwFmm*icM-uo*o*d z=35v0_WhtboL`wVo3m^}NF@*J&d=XppB@^hnWY=n(>kD=t8Pj9oFHwWTl}Z8;ABbm zZSu{pZ0DZn6x<li1m@d24s`HeA`<uOX-~DFR~Yjf8_~dBPB-&AmUc8Szxpaung2%M zYERhiRo;Di<E*~D-%Z;Z7*|*hDsRaXX^+LQZmZa<NT{X?I-;ZUvJR0?y`<cHXY6oZ zW_|61T%+Xr;pAiI^`oY}7*nNN83PaWSf*OW?#P!`iKjm7{PEz+RnH3whFr|J&Ru2* zkOfU*HlcPAPWpx-7RB;+irzK)e9$wBbz;7#M);J*=vwHpI_$=HZd``-?XQ(R0V_4i zXzK4}7=o9O;jceC7|4Ft#1Qboh$L3%SEg6xD1Rs}Rx*3#NfOGRRloLTxol^{+X|OQ zF~Oom<_FcN(?=-N`=zco?T>wK{`Q_LQ9YA2+2(BktwiCnjuh%HMvqmCLR8ydq+Wmp ze`)2-`DQv+$0qGU<2~EbYiD_W&-9=9&~7UbQ(g5d_Q$|LZB)`k$r*_}>t;oE##5p? zw1nbj`q%GgI0FM(eAa-tz@`n7%R9E$%mzQ7{drM6=h0l*?3EAK6n<rUcHCwP=)1Ua z^bJRJP@Ho?m#Hqd)!3JFJ50RpWXkPRtLQvAUfJ>n@uCe8sO>Gl6BR&9qKUL=E?^AV z0Vouu7r*FPR5rs9PTXhy`DW^mOGOK(Z70qND*6qy%kruv)_;yaB<5>fb--5Y5rdtB zBYK6>YW}j?)0}~hZ1?YCfCQLkl<BjhYMX5KYxZm?aFjWcsLd~sPCyGD{^Y>#+<j~- zNeEG@@cadQMjZj^LEvL0L6eTNI36dhPQK$DEyYNdl0cP}EF=MnhG+4WPY_ah3kYCG zp8Z~pP@#;$nL@5C(3h>&_Te=aF4$||lMn!|l~CmmN0qydzEks)g){LW?A#ICl}u}^ z)7YMyL4NOGckd4}EQR2+5m{B!q9DzH37SJn2`%@AIr%>V)tZEl2+6M(e1mY=kCt!F zUGh2K#|YqWk`h`nBxJ8g5nV<EL$Ls>q+SyB(E&1%HarXdL_S@Hls$SmDt;$8(<5tz z6~N&NR2CWCPnhu9UAevP7azQjp(lj+2Pc37##I5K4?xIbhU0ZT+?h^u!jYSAKWdcZ zUZFt3fIqdZSfYnWH2lg;Ch<Sdf{wkDuhR2hHpL41a(Xe;s(BivH?+<b0HrwwJhCWN zdnXw;V?zWgl#_It-sHX$p)F5M=E{toDvBLlP5AaQG|J?1v9h<cMrvmOskGN#XF>Fc z%EKr9>J87|v03#*vQ!<9uRHK8R(;oz-g!T%rM4_0rgIm;lXDU3S0|_J1Kc7%YijS& zR~@gP7YNkX(m!a)6{+?npg`F+?`X!o&f4s=Q{_n<K7ECfdPc07A}%?}T&lnPLe!Pq z0I#F{E-*l|R_LiMhDeB{DE51URFU%4f(Ygu+>mnp&|g&3$f@hlr!OYvFM}-&O>5(T zCb;z~>KHBbvWSgCG%xe(-%mzRHrZ-+=`2wVqsgOg9b~6RB6}(Nvm~5<TzMawKE0_% ztY{|@hUG)JSn&rjJ~M^c?vK>Cu(fQ}IN<>xDO~M;EIxBdJ7mf>)K(;D;znb$>y`Ht zJ%nLe%rQFr6da>LpI4tihb_azr|RY(79<=PNgvw5bC`2u_ahH86@8DpzrQ<_d{`(r zdtTXMX*jv|X2&(=&!N^TfzAZ?;AQs6w~<6n27KfklF@lZOot9oPasLk8&cdDS=l(x z+L{Zx^e*|n!4e8(U5j^rYLP!Cl@?bU;~Qt_=!Ta#?d83f$iaE#jA&hNpGj+DS^?|o zw}8U|=jCr7H|*9d7GQFMH2Uu|2o(gHAVddk0N9bJSL^@K;FRYUO%_~9j8ci)Bf1(T zd;dhWN#3!#;`5Aheak1_%3jYI&JT5yxUFvyQu4C42(uCKv@|w~xTW$=z1cZ9&)(4{ zSdKE_C%-0&)W-r}?Tky%2_^oo^4W0<{dD9zA5ZsB2+?ZPCK;(=-1R%W@qzy&m*7q> z(_=*P3kWn?;-a`gN{P>{F?$C=4lHt8m6%`%FjWT>WYXiEMB3NSJc-+EX_&q5$^gs& zOR@dZL})n0_&i~l->>E#lr|m1{3$oVietj4qy!|=F=3_pIbgz<@>u4b0Wdw-zyMHs zdlu&)Rsag!GkKas1KOnLY)U_ZPFfBYbTh@fOY>o@V6+!`?B``}O#0)gNqx#deJ1Rh zuD<>BWYI|GZ4<kly3KIl`xGthpHp1JIanoUTde`6+mGeIwf&(v1Wap+Khk=*BijdD z>Ir0j!9$d>Zt!PPLWchk!P3{aO(3IYzfO+l)wb`-g2w<{e&xxIdt=1_HxmS>G%XX1 z1oL1!_xNK*kKZQee(#~r&4sQkW;{m1-dV?e2W`}GgH2XM@gEVJatTqOjE$)~ktkiC z&iS$gScQxPv}bqRo$X7Sy~s-r5lzQKIFj8;Z9g-Z296Dc7Ee{u;womXoVs-#%KBC0 zrV^jnEA8Do;Oee5eRtP;$+L^4r_xq;5Nek-z_tG}6PiB3emp+mc-G~k3)Y%#6QiBH z=ieFVdaBQHpH%SF^DZp;{-Cq)MXJfG(p~B7N-v^Vt_KE2ejax;{}j40=-eRgtRMb& zX>Ds{@c4K`UYleLp?0a6Fl?vw9;rQHatopEWW{IA?#^>{ZfzjsXD%h{pHB9;-I(hg z9&B=sVbXF?W7IW_u|$(>2m$w`f*Muq->$cxa?C#CpiHrO^7(}ME^GQJg$)wzm=rj3 zv&VUH!VC(IBmo3%(B23oAaM=dxH}1-dPg8Lr!8>P%H5JOH_If_^B(M-@TzgU<itwH zbOt3>rJOBVO7V!#Vf{PB-ton4Ky{C_3;PvS&C2aZeMt+UqM&;p()sX8=XDuMu?M9X zI?M2gX*@^WAKJX;*{Ah|Z@wpe%29dsiPF>ZC#X}P*UsqfI<Ys$uJ_I70I$OrUA*iL zW-^>zEIIa6<gJ5`AY2Q)Vdi_wiEl_iIf8BE*c`A}qL7Re)n=a(ou~EXctt5!Jeum| zr%{n&8}ojTm>GnBY?p7I+=sV@orMCrc@M0W4{T>Z+Uy>8y5JRR*X%Tgkk5qP|KdSI z5Jxc73$THS^6Af10zNV##KfOk(Dmrvh}wl>qYSNAO*KOo--tHFF^#mJ*z+g3yjgvk zoP2CT{5JdXh!DPMuBsWKqkbI*X?dbqtxlTiBE>5m!L|;QAcW__G(f^YgPF(nE1?#A zEVS6L+x*G|#Bp?7NDv$H(V!OATpVNIJa5K4-I9LCHf36h+9<1djIPsH`}M+VZPd}N zGj8T4b}F62e&Y)w^D!l5^?Qr{@S?kR!Q=fRK7q_1In0I%Jq=c%1oUX_Kuyk8j1M0q zX#XEeX95lN{{HdrcgDW&`%)n-Bzp)WMMx@@EhNQ6cG;IHMJg(a?B7yU_I)R9lrSa9 zUfIST#x}P9<Np5V+|#}1p4+*He4crh_xts3!>-$j5TvZSbtI7O+q1|{LX!wJl@m(> z9r8AQAX(rr*S73r7Yw#darn{}uv=LxspknO{U<IFc|=e7pY`fFYW?!UajCiO43!>b zip$=p4~Pob#9YbVo{8K42$NB1K@@zX!y?@A^1D-z8#EycZY-05`c-gsc-U>pF~cUT z?%f|$<?fzU)LL@-av87)7_-lKa1w3bXbmBy8o6&88H1qL2aQRbuM3``?#i~~nA4W^ z8W#--@^b$KTWSz=kBmV7pm5;pAt;|i!l+0dO%)v2EF3?fr>8+7nm>wDslg>FPO@47 zNq!*~JPQ<I_LHTzm0suFf1^f3z=zRyU-6Zh7HoZF5g;b$@?!RNwCHVb#si?_q10N4 z|79gBX`{4_8fg71JnZn;2qUb=4{iw3Q@#)oH{aaA??47#wYGiq(=Tl|A+uPo=6bVY z_l|F)UGZ&Ify0*F`2w0}>k55d@tcleb-Q{Kg7?u8%O}Yhf-)~gqLDJcg|}>6{$BeO zyq>SFbR)FNUcF5fBvh1zyv%|%1RybeIoYq)=ch|<@p>jHw4Hm#6I-yd+95s<cqgvg zJ@&eP<V|MW3mz(D%*aU2x^w0FF@F|iLB2jYm0Cs&rdL0NqO^&5ISx$u>M)REhJ#_e zbncYTktB4n6DpX<E|LQ?^u(+{%VXsFCo8)P=`Wl7mfh?*^lAq|{bYOa!Xx)du4jLr zO;0@eQJALwjjcSbymnMk<dZvlj9&y|3!jK*AkH9)jz~>fL}=9G^Ro0r4LfJI>vGyh zBHpozD4u@1RI2nOOVP}?etQqAbwmoL^~T?CNlL9?`8^4!o=mjbI!q6!tH*O1irci> z8h`NbuB!_aj90rRqbR=T>CB_NHoK6n=Y0}sd(SByo4#E<z@O`;PCt9gFiAXGSmANG zjMt3^zq~Zg`41r?j%Sa8kbPTaG{i^@byDI2JnPSL9faUPLz5$XF5dPGyl>cRlXfDF zx9%)Yu8Tx7IXYzn@w6M8{0#Jy%!Sp>HwB8|`O+0Ek(sJq-g>#@4Yq%gStjR?(P&Vc zsTjdSnt=lOCC=icwk90)3?E^+Zzkf=ja7@#B0n4ZuG0%Dp}}BG@*=)<zZF&WxW4QM zp4gv$DSD^M&j8&V`IkiZ@k3<gVOy;o7E`$a((fMEUSW*D!+N2J5ql{-uMYaFFYl)A zW--wHz0jP^#b^BSt3wCRk1vFeF3kHLu2eJsJr{83QwXJ5sNs!Qp@N=;`_ia^x+n7{ z%b~v!(*{=pw#Rg-0qlKkz`^^Q^)Lj`ZL3W<u<jbQD)2f%<9`FOR?^Vf1zTC$Z8BGf z%P7mYI1rdY6A?WJHc)Lh0aa*{&)DP`frsmouqFe>9q2lTw6e6#A#OaZWX0RC$hlJ! zJ+m0*A2hfk!Y=aP%8nR9fmeA55x)#Q`imKy7z_Ch10^FA$$NeRn5Q7)Hi6-u4Tk$p zy#T*2&SXpZ>fd3U1e5P?2J<a$W}ZDh`})mI*p+r${^-Ap!YzBXd+!98FTGIfT|S<u zNC9vTj>eW9APn7eLaaHzWLMj|l75b9Did9*5qZ;7a76P21vh|kePZKu?DcH8+xN|; zl-Jc=KZ`Hb;r<+eOmia1{Scd>&}u`Huz8vS3;5_{2I9G6mjk^dkUWa;w{y>6NEoOG zUv+O+rt)4$OI6&ye$&I9ADkaBCZz8%OOynCbg)lfTy4HYw#msLC&95r@z$P9Q*Gio z^-~))e}0hEw%l`{%Y6D{>=|iWe2i^`n*+IHKk_2P;)!YqO@eIL3Y@CMc(6r)t;K%& z>hk<wv1dmoz3URYEXEM?4eZVDJ`I=5!?y)`)sCIpZD4sCoeA*|jwtPM8=jxXHM(+V z8Rg^(u-_d?{kCR#<YnkSV7XT{K$GK}3Ae+5#ha3;uYdPV@7l8=SJhA#R~jqA<RH=) z@+SDF$=M<iaRJ(gIIgVKBd>xZ&isyZTuamZCOWpU@iIEBf33HrWr6o|Yp3uodjU!K zRtvC`U++Y#SGY*|I?9CYFJ1qAko(kb2JZaV6YUdk_67Igu)Xh^rZvCkPMgRn_55u! zj0)fn+HW&Hdfg_=PzZ~cXf;lh+vj$tL-WvpEd&wymNd*~L*#>9LIKaV9}lcJ)Z%l- zi><UTM+UK!!xeYaC0gAIZuw`p&$=Wt&}wtsXO}uu7SBy(-I-31{M&8Rd-Q?LB0xKy z0FQ$Q_0^QX_;sq07;}+r>BI8W@#aGj-zTzPbP}A^B7T2B#7kvfX~x7$GM~Kex!cFP zZ}i!R`z#m3>kjEA{JT3e9-VqzZ0?<OzTtV3V;?w_99XrV%`}8Pvo1UPlX1qAbikT) zVAeSp395r|?jWS@-!8NoI4O^OgS7Je=$%R$k3X%w_S;v@qVX8+ysBc_;B>(uhE*5K z)u52zmiyEtvhzo_YXMW5B_(A$AAN=}`t{{Ma3^OaTgRAW5g*7O;Kl(@A?*c{#)0z< z1uL%R_2Zs&dN)`jEga@7{15G7w*K2Uy|yCc(2~|_7hRuc^^E=Dm;J`C-;e#(Q<k*p z*~LxJB0$LQw}1Y0L=h@nKG{?DM8xhGIvU7Fa(dLqxUC|Mf=nmH3Mo*ZC6$G3XC2y1 zsI6Zy@&=Mq4b%chHhAZuY#<n*IP^DR`qaQ{moN3b(1q}Cd4)uHzV*=OC!B~4|Nn*n zI+?R)qZuiuB9~B=nT9(kac!wf2oBR~7I1D@&a`m;l+O_^6u2Ku9?UIdJ-`Zr5VYLY z2hfdn8|$;fh<sAA5c_{rusZAW4lugBhs<V(2hXDn!}uX0b~q0esTf{Cf(+TmdqFC$ zapfK7-i_)*Pr-~ihf;qGKSe1<v%O<D>csp_IEt&Sr*cQJ6C9htdqSD2%>dC^65Vd{ zF^$JsiT4<=&a@vKgqE+XC8>dxq0gDg$@kd_Cg-WbzwYuRe2i9v{{gP_+D^cM9fg~B z>rJGNh>D~E$2!Y*)(O9@cu^rVJd(v>-|*JE7NYT#Rar(#Kea7coQDy=)7bawk(U$K zdf%t1tN*M}JG*v+?_=1{EN16m>F!H{SIQeLslq!6u1RNdf0i5H&c>P}PedetqtgrQ zJK0Ur<76h^mPIJ>w~+o$q(4XlVecKGPQ}Y)R9<!tX4N?SN=okXjUYiPaYOCgp0<_6 zrBQ~}3|+twtZWFT4W0;Fi(KE#8O|9_EXa^vvARj0aPjo?gr;Hi1EA_{pSsk#GVMrh zYiRWls*-S6m|!1?Q}GV4OeoZA3(E9scYL=LQfD3atFit~s{wnX|M2L9SXG^-{>cX; z{bj%aTieEojc>B7uFqNDWR$7sa&GQ2Q;%zxEO<EC!b?~ANs(U)siu`8{daJbx@xzK zq4M+q(u@e{z>y5dVg&0~@DOd{6^<PBhCzjT0r%8t+R2YAVkfP|%CdQ>PSeChUs9Uu zyFuL)gNNRcr~l+@ZSt+Z3u0a!W|v3_R`NyfdO-*63|>SwU`v*J9CjP5{A25r6MS7# zF*7tv&CBiu<GJ%UHcO6hR3?c=3jYao6{pYA5MJUJOXB_Lx$?d74<omIQCbs@a^Vum zz;MWpbRK>xw{7Fvpe>o)c@HJK9KP>>1nB}LA|r{8Q_Zu?PC@9x(=l7icZ-YX=wy@X zMaZvecQ$t24gYAhi?(DOvY6@clS+K7`G@<%(zGfPqq@aK%JPC?+e7-Z9ZAiwT034A zA!hr2{f)Q{zGlh2aMP;Wv9zj2vGl1{5YzajnV`!nPv}2bd}8Sm{5JgPReylXJ=UT9 z2ij{w`Zfs&aj43*g&Rbwe9+(PkPd{Ik<w!j;<2wrh^Bl@khstRR!w~3+z$NS(Myhj zFG6F!wi}ta#Zm8PKJ^e;kCxh>tduU|{OawKGbfJ#4f7hM{Bi(PF(azU9{V5;(g4#% zaHDfde@jYRG(;(<q9t%x(jTN61Nw>xFa$vdqpXjpDD5Fc0c!z(DU6pL(H=(%*;@=` z#P@?i5!1ndJ(5Pmc?a*@`OpCwGu!LJYie^yUS@v8M+8m;`l!gCe-RGI^kT&MoL7R| z_|8vRxCjmqpl$CK93=+;k>u(HC%xycpmF=}-+~~U|39;*YYQvLW%jNint7kdHXj>- zxa;^f_Kob!_Wiwp6Z4Yuh2K|zEp5x+7=<J{gAkErNe$Tb)mv#Jb+w1apjT)EGr~lf zTGu7S`lQ#3ag%Kcn-!-uE(m0A-gPpd%o4F{t>W8v!<+EpbM$F8TtvMFLVPkppL*9Q z9vZjBD#-U`XNJuI4{Z8nRS7vFWP}L#dmS|(4raiCy^~>ymN&z)0pQU#L`6%d0o-k6 zXy5^3^vmUtTV{=^+<~X51M<eoN91KS=U=@XAqW1xY80d{b9$`2`p*m3l{bESO?Y~% zzZ+6kb9SCdY&aETaHTR}{ng8Ci<Z8(yzM7XN{?mB8oVkys;fm91c2Sr=!D-vQu&CK zge2Cm8&6y~0&Pjq36rqS)uoZl=q2K@?~)$<WU_|Sj^svSQI3IDP2TteC8mz-CV4uH zt@Fv-Oc~3ZkUl>`0^>PFf$E5m4<KuqMSXM7(35OrH%3fBoTLNhz{K~6CLn5nmpljp zuSt}e#sc=g4OJFw7LT}nIy==jXt!ffXYe@FPya4wru4<RB^*?ZW14w*W}EVB7WiB% ze!T`Q+p05;l4U=R{A*k_vUwN#^0FSmry}qUHvehyn4reB$1)HkEP`>e5hSY+ThOR! zvR-l_4J3ksdfFcLQLB#tI}gHmhYrS3duT_x;N!99jX5KD)nwdXRSU@*vkTphkGkga zP59Dq5hAjrM~ZzoatjGv5kjUvYYEXFq1FWpP4pCYpfjZ3eVgWXZrM)D>EDh#F3x>j zKC}xtM=op9=nTXs?}@C`o@{LmVqKhET-DDxm-y?s@Uf|ff7*Cbt6$AAmvXe!m%@hR zAY~H?1(o(1_+&?b8K1NQaWB1KNZlJJ?o-sr&=HU*tYr6upIM72<>}zgJfj+E+WE}R zbjVGV#&7hsKDK={GW~=I>e=Ng^TNyW$*;Tn&A?FsQm84E0t>c)XN_o3AQ4bqP5>KW z$n$ve_MEoFj$Dy!w;$#qw_05!D0^C;omXUhxM$J4;ipJ%iPO>gX;r%KF7}~K>gflo zMQx7t8yt*+1^%{_MTH{ENOUe@WT0%o+D>O2czuPe`92|!e@OVeuT$p9r1Nnca}6k6 zw%B;=vUm9`GHvX8a}%82$<R9Z$<THpt@J{0*S|#ACZqYONp7>5VEF<<R{^XEc$9Ns zJ&laT1IwlHwilwU%^e~LC2A#Ln+^&zrn*S@g-x8D`~@?0pjg5J5~+S_0v@%~{Kuao z);E2Y;l&&Q$Qb}dVObCcWF399=MyKHC-6L&TtKQSFAC1FM+l+duO%!QKqag8G4m`J zBx!)6mG9g#R1?tZfyhSe4RmNH(>ma$a@p1K<A16f@Dd*&c(}cK6rvcQn4eIC$UAE= zU_}AR&tSt_0Ru_R?QD@i)jk#^NH9WplzQqckq=_Z+v-#Z1ua&BsCAD8LXlaVJ&e%C zGPXb*5RQ@^GmATf=poVOzL6{Y5El<9Z)*RC?1kyT2}ep#Qku^hdwp}D;|;znZ&%dq zZzlOOcZQ3{ol^GQDJpVGcF`&iQ?bU0sYSiaa0`FV-uk6Ccdm&?%rh{0+OM>z?B&h! zTOz{SR1gWm5M$D(5A}46qNSM&om{kHvs5d5GH+q($1$^Io`kBEfbfXE=Squ<BmL85 z!&B>g8izof{bA><xP!ApLeInNi_j3Vd94yiI@$)5X3LjdiO%)DJyA@zk~6H$)xy#i z7CL-7$LvDAVq5(UAB?@08q|TebKPs-s&9DAzd6yUXqhSB@@EP`N$<2$CdKB)U-UjM z{c-%17h*bI?&B^@s)swd1q5EP!KhvT0ET)X1_qrV<sZfQP6C?)r3-$dohz3qC=`61 zTk^E&(|b|nnygQM7rf~!O#i%iZjAOO=aRkPhv*~Ud8l9W&Mk9Y8cEo9zwmBErKp(S z+{p|cY%W_V>^KMc$Jp>TT&)A|D}MFI61PoXw={XW|FF18+sWmu-kN^tDYa8`FRxoZ zp|IzYG{42YVV~jOK`@W%Z~Q<FxMbXMw*Q|X2YEaUsq19K?j0Ziks~UMbb$YKpd20M z%7C@nTG7t@?SB33vIJ`%HdHdPmYe;@o!7ecJ+I&Rl<NJGw3d6k!+&$7_6np{f2w|u zez{V}#1rc^PUX1C+t8h~mrgd|^51MmqR-OG2c+&8sqHWi!K6^9CT;i4=Vz9jFp)5A z^NsFvR3|dH+f1wFKS!HZJxo07mf_C!IpCB+&W|roJ0G#Te*vpE_x-ZwH|7++`yQ0_ zDV3XMR`vH$k{w9TRQCKEnFh1+fnX8RN#HByNh5X2Tm<K7&OJtd)K2?%BIQ|ODsn=O zw4y_iub(~(v{>Zn2p_>YJ|gRPKkoXa%<EGgklN65iG0`HiXC5hg8ltl5*!tF)<Ddf zE)Q05n3Vnq2pJ-vd*bKPW+xOZDH1)u>%$YHoVqU|f-Rqoeqe|Y)jy+}MDk924g0p} z7J3v50cS2rf*JIdj+>wXRs+#_RDJcMk;~h(Hp&itL$p*&?=ZpS;L=6=|DpFkJdWaE zBq}TI6s~qYznb3tvn3F=g^vDgk+CSHFTaQA2--XxMW%aao0%*f(WH|FGc+79Is#eG z^u+bOaQ^@mykq7pGzQ>bx+z9S>~u>)>aK2;RzC%KlD8+2ANPt*Bd{^>1MQ9eJx=V( zO*>M0Y6pE5Gr98n4D<&T7Gqv#il5n-(-HeCZDHr3rgol*oRxMJ73rHoRl>@kUhv-* zLwa)NpRvAtX?a}aw$?D4zUsvJ#LK4z$5aWE3(Bb-%~px)CfkQjrREy!mmrc?pbiD0 z;rj-Lk~1@<5X$Gd(+KsINZNcJp6sM@WPJxG4zQ5G{K-zoVd}w1vhKfhbL}4vu`?Gs zY^7Q~HGAGbj3tA3xn;<4Irn9bCkCXStp`;VQCekofbZJG`ik|)@XY9$k1NSMgtG%X z#3x3RzAXJ5Ekyc-xG>T8_|nA@L3Z+D^5yV`Li@9Nk5~fx4t(X_Ew#1@AprPqFV*Td zHd`!iA?*GMAsg$b|1J=j6H+Bw<3t`4Z5M{$U1L*EeBrX@q`>t&FtFhuLQv-bPYh5< zxUtTbMU(<3BgrVl_dVjf3>O%OR+e*OL$xidzq?vW4h(*qZ3v57Uz(Ph&#AliZ?Y@+ zvx5E1Lj}nK?seMS3=g_TKSM^{BAaP<`89cuX`UPQgZ-(ie+B*?XCbpQLJkszc8`&m z25MtHPDqG76>WVypZ9>Y4mD?i<K1R|MrV^(pnvGykXr4;-+G@rj|r~&`tNMCms!E8 zURnOpgH#QxcNPsb8c#0ROGsI^Ba|mqMY{Y1N4EDnA$lAk*)cH^{Viip1d0Bs_~agz zWy~+I*Yc0JL$?@}VR7ThME0h&7Z-Vdd8XaXV2NX&811UvtlCX+_IcHy<F4T#<lI7h zBal!b9Qk&LG9Ts&G=^wAQQ3-*kb^hp0X$G1+Vg#Z3u)!Yd3_4Zq7(aivi@o0pbnOY zZ=9e;zdRV!G-K0L#yC%n)ZAMBTdk}hd&r|H_+g@O@%UNdGk&|VfB4c(N(ML98;bS_ z@b3*kZ1Ds~vD-I57X#=a@^VtgZ>6|8){Y;Zh7Ob~!4-QHlo~VZ;x>Acr&ANjKk)|f z?&|92rA6<jN7e<k+7_yb-D5%{zu2jyoKDo}7BNN0T5x;)>4@`H15dCX>AW#qP8H-^ zcb(dCLRm}s24Z%IF<0?Iz{9tXu6|%Tk@WuH#mGWj{;sF0sK}UX?Wc=vmZ`e08z$!7 z{~E91B*YuX<5YOr$tN^%nXqDTQW(J206l&PiJ>slpt7)GNzYJ`N6R{5U|CJ(-v^@f zSGXobg%>49KGWYWBVbTh@-4jN0q<Ek-VrdDPbl?BU1rN96-1hEB;kw+i7AidL5sf) zSG7L#_2u8~mVzEEZ$GW23A4$j>hPJal=;7UVN!I`|LT9uM8oFlU_qHO1Dp`V0si(_ z3L)RA;O}<B-*&%=$akMQ3QGkor;v9N|H*h=B%n%M%ToZu+*gOsjO4(w#9nW9>#!%4 zNDTayiLsJ>oE}HQsqEYk2Q(57EJ<q4K&{O=(!LhhdH>tr3;QlJlaC2vt^8}^He`Kz zi#Gmqg2j-T%7TsTxzn@5N7?+1(kBX2Tl<Mwd5xVv$1LZ4H6|09FDb}FuEB!J|BH+) zbhnO@5`Z`XU<z;t{CCAPG#E(Q{813DmU&xFfzrr!F6dcOpeH9~${g=I4!1nhU2xOv ziNknf#E0D;@c!CV)e4v`e_2ZZG!iuES?zw=Uw)~b5&5`Z?VO>6HZ~Z`Jcb>&NKE-U zR?O2|sFJzP&$9YGjN8iAD&g{r)feUmrlk~^uzPwWwZ%u7kk>r#iG(gUBh!)iecrjc zAu3be#}aM}KIA{;Y4tarNb|06y)@IHqpf#Hl21`K(6dmd4dvJP#~=T&86`LEMEVaR z{h>Ofe2~3#E90rx`3QpyNHWq?^yCNEiI*U;uYT$=gy9y4hWgK&e!trJHaRx~3oO0v z_g!i7S?|%`4T)poPfB8)V`E%wTFHEk567ynN+fW7Q5sPF6!RE5jgkY*KoB@6nC%9~ z$E=S+2+_xs)(B}9UI^{PbIA}cLP4I~8nucMTXbDTg08sBsXU-3kG_ep9R=@<x#Ho! zZz8_gjlIF|dyr##OsCJ2^iy;Kg9ciH38rt**TCnPtv_1*2Tx=k=W;&!wB&`?Db?2& z(tZW5e(&U*>7?>gcvE;LE^>+eNueYD`1$Z6<1hCgTpTI)e~U%-Usp6sxcHrs>}Mhj zbd|KwDx_`z;#J?HJ&Ke&VKcNPt$MBl$}2$z!OI4e&5t???rN@g_WC@_zNKYS_;QY> zq9c{8ls})I;df-nG?U{)Udug4<_bSXj8%fr8<8vCynGu^1?uQkGI(H|a;^JC%BHQ9 zV^l8<)$VXI&X@mO>E={cvRCgOPmC!ui}1o;_H*qn4c9FVPW`SNu$iswcw-!!y!&Z! z|HXZAH&uzCDX-dqAvXf319>3zQKOg|(Gg~M!8?5-_D!;*?Wc<*Y4?@g^pws`MElm! zWqKmcz4E9mJ%uZ>Jm(U4QvZUq@jvDxBl#<o!pd`Tu)ld25s&zWJl{rAfTd>j;Jlje z51>6LGlQhp=3zl7j^t-jtF>Q^4l`^$6&wl%S5O%1f$~ogNm~|z9^a@{k!Z&wy={YY zW4Epc?w+`u$P7+pQv{-V_z0PXB{}W??GCoBIA<1x!&q=C0&;NXs%%*u-vQf2Tkzks zC?X84{c<ypwq-~I$(;Yq5gxC2cuRChe(WL*#@iIQpNRHn{4@BuY%hbs!shmSq!dsX z(O)x=7#}I$a5b59pBg#<@Nf_^hm_rg<Kx*hw09A5xL=;_jAgUdJ0@S~&G(_36SY2> z$48jdcxCe$(5cO<Neo1}2MiQ?uqRKabRopmE#0j(N!U1wfu2xtbF*I*l5L}wK|=v@ zND*)`_b3$whWPlnnRobD?Ime4emph1nky{WD?-iMJeP(I9Tj`uIH_f6PGrcHYcU%8 zJ2C%UPC`jTF_uu&`bwv!*VkFq>7M)8snqFTp;>`hDSj?UlJ&>b0!JlIECph-K;CgA z?{l)nWW(LU$I3~+_&$(N>|LeKacnDn#dhVK@znlp+uW;X-KziM+rd9lOf4r;^hDat zbi-@oAJ!&$*y|WE&{I6@b#J7wL+&UOrqBm-`#pg4dxhP674z>ewFs>Sj?d)gsKs;U zuYZ?DajOCTF(GR~3RN{#gnR`v&}Mu#Vsvm6RiE~r+TB6Ro63A3aXPYfP3pkvqmW0U zAyUigg3aM!Tf0_ACdHL@5bPo5J5C5Ccb$eqDIF#ADALb_r^NmQ$$}ubPPQp1SIEv_ zggGQl7*cwBx+Kzb?x6aY-S*-ob#<D0D~AsEEEVNtUau}MzEjxgGI6SRxlKtVAXQ)P zX3A<#2<O?h>TT9T$XZBD$VP}OY7N$EX94U1h@2+mD`~)0F&tm$Kvf2ld#6K>libfL zIx*0*OV&-tg?sv3zvlh=omu0d`hknmW!7k8CHJdExn~ADt8&Hi&P?5FJ*_?W63eu; zO~25+OM?gNO*HF*G^FFFHW(sefhVF4pKA=TfM*oIQou_t>KnKNQnpZEQ6xso;~(Ax zU*X2D^np*^+~Stk=fP8l!mjL8LR1_?I+ZO?%cms7>p$@Qrtp+ErK@u-g!w0Di<qOL zwVf{h3D8^^;(^Jtc72I|5R#M(3hrzxnnqKKk^YX?8j6Gp5be38h)UGoU!PnZe>6N* z84d2^;4R(Y<?cR%I5*Zc!9L}V4ud>*tGfeQ4|g~iJw)ml>yCdZ4GJ248ZZ<Vw6)Q% zWik5Zs0JU~-o?~t%V%5!?03$-jGnTNuQfAc|K7@fxz@~b`%3GC(!}vk22tD%Ev?Vj zt~-8c9MrLPICbmB52aMXsoV&e<6?w%C%_i462|nAI@k(4IZLt|7r+#6edQo)*`g{q zSEneJ6EtVp8RZ8uMWF{T*gN%I@yL$+{kgsMr19}xuNa1II2@l_pOU`W@b>@_QxsKs zP@b)%A5&;GmK&jTc1r;5*_|(^$wuamKAH5o;4%a-$QvnArjY4u8<M*s@pw{GQ$Ol^ z@2KqcKyXQ@5*PZa8Ho1Jwdg5V^SXcB64GQP@ZQ$K5nUYpNKVCYIOWD3-G@bxL<?j$ z)OzI6j}{@Vr6^JUfL*#7Be6ly5C*}C;-$y@msqx0`d!wj$gO?Mc;9b0l{g&vUU6hv ziZQtM1+Y24Ml2KVB5BEY=qdK;y75N=%mF4~7IIugfqkqY?BB$3#OQ0fAtbx&v+11V zKy?!WACxd1!dR=?ZaVTEPBOonU6C>AQ!N@tc5j5k2q$^zVlE@uJBE{-_4*?l+T+Kv z0D(u~>A%HE?wsF;B<D3^!}Hn6lO{|g1_-11=I7W^BM8u4IvnQg>p~BjuO~QEq{cWv zXCA<2Q>6*?C}!{CNMt3qhtar^m>J>B_Yod;Ez6@Ch{(D2xJQ5VkkSi#Q9=vP<}y+` z*>&v_!&#xi&z1Ll#xL%<!oUzT6e=#}5=AHbgK^?p)S6(cIosF?)0Zq#6Pg|#2U^8+ z45(iT9Gv?U>3_S_za2Sq+V8=>;-RY<fBc4;<*X!_csD6VJq&k57ujC~2CXw8wkPQ+ z*1@EK1piG@gc1>pCO^|EDHTRq&$op;?{`*q{p*pT1H!7_f5}^$O@g1dmUXwH9~SC{ z2R-Z?xUgd?&noXMR|wrx&QmuFsQJRl$A^1wdJ<wM%~9I(K_t)KaqV6&2TFAiC4~*{ zC1gkgg7BL+QYT7J89GY}tE_QBi62LT;Ys;t?HE$49cVohFgK@X_qeu{^}|7G)%1$j z^`*_~XiV+jc~)=k$+!UiO+8b(Cog0TYnXbio^Re`-@g$!973v}k|eYo;aHw%Zom=j zVUIQ1AwS=1C|aqkP<%-Q4(BRVjh~pV&V`-xd6hl|7IDwpw-|_=SavV!n@Nuq#3M9q zs37c55>}#Ozna-?(KdSy(0%oH%NEsE&Kp>~5HqN&dt4{HR{!#oU6YCucW5h~`>Vpk zWdZ}jZ}aM1_(tq+W2&g)upI9BT>T~|^wYJllR_gEeUB?`Z~Kzmsk~VK*-~ITz7!-K zSQf>mbCETz;^ZfFjm`G{bAE0q4em9?_7XgA@eXRoqX)0tjyX?mJ95)8YU$wnYPZ}! zH0x`XZTm)ZYC7KHR=@R{-wycj&RsALv2HkixIvZ~Q>gpZTRAdRbJ+|;M}%2JB&ZB7 z^;A5Dwz})+i(ZqFITYn|dW^#QS5T+q%C2nPk5BlVQ?GLSE*uoaQf(d=eAm1$@9IgL zn(<?AWUH&uQl;x`>YO*$B+O<*Zo;;8!x?ngYADvy+yy*~ck6sNKYq{b-`g`$ts&SK z8O+4NLQSx1O=6glYy5U|4`FC6fsO3Nlg315okm4ag7WFe84e5|JtG9axHl^8Z>~d1 zuTYLgxI=bX7b4$SSB-2J3LMeeCmWeo_B9}l)<J;~4)P7y;agI~L@0Sxt_{IQ2E~X< z96QE1lGrH#XJnGWaI!C{oGlGUUYwXYe-A9lK<I+pv%<$Xa`Oos;lbx9)%64LpGt2F zIIVdZ$t&h^1d~hKlMSHxWJRg46+uh8-+}?qfn2pJY{Z1gNPWUWVYQ0LOPVrapn{f9 zF@WsC6N2MKT!a)ZtV}7$cMn2TzO#smsD6V<&~KCF>-`&suOFXRGv#%jy1nwa)@nb9 zo(g_B>>{*;wZ8!Y?0HhcZ5Y$QKWGf*Y=*ixSbTCM&=a*ePwT{vCtVG;o5)FQsDE6$ z@?={|Wio8Gt(gD`m$v48Jv?UL5XMX@ryN#obRx$;)xGSUDlK30Xx?_TFH%`Kp2^1Z zSDUC4hj1OSM?4ErsTtb1iqbydDJ`;iVriH`$-R4{<L4dCZ+_xidy|y#L{MN<z&AfV zu%+our)G7I$IlaLcLh}P3>TiC@i?ZhV=(FLt?XQ#eF%>!97t~7T3^=XKB9aukryAf zNqyE1k<+|5%H$?Wo$W?x4;118NSnXHNluo*FB>>`e{|0U9YCM_I2>6dAQnZwC9uE9 zS-b1!=$Mnt%kM1j1cX<-yo3sLHF<ppcAWVY_Bf7p<4;IHWoO^uCzNWWL?{56Krc#= zoH>$#C;2^T6Gmtfh}-DC+S@u!C^e7|^N<w9%$EMNsT{qlEY$OEPLC}19+?xk%5#2l zG_hCvSAmq!Vcy4j@p1CXl6;LlW1~`TXQy?)ly4Uk<HzgNKgRFW|4jU~+}2##XDH)* zt96#Su{m)}tHkks_>abNJB?pQ%pX-2`}Yd>NnHQc+oOEr^4$I}DcwCG>J~e}>Rv?W z<2}%yDrM=Ui_$ciu|daVG6zDdhC+fT)h|JG2P4^{2*L*$D6O#w4P<1kY-sh@$(F3q zH-TY6H?c+K2h-x>vnD%Qs^c9$2zMx%6xzJYlmGd>5j80>JbL8gSFZJ(w1L&Bl|O$B zd_3?gVd25izgMTG)w$ff`#DKEUzo@olq$Df+LB8sR@SBs#<d|EBjBm!BCXZIhsCna zJ^pRO_r_hPr}xOU@Uh)a1LcD<Y<pJNKiC#}J^oc4)-~y9p1qP2*~WY^o_$TZug5cb z{N<2wb0QnzK^cyUTm6Nn%oQ+^At9$n-UYt07##~`yb8{Ipm*Tm?}zEb!$g}SaLB`k zrvf0eEj%{;Txz@7GM8LJ2dy#rYC(<7Bu_=EJl*xisV6t4+`72rWE&1EjN=I@des`{ za4Hn><wUgatsvq`aN2NE7ut;{2;Pk3A>{K#%<y5M(VIQc!{8vTBC#X;+zCd?a2VMN z?MbA>qCKvp-zL6(B!k^eQCc9vlOh>t(i1bDl^`m;hgR53>+j=yS@hS=RbM2^NwX4^ z-B1zGBObRQ8GHw*e4UjMO59D4%>}KRv!L5u#DX$!+<(=f$C(0mluIaWwOv;mp5Gu; zflnFF5qaT&g?-zD64pYW`szE5%+xiG5U*W?0`aK-J}BkT3Y>3aYSS>@H_tk51r{Xv z1*=F*wg`?gSL7gx#pp32br(6jk7O)fNxr8;aKzx8+Aq~GhBc9|e69vzCT7$<f2r)k zo%4h!G{|#@vnGZLQW-S=csH_rx{DBh2ojZvHj#%NM5SD`I69p-D(%;Cq|NarFfBGv zERLYGj|B~d)4&tl1bFgXlcWScShr-f8V;*X&&OTYoPT+&&8bZyJRnHwz5eKDV%p-} zq>8Bc(nBS7Rs{*Ft|QiY#SS;^+BJ0_bocxF?_Ee(d4MlA4IZ(k7qZxw>&dW+SH9HP zFXMfs0I3^PCU}HhCk@Q(C+O~YD%0+Jm&}D}?3eoB6Q~jOZ!emAJ?to+e9cEsXLEYN zkS;Gna>he)Mn!UFu=lB-aKNQ7Pvy^&4O_c`Rra32S|gn1DI1MYBc!=8-OVJl`llqR zz7Tvvvd2pEGGr(>e8Pfm{phQjAToRz!02!bWrKH@uG1egA`HaF+}CN~1VBRZm63Mi zn7gN@7R4r>-RKQDA6t7AA!kUqL#@!?##4m>sO2*QnQ<qWi4ocd5T6_(4IH_z<GOlI zAFb}uCg@%;f<Md~)9L9`QbM2c+|ozU6C7W^Tu_VnlvEzI#{MCIqNZ@<h|Jc?hTajY z&FS|5ZEekJmz+5uv-3d$W+^Hp{(TI>A3adwOvKB}zLb6o9OXs*{ye0vrmUBjU@x?7 zOO$UsdPmgVHP)71Me!kN=^*R#Te?0M9<Z1)TgC`_*){8iZIN_lrz#ef6@oNbIdwKR zS2vdjXR0JtZ1baigBb}Xm038u@YRq(3(`Ot01LpTqC%>_mY(4YD2NSu%H$Lx?=Z`n z`wJp*M0ZG>`k+OSV_<9u50B}qYlwSlE2n+@-$(@`^BDizv77s4*5$(1Lbg)Yen=ns z_xUsJ-|k+iOiuL`rI1bEsOGh933&6eIO@q+r0%B2=~vaOo&`7P5H}szFqfMP>WC0( z+GGP$4_xI?Ch9v+y>*QAGdealXyYYIs`mCMIq%H7n!Lnxz{{=OZcAj^Adm5A_lcya z<J{WPR`$*hR@_RGe)YdGs=a;9*iS^2L#+g*`tm{k9X*_@R7mc=^kj*r(s=4YC8hO~ zN9b{q`l&LM_~;vI_6qL$c6&yBj%kl{Ej?YT6AC>k#1lVqHGANAj#h8r4h?zfg8TH8 zS31rNlq2x^L+OZ4?m_D|0ENpyG^M}ktY4uc##DJUA+~H4^Ayl-oP=eu>SWb=61B>8 zdnze)q?|zV6i4!}!frv}5?KzsiJh!QHYBI-X!2kw^c>%z$zUYLFY>`XX3f+au#LA* z!W6=c-KZ@B8WC`!M!PIY35VClqu^`{1>}E|$h8VSXifOAY}qF1ouq`P?^Xr=!<xVk zlL#0$RZeouqauxZ*VLGyBl!f$=a2NFImy-^OhHO%ZI`@^TK`2$|CVu*MO|NlwLhUy z>-PJV&f+slsI~hjo=X0WppcHE_RDSiZwcCJX$j6j-a#%QL6BIdt)*;43R|7GK&TIN zL(E8<R=u}%n|yDV&n~1`(1A$X9@xu)n+p~Ul<_7;ii;W4w#JB)NksQ+2Ba7tk9>)B zMgzI_#-)Y4u8Fcm12^$3xo_XPA|nyo&Z|Dg0#oIp6wOe-plfYs&rQ?oNl1#PK21$_ zs&RID7yLoxL4Fm_xM_KOq*Tkhoj)v3Rv>j7zmQPJ`8%*3-2;Gt#oT9`vs*O%cUj-< z!`AK~Shwgc<CZzy13ga3O^g<argZia=NrvmdE_f_iLL%#oYLU<)+T>oM=|r!^_#^f z5Zg&kg8ePD`pQh>9zsC{Y~RjqqwqAz&Lcw)b(W!In=NcLc`V0m(VCp;=zmDg<Uh>0 zH)O)Ad|~k7Rncd{33}Ffk1e>V{+Fr}>IVE&tR0wz5+h7`3YtzO`Ru!R)tfteX9@Ke zxLx@$bunOgAT&&z5JAcWl2ET7(rS?=j8!yf5;}Ye6wHb#3+uzDBvH+!R}mWjJOlFA zOUEqgTV&J4G5=s3<=$72Fv^mCmg1;Q0;J6;JT;V+U|)d}hfD5e=W5P8WVGt6ydFz8 z%kO+$Ios{(!7)*Oo{v?&gbUGu#xkGG3jS1CBsyc?YkFOe=Ii}#^RKYDBf;8m=!%c@ zHLI@<-YF+xl!5#ss^#M9YtXUR0Z^P=o~$K+<>`gb;4lwpghdUi5(RX=UL3GVPm8F& z=29k~>38ZLXJR-#!QM7~7m=eaa7#`_QgSEaAI8tg;V=E+${l4d;TA)i+H87CEuO;M zwugfBxThbC-h=cAgD->Z%8b;-qu8W8SfUunlVO%8V^w8)c6F)mTcTc|avvB~WGk(^ z-}jr3^+T5VUyu9Ji!sF?wEukZb2L4oK~IQ?d@y2HOzSV0{h7m~|23=b(=%&j8)w4B zZ#MdVJo1DT<|0ix;&fgrJ#1^kHG$_#n6u1EF;+lq!3w#@V3{7C^5SYcj(q&;^&&@7 zEOm|oEMj)ejFcz7jAR{se~8v>_>y6cXnr8OZL6u@Uts~6M85za!G`5Pg*78ckQzs9 z<wv?soI!$W?E06e8XQ<xVYw+v%mu>zX_7%4(vuOc#6q?v9@Y?GC0nX~L`y}eX8T~H z3h$n(pgZ|-3Nq>}K%^BvB!v<L<p^Vps!3Z2LPCs=>Ye?ISo6>Ws2fBY-EZO9&!N`Y z5eLOJ<Os8+DzE;k+3B2;1PB>cbd`!)=U@0CoFGqVPubWB{+bX8q_p$jca}HV&TMTw z*p={RQZW=YRzf063#8M3%8E8TR&2M|csK~66Y|pfFza%}?GhT~n0Eq-0ay-2V6pP~ z-){sFsXG+5{wMhJ^57ObvawJCIFu|7NaJ>0<$!a_ew57XDE0JqYW-miwVR|!ka3>U z*L%Z}tT%QoiD&bD$=>lcO5ske-G}<m)OD*ww#a|IDlitHJ!LZwA$E&BK@~_S^*AEW zJX)_@;Q<25eIsSYWW0zEk1@xRKetu=tvzh+2`Xyp+@!^}8G&~aWF<L+wiIU`n$oI} z_)d*!i5E8SEKvWfTQ^g9QQB@4(><&~*n;eimdfQ#8@MCv&)lF9nXT;}o80DITkP$! z?^dG)CmUo0tL^zBMNm(XZ3Y5{fAs!6H6w+RY%yr<E&ZT9oUDx^i`VHU8Bg-uZWHAp zsRmmGfqCKqFG4Hk$I|4&k0X?*v!r@69HmB@RL=(XPhre;8m;D|`1q0R+)#=bn%r0? zbaF^pOZ&#f3(j||F85m8;xjoIwwn<XTf11mp|xYj5z)QxQU^KtL$af4n984BYi!h} ztG$|9_^5A(g&&TrZpKU&hDV8LQfgq26f^G3)8YRy<U{SiIkTF39KdT^8yuWSLJvQ5 zw0Ulyx?{BYR{8<Ypr9RSv#}>%hSF_&RG#gyte%$j0v%ri+m9uBY}N*$X^IlUDRfvx z4W6=}l`JR#59BHmn$7?$-63tdHHoK3ExbJgcKmU0OrX*3X?9i#n2ML;iP!GygathK zZJht-#>d0n%%nDjF)p#@VZ3k=`)KWT+q~%+fdlCkpc0~Ga*{J@5K77(LO5+@1(~jP z0fk0y>@P;GU+(kwqOvEFLudc$U72O83J%Y&sv;a{kH}JSa*T1B5oHP*zu2xj_}#=X zB2TEo)xH0WVPTTzwENVvy}4;R+7~Ji>d7vo4!C1%@MU!ABW`MsB?viE!C-J@Agdz2 zGO%>uz$WvM{_letP+piuuNAg`xmbG3eCftfA+80dJZXmv;srJo*17B|WU~mffdaXN z-wDqcKYsuDWq&i6!05~hBoVh@_oIkrW$_l0_PqV8cg-$JETXyZn>J3xzC|6FgU6qj zz(SH4(~e{yDBB_`yE0C~CSrTgh~042Bq(>InrB(kILOW9-zmO8Npq}#*pqa#21N5L zqxg4cr@Y65ab<pxFoX4P@gkZRDSZFiOZ3F-;l`$i<C*`f5OHcRlOG^ZC^lB`;0H-~ z_8!^bW$WQ=u!z8WNS`JpuyNMMYzwnsqBu`zSv#2BdIwJ$71%`w8GWuy7`I9L$>&|B z*?f{vwU}Xf5#{;1y?HdKn-PF$L?IP4DCBI-Hk}Q@eB=>%DIZDDVP{`He8C5CGv9k@ z-;t^~q}9BlZ}m#c=nG|fN*^Rs2K}CPy*Aw!(7FG0zCagMcO-5GW-<_b%07<d2Lw!k zeH{Q>Ru(l-T9afrLNEbFF!0W3t&<?}%2;IWkie#2+<{wPR@^22a}Vd;3*U%zCEm-S z9FQ+kUJ%k780^1k==erOS>|M>`^lir-jrXL+FhzFFYFa?i@18$vmoE4lCzbA;oMNw zxf9D4@<~nSe)~9oEN(3A8Jzp0BO(`KN;=>SJTe%-LJ=aq)gYsc8-Vv2z5tj|ni(&; ze~Ys~q5V-x3M*azL22^kljNqSCwDiAT`QTo*Ny^KV^lwLh-Kg$bJA1O=i%yoA)`8b z%~i7&6vQQ`Oe}LZp!W*)C1fy@`EDRstMV)}wrE?|%s^h)N!s1L$0_N29&vbI<Gk0+ z+FKhAURmoK(=R{YuBmfW@-G1c85g2rR^<OS)G4?pnSqsOsB7ZM*7}+ub1Um%airAs z#I+!+TrXEZ^5*f9>^^glbL5dU*mwI~1&$T~VA)$xSwk&Y*C#U(GIm0{%6!iaCTW?e zwZ_*R+>0Z@yvvd+O2OKAY}&2QUgp%49Fk^lw=zGjrlrk`ZOv|lxTj1Tl)3SsG-*oB zd^Sj%d`S$c-&PKqQ^GgrJ`XEnRtw`Z%k7|NTQA+)h7f~FQ{1UM;UmX>N%9Nju&RZR z2@Bn^b#qr&b3G?&e%U2`?7+XdsbPYjcMv0G?LOkxds}-aA!XXh83}!eBR7@*ppCMu zj!8D`3}4@f|0JfnSu>hB+QK+o0m?eNQqdji%r`<!Yy(x@+1@3D&{j4(nn>kdPj58V z)=Z_`=znLB83_$ueDc12JfSz{v>ymoWbssYO-PX#_CMC($9q?kl)uOdRg8{E=SGDo zOI4FGLhaD=^NzNy*AJ=D`5p7Gb$0$+r_pgC!yz>Gv#9l&p7`x@)5CY8*~QdDD83FR z=_9wFo)qzPw)Wdk@VMb`l_G{xycOVdvnhaxSp4Pgg7Z(rSZ$Hr(Iep>Z9X*o{d>M{ zU*q?c>T<RHVSK!PYJpCi*y}T2n()3>dDR(k;jl+q9|yTMa)+J{MTw_86p;R1-&}8h z2%5f3+AUQM;{exxWus#+!9-wmw~RPi8eVcAY2Evy2c;5-PVep`F_-B85w5P#i&AZL za^xVZnbk;>(6k#?3v7f6gYznTp$UOO!ki_|3{Q-&q9a8fl7(CAj1a6Z_7lP-g?u4V z*nza!EnwP&D;@6d?K%wuL=<Apde<=OInW~zkqs4VG>A`I6Z#JAP<K#rhLB;@xR?Ub z9-)t?X+5#9ZQvp(jE#nXE$f&hCM#<I$D)Jk;`GG(U%yQ{I=Ni98Q<)bCCfyvG;K|Z zI*3r>a%txSiwcWDTfv2mo$ykmTHTcKS!E$RAz4qlXkAK2MG<X99VIPjIs4y=0w7%n zW{H(Q!HCKP#*f*r?^9<WGz4z&AoAfG`;fX7RU~NRGfI1F>a<6({rv1Z^Ha7)*Bza0 z(ihH~H+g@_99;_L@x8fQvP1h^zUhf?%ezOC)h`NOCHRD9Iz8WNVlS_lV#hLyPo^qb z*?yM#eKmCG=bJbVq(@Jgsv&`y#j<B^vErzS2MLlN5Na#`vl|Gz{phrt$6SiZVMV*} zK(EL`bPvbLfB3(5#GUbl>lqvR->PorouxWud55zPP8&1Nsx|z(w(~CUD=)|Bw9421 zBsEAPt-p(-W^s}iPQ%ZuKI|sLnsH=7NUqSNqm&#X)wd$#L?a~To@PVFVCE{7B)cPX znB}niA8+zxw@UGkf9sc&gM0TiZTW4IG<s{lU-R{S-q49;^{X)K{<X{ep%szg-tfx# zkKN!Bi@!|zDUDL2zm3J)A+*Dygo@ob@@`wyH!KhxKbx_}N<K7E*c0^QMxMnHL-BPT zN2dDtLv8Y2hT_+@=JI|{90|LQ8b}Z_D)2<pcBHPK1Jf--sM(iEo9ohutrTGvku(Db zPo?C|C-SvsIRDYqTf`5Ic48OqeE;`aV!qT+vAsRNEoCb7R!LdxgJrJF=fQrok$C;7 zmvnAfMGw!{CR_~uFgZJDZ!(pv#*BH;n8-`)jmJRxNNxy^TkoIn=|V#H&H*pH53XX| zHO9WZf{z_LGUpPCPxQJ)OdV#-7mn?8xhDL%l8KYg!RPbZ%=GN>w$`g5e9m%>hZPq# z==6IlC}P=y7vFcWkjqp^YA+9K<EVy`SgVL7N=rvV<Cw@zc}Qp)9eMtH>@FlUm5Cga z3vpiE`i1nek{RN&#-%+$77;V;7GqIN180Qx&tCHCPF<JRn`Ha@sc|NfZs<ySb*Xdt z{gwD(&x!+8)rSf-x>6<FOnw~`iOHT!xx$Pl+rZ`8=|U<8`IYbkq*Ue$9Z9XXAgIid z<bHe64wTl%Plcn~9RywlQ%jWomWC@;*ls5}SP4U&Pgtu0BH9r0&S=<X;%8eBvXP{D zHqz=#M~-`aS@^;B!ZIG!yhz;K3rh+sBpFteJk5@AI=mp-8b@LjPQWrm0{9YM9JYPN zmnj$feJg7oF_C4|XNgLL%pdB^m_9Rvih$cY`rA%UtU;C_1-pmm7L4Sdn3ak+D|kS; z;EHfegCwz=AXR#G0Wuvjp}&B;C<D9IZo+<95kMHH<gUQ|IuA!Jrzgf-Gu0-2a!RM& zZ(f)~dsHLKK{Z^1C#f-rBfjolKS5i#kBle6N&@s)bVLY?JHHnk<4TWlgv>oq(=NX( zH70SKv*g82bG61^9b$kPh}RM1%>W2&Pv4+}XS21^!Py=Tkl6&$TS$+py@Z(Bqpjvk z+<TN2lE--sFKm?cP``M)A8XxJaWH!=xw7sBR&sVsCa7-nYC=3a4ogfF_{J7Q{0AnD znm^C{r%>$`ccf7~=gF=eCxUU0Rf&h?^-d3ayFbg4+L~xUY49WH?pz#J*btSPk+Ca8 z?#1ic9EVJ{vu74|r5NH*6oo`5IL*3Dq=+7OxPA;G0gfAa2m3_-u06dJxjQiPPcfai zhE8aup-x!k8Vw0uhyk{~EGYr&W!s-sQLfI-*EC*I#wfAQoEzKR<jz#h{K!EOfQm-{ zl+`CucC$}oPsJQZ5!VA|T;aPFnVWtc2%f)T;$G0UT`}BITCpK%fXGPhg@L&TC5)}% z$+Ar~&5{lMMu(n;2ZYCx@V|J6Xn%z?bhRFm@??JPz7(-v(OmcHzw?E7Rru|Jd!FeK z1fIv}>`0djEFn+b?A;F0#-NQ|)G#Tj&ujJGV=s<bxep3p6>+FY3DNkV(e9Rjez~-t zX%ChvxYyaNsyOK{zSNCoY2Dw~RdZv%;`{93zf;HGEgf1f+cg!xFy1&hvH9m`c`I}E z45cV18=+Y5B1pXk5vL2oG+G*`Sk4Ff)*u{g^Wo1l1mZo1H)llj9+l-ZZ?7fQu17WM z(An)(7pvr{OPBH6`q27%a+K%S`=Mfz;HQ{~G@h<YBN3nvItAb9=Uba2?`L-t3mVl# zG>r;z)GPZ5gIfi3#NZu_7DqB*70=n&`u%EnM5UsM%fa+Z8!R-#60h3zTQcQQ-i{m3 z1En3-0>0+n^ZyO4PP0cw;q5w~jCV1k?^SPhs<ymz!v}p;^bEU<(0<eA=^k}zLD0d* z>U5_OD02N7!R&DYsRO6ZGdyKCxK$ZRcE|jJVb=Wh@W&9t+7J&*`)H8SJK4xkypCev znCX&Cs{P#N(uteuR`Z(^N4>*+A}1A67~^VE%$YZ(s}A+oc$z)%Q69J;W+dU>{&2ZV zmZvsmC+U2In#V<Fq?Ia&C0z(dg1!l=OJ>$Uuv_9!DME#@uOL!qd0_ZyKAL<b4}=uQ zw-2IA|E9r25{o25>v-pI&^`hu98C_w_d62Qb3|zlY%uQGhJ-c?`J)Qy6MDZK5nn5V z%Alo_4Q>v{yoZ;`QPl$F(J0ZG+`?M27ie>+O3**(D=w=xK!JlqtJzRe*yfa>ksKik zOe3wD+l3=?pe`B=ruENJ!q6(*lT|!QyBLYSc7BMqvDYWD8XYK2r2MWgJ4rfyuKz7E zf@<mo;0Hm4D%^A}l$0(cnx)h7^nziP`4Am3?YIL_4D#}ny?ww`@mY*8xfM$K`6pFF z!#eUzr}r~@OmK`3iyG-tUs-D1UmMRtc0~yu?uEj>+%gaX0IQ8EA{wN({aVa<9TCdh zHwPTmj00=f>h-6iWNcTIu(?Segu3941g$(mg9=?qer2aq+1z}ZP7*tQz3D2|D%s50 z^0HN!NL6c<udTGQ$?5ue*tI+?J9CFPZ@!!R@t=yV7~Pdx#$YW^XOs3dEn>tDL1uEw zOnty~+`9>5uj?NVGrrV+a#Y#(uo7+E5}+rr8+v3&N9oT7V_WNfOD^%Rm6a7SzpLEb z+;)vdbX*iL4EAkg6}3lfx?Lii^?OC8_lv$c;Jo#|F}h<&>eivy_}HqDw(&$}Y;q7G zWEi5fJveg8G!mpkM`o<UQ%@sgCWcSB`7%4Z<I}|HfMr4Rb9nPs`mFpRi-XFd&OSX? zj|VLGr?Gcb{mP$Kbj+h$P_XTFFK@cQkzeu3znHV=iO`fQ;f5AUIfIZ_n{dR``BY{s zrra4%p=E+bR*;?9<3aY_D+a(&)G-`ioy7Tm%p4m)g1Qi2JQA9~LXNU$#UzVyD%tX7 z;h~ksJm)0sB_3|k#srxsT@)+!jXic;cBbn5Wf4}0vW+P6_TjZ1wzXf0lN4Yrd5z1e z`Mp?vBd*QjkuI2i7l3DbB*RQn5R>nQUFU+%3s|PAkv1P9WPgM*7?1XNOtMARSGl`T z4@PL1Hl4GJ;!yt0@4$QYxer8#6@C2UyZcc51JOfgLDv_#oFsUoP}+%V^5-f+&{<Zn zy5>sDCuM|cCkHNed4l9EgjUN7S_?s#A`aEBbu&^ptq@u>LcPIAZjz4@nmyp=R@QyQ zi~ja?of;vB1H0TA)m>yjj}BfB>D<syx9SYnQg{SZGbE;uC(G6_-7WTdNmp^>yRmP5 z<9m63TEUCme?nzg$dQq2^kBnhB+E!|?<E~bYM`K2cV1TaLfpK&`x4<}E<6Z6-e<G# z^FPcPy+P;k=<pwSqiPf`gJo7MX#ml*d%lJvpN<B7L|54cOY%{FPO`jEKR-daA5~FO zR{cp&SmQ|($5z?LnJ{x{%{T4ld1g{5#`yf)_w&z{5tVp)%)UM#_9$Y_JHacNb_Ujy zCo~BqioTkJ96gUxAzvo!(JP>*_rH1~V+5uWROM&$PEtA*TBw%tEA^b@Ar5TkyMsWU zXlKCmx3x0CUbhhI`AG#`P*Xq^XefdaA|oYu6WxCF&_P)5D$t}OvoAtspdRa+>yp^y zQ&m_{^i+NU2FEAsZ;ZsRD`R+|x<2J3uf(I2y+~=_#j9TD(H`=@Tty<TRIU|ArM|e_ zCPYmYefHVy3w<o*ycnVP-E#yA0TUT$Sad|?RN(Mw61(nn;Czh|8*s3ml0R|Zij<x# z254*1&+I5Qe7$LFb*82P;8gaAiim#8v8w-L>Z^mIT;IQ+-6f?2l@4hPKteheP>?o} zMg-|jNgqK)r392l7EuhOQxFg&r52G+$yFqT1trw?;(UL9yfe-m&v@oIu6y72b$#+@ zCtHI6)T2}e?FN6aUz@P#SbOy1Ye}E2{q;~Xe3|9PaDL0W7|y^bWs7^09;qiP7*j^0 zeXRW4t!?sOos=hveWZHSjkU(ghTu~kQtC=nJ?a#fm}hnGoF2zI3ckJkDX~DCr@XGJ zD)P$`7tO;@ujexFJhFOTOGz4Sz$gK)+>&%H)Wfmw@vkZJpU1;S-7B|AEfyJE>C>iX zRb_7`TV*=SP>MCl<VoEuEV{}Z=GX7fsbzE6a<`=X>)iFJ%&eo0XCEpu{A~AoRgTon z<H(^j1g0HoqNpm49Hfk@8DL4vvJgA~XP62Z?XI-Xkj|ZaIFYI7(~4&IOMN|G=<(j* zW{AS+JfFlhKl5qL3B&Ho`G)~)U2vehEx0kl%lG4GHE*w(=Bbu*Pygg5VQMB15ZN<5 z!5)5p8rgZPj8fUclq&cUXT_$bPKDo?t^rZRmHHH1s>i%@rBdV7tSRC98(YZ?Y9d(K zU7CMC=QVr+ed7ogCmL|1n}UsI8*3@i3;gX5rf&VPv28fPL0AgIkeHxutdtM2szR(1 zRcoF?1z;8>LD*@jSL*?dUIE9`h)54-1yO^GQ>Hq_Jbe?#o88WMd0oI#=6Ty>X6vmn zLNn^PLykczQ!Fd@{O997gxw2cDzv%*&q5>f6hIhK0fK)(*F|IZ#(D76{wouZCM*+( zCGP4X?(uwQFr)9Q9A8EyevEXVyLL;z>DPfVo2{BgW*UhD?(&)~UvB!p{qv9f)1>L@ zvdEswM#ekebt>-I*#sf(+!=?%`HxR$?cpP7?<nI)Oc?wvY2=SrATx%POM_ohde4No zGfs_~QC~uWi-3)Y#`<mCyt?&AxcSDocYaA+X8X&a>RIFG&!eToPAODVwadi^rhgdM zZ?UxOh;S;03DhBm9Ax5Wm7$Zu_)AV$qln&D7&XOuFPxQa_d(p96_oL_S&FdCbNX3; z(ha~p_It^VH(~i;%~hr*u}0>J?2{k7m>U1qrWH(${hZO?Wk%3Y0N0ZSS#b8Hm(VTY z8XU^YRjCVx&s)+X7|=RYB7e3v>2$SGZP?#f%n~X<E_sB|ImUG)7DLj8Y&+#x6naYy zVGnRm<RK)iAe>8LSaLP>zE)Be>cvYC@$JnNN1#Ojd+@Y7OxO%jP;{Z&n9%>guwc2$ zj0H;4f|?kqhG)C#!~Y-E>3-3jl9WjQ0AOB@QMfDsotYgM<0H(Mgu;42U7*-{PpY}a zMzr-_7~m7JQb7a?E9EZ4Ibyk(mgqu+R<E4AhtgXzi0Trqyt&Jrgz@XfmM5#E_$eOA zDk#LG$xgio`-6fm+N5C1?Yl7LAOLkRZ*simgphs3WB=y3LMcOBeCd$PPI+8xTui(R zpJTtixhJhha`i%AQnlEvv(*Mz*;Q#fs%K(J$KIaoHL_@GJ?CueK^4>a(|~Y?Q&<L{ zN^k2`$MNl(LgS+ns?(`c0ub$jAzQ~I6C~)<gN*KT-WF&pPZndg@0|yEhx%B1^%v64 z5plt`;f!C;gl2Mldlq#3E7m#vF^TEds+Gs-!WUFK*T$`F1io1N*2&cqjookk+9Oja z`knp;e0bE982&2syD`Awv_mJS0^D=ESI@QOvuCc3Mr!*%&5!%4gh`h<+4uBRz&t)( z>lf3nA(l6XGBoT?h6&q+99sQh=RcXX%y7p)YZD4W7AH%aTmwV;<1ZCtsA0(7IxxvF zz|+NyT89Lq$<rmIp0@)ngAGA7@x^$qMTKnnU(6_0BklgQ!(5rSs1sjg+4dkN{aa6t zlIwdbHB~{??;DVamEoE`2~sB>LhonrCKuIF2&Yjvg?jO=6dm-_B+lm+<;zIRK3%x< z?6hDt1N!-L`*FNZ9+!JWPLQg{Uaz_u|E<vNquYC5Rk0vDfjQ^}EE@wxn40f-OR2|L zHxf@G6M%O2<F<|vnB5jktD+0I_#y@d?_cH3Zxn68x+8vGI2@75VL|)BEiPJ#zq6gx zLVr%-lsq5npQXs|?Ada-iWG1OrmImT-{)o`7Ru{;0$oV~Ut~%WQx-zLsEii=Mkc1y zIjU@j!rz)^DolljR}ZHCi#nJF={UC4v@|>qnmMi0#@<GtU&fzbSB;lAI4Sb_Lo8wI zwA@VBh2wI@o$ubULbl#PLIyw+#YaAP(-7ikksUu9P%O$bo60z|C+^B3f4=?IT>rVk zU6MV!E3$qKYZ&gucDp_Fx+&+Yo%Jr4&AJCNOS7!;^$PFh8g)#j#DKSa2b~%H5Dr~~ zCE=gh-FO#>8cE(=fs$njBz+)PIAsOWrb=Z+zcKEs8PdN2`}q5>9~Ch!=Mpk1?_~Wy znRWLWjMDR7mYX-Y&@J{Fal9Z1qn1kT(EzGC+r?x<5HP@nJiv=^HbgKYkfidTtU3pP zMkx}X-M(Iu5-Lq;2tVug`3ZRc^M19P!e}7|j0YUn%MXK$vzNQh@}t@Sc#Z~85N@pf zz?C~|*3qC(vCvbtgA^Q8Q8YrIo?^&_{~pQ?6y#-Q5l$9Ev^A*ci(`-og%igY@$Z$b zSn`K`j|UlD=qSio0x>i%^nIA!UtYkVgE~?>Cli*1kzfax>(@iUY9p(Fpnq42Zf$?v zZNL!b^+6Z4y_iiyoVxX|s)&N9HN}W`jkX>-h_`a9&8c_0D9(2Ji9qTVZMwm%9M2Ht zw<ZujcjUA{?XDY@q4VjxV+Y>yqg$*Mo@_U?ua{d{K5i>8`Ejl_v)24=!I(ha=IOIt zU>@!^!t8Jd`JnX-pLq$A{TNO@V#iPZCYgkcmu)mkax=~Lv@IO*?a|y;8x;2MW4ZG; zlG#5mCD8V}MB2y=6287(4_585y{<bNcI2IXXm2fsqz5*aEPs09E)_wZ2VbPli04z6 z!p~-2*WH*S1kLnpJ^A@AOSt3V*bBuW(}+unwDoQpD6_(9%d=C}T-0lBRIwo=zG+KK zj-tEwm!8=6dIwmVjy%5dqB+Q>J@iHf3&yFtffetmh*oZTTkQh`vK@M|IcAC11^HZo z!un6BP|V-hNc%wb`*~{((wAzfdUM!8%p4I_{*D90KxR}<mx{FX5**ItWYyI-RMHDA zgBx;2UHM}LV|6K~Q3v9=#v_vvkxbnk0xY8MeA{OtwBz$KuGP6;QMxbVQ8w{4;5HXF zaPD(!;j4a3%?KZQ?=<KxHM(q|rz$hkF;JxQZqxVD=a)@2ibHybC(LDXvYQ(|Ulu2Y zl^8yr&V8GjcZ<I23C)z(4|O(^l!FH8pUhO3w|d;;N(@!Tr#vuDGPa)3g8bd>nW!3G z(w~AD8-RpmV~I?GY!gVi6(x^7jx-Q})OD#n8Ym5Yd!o|h*EPE47>kRU8KSk0qP1>Z zbq%#84f-CF3W~$Y+<dYJ#ZEP+rQhZ%o2SfM_((LJi7vCMwopssIvNrf^3YQ5SAzyT zT5UM;h}!1^#5TDC%Dy2HRsyW9y}d><#}J-m*reO^{P>X33gtdOdSdjq=5b|wo7}z@ znrn&jIUUL<RsLKV&Na?S({>*ngwdTEJm4|e-e8b`MmBe#DUzs&tpxqMXEQE?+Ij2S zK1YBdO|*^{@-HZ$g+B9Qw?LnuY~esdSj3{%)|pR)V7IsRIDP^zS@rhyns#g({JYmQ z1H&k_({oC~l}u0tm<wEmrSEX^a##8m%!a&4wpZX}Z_)wVAlC|uJ?V@5wmnd?=GqMa zM*iCc)247Ojed050iq&g!_V(C2W^o`@Txv%cG-7Zk~n5xranCAE*y$Jb)|F)I(gP{ zgpI71bA-@sI(h})Ah-JYW~b1d0T#zK1TQ#DT|n{(rUxE^HBST-r?KzDHVz=FzgLz6 zZ~Zxe?Cds#QKQNKfJO-4O4?J0yGAmqa^dF2!hl86P?5EsbzSJ~>1PzD#DnCo;iLyg znA>6uYb*QuFCEHJ5x@@xQ<B7K7UU74jw<43ICf=&Gwe**b)9uiCest*fsJ(!?_PPJ zmMz>p)3i793_hv=Dl_X(+qOwgo^M}tj=w6HWtJ@e_WYiN<*^i@M;^4i=B4jSBy8#8 znq1T#|C>h`ia_G<MHE$|hgC@_*U|{fM)ZvMN*`y}d4u5=r<+_X-%#+2JH>fSm70Mf z_8)I3C{S0ovyk1!T~4)K^RQ*qpkw5oNp$nL%)B*zA0bO6QWEAJGLwq`Az{p5#xg^K z8&05wyGR`yHSq~#`qChrX3~c?)~_U?u1~Jevgr@Ja280_O9*cFP4Z62%H4LDIe3~j z_3l@NJ6$^JgHqd-OUHuH<36+s8K-z=?kPZEGBvUAqw~Mb?J?jNJq)~)d5+L_zF68k z?h{-d68ye1ulKj=I$f6}j@3wy(Wq6vL^P?RFfNGpJqPE67ylv*&e6VHkrP)(_1g>% za+13$Mj*CQi3i38Uc8N(G@kFD8B#N%lCZa^-f(odIDE$|3e8bh85bB%wYGZ7FSa?L zDpp3>xWgU$MQHp^j&*9rx%X=y?ivz<v?8LeWjOowPRBC)^*#bgR0t(0UKa@)J3wUm zgE-ZSP94EZ9yMknl7eo;@4DQr*bBK9P7^R==u!I9VwTP<b*Mh{?8Y78VLcB|_oE)Q z&R3_0?KjZ*-Hg0D6D7sG4$-$L?46Z5mqsTm`l`KRQ^|7GcE<rA!0h<Jr)(WZO^Q5& zswwyB(pZp#Qh2gKPa(!j$PdFgX;raYJ~W1Pmzm9;Tf>_uFc@)S*1Sc%B&Rh>Xnh5L zU3{fjv3zkx;@MBKCtsn^TMum<16FqW_ttmzpQ@bM(G<Mh(bt@U7C1n-SL>^TxWl*+ zzO(P1T45%9dkQpSo(>wP2VRFQhV*Q^Ksf)@Kp6Be5`|ifAd?#2_k;V!?V?PNHlh`_ z+)xCyPR)8Og!StKdhjs1#TED*=Vw)P;TY@&okUiGRaGnvUeML8KLHE+B41Yw3FZ;d zEOF{$NP9DG;H5H2W&`WPHprSr^0YQba88o8Fqi9K%<I)Jpp_30S&&?J)ZQL~HGj_6 zmmg+>2`o{1e3OCmh$*ONw-z);WooeujuaG552%TBun1hrI}AZHz!wBW%fZEG5POKw zrhN|@E&R42B+MlF&5J9CPuiW)K?ij?4e1ykKV<XQAtL1?6LaYJVGXXZ!LK$g*z&6w zhNF)tXEcD&N658-o<ay|_3sWFLS~w}WsD~0XY&#+sH&<e-cF4U)~^ibl{x)|<z#<s z3S>_B$|OHKB`j#}c>bYq0AeDsW-L}>MlF#4d1kKdc=u?4=&P|A!@yGeG|@uyVXLB@ zNLk$>#64!yhL$kIOH1$$r1g9-)RYoA@Akc;X)Cs-#z{bE;h^ltqSdLXqulC%N*`LE z-=OZ;+!V%ACQtXP1PFgOyhJJTRqN5ygwAN0luNn+X#I*ZzIO2kBm*A@$*iRXIw|#y z2LdW^PBF3X@QgW9c?|xMb-t$)PZH`&`~QsSNz|=t`ZO(+IqHPKk2|L{%T5fHZk+ZG z7FLlkHmG;w<zI8c%4$zvR^fhm8J%1`Kv+`4ueM<P=3N1sE9owM%1Rhv;q>KqF;L|Z zQBk?dUt!D}IF*>Cb?CheSA}$`gM+X1zwehuoxccid{c~8o6T)g-uR6aOr`zBk{#-5 zbRm&m6rTbMt$ybfZzOhFz9sTXaWPlj)k{rRn*UBFH@~Hp#oLyrB@?t{D>$!wuw-h# z$h^1rD`1HRNpFs!qH&X=UsWzGxG8RsapeW;o{x*#_B;UF&crm#jwvWrmE1(odM~6d z4MT{(j_l;J4LIhuF7Qi812@~t#Ip5UJH>I(#O}7`;XH}GMZW9=&_9cP1-qfi`4s&3 zmb0=IkFHHxd5n5FFv**yuxS)I(&phmT)0BJMP^-eWHV?&+(!$*<K((<-W6(5IM^xy z%7?q|qaw(zkI)gpey2aZP>Afvau6hWSAN)+h4U=}v_0<b)<s4fZFmbGHT(+@-6nh8 zeczz=L>Al&ez#ilr;}+aE?FidAJAtp3Z}>wFOc9jHIC3j%UFDG^kmJ;#40Bi_a&DV zm)<{v)TCnwr<u{g6J<y_#obmYhj<9!wuS#TE0W%udFAt>Pb^!w%WK4n#DuSEAxU6H zZ#ejrr>rlU;@tClL8qH?ZB*$O4bdO~mC)W-Cud=0-@<T5P(48|6H;Gi+;=?uK(Z_{ zwJ(wt4?wchW7GF>l%#K$AH-qF8AFnf3=keiBA6!c)Q7h;T`xI8(DEnhf&;<w#5qtY zJ5!RNa@4wQ@i3bFWk^5q6)^K@LTIbGFfBp2tbZ2xYJdZQM2u9L9X}7gsFQeg<9<h2 zo&A1W0qX!pE>Tv%9b`8-00*Rp0fG~xi{?&w^bBa>`k84~G&$i-+*>T#iicl2Nu+kN z`Wg&6cXA}8TbaP;a)i*v!3P&Y6b;c_OI5Yxc`akAtF>Aiq}scLU)Yjig~$I}n<Eko zpkiyeG*+iBlKuh>(I;%+vAUg#rPO?H;y|c}Vij6=RQfvtTSR<Z96fU!EzyS=iFG0I z)eqehS7(n&&i}Wb^6$4EqWU)$>sKd(F0fo9Y{vQr+`XrqG3H9`SiWObl#C(%7;{P{ z{JOEoP<d0N;Cjabh3N|y7ID4E#<os<4ID$+oG|Ue&m?&a=G!Nm0>Pq%3(=}FGN)x^ z#J}<3vv+p5sfh#OSU<y!WgL0n#-XpjqJD5;omS&G<x1C-oJ|v3osxYmY)L0dY`EI$ zQ(1K*)Miz<n|inoAMipj>HSd`4?N0(l^a9^Pec*Yh8$Sx-rYjN(jjZiNzOGw(vDSx zR@Us<N@Z2c%f_g&vB~lN9oG=mZ-bSF=YRBnET^vZ=PC=u%F?o1p?%7xW7HYpmkxKJ z;)8mL+F=Z4MXUx7hx0Ba8^;HLrUSlRlG>OW%fu^s*`NmoE1rXMA`LzTerXU(eE99p zz+yel@73l*)$h}cD&=x=;s!=>0&`4c%toBjVIh?T@6htdH4CBFo|o4g)>VSXQ`xvO zT#YG+S8Y)>wQ*HN18S$!q*^X&qQjFTSki_l1<AL{CsKni2=v@al_jtHFBHE!6<`-& z*y&6gaJKsFt7QEFA0lql|Bl!UjqsM2P_<MG$C!!Sr{U4bM_wPP`BJL5FjBsPcWbV7 z-R2*WQY|X^b#@;WLc->7WI1HVj)nj&MQrg@#8<vd$j)j!1#xlzs8f<=B5+QxJaq3J z5ixzNH90@L<0Q{EBWJE&HaGH=G%J?^6_KK%)IhD?dgN96ASr72-+`+>To0#2!d=Jv zy*AoLC8&p2hEL;Z2vryVyDzSQ+|g;{A40g*d4MRLw}gWw7k;KlP3&hRESe+1$6!6S zN4>1$`Zx5;SQztd8`qbM&H4#fsjAexmIV)+@yVVSF{o>CXAG1VzImI4ruAXQyHA=A zmEYH0DRSw0a>woQ?KZ66H8{IrK`|=t)syVuaQVq2R_(p|F!<XE*94-22F^QBk9wh@ zQ57kdamr&uTU9&(35h)eOFkn(izSPS=qvT#+MrKs^TZF_3s|z-c`slKgx5{rf7nTM zKjhq&z(~BQr3qp)q+I^4g8<%>9efKfF|zeZCCD;Ic{8Yp;jAA<t&863t!2SMPXwhj z3%)iEVyIgX!Xj<nI@lSsKO;LqCi_^QJEszpHfFSITM?!OAqwJ$k%PcAEV2nAR<8?= z!1pUhHKB6_SxxT+0oMa8*@R&yX8y|;X$Xh4*x9e2f^i}ErWYPe3Nf*a%!Iz$G{pVn zz+_l(u%@(>+(pw4%zm*<SD_X<Son#N0J%FFmbYYa#HG@rOJ|v(mNf`V{?T<9>`s*2 z4O}+`|E1iTpMl#DL%g-SQba*ot>1+uV$o5ZzqkA3-QH~VkgXpt9TzygHY^tVJgvu4 z8T&ki+z1$HUQTYj_FTp(X$2+e_Et`hh~~ze#y}QdNq2Tt8Px~HJk+eh7*pTg-6>>( z4ebFhZ1Zn+O`sss9}f#le#-3@D3j@LA0Lkq%C^xwH;`HspY$Uke)}OZc)>>dMS;Do zt&xDF@4%fZ6;(w|gt&7%ooJsc0oO=(9HwUbKH}~=0FzC3mHA>5phkvKq|D|l9k*MN zm1f=MlsxKYraDddK2~F?1xtgxHb3T0G7fDmk*BTI_ECusK4H{#caW8Ze)n4^{r!gr zy8@CK3C2nYDGW;n^u?H&v~d=!J5~PGLm+LAwMVTtFv05d#CbK0A12b4@yrE!eX5o^ zp_}3q#N-1@7oSq6Zp)rOdawQi%XsQ4?Sfh2?+pn(u|AbWPK<W7%v&bf5e3SOAuS_s zmU1xM=k`a&S0?%;S90B$pz}crvRCaO)zKL-|IA8Y<~=W8GC&?*ZhXr^L7H~F5w5d$ z<$BtqqUbWMe&N|fUzSo1+2>t*GjWm`ZKtHKOCg+OlfdqPVNYt|XDo7gI*ePDH3(^w z5yJ^ITCaBpM3yPxeT!%pKdDgSGZwp!sL2ZtyW4fhB<sdk`u?=a5+KEBTvAh2T#MY| zksn&Te`2Nb3!T$FWqo2)Y?x7T&YZWQ-*<vSt#Q!MzsHv_!F9$E8VS{yfi%QjfI}F7 zxDg)S@|IcrXD+O8@xC?(r%Vp^>TIzC)$+9Zq>TX6YVYb)_N;`%i=2GFx7+XVEla=H zAb>)kv`Ex8OcvSsag$ABUb3gpmVfPUkGA&yb6zu!{lD8{^yFe6GTL;Gg7D-XA1$HC ziaG|3F^mY{D73prQEh;FEWh+d?|4K;XHRDH+o)OVei#|@*lFy~b*FWm_>9!tmEL6_ zhWl(x0L4x0A*9tKevh8q{ekdo;CZ!%>}}pq13Y+oA8H5y&9SO-9}nJ@)e$~HqDFKK zSbtRSl~X&}OBg=0!=%G!xh$;orF6Et^B}&r4I`_CN{Arkz2I)xf@qjRFsTdE6JvW2 zPS?o8|1A$i`@=#t02|D1j{xWgo5P2U6kHx7B!_1QBKwi=|51XsV!>iSZZ?IPpnXA( z0?_&wr|`QYH1sv#dJ=(+N(wARTyIZOB6UK1Q$BG>tO=JItp1GKpvr{M_*fn2tK#MK zf{56ha3wde**=pdKg5yv&DQUO(i+2=dp@Rda7eF^p&VPzc$8;fhMd<Pe5^_#+IpZ= z4C=rThWPM}o%x~$C_M%AZ*^{J^-;s$%@a7XDK#SQx!yH*r}^}Qr^R*H1xNlH)z$WY zZ*bktthJu~o87yZnJfXhoxTf-rq?Z!e|_Qj6_Mtwmu&Ym(nT_Pdf`rocVT5jR&Y3_ zVgAosv_IK~^w)gs)26Ob`WYkcyd~<0yGuTXm~VwEU+U~i?xs)A%*@U@YRG1yl>0=c zE;Z8DAitf(Z4#9lTBXjCmAG;Ai@k!!qK*M7$9KN5`$rW7N8YPWcz^n?CoRGE4;5*q zACbK#MnNp>Uz%TxucFD&(ZVad<NG>{Xv}_rCMIUFP>10JMCjAH1yVxcx_%H}#v0RD zoh7cI5TCtiGo(M7X@Enu>EaN=uaAfoFhM1E!8E)tbFqqn1a1!9Da>e-jvVTcb^7U8 zqqV9@_MgkiFXi>#J#Jt3ew@z7t(Nr{Q~qaME6bu3A%9N7lJzJEY!@-XG7zZ|f{?8a z;Q2P03Buj|S`?wWdiAoO-QzUVE~#>}UhQ&uxTJbnwrr0z+Nb4>GL_QlS2q^)jx1di zIF{U1fV){!azV=rpVeQtUakCHs5l@j7+!funp^e95EmaH6F#Z8e@#pz7~A$|9JJ`| zvweAZ{GM9$iJ#V|{Y{XtGn2#Imrbcz_0LaDe>!%+>1a<N%j&7#0|zRmKj<uYxGf#O zX}8CIV<gc8o%Ez8?uJp3Ko<~n5^v*AL;MBCa^EK&gL|ToHKhZ-u*yptU*#fL6E0)j zDBe*hxP|4$5FV6C``M=9Lfxj_Jm>eC%+Ch+n-D&C`FOBm{$lU<QP|l{$Q8cz9L8tT z5>pF)ZG3#uEI+Q!1Hyw4#3^6b45LJw3zWX4&)YL_K4@7c_&`GkP69_{SxVM1BwEi; zXD0?vs@ac5ITV7=KW*Ft=kO4YSir(V<zz?Hr|VCYfb`}UH>JU!l*LTgR8~}nH=Wrm zoHfkIjzkY7p!7siEf2e&i%i<Ho~s;?S`WoE;7qh5nMMMBU{8V}U+5J-%Gmu{4Dt}* zzAiDK-q*8h=f;4vzx`kC|4fZ1@MHgS-+*{1F-0;QUVat`tK^Ygx!-UP8RcHL0)sRQ zmNerc0q%q4O6D9#K0<*sI6~gMnaCzvUN$>Q=0NJ+SdD>5(0nHj;#b(Y`0><9tTS77 zE`UdLTg|P&1i(bxenE+a^C@nueeV~AQw5Him?!*-5&~kViKDlm@F>)kmRMRv?U(%T z5Kw^#Xc|i{&=GGzh~&S&zat0F{QEu2B=+K;He}rUsqo+>!;hfa!w(Zg#Ag2{9>Y)_ zT1;8i^4ijTVf(SZ|58#v)%~A*?_y$%<BU_gzTJr}+wkCRNM@hB;vqK`(nYJdwjwV5 zy^w>8>j^y*6F-Gh|7)$;N!Iyqe-Xc9JcQ_FaLx@IE8*pL0geaTNf$lw?n$KEt2!?D z-(ZtHL;bV8!JoHJ$#zp$tZh+QV#DKSXLD&VoDIt1o<Z2t9=#dwvRh{ox1~y3sH2GN zR3DE*kOjjID4vx#2>xffMamcn@nK<qk0ZdZ)@?Zd_@P^!BEOwe7cN|+qszANGU45b zZpY)acUPO1nEmcs`(*ggW^%q%O509x3%P-Jv^^bl&6PdO4=*~ZyX_3wXnRx4cpD)^ zw#XPmswC5g8Nn*1&Pw?A@852GrEc1E6qr?e*50T0>PF-;`d+%9Ro&E*s-HGxYBF*) zI*3+r_s30R&6lmeh@l5}{y5%xGFr3uT|e|Ia^rD;9x(zJa+)PPyW~-SuIicaX@0bx z8lM4gz}a6&-8URL{5XhFcS=V<RJ^~6dm~n0X}c&NRTWfvHLULV*Ex*C<U1{+Bk0ZP z{I9Xz31yhvAsM>zpi?Xs6s+H`CpB|~^~rF~kFm5DU2qOl@7tZ3jk2H!lUZ3UWI=)@ znF*c{f?Tm^j3F*)-C{u}&taVYxLoNJODP;0I{0{QLqD!4f2h~0>b*)g_5_EjkaO~b zkLJ%E-;R~^%?+-7$UNIz;Id&5nWiaxZANg_Df!OLSi1|BFKy?2gTfCZ<mK(n7ZQy) zQc^wg-w-e)jrGd`xwn-zKsT;Lk@M!2Zxj^A6A4b{5icq334B_1E6^Rj8JusO@F7Up z^l$9<H7UNsHDTTkk%Jt5_7qj`8WhhW#A@MPw`<PtJ>}5JL^6PW(!bZ=>xaN2eF*jl zK^C4C(&4Z;3>^QftoGYH`%#bkLSd+vNH!um?Pe%`=wE>{$yB#fj0Comc$qA$U$He9 zyb`{3^qm3njuUY&I|Ua4WG9Jhbhrcnu^+T}OAMxY!!IL{Eq@U232LCyoG``Dh|;~B zexwE*1TLRmJb?%OB4j;Ml3KQ%;Z8X1fjb1GKcu5T?m_F^4noL=8-0C944P%pt+0`O z>hD2`EkgEMVh}*GBEf1<BatmKJ&chxG8-+<0-@C|6-cmId`A-?v`K7`@*Yx?2XbNA z*4v;<<Uqq+G5ec6L?&owdjBD{6G>|XCZbOuwtPPW$wy}7Bc$De4e#E{`tn87*FgwF zVgORG`1up+Zr0{_=^7me_opUW;-&RwNZhXrQFb`+?57un)AkTV>&<&1f9&9@$R5At z=1uPHJ(zrM<C$4?#QK<gk+5X=AIc#4HLAwVMEN2cY>~~<Eo;sjyl2M_CfQad<(XyB z|NQ4U`Cjvf^i(~S>BkY_QanZ23&S7(J|cB{qBzoCHU!~P+^ClM^sIul_L0tSwd#k? zOHWc6FEj;wuI6}HEzHd?|DEex#pSohuZ+oi<<~zzs)J<CSKraEG^<Krrf;%%_Q6tn zeo75LTj7XvQgxO;fv>gc2h|;CIahh-FDp%(1+&(T9iBl{-}FGYHdOLWGAI4kHL}?K z@R{*oV4N>b(ESjPd2W+_M9p#9JJDJ4*BDsFq6e9W-_iS7WO#;NK_y_V?KDP+!RIS4 zp$>m4#2*hzn=<J8l^m>0UTDv5{-L!o(qY~I`?M;SGH_CN{L`WCGOf8eC+d!Ky+9*n z|EWRhpi+#X1_(!gIwF)64~_ocES$-fP^U0yBX8m3EAh2abeGOwCUi!xa&x+A+fIJu zz#!M?1zWbIB*Ke$<p@gtD=~77XL}Z?r*m61xkhgCGZF%KFvJQYXh*KA899VsZ9~c{ zuYST3Yq}T_$VGSR-aS!XQ);~W8*$@I=OwH};P@MDsUqLei$LE|*R+zK>l$NJrMKHF zAK!vN+kXdeQx+cK4es0n(+LlN^9n`^)IYr4cM1|0h0tVi-vV>s^~MhnLq;&co>e`U zxJPm1j=$j$g%pGosHV>%!TCoBOu0ybGjGmTnrlvUe;BQH#LD|j9`b`cg<SO`24<yW zuXKC-?Fuk&e5xNZNc7yZEm><^$)o6J);+%w;!_?wt(R<Sd#=`Fq4LS}7sr@@<+o?k zFu|hqL}~MKh!o-UV<#Bi^|^}F#X$f7Fa1peRC}e+SSXuU;t^AzA??B`NYy*?Gs_qu z%?IhSqInm#cnD#$D^!F-Z*sI)CWP^eaGHQ=y?YbY=HwDKWCHV{?A;PU)ZrPzlL&^q zytM!fvE66!f2Kr-8BB2Hm29guZ$}Cz5kWjPeHMn0u&sbTb*FR+rTD+l6KZ7Q9EFpW zjdElhR(2NW*YPwQn&JD6E+L$fr(mq7^G%XM>e$`j_vns430ZNf*A5ey1MY79C;WR; zkc+6Q{H~-Vhyp-hyPYrjWuXJazTL%|kRu7Jrsb(Nh%d1x5nB%8J8yPSJB@eYNHaAf zTIQRGxwcIK1Ue@m%aPJZu--_Rz2BKh?rxy=!L7XFQxu5vj2JTpx<EM6;W{2to~en_ z!^v!Ps5Z{&=AAvA06_U*97#JS6F(yc0SWGic?r57jbwL{8vXkp+rJO`L1xN7eXJj8 zM`~!^ZhT@$h4`o^LgCegkcyTGL7!PEZs$`+>F#}G5Yp0GHK3ZG{P>acmuY26%kzSv z!9;h8Yx46BH_E#u797@$K7FqCQpvYHY58}{14-ZlE~>c!Gm0r^j8~>0xg5Ypjb55I z#fn}oH`eW}T5iN;w#4w)-B~=H8%K*jnp5*R`sZ~;LB3uz`GUUTQgif5j=1TD`<Ea= zwg|-?n#QvAe`ecH4UeiMO^;ELo}9w7)lid?wxIb1NBUEU8SP1ONZ%G%7h`K}VXr(~ z%qv=}uyS6YwEvZEgr1aqSKbu=$<7uNmh&fU4|R;sytNN<=H)+q-8WLJn5DAd&Ph9K ziU)3^pOI1j((m&4GFk_D#4yf{j_8<$gK?9aj%bLRnlle%|9b&Z@|(V0reX4_l*Quq zLEZCP5{<hm^2&Fw^~Tz~AzpR$7mk9z;|2l<;<v<*u)o7l;tX;T8{i{>icW!^ml~>$ zM3%4sA2BKRH=NNYobx=i4{#ke<nwLSgyfe`%?0eeOj^Y^j-}Ai9Jn2+=-}#_xT(i{ zyS&tZedUMosgN8_I&_i(za$`yA!{7RX9E}42uaYtt|7!sX?|KlcUhPc8t@CWZ*gHF zPzt`jU44x-SU9z$aPDYd>7UrsTi&g+>EacI<zNUA3cW3MKY2ogVwKitN>Oce-k4TV zZ9HMkm8ofK^c$)FnoZHeZ^^S+{5g_m?x|eZ*WkBZQbi{>5a2-ST`;5q6I3mR+R0$c z)dgGzYMvMpY(9Q~iqwW-op=~MO@vOqmY8D`W;HPJeU+%q;rXum4s!okkEvqW)z+P0 z4NXHeHK%j-Rsvt2klvM;oe)S3@5qX_qzFc*hm$!UMZD0R?)!Z!3Q$Z@3ZmB>i2JGj zm?F!f7{Vc8rH}-Fc_hmXOhG?$Brr-1kH}tNam}Mf9W0o#IkQenI$%ggk9We1@ShnV z?-H2#G=bH7%Goc3lTA!g-R(lU?I}o=EX%m^xq)aKAv1)NgM)KTc^I|SLb`z<Y)?-@ z%&)(E37*r<GpGX$0KNU#^1UezSrBSf_Wd6RKn4DQ9XTwatqBni`nj|LTSAvX+*!=d zK&OpR3G!!eF&kt9(ggES2v|5w@ZJR`#l%lw_r@pbyz7suK>mBbHcf`~#1it;xZ<8@ z6+m;P0`(_qCywtK%2Y@}tfVTMya;Ie3Ql&%?I2-(=C>0<O#1#3gJ*KO8jC<SMf`F6 zECg%M=M`BOW6fLrDM*Blyup~mbDthkI(<2Dr8*F#MC^P|LYN6pGP=TFs_>G7{OoD6 zq}Hx-OkfDvf5?I$TmCauuNA)cllqQTPOMt(B+>f3v3SttI;B8Ws2>{sM;u446{T{b zkoU?mp6vLJaIoKuj_Gtw89Gtabmnigfl-X$f(G>sW}2L|_`6Y+z3yu~o~H!jJt7>N zmfQos9U03`&*G*T{2{?`B0FGyZ2n@7BRWYsNGOm5-L`}IOLaDUKhLAPl&k0O(AHnZ zm5$0co}~@<C`{>5Ruf>=7unL=^{?)fQl$Erc!fi)U_os9J@3hjkBlwL<|YM{kEPjP znS8OwQk(E>y8;F?CXg%VLf{%J6)DmW9b8TrjOIXl%uwrPP<Ncc1WPIJyQ{{VbLC}U z&do2seA#NR-xid7ZU8mfO02ZDtXwfDrZPVCxa2}Io}WQ`DY~iK^pCs8+s?O#uL|ud zXV83zxGj0Eh6=J~0>33#6@fLhJ7z~p^!hDTG+;H=_upScb^+t?Q|<Xvn+t;nQ?I7a zcCQgbzrsSN4s)3Jx$|F+H5L_hX|Xx@$jJ&!y(!xGg}v^u$6LWtJ_Y%Rwm#e2AH~;y ze%+b<$bbnhq9kxxA!Pq3WI`5DpEw+;U<KZ0Hb|4AC-fEEH~-YlG1#TzN*&*+^>jFH zt#xrxl;yIu{u*Zo>E_i{4@rylzXuwXdux1TXQo9Xm}Y+bMn<M461f$=Rfbh%ab|Nb zgDao2{DjQZ8fKJ}tbxTVM+OvF$%O&JP<9v)D|tx7IC%)4L8+MyK(#Y){RnB<50!|* zm>b7WOPUY%zPQfYX*<S!@{vVV-pE3IgR_9sN@z&fy<y)6;~jXNT?>{T7j)oQt;}pS zw(6uQ=3eE~*1Vyh$A^hsvybsEye+Z?vAKwQh7tJy@rfLeEdZj^06xye>477<-rcNd zqju`Iy2EB1CtFz-^)XmQEV8O3=zSz1kyGTO#OI?9HQgh9l@vw4oEmNuRApN@IvY0< z+&oRHHo1AWO#_Et%w0fgj^r-(Gt?|e@bMsIdrtiBH#)rjH3HlmDb~nnJT)=;!oHE% z##!~=({=z)1Cgw!P-lllJ#N4tp{)clL~8OGJcJ~6sG>;&Lg6=}nt>1x4uCTugB=an z&r>u3l@@3I<^0}lF?<!bo)qLIlEk!hR#U;jxUCSmpzM539(E1b92^`)_LB>m0Y3Pj z?Ql#d29X`zHxUTf__(Rj63@{P<Xz|C#;{M~+c%4ygNv3*eivbQ5`b7qzdX)Hk2eO) zAK<|F;{uV1eR&@h*4aV0+>DghpCzPSpawLN7vDMHqXV9%_VOPHo()6HJ8blH7?e}* zo+4H<+;+d1U9XJvLW<ngWJ^l&++4F5CfM&V%rA;k_qO`!He}Yxur2(>`kjjX+S^Mn zpRd4F{p%~-Zr=LRCnirADUwEYEm8xVl;a%waW!|?JZLNX{hU5)>XpB@mi+X#I{bL? zwa&&b#=p3=kM_7V^8ed5M+|@OCS!ujFQL}wa87s1A6|4d`9k%g!ejdQ>hkknt)+j; zui6$g>&^)WKTD$Z?3MUB`DobS11Z_SDl0qti5FJeEP?+$)#~w8F`FC@q-KkR)E(^D zhuW0zl8UIrSwxAAlC=Kjhv`D&6_&VXuBAPelD_w3<35%QA9W~yZz2v#Lleu-3wSGQ zN^jm{Zzc5g9Q?#-x6?&Y*4-|<C%;3F&tHk%A`e}(VH}$8_)RrIwQmIs=BFTvzxV`X zvoT4Rl2igV^<T$j@V&waSsH=}b|HT4#KgE?M5=7OZ9aouGi(v8!Js2a7yfYb@D^=j zo5qWljvt`gW8-Bbuz>*vbRdbaLGOK$4ZSMnmgV8sxyd(7?eRG)%{RJzs|0zx9`x~0 zcV|b&OCF@Wmd=-6dF#D})R(uP{3h;Rw=K?1GdIzHpj%}+J3@6{6)WqgxrGE5P@{z~ z@KR05;K~C6;Hq#?!Sk7+0WStEKyg0a7V9z55yfHPm3rIo6!DF~Z)=W=j<t@z>PmI+ zKgsR=!&*d1V=cRu!2v_N4ru7jr;^hhAC&CsIO<9zN`Dur5wYOd;NXE^;Akc2Fsju- zCCt!Cn3934LfnlkoiL>Qo9Lu5j`VD-bnXy%0tL}RSF6WX8Me_M%e*9d=Hhlw5wlvA zupN{F`d(~C7m&;r(<`-d89ybJ9Nwl}b*DF`{++LH%E`y2NuXZ;evPp>+QnA4$*6y~ zmW$=zk7fUfgL}s?oSr@>A=h;9FTYcNA0wfv9|QhYLv>6|dFg$jbL7xf_q_gZ9F?if z;Nxf1^^1oj0v)t)%!smu7sCkx^_x_6!_0VU7S)aCNNgIta2B?lqDa7=cnpsGHwcuM zhL1C;lZII2cfF=+e>UL0xy<Ev5_CoVnDq8BD#Fr$cEMvt;yEr<P728q)!L2ddX3#~ z)<o*8&7jamb_EXnIV_$j_pJgeL8tpAcm@*(_A~>~zw_HNkY+~h$61pC$Dbq=&ip@n zF$Akt-WI`ko*g-55gC9m9D{9wYuCL@-xg!OYPy9Pm4W5ofBD7*paJVHu3<O@UHAwu zW4|k*ydXfd|KK-(bjQ#)2;%jrrs|+tW=>TIZVt<+rmBHZpbfrq6sAZ$?}IjXX_kDh zfW|^zXysLxVL;_Bi7>{;(Z|NPAVj50*&}>UUdpd+o!)WVBhNBP+U)H-Mhx2ws7PNu z83?D#`lIP&X#C=RMN5CAx4W7KeLi9qZ&dr2oqt@mQ=U;-<^i7GvF~QEZQQbgV*$Av zvI{xY2G`mj&2?uCwcq!(jgX$KYitap>G%zQ3`Hse+f#OeFSH2wW?{->ozqxi=&gPe ztJ{a#<Jsxv#@Iv2E5&Di@7RVMoty7uOAK6{6!^Vx&T?6u>Fh8?gJCFfh0Uc$pU8K# zaHx!eY|)3q7d?k+0w{{6073vE`5Yz;J*6U4d?*+OaXjpZ#k5ILh3SY_W9d58#pFf9 zCF_S?#kgxCojlp>P$v<o)!K2sIO;>iQii;wuvVlebLO~ULU-C7rnXu;M&UK`d!q~2 zDAUN}(BBj*gC%QNpmLgxehkEsO+{M5>t17eV$P?)`hQNDO_E$(Hq)mfmH9hXv}eeY zw3TOM`VY}C=^JFMBI$MKroZfAH(oMdTzx}(tN6F8t^aE-bn?dmf+vQ^maR4(4v~wa zu;SRGleJ2#P_jconm=7z`HhO;3W~CGl%(9S9wcUWrkwXdLrX$e``@mv%RL!&BRxsB zEa{)H$46CEm1J%+`et=St?>=1xU2d<;JPkf`*vcqX2g4$!|2s|VRAH0x=j_N-BO?) ztq3{c`^LAvdYls%9dSi95UE?l_?1zkYRTo)q%0b|ya1%h8j)cNU+&>EkHeNfH|^4Y z)hhOOVXkiA^TX!$(x)krFVBc<jZL33Xx!wi^8T&+*}m`mQ&mXinx^_iwzr93<zrE1 zduFC)to~W8hfU+u-5=W{n9qy^h;Z6SgJd{Cw8x){=x`21j4uv@jJAf7K<8A-OhvlL zjj!eWZi-Hhy&hrDo{#lrrX0Ovh0@=BelfA)r*yp3tj6v3)Ny01S6gSw^pj^5<zPW~ zTZ&mwi>PGZRX*LU<E7@VlI<fE)!t9S5UOa2t^F^hE^%&%0VMe5n<RdBCyj#GPn&c| z1ippewt%&E_}r;KhAq#wM$&&W)Ci(apK@!!R~6hrGz1HF$Xt??>^eFEJu{x++8`hR zy)h+$dD{5^KI5CsrX1i1fF46$YRUHmPk&DQZ0&b?C7=ri=I{QG9Rzmaz5dO|Ca_m& z>pb4)7OX&F2(157N`oFm9|rC2+@K)Xh@GqtW(KU0g6P)#6<2=7+K7hW@AI`n05hsk zI-wE;3qE8kC9<N0tp4Ur>u;EdJ6D+qeHou&fym!Q3c^kqW;?yFN}6ST&D@}JKI3Mp z^)Q7~P=DyY@mG?<X+)#B{mutSIpOC9wIyP%<4WQ5?gcgR5JGx4^7_U2drDHD?K`j* zyr*<hDdA(lkMR=KL;t<4*xaDIN~1pK5;9^NiHHa4tTl}|ejJdFe;>ZdBIORi;gf}6 z*2B00*7B^M00-1uMR@_FNzRC(^8Pbc<;gxiUm>U8hvtlU34RH(vmd5<G00N?V&z<9 zn23;h^7u^dgPl_6=A6jMfq}g@8J&H6xUzP(mTzwQe_%HGRfHwlnPJjjKn(pyLX_FA zx@^0q^V37c0;_vIJ!`M->7=gdZSxz|Uc#(>Y(}g#15L!U`sP>{_q;-v{(SdeZrf^J zSXp=O5q#`n`P|pmISWSyfXK=X9KRxHVI@{J+E^8Rx|5E$rvNal=+Z6OxhUP%D|T5* zJey53HQ<^{XL$~ylJYLKm;b{!DI_k#c2T1#xxat`Z{j^z88k+h7huenFBlfLpOu`= zN$5MX3)dZJQ{<?bh8Hrf4Bx!>p2Hl(3;DwC?|qBM@FX*l+C0@BxsMK<Ih86Dl1>$6 zvw}lzZIzWDG_fKcE_?G9j(+YOmT^M1sP;<&NN@G1NIn#Vp?X$)_BK*iF+z)9Or=02 zTCuV`tWSnWhq_+}_qk|A1WsN#k)5kWUW^Z<iIcaq%;f*Ee%m;$rKR}lak-QLSB2W3 z0Q>8^8`GC&`#);Kg!5z8_GLQQC9~*}x)es@)|$Hjo(*E|An#sHk(jHN!H@QcB4h(@ z&{e{-KRUFy6g_(oZ|5I8qVoP!<MaAV=ATYQ{3Ui;+e3a40ln@x9Wg0EzF+}ei41DC zZrno|m2|eM@6w}huHO-BeCQXLe-EGE{aTKJw#I$BkLlNUnq)kE3mRBv@)>R(%|-YU zE0$u)-Dlu#&*!uND<?>gGol4Mu592x!(;b*j`_>s(sZuDt|k|Y1b5!(emT~4I{q*d zw5Qux3TRA|2g#tX%w^~C*KXj1Dg~K87}BSQh7Msc>f6_qex?JX@B|M&N~q>g7~{1n zIyBi2Lp&yVoDvSZ$2KcO75@9v%SfEfjZ6gMfP*(QgOZTY_w{z=zNLVgr01;*+6`}5 z(@tQCr=0$cap8y}`P+Ae(8>-;7zCdBvf%BoA0aAP08#xRzp#Y~{(>og;`*{z4Ga$k zt^c2D5ULvDZ51Ax^ns4J9SUmAne<;ZRQ;zej$r}w&q?u~dq}Wd-4|BEjaRRCejrNh zSxRW@(?eiPa21AVGe&~Wo~HBgr@3ZQ@r8x2jhH(~EWI+CEQIlU{YZ3w=jFOG^2tOh zx&Kf{K8&qzfZQzWPlC*m`R*)EJ`S)Z4&lIoq>Cmye&)xkL*9z{6)Ke12;<ajH;%p# zD)V?IQyJB2SJEweVYrghYl7;2aI&EP%;~Y8_##<vUU!*k?&Kr&>w9xK6*bK<Md$M^ zywBDiiOmY_-D@bmP~bB7X8rb`AWXVH5e)n7q%u7xbtL$O4$AmWM*mI1kw4>`4kxzf z&kw6NZ@u<9B)6_O-7nvL$WNk3%zbv3o2DWoqtB}RV@SZ~wF9>|D<ma)M&=fnxBKPk zh+0yJ>aaLI9)!dO+9+=<QjRszMw9U~UT=*wJwB#Mh_z%5#72av5#{B?KD0Qia<msu zR5PSRdMkv*Hags8+ios?X17X5Im1kDrlx2(OI*pu8%QS)Z1!WwU2ul4g4H_Xr$X38 zk$Y2j_GP6xIF?jj&5IKA2`|RS6XhoaJo+V3##<{1o;*zpZtD+j%|hY_6=?vTaPN&L z{?x=M(5@fk4f#EDW%%8d=o6&9POd}3R`Rx7m%puB^YgSGh<zS?TGUvHwueVbS!I0Z zPFxm_5OndfQ=HkzR8~N(HEbB83Z|$8@I{9)B+KLYL+%!c(p)hsLGo3vM$uvnpaUxu zgbd=M1hR7!OKeo3s7$-J{EH!bzAb7aWV|Fwx@X$^2>I;EobTa=q@|`Ho{}4Lt!!Lo z9#YJKno#mqf6bDRacn3crL`(0n`cMor@{#nC;a3D_)mlAh&7tvyRcRU6mWmqk-UgW zhd%2`8X!Y<o-qL=i;&Gl(17qy4Vu?5#PQ4XzP^dq&U<PTxrcH)W#k=+SH#@U4?Fs0 zs6|uX$WjPp#d%$%T4~>C`APT@5nZC<@c_GKkE-F}xWC7_y5YcT-%^OF>BHb(+WGxL zmgza4-i4!_FyE4PIP&Qa3W65<#0l8q83<|CfYnWvdtf*_x{U)d#QHPp4EVA>a1V(8 zT!qR5L;KYLIl=!DgE|0+gQ2aWWb~{OhLE!7c9{;mI$o46m>QF38oM?V@IZ%#d0<HM zatP0Lup&{rCMuw<Z9v!|*RlI}`_1bY(7`SvxM?AjH1s|r!R8=zn0&;LO_lKa|K*8| zO3RYp*;l=m{vm`fyY)g&x(u<pp;(3?u^i9hLLnlpM6u0gSz&N*fZA!qVjVO3ql6k^ z;5mw4qA~oYqvOr0QNFl=$oyUrhcc>|UG4)at570#BLRuEt#mgsKjyMX^rv(x(>Iqw ztXgA)ff=xV^7(sAe{3e>C`1oF)<B<Tr+q%Qz_#cYCabpNffuEEZ0jh3@_xq>2GT76 zoos*xK1U2Gotj7!e9XgTAo1_Z1(CP2#Rt_CVDVpECCZ%AOA@Y>a}X{n_-JKbd{|k% zv;H&bdu>U5{X6TV)F}28;@iH6$Tv<Dq1q9wpD!EL$b`K!J+6TAN+YT}p!9vH4;fmJ z6Yu)~Q61pHXD|gbYH%f;bsuz{atv+GUC)sIdUfb&(pQ!Aq|g~(+TfSfe3A{gJq`Xn z+Q^)D_*k9Zy*H1VewMvRx+v$^W!!a26%)L70SSKXiKv3zCn=1Aw2cr%4`FJKq=SyU z=fd9BX=xGtQyS`G7jv`b@N#3;V`AL$Pp;KLPO>TIU!_+Q!;_<_)bpErhu7Y`3%p%$ zoKst0L{$6W`>Sr3yK5ugja)E?$KdLT!cCnP2#6^o$$S>Zvt?sJo4=)>fguEaY2?1i ze#-Z9dFaS*!-a{G5a*lb4IhU+bCeI|ZFH9MW-OlAtT2x-dwk61JqP32;#r2ty3e0j zBJ_-teXj?en-S@HRHU(e0i)zXgrrOc81EVQ2)~r}<>4z3LR9ydirAk9=<@Pmww9pa z<++d}+uy!TGLENR;<=OVHeIpyUO*+t<4}D378pfNCh3LvykCtH&*;PB1{z<sQHRrX z%ia(Ra6l``<CJ(lz-`1lZ&{)}n+J$AakSq!6yF^sI?^(pe5dKQ^rhzEno@hN&^d52 zow$9h)~Tdyj(n5tor-$mxOJ95s?65k$_LYI-K}~7pC}evqIO4XA1puD=xy)#8nB4e zJw=GFVc=*pL3xd-oCfBM5G7Aca09=FtqmZo_E4(rQ(Vi>kBf*OVcD7Slf3V2C7`G} znvCWMuU)qcdZYffbnaTMNaH`@n`)EFc^Z=6t|{gPkvnX0w{<oIl9O!Gmk@ZeCl29@ z?qHNmo`q05sq;rZ<>pI=4N188&0nOvBlrfq8(aOVkoW=VVU+mA%gs%7Pa*ney9a_8 zj$LBZ-VCbWl-U17x4a$G&Y--`7^m_BpyY#hJT``b3BtRiA?-sDC^8dM8cYqK#r}cy zx(A@Def^jp9nsPbEP=~E`KXCIX8CTdFn+6*Lg_+m03E(}*znv*yj=$@@b81ST@MpP z{S0;s*--7MxBpWSJoANigL0VL0psz%bP>`)^n4&Yuw@4k?-1`|A+U9Cs^L3_*(ar> z-oS)otbz_+gkl|=2F>|u?a4ECAOo6@qj1XnX^0kn4>DyX4Ec{fN*wC_f-N7Xa<e*C z@JZ8>VIni8yUYH;?5K>rOK7-*UT-N6-xbs(<?=-gzTwMC7pH;!%dj*<8@gbz+uCfe znyx<yaByiNtUdqH;^J4z98$>V(NM0?aJ{o8rTCYn?*?kiRQpDdRp!GZtHt*dOoL4w zp%Qs!jZK*j-f_ej(wSR@W7?3ll*vJGOvKde4Ish%3<Sq8)Y_Pe6j*?$f>{0|q^Ev; z^#ti&IaF+(?BB_L_$!N7*s1)dUmZG3><*dbfAY%LJiI{L;&Fk}Qntx;67M;qL#xio zn3$#=rqx6}I`T#^)8HF368zof03j*@teqeoXAbD0-Ik_q<tFdU+SA@DKrge<E=$k# ze0|q5j=NhZ8tO}qdvd(@{OuH7y}OysCoMyGrZs92r_~E04W|LazNL)RO&et<u64|c zKXbl!;%(NQdm`uNmM>I@bN%|UGtNo~!e4h7z1Mc?pvo&(pFg7eMH}3BV@iZUdIeU! zKnCJyMb{I%4X^q;NtNH+V^+Q@4*z9;a^0;euu}R}x)s|*h}8GC5kv0;RR$tg<9o4+ zb6%%<=n{&R*f-u46kR=d`A||~$@f_aLmMO*OyK>0fEu+ycFtos+cL&*WQ|Ar{j*U> z`b2hMASa6&#Y<CJMW3NIK8Fwe)1mQ|l1aM@1kKDSiK9I#BDdERsMTuE-!1)dR`9o& zqON59LzVZ(Z+!<K1%j9RnDL7cW~p|72-hPW2Z)z>2{5y(H8i+S>Usb^b%cskM}ewc zLbc<Vs^X4FEuYOy>@4%rM8uiCQq$MC1{<8v&d4yM8&r&yJq5PSE*dsNIicDypEm!& z{I7Z>hHgliky4AfqqlR?cHRMU(|#*piQj#g(Mr7h>0=?gx$nIf5qB`&=V{0r2MA&C z89{VG%p0-+Ohg)|yb#p-0i5PPl%z*za0Jm1#7VslSDszOM3iuFsqld6W7idSf>s%$ z2tsxP6%P+amMw#k$RF97a!MI5_!Eh}3BDaNnEACw0kkt#;32pV9svEVkb<iq<GvtY z`yz%jESd!~S_JgH-$>VCP6z^J`7h{?gV_RN*UMvO_DMM@xtO~R8-TX+1s*2+p#X>s zR&Ga;wr5DeOU4RlYwk@FhkwKwSs<JhpZQU_f{Gt%3`lTQ2_$xjhpi(ugzlf^G8H(d zKVapTvon8j`z#LH)yz#Z0e-VrfhoHEGzG}@bQE7fXrLV*R3hQ{vE@NckR0=QUyl3A zUh*JZKjlA)SqN8Sp|9vlC_TP6?ZO@AY-ZI5@K^XRzHaxLhv5IC>AT~p`v3UPy%(3P zQ1&RhtYq(lA_<>T2^mpb*(0)Vh-8J3eKe?$y;mWUbwu_k^U5gPZ2G-@f4|>9r5+ED z#5wQx>-C%+rQruMjhPO<ky$UdCKC~iW(Wglt$Dqgl^S#Kk7=sG_q>r%Dc!N~Yg?;a z?k}}3;2wwMzYq8|*ewN-R&z0a>q9u%J(a!h{T^&#QPcWvuf!X$4~Dt!rP{jl&@!c& zj+WUR-r2sTT{?ahm6iVY<CeY}XIa;)|NI;<PxSiB4WIh)iBDDkYTG><648zswfHnD z4sXfPq83l1E59j;z>Jl2XqhiG`W0lWm&D@A6)Y0MZ65^OdAK(?uUu+ATv-w|DtT%w z{gS(n$+h7Tt*7|9FQ0-ipV)^jnpL}trn?4S-*vti^n2H4r-J56M!u|?Or)ZA)s*kP zjxr9la3>zF2eTvX0Yv%P_j}k~fwARLjfu!B^6!crr^kJrmh(HGg++b-bUK&&dGRzC zad={b<L3kUN4ofmt`~1$t@GjH!RPAEYE(0XcaNCiNLjK(@4UC^I6&Sq1gqfC2f8=^ zMlN~E!%}iIsKDxVA3SDMW6io(xtfJhHJ?dk$vU|3lPNxEceTo?#d!His;CE@l)Zan zC^++|fI3)^XxT-H=C43xEp=knZ&17C$;24+XW`>eP#D(@pI_yx)KAULmcMG$PF~(F ztE%GC#J#bO1*HS$e$BtQ*Bb*qb}45Oc`^6q(ti$FrSzEHVvZwyxmOp$Xoe--ez2;+ zgXDpPkmh!qh0aQo;j8PkL@Ao4i`5&&O0VN2&wXRzZOO=CqwMU=z@BLE8o$W<SFWe* zaKA*cPWWdU+g6oOKot7OzNy%u^k>?_GBImpwFcN8a76V)IC}}>m&XMEHqMT>y`uku z4H^0daVB!V*G#Yb4Ef26z*6NP{g#Av@vO$4O8%I3RT)gBZuA(Yw{0_uJUN|rY(y;O z7@TNCZ3FLFHt!P7mbrFsTZ!IE23@LlCkFH=r7kn?{O19YIj`Z-&(1*Rvsab~@c0>M zh2@4AM6Z114xvB>@+)>G+Rf+cj^Tm8FIWkdDa6RSS5gvna@$zw%u<x(re(Zr*i!5; z%B8=7iI+opTYjE`F!aYy5rY_DiMb356om1-)3AWYzi?=Uy>_*#h8IT=<U*>3<YFMd zK@fTYm^|KfI<rIuG>wj^!+aF!86Jz1RXHz$m2HfO1e)At6+S!xbm}mTv5xBrX^<7+ z;KOZo@DB(yLr6q-R~QB!W4NgftDJWMJiX!{jG4#<OAGKD7<U$N<#z6aID!QqP{364 zd<DrJ!D(aCVwrStfdJ-<h0Id4iQXU$BIi@kw{VBRw@}PX&D>`tItTgkx=U)Xlo>G@ zrvjDVY^_dXi(L8qlL3~tSyYhoo3O~9+TZLA-XHoG;l}Rp@uEugr-1IOuXu0#`%Ov8 z0o@}zo1nYorcMWQzT?o%l=xk{_NSG5bt-%QD!Ol8&Q@QaW$#Td>K*93)xu-tMTio4 zN;g#4HMl9vAF;#y^!}Z(@Du*m)DvzGNiuP?owgTg|I*)5IQw%IU=yM9AR^WE^eTM^ zDCGk1l9T?q0MOrd(mr6t86X#qffmgg8UYU@iuYvvbUZ0<T?6q}vSkWA^#v{a;`k~C zWQ9X~T{^h<hpl=>)y(6K!wmY!aa{G!@jy$O@B34Hh^_~YJY+&i+ByTR#2%ZxIK5m` z*0$e~X39#mEqQ%~TxcVufAa@bW0xJ;Cab$6G9@b>VT8}ibyz<|Kgba%w5+1UEf|^= z-&&%>2}@BzE9)Q@Z?<%+mu~|{7PY$S+RH}KbgGfD@3D<=Uws<Y`-h+5KO8@GXS<c0 zLahw8WxUSWYq;Y*D@S4%cZGg7uSJhP`CQwOj{Q~w%I_=*SR~H_SI&L9t3eqKb~=fC zN7%rL<dpn5l}<Y6rPFVw;sS-fmyHgjxO#`Q>z8ib@BUFXJbwG)AB_6~vuwdf$w>Nw zmAv};A44@88<!8CPnc+V4+dKidEbL;!=hjiN51Al%<7~?`*~s4ZOFMa2G}4tl~aDL zmWA5bv&yA&{<0W1w!zdEKjKdDK0s`#LW4M|xd_&xmx)xA#do<bb$@8jsH4Utz4U39 zIug{Khq*2c$`=+w<<s9lAhsN#YW?jgaVH4@0&h196=MIoyvdZUO8DW<`aBTdfpS4{ zSmd&oB$2llOVHrKko=-u*bt!~qp^TRb^w=?NM9l3b*j$*Q*Nhaj7OvIkiaO-v#Og0 zii-P3K~C)-%>^9r%q3(1K&%G`bZy~Kj4TDAQHFx_SCGh%D|&^3aMwZv>4XR|BO!p> zay*GC@3_<nqHOYM$f;B@MK?KN^CRYc=osj&_*5rLT4SO`tL^#WSCdLWmQMiCR<6WD zFt`^5PJlE$46G9V0Y@kZhR{+K3V351{#}$Q#!pOES#|<xL=tD53c;KW%=HzcPaw0b zPCOxU#oZ2wT)q#e#O36HeA&*wi}g3C5cimK?HgwI<}qGAL-x+7DgfTw?*r+5GM6Gz z=V}}!sp2@|Zr$DzXz@ghz4cQ*ZbTjH73>MAy*UZT1}RECTU?f&J<LeG_$W^GFZuQI z*xZ5a+(kc9Q%#ADuydRa!<RIbSP_^j!eZE~%s;)wui;*1P(x#VNeO=m2p3j)>n8V~ ze%*&U{&VrSobsX-?75Ct{`iPU(jW_*5Lt&AcD)CY1CGICDT^5LWjZ7x4MSSY#-L;7 ze@C2vZgF&u(&I+{skv7zGq1GOkGn3%j;<+V)#uH-*^9I0AD+K|c4abkXC&3vsN7e@ zO6qVHclESTyn-?F!pt>yK6keLQKd8+$XUhzu!xGFLJFiL4m#U{?nV1c3!gV{ntUwi zZQhq{wvlXg4w)6H57{m|U05VR$#$a5p7IghkIy5C=g_1Va|Iuh1aBWsZict+OVLNP z9x9q@IZ;|s0W9k9B6LuB1C*FTi0%?*G?TFyQu_-8{2J!{3m1r%>&-Is8KsQVU1wdt zI9z|MrYyR%aVRLz4YWqF7;^hQr1pmv@++k|8YF4aN|k!0J@w@aag=!VWBP8l^Q0F_ zih1T8B%1lvnbhShd8*`xg*R^CQwpt_8E8hu)=r4`VAt!<$bYt)P4q~~A&fhf6anp& zGw7{6uRw{qhq|yJY_>5s!TYT=ve;u|bFWg~B>sk}wDYC&OIcTaeCuTze~zCXRc74s zB=IdLK8#6sE4}lDF?eX(FJOP0;ZwHD=5whJnX!TV0cc;O^jI&CL}x_`u$Tw1Kx!#$ zNFD~&KZbHi6DJLEB<LNuXZZq_0Ywjb87k?~F$P3ws));OG^Z*vE2Zp7>Ky)GO0_CF zB(x~K=YsXJ>b0i{q|$ogf7vaDY2ZocBgZmz&L>v_h=#Xp<U?I(ZpPia3sC10CK%{< zvMxZ*9n~Iwr%uBrQkQQWCG!s9NUMgRzWDSnMWB$SMQ3WDTEmwr7*x~LO9kA&5@30z zMp*uuHY<Udh;V@yEcK+IXVfUKw!RIdmOzh6c4NE-EOK~}_VXb5j-XbTL<tln`&Pby zIliBOM-0eq;8p*^S_W=iyJW3i#3V719=#+F*Re#}PCos9@T}xhHx-Fv;<*T}To8vC z==4LJi~8U_#|uLwUqdf0Ji)kIEu9)&H5&jepYBARX($E^;-~Kce4%qarwjL-232Of zqXsX<1}r;5s7Eh^2!Wc<0ODY%2G6q}>z4gAqui>%47&xYJd|F8n|MJ&7NpLDpe%#X z<U6Nx*9G8CYaoD)5AJ&LYWUv0wKF(${gZ@qG1kvOO3@;IOBdsJv+bOpwZbci9+NE% z6<R3T2~PyvX0c0?y62vmdQJ+CD+iXu7>u6)Es|v8{txs+_k!Dy74p0L@Jo-LqFTvJ z?sLo!-sKe};j;mEdG|LH&xX9q)9#BOUq1};6MuKJ=UKmpo~Orkb#+zgcwOfuoX;BE zOkQ10?x?JJ;g!9*+;*`nzbDt7HcjTsc6XA4)Uz`R3WLwUOWjgk19T@EFrOZ=C+Hef z`wa{8ftU>4qk~`wKppDKxtMZGEH_jhK%)NjYDVgj2;*|~XrNoc=eCJkce?q(#z*y% zyUP>liK>qOF?#oRy0yw{Pq*05l0Cir<P-HLxgYvNY68AO#L4><C~a=!Y$+b?JN80H zn}YQHIO44G3PO|?jk%zPZ<<6qKHTjJfgEdo_VMP!Twz@i5#49V$HCDHu3Nk7F9nCi z^lnGl`(MzMe~_o|OfQb4?kfn)Tw_r@fAIzW*DYyD=bji77HCu-3#W%c6W@;k@7Gx0 zf+8$c0TSg%s!&XUxZy%%@bshS84m{^iG1cL7B(`wkjJ6wvwE|AK!c_mr=z@mBl7EH zcW1jMLZQ+7kf%0yGmvVbuYxC4ZJ0oZCK}+#5A&c}4HiT<h#B6}g(fojkiI9ORj-&> z{uM2i-EA2wsmn1Atq;AtQe=g9YNoOKTOv^U;QUXyE7aa_fVSI9S<$}_4%*uq-rbYi z4;aIcK3h?u^C~+jSYT~2OPBd-shnWVZ?!L9vk-E5so*5LSSpXuhdXn#zcMsfWAGNe z8I)HTm;QF;c<I_|uO1t^$tEazwK+>G<jmniy|6L;Q63?0;PyAW)<uh|pbHc1u&Y0K zSY7y#x_?+G#^lp^UGgW${Wu@g>J<B^_yJW2|61q-J=^!YtSX`JY1*r0I0?nA=;74M znBX0iF(ZLn)vd$v0ronz^vZjSssIlM?|bbigxE4qSRd#*D}zekRub|$kZ3nb37SF8 zaUcyZ9W;Paf`UA5O#;9P%y9iq09V7nadKF~1())|N5&vvmp_vQNmT`xI+%4YX%puc zs<UX&Z7n+hgh@T@pdfMZ4AASGKN_-eNPGs=a2=1XN0RlgVQLrjtpJKP$o*qo?M}ny zYi^D>Ktxq`MuJK|oNQ16c+VC8oPrtILm5Eh4@kpWZ@vP`adu=Nf@$!M0Vo0e#EUVb z+TT+iwc5h?wQ!Sf5!*iTDI3~h$fW8TaZac(;zSDw%W&t}jRiM!FvH&m?DD8CF<Bc1 zYrBgG+&MvwR%bZ3a4&z&dEp)64M|8tJU8H(;p<dp5TT=Mp!IoO7dI&S!6+ek*b@@? zNloGUnCFy1?42&8dz37Sa@*J4j665>_QuO^ljP=QS*gp9+4ALZ$Pk!U{lKDVk0Bds z6SEwsQI!#>q0fP6=|qjntN>i{XX*!YQ;&e#T4*%3U*v<h6hr!!CcpNrj{R|QEp=e7 z{!k<-#JHtEEtbjXO?#=(@ARjBJxRk@rs|EEmX*%_hS|P-bI;(=aZ3{>h<tC3uBNU* z>+FKamn7e(W-HTD5b6)4LY?hQaJp-h`nW93P6yNg3TD>JCdO}Te{HXY{lsj8E-bD3 zxc^s}!Cy_cGh6*+eClTW*wWM4_4?@RVj`E`RY#rJ@_FjV+3fd0<V$Ui_0CCK|9i!c z%V~A?mS1c3$ydd7ny>!?nFJk_Xei+8`mftzyj&r)c8CG9tBoU4S(f8aYTll)K%Eq) zYCWF+gxbg03@pCCY*2pqO^!ONE$U6!`Up#}b9xOQYxl{E^2!!rn@p7lbuY8}gvI%E zrtY7u)ZmSOHO>xeA3x-SeW;L<<NTvf(!VDrY7Hq&zKinD*Ii7)oY+0`x3@c1zOqv4 zRhIbpGv#7jxI3eYY}nVem#mK7v8L_q5%I#9S}`tUj|=0~igp8JeOC$#&J$T;rE94< z-(H`h$LI4kj-LGz45zAP{*^nPw`R$(`=RpVSleIih3s3YgtnnWUK*qLO|qBXcFwlK zCVALbbE<wvB!LgvQ>Fz~x0Ts-J4|vIl%*R>)>4Lh!Sy|(4tr{Z_%hLqZ`zDsG*1qj zcr@wha#s1BLx_Dm%$Uq-fBfNxoclcCGd*_tZ=9M<<7Gdn=2sQzH~TV;C-Fb<^!n=+ ztc4Dc59+1_m)%GI&S`^s3AYM5@Rjd_^B_o$I7szg0_Vk@xdiPx25*^Aelo$3pjRri zsC%>_6=`iAQoj0f48&mpneJF6Eh;lp+>?wMJ?sj{gZn&uqiKhkr}2*;(GE=N^A*6u zPJ`aw$vEoS<0TG8=|=1OK?l-Ih(#?Icxi$RMj)QQvPM9)!i40}!vdhq9-oVm)e#0> zRg&Mi&%lrNcSjp67ol0HSE!Db<oI2hlMjAJP55#nYq)4|Dh!@xK-u3=0Fu04M=zuO zlq|?%Vg~dzME>FiW_A6Ier7!C_Y}kc7M_ZP{62BJb!|iRp+MTkH;Y_IgJSA_a$W(# zN+ueN-?iS|Xj7uR!q+uE%xHSn(knXb93L3Xx$pJV<r}B4+VQ|kUs53n{F6imWDZfn zk{0#4v_)}BJI4R=@zX7(=OKcgB}ml+93Pe#Uc-JfT-@9$*C0KZBvE_C#Drg3{<V5% zLgJ5+pPjoGN{<WJn792dFPeTDfBvGqP)%lGOmlK+DHlu6aCr0w)&A(aCuTM+$|&30 zg-)d%Br2V;$Vig%GD~OCGCvQe%s>{GfFoia@;iGHdDPS10R;|o5WW9)7I=O5pS~(r zu?p1Kabmr?F|r<B4~aj@>Yj<n)igC|-A`GdRu?!}zOuP>?1}t!X-p-vXW)ABpWe<W z<JaI2DGq3)Ak@w7b%xHa=7x{ow&0KWtVWUFYOkuU4$taPk}|V#sPc(co5<hpL`zzr z%%(?%%&AD1BOpIvEGZInm@<IlHlyv;F}wDXGNFGKx|`(7Q3gw2RJic|=9d<cQ%cI? z7cYOth8%MY<~MD%{8H}}s`)o9w(ZgD>M?%(JZWKj8Nxa4qGQu&ptrDJOldaO(;u2R z39KjW*3@W2Fi0ZR8ifd-8Pq#-4Ud%qRpchN=mK&6stbgg*G~0yh<H~GGM!UMPn_lw z`qch(y_Nx6ZnYE3XrbX_BCweKpg8F_-xNLl=INl6;@<a(z94FC2U^L^{6a;FKaNbC zSpb(%s0$rxWentJ21MR$_V|YrXTyb_8>13uYIGZ28!Y%V8g=Vy?tXtV0+uI^tGTCV z${p;c8vOTqx~22`yTU!YMqhVHFL4&Xu%BJ#EY<g;CuZ%BVP(~yctf1oP6zLvNJ<`4 z@VN5x+E(PNnn8Qx?de{{Uull+$~Fzs+X?s;FSiE_V{pxxyDPk`6}_uIKXacwFbVrn z75*KFZh`q`K?dWOD-9dXQ;<f$K*MqrcSGv)Bd!KJ1Mdl!<fG&3C8aDWZahCe-|D57 z6`rl*tjMM>=bWT0{So+IM7slBNq=f4_eDrpOn-f{r?^3GRh#)|p0#bVtH$)>MX-!Z zlO*)ymG%AVH27H&{9f$~lcRkdPf!RQdH7y4P61?HfU7=el!BnKTPZG&NAGkLCX!g8 zQ6pMt#g=du_>VDZ8ijV4wD~b{c;@O3CM_?|16$ttke6t;4#{#TSDSMKTUmHciyr3^ zNWlVE==MtkVlvTD1~Pk@DSHhXJ@0i47I@zQ%rCF8<$53!=Yzy0fTM{m8oX8PRNLL} zy1<Q8%+@UETTqs#`=9&a5Nm!ng##*Ai@e5&KD5OVD>JYC0{Zv}A7;o|M-hjC^MeL) z<<Y=tV0rt+pl~Rdc>A7fp6}t-!x4rCoUVoIZQeKV3QqR<2FX&Hu{RplUB+N#!>>)Q zP3Z!^Aa&3VsOem|M$Ag3cy}BzF=0J{q|6&AJeIyy#w}}mm>*dZZ>nHH1DO>m$?3NB z&%a=9pK6$}nr!UGq5Z4~sH)fiNBT`FxTt8G8BqM5G|-A&LoXf`1GIG_3(|Q8vJi$- z9{k$;_9?!O@ot$%(DeKr4G>JDETe=b{K8_){<S(S=MI=1J{r9*tCNwQ>g}96H1sHL zNsQ=_yd){vEg{(vya15a@u|e;44cE}X8%CrHNhl5)){XTmHJj+hPiaX)5ggbQuAIQ zuM6DjL7et^_g;f02^{f51r7SWi3#Q#+2C0Aa;Oa(6JGQ#72e?aXk-*Z8z$sZd(r%U z;5GGfX?x9{-q`q=8UE%pM^GVfD^vUSZN%+iaTM~$^je*2;`qdE{_py<-To@(37t_a zt!n;jU16)-kk{w^H1OE4rrA4<0-<N2AaQa8RwX8{eKU*#j5IYGRS1#2ye6bEqq6A0 zWLn>eCmGjAcz+Im5}|!?I$^&*IlLxGoX1I^^>%`!M|G1#jiTCxhb5lxss(C3WSufe zxz}O31N}T;+>{pzIFX4hiZ_ZFtyP3u-fci+J7w7TJHUbY=5n#*dCql5sJ1E*qIa0S zL8-WOykW)VC(0*DAHnamTTsTqxVgb~QMm0l|Ly^2xTUO?U`e2z1>0!JrBW{*YR_t} zAc3y%y}lBk;*~1fSW!z#r0MXex+@AKU~$6wyL<le#24<5u6j8?-ARl&Q%rG_KG9Ev z9>#Yokou^z`Kx(myY)DA=gN3_Y-kw@+Fo){UvfK63jDge><w}dpxV5X#6!RW4IV`* zWv?GOekn*aSg$4^k-STkZ@N8UQyiLHSDDoPJVa-QWM>=d&f4b3Ojj^2c*lFjc*w_c zOz=KSG=Yjz#jP?EaT9X<bIX<0)S2sXu;)L=y8mjo^78hK^`V2gznEIaojOQ1#Qt>T z@O;&LgV2B0l*2KcThH4YcUGE8`?uyKCX{HA{&TgVP-b`^u&`x=6P2-%2SXVAR>g>> z^%W&3YA@gk6r$tjVF5qiAQmXoI=B0%Y0H<a<kDz>kxk@7;`gDLSqg&7GAFitk#B+> ziO+e&3t}f^N$-Y>6uA%!ur3JlAcf*XIPxjb;hpFOKyx5Zm;h;JYD};#Wk4XP!V(8{ z28|^^c?Qz(eJ^n%2Wwf3XiyReyt@RU>{@uJFqMN5^6R{Q7DU*Hj^+6g+ccx`Xy;h2 z#n2?sM@G}(j%sf>NlR;(G*VZ~Def)Mmp5^p3%r2&_*N!3Zt1isNTlvTq(hCpPHkUw zJWh?i{k(bSB4)H3m3Xy!MxhChG0VzhK-y0rb86qJwSQ@r3A;YH*`Wa9CGfr(G8f!O zREu(czTKJFeSgC);)|HyNMp@H&tNUZm9n~qk|ndV0(B~1a<fCmtvXxf{|q}<@E+i^ zL>1s7@L1LYw-q~Vv<IoVU`E*iPO1(%LFtsM)hH1k&_Areh&na_L(fJTOXB%cNgsE~ z4<l6TKE9Ib?R{qdJNWcemfU_~)XNJR;}-hE%xSS*@9z_&cy^}uDKN)O^4TtRKVHcb zTgZFgk;3*Q-MTmw3XFVV;w2D?@uCDClUKOc_lP=1ae~Cb+8J@8{NHU1ywwI8ZzvIq zHye|ixvdzlR3qSKnmITbqEVBP|BFM5*r=$IFh0;zWYA;Cz+_sT%deFD@tx3cPjyWs z!|bC=bIX@JfEFQxmo2`zCp=6IQBvSMwY~iM?HM+y-Z-Y6s<uL^A(qY}i>ym&IMN${ z(_Nt?$c}u$lGgl)gThIGOgYDe95`mDV@Uk#??J=|;cHvwC9l2N7h#kG)l6n;MP)x@ zb{q0`dTh_rD207g;dpLJ0a<u#5K7ER;h8DT;cN-EUm9xpx&G{ciPjPbmXCu3{HA#@ zt_WlNz)3$VBn2BS>B`4CpsX|~tpvzc15cMn`qa@TU|Yk2S5;&ZayRiO2^rL;%5^^H zQRHtwmvAs4aUtDj<-XgAS-JM1JS5*{!?054(woZdp~r^wCUO<Eqan7Q&NtSZ=#g$) zD<0&ptTyO{s_CcOmwD6o)KQM%Y*J`2%l=g4+G&b6y!FQ@tgK086ces5SI6dmWGwLh zsr0vyBPY%=%9GxPj?C;t`s@^bq*qfR9zLf-wQE2*#|l(C<>~;e9~S?_FlNp4!fDqM z)R$wjCr>vWY%~e-O*X}o$v`k=TH&_VoyX|9G+n@f`(-_e-7g}&6cT;pPyL7DtU(y& z2Fs^q%I*fMXAU^=6&!hen(V;?8x0CE!d$+u-n3$Ba}@CooX9~v^O1NpR=pjg4E#|T z<(NQ~|2G1xKwf`Z2pA;QDR2|2jWy8BPO!t6g|H2a!%JlML|ae41JGfE8-bjKGr77M z(JO{TJ1`8`k}|+jzzBRU2diC*GV+<NC<jz1a;ZxxfsVK-@BI#1={?{)Vioq&REfNF z5NN~@B=UAcgve!8W{jCl?yV~z<BtK|cwiN&{69QTf#M%<vS`OD!ku447*N}mx8Ygj zsaw%pG-&m8R(e?=i|HceTm#8ezo5|pzK;J?Ap%bbh_|4tje}xN0!YtwVBrDed@~D* zQNY-0_?Sv#%ov+ye<VT9hhuRLnT;?0fkHhGua7PRr8|G<(*UoaVJmVvBa@Sh1Ay5< z>45n=CM^ydUARc^LA||ckO(z|eDdUkdu18XO}@w7;zY|h?vYJ*`HJtkQRRz!^_8`E zQ<};&(>H779m$bh8p$is(zNwvEU(TeoJy7CS;ai>HHte$e9QItRA-F6h)~ClgPv>O z9{0$6Q)RCXO<Y2C1b3Z3uWbk3zcTO~Zvq2q3~Gu1@!Uc|tfZnJ0wbd|9!`lLq9R2w z;K(%~OE6Ip*8fsL@X*@47r0fm;7@b&%KHApD7QIxJgXu&JWf}0O{6kQSkX{SCHE&L z80;MXR27mfXL8c{tB@bo?m_Bmed&D`h<w$Z4=POR?1sFG`W7}Jvqvw~6ux10*AI0P zDbYOLA$JfC$kUE4fM7_30WlFETAF`naYYvbAd6Z>F%06ElvtNe+x_=*f1rWK4YiB! z+3wv9_A&PGD3ANkBnm&4u-?bpynFk_nH-MUuQVr<Z+{l;=}REQJyoGTR$g;UHHxBG zzvbXpI7zwBYRLX<&YW#%PZ1sZ*$OBD{bpxCs2BkMWT{98Ry1hPoQi1uVJmKam22(n z)T_e*^v&Dlz({*tauu=HusKnb+UiWBE!%v=sZR<SLlj@^j65vVE~*kO&x5ANKjJRn zNlUzm86DIFsf^!_!LIY*&nJj&#tT?dsyJ~~2xhESqS2@i7P<3Af>Xzn_TSn}MBE3$ zZj{#R3OoP*WHmyG2{G!nPfaX5&b1d@oZT5&rm>rNBVXCU?$Vm1P`Y$yOJuxxNK_z0 zJu~2%l`SBCl0e0eG%@zqxD00W%7vXYa9uCpWb<CeS9>d0QXVtZAE@Z>TNMg*IerH$ z2m#9qq4Q*#Px~dqg~c;?dAWds-#xh%h8BN<s1(){PSCcl+V2JPB1ahAAtmW;v0b2S zNb`lt{9h}5(Xn69ho?jfVrvx#hD>LAZY9388!uo?7N)Ul4yBcg>fynW!r3Q;VSQ2( z*a9R5d}x24fCWSyS3sC`?)6FwqE1K<Q#aPD1#oe~cvzQirC&s-_RRm_fHn*nW&l$^ z77%;%n6%nVuv{%cX=xcaM1vtMoQodFV^oL5N-PQ|x}L3N|G5wtw@yK{EZ6w%1fX@N z`<6jGu)twU%KR@VEk{!%=neoJ03zW0?<trc&4vWA<mqT(29ztGHbD`#U6|m)5tdKj zh=+exV**%!iX*Rdh2acD;*fa^Vt<$!kqLh}xp}~!2Y?#aNE``d5N{Y0MCgfa!$1z; zx%gYtUm1dkklqE&>jWb;I1bQzKFI<dvc%*TDL%wLPvjx0Bp9)1g|Dq&nt$k?VHhyb zKL?rdb@s8%Q(<5uBOSmlGc=`5+RyuW;!ux0^6P?7;O0+(oWELGav?)%L`y05xJ^1` zfbc0}(Dc7h0}Y7y?lh0*LZU!(V*(dqbPY4A-U^>Rn`>%PG1pd=QS4Gx++Z?XDH;$! z2)k;oR8&-WN@XlvMQ6;Q(#Kog`xxiA0YBr^*hFRKV_I`>-umw+WmLKDP@^BByw>Jx zpN>yi=r=a0Qthm*(Ci%Sm4yZDFZ`bJz{-lqFSEmSgT3}2s2hBVjW9PnR8oo~6ngd0 zqc=c^l%73k^<&17)F^^I1}_NT_p=S+DNqsMCrEAAaF{O!SNGm%sHuH6J~j9(LM6Su zPK-uvcbd%pljqrjKiA~+<s322{*;#4mwxWo8boIn1@jEc#TMF=yfHvCPB4t(guH+_ zL~IcX)FggjCpI?1*PvZRi12k?ijvgvi5mI)!g=%t7bb)zP5egV`{zRc&2RKi_p}|u z{x@I7SNAc~wW#NKJ1U>DAVdKL`qjsM8GHO(-#=j^@nwwfw}WP?(wXAwfLn^{;sa;f zg_+#=(#JaASWxt9tn=7u-(Nl$!;%ibf`I;G#Cn}(LVArD<G-5f1-<xu;7k!W-JG*o zPb7*k9`}xw-##ff>0V{jmG(!iedTHsk5{I*)-S$~gfgBoVXFAQPo}M1xjy|qs4lnX zH@~RlG~8k<R4U;N_$=@vZU8jn-Z-EKC{ep#qvMcT+%2Ma;vM$D!JB;?AdES%dPe)D zX@EiXUd!Y;64c|Fzlv2<;RzX8l-lrYjiivg@923WgvyvXBMf%l%i0UKKE%;T7Qedr zs))x*QRAlaLq}+00t03PHsE6g&l-}3C*?4J)V8hNl9uN2dQTZ!YRRoT^m0h*#5r!G zF^v+KLF=k4t6bB0wu#tiy6Cqh45wcS95C-X1Y4!N9+Gqa^=nu3Cp_$1K6u79SBNI< zzTZacdrp>=sfGi4OQN>}4N@^#Vhj~hISXIc#}Hm-NQyAR3yX#EOg*nejRvHNhOH#9 zC}hXtyh<-r;n6F)031k%R<@!D97zA_Gdfgspb$^8PC!9uLMz4$`^cFUS!@C%V<j&l z^sw3$je*Q$<Tm9rU=cfY5Tpgb#94qp0{V}F^bR=Xeb(uKbrwo<FH*xG?}izGJUjU2 zy0+nd^T%ub(CB6bHROk4W#^QEXDzdP4pd_oi1&bL9~9_LOaqQCq7?&*cL3Y(8oY<c z>^5Ksf>_c|QZxbJ5=2|9EL9i<A(s8#_#94_;X(lTq(ShRpKpV-C{BBz($(^-RR^ZG znf)COY&kbg$A8_RQZMk6K(Q&uIlv$&N6(mDCtpr{ReOOrSX1U-xANJM;Ism9u0gwE zu?!+tiWZbSZ%JvVUG-Fnr8H29@4Kq4PlZf12HUS6I%hX1R^fqskNn=*x8z5)udiGN z75c1ul-Z<%_rSFvE$x&V+-~a|oUG;FQcpiDdp}Bapz;gBF~;D{O0#rds@U_v>c?)| zcXT3EBJg#9P5g)_y}Rb#ODBv$b-}ZEhYpDY*=<E2rNRS<G;yTA6vW9j$PWab&>CR8 z^!gcKfqx!5Gwo3nJ{ub|do1fKYnEC$c8&~{1JL?QiMAw@MY{0V_tBXu8_5Wh=b{_m z>9tqZ_jQdT2y~D01^#UdOZ|zz87n_1tndU!pzV&q><aGM$YM!KdJI75!iywb9mSG3 zF}0&0;6)g=Vkb)aLxDj6xXGL2*J4V}1|_#Iqkp)7381l645>WXO*xj?ag0snW3#W6 zRBU{E-C6#nQ#DP6gpYH=+fCmub6~3UX4RQl)y*RtRUf_4%D(qGR-ZEFex?qlFQcuK z>VK)|V*01y6iysjkQrMpc5HI21F&qLL^Lpn55Nc9d0;+}V|{z{A{Z^Ptr|+B+S@j3 z_VR$^j{WnE*G247;kD%3S$wCxcfU4M9p^U6#3P=Z<$L3_%mJkB@sjl-(8W0#1a2l; z8c0IpI}6t94A)WAKBNX{E0w8Jqdv0`Da_?}>G@P(c!m68pl(x1LDl=~=7NRk8ze3} zEFFbg&HTLI<A%~ax9d^PyeAdqgf*TawlC(a3x$Rv{-|lP&=}H?=3i6<ufJ26E$;4? zj&iW8st3{<`T=D?5aE!OF%rb-T|X!YO938SiO&B9FnmvZ%xe?8`n|H|OG47&l2|A6 zVPwlgZ{I`mT0>aOdG&yYB0v98%5G$4WM)49GoWRo!V`cn%ZR?X+e@$TxM0G>=J}^7 zaa~a*X!NO@2vqy8hzeCx0vpK0apd5mc}aOMuX2B;(6&sPcjpTa>%nInU&Xz5G14rz z{#-ur?rPKVqA7?eyR-t0=Gj}z&Lmp_#Q><X-1GU@)nh%C5?xG4D_T2=NsITHm4nh! zvpJT;;h{TT5#Yc8heis?8+_0S@r(l)A|e5!{0yuOJgybv;;_P5<(tGTP>Ut30n12$ ztQ{(}?<^D2l#7+sXjKK3@_<ZybO8^=R9i)4DFUFsWHs;C5SZY~t?)oUp73|B=5x(; zpqv%vr$>bB4!iCiMQD!}H8X%d4p7|tYwkBNyZhUo0p5FV#QmNzHzMbH$OM%;OWKL( zZ5h2~0Q!LvcL+T%X=a&53%(<2ix4Mc9Aw6j)TRrvGRB(kG9q(2pgfPLcUS~$O_T&B zWa!;6*sqMD^_(clbg>;e2c{E!X)Kgj59_;7EgvLN7YLZ3+idlRmOG7qK?+a)56I8V za<e==%+1N`t*%KCW4oINoC~Q*+kIeLo}qMK4~Mg@fc8)vF7k#Dg+z=W7-Z_+D#C22 zEb{g*L4|qjqMt95?&i#^7Ixk*5@|`F`#ly50$#skTljjBL)v)Q!KTqkXzl%dN4q4& zBDn>7??Dyg?Rv*wUgcM*&YIsFe?Wr&OkX#rKT)aRQ&lBMK~gi`7Vmqvc^RMEV`9IM zpH?pkr>GJezl~2>>H{=vf;kOO_-<bqxeD5zzT?RB)8w64h@LQSJYJ_dX{BGyJxJSc zUlKn5IOC|z{ohcf{m59!M2An+PTfbJbP2iJBYUht*t$CNv}RVmTcS>vwi6?Nt$WKe z?OzJ5NdkkLkBeQerte}~KyOZOCI!h6q+QY>y<Cu&>Ba`Mn|p&OKYW=e$$~Jd5i8l^ z3z*V!-YmOoa)+r%Ng4`N$3qt56Bqt09IjH;u$I)SDLnpj{_gY3eRoecv$`?T&R(Zp zH&_|ybzV6E2bhiOx^%~M9aO~Zr^hG??m&JDIHc+yAG{~R%P=j%>n(WQV$(wNqmb(E zG*{GP_^Hq~*6K@9*X!bvr!N@i{%pIko#A5@+&}#z1UmFx2{B5BV#Mg2#L_!iEK9Ak zSI4Pjf<1I}Grp8)OoD*-`!q-@H&nQms~<>DyeSxiA$w!t-YN{r#RR*42e0%&O{_?Q zwScQ#C5rU*XF9bR6iaOgzxb}QK_|+0Zz*Nsu`Xhn;ad@}_H0D1_exo?tYeFa(whjg zN+wIz=$SWbMuA_tt`D&F+}>+81JBnISK(b8*+ny-8~8$g{{#iB8gh(iA_al$>3R&w zd-rj>@aMNHS<1~z)8ETQ-!bHJpG%Fmw(8QkGTiEJh(xa4(ID_XK1iV;NBir1zwWJC z7iL|evLr^`R->9()9^0k+j<GR^`Ql3_rN^89-1gBxB1hG^$Jw6tN%tplxGBZ-8gNw zP5q&_?^Ewq(-5}Dj3K)eB0r<qiWtx!OB{0G#fk)Kfgi=tr`uy--)4JbK=kewq8h~z z^lbLxkvs03ut38^wx9$g%TsAe)Ja~*W5M{zgM@v>!7fJhNx^+Er$|Zg!4X0$AjZDe z<$KduBosqx19GOZM(!AhvxACYZUCZ!FHymcH|J*^pHZQgIANLj13HXyZHQelBNdP* zbfAFrN=r`=1VkgApc>DJo+IpYV9Boks5xy@uT4q$Rig(-oqQ0%>pm^SsQ`lX0Y4dW z9s@5Sfgb>K$fpj!IzNgh3`j|FIDLMU!hN-ag$bEs$fb;+B)J#926o*LNKGzh<uwgD z>fVndVPwWCFob})W$~3<>wPiEPs{4ZaE6mG(9r?;;LpCC%`&cKALt-<XwH3*&F8sl zm5skpx_ECHCH^p;1{DJr%`H5drCIlK9x!*bilqyGptBZ?=$lwfdEljy6Y9Tf9WSP1 zk3h$40BgA1Zxy)m@K$8*m$Hk49#M5`SFR<@y>P1S*vb_a$-Tmawr;<;>lt`bx@^+{ z=}mBzVq`v58g`}YrS$;TIHKb#oown&E+9P(%|^zDL7nt*#3DZiJj~zQGa(XK4!Bw| z<q~d&5Mk_+AU)EnLWi#Q0=ULm?=98j`}^_ho&77F0=AR%HFJxsF*gOjf2CQU8EcsJ zN%<}1^QCHGtoDm-wu_)qm5Fdg#MrOU%s2mKrnp7hv3Z|uj#_^cYIlzO;4j@7m7jAG z)Q@SGg}7?xp<N*UiUMB(+6F8z<)#Wrnxh}^s3Vvy{S{^L=;Q0ewz6_+^t&;aJqk@H zep6?ru3$tDSDq8hZw20uOnn}09|w;po;SaLyuipPDlhM%vfS54Lafh?o>HfI^~nt< zvHw0jv2!?&{e(}ULfPql`Fr^C*EA^W2GPJN^`%?Mn6!K#TxAnD(%6F_PZ{8!&vl2o zbrfzZ>~GdQYwoEHlj0MtoKN$)(|<LxwxKTStl?#5xQt>fHD7<HHcPKO>cIK$&QH!e zRlB2e@5091ZjUz4q<;JPAuOf-2jRYhyUPg0)=!GSTSnfmfUdRM-JuB#!|g&NfXIvm z7VaAW5?YeLk?&oMH3#9~0t_ha)o&QHdrDGpuOL)z^11$=q0Ens(mamX%X^m=-HK*2 z?TYOgUYdsd{ZHv^-$#{2bw^Zwsnq>!NNcpwqwZTyBBC3SGODy871O$L$^GMQIWfFb z+@A4s(BXtEY{ZQ0L8zxM#*e90H3>pl{sONwHDV9mWQCXa-vdD#klBE8?1}OBYSzYd zSA9P{b3Cp*Eo^fA2|M53(~mk4jhm+lmL;X<>PpYGShBiK?Hf0*_7d3D(5aaE;JvZE zs;jgNw`899Ud|d4Bm_MDeC^`7@-SC&%{S?q&ybfzhww<N>K{iSGByM?^dP#QCA0lD zMy2Kq3xWq($W=rjFZSYor9ug2gHEbXZypdC1Zxe53_`Uxjy{qjGK>NVk=g(|k_tM4 z96<UO1m1lIXhp{Bf4HR=nbUSRgBp#$umBPM6&m(0-1+@2G92oTNdulg$x^Bn&^b3D z3LA;wWTjL)AVTHL7jP=jBhm*5_*JvZ0gCAk<cGCmfS3N-@NF<@bPVoZ<A=)_lp#Xb zMSbGx11P3Si~*g{gJK#4%rEyLb5j^tDs6{%3G#EfytxKiyneMS|HP3?KWr3$U?&=x zH|H@xA^0Eb9HzW6%rf)X_;r{|z3u7=;Q6`%5pLt3{sUP9U*c0;QPds;bp1C~C5hXz z7-in=$AexZ(2k6sGhR&;sJw$i!Eg-z`vf|(<gQ7Sc}y9_l&hNH05VTSk~>QI5;N;5 zBPkm%J?kiz^H-~D@iNzLJ?#5<ujVnj{1kCMQ?Al8sg;f4-~}$zxitSj9{S{jWZfF! zVoEw!R2mMy>rZ*T+KC0ZI{4{q0_As4o?^`3*=<W9v-S+#ZC!PudMRYl4Ux1!k?!cY z996^Id)HskZZQVVmWN2jAp1%PkET<QI(i^-XIU;U!go+kg(mFPiBagcjfwr<Sa~2P z{k>C$;+S|zO#1Jl<FPLr9OAvGE;W<47If27@H7)U?Qyykqmu3tIj$l5YcqQ53%{kP zFQylop~tzWo(^Jm%MFNwd}hk<60C3%!36^SH|5+s#_aFTMNBQ|>iZA|YE*Ef%RDff zIYe+;dw54mm2+I&H>g@`-_O3IWrY$;(D8pHHe?TDA4eb4Sn~g27B0DRqbKh8L!q_j zg%K6sJRO~FA28*d!rd4terQ4UON{pFKbw}pgu-qiJ>V^v1&p*IkYfH$eU0_<vX!Gj zCel%Pc+Bur5gz4+zWRsMm2^{2iUt%g^Q#YXhz+_EH+z+bzxqgRCtM<Gil@$UpWH^H z{LQH+?FVz}jJku~ltHyG7|?aGx0&7`VN8pt4*Ge%fa$^(Ku;UjlP#~uA455DXv!kw zyp-#Sm2Ixu0nyd@1RLr9Ufc=@@H+LAu1Z%I&up0zF0@ha?`ougMZ|ee91o5)jcn4G z<}OQ$Vxh=vHH>>oJ)X+aHSM*$(k;{+i1!v!^?&NQc^a0g=Y<_RLMmNoG0HhTY78iR z7wFETph6SYLkeOWzFVUt&fMHwt60>cs^Z@7b7O<Q$GnwSeP**7h@^L~esLJ(PAhbN zSlxDBCnsqH7r5U&SiCd%pV#KIYU!)8Q3dtft5JCdtn({|$KE>{=11$NVM*ZjX_%A* zqFM@6#sQEGKp%g>g#n>gI@0X>xrpXa+^cY+p+ES@d`Z-8a`i(Tby!5@qCjLjHRq;+ zrR9qRiZ@jcY03ra7doT*sXsXS=)cgtnPM+wo*(sOzlaLz{^s7X1l9@9LrxGCpQ;S- zwxlw7BfWbhcY`3J&d0~#EC`Xhrvk;4)1Xf@EO--jvr`+hdcmk-(<lNK^9~&0Zjg8V z8KRD`NO(Gy@WI=VIDg=YE$^w@u8?Ac1zxq_Vlbn#j<uS5Y;n<XbROm$S8^7&%u^`s zK$@syu#r3vKc>uU5iPT5pH2huM5&@mJa`{^vnRox)4G3_1^iWALmD+IZ!QMJkU&8Z zi6a-RKGorY0r@H9aU2f(0FnU&f<FDkZq=zxWaB{RPbyD6I9BE!gJ!T9D(BueQb0T< z@$cE5QCuAOoENQeklMZ4`^S;)Xg(?=PaMt{Fp367<N0Vsqv70M_5mQN;gThd9J1Y@ zIw%Hpk&-4D5Ys>8JnvftNt}im={L8wyz544A6$#n1d<}@t*#Shp2*?nZf5oO#t*qb zQXz)(Vt*lyY(s%QHUTYGgs$LWC1Mu%(o-Ge5Ge4b-ASWB!yla=FYL5;-<Z3pNB&lE z&@d2ASJjmy@MX#M!>#SwoAF;V8(ip=c|9!y?$=#RS)q$yvlCX+yU`v|xz1LFD3s^# ztEo$+XIx;^lzH~*+atXa4r1kvmSbqI0fuaAk4e*?KYI^Tj@bpWWYt6P{Ivg;0*Z5e zH$QC;^SWn1VR2mf{Au<nBkvTuYKpK}Xui5$k*1k)I%KUQQaVgR(fw1k%4hzmUYS|b zrAF7F`f-8W4IKm9$+5f$$1tN-Z=qwTlqq!ZO%i7Fgve*?Y0II80S=<@qd6=o5fGpb z%=+)Z>{2-@4C^i=P4J)%CbZqGvIM%%ZuXb!3Nm;ui#E5KhW&1valY7WvKC-<(eg^x zsuX}nc3<e~tvW7jDL;5U=WwoyLf`g`%Rp3%pbaTeoH)O-2o=7WQ^F{-?^<M~*nogX z$l3maAgul1A1CB|26W8Rivpg*vEj~*JY77st1hpLlS`4o_)6u8(F4hS{w0#uqi<Pi zcV>iFC`3JDL9mMe&6rV{2G#C{HTD`!?3IWAJ<>i;{PEs$)mlM#___PEF)jM}1hKK^ z`7A`RU>OU3WeYW=L8u}G+5$L%F@8yl6DW6HirPbD?L;U>&CIK@$tJX-`A$~r6<+iD z##&giXYSAZi@?-BcC5$JsVAL}iBHM`FNWh`<fMV3%ku^e^?Qwsq~o6tI5no<)2Q2g zpi=K{vBAWf2ZYXV0dS7f%Y}IJqcasEQWClWnVlKww<mi7@y&N?#1W`!6R~JnJm5C{ zl$nl7dU<vKi10;;g$=(5ve)+x5gVUMjaADZru%x8@hENJ=ODAlJ<~feR~NqR%Z9vk zS{CqPHN|BfUwQM`p_REzfEJ%yiKx7wqMKPdXyy$0YD3*3qTBTVyaEicIWrI+P#u_1 zkv>!cmh^pH_ut1<(1frKFcoSPVbCk~m{B8cBsCXGTcn0%f+>$!6cRWzf`FX(H!Yyn z^reY*GqmhS;|Mt8q91eyrTRi?9XPb>KafRUib(@(e!OOI2ar{Q)_Zoa-#{RJ0BlKM z@_3Co;<vBx!vg>RFgV&~^oAA~DS$&Y8@%vB6E07+u;dq(Wisqo@{w9PNQwbVP8cua zMdnTkQ=tw2Gexw`IjF<>{~gj1v*apzL6ZnYX6Yg56ul!a@!ol5Bg62d;xSOF;(Qj- z2;P5BNjRVYy(u7RU{kX!3&6O)nK6C=PA?!e$Jz-FBCjzqs}xdmstwSaYzPdksRa6P zsp@?7ky`?U1G=PSjXAEe`$yHuY1(29p%c!Twe6)v4U~9Ncve5;H-RH{g9gqoIJ7Rq z5Cs|v28e75Vo*S*YJM(ew|eGCkDadfP?)3g^)t=W(*|{Uca|1hdv9iB^Zq^_)vO>l zYZV-zJG``G6&#c@K9+pKBzXU!j%ws!)o1??_}R6!o8WsyRpr?M-=Vp>#|DwNL=0Sr z^Dp*`D9}+m5j;GU0PTKNy9#RPwH)5Y%<5!bwN-Idz5RXe@EB!y+?L$zCQxtj-R78! z|1W6C!`ClI{Eg<{xt0|n51+tT>(>pUbqSO*4-&Y#*tRN#3Q~e=i%z>Oq~wWpZ1kTL z8ugxayO#wZ)YrU7jJiFR{3{<rX7<kIg|~h-0lvsRdf$tv{>++3FcPvDG@B5hncxUM zzbqT0@J#X}r*dG#5UT?c=W}wl(pz}#Z%xx);5l;sjo7P=D}PUZ@^EtZL7#E91vWM% zh>XZEo(={|u%?4i6?1_{r@*K<bpzn-{TU!F_xm)t9*>f$jOCk1X-Y>~mIlWaOovYm zoXtz?G<J%0%er#S(_E1Kjr}Xm4;sy4SKSKcVx#0AzKP1T9jq?9>+5R?@ZEeNC4#i3 zrfhoLX>aA$n3J2Q7;;lHhc>B!@XQ~wFrXy(Q{T1X#Ed@K2<-!<n1g}%+>f7ig~8M9 zbn>qs6zKh4^NnXmrri&Q0Wz_c4l<kmaAS0nezY>rldAiB%V~0g*u=*`*7-c93<gtg z=Uaa=XJ;uCcOGr9GK>HD<7UzvdiQ$3hKZAoq?Mb+e6&l;-*fC?7H3(zXjPxq4!+n> zcpOu~!y=n~q*RTKdTeU~kgi3J4=)2j1k!JSl-y+?%2xw8ezHIV*kvj}cH7sZ1P5W* zXaP@(lurMdqfWzz)%uxzDr)Wx2TcmgGTY$Ic|m`b{4aX%PK}J*)?zre1VRvA&Q6md z5QColT%Yo;kN?Hy2x6S(#{ky*5cd7%73M-!a$7D`n@>Z`(moHFF_S!p7JS}86Ih)p z2*v35up+qV)l&c`B?Cbw_?N>)YaroHJW9`{zJG;SDg42N4>*aQjMq?tCcz_;+U-|U z(k*Sq8X+9QG!it2Csg&k+5tj4uGFs}#s7f8Kii24o>4(HiET9zz-lF>Ef3EWJ^|+k z#?RtLkJlX#%%vv}q%yodV2kN<JVTF^_!{5{`%@Q)Z9N~yb3mnpye!}{iNV&|z}Z}{ z!~`?mB33%`V#p%dSvW9eGJ<4)qlVHapd(E=oxd)UgHRbk%L{9N2>ie7tBk-#F(Z0l z_f;J$%fLYo$KjBiUfSK093eTN-+T?j=}Ch{BFH0n&{aAEin$Ug7(gQFa}^chpic*w zc23+gx>Gp+9ce#D69>=})6rfGsR6L`D+OMahAXRGDg(4~yBEaNifU|rRh&$p<{kH4 zaBH#-X<1SuOFsLz^daQ7H03Gfr(DuEW<P9Qs%m)aX?KiqV3d34M$6{(xfMCdXu33v z(MZXt!>NJuty;7U<moRIq&j8dhtJ^k#K0y%!OtQAk@Z=D0Hq9&8$s1cVD?OoEaCRP zFAQ(2Pe!g?rMXIUel>AciD;*})!D*W=eIS*qwUD+@+|mZjsK_P{ubX9^M=O11N_UW zV=U1fG$ZT>lNMIYvC?N5IBhPu`HNsi_s7?v^31SvSi(I{k|zZk*8%(`zUJGvi@-_j z3S2RuNj1d)m;<R%d@6JRpslW|cE|1wdacS(cxAOffIIuu$1-pCu;rx=RS+`~?88zb zv*;^MZ6U`v6=j4(2!9zcqS9XbeotkR!A#cUg~8b4{pmt~HDY6a=EP#%b3WwnrXe_q z_&bI_B!Q}zLSZ$5U^(KZk?N0vP^C5N(5SEPWJnd9&l}3t53GGy){J5<DK_y>2Znsl zt2>)7Y{gq7I0e|0`_w_Y8R2BTCdTg(OUFX246yJ_n1MD?-hl~mfAH9GyC<IyXn`%Y z`lyk<0|5%c$`EK3VGQHMkOLB-Zbe{^!xEfJXMddZKekL16umz$O&4oP>RVqI{6tYU zew~V?tMt=A_k)YgfybXuanD+No2osxaaPQ2m}4MKPhZf&Nb&JJuON-3uJ3fr`KBgf zrXPdJ=XKo~U<7Rk*i^MKH0n+KbXwNjAF!CUA6up+Lw<V#fwR7h8c~v+IA|3Hd<OG& z?Vv9AJY1*$q{~NL`N3W93Xx@gN|0hWImA73=I%~ndDDn7*NMxnt_7Ed3-}oC=nHw3 z+vDC!jD$FUZ9@%PqBQw@ZrJtSqLwckm$MG__Ny0hS83<3?D8?Oe==6XeTo-0s=%YH zS3st7cdZbvoaq);_R7vl$Zr7j%RFi5`#wzh_<QmB!^nt&q8>f@n+r^==LN>n^_dHJ zr*!JC442=%=b$rFU9hxKcd7<T^HjME#Be8Tu4v!aYX^@0q2J<g|MMBD2~IdMi3Rej zR3dIpWdQ2sUv%kTCD2Jc2(S<gGE?0vrji^0TF2EuvMexG<VeFZK-~@e9#;V3601H1 zfDo@^$OvAQ3yF6k#sU>qLQK*Qka93e(j!beej?cNsdWto^a&-Y@Hmpw1)>nDB)C>9 zfF^19xqt{fWBddso4ZDj;XHT+l;MVIx50^UtkmK(oZj{o1DCyzf>wx%Sdx3$tP_!! zbGgNfgM#23d<Qd{Z1$?w*WK{1Z_rJVi-K@VCJmac-pD6^mY&Gl|Be#h#A)1?0m{TO zmu!(<OgU)YwZd>Fvex=6Zj323F(D5|0hOCcY3c8Ni@3U&P#?Ti$wACA!jg89KHnv7 z^3(tXULNd}@{k`F6+lrpq=~EV@uUd`tn8utjs71D-r==lX^T8L?%@v~*`d1^^6o`i zUUww<y88I{-fX&Wy88HCee!U}*87F8U*}oHKb?qkWi7w@YHHVXOy^Zpd9)wn75PE* zliSHZ%F^mok+C@PK?}Wyk9ndZPh%N$Z~{-dF9MlW3}ML|QW(;Gd6=cWNh1QHS6l@W zjvRlmIU;Gy7E03YGv1RuZMp3EWh_FWQ|fGAcHP5}u5ag_;Bprd+>pceEj*36^Zwz? z+SYGQ%Z0;(9m8fVhp$rOO23Hi{*iYv<a;Nu<*d#}hH%hHj4MsTqA9dDy^uLcNX zHXMQD+Nk`AMM!N33+re7ADYet8p{5E|M$$;_vJyxR+dzj7F*UvLI{;4dqs@wd-jP? z*@_|*cL_yE)~u~m!YySDl`yh}v5lqw+xK_==RBSBoM*{tme2ipU+?RBU9*ZZ@6Iki zcy-)?`R^sMw@1F)X<gAWJvn~aHaI9j->b5|GESN2PP}8zT@O3+%SXbK!Zn@^npP#E z<thWgisbgIp8c%%B5R-SboOm9aLk29gOc-Iilh;T%N(R5`$&WS;-F>5!BUP>V^!(l zUcLDK2u8KkW$ZxK2mNM)&;OwsDtpKt@4Eyvc3`X1-*%Laa1Cz#7~t~K_|bL$7;nn2 z2O)7B*(x=g>P&i8`^|1m{dxIPt4*9`3~G*2jbQl5U4s5^Ws-Z5i^l7=a3msE2=&Z7 za5Kvm%DG|jM^T%~idYOOXCHm9ch2aj(u(hZbDrO)&HrW%qI(-{mqd$C^_(50^Q~&% z5xu*-T8_^eIyj?|W&ii>`>V7^i54fGPmE>oTmAlP-eYG16}yE`2-Lm!%Gtwx282Rq z5VtBTE6Q&=<7sX_Gx*3$tVo12j(!MF9SWuB{DoNoY$N*YnB2A>lK(kG@>|dZ9BHHl z8JG^SGG-pUF1B~B)Q!zOKSqHye)-244=Z(LgQ09!9gX35I}@&;UYT`95&4tpi6paf z(a)=`M*p6K^IRC1`glqge{8pecj;%7^Pl*%CNErQ$I-H+!E1c0S&~$&FJEh1FEE0F zd36({oBu^UCwG$8Ur+SzCWU1tA{sXyE+Sy_o<Wqm50R8!+!BOEZN+x?(Rr-vU*NV5 z`l8{0z>WY_Qi`z0Hy7=fFz&S536eU^*O-!KJP4GaCXRm)jyT+Yiy4iGGXua#q?W1( zYW)h#`I@|Fh=36X>I#8SrtOGWQYC^_4~IBqGBs8S!W4tR>#!oGw~ow&>N(X*;FTv% ziHam6M5UjRVl1$2svl`E!*bQHJ~T5q2VzF)eu-^mgJTIC<{zGYn=q0<tun^(6egqn z9r{R#lIF@11jHV<YzQFah|An)GvLHwz&S8faobUb1L)_@Pe$R2!3;g8ptSmI&o0|a z1{dv97+!UAV^Xg-g9SYjv2j30Lo0^$X<>^!Bdu2c6GGcz<HLg<X{ec0sks-Jrc$YN zw(XR>tg~Sm=quKutG{+eMg(?2oG)ukoav-b(nB2vPn6wuY8DN7zZv}A%!(Q=>{KH5 zpkr7yre)|i^}C`SSD7ilwz_0+XVpDC2D4)$Sb{6o5PAcY3|a>#O9QAG!K`+XBp^B% zFNmuBhjxx4jUziySqp^j5Yy8B_*~E4yo!q7;5zML!Tv3dL`nYJEE|d0X#L$e(tIIW zXP?5t`ikteZ#`ty_PCDerO!gtn^iM)5n&BAzDN@Di%rHlZDXI7*fjiwSwmLCp(g<y z+?cs3QaSt@R%7q0*3SB<*MPAvteL!Z8nJIfsB<@vh`~do>^(<+YJ{HMpPD3p<>i>q z4^GPXl$eCr(UbBY52`*~o1b0yIh)!xf6i2FW~=(*=*{S;hVRBr+V)bbN;y%RTi4Hf zK7E4r0a8qw)O&ZO1*uzQ$7OY1#0}(gQhLljF_8V7HDT{zMj#s(duT~F!9+jM#9h@r z5x)-~Kc><5W$8=lq(NO=++8sSa`VCif!NpaX4Wn5$5-Ffuwyj`;llPsYd{)L<Hym9 z9!>I)Mmu@X{R>bw#D!6p9i9@%R-B&<-y`(z1gg}tLT;?LZmxRp!U0+-`?`zh^xW~< zwf9}T6HR(nZ1<~sGnImRWZt>Yn7O38Br~g?@8=r~xbn_<RSwCjs_cuob;&oM9m<!6 zO8@p8pxtO>`e4twI5al6IJ7ATeW>h+C-6*gR1NC_T|<~=3FHTMz0*%SVNbgXMfX(l z(&rO#o(N4aChy|l@yi!l%v9Xitf_PNW++o<OQ?H=7r&`YoccV=m*4I-6HseaHR#%F z!{&N%)!)C6m7AA*Xl=DJ+^48;WO|ET<SjWj@bsPYN|qXZ<-4}!r~u_tGm#ZYL^cN| z_Ytwb0`PwJ?<3QqBwHPLbs1=O^?P=$RsaP;U3*ynRlOmz?T3&Mb4cafxWgT+Y)Gu8 zUlS5q>AAg_7Qx#4dZ=kv|2bPyx?q8{{MOqr_$hb(R{bz<SiHHUX)M?puX)|WROZ{F z-bZ-cB6*Im1fSh6Vbe3AOfitJ3*<s0F3qw4f7uu=DF2a64C2>s2SNSnVxR@m4(h+} z4fy!!ssvogJq9#V$t?)RmEW$rxeizVe<cL+ZdsDjQ^fNZVZL_at{c)0Ce=f5C`m2o zx`Ku}x?ZCUn3*1>tL)ui#`AUMN(DQ88#^D4-ZsIV+Jg{JK@+61nRp!1SOVqBAPWM> z2?T+U=cBf-UhYlv`5mYeGIYr%8Ng3kU-$oGK?XLjOH#%k!ob9xB?&IGLRrHIia{&1 zvyRpO1WkBY=yKDj6u)tw)Se7+v9*1>NTUXL+G^i(c`zAo*n$8hN==Kp=k=ZmZ4OVB z0nruw{ER?)V@0TLF&*Gsb$fkKzKlVI7w7}QSxnR=4+>ZG*zy1B8}rLum0LXcmMJaB zv$C3c^CO?c7X{sFaANN>k9sKaXlQBc96R!^`-LY{`%lSuJwutsbV0p4Hu}l$_aE@6 zZ_+Znf7r>xViB&r38j{umn{Q-g9~%-ryZQ>uze~sqUeCE@<5r=;&Dx!l)+2&=SOA& z4s&7u)_S>*U=uKVewflY3{I+k1`?P~Vchen_&u1Al<nA6D$+VZ#ci(F82(<bVZIhK zcqA$+ePeZ*QuyPr#7L<~ceXxX;O8f07K{7PnLhFV!aSPN`8tN)-Bd`tKiLub^Z8oP z&-l3Z*#3)&9}V($k^EylJCow&kjhhuRE+?HHphx={=m^Z!Ai!5qlL5~+5<eO1iX*n zAI$ZR(t<IW8FfIgfw^C&4VRRU9g@&WPC9%=lWADAFE{;!ovE;QD+PRpIcGRrEq{Ft zsj(_5raPvsXZy2WU9Ahcd7h)wMQDGD3Pbyy8>!PWCAT7?`r*-ZrQ5h!6!qSU11G0? zB&%~_cxC(#({ZZ-l`~KK(>S{f3uOLXD@2>w1`Xa8=FAo?%lhXv3pIU2746J-vWDsz za=PA+W7ZWKcoG(8&C;1r$%&1-^B@7=aFxs4^T@#W9T3fDz+8PP!|X_?_7PHcrqVCO zGg>bi7VKGg@^q}2-iX6lGY-<oI<h&+sQJBqCwP))zNI<jI|r8`j#-BamPQpjgMJ@Y zKUR8qf-kyk%Q`7K;%YXRGjoK=bali<jvsB>T#k1HT-B0r)qiQ^**88Nh!xRy7y0;- z5{_v2rb#Cr(FWsI2P(^l&>x-92|^wWbZ&z0`hMR|S(1<*MaR#-{9>^s>=KB|)A!W8 zG8H@ff{X%aYU-cNj9q0zB`Qr)e=x|ZH9vQmZGJBCGX$Gzdm&Ax1=Kdnz=5-(rV?i= zV|z$>_}s5OeGZ}?L`4&<>1~kmg9=t8G}s-`=nKAXQH%d@K!{7@YmkNT;t_31&qY_o z<>@O{c(4v@8T|bku29ATt`Tl<jflf9E;LgWvEdK?y}a!kOUHqmY<rFYh_fI<%uF6q z5<n+5xpp|2;wl+NS|AGF3CD%E3ZBx^dq|dK{zqTfaS>6zRI!T$)l~l*Xuxu+arVc3 z;N9AEBGlLul%6Y0V$9T~Z?VdhVF$<5!!fWeY+}RHatPGM8B55mIyq`;3gBt<PYn=N zft=dCJ~jF1<g8=8xXRz%tt%j=I+x=}ge+LG-UASR=tYk{xMb{Z+6nP@anL;OwlPp~ z-A{ozV_iU?URYbXHkqhPnVp*w@4hU>j=B7F46J)oe&N;=M(U|cJJ(=J)rO7odaySO zCUK-eiWDU_tww)_lrTm>aIRfHgAKEH1d(-dYsj{}m;i<FEjEy6fLjqHB+C>%pY5+= z!={9hAt5B-D)@V65c&ZIvXx{~2p2F9RM^o=4Xzv@l8>doSuPN9EjpGvAlPX*ZqzC5 z)wAw&=Xl2b;^@M%BB5!V=cnQn)57Ek__L(dko_)(Up^hP)jZ`ccU_+Us-{W!rF1M| zZ&%fy*x&EZ$eD=GmhvuhG09a_XZR%@a;<*_#h_XGuicP{m5X0=pt720H;(p}`_d(R zrI;HKF~HeLZ&jkb1PBpWN%@ZeRj>d@+rtNq!JY!I|7P=<?l-9TT3^hb=AS(LZ*d~w zw`21W#<lLTR<#h3xz||a0rj7Yqbdt1!!z6pcDvKugk@Mb{{6SsK_Z@FAjQS%E_+Zu zH}}Dt!>U505eN=jeQ=`+gB?KP))`8vG9&gr2%JkYU}ShDZp28oF1O%DCHz1zB@oL7 z6w<wS3yL$7uhqPL`Y~BI;j$k=OfW-Z(qY)ymMdK~y_|<tBDv}l6Zs_}hc?(P@ThF_ z;qvC>Kqm-RmBS;@<5g4~WR9Z_9wxa<QdA$RjBI0D;MfOdnLBU+2f{b{Jmsp_+(Zjc z&F9RPdNg>=75uFC_)^v%Cyqn}^9RNn_*|Y@Z+q}j`!OFg-?;H^?ZzZ^dztF)_hYQ5 zl@~3KKYzLV;jfd|!puEpx=QXn{PrS#!JLtraE#Ifx3$*6;#LnzDO3ssg@CFhf~RR^ zwef<RbymP$4Wa&dnTw$1!A|=49=6y%zGvJkrc0h<J-)u;w%;y9{pQN<eQr2BY@;{* zdZvdhTFQA?SnN-F#yHQ{+5;6z{Cw5ZJ~Jgt;R@#1K<!X*eb(#g(<xkDu#!%@f{3a7 zx{eFz!UuE_sG|f`&{Z>>kcdABaiu)FY&53bgQ8f&f#n+@CEq8f{0jk7+4LZ`<dTc4 zyRfz*!WHlwHQhtLR~&G5I1Rb2GC`!sbFPr1Ork|Hi*Is5{^vC&Fg6{*nt^<gQPi~P z5kQSc#WeTLP$Pn1n_t8GQr`&|Dh~S+B5i~T?bfOjivR~Zr3+f$%^!hfL>;oMo25ig zyz-Zkb^R|~BojW@FKyh|v``n36dbWefg$CD6D21FjOmE>t%scq<btNln(W{p`M(v- z^+~DwIBfHsX}9D{`0D=+gbxAhtl+j2UH8%Um<zOxShpG8gPL71Q{6y3WyKtFOc<!1 zLm`FufD8UId!mO`kVaSA<B)buI(%RydO9=%V(wu;0&r&vg_A2b*O$_g`#*FY_ddyB z0y=~^efoS3j9~089hW3f*)x&#e{i8^1b-1K9d2tt+avA6UlaiOUOBJ!=l=FzJ8zsL z0BqW^LgnOG0xFYNut)$17vrykh(ZlN+G^0$aUuy6*WKc<&sqX?ae2m@fyzBMOw5|w z(&&rV%$p^20^P0D$9`crav3*p1{d6UPvwq$k=PW+(DZb}pL6||W9LkRO44L~ou6ej zRPC0MztOQ&Q+a;i%OtPrD;utYmrnwFKMA+CKf7zt#$`>M&w4NQp{He^_(dxxz2q;d z%7Y@aha)w!2C<EgvHSOT?lMBOzwbcX){wd$1YJt6M(P-Rn@%9x;;&*W+*)`ch&Zo+ ztJInF7e(zYe(WIGR;nN+9qjVsVtu`Da8v5hSE+ZCH<RsY{6CBQSlYYx-p{gs+)p5a z%~mz~xz+AmcDcVkQL#RE_jIkMb+V+Sqp#LhGMJ(J#|~btC}{$%|7keNOY-;e!qu$` zF;PVjnmTaJqEy*2ZYXeab__(sI2X8CG44Rb-jfBp?$O5^@Xfi<N|opDpQo1hCG06( zzm?P;2lvs>FVarx?Y#KogSUBa=ZZXw<>=^l_iu|%(x@KSkH%$|qI?g!-S@%NSEpqf z&~xxZfDcpO;{%_bKkayO8iE!tA?=dgVCs_+L#Wxn-&cy-s?7-CK`qR*MA5%kB(;<# z68)ASz*Kn4`dP%(U4uWtg935&a`T<He%M_PFV344tx-qnnrwuln9?50;43?^^ZR=a zg&`&2Rw4!<*t^>QDAh|{dy$9<TqRIk%CeZqNk`lqBuUKWi(mVH^$U3Py?n}DFis#< z<nuZAyU#yM<MFF-?CO3rw&V0*)<v(463zMu?KgV`8yr5@nZItRy1%*q$_xwFTR%{p zc9RCvvcRO5TMnXAB^$;w0Y;AR(xgFt1szg6Q_@_6d*NG^*8a0KLdA@(<nJ<gugKVe zHG74klsM!1wWBjnEj*rd-dCxRVm7OPvBtErlSMqinxFRhNx#|!EB%y~YB8(g<2yUP zul^XwaR2?nqwH%Jr^!?BgRauQYmrh+{O~k04mj`jBAyDXRS4bLF_i<WpX#}zKpNyh zd7D>lE}Hh=F*9sD<fGf1r><;&c(1^%Vq>G|rKb*}1Lxd<aB44p^<K>SkCw$WZD|}@ zuhXnSQp(k7h>)SA^E}t!z@!M%pNH<~OziiE(MAcx5=dR-mEg7p*+^lY2{K?20ka5U zyYFd0dTaRd5#RcOm$2>H=pEiAg37G=yyOCkPJntR6WQCK{upHzh8&330XsDm&Jgmk z9AzM7!E!cu2!;KT>t7M7DS`U%>hP{c0P9FWL}C57=TC3fy&MSfp>AFXZ8+%7i8v5E zKEI>vB25+BW+f2-3n*lS029+O7d&uB8p7azt7|UPgfLyq2k@Y|kM86~O$DA?m$RUk zSjn?EO3uNgyAc#|Vd4%Eu?1XR{S<#u4i4)c|Ez^0!ie(}j0GoBlEcNO=VYL76WU@{ z7@ol-TjTxj#!CkH0qeS^Yako+808G<WP}I;{Gi^E8D(ce*}*FV8z#;@a~=jrBk)TH z-8l3p4vRQqEI4cH4GrUXDsRFghUoxf_YUU=QGT~tUKHF+R`$4^ypb3BP|~jWzAu-= zbM!2fXzuYYQ{>F~BPMz|<6%qn)ccUk2WqOlR=jyFVXg5!f?Yd~MVEH>4!8`Q)v!7d z^@jzuPf7j`rSo!7jE+O+vI*1*M;ta{gQL1iBh*6JtGumZB&&TIWBjlnbL>2uu81jX z)6H-<j+T$7xT)PzzyF@^eT?Mzw4XCr^FqnViF}oBelLwX3ms6VI~_k<)LdW6fNZ+j zi;ECwG4RX}g=`q-(cDh^hjwQ^2D+zlqq6>l02L;zY6r;*l1Mv-@w5mA>`7weWg#>L z9$Uavy4I%a?v|66R4StM00l%)qr5w~&E&cOpH9iJvllgDVQ!A9*Ka!FD9bdo?-j;T zY4c{h>-@2vB)_#~Hm{We^_M*sI|Gr3G$FJ`HQoBb5HH0{iJHrd?FQ!-n6R7VUgGEl z2TALW9vioswMR%d^U|?hdW#-cx3F^o!g%FBo9#(_g2s7ln&?3rk;v)8E!|AyaVq)5 z{$Q-)$2%{FBUfuH9A{-cRDHkml<%Yurg=PrKTJ>yu5vQ<YUD*7lGOVlF;ffRDQAUU zUGOc3$K*W@C(oC8h`m7;135w-M{N6@BcodHv5#c(>h-C0m&Hkce2czXzG~f<hq*U? zPj1<aI^^k23@k2kMt@_sIjXdJr@8U_uD;EA3j<~W|M2?S>dPx&kM5nUWglc9f0c4l zwK4KZU9Ggc^B7vWfFJ}^i;MtD@<8nbfeQDzJon%Zv=jDY@BkmmFIB+PE<qO6MPlE2 z6`$WzmaywgJI|AEjA+>aZ|@aGR8lV3Ehp)%$Y0i#ig)r<eemkB@szv&hpba>w!94* z-05S8V@n4Ij(9#I^bCpg7U|#f%}D|^S+~tUOmgglOyD(;dY@d}o}mIDA;fINO#OAY zYXU(-YBVT{g-F0HD@O2$Fkq3A5#qwr2#B(xB<Ag4?z$U4Ds^La$_ocgQq}%S@YLx* zg<M*1gC_fr4e04tk4-R8KZF}H0Zjy0Gnp{v`Ve2iTIT%FMWlq)BXoxw12$wY0k+|G z&SV@_4ZI>dC^^PT|0C}GM`60N5}AJ22uEgZHu0snhy{qjc+#SCh!@Q~Op@~2_l6N5 zA3V@C@gpdtM~%Eq;;MA^a6Z6=MQCp`)jc%)&SwS{=q%15D6a%MpTdJy-8F<DK1A}P zK5W7Q`13Ues+Z@Eg^$$5!-||~`D=)0of&shQs3<y4g~%y9`sV|dT9OFU*8W1=&;n0 zt+kXI@2$OSt3QV(%q3W`g=q%r{@f!26NdtOUR;AJU%wjexshG9i?nxri65gglk9&L zOlKD!dz<|8(4oYxFCXqgL0%5z586d<gYl<0gwmo1#J#f+G6?!HuKtXfDv4y3BN4a3 zA1+PNf!nbXXvQ|oRFhaM6<;w+n_~TcNqN6?!n6&i$uG*AZeo`uX3K6D#@l|Zacz4y z{o`}8u+W5T>c5RO!rDrT(C_ggm(#KGiwlF<#U|H0^KxguJ(xeH$ZOde7JMthbk|z{ zOqGJtKXqiYWEbflnF$@bRqICS`4VQzMw*kw(_X^lQw$6c8(J@DVB{zp1+u}yir4A= zclclIYrlJ@_oO{_Uq#U|$;3wo$Iy3Ds+>P-&#LPlxFKx#HGF3%sdI2Mx`Qp@hrG+! z#uLAS3;IgCjlz5ybF>ei)k!e_I_`45VpAjMJ9X&bC2(SF)Pqa<0$36k1H#jHkOngg z!YNJl8Yyf~IBgfJ&f^VO$G?lH_MS2FVR&Bymb6qH=HER!P(JWIDPkX((0B)LJPN&8 zn<E`MIz<SupSr6-QN6LW#f8wH@gqrPp)43yYzD6MMWm64SH8YhT2$CX#8pZkj$K|? zn+cU*5Q;wjoaeGsMjU6ASFY&<*+aj-N#dW{o{)lLxf!0(nfne@9l~V^yk;TFEc)O@ zKO=YccC56Zu(PRKBYgI<nd^ZV84>!TG$4?^DEJP^(kzgtaJighAe9M6fH(XoAF00W zF31^&*_ybge}qS#_Uq~{J@?-}ed)thl!7R}Gtm}x<x|R<XE)#fv=!TY)qW!lePH&g zd$nZVl|0n1&GyrrFCozT%|W)@m;|d-I41bfUg-n{obq;MRSFC=ZBPn+nB+}I8vB(= zWl+4Jgw)x75hZ1t{ikLrvU6eR8>^qUpKaQm(bsyV9VS-v>T@}z_r;F)t>Vp1b6S$l zlLHdccLY0(=CTZ4MAKBRB#qw??EC8c%*c|xF5wl~Xy(zLtH&HIlg(0sWIz$AdY=^j z#SVFJy$g(FID=*;D6DbRaoG_dhj`*2PwgbR{_ceW8$4-0^v-4>WC$th-ROYZ!YsU4 zgC{ruRjf3=E42U#C8Nwn4Ad)mchC3qf*XW^4we^ZY764|1+G8+L}x(oMOJL<rs+Ra zT!@vK2M>v%^LQl)&OtgK(sXVhhH3NTh{3}UVVX^cE8_gbMGo{fta<5S^`LKd&-L{J zV0S?qEIf;o5eOEe5#tEd$0wl>3F-L(74(OpeHw~sZ4S|@MwqE762of<=R~Ydwr{do z;Bm@$Z0X?>$ELVJQ5}KW78&4_(OV2?lPs9G7G+sP&)sAyk{vr2T?|sm<klB!O1g+T zb4N}#cWdh}h29H!&&LW{eT6u@3{7)AO(3Egn?!eGoo^0Uo91jkP41!GYxR0Gq-1mS z?TfWr&`+suF|lWE;#Na8<aq4AC34OGeSpkl`R!q7n{QP8eqbvbkByn(10JR!_DRry zx0ezW`<V-!1Dv8EkrcIp)ZKhcs5Iq3y$|8&8cdkr3yB#G!^Yjb4ufHPV%Ye7l;{)_ z!3kI1|6ZD4%%h(JM+(Rmj}BfNA6%H3<XYR>*y+nZs~w#!^N+sCc-5j=YeX`ff0}C3 zypI_4dC#=R&ONB6KM1oCO#XZ3>y6{vaTs069HGM1fNOs?6IB+#H&u|jaOWjyqDFYC zlu;TI0sRY|;gsdwM(zw4t!l1QZ6w#rVb=Y6@5-71A2YQcbkD&#zgyhC!-Lj_XUy8| zLMUz#R!J;rMD_Cq2VN!bd{G&8vE|!(>{8<!js46nt*T$~70dxoYdv4YxV}`)3tjV` z`E`6DAh;hv9lwB!xeBQhL;}=>NM-WJ!MXTy(pOr7l)D|0dhq~H?Yj~GNTOD$L*t69 z_&7$-Y)8S0W@#?HvF}UKU*o-|y?32%tX-WN+FFf_msZtw6%pJz?V(GH`1Z}}kEUMd zQQb>RkEY?{x&I?p$4C}Ny^Cv?-w?>%=-Z2SmTD&vY6gPNjc!M|I(=h}_mMLA5xO+= z9=#7hW~@jlYx4-PH~A}}a%fP4QoVli&+{RHKXP})GN%?cM%VLx)BhZ`sDG}FN_abH zb*Q#kt-V*bQVqV@u2}pqV7+(b`&6L9csNDV*W_`FS-Yu%W?U8_{V<xz<amdXjIUb* zBS{@NFP~`dmqjWaoS_)PCM6ucRINrx#2!ORs5FTP&;2u3<RK+3#cIBGZ_4ivj=s<D zH{ig$Dt_Q9z05jO5e=3V3#;*nQ6o+D|5DGl%D&!7>@A}_mRWAdn>_7Fv@F&f8Of2F zB@%0L>$Iw$k`EXmE1J|c9NWmS-S8pZLbnd1E2oCjj*VU-V6i0v$82}ac^0u`sF)(O z%OGGV!PLR2!HBj2M#UYJRIm5X`w|v(q9whQpBwPjJa(hFI9TS!Y@>iC<w@%y`ji~; z?A)y-q~u_PdO-l;t0chnRac<B*)-r|2~N2iN_E_zxP$>aVFCGlX7aJ&FIuo;ktGlb zmDWbuu9zSx3YKb6ossE5=`j+Dr-Ow(`l>OJw8+>)2;c@5IQ1~8`vF{yZ6L9``Jie$ z$Y1suEGsW6njnR9&l+yS;1WMM1lJH8$sNwT|Hba$R$z}{sSjT_A*j$-bP6H1t>B0| zATx7Kypt2`|H2}h#+06hsNPK(JSeN&*upU#lDqKI2OeCghco$kvsKemt;^CRC%0{J zV}uXg?!{P{8{t7m8euYZN5Mb86vT_lG(*oFfH(soNRQA$`AB7N0VK|J$Exv<8=hvs zg4vc3lxdI)RE}u5ZWir=dGIAg=OuJIu}518oGU!^=<0iS)f+)a+tq25xL4$luZOt~ z9Z{3AzL%}r%F)eu&T6#Cuk>XDNtUeSdvfS;c%iJ!wS6V#zGuFV4EC#;02S@(lbJWW z`UmXvid<zsY|h*zkj0V>wif~Oh|PNZ#zg1b@pv44R%5tciW618=EaRB)$N1KeMFCM zBpgW4cg&iRsM9Qs(D=W=)lPp$%SVQU<BFeeWsip7118T4>E<hywYm7@<LQ3JhySY? zjZ#}!Daid|@WfR%{zERHb&ojA%FvtaFCT8`T`=e_`KH?K6V1~;d#U8LFJ-FXCj?EH z$zp#cW=!~Sb&rsU>%c;~%Rp)JMIxZ})f|qUQqcI)*f1BGIDwkSgR(CnGrJW|5UA(R zNBw#hw4W1AI^F`VoBRuV<myjT6f;GyCR($JeP#%>+?&lCDIBAhsyGpcXXeRD61%_n z&rkh_i&;T%<YmH1oqe-A4}avH<4o%9kn~Nz3LTfV*X8n8pOA0rR~+)C6zG_g!e@(h z!3t09-;EoH{B%_r=X)jfDJP}0fS}y-aN5RZ@MO1m>3$Wm6q;1Hbn3BMgSvl3+VMVb zL)*>E90v_mIt1TIcw9-Hu5KENpFHTdz7P=8xAn#)OlECfaxO-{PiW{8+HBaa+W)-d zT89tIselQ_s)x@3tx_pmgOtFvo6HAi5;ts|_p*ZI@Lga)%o@RFcQV)Ovz2u=dEx_< zS#|x9k`*I7*?*Q_vx;nEzi8(b<s9T6+}Cb&a#{TMNR*b;;k8el?6TG&IfVM-A6}^U zqlL$<OXiGoR!%K&wCQNSc<mHpaGHUvDU#Io<x$W#xr}9BOV0I^yS&Ws4!?XZbSUKG zDrXs#aC9wJwDXD%@UScl`w@Ha$`|qgvAf+s6CNK2DWzB7t>S<lXr!*TX75!UCHd<H z*wDSCy~pcVd_ww9w98%%<A|8KE8k%*>EnP`K9?TOkzQhdpsuau&C@R|C#<7~l-u%+ z8u^yTUilrb^O@)#9fAvn;J3s-6?@H@pr<yu6FNSK0qjV`neTLnbQ2ANdH&Ds%DmVX z$b-%tD%3=<ub%~R1Mj@oF|O_Up32->9W~HettrbL2bFOcUuEw{ZcOWEy2LhCd}j2D z9>u`9JOm+ndpzzmLKNV5NRnnn=ev8DgCaurLjZX9|KyVNRqs;>_Tle&M<Pk@Y8oyy z5VuVN001!@FE;?~JrSk{P(eMw5W6B+t-LaXeH&SjZC<ex95+87MuLI9B9sfok=i15 zw?B?%APYZULrR7+ndz{P8E(Ey3y9hc3={IlT3aGwbCkmMNwDQaH^(+h9Q5GfjpY=z zW^3r6T9d-roQ**|UCvJHWn7MMZ3@Se+G5IYahEbHhf)&jW+nIz(0;v1blX>W)O9%5 zL6zfz#qG?=d12sn`dlN3xp=-Pws!a_hTSGqzYo0y%j;|gY!J@$>~^G*s0_Cdc62{@ zk2W4_Q*@X~CPyiXvbcbc%+&l1#PhVCt7~=hm4l!6t<5j2>bdfUzq_&&wYA8+F!FCp zYz-W$JRg=)yi-`R4J)!%2QAL%KJzV_sxx<B&d21tTh@(IToQ~POm{KpT{?^Nk8XOI zxtEnKa_mE}+Xb%MYW+A`EYx3fpflHrQs+wdjijsMvdYE^k;)u%V`i$KD?)!Ej(RJq z+n>`W<+{KXCScyjjIkglh|qr5f9*|1pa1>09vwHXolNKEs+PW=@!2zyxtyJp&CY7F z|6pAFGCk1woJYXV=IpSU$<p1sYEIpc(i%DbsOL+t0E6Ca+Gs?3SCd#xs~kFoqrWhs zC_>|hSHlB5mS0$J4ALWSq!JR*!%EQ!w+AEOGWUe^i%_pe?}-cHVK>5~>JE(!TYZqj z1)N*+8ZJi{9yp4B)_Pgs`IN>JYybSJ{OUO5Lc>o8BN3y(^e)asBJOixumIHKK)Io5 z<ta0ED#@P(tKLZ`iU?NUG)S8Qq__=`PryKZlR5Sgj(nr|=8_z$a+sx@6RTE>?&;Jr ze!US-U6Q}r;+F+?DR1ZOXG2QUTmRLomU+hwZ4u<aK{7oO)pWcz#%b$-uGA!zp=3PW zX47MNXVB@ZgZof*9NM068Q4=ND!d_Ewr>)lYe<krzy&U^&OlzVjz=PLSg^1eoU%<F z0bSw44a}Sy;%*OU__@U^zqN41(=WC$+pNva>va_idDJYY#pQLq*-@dX@_M{-nSJfy zwBR4NvI92i`VYP})1Nvi5_Zt5>GSc+WaleL|DEy~I$!mb`@vuFv?KzR?oO_CdVxgv zE5h-A8^J_$NOBVYM7K#a+K0X$IZ9EbNP*dZ`X2Z`11-ORBJ*2*FO^?RxwTen$ndXm zOvnQIrMB82CX;FC(|5a%x-aat%QCA5X!&hJme&3XBl#9Ofxg~^+3)LPoC}a0+ty1` zhi5yFyW&EFG>i+8f$kYD1Yl$ez%ot85i_&J?}CS9;{(KNB5wn@q6JS20ALwDBAucm zMG==M&^2)>Fj$0%M?8lgeQE4V;mQh5iy%apF;M?9g9Yn2-0%+~N#R>G9T9Xs5v*z% z{X`Ns_wqrQf~+0a{`J>$kGI@bG5xy8A2e~lyEOb`*qoUD4N3jekB^1S6&2TYs@JPs zoSS_&d~a=jr7c{^QJOCfwXo{k^J^xVk1=}Z9?9F>e2%5C0rm2-<YUKPUE;*1#7TLV zzFDlqA)(%`{^s0e$pq?H(zo|}NG8AM_mJMAoFsD*N{itn^nyby7<SFU;v}biM}$zz zT#LZ!Y=rj4js?~^anfuDTRBN>#fco8wTL#@*FF$?VqB(Gq1jLzulzLyQP^KuT}Pt0 z{B*gYwWrL4k`8az*}2Wl`WirC*KBwqHo~-9ICB5JhgX#;4u4=1i=dlstnFv6F$ODo z>vxJqdF~TXycZhlUTl)O^i3wvxFp`iBI%%tWbenM*Of;WxHp@e-6zV;Ypn`*x18DC z>Srr5XnR?74^n5RczmCL{h0wXH<lX(rf(l`ySFfNEBtr*(f$r%hHI<YB;n2_j}OhZ zOjI#Wtm**C(S?b+_!-VRLs5$AXih4UWx*0eKqdb1P{vuv)WsG$TmOnfnR-!OO0X4+ z9fjCdZr^w28|y#&*g5@wtNItadYTM1>+@zjvRB?*?s#U->5CGzh8=eGu}<e!5K_8) zrdb!O9n+2B#LQ5EmUxGN9jLc06L~Nf5(kiSBi;q%+@^DlPduL5whX&-K*hos6M_uw zBsr=A$K3t`Y*AW$MIhPYr+ua3dErEBn$KI}QtG=#SK%6kFg-{0+RtVWoDrgS$WbND z#p^G_+??Lybp^x%zZ{qgP>l&Mk<UA{TlUxb%p~!(>fgzC#uf?P>0e)EX);kYwzm}5 znXy&s+B5V`RjI_EKmPxrGQ5<gW5+wo5&OP-?nJ6y=p!NVNBLG-&=tf$o;6<*`j8Ui zFq+(-(KmGI2Wwi&ko^O@`=ZD9w5=BSP^3${sdb&NSB^&qp1$upim&~1RKUg3QBRv> zJ1^=AJ!AfTKhq7me*`d)9j1f5gKwF#5oneS=&1x4H+8|@9U;Vysb!p^oMk1@j1G~C z0|ZdhwQ(23^A)rPMa4Pc=&zxK(25zot2_0gqu~^*LWUA)u)2g>Bk1j4`ShD__TGPB z6XY9u`DpYZi`2g5tX~^r*6)QUN_#$cw%MJ3F2wiwujk+=l+L#Q6xz;KAlz`Pxs$&# z5q75{FLom(<FsNK0`0%n_F5##vI>vI_wA!X0L767<77tnOCd>ZXN(Zf=8i&Nq{L7= zJ0WTwX^cs}ume@&!`U#G2t+05)ive}U>T?KH|tg(x%-Ak)X|Fus!Y_P{)NiDc8*J} zFwl>F*q@rv9mD=j{O+x^ya?7$1|}y(3BTlDhex;+G!>a$ntO8gj;Q#5xBL#u_H!7J zQeNtoNlfiJXo%RP2+i_AIn5}J&hj>M1+4exU)(88el&GP)Tq;*iCSP1#I=2M@a<-& z1a;d}mZj_b;cwJQQe9aMp1?e*;D@#qFeW}y!qZ5<Qw^q&k{5N#ZDSQkz?nx*$iP9e z($Ns#IKGm9rC%T>$b#*b^EbtXIwT#iT!(njEEKmnsGj^K8ZMYi`ocifY1`g<34_I> z{bWGD+eaixnB^^^eS#9_D+{(;I83D}>Bp5M*s*)|y9CkOdq`4HP5dD!6j8_&l}Lu< z&J8$cLby?A&V~*+*_L?7NZsDtfg>lTI9N-Qirp0LC^<QzX=I8x6UoGml8%J4VyVK+ z=%r#iimJ>*SK1HqkftQbJUJ!$Ar2!f7$}fT&aAmDMScr|_&!#I#xs)FYMxz{LPtJa zY-FU`wITL9N#3qZ)VnMsZ{I3j%CIuhcn{bUTqG+|ilQM>H;oHu45aA%k_tUJ)3wGr zTc<F!Pq?VlNPOs=ZNHtxCi7QHPv_~Z@W{(djSIZ%-1fKVzkaViDfsdv*Y<0R6!YE9 zn4(V|%ROce`YXo^Wol)E)pGUDDP%q2jEjtHGW;ELv}la)qSsbcOl;m!cxF|Q!0X!e zS`4Y&>--a6Ih`a;8UL)$Kz_DH|MgXxo#bxVlO4()u{AO0C`#FizL)bdqM}ofZVNT( zk5xcxCXn}2%N@lfB%k4uvJ)mh6ijUeBzUPe-cvFEH*qBL?#AMZD?`N*qrSA7n648? zB&beQ!!hE|%J`PoB^I`K-0U319p$d73|$#Mn{we&!9rYCw|U@?OT9nujUu!whe&EH zSVlWSe+jPH#$axg)kno%YZnK`#%xc~Dc4sz*lUr2gjy2<1bh+txr60mV(<cv`Zz9R zH#j~Hq@*(_84lgw8Dy|`QK~nlF!#Y3Ucn-RD=RfGnZI8&%)f8=*E-KM<Hz?`B3g>C zxn#BBbMrVxX{lV0`Q6&e{u-8>>F1$78@4HelpdjmdIsz--T%>Z9JTcdC6WuV0VIcF zJrV&At*xweq_KelJ)ZBv^JX^U58s*hc^4y+e851Y`TO4Rjpe_Ci(-%5Nhad++{~!u zSE9J3S+YBy_>*0Cwd4t>OHQexjrSkjQuyy^<@+}tu?M|N6mqI>5HtttRdMujJ1`3! zX*SvtemJ3sR7SE70WahXr3oAu*d-=*Y}_B9uNI10jA*CFPnXy?^ijgnFO6#(GC!oM z7jNIe%;tM!7@|7)?5>hZTv@k@LIi{n(>8<hL&|sf%Esdq3Y`p?or-C><u|jw?Bw%4 zddecwKB_Et$x4$8pc2UljW<C@mOwKTC3*9pWgT1!q~i292+f|2q-IBntVU)gl@R($ z*&nux07+<JRKrn?gD9%`_=~VhmD9V)`l3(z(ckW&rwnH{1EOx;&pjg@$w@`WU+f#Z zx)K)Rpa;b8diBx_o}DU`d+Ti3tu~?vc{ql#<*NPj>+yy^t>G0|ou6e0QKy)Np6$gA zyrq^Bl$DhKzDz)peoPMGsnUs{6$}O7F|PrTh*K84n4!06x*96fBFW&;%|8n!7hC`! zi-ZW+Zuag{UAVzB5aN~a$`=!^LC`pj6<yCJ&?p1{{tU)<M!$W;{AToa`NDs&Af7dZ z{BPH6jWZ=k*oHuR&W@!H-OsAsDTuZO_4yTp%@#TzL?OeI2UW?#T%`T5HRAr?StCwL zN#Z)LMTz`3oAeGCp{)8}PQh;|?t>%x;zHdnxcFXZVWj5ATJKN}7w((ED<7qZi>H=| zF_79?K2Ngx_@tqDvVA1<Ba2Cg+~4-_udGD*;ppA1+zjN9iakfQRW;-_-H%Rz5G5{6 z8hy#<u}fS+eA-o;&DqP~E}QN=+uQcDPgt=a<J|sOM*aq=pvA=9-X-l*5%mYu^xmHh z<Q^}G$*6cBnb>~&+r^NHv&I#_-@Hlec&76$#{-WIMsbkjVmg>Gs$>uM^3O#0(2XK! zd#WcAz&I&M`Zrp$pU<1F!&+>9&lr2Qv~eZA??PKxpTfH8_u~zkCo1>6RyO5ZslWzZ z#`%;jE($J~BrNiAq^7>glUcH1Jm~bT%<PtXy$h2&T-y_#8!&53T#2zp=zDq5Bq6}* z(Q3pfXYHpLDCri9PLIK+<M`-5N}S<2mfA@?Ni)!@M5hp;<rA<ZXNryr65$p46?4T` zYCmg#!9*MQ^XORM+>+<I&b0^Pk{y@{<5P$C2x}Z$>P2;JVk8F}S6`}FUEkPKHOUjF z%LHXa+!L-#b=_p~-k&U^_U8}&vhR+!V`Rtc&l!^Kif1p}@>8NX7)T-!iOvjEu(}*K zK_Uuerz$Fzp8^TCg8}2SkbP`HX*qtG9ZS}!VZu7qQdvmFvGpuixsW)j#kW!v1Ff*a zy6**;VjsTbo7xIG{Bvlndnoo@wg%sxXP*+oE!Sq&m|m+To43jcuF1)ej=18;_6bm& zORQwa_?CvIB}pTN1eyW|adihXwhtQly4gq)PwO>GJNq8#BSbkINy3^6@7m=<DJ6ks zdGUhRFpr=&?dmp)(fe)o_#N2Dh^6doyLxtNgfCpXt=jZ1uj_v+%?$@0?sYnF_>!pJ zoAx(BLDtEfhOCehGjmt#NgqY%Jq`=Xy(fYGqXuoIH4e<SG7zWy)*nC_Z*?{Cxz~K{ z8Df757P?EG+FlPim{Ae<6i@tX@M|8}ppTw^QyhBl4|;09)VcAWbPnCoH+pKxub%0} zzCKZ;R~X~&=5cIV`dU#wmhnzmW8|sU(1TrS8HRk-`}e$_5AcpmP&xl-C_6zfF)^}1 zTmO6yS?Zia-l_fXaRD#)!soK|zcY`3PKl$D1u0F98b@Cs%GW`=ENKLZC2rgU@$7NJ z)g_*zh*#*b#>>ER)XAxp+$MYFH>G|+E0nf4^z>S{g3d_puKjG7Lnw4P2Y+eoon$1{ ze`Lc<+HnJ>HHgO36Nb>Q9gsy(mehQ%M@d#Nf(BMORzyru9Sn6!M%!P07|%+O0G2!@ z0`1F&^e+PKJ^@qI(-crW1bluFU3osr14W6<1{b47-7I{iekZDI2shmwdvo#Fl{Rsb zT!g{>&2$FrdXdIOPPiQz?aF1q)RVVc+8ZD3p81A6aL1v6P|Yq`oP<}d?!nXWIHKA{ zD3T<RhbV-sEDLd?-+cX^cM`}u;Il%#4A+~hhvRXfHaJ=$j@m!T%8kmrx}-T^vw1l@ z;5wp>{bOZE(2?dac5uMEe;59Di~o`nMnuO1aM<C(`}cRu)F7LSok#f4gZI~x7|GfK zKmY!#%WO*(Vx~@(5-L5Ewys8*qzg_Q$QtYkxqmN9G~-0uNZQs;x=z%w&pYSKc@x9# zDg_37>{&YLeq(4WQ1R7MV(@`qgB;(7d-_U_XLJvpR8I&c8d$uw;pA3h-}7haqo>z1 zNteRCJl1b~=2({|i>cZNGCDnrJiODFgG}Drvtu}IxErN2VT1Mz<orc#gq&CBFq8-t zBM%l`kcb^Ps;{j`AuGu-A5Zhglj=u5G~h11zLU6zH`4zqyU2#}6!Rs9s7yZE$5Z{* zZ*=>q^$Y2qOl|y!u*_clQwc0yQm@pGuh_S%`O4OmJ0*On{SO}(8D4ud$Zv|pxIEWp zSljK45>m-0Ou&ZUIVvClQV5kDPdmtL13`a)5mo5Grs!xcKVoykK^EBripL#&C{p#t zQ*_`v$;pUaag=fUWcjZLQErvkCAurjX2kHXs<!DZG^|te!RzjSt3fFnn^R)Zr(TJ6 zEqk<PWnQSL{>mg5c4eN8!o#I#c6ndAwRJeb)+F`TCWa&R*5k1alhs9BrC9nCoDCzg zDZ_wWvY)WY-%FBOE?CD_-VZlNc{$LSEHWSXAKbL78d$VYAMf>2G~?Mg8zp0|PEGZ0 zwo%wQ<!-{)<fvR9UlsALWVvHd>=ouRd`8Sa@r9Z;j1OrjPyFu{Z|>%(u#MIl*>@u9 zgE}Nf6-H|J0aEXh@pAABq*7oQK|OCs6R@A-wS!1Wn|3fXNw82YnNeP?*bKM1F`tOm z!8o6TDgl{4vqrzqT#EDV3?9kxlBq3ywNc6(te2Y~s3#Tp{V?fyyJ5TlgGJC{MT?9e z*NK)Y{?E7Do@Xk_9G*@(^zFqnL$h~1JYgC$c$(i1)Lgw-mx-eDi378OsS#e~+Qd5u zMi#2WVTHm7y$`9}oQdJ0t!Z$g?206l<pgyG<r9>a#+?jQW4C&{REM|3qosGx|ELIf z8_4-N@F*_yU3Xd@gnh+W*-u{}9b^>T+4hG&qg8+vN1y7B{oVF9MERJlaphFkp4gvA zz$rc``uGw-=_&F;=zmyP36+^o4&brE>)aUb)si@>`Hq?hbzMU6EA40J-bq1{EUuK1 zocl11)^8#UmDW#SK#^-lh}MZGuH55ATMe0Sp92DdtZ#!{S3lU}Ab32jSe9r&u6}iZ zG{si)hbNN}6|!ZZp7-!jf&%#625_4E9*wU_4S;m<>b1v!mBnL;+*m>=L#2|i3mYl> zsgO3MLzrTa3QbiRDd32?EY*Tn-n}c4K(=(#5JY7Lv*lpiJ(aSKB*|z~3~nTXB%>1* zI)|hEc;$Kn9z2#iLcgDhHL&V_){P@m^%&4XJIdMo`>wkSMZpbYa&Go*>36Q^o|qS> zpwLP|nELNGzOo3%Y5xsLvSu3_6Py^!&R2~A8DS<8CMcaKI*F2Que+Uw?qtCx*HQ|< zrSsLNMn&1&Fg3AV81s=-{kL+Ve1-;eSX&0NwO$y~Xt8f!%<#~uYYN3M0p0##&4*QQ z&Qv>xxamgQdimRmYzQ#_lN2e!zqlzMbADNWeEg5-g+RAt&8EZd_j6Uw9r}gEb;kZ1 zhNdU^z$7>BCB*ga#S6@@!{nddkh!Z_e*`)LnOeheSm!+GphF)-apXaM$c?EymJ>iN zCsdV4{$~}z*f#xRuf;YJ!t$Jfj2vlD{E%qo+fN^q8>)l}?PP;}bQkBcqcWEI87uwO z`eD`Tg44(O`4XJoB*@TP|G14JKgE$x@}JG6?%AJ>?(nR75ziCd*>Rcg{8f=>=}Xbs zc$%67y5AO|T1uc*I>nc}9_qfc@<oO)#PfXPUwd3-SA4bw*R$%H^SP4k;2mZ_moCa5 zi8d-;4pJQ(-2bz7?%P-h>)mvBJ%NM*B&kl~yZ%WV)^V%fDSHHxnBg9>@NkNqJI-#5 z9~3Wcp2$z*O{<#UKSy$%o5)o@JFG#HN;*v8+7}4iOXEYNT%YQi9-PLWY8b)t_uA%e zR~CsNmFb@l^leS(b7h|K)Fqcrxq*dChYg<UJyCq_ANlCs-I|A(EiYa<d98?7{nS&d z6`ATGM?+5X?&ii_7i<agE;u<=OE^dFJojR<*)#lUF{R9$FJ}j8FXik?AQw+eaDw@? zJ<^>CyXk(=Pg02_;@iUfPNK{SXEO!T&?)<C8CFtAiL*KgM-1dj_kf=rxGW)ynln{( zck@DpU(;huD(LGUa9h<6N_Kf^2Y+0fzk1CvB=6gD&2yI?%JROwnSP{DI#$8Yf2LOB z*<GISr)#nLQdj)WsCN<a=cU#klk=XI??uFR1W1x3WPx&3APFQv{1+xthDnheV3@;T zPt2(yh8}dk$bfb}a%00-92n&$E*}i9cj(vuj7~1<@y~pyCdTz&xfAAc!>YEmrzQ3G zugB3ymikipURKW-&Uy{aTRy_|{hYsNZS)0?GmxW5<P=;TXQCH?3sQ<s7y@$A`AG^~ zuUjt$$RaZryx;<2!$@|%5cCMn8m9J@9gO4@@NQ(eaijJ(mXT0Y7~+91%M|jbl!lM~ z{qSo;I#mqK{F@kkfI4}O;*v@e27%%9E@@$OO%3}G&150{`vt`y|Do|Gk7x*>YmfFK z+S&*A%>#!P*pG~;Ot#$OE=mXEHhB0B#46yFIxbH#Y}L(v$`xE=tZ|BB0Qau^Fik-; zgB7ECgds^$hB*3S>&n7tANAEOz%p{9fx}Rr-1pD=7hbszRU}CzEHa@>!Z}1XxF51z zs)ZJt0i<$3JVX%}8sJP0aK?bTl)?(=rlJTBB-HOB%v1w5mJ9>XD?b8$viOxbc$%%V zVI{lW*fmF{(^F|T6=r7sU2#ZCsyPREKxzXc<!n(H>U!*19Acwe!AOOEc&TSqr{!ml zSNn_X?zx=#YdG1tJN=4-qpbnPJrT%a)^dHH9ABc&xC-Hs!k_cUk^bidd&Bn}D$yks z!;B^OyY(*MxO`e}?O`468gF5H^GW2)0t+ekF`ni-g=p(jI+_vEkz)W;!coHr822v9 zFc&W1Jwm%6NwNZGSAIIK&X}_M)`io@v>Sw)1lj6me<N2!UB0EE^^u`=RTs$vracpl zUn)NPJ};WBk-J%yvO~|ATjD_o*WA!ZT0yvoN|a22diD+#9ygJBzr88<MeoYUKk)Sr zOgw+kZPS)OZZG2#Lg$oll{QhLq~dn~l9D6|T|`1l^(al7PB;y}pI3X8zJ3T^e`uoG zo55=%@My2=Or?XtVSLx41BK{2O9qQ3QLW9+5%Js2Z4;$2k0#__;Oasfnn`;)>|XuW zm8tFH8Fx!YuW|X4lnW()tC>8_eChrgM}=-jjWbz!wn#(~LTqhB(Ax+a*kSfNdzg(h z1vgMHPZ>_k5hOlg9PxrD&$};+Ri>1$^nA_}P74Or7lkGa;jiK87vZeeIPI3smlYMH ztNcndND}uH?I{)3%uJt2@=rNohU#4E&|~pcMK+gCsd$3-<UdC0P&!T{oY{N|X^c8E zl7dvyFV`cRKEXL`*f%)!Tmu1(k)Qm69RqbOueT+1rQlQd7;p6Mw+fr`S6LRhM3gpv z%m`nc(sA6NKjFiXV{?{bv>6aiUqwOHuDO;c4rhNOoOvJO9-kfvB0Sb9nla)ku4g$H z<R5{{%(+uqd@42wS0}%whtS72;B7&NihA0SfrfdrZAl^rU)gT>*zo_J`Az{D$N<mG z^t+-53JR%{>5%@p{8C)6h7I$wf!NIC>WhKfLw6ZbUeVnH2o-bmOMrMV8@Ag&tsl?> z$+w&^QzX<ak_ZN<_q7Y(jUU0~^YsV^(vBx`k^b>9Qgzh7Qk8LJF>7-T*rK#DP|h;V zeE-D5jeR;7n2Hel`)%On&ido9AbO!SOf$P2QFwYc*a<hF0`0RLS?DxQx#h4Stfdup zczUZj+{^7jw2xB^CMWigoK`E?v4z@q1o927_XIM&97oMx3sJf7;~q#K<y{XC03(5t zgCQmEAbph>+ive-6cVg~Zgk?&j!JRMBwg&@EuL+;!o=CK&qlk?T2~dJzh!p23ng2v zjySpi+KnTs_ibpYX$~EP630C^%oxck^c{5hr*y>rIpP^78!U!`vgBa-kqKJ|+2MuI zGg+noxf0Wbq+LjxX35!XNn?~y4qBRzk+XHXSkaq)o#2JbrDk@={bRC`YE>XAQsgbp z(Cyl;Gkh_n6ij{%SUuK*Tqt+>P!&09eC@&B6PBLA+GS5~GE!|a!0*I>nUvrHI3Elj zqi``DYlUz5KKLHvw*RG#K*Oh!{ZjonqHa|7H-!*p<two9FglP*tO=W1`PBj+uK6GL zYHWWdPut{E7{bikx6b@b!OqQU<a{}w%KBMW{;HwL&SQXuJtJ+38_3*SE=)QS-U)6} zq*B~&|2&SqY?q2dy=Cn2WTm$k;LD7D;c6~97w5R~%ZuxEra)QEL#8&}OWeN2X2oy1 zbzcVu8YRj_afB%=rV3NGLb*E#CyVM{JtIC7Zyx(vyQ8j+-J2|QveN3;p~~M|bkUbx zwje4d9hM)vDxrxZAN7Hi0%-UW*YQ-tlzUQ$Cyc4{PLe=2JTZf#U1$vN+eI4ubPDp^ zI+A~+&Q=h!Vh=vpDI!%Fa9^EAfylgj^hZlUH`nly06j{N_u_%tTXqm(%aXY*LOd(8 z5!U0b>i9&{(!+jpD3qUd;ZH)Q%F5(;c1M2J*T+9A&nE35EsDSfdjPd;jQm`XjbJJf zUyF|B+Cx;4nQF`i3kC}u{mf)VRyxK=T|9v_4(^422HS=m*0z~xqSF(+Utjn<w8meR z`JnnopEZR3t8$-u>D;c;pI@GFt`B@_TUBtkBi%0_7}evyx1ejCnt@W{tg=R_=+4*E zv3%2VHay>*-kTi|WFjv*I1o{pG$*|iWiarkApa8<D;c_1jOy^%B60g+Y2JD$z+!uo z!A~&&kq=R}8k;Ro|KH;`^DKN-wfX6fkA~?mp+fg(I=QeDL0~hz2j9<gaSrKY6NME> zr5sS4iRH+q2_MPi`>7fb4dAAJ=!g=p3VEeoK8oo8^$MjW9T3cq3WO6G$)2sONFz=K zwi6sgjt7ir!vDXfbG7KgP#+O^!QR}2imN<Ee=ANh8FwwzqU3bN+|z;({RP-$aHIME zSSdaJ-1{hTyXz5!Q~!^qFAs;ZegD2^#=aJ1UlJ;NvXi={2%)kQiej>6$u1K`_9#1< zQdCIxkUSD9;kIT8p%`mn5QX>j{T=T=J@q&=j%Kd=I?vDQ_)Htoe2D~oL8yPy6X14! z{U?r&s9E_Pv>@B@cNwwg#pj^z%<7WWqugws3=G-Y=%Hss`1+Lhp$!(`nTwx~Nkk}c z1HZ*nrBG)Y;#Ds@zPna@i=!SwYU;;Pql7t*j!Eaw=Y;zxZO>)fX;r5zPTD1t(}KMs z6^#<v_xirwIJK|O`dOUYtCE+N)+56sI+pT;ri>b7E>ceBi^u^Bzqju7j<zZxPRI6> z*Mr%y*=Q(lj}aqO1U{i9u6z)}Dbk-VKPdnb<s+yt<qocv4}z6v5LW-xfRj@`b7vpF z7Qax}=C<-VpR>p?T#ZhgQt90~kuI(E%(RYon8)EzV^3SN;GJhjUk?f>8;r}O`H3AN zi>TeNGE*u!MCTW~;S$I#vHz)Fd+8c2-|32IxNHXTD0eU|HYW&W-{ZD9eeOX7Y*mOr zT`sy46s~$F=v2y-P0Qcpo*Iv@B(~7SKiKN@t8Iq$pZ^RG|M_;fPc1H!Lz_O0)6zA? zm|ok&pjyRz0@>VE=x7e+OT2WXYiPw)@ah9K<qXe-yEyBwocF+~d6RVO9G(Ita8CD& zB){)LsI0Doz>KpB7b8?d267(*@!^A1ve-UX?Y!#;(BPgg4hJV<C)MA(HdVbTzkT`N zy<__tPK-6)1LmdS;LfCQgZ}o?umZk(d-JD|=f=j&l-2&qqvCQ$Z@cfY{kF3)!`D=+ z8NH?xXcB*+^t2z;lDfZ?0n=(?b<xiS0@a6s><PumKg)rCc}*bouYV(ku7UPTh}<Af zP;9ui>2jW!U?m$V>{T@Bxg?s9`sQO$(51$pfHqowzH^eyR-<EMI+$O1d$?{ESJlP; zaOY=Ud(0f&z_p&pdl~7H(%UtVI`ig&ilpZ7sf)y?6<UR4+19Ogd4T&hpa+L4%!F;Q z;erP7ijN$0d~(h9wqa2Ww~o7?t!wa{KI{g7;aQ<qd}mkqutA(US6(m;<`G1LNwVF( zDF|c$Gr5UJQ&5>Qqm1yu_N|bE_<nZTTkyr}I4YW6UBOB^lnVZFk0(D*Uqtx2Oq85x zDH}BsPhXq>&j~<wUyKp~g8h{27D7jwviQ|h2fAQBJ@C7qXobdC_?C=|JwL?}>NI;k zpD7;w_47iKnh-e&I!Q&-(g3ZyctLQAhvYP^z=XZhf`gbu`vi#(dI$t$TmnlFqFJI7 zYYfS8+za2pPO^E9WG>ozGK`8?-x^+@iGa;pEo%vCTA*lJRa~`qr;jpKnzRHwCCP~u zlhh`7Bforbd=Z)ZAquLc+^K*SHAo~nhGro36{^#_1G6V1w#*UH?Ex3WfwuoUx!~3L z-|kP5>}Em>lRDVYENckilb3TquvP1t(VL|HM~`U9&e_o_@}bY}j95^uOO>M~JB!QT z)rONItd2z3hCY|=da!K+QbjV(L5eO<?{~r*+=`EadQXTP^YWE;qt4+0|N8LN`9(L8 zOA2-jAEjQH$M6hf4PPveaH1!6`y4}spMr2VQ*#=`!uO%ih}nk2<F^wxI1+ftD+?gG zhE~KPr2f^^86K@vE~h=;eBzz;dMldL=Z1RCQ>XWg<`kDz))I9>jK{6zhV2hZmp!4A zeSSmX>8gKT(5gDdIV8I|d_3^T@b|@;rig>5p2>XP(7qD;>^~;&*(cGw{NL2kELK&` zWFt==&{Uy5QDQh>tHkm)Cd@h)W~@)Sykz713-SB)O7CkQjpy+%;S*lyrF?h)Yqyjk z6_qG{^niJoQxYzu?a$WF_0n7CA7X7sb&^j`)WkO(gY@d#<ciD{_lrX94h)O+Y+b{G zM*Q?LaLu!BWo15J=%=_dq4xC*XlD!bTe8WoZ;b1_Peai1gmQK)Y{v{Ax*ZH*QQwxn z9YM1O_g0*!X2sO=c`8&YrL(*hmyS;ffAo4|{lT}ABZNl(l~=~N`o^)Qb~XL5-zF{m zjSUT-qFzaPzLsR3@;oii%4n@_cX!0{!HEuzlH%~ko^r-}O^!4jlmAd7qFbJ)AB?nT zMZHHtU67&F@2^+Ct$rf`00Pz4@IV@)LqcIgtkkjqVZq!=3Z9~`Od3t$Ayu);A3FIP zw|R&OYdlAHfpqKbgS&}Iu{{Jvxw1#OrsDJ094EvzX#xuD<Znw)Mso~F;Yn5dpBSvZ z%sw-}$Xx~8a^**c<NKOvxAn=N5C=v{+vB4`1`K7-qnAR$oV<e%s%c7!20WQ=wi{<= zCzlRtf)2&lrVw#w-K5N{onF3i^NuCy#LO|2p4VbV0u9^zZ9Y9x!2SyW{0ni5kQJPN z%Oed@$K^EuxSe5Rl|4g4wi*ZW{}V_B+ADCF1jh(0!TU&SJR>7#V5I9Rk8!4@^fg<F z^^-MsEv$+MbDgBo;IR{N_uZjk24MD}y<iuDEx9Dg*T}$^0~M73+@Iik;^<FH(v(?- zB`m~r@sAE$01HgLy?zspIr%e;&~>%d0<@Hcb~8Od`+JrXkD>-oTPZlj#lx!z-_9CR zYi#&)eUz56R61T-dS$l!syS;Ok3Y^@MnU}t6t^JMfqT+xYYUxFAP{{a@B>c;9Wf!L zrF_Z>Ah^^cQ1J5Axx0MX2IQFLXLmhk;#;A)cDvIxY+lQM;M;N*WS*AUpVkkqV+hGm zpcm>dJX>6wIG@Hu-^X!yllgx`@0v37DCpD*l16o5FWK0G%1M&UMHCxo&^bMcVLZ|7 zK`)LNLHh}DCn+IB%}8}#^37|}Wsr!dbVJ4;Z@*WxWafRxkzX#_8yz@@NUy%559>bc z9jxkY!9~SSdZl`wD8G8SHI94X`Hi>duQ#Np{r;sD@#cwT+&s|EavdTAH=QW!vmC!J z;nZYg)6ZuY9BNI*1;zXa!URGqyghyFmqN`ETVKTbq&y?}YdMaZKuf8Fu-4+E)W9pR zpo~3io<;V=%fj=0@YC*hQy$wV^y3As_|O;SBzxU}nW1m`*CJ9V9G#K~GvhzJd+pVZ z4wg6*zJ%@3_7VdJWT;yKzkNA_IpO2v7#$wpQvW0DAnBb49rS+fqkP{p(+|BY3h12w z!@XqxS{lr+<$}_UEbehr`TMb=pN~x&o{@3n3T-J57-uCh5K_KV=;a@N@8^9fr8{%V zaUpR^`1pW>nO5=m@}sL7)d>M++g>9H^mZPMJe%X&OpOjR$d-R`XV}hygdkZ>%2Nf| zq`6Lq1!dRKW87CrY>7V8zF~A^CGlWn%Me!)KIOSN#*5n=;!}j1q5U!Fi3=OFxj~41 z1iMs{x~C$UX1Bq^&%-dq_hiulp7n)&pBWBqn5rB+e(A(u%?<ILKMNO@*GtwJraFF( zDZd+HucDM^oKZfWNQua3|MjK*hfefV(&ze!!|BTXFKBXj$$jG%wS^Z*C&W?v8YFZX z=8+d*E!1Nm3(Ly01Nh#d2a!bwn0Fhs^0lf#95K<FHQAa453k$*b*darwj{BAv~(Xh zVG(@O+{Y)-y53aovu^LP0EfJHQQ1n89MTeMCttj|-n%B&T+hnb%&SC}IF)kID7>$` z^7e>Pj%(#|U7I$|_AUQFu`4*&03hwId%~dJi45^nOn22IM4C!`EgR-hON$BVgsC8c zFL}Ee(Wn@WYFdorn@$%Un#i`A#j*}-_c;z!4!}*C-~$?{!XR$w8U=dETnmc6fGCn{ z7a<SAaFoPfWBTy%yZ^u?pHKmi+cAK{R6ha;wr0tKPDhMddpRpGlG)e%#Y9MUDoFba zW=9+!m~r6vU)e|Y>XE_)wZeIX^jA#kDCO>;gfKbc!lwsx<UW?$F1^YBY=ry~zA#Bn zP#w*l1y-(%#Egk*6P6#>K^oV<NyUL_IQRt25#-f)lKGs#{Q`LHBUk(I72VUcX7^3E zPaf8dA8$+=*TPr8;)+vBnfNY+HsF2X`$ezQlBMp!;J|hdb_bn+EAo1u=pKA8r7D;V zjOZLalBM0G+<(sU<kg!uubUalT$9vTxn)BqO0MVS77zF;-H0<Zw>s9?v!QBnkNJ$` z=F-1@^=<>wqcfR^?>k=9#$^T}OUa_;&lzg_;iK8^N5N6Av!I1_-__2Y+w2Sai^FL1 zI<1f(B`LJ7i~XfR`kPq^`YU(lT8GS2r}n%RXcO<+XK8DpwmjuRM9MlIc?dJM-u-td zT;tC9+t%SHs;-)=I3I7w%zA_#h$N!o0{d7RrV>L$6nlPLm~i7ENBIIy@+3ZqA_R7v z`MZd9!}G#UZ;$UYKFmmQ*ziq~odNI0Bbz2Qj&=6O3f|*dTkb1$=A~yW_L@KJue6d% zADsWl>zEKLwV(eV>u+Oxgg{O(cRwlXfYYu1<!Ai}>)%7@WO5T%iMt|!xSyMx<V%V? zUPZvBbvL!x$z}}LdMOgGah3t&m%;fq;VXFAgZtHCFU><jOCs{)%?i%X<(5$56I*CP z_c?zovtZ0@CTrDlT#7M|cz3g>!D1lw^*H+Xy*JmJ_w5^7Zx>2aww(9a^p6Epyu%$q zDCOm~cRU5u+<T2~s!6O~&_OaM<_W$>6D&15#-WISYl}#S9p+$C-F6EhRXul?llW;H z!A78dSTpBC^Rg36Vr<Qn6Y<nv>Trki(-NIu5(rp<1QH5M?*9Y?0(O4SED9rT>k9mg z%#Vq3Ey^(IcoOjNUD`9h7w>vM$9k6VeO%pm{9|hQ>~ct00+PQWDhXPj(z_q*i|)&a z4&l=ti*vWqbGJGrql_Q=*#c8nrfv1|%ul1Qig8puvkAoaJWY)PX>_LpXI;?GLN;Ti zAY}RzbsK4m6dwV!dJ#CSq1d@D&)q2<&TL%B+6bQLuQ=yVi+y?j?doB~P+shN6@1Z} zj@X8oOg0tc6;<lQ!TgD%zIDY0I(czH!LE$EqCka7L)g4CkSx5SGbs*Fz05-v&lQYF zpe25q|M4973k4jyOKFMWs1t890u;E&X1ASeH^J#D-sf-vp{(vfhl6cbU=%lv8HPSU zY1F_0m&sCJUO$CboIt2Cz?w^JyitOt?Emp%sUOGE>9Lr^f)?P&yjbAib_)vnAl8O% zsu(><s2eHH-~Rir3tpb`8&33Oo;DqLu%sJ5Ufb|xgg-XHxiLU^FLcYRu#Uesy@OC- zkpBffQbK5uW*(Hpev(J1Cho_TcgC77PH(Ii^bLHFoZbnw)W7$B%!0IShXfgAo`MYI ze^#W?87A~Afix;3(ro+38|LQKM0(;Wg?;Homp*!CSSHhHuNampDkKoz-c4Pcujj5D zh-2a=9coKB6QD>}^jg8#WjyurKh@yk<6Kv^Tec?H-v7NTBVTy1=I53z*U$f41WB(z zHWe&{){#c>Xh}XKb2FidfNOh0ijRl{6Lyz}WG>?dn#XlIa`Bn>X@eQMb=N!haH-uT z(A3z;9C&*5o9Nv!{XgD+Waxt?wTP8>u3p!T<<~eMx47V@zs5X#uhOyHIN;*#{9LlY z#o%>mgWPZ4AF>tS0k&eqV1pyhXYT<?xIGWtYh$eFoWZfZq}1PRgiDXc6TdCz<ghX} zc&rUaNxMEDVyP8byBA;H`rVIy>lvGe|3Dgh;eU>KCckY3Hv_(SxsuM_a8IO{HHwY- zeqN$+srYL1o<DPfD*FJXX2kfM4H*+Ukj;0rq<8(BKpTK;$M4G<9I<b)aH*{nasL1f zeDtB(&)_n?sjm{_8IZ;+7LXm3Q2pOBg{SIE8ak(=)MDS!zsZF6XPeb<l&;$E?7{Jb zo6TvkGVQt{ft93V)50-LH0jN?*P~s<;v?+^93x84b&O&p8(wMj<iAlqH1`a$sR%Bn ziW3bGkq>GC4?MOG=N3#|uzm9R?jy@_;)0BmT;-!Ovc(W$=R@VMTw=N@wlpqZCU_7l z&(9~2rLP6dKfXpOd|DZqdBFDaxTBuYdQ_#C=ApDhkAg&bdO{rtswYm$itcgmpZm}9 z*T4Rl(;Xk+?63m8LfIO%4q_wt<}sp<OeM02uR`P_K4GU?RxEmEFQmYnd^e|#*1`H5 z%p+LR`6nyD3Ix5%sDe8|am>^JS=iRoe$pBVyyX$H=nT>>QvV6jG>%;JdqcmglW{Mr z$%gu6Em0=&bkDBgn({7Dkw}K&IASl!?@*-ysNybE^1guRB6Y>bz7Wxnw2$P+s?LN- zXM)n^-mJ1~#2Uiq4wq|A7j^=jPR2pvDR%GQX8@<E?4Y>ovH@>_?kp%>YLTNbfQJl< z$)XJ#KMSfoZ*?If#-tX9*)c%SLUT{t0RgirNn*0`_O`JsNbCx6z3_#+rU+To)3dk+ zsegIk3nW4K0Sz{29VkM8g9~@Di{0r#waG9p(&Ewj$?xVpPZFd2nuXagskT`1@cRzs zCx=^2#{UIVLdt~jb$O%spBHf=!oQ|`7-CFcpKn>~r@P1bqrRpl=7;iE@iBU|6Es|9 z0A6JvL;XZ^jp9(!qZz0wFh0nOt1VisxwMSq3qQc9+S2j%&S7tZH)3yYzxu(#Z=n_K z!Z__n6JK1M{(F&A&BD_B5AhPuO^fvA4c<FU(U?HsQ570DDO*dDvi}oIotxWf&-_mD z>a{xuQ(?2!i4kE4nF%04GY2u7c$1r~_Iu+lQcJP;u&9LAjZeNQ)`!U1F~s~-5Y+O4 z`$)jd-7PqlG4x=g8}G*I_PfNN^~F!29iTK<!#=hdB4|>@K0Skgmr?tzBOB8jzK1ue zhnwS~LpOJ7Z0{YKG-xGIf0Ol@k@^%tvR4RXg4Kt-cs_xnMxG!(H&J!J_ja)|&pxU8 zH953V(EFu+)+^~oe)~N^Qi~p4?pXd+Z-+1KL$e&=!Nj+cJH76g<fu9VE0O60!4rjE zrYTtapwKu^!u$R+8Wvhw-0NwtWzHf*r8J~@(9M`0X)hDvBHx@>1+B2SpT!;A&}<-r z)rRXzqbn}1>gaH0uk7vv^woj^?0T$2i0>zS#Vdm*4q*u>5n~m04ynjIK;0PEpT20! z8WfXpQhceIT=K=!iyJRjiBFnoP8YnL_97wiA>VL~PkRK>&@z{a{)boJgNs^U6C)Z~ zQI$2recHbi-k3~Jok~%D_fGW=L!o+a?Ppz1(mOizYY$>QY{3VGz?tvaEvbWes?bFV z4#;8<AyxV4@{(kK9cTx_K_6JJfX5EF%@>ZORF!Z`lDXnHAygC_dUjWW=7Ibpp_DzQ zJuL|nF2)J^9KRMEgUc_;wIT=!(L1eWdY-}NeeHlevY_Uv3t4<Z1|ZS4LTXt<{UWX; z!_cf^OHWjR%U6$74tmr-O-Lroh%#FD8D2pl*9IzfdUCj!u}7!jqY8NRX`@*VBnSZR z8f#`ivOFOoq8*5*sK+-)W;>8tIU3AP5p9UZQwKhhpE9DuPmzjaM61q^mpRZCn{1G^ zF+=+(UQrQl-<7PFu3)i9-Z~}AMPB%F2WaMJ1YZx<YD@>m2LhUq8-&^iZn&YfJmo&# ze^2N!@P}~h#zY>$#*vDPjvG<**z$`ygw>o4N2T5=>Y*jt+}tEY4qtY61V^=_tQMu5 z#`lTFnV#-gJF7?bRRta8<t99Kh9o+0)*Lq58KkU8p*uB*x+bv4sV7=jM#j0}fiLcq za+RL^)dWa7>rP7EljnD{zD@C!)jb%loGJ_#_V>Q_^QmO^rLJ?O#JV>w2K^RlQ$vAr zhXUj-k*-O-Svrbc^x_ubyxeAWLo`6HsQIz|z32KQo%n#Bs1Om7IUxp2H-C+qAeq>T zWM0vGjU*IJOYD1i`J@Uh+}vz44^LD@$Z8v?p5;va?8^QY@9q>ZH8=FQ==r(3HG9NJ z&4xE^*7Kjfu8(~9^g@4Wdj(@Py~501a;ddOvM=KvX{}g+8&$G7B3dO`Di#aYoBv+n zhRiRcAj~Ri@0$)F+1Vz4f2h+fK(5Y06gh{Dm%2I72kBN<SsIlXi<qeYoFO0B_NHRy z&P}DSdfV&mr&@g9%$5DRPw9ZITbvmc9{7U@k~|NQB7e6a6&`v(BL3|HDWCONisxsK ztA19&3;kKvTxoaeKW`UF-K}$ZTeki8ncyAw?BEQo@U=GA<$yM}@R%JA5Q8aVOuy$M zV_7eIiBHxpe4Os*L~2L(gRUVyc@d%LK=wzZf(8=$0*VbK(3NUP1fRgw3Lq744@Sz^ zkYwRqTnAO^?;%=BB%=_Gu|irwrGb)ST|%~Sp?q)UXW8(iwrBM+S3|EEy`SKJ{>!a} zRyaeXvud;4%Q9|O^Z1biDcx09J)H%u>@(8N#j)yB&hSh5Bu^~Td0WbywL~W;=F#wL zVj9DR$<~3o7e~f)E@j=S)wnK9HfG<myJ(*PTiW}69N!1&Mw&=qYI!SO-E{|ufPm_1 zLLa9Q&mLg5BsrTn^CC7Qr-bkoS#e0tlg<lpY09GPvmcNOg&f<j$WRJUzB=$hrp)gl z=j~T3qm<KQ%8m=T3WF7QfT>3fa6}qme<rl^4i2g-s3DNe8rgLB`d9LP)U$=4=pv+7 zhWNV0|Jp~owZ7&I3;Ev=($wUd6`W_1mci9u&j^a!-Me@-j%cGR&WRcvC#CjE(K2Jh zkk819!H!1@czfM`TB4qpzX?arQi3DVw~spIu7evo2=|jDs60C1lBJ3Xk{+F2w^Pp$ zLJQfKR_M7QMd07RJUGM<qX^S+*e<fYV2X@@6L#{ifA{kvr2e~EKUE$~<}s0@SU>^K zx|ghFJ!|L5iW$WEs6K#|Jf1bIUr8ImmSap_%3VQ%F64H69-Q9YW2s?6kdvDQSPN{H z+wL^v_8drWD_IvJuQGAshWuWF7U-Cq;Y&6t1CmKJgLKZ7A}#LT)ElIuqYMV86z1Is z<cL#TRa6?kV;TdOgw+4D-KSc%V#8>EFWgP%-(YF5z-H8_92+S)e)ZW+!3E|vpqVg8 zfs3Z446-1aJvPwMj-!04Le$|gWnzm^Zqg8*sL8T)9#mX$niUjeYhBZcH4*r2<2L)! zrN=OO_PVWx_+rz9`;A#IhUO1{UUO$#U$%B+TraLkcejY8hapRORfCqI$xi0Jh-|t! zpI(McTO7rX$5)4BG?csJSIuKMpKOS$eaVSbyb^dX(gIcN{kR7|l|hB}5yE)hP0+b( zf(HZ;4_|pYvYB{BC_C9d2#4Jpee14)-69xk>7wtO_b58M=`5X64ZE!Rdu$YYJx6Dz zWvV7<t1S4RA*qF5VwfC)jcYM#MY9-b$5=S$O<DZ@sw?(O_gwfap8A*_JHrki?i>QO zk{M&g`@*esMGmq4nondWPZzbZ9zv+E?i`pSR0zew$J;+GYW=G&2cPT>UP3BwfGo3m zU5GTU_r`;x;-YpBJy}ooOCAcCw3&-#xZ&pZ)c$?e&^RLvr71`YAL(>{G?Sn1@6_Vz z@!D&oRF)y%gI%C=_=Z%Zjp9H<4dC}^GGv!s1~*umCxPrZXL|N+1IsaAeo$3_FaGHT zS8lSdc5?|}eW&e!!b#AFe@G_>T+kslvRR6AYy&R{Cn2#?pcp^S%I`aj#NT1l*pf%u zOS>WD6pW!4!L!4QmJ0zHD_S-UtaTVa?Df5$>p&qo@F2;<8U8=a{<GFPkmI`2g0G;d zKL&v`?5*^=AT`z;sUEw5@J-CmDunrhLt*%*SPM*|ARf=X_3t*awLQWQMvvRuo!Swh z@E2~%pkWxIdG9&_Y++8$hZr&RKFIX&6%vi5s;-Fjn5twFcS`()o5!V5$Ky&sQ|(2= zf;RUUK0NKn{opiC{ffN3+XHjTl50z|L)yO*Xum=fkEEV^TUB<aXozed<;}{`QN{hS z%#P5s^f55L;Zj`pXErhQ4BzPx4^EMxQ>WBksWnvI-cvWCpTu!u>BsZP%Ln#Pg7S*Q zg$yP8o0CT8xKQJINXq}OuP!tXELMM&zbd08^hkY?Yfa|xs9JowZ8s)nV0U@zQesb` z#U2vQ!Q-`cH)-bhbbD`7ky_gc<<v3X7`Fpbo1D?Ii5+W?79N!UjW2ev&*A*3r552j zz@_Kx)KbTU<!2<|sSoKfOB)VUTX~qCSU!+oq>E@~uwjyNjM#CR+po`_<K_Ho^T<li zXY33qVe4B>Q$*6QpjPkas(uILf=Q1+JE9>>v*mz<hM1nAW#LeGHRJHK{50&i+G>Xw zU#jH_eBEOdb)?O-Ex0m*!(sMs8WRJZTzR~9aAPg+Qu9`^MAH?Mf>c3Wt1#2GM0$z? z3+l6pW5y!WmmDEV?GdQU`N-|fHK~aD;iw!42LZcq1p$+u-#&)OeDW;O8(=Hj<P0}k zA|(=zEnd>{Gzf1}b<S5}%?^5!y|;MczmG=ZZ13H;9@kSU^yg3Os$I3GZx|XIK81O^ zzmhvBWuPGS*)J~W@yU)y+n@}*v#RKw)y8r8ECYGn1aw=mFs#uj`b@lIKrO_I-o{nX zVjG!`bAL+V?GO!QB&~HPYr!ydZfBako<P)0vAS=ERAecVgapqWqvVSV*0N*jf_Ptj zYdlc}_A}mE;4_90V$KOY;7_IpLcl9=P7>vJc$C}0fPE&f<{JKoy+GOn9G^Tu_=1&y zr#xYxT3>*pY(sL*k-GW6Jaoi{1lHN{t2oL`G;C&(H}jEQjq#C_5R(I<Km)Ah171<z zs1*oWAy6Axd(o3s5E$9~_mLl0!(wI=JNkkd<B6NXQHx|VX8?XR*$1WDN_qfj_aufr zfFxO+OC+7!Yy?aj);3x+BFmPf+_WeS*&3g3U-Ndq=4C`sbb51f8hgM*jyTv0Y7Os5 z8Rt@jcvE(p30uJXt~Hl6c(kZ+oSCL>Wk2m4I}GkhTB2j!2rb2Nf7sAL4K0U_Kfh7$ zz*}zK{pjnrKmJkAdV4ut9BLQ6<Md_uLr0B8dUs)>^f;&d#W*3s-lASzI`bD!cUc!z zhR4`aN>kIjd8-uZHGWVkdh$RIwA-mva=9B~dJTiXy$K?U&YS&os2oHdi_np^Mak|Z z8W1Yx)@JGJ8sc{L3GRZ@z4_8S3*(q)2kNR%{u*+!#dp)zT(s>nPJQi5;PUe*JXW~s zVLgG*KTzquSZelGz9Y3ay~)g{gIF)w(0$>7c9HCFlTq`u3_=8$-16u~Y)E!HvN-E^ ze6w~^<vSO8q+fQHAX^26@4J{u9s*`_m0Lj!WV6+<3VROmwiL200o*eEgl7cEqh`mZ zzUBFl9<3ClUaOa=C@yS^Ro{MF#y=;;F}ibAE^+DNlSgI)F$xK@Z|z&Z9EtsEYxQ5B zgU8#DEwOBcqrMWp&ORE|RmIjZGV9_4?=Dx!Wr?gu(v9|fk54prtaU^-571zhvcQc& zLIfyw>h}XL07_byV`vF{h_*cNRO@|Yt84H3Sd=P^nxrh=lvW*B@@1Gt0<JR-a%<gX zLP}{m3`nD657x`9dbMsdGn!^rX8BiJh<_9F-C6qeZHgm#%sQ3lRq4rBB^{zRP#V^w z8o41=U3wJ>vj6lqmxnwO$F{o8N3N%`kw>U_^4Pl#5R+h$kIQ@aO)btIL=#!oM8?=5 z&w7=}Pp*%Fn?f<%ok&aGQtWevz=0F*_=Ps-`9Slde4$S{6QSz=!RzS2G%uzHG{K1% z?->jcYy5PxiXtr;^!k3TWsWQVH)t`Q$QJ{>En<D}uOuV6@Nb|V2Rc^-SBU#lur|K} z&#Fu9%FP&<^f=y^GGnSG%ZT;r^Xk4HO;Y4jP|>a^JnLjb4d?(gMdCvjaf)YQ%vJFW zyR|X}KNuhwC-VW{C~_2~BkO(%9g{^1pLb#2Pl^tSe0U)VNwi!Dq(`RrJ0lg+qOJk7 z6bn)ZG@A9LobfGHO&nXEc$;=o6xHbA3Pjvfd;iy8Y5QP_%20~bgZEeVEC)NLJ0^;H z7RiWGq6#~z7DYJ8w;P7S`U;xHE!yJj;-nP!tErg(_xUP5Qt;-(0O$xTz9L`yS|wT- zH}v4=w-(7$xK>0lMy-)A$AwxdPC4mH8a+!#X?KFAU>VXB9SpyZxL@(2iB2>WTismf zBWF&Nqs4p}oDTcphKgEcqc6+%tBJUL*Yyz7wG5stl4nw_T^cykNcpv(q-R2!TAmWE zn((yiu#1>}krZMHXiDO{T}e`_tc2nIOba&pmUeBoq2D%DuD^-bXHFru>;&IRUUZJ@ zBqO=2`z{pb3W9UL6OzGh9}*__$!9mXvy)@hM`*xHWaBhC1kT!5uNxX{zz>*BVV5~{ z&nleziBjH`=7{HsB3;+i*Gh#L*^WJR*XUYQ4o{8sxBY&<<H}4rTa2!lLgxe7IytSd zjEQ+$tq&2D)+?GE6^TK~qw>)ihf$*^Tuu<Gs0w%p4fc0T0$mrCW5bxzb~h<`QB?Fd zs(j^si-=|?mzUe&>Vp!{dKe(1?1Mf2*7D>|+jmy)+({Fu{mS=`pkeb|Xk8$V<iVIX zOh*}SG(IN>qBY{mtw|R3$)|qb9KV&qVy^-tW^>J_<_=`Ya2S!n9ofA#_~AE+pmAYm zBJ;9hCK-q|f5mk%V7tVPa={0C?4$;0KcLDto;s|j{{X4|wL&i@NH!e2|DtpsiLFKT zFfd{+4j>Tk(l)>ouet|z&{Hnj@l)9(kAtTKl0G;t`2q3dq7Q$PwJOZuXhPyGN!uW7 zNvkuP?x!X8h^MXyA=G@3dRy~fAvxi&J!n|K4%b@)lFlG2JA@+&p<(A~8^>ypt)(Un zZb&cN`nfP{4{Z1Ii(On~FZ?XNB3rTKG%n~r_^AJ3zy%Rs+n*w({%c)var+<hJxm~W z=2*?%P9&4)4sVJUPk3oQvJMm%NimR2AGMrZo*&dN*^is?mfk;S{aXV2p;I4oJ~-$4 z!-t1_4y^PwN4J;q*OptKi(Oe*&A4;9ospV}^IiSHfVfYM&C!s(j3Y*`Ysoln*-#6e z?;k~tmFX!roFQup-pC+5g5sew^EBk8e$40A71*{UgE_VX{4Q#P0#5AZv3%Kt=;$n? z1j)nkFRywA6BrMmbwW;o$piZ{7d3^a&pT9jrH2@wV(I&OAfh%^i<PK3kr?4KePhPg z&)eJK^!vay%QIJk^i$5XcpmPv9dLr)5<_9K+Fr7|$fO0yX#?o0(Gj~9B(wh)uEHla zR0TKG@Eb|2D!9_Pk^YY9{njr&44{wctSIm?j(YAVyBkC`Gbumc^Q=VA^H?DNzf?}f z_b#8xRIeb~C9mH!xWC2@ls%{AFkKU7G+Ue23=i<Q5z1Y-Je^{z^)}cQJ34;KXtYXK zpdilAT=@mKbOx13RUZU!l<=o#fCO5^S<kF|*@p|FYwSvvi&`U^jA#`;spr|T&~i?t z&BJJQvYH8U&u?3Vizp~?<|%NBDpc()P}RB~{nheug`j#NgQO?fyQo6?fKxKw{H*@a zC7b(5lGHN+ykUO&WOe?(GitdY5&p{kzpY#b@f{$S<15TdKo}4_uR%w7uDiaEoE7A2 zfeaaZ#aS;ews)R2h13aO<f@m36^?qE8?c_h-|93(l^lfn?Tc!fC-}!f9`c#IAW~vR za)KG^(^D5Z(@a9e#sW)Lj3t!9dV1agz55{W#wRs|jC@FRO8ErvC(!3hpoNs1z!-1! z7=nEh!qXwPODi}7W+WQ&%Jbhx2FKc(@rs)Y!OG1!d(gbUe6&O=VsKZ6O1(ttAA~~_ z8FU8hom(3WXjb4YML%F#xCTa+5kA{cN;yE#he71NxF82|e+bna+sVRHRB*dTrvn(L zVU?2vxa3l_7v%!LMG>eA(01y%xWq4(yU7*8!u*HOHVX*vO8uzMfSGVQx)Z2j$BT71 zi#4*5JgKwQ-;}M-sa^jB4lKV1UZqdP?Q!ayXqJBa71F316V@W-hy>+1BZ5L*^9a?; z4G0Q%JSH#`S8A=hddxf2D<r-$M_6y5$Enzv&eO2O@VbN*S4s|qoZmMao}0pdelh)n zK|bNNbL^-bw|4a<t`7GiJ=FuTgiglxf2Z%GI7Q>R#mzYW&K$#j8#+q!t~u!m5(=*+ zf~)NYKZ7l)C6bo}cnAetthYacC@}y~k<xcGFE8vRcTHW42~;2N&%ghB9~+IpIdyj% zcOR+b{Z}gfUW$8GSZaBrb2WyM$p!lPjydKF+S#5uO3X=lVdc%&`O=I@vJZdgQS$e_ zy#=Y?bvJH+GTJY47=efCJ3Cy3iT^Vn(mRR7(<?i6oy|WaUAH?I9284gX3Ks_q5gJs zwR146CqSiUHZ7%n59*l(xlFM>9zY|~fpn!O<|ZB^>cRT&;QUZYlP&v8Fn_0Zb*87E zM~uvYm)85MzV2n=m!oHm!4s8BJoNm{Om!2hyv(01c9gnL)H)BQYzZ=!C{0jKC+gHW zMY3>v|4eq%9?dyr-g&SveYo&DII?_%P&t_n>6--D+;OP!2Hdg&WNxVD`9(ucIbrOK zr~DKn*)2$-oL84@;!>s}(pwYzG76t9yyW9~m+(;0tSMalO&DLuxmlc<$&>kxj8kX` zSKYbqF_U=&4@$gcfY+^yr@9-1K8D8nm~gzE_&lK)E)q9a=<{(ZGvwV$G%{kE3no+! z|GV{clp{Lpc(Qni?k=({vH1;R&s!q@CVAjM{49tEJos<x2qUU+0i-;vCLs1-Oa%)` z-D!}ZZGA@+WuE|^e7fo-FRDQ&D8y9EUYXzU6yfvwUjodxmvAM;Npi*!C@>wZyu7GD z>JQ(L6$JBB0=}Zoee*H|2@OPjg7_*MXh0=4x2iLd4NjnQ@A+(^k@yWl(owX~P1YnA zI8&t_5vWp?K8)%=2qo!kcq59zCaPE7t4de5-tC*}O@CpwkAk3W_~l*PSuJG=2{KL8 zGzNH-J?w8GB=mwTGdVYGb7>(9;(&8chVlsW)4^;l#0qL`9Q7%XE5>bgbZA@9kGo*F z3&U5`61*JTZu!mbC&LFTF7{g3NF35G_)*ces7ZozFP?e<=1)_72D&x<-;Qsb?lKvm z5VSCot;8l?z-pptb+OCj6KAYQRr1b5M6hV#-+6EetRF;*-$8tM$`Q2l8N_UV|02>S zNT8mhA@{W<J!<^Gp|AM9b!C|U-iw(l1!pFhO0RtLelOp0(QBXD)ccD)R|NNoO9wXo zEImBe#}U3=^WjUmuW8?lY-P6lD-UWP@I{n%7Q{=2yE1aHa60bfddF8sFTvIo3oN-U zX%vj;hc##@OAto>7yRztkY)oWxNCPN|0cMIGwN*UC9s=4K@5X*{$v~!SV?dfHTEg| zAqG9Tf_xh%<R?0AjVFY(7PNGBr5-vT#u3IuT672+e=pZGAxDR0%aHz??Vvf(SZcxc z%O!v8n>zcX-4*eDC71Ies^Sh4hzBeu-`AN&EA@meiK-kBBo8LPf7n1EnSb~ui%Kaa zAifl*1juUoj5Y(OLr)=FD<VTej{8yW6)lMZi20JZ3QE@wBau17PuitQe?#O=Z{%tz zJTAOIt36@4!x`lu)c*P?GNh(V*U&AK!&LX*Yp3Cpwx+AH=C*bWJl5e6({DX)xPJ|{ z+&epPz>sb(s^uy|xdv#QBFeoyR|vSReAHC}F`^CR2E5nsiU+bBV@e}KJZKw*pVAT^ zoI~6X6jmegoI>YDkKj-R-!m+g+uZ%?fqJBbW(r8$m#3zMlZ0>;S+59Gjl0sG_hkV- zeuY%r8T-<K1H`xrH>By2k5jBV30+|l?RCXKx%@`DB~b-$vOjCB1gZckJy!L%20n8J ziWG=wAbpF2BmfCu8Lpn&YB))Q<%%L(<1(g-;1Bc#n?lJ!Ft~OjLq<Q+;i_Uno9-4q zJ6=%ZpU-tVG!7nW!yYLz6GdVCbd>Cu<gz`?*t3yrfVV<fF%WjO)EIy#^CVEU90{NX zn9~SM(<HV0^rgjep$(mlosBJI4cVN|4f{82zcT?w<uv<So8J-mZ*JH*dP=A8$v75T zB)$jIeH}%6OeP)kn)t|3H%`d3L9&~Yyt2F#*b_u9Aet`_Yoq@EO?O#Nf&X@8!%$n3 z#DW!A=Z2C-!PIQi7+7sS@>PEEixOv`{EG{(-(MbPp`Uzq9bBSZgUB%<!H0WH{hYj< zO$#4NgWbTzMQe-0`S4A~!{!siAK0!4|9Niim#6ghU?YETiu#w|@?X9`J?!=JEDM^p zBZd?Qx6zSBv46S*Y7iatOd-B9G+5Ag1?mPwZLUC2S>e7nkIE-w?%avdOPxP%5bL+0 zS(h`M9>N|!@}}1RGkUo8=Tn;)g$@^n#<xdVqQ5(I%t?;3#$2X3^Q^$i!a618QnsyC z_G&<;*SEp!Q)DfFnn0oOZw4g01OoA<dJ+v5rF2t|Tn8CD<#a@)A?sybyzh;15mB`8 zG;XMG8ss6Ph`Pj}|Mf42Io7YY;C&l$M4{1PTH@qaCi24ZJu<ioe>t}4w`ZhUT>o?W z>u>n`(l(dehZbhD6HJ>qvnsKf+xb`Czx<O&j|D`~5YP38FCCm+Y{_6`WVUIvY;BF) zJ0R~&``;@Caot`;!m^fI>A|QRYh)PXMbn^I!~w#U`{H*!ZQw$8VI(hz!V7X-vEh(p zB@b2^8L}9(Jiu8`ykMvu)~GQPYbdQ)Fum6@;2bA6rA#&gbZz#`1+sQo-Wi_#GH-+| zl?_f!YK<DQ8M56fjFli{*02m&9eiW)jITe=zO+pCX@GYK11_wzqmqCD<L7F%iVS6) zm(f7!>2jE`8_rYq=1mHT%|X7(q{W`=yky=R&j07^;cJ}p6C~Gz_WWHiFZ?{Ad*EKm z0&_uQhSDoe5*r)Y!=06zT#yM}HY`|^I)o%%cB$jS@$swWi`UYUoJ5kIGId>mtVPIv z#uFJ6(s^-w@a*I0PXPO=4_FGy3VU#ww$RCu3i0XwGK!!r=<cXw#l#mn7Jpy0nFx&C zdag<u{XPlQ%F_qeksuW*wC&w0l3Ab+NLdI(f_R;{(_GazxWMEjk)4~vgao-+j*UN4 z_XHw^6%_@u&#mnlU2gJET`=Y+3y1y7V#dnS;o{My#kRWLR_9_5azSO5ZGsjvHrt`K zkpv-e>g#*SW`|lCFlL{ga)k$*T-#mnglX4z8*;?plS9DqK}#tavN4`sp+c%kogEOi z`7T%GaGR?9sPF+C`m36NMHxXp6GRNFr0^$pcV-*hf1p0qRPS5&kI5IsXa9WdwHDRh z91)Ssz4&`;B0;PcQRZn#8K{2kS`eZr@a5-*-Tld+{o{*wE6T=<&L5cxwUpsLM|E!i zod5ryC`PjJDI}DF_@2O#nGJD4BlHv~k(fs6CkVd2=1nvtwlRiuMsh@JAm3$S`~LzD zsQnjly+5dB1HEP+QI<Sm`}E>y(meS$bxoZsUqkrgSOJ?6a{PQMDcP7mWgsBdHoJEZ z@g}*mDKz;Anyd8k<4o7PJ1H-&Re!)!*ZdhVA<bRx=^9X_cE7=v00;comAp<!Aik%H zBdfq8(t528?|Zalew`k(f#JTfdRU^U=-ujD78WIlwZ1;=&j0e)o)LyyuA_$xE)?oV zzD<3dzvyrEeTim)`5AvPPwJIn=h;KW^n`fv<5O9&57(;ybmhG0W6j^wORsV_F2Aow z{oFOb1h+w4&=Nb2vJi)8<}zS`1T2<8aYKA}sDzf3FD@b((H((@8f`?+WrV6~9vbH? zE*}(L^{lD>n(EZw`}_uNd(qe0s$+)-FXiZ#;Vbw9gEMfoCE9=-n~<DHHNgGL!G!in zHw%p6WrT|L$G&Ws-kB%mc;9b~x&QRw_WE}IyKSRS<jKibH0!okL14R|e*#gzOkscy zmHgArbVNsN;3L@IAe~~PeZLrh7cOi-oh>|Uz0QVl{L|EJs{<%Yk(QYAP8yNP%EV)f zul=hNlyQ7X4J%@#7F8<z@`1Fg4E|pX#c>`04rVj~CA(G31B<@477IFQ1*|z;ahNYI z^R6oR+6)39ukT{+DM&2_YGwBvY%Y1qqC3mwFS{VI?ng=37W6ZOZR_3oyD=H8*B~%P zt+=BdvBie6pWTNhf?lm;bO#dRa(^`a^<Unn*&VnKRye7G*L37G)0ymksL9N=XCc?0 zUbW(QHvUUaUPFutJKN26PK9EJP;XxU7vle?+FtnGi7|skPq|;7a$*+KtsfWqGJb3< zacykPaW1d6X)gPQ$ppTs4>{ji{}1A<j*r@k6vWrwd1~{mP4vU18|4-^v^mICEn{<S zoFCY7WN&;bjD0YQ_`-8sIC2$)ljaKaP6)Awe_j*iZ}}N;MAcJ)BzqM&3IWt0?)MP) zdm&c=J}qVbsooDCdejy;ss(c2y_gI!9e1Nox4r*N`Mjic_!Am82g~ENkDcr!E!yfn zYSoZ#Nb}sud||OBCUDKkg{W`vl2fJ^@x9DQ%eH*V`JE`qZsQhcJ4B)R^Fpd1sl$LM zE=Pa_;EMcdU>w_TZ%$rFGD(xg`*wfy|B$ua#qV^l;f`g{BG6QC1G(c1o|U$p?o(=W zC~XTklyxm5F80~+t-rLC!T^%8Xp#*53KuWUqO{iEyEO;Jc=|s#A1zCd$n^TkJPa@q zU8c{R&0HaeX;SKZn%`RA_=uuxNa|NvGOvS~)W3U$iCWjff{*H+IW%(gMPc0C1;c2c zBAv=>Jt2-}W8CPp;W5BfLkJFRNKh+1MUb7m$~Q03>g@-3vons;-j4(+Ghu;eYHJ@h z$PC8a-8e-gVP6*9N`BtFLFusaR-zSKNL)0%!$B<yj5}jL`hBLC0Uv*DOh7QOOnUbE zYbBc3ud9~V`paT6EaenUa+CV6D~$8r-0x&a@+%A!BUDJ<{W6w$7nWtXRK(_d?2}LL zVr(2U5VJo*Wgzbj@cN3|bmYkcW@YSC9E9RE4BK|?2N{3}TDPL8OrY%1ZasI3$niF5 z9%(-fItw<kHcNb>C_kFmaoR7y0BK*n3LOM&<Xu7&kE#C>w*r&e{^Q+9kbWO_-t{be zk;{OdC?-TMh+t-4u6e_$23D01gbHQiIU1N6I5e-2k5P{7mK+%9=;{DP!vPFU$Mpei zp)y29!&hsB76is!{mFhf>nf2F<Iv-zs;|RY5FOkhXiE~J?DXzzz(~Nc%>W^~QYn7O zW~=b_p{@oqBtBE9OcLHf8&2}{kCMg&lF&R%VU;;JwD90#NDBv;3G8^9kkiCSwIWby zahn$p<FQ28sjOe^prro&+5EcdQPNxgZUirp$Bb-)3KG_mPqRu5%a_+}$mEdoS3Y$$ zMh7uIWPjy7DSug@AthVc<zv%UP4umqwiP;WpPMnSYkey(-cKL59?p`kysZ~=p84YY z#d?Ly0;1up!adFxUS+CjymBT`9IA0cs>=olb<_YP^v*xv(fX~0$zhBvZ@)n6%JKP) z#IMVLzx*&_nJiBK5nV-;-w=J@gDAZyVY?;GU7ZxM%og6KzJ4@A;IpvawZ!JMbw8Co z_vLFEQ@fXQ6Wq-yMLS^uucH)a#iMVvx#N68?Y)C~IZ)xt1vQ)B_#hDKO&~30M;#fN zJ!Tu?9|q={8hl}Dmr{}jo;Y#}Ac6vp5f_2syD})W?NnSB804rCPZxiKe9^f1y^H7k z!BW~S!)q>zb4FS_644gbe0>VNAv2pUieavc*I#SNNRLijZuw_TYUv{FaeHYq@ci0T z{>G&ds`QQV{WA&&^W(Z>UOm1#lmm-{JmsVidBqm=m;V{V(w+sb)<<}rPwuiA-!0a3 zO`?XZnVe>A?6P&v%M(0WB)JS?O*pu$)*=Z*%}(N%=(1XszUw}Tf2LM>vfe>-G<a}S zvC(PLVjx~>?^wil&!TqE(@5q?KYBO|i0|1a8ePtauiv;kBiY2w;uyBB)xDbs3t^nt z%<+i)l3mv&_^V&VSFvMk+HF^kK-Zr3VFCoHxx=>OSpe{xQ$g!RTu|@WG@FVp;PyE3 z-v5X|^j``!f)JwwAvg<3o$}1+@TqPIWF#@=JG(0EH2X-Y=|Me0D2M>#rJvWvECIYQ zPoRe5DB_i0!2coIJqpKQaSqg1dUhib0t8I;_C0!{=00Xb^D4+!!iAK@jZM|hGvE|! zmxR!{=P%&Ok=BzqtX<{=0*<MlG#(&{`BaejO9>6bqwAsDe>PU=*~wvl#!En)cXAv2 zF~%pizk{A|&sHoQQK9C^Tl26n*gbWlew3u{T0C}UCg}s!k)TuU+eLJS1hN_9*XBT4 zj2ZYlCQJ~awl_ax$5hVRK+Me=D1-Nipgld>NWCxt!z@SdXVGD_`$1?g_JKgD`+~SL zC;Re~jXM+OK9+P=Cl~xR_^~n0*EpG6H>dC^t$_dZ&YC`)mV;Lw|0rCcTfX5hvauNw zd;FxG=(>t?@^B&NkEKO?<EA)eqkODG#F74*8Ew{nnIl61_IIwIYHA*QOk*Z3erIx} zr}oEFJI$`&p?)ExZ<mA&*w|u{5%RhXp5i?WC>SKyTrdT8i$ppDBD!OEUmz6h*~kmg zcU1TQr{QHM!?D@xSx96>h_vnM@z#4^a8-+2M$-tjcZN@vE%^p1I;8;CsCE7NmP$+f zhpQdI-hNM;I3NSm?P8GX@8jY*IO_cWY%bIuQ_G@jfsT&NckUGlM^)?pJ^*)lyT(m& z_uE8z_Y8~EQi1@7$>69GAg%Njl|rNP|IUe{j_QMuU8e?b;weN>B}uyQ`0&APlY24~ zo;vQ1tT4rq)^70XidAK)4lMH|(1q*X638g*#weG0g|542-10e|M)$<ShKVurQBM1Q z8e1bp=goBK+&_o<o2I@blsQye2o6X+bEgq9e1~$sBLKaM8+y#b=ld6NXB^&2*><l+ zhD^;oXvt}NEvCWyVCn4|iUX^SqcJkXug~j>+0s*vCf}Nc0UQDd6`pr>*^>MeW)Lco z9%3}MtLU-q@0SiQAk^nLq6#CTnT{i0<3E(NhGgo|5t}gBN+2Of=?8C{Dxx{ULe7BP zF#$aVoZ>Mh`Q-m`Ix>xQu1pXoHtS2uzgB=$1U>fJFyMi<a&^oZ`tN8d;=utQ@Q_UK zkrOT~2`D=J@Z}FEBgLv~1Zat)0sJtCmOF|@&`<(Fm0fHsh$wE`Vr+{D^(EiY6q|w* z1Trr-*~<th$a?^s>uQ`7LHK$YYoWbjrd9YB8=+#^84_8S?`8Cz2cG1xFUYu5IPsL* z2)Qp6(nF#i56<YZVm?gd)qf-YDP8k5#`=|&$G^7bMblnWfx{6+ppG?Yir7E$Ncx+_ z3>}m=0H57hXd^5SmmIRs{bfq&V*hGqS{nO6+fPX?;d(<wtc@!Ui>iz<8jQHk$g}t9 z-|r9UMfAo-E`1xJ8Txy9WMgqt;Pys$Y>m?^+|sv==Uh0-DFxCylg$vhE`CgtWY-1| z1BAg@&mp0GZ0Jd-U3?)1xnH;$s2<R@gMg4m+~KXZNvoHyBiVHAe2B`Q6*ZWyhii~? zCVIu6intaoj9pUlP4JNAXHcG8E=st3VC|Mf!No5#dR}IiX=+7y{3BjzcrIzt&Xze$ z2r5l|tzG#!_&7dj|JoN}&(8b9g^`fmaeDgC(%QbRudepE+B76SxO_fQ6HlQg{feuf zy=>I^cC2M~Ww7I8!-$LyCo{I=SI1*mA$xil$w{)Wqs44L`~=F^z*0yOkLjnv8jdSu z$7)!`STMTSpWllvj%e5Yr?irdGqih=uKV^S-<#)gFRj#-REQc!I?|?f)0}mQL1MCs zU)`<3td*_*E1#4M@4xL>Z)TqMR_~hp9?P#(i%O-Z)6w7mW%n|BIgR-FY94ho<Rsa# z;HcgHIIK~BS7Hs@^Qb2tTP0N9kVH#L&y*uMX%+Ms<!K(BVjKK}UUA|j<D4&jAfpK% zKX^uPSPt2wM%=3HK3s0iPk7WHYbee{cUDv7_J85=(ovrtD#jh-yCh=A)`kU^3UNK6 zLmjV{a&9z%G=i1Ye^;X!hM=uMzPoF`F>a{+!@zl<NDcjQL-DQfVDRm}lmzVPz0<C} za3b=cMK+)af_yRnkFE%mhaPNj7gV=fA(`VzD$M8#nhlnO_R2HB{XZ%ThSHnXoX|6) z?o8On?tc)cZ+4vI1mu6~ec1Y+&)7e}4HXZc-R+0SJPQgLjwd(vk&{l7Iy~nyyg)i? z;OD)B#DC@i-w`!*dk-z~OItQn(fvAtw#fq7Bg%aoK#NUjn^UBghhR!Dxb<(m1lXL( zqm+H57HA;^4+9$;6-U01@8}Tn0Y@?Rc2JjBKIRJ4QNhzN9g^Qlz)`NOf{3L*z1AN~ zbU6oCo;8cP2f7J4n8beq%Yur9vkDVgE(vBiD3tMkkJwf<9|XWd*O?v(4HbF3HX4Ok z&$t95GBx!l(gb=XKQ<4_hre4~y0V|~rS`y*`2cAy))C4}nQ9s|b-#CAdbA=q_-I_< z{d;bK%3^<`7va|3&qk#Fz7pxc1=>Fn3ENpavawLO@%G);Ceg=p`KQtH&n3Rb#N^h$ z2GI@_gOt-GWnt=mgwHJ$o&`PgNb%-Q-@$GG>gU+dX^6zTU;=xfE#$CQb>gW3P9*ae zhwv3M4|I`D9ud?&r%#++<?zRmRe5i(paWX+OpGxGa6O46`a3h6{=4~aPtEaSk?J(o zPkn)cFD#fDzHzSW8#t)hu<My@qA99Hiz3fcv<{GJIWiMpiqj0oRUc~Xy}SP>vy1S> zY>~Fxp#w2}CA(O*9TS<mR{Xu4`_F-EAde1Dla5{W&G^L!7B}b}ZFvneOUpMB8!BZ| z1vqzc$oUcNgNS=3BH*b2U|}Y-e8<bBIU~gKDQ~ZWOOT^m&VlSY2p?VRaw?qzR$kum zVZ~L)n|jSduPm4%%nJ5WT~jLz4HUVIkG;~EyFT8>^fltMB(rPKs{oT$d;hdI?J=(> zWByETIb89nGZtwre7Yu^{q_!hn6%runu>_;2lT8`2_+!65hKY$jGG}nMM;?K5AoJU zIwasK6j?Wo5iIkgI*w>E<8Yk|w>_lZJIC<oqO6Aq{oi4Z{&dL&kF&pjHO<OiELl9u z_BrrrzDdda*{ZMHdsnP$_Ft82I5b{ps=v&g-V`w)^hp@O7`E|tbmTmt5e=C0m_a5J z7IJt-7Cb{Eu=2DC`?FyT>79-g^IaHw4H=S&?Sd_Sv;k`A`A`id9WjU<g5F1&M(&du zsAy3Ckm7E@M$mCQHk<b~Hvq7UOr)Z69u64*3m{4;)dR1_g*GunvF!5TR{~MF53EKk z07Zi)ZL%y7?Dmugtpw^L0v2>>|7VXoI6k=oaG#Vd?f^D1J}ZQ3KeHv>T4^(OY|_3$ z+Kx3k%3ytP=LT+bt4^hMk1m2WMQm}APqMI4^?ET+X6)D4i);H}-phO>kVd{Gpkv(m zvgfm!TAl4b(f?rwxLR#e>W9UJg3SQe=wT6`CP)p~S^!KSAna~>5Z`+KBRcWSKA}qm z?`qWR>rRA8kUTEgXCL^42=3CmeWs+*G+)4+j)2>%^kf|ldl~fw*OewhdL{n<NILI$ zD&PN)-}iCsP1z$EMWM2Z4wacCp=>Emgk%#=5g%n_WXoMb84X04MWKWvD?2hyS;ay2 z@9q2hqxz#q<8jV?-Pd)!-mlm5g`>V))z>9$8<Og%sDOC!yUmv-DlJ`&JxRivvSS)o zkNo7W6bcDtoDcH5XD0Zami3R9;X&PtIXT@An3d9>-rIIk%~yS&E!oGrSn$o^Icv~S zi(oISRosCRbLRJYTQA}z9xjU9iI4finw<<>1(=jt+Tk%17{w;hM1v9lo!Y%`7G6wB z%d?VC;hD)-vtPgf;`aS9^9&rd=k)Nz=DEukYfN7Uf7|m^&LFJ%t>jLJ`wJgVtWkV) zHSq3_`QH~W>(%A_(7yh7Vr=EY%`opfr+%&N#p>Y$6P}a`Nl%XED2wnPydh)z)U-%H zAecjrJ}7CD2bNaWsS{T#&ma3cCHSf@WG}0?d7h@(t?-u&bEj`RGwP}@x!oOK7!rx` znG)7{`$qqSX$c_h2UetX;6!gdCOpi|lTEPWz|^?ZKsPL$X9KqeEd?vD<o}d~kb}0s z&aP6V(ukDLr(Pqq1Jp>M9DchnGJoQnZ>T)qzr(jxbDt+tdZrw{3}p0}W?PVWHMNp` zQv}{<;+LOmhL&3sJs2#~iWJn3?du%&KAr9$X()Hm;kpk&N9m3cS>nUKsk=Nbn#?PO zf%`-PoN>h3E8L`tLs{7=B9jMsXE+I#tCdBNVzpk<4ip5OuZ#xdWQrXjaCTZ0ySjD) z!E9x2E*(SWq#fb#*ySRhknjln=p8vafQB^sYD7^~q8vurV&d7La^sPH1uO8hw)z=< zA_M%lU;zEp9TuVtA<63}8U(32$uxC{y%$k5PFbNuDQ?1`(Wy36;8IqmD--$3kPk`9 zrFtEd-^ET)Hqu2Q^`6>Y!|l3}nh0HlE&T>Kg17-<+w#%~vd5pW*IaPSM<7%-cU@=Q z%(~ZGuQ(%G>N2VhL+P70pMz{CU=&$veL6e1f3S^#Y*dJftOD?2n}d#mnm<s(lXDwS z)^9FCiJWKHMyvhK;x5NfGHhc8oIbrf0pJG8`vq6ImKjcLa<-R`TAXp4gS5;<29vPt zuO)bw@U_6L&K3-Ml2R9!?>r1EntXD_(|=GZ>RgtIfD+?<Q-}8b295`!p6wSYh$6T! zCZv96ikw2Ge?~GUuZ@@ACN)Ub81Zh|t(f-vUriOfAh0Kn<-YfydluzuFGLsQB(>A; zXL`dS=>SR?R2hUX2a1$6_R?cHqA%-RL*`itmep)z7ct0ca$@&EQ0^<&g3JmKB0A~w z5iacYbJ9R{QBvmprr3d}xvgDQ5v{o<?E-a_Y5A`vGs+(K-yGI2e|Gq*SD?@_I>~pc z&&BJt?DpG>$VqIH9xZev6jYZT(0H)6z0P;Sa9_)NGsY_F6`wmwdor&ZQ)=oSm`wbc z8vjEJ1PA~$ygoXNr!4(6JWde(gi=M2pm$M-a15~J$p1>{i1E9Q>Ae^@?X0iRL^6l; zBDFI(MGJt3RTi=!C2>pFcA<*IGUxIiHPg?l?9aUxad%r^cqewW+V_d%vtJ#~%!qNC z?lQ}st_MGcB9j)~i{%a89&xqywo$f=6N!CJ8&JUZB#N(S_IdE(iaX7|RGvb)ZzJs~ z5pp(iQ<7Otgp`FnSSkc)t8VKfl*`8nmPv?uDkmJ$7?JFg<R06bXixwtxu26D?@UYd zd~(cFKWC<$tC)QHidKuvw*Za@vViEBm8#(GS~qpDk+-;2Qz<6a;^6ppDb$hs1H)Ao z*QvM8u8U(IJQSO<=Z-ZmKf%k(N>5m3()gIdiwgWvxfz>@NE;y=_9xAld11I=0k~c6 z<P2>U^DZ%l13*zATw9n@@L2lizmH+mz*nV*wAl(UlRMS>UQ84|;aQ)7<H=_!L|B3u zRB#LLf@0YYXy-8sumDHs#J{uQAWDD-s4Uc9oe<yeMfvqV!W+Lj#LXRs;Batc2e3CA zfMfg|xxEj_P^XRC;X?Hv$du$W&C-ammmdiHwKK*2SzMo`A$*h1CV&J9AesuATF1YG zo$JNPt<SVXxbxe?07yP;Z2?cIr)<uI?RX-T`mJU8Lc6FGA}@CIPdcLc%tcBFd>L>! z6di3{1cLHS;;S%^CPb0Rs|E+A)@>?P8!{*ekxvoLc&K==eVB%lm8wdzsC@}6_3|%w zT8AM^Ir7e%<Z%UfGZjGAf0&gew7+V9#g{LOHCMbtXva2<+FA5nld_`IzIuF&{1sO8 zsikgbbL&z=gTUw`PvcqfgX7olN7z`A!0xo*G33AJj7-brE=yik{6LYb+wU7xl}*d@ za`T3&%N*gM!MS!|Q>{{cbK9AjybQ;1SF$Y5=Q)tvRgn-$wMe*H%AZHAESIu$(tj$F zJUB2TkORD66nl+Qe3hOUF&JNYa?d&Az|d@@ZGX4O8Bq)7mOQ%2q{d^oc#GVa<@O8g zBF~%0+Ib6<A~g7u&u}=}T1NP9{EjbuU+}X!9Y>x9!uJlBL$ytbFpI}m-VHO9svD0C z9ICx}YX-&=<lTnHVlD8u`0_mYb<RjqL{r?<%|m0S2U-6+#-x3}L+Z@v1E09aGq}&R ztkd2z?z?v$LB#e$!0)e6r?@hS4)oT<cmQ?usQiaz<L<C!pWnbx`oUb&O!7Dh$W0 zJ)Gs?#rr1q{%x)s&#K+HoAq%hwM?||XYuWeFI`>Au%A9d7ly;Ay_bX;L=PcVrImMo zAg#UlnFH<Pg%a|9z3zG9Nq=PZ_`1JhEs@e)VxkT_BxP<TB|v`p94E*_qQH9Bt(5Nd z6nZ@AmAq}dxk<fO)n|{b0q`4X6Kb=Sxvn3_#?<1dB;S8AJLyJ_K5##}b9cugH3%V? z_<i?eM@#aPP_McHcPZQaLx3V>NW6|{=8N4t%mb?kx>vxO0(!$*${@^*tiQ_;Hr_ls zpny_C9hu=~m5Pv!=rB&tl<!kWiGqeExJ|=hz*OaK237<@G8;K7_z3*rWCWx6%g!RO zu%8y|IX8Oumjr3#qAdY-qOFOGAn=Vgq11{D^_zR?;2sXH)2$FuNw`qGojy9BMpXM0 zjVo8CD6wOvzR;xbnK}X7hQx%&C`?Tgo_~JLK$!U=$Od!)ThjJeRQ>k9#?d2t1dz79 zY|!xZEgXY@4UYPNj*|W>8pPVKa+IZ6OA=(HoiukC5v$9;Rjc!|7G829)R!hw|4bJ< zJmXt-mO4DSxK@@LSsOfLWIQ3}%^Bz8EE{+8`M%d>b6Y#J!-4*TEg4e(wi&#Ck9?(i z%x&o0OFk8?A$^bQ%|gXt`Cng)2W`8S^ej7k%>8?!a#Y5n12|X?<5l|GyVW}WayoM0 zwYdnJ909o(WOz9C7oVAB$4bOkS;@Vr8z{x8GQSx^LX;H=q63CfQQ-h4$@`NNw)5<= z9<R?xXZ1F^{*85ABY1tt2N8H~?w^o7R}<lWGfvdk#Wg5npsn)usY7=rcvMqOR%QvO zc|E53bQ>cINgu`^|8Q1ZSPt-?k|s8W3tkX)=P6JgikTJc)H?da_!ZrzLFm@41E{)D zO9n^d{Ux?La@V=K#~tDoga}UPdLk0yfLa-N$&*4wag-tsg1!C|WWAe~_y_u0qyTFk z2Z1mxWIf~<VaB1tgQP{F$E>AM0csW<><vRtc?;-`n9Fi;L>qfAt<_)&pE2$2&{cCS z|7>}76$TM4lv-&F%#Q>?nGju8vSmwZyuTMB+waz5QazsR*(BC;P<AN2^bCWp@Qz<m zoP$YwX?toxb7E#IH@?X0R%tv|L$|u4n(^SW>D%;-SqsNR2X~WrHjd4OPuJ+zZiGF* zJgVwy;&c$l2(l3tM;I}6J$d=}&#M-;FkULdyn{$_3Phybh5QQ%>YyhM7YcyWqUtox zr<I;!1zT}GJtdZdkh6kNte_YOv;O`4Lh>s*#f+-zimUgej+@i}r~Uo(8>VsjSK~MA zM?4?O-*fzX#PrGiiz(?VkC>vmb88KUwrh(0#ri!{B%(I<;?0kC%BQJ$^hq55uH;6` z*nRQNYy8oSoQMuXl<fS6u&a7d9t$BpymBC;({v)WCjd5faAV1v`-~^a;;z0>ZRi<L z6kie@W|6t8XOOwI*>i~I->PXdXnp=l?aoYqAkit3-B}uPSCVI%BVsk~*DHcx=^qgF zi#`9z!r9QRm6_o}IWNJINWOCQh>rki>V3F0nqfdgzV%BHu5N9anyA31v>=?1DtNm; z$IX`>utiGPzRtA5-OTd2Af|#N>5d~A^1O^>p6B8~C@xBEKw@Ptor`i8#T-9mL6}?Z zB@>O}hITMAeC~b15>j<uriK3@EZ{c}PlI$jJsF-B&fCf|<JKzJ|0Z^}ke>X*8MZx( z$1p-(%S2+oePhC0SP8lFQNS;LfMj2?zGRi`z0dsa$?QdsNeL5V3r}{Uq0k%bCxktq z(vS@=fM63l>zLqN5);s+rX1pBnP+o&-!sEs`5yG=be=K}bSLEOJul;7plT!1s)xlI z3rl$<hL?Edh#z(kR_ya_P5G4nj_qyu?U}E13e}?nt^*r<)$GHeN`yn)CNyNe<41Ua zTR|%cWj)K6>Vf&<??|dUgHWWNunJ3Phf^5ImCup&_mr~7jyNi#(Gk##O-n^dy24{L z8h4&Blc&XTlp6lS?Y%+HM~MW)GBftp@ra#Wq$hnuX$%K8_9<sxp0l0wtN1b+KXuYj zF{a1c_4Dv@bo<eUo(dP7YTzKMlEgw0c+2<o#hp~w7`?s!j*T8>Rj0#DsQFrt+v7Pf z+aM?ri}D~<SWgY2)ae7HP#mQjai8%Ty9X)X99hB%Ad8z8+@%7OH1+<L>yZZz?4%cv zP@!dGAg}vgy7Cz%uB{$pg$<^i3v<`r!95xIVOQc!J{8AiPFX%^+E%*#o@#$$SS&~D z+5QVTq8=P)Chm5~i+W1_lOO2~7tdBX;`!=*lptgLx$l9C|L)fI{`#wR=O-s~`1|7i zNq)}=jf-9B8P#qf6Q^H_8_1KiBnUY<<&awtmn1C2Bba{^19{Svrrhc*3n6phODE#) z`$@}<_rv9}_GWq|d{6o%`bJxB14nP$J3IU3azuJ1>D%^Sp3%s}eCP<__wVY74wh$1 z?yZehrKDD(8YPB${r(^5?#r;ylI=vevD)J}*rNvq{~-gP$5oN40x5Pna##BwFL8i_ zHVo~78yk9Z6;H(5$KOV)if;aglDCnJ1${0?a#=Jq!f{Zi=9w|h+Dpz{Xw@!wzj*#B zJ>^^wqG+xH&`z?n1}i~<4ztWfGx!+^9Wx+mJTdfUVImL3c)^FP3kg(fz^B}=B6uI= z!obX$YbroTJl#=cp9b^;#wyeK@)?L5TyLrJg<N=gAoyUdvdR!m8d6GcZgC7P#hg)p zfQDizpR*%uuDb1v4n!iFYJZ(|<%QtaHRtg;L0-(I0GNWhde?B}S5WaRB5Av0)K7c~ z4;Cxp;RzE~^1+rH@E(t{L$+=M?&{`V9I-LZ3G6Y-Az_HEtP&_DQD+NEyl_4R%$VfC z3k|&I^Axf+r!KfCcf$PN#T}=(o!XOi;>6H?Jn?H&)Xv;$d<z_3?SV+QC4Ohyi%Yq? z^V?LjRS^%`79^+~py&OjCftERYUI(^Uo92V{W+&KC8IS$+!R_1lQr(v&{C2TaMV!v zzQ^f0k&r&{12of;MMY68-VE{i0M9FPG!2nWXD=PG@{ppDPH@hzo=fz%FVhcy)?hug zp%ZSRx8r7!(WIl_p(@Biqe$;?E5KjO(U;kyyt;^+u^yRriGtqijdy~l8=@ZJu$Ns3 zbz|k0%_C&JgO&UtK_{N+z4)i*sKNMlF*+5RziIy&?x`9|87TOW9p0Fp=Mube|M>%_ zYQD_JobxX_BvzrnRqFivv64RC=H}*@*lgASA5-Arh(SnWz%Qo9sN9r=O8nsVqM zZBNv}x%K5z3?~*o&=rD|_p1%=mzge|j321ENR-<aR_6Gz@R^g%FEY*i?#z}<yg-6D zlj4P7vrjxvm3M*%`jcv^HI?64ygTj&6_U3bncGH7YWLqspnex8|FWyt_u;==<qqGU z{SGhw%=a<oHPegb21&}!#@}K7#qB9oNkE!K;fTgnVL15j1tabn_VL_U+rOAWwTYu3 zr+@i2^cEdxO+yA+TTm+<GeHqdGcu*-)^@8tsO%6sT*nce`ABT5;6vxeByElYN$n!Z zjv^=X&7CX_*Ba*o(J1lZ5rV=mG$R-adyKyu!(B+Ov0D&JxGbg@9tYLv2ME@yKpsiz ze~u?9U%Xx$03X*R`&(~mJo&I1EG({cs6a~`p0kl4hy%RGnnb4_g=V-993lLK7zcc! zt^vD`vTxwyZdP*t@?HpN`yH8)10lY6TIIs3i&`t5U~;x5J>%9-Xd5ob*`E4U_7xPV zn$YD2sJm(zbHkNy9#Y^V^;*?d)u<|H8j#wZEmXX}d5r!?L)qCJ&>KIqW-oekY_qv9 zyKZs8zM?^FHfU|N!#c5LXZ?gdv)%rwwKwkr%>Ix=#K#JDe1iyO9~F$$!XMY)x)s0q zbF~AGjq+jpc2>i-j2D~xOc>CNSY1WE{=ez07kb|W_<M^v$~v)G2HbiZKU7~`W!V%I z`)V%8@8*9F-Qs(4O#6>KPxhB6R)@R!9)f?@3Ok-W5e%i0qp!zM0Vl>d6zkAIYTeMP zqdKIKZ|k#YdBk4X?-#FDrP@5R^yi%2^!NXIJKoqMKyg9bLPaXqF!BYZp&{eCrM>O5 zFf}Q$=D!*}t7i6DLi-lKF~p_Wgn3Vt4$}LZ_;>4?xd;0dypi{3*m|l*dFF^*5^5}Z zh+Yz5Cx{k+h~~q9G5-gS!M^rqX6vvo2U|T@JsZEePEQFkA^COC(BmjhpVLrvpE0yo zh<Xd~;xMsxoJ&?EwaaTJNdO06V@2l_+qbE%&dWYeE~*`4k772x6r+E@y)Nr;-q-2* zO><;DoSjTxYGk>qY?GUWg3<EJqelqhx=C|ab%Z$hZ4$;2<gIZ*SHIp74qEonx5+Kr z1K(d8-8jVVx^9GgsQE;HlJix{g<Ok7iiWuP41t&0@#m)0inEXP83_(2##{e+KRr<w zN(kLqwu9*+`&91QqTQmot@-)R<{7~)JqPk}KH#|MJy9iv7R(E;*`exhe=w0=#L;1% z4M+*;`%3+Y37&FSf>hCo*xuH%pScTZXAHHv85Vr!__OE&73ZmNcK?FJjX|f0^%`02 z)Aw7uc=jJ?;ku`sB3>}ovi#}x#MUzB&EUX;w^zOeqS6yiyrt$jm-9OIZt|i6%W@2p z2k&!U_(oKbxM&i{s~=o{c<jE&bCjm&<K&jJ>76S6#V5mvEtG0z0^9hF!y*GRHwkOE z^(|_3fUnHs3?h8xs^bJQ2kX>Na(!~iekcZy4YM_zge2@ZyDd_CoPi)O-~NIfAin}u zfW$z6_S2U#l?LYmKJ~J?kFbGZDn70xi#I<_`%VZGX1;n{N$CRTEFG5c2x*&ys34vK zGHaITq4ZchQCM+lKPmukWOL_JD#80v^;BEd?e>3gXgnrMfa4%B+v1)zCr})Z!HX~Y z-5xrMX2?Q?+=otD@<Hz@$X1B#f-nvrMQR<8AV)`M#}D)r8;ei>3qQTQi~_<{hZMTf z+QG$2eu<JxIo8;5<+{IB<Om&YXWl_W9*)9^^Z6(FPv+moiOXHhbo`%t<2DZNtftQ0 z(8ZJOC1>|*%8}|IC4CJ_-*4q0CDr;xM@L)pa1Fjc4DV#dt4nFmK=bEvkMy0`eUEo8 zSHJ#FO*L6~02qvxYU^uLwl?;U_SqO*xHt6GC1EM)WQ2+|4R&cq;2@SepSZnwBkIpx zmcYTpHhW=h!jVBydr=OY;uJf;?cV_(obehx*6~0Orq7B5&jLI}2T$M)LVe132{~Xn z|9lRyjmJ?M4?@2?A?zj>9VK2pnP~Q9ZJy=B^{nROx5EB57g$F(W>+#;{2VB+)Hr@| z(8Q71@hI^De&KCHKdnlgJ;zrb?w_?DBUD^7Pp@NqRAOCz``gB-AH_7<Nm2eLeMN-@ z?}EAhiG!xfOBl5m6M>q8^aCUj7L1##>=EZ0M|${wr#!yJ>)n^;UK^>FHy>brkkdx^ zSlqdXkz7(M!-XSu9SsCymkVwc_9Ap$k%he8@GT9kayxg4nOxMOkFM9A>QaCS3@ajl z?k_u}$kS5SQ&ml6RW~kjyy^Q2AEek|9L2*UFRLgBRw`b@;M+CDlCjY)&A|+Q@j@ni zQFI<AXC~%3gN+IXbRE8MiCmJ<gR|Yzs}<8~+tjr91u9`dERz!nQ3xV==pyBbHWY6@ zO!Nu5-i@Q)hU0=ZvcCA|thM(E#P$?P0qmtaN^~UUx6p!eCs1AanMxbe3unfl5RaE^ zXXMP=<5wRPm4!qX>+T@6*GdA*PLP~q$e(DaU!K7Z*lyuBga|iL5@^a(J8_D?#g2r- z^ojvX=#$S8Yot*WKcvh@sP;^{#LVwwNb=*}zS6iLSrch?)_DUQarZB;GDFDFx96!o zsp+(lDCR5hFgvm<I-i~}NIAMU2@Q%oDQ`&K_ev8HpqDT(A;}evTm0toFd<pUKdy8E zy=cl=Dufi5VPB`#&qsn}I6ZmjvKNxw@nXvN1Vx`T)d(<X{jLP0ZQO>)I#uR2C`Qs% zi@Pi)N=H0M;KNKA1!VnrcY7lIE0iblAhWUKhf;4T65Mud0X}_9L1_%7-k<JJBnXD= zE~;anP)d$nebCzPNpGb5%)^$Q_O>&hSzh|cU-P*yMd)ZhBP+*8YTqFt?wFckp1BaI zY4kt(4^s8(UY+S-OYHHF{`zMr?W7~?9-b)TJ_HWk#QDYz!M9hcdmhwO*CvC3ec>mb z()&8n`EZnNh#n(3NELfcL+w#T29mA((Dha#YIPzZQ<!Dz*BDP%*v>M|qWsP#t@i0_ zaw!PwsRut;$1RAAqsOc^n0S4nS>kH0=&F1>E<1LU{9wxGj=aaMrqGKG!8v1n!M?uy zrI+Nn{b(NdTJD$b&Oh_V)F|~=@y#DnA(bzg1V-@0YeR7mG}d2)z5`>@3vWXef~YP^ z<zJHK#7?ZxkVUzX0iEd<Bq*4HG%|~l5ArtsDR+1GHEr1M@Jz6m8;cgtzx>AWO(VPi zG=sw@{!6blbx3i)*Iq2HHTqhXYiNj8qQp(lv`0C}IwZi4_hLgQjAZ)nV^d-5d(>4f zU1q+!k)6of<o7yN?)o&xLD^>3-uYWk;(c80nY^YRjdCnKkF9VXIUNyXC?xnkrqAUN zZ+~GIU7Z)j%k{i}w6~>so>Q1j{}occ1v@)gyM(=`a{V|$kzWY2q#S1==`see0@!+X zzgA28sRBW4@F?Q$7m^(w8PQgBgisHhzSeSN_{RS-jO2~w`wHHxF}6B1ul;Lh#Slu- z63v9&@F;ikgF6B<YMIZb4!?eLFqRHe*-Ov$9wE(ggalT}kG%>G_)jn>H015(lclxB zyB|ezuTI~ROW^jNXaq+X`|TD7BCb5|H#a`QxU7lG<E45_Hd_$SAw@VXUL(VqkZwyK z33+^MKgbnF2*JPTh$`ZcDf~%CjMlIjNdwv7qIF7)5KtaKxo2S~dqm<X^D<v)aODvS za53XLcU_S%^AS}%|NYBH8mbQ*5I@boXp2T{N!sGl=)j!kBRVX6@+m@OOn!F&N+DfO z!y3zHKJdTThdz$r-N8XmzLW`T==$WbL{(CgmIN2p859G));m^V?3l~_s;eW<=5=YP zc6b7P9M&XLT&?!~WgueP|FE*u83}3w*#D&b3_?AO1UZFB_OX&n!|biHywUZZR$jO) zo{%P`oG~^A)6?3og|Oh2RuhDhDxYI?1@8OYp7zy9ZAIzRD7kKMsApbEWvyGmlTDCe zvm6vCdVV*+x=|&F$#bkc%vZI~Zk68n`>CJvX6UW|hz%Cn8%c<<{gl}s9m{W|ZpJ3@ zDlNS~-<;R49r?=1e7W4(m+@-S8I}TPLB6uN%HMAm<?ehD>{*o48E`%%&~~Bja*^HX zbE3J!9{YT*6hlRjr3;wnXBHEr5rG^y(*3TDK-cfX9ov4DoxA{K8721eDp|tlPG#8k z9TsMCsuMlM*_A|R=VR%&h*UxG+hY8vs6>Rb-$5EeSh;xTuVqWt>lb1jycjixE_133 zy$X6LGGy?kYWOz?*M%yEQ{P99mZ-nCnz`k&F;Q13S#Uz_V+`gK`GU5%;a3399)eDE zlTZ6j^UDRv;)87kjVG_M!k4aPeZz!rosO98$wa3AjD(Dg%<-?Rn&=;gB3OEgehA23 zaY_`s`Qv~8SS`Zjk)CK4ugXH^^{^p%JWCeXLa7P(kuRFR^-(L~tI1lTijoN+(z8K( zC_RPVy377f^z0SZZ?&o?bpCK{241e$tNdj3cOQ{?J=2NbE|nb}I_!D%##)y!j^u1W z6!JM9zoIMk<79DJSC5rw+KV_&yW!*;ZQ*|>e94n)2koF-VF7^Yi#E$bCMY?!9I1VY zuKRG1Lc@Xq^{5X=nLmH^k@W^#`Sp9CnXcf8K7Mq&7cxi``&-|?QCk{|V3%C`&98m_ zt8IRVSM!9&{y&tNB^o?;|0=&*k*lV^K=&0N_5-=%Q6*eBn<j4S;H&u2gMOiUmt5iH zT85H&3uGsT&Gq)1RlyXYI+}`-#iB(xu<T;F4!wcD@XCc#;($?&7CRf+P8WEO@*ojG zVZ|{BIB|R08AgK8A+HIi?eDK>5XCap6J7E!QDer2U)?lgA@H`4d&W}?TuD>TAb$;7 zM07#RI(snm+7zY+K^rm)kXt=*5P*LLO^<z+7q}1s!6R%~<puYQepOP+6?69_29n%h zFGfQyLWoy%cWxXfc~FA$8sUQ?VuuTSASlIJQxCnER_VBQLrqeO4-J*+tYn`>>Qi5U zLqI3!2o!e`9~XNe<c@*@DQHImqsR8_Zj~v_*X1AW>=z>xF?Di#VjXl?!2y?U@_%$N zd(PkzqCtFYgxPtqVHqLDPbyqYUdK_`zO}RlPMpP2&RUUrPbbl%L=C&qy58wzq$HCJ zPal5aZdZS0MmXE!$F1h4HEeMHQ!?pd^zj3B;#r?GM~1V9e+9g6W1C{Al;P0U;e1ar zjc~Sj-lXefDb3T+)Ye%nY3!w}B0tELRS>no&}{ZwNLgYtZAIW=GoEMw|2QM+Ge}SQ z5?Uq?$mKKim@&=9)VTgPR`MqXQbjR89R=P~b?|0+3NB#HknJ=9Y~hX8=qf#Vx|~k2 zT~c*?NlXo~XiX%mzD+7%WDVjd5I;NJi?}Rt1?%q2WSz-4df@uCI98KqUjDo)N`@!O z-WpctedER$+x}sHU)wzrAw^1JLTp(9p^HRhZh{fZL8?Sa+s&TrGWMd|ll9x{@;m<? zrpkC}F0M?me7Id~Go<}WW$JN~X4p}@=xXg-MuYsP2*r#Y^J1BUh(=%?9p%M%Hyfeo zShE+hg^()plDN^TpK%8@)JYamX&i+5Bo>tH0u93=aIqh?6>Ua+no)|Om-U@*afScY zd(d(xcpWBadPKKE<@)Fv1EbuOqu#yqd=*(fMc(Jku4Ot*(fBSEF|o<1CaaDYllyIU z${vIS`$p7QHh)QqU*#2DxOyntDfR5>+IJTk=^hDH`mAJBwdjUAnd9mnR2-r3gtHoE zys<S1REcld!;8ruCfJ`wsFSeq>{Z*pyD`#`^Sf`VlSY!L2&EnLz=lp<ZU8{CLADS_ zF*Zwel0byx+{iy^i18y$tmMOv;{4nM@qlq6ngM!)EdO4D!m*|I2y4j7F$qF7Ki~f} z_Lhb-^+?;OCHz!@@~J~+xzbQ0&>#r1g!Dwba3d_C^Rjzk3GMGn0?nO{a-#uZJ^t_` z>O<%`3akku=>DEAB0dtKBQjPvN)U|BWgW%A^WFVLzWsMnpAcI0R{TI|pjszDRtvj3 z3nNi0)?8EBCmRZ=6(^x&0-?$vLBJQN2;jw1Q>RjSr)|N2@fC#`*sr?JN%Hnua5OAE za$*LhF1Z+{Gm_=)j|Xr4{?y6~t4M0p5QDanwRhKeG0PNQMZzKPHEmQq@o5ecRE)@8 zGuk*u@ASdQs!c!#IeoA@+2Wu=&*IixUbO6amTx8I_w*YF<|q4Ke?*Di-1F}tP|LGh zqO>y1jR`i=l>4o5qUFD}dFaW8IiBW`2&E|v9XO1J<bq)NN?KLW^6UB?>A#;h657t` zS4f%+y#H1>sgqY6lUwWJdi9T0?#N=SrpDot@}ySvgSS59vKPtz{Bv6jFR{l(?S?)> zZ*cHl{9UQBeOxk;ze2Ct3JT{+MCugZd{WXbK%N|y72?sD)0H5M!XXual?PxSEC5K& zEH}0wOoE$TUJ^o{ZbZw~XYQkvvjU{{Q#3yQlT4ym+m~na-$A`+rX^4R`1cy;vwAlQ zo7VVZ!kxj{zB1D+h!@U-Gaw@tLfT$O*HXj4c%vS7<Dbp$?DznoI>9UqAMD_{9w%(c z!^`H+oT=YG-;uz?hF`fs`b*c_m(m9aW{tZ-<0;GjG8>uU!=IkdehV)&w5V(|?Mb<C zOi#}G{I7G<?@J0kCK}dwxOO<6nLTY`9W$;YtQ{b`w0(B(2a?t*4Y{x|7!-9Ql$_6U zT7uyJ1PO9e2nX@m7)L#gCsZCMX`Nvv`+}eo%dK$~PoC~XN{p0G<}@ND@lxrJz?`0T z`AmaG(R=$7wnkdDC;B=+ZqBpp_OjK~Cp<j9pCD*lr}!{#tn**yfE#m&kC>8->5<}a zQ|T%GdkTLlFMcO13LfIBlU6<UU%F@8RiZ)j^Gt0wtr^9R?uVqR&yTYnn;-lH!6D1( z#VrGbV#tTR=KP8?*+Ur3qbJH6&}k~eF;PVm_N}@63oWsGvFvBo3wo?%&S#od@H;Z_ z<2a$-7gk!A0X-ej;1w%9LKMC=zlAF|TXlXdPf}Jf^|+b~@hjMx(sPhn#g~adZaAsW zNN!ni1|3pCb9cEBg;peh6k4iUFn)`l(tsx(^ARE}1y7<rz0VJ_MuKE%;ODN!hDjE+ zGAF=t+&cy1H>RNLpCg53@9lQo?xC<CRVDoU5n{~G7%dBdeBj>szYDqw-bI6JE@m|4 zzaP^<z1nZNcSvji65AjkN06tm0Z1S$QB5L=+Y_F31IjcTp}za>;{ziCq?FUfCN<fw zAtiF_>Ms*I^2ojjMqsquJW`5}QhDvd7$+LS(a?$b=v~DlB{ND!kerNPtxU`;Qph%| z!;3AxEt9|2E5k6HKI0&xWUZCYyPz_|^`|^ypp{9msK_X>!Gg`PtjwzawAFHHgi(H? zce?)fz@sNbMP^kv3!0N$vkq~6l2MXrX|E7C8s9ih`>^y)L#CVqjFlwG)1o}sUVJ<c z_Iz&^l*L9elP8lATN65{=%pMR_$)^9D4?gf@)C-iE*qfbM=g>U9ps0L%1(Y>&imZB z!HgHq=`>VPJO3fJsYWyX?!Fsew24wSBJ)P#@BEzFQX`qAo#U-;D5UxwW)02G-KxSH z%H19_M94Muu}irpRXqP|`bdy#XXAK=ZVBAgkcb_40mc~z<ntq>1Rg-tM_g6Zt?~jL z9g&TN4@cS318-E2BrCyQ6Qyz!;AmTr2r4q)05fL#-~b)gs*z}ixbsZX_^cjNn{sz0 z_4-$WFC~iyt9D&yXCVJ(_~r$gz%=`!TkT2{%Y^WeoU9$D_=7F|XQ+>UuXgzVM?0@^ zO8DFeXheP-)+evE3b$J>Pj!CK;&xYYp;|8U2i}ce6m(<o@LkULu8h&@w%KD97;_@) z`n5x{1da8f6NCjQ2gJ?X02C!rp7a7BYMs-2kP>yJFp#}PR}rGEkT@4c6W(k4irq>Q zFVAY`{Q26RG^wM(<JV<Q4gLzK_qUAVTA{ChM>M*^%z`6-me_*jGRX-u-nQcwq!sn= zaST{UWd7egl=AjGfVnD6@2Sg>bRX?3CS3_2=^hCImCAYVXI2<VC2|8AlqfZG;if(< z+()wOkc|HJm#ZjQd3O}dNIqjin#${hkGjaAs1@M4ZRR(TpaFWyC$*8UoFLgNZJ9cM z?KqCZUN4U$R!VC=n#FL_!dm?haw{M)5)k*GdGMffLGI8tun|Xngc7fkjaTB?5Ubn1 zxk9jl^WK8(qrDbz#>FoV`=Hc@q49><*{|J)Yz=6D8?k2bNL7!NLeK1a0g93A>jJhH zKb7&q!U^0uzso>6X|+QAIB4)t<&Y8c!7r~%Yxth0Y)Os8RpxTZwp_D2So*ICkyL$z z1W}RUYt>%px`hjT*pFInFZ@KSVj__B*=Aab!^3Z=qVnAc!6?mK(;I7jCJP)f{Ldm; zH?fAnh<AjQ4$b6VXt_Gno0$EW&1!1MVzxR~Xol`x1mXJchymTjIS>+gmgknGwUP<= z>%3|Y)N}OTD{Zx3-`jb%`nE&I8L8fvp%S<EJ;+?m1ZBi9LDrGt%|fW`qVZ9}lk@C= zj}3;jBsr3nfD&P*l*<cgll%G^i7ou%OOG8Lyyn6V2{%nmHtf=X+e_2LSGkIgxU$b) zLSs>J@rg@<l6?wBE59Y--dk6m)6(Brhqqmk*lancn<V-y>j~Ve(J!{VB0gk=gdF)Q ze(*93PCc0j3mLfA(p(;`IJpy=8vS)=)k`63XH{(fPEd{$Lf)iV6J1qPnGZ8)U_O(k zEfV>zKa-+4JUR6zS(FyrnGwxN2-}{^jrhrrV1YlH9(Sp}6jGo2u&0kXFzvl*c+}q6 zYqjCDtMB=+c)gSQ9?DMVhlXVe8w?L-+cP;>(JSSLHyBp%mIe18!(o#X1!KvU-;lO& zTNQ%8R!#lpk>iA!@Qg<n{gEozj}tx$A=Irmh7trPp--zo63?a~^9on~R}Y!X{y-{H zn@)#$!^Bko5KI4vRqBP-K?XLS{HFzej*NzmY5PSsl&qf(%qp95txqj-P-FVfvSq5X zGSCR;?wfg+-tTF6sIJ>JjZz!J$SrB<a&wOx{p71yUeT(~?2P!@#I`gu9I38eO&OGx zM>Fl>9~$KsIwW9sG<eZ5NMW9(lx+?Rh+rLYnG8?_6@^sYffX71<f-YfE**?U4EV66 z{>cvzUAa`391q1-7CI{`QY62!qT@jqkP<GrMGgn*D@0ho+?w*fjR7=$n7Xz7`F|;2 zL6x9Ti>PnX-q>4ePil%2gnL;!q))1#rQ;i@^Y@LO;)yTpOh{}mx@1Ulz;ZuE2^nNP zz>h7T^!-!ura~OapuG$0()(4q0&He!@RRmu@YN*reQ~z5fLPlBLT;}foGzsf*fpc& z<$D{E;p8quTlYqKO1?BQhn9PM<N=uFxfW^Q{3e#P72_xm!N?q*Qu*%f5sd=GiuD8q zS1wUj@kE?C?Q{yy6qKMOoiQ=43D~|59**UD`JDP&e}&lX>w~VL>#?V{A7!VnbE4{x zH)*$5<L{d@=Kt{g*m(72i|)jee|mh`UBw1Ev2o2q1G%)6%==~&)PIN?b5ot!!wmV3 zc;C2-&)2qx_b&czEQuKUD)Kh#4qNvu-zO{XV#C}07tQYEDZgdwOD#z3dU0&uy~C@A z2f(nXc0w&#f<{s1I+c!Mb!jmGHZHJ3&L`1QEKVRH;(>ce7O{U|24ApJa`kR9QgSaK zpO%t)k<@E?%f{@s^eY!dONY~OF|AAA8;$-nNq%4RE_RYz+bowAyP|N=gz<)&=738Z zkzt={_+{Ms1m#xEbN&ME>sEt>sT<GuW4)LqrXnZXMLe!JKXy#R1^;}43&&4Nb<Ea& zyU@8+Tl!R#lp<vld;w`&1Kswc*zSD<N7?*?K+CBoEBQcZ$7%p+>MDD0z-hf-M>ONv zv7apK)nKf3zGR+Gc@enS)fj!tOj==LC1x{idpbl;sH7uDVrO$O{3*!K*}ol-IT7hd z9A)l!v)UPicwxnJq3owOEfNyy_umiM;Hz7goY%*;9^#$2^#9PAzh)3F-s_Rtt+dtC zf-g3Ree4l<&MbV}R;25$==@8`*@~FSpS*>+Y;Pjd7K{T7ezi7RGok|Kk7V6*e(Y;K zeY;@iUl8ayGW8*$2Rg%lJl~LDAq;Zy?`nX;YE(A?(g;-j35_2<BG1nR*nf0=KMR?a znf%TUvHdNI#W%wvW&(@r;N8P&ClbmgYirlpE?1Pjaek(_F6?Gx+W)1*uwu!Lp+H<P zUDDwBE3v;)<I!B=v1>{ZjsFb%m~D-cWMhgCw;5I}7BT!Mbjae6r`WTLZDaK8D_`h? zCCx?#*qEc|$1Gho)@F|>93!nPvVuC23nR+Es85z292J<okU773Hbmgz{zw||3|6+x zQU}3F^)aOP0gRot*42)&09Bmdk3f19(6%fD&@i{wC4Hd6zFj~3SbCL~Y!#I%`3tpb zczhU?l2gN?n4TpFCsXgA7kR^lAWjAa&k!vwSo;Gn+^2`F(E6Qk#CkCj^c+?;n6!*- zGVaq5-N<DESSsv@4rA?y=n&bXH%oX1q5sY{&dG|#r<ay;&*P{rPB9;1Fs#@2Q1%g2 z3QtoYQ%b2P(~?)Tpxw;Ua^hU+50rYyoNiqW2{MPMjL3^4CrNe}H1nr>EmK(uCUqfl z)x!O2H33tQ{3pO<zaw<*(yubP=A#-4N-7$)r8R#VQJ<SOKH%WZdh~7U077|7UA}kV z;d2-of_l{FCJC$+M<$ZR)#PmTZn$nJ0GWnr^dS0Lao(`IL{6*zO~Dxk!K%qb#;V(J z&=i{$vy)#i{N9rhd*i&)z{oAL+0~Dd6pM8>U#0rjao495xNL%xZfs||y}8AtI+@|g zBp(r3Bsi!bERGtQtq8rVuRcW>EFGraEEGp6t092S9gU+QvFRoV>?QPx@M3fO?$shy zs$kz2B3VogvXZC0fcx&Li}NY_>a5oD#%iRnFy9sxYu|6f%6I7TTJIFsmFsSVr6Ia$ zXN;cFlID0&XiYqc=+#v&fsKt<L>T3s`^nJWf3Q3D%ZsPa<z$Npd1I}KlX;i$F8-Sg z@4J@2Dc@ml>6+GcKfs2WnBjbKYgBbey>DtjbBy&^*qxs9VYdF;W5~csm$L?cDEJ9q z7kxV7SLv{)VL?M57g#arcGcONQMYcA6MqnI`g{8YkZ-UCNg%N_L83tMm5?M<n$b`p zk=_A=XttBnB7~QxXsF<RNZq2LYA(MkdUlopgUL>2&O2-PqAB*(=m5{}4@YT-UrPq) zJ*yG>aI&}beXLggGyUqgnfo>5$&}z;v+j|NbE%$F=7erzos;M9I0xH~MqMb2`n0b~ zfk$vSDBkL)N7&29-&`}&PG**DM0l}<ZQK$^6@isvB8eYgRcT)Em=Fy9&n9cuNI(5e zsiJaafAX&5eb}QAgnAiIDxOG<K1)v)hQQJ9vDDRqL{U1dQjdY02QWzEykB~>M0t<w zE<GIaKq;pvJ;s0J?>{8tL$9D3LE-JkJ<601y9JDAOzK4T5~@3dxxmLCZP|zb)%hVp z9t#~B8Ms`50x&>6tR9)OsMTjDGYD`ICuXm^_zUgYO&BYz4M`TApIkv-VG*FOf#Ykb zrP}u*xXX*foIoJL6sa{NHR&=VLDD#^=TBi!M+)RC;I3c()ghIeolN%@N;1U$NBH0U zDi7!aRA{Pc#ThzO#}f-vE%>n8oUqE{(Km2o?0jzRf~tqZ3*7F~`JdcS1g*K|XKU(< zkON*o3&nEJRn=r>AX$N98Pv!eO|#mk(B%9C%!`eaFCiPiE^p{}@I>wT+gds7DETaB z{1|Gb^!SaIilip8UMdg$aO~L2!-SbJR(e{>5*}Dnwy{E@6&DUGmc3O_)|xj?dF82O zXf%4sV=DGDo_Hba2kmhW_v@%qyfTB*b|TxvctquiqBrNO{C&PB-}rR#f`GHORKDuD zh%sjBWgd1Ve}lnXlS`wh+4-v1(qcD|!z<QGLOwE|N=}hHBym0<5<J{StNLL%>5n4A zLc9cfEg3?QnYdrGpa9lm*o69=%$QUcA$0k{eR5H7+_x)bSyYVh(|cO4LtEU`Geaa~ z=-U48=l;nU3aBTnZ|;sigki?HBP!C(i6}<*vpjKgS>m~~VGG(c=b4EYTv5t$G6(15 zlLBY|K&xWeL;p(2ns3qB@AxBX%o`I@gMI(=&OLw1&tKU;ymUJsPhTX{?_}TiwzQD; zv6GRExx0a+uTQv!(JO%;Q=F)ekNGMmPSMVGrfeVzt|D_Pka@D~<3a~!YrXIw1#AWG zm4Np~uRI}a%SSw#hT^Y9C^DS|NK$p31mhR(naj-xrL}8|`C;!yrW2+NlL2363wK@W zS8adiuS+-lL4kHU+uMbl9F#0KUH;eFco+ZXspRUHm+=<^1l}AYzRiP*J5iB}FI+4N zE%$`pzRon)sJYpZ_T7U=GGcbQC-C#Ym(2%ojJ4Mey#Qn<Uc!MHZvohz;8y2c3_paB zIVnzT6qeO7Ds{q51#HwRCjoYbqCtzsHmpf?VAO(@kZ(_N2D8?wy5kxj=8Ne8U{-#S zG(y1<pIQwWA{2LKa*Js-p!VQ0_Mb=G3ao^TqhRGtx-AT6zbm%G($Epbb>oH#p+k=T zeufDhai|SOXa8Qn(@%Z6d3IEa#zzuQ{+)cfGCc&m0rzUrAO(nqGAgiRMy5#i=*8C0 zaxVq3$yZ|4d!eeU|EmldWc?`9+TJeB9}T)1=osSO4;GJxAr>^qb+P0{CnvxI=Q1t5 zGamm>IqO1v94FU?M;bQ#`xqE50_8)3V#tC^0mGE;k9MimO8-Lk<mW9hHP!D3Sfe6X zguD-H<0oYQsvlDky!zBac7J(at*&{4oaJ@vC!42ht#kw`79&MY>(SPKh@BPKU$2Gl z;_sypQi~W!b;nOPv5_kz;W}O<HB<c>S8g{j_a49i@R-9qaXr&2M?Q!~F+>?pj=g}` z-lM04Jd{BN90dj4^!+0PzQ7x{Syj;O64qlJ{(}jlQ`9^2e6Ud{<>h-zZdqOihJDL* z{`8oc6FD7AjI7OBC$rS~1V;QiE~Yj!D;Cf)_t}d72i@=AP|z8%SLCgLN@{jytGL$3 zZ=r|5r1vw=HfS3~)DPCeWI(%P^@JE<$8FEisQaEQ=MIXq5>}U~qD<I=#3=AmXhQ7a zvIq>VpMQQMKA|dg#V1gKkSwoTo$JN-nD4r-Lw)T>9_r{xa#2R(*5eMP4T~j#r?pMd z!2)MF2Ft38p0P!*owLfG!}f4_%#YOyRK!Jby3D@35%F;KTmMUcovSe8T7NdtcW(SF zJNHqhJNQ0vwX$jzXEmwWoA2~om0C5JFwn?i2OnNW1!yzQ@9Le*SiB8M>jBK7O5{k9 zT41KFxkp3R6M=~Lf;CA?=Uk^Mp6rgF)Ii`Q)FBZM&T54lqXN|RFEv-%@?X7^bA0`) zZOGM9*+PP1$9gJ7QD#uaDoe60gXv?sTd>c?q+4q@Zhybcuff2#KEHVGX5hdgqP}Ac zr@3zpU!4Gxwq^h(Uxj~GG3*%s#hw=EBBP_BqU*i_q(_XXqE3`BBcW(oYlD%W3mlD= z+elS)<mbUY`LqwnKoX@6vEsdQ1nyePr+T%|GLvoXpZe?~oyrZ45M9oNR+T@5)QfHM ztKI3Bs~L*TyoMW<W$OR?d_U5ZM{xgy{j0XHX>^IccH*wv5g1w<k>j<vur({Vrq+aP zod@Mz7$r}-!}ZX&$i(-q$0ZV-ic`2~1w@(q++43YlG=Z1GcfWX#Ld3^>#p=zrSe1Q zcaH^qWSwa<DA;J^zvGtRqiQ$XmGxQV2t^5e1yT&VFx%~FX7YNx<^R0#(qRACM;N8| z!o$L&%?`m)`w2+wZEoZ0a#MLRu#^eyB^b#}3Nw!0H{)+qjP#n0m_M7>;H$gk#uIjK zmBG`O7Lo0c{q;&<`Io7+PWe^oxp0du!s<fZyW<JuR869D!UOgNInE1zk~dc-?Ha~A zD^;c$_N6JQ=+k{KoJtI*>1U80TVG`OaL?dX)(GNmy>ZS-XX$RQ3oW@STNEXKFLIOB z<f8#7VWB=4ePU=ZXnCdhBg8GB6yA&JHxJB0hW{c~rDbo#q<K|1xfGn8`kCs4Br-zp z8U34eX_m=}e7bt(?ZrL~>VYQ=X}+gxahHWATq_@(+$Ub*d};g_xP~qnf7;X9I|bAn zSBkR9;0^k9akO0c{x^D}M|wR%(BlaQhx`@N)Rqay6`NPdKazh;eTncFNKddmq|x%r z%erAELG>1g-D~y}L!SHIEWU`i7(;{Jm(tD(w>F?+AL&bi>cP24N6`^k7lKKh7QqrK z&K?M0?2?cueItH9AE8W9px&7C&B7c?)&L9k?zvF%I<u2VDWBnq1s-J%#n`}$+B>q! zwO;*+)muTvXGi=do^q+3@W?JY<gNN5edAs+abZ87O4^@$V*h@$b5U<97!DrJ7F{r4 zv)(%~`wUvQhm&4m3Pb$4E5dJ#_w^;Vc7-rjU!bu=+a#P>+UVEbAR!M}$UkNQUU2Ud zs@Oz>hcWcyrhN`jHP-VH#*+fnABgQC_jhZN$Xp)i=tA63%@-~$ftIH#t{;~m1oNvA zs`G9R?^-oJ`rd^s$uO7<)9bgoc6!WmAa`MWXLq4TTQ^qO!yso8WW^EJPHwDv=TKwc zZ)R-GnhjMnEd7VfjR$~p)Xk&-CA!>N5dlQaDFIO5!MXA23W@FBDGeBz$tm$q9^*m= z;#~Mx$y{4b_A$_079Ob;g$j%dF_OK@%)AxMh+gm3ZKOS)mp!=*7Lm*Oc}EDX^*5V% z5Fe=5mi;h>qdLoRGm_u#S%AUrNlswbFw!V?f5uU>vI@qdQG%yO%Q2NwHyC*BA+(P2 z<#8Zw>Ye{vH#7*f+Pcd+{nMei_yLALsl(|#S?WSM<gYh^$G|8On1i@asPka%OQm5X zWx{jnyZmFvNEIPP^z@XHgQWJWhR@NAw(U-ua*vw@bVRcc{q&Uk2-dlMU?T`3jgQrT zM^kRZT0b<2!|7G{*Yer_;BDMf^5Wrxj1u8MS9-eQ6lN}uTO-4`eGV_Z*{<LjoG(fU zbd;X0js9eK!JU$%tTD#3EUdsKbnd&y^d>@-OZm{MM#n@NF~CtW*vTKk8-fz&KIH;^ z@Z2;`mLN)bN=FPn-%U@b97hMFc(CPP+M|eVyTN%N2THOo2Yy0*Mi52Uw3zE04Q49Z z9saB*g$!6eVV*shi)+;!jVY~3JmaqPU=0a9OF40mC-h(D86pxSRfDXSauD$OK*`x~ zumoW#QV^$j<DCkj@)jxO$DJpd=n;QjS@{m}xA`*{RxE>uBZWYjs&YBteoD4bBtra4 z)zvLi$7u71S=v{71Xr8*&dK70h2;NhQPt9k^8Ij-<$znE>`%V7dqM~A-u}&>Sad%w zqFHIr!znNNLtU>{6&+SvavuXvzi$r>*>6-sj`U)Oh}0%AVVU{!OYi1&g>l4(3?$`s z8_m-7>uA+O5$KElmLFjk!_+x@GIsL4_h9V)I|t@_m>G}^#hCPWo9&@_PO0y|@wn)* zGUoB|3_bHGx=``juzHZ6v6k=F*M_b%7Z-)_i=5~6ji;LKIi6*-%PURN!+PF)Nr{kD zeZ~1!)7Uo7Vy)r;A!?}vl)SIqnTkkl77O_ZMaPrG7OIw#vaUo4MFqxIghUBN7qf-b z2*FjL&WA4jrd8mA@fOUG0Y}?PPJn~o5t3i?*;(-Rb!5QdsP|VN{6!<Itp9LnUJT)- zKSEHds}P}iD@7cwl8w5U4NhH<y7qS%(-E)uYd}1c*_BvrkWGZIf)~cz%t4#1%b@m^ zy$XPDs#y?6F<?opsZECwa@;MUOgd}^CA5kbve+PGB}9=<7A#UXz?nTDyyxU~T4*|H zz3zTR^_ZAYpjW8hc-tWeYF&OzPo|ZH*_Mm%sLOC?@JVNy2cLJ^&lsP9-n~R)#lI`l zIotDW7Z^y}qxKaE|BE7xAR#|-<pP`@Felh$W<1-YO?r{+$6--Ka!Sn9n9Jv-ev(UN zYH^mk&*5I#eL90RPU~Zz4o!fy<-3H@1c9geQKd1W;!QgrIk5k-nD;+p&Aw!>eWV`G z8}-jgPxe~0ciF3;`0}$sM-K|gnllaza;;Q-y0?rcs&D@QST-Fnrh-3nAR%K?2*h15 zTFOr!B;+H6q4GjOe-Wi6c!GP<08dz8gIRw<bgzcn$+9?nJIBSCarI|q=#Aq#1Z1|b zm<c~4QkrwZCbX)4^WQdZY~KUK{?R>5TMh)lB+R}fg89^2f%RUeYo{wYAAKev4anSa z)4O@6;|Few8~u<TVyFobbU9W0SZrEn7;!&jv&u-urcvn51cY3jAnAn^4Rvh()YI!L z5B2GMY1Py;Qx~FNsr+sIoOmUTOX!in2^8=aPV`uhNF6UBH|9Jq!Mpnd2cbyV6uNO+ z{}U+F6u?-|u+x&4?U3QZ*D;~I1VB7kZ^6#@8u@P)Dd(CNLk1{iHTF=3M;mpt@wb(f zvhU`c94_^EASdVkuh~!4WFFf!J93-6_I!1BP$M9ZW2R{^^2XsGle*XP4PI@g2tUB& zrqvet(*+~_9D0un$jP?rpZWWFR%S$Mb+BhV|7p)*vF7Z^r*^W>zN0Bw_mc|+kHw$k zaIBG|_9IlgbcA&~j)tN@kFh7B1D(?zBoEk_cB5=FVB71$AOJ*pwFxrM7ww`LA5@V7 z7NeO-ca>2ltT7r-nY;pCcQCI23HM19o+$4Gm!i^PUFe~2c*%(>F8!WVc=#BKLRve* z^s1nE!w0gpM|3wJB6XR>7KWdH77YfWD>dz%aCU7m+I3~r_osIwtV?&bVH*>f0~=z+ zQvG4Chb&}2M)=249Ns{0H<#01LyO}iJLMC<`ABxJbV>}*gJX&1e`a{_6;>{#$9{!D zg;B<OdDCr1?@VQ@aNrJ(DKV9DbYGPs7?q~)eSZ!#v$8-WHtzFFAyNwW<(6Zdtj`ig zFE(>4R4pjXlU0yxQ^V4#nuCzB{_A&hykxVJmHc~>fqZQ-$KGF@Tkpxwli$O3Y94AO z*^dSpJlYwZHQP4c+45}PqjE8+nRjjhhsCo$@WPdQHNq?5SaY-Rwaf32IsY^BC^>UV zr=0-_y2=Q?6+p@|pz4{I9{wpYee&Atdtrf1nL7)w^FPx&UfG6U^px{^6%5^9=^pTW z-n2=1FE_@_f3Bj;YyJ6N*Aamj{)_6lwU$ZvyD_uYy(;#7o_CI6vKnvA+G6wm(8&Z$ zP=yct&gb5cZh7%t>HkPN^JpmF_m4j_W8bOlOR{FqzME3kcA*H#Hj;fGOH-sp_)y6H zl!`2=jC~758%8C&vc%Z8L5O}=-`^jd<2X8I#{Jy)eO=f4{d!ZwNFxH=cwcGI!Jj2B z2E`)7I)$(}3+55j`%c`c4QG<!93xuCwLbPF%Kx?RE;tk-W>Q$t!5C=!+@#dKdKVTW z_$l}26MBz>JQ-)@O8{@efUXIhE8yifj5k1jGmrIbj{FjmhqrahFjOw3amg>LB(SCX zpwYGJl*k83j*Q!wuAGb}ReVACqu3+Df6Cr(HVw{y2y@%1ncCnGsNeRedU^2q16HO) ziF!^3zN+f`jK-@WvU3w3zG?(3yZr2~x8FPQ@qi^lSU=jf8!l0P_kDlF_k$&|5h>K} zH<#0NispRG3H{mu%{fxfwqG_J^$;1lxboIlUlBhWUjoyQg|XHg;1}hFk(6F<S-}Rg z#!6v~!m9gPpRw&_V4#}t;TOT)Q7QIsCLEN7H~@B~B3J6za91Xu>KT>{7v;k$#|;u< z1X)bVdFYq;=+mWSuPyIxncZmVV3V^m``KOCqTu<Bg~wjl_@vG`3%v`VdAc>%6EZ|9 zNaFNj;u3hFh!Hk!yD)&2!0@tOptFex{(c0h3o}(<PUw}}rzz==G?eEYhL<wdX>tfg z<%W16uLU8r_&G*58+srgw2~P*NT(a%MLNrpOn%$5SkgerJ+>Rv4w2C&Z19hsaxxCY zy=9JuoN~u#(3i8h%1?^knfd4O0`ufNM>cgj5N?0*anLKjH(1apgO|t>@&coHvhf)U zfVM}lpfF`V5fp-{g|j>4=1B&Ev;Zo#Id@l*1JyBf#^P5O%}6#b`(7xSGa!US6G${X zYM2Q(zk`+)l7j`LuY7<lWT;%ET}JSWK^x$fa=9^j(dJnlqPTrHqq_EWA3LSU`nhS~ z0$>gQ43Po6{@7560S_uC-;y#5HoRA?s<pN-$<Z-0FE1yTjO@((ivNe{Slfe7VgwX$ zMVx;_%edy8gs(R?s9IZf`(XNAdUMKh8g8rSxDKn;T8rTX8a|i78lZS}id)sc{LEn$ z`}{L!p4;9?uS~qR>D+vcgT$e$4KsGelxU=OUYZ9zBxCYN2(%Wp#zYv5bK3HAQi|9k zhlNlf*a;<;v>UmyN`6yLB>gUBx0$+l!SO%psJAs6Sb7u`JI#OcrD*6B^jx@*n@-J& zIOnHwR_dX;aQX97k{Z7W!x?^8BQJ;%hA_Upy%VgJ<WwiqzQVTB=8IR~8FC+G<qHXn zq-a<A$X{oAxh?9U*X!sP6-~fwaZS@xZh=2%ak3jTAgO^@zJ;l^Id95<CG11gJwb3Q z#fa*iY_F=W)>?n}lo9U)PEDA2Saun);AI$*d8yYP%S(&uQ9KIUFs>2|I)I-7rx;EQ zmFGr=7x>UMw|9?_+I{R4g5FY%<B4m+8euy;?Hrx=q{^o%><x^umnZkfGJVn=j1WBj z`In=;EUx%t=Ax|7<ttI|6Zabb9(bs`JFLfEkoY%Q@4pgJpI3KhpV!`b5^`B`^3uH_ zH14d5v`V7jK};>gjB8R=@V<hi?_1fH%#>7qlFuGA9-$^;3BZ=24ui)RwpUYTBnpW# zw8T<7k`dbUnelJ@K@tM!CMX6|56?D^geh)`r?u{OUn1zL{yZP0UYAvoV&3pt3UkPk zcd9@V22ylYEY9yf-ejj!9`Ll~Y9Z4Nll891npF(<xrlJ~v+4<=<B}i*v-}<X-z)Iu z%aTrV^$<vv0-|WcJt1`1EbFlmDe=pc8C(I0q+FuB*zD`hLS*Y*ywgLNKxH|@W%3P@ zz|S58AZ!uHsF_4xMPbR?`#^^2{RO9fp9dX=yc+Xj#|O|SWG>Yy6lkzL^H!e=uT@-k zySNJ)5AV}p1jsB5XYXrHO6|A0qG@ghYVgj{KV^TonITEa_xNK(a1Fl~KNUqvyHjKw zM2F8B@o*+-+P5Jz5Oh>VWa=hCg812?emcC%*v!YrM-Tb4kiO?Tl-iLxi^`pcou3p6 zWFqrvH;*}a{<^p##)0pe=K9}cX}V+9)^~Rf5oz!Ez$RkeH5&Ye)`Z3Xm{$Y^kD>vd z59jY=vta^INfv0U+>PnA;gWs%M{>z8+>N{ceMyFEZ}9i}_a_-EZ#z*YCWKr&cb^fG z%hjxSu<Gd~O-1_q2AMT0znd5K1~7Gh#d&3Fvs$}o+PT)8$G^1xq-W1`Yh|2)(JwI8 z;H-A~y>H+82!*e`F<bfoPjn#J$U>V_Mx4~RjBEv6MM||AN1ik%YAND<-R~nrK=5RN zEQqpRiqyjOJIBB_59FbrvFb;#ZGSlMLIf4H><qtJx7#?a$bGpVz`kCo#bx6iXBApv zy1MuMgZ(bdo;wP;y~`zRLU}(hy#4s*(-s)bgL#eh>bHK@-=OL9{Lh!$acb!m#%?NR z;iv#3#hC~#iAA-fN`vW6wnn+fB+3T_AtB~R51*TR5x>l-Es0Ach~fi<jY3KNdkor2 zfK6N?w!S2auVYB4#_@|Lfq>WrQ@hpxaN#pDP^#K`sm1zg;aBs8InbVH1~l>+QVZhJ zg|<V<q4XIB1#6efB5!$H6fX^k4`h{ydiv=0cOE$Hl6L>agNf`AR*_(-zKA?g4Q@Sh z3elpXJ^?F8wj`Hmz|Ft+(7t+EOFz(?o69{t@kX6DBJwojz-1lbA<mt|vM$ckH*qyJ z+W);AxhdNAl6ljB2^m<DepvyhokgQ5X(RzlsEdV*Yt<y+ojgF-_s^}&ul|=GL0d%) zE|YTS*eO0sj-u?Sb#{W94{04bTFRfLg~(Ig|2iq^YDRiGJS2D6p?y<ea<a1WPWinG zvNP7-_4y6balAf?J|=gb5lwEfG5MkleYoc}%A}B{>tG#GOo4~yL{75>Cu!s>(gC`S z3Ib_Tv2gg9el0Cy^*zrRLL9CEM>B=ze24-*rXZcK5E`wJCT+0n9zr|-y~8CeHSjxz zF#O1T)0ZFZ5pb=5^XTIBveZz05(J}_&h9aVK*}qHA4;J7np>E_(FS`#js`8CiWEAe zq1YKbkJ;v?SoK#BDg{k(MGP@utm89nVh`R314xdz!}pUU5MtH-=7$l)J_9|}X@93R z(A!*=8g4B7Ec43ILmX@cgi+h)T{Bg@SZYrg<T&{w0}AjaeWbDKuX{`O6P8zSD{a)( zfq9;?w;t8$TB0laYT~Ttx$C7e489(+Ki&M5qmSU&tE(FNvTrse#((G3W6>F<50;jz zJQa-JoxRzW>zD3a_mh!!lxU_@ms|1N+txME;KovK`eVq37SIrJ)+H?z3d1Ph`olO* zJ%tBtNH~=c6$xT{CX=HR4l|Cg_R@AGPK~Q>79yEhwY^h5Sh)k|$5)A1stjp?ozj-f zO!=4(7j%v?8)8((t0{%_O75vn@tc+B#_gV-F5MgUoab0Wm|4q(THUYTo6jJ<d!@1y ze-=q@G)zwN*vo!CXZ^)(Yoc!=?c8PSrxPg_bcDq#vSkIt;A}s-CT#=!&|&Vreu1cj z(!-(F!A<ZR`OPYQf!x7J@sN4eW;TV62;gAlfzb5WLW2vUJBtJ{D?yNb2R5i1N3}bE zuL4!OIUr#V7M(9YXzx#UN+t`|F_rZ1y<BN6{qtqXbhkrz{&m|?V}%g;Dmn4@4~gGH zMDd!R3}PO2Th&?rIHtlal_kZW@bZG1r+lSS=9TWJO2>bEE<G?SzX~)I9l8qbO08Z= zg_90tK9;hJb@sD7_z;Km>mkTMA2`h9A8*bDR6H=<wS4``#uP*0q4jud(Gwmho2gLM zLHpMYt#1<I0L^NqPvh$t$__u-G6N>20>lq6C(<TywEC!mHeD3WuvN}w$NjHQETjsa zedj13#Jumcf!UGCcUxXbD7Q?kdq!ZSTJk9wwv91lK#j0Z?+ZG(03?^$fVrL&By(Q3 zu8=@75$qX;Y2?Hnb2wE#inL+WPqxtBK3#)6M1NV2Tj2avd;T%m6rqv-q)XO`Vkj?v zs^GKs^k3<wr#@pKe0Wh*I*KDV%r>#2%g^9($*fz0a6p@I38ViGQtv3qlnz~B{q*b; zr6wUbgNl#^jwFC!S7FLPe)FP<OaER(aPwCg3&rz)z7D9kY`&#iNYypoedAZ2p+Qr1 z?_l{l9p)V#?uj|Pc!tOOWvtI?YMD~Y!IJF#P2qPOe*XE=B79?-N7gS)H&TUv)Jpyl z-L7o1Q{KlGeYvaeTevr`S2wRnt+29S$T!}@08~XApKoWTj!y^a{&0rz>aqV#!`7qY zMG?h11uOk0z9f_TjY4P-N1!Xxpvpsv-p4?l_93-hp1*$e4y!_D?l8k`&wPSPd7x6k z_~~~W@4johOE_OrX??tvQkWldh6AswZgcK~r1R2mpDy;w;U#H;x9;I(7SVPcTuIv5 z5=Sqq24NqQHreAmok^NTVq?Gh{u}+X(k6isd?CU~+2{HeDLv&5exBj4rMvT(+WRXl zt^c+W+Bhy~>SKs-qp%=aoWx4e*JNj;IB4v^H2Kn1{6Dx%Y{es^sOq$(+_+Ei5+5=a zl0HA~>Z=Qo`B|$L7(GyVrjDsW`pQ(jOzBB`<2!B-s@vTS*bC@PC8{-_8whfhD4eg- z@=C>CX0aYzSKv>VQuX_JNkD3@^?FmS`19LPcZQgo1oZEtO9&O#yUPuA4MLR1pcRMH zu_Vo&qkOjM`v@?n>5{-?&Oryy#!+9Iv|g(SAec|~w}&S`=EM}tmDD^kyrxFtkYUH0 z@{?1k7-XQv-|^0TKGc)7<L*N+{M5oL!w&v=X64T%NI(ZDk|byYZbRf&!y8dVWT9T4 z4X;+@LBoSd-ONAbr6E|_pUl4R21WR%9Yh_5u9lQ12a6gl8{ncl;4W|wAooWQZ?_9O zkwloFr9HR664HMAA+=mka0niwqry6u_+rw7H1IQ1wA<P->O!MXKNS^+AH~q<8WUJo z!Lh5T_R=`0QV2S~>6%yg(KXpUH&yUnTX3(QM98{pA4*}QbFu>%Gko~67Ya&Lugl9w zPJxDTp1+q)x2gB>z}D(R1fo;4i^yIomS*p;;Nm{>&$B~>CbL|W&AZ#o6yz%;q&B47 z2M<0S#pKo=L@*I%nq8o#kNta-{;Z^qOm^ni=}%;{67e4jRYD7w-k99qt0+~jrxJ2; zbBM@QH!V3=*Rj#!g$vtqH;kc6O<ps0M1KCcsKu|VlWN(<BGl$!FTHqq7avh$q3Km@ zIgRM*VM&hAfze^^trz?MW&RCm&~qepjuwj0Q}iG$Z;viFS|v<!Uvmu(7=s{;V*o<B z^$pM>Qm$4nvYwZEYGE4~7L!-=$AuQ#1G@f5vBs-0MYQ#wNv`|2;eR_mW14wlelR^H z8k0%8N6E>#F5ja`n~8l%;J<P^fd%@_|7+7r4CR&tHNU*b^SH<(Ti9>O08v*?7M<&r zdUmD#U9!lbvKi?@G4I9lL%LTvJ+#A?(Mbp4V0q=|xY%f=_}$U;lO&VD>w5Dlc)qVV zvS>gXj;b9aDu~9^LT{h54KlYHaOj{hjy&C&&4Xe(JRx8?NFDES86kS;#na~sYjOz_ z&-;G;#@zQo{GouU0dxAn>xPz<`%+#o1{EjUIWk=rf4PfmYyWyo^TxxE{98?upgl_& z{Dhm>UH`p1N!<ya%ITc;w`##`AVY7Qc%LmX3F+vR)acBA<1XQ6>cbH_+4=ytAPB#8 zuo@ZmrffnpImZdg7*VZTU+F0ZPlLn$ZQ#rXS`I)kqmKS7)FDy8P3O_QuO3=4F!ykK zmrNj?Y^Q*-&5aD42=@SZE_&`PKwYhfZ;IZ`7GOY!K?V(@Q4{HrLN+iKyxa5yR;p|x z=(|4|BeX>I;In{#U@Q<t=K0Ad5lX}|QfhS^N8$Ml!D^9dJHJfe%-3p21>n(#5+!dF z40&3mA~gX=7?$q(c<mO3*pqlgR?MFcpRZbRQW9^R1Hg!~KKZYgPO+$cex*CFws8V< z8J$G83|_PsL(%`bhS=TUX0^V>$_lSy6hqE_w{R8wOCyJRm;-7+g8Df7{4GBVPV&=} z5Mjx%7X~|JYrUX#Z)#nw+xnx<1eg-CS=!G_>5-mtCGwn5Aps!39mBqMI<yRGPrh~z z%6;(lZ(Bet@3qBcq(Oj{BIE#_qt*OxdGQ0G$8faA^n@&!1K&6Tj^;gI<A>5Fzj3Bc zTz)q>?<j(Q!(zEw`|-b68-A@}0mbnISAS>Tj743?&wg99Z}wWU72+A$VWlhU8qXMG zxcZd&9XmxsrEBOm28v>3`1?riSB-=3Ue^5fWo#}*_g5c2%<t`}uQ5jj1KRPy1oS=& z^pt1IMhf`+jRhwmR82mfM+}{p>0w0=t&Fa`$LLyjZ44+~CN>UQDF6Op7S&kNvD?L2 zb9=~i>RQwgiww_ku>>#JBQB8|YxSYyC&Pi)YG<Lu1%bjebpQ;|oe($azjyp|-!Z*j zrk+Q4ty7m0Z=@{PB+M&)O4Q}DK6_`8zE0yRqj_QOS>q%7D~&ZYhy9Ko)>Dbe5cvMt z(t^)}5ybq)wyVAL>P$b{s@L=lKFQ`#=`<eDt|ML}tf-f!1CqcRjKR-F?Hzn?j16j& zW<kqg*HZ%qBiQjhDT1gy2LD6Yd?d<>WWr%5_4cdlZMC}^<v$K3@V|Qcw1a0!ZhuZk z!amoiV8<IN(kV~rb;PsVj+&f|mHJ*{`!VZNN-lK>hwjn+Yly|)vSbX)NVYoOj<)g} zaF9l<B(5{~uEH(YQXQ|y14ko(>;_IKm5&M0T0o>d%6RC=|ExqDl3N8$;eNswu1R3f zWRIr8k1qiqU6&h!QCHL32|-|NqD937X^NuWp_A6q2LA|0b^_|rho2)vy;^=Kj~8oC z&i|V*Ye;2XxxkDx{E(FZ)&6^v5Xf=#pc|CqK>Pba8kp=5b^j_%d}X`e@BW6SE-dLC z*C}A-jTQk$r6AQAp!f~1&91b2zQ~TC-vA+B!}G3G0}=y!1X9XQ{5tf<r^_a=zrrDS zOB7L;rO;CoJ_~Aa0gJ5gGgH~hddF;8fjqZPeCJgDQ>w7(l;yc-Bl|m@n^%s+VF&@M zN%WMc>D3J=V>rakWZX`9L^8J?IiYz>WJ+;!{Q$2?V2wuB@kHa+gK=sPkCeBaGEWjN zRBckxQ@-V?L%rhRTEiAbej7Nk3HqzZ<K}D&C;eC|EUW1Z-vxV|=$a8fn2pZyKP7sG zbiPYEm%@u`9l#L1gOG;Ki2pz)6p;cXlwXT`A<^388_gU%quKC!9R2WYaq|u;&5!!6 zPBJUat~?4f5VbDaUoLF&AzLnRbMmteze!)>{?e%_V;wq)g>rr$_EWK&|1EO#22`v2 zG}L66GYef@II1z67?)r*_MxhbOUc70gh#4L)$8K*Hz*9BDS=Li_vZ#yG`&dxZ>xc~ zwZhQcym>dTBU{&oroMQLjaCR5_)CZrMOUk~A1@qfDID&VySaz?SL@X-aKZE_hFQfQ zY&<s{jH&G@IY2c7v67PckPLvy=qU0qTKz{x3iP?~*BO5HSPDWklEU`_EAjQ=yfDPO z?C9&bvzG0}k7AvJgKmhP)9)KS-}cc=n=WjFEqwA*gD?kPn`q(6sqDN*v@U9HCj7sd z1;nHF*)kJT?=!xLs^54-;Z#{xw_7R08*}zRuedbf1zX9G>ltI~adc9tQhiT1u>S<? zr5{iDh2g8f;{ppsR|43L=z0je?+(E-xY4v`N<c5k{eAuqUbLZ_EvKX_A4|P`PYg}Y z6lH(y-WEHjN<9h`SRqJx5()wa=JsizM>0itB?3K&jhW&IrmBjfriU7_M{glp$Do3k z=0gRBSyYjRG+5fF%{eIx>1xp5Msn(q+P$ol!$wp`I2$Z*6yaCm0%(lV;LO2SNP^iO zDGVAKWZh0jYD>-yJrF3&j3qxI-w$OUpeHCu(ou9nU}iG=8HWY}%GsF|V){Z0G0=)x z{ni0}W_^;)@7J|Jrs;>vw3u)JtovEofkzA<ukxa{ZlTOne~ew@cQ1KMBQE@Q&FxOH zVgH7{sF;T<gZ(Ufa>sUh#nQbTKhxqX-XHbptL{mROlrziFrBo#__#7;LT~HDwag#P z`1?twoRn3y+nf|NtM{Qe${uHu$<)FN7NOd5wfMtX+v0P(*Ch^J)`?Ue>ZBud<!qWi z`ldP@KKMM!`E}}jKlXmr_64)Dq=BYovs+lflNbDO9sWm7__z6VJU`m}`lr0y7nWh_ z5k~cyxv#bay1v$~js!7O#()&PO-I?mLfHK_J>mEUlBp&31VhycZu4nW%w9-MX>9>v z#ZzbsPFA+WTh#9kXn&ZH;?0&w;6hytH(vNAuhtZoSuNGfF7ga*R@TTqGW-jT4eqI> zw*=z)?rb|fwJ`<49NL6_Hn7Is@qRAF#!ULilXAt)_Q;2)U&dah_R!NLCn=s;xUlMK z^;>-_r|VzT%(dP7acQHAkg@VevBWiGK-+9tx45*()y_cM-QPR#b!bojzymFQvV_VZ z+0y&x&oX~HYCSvNdL85%vVAyI<Ipw`%cZh-f!h|ku7Wx>=jx!3dRH(5LE+K{p*XUq zVj>?p#e)z-YFN>pckjP}Sh_O`69krPy=`l=<z~lzlk`f$Ua62S-&!?X<^_ttmCuKn zvercIaF4ntmne+BUAkue63er<Y(L(2%DN%my<-0|@4M(BrcY<b5BhMrF>CrNmB(Hh zEi4lM@Iu)lpx=%84os~rj!0N=P5FX`IMSFD5@YoSV5o=lBCzDDN1~8)1|kXYfF~?< z-cH7;o4zoHXTb+Lk~}NR|NJ;yBoi7D&@u53z<qNAitmj*PP2?CH=EHzQPlt8gJ0E% zi11_RpeFwU&5V_+1lR)j;IX)jspSO?3+)<6O<|PL!(LO_6bP%GTl8BRRL)ugYH?sh ze!mdnqrrk^KuNxG9n9P}_VlaZ8KZ<h!b$q|@}@HADW!%Dbbv1zGqi580FI8*>=&-4 zaBw^kws1UyQ>U}YX`U*#!Btp!y|Y3ZoH4{Gw~lptI{cL8cQ95s!Av>Ls9x(g;IX#N zoqy>dnK;TTJNm2;KaUU}-K$#3F*|Vye}=DC&Ak86Y}g`@sJAV5OEK26FWI*d?tIi% zJrk0&odFhq>Is$*|I!feTL+%SaCSP%b=B2<+rY<#c8P`oKJc8Z7<vNEwxw~23zx^U zEClzId9wc|a%J90T2QiUd8`Du7%klUpT<)bmAXUP&+hnk3zcYU?PdR_SGfF=z-r)j zRqtYG$zW$crs~9$Q<JVumEP>v)QS^>PrCFBQ$nR@uJE^YT-#6Lc$OrFss*h7Gh7wX zL-MUUb(0z0#u73XRB29oP@MqCihy3n><=!q=i~=~e$!+z1DceOD$S6b5V}hPLTAz( zUe+An;}ENR?p%BQe<GG?!)@J%-oGW+%-yDU%=1~Lj2K<NeBvrv14XYYwe@Wo#xc?K zkp4~jWWTxdm4|Mn+!S~#(%z_7G{CU_x7iuU>oxzxFuZ6g<OekLapKE-0qbm$7g~u> z`jtqPTXRT|=Q$+m%X2j_!dDey5TZnRESd!C;VTM4c!wBK7Bu;8(O%~jcDTx$0$kyo zC^IUQdLwHYbXc$~TaH2b<DByu96~{^(YxiYW~Ar^Fm>i;hRxsG>0^ZXLO9G7eL#!p z&1RY>;F-U2@a9ocB}2~Pv)F$_0v&r_(hFV0!4gYwxKxZX4&9fyco0TwcTcL~7pZcW zn2`i-K`Ag!Y(-A1rOXYauu{H!F`?+k1OIJdk4!?b87X&`7n4vP=;NORzNu^E?0Q(Q zf_LLrxse1rUr~^dY|4@tu7)GtrdA-b@_V3S@CRie7@TrUNKOew>~N<ISxKEBN?G0C zGip~l^}ikk1@ZRM^&)iw<7GT1N|GKg6wu=|>=u&z!ul>#ol8W{>zYb?d!ZDxmVEPM zT0vj2tyHA;^7@*+NLpB&>UgN+b%JI63WfG7Cr6R)m<$u;t^W%l-uDr)HFU>0oA`W2 zEy7KC*aBTmjpb%)mm=SvoPE|=VaHfu(Ptxwmc#jY2mGK^r~|Bi?87T_qcS7M`$xV; z;euWWq4StS9O&=?TT%Q}1ddkJ>z^fIlr_dy|K;8!Eu?Mh+4Gp`R2O$fZ0@5`O4n-0 zqDx1K@<3rxPUoHW12+oFn}kkbJv?NjN;=#O1|q-D1kn=iYCSk4F7$)lG4O~!iG!*m zf?t)F5z{^Iy2FfK<0366y@lS}q3&769T^-!s%a~Y+s0nCju<iYSvxiJ8(P+>@>3vK z`9aGC-uEq!c_-buPPX5)_to8a1r&$-OGv|hOG;HGjg<oK!AyycXc@#IkXB=JFcul$ z?Rj2%Eci2PxWs`(W>~7z$iPEiu*v^~;<w7z(d;+ZcKAJ#RCCHJ{8VP49S5hmpNDA8 zO3l7IXS?s+eJ=0aE1Y}!^}ff4P8rtSAlV$ceMGz}?&>caDdE5}vV4}oRL}FDZ=#rr ztj%B+z&!b=XRK+Z-;M6~?DC-^XW8BFYIVm{B*Rj#98zXR2EI4*^T2D!sG$Gg#EP~G zT%v1%jEAo!3l^dRXlpnf$$jbVGKMzuB|8h)Y(o9X;Q*cIKn-S(R>Ktn`k8>wh0*Mw zGKVp!oKNz@rG<g=J|&wA#A*eRBzI_NvfM#(Kz!aFG5~1F>mxpHIMR!EP!<Pgf5irs z7PEmgw_N*@Dt<NEkrQR*z-Jw~bT>r;vHM|D`5^%i6}PjGfhgslP9<A<WfOvj6|Y%+ zA+w_X^5l|J{OB*?bGg8z%|6PjfpVdbETQSCXQcov<vmU}_25_c0>fPKYAuqWD#CyU zd)nhiDwH&{Nn{hdHWl-`b}jZ@9LoZ~`VB)5Qcs6ybH2vNsR?Xn>WEYm-f@xFA3 z!@%<gEZrb#V?a-IsnYaZ`Y@$Eh5JjI`U_JfD`$h^Fm!(7FHP;s9aG2~S5nYK5394r zb{%)0l>eBU)6y-C+f_EFe=2ifp?tVVJgk7ut8!-fWdE_m=06v^BBMn{=Lb=`v;o37 z3ntOCLjA7qZgq}?=w}>ePNX3XM@hK|z6pe%%0QOb96=hk3h1d?2QgbWcU9}(h&}Ph z4&lI2n3S#u4vy`8Cn9XGdW3XxcPRXDOLpjVSB_|c2B7VY^f5FT5A%UEN1e)r&-(iN z0b-DJ<oMQ${Yn{HD&p&RAJm-me0J(#1KHmCLxR1vdFrt*at6M=Hcb^$qN+nF5OOSZ zU-yVq`nk)kA9>?co2}1BG(Sv#@L5@FG9_hrWkgD9DCP2?-nt3z#deKj3a{ct#qnM- zBPnk&wAxOse{x%2h#a`C08P4EvTqGx>bD9dSLVfU@Tt;K-ZeuSxM>sg1+(XB*pw%? z-gLwh-@WwP39z_-=abi`K(9*I^7NV-b5}P{o0hFk$4U1Qiy${!9VH`E_(LgfRs#Da z@v{Vu>`WNM1cG@Bmdrm-p?XU({vYZLq1HUYWHx)pz@Bf}3e_d8KS6HmkSu;R@x6JE z_^)5b^N<b&J@zCT((%j=q1<o4WOfgSL0>oYhwB{I&6)q^7D~PVMf%!q<KbHvyM$E` z7iYMVDq}eKQZSi|nTW$}gpleTl`u?CO@Rzlt22I(FUq4Y#e>##!X+6}cx2Ab)XVXp z9UVW<APLcUXHwhaAbbB{&qh`>_>}7=MazIxDZ*BV*qux~gMfa&*Ov4i`gk<{7-C84 zkS?b7Nu9yW7hzts>iE9l4q?Quveizryw-<d*Uqum;RtY)AsQC?q)dyQHdB{Q6?p#b z)0>{llRfMsUeL~{J0D-p5fB_5c~D31$OFZN;yL-8bDjs2OO_WL{0g4*7w#w9#s&-* zrgHyQEk0RJUUtksAYP+-(Y{37v}aoyNyz=Q3^c-i4D|*h#Z4sA1Wfez(p^al&!%Ka zJ{te+xYJLQg>s<sDb1|-!HF*q33QGyZW&OfBdGtbxvVeKeC583P1+Q<@K0)e!hq6^ z@%_Kj8Qs*UpCeC<>vbKn(qnZNvZrM|%FMI&?2DkZXP6iY(K3$tExb*f(tj|naHBw= zb2H|T2peI@=N#7`<twC_2U06<oiTRttFnkL)AZ&kW=ir?+g$K~%RKmL26l3QPZ-JJ z2WxeQA@>ErGrAy>SQ<zxEvGSp9SMdQBKsYXnN5!^c)nSF3RP-r>H}~VNlAToYT>~i zc_q@yU4L<7ALUnn2J_n;Ivwt9<L}Zd>uvvtSEI?H(LNR}>w3KJ44MWn_3GIlW7p@p z^jMjv8P6g2kb2SB8u{q*cHk~q0B5ce^>eb|ztTUMbef8bf`vuiL|}MC@}rNsSkTZE zq?U>ca)gol`KO}rG|214??hwluBpSEAk`UDJ0yhKUTst+eV-;OPh)BshYBEYz7+{F z5Wz=8J%)SbKU&{QzEe7S+7)%e-2WRfC3_hC9R}y(-@O<L^J)PjfteG>i~az_Z1u_y zPh=oLc>V_8JU!+3UVNE7sj~(ay@LhGeL_Bm0o@FoWu}-FSTkd2X{;388DDzJ&GV$T z8jju}992<qC1nIDl@Plqj2|C}5XJ{~nt}bZ5yD6fneQJ2g~P*@2cWjIYSk)pf;)*l zUWtujzj@rIg7#gl7=xEs-O9d)BzSn+$BfuWolxZo_j!7bg5=zC^qy3e-RD5bC%<Zw z=Y4vGNR6hXH0{NkHno3E&85ysU%WA{%tWcP%iD*q%94JC3`1#<E()-EF0>;XRJcA& zs7|8Tti=7$GYU6yN-mtwuzK0q;Z8qVxBfjNjTlY5UEfsqAGNeM<>JS<FPkgNCs(FN zZGN?O)Mcqn?99^#gbbxEDgHFDIPI~gQvM)cRl_AFQ<gA4x8ew0=B#|f%XR+6D|f<7 z8MlLvI;EY)h>3|Un18_q$wQYNM{)!M1z$1~>HFJ1^B7$|R!UY3gf&C^3eX}t-GT!6 zS@Gn}AYDDjo3d}JrW1sm>m3dKgWgsyTUZ8qeY4QxF^mN9F*bV4Bf&OwEgT_9(*@>_ z#{3LdkX~uHG+8%0p8H{{_pIAhWQTI$-skrG+e1}+2LfI$(NT;**R!uljxZ_86DqhY zzFs?Il+VaeZ0)M{NiN{=i#^{OKPg$BUuM=)^e@oW)6yvZD4&s6FxBnwpd{`Jwf46w zt9(OHYm3DLLb<wq@`s4qwi73X+He1CNpTzut~&t(qNl-e2w^B$hYnu`L!EoGhVZ?8 zmY~2)#1OnYj1ls#s|*pLy(IzVZvlr+!Rh%uV14BgJ;B=RK>3xipzq&9KX*O9)_+Uz za+ZU=`r$6GZLU-5tQYTh=oP3Xk%Fc?WF$YugE5bzxi`mZv+U}d3}*eCdph>4eN@A{ z-U+u_pC=TC$NbVBX6$+Up-P!MbnM<hi*ms?xBNUwg^zco{6zKX_ecTh@xTu(D&L9? z(oqDL?qxFLM<_fbOfN)&$nz%;`&SU)Zo_FXvrxZ`kT>4KW!@#?cOrs1HAPOk1J!4B z^~c|7&`UpO#Q%LjM*%yw9sn~X`pP*G%KGCAM{806&osTY{0v7(Ps&Gh`4|XvdQ}e) z?}alRB_RD_zE=lox^_l(a0?YRSKp>@yl7Y#N28;9R}=vP8k}uQV|1i6uqiG6y^EuM zNz4Smkv|7CR(K4GK=3@SA3$Hw!hyH+^ASYIFKV2n<YzJJ3}-+du76H*n4ThVI-QYH zH09zi1aR7n*Zz8g;Rp>Tx!KfmF2*bVS6zYH$M-)cpBNax&JmHI;34SM#QrjD#F2cU zseVgnVz{F}rxOO+4Fb0yZ2@v20-^&***RoDHg|OPQgubnRVgg)U$Z;&<z@5LIoA%B zhgXC1|D(^^C?PTDxp52z$9mmvkQG{ea=dD?B6j|YzPkKHxl0C89_`yaVZ~VuCgu>> zt_u?EAx9C3oDc_ivW|$3IPDi(=!D2bk%{#cCLP182rXuT`&Vug?(+SCi*ys}x& zr;p<9$shPFJp5uG4~z`Tjl{uc?q_)P7of|JCZ@OC(Lc5s$&;-7s9HnI@S{+7vvFhL z1|?xTNO?3SY~oq`#jf|EG{0)DPR1NiOD3E_$Qsmkurhs3#8RgqU%NoMRuzVZ>z#4b z6pOH?!<&a2QqM<W>n`wqWa_c9V=ZX+dtLc`&w6a9!wKTvJT!&pm=IIl8&!)UpOi+i zoAT4vr^)g!hcq(tqVLjunov|ItZ9xy1qz(qkF2b(S;mUaW7UssM_>p$GxkNMs{?V2 zlwww&NWgsqP7^|GMGpO|GXGIoL2uc78Q?P(F^>076d9}iQ67*F{rBS3K<fD))zxVs zV;K{aZ@0Aa5a~D<Z=aHj%&XE6ko93ui8UQ5e1r=>^zoB_+Ugzv?us!^fEVVuYTd|= zl|DXe_uKWubq$Z82W!G{5<F+w5$})s!pN5B8U0L|H2F%#0Izkf_0*2~zlxLrb*98U z+Jh0)Ay_Zp^|AHhMEk2j{j15Oh?kFELo#K~en8kSfU8>>Sdm}IAhPxr8wFFxWPczN z>aVM3B!r=C)dwoUgh8j@XBez_H~r|206mt@9b;!5lNw0mgfL==pCug?#rwK`>-epN z|2ySd$Gth=w7VwG*Lf{+_|EZ(&n_KJ*GBFh&ldTc=foN{;dOMk1ZnV4{Jk(Kyt%Z% z(%c%VneOqde0677YGt~$bfQXG?7wS&c9}N;2ObG<v~1Ce<g8+=STZp>M0PaDteCEK z*<3~FsdY3L(_N4qnUA!+-4`#v`YWZYOP6W1`r-qp3)l0f{OKgm)hA~Q&s$PEBYPoC zMe4M>c|p%@glbPu@te>lHL@aG!U8h*(0xFNO%g@d?5Q}kBlXTAKWZt8mp6qFu!d1! z(N{Yee?~d1S6)qDzIWyc|BTF!bi;2i7{AtCA=0g`K1_5ul;>k&RJqnD`(9gI=c;vb zevEEFK;MH)zohhWuVT(Vyw59K_UYLDE8#-dZ!wIk4Hk^w?%Kl>txMH;YsJ^~yr%NJ zK%*&Wv`>!1qZ`?nVzdW8m7aSh4;~_rcp5#gnri<xdiYlRiMcLL`(Qd#*#%$!`k%Xb z`NLz8gLBbhBCtdNA~ppU*S5cLNNw?hzqdh%eu-pq(ISmsv%BZI)El}o;+JB+E-wAv ze1_`s#~y)<m9O0Arj|t{tS%Wab5mcRFbt7DJo}34+=+XC+E{M9@Qi2uS{a&?V&g}b zH`ucr9+hmZz@_FVR_y#Rli%ISi>BiEnMb&g@pY=xVNKVJqM)7@Z3tT2F-FvDbc8w4 z`)uG=<FE`;COJ-<e;%>sTPqF|CcW6(!jLf66Pj#_BPc^J<dpg?dTK0ylp@>_5bK4e z*JOw><JBG-GU0FWXHFMwgN&e9e_KF+4Hf7Q!Xf0rSTkrP`0`D8q+PY)^?)X>;z+wm zGTe%?^4d;1rhvux%zn9>pw4&Cy;1|38o}gnkQoH_hrpg(akw}^;u;h$3+r)5pS^|X z_PGNPHAAiwU?5m0yLb!0#qmz|-D3dDJ!79@HB!NaAAh38M$w*r@GA^#<oEB_-+OTf zLvlp$65^!qxaYw*TAW}WW&fG}^`QraJTQE?|40L0EGJyF|EfDX&%Y2QEVcTN>D7=g zG7H{`zFvFKtTh&Z@AoP}3ME1_P}Rme<sN{;)^j-#izXbCBP|@o(F%M>CO6oh+Wy=s ziGf5~C!?nHCGq|CE2G0wH#jD%YzyAE?q~!=g)4Nk_FC&L9Pj%e*s)u@Dlst*-wutE ztI=QFZ_8);{xBf2W-|_nSFO$!`#1rEzS;OgLTARzbjgihmWK6p_{PZkRPdJ?tSs%$ zjP5+0*j>075Y%_H+9Kh~nSg+yBibS*pRWrWz+a{SOO@D%_Xcy@RvU5x57lR2kyJg% zjBAWA`0@J3P9*7S)bq`|v2VrjrGZ4`q81zqeob<twqvcs8IfZfRR!;RHXpghA|0%p z16c=@^(S;hrmjZb-c$bPi`rxvLU}R;7i6BeNh2M=u9$&}5rcjL>TsK2;^f?2XI<C6 z41Xo>_A#|O!oubm>Bo)-4}`ssV1M)_Rxs_!n{e%ZLCW#VZK-x6a?Wx#gDHEnu9((# z9vkI~xgo@(afZ{u$JVh!_`$h>Go`5=3wm~8*)8;!(mq#KmGj?jXMc8ek9cxA)CrRh zCu#{MPKe0uz`u~B&=?E;6~Q1oQe~0KD3;uaLhG?91Ve1b(vAYNV&Lr=q(eTW8!-UO z?RS(9)a^9r4>OD8L71#23z{wo(~e6WmaAWHPm3iqm1^gstAD#jqExifp3LU-+Wr?b z)ftqoO!US7hidI-8)dq|Ky$5Gm=PGJELaRs;u`-nW}KP~TsbeSZL`L9V7I&b9d`8n zjZN{ctUtWft7Cs+J)JGaROg@GWM=-MZLo=PzM-}_RaJH^SvV<L(Yc7>PWW7F)}b~3 z8?Poee6OWqXHp&W3ZzG5`~ZUxvMNCSq%JE3YxWj~;&WbKPl4oq2!fX1Ap<I8+<9dN z%I{D^KN3ehl1gMC?A7p&y36Rs1{17W991@Mx9aa!-UZs6=LXw2MsTNSmK_})!|0C6 zXp2^H=%QU1QssxmFPDj=kg3B3bcD?+(&}*turMg^<3^v3b-$2n%3`B1EiOkQ-ddSI z)s!5=uX>kABV=-peGfE}{3kAIa-dqhX}{JU?q#I7r_#O?CGmmuhd~Ycz~k>i55&Ds zAEK%u6!(*bj)%ArLcLi6LMW-pUB#$hmCx7Iry<0zgC8hZa>_3^^B3jx)ZnWZo|*U& zh>o_(fg1QSMMexU+}YFL2f~|33+JO2^XUmLjT>5g)WIo6+Vrx?*48wK|I<}pCsD4* z&9CDX>TIOR4@87e=+B0C5qZT(nF*tBNbd#)Nh*O9eH=@8SAnCa1|EFVoP*S+&{4M3 zE%I{C$Xuiu(2;zC*(n7wXAuAf3!7gTIL*IL(Z5uk_q5imRO}srFX5|Cdi0<7-j((3 zy%>Xp(bz&WZ%Ci}Xlj;shi78_n8Vn-l)B5<+g}&<Y0Mt8E)BDh&(>M^6Be5IO{_;p zy?gDL$icS?VmWzf-5qYY91RN||JB#lH56+L#<Sv0_NTLsFQ|Lb$1Z;Pcp**p=WqL9 zVh_ikQ1I%VtHKH))K<t;+f9N`un;!aRF@}!NjXPy6vG6ukkVv37tRuF^Tw&0P8?{* z_loUyX?9Bct@nRk1%;hG$IgVNrUC8$fBmPbyl!Ov2R-OIj~~Eytus@+!d%8aTLD3! zmm72zs5V(v+x$bKLz~9b&b9rEVjBVaqAiUs!-ucy>{g3kFF*{Bj$>l&6534+PpmTE z%)4h%Pb`*S<uR2Rg{oa?y-JHqI^Ytf&Nc38ebmh*%{)<&J_g>TiJ4Vgj^1^<8?8&` z&LQp>u}UXSMZq6mp97t$!%+Q~UihvsU<T~emO>vQrS8NaX3G5(HOYx~oH}1n9Xl5q z#UsK%#n)6kb&ZJ@AaQ72BCT73Z(8DS25^eCqfT;C8biL{VyD3Ph?4RtCkCOKhpKQ1 zG2#FI`mq~tFGt#~I!{{XA8=qCHo%uV?XIVfAOj8gJczDe+=~n2^8Sdy9t>sA!ur@S z5)}8BP8Xp~X8MxJ(c=#o&<h?U!-02oR?j6MucF8N0A3<I^*<&`aTq-S`goMoIna5% zo;7Wf;kO|W(_dL=pSdiFAM8+9$1DE^#{lQ_;t0^@V+{S2*(iutxPTx+J$B5F8=P(* z>&I}^6URP(n)$em2ue<1$x8RXT0ZKXn7`bHrLACT;r|vsygL=@0%l7SMAw0@Plf)j zrHgAM^dyh|v>E?X;%+m3g|jqwZ%})z`|*6G{$@b@RF{*hnhpYLGl5iCbeEW+HlM{^ z;a`X`HFEj#H1?Vg&pm4=>wSx2ONV?l#$~69ZH!s+ets&ydyUOf-6YWO0HcV&#@X!_ zPKvEF=>-ZRJIg0J_N|<h3=Sk}5(zq?5eANuArZW9u`a|!a#BnUNsjU0DWNN%UGN3` z;|W$u#euu@)LDL#5*$nM2;M7-0}~{&C5)r!fkT7tL#VaK+T$SqkQ+;;&wFIe-+qsu zWWJKu`(%4on%HP$8X)pyJ$&Dp7ycSy(>?c%@7U(ry09{y>%Z^qQ?kFFZmf_{pZ1gW zk%?5&jP9y4zTtf71h=E~^4h&^xkCczaQ++)VLzQ#JyCPv%y7jiCnnUn!vI6>{}TA` z^IW$*I5pdIBevgyheLMsBSC*;W%NNFQ|1}VZF^ajE6hJW-8mljaDK+2S}kuDchW&g z)U4Wu$53(dn`gy|?33Pdjq2@-H%O~V0qhZU)czM3q8>BaTPeY?mE<BGqJ%-$x>ar& z;K;jglmY$32-uj@StAIs2=YURjljL~or5D81%$#Tja<_RX-8*$qAra2?%z$@lU?dA ztLV_BfX)xy9UQ6DPcNMx<OnJMvM@Q5*qOttcs=xxHEuy+-pB1p%y976lQtgGyqBgL z#v6oNeu#=qJgJ}eJ2i5#thGXlpb<_CbQoDwE-mfc{Ia)m_GJm{XWB#IYm0&af=?t* z^5Li#;fuLjIQ0OjP!%8{b5fcU*qy*&%DxW`j=#!}bSx=o;7J_nT%<ItpD;Tm@u(?| zti~hw`gqI&WaJWY)Prl+p9lzjQ^ZR|#&RKq@=aehyk2}+0kmg^nlXCIh+;-T>s};5 z%VC=sby@+>$Bti3a5{i5e&o_`?N)GB6)#a^v<JzYf_Nn!#~rx9P2vcidR5YJzl-iD zNL03W$o{0DT#Y2y+FhBp3Xu{-ry!7Zc+l2m#@Pt+2U1U5`&RCB14*!1^B<#lFx&e! zMXkyql#tY?E588xlk(>bCa4WZsF+0sao&h-f%_?smqL#m#v0Hbd+%e~5T=9=rKg-d zfR89C!3^9RU_xlC;~HC!*ET-|>f;AfJG1GXF<bofNbN&5N(59=8{D)Da%^I#f3Xt} z%DvbSUoKdyUuJ1*d*Z0JW}w;JN4Mx4AsJDzk9r>*8WpuV>#A<bFKtc>8jLugrvh4g zf*V)RP4n7D@4V^Eq$)n1Q%Gpq8w$-0OS_P-&>jEk-pL!RgR|2eDbFsDazjJDpFz-B znf6-!TNbvT!nHbIzX@b1@M}4!Pf`j;hW{%9mzSzONz+R22GRf+RpJ5sB4}{WZXgaO z5Fk_lXu+yz4w54~gd7Ii0ztxHC|kUhQj5U`5q{Nu+^(68c=ICi$4&gQTS31D*pGp8 z(8WO+P3hJVK*zUa;F&geEJI4So+EZ5S}tX|Bl?wo6IXA|`k0+A6SiFUBwvZsoAym! zI{L;#SKsi{htn02lJq8W%l&fhxhdUOHXbr0cHiDM`*8g1%C#r4&8OSB8DGnqPG%jx z_#rd%QS3LDx{7J<FfHB_mU{Lpm2Td>K5tyE4XvL~YshAx9+$+A*Gl2k-)1ljOW~V# zosotidi*K77?6GH(NW*gkQ@zm1U0h2VF={9jO3-iWllT$MhotEcEh&ZV8{tqU<1%P zh9kN|(9#s6iw<d}BUIK({#BWTgW@^^6Xl_N7Xz5an|8OG9=*T}s0NW9S~p;6u~GUd zL>xhn+sPn32#f_@kL$36%Gc_>^!UZe<IqBgA@h1X4I_0jaGXvJtV9~dfrZ9Mi7XIg zq<Hb7QuX@*b+=}7!iXY;klkpdW+cNeNW-gF2i$D=oGH+)m6kD_c_qYxa{fU|`PK^W zc!Cp~&tt_jir<$DUH;06qdgoR1tlsm?=v$(tHx3Kut4=*nK5oWgi!j{<g1eXVcSVh zRh73?!dnu3Uuh`h*u-dmxA{(cc9Y_Ps7qhJhY;x~z@K~{zt;I>!}nBC*{So3R}Hpy zXAA7J#65qnl(S1ne|x|jUyj&(RFKMad3NYnrVM)2_M=><S6ehGg^?0*nACP~55}$m z9HZ#kfgcbO7p)$Qp`0q>CpA8Z!%<|yrXsoNDZl5g`+f@F0D7oQVE*rQAzSTz_}RbL zi$OAy$v};QX82$<sj?2@*E;h@kj!(<8xz&JUpji8)BL`w4rhw`c1aOw;p21$MNKQj zMzzr-Q42?{L;D1k%$t6`zqE9~R(Owf0&89xW%C04sOwuwxe2#}<|)Y+PUDuW_1{Ll zqD#u7>kW+S1v#}&+@bsl>OHdb>&*wrND(&09Gj$W6(p0f0OW+%81+e&tV<FY-K8Vk z3ku2^GrX_s7^#2oi0;$FN&h}B93vsTtzNgx3(mJcj}h+&n(WXwD))LOj*!ETx2b(g zqNiSMLK+4I(D{KYSB?JTMPF48oP6}QP>M%wM0Z(aVWhKmFMj57G^2C%eYFTX#XmQ~ zloXFkM1C5YqiYe{bdU56btp>X{O_+rP5+ycvje83CT9Ya9HKt09kafYXFD(@bGAHM zp+b=UoYMO!*^LR!*Il_@ZONgpznFx4IB`F*(&65sUmKyM=&#&T|3#;d(<*4pr>ECU zNRG=EfD^r^{%=d$wmR-k6eooYjGPyd!!yocQID@!GHd>ox~^snd0^t(>v24i*$}b) zQG?2X?4-+*63ZmOJ~zK`WKasUx1E;~7LWlq@Q!Y`pQ=L)>RzkgstgoCwn&KLV)ic` z`*a@EwnVuO@&4=0fDzoc7rzK_+2dI1aOpp@mmw*)JgalI$pQi#(sL1tnYSdkdd(Kj zGNNj9go9qs9v%Zx^+io2XAKi%l3?j*hETQ2uCe3P*Lyi|>Pbzk2u+eBKT8-C6C(Ci zsE08)1n3Z=T9vexBtn_>lDEiPyFp;55El>c{2hX$M^Vc;+%r1d|9^D?Bg%d+`tKI4 zj$<~bDXP&_3GebM5a7HQ2frXRsoiy5dVJusRr50=-$c&b|MXP9=)s9!U#`Ek4?U}U z<X4OM4RXL=F%weTQFjhP9ET+>lr~>JtrcN<*th9g#JQ-ot)1Bz+F<%NUjLSIl9tmq z55)UzYWHcEx{v1<3ZLDPP*pdc75RHE$T6CJS@=pScHqbGgWrkiovc2h2k?V&OcXb; zFN;ZG$;7ZE2I|&+%vLi!b-n2Tl+@wp%7o1?ao;J6U$VPtnWdvISf*ZCsd~Fi>Ze}M z7^X$+xe=Sik>yc@cjM;c`WJ<19L1dsDL^KlmMtYRFFUGk^psBTniMo?<4KxEp$(UZ zH*3-_BLiA`dK_rkiW>EA)WsyKxcA@E2H}Nk2Cl8gas&8xepF@nCExgCv{-ID(}ksc zIZ^k#_6kF;V3@-DwbV?OcaJtbR{DHo4w_fY_@CI(OyhQJ@bz`$&W*1M@M3DZKN2^w zg~?O8%6D1luYsOozFozBok4O@`4^$8!X>4oheGGy-DC7Nv>%li9P1XnaWF8`s@#rX z7n-*8zRPILS(x#o*~{VYo&pX|nopkT|C;vee2x)ZG>`hK&x0XO|Mp`H#uAP-DB*3L z5Hwv6OFr;(6rmAqLG-ybQKZ2|0#BFvhIs7y#AO&jO8!1_Hz^43sv9usw<k3z^vV4e zB{{wj$rW-<(F&d1seGYNJ{LpSyGP1Lg=$;}xmG_{9~EfVs?}6n795i+^_Y~ZU7vX^ zr;@hiM33TH);t)g6RV*2zwXEY7bA#%38SAyDCG?ZSzXV-us~=(UhU%QE<|zt_`Bk? zjUgCm!F~4*7v8cgdPjZ+T3vtL4@VDU)u#^o_O;%GH}oA#?vFfW!AXf^fw3uZ?S)Qu zdpO%22Ex}za&TK@qL}SEfIba^vsw(UHJrE)w<Gx!9>h*e#p^#oi8er?UbqI%JZXf& zTi1(4a>|i}`JWPyfbx+tD*=k?tc**)0eXB0OU@*(F1HTS8=UH(C(P;cGf;cWqLcMW zxoSv5t~G=Ok_RsNxj7`Lchn#`4qv^pHRS8y3;PQWjzJirzoS%@k7D_snnPkrc2CEh zxBmX#UfOhUb>=ytoe}Y|T8&NHbI8*KG0-Q4tm%NX>Po%@-pGKQr;Cse411M!MU!l9 z!>z8*xC_dIv!*1aeH`6yFkAKr+GNPE^%bLjZH&$hZ7pb*e_Iy#eYLftCYFBqOY3}% zxfAAm99`~zv^C#Y8M}vyr7VoMedCs+9b2$nkL%OFi}Zg;<)`;)@^A91k6$vZ52{a+ z^$+`dl{0>s1yMJ3eZyyHa50KlO?$fdUsq+Z&3ut{YNMf(<&UdQxxjo0ynK)Wm0udl zI*bW2Fu>=TO=GrZ>WTZ{5F_%Vr=0ep8+sVBFFT9Vy$dA6@4<A`Jq|3SkVfq=636b4 z<pRyG@efXJ*)Q6RYb|3zA4`3N4eDy>+nL6Y4U`ImNJ^m~_c|bOZSJ2_2h3IJXTaZK z@aGvFLBDwoN69XT^?J&<RXpS(7<L|K#Hm-xcPc08fuHj7E7mTrKT}DpW9@~%#SH5* z!fC{NJTeCjhI1tJmq(|M-?%V4i;D8EW!0@&Y$Bth1}ah9oXRN$6P<PXjW~M0z{Wl2 zvrh@6t~`p>`Zh!0-=Vwi@+_R9Gg6qA7|PAHS$|;#N2|qAgh0ab@3C<N#F1c77mN-& z7mI~SBWaOH6kPH#F(HUuDhFE7oyUw;Y1wRddocfo?If{JVj+(nby?HlM#s%`ZStV5 z@&9)%>k6SG99@h@2u8+(zSC@w$S18F$O!V$aj_q35NWrA(8?Y)!O-mv6pcFxjzc)S z#K!P3Q&Mh*VCc2yx)}1^d>LB#^QvFZSm8gf*1Q6X=H^jT(X_7^+Lu4-DeeCyB8sDT ze$Z3vvD8uopAQ}#&VR$sGCIt_3#=$G%~{(s=twqto^#Jb?*QU`bl<+JTPz4Uw)X)Y zLBX|^?@*cXNiZ%PJ0aFuXKHZR?PQL0xugsSOyxLdUOBM$GhxW0RDJ1m9)wE&YmG%2 z3*?Jlr<b_{;GnAwcZsr&URJS>0YXTH`12@Bnolf3wGQs!OEC0!X*oK!^4M;zgg3~G z<oGb}-H+YRh~m!TRPezCw&f~?r&cnjgEQ|x|HOVFB+rBY^!Njrcs(~kQsN(--D_P! zXTi=)iKT6)%iMqb#WY}M<3}!+snOstQ^Ru#HR(rg_m8G)N4UHbqhHvt$X=^17`!QM zG?JZf@-&w8e*dLA<<i=zSce=fEatrLfCs<5e^fu)+f@KMMc$3!4B(18@hPGg!5a-Z zJkG;{{zV*bE5(O4*KH*!ddT4U(4?oMSXvGvrCRz7GRzOWa*sW%lxL5?D<DI95kgPN z6H}Jb$&;zs`1XG+U3Xkf|NlSt-u5oi9wecKN<-uNL}@6i(w3-8d+$0ZAr+!ME}=A0 z+Cx%F>uPH6y6tt_>-X|~{QmXGL+(B2{eHckGk{>IasA|BI)}O9SA~3UgEVAv#dfal z2Q@V{-Zngz`NQ=reXri)9Ks*xN56dkd+Jof^PkVLeDg~)i4M%yhqAwWj1FFVXN4&< z-1%~LhWhFAW-b$jfy5`y{`sPRayLi7C~}pJn2o;2k)x>4!1i58sxUk%_)3VLWaTA@ zp}>WfnQB3aV)r-xF{-R~Th=lrEp0~TQ}=O^bA5yUdNd{Dql)garnIBNoDmDBXjL6; zuW}RlY`8B`;iJlS5tVLQ`~qYVg0P|xRwh9j@}mQJsrC@yU{s4CsQgyrA<le|@wbno zBmIpQ79_48UHM|R%8j-O;B(hlNCOJT0t`PPTlvA1qv6^!`A;I&<v-;4Vmf|@ep^1@ zPvcclp7C~u(dSjh5dZry8!)M-7)FxDjkPjT_>T}g@(z!S3a|dzqse%)F6!TKH!s*N zJ$g-a=S}eS)`y3S&lPjtP*Z#n|4sRa5Fe+(rZ<;dre^ErJ&buu$|Wx&1NT1?+S#?I z9~zIo^LhJW)ZwWSJy%kL)R9CRM;m?+joRA?79*Ff{H~%bUH_ci@{bV`zfW_ZGM-QE zYdLtSehi;wL}Y`Msu2Re#UEyT3k|mtpd`@~X#q6ZD?!$@=rQ#c6WH|esOO9jQFO2n z0$MmOD>9M5-@I!S^L&%_GcAPP)B=hTX!G>|KDPvET5C^}Q_P=9vxO+PN&AJW!_0W; zCR1SxV=^5{(e{&E#0w?E(*28w><^(RjLELy%sDX(v6uzyh3jWs1PaccaY4%M#eRZZ zY(PV6SN|x!L4@Wx_kv)|E+QGQvna(u6suFKg`o489qkKP%Fm6^Q~1cpfEQsm&DSvb zTm1>iH?JAl+;!^35$qe8K~(#wv!d)a#`iof-=r@4nBV`_pCv>fCqNmDnUNU)pyf%? zkt*vDiWX+0VZ8AR;!r1_MoZ?)ZrR1<yMOY$oTZ-Plxte{#rcjD_oT@wDWr}%VB0-3 z@nyGmRQ=E7b83S{)cG+7PR(Xa9vhe*%qT3){?)_9OeNxcVf#N1uLp|Btr5y+9kWM= zFFn-OnT}TNUp~1M@4xLTZZ-RO=cUo==H9D%7(mD8<>jKr=GSxA>Etm9N3^~7r7?`n z37ntALC~ddvV=5s3j`qfz9m`RpQ?h*>1s|Pyp!NJG<u2j>muYH6xlkchy+aI2muq1 zXbCF1_CrYc!bpRRm(_z{E)HKt?QcOeL9gqP?1gm3ryRTEOTU>@PLqWwA#<)MBCs`7 z#YK2(_kGDVESK!O{~XzZsc(wemy9^5QO$7@J5s%%j$C|_eeaiC*DoyP*s&YVANR{t z?XO18ULU@iWW*|EFaKCYM(AVDlJ+9maFohtCB|KWDmdt;O<w+Nuec8rMdM^Yx!O4E zE|+j+8883EyWh969xe_!(LRpVe<Kyo8Ju>uEd14?@tJ`;<^?BD%IRt`2aK?vw7G5; znC0E&`}3;A)&pR*?areGQv47PMT=U%lFf!CGed->)e(HIb)6bkrwi$)!%@ylBLRKv z#1#RgM3D&{IIoT+htD4Qaj!^&FRb*mSWma{X%T~GrR4XYMV6ROb5b>A%6A?jHMZBq z4YxqlQS6?+%kq=H)1L$|Jq~}7xyMG5YTQKia`5X%=+3jItDzQOsWD1sVt^l)h@&hA zv4rbq@GZ4C_n{qHYEtW1kr68*usBm0Qou9IO#IW^RjCc&-?{t>cx61bJh+giF-;OD zK92%6;4{+DS`rN{vuAYDMeqqhUNirCg*Zn*dEPGm${Q`nu0`_SK9Jlk!~jt|RN)G7 z3|LtW+eTgeV2JNdkf@AW7^ql7eEV<&Cie)099Lhn$y4lzK|w<We?^IK0wMW|<?}F; zW@w0cnZ>J(zMdW(I6_;`^eX_K(d2|Uqk@VT<^mWB9kCQ4M_m)-3829TX~AhPsX~j{ zTGu~LM-ro^h+)a5*)1v%lKIwM4cT>0bCfVrS!W@6aiz=P)kHD>LP`i3RFq;<@L>da zJj?h{cH#5Tnv3$2?X`@lS~vXMiqeRwF9$L*BCWiAODbyXR;%9a2fp6oT@qu%(GTB< zG9hnfdp+D(R~};Zm`7i%@7!#kko2!O=T&`=@@zEPj`pBwjv?cLyehNu!^wHL<d-Ac zp1V2bxzQ{ylv|)kHtplgu^%A=X6;w+qh}4z!E~|TB;+s->Y!Z1X?HAH4(m?+fr^l& zRSES@T>GPyL6@&*yOX}K<6+ew^18<lN2LndS=R|w5>ZFM*etCAe_}T-GKM3+dV22V zM-2J8-zt`N<h$+a^T0Pa(%nxu{EX%X0acZO<)Z`+OD5hH!x~|{ra&j4pN{rq9AVr4 zB?D3N^eFGL)6zxNydfo0$Z3_Q4bhC70#6s@agUN0&8p=eCnRJhBn+6^Ao<Ch#bU#U z1qPZfY5WcE4DeHxmto;kJTZURqhBv#r{zpXLIdx$ul~l>W6V?euVOX|$@2{LUZ472 zl42PojekU^<$b046+QIhTNKV<^E-Cwuu}FUCte=PZ)lQOh><T8gG`z5G1sw>Er^g# zjRWrY>9dGcE9C`ZB9(7)#XRZF(PG+Yu8&u_5CLO;yi=J1UULoiukSFF1z3mbxp&<( zO?H)*@bD|K5OM1cO!&+#P%rJL%fA#P+FnN}uXrtIc6nJDh@wWWv{;gp<^DsUBG(El z_Y&Iq@Tr9*f?zvMYlEi9%_Ln`QuD26t57%1FrC-4>l8o@co>xV<i?t5YoZgCRV;|) z{(NIo{V|-Z4ni={t7)05MkI^<zJ+3ZbuQ~$yn&Kcz=ngn?gNH)3a12+n9=nE*4H3k zKw^Rp4P2ji(^G#1C;OQ@Cf3;4%s8GEp=fj#$?VhOQk#;4S@5~_K{5>p*=Lo(6yyG0 zwUQg3X4T1#-%o^S=w^=B-8iz7KAm`~Xd;@U9k*Mz-a=leR7>4otDF3_m%G1ldE{bW zf1*h8n}Ni|jDT)fDGHLN4)6=^I{TgQ>GL;K7t|=cF&B0{SlS}Ffv=JSi!T+L7S{dn z0zYu)Zie{BYu>nAp<MRdqyC#P-LYvp3`MrPc~NQ7q7~Hmb9POQ<$omce1p#ccU8ED zY`wQb16?VbkRx($5K&oxD`AUFL+tSLD>f2RK~*DZ2`f3t(CDU03nc}t_(G_aX~vMB z(GY@-c+Gfr-TiXDiX<yCZMBVtP>vQFX`&ymh}@ouNfV!%&v@Xy<Gti<G@^s$w-4;k zAV!S_1h2D{8Qx&c8nrP)A})RJ(O!0UpfR5K)7N*I_uSp354^FZB6wTF$q%7?Zd@*U z@|%K7wujY-RygqR&HeTgg4ahAQNfabB@0O{zL@u)o=OPNjjZJwXJ7b__VL6~2K!sy zR{I4v6s~lSUX>MfS`s>_asS}5-;?Wdi<<sAOWykml_KM;g;!5kin%;Hc(AwE{19LD zO_av8aPHD^d&wEWx>QwN-=YiC<mgaw)%T-p(J+bN?K*%}zDwG2Nm!8uu%lfZpUHkm z3VxYQ<=f827!V~@-G-Jq^C^gi+(O9x%w)H9L`4rI6J7dP#C#RzUG4vcjv8e88~!WE zb(O{Im{pod&S@zycgb1*mYI}(<V9a<yISV%XMA46NLo+#cYH%(jKR~N{0ht!bdRH* z1@506t-0v4*I&Qj1eichY<^|=F&9@^GHef584&j=0^@LGNa|&I-S~;Gf4Zkmf1*Vl zQ(|78-(1Ex)_jKgIwu(hZi>br0#4O>L~_o_wm(o99~yI!m72(!is2QQwf~$9n;DP} zcb%bC@e<&|0-ci)hydXV7|z0XakBC8JI7(gJnLa>j-%LFlL)@9S#Sr<>mL?{^lDmy zXMW)nhGNKpPdF0>4R<je>_i_IdW8AWL>xrtF6>jGkA-#od_TED&$!PwNI>vjk8Q}g zmV!gVsV}=A;p<T^5tY5A-M@8S%d4mGExO_Q`r(?`{KS=wzuO32=X#WN*kLHZYk}7+ zo&G&vT%Ye_B*{Sjr!@hazr)&W^$(rf`-CXzrKDm^@?7bN`f!1Ie)A~zLn~MgQj;7$ z389`b|E)YESN?4{{kgM|*>Y0xdg9WYr2`FPjwuy^DSmR=sRYrhzsi?US3sF-%l;|T zJ}KSRrWaBmxVt-p+uCjDcPde<P@&q&*^X3G)lzVKTFB0TpB+jFdPdWkwG^OQ!=v0J zzsAL!z#C;g-1Scc0!q;0!{}M3Ss`Y80_gH8Rga?+BpOKQ)I!YZaTIM{R5eHot$jGI ziYTQ}k=9!MXb2=wE7(A#?PoJz6zTU=^&YZi9gv9eRR3{x?i%?K?T1zoR1o9NMqE%w z`p;g(QbK?lZUjYw5sYOlA!BLa7H@j}9>Kf0x-;PuPE10=#!O!P2DI0PaA8cG6#3{$ zt+pMU>lYVWS!W~VC4(>4_1T|2b*-N1(b~dkJ~`501CP;%y`_2kyX=BVMI3#C4YwU{ z4BZp`{3$Cyu*#8kVu^t^*R1z*ujG1UjfkYsGt=-_V*-ydS)WX@pZqXd-nt|;scFq} zbnw9hYoW6}gOXCC*1)i|Z@LRqa(dMX+pFPYs*!*;3^CJ8VwRQ+Ee7M<=zu(89(Wk7 zMcA0SiwuqQ6+uvnO9NHb+B>AY_*p9?gpY3Yy((#Ud}DAJ)z~R<ce@I>XXrM3?^pV= zp2uLwi+9T*==qb}dvz=!(V%&+tBQOWBbyL+mH7~nCvX!k5vIzP0IV!@@;Y5>L7E22 zeL4={w`<|8B@sMbb*CAK{n=;Qz!0dGQl8z6gpak#cSfJXQO-*1l#gmd!HjAjEh)jq z;wa#V9ZTlW^I_99v~)@k<d)HIMG)S~71Lr}xa{s2ec^<D;oS6c+K#Y1F!#mtM~%tX zQIk(Il9ruDp`JquuWyIec7`yzwP~lo8o9Tmf^115zKz)Yq%KGhgqmPha1+>xLpY4{ z5o~_nJ0`?LpOrLuN<3R49N9`k$hl1+YK(ZU<!$oj+i<K5QPF3#*QjmXDUyRaI&F+D z0=XG<jc?|YLc9nasmlsz6)b$_ocNSaAjK1bjAN@xXheJ~bOI?!q9P5JP?6IPL+;-t zy8uI+=p)48BJy#uJGbR365xQClwXWQ$b;`dlz80)Rn2?{ZI6bb7cuT2U6m1Md@#h- z_wxkulZ8JajxYAm{ag#?3W=`8-ZZ|adC35jpLfP=WF34#z&@ypk+;1@M{Md1lv*A+ z-x)8EaByt0)Q#$P`b~6#?eX|Uxl=Ek_D=MmHmt;j7B$86-z)Op9aOev-1q`~%3fEf z6pHl9H(a4%CUv?Te0k#?QsOPV3frXhf~ZjnGk!2pYhM=$__`|CZ)Ef1gVEGJ=k)Gw zf-^=kT$!1AZNIpQ_$#V7i{Hx-V}IE#KB9}^gJKgP7^}?~2BHgH7+*5&=2%GD^SoO6 zlU%IYH8^EK3wGkFP4P80;<^a3m34IuN3nt2m^lojti=lvrEeo!XIO}pgaAW877PbL z)^xMk-l@IVc-cPLvKio2CvRctvw%fa{D3gbS*Tr)k7FG*hgh#hAMM@*o)foD_**_7 zZ;fr27{(|so;dOGl1lt8lb&h#LyEiC<75y0LeG_(9@@E~GmqW9uByv(b?}u+#D9D) z6MR``{=LnKTNO8Mb$sFpyQ<vtU&2fS$Jz{TNSicP>dDMwUY->z^*SFL@6#NkWc@As zYd`jn|8BnTacYc-ek1u`T9mX79Pc)fua`~fVA;6*2o4r$q$&IRkq;Z=7^S{2jQb58 z9F81L2Rr;x)RRvEUz(jO$xKD$sUXvmD}lkx5<+eMuE`uCTKX{w6snDddgb~dgrl}{ zGK!s0GzGT<{r;_USa(BstHwcl0*z`McgjHUqKXbYrzX(LpMpTpRVuXedP0ZYC#bha zXkC!(o?pL$0+8}M(6XkLzZDIB+||sToIQuzv+CT$!Rf*8>kAeQtE@<VzoV(cB?TEy zDsuf&BnF&>8B;tMSVoePJ0?f5vLU~4<Tn>1a{srL1W7;{(fesCQWq7$KdI0EPey8J z0wa~zM41hfd-SDrw);?OW}z`Ya`=qtS~s~lR!Y)}B(r~a$?`fv6cWrK?aqbFE1z28 ziApl?{X<SQIry>m=}z6CT56Dgkm0VNZhyF?!D}+AIVw<br;tq+C*>_>R&bxr$e`uD zVcO1)cQ`^S$~~%=o^Hgjn(-T(?{kCyBt9teBo&GIAS3Bed>f8ZJpTcL2JsbN<nNq9 z0>F)s@|_0Rn)u3MOvVzqXjn)_pl#S+T4iz3l6x<F%7i!l&o#{?K4Mk9x9Fxv(c{oR za-2UejCA3|iAFJ#eMK>64%xXaDNF&9zR><<dfLRrMTsuC?d+3fL?DYzNEojkf4q6) z;)p)OyBm@MM>d)D5pri0)fDK1?&%%6snx$y6Y^GZ{*Kh?y8bvA3^uK|guLRMx3ngY zFc6*IE1**M(1}~OW4{XEujU?%JgVA{K2nr=+Ja5@@ExhORcU-v@!5}Zc>Y@0%Y*Z8 zC6^&_`QuW$9$IU?VVjp&>_DT`dzsF~ol*M7_k44y09#t)SX-%v&JC%F7)u$3N0U!8 z*$Zh;s9wX;>U4hPqjS^Q(EAPaF%@C^bZjxNE$eYPJXAQ5>K<WWgJ&fvmVF7QC7aW4 z`8y(8KUqo4PGXNhWwh1DLll?yG=>%(E>!hmNEH_HYah15Vc4<EF{wG~R7L93X3tAF ztsK9S%IcLz_mL?>wWk+P>u1L?W&#qJSsQjbKS$q2W~9jvr&Bp@@t+w^%B4nW1f30? zDWMSfF!`)R<L_ZXG^pycltcZ1WPwME<-^@wEJXt@DII3g%hBXi#P@bOGIxkHnGD%E zIEp0=tTh(99H}iy7~T_ueyfGBX<SA%&Z9P-ChlHH_~)A+#Ze8mF{se&trhD%fiXE# z$$A3el}YMgn?8s%Er1CjSpu3#%~ejz$O(c;$yi2Pq7({Kx@Vu|m;M{IXt(c6#Pc2n zq-rJ*t<~hBBKSm|=#l}&m&9ute2X7Mx68{Yo`d3?*4f4}O1n2gJY5B8wprBVxDz`D zp3p8u&JrwTN66zfn|B>Z&<O0Jr1)ZQeMQ44#N%5i_Goy;S*|17YAJ40VWn~ANveDC z7X}mIgXpy1+MJq*ipW#QSIxXw0fW%?sxcb4CxfBva+Xx8Xr?6Rs9nU!uBVok-qRAq z@9*))rRL)hvKuwYW_V>X)D8?gO7=7%k-0~+7-HIoJLD&WZLp_{HuJ)}Ua*9Tf9C<! z+f)PGGTuwuF@F65&4bOaD&C*DRV33NXTgtWSoJiKKAzX6Y`6OROK^vCt3l>O?aHvH zC-=9idOj);j|~na9?p6rBEC_`tUQ`UpDDIl8C1GIn$XwU>wFKh6#=Lij`aOu6^7Cs z)iDW=)HDcJw&x%sIJ4y`;t+V;G9{-XBgLKxIACpc8gevL^F_Eq4@H-t8U<b>zJFkd zB;JyE9>AAI3yjHS^=Ueif;`iOiP6n#kTjFhse-OazXoPx)1DU%<UWR{P21d7Q=(Q; zQ?n2@6T(vZS5L6EzgYZ!H`-gxe7Nm$!0c<2m*J~Ze&=Rh#bsPQ=UAxsetAg{i+6kI zR{ko+TbF)h{oP6%N2~e=))wB2Y1kHqvQ(D7KUPlfld_r4RLA72>a2H7Z?KMh?GOGO z=x1<U=2Om%zdCGRCHiM_TEyu_<u(dE-Tu4IfHsRE?$n6Gsv<(7hJY_KR7$&y1=Maz zP@O0qdJWq1D&>%Dym1Fiw;JG5!B9R*{U9E=aP#+q)7~kx;LY;6bRE=!RR)A%8jN{S z>0D^%2Ws+%?waBgXNA#Zx>JA_@J9Z!7e?mHf(*c~d#r9y3`@y<iR_-o$@1-QG|Q1G z$Xq8oF-=k(M`RCFDZvt+_NIGc$&!NRH8?Q{$EIrRcRQ;HO*URSln5l-#|Wwgw!*?* znH2(YQ@`J$dlbpPW8?S}p)_}vB>#H(6m(#k3t`Ze=PEbG^$R*L5rS4SP8EK@^l~F` zJiy-MA5CLID6{$gU1K9VSwIQd7>;SV-tV(M!%T`Z*z8g{r+7LVBB#=rOl05-4u#~$ zr257AMTP4T7L9^=%SlLiVU&7dmn79?n!Lbk2gIIBUw^lx$yD`%uE}g@r!GdbUe|w5 zD&W7q#8WV=pBxQa$;-HrdGJcP$%U?%%kDvLhh2VX<hgLrmGX`_(bAB73usR50{^=L zI+>EqW%tWx;5Kl&hNUo%T-?BHb>ax>!&KyRcQ8F=_rzq`h%Ub%TDMmOy2hU(<^jg2 zq2Q9HGG1pO{aIS3bfiV%TiprtBu%XXn{Bb*o7*FN?<2O4vGHYJxgOh*;NM7mv0;41 zqT2Zr?<YEcE%dCdx6?z-psy>U-e)X=*fhMELae;D=Pp=eavKDj*4g!@k6q=*TUSu= zB&{50>n@KSd^6Txr3ONs@eeHcLZEW7WFWG8t2@=gaG?c@>=q7Zw?+S|RjBQbdU2}W z9z#SEagmn82M#1RC)WR&u8P)o+j?2~t9U27L^~)|DV^FfE7_SE4%nAvq0kw(at9V{ zO(Z{%1tO7@TXHa4?hs83Jxp_#(25I%TS{)y7r1~U{TtJQBkX>Mko=gBQQoL(K4N~V z14O~UU(){jQN#1Fe+Gbd|Na+ee!Qh+dfTm`ukId((fAgszLmCjIYXW%D*wfbHqBvr zv)|qL?UWk+jr!i*dm1BupOrRDCpl?<bDi9t;l=)<(fCh<kcI8;ef;zE?~c}r*J{7s zCN*)=f0Rg)U%obc>-xK6qw%CH#Y4D`hVAEvp4STw*=v~9hDbH(Ycu8@Aoy7ukI3;H z#fzB^w;-gPn_tf3C?CcDoPYr=5=(YIf%J&|DaW`In^wo)Vr3t-t<sVN)ur#vy8V$U z{fdItthKS78zjlJH1@EiI|7b74SM{(%p^hLpTD7nKn3b+V)D07Tm(Hnh%x!sq2xi- zcCw`zX^PZP!sefg7oj0?fl%^FFDq&Ef6YxTJttb}5pWSa79w_m^U`(yt_O1}!uwTt z@(`?#+g?uZkE4b&sdaS&p#AHU*iWCZd5C03PX~FQ`=Cngg7|8%=k2%zIs!PjTx0BU z43s<E+ox35tXyyF;wZ0Z$UK{)V?XPjE=B%tn=M2FjFMTg?xi6#G^9bb-VvC2@*<D` zwVP;#>becSaN7GoL*B!D8^c3?rhj99Jj*uBdx$n)L*j$>mr;eZhbv)++s(Wh-<aJp zF6~)=M${$LZZ1CDXcp@0s~`|(#19M>7U~(4WjyF6B?dLwJ=x>~z%TUiCI5F-)KfY} zqY^5Xoo;6js?Y4wEBZWojYJ;9@2vTY1o%~ak&&MV;=U@RH}m?`?Nf;P#Tau;{+?_; zE1Kg)OHvIe00%FI*b5t$qT33FV!%yYH%Bd=P!Y-<mAoIbBiYA)V#tiL!sq}iBD?r5 z2-WaE9NM*mK`R^+f*gTd=r8KvGi4`M1{J>v+;$h>nSX$R4EidZn%|JXKzm`xI%3&A zY``->3je1hE63%lq}MQS@l%tgtMdF%DbT{vW431VXP*yU$=$3*!krDrZjEKH7K|`W zk4G`)aC#AUDc&ancHP4l>DkgGskwX1f&(f}`JLUu#9JpVT@?P7D3((jwXYSb%#0QY zooJGV&Y9*f68B>t7tRPHJ*wHt{V8gSv|sxMWfzj3@_RoYNqefCQ^OqT%8~rG2qPir zxg)d1xcd7gm6webTKk%n5h{~UO@qkr^zBsFb{YI2RJixE6I(_RldGR_q>w%6wH1I5 zh~eBn6`VEVi~E2jlrKUOQyUT1Z)PP9qLY*!Nxk%#i}CtuF+)(um%|+M?@SFYKBFQ3 zx`t3P9#0r-t4V`(#XSe^R@hw}mQz|9aPCWlQa;oW<N*oYcRPGPLnt7hRHh$l=u$Ox zn~rGgeb+q&30J7R4Ofmuxhke7MxI>Eh<YZ(Z~VpKQ$Z{CvV@u}I%&)MsRd$3qSsAs z>(P^D;zWU3*?hB`v>Jgp7<uNBcfcRSo5);Ve@{>g36JAk-jl=-jj{OA)o8PDNQ1Ny zS$+e%Oj~YFV|MyQeRf18Tk}6naBZF)sb6BXLOUOwYhMHvoX(0{8w*|^OPsV#<5b$l z_}bjZmhzrNlPN&VIbpU$5MLXU`H~Z-;F{4yk~oN8=t@|jJ755o-V{h>63x~^0_L#p zkDP9oB81B6$FMxygp%OjN51615Vv~^V<O290{J#p(l>~=B}a}x_Vk7;8!@F7OOelR zk-`V<XD}d?wrWvV4QGgbIIB&!@I`bByY}eemA>N{XBWo46u+B`-Ey+Q_d1aM^}fVh z-)_s8C=wD-)vdWY@T#1sfy93~{D$h_&=aPL;m}C83p76er9`e94j#Z%cTdcik$7Ji zR`}Je1tex@DHOc0(rY<=u!vXt@SAC0Al|6R@v133d4hv5U}~DO5$EbhFg;m4GlE0| zX=;+jX~Ge6gi^zbBkUxDcW>(7r=Vg6_RUEozxA&L)Xnb2Fp+FA=)mqU5^&fUbqqmD zeEj;|k&@|;mEN~CZTQfMR7b$U3Z1SZ=8PCw+v9H$e8Tzqew;fD!Qak{57e|ygxT;| zosf-Dew4PE-kU|H=zVUzCnueBaE(o{#ORQ1-{&u+&RT|MZPxC^BjVPxG~6aXdhRei z53F#SYCbj7z4s-Aoj<ZL?f7?SB$kQT)DAq(Nv}5z9ljyOhd3@IjAS{qx82E_`-YT% z`>G%**?3u)sfaFXUk>TddHdbu)|SK>BtS&J`xC~*@lro@efA*kE?mq!#Put@Xl=PR z>S?5<V~)6MzL{utb)nh44bjWC2ox{v<58(`uRos=r8^`)Q#(g>YBF90q1-+KYx*Zf z0d9P%QRNONybZ0bKV)ZUiMEOL4JtU<1pa*zh-J?8rJh4A+&}7r&#h!JC!ndF9g4L< z0)3o?=o2P^&mGFX2js~VhGa&Z!{)CUdl<Exun&ijHq~I&P>hnTtz!|=)SvU^8lSXA zp*ghIek+02^*~SUXH*1_?2lp}(`v_KBmtgTE<IWq`p>MwYq^f01k*x6X#g}jD@rvr z=}{xTE`f%6GV`?Lr!ML(aQz&!nJfO^Q8$G#=@~H5%x*i0#aJeGoPLCT<!7tuc08f; z`*hRewT~Co-T@-3HD;qN>nZ&j|K(^;<_gV``zf6bY2REwIX^jtK+2@6)@;W`^%2EB zv!qQstV8jkjdup>;rH1w@kTLRhC5cWwAqH`<DFBO?%xroFORI}vXbSChn4i^Hntb^ zmp%J2<PyN5a<9Z70nu2Z=@X|}tK67Ln!!>Ua_9|YcNUvZGfqGaS2T`bwtzMwhFV~@ zVnZ-J{GZ^2i%hmgN*>Tqkz#UG2dSYe?+~#?3F9s!Nc4dER=w+dl4Jsv^Kh>xj#@+K zK*U=nZdS?tar>DTugO<3>zfSJNYD3BEMffp9meO&5&{cvqaLc}lznFXOgHN<3L+6l zewq6=_$~%I+O!o>wysL+)BVkzyzjh5o1tlVljlKk6Jl4~M)`H4=<!cu{zD<0KmVsj z2Ak!|9}5R2XTRoDgGFPJ^|v)qT&LH2CrzKKOCqKI%9GV+k}Ed|&uM$%Fsl*|Nj3k; zg;R1n=9xng)NpVvIjDLYCgdiM14~<f<M`J8n5roZT6D7KaHiA*Zu`%;KiYVXe_Bxe zgz_ZFx^Hr$>-Q(#xiG-X^h+>=LD_vaeAh!H-~clz5~ROJ(p!9gzUZ9fqt~Zm!DrSL zUV{1V0P)M14+6^ehk)@-U?^{BNnPMOh^8XV9}6bgVrA=2LwU|Hj%*`_J~mcQ0c`iP z$)mi<@wDE@6z}UX$qRZS+gpEMdG8fTD$|<zrn(Bdw1$+I*QFb)y!zFq@lNNYe`>Jw zp%v3#2<6A?UK>xX5hXhd+B==Ty?z{a^)8oBX`5od4HjmmTcVyKzkg~`SV3Xzo^2Qe zL}tVUw=7<Ul(!iKZAA|-`Ihg1%IJ)qG?s>1LI$FbHywb*VPO03BO<()BZBaP_!f5@ zX{9aad?}pV6-hLf`_r^!Pz=S_3zbq4oJKEr{QlzAkIgsbLXu>3T))QEyhfU8e&Hv9 z(qzHP-UP%<yuKqcb6F$;L%y3R7{(%81Kj>%ff|Nbzk3+9I4zvhshv9%1WHY571s5$ zA{gJ>JJogT_w%Zt6R@3QqWcrz(5-E!K!P@a&G%PfBDLLLUcJCgJe^dHP|DuZxc@q_ zdS+5fBIKBgKKT!@40~x*<RU*00@5T`dB22O@y&ryYh<fJ1iwGJJsGqk6>tXGm7~Vb z_%u<GqdP&aGt&n5d_Als+G6O$MQ3*n!29<$wou317N_2mMKS}mI%SS!p~KC6%&%g& zi?FZllGRNI_$)h<1bD-_R=%>)mzp$*C?B1EBzD8JxY0)Ma;sW)%+Y~3+cYt{g;tf= z0`ZzB2W@WT$E##x)h`X%RCr7-l3VnR07-CG{(47imnzXblV9X{!fS<xxTw>Y7L{oy zZ`yF)eH$R97OySNLX5HCAWGAd`o90hkPT0w1-7wNr0f_PLP>2*noc-Z%p+Rzf0jtU z|7o-$@E%&5W`?Q0Z`@avE2{R(C2)RPj?=<G14}Uo)OdEGQ8iWAtFgxLP(e@8Ez+a= zRHTgUQ}~&wdVnvzHdm0XcMrC3<e{}kyu>E!np=p8nlI$Nval!hgEM1_hX+;FWbJtk zWNWTg;>MjrgkIX9l~1pz3I2?NC-pm0yQ`kcGzD1&YX4Y?4-TbXcNI$fqpP5<>X=Ep znMotmfvd|UyAg)1F8|10G1Rxqs}(7L<>e(dRfbaW@T78a{;E48edJZn-Osw&_vM~B zI!}&PO9tQL`^l{AP76TByJz3)VvDQ3@ZERLV-dIA!~+Q+e;%#4j3b3VG|gi~2S8-Z zc^ZDS(?*JL3CVtI45zw;PxR+kFw<|0FybhGL*>b8%-SiVJ<ZvB_Q;$@<L(zka%t!s zEca_x?vNop!$tHEz{GpdlF}h56I*fC8TGtw<bg+;oSW~En-KvgQkg!m{)x!UH#vOe z9MClLFAgHRVgGIj(L~ciq$&E4trE_?8Ie8HCfSO~Phce$iXbLGoS#F4(SR^MA?rMZ zLh?gdhSO{m#@EvqD~eF+Se-<R9|OCwA0rOy3awuPH^)~{aQ$a@2I0N0ETi%k@l}Gg zDI-vlkA@KbV>*n1IJk-Q=#6>vA%vop*CyAc_eJrUoTR+AsHg+h7_`$ZW&G!XL&R~e zh0!|Jh1xo`ODlQ*+g!Ym^3=17H<CJk(;)!?9T&_D!I~SAER>tViFa#LrX{LnK16o6 z#VEToBD`3<JkA3l|3)ypeDnSH0t~z67AjQ$`zpkcYGbOS;&+jNZc)5=`YKYA&48tZ z*JIsPzzO{&(hfQ@T6pi4>8$7697J~OX-Ss__2)p;ScV~ssNuW9Ko<Qf0U?240n@~C zK7Ntv{5J96D6?{Tta{>?zu^yuB*XklqP<(LM^^#8#*wB))n|Mj?bJ>GkmqP3eJ!s} z!7}m9pH&}$s=BE^OqWcg<_<s0<Kc=n|1Y-k1jf0ZA=nAmc1VQD_Ad`9mR~X;u;@j; zW@d%Tx2q`78<crG!h3TNG-M$>pNvpPPlUY97%T*mv>J@kPL;YWzB;KpMSv*cm(lcC zC#c}1d`63tP_6lv+Ph~|<X@t5Yf}?g{>GQry>IPr{nc0_9+K%-MM$w1{@A}}7mC)O zx%kOU8NcBk{88B+ZU;BrP6V@cU`i1R+d&&Imy*HGNaFsOZ+o`#G}3gLP5=#L!ch#4 z;Aa-#Aoh-b0<wpE00P98kbpxp<fc2Q>T7Tr=C;JNPS&}#;qGhcdtJWp)Kg`v!n~{F zGk2W&VPbvw@532ySdS)7L|b{gX9f#r^XtAePl}qbsr@tGnek6M`9Q9DfJm=08!H%| zw_0mRX6H{fEX?H4!)11uW$r!u9G2OhAtbWsvP8Ik<TPyoEl5WHuzKck)ZG>?S^?E2 z{MXGq*+nt=NuJr563~BLoKr)H9~ys~5mVTR)w|B<+EHJ%&@CGBTn?fX@!pby7(NEd z#k=GIgm-CtVF=S>nSuyZ&~1RyGI;@72DZ&%{3|7WXDco!$K)5AQhYvQ$&rv~^3r`E z#U0|oTH+DBUt1ie;#@HsK36K18j|`2P7wsTAU)&dz`$o13;j#IsMHVQSL~x8Q%yIL z7UA7uLZd4?oOo?vf4k<VJ7@nBBU^DqER2e9@1B*Rlq`65Vz|bFY;2ExJXVWER8-dl zty8O!U5gL)yp#H<#(nmDA!3J*-tpT&pKWXx`lek_!#8ZI-LMha?u(6_hpyPCaDMJ* zA<SyK%l=`>LOCAGsw*_ROTBp)V)sT1#V+L6bj`_IxV@Ia@VX@`rU35t;KI|uvhvqY zijV$56$+*GuL5=R##InQRK&##2+UqGvX%Rp8SF90!5_C!t%!eAowPq1+0qKIQ>t2^ z-vw^(-KON^>jjGUA5Gr#brd0->5r3-)@C_YVXzPluc6y~?VGzvklKa}Vcb)nLv6O% zq%5)vUb%R$-ot2t9}S0q1m60(2p2Ko6H;<jLt9)s15#)Wrv!<TTChp2B*Ul+dglsN z++6@kN&=q2By)_Jp6C<2ibuAVK*c>VO0fHVCjX#cp3Xrl{s@Qlf|JXgF2e<WPYTC! z4uKJcGeOgl+9H0rUo=#6RCpeezBkwt6=VE@0?J-f&c<eZr+KyY%z&1jv@ukr*B!B0 zydY9>u0YLebxU%#`QPy*D<)!TnPef3p8W{&__lv(f&y(;$p@#WSAHp1i)6^-Ow<;W zU$d|eWGp^8q@1zR#IjD0wv2RZ{!lxl*Mg`g(3VeV-EyQ6yd&K3Dz3|F{}72kb^-$) zo6jxckzvFWy_;8ky}K?7B#>!XY=_ld#x%8W`iM-eNUt1F<^T0V?Ic>U%2HI7Dq7Q> zHB@02(0XYO)JDobU+>Ez{S;*D6sS*WpgNE+MZUFi2}g-DdTWQOKBXp@?cYG=$l#Tg z2fiB2m@U_^?iesP9qt0PN`Q!!Jg5n2IY5pkfF-N{6VUNpLI-+oMkg*I_c`1VqIB~! z4zbIoPYd8Xc`c<M$&PHTRLA|S>6d08WgbRZsPf}^_lprF*SreIbu1$7-U_LP*Q`W8 zz@{(if-eST;etNgDnz#WA}c@9Hm$Y~yVWOy&+E_rMnEHOlVLF4{QMf(l>)m0DN&I4 zGVbOaj_`)D540?&=Q}v@B4*I$TzCL62~8V=b}~(j?C9@t=ytM6grfQ`f21kl7RFbV zgSf<M>tNv6a2t!)VVkBxC;q9jAl$0D{PKyQBEYFZBJe74F7!BBkb8R)LlOrXXQO?* zrWgP?ML!N-B)k$zq?!*ik+kDhxd{m695bo)ucjQst{9AO6}6O4s`6zc-<7^rncZ%8 zn4ON`{S|p^ep2-cdRE+105$AWzJjVk1<w(<rMVyyb&wICP#${(>0$BGqao)4RXtEX zXmJTf14xM&V|rxhMXg`EI$E<M_#^R1h0fsb?86c&$MEOgo5m<CJQRsdS&(M$G#f?j zz_8|`zM(lkO7(f-1)GI>AKRI#W}8Eb9NC>u`pxCoJ?YA>W)_;TuFaL3T=z8jFUCZ6 z`i=DssaX-k-J6Qm@P&E1&ZLt4v*YIvY(yl9H{4=l?d00q@QkboDsDUXr~i^FS}_Y` zE)8+v9EQS)DKUPm>V=To06dHPyqStASyM;iyJRo`1;gt9vXFj%r7~#lulh`p^+vI{ zU~6qV4qrF5@()tThUx4n5CsF#i-(wTMDu`oX82p@QAaT>bbI1RYsEx6)X|HcbbtRl zNY#6=6o$QFO&rBTX3>3u_MiCwRnn}JU?Tv^Ui~kW(azF??I$(A{eF9+apBU|%|ji= z>Q(vjm$cPpjkLENi~JH+M{O>9m?*yTX7TH_;}FWPA_dC{OZORLWvvw+QQUi9lmFPR zT5CBR&U{6?a^NXWR?u<m;>GGK-}c1m!;*Yhi2AW#--l{jx6>RG5t5tH>}zT{o?%fb zasHBvc33+tH|OONYP_|k>OD5ZJSy-uDySK@5*2n2({m6@E~7lc#Mex@{Ra?zsHhS) zHI$0fh#~)i(U`|+j}e5qh8}7l0kg&C_b!j*%icr-okER>51=n|XW}R~kU7x`3q`i5 zr#w?)LLA5l*!Szb7)d+t5{rPWR4~>?JL9|zsmQw*P>p3fz?$htmJ?E#NE@HxWb|Q& z%H(npLu5U<g5^q)@-ajfhqvC$gFx&GRaqy^8Gml#howk{FcA#z`-(WzwtXQg^4)+e zO9;OB*6}YZvhr-uhXSb^MKJRvt0RDL|Mhc>PRDF@LDI6;|3)%xv{`qb6G<{{A^K(q zGyO}K6#vr|bL@HL(6d{mI>VcD9*n~?ovA8U$JcxjyMXi0B3oKAo^Y7w9{TX8|MD2} zPu7wmfgd~$T219@VSLQ;c4@-3`>3ke0WloqIybRW<sEz~gj8X?S`Cu_W}XW}7;n%> zF?9jA3xc1K>-npv{k3phRt}%A8-I&R5Z^0W&jk<R$ysZCD2q{D05%@vB!*jSQ@l%T z_Trx>73ktMO;>hz+Op^8nXKNPu667?#}WRA;kDtFkR8_7QOdmDnfk5cjPzwEN9|0c zG-O01W{=X&AGyo9N@calrxO2{S3$RT-qvGEux(DTGaQ%W^DT2+{i)M9mLtH;LS0#< zIaoe=+j#i5n=GwtaIQZk^T`FYf(h$>wiH5CTBu1SchJZByJ3iXA~=?nAWxxttZnqo z&&za6q$W+*Co;6xtd1Pe_qS8a_(^p%(Bh_w;;V>APqvLW+s#($Ca<JyU4#+PZvV|W z<Yb`mP`&b%(cD~?j;v#%46E~lS3!X#|9Rh-EQ@eTaeSYv@6Zlyt3#^cw1idq+uCSB z3jwN>5+;P0No!L;Mg*{S?P4faviL4=7oQ;u!>}+r>zF$SC46v>XLkw@B1BVACJEA# zwD0w*qEZCFL|5Q>BFOL<<0vl~Np>I=v^{im5#s#y4~qJ_+&V=q6(Sh^@*t~`0ma`h z!%n%kio}2O{9ic`&zs;ABUxS3or_Kk|6Y;BPcJVOm}VwxZuFYm)BjPZbFTO<Bn5F; zO{`9Aabz6yI$9({G%it4iGDIwR6ympv-H*Yb$kcTV0>sVW6K&*lK3Nl+1f4b8ooBY zvWO^I>1sYa&q_mFS3=zRwJMqLv_1X&O8CixZnpi8f#G&DT#h|=6YZpN@Y}u*xb!hK zI$l{Dct%OD{8HALNR4vj9K>XrhuHlywu<0Ua}CM=$@iC@$ShvEJ{`z_YRFt4y#_^7 zvSiR%p4S1|hUa~95?G`mY1=#KL!r1Cc;o~;OgleZLLVQ?wT(W4G5HW_z>1T#m~C#- z3;7p&(RG}Or0jwa2P^$jD~ysJL8bO-IVLC)+5G+g!1ITi5Mx$irsxIKu~1*M#BCjM zc$cr*Z>cgZflo=JB9zF~iJH2~%_JpFwfLuIp1na8t9|pDq(Os^`{zPYm#yGEWi5}Q zLeUPrh(F^#0xoanN2}kw*Z(MJ@ViFceIV<IuI`@1IyyhIGS>xAP*g7S9kqPL<ByWV z692SJP-%omu3tS|8R{+i#p}SrhXzCDVP@sY8_v>IJHsp{rsl5}$zs{IF$Q)G9Z}X# zy(Y#lcHC*<SxQ{0*!{!@4~G$k=tM_S<ti%IW+ufzJ6GX4J!0Ov1(%;8F-yvP;aV)z zCjr7Va}XhWLe3PQw;JAvhLyzqb>|Tb8U14TmA)UyTuQ}l8}-5r>YqFyvEX0?Pb#;{ z_Q-Y&AEkHFj<UL`{k5UG>1Ri1ugpCZVg4{;vi!Y8K&QrscG+3J>|||N=0B4FxIOmZ zpV5~GxJ&Vu^3r8CBHzX@wnqsdyQ_W*3(Z}UFFXAVA2GL>+#ASmS0R5YSU?}|fAr@H zR;Umc6V~=Ok~Q;+wQAU~Rg>=6=cUmvvDU`VHLcq!8w{z3Uq(ecOrGyx7fdbMMUo$> zsw9d$S&69w<~PQ&-MXkJX<@kFDFvq&!dmP-q5zhF7woKA_sB5dB~h8*=q_#nW`<bw zH=Y0O@=^{Jp3&Y7#KA%U{m>x&u9z(V%zUUfF+KK6U4qJZA$DSzk5BwrB)sb2AH?B& zry5T;bncQfPcmTKtDBH~)w^`W6}m$Z&@&+m@XC*f*9@Q@NDq+OkC4C{v5*8XzFuyU zec;T$AA~gZSqVt9l0wbHL+9y<2PUq7ie}8BPX}N&5Q7&zz*1z99*2t+b}pW`z$($R z+b>9m&+Dk^HYgp}X#qk1z6GRfJic2AeCg2NMkpRRWe=Zr?Y9miZ)F;y3<lNku9E|0 zfW!D15K_$)mTD&&9RR_GKhS|r$*1pu7okf=$CMZDA78L%J`~Wz=9`HZ<*^dwnee&U zQlI+u3gmwvlJ)x%QjNiwp4Jrree7-r0#_4GOA;EW-?!d`9c6c`Veo&%H~hwm6sRKL zJII3M%iR7!As}1JwAg%^hp9$rXCZcrA4^bhG9LNGLe8Tld6us@BPLJXPNJ$;K%}Q~ z3oL@Kc#5*FZ69&HB&!@>_^X0Xt?ht}Nf{C4a<e<Z^!o(?QzYC>GwkQF&6$m4pPc8R zXKecXRd*S}&LUrE-s{+DTyE|ATGnS0Un5BWcTh`7O;Y6M_x>iHGo~l(bGcSZIdTW? zt#V_s6lLPEVe*>~48A-#&!1R!7{k^?rQ7g?BR1B~PsO$4j{V+Em5)=h8Jh!uyJFo9 zAQYm|_A|(C2|3LC68O?BFlATT1?;H+#Qm6tG(ZbNC0~p&Y7zav55oDNzVZ(@W++Mp zYfR=N9Ec4)F(%3Un?6=SFr&cC)Qf|F8OX0r2z>(UQw@&tjfO1VE{d1$hai=;6Q2&? z#TTL1_--krQI8&#z$aX$gJ<##n6Aw+?)_K_bo6w4e3nNi5-hVmPaF&NE-10<dKo|J zKhxw=8xaz_yrWg(pxrE!<T}}q$AOiyOgtp|%gJ=lu2ySicdH$HUv4WdGt!D^#?_Zq z&#d;^NzEz!6ou!%-=BR8U$h9!2sf|Dj1n%-S<7<?o6l3xHF!>5y)-~z>F>X5@I#n| zenc02JT_pFd?_&vqcS<f_`LZ=%nLeMGs*aAv2BiH!H_1*n@>%qhw9_japR>{966)( z&N(U)^$AIQ9@4djkX*JJfz5xp`mtpS1GfnM=-cWiJE@40{UBhL!@Xzh(E{<*rn4>q zQ2#0)AworRgpB0?3?;$n!Qh<=n>QdQV`||Ez~=iItKi&Y-}+IJm)7r}cb5mC*a!ys zgoI=|Zb&!N1VxR@*9atBfc*m-z9s58hNSJmHTnJynw*l9n38m@m#-F=Pcw1~FI|j; zvv|6>z)G`rK0cWrTp9vs=R#Y%`xI<j1C5TE2~VlH5OV!RW>VOS47Z>F4WaQd&G7@o zI@RB~!AGVbG@KeSNg7J!5u3wO66A9S{%4;w$5Q$lZ=B70uBYwO&%Rjb?T==RTmMw# z4%w-=k$aFm%@i*wy7T3#IQ0m<GrOy?*hS8d7ME^DoV23IuqJfu&)?XrHh*7H=zif@ zfByj9G{N}i^&^e(FBFWn$hS;i1tmN<_2{830V#O{k4GSSR^%K6uQ|{W=Yqp?FeYyQ zUNCMf-i}a!n1higHMPa{_P}3Ze3y=G5BnCDAh-0rEJ~k|w3fyiV920&0}WinQ0CsS z5_>_!JJdGW3}s}G8A%+LC$gnl4woHyr@69s8tIovmJ5^oW|lctn^*Jeo~xMr#h+b1 z;(wbiUOsZujaoiOkQvLTujQ?BJ$H;<Z#LYoAn{J+?SiP0Mna$87;9PNkhtzbN09|b zRj&1@1pQz#6NK&c7G=_lCXW*COm<pm5T#}|=iZE1Ow@qZJZ@*`u$`(mnTgbJAgEYM zFQhcLG1xDCZGeslt8@RWvbj4#2fLOd6NRYJ37o26C_O25LLxWu&(d(jPpyN6F=-rP zSHIs+5^cFypTOqel_e>-paon6Q@&o)cyH6Uv8ij5ERG|%Gmi1^LoHLHo>m5xM-^2` zjP(a@+!q|%EZ?%Y?@AR~uUB5j>%4IIYKodr9a{6C+W1nh0yFKKp8>DaL1(-o4cNyl zLODUZ3hAc1ioEbCdnmgc!GkBhhdW=C1(fLTCP3!FjG@#Ii;>;9i7lxZ-mVPDU9JJ6 za5hL(Vd_t*!BUnW=3#^i91m>{xVY?t(&K|u^_x?tr>TiaTBPTBmz`DUNj24%=}C<| zB)Ug$MPtv%8vih#)cY2Fiao*B&hbX+<HfMUUYDd10lmGr-7(<sOSm1m!Kb1+%Rw|w z<g4Juhl&f%m2u;BwtI~WA%LOC0_ow&;-~*#q|<Tyi*kUX>pm*91R_d9pSPr@d5P@$ zeRB+C<RSRTl%a`rlKmJb-rA-nQ7>%n4s1e|f%ivMeYoNw?2iiXw1MyrhLpltrEDoy zj7VlnH4QU>@a&GE^lOVV*G|E*pHTe#eLK+^K@GcpV+du4LGy=6rwiEp{P$fyFJfgY zie8$7C1NurDceKwE;rHE_86ybi*7OE(0M-S)C`dmAGC;UHO*KKHzVZrg@K6P4{cZO zF_VI*@sM8z7#pNrauOr2<Ra$qyN78(k~l44=iD4Uu_Nm#P)&oXeG5#aZ`z01Jmr2K z3*}<)5r4wln||m+Mz+NX;UQ@*yX!eVE5i+mkuLuEVb9NP@1+k|3z2tkeDDv{>}jj> zyi~@=KG31Vzhv)q+@xlhH`Yt~t|8aeDQ`>cUWs`7XM=;2w-z%De{0g=r1YMJmf#}F zh%CZCq?(1~H3#4E_Y5=&tN2(q9d>mqY8l@9ctdGGee;pS1>bpgVlmTMDw2(2G9#(0 zA4jPcJ>o;I7i2a{ftKEVSf)T$WW0a~NI+<Iq&qW7;hi!SNjU%^E>#0OVv)(jM_lO@ zw@0C8tgm<j;%gEH{dcy1=<sR@Se!k_8=2UOASj}B;rxxKLcV{Kx*L#u%3rT_u{NCa zs|=Bum4{npa{&XJFV(J)-L~I};4SZ?6^7m2+9`9tB2M8)5B$7@I{wPd%=zc!?2$#v zXY(sd55qAl2WkZ{g84w(xoE^yn2A7&v4uQ2=f-`3jtEAU910C7jB$X0pnRT<sHjU% zt@`my3X4gkAuctSH}=p68jVkO17i>2RP}w`n_gYGXfphZo5lUHtMmRTWtKuy&O5Ys zZ?M}JS}6W^U+Bjc*uO$Ce~^9;Z-25Ql<9V`l#FM}aGvEZD-aB?=UeY$rc&M8a(_^v zoUD^F-$HUIJ=Sm8#r{~;t>-asmCL=-Gp73(jW27_9GAT>O4bxne+oitc{H%HophEa z=)|$$KVTxkL+hy6Dm^I;YEOm*r;shYD`L`Jf+2e{gQsWB9vq%7yG)3{rxqsZ3{MBl z<=U&a%rTT<VMK}Td65n}&<c27bvZZWbyPEDw&;{#pol2&G)PkXO;FD{12`iR&Q&SO z0;XlNYtN6Le26rCj=Q4<-<>LKb$&R)Q(b^FQ<qMUH^UVNgptLZ58<r&7->@hP4+-c zT-hLH&IlB3EvKmQxx%}J0*J|(lp{yMRLbt0sLDgEYFd_bLCmH2`R^ww_6$OV8ZSZ^ z{be`3C0&EK+gucQQ(1Hhj8d=4WMAk&D|7g4#?HQ>BWM{`++0g-+8G(t@OH2E7XRGN zXC!5KIi03}Oghq64`e#DA6g(;lbKX&;6k1Ogs+R0#0R&=`)3%kz~i9o85X?I8WV|& z`4boFn0V<bQXc*a)3ce{{oiMCv>7Bq|J?^6#VcN7c<&mPRC<z@*abzwzCw->&D}RI znx#h+h2<9N=LRZ$AI;-Crg~Mw`;NS)|BucfE?dsJ?au+x7=oUk!k6LR6F-i+-a791 z&0Qil%3~rVydsW+ym`r@dWMeVUF_lfLfyaVz~89{(ou^)o_bji<vCOgjddIsTF~0@ ztYE3@80vEQdjFn~Rc#3P0xt2Bs}>7^$)kGS6?*h30d?GKhYlrEx2erE3}N9>D5CT~ zUBR`6z_rI(q}VbEbMyA2dQXm(9hrZ^=v7fLG8@Q$oVxbz_aq<o2XTBiZYb~E_CqXG z_N?n<uqk`|0iAhoKtJf+zpX%`CE3FJ?Q;-6bGK#>Qh$Q%x^ocUFEV(p1E3<UJeX2& zE%CGx7#f6_@Lk{px~~9vaekn3Y$GO!g{Fyx8hO&>(~$3<<0a0}BfI<<l7SH3@)*`# zoSw-3I{LHS%}$o*Gz&RWO_!*;XQvZyDEC}YP;ZW`J!AD_$$0nDnW*DgnuVsKQ^O?@ z-`lqK%P;;+?0Vqz;KYh=^m1=&Z4dUxs`80hVwlGHAFcKl#~n?+<%c;t6#p6dGf)Ef zEgegKl<E1^*5scFk4+!QOlI9Tvz6N2^B;Vz+Mo1JY<zY#AuQ@GPIg%_Y2Fq`=py#d zc3P=X!&C;jI9Lu9HdHEO{XbJjU~;VVk?`ly(~lWQ4~!YKAZePKv=_byE)e#H@4KTe zEbC|Oi*F!FVF>wh(1Z1><rvv0+nE8x#1{;1Sr9eX{pODV5)br^hR|T;%T}Chkp7`| zEA5v^IR~I;Z@aC5@5yXTFl8meZERw}2bXNw=Aj&n7+(4@VzQU1r=~WFp=huXKUD8Z zazm|GOOtMMv#$Tn;vqx@k{>sNip9tFs}W}0kM4Q<j4y)Fiv-i{R*x(A1|TTvICPrF zCPe%3$J=*Zz!5uw!$D!^f#Drh@JDv{k~T}K$X*-KaqIhcFG)V%|Bz|1#}V44CWLQj zNL~HL`Cje()wu36aiVt$`WoxQzIX)3{dwKD+ux)jaLMQ^7*D>s`(J5|zU=ZiU2xXP zip|YY<WYfqmy5s|@vv)#`<X90K`olG<JW#ZRPoJ`&rfbXymG)taf@ePZ&d_UqAjLn zle+qFm?LDS13U7bUE+>o`?Dt%x>a@bvfm~@M719Nag=%9;4cu6ddG$zqLtS^c#lc> ztRYH+0{Ez>ezfFj1$00I+)@3>7~h#olL+P6Yv5`@-a|9rsPKO*on=^*+uwzsnE{3_ zLAnG~L`u3xX%J8;X%vAGq(>SYq*O|g&JhJXq)K-QN)IC4Aq)-D{ciu)`}y!eIM3eu z7i-;%XQ2)JBo)dP3G*xW$4ZqHyVrSw(P<ME5Ph_CnMbFE=+^N!thBGPH25^Fq_^}- z%?&m&{El9uhf9fZwlF6Xn0+2~yDsI}GJ4(mhj2T6a-{R1B4K|Be-98E=ax86XM%qe z5C?6@oZr;T`ky~q6}x{~RUQg-{J{?54A^5aAfs+k-b4Xd_NxBP!GYJ-=%zv$@x?+{ zTVSXV(r3@5B#oYng<L~EjMtTql$y(3D#~cQPf6K=`&H?v^>%)<2FYhJ(zMo%Nne@c z4jskxzg3qMytg{;Sa)P&@|9J{EwY+sZwA|%ei<%qVAJRG=Z@@1FH&?N;X?YgCOtn* z7NvEW?6IQ?{<3;agOt)zZc5GG6?H<#-J4}He_F;&jE@MyPEo*iJB?jHvX;Ii%GwX; zCzvSVWnzDT+WjiZ`UpA(A*MyQ*#JlziQjMu1(`{-Fnm5YYSoDzjxL3d!7<Jcp=d>D zZ|$ALzilQBF47-3_SU~`D<e_Jmit>kW#p`Yilu>Yy!>(jhYBZJklfu?G02&f9`*5O z2J@aG;9ATIu>&P482zSHzObK$IL?b+rRU(3j&%@tY87uH0xAT7ZpGL2*}~+KF5?i5 zD~gCR@0qv;Hh;uF$lz^{V;7j5&r6qoWM*ACzwKw&z_7s-2uEcv_#BBeh)_E@C=Kk? zmnCj~L|JH3ERgRw)!y9vm<U3vbv@rnANhR!XU+Y+kZh5j?#zd>ZB-GV#~pY{iM`{c z$Nd=}HfB<R6#o+me9$ll+x4fx$)2%X><PU%pFyDSt|T*GY#k4Z{F**L-t;dhX=Rk2 z(ij?itzXgJqLvxL;5%1!MPy^?5rIe6|Kf0JP?iQb8Xv>PzPJ4b35*B)|E3SCELIUO z{@Fg@7=9`guR{1%@9gt=3%b*vRTjf6?>5&rQ+sZDs8x@8_O+LI>O4&6>C18;O`Npo z<L-@W*9^QnnB;Q}d7AW5;d-x|^Do&fZK)nH!2-dq9l@^NnOy#z`}~|2m7ex0mgHA2 z`<RJM=iY1eJ))i-zh^RS8xS|wbWh<&e^^0|3emhw(dB#V3#9I^C4>R3g;6_mEbKG5 z-KgYXxHDRo30Hd%ZD}<&`vj<si-KgaLnTiDe&3|yH6yA738r=64o!qZy58rW(C)8) z1I$S()N1fa@N0I^r2(&qg7`5Ih{DS%7D38GYhwe@IMY$m;HquFrDZnH4jRArYX2+* z4#scTl(0(e+gIL!d4&|zW4e{6X4DFJ2Mztt$?)3IK#CIkh8$70K#3LBEdL8)<g?cQ zR422he*dv`Wa`^0KfA7yY@YDuXnpS8N|_&D@P~0GMxq`}qAiyu`xvC%;5yvj`dlSj zrr;~5&|2g}8}@^!#-c2CO=PX<KukXF>%$vdoAI%gzV2=h&*|O^%jnyBI~kc-CCAz4 zDqZo}-JZP)M-3O8yrPeG3&)R?j?uj&Hh9WYO?g#s<WJO70ELzWdd^N94DUy-aSdyw zDh#rHjqk}}js33yU*XXP107Dh!1EX2^tcOPE4~9vSD`D`iy!=*d8sfz8paNTA!p`e zo37!1%fIuhs_@-MH?Z~@u(2M6Xi)6UpUZxS@3zn&(HCF-23iNpi}Rz9L6ws^cpx)1 zE8Bzc&mMU_Sh<X=-kt%f9KgEu=F<c=1nU%F3{6Vog~odMy(>pSIDp_74%Yb&AZr}E z#&GixtIyX2bHJ9GT9|Ju9=k>NlOBP0^qI)khV2H>;u4~6_RL=adAP$3<7rNhu)T%C zonf6!tx&y;G;flmq9i8?nsPchm0kLu*loAA^3psP5S;GA@{-Q?hZ|3iyR0wHL@uuO z7b=grbJ=oDduB_lvCXbJhNzzX7+uzqP?lCK8RF@kdGSd`HRw@zjKSadpGv=j%vMc! zWqxb-QI7pAzB0qx*gLzd0NY0>j7+MsN8Tn@`i*4&?7Z;+URGa-#`c1RqI<V6<aaIN z7radRDIXQ8pmKn@oQ?)>|3CvIOcY1FDHOyS)3|`I*u!4<<cti)+Q=h}nx{PS{XjyH zRYHbAa+ko|G*+1$SM3wM@aACFqN~097b^69i_+Xt@@m$!O4X9*8@s^*)dtP>NU?@n z3tgHrw>FEr-*hxU$%Z|0%O#$C5`DBweI^M3>!A(-N@@NgaeM0D1FFj#-wzh?%0<$Q zW_WW24<{=4(F{AP1)=0lzxdc5Y2R`aU~sfxH%)Jp^3mF?yPOKz&g;I~*hTk0%GXdD zL0h8#c(6ZUyYCdMi25D}d~Zbv&^XTC7A4&<{YHZhI~8vEN@`wh1RimVw5+r{hlTO- zu$kLzBG>p7Dn>L~7&9riJ1A(DPvqH7j%A5m!xo?UOb3^awYZ4s*|={uk2cORSLQrx zt(5r9qqL$06Bo7_qIVH^&0=!vH2BH|Ga0@L4lIS>Gh!`+5tu`O$X)BD(&}sWuTUTd z5up_gfQdu|_$mm^3a7${feP}4Ll2Cw4k*DSlj5LO1YJaE4nC|ky)4C2)y<)>B2lz; zjN`2EJ=Y)DyBe#hB$*Dm#zr1@;@yee<T6ot9_J#F5Az}Ep|0^wc#EO>`UXCZ4f`BN zccu)63VsJv#N2XiL1z{M$M3x)2JF1^pfbqF{0F<$%sT;3ji)sI8U=1U+7e#&;>k`b z!$_SNF{+@31byxF32>0P{GGTYN&v>xQx{5dz{4>I!k+6}CleqzxA(+LWDN$QH;B>i z!xxL8F;m4e9Y1V4h2&|WBr5hALc&-OtRnl6FjkWKPfDaIz!mzs^j;jy%&auz1JLYr zrl`H-0WS}ra9Z6v=mrzOoeME3z<bs>8P_;5|En!ckMrJDjp>QLD|HD-w<m{8{;WR2 zW@fS@h`?OK-to@y=OSPy82QohT1@L)3V3>cfNg6B)A=oSFfx=JO;|4VD?cop5Es<( zU=r$HNxQ21UqRkC!K$7;6YJp@cEWb{9)6CG&8FL5Z_|LYI9UI|+)P55`i$3rKL1+% zO`SA0zt_c#a=E!|PT%7<)sE$oPu$dlDov8!o+Uolb#<!s@-2C+?eOHwr{6}U0zu!r zhKQDC|DOGly68+#IGtNgXpz;anY!{gy(#yF^tU)M>-toy^N4%Nmget<+?5HlKUbaF zukeJYudSWmqfIu7e%ZfAjF-Pr3`kdK1~c;L+L(s_l!xy>VyF!j+_Wf@%{f))Nyp+l zj()d&v@{gp&`J-vja^J=)=!6eR=+gX3T#u#9=@bV=NT*S6l)<iO6Q=P?Js|CtBP%x zob8BlUKnob+-?nV4sCo+f=;dtGkY@)%NE)cKIy_T;&o<&hka1<4$(w*-kr1%>qhL4 zl_%J#*AM|{+zQAz>ySgOP?0NlCia#xD^5@eYdkihh++cN%G(Sm5zr!<`Te7oarn8% z0riMhJ2&7npf8?6V>86Uks=>_%eODxB_V*ogXN<LsO-dZDOPE>Sp`$&|GyfM4?8rK z3dhmpxIl9ANJ1Nsk!b7udnE$&Qb3@wD|SD6=&Nn+-~Yg)m;i)cW0Sqw$P?L6{RAIx zo~b7jiJ;yyc+Yiz=HX=p*f!5FyZpB-6(6Y&Ot!@Wt`z4#5yrH=!P9ZdZ_U4UX#AZx zexRq7Et^QZh>a%j(>8B6Uv2qt!^>Z&S}5|@)P5>kR+?M5yg3Vi-Y$lNDSXaq=>we) z8BKH1ogY3uH`lL`x!+yHbagX6#+zI&D*5e9%h>n9S5c?u?fvKN8^*c3;3OY-57i(D zV4d><;5Khf&mwlISy@pfI+L(6t4ONA1_BlC=+2Tp7?&%3qF~tt9=itFYOl~;@M^t~ z|16KSuZLr}>##vEte1HA*i#7O3YM@Ut4xbmkrZI?M~ok5E4VwQwo8WJFpA?s_d)fa z!bN>Nv;84-hhk+h#Of}5&krkAe`EycyK<hoAXT=rSlFHsdGbY`67Q89UbFiI+b()( z;xiGJ#0Z^{9*scP*%KE6LrZOC37;LlAAqp`TXwc|sRim*2%nlctcacZ3zH}WO)mdY zcDge&7^gR+rQaiEg9xL`9m~sPvQ#j$b8--ZswgHez6_W6%rt}k>Eq%D6G#0fdA%t3 z$!exhLhSs$nMLyZ!i!#=P6<gT;c=0%goJ#4B#tbDh~VvNtz&QAcHsIW;ns`f<U>*E zj};E_24kzD)K9pE<yAVL1~?Qm{(5=18-8AWPjk6K0;p3O!dMH+b*OMSI2(4#3-TLB z;!kRs>)7CE!J-bRzTn>tR1oAa2l=fpL4-jd(FIB_$%$$mYx6w1&?;yqi53E3+S zaP-bh7Cr9hdENXUmcOh1=3p+-J^TA%_|^ZG9y{EY@RkgPZ&4!psDGuVcz=(SDyVk9 zCERoMx~+`l^e8<pn3xD{b;(yV>F`sxpiN&-9U|{(O}eEa+hZ<nZ`ShfvXq~w>W26w z<Oh_E0$iwE)LfRB{7aZ6Rd%Rnn*=9>*e>(>XlM!QsAtVXehoU<UNDFD27v}wcR#`Y z9i5XMXm{cNSKmi7lp~X)-B*;H-x<>>8GMpi4S8N6LyL&j^C9DzRZ&Iam_CBMAtas+ z{0X)UK$&{nM~NS2JcDE?vF+ZokEDoEecBu_xir%mQ#A-9<O=hf&V_0|?a6ZDdZHG2 zK@Pz8y2=Ex^`9bBtiwv1t|eNB7wZ$>9BqBQHLQ*t7)tGps@JmFdau>Wm86-Qrz8Lo zDt_Tm-j||WLRsLp8UL5HDKC;oiEZazB*9<YS^tZlj>pxrzql_mfoYw7napqT#=^5K zGbKsX*Vb!=*UU6E(M!q%KWk;&qNa10C|NCA;Hf}mW}2=pqhi(B{To?X&R8wD=*DU# zhH?C1HQqL_-2t`-@qqzlqo6YEdj72<ivp+eXl_KG6hHg>`vMSd1cUKiGdD;&JUt{K z!&jrR`$b1oV!J5FPZv=(4t%HxB6Pz;jl*h?B831xRsSHY*JjQ|R{hC67mki^VP}mk zXAU)8?AJE0>-WFOKKP{RyF8L#oY}B=W<9gfolyPOjSu}qZ~FDa4{xv2LbId+nrrEd zIF_bucAyep_OO%|M0tuHwMRpQ*nWWO4HlF|d1}h0X~FRVlXTg9bg1#A<y-*Wh|^=b zmuQ_0`NejuUhM-dv3TijM=%Lt9@z12I<s?fJjhlA;i3{u|NLTQ&iC1<@J;290pT-$ zVtx5T_iGRUNrEfa?z%NPHb@mphX2e$73c+H)qVXZp&G_|e7X<*?*d`A9ZcdYO+ks_ z0(lR^Xp7keMFKnDBQDi>ryk!MzB-lcar_Lst5zXs7Pg?T2GX-^{d-v}XMJ7>&C4c( zLaB^W6ZWXto-tze9ICQkj)o6QTi!aAlH0Vs;LrVDn(;=pT)Hpg9olp;+f;=2p8a_T zD@Xd}MCQQv-U)Sy)p<zzNlJ@AE044>{pY(R6@6iSj+})LqkVNCyucGq>`;RO2X5RI zeDZK#DXf&qPfnEeA*?2m0XNV`fj<IwP`N2g4m1O!*RhErc0n4Y3QTuq+kA=jBd!z6 zjCziXaUY6UFQtg;UDSzN^>kXjr*2e54DhG3>ov*v6S=2<Ato`f>|DK|kMFr6v_xxl z3#&<rPp3-v0KOh7xBLE@pN7K<`aI5Oe(hX=&KfU{<s>oLWX&wpFjkH5>)`Uc212ow z&tsP~9oLoPmiY7b;(R;oYAvvfuiql@n(Qd1YlyNb?Vd;M9C16`QLf01aM-Ulx`(=I zT-m-v?ZNTi*{ix?%N~Y`vZ~&7_LH;@B`+J5Fgs`(^kNdJ)hFYD{|0UH!>WSK?zVW1 znE&P=wf0Fm^{d>I(;kd4;B4QXp8u$rpi=6Tw|<{a-gV|JXH~&>^El>GOX}Kv)5`<4 z3ZKa{sxCitG32V(QM(~Jp6DB@8v?MIAX%iKm9BjN_)3tV<k|u7ZfztaC(eS4pn{j# z;(@7A7Ksx#fXOk!@T<y-C?uudW$aWM9M2)aDN;=W=pS2&Rt514xcR@AV3;Ss;-Ikz zuF@58@J7AsQhu$(hOMw%2Nj-lTU4hfgyF7HTfYTPT@F+>{7T*W5%^B!R(=utH%~y$ zN6dSI_9SSMOBrDDx&MeTRG0<f3k11n?}p`x0CuhiiuKhmhmK5Q^p+R}`Ywd_?=746 zA{H10dU=MzCQbYT53oqe3tm@NoQg%D$-<M|f%;rdNJ+b++5_+!FSCSM)EIV$La8rP z9@#oD;YPnmP~zj(i=um?%R$QSf0OGR<pIWabTHig>N`__go%Xeg<bD<khOru{QNKE z#|y`qSX1E!N?`cBAZ#x`lJL!u*aGEDOM~mngJVXK_?{c|L}>YN2vuorv>*#Rz6oee zQ$X$SH$|9t^q{gP?R@xpEu<e4nym8?c7hv6$pjQwsf*g5)mG@aLYD?avh%w?wk$SX ze=uv=l(j@#F|U+#k^iWB#lFa)n;vN^^JMTT#-e^JNF#+pkMvzzo7hL9YaMCA&y-%( z7#iO<=`~`soRd}2onc+L)3g=fm?kOxJF6nzp=b^!5tA(uQ$ML2>O7|xV-Qz2+6;7n zWwTdMrQ<cepv|b4K@Hmz6S||Iz~lGuvivoGdUNo7j`i|6=z(FrM<X3xw-p~a%c?w- zmdTksIwc&qu{v<IYAHRDuVhX6DfXR;U2mc63Z0b4&nng4K~L4(y~iy|18C>Kx`8@5 z`9Lt4*hcII5upmgS@S^atkq3|KSqg>;Z6)-V?S?M)4<D$L)hVjD=#bgNYKxH7P`|S z*z941XCPoZ27s^M$9{#)B>P%vW@U69v?zUgX|12^DZwUZ?4-)!+VQ>I!}!i!RDonn z<NXeuktF6PBtnJ!_$Xdkzg27=*>~KhpxP)(IYzC@=l#wJeB6ubMoKzX7dob%1y=Dh zYGkWVxj#qUE(mk7J?Ga|EJ)c^dg;f_6lOq_BaTmIx+)lam5bw9!RI_T!|S~;D~(6w z@$*eSe9Y^!=a=J@rV`RQ@@Vm*{uJFA9Q0rk<N41O&Vt(H@r3OHw2Ob6I*_ZrdsSH{ zfK{5xvcZG-x&FOn6Bt2;>IF46#=_~H(-V7aFL;L=2qh6q5Lz1c&Vn6>FfvFj_Z%Rb zg+o1u;~Go$Ff^mLwat?F4h#difgkGtKHpoHP&!QwnjTpDp<yLmVl=aaQ}vpQE652E zA;Qy_zN#3y3hjPSx?0Nny@wgQFQ@lAL2GcJiU->}Iz`vt+2=e86cM~sczSPH9}Ztr zY~qnB6Oe{l{#yFOud8zzH$a4*Wc-lbE{amo>%%n90ds`3w6Re$)nK|QY`1u5$&w0x z;y->1#f&rXmj^sj>}}maTk~ulTbOW~tnA46?U}mpw2Z%1zvZr!z>f!b87)U(!Z%eM z>5L`WuQ#HekU51AIilV-A_lXMmJ*-cNvj##BMCCK?RN}W7EoEyK-y=kddbN^V>P~S z#MdtW_m=%3nO(Gvairc3)3`H7OA9N;4K9(JQ>iG_UvWgkTKw{pBx)(WWdK}To3OG0 z(wdwU#+xT&kn=qcQz)Z{-FEmDk^uJ>1l}<R2tBF7UF|D|?bT+-D#?pv@*~jEamOQ9 zwh2d9SaBk!uVDmFV448A8)Wzz{0;-QffSA@3YAj}NcQu>E^?^yIvvW*Bnimde7|C6 zca8j3!5!)HSeqcjr807y{zK(>j+N|LspeD%j+?2EY{t%)(^Ee8`$_({*H&G4vzu98 zs4mV4-E0G!<b@QRomcy}yR~T+GrZkHW$LTHeC?A-6E8+hW7vhr9_pnm^toMvot##& zObJZow+zk-b9wtj@tq3nu3m!tJO!Yh@<s-bLvb`sk26}cqn_HB^l8efU^Sm<M<iX7 z`dbzGvL-!e)uwC7=gWxiqnDSY0(%#mS&;KDeEZthe*aN`&#abpUiBN4XRDKq`!cRY zgm0g`93enH@6qqO9N&nWM{)+tW;uLoAM}$(E=Ar^zk|+AnX7FQ$XpgHBPvqy!IrO% zaSKe0re%vqg_@U`_V16Y3aVy0<wg1pT*iqZJ}^3)os*c91u=vJ8vDzzlW`9`+N#Rv ziwaZ}a}7uug;6wlFo{iWFja4Kx1z-v>CA%BR4)Rbd&!UnNAs=?c(SkHmjIL47J*OU z1DaYm0hq`D8V<rU-H0BAu{u%)W|H8Y{&7zoh|yYN-l54Y+;Yz(sNC&KT^Q`z4f)Wi zLP;1>!l|3<&b?tL^{xIJOL>}Zr>S{jj1Od3v7Sl?d%!T~d?h?@&quTGI%iMzuP^rJ zOhV1uCH9gLGi{IZKsmDG3Bz!6p4DAO@s=VmkjfdA4Y2l$FPHwndt|OJJO@6qNAu8F zf$3>FWSK&amy3kT*eI*HQ6=gyi4d)u05AUBtP6Zxg`k2-fyRiuxpxnSu0TTfOP?su z2SB?1lfNYAz;7VE`QqaFRjk$7?rpn2A&yiT%s9FMUTYAYa|rV@spfI$P{0Ev25Dj@ z7f#pC(IksMIjaK-1pEBPTK?N#7iF;O{L!svlK^l^q9{8C9>%S=-`I4!!)Q?jUf+Br zK7oHK6;_?ikrnKQ9iH;1MRYz00sjo$G%x@(dBBR3E^l{i;zzmK`b7VhAApX1$WdJ9 z(kO7bqz^s8Cccg8=g1zfJ66aN`cul&kwC%r`vn@eQuah*O|w`-Q8kEbl~6;w-gVnQ zV6?twO=&6`(@x{fyRhN+YGT?Ve<BsLVy9JWbyeacJ+aPRH?!e+rCWxU7m}uX+2i>< zCVs!@1IUFReET+Oc9#lmaKYo5y-&e$`L*8aHL@zZ{FiHTH{WxhqxJUrCC0}Q_V06T z9&b_?eoPPCxP1_tx9V*kYIotk;PHL<hAb<tln%1ggySoW3Nt{DTVZ}baW+}3;5)p= zO`HU$GXOhoL7@M9u@4o8%FZ{y5B{eGIj54<LX&QD&~C?F$TF6Qpbg<Dh^UJT{{YIC zCnRy6PL22S5C>h<7!BSx^Ql4V)-E{IG1T6)>Gq{KqP_-*#VSythyOayjqR0mqOPix zUv49Mb&FHSWp9_>+;n{tJPj~~s~H8EH@*|G4;8x0$5maKTvQm13C+VVDj5_pQ{g?_ zROTQvq-r@gP>%v0P)`mFQ*i%I_W<Q3E^n-vcFj8ZoDxVy@x~84R=o1*K`*bNa_<cf zOqHN@K(M3cf?921xBJa|^J#6VUfxoC3R5qWKSE<{<98s-408Ml*zxPa&?iN(#rd(X z-mF&<nC>^3bhya}dUYR&(fiaQa>0r*0;|avi@H=OZTMp14<k>Lj_LhKsE6&j0LOvp z<vp3meRAQ}CXU>u_rjzlwLO)uC*R$EkeLXYzD~OsK7uXkrR}%OuT*3)iC!X8Khn86 z%QMGrdegDj*Na3xP;b%O=WbC&pk-+OZYfTwN__mb6Rt-p@x<xgka^562aIghO>Dy} zIAK8Re~XQJWk%dEDL%Kl42~WYJ{$!(0ASwx>kD|9-U>j@krAp8<`~lAhZC|FKs8!b zSP~SVgw-?0>S<{0-i6lNovs`wLaFXr+rWn-MTJAq*JH5MOVt2#XD^JEy3Rs_?~a4a zav0n2X!3em)GCqGYc=S2ZX(iUC5;pph>&@=S|AIt-hRFG2`c*8XBejLGzSD)xzw@t z&&Xh@IiKxn3_u3a(9mN3lUu0ykQqj0)Fu+F+Ej&p1GbZ4m{L3j6tG4XgP6Dq5blAl zdQ-#h4pI5V5TRxBhOz#y{$sY2mkbR1&;b-?-k72#QPjsWHSogT=(GwBT+57UBY*W} z#y+HId0z4N_mRnSS8Nanf9R&buS2L<1*{7lj*A|FF<<q(g_UCI2Dz|$q^8*mN3dfb zJ*==E60MXU)$F6#$HUQO{OG;sEwPDFwhuzNx4Abu`Q66_eRM53XvX7K?=!Jbnf?4S zjM`e7+-q9MkF_~WbEmmId^gU1&!S~HTdXSdd9m1?yWR@Vh>J&#Kz?K6>lw3*&!M(e zeD@G?6WIerkA&R0UbyRMzUR3+ZLsf@fq&K)6BX-o&2sF;D5{&6&0i`9GakG))6p>w zp;1q4Z=f8mg65!o{el?VTL-)pzL8N5Pobj9tYJ9%doe~l4yvcaeI)~8rG_5~K|t4K zlcg4-O?KX8nHIgh-Rvu5uVB{qu=V_R)_o4g!)Ao8ZWq7omc4w%;0+S$&E8^B4`^!0 z;{Y?=TimMSzxE;bN#il;ifVsBnrjTR?@7JQJ^{5(8j!c8|5Knbin;q*BXa$*m^6cK zHRZ_~^|_$+OOQoH!a;^#X~;OQnB$8BbYr|FR%s7b=Ca=K1ltQ%dfwDNB7nnnCRcD1 zhFkw20{|8U5m3gr-P1X!h@J!;(gm^)P9f+0$N%<ro*>1Y=tGAy^e^b4w-ze;T_r5= z`1Ix|Wo+UwU0se*63ca)L_Rx?<igON(Egbk!+61FgY%?7GS;%e($2?2pPd5y>Q)yI z?^O(P3>mABOgwykr)rxlw=g@>q$%tu`)DAsqA4=0R3$W!=Ss5v`Lec{1Ka#8IdRyf z=Gn>MM_VG7D~c0)`4Z;H;KVM59-8%6mJlAnyi0ekrGJK@1;@g=A2r8l%pnP$e1N;& zI3<DlVJ85sFLw6;a5%=1A=E(Feu@?)@6KU*X@?C?2qnh75XMr2Z{L9LDP9~_X7WYL zTi^==HW8epHrSXV<J(a^B77LggG9BF?Pf}Ip?GIZItsxcBsrGaD-Kb1gVEVqiyEK2 z`{STdhaN6*HCpA5AvSUCS&_~Yv-hyE_{E3Tqhl5b6qh>a@&1#Wir~u*Q{zLeQZpM7 zW67W%<7;46l2!PQ2~2mQDDWCUhWH=5u5kMusJ_0OCyS0>5&(w3G!|%jTPEh;^rFEX z7|26t{-4HK{L8+u)O&;k<stozt_Y*Wv@xUgZ{Cy73_d?Eb&-@kXM)bQTjf;;(}wu- zOy8K%mG&Oz7ak<UXHY#5p^zj<=8Oe)skL{^Dt%2}bdtT*=GcGIkXRuwlrZI;Z|i?2 zFdmMn>00lO^n17dqu>8S=!4h9PWNxx>5BJs{(iRlX6WPEVNBt~`fu79k2d2eLb+~) zPe}278y`%bX?;EGgcXeh(Sd7w;L(}!=-k$<*OPwJ>e9}$!{wm6-oUWDl>##x48XGu z@<e9pBMAe4V3?r-e9s#>wG41qZT?G;D^*sZ!95>+Ylpx{v!DthJt^>4UqdwtyeO{u z&q^FP8esjMnMkvs#qnc^GDV5TgdTjnYxh8&x#UPJS(>xU5leqy(UxBL_}P(oXgfLi zvgvK!J?dJ?j?dF5l8k&+5|ypIh2wAh)!$gCSbzH9<1MIkSD0jp9Q+g<=2=*;O0T7C zQF2Whxx0wn@8#QQ=z8PXM?RrP`nB*?BRk~!B&Q$66|SHhp;200St<KrkaIXp5%Izp zgz|h*<U&bjyC}#&J--A+Nb&o7|L7}7*qG0#0@UM^6gmL0lF{yf>4Pve&a)qicCpL? z^hdQNt3p;p<6&Jf93wy}OceF~^r=7Y58u|Z4_58cvl51=4J#4XtWUH3gN3Uh97Mdc z*-hcIMe$8FdLDVrj^*{!_QnO{=k<$TH$(M1H)!2O@VzuHEFN!0OzRTY{+6VB_Y@D? zR6Mgq>hO;6RWXg*Hl(~QHSl-NtD>6OYMbntEWZYq*jN!F$LCRi)^H4o9|Zj6A6$bC zBQ$t(9<0)PBG?$cIKhS-wVK%b9+t|etW7-H^B%ElMTv6lgMrj?6CyPA{sa{L>(`z~ zu2nCQobC4!zC(sx^p5peqP^t7C6F-m_dmMlh7Lpo>}?S^-byF*t<n!WC9IV7*DeyY zvbu)OZX~RX@5?Aq3`e9K9=aWbfx-7jZQv9U24;MLf@fCPeP_<-2e+`j)%+h2P){<` zJS6uW@AV%mFz@Oy+Sx6Go}De+dNlZhYETv<j;{Nz2cU;FEng)<cSLwM@)*GU+60cb zx94m5AR+ffH+qzg&mKJy!4`aP4p)~upy+<!(tWl#BH<N-KpT|r^MQ~g@ZTar!E*F| z;5|90egjt4GDHRFEY!#GQ@IQC&p@8oWThmoa$9}U*iQ*~#`07kOAwmAlma^*7$^D1 zlMoE)y-Q3e4TUU0Ql_Mvum&6>O@uf33Z2o?;2D-m^rhqaanaXxH}YvyC(XFxt|@YM z%un*erRqr&I624txUo-ntFQ5(y6mwFJqE<~M>ay5BdQ!aX-VIA?WS%DWGxvfoR%L% zuMJ9eX>c#tcpqR|oqVcFr58QZt`M8nyU0%n{(XM;74L34jw|i0&7oCZ_}jy;SHeTC zwq%~kkX4mFU6^wH>h^u|xwVJ*#+6EwGtj!M!X&0ac+B{2H-fMNx&%;i#a@C*a1D?_ z7@#H1%>@pCy~+z6*zPuvyJa~&2M+HKuMzkgz{lk~376=l2>}9xN^X>G!9y@B$iqLJ zrvNDg7S+3T7;NUZsrsNnLuc5zucBiCp<JZ-j3nU$xvS=Hk-zktQI;jTWZ29Cw#gE@ zjZsyG%{kStTAo_DUQ)D`UPVMF_P9Br={BjNVD<9gt2q{FdiN)nhzYNLa3sR;Kx#6` z6p{LfI?6TF2isnD6;UP-FCmUvz5g}wCp(mp#)#YdAb%OR_pF-;ujhQ-nkw-Rz+b*A z7-uN>w_eGIP}W4SV+kVsH~uHUTB{=^-}eoz{moih2Jb7Ky-O@fbM>-ksS8)Bs#Uz@ zV$hrY;VG3H$Z>i<v9*NZv@fKbDLo;Qe)cPGt{UYtnM$L7M}2h<)w6`DHLZQ6g`z7p zcPSl?9R8f%Z99LxZA%%qQ&-q|>38AG0(lBA=m(>o^gS7nvuSpUAG4wH_YyVOY#Dkd z6TCCmScruYT^qZ?{2^>DuxYgqfk$eR;u7G>(g0>M@W%(MUL6+(lXKpA2`WgTp?5?$ z%hy)qC?uaB@WKl(bcw|Cfes;#0B&5|?J}|$?h-hD@wKw~ASoCxP^-rLj6`5iS&CR{ zyJbj-3_}e>zdEmBV@!Dken9cLaHuQGfqOntfG5QY*8txJ&?*4<c#N)6F9usd0{jIp zOLk0Q$A+?n-e1f9iUCf~eGqce6U}&Ou-5VlwtW@MrM<Q2vFf7Be9+nKnJdUqvU;A@ z$4=<{02cakH$uIZ2R=RoSiJ$eK_Xy8;_2m{*TfF>+z`is@^U`ZoTTBpJ!r)3Z44Nb z9+Dv>LWMybWZdt}^!4=*hGoV0Z#nX!hOQQt?<`L~3JZU|ChMun*my5n-!4dxx*z!2 zuc4fhjioZwdebYDy*UW%i#IFiak|8mvY!13(o#dlhC?QWM;i~KU$=Z4T0{_l2w+oD z9+d?w66ZwN-f&n=3Omk;45|U&`8e<@15#vCUYdw7%G(-za*|u1USgwYgrkxoHR-YK z-9Hdz#<n?qRAeWQfmk_rIUWGDhhuoBrzx+rR{UaKTi&35<W6If!hcgow_oaG&5HI$ zam`KU&bAnfebyvDpC$~Ct8lOHw_p)C*>CKUEQ3Rc?$En!zH&a%hXPq*!553}2BPa3 zSC8bKOY52Z+Kdo10;N0GeZ(mGGrL&ivw!pr`}VsO@2Hfku8k^<gBY#bK4)GzC2ja7 z7Za(dH=+81o<3!PoMi=wwlfMu8Ap&YmJ?GD_Y|@Oi(lE{3`U$g#_}>Mt(HND7@cW) z77rp!XIY?{ICk7R84v(|48>f*QXBF$t#ci7OH+<tWG;vIJEeR&c>MVBT&?bka4Iss zhEX<Fts<rohIZt|rG$yxJ7=~#<0p*8Y_^;!_%D?xu1UWQs=PXzCG%ycH+w@-UkV!& zEq5q=LygE<!o~UpX|5z|a<U(TSNoQ55U<Vt!_ZWRWfwB);+Uq{jLmPg)tmMRnl{<M znsNs0Vtr^1yi9Hp9BX#aR`j+*WhKjl&!B%64@5bbbl!$zl{{c_o;4+)n7D+>V+Vly zqy(ibkf%xoVMb3)WC1xp_qGTE7Yh=4Zi4aHNF3`{=Suh6IjHOL4R!>!>VbAGqDzLZ z?x*sHCLgh+DGlzf@if7ofMB!0T^@|%IOv#_`c}$svRyD^8*^K{vb%%xr7uJ)o_y4; zMczCjx<h{`L!n;V70ku;!fK={QuA@5@4jZsuknkllfCY41b%rKNpN!$jTR^Tfn(fR zQ5q}a*>8p8HL=C|153n^-1Yvt$Up6O&m{jzVNfB2B@%*LCJl}ylS!BZ*J^GE;ogB= zQ#!CaCZI819o4YZW|@z`d`XYuO~)5PJ>u2xTkA=&R?#GAbC`-VB^k_Yu3<x}0W@|} zRf&AS=8}aeHBGtbfGqLXULO7=BHRH^n;F{ritOtO<hVhf7#aiIEQER=#b495+knI` zRtF8bs9o(zW%D)PABJOCB^Al5F;@fGfof)MvEG^3b39GnoQTl#QDxwZG$r1AoXy-E z$o5@tGJ%w7!be${pCSv2Yvn&%l3ohaP~6j{CDIp(Z#rQj*)J=mZo1s7zRrCa>B(@H zGWNn)gnZ9Y;H_iz&)+xNygrWgi~SK8lPvHcmSDbS;gKCZrdFCO?_7}bnVj)+HidDn zLjKF%{9N(y;l0Z@*44uXMStcJ5o*(B&wAbt`is<35#`7-sIS7FRYxh^xUVVtluUv3 ztxz?48Eu?IrxGnLr9da+(T}3v{hrJj{4x;ULjGo<yGPw7l5m$2wV53k4kN7aVJpVN zk@)N7?`UzRL8+_#MvH1Nv-!g#2CU0NtP3-?B2X+08j}#*IE2YHb?(5+o+a*O7Vn8M z;x@~a^dU60D<rpsApBN<GO|eV4&cH~=kF!Qx7k6MW@2<8^+e_5qvlJ<ZD2xyYNm_h zNQG|R(BPDf4-j{ZP$^lkc^FINl<5LX^;Q4wQrrDmIE^&z@7D^+Uz>(}>};HKi8DGW z*OV2yTC`^c#QdjQTEO1LMqzz6<U{cLC&k}UA_59KKhRn?z<j>_Zn(%ZYernbD`LV5 zC8Q_;QC&D1GZ7QCZ=zg#AUxr_Jjklkf*p_SHAAQ@Ard_MO*)kIO;S7+hb<obW?=O6 z6c0?;Plbqa`p;i48E^q`<|HT?I#-3NvcJaoj8r0@c-E1#!rx?%ypdoI|6<#zXgW?+ z_TtBeR%ZL`JN+gcIr%|JlV0@X(l=`j{2qUnUvpM~BMj+Qe==-T7pJ{ai@Tb4U9S;0 zqEg=~?{ar6gyhZDo%2f#er}$IFJs*TzJ#nfm*{l!_<3JalUmbr-eB`3p6-cOF=%Fy zcsDkQy0whxV8AMkz5n8%3_?`jH=)>;AXE|+DhqJEo!?s1;1aUKLD&Ht<9HQ71d8BI zIXfgk3na2T3YS3c!*;<!g9*h23QAT$#rX;W`)ybCnlu`Luju*#Y}`|9qts8xQLVT$ z=6Y_F{?Jk=#E}AKJaZ3VtYi$UZg_l<ju01)N<|+c*yIxjYHTn9#Y+LMjuN%%(>A#^ z1*9BA2eQt&@ZBRY2`bjEKNCUX#`owOyZD1sF{N;f4OcoFZZaZ(U-iiWL7D}JSR#P& zo`+We_q!MTMCgP)efn<4J6PkAi+yiZvcIZW`zH(T&{;pc?7yxL_vK0P{z_Oc!B7Af z8%&7Rqay6lqWl$Evhx7gu;Pq8_kllPFDr>t*)#rBhnG=$7CJm!eAG&VcQZFCy#nF= zS4!D8Hvj8nlQ#!3*hBoc!Z|D_A78~PrBLGYO5y)t5o`W{LZmSOHr`}-CeB;JAS|MU z8XuAZnX&9n_H60FFb9m#m^~d<{dfLNKckyfbBCA9Se9-^i^$(-r5;yp-7rmf`Ka{q z@0hI%lVu^f0SfOD<U#^LV8t$bdT?_HQO)VaUx!3dw>$8ReT(y$mh##3cBCKK$WgN* zdos=TAwxPoDAA^7!BUToJwSYgyH$^hY*!e4Liudx_S2{=PG=V(3onw%8a5>dT^Ceg zxJ0^R|BbbQ*T$R>A%19y2+BwWjD9W<GQ}8#Rm!-8iw%U<?}*EGFyNEvaESGJQoJG( zhwOlA0P5%?SQRT49e2RS?)Lt^BWd^WGBKga_k;q0S@2t`M?Uaa@Z<6?H}1AM7*-@R z5j4J(HhW1+tbg1cS<TXMXl}6_9BCj`iA4V*`tQDs){d8Y{Wo~elxdKhTTSmE!*&04 zo3E+HTZthN$&L;*)_JuX-Dh$x4i2Tpr_x_a{Y_v#L(Rs0Hcl4M+!qs#V@ugDCigQ0 z#8ALrKdvIyU=RoG4uXxTEcyzlv6R}PpbWr#p9C{LZE}1HKZFqmSm_$j&>@h}n9x=c zRC5bl0H8me1Zf`>cvA#kugBXTr8Io<v<*QxCc+9wz|3NvpX6W32B&8WFfL;0Aqk3m zkne3_<|5Wo611O0_#^M~ylZ}u-_&m0i%6|wyIvC9l)-;p|8`$ktNpK&SMns614#no z@_KyAOm*(5rAl78$NJK2(m7M-c%A;&QwDx!l13e2|AemMbjo--N?C#hw@QY`ECZ}7 zTY-4FV*GkO;i=Zv6><a3t;>4UoY8*=<kJLS2{nHWL%oUJucSRqQY*NRvVCDfd=b}F zIPe2}?-g$8AT<0jG&bf3!2OFbf}2k+eLOm{-}N$1|Aijb9v-5IKqc8j1nm!NnA7!) zJ$q{y&RHm4TpE<woGKAN5McpQSfxe&x8vqDT(~|a2>pIbJQMI;X7oDX(7J+`jXuXB z37V633tDD}ifpBT5)i<6|H0lW0#!ekmMuU<{_>}<_=pG>r?D42M|(+)T0lRuFuB>t z4cbz*y~YD-Ges7hL9Kbd;cliQ`VyQ#1Gax@)ABOlLaqma+9=Ky`5&;dI!lvvnb%;l zjC)YN9j_C~jJ2{nDr-0vpv12pGx@5)%8FRss~VBBiV7q0Bh$dZr*yKo*q%x>m?)NY zO#@kTTK3KIJiE)_Iz}(+XO?=-^V_fAPo&%+STy`hi;v1Nqmxqlsowci_QP=AUSZ0Y zQZ*x!+uLt@qK&AVSecFrS9oLi^R-%g)N^tMTp)8Ezon$J{XeKShDd^BL?VN3PefO- zuw(yQ>vmSu`YMN4{Ey4uMGdG@C#4a1=Q_I^s5C!T>DDwlSj`3?(Sj4y0V!@lW5Rc7 zaI1E&pD#(hXU55c6^Dx|*kd`n$5ul%%U5A2C+-bpke%oha|kR=CvW8S5rkd^s3`K; zNS_ZKSiliWET!jUnKCe^NegCuyI)t6T$!}`e2`?Kn?6@3c3(n6C5nm0(P+uC3gg|n zv~`c3p|K0OTz=!#)80`rU`|fE@zDzLNcLHJFb;WR@33M+R`;cGj_P$iCPR(C6nIgm zgue>Nfj^_feZK6E3U!WqBCSgK$bJts8M=vye2}!s=8JXNfd^~s@I^d$$~rQ3D1Ry% z`T;VVZ%cy+pU*Ar;e?1O*}qaSzxaReq!w(<rT$@T9}<5=3wD8kRiYo&=Ly4x^9Unx z?#bE^KJPuO<}EYM)D(^=%~zuKE{vrc{+yy;U)3zizBcRiYG&kT2~D<?5(C?pY0CpX zi)EQx@?EN7$R`03nD5ub1joG8HVmsCjCHLtlx7Pdk;PqW8R6n-rW+C?-_C>U<=yfI zDjrC$P6pnmAE|SXx<Z$H^wl#m=Z9^^(eam)JCz2BpDPy(b77e0pco{Bc4c3(f%#QU z6plj-Kt{}qC5QIc_0B**m{(jX9PekDyqCs+JK%R^#nl2|h_NpS?@3felrb);flb7` zi`mY0a|O{yyH>BlR0E?~v$n*hDX$FHR?z?vxOZ<B2e%Fhq3W4);pr!km3Rw#6HJKs zgFzJ}c`hUr5_<zYA+y&bU$|q{;nMT~T<kK)$AmlBm1POa_31pn3vp-~?7f+1*`);a zJ_&(v!UASV@-!|?VL&wG$2~kT)Xw|d6D~1VvvU{9kX2O0OFX-?1Nut;qF_C0@Y;qG zqaSYN#cuL}iumtr>t@`+W>6YAzVY;L7X2wm#Q=aC=T4Q?3q6SNd+M?rPkb<#4SYXZ zGaTdqc{2z22ci&_RlFwv*(GKn|Ks472NNT;?B_jb_-+gW?^KX=j|A|nYu4I_HhPVj zas88A-QM)5tkVg|(vlq~{~kn3zS|g_Q4hJ9wjHyp>0+4YT(kB~=v{XMQ9-^+=1YfM zltbQ-r-uIhpkSp+hQa^z^N!C3H2s{rztR};-|bS}!<@|DKG4pIFadtE{}ilfNP3!a z{P%f>Yl;?q`R?1k=ZWwW&??I>i0iQ(e>*A>Q^A#I$8>V|Ey4yn?#^{|zBjbc#gW~0 zH?~2+inmaBa&wT@@SVLP#`r*8kdLfF7%n*IGa?-<|IuQPY0zm-@}==q+>7&VzN7hZ z#lK4jNTQODAJsanl{x9CxBhHv!)r3Aa7Da*H28HEm|2lU0&r)3WEMwYVxgW5as=dz zwgnm`@SG@TDj-qAy?Jm6WlaW@lg5`_5XO+78ca-BD}<uS_z?t(e=uaeuE^&^$EVp4 z$KYmJu%`S@T@y^fU7VC5V18LRg61yA$3LxOHVkCuZoGVKWr?JxCUb^`#!ko=Bv9(c zsX8S0w;f?uJza-_mrGWK%ml=_N=urr8Ar6W{pmi7jGg6ucs?N`E0s>z2fj5|?@K9U zII^mW4`p(r?>%i%Rv-lv^jW@#e-XROFAzZVKY%L-K}?^9?(f?{V`aFkOSrwVH3JU& zH;Zq^r%9AKaeE(c1YsAc!^He^3%vzvRTwk!S!+;@Q%NNnLe@S@TD9VBM;rOP%N4@3 zYsu+U7PB5T_J*zD3yvdAv(ntqRR4o6%9S-8w?dT?HF|&7zK25JQ@&Hukv!57?cScH ze(;mMU_@Z?Rs<M49mbVWeF~TIpd`(`<Cn{{B>wZmiCpTLwy3O}0F=5Jru{yaZ7}_l zrHJ;=+I98YbMcJ;QK-O$N)jnj@`onRwIDx#s;`jqcNQqnuP%}gNtkbS2CI~Vi8@x4 z{!gGY4hoM!U&<iD>FB@-G9eX8%#>l<gD^SvgQHp|pk-^MerJc+<zz_(*7DM3P{T^+ zW*#a)9OF2pdoExV6J2Gczy!Sf1<%;Klqgnr46#agoq3-*C<1ZN-SLY;znGh{sMYO) z>Xv7~6s1mz<41ov-Iy$ilfi~70TT$<)I|&!p&s1o_0BEdGXy$dBAhQA^)Y=nd>tc3 zjpHX2h*E>xNVoT-SS8u`>k*S?NzHI5gCE6}TOl<JVm#oiT*`H^5c=$-ci)~FS6M0b zz+e9Fam>)t5|YsU3sxfo!*#*1E~h6j2}(a!ly`F{3687yB{X>j<*fn*#zcWq>fWym z5`5(jeD^jH%E_iJkMkxO?&1OD93Bhs^#!$Q!JT_E{g`o?V-P9VoGg1<*(Xi9VD_?E zhHOR1Fv+>BUcJ^h-FZo`Jwt2UM?MAXp(`WBm>!|HumM(=K_nq0*$;2`A*Nr6y|**{ z#u8H)algo0R)>IF{x#lsx7hH+J3&N$UPS++2#qa~+GqY)Z<UUsv1fdfdbLsL$UZvO z^oZx(OqVk6?Vk=GQ+#O`Ze^8k`mI(FF`VSQ&{tAP%32U~5fFX4y?6QcyH(|e32ye8 zZ7=SpKOoF70=-JwBZGC(BO-_+anJu)D5GdjLE%V-6A6GU{e7{*edJ)w{|7`=n{D@G zLq#WM7%26}XK8Z$`5q?>kATW7H}kzbErUoPKM)ctfey?}*P+Jia=3JlB>2F)rNo*9 zYOHX0ScLTc<m~Mx%(GX?E>dUSs?5FSGtbQn#x{(phBELL=%tB?jJfqI86!V9Zi=OG zE-b7V<qg~@7^(DJaB~<k4yT)^qat&ed_K-d6#4Q8KQhT^)no(f$7dDj5S216I;9ia z-u<ykLqG7rPCZumP$tXXrS|#v?o3W2ogBV*G;x%;=zgYe;y^LszVZZ)T3yY6z+q;B z6He)&npFt%;udOL5A8d$i@;1G@k!0yaC`zOXbwNK0krBsoG;7_HrE0b^#Bw>UW}3m z2M+8%9DsI|hZ-klpZx9dAHVw#1RZE6YpN-=Hw1Nsb=2#%WmFws?F{0=ZOZmME(c4N z5>#swlWZuHCMk$=gn*Zx3)bw@t7q`DcjygKPcOQ8#`ew5#(sWiDrHN%sOn0<F?W`d z&A?wQldUXo03FqcEJ<i+v=}O}G-@ZCZ%b>M2&H4J)DYR-M}qHvjUZrE`=~%HxFZ9q za_vZC{5-1EmV9p&j*;=nUf_qx-2%ArsV7(|N{*_NZ~N}9qfpP*suU$Yc)fJF=osj< zbmU)8Ze1ou?-^#4%3At3xp88JN6z2zdu+>sp8gstjs+ScV~~fT@<{RYymc#IQW$Xj zji+bIbX=&$SQ0e5;fs^K&A9&{p;os6aAflD>~a!(Sy3VRM)#iz{Y29f;APG&g?fqr z0J+g?Pl_9c;eE&dg}k~t7Z;Tj;buJ{03PYOcE;Tg)u()eqH_o2&Ds2G$IWVhSJ`g& zt6Y)EZh)hC8td#JjTCS7Ggh+S;fo^GQI820`(RKB@7z))b29icL3DKZFtNM;e6c-0 z#=`#@_Y)VE!8YH-y;LKE?I?05>(5rOy`SaNmJ)_qZ}Jx$f7kvpbVNTq8*OBz!bD}y zF<o}NM_Qord_8TyNEa&Oskj}PaQ%9Ju*t)_qftBg(@tr>E`6qbsm+o9_N((TKre=+ z34YG+ZecyXW9Yr?<$vVnFN;JS1VWb4Fv6lCw!s7DH=+hYS@>9Su0Z#Ao0|mZOkw@1 zjtiF%p$?9aJZRO20U-$w1uCKd>iiEC_&O-@m2!ST?VKoS2V%m|8l(tvd&WO3culCW zV|&3IMqPy+%PC9;E=`3P^%rp^v9=j>>Rq$S)7Dpfk~p449le9xMnzMuv01(dse%gb z6FqbKE@#H^xBHC|U6j;*>d*2(+LLYL%R!Cf|8Xb#m3qZ^-%o6w*3(_O^;lk6qVI93 zvO^iy((nG0^o8x>5)Y@x$5m|Q_jOV?MjaXGszN+Fi~JKy^*t|fZ9f{V%~+Z-quF#l z{@JQa6I>l|5fB#OTNVG)Oy%%6#82nqWPo`Vx{d+~HBDlUrqJ1XuB>G9HPVl_5GWe3 zt&b!k^z&gC?M1mzg0KCbVqIXk=s)}rI)Y*eIE^bm$ffo7$$^<ubTzC7ydDF%YY;}6 z2ru-pj}ygv81;-rx2Ac&4{k@Od*|HI+)(ZT+n#nQH0hEha|pL4C(X=nHZkJG<iSd> zHP_5!JrtPuEP8{}jn)!>S52gyq>`UjT;vR2#AQMy#pmidsO;PHeWSy<b$#66<<LYr zZDER$q?@4olhqSjLj~h`iug^*2){vt&u?VkR&)n5cmuAc%iB~nDLAnd+hASjG+ou5 zq@ySV0m!+O`k|sQ@TNX(Xn4bN36itH1ODoVt1xupjOd_(J%Z2zetQzs0T?|$hyZ)k ze_jgX?k<R+_=E&oA*pWxM$^}TKNI7D?Y;1aBwptIMEHVmR$L#@FR+!0k5|1n2VRhE zSQ&3WFyzywV;ba8$d~Q?|7d3~dBzl(kc0y{t}XG2Q?9+k{me@^x`U5luo_trRGO!? zJdF+v{r+Xg6{u%Ky=Mn1lU}~#XN*-Uuh%JHUu%ajHz@I>S+DMr;w!HF5TWPoy#z}= zI;(6vfsPNrINAK{=QQvTNTCxliuQnSr?lSPqf8{k6gx$R!0<Q)wF9Po3~Mask{=)H zqlPL=5h#g?2u0E5^^-**XOo)P_Fv{eL5SET`BnsEgVHf1`Z{`vr1+FJnBViuSS8?( zIRWz)MWDtmp~6cii4p{j-c)LM2UT$>PQ>shXD=*URqxE79culcmYvby9JS8u7B$gN z&Hv#s`k$?`=H}`^(GyVuH;uP#C<WEqp2V3-6MIfld@|8?QptPt9(?WNd3oWF-DRF^ zir=4cE5wm{ZqME5U}3ucOM<blm6a#BFMvOo@8Wp1pvU|Di-32h!&zDHUYz=%4m-K5 zH~BsV#H8R(W4U7E8qY<KcE;;pXMJiM-!e#kbH#Yjw@nW#HK}guZEx!M@J3Q50^d#n z)E%p^vIjFc;IBqlv@3Z^!mI$GEMVNKoD1!`UB*hO%U(kbgP8(vn=ncmsQrICSye-U z^WYTpoPnBylQI@T08xjLmE`zBgJ8S!c9<W7)n;!!(#2=SzVjB7K<_oJ4wBsU<2^?g zoPm5-By-2WS<^x<kvZ?>k3_n+#(O-825u$YSe{YI>g{M8Gp^N(d|o-U-n!nT-ava2 z@O$P*k`tN9pUOP3m&06}BtH*ChUrV*R!-6LZJfo00;Sucf`lcAOqzHszv7NW;O#qr z88Dg~oJk-xU1Vk>A~d{bf)VQcOM@wHkmD2|gGT9{%LA-eKJFp5_&Wk)OO7&Wfh@m@ zLD7Ha!IBva&0ZrPP~e$B#8hP*h;R9o;hli3%V`mKIrq~zDE3B9)Te?))tup)xA&ga z3XQ^aGTN)z;;YeuH9bQNrN`%yzVBxm59^Htx!oR7PZTmf`y1B~urSnyGf<yt36?Ff zdSa-ZVlP?pUPbiIuTu2|dRi7WQNGW0kEW9&Lg{h0TM<SNRB|kPwBQ_+j~5soMkR7i zI{oLCIMcrtAG=kwUW=`=lXG18n4u*X4Toc|j%8y>R-S&j+D;E0OYocCKy4PB*22ru zu%l<H(7OGd&6l+G3*hc2LT4O7ez)uzE~Aif!@gR8m(Jx3lzb_SxIZ=9vXI;tl0Qyy z(>PdoCL^xZlpR#E-FKkC_?DhWPpGl#b-k&VV7tOF)<^CE@ZEh0tQXA~2&o%xytoE` zoJo$Sm&lMRAyh?!q`XAj#?Dml|8aC4{#5;c96#5+_Ey<5E1T?nl?d6JkbTX_-p44F z5VF@TWv{aLSIWq`Dr6=5W@d-z_v!ZsRFBR*pYwT-*X#LOb%M=^yoA(2VMi9bwO!iH z`EjbQ2q@&=NS1%ve@ld~5=YN4b6TfBBF3rL_P&1?hdMyG8*}=z8x;VjzLFl)^_OoK zfRe~BpDq9XVX}r74|rW+QsK^WCTL6e{Y#N#zAFOX^90Jb1=TUo=l5QRS^*$;1>}Wo z5aUxguziNmTrx4<7g%r?`&D4RKuyHKFc{aYQVRJ3-v7o`1UgC*prCfZac&j+5C;uU zOi|0;T;4xVkDJ!{8_~+4^-T9!7<Wx|y#!Tbxki7=J(6~t&uQm3;>lSfhj)F<5KMW| z@wo_smA5s?KgQ@NsDC{Fr4!#|NSR{6^zzA%fL8I3Oi`ai_kD`??4p#`mHr$q*~SEv z?46G+=aTtoU+wx^w!h{340<8Y6?6U3-=&SjPno$p`sRFAGODU~uiAOOxI>xaX{lv? z!%v=|zUP`s7W<(G$!fevLJ!0i*U!QMG9A{dp!$N@DC7aCyQG7Zl8+<U9NT=MIrjo? zU?+*Ngd1fuQlWZvDl@ve+^BTqSvrqT(-Yaeg6(*c0&~oC@%)il+FQfPcXO{se~VF< z%X!xsHl7CJ2WguVo}GE2-c@?Po~t+rl_ovhH=-JebwOtcEERiqvTJ;#kI)!*3k-uD z&w_C`3fM(Ww{^u;<wh#bu%VIDRpfC2Zw=jhJoaJ&yu>nd4pZY2NY11gQqCV;_h2nt z>C0qMpL0!jY_LgJ%F4aswL|M5`Qt5to$}oRxx4!vAcvR7kHG&UA>N1w9oFP?P#Wy# zK!#RqkiLwT)lU6aE|(zu2MF<>ZZ*;o;mw%d;`310<YEGUdp_8E1j21Gg3AhEtajc2 z^o1#lD-ze51fZ`%f*9{j$X|c}JLm_dlsifWkVx9KUXatxLkj**5p*utmnpF!aT~Xf z{O#yUtDbQoFRhU1Jai<@F(+P)ud@+(!yEnAfp)=;?$5yciD=rr0IeF|qyuYS(!P68 zXvASp*CjOZjfoI$V2*`w(LNcrjMycdxHr$Z5mojj?AR|q36PmHRKN)?MQ<E?;J?na z0|8+p<VQJmh%v{ZJzG-`NTIFq*CR_CQNX0GacxZJr;|6lN=rf9Di7r>_1OaTZ5!|h zIc_doj08Hs8E8+5eH4aWoExB@ce=oPb#x2_4!QehKz)u4*q>MhcJz!=>fgKPz0*(s zbS^>vQrq35ojz;2k_{#W#PicaiSwf-rYm0PqYNu%cJ$7G{+##;-bW1hl{Y+uayKf# zITc$E+5+}2R`}xA#qn{@UK;YijRb4+=;%S9=OELX5W_8xZZevIVPPUKI|2FxOVpC9 z<kkysozAYNo`EU)Dc1+W8Q-kN&nkrywFdheLWO=mx@8r2XmxhAJfMUSb8Y{PD68;G zhA)+dG?u1UaN~uBCZST8eTE6=iA2+xP5R^|6T`f@;`eoD>RM%4(bskEbOq)sl-Jxg zSS7p=?dEZc8`&&-z*H={&!~Gh9r<p$p=yDql=b?D_lAitL`?0dtczYw4zu~&zRHBl zy%Fqh#8|uoKTMq%2PI|FU{(7NK>3CX1OaxKFJC7Scn=UaZg&^H5M#i0sd7pZ9K@Qp zIqJdH!5~37Py^mpgp@NrfR$GJCNaMA(;#%vL5$<(;rh46W9KKvR}`R5D-ov%EfQQ* zWZSLIDZZiP93=-tj&2EPInH^tIffuyYsP^I>|zc!GZ9a0Nyr4AseV7Gdc%Ce%j;Ml z-lms3de@kJ_b9L;ruHq*<ygnqDvDp2kS@LR<$l%qK{JKr4V21lGBF{a8!>t_JV^y# zd3bJjZkuI4uiZwuV?nBy$llsyuId%e?^AbkOQk_V%5~n07x${h^b1L`EA{*SAyAc* zI}t4N=n91Kjs%8{!mWf%;DD{zM&du2fD_b5P#>F`3e-u*%{KwT=t3y^=qvcH;-I-h zWPPg$sD=W-d?Jbq?lqR9LT5gACBii5btxrvmR<pygc=uO%>9QBGdPx5h3of*X32eo zufq4@_d?N!QS^T@h1kN#ycpt*zc;Z2u+Xu0gv3^T5zuK*Jw3Jg;2i!j%lb)RjW6}r z)O&~F=XTpW)J-;56k95EqytW3&_1<Z6Xdtc9uxbRmQfCjbvJ(MB*n(+excy-5caO% z>v@`Wzeb^d&h*S%*iO`Rd85Z*&wnOO>HCq&{2_0!;VYs}_ox;Q&fh!3r4N5>q&in} zcrP#ccd1bD=m$kCUzCfqur+vV>JBXFnm-5{zX6!&cL?y>O6Vqf6uvT!je?35Je`|~ zVCH5z8Yf19OE+o-Dn3?v&I?}BgUV(aApdndEOMfah*X5wnDX4a7}05kK+@CPE)54R zEri{GRV-D|Z7-h#MyVvbuwZO15F>m+Ogm#74!{%LMM^Cmoh+^U-GHg`I``@8<E-D2 z<2p^BU&flw+BkZ{8S0I@`cyc&$Uu3CL(sxH!5Ti}JUu+bm;ltol*QQ#AWiK$Kb0L2 zJL>wkT<ga;BCJ}fawyFn0}QP=zG_&yWdsnOZ;Sd}M_`j1j<zfAS2O^zlW2QX`6qQv z=%Dv>{rkwoST}ns%>f`VSX}~*F{riKrc=8nLx4BCB<d>cZ3$1bp8h36CxaoqDhW<j z0umWJ9n#`K;FG*eylpiT+y;_sj;}?5T2-HpUXyS2o#4Unu)+K9%$5|>)l<T@{8_I! zZjnx>>eQCXQ{N?=SDnB5cg;?f$7$v7>HdH^Qfe++o1OFLef>$2Gj<+yRD=oFNMs}< zx9t^@GqE_`f{k)~8iP+=xxcR)nS+T_pTNp~_NBNh;tP}huJq}}a<MO!?bt!~Sbo(+ z1ke?RUk&?Kqhn$HMM$+OTj0(z!k14A#m>TyHs*C9#B9=n)UDP7Rw$8gR8_@JhXhyo zau*FxI2KT1cdjUNOF$8wp0JFv!OMkxVQB6M=`T%-4okoJ%p)rh$Bt&H%L3GWzc6Wd zVi!8SU_#`)ZU(N2nxN{?8u&i&ho(oC2)`_|_gm!3>0_<5yOF-lU-#+gE6UP`j=qRM zvFdXkugtd(Ap)Vj6KqQ5>D%KkH6-=v^=oS!9|?>Eo^fz~`!YU~Wcv5~yZX-LYp2bU zKWV^`kT|O{7s@tYrT1B3>P3NU9?cNrm2cnO1+BgvUJ;|Jf5uL^PNLx5!4yOz^>}so z#`!CSte*TQb#k>mDKkenUAR{l$B8};AqGQC(*h=J`q!`~Cjaadw|_yj2Ml3#T!7Nb z_7Jj~D|rISsmo|PQEKdP7&pR-Ns3v~0~`Y|eWLrP(l2eH#dk{6W8)F9+4&SOsEH|k z0kI)ovS8BH>?aG{)S6YJPY|t7o}E6pTYidYMS?$U4SN$ILMvmQ(qptl)QUVCvnISs zS7NhPzxlY<zn(}eyAqUiCY>*MkD;fOX`_rHhauIz>DlbF<+F-0&&xE7Lbt3(heC={ zZyFd7eAiAVipfkUd7LkiR`Bd~NTg(SE`Gq~=o6h;ipI-is}+iF6N~MWd-r>ERs1*+ z_LstK&NA*&ZlrG5Q$|;*&IR%un~N+jw2E{mq~;E`F8?f!{n2IK!yF^edMuRM=6mTR zd@@~WwmxOX@aFp`4uXs#nM6sdUqBEY7=4||Liqk4FV8GsBFqS|ti2)dM`>-yb_&2r z8(Bb%s9!*cMc#h;V$ba#?b*`${D+Gm`b?(460&L#14V*8u8I++@~l54xK9e%n4ZUH zG4-rj(O{V>&w+;O>~g_T4iZaS9a9DkyC}MgM{KTk3v!{ki~Y>y{rP|&Ruui08HuB7 zf7kF<feAY~sq*p%(W5*vT&sT9p&UHoe8=u#xCDS66r$5(BMAFapomIL@DAR9;hY3< zP~fsLx24MjvaZclB7Sd~pKNx49Qu5ebWs4q!>6^ouj0nVozA)9iNokh>rqkK24vis z^3oQ0DxY#cMSM!&<uT7#z4w-ivXW^adiZt2BuI%OB>y-Hn`+zI(a0{kqH^W0@d z+jU-nw-undLKJT48c4Ar@Sh~cb%4bd#Z`9fPAb8{p}{*EkRPMOkB-d+H26=y_vWrc zp^PBGKoijUef%y1b965`<Uc&!rvz<H96(zAdukv=C?UL)L(3us*?6^uc|dP^A<lv# zNBX9{Y+jGqIROG&OI7BLt0JL@GHU(1rdmK#?|;$PWDS4_K5HC>l!CO_lUDcjU|EVu ze+`Vgry6Nf%>2(R#4oixKe$o{61MN&r_4LsRZp2E3ThlRo)p-*Cr1`Dk+_a^g|o(a zFb!tMLylj=H<^3t_<d?gBzQSTrpqdNs`<x$*H#k#+1h6eY5qA(fa|@k1aEi9q317Q z+Y*rVp4s1-%JNTuP1!phY&Aal!`pWVFtf3SfYuob0wsE!5eIC0K>QQbq&4pj;u`G+ z@xkymKzV*7DI><osW3`wNLoi4bLJt~ze$XEmn2~s8Isp~I?FG*HQJ6&7(ose;bR3x zI}<j#!>jq3M>ZmByp?;&I-V*dF<a5R7rU<}XRVXf&a2yKNaozciT#3Z`Puk6FX%@~ z-#d~c6;`e`h>MT-A+1x%Is0rY(#xn~nRhkIEkR)SIz6v9rgGLEvG|?#j+m(m4kGDn zlgWJ}(6FG&yx(!VCL%gmmhC1qEXJwKeqsq`Lf0|rV18you#mNLFp7ezXyhTBe$ZaW zmjnd<v`4p(8t4841G9sMQ39ZRt=z;mq8Z_8pm}wNTAdKBYY6{&Lj2$(FuzK`%y}Xd z+EDOBS{;aQ2gY&W5P}X$?U=xHV&*(tkqMhigk`zqBo8Tb0YJmHk{A<q>8jnh%4{Cn zKP#I$Tp%tukxu2qLp5JRj`Kcr(mnv4zmo%W>hu%pXk1Jv&t^g5zIoCU;O}W>0vGMv z7&NC%fICcmDu0rYfwu$*^hmTTr5-WfNEpps8Pw9%BrS=~)TQ*ePh3V1eo(5|Kr&<K z^gm)8BV<F%2U0JBqx4fz*uO`Gf4fkgRnrDQJusX&KCaKfbA5UM61mA-ZhI!hgw>}q zrhD!SI^dE&q}qz3gL*lQPzUI5kqsX%_p`Hsb@m-!uUqtAOa2Ly<Aa<sKzK#r`BHpP z#h%0qHK4>U0o$axpHQNm#jYiTu~~ZY!U$c2mnX(3Q_q_!OvK<_iseRXv}(TD=Uxku zrA7oUM_Sn>-LAk}jP_nd)sQ&fCY2|-gYZ+UH(APx>9x6RFX94)oE;_BAMKYXw%A<e zk8>l^{VMj<GOl{~XsPk_Z#U6|cj7KvweMt#6mJNNw|;0O+kSET=|jmUwwr>Lq1{i% z@%>5ZvX8qeb;E;-o;pYUeGre!M;y>~;6leAAndO^h!nL>o^b-+;2>Rtm8A=p$Kih; z<T7GabwC7jp+fNa1`ljjf9fxLBZCY_X6gqLgT8)4V7`#0*I<8IN}-Q|37D6P6teoM zQCsT&7dRFdAb+px=)c(z)>8g*rz8XVcvhGRyY-76YYpzEgUx#XNEf)em!RH!5si5I z#kMWsE){d89;r#~<<b0a;xv*2ml#EPjcdO}x@U+-wzA#6IO$V%a5~vf2m1VGNfsHv z=~8H6WmgtL&zJFkGX2kJM8J;dXTv8Q6sE2<OonZ~{CGm~b&au%TlT%bi`k8C$!?n0 ze<eufPy3|L{T>^!A?PBXz5fde{icpP&bjN?VFL$}X#m~t;S$vtWTOY+=Hejba6N$3 zk?#G+$t1&?dK`y9p{#)YE*P3II|3A7TGwIrVGw3!ahVh>yGn*`v7%*piLf=R#F);e zIboe<TOTNB+GFGM-;Q$aCNkJX>v_pcXPoAabzj2Znk$LuJ^kckniu!j1BD(>nqnQI zmEf$!XR0T(7r(D(g#T4~$5f$Yb9J6QK6UgsBE3!J0(DjAKOAH*FlW(NIKe;>E*9^9 z<??Z`QGL~esJXycZQP;uh<V^u-7bIgSvu{fvS4e4-_;K4L0u+y<ecQyrh^aacB< zfO!(`Cs6a1_vVpoY5t3I#9jyH&rJ0i&vWNR&!S?g>APQPTu11h-h<wWpeM!JoSoD_ zp#TD~Uyx-JW6!<nfq@4sP@Nx1qie!{y)%I|R3aYh(M1%nVPome!y&fJqVxQ0h&hA_ z?#&JoQK@1ez?e8C5n}jo^^#QB{ZYUHXM|OJnNGpni{{YYv<u;qYblDJaY}>yK_mAO zXgS33kLIyJ+KfJ+h=W=IzJ<x)XE>CY_3+2t0|m&2jKCj6w$fRP@I-)z|KPX6QwT%Y z7J4={ZIRA{!W<}HJ2{)bxOtrk8#M-PIVqrZ47g6e^aTM(%dN?01;Cm6`0v|t`&1zF zdw5qN;z4legKIZ62o45P?)tLj6|nwy@g97KPTlSYk$aW)Kq5#j|KlfxU>ma?lsj*G z3G2s>){&V675Fxg&+&7?qM|HVYJP<Ob^szLf*O1@Wx-7Sv_BGN_p$N}Oso~H8}9IR z9sGpCqXk@(7UE@JlV1EOj8fqO#r8a{gY4?^Md0JC&!by{%t1xjb?Qx`CT_By9@`pQ zera=~lD&WV{bB&on@FDURE1xy>rAHng~};Dac>;>p6`WB=pJ58W@Yc+?#j(f(_k}_ z+qs*Q;APWneB+X)05ySZk>?F2@Q+*drbkq=Nd9-}-iRc--p;qGk)K8SE8UHCZA<|) zKL`@)uUDc3Pxd#!<$hlfT{K^kjj&3n<G@-&c<?RmJo457LA$`%6YWy_VrvwHDI~s@ zL>^F6W23@bPG26L^httg;qzIGQ4fF^@6ZH087k~}8y{3Z1BZgoA-3ppLAQhH=fmJ5 zmTURXR9kc|CJU(_e{`;^-iq9+`v`05Y+iUPF-N^~Zu+_OwX3coxj5;DGLfR9SW@{& zL3LoDv3plE(be{iN3ktarefB=oCQk;K?4>(tG-+aIQ^p3{l)%~P42HUugqu`eZB=M z$<z-_CHi?)&bio7I^N?x^OKDBg}3?CQLw*erWfj#OmIYWkD|G#3q>7Q_hht4vk4f} zGS?TcStD`tpjV_4d=d{$Po}>q84a!Y7kTRhdhjpUvsnr{gufp%y252J%isp=Ej?IO z26<6$Qcv0d;%FQ2Ln9_6A%ABu-tG8!im;MR02A6KW~?ed0F_)14T0ve2ymI;M&m+H zl2@xF{{e$^Dq(kUWRv2cDhjJuVV=ya1coV2=B;L(6USxo1_61MZyE+NIozJ6est}R zLnr7SOa5(V?(g52XFu(qJS+InXurc%TCyAbMdKGgjU~aOUL{9w-eg%erqsA|pSe^e z+a}uJgM6xqgx7&7q=<TsB4Cc=ceMutXabz(KU!^yY$qY?;(lq#9V{u6zOI3-#30Vw zmL1Fe^idZD+9OsYe6d{$rkaooRHVwNb23l!8jah9sxDFE2n&Ahz3d-=67LXU?hogf z`mK6BuLDTtc=DFs$3*zO%W$zVTpmC?j0;gkXM#KBvL<!g_vF!ix1C=BQiNFEdmfvL zzzPQfif!`~ouI0ylf#{^8JV$5kX4LURPf&!&|MF#dYud4Di!IlW4$K^hnOx7BD^s< zuJoe4<`7{041E{z;tg#bEgcP=<p^fVLIkd?!>a^-K!Y9oY}pb(f>rH*pfas_6tMH~ z8dSB`eXVYtYV5OQ>Oh{;Wo3XMxuQN9WaeIWZel4;CcCc>C?yq6wS)(6FZ{0ud034% z$(T5=gQnd`fJlh`x{s?x-Qe(CAlpmDLE#2o-4;)?WK#X-m}k+mcVG>BO06#L$+zWh zTW`oG%Cp{;H7XHe`y!+ZKq@ux5(3UhU6RTfqV+*i^QjUkmSq4sRggg2sU!UX=M2bG zD>Ax*QlRtKi=QP4;0p<2^bB70KENSJy#s_mPW!%Cps+9UC4lw*N<qq=+~CR4P~re> zZKEbV4vJ7kqR*V7w>OoXwmd$Awb~4F)IkS#eY<epJ0<FTi8eaox%@W++WD5fH}J3a zt3EF8_1Nw#5$U}3X85r8W=L>AnDCL9N9V{YE$ms)NT~PdL}cec@8#+`XTw9MQ7T?3 z<EP?!EWt6FH1RH}F5i|X_!-P?N|>;r45N<r&F$i(^<2CO`vE>OLU%89Y88@j4fv!E zXP&)$3RKaMfhWips3nCG(-ihXZ@}AN9dgXlz6;u=TLiF13`CjU$T{N&Ix^GnOOV%n z!K{&60b()pl_KC09wg%@#BY2@!PVeNDWh=i`#(Ca2B2AjhU(bpK?(X6s&aP<a3RJV z`91zGrw6LK0Nq#TdjoQW|G3TMpER1yt}i}I)tH9rL#}+qhC_@W)JI17B7o?o&K-M? zs4KzM-f@x~-)m@R3l_RX(o~-NNcKjj+>)uiX_z;bs$7dqeKJ-Awb6ZC{pw|xg@6Bv zl`&qMy+Ze8RF@p`9r4jE_BMmF#f>Fia2co67O6r9wRShfBPSO7otMMbYRyKpT3f$9 zLiM~LD|wu4I&%zNd@$kp`#X^L<OoyABysx3Un>;!p=~J4i$e>r>8D}9Y9jtcN=luw zY|>yiP<XPA-y#TqTFdKbYn1{BS7iH<z&~sX>e$PH*fQ|9Qwu6bpFpShTL=ZwpGzjf zXyY5P_>fZvU<PD+iNs9-_6$)(qa0e3e&t%bAX@PtycRG<DA?|bU5qzL!QSQ=oM+_% z5rwiCnj1uHDt;^0f8D?M6==Z~W=BH3VV7V;@m~`nuyfxZB5ecQzBlSn;(z%oBpIw& zrjuGVI1*qBQ^)mpc#G){q~OS!7N)$ac|}qzuXXF2I?=XWQjsDswve8)u|r%1#uql5 z<?UcqU?NDq{Cm5Aougme5b9{ENDo>065qfGYjni`wwf~#V0D~oMPwYB_F)|n)Bp0e z3eR&14xEG3;cY&^Wv$@1>1W*b3_WRM4~7!i!$K(=rF%7(u8--f2=<uPm6TbHhTmdn zG;=f25p1A)dDql>g1Sd$gMrR?=%tO2+N;qzcXIXr`sgdu1vUbQU*OR%_61{x=pGtw zq|MH5WZ^ERDbqG8I+vsVZp4oSS-US~WRXAOn|nue(6hx$0QbhH_Ok;Vzx>w{7cVjb zslmHIU3Eb{zV?!|<9CAjeXEB7l5+PSvulhG|K3RM>xwL;!RkJwq@1NoI@tg*UL<Ex z=leo2IqaZeA6K_R9#G1&^Kt`OM~5`Lnze?)Pwzpe*W}R^LVtk3?%PitoK$8K*svl0 zP5UB#0!=;-+}i|Jf+`?m)Dw!xV8m`&z9Po0r6HydqOL%ALkL^b+V2FsED=1G08BXD zZ`GCueiUDbt@)L`qcx{+E~UejTwR3?8`*)fRXT*igATuOV(p`RhR@MImNR78VNE5? zfDN;aEXe_MIz@BVQ}3$Lam2@^>_4UEnm7cTVsTILw(<@}XdhJ&i~4K0edljRtA*rJ zV`tFfVeERNr|Fnr6=XHYhhPp<{`+TRhH`Oxb9Nq?tO(!}nr!q8IS8y+2_!|?>anv7 z)Sj*6xWX0jiv6XHhPb}KK#E)ltIyov2SAIRxe!j4?ik(S2_Jb2151+Cl~?}){z$On zF9G}R(B4lC-qwXM(iaadqp5j~5v}w{Tq+?ny}lot1QK|qtR;w<)nikCj+J|KSI{$B z5o~p|coIZiF`{;wcl*}Aa~LYmzfhS$#!vTDQc#_tPV@F@u)fi!!rLSJ{Qr5-)S;03 z`d>@T0-rsl(IZ^5FL_2W&48?G5)_dyST-r=6L&VVt<Edq<y?j3>hLIACwnq@bIFS( zdih<VOkUHZs1|1X+J_W*U9PNa6<$~x;_|@yjSy7YYGLgU4*i>`=07Kmu@LrU@8&D< zA7feip;9br@vf0yE1IEU3s@yA5WYBAI0kofZfO#+D=}u(6rA<!v~$iUq0lfe52o=d zkfJ3Kg@=$rxke)rXPW`wKac7t_zo5UcV3~PZ2@>zp9ZYSL#Lai0A=U?OhCuL%vlfk zcL6UXC7TvYo^r|x*0?C(Jj&_6!4a^w=tT>!l8kXG0P9y8_<|(%e;iPURmh-vR4y@l zyEYY$WV(HG%M*GCa!Vrk&@-<_{nxsPq0@X0EYqAQfH6gVmK9bT2LQ03Fr+f;Cw;)^ zK*xT*J)Qz3>P&q}LxxBIT(+~IVs89d+gX@m3RLw}eWyHz4UpRK?kqd1?NLGDzxkk0 zQ^Y|Z@Kop%;DLO)0_f&J4W%4u4B1$*V#z^FRm&(9Zl1PLB@l5M_!FvPs6pZ|&sb6T zQJ}QH?EOfk52`Q!u{n0+4|mo983j-q^W_xIsOoq=3Je>+=`)p_RL*mEZ}rI%%cV}L zt@L|mhO+fEGh<&uE;jFaQ53J&o4WC5r?tEL-hZ9@0g~dEO^f`t%w)&0G$^xI6Q#s; z4SA|-T5rIG?(uC``Lx;dHJpag?oOrb$J}s?!vK@y<1gj2HitY0j&CUR%}EZjFU6$a z#-*ktJ4y=coP&idDI$kb&~PR8`MFacMVCvu{lvk4e{j;jr6g216<vM=NsM@v>X``U z87z3%AnTK#+=TKAsBo^JCRZNbNBVnf0hMMT9NFv-YBIh?RJ_#~0_=qhQhz-h`lklS zk7$D;d<$B#*sxr7ROsBmiA#vqJp$+)@SBz(bQqDBwMIM?`hpe9ue$wTXkVyS`2$Le zy_O+~n6rn`hcU0D=-3rT$X)3=y}x@;gdN<z>aDz9Ls8JP_O4HU+^)3+;g(>Qd;hA} zhg%tOj|luuF17i_Ez^#_s5hJIDZjUB2&%c0O{qbJb!!bXf2<Xuh@v=Y!ko*kDAT?u zvFLy;rPCj6v6!6JnTYvHhqE=+PFo#<s-IK;aSW$*oaZzJg8>*vscHNthl|VIZ!c@g zJR!uppwQGvNM!ynJ+kS250DWCa8!Xhp!IC&ZL2IHcF^#ji7{e4<paXMDm9G<Bt{<W z{gZgsyN^^NT33*GFzM0VaI7B!L73y~*{4cZu%its)^I1N&=bYc46LvyWu*$J+ecU~ z66P}zIJbY?Tf)!PE1=N_`bGgLV)ERfDufU2omP*aBh9(5I9xr3ZHp<T;u2f_@cTDV zh7W@uNDLsaz4?CDsop2U>gq+LNb*mKj7CsID3D?u59IY;0njDi=KC5F9E0JP26Fzh zA*iEpdWwYcVExk>`VZ6r%%UCi-D}zZX+J}OHkvt90o~+^#3$v|O*d0?2*ZJ@zi;7- zZy14dJgh@_bSx)}ZgRKf*eIT@1ANK{uuSH)0VpSzxK00q=C>)UG_a@oV3PFRN|yjv z2?$qJPx*)urx73sLT%#}>s}$X+P^?u%%wRPkOPE-zh6HWJ%vvD0i0Ukg;Iu2TfQ8u z^0|s?C6f{Uo&ivf+nymnJ_49zHqsA!H;AzFEO4=09ix=Cc!fK=fK7%%LxMK$-HO)+ zE9)jZ>n59=G<JWguAP3ZvU<leLAoTMiZtE$+>)of_(S&7bqB*Hgl1LpaH8}FJ^%Re zSC*>Gai5rJ$F<*@nc5rU&5A0GUv4?vzIgBckyT4AIj!|+(k9UyQ6DGw&cI2^q2+nt z%5>>Yr9+h4gecE*2d$2)nvz;SKj#EAT-~osVi%5yt~U`fCv0vV@?TqjSCrRe6I-Ao zM^sh)sV|YR$)j|x`yFHXhxqC}U)z3l0)G(!w5tW0n+n?^4p#14KqwBlxt)Og%T0`} z;T=R`9GijaN#Ha1s;wbU^OScXtD9OzaP>!Iz4y<`L(ARj&#vQFYXFJX9(RIhHB}Qv zCj;|C96-6HF~aQngqZR7r_)G$9|&!{MUTYuJ)9%NkoLubvL)Zi5t=Lz`L)5wAEzXV zhzWkX#_mL$rxxOhSw#)Rg+s>TRbpp{U7hn+Av<kK1T&4+q=9W^8KLK}DAVz=4DH>K zU(cv?o<PHI?D;=5d^y%?GJiSqVV{rf1?ugaTYZ<;(H~7KeLwrLqSIQR8U37|r7O6* za3?kDXl78jo3`aU8%!nhffR9&y_^nBe-D7rGsee2pvG?;$8QjW>;Z1^!5?5^b{I&4 z`v`8?W8jQS9=g2;xRyd%04Ycd95be1$pG>;MsGk{ZBzFS<iQM(9vdN~z>bYbmX3q0 zys}5e{!^->18fAuzhxE~&Ly+HhWi)2t&9Wzo1P!n60fqS&Q862{an%aQfqpahL8Gi z0UKxO*CD|nxnHSI3{R&fnuN0z6Cy4hXpsbEU}s?al9>N&x41AYl2heZo<Gv7u$3AU zv$c~+F|?COpY93Jd=TZVZO^G6q%7;XL}3}(>fG)=QeN;#v<TF&?c;_YV@xBJsCc3x z*|_J~iRli4_?alnQ$u+Ze#HJ~s`k0zopAk~!$sjjdG!%JBf3*YJ54>RAf6AF=Zn#i zzSa){-|=g4>}daL;|Xfq=_SOkUWb_JL6~jJ-+HJ@WlRa`Xt@x04l28B-q03k>(PI4 ze^5{aSYP+U-oOaH4!-5hlq7qefEOgmgurFIOjmDv*M1lN4tjO(U|#eSJraOJ0=E67 zX>Ao|><l@gen#Zwo0(gPR!>BZM6UM(SX2{PU;OQgx|-Li4_H?JiqTY+RFp(J5=UQV z@NoyTU0w_>F`6GK#iD!vzF;g7*^-?W1Txm=|Cyg+0Jj$d2WsE0OVVUT4^m*q>iL!c z9{~(O^}o3vUUP;{zY*g?O*RTuI+KwY(@aNK4;@`^@Yb3%8B{&<dXoVD7n`h5$6s(> z<jAmtgT(kTVTe-G8{e`>ykn)k8os_bCg1Vc#NtY8N#A{b!`B(9xhq9n!nj%YbY9QX zh#+NklQ6GwFGuRmp+$CKsWR*0ivRSdNV(>+6Z^V{OLv5$HFZi`kAnp5mpVU_XK>kH zdZF7v>(Si!wU=aD81eJnig0F&H+fBr)#v5aG3-MMFR>RrdN!}hB7S2PxTH8ZbPCK5 zH@}d^Y7GT%Zpbc)F7DOGjS4i0;H1je=sKRJ8`PGuO=m7}d64qkq<U!(r_17A>s>_( zt!-&Q{?_qnfZ(YSJm$!bI9)h_rmH)hAmu=XKFO84Hz8d`YXY>LJ~8IYBl9SQ0IEyG zIIHGq6?nqpmj+^*p5`%x$q$CVrz<I<?ErUr$ctg=4umU49NvM3sinDo9~I{HAC8!g zDp1=Fh03lpj?sKp<n5huoQun?aQo$bzu^3EN$-9BLvnhG^AqpK*RFSNKZvef;mcs* zI78~D)>%eDtXkhc@>meu*qKI7*sZd&SzhGEmgxxu%*IgA%_OYisxF2;D@UIz-^=&c zs;k@3SYcS(9@+L#^ehOtwnoERk9;E&EWYN@jfflWwLg}^xyy@jxmy=Z46s^PD&6`U z*-j&F?3N|vA0%fCmV?ANmy<!?wjCtCt_+%sRslXJHQU8m&nyyLqyrzi?U-(r5bvRi zjxXPkqn2$35y1$5??9lAlYy)I2>eO2$+1l-Abkv(K#l_d;0%E8_-};~-u{MurAV#d zhxFIo0Jh?lD&V>SSotk+FoQz^ijFwr==TxkRF$dpytU*McL5Or27TUize`_Cv4;RQ z8HR@+S)Mc5J`?=>aEL308JC@={MvTpwz~}0r~O(qVbRT78C^a?F1HOTvn39cyvr?M zsw@80Iz!^Dcm7^%RVV!Ut@Hw};|*GRwEWIo!{CiV?ss5pSd~X82xtH~2{B!1{4XnL z>x*lbx;|iVTzg5%d-@Qe5Yf(|=k5xeZK5uB@`~Tt$5Kf|sMjQ~vPx_?N5U?2NU5d3 zSWtXkmqin++{Ok=X*RRMflSjPUl#CNi;#$YfE&)|GJ5T|107JAXrBTH+%FqHsJ>dT zI_BhG-zIm*o^Aka|Lf@&=C%_5k#y$nrw%8k>yD@XwqeB1pCCewgKm|UtJYM3*b-CI zcdOiy*$_^#m7&|z^r@2<0eZ)p5QtFT9hZZE@QKw{?>$dJH6hSh_>L3QKU=;Zb(TCI zb!M9E>S5k7_<QgB(Q1JU-V##S0<bo)Rli6iH~{A#4C-w15m+IhPd74xMMY?_SEMds zYwA_RXt6IxgC>!pOn{s9H&VN>YgXF@!blw-LDTIcL?eSp`~vt<h5oPYW|rX1-TdYM zbov&e8_~{Xx1yjo_qjT5Fs_qAWp&c5%jT9`Mft6Q^*CI!<ji(-uH|9~u8hlPE4PB` zJ@YWcO_0rC<B@gs$$B20ibkRl%YVY8*7Wm<D+I-ZJDNr$=%;yzYv!x3RLyHFHNHKi zA5|-2!U|qm%lmfwTNIn?P{da&I<!zt5T(!~MwYGyw})~}Kgt-&7*>ADDe1FGw3{1^ zj$YbqV6jSct>zW(j&4~g;gs&ALkE>055`U4Z5~3*S)jB|5NI`|@HFT)S$1F(9BBSV z*o?M7g=j%r((gLEE=YmXR~4v$=D88Dio&e2Ho$zK@M!{&4M?)ZTwCL*0xn7z^=WaR z^RH#q3!RA-&0XHX2};lX2Yi)v4_*B&CYXrz3F>Xeid$O$y7Y(#*LBZM9#n0JB^UF^ zPO{m$rmwYmH0Y{We(Wu6zVX(+DC3~e?mhvvtPkbl&6iwJ1KZP^3zxzWFU;tIv;Nzp zns~SC&=)vS(siL1Vj9rgCGs|GgZ8QJ{wIn4FU-yIHZ#;|y1EbJ{aJ&FI|TREnmkCc zmV5sE^G_n!zx&>EB2C)GirUu%m0lj=^OldO2Y#bsYAnnDEe!}bGLI0;k&5&OSvyr~ zuDBln;-=6+0Z-(xQsc-1xe+-;=dU0yUtk8>_@-)i8OyB}5(pRYj3qz^s0g5bMowAT z`R<cJ5!Y3L^AJq$OzeTDmWr4=8-W$M8Sg4afYsTBwipjWwxwuJPO~YoLG%O|(i*1V zCwqX;xXTbGpPtYQdgKr0>>q3;LFpethGw|SZ1y&@4L{E*fZk9Kr}>))R5RZL9*+OA zMC2$YC|s~^4Wn?k#(mI<btZCYzoAe`dT>ed#uvPMp`wq(3>;;AUZCEIN`UZJIM7QZ z?Qe)}vq^CN?o6Hp=t2Hey9skutwrecw|IbmX*o@Q5;HYUaZm9RT9ZIZ+pm8VuveSv z%C@YF3lwxXv}Vc1iW&V+<({WGj=Se>53y4ve=RZ4%C1<<KN#S8Rs109{SZ(;Iq6zk zwPp<#Xg@s)0H3VSfiEskhOu3F?%$UYIbjgYHCANgSf`Xvj9&BHMcla&IgrQZ>?2*B zk`I0QW*AbMm@}5cY#RNuK#;xaJu}Ya{<FFtF9WZPeattFaOIR!>X^Hy?_nzS&U->k z`(dTF1Ua%HZ@Rni`m=`L*Rd_ODw_SpRjo|ea@EHje`ZDs*c|74ZyU$A-c_%S<DFa* zeecFawU<-tPJHoU(TW5sB726g5@kCBSsp4tn+aB^WE%XCf0y+R*c{rFakFDtY7n^f zdny2^1z^6`Z2&0}GO&j@oh8J7ZHJTzG=>nkV<IeZ>0Ud8-Y97R-op*Vf#m~u8&sA8 zbomfKS_2NLD+w4BDL}Y!ZK@|oOpQ!EJyYXrm%+aOv^ZxiW9q2LD!tgf^?q5bFSvhw z5#GtdSt*ei7)~K@i9EZ3vldS>?C+l0a$nO+IJyklI(#<Q{Jb`wbC|HAplZyypBK<o z#`l$Q)j^VJo0r*2b_v7W<D+|K`1QywZ_}7xZE$Cg<}Uj2=!5mnX@IC}rT<e#*=aPO z+nF|dp|D3TvtTSMg%3e6_W*eT$8mqcKkPCBUzd%TX0De{OeVm)D4~H8Hj@jKy2QZw zeEljg-9G&Vf_-khLQF>@<YifaTzr6`#NrbOmfE>K9spjdvwYy)l<oI`4%{xIbJt9Y zp?bc@|A0`0_?k%oQ8N<*t4mH4?njE=KC2p=6FY@zS5!}HwM5nL-wTcW_J?b^hQ{wx zhl3RK8YmCxDfU-7lOb$};Am@(B;)C}c2dvvM!t~KzO|IN@i!8B`2F*Mu&))`1`aoj zhS+p|^SfJ8v^kT8oWJt9D#09<B5}y!U*-Cw{i>VUzCz25BZCLer=_N5o;&FqlRVWG zdZcnhkUNsMU6!}m;0{bzq>Fbu#G~bahj(tGW%<m}4iI$~h^)}b#HJ{pJ8*Bw%#3Y1 z4C3X91I0<;;(dodK{BE~brdA;Lzzhc48a<fY3Zoc0fEEBhsw6Z*vuC|Jv)ag-t$A$ z=l+Muq{dA>gr+GKuVw;fkHjVU_&P*A2#EtSPtn#Dgp{5Sm>N?S&I1f~XMu<-67y&> z{t48of<#NUdjgsZIZ$#J_wBW05a7Poc?wI)GN5NhQ@L(}o^BfZvd3o)Y_h3WR_aRR z-V&jA^pF^vUXv|`Yck5fxe-vG`~5Rsi3!Vl?KHXx_?Ce!PoHDHCOoujZ}+^9dIu-0 zK!<g<`hAOUnHaB3jlCjN^OH96F$mm#W=Djsas{^bJzW1;P?sBg;p_tI=_2rHme4f) zNj@RilT+bZ061v-4>XsA#K$21xhm4d_=zy#&%ee%Hpi(zW9n&|sCBzm&{Y44g8X== z?MKlg;a*P<4eIFkbf5U{<*bxgCd7Wk8lGkcq{%m3TN!gRrE#eK(t6kCzar)4*E7{Q z^>@ViCtY|0E!|@e%ND-E51wp?8xek#wQoxujJy=m+NLfZU%5F1C!h2-PFtB^JLs$h z#_x9Q-y9zVx=~FXi^!ZJ?JY0uUvY`A%|tonI48B`;~d#3b8q+j+%j8~t09Z;E9|kI z8%jQJ?fwn$MByJ@zi5&mm<d@gf54}*`P;(}jogqp?hSIlQUY0`=Y(WZ_BZ?0p>ruV zY}swVI~qk|M5=lKs%GO2l%vCq!iD6o5nvi+?XIHdflzJmNjLCODP*sO*s!8=>*g1E z{(rWn%|@-s0FC_5VKcA2GU|TG#9VX8nBRL{2hLozrcWQ=2Spdi8+vjHCq(Cq-qm4t z+*i1Lyt7%=+Y$$DZEZ4J%QLQ~k&yQ~PhIV_olIwKzZxBy_>07?0InxC`l`LS`*hNS z#^^|v9MkKiN=kKh+4XMjy`JZOd!bbpK?+<>!<4L6`JY+I8d@5bJakO=aow-({Y8~3 zzO3*nZ5Fbs@$hSw+_3u6=xv*L#U{vHDp{s^yf2?EL8rlgA~9cW==)Rlh7#bl22S*n z6d?ap4m7ZUu+)6W`r~v7RkS%bA{2WF@-0rXc@Ss@9(rsW5Qc;IM3Y|&nr?jQ{SZ1e zS_JjnFWZeelno)U8G7N$)!rg7l*7AF{>@^f|HX%K@B$VNk>cjr&*lM&rV7y!4o~>x zv0{1kWxWP^Om*HzON24bR8?L4`L|hS>Y5GW4PJ^}4>v+csieHVtCZ5er+UY$>pD8# zE9gepdLb?L+?Yaip^yZdEq)1rAE<7Mk#AcOXhRSTX{oE3V6&UIKW0L>>?w#jn+Y2P z%Aka6|8`LKzL3BpfOF;5E}!Bth>5K(1oK_GpoULO`!^t)J!o2)pdaBx3&xmR0ZpaX zxzUAVk9Sjcdw)U^cqE{gy`h8f?|EPq1iI*5ypc_Q9F$nv8cf`#1u+jLTFzO3aZTZm z5e{zXv<QJ&K3BZ8u=iaYUE>B%Jj^w}HxHba6FB0sd?3O!jR9|1<(V+BCfP-uw4rJS zp<<HWRc12p+f+x#RQ}Y_VW;}S_5&~1g$*B?UiW86cv?Vx6hwU-MBd7($ra@iW;eTL z4S;Dy^u*!ejuGj+a^f?oj%VK!j4p13`Icqbh@uBsMXz94_JP5M8aD@?0kCP?p+Il} zXo&cUG17&gSuDJU!WBmYm!u^yIk+(^38CwDy1^N!U?wqZLgISlq1JXKxYHK!cx$rW zAf-HH!4`kLLYxG*6bw)Jp3)m9?tRlp7GaWL?0Dv~pq%#FwbE>W``QbE?#aTLFw|$S z3|`Ndch<;ESnd_w#v+9x-;J?8BkfqwvZy2ANGl#V`S6psYgX%R^mpOkHpz9`1ys93 zWF^*ZiW?-OC%)GCB9fmTN_{TB!s{ce^`9+qJ{f_}hyUp4oaV}8%YV-#anudJi3n^> z{?U~+QEUD2J!(<swi1n2V>GXJ4pEgXU%gJS)O=Fp+u-Tmshe9S!cSWeR!!ebf$}i% zNCa`<<^anKV}SmznEvf5IYP=1;6R7jWht@am-!L(em!pXu-TwE*!a9Gi+=Y$fuLUg z;@g^@KTFR3v!7hO)Ho%sngMl>hbZ7T3zUJq`G_zPN`<wrcrD8BdJ|!{h-io~=RUEP z(iXp?kM`*NV!PQTt_FD#NF95inreg}oBP~eqm5MZy!|_oUQPu#ef4q%-FIFYvDt+1 zba(VPT%fxBKC?1T4vKq_Cb_J<XNozc8-GCGO`9tDBzg2I%bc0k=h9^w*2Jw$9eQc( z2_{%2jA!8pzRHr{EB|1sLR+I}8gormYex6=eCNGTy2Q!J9->zp#)WmPl9f!`l{4Hz zv>LLZ&hpPT?p;KG_0$mIR+~P2r7bPyX1c$mrt6^N;{@_VK>APqnSItS*1gZbf*HN0 zuYIyqt0DxefMArB{Vxw#(blcHM7UeaB?x?c=Q2OgQ+@9`lYVYaj3+$>uasn)^~S;< zVbFBSev0NHz~uLjy^~)zf)s=YH6GZJV!4~DQIOYSV4fTyR_Gz=L+)UrO0GS5h<Wlx ztJ1A;4~EV9ep{f;3i^`()rT?K_q~3HqDNq4n}hYpaBJ-7jU1j;wfo`+;m~jdzdX8V z4gKP<|1~umtdfMp%w%of(fi^|RRTUzAz>c6I=g*a!{cR8hf99Yb+pbwP<%PfB7u~} zgj8o^l(*NlYni)oh)~xsB=Wx3ryF33VyV3+da?s<*>mW;NgTb?VGoO5@naHt?OLKq z!q{pi(C8WB@Vofo&vI`U>j{aj|H7>UfB0D^WqaKx9mcxry)u)}{93W5?uGH}GNx|c z$2mwLrl(h0M1_1`G_C8BUvzEG9S1J;wu+pdL9RQ_ZF7d}W+RtxNw^xmF3r1Hk+#)v zB)@jyJO3B4Z7yBGM|KNFrM*6~a=a7v*pm)r2$B3T`2C5hEa-768`?EHDw5l4_GwGo zBj({CsX8m6xB3zZ;=#^n65KlVxh#!Rg+~eg^)KQ~SU4}I>X2)}DE%S4Ildg+q;BS- zMb;`gPtN87GPR<i#FOQrT2vpEXwPfe-P5*Q<G5*-|K47lR*rQOFq6c;c068=w@wo~ z&ZH}s(79(<$PwtY)@27&6_iMEUwHM#FX+@a7+zH>4Zv;@)VI7<00Ztz$ohsyWeES! z+ptW8NjzYKesaXXja}_Mh=W_y=owxbFo9r`xCKx2o_+@YY~+DA33e3l&9jDy@okbH zkeDOPHZ`uQ6B6kTVj{t9_Ij&qzYo7gO}P6e_?}pTa}4N(J5(Bl*B6v;)P6)N)yzd3 zduDdHvv*r*ZtidUJ0UH@r91?1i8G1}v`N|W6&CFw^2%Sk5&WtN)=gzIj%QUfyZAfS zb-$!UZ~WpTs+7#j5g>A?up(x8{K%y`dboA-75VnS!)j-zq-sk8f{B4Gwz}oJUPf*6 zr4_p6$>JYb(-h2jfot90^)sY<^%!FAqM|~Zzd~5;Y_;48g{-!^9}!^I9BwjVIW$oC zk>}8yBaQ)q*0iyH-zr6d9qyDM!s@E7q(IYId!WReW-%x21_G#7r9SXgrbZWvtDq-= zf*I@K{SGw52DH?~*mQxQf6b5$y8I0r*jCv9VxHB<-RL|6^WE3Wo26W8Ync7zPFB7C z8Z9d4BHmxK4<cC*SBs?LP|`1UnY9EMzQUrbjWl<NpNpuCQ$6*o%1SY)U}^BYIS$L@ zga>|m&Kgusr}E_0DABu(me`J0asMUib16G!aE`cY2B6p@0xdL0l1<?*x~%I8$;56I zSgU%}^WhL!I;~*WH?vPyt0PtIm!%q)o5+aNu6G5GJcgb(lV8`Viz`9lxDMEu(?80K zMe)OCmI->Q@b@{hY!Jp48~Eu$l^#$sk5G?*9rV5)IkwK$-g%Be&f~f+%-+0u|9*Ar z&vS+C|DF(GQzXFFk8931u;g=@J_*+JE+=10`CBmS)T75{lM>X6Tv=mfO$G**BRRZ9 zY!VUP$}s)n845plIR@bah+Im`{hMIe^~(0{H?QfL8#kd2HUw_!4%uj_g5cpRBK(O8 zl-T%O)y$m!6j{GbteikKc8)mhIcwr@RlU8Od>bYj`Q$p_p;DGKgTgyAU>mNF_Ny;< zU4sj<zr>0BRRCytKEU%bK}=Ik9alng;mq)MFTufE5Mh&oXw3%;MXn!RZ0IOsC<3tR zmd;lkDbU>F1Yg#yq??$mp4&cSc{A0-{OWw=B4+WK!2ZI3J-OPYU)8Rs*X^FX%C0;F zu@}kNYRM1u`i2(9A}b6vs1y@>^kP*JdDnksLb`TX;r|FM^uE%^$~3w8iQ87Y{88`0 znzd@t;ZQeZI#WIf)`ci0dl@WR#)v+j8lrzcPyT1w_w)nRo#*dwopPyip)f}ZDB92P z?U`%e0zy7(G>g9^(w6ccbN@b{SWqzCkbd1KCX4diay_<R3tj(CWPte^4>T>P1%YHc zi~}^s$bglY0;(~%r)mremHnrqqCyAp3?P_|HwZB-z-e?hkp#B}QY>#Z?VlYWtkkYd z8ky^HgPC`SGT3HVd0Do?M6&DbuvzncnJs%nYY>u&0w<^pMfjI|YP<t(?Qy<{Ya=&? zls@-<wQy%D7+ebXTe*|DYCaa`$-bVJB`cf3d-rRjyr)>Hm0HX^Eon7h>(X1DVCj?} z34seYcg%Et%SCbLoR(VK{WRf(d3)UU9FQ53v`pk?R!qJuIbOs0u`{^x|B`k?tvzm( z7!Go+P8+G;tRQ2YrAFp(SBw0-*S3mFTGbpbFtz8kXS#Z4s$fB;eZf{jAhO!rp43jQ zFyW{6>xI@#IqvTk*6Qz=PI%{*1#JXe9w9J<4Iuhp)-m06?l23oQSV!@fG5UpyinN? z92kQlTw>lLNO4rk++cSCfn3yNkRT>G08Kyk0m78qXNY<;aN;eidY_tUqA=%+AW(rh zp|c~^%2yMlHC2B=U>-JV=C2!~(5@hW(FN*p1sc=kdZ_hR5DFtZXcz+SLQEPUVf}dd z{k4qwRmxB@0J%FLfwmsb3sGSQaA`#N%03(dJrm4vEDYI*IJIYSNV2a2HDs*AUDz9V zmzwq-Jb+bhQ{Wz7M9UKHyiVjJ$BkG-ts5vZp^FHKfdxAxQItgs(aHiz8HudW_}^Z5 zC9c^N3t83GY`-ryU$uot4hS)*FIocBx+vV^_113&b-=B=D*{Q_!xvx4aenT%XPBx6 zYE;|9z7S(YjG_pnSl|m91a9Yhr^_tWm?&CIWJJp><7=8Pq`be7AO7r*gyKFI0d~G4 z<ZQL!;((g&G6m_Ycp;P3PC063TWgz)%9?UtDpMIV%Z(8Jj`T4#N*Yt0P*dkYvv=QR z((`34kU2GKB)CtVyYx0L3i;F582sq|h!}Fb?sdEK_LtPURlUiZ_X<m9**N#If;dGE zwtmt(YX=r1yHutl)M6th%RAd@<S)gL#g@w4K5IQPf{|H>gHXZycP?Rp_GFHc1lK2u zp2U%Yb(b+SHh~*?P(?-gFNQ?-z8u`iPKQ+`j_QN{-HJ`&u*;dlUA2H4-q7h@dl(Y| z#u#0sisqn3;WyY}6=oJ}0C<V!Dyo$T;R#ivbI9s14FxH#;R6&Qqk!Jv(5@O?H)$uv zQWqhnV;+J%QDG3z2%SOaottXO_emo&L*&#y))JzJ_7Bw0t?d@BMQvKd|2#I!{%=&u z<JtD>2^#<6rEkto<d<LZx_{MfqhlW}ja=a`_mDSvxbrHx$2j<p1|C)WK*j>e9G@Sq zJj0eSR}oJ6D5JKTVDDrVWj|&l>}2NJo2Hbbkm)ksUA1yxC)^Va>H78xcE{(bB!vXy zuT@DJ!c@}AVm8g`wx(@sUqT-aP?F+AcqGsj@kPi32}G+Rgxv{4OjD@-u7qp?c7n5L z(7B?mUm#3v@dcY<0&~-o;C~9|b%viOn}nFzTbGfznR5iQax*`Ki;qA|cXV;FW5q%t zW?dSvO8PM?j`pL>L!lWoKx0>zddtAmO6*NBsz|C~ll|<#AaXM&BZ4JAW9Vi!^)7de z)o57Yr>zdUn5q7<R9Zm@WA+){jlU=RhIZ<5nVefhr+li?cXsZ;U;l~5WJbT_HE<-5 zf|}fng<RcN*lhY8CNsvw-}XQm-5(mC^{UjLE(VXPPr@$BiAIsuMgrTM_l`IABbMu} zGksvS%MjwKd4eKIyG4+)**&s*Z{&(*9u&2E7@6+=3i5KM8t|;qa(}}{%4uOFRLq<A zV@&PVjrSVZ4o&TWD<g~P^;Sbj`=%HAT9|Im-*X2FG1P=t?O0`LFg4V;Og1Mv$mTf( z0UkL3f-$iwe_unx?Itjl&cSVn?a~+S2V_u(v>F&{Rf*&po+@#Hm627K96L6w;&Jfl zA9ct^=$F*Z{6e_`fSsIhQ-l%`KAXNb?;kG@ApE1DVXQF)9WgGS3lKyq>`hrOVZ-jz zvjdll1)SkSVqBTmLr~9CQL`fVQR0O^Fi<=(b`PP4I_N2Jgaq}hc-KRLSJ}i35>ybT zGOU(5yCWLvsI&<-{c9WrU&vL=GQD|q2GuL6yQs7qL&_`&967n4U+agy&7pWe!wfgs z{4=qII0vGZJy`<$C4g$>>{(DDE^}mXliaiKc!ppM1A#I!;%ag=cZMh6?~V=e8sm5$ z)5%&H9jxJk=8u=cm%h|lbic_dHtuPyH11Yf{z@dIRrf_9KIg;i^~T%&L>waBdG)`Z zBx=L&0~_TFcwU=ER2OJn9$USmZE?`@`je9@;1&^k7uXTMO!YJJIceLt6xX>qG4;GQ z_b4-7XBo(^22`VzIHMxEG`H`M(!v6{a8{Tzna}??I`4R@|38X<?!9JKM#<h}6SBEd zW=09wNw_xIgqsm6l)c>|TlNlFMb@>ql5p+4*YExP{Zr{t>T&P=yvKQ+^E@n5F?HK7 z{XN&0Hdpa1Yb!J!^>bA;L4D<Tl!=wwGI!js2IO7+OF{Hg1@9HQ=0Pn`8#k*60n7kg zPML<2VVBp}!stAR(;=iumgkxcSWPn;#qRCRjt)BEAz4<kwDGaDGV)N<GJM~T1wA$c zu=yjxKxuqPjB%pCsl)cQ1(1gN;9FNp2A~bRBXmFqhvFJ1q%{}^Zf;R{TBTO1={>CL zj+Tx2X>UX}oX_-zd$#dUgyLzRiMa(JS=60PmujR<5Ptp+`hOpGd?;$PXL|aW6JC+k z7*$xceX=<+qF!clyZqL`p47=-9}6l0CwVLJ`x^O%d&`$g|K`k{hP>r&+wV6xPLpW2 zZjdK)Ti9swFgztxu6+2xo0=dEI(z)}$=oXf^WvlL-(o}M&$ay!udfm{xmg!NY9_O+ zPTYN%Go>&y*CS^()3pvr(Oc%q(K7#Z3-jL$y1#YoI`NT1rs4Y|(3|hCVg0gt13bl% z({XiRt1W_=u+d}MB_%;WmJM4^&M#1pt_831XICV`yrW{lq;Uc5YwHXO7`i8N{!AQc zK?dP+vj^xg-bC0;B^_#vRsd*Gw!_~1&pq7)>|5fv7f{n18uyoc8J{^2n4N%~1Fqv- z#=Ywo7#HEGyJu81)=M7SDuK6c(kh<_Iv3%j=X*KI?7G!!xj#u{Q`N%UOc3<cNhgMo z)}QTrc;`oWxH>xpHssnvDhwjTYvJzc3z*E~te-HH`p8gP5@L}U=8*`QG0<Xa+fvAp z9P-etb7E67o0KLaC59620n*x(wb@k)refhG%7CBGhzwt*YyY{WeGS7!;$Hbao#9y@ z3mv8#FP)18)2RO6)K>xTBTeN>D3sv|(F-rBy-|i$;W60o3M+m{35A@@1sI|~FFyt) zE3glJ2RA&2+ka>T0X(#Uk%bvJw*U*I(BwI#_&U6*Xh0+G;7WqO1s^GV29@NVT+U9{ zx>&RX>;cJIG{bv$prr*wE_3Gd5I8al;QfSf#un&J?azc&cW~KCkXAPt%)_4s%?+bK zU^_*SN$pV61r21jMTqUZ_a+iTnb~o|F&lZnbU2N`=2z|{-@;s_iy-;`eruGeAEg6{ z?1x;7oS^sR)@SGH4e#Epd;2*yJW`2)xf*r;a>Oyeh+2slB3?$B@gFq_guU1HO?Z5B zp3w5m$*d79WigL3@Uxges2`oq%1LD~i}x=ghc}O}eaq~BLM8X2<P9(na@=MPaJO!7 zqz=~Vw4K)6X}c!zR>S@Dy%`OGIa8r-`@QY!{RmWZ=Ic*VO&nU^`{XqC$^CIeOHUt+ z`s!k^{xrs2PMSVd>Dnc1b)y4wDow45t~q^HH~c5!K)(h{E!dtIi}pcH065pNeCl)u ztwDg7KqkY66c!GMt=m5b1D(e0KcKPvyRw5eDQ18G?jcVOnqb!w@)VKNoeX5yS^`W# z(@|mj?%+1$G=#wZr1HQrBQTyTFGzA*wU_E4<CtJ99UbPt0W<JTX9OP=IXvc|Hqc2> z?R_9qNa(*cO)Z)G$tk<eiLEuRb&;!Y*pc3~tizGFrqeC*V}3v>kM&ot4#z3KMuRYc zUN5Hs^PSXp!vS~<+={e~cPN^Dqlr(fNzJEw-cBUe8+E^~d|~Ua)w$U{-(v0G9mnjX zxsyy$cvFn(`PbRj)PYVDp8(2IH|@|HT~md>6Flto+o%`|qO2nW+-}zD{yD<!ms!dR zGxVrDh;Hl&(cP~LrsC+#;~rmjB0jmrrKC-<O612roT{9GN$UhkHV3Ss05r)AsK9Vw zKQUWDU@Jlm38AXP8Cy6m*5sX)8rs0+Asjr&6olC7^qk~r4Lq#+?iK>eA2N4b0h0;- zv|s@F-Q0T&^XsoP4z;QP=Ms5Gc{)&cpK2HAtg_ny_0=h8erJMXij+aQt=PyLMmsHL z%&6g?Bd66`9z0wdD_Z5)n&M#g=K|y*;!`WHX~#o|^MkOU&rgPyf&@D`D;TN3IeTZg z9BRTxXTHNn?aL&6A=3v`8UI3iU!&TOpFe<%&E4mPn_Vmn{QNyOglCttYexYvV;h$M zC-uyfGbwN^Rt!l0bSK-^1Hx|ouD{~+y*P7mF~4Fa#Jc=G7rF|%I2~=Qy_V_^I~{dt zp~4hQ`;FX}(9D18RDX_ecsiXq=w3WtY~*WJQQpixIrH?vW0N)WeUf;K>G9IwO6fjN zr<pZ}o{qJ*2HNob{=?jUgX(xg-sQDXD%nE~$7&py3^u7$kLG{IR0=Va@GI2X3lK!H z56*h&`R6mA=yE^hH{vTvT^%A6H293vM~%HP@MNfx8qP3Ega6Rz7X0UR-2}{ddVWA5 zXEqbcxj(Kk;5gFDHwWxwI{CeJrEloxG~UjOCvfF`6NkVt65k?MAV)Ty%F!biV%tl` zmH}1a2Vxxoa<c)=aij?Br(X<iPyhn~&iM|yxf}|}B*O4h!%_ZS@pu>#zOQg<jPL+? z?}NoGa!d=bL_WmBE@y)@9UPj~g0S<-wBOtyq>Bl7lOY*3Mx<56GZJEt5T>RbUaGBO z-|e{R*_X;7^%N34WZ*PoTx8#CA0YmKps8NURT;JPxT!@ZwoIe_=qJg)>Gt}6tDpV9 z7*ZL^HJ<6e5}!#~!AJGKp?e|lev8T<70>lV>pCW5*F&kXa%D8mFI~I_<2`TbpiJ(W z=&zIgu+gMu2{ljT@BREB*Vp%V{KftbwsAV)HXZ3p>Nj%5h;*Wx+_a?zf4)}#*_=Ii zWPw%y1c9Gi;rKWq1rI=jOc6m^-2yFpKiqsEY-5CikC5kQm`u;CK!c+yR5f=*k0z(( zBlT+pRqTXLl!PE+T&cN23ZWhrUR879+y#&(O=OU<%SZrZTr=EnZq$iD$u0uT&bxe{ z5Y+^H+-QS)AiEF#rXUFI^WWZIhpJY;IKX7yJw@MT`mBmT(Zn+2VYz5Ak5cKlVz``F zV$$~R!rf}99p^27R(P^Cauv`F5k*Yu9=Pr8mkC+c+rB#ORw7ece7-BbO~b6E_}~lC zA=BX>sicn?+dmGM?!-<#jisqHAzCT{KC3@d{$uZY>S^Gn1pOM@pM2hRB-j0LuB-X% zM1~DD16m)_<*T5^@pFOK3)&Cha|zFu>^5(=wqgnilIBm`l;OflamfP<UidIq_r&#k zdeZhuln=ut<XQXoQF0wG_EMrEVIHQYO8&l(yd)W#c|TGZhEb-<V8l=|i_`-PNnknD z*R{IIMT{KJ1*k6-LR7{_*c3k>tq0*Y)WAf5Tg5?SA>;$G&9io<=>9s$Nt<Y~_cycT zf{zdthC~_e;bQUf#GeuUgGf{EZNhC<W@Zf6SXkfeSR~9ZE^dh6W7~YehAtzt??;M6 zSUi!IySNI4$mj-Z(``YHxlUmy?-DA>RuO)+cd8G_Ij-?17mbo)V&J$^_3vP-G%)C3 z+65qjzz_G~RnhdG+a)L2EXV;+I994ai1Y^ZL)o_Zf3VXR6;KlcG4{ttl18KI5~sYH zF^{pqaI<@86}_n`EN|nvq*LjkXBCNpc3aAPdiIU{UJqOLy5*jAlRja!gC9LY0}Wu@ z>JpDOh-~W(6Entiyywb4KJHR!df(smxW9Pm^_`6MiT<~}OZbLM*0wxO2@9<0@HWxx z1}8BQ0jR;A#I(%e)*}7zU@667T_ex@7o{4?Kq=0;{O=NixI9M#0>q1NouU1WUsl&k zzm^EF<Dp2Ee`OAKz`vP$Mf!Bf-_`I{D+?hbs4BxcdetPhAuNQJv*<7_rX0Ungt-tf zddc@|{y*eFTGp8wUd3Ar-a{wTuA)P@hZ7iO&8GY6p4I}9SqTcbL4XTsAw#Zp!1qCV zP^I<=z_Qqa@K6=I1Z#KCk6-dyF5=dDl!-Nkkcb17aqRS2^XweL+h!y&@N2F2EKKoL zW60Z}YW1y-h!P@-dc?ul6@_2M8q)*Um!Dkz3^PS(#;OPk&)=`>>C8+#dnI6*srBc2 zlI9%q>$J6D5r@Q^FUTB5-rTc$7fr8;^h{h<ouKA2W$Ck0-EiViGMR2ZJamRCv)g%O zoJz=-GHMh&7Ve5qryeAgX;RQnjkyK8t?hA}n%|o(#QNl!zWZ>QcDI(-rAZ<zM;^Ti zEWl%c7os69fOMBkBgJR}^R$a26F%msPbB2#e{IqxaWEVLTQ+8k|1%DTGCM`YRY0@% zw#(!>kqal3(A0*EyZ~~!GA%ZU16>nIfYRzEM~-uWuxR)I0{hX(#OPTj0uyqF9LV-* z4w}8g@Ty-qP=ll?xA0Aje`l7%0toHaVnz5C?t@x*U9fIse$dz+mZe0`#lTUV=c&8N z(5wg4V6%matBW<SiWcEUrrA0k;e`#h!#yT2T${dNAv;h59o9hCJ+&i$2gV4E_dc_L z#9n&_08?HqP|qubz#4L3eyaV|UfX3Kw180Z;K?fk!2>s6yJiaHnnJ&eLP0=8s+u@* zEx3Qry|V0?919_~<?1r+@{AS`FTp^x)coRbb+okQ^0Y_sa_2YLbE-c=eq7Q>7abVp zh#KyZO@TDL%7vPu_X%-N@Q`V7qjrdW(7emy%?XfzHMCx75*cJjmf9u&AiX$&jJrGU z!=@M&!B=iiK{;W&z(ujVal*CEo~NTzX%(k8)(Txk_&d&S#7UVYKbr4&GW3Un5t;I# zMDt0(0-0&w7qY=*SG^klSHZdsl!&K4&!mQ2!(&yD>Ebl~JUz6mx396i=Jipyy%VT> zgI4D8`$7y=Aq&peJ%HHAEK?Q2t`(6G#gw}-c8zDZ7vp7V=G73YEk#5Gug~tOe)`c; zLBjS<<a_qX9U*f)hf(t8fMVU;K(DIhum_ry<_U(g3~XAb6jRr~r+)Rw7gbB>(AReZ zOm34k&AgJC@9WN`6c3-H4KlbUPiAGqQ^B6xB^?u8y8|`tfij#CnOmgTe*8QzCN+M+ zip=tXN{)OUK_z$a(c02!c>q#Kxij4fdAK%<@uF?;GewZzalm~w1w(D^4n;r#DWn*> z^;RE2GXCTn%K`>3-@oo2Rw)$aW3qJN-g<dhw0d&yZWzX`p0=}js^~D<q}y(6;@Kkx z)t6o)@n!6)qQc>1L$16z#<6C8Z@`^*?<YPR(#o*?*A3ilGoc(x`6rn4JG3A67UYTF zIo5r-%XvJW_KrMw3Tv?${qg5C2eD=bR5#tn4j<)eY0Gd~kEe_ewds#ZT`rXIV(#Ah zwY6l^*<WAcHsgv|QgAfHbw$+tsY;(@6|qpR^&?i(eGw9n--CakA;&8UHC4ZNbn1%P z8aiE-yO*4ZkqO6hVS8Lee6uD-HX+Vge~1K|_n$ic<vcNTN|p%YKm`JDR`<9OC^7V> zjY3lNU7bsRn8%AcE)G2ej`@8cH~MgBty7T$d8V(?rgeS?)-a%P{2nTKKHxf|@QoNs zZIcy3if!im4I@zfHD?>C{k;3Skl7jxRXa)qpfErjBPx35QKEE&z?CUkgvti1*QHY& zI><vA09zbEzwk)sez}V{(uER33$(MJjmh`!p_jIesN}hIg3$eN%$|`n|5*4q{=wBP zbS4+F$N8pw_2LOLI&cBLpSmH_RPpT(Vm}YU*eZOx!0h&Gc!(pfj)E>qf$JgMZ|Uea zJIvTS-ax4q=e;$D`CWxKL;5}u6H;@Z;%olr9?7*ftV6|>p^<UCi%d&HMMPP}-tJKF ziw74$%&+fMrU|YoQ6u$g3?=yPb!l==8+_q1D*D=(vSC*8mB7+p{N|6;PO;Oidx3_r zk|If#w&qclvawa?7)KY4?Uj_Oe(kr^IotNP^ux*?6{T9?<}K^vIf7{0?R%fo?i&<( zS3myX`Z!sgIQ-g3Wo>zNy?x@Fm7s=S<}Pb%{Co`jK8xCZJp>+g3B*YoiMd9DMKkB; zs(2J!`C}#HmN($y%R#F8AL6Osk9;L>5f+A?eN24Y_~m)-lV07poo}HwQGTqUcFnQx z;82N!mntN_U$2PFHm-%?vfZGDsBfg`{?*xdeAKjC9q7-nxP@H1aDt=fKwG$Rmd+aj zoEIsQ1t7Lqk>14ESxd-RC;TXY2ac<RfdedXbSZ&r@*T*Sr8Sxyn}I@ev$6v%ZwP3> z#Mlk`vC!ARlxWFgSAgiUf%Hu(_R}8%DZqKSlGvls<>QCCC7hS3P2)mNWH?5SvfYk; z?3!te_k65gJDW3hlRkB=<|hIEO$Xt|vF9d#HpBSyn3{VTbD!UMInO*#rGnZddiIfl z74g8jo7~Z_nC5ke?VQ(jwVg1H&qZ21XSd2Lowj^fYo2@lRlwVulvR^5P;BPs=&4`c zPIky}1bNIKpP9)peX8#Xuyu2jEZ}KaZQAU71L}I*%Gs`A+=4<Vu!b@Vu&T{)hh-j6 zhS2u{%6LGEB+QFq6cB|_-8-Ss6urk=+Nl3f<_PfjyTL%;5#9Wr0HrUQEsU&v4nA}0 zUa|_)>pU>rOGS_mKzOA7-~U5jMS(p5Lw-j!ZaDU4#0~KUP4x=d3XS5VJ>Hzh6N#9r z{msKv2DtcK*R>JcqFJvKTQa=CEX&J*NK>TIT9kF1%16{*IjDJ)ox+fi>h7-{CH=o6 z0R}8@{|=@Ltk9KbnM(|2g_R2T*xFeh@*q&cO*yyefPin#ha`+Fblwqzdt_a12?OOc zWYUKn-G3hvC!H#}#zcW#w1cWlY$xTN(io9Rpgs3AZNfkI3Ef{j$V`&}OG<HJeQg0D z-ljxkEvf?TTRsMotI@pd?#Mmi@cY28oLWGOp*;n{%*D*CBvaE-9BjW?a7O8kHXNJJ z9!y^VGK@eQJkO&`s5eTPKN#hrz!);2YZlLF4aKME(PMwtLBG-Q<;JvRON;NGKO?f` zbYtAGbVRXR43K8e0Xg+YC5Z5oW5j|S&<1$K0h<VHBOBV_;S2(savN=sHY5U-B<3)` z(D}ms&X92Q%LXb=!mDD5U-XhHkFg_B@dtyEPzu+bjMFZAg07AmXP?%aoo;{2%l6)W zKR3Ev8_AXCRKTTI7;*MPyXcKLgSC2Jpg0p<@k~#vDcQEGl@-2a6UW)j7DJ9T`~tJF zp_!Q((%^8aVk%9Ntm}d7d8FJ+0<ZBCNLN{;nEA>UIB~BBsEZ?MpWeTJ&1>`Ps`1dd zWeLq4BICZ3R*BIsJ0BDuue&qdzta9>@6}W9eQmCf#o_Wc!pL<XD%8VSHu3R9Ukoj= zzZAO0jCTP_^|p_}$AXoXUznL5vr*7m2Qf9LxDcU#w0XlC^d$BDjJ_U)0pCNwSDj2e zjHDIhXEy~o?aD!BEO^-2ODF)mN<V?M%8!MC1nb)r^{?;oVo%xC3r(k0*^}NfE`Ac! zPtO1;K~dEjlOiJXZ}sKtWW><5<>vm`WzC0Qlo)D5D*gM2cCMx8%Y*X#&N^>vVy zJTKKtO<K`>KhcoD`_p;WkCxK0z9IFkcSR(RR=O4gPsz;WUy_%30ls62u7~&X;{2^? zp!u&9XFB*Dej(PP?CWz)<UKV;l4V((LWpMg^x(7<7mVvp-5MBS#&7em#wD`sdy2)* zAJU`JR<GUXmRJ6))T@y~B6~yMReh`>e$J{ZwK9En^23Ku0cas>PK~TJK0I6xD`=*4 z>R!5qc4h<fO)Lra?0xpYE`udOG593shJ%>Hr{I1FMQSAlL(i>)J1G#T#bqlwl;Qhd zU#OwyRK<}ja;Bb~zzX3W0Yk}FJZDFbQB01XZ4qOY9+#(3A!AhLsPRzN*he=7M1^lr zU=|XW<DpcZXG;In(|}9q_31<O=5Q`G0q%Y20QfGi&|W-YUv|VnS^K9HokM)wP(Eaq z^StiuED5&y5sZHRb9-+LF;;E+d6S$S_Vy`2Q4qsSY0AMoWLFNjQUXRYTSdzq%Mjoq z3`YqA=ngBAmKeK=F&bcaGqDSk*#a0qJ?kh|Unlzuh<>K>&9%XvToqM0WTku6`79wu z-)-5j<zlx-G4N!uWdRKE))bF*z<KoA7rB{RX?G8@nLgdcmp3=jGDqub>UM;f<(z!0 zanzfqhdu3Kw%7MA>s+IyRWLew;t2l71t?(gWya_+h~U7a{Fnx6%AmoF=aFH5UGs-z zvTk99g^<cwdHC2{VJ;Pr*%LY#W?BXuu05sD21s=H8Uue9gr19r;dI0%LJF)pMWKdO zP&<>Q0?Gm0S&@csK!*f`{>lx<HGp6l5>z1j;$J`h;2tp^7mgD?zR!H+^NO0NIY6E~ zCd5jbd1p1;!Qq{nYb=#}FR7QQ@o~hf(_`jV<xB~I-T`(gpM`RMia(+f!FSFnrP!|q zir5qQpkhc!@M-n}a{}M3qoLPb6@1U^6K#!*JEULSBYu)si;;hel>PDkjA=%YM^!-P zSgN1EfFPDm0fc_cLu`Z}oZxgSw+OkL6ogY)k&RlVwOEO>pxW8KLHxTLI;Z4<kxkoR z2&h{K#Gkcxko*E0<LrOaLj%>Nk5H2$6S`j(a*`!(<yXbWS$7bk<avNL#0%jzMy9+t zk>OK*jOe*q@CPl?hhGJmw1CW5tVAduPYv5A0Q%~$_$*)nQ96SJrDgJ&JniT3D318M z)N2E0O0sie|CQ<K+odtCCs8~RUTR=Sj8n11x$A2@#RsK=t#kmKrnnN==My!qld|<d zm&Z8Ro@#q6m}$qQ<<W%8KjQ3U_?j?BJ}q0TiCS&0zmNTmNv%@#_p~P8tFNlQRucG` zTcjivm-Gq?_k#Qnzh)NaZBoI>rzRi3@2TH4SpJwX@-|e>OfZ-0pB?L+k-E<X#`iLR zv@D4+#FiX9!22Css>DRvuXs&|W&H+M_(lbTo@Bd0hmAa$%pJJH8(#iTW3KNF3BoE5 z_K9cEj&j}GyHIeX@((UhPej=Ey9;bI&hNH&Yw>Y&9nbdTA(^iw)GGj0mC|`)wAJ(y zIszOG$;Cp3!<9fGw9Ui~HFnjnItc8m?9Q2AN=1Jm4?E!C61;|64h6*}9&@@XAz*(} z1-#)_t)Fs2U`DZ1`pSG3n?&^A?1jo1y&7uoATN#7bY<}~9B)h9%A~>cNOx777N?V7 z*P5Ub@}1$d<Ez|4?{9FRs{-3MVWDQvl{_efhm0Hd8f#qw$GLKTgVvBD!<Ng#HR08* zp!1_DnBNbBkIYP%Wo5`Io0;IEbVGd5$~d@fnCdAXOJR&_ruUT{Swil{UWb7}bxlTH zpK2Fr@oL#O34dQ;L*RHyQ%GGa=4PkW+&R+uhSGhercc77dTw&g)Hq#v#I{7>D^6h{ zmg`-MX<4#~7mtPMaVRc9iOhgb;7heN@$#5ZmG#Ku4}Z>tCItwytc5n7CDy$-h6gsJ z(4EPR-VzaP4X<!_n2P3!e4vE1&3dj4^UE~gh<9$ZEQyRdu*PGcwfO#-THJYyO;~$d zFj-Pt`u6LRJONnAV`Hb$b%|fH%r9GCUah|$%O4871{%8IxJ4qg7x`x|kosT&6GlIs zFOc6LJ`P;=8&YX7Wbf`nRm=?EVJL}7JctQy!GbArK81-N<N!>yd#02u#c0W}Fga$U zb(s}?DNYU`UIq%_DfprFh7hGkBJm%$bI!>Y0ZaY)WC5|ibo%#unO<fZZ~?ZEP!xHs zaU&N#*?TnUV0k3?ocT3f|Mm`x-~He|Z>eYDquW%{w0VN(aC1T_d)s<FH!2}3%A|iQ ze$>3pk;Hs&$9j$_d`<?<c6PYl+*a>+{e5@A>w)z5&szSG)vP#ewGxRQQYAH(yZbL6 z?K*c9_t2!<2hK!@SdBp9uk{umZ|seaC4IoS^$p+}7&6uV9tCU;6XH>XxM|%SIiA2n zHP23OWSiC1N~YO6Gq?qqI#fG5G;%CfRP=NR1Wk|SYB`x~)j9Qzy@-6_zZ=$MP0n!) zY)q^+gcxDqRA{VkO*{ooV><p+VKAri<siUl%31r%pbcyeM!;gDuo?<8ZV7|5{O&@t zUmITY0)v`$_5hGyUfseZ<VRBgE%qqO6m7l-8OQCD5a8gzXwUS%JOWr~HG7|Cf)j8d zH4_|lNyBypLzPD8=!_k2_^Aprmi+zM1NJ!i>?|fspW*{Z92_^A2$MvS8``V&K*OK{ zm{gXFeW;|eU00hcjsO+&iNCiQUn7!onGI@?x{iTi3RTj`W9B$HU>^0fn2m{$r4)lE zPB2UZC%Ps7f*%|RaZ=;Xn-CKfW*jRWOs+tKWXYGfAD}dAT><hUqIXFyOMhrH;$e$= zNN%O;+RQaA%LABZVuE!g0%W;q5)9fYUg-k=BDe+q1oGs)0Bv%t3pkR7D?t}_9%z8H z^z#BgaUg}Ys4+<d;A687or3$1`CA0;3jk$!*#uFc4cwq9kWz)3!uH|fOMM8G_Un%W zed~@pY=W@?RORkZ<3NK(X(>Cu1mS>i;Jw~MR5;nQmb)Ha%APL7S>x3q!LC~}!qXYi zvYTtc{sJ!y&DIMN*RQE-efM5wBzX6T#dEv%J=rg2oU5%ytzmln&_)z}-!-d!qls|i zvQuOj{d2Fu6)h8z1QnOh%ObZvO|=KCQdqcrAHQp`t>XUFVQw>nW}8Tn=`vR!unnPj zn=Na32Yq$kCJ;=evs9C&BeuR8fw)(}k+((eQT+T9U3k!|OzMsnZAJ{tJr04|t5AnL z3Kfwt0{vih^#m+aFbH5q(&iCkPdK5d@&7g~ZD4`}3SOY=0R>hKd~G9mxdWn)K&u0- zt{y`1x+b*sk|MHnW}l6ze0?J~oEx4QRuKL0A!T0Gf9L*=c8@<KL|U;#<<aA!rR%m4 z+V~Zw8)VO)(jLBDFD(&NtC2K(*h`_R2Gu>vru3Ddq&OJ8e`9?}+WNx$q}o{J`*1F< za_Tw_welCP`q{p8zVT<?f3Wrr^v8d7?IK%udbxvFsmYA|WVj})3)iAGY!>rAJxchJ z8s@Oa9oum3lp?F<M%ZeyO;4Ph)|vadzW80n?*xmulIKEUb(vq)<!=YG4O$UwK7-_m z3oTy^IS~1AElA|M2~<Af-B82TpY+<8n<<LCB7J8l^sO-1x#!rVqT&v~fXd^uV5;d$ z>Cl;CP}7}TU;$!AE~F_?BWY(ptO&}dmE&cRVN&MYMrY0$5c~F7Thl$!FeD*UemD#l zm4uI7<A29j6nHF=MS!6N{<^oaF2IVh|MkNz6L{_UU*I?a>&#>r_;^b@&k*9##D1`b zg(&m7(!qK&kN|l-bO?#lH3%acNlUW7NC4jYDZ)b&;n75h@eNeqL{5KVI)hh*{(AM9 z&^Z=LI?&a`!@V7}UB(BbB0D}6)xn1W-!=gs893Qp=t(?o$KE2qaNSuBmq}cRgNp~J z%oN=qgjcO(CuuH6xjV&W!ni&{8H49l4krbQ$ewXitfyQR$t#d?nq@fcJM-q-4VFS* z{tUWGx__zvfXwW8wVJ%>o(U?@%Ia3?FX<xH`|%TeL)-=_A@kR4Z58r+16}_-)(_)` z$;!KHN!zV*=57xLCMqaB{-ddR@XAQIN}t-Pc`55fYVMP;lsg))a%#qQ2G@$xqqq|P zeD6-PSB-ivU@W+G?_rRwZ)uHO%K8UDR*QqGP9pN)sOn)KK!LJPC&C=~%cJMEVSa+( z#&`__OebJA(j?A@Eb`|#g;)74bin-F9-_?|NHF7PkVh^dW*7nU;{vhT=zmsl4_sQV zDjYS8M~_)XpjB)Sc|lsk$1!-hKHWDxa$u3x`)o$NuI`y=>-5GW_OR41k0@nd))A)( zlg`-0m(0Co@p0QSx@8j+cR)|czp*=%r*9M+5Hj6#7XEW1`9H((^u8SJc4~7Fn8{_x zavZ2f;cF~EQIprX-+n@(IFgz=Y47v5Oh~JxM$Np#zrNq6GuV%QwpdK*XrRpb%-Vea z{_zLB_SEmbam0r()L5$;gykEAqDTQQ(hWBC1Dvc85WRQv^U_5`RZ5%>T3h`TzV8J` zM>kD~JVN*XfcB$HD5wcgdJ2Q$`3S7NGpMZDIb#2hOJ@z1MPP{tg*XXtbdg|64IY14 z303&MvjDOvi0K-}*J%ibvTp5$rOuXz6QanYl9}l+q7-1^_zU>~CkR)l*@*XH#kbpn zx0hpCK1`<6QYo0GCz(~9BU^w@oQ_F1RDU+S|Ga(1guiPunlZH44N{g<FS&c;bG62v z#Ib$YtQOuuF-b+QXW6;KA`>3T%~GXh2jZsb{95yV6bZ3;h)%1bdc}$aaZ8w;wJZht zW%Dh)?Lxb3NK(@<h8(M=)Q>z}QiS@7h5CM4Lr7JP9UvX-YX~44cVeo<38M5NApItN zIz#LOOl96@XzJb1YTye=*a7#b8Rb=LcE}8zZO?38FdK%S)Pp$2(SLPy{B%gd@cXxO zEh!@3z;S+X^pbJMgPf63Lfjo%O&TQa0(4q8jFdWOz1fLGbKCnvPQq$saf9HZ*H!o5 zN=k%v-hS@!5vZPZ7Sp|N8kYTRS&_CwX*I)%r#vD?LFl<hf#vpR588^879jdo<^l?2 zi|>WTjo-%`NjjA*;8G;1$cAJH0mDuPa^P2oFq0|qm3`_vbSBM{u9X)NQSs~Bo(IYj zi%tpeSEw9h9~hUL)z;a`SO^bjCMGRUmd=PeAcB982@+L|iCL88Yr0g1NVnrhkG`K- zuNPyIJ8rIFl~AN%xnIsjKV&a&VG~Jge3!Z6>0QdKvgpNjUZ2h4%7xsdLdrmP+aZzD zLvDNI9=^Ub$<R)2x86Q7zvP=$=1y&ua7%6m-9rB@tonogQBT)<%<s8fmiz8S*1vmh zZ4I+rAzd5vvQAE`PQV?^63m<BPc=<6T{}}`uls#3cr=oFy${SV4I?cf`gWeFc0NLk zw<-)(^e6;o%mwa8%xD5onbULwcrU@C#7vCw_bY^BmdzQFr42^`I;5cgfZq*jvV=`- zxq?lq6cc20^`vsG%Uqg?t`tDq2(cvDAdPqmS~UnZGM+a=CAHpS6pl>ARQ-ovC0spW zt&KHz4L>~dkCEwHR_-NEighn>GbbZ_o>gnoz{GuDv0IRw&}K$Nno=5VIykJfog*0` zIZaulv8~gpqjLPu(BjWOgBTX!&BpD>bKZ{66HhJflt)GDA?9{M@JENo)Lcx~%JtjL zR+Nvb>u4Dqy?Q17=$go$9o{&4^X!~+r_<+F`uXY-_tf)&Kg!p)D2QC9;w>J&-Efea zaQ54b>v?C>bGp4r7ED4=#J?9o$2D=8Yc+iM!@Z6B{5h;4S?dM|Bx41FE!KCSk_Qun zI54Fq;8G<(Iba(h)J@#?JRW@9qI7p9BwiG}o@>a}VJ$}oRoPgy0T+XLk}IZD6udA_ zFh7JZF_f`Nft_*c#1}r3B*fL-nQ6FQseyM>Q5G4_1>8Yv3o8^&k^BEypTr={Mj10D zltB*&cp0K$$L{a4H!LAPYd>gXw)eJWR3)g7ABrYK)%H|!Qem1_KRhH=W(e`(m!N=Q zN3p7?J;8>9+dL##BHH5n3N)JB0L~9!6Nz)oVBil!8cuL1%+RGnC0lL`_!vsZJNoi! z&xDajt75RJ8_PCL$&8rUO_5I121VpD7$g*T@2q{6!Cb`?VOk%DIU2jnrU7pO-F_b3 zap~qwCNk{q)zxL`)j>?qdD5>SNM;1#X9s~xMdmf6%LN0p-{uYnQ~ek?)(iV!{gn!+ z;SdX$Bt$u6gBq*f2ZShQQy6z}^K^}#n708@!cVWCVy0^+6?_CG6f4A&a$P@58S>h< zf<r7n2f0#Lnb-KfV<J`T^3Tkwv!Wki%pyz@-#;PZHzZJgy%HkCM=-Ez_H}BC$Q1E6 z(R$g`|J=&n`B(S1=;0vUjGe<V&i!Y`lIg4KHu6&fz5~>gMwzRyrc<f2ITF9&y$$)< zI}eXZ$)$YbsnFGzrp!Tp@&|GjHc@ck<2(zMIr89BCr+0^{`j6zN&d(;L$qmG`gvN@ zJ&aAPIdxL?qHpN_`*mj_){hzoabU-53qgQ~11A1e<~=c1YKIPv(O1Do9VU-KPC5~! z$ndp03vVK;E)!UoG0Wj_fS_}Q`Yu4sXgQn!HM?gQ3o&_@TN0sdhV&4qhxQ=Oe?a|) z5H}us8+{2ZF_zfaKUw15=ufmh?jdBEFXnCX#h0&Llp2Z9)2=$2MfjqGef=B))Y~+E z5(%q(6&hGcPBByrDv*#}nv?k@d%bz*dOOd{$H{b5t4mX#JG8yX7h^;ysC0#^%%1-n zH&^H|`BTI2)?qY94n8*)A<)|HVUKT=nq~I5FE1CtohYyprf%96XWHendolg{BT#QR z1=gynL>hDW9ADixxT(LS(Cm#sT}tiUY>i8f?$FpLoF3!*XSXf-gg%Q4reFDNe`<Fo z)tEc$I_i!uy=J6bRL<Qb&SaAtO~@gWo`|(6su9FaGDGPLHp+(|Dnp6?W-q|}G}(E` zB0&2vkSm->uqGf4p6a$D4bnzG!xpnX1epNHr;Ej|EdrOI4zFU^WSRYJHw@waOjxU- zxs?gSXZZ?suJgwEYM{LiCh<`@c{reSxcvf}n>;>R#nkkNE|mx_63_y~S!4Hvyznwv zksKbjtA+Tuzqg@TQK%%ZAfLAVVZoPwa1Sne%p}<iu-+-WdRVXNs0KW~`6fzaiJzc` zf+8oi!!(VoBl<5OZ)}Bn5@fR_M}c`QfQJgGyh{AaA3Nx6;Ec2S3tZMbqG5dp3762t zWya?2p_`3L)`t#oO}u_FEnMmm81&_>QcL2uzylRRv*oUc>rTX<j9QRdEW*c9d*;@M zO$ryfc`_dSC#X<crJjaSpSNuiuR5F2Unri%3p`cY`~3bXcUr47+Tt&=8va%g7rok0 zD$~%ht8VhcGKEE>t$m6stMQAWNOY6|ueImPLyF0l2~mH$?Rm$G6F(Sp#Q^O=hU?sN z?A$N%sf|ibmGVFm3AwIK$S!4*CugsePa|*Onp5R7t&ckfO~KdK$~!o3w^|zJ>ExQ< zw>LA~*0s%4x%Cr<3qzrodPxaTMl@lMpecq>R~g9Z{v9|bLudd%TS7GGIS^H!qd-74 z(g#FaCN<vzY4a4US2uIUG7f%#a`!73P83FOQLi(0)AmWR>`z#g?Nh2^P16*40Zo@u zb#8DH7~YHj>ELJo<OMhYE^HD;IUSX~qAWc3qR9HT{fcFphUN2P7*DW%29NN%?}A&7 zx7U_uJh_2jK<r=4r)!$7nDYm7&bzk@StDoWnl1-t=6uipBm_^YTWS7ArXNr*v`l{b zC;n&mpM$Tjc3YD;QygLFS8mxOm3*7e0;-#<C+4L|qmNx50phqJ@bQS^BmmDl8}5;h zPiXGw>f(m0Z?QB6&$E-A96FE*+E*pR+6-Lr!jNgeljZN!O^6EVIz0o_;*vp_OacvN zcmNN}3$Mz220Xg!_&9u8%niI2BJ`M;@QEGJ;}~tsgQ+H7y(@@d$|RJ<AO1bV@X1mD z-5<U$Efa^2i=g?u2Ot>r#!}2k*#Mt$_67C>5RqMsgr=JIM0Z1e;NeEppo|@u@fTW5 zlYXa(fDRz0hu$E=Zfdh8&3cjf;i034m(|cJGi_r}zh(bdM5_Rlc9X>AJu8?;4?t;0 zs?<|;TQ-W~A%UzndL6k|#+*K7=kQ;7t9T2XoaLgN&{wvGF2q_2ZR121X|p&F(cdT< zq%|3EVq-%lt#`i}d%KTB*EC5iN@_O&GgfIqYF>}jM_^=mYWX6DGl+r!_d6VpljMM^ zD0_(!`{A5WMw$pxtiJFrN)AjI4yZ^QEQOl@#fO&}<1Px0F8COroa~Ru=;+F$bA^*M zrSZr{WVty@Zc=w#Dz))$SN`fO4lUj4A}AWpzey=)VaO3&_(WnyvrJzj82=XON<o|9 z%XK~VN^|=jgVNzgveyz2`fu}uOae6XlFG_g+%kzjPJB^ouvax!BvO%gVoknuv!$>k zJGGkZTV*UzvPko33|+ewbWuLHyXGE*ij{OTh;izmZ!qG2x;FWhbcsz;=dup767nf> zW9ivQ_mG(6^yhVA&u@IAj+E!F?!m<v`&#FPt~pl|s`H1>EChd&zG7~PJ)i%hgx}2j z)8QbHYc^}DL0be~cA2oOBOMg*O%E~g7B9R23|agbk%UYAjh!42eG&^0pw84`GPh!u zxd0h=()*%a&p;9!$D^*G{Yr$m0>JJSlVJT=J4BERm8hio%fTin<4{;C<qqq_1P=l$ z#q19G)d0)cYV81Muv+VXo9U*UFiZE`WJ$bS#m&jqj(orMXnKmO#m+&Fbjokiz&OT! ztxUGazGwb!RP(nNN28hKY1}n=MPJ%#I#%>c#!})h3f}%*!ED|oF?gnM;FzB){;W{a zHPY!qA8*TAo_)B*X@z=MJ=)Xuw?A{=h1}gL4E%AjghKx}cd@<8D9+o&WT=`Q=7!OG zV<U@BqkE}m?!A1xHytply~Xvf6-Hh~OwkIshDtAwk&%jSI<ELiG6seoeX|qD^RK`Q zu$oM0{4g6|mWjwkpc0d3&&r^Z3t*c5Z*)uoyhGXl@Ik}vHgeGyqDSyGyP{Rh!MZQ! z^Y)=pRE0#9f)03=hY4}I$5G!hN5C)YffDN4Ys*v7i>s`oCBXti{v0LGc=|FvN^(=N zn<kSKqg4~~??8?djynZ_W^3~@4vDQ%0$5eS^;rtc$Au7XxN|f<jvUr71;!W`cfYG; zZ38c}d6KxJDu3b~e~=X1Qv!`z&As}1zm<UvSQm==MAVHXhRJ+!zOV1@FmRIq5|`Co zPR}d>Coyd{<aFhK{=xnKM!o(;yGsW}M_cB=AL7l7Y`IK>d#w7xWI$lBRuzsrXa-<7 zTSAlqzz;G`eAs`FbI|5vM%Hpe*y=1iOwZE%DiJ_JKgUD=$bA7dd|<@%i7G!vn{N_g zJ$V43;wl^;WlRv%cc2sLPxPq#5sTYIA=@`Rhrm~(6F2z2m6Fi6$>OUEO2I!(;kACE zOc1ODR=<0y-&=`UhPWRNAY^aTNkixJGr3F+*ZUi*ebgM^5>KqS{}7STU}PW~ApGfb z+IeeGv(24fZU88e<d+H1zbK*pB;RmM>+!^?o>UiM%+GHNw)8AdC>60lqqd6nJSrqo z2#a#|CrI|BQ0)O@#M%{K(^ZK8?8<$Ym6@u7Cvz(RAJM2JHZ~a#qxVJv>Vqs^IwAJZ zIt20?g{ri{QGG{9IEoB=YCjB8R^YQQ+bYFQ1>gT1mj|J)o-5x&N2Au(X&^s-aEP0B z%XkmN9RLzNWin_u&w`KxoOn3=@U(ECxLZrq77ZhC`h=Je`yL$vY=dTXtghU@@s5aK zZ64>&+--w|lErv@1E*q5Dj(d`FUIFj=&kUDd+$X(sxumQRw)V-_k9%T<%#*xu{cTL zl1#A`sJgA9Q}vW>3QDTBNxs7q5!3!E)>^ckSv32y0`GS`#UnC=-k+qlJDkYIO@VGT zlW9D)4Y`zZer4Tm<8Z-<f8OI<{W&9fc-1vbnSob_`ljH$7Qvl^%uG3P+)NxyoK%K$ zaQ<}&4>2}`iWtlAGFFTkxraWpgQg^K<}_YfV%dbNzC!5D68^s>isow%;TUgrt_BL^ zayyXKs?APLl@a3FY9P_rPg;vQlGP^0kob+~LB^^v$LU$DNRtp}CKmDQzJ?S?TX4?B z`|SrImw};QL1YxrxMwfTzld=n(>8}TPL&$TKdF&pwNqX$DAmP*>qlvcz+d06_hElj zF2M#g@a*Zmz6woINM1~KFL3F?<gdWwZ7R%S3S9<<Fs|elk<JKzy<YkFr00Z{n`gVf zm#Vr<B0>|dteaj!py9Le`|4o*sp6H1r`-kY#4^RPpEM5&T%r`E`ud`tO?XS?wnxht z#DV+%Kw8(ShKw~Q`LEu+&wZHZ*#&XmcZrhq+3yVN>Klzn+Dr5Zj^>$%<gRFyUjE^~ zk+6D$;EQxuv7ghUg(*5t{daBOzL-DiNBOPa{gq=v^K-)Bs0!Rk$lqp)icy)Uvft)% z^TEcaXL$5`A^|rkgxyK@8N5}G#^h$^U9`h$c>Ixx#J|<^>nrQyvmVoA|8|St$<0}) z^+!+V$&Ay6cd`85^l%3CIv?d`GTCChX}eBVU@!ef601xk;+j^Q$xkL6GM=%C*$^pJ zs{d7|t!`So_P`nw0Qqfz6hj3Z)i@6>Bn%-iKgt%kM%KZb9|23$h^icB1Xhg&{bNoF zh6ItQ#N;3qbf)hLWF|r@!cB(l1iOb6#5A~RY$sj)SRracMRLF-SiG=@>&^7iK6fs8 zDE3!6Q4M}3$mEvPiw*v4SE?)c%Q4ZJW7MN5S3KhIk$yVr?6yna{kV;vj$5+^WW-ME zcNwkTG)h#OPacpt6j(eL7pMWriViyQdrt6TSc%RxjaLyI%3INdfwC`an9{LNE2YOj zWE(Mw`DKFb=$G7}n5?_34TX;W_Qvr8kt@eFd+Zo*Ude`Cyh7Ta6PG6@Mf#r&x*J6M zMsBmC;#CA=?mN$Zvw5bYvP(2KZGUrvG|98KJ*0{6IrCK1DMp`;0Ha^0$w+~*%_YTh zGyL})k48cs_Ez<Tm~nup^4ELBi4@iWj02^$uN~yb0X6em$Raro03Hp;$JLewZDgIK z{66EXtrYrLpGu1SY3TvlSPtmAx5J>Sr2QrP7r>)rJ`*@8jECV6gCiRo#|z-%bbhQz zO|P1<Z=o7o(bup|<9r~DJy+A6@aiw<swTj`H%v53)K^41lM-T2e9&InfiGV@=9U8D zo7N9^Gzd<Gc(nu`Gx`JgKJfikZ!Lb56ahl4%1lr-moN~y#xe^gwfx8t9>7S;pPc_s zIpq47=J#Q6Gl3BcS`^;!zmBvW;lcw+235U#DAIN*^qBIIKsR2L#6Tbx-<$(74*EL9 z(Ou9s^w*RMJ!VUzjPO{=BgE;`V)#4P@55wdAE9f)oEKoHWy4Q^I|PJ7r^E8#xM2~b z1usBX6Tm!vB5)TuP!rg49K#eKr~E1B@mcNcB31DRa0P?lV({6GO*dI<0pwdDZP{2v zlgmd}u8*@cpI3XP$?j7L*nfT#NVjM_oBt_9Fj&>v*HN}{dM3#43E4_wdR7%z0*1(w z&*RL!zf0oCQE7#AIA-FB!em@Pc7LZjgBz<#nC#r%LO}P$0rATjCwAJrRkPm;7VH)* zLd^>4n$D%sAI{dSh!aaXK;O&?`M<R>k6m)U-TC&AVE63EBe_7?^i3BPo!*rYvpfBD z9k-@x-)u|LD0BRI!`40dh(uaGR^r7#Jxfm){!$hp!HYZBi77PU+e50{uTs3H8Dm_J z8@Do$l=3<hX;i<8hXtPu0wB%5n=!r0{biX0@Z7t2$mxaGgRlk>F0_F<DYkGJ2tdX) zn{NrRSHG`(8IwZ{c-7zFp-g>z02lPpZM)1EP)6lJp^=(2%0DTBOj`oB4=o-MRFzK< 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 Vp$QH=6W>}t>wZR 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�S!L&L$V-5vZ8jpoyt!<Ayh~pVA&$R1zx#lw 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 |R4{hOf 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%0Ae61_cJ;94;HCCA^#b{!Sgs;5EV& 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%0DcFhF?B)eP<ZfSlN{7AFT<T^p7{$W;vkjJq6i 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%0D^_Hp}pM}~A^CaPnThrJ*XHk<3uLQ0`OV&@sC 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 literal 0 HcmV?d00001 From 1dbfab9923ac0b269c1587d88740e1ec15b7a100 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 29 Jul 2016 21:12:50 +0200 Subject: [PATCH 039/266] wiki images --- wiki/images/game-countdown.png | Bin 0 -> 1386573 bytes wiki/images/main-lobby.png | Bin 0 -> 1969531 bytes wiki/images/playing-snake.png | Bin 0 -> 1226801 bytes wiki/images/waiting-lobby.png | Bin 0 -> 1471826 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wiki/images/game-countdown.png create mode 100644 wiki/images/main-lobby.png create mode 100644 wiki/images/playing-snake.png create mode 100644 wiki/images/waiting-lobby.png diff --git a/wiki/images/game-countdown.png b/wiki/images/game-countdown.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd6efc250acf0d133f435051ee3813828c4db6b GIT binary patch literal 1386573 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¹Y?RS5r^jD|F#_kxb0%4=TW}EyJE)cU`-MNV=`>dRyNO{qQC0 z>~-txEyrAC+t>s1c!6`F#<fuETqw6pK5#BnITi}t%eC(1I?r;obNONG_!s`C23l}* z?8VyG>e|=py=%1{yAcBD&`!1YX_5EoW8c<Y8a;>CZ$xIxqjOLN4L2bFbb){RVRW{# zbD_R-zP^3>-q>19r9UUeoLF|GO_V~<a@ho_ePRMY>y5)@?%9BFf1V3@=R@9wkZaaT z01b^li;O>uLIORnxP?~TvJ|10S<jFF(Cd+j^~l0*pOQQtyJFC>R4WuswFa~3S*p=L z)X<r>$5TRrK_^@Ay_Ol!ZIL09Vd!*o->H`2PxZr}LAt?D>l2?gBtDb+91`ex_+0DA znYNLyAY<~hA$ig?@`YJE{1Va)e$v?YSyTTPy8i1>bN>zJj0ti~H$d)Li+k4kQgc?v zv;neC)=~Z6{?NYSSpE6v`F#h_KNUK^rx^MlKBDI%Vd$m7#MUkqUtgnMV(6W3sjiJp zDzUjm;U6i5p?m*ecpCsZmp*4T@-Ji5zB$ov3P3}L0BB{wkq@A?^!ex>&}_;E`c($~ z5<s^RK#vFjZ5gexjMbP&D{K=rhLJB#qqker*No{)hSXQav{2jl4b%ALw(-lYV_%sk zZ<xj|LRhg(-Lp*I7R#x7*r#m*x@DfcXP&sHAO31G+sK;teaMxGS6luTw2t}eg}ubW z^KKI7wQrMJ04*MVJ7gQa<rul+A1@X~3$sFKg@{KYxk?#KG%%bkFE2y*wJ(4+8k+=t zekTALVYC9!-QB&xP%IdX`2C37qF9-mL#RD7H8n9cH7+N?Jw_OZ0R{p!1c<7DJFCI4 zVIybWaj?UBgVJ%Yu(+g{Q|IW+fTl7=l?4PNOBxFh7b*Zv8wci=@@cUfM?TD{VHp$r zqkwk?g96aZfMx{}G0>9Lau9K<lsfH-HpA{9XYdaLK-0`l4E73zfpSS{iS&P{V@!`R zBRwUVOhjxdh<{zJa$2Or9kFu8HKn3LI_uSQlA{2-t*xvxj)$3&m9l^mzXg0P?93WL zjg1X;HFYf8Qe9iay9?M2&(ESj%$edKq{YzEqHkd$c6~#AMP+$*&g{)hX+BA`X>5(> zBxNRUrqLuT9VwG>JP$4vj<m4@*0I7Gn0UEIk27_RI1I=pPu*d@KZo?ZbUAiq-ZbF? zhyA>I6$DrCUD=G(WgE^g?M<+q{u{jeLVpr^eGp93ESm-+EM3KnZ!Li4sl&PY2>|*d zi9XgO`a{If6F;)O*8uv@ADli&;+!K<5YJ*or^BCabQTCFLZJ|TTBFgZ=t`P(q__Ar z=5+gtOi8~={_>0L$g)!Yp5y2G`t|F)r%0A6W1Mo9${=Xd_9^s$W=|@%mzL2d8r_h# z<OXMwk*G3!680UkA3<Z^N&wAJ3ddYrRLpg}DXZ0rw?Ljw0NpMd-ZHva0$=tl?8;T) zHQq**2459Srsn%19cDTwnJ+Oh=`ay6kMqI(2gJeZji^Fx?A<cFPge2G7FH=P%QkEw z>D#xuFB@NuG*DIdRaGl^kDMT08)2eNXWQUb^T3vFXrpat(>N$rT9fPM<TLBgGt1C= z>%fM-Z>#PQ0KIS4^S(t0ZCypazQ%w6&<){~E;_F3m}>4=u5b-M3?`dNp9AU2Sh|(z z&m9wn#H6)n#vY$(67>1|f9(J62LkA^Km9i6NVMJyIVrCBCJgyampCoybCEw)#u;O{ zW*AE0p_p7|ZsUwe7O1S2wr_PZ^`3!Tb~KbJ$jN&!#QpSyVQ#V-T<Dr~%$-;N%UBdw z0$v&cTQC^JRf<uSAkl#UV<a?HrI~SHNH%(OSh9^XI3LNmn7CkK9T6%Xk3r#VOC&lW z<)GL<&<AyQCn#cQUU+w;!N`>>S2*dDcapB(xGt~yYphEB#TQ?E`Q?}A&Yhz<J1wvk zfEK?nO-+s2kQ?7z|3pda_zC0KXO5XKEz<%$Tc*wqt{W0-HHp=l-X{V*OX;1{SA27K zR=!R`3P2xJab4A2AKb6yY#$gHF!x=Dj3YM$eV#9O&eye#KQ@m)atiuf;aaRCfOaiZ zxtHs-0NVG|&>@Qu#`ogwYxR(4wYXz9f{niIYvJ8`@6#gJlZ)+J=i@u~LNg`4>4NY~ zS$w`aK3{`nVo9Vthi6LyGmoSNM|J0XUHjC%vDFwYFJzfPl3#~ES>sDqL(*_VWIcDJ zO>s%3381A%bDJqu<(l@`CtFFM9Wy4+ywAJfo89ad+Uo9IFjE6dw!vlR;Id<4Jvy-- z!%{Kmsm=KGW+z1YytvyR7rxKtc*>j@wL`waYN#E{p*kuuV(d&i6nAFsvq*m)u@FE* zhUDpn-cMSFKh+I<R-gE^KJi&y*QfM))(@S6jLEacVX5R<L-Ley__T5OOzZF$kTH1% z(hYvn(EDja&*{eAFKp9Akaen1XgVYNbfwTt6=j~dOZiqDlxI=*D+SPR4m!Vg4EiI0 zKC0X^Axbgj;Btxzt&CEUwW%Dboz=hh{=wi`(m}+~`-(_cD{S<=D({jGPX+DEowf9N zpFc_Zoc<q+`vU0B?J?*O`keFEBLe6g7ml9^ptW@f6@b=t7q})P?x~1-I_jB;dS|1o z2-iLzwNDuAlLp^n)V~yM9ldUyEETgtrpoNoW#)<7mdSgr`C18=ubL-sNLT1ut?V-; zmdU%;sRw-MoD<TIoS(|J$;rv7gWF_YQ~#pfh@Ma3=7r~p#pm5?-zL|-9a78GhHLFR zvF;x)2~Ac&{)wW%WC>y<ggq)?Vnz&e1Q6}!0BEDJiF%g+Iuwcp0#ON|dxD{8Fc|gw zgFYX^H{r-30rdFf<T!1znYqJ4f(Q*W47$389u6{6Y7zwuB_@0PxDZ2{$|{keP*N(K zG!S31k~=dXD&%Z6<+s43T5?Iw<5Pnf4#qgUjXn$_`mC&KY-+5lud9*Hxd?YLQW8{A z=3O9c#cl{IJsuB2QjDND)y^*Gle%0kv)Qc8q|+LL=WJA_;aq+g0Gd-!GY*muAM#EK zlZ%=2j!zIP%oXC00Q-nMAo(ftqv5Q>!Xg$D6w?NARuRXm8Mv%4gAaw3{WwIVg)t{B zO6r}d(}E!e$MYP_(Cb5Hkcn5vpr*2_x<RI96W#Lp`C81~=Gc;{@iH~0oVXm%%$yet zt7#}n=M8KmgQk-;0W_|bCS4Orv_Ig-I}+7n9zWv9mcsy!B{J0o3&dPebp{?idQ6%? zNPYF{RSsxbFsi&lWObEh8}q4oVY9?yraq^f#9CS+y`D>onc6HtMg{Z2_#NaYr7BbL zQ^P~rKw|)=1<*LRcrO@qVer(|)y1LL5drioB>E$O{+JN`)-d$py|(J3)%yDdp#S`# z>w_fD`2bpUD-HE5J4SjH3<M&P2tCRafJV=SJyoS&L`u5mj9-MvODHd;W!d%X*Of!G z?7ZsOe<^z_7E-3a1dV0uWL(6W0ffA~L$3-xGqIG<`B*^d!h*-*zA2~UC|I0LkEl>J z`tY21U16sXiNs>DP$-06lHDQ>9{Z!q<1Jp+UqCm`Dr%}|hq$Yqy-}*_A`%?ml?0i_ z3(8l77984YjZ9=N%sOSW>!hERnsvl3Sll}o8P-K=E)?&Y)9`_eo={%#Wzh@EDT%5& zg-XKZ%&p8EzJdaJj;YeVSn@Y#U{fcwp&wi~$@Qkeb>q;pwxOq%p=V|+2i9BqwrdUy z4i9KKnbBOgbryPiYefchvMHQuii|bICUqUl<?i8v@Ni3H#Nba?sNCoHgfTH`l@=VW z{qwGY@Bb0%+FJ~*$M-#wfg`ki-5A((-KS~3foO`v8N(S?q{O8~A27OsV}&l>XzG$? z*e~LfnoK<pW)SnfIIC{d*VhSnoh?Gnjq0`sp9-HEqAXmo-fW})2A*FP>cp$?7;ruN z{eC%Lp~GgiaT*-{7Z*0J6L~@2NhZ_7!=pb9KzDX_K(TD==}ADLZ0qcdLOnfkDi*_6 zEYg+eq?}F<#h8|bRTu+f3r+<tSO0i%>$ou7aLrzp^!d!-x<Lz|2cHQ59a}7O5kP+< z0QAa>WcPx;dtRSYT>YSO>p4xkk?ZDx>+R_>W9o)&?v8o<fqCMwW3JjUU*cS-buHA| zXG<OPm9E8V_fjnZv~9M)GJD-TbwL&(40P;vC;*KW$hUpX_2d%d-@fVFzF`_aADS)> zP8Un!+yD_b`=<*+v&CHt4a|KO>CaR5y_0u_mja!m7G?TO^qgJRLduJSnaCaK)(n77 zx0%y5?zy0MKIESB*{54P^S<__Ff_ZVMbGwuWykols6@}vg`Iv#aOaIUwXoAi&1@y0 z*{uY*vp~;7f;&V0p*kuy(i#~tDgfP?wnv7ILP;YHprP=P5z-Hys_*_3YUuu~uJe<+ z&QI&&pGtpcfty<edOjr|3gT=SKG`bh^I4*2NcwgBrlIGIb?PDMbG|YFdb-j&RSYTa z{8j+;dx4?f4s`wqpg&9i{ibntkjlr|k+sQ#l-+sAGZUnG|6u6<XLqg>^#9D*J?~GS z|EECD)X;y=1<>*BR8E3(-#0sl<UuF)<_`hT`PG~c0nqst961bH89=Kdgn!F60_f)6 zVnLs$qOSnx`KWcQ$usBkEeOXY_pHq@@|9)$v3<J2F<a}Ltu>8bYn!;?n5$|Vzb0&? zB!JFg(3Z)&_L&mrTqVRUwwY2x>f&@>!;p2~bw12#+KpI`FI2C7JG3fTv(UoxL>4_u zeV0scxYC<0wIw)N<{K}BL>ZaKj~MvY%A4?vx)47hQ10l6K`+5^*3H>q5VBewl+)>= z=nbuQGnp(@OAF#Nqk8Cc`mz$yjKN@`^m-E|tAdoTtSl)29SpkserGTk4FsbWi_>g& z1Onk;FamkJ{)ve(rUTE+Og@mM6q%H&05r205VbcoHEO*GXm`u$ndHbAYjIG-igx%b z-Te%PO!W^{+fdm%@LX|>!~v2#hk}7BGeIm7Uy2$y5<@c}CY7V(EgCH*uuoT4m&@gn zrRv?-b3Cu*Px{ubd>8<lGkG&PM{@K_^sL6HY9cVF@#0Ks^PbpfyvR?XQl=^^$41`j zuvskxoivnq_^^OB6!;uDE+s9k)0DI4-5NZr_~>Pt3+pA~ie>IIlZbh>;N#=4L>O__ z*VA(xPmb#f`(rT9f5AQ~)rExz>HCbKHOsOy-I$)pxG<V@O}uY`%LY4eppJ7Q6I*T( zG&7}zQ=xfJg~S;rL2kT-hb+#HzbaCUMtn>JuL{JM35X!h26J{;B#`bUoTiQUMF$d2 z0$>Il|H?VbOnJj$;2`Ovf`i9(E_2MA@&R--8s(VqM*-+#l@NV=T%<o@=r={8r+;KS z<^cN7zb5_1|NCJQ=N}88>0g0PrmCt^8U?(Z^}^&(gE155peMkuy(;sIpYV!ovNS6Y zs4~CG<cjVYsx~jSkd}&Dj|C5DJS9S`qC(ytE-$ZO(Gjv>a$&xT0?=Y(p_o<1&=l`0 z6b?lrQ9?AlJGa{{?hv;$WB-h)^xZo-b%qIZv8w6}Kaf2dODW=&A7t~dnV`VR5WEYn zs(rAFWRHo5+{hKyco2rXw{J0B8tV*4@uIx3josJ_Gs%PD1PME%M0ElQ9C??W#F?|E znBO2e-^wc5HHhh767(|&?A@yA-)I_mYU*Ea8F<=?_5O{<foF!nr>23mwt;m$mi<o+ zy<63X0O)<~o)vV~uG_oH1b`k806LUv43F2vCUx=Ea`#9<cvv4!HNAA+kmU!vr)<%w zy1rTGz`VQv``>l#E%tn~t4ft%ET%mYZBFaHsjpi5g?xX8=H4@w<Yh$B2)S|PBeV#I z!?^gFN5Vt|vQ)xf#(~TzFD(-{*Xc4r7Z;pormo|(Gf9Wvuf~Q(R)l7xhre)QoT?Fm z4-QuX{)FepksxfNA0O{A@TLx47g3+AbCUtk*wbdU(YTz~1H;|bwbfr1K&v@<e6woa z9<D%<=skATG=8dW{H%NS^5D7=66krYrtfK!Akoi+db1WB&?*7+*U6qmefNU?koxL5 zwbr%!s6TN9OY`6jU%JegzG0fUVx4+moq8nAH)`y&!Z_GDU*%e?74%sGX!~rTd#SW- z>O2(N4R-8yK;BhhzTsIdCV+N5x!~Kr>fgR;nz$r&UZ7`5pNXEKj``}uVxvIMS^6BC zt@cjd@l4(sUJTIpS>omleU^F!J$Ix9eO9&@lzFVqJ=^Y{^Lge2o`rySAz+)-+b8uz z&wY!QzD4WoR`=X?4>Z0W9hVGR<vuHsJ40g6ou1B7t8b_#qrr^2(l#ne;yi5ZOxdY; zR*|GBt2W)>rw!e|sq6Ypeb*;YYx<;6>ZEbxgeiR*Y8^evmCQrAgK_jTs%7{y-Oz7Z zla=OFb6ctrGN)V2X&q!4HJH<S$TU(%g;u5^-(r$-Plu^DOrMV@iGKUg`6Gb-2%z6U zR`mf4npxFDl)}(t&<aDR|HmR3bUt_Ha_nEXupIx>-q3&VB!m7r0GbT?h(!n$gFf5? zT8m{>qbHg&M^jA|>&R*9`L*Sw(Y&JtJyQ-SG1ZosGWSk9v5sZ$j59XT0QJqdwCbE{ zu}(j9%$92sqD!&Gn7+&d!y$30n%b^?_}Ug<tR`7re9^t|BEe*5=*f4<(Jc?8fzd)! zyFvd%F+~46hS#j^MgWaq0vmsE0KK%d5bx+x06HA;Vi;vMJ0Ppo>Gz9}((UoPJwC5D zm`<msrzfYTCJ=gJsB>Qi{dgBN#;uk^DV8-?RbQC#S|R_6C=lWP)vH(4h=M}`5=^Ex zFyvxxwaFxcu<9By9-v{OnqDdh_~XaKf2zWv!C*j?>u@++E*D}-{4bq4m@(w@`4Gn8 zg>W_r;JUlJ@%HEfeE2MHWg5=*VE|~>>tih!mUBVqPwvbirGUBjAFu!m26e2UQYt@U zHP}=0UR8-0`dSd_;@sNpBJY?;8Xq+8OjK7_ad^NFh?&uJc;pC#K%A*kT$dZ~bAP-p z^Wu5w=;aJef@ThVWhz!?$}|0}4YCoA^AktI@E{(K6T+%Fwz%Fz2DHqJ$yf^d1N6th zOVig6rw*qGXOCrbINg%-pjAm3G)@7=KDbJ8>8ivomCMiJE))N;iPNr`;LMRT9WXg{ z0Pjns|8rh82k>}i{Kk}*m#O;fJcio3S^{X9M%To=Bz&##j-rt$uK!px_LBkhF(J|K ztP0}W*2jcsC9TV9PEetGZSBM32B81^E7pffoO47LY`5F-bLw<D1y?f*0L@7@O#EbZ zTl50xOYy7D`-Qv{&-`Wj`*Q}2D)Y<UaNjb&1lFoZfSlu{=a$DJ7P`Y;h7JG>jqb=$ zEK`s`An9Tz2OxN3A5>9UK>#fxtH*_m#BhXOuQvxk%lT~rK%*OFznouZm@D~phDA?T zS&^+XT%jhtsYqDOe#7?C;u79rt(AG;yjRV%13cSR382+|U*1HglLiU6^7qhI_svvS zmW=?KOP2N(3DM={bd=_OU#5wW@~h+ttpD||e;xX|W^~U6jqN(ecRgc!&eV(6)N`ZU z;u_!eruQrm9u9p|eR%qFeg#4;dR9w&SDB}$);CZe9BL$hj?UC{tdu#1Z~F)9f`ht@ zhMFnwaA`2v%o+WHK7YNXef1mwJ@mRp`-OuZa(*Eq3VaJ_d4a3N)MjFI#}olH!e5I- z&<3M{0J@~Kgt;l4&87e}%VWyI=1t53Rt2tA`APz4d4bfixF4<rk%Da&&SQLjrYYc( zkk2M2w}r!DW}@Jb@Kr@<gs(6zEyks|V&~^)78Yg+ppC}5&dwOca1rAXilyL<*?Fd> zRx^b6M;S1DGn!N-dAHjGsfQfddE4ET$K!xZCLL8;S^z0(k0Ft~%aytRgtv>U-8FVs z*gb2|vlc-2K55J(K|gy5pvj<n7WI&}n!2LQ>S2Dx^?moj(lU6%H(K60dc!z&(Ya9V z%F<`oVx3g2On<Ji&EB=o6*`3xM}=kjvSsEn=`#VeXSJkV7(j<1*OLpz(euX9uOQRJ zMbr4jz*J#ix;QWe70G3>Z?YgXT@sus2}~9%*~hLx@yQm~Kyi+;47w&TTql&Q4Gz}_ zl6ArlS|j5~v1P2;I^JSRmzz>mZRw0+Q}vJp&_ex7w*E!iz><A%*)h1}z;bxiLyfF@ zho!_mQt|0VXJ4^YkyNo_(Eh<%pA^2oz5#r-vC;tf2J5+mJbhK({wgf%x_(pB@&7=^ zk&~2R<a3DYt?84d)almLDJ&sl>ZE?;Q^=6|tYzqPs(I)W$CMXxPWhaZUi*a8KH<XB zG2ybL4O04!^$n<N^Eu>ONK$W+J0BAa{qOIZJAVYw9|81_behfr=)~qWrHUDLZER$; zxh1tp_3V5@DITpbbbdm#mO+pG>lTHFIRN?~m*<1nbYgG5@0%Uy5CFZe|Au1F3J@O! zKyyrZ5P;5S&<6o%&*(z}XaSw2xE`Nu?wt`BT1%h%XT|c#cS8{AvvvBReWu7hTWT7+ zp@q(Bu&O<_{88@A!7aX2%}nRT7u}055{f=60L{Ztn%WI6ew~11++RctT_J;S=5jKL zcyO=}qOk^qP>srfW<)ts4GlUf3!vMm)>aGj^8s{6tW!E~2ml=ldqN?P+3c`boIYOw za(jGkx6kVhK++F-qQAdColf3=aG!}P9P=<wnNvz>)kkmK;^LB`qGJAuc884k>4(dy zpq#u}EX%2L5@mgMgvM#77$B*HP&!3$SjFrWayJ?28W4ce*^T+maxhbdkdy`G1c0_X zI${VbJG;BP6N!XVHtdOjZ(sM7e4myN13+KMHkSFO8KSE0&2b(1J^{4&WM$S9>*=Xs zC)ZVFa0JS%6Nu3tBWcc;tgaN3k?~34!==TFGNr))fFCI96mgw1c{z?H+Rh|NNylnA zL~LLZHeH@Ml;xCOju`1KEf1lU^Ec6y^)p691kkuzXtKfVdnP91@Gy?DSS>-}6DY=4 ztd#gz`U75;?cBL@ID6;Mpa1GBQ9_25lvtXEg=lWyy3G<a*iJNnRw&N^i2$CB^Md(x z;1+?FE6P<KG~YW1)wI;)zhehg21gCZc>t_$gW(EJOFn?MTCGuGRT_;&V}8Fd7{MF= zISl$2B+(xM^oNI`XMbcn4gmVkA9V<T{>z6ZmOHb{#`wWv787go0W{0}()dA@`Nfa0 zf}6a*h#&2J%lx8e)Ry@rn<lMeHYgb@Iv3h2qh~;m$*g2_5WJU+P62(;rAwEXGK_{E zpYzE$nTee^vjO-jUayyB+z6mq60k|v#9PbkB5|;^&(hWzM);<!Gh8WCiOGLo)){{E zh((60WoCd%;wB*Gt=Vj)hnGc$vGKvf2RL%P7rt3K?K1Wg$opXdZ=4gnYpeTe%ltC2 zR5(9WRjSgy%Afk7rm@l^p*A`DU;gr!;pa_bd$#dC=h&`mV%Iyq=N16^g#ggwc)07u z_Vk`*`0J*l1L%WDbOu0o5<u4lla0aA>gbp*He1`VTIv|NP4pZXYRJ&%WOMs)DL2a8 z=cU(%smUMNw2loplOpjy80_ikK{!nSjU{uO@d-9b_lS&BU$c(UpqQy98!iKN_np@d z{)JWhM6FJF$A$MHlqVZM#G2X~W~{4$1FiwYJS-(5{zaCj#-4b7=`1JQ`8*zv4}%#= zpV9C=MQDV5=pct@SX;xGbY^9BWp!;8??3@)<y-iU0W_zq;RqFi$2-NzX&);xj-Jp0 zXt{2n6o4Mg0npzhdzJ)%)>cy=85z;8Xdkj^*K;0PhHm&r%T42V%`-OyfEL8L)-w6P zHd879bY@GHb^3vI=7DRe%)MM;p1x?Exz({7V-mE?fUbr*cEjPF=FoOiaH~47RUO+6 z1=mg9Cxr`p-SfK%YGNxiu@#)%>6+Q@oZgC4lN&LpYpJelvG%*~zQgxrRW`1uWzNIZ zycS&R?EU)N{%?Of@cj=1zx`qGhaZN1_ruUX{&2Y6=wJW(*F#K4(Ozqz?i;Mbmp3pd zB+&Cfy|=&G+b__wy}OVyPkpW*`Ak3ZNo(pPWk`K)Onshtm_8x1o=;(EOn+uff38n` z+LHWCFJ%}$2{k7_aZLx^(_!aSyKUSG*~e{`Q6m)J*cMvfggVwYm;nvFJM{eS8T2m) zoj(HTkM#K`%D>o8sq%)sJKqcK{x-3-lhO8GMqAsILek23dS47p&yDdv?GZgw+|9S@ zAV)p~J?GG8CO#`*jc3r(=X?gOFm%2J#}NT^4(C<qSqq?ZNVN9(wcy(``cTWD6^V{d zHY*0LCDHw}E-m(T&Q(LM`C8NXjT{c11H@I!In;fJxY*vgRNc8$os;G)L33zoH~8fH zWDbCS@_j~#7?_$tuR2wfj|n3L(27Cl0BFUaa{#nr&;-yB!y3qF6cAR$Oc*a@Wz5cp zGs;}lI_UZHo!#B7mjF5t5db>m2?ilIRxB1rdwU=n?TAKW9#6pI@yFxwj*fVLe}5`9 zG%_+cK0ZvBTL$aQTIIvrckbMhX`w8SmZ^CyUHnMggxzpWH4{we;K3Xj!Zi+!<jhq8 zpmDl5&SB7rF&!zVnz@NrWQq{Rer~rL!zYBB1khD7K^y0QuZ2;f0MPMxkF4a4MZ6=< z3M6RzTC(J9{4fACi=VK@_j%dKE-zfTz~pE&e5M@cv4{$R^^I)fMkY|RL^zi6<0#}L zUrw&1iyeo5Ok>AKDSa?&Iq(pJ;m3tcF(!sCF3OaS!DWME;N6QN8nDz<^H01p!2~Y) zJQB_lPt#ivA2-vVIp&u}(mGZP#3A8BCxFJK!res1y&PTRc`%5<4(;vjp<sx0ED4~o zB!FhQ7@Rj&GiM&OOo+b5Qt8UzlF4GXZ{E6f^VWlGyPs{U#wJswwIg1#e%=Eh#eOJ> zJUujd^2KZ6MdiqiaGcd_2%uRJh)yFIbY%c^^d*4iknHCJ=wF0He+1CKIEh~Q%YPkF z%SY3`x2X4>mBok4M}Fp`>(BrDHTt)=pbv*W|K$VMApjabu(XuL5?!0}B14y$E%RGT zFAnr_?68Q8Ut8vv23ed9#ySD2uPiKl%)9<7f?^lRu7rG+IRTk6Xp-BOSCpftBdsQY z#_OV|BY;Mq$orJ&85y<mCOusg$f+}RhO;#oa_S7Tb7vqYVPY94EvX{IWQELTRlZ)b zK7_Q`5~Vy^RNnW#MTVuNNwX?4%%oSIG*#V~IksfbO`4=yydpc<GFc5$mG&hG#W`Vr z%F@2<sWJRX?lq0>TF3XCle^xDUH90oEA_%40Q9ayq(47z!<La3`lAEr{DOozbqMX9 z%7Q}|9IJ_r={lyH;%gE>4{7N0pw2T?;_q+t^)*P}=cS{Bslx|1ZAxs;p9p_(*}Gh> zL?VF@x~r=z7!3GC>6jp=9`f2_nnET4KO3v#T4hwpoc(+E?=gu1=b0g;{7^EJ>cn?M zUiLI{kr@e@>KeS$&kzd%m`Y+0wRA)|nnqfDw6y5)J>?gc`3JaAc^&c#I6ptVx;jq) z9gq7uJAH=$Xwv7m3ZQwLN6qR}P9r!8xFD@#myDyIg%=;S&)vdO$v=OmeeNcfLUVWA zGglqc7gxVc3P}b{0IjX2o=T;(E82%_`482)W$1=|rp`Ee)v-`O+-#kG%<_Z6d_&4I zb=SRA=U%RHFIC!RADJf3S!eIWc0-au2Rth!-nDA?>cj9(vjotM(Os`}h>iu<&EB=b z`Q5}^R^yw&@y&pu&qUAA#Co)Iu@?H~n{Tw=njG|;^Cz_47e(FQJoHT5@l8H5Pu+CP zmDuMB-HUbNfTf%ZMOpy;@7b0Eph=&x)S8YS&YgSrYdv|*oIY<#oi(OTH1&Mm(EUkE z@0pgqGfllGu+;aTZ5cS-(toO@|8(=f=Pd&#n)^S88WYforo<_zq4PvT*XK}c`jlhR z>lA7?rwveBs=0GxPiXT66<VH#egW?M&KUGDfX?p)hF;6+A3mbzW2n$d8tQnqO!e;m zmg?F0mg?R8o>Dxzd*^FPi=mm|ti{mdf7;VNd`kfOAo`r+zmX51RUN{^0rbA~R-xzD z0%&LYHbe~V9WBULV7x3x{ZI8>%hg)7jo)Y;y$tacwcvYSKafMVtG|Zli=a;J3$47O zfoJ-Bb*)xkx^(I4)vKJUk7$XtVlXHmY5HXWG_<?BC48R)5d!G;_K+;#;SL1c5<`31 z+x^jKEE0)@BOM-(zoR4G(b3^@A(-=wj0}#A4Udi{2L}4^HZNbkjPQ}*5)mPJ9LGN# z9kJ{T&I7Fjl<zPzVL3uzMg!u)Dp9wmo>?#mE9pPLJ;?{@cq^;j6tg-U^J)>gx!rD3 zMTgT#*F{?5GQSlMW3gB`6zYg|#3hD~cL)lJ@Du|`JVU-QOOAQVhXJ6^oH_Hw7himp zZN$e!()f%nUcAV(Xl6s>vm@EWJ~uRtAN2L>!j*y-Ky6JXrJbLwEG^i~VI+cnj-NRR zSKWJH{Ta?v=GcaVKn`OvSCO=z#zrv?k=21{YKbRN#rN<ebn)Y4XR>MhRSrU0=%mTx z!3ti202*T_Tq<fTjmCO_xI``1R{%8jp+yD`25<J%sZ*zAJ0ly<4^An0G)^hc51l&D z2>O|W#(|c~N5lW(zpx}wW_fgMq2;C8A5Vy9Q_oM(i~|t4*kU98a`DS-!<UW#8lyy9 z*z_kgo6Q6z(P)%rh;JM~ze^JR!2syD&Y=JDwy^R~(Bbe`1p_(GU<b8#1EBxyIO*8Y z=XY}f9~*hwz33Oh;V>%=(r=2tuAFG40Q93rk9gm-vP#@9C*P!lKl?2DGPBGt%>;;? z*j>_aDO2Y6@grvD(uIuocV#AWxtbzF*v;8>ymN^?RSd?4J<)N963~)o5kM325<sKt zY%{l^PsAH+lH?1|i9ig!3Em*OOS7zJjXsn!ij<|*D|LpY!>=kbtWdJd|9)9yIOFy! zTr$KxX;Eaj;lLupIDt7uhSgzfiVSBe40ARWZN4g``J2eAmAAm<UG7p<+LzC!O8er_ z$?@|``~LaQe;(N}rgyC4yRJ!*@9Y}ibEUr4kG#;2iJWL>`gvRGh4IY-XovKG4h-l* z!@6)<7n!P!&op&Bd*m3o9T;p13^e-t8+`o@?*3A5Ppzk?w*ULz34Qm&QNq;xd{~w1 znv)o-QePQ*;nT#G(An9^91aW$2%vclV+Y<uC%b1-{9|dLhbs_K4JU6Q_K|Ka4;gN; z#s;Z0uVL0IXUUCw()fjCD#@>JW*c)LSk;+H?wrlW3sPiiTZK2YLpEM@Oj#Hm9i5w- zB7h!A4-F6ZYXEc$EuP!k-IT+DXK<<^Sbe<?YHVz#6qvT#ol-6;>zCM;6(5=@Q=1jy zQ$Z{aFK*!!WxmDy@+xmPQEPGZl5zC&*8u4G41iwyE~yxF?~=Y}Nk6J->2x}0CI3%q zJ!feex@4IwG>zXC0D7@n;O6Ojk~`PAmulQgb&mN*j`>QgxE9OY%XOBSt62aYjO_*> z=kgub%3b$LL3pP*wi}M@*gAGQV!N@xGgE9Q<lm?wdY;|s8r#UA=c&yOVY9w!B6^0# zpG7(sYT^quUw{2|4r0!S&fM6uTiml(-20-a_v>Qc<fDOkw`-w3@WdBhkA>C);f+{i zGZuJij&8-Y^{#RNG>ctn)1UwLx4#{cHRs@FKGbe>O<i|SU3W}g_AXs<E}m@}IAutl zG!C6JCckJMI@daQ4om&uDSh&ULFkmO_oS}(1f=i%g7jI}ecGD7;26CQ2>?CeHm6#k zwvi?+dM0=N<<aw7!qCSOIv+y}y|$nJ;UjuJwo)irap#U_tCYgc%82723{3`|Poi@G zwAS%CheYp7pL5Kh56^(kFG6?_fL2M+KNdjmYs9fHfW|R6dJCnB+6St&@(t9q57db1 zDp>`Sja=pfXehE!Y)pT7(0e)hcGV*DMNkfOh7zj>0cgX3C`?>^_Uzen=gtuc5h@}2 zXND<aFM2>j7<51?xG}ZqGcpO8%?8S1ZOzDHgn0iPvfI5BEjUzs^Ab55^)iglczu*+ zn*z{*Ku7`TNTeeiMnLHa1Q2z(J)ZVRBpMFKLgARx>5at%fX0f=<{lkQj*bou4D|N* z_Y$Jvec>&WY|@uNWZc}yq|h>iQZpzy08>Q^nbDk?!dX_z;vpPDAS&fwxj#AMP3Awy zq#nF9Rz$vSvrc$pTP$8LPKX^bs7}{xFc>-Yl>pi%8v<yV(B0A1*~O~a*ogge99r_N zT0RT_jSqs=1q<ZBfU!Pn^<b&3;lr^UQ&e!;ajH2rRVBG#g$dEP!W(4H5eId&_GW?- z8|xi0Gn(ZkIqKt}I=g(#+%e^7jAy35gqkNyTFoi9+>_of+<|6}bPT7frsCjC)M90J zmQBZH(B9t8ENL=m46r$j$6*LJ%#g6*aJ${u2mgg<zAu6JnKNhb)y74B{l*P?anK$b zS0%sQSmBIdrk3LufLK3E?K4c7cV###W7d^&`QV<s!sQvhCReTzQsddwEd(A3R`4oc z$c9saGr-!9S^&+9AM1Eu9<PVRIo}3=euYGT1kk@YfPNi`eyh;==omU5K<8Ad$Z2m0 zK>yqOpkJ0aYbDAL{+a+ZqPB22j9*cQ!@<1T8~`l}3|3VUn6g(=S<I}(N2bYsjmB0v zWq#>Rp$v=5%Q92MXgj9r0bpl5GeaR&wU1U;w8mn_1G{hfCZprPztHXge?@1=jArz4 z3P6*vGf|WP8t+R1XqEV^Dgd*9he{40RDD%YTW#BQaCdi?;_j}+-K{tjcb8(trC9L* z#jSYp2X_cwT#FVc5Zu1~{%8M8W|D*CAerp7ulri2VQ*UTqQK)5Gpzc<n2;o^R(L;q znB4s~>xA0*GjCNkbGrI;F6|%*mY|-^cTg@tjBto@;ejfR+@Y<Pc0pSU=WH>{`E%vY z+*?_Qo9X*P(Hmcr3;AYS(z(#6pV)p-a^n$@58mfWy55|8E~04O^240?tHp6lpX+I$ z{+j}u5V@IcZ!e-{Yg%=3;wf!<YufO)<AtxwyESbGYU>cSGYH1n4#wn;&pV!hgLwUq z5G}nZu8Ojo+=-y+RT=sujU4WPY-f*EY?)Cj?xNX>i>G~=iJ>6RjQ-B~sZ#qZbXbQd zaYJdYQuHB*Q?*}HNhD8f9lX<e{v@nN+_tdlZWyMYerXzckglL}d~$9X)Ba72$yF8Y z$ZAvN<+X5g!#h|djQ}>|po-`(LIgKMAMIfruKl*8X!}=0_H&*u_-;c^bNq>Os<ctn zvLBfeg7IYPp&^Q=ZM;4jx-1j0$K!RME}MG&lqByy50Vgz0t}1?!sOu$=c~1ChRXq> zdGgtpE6;8JG{3)TZnZ*O`h}}J`uOCWe#u*Z^9Y)=o{vn;c-iYSVegf{__Z>&k!7L6 z7q&eWk<zVS{8ktGImg$vz~4v`p}Xw$WYk3{o+6HcRci=<E5*%HP*4z3nOIHMZw~dp z`1gMaQ(QX~+s#5OvL6_!c0ZBd{3*7#ggqWpU~9pNb(ROD!`Nt;u*XGG`Ce^5I~W^; znHnrlEP5!7Lv~C$)^bIxiN)%uMCL>uY|kLs<;9#Bk@m(h5(`WkQqw*5xj`D^e@@CT z(mO8}QW<>ub9-%6EZQm>auzI5Q<81etj>a%pKOvul8+ygJ{^aJx&6A~OekJ4uLygH zEleqW+ke-2(jqptRTy0<(iEl_8O@Fatra0a9+e;kqSnt(5`Z8JlnVvc0mD0LgJ1&8 zncW#w@|z=n3%KJIM(Lv<smnZ=X*v%mq3{ovuw<{ku%DQy40$c2MmHbgCP3N+3)7m; zO^rv>{9<H_!ke&FMBn65h9>^SE9%jw{y{#N$UT|@FkrTjAzWcY!&q(-HcG8eD0~F` z#t?po1lRwOP-?$&?@Rc)D-mez+;x-(KVGDO^6Ma7U0IKQjS68L=KcLW0G;RzNJw81 zXNx4mt`C$l37>!=6T*@$oCj~uLX+`WI5G0Y)co*^`EIR9^zLsCixCUXInIb#)u|-$ z*>QyuWl)kd8cfTyovc(Md#toDgf?cdskymXR)F+35J&d6twAZlSDYz!Tku!dHPyRd z={_p><Yzw(iIb$hzAg_Z%DzmgmW>Zh#F11km$AME?nP++`k04x8o5^U1-1g?Z+Uu` z%xo`vJ6YC^DdiZx;2)*jOzPJ$@QV24gw=Bh_E<YSpJccjNMiP(jpOQ5!J7Xx*{)g# ze93v=jiUvDIQnMZT;6>Xa>;s_#P%NZw3!h>6@lr=$WjM#dN=il*U-a&UDI6#ZpJbC z>#@Nd2(qG#A4N%UIjjd;{{aO*TyE{-^0bNS(XM}@PH}T=u_|e+{hQgQpJl+Tb4XRT z>!uKU3KhYgV$3#XJ}o<N<6MC7Qc3OCT(!YK*HvQwN3Y_?gpLA#RrC<-kS#%)Ct!s0 z(S5(`+h%&D9eO0{4NRd5SNJJ?X3u?7EB_z{)>-g1d8wP>yqT;$c;V^m-k(tt+n~M9 zwKe}y%{q1tP56Xi>B+j4@rT_+?<EUK3Y4S(Vy~w7t{R*0&m0+C<5Z0TCM$Cygz*ju zf!iWtLRaF1g#oY9tkG}E?kqyS=j=vVe=6bbvZF-b$~{FLU(`L3@pZwXl=$5@_7fg* z+|-fB!jm|Y<AKI&9uQ<$W}Uv%><M?m>lWYK!pS6@Hp6?LqrQ-+^m`XL{{LB<?|r}K zeCO%5RdricXfN0oy@;cjJ@%R$TTz3D7?uP0DUaBKiPcq@^;+R9*^X>kGPJU?L*)R) zGI&%}iA*2v?-=;E7NT<9WcyFVhVqx)NmrfxtRfPmRMEA%1aSt1woH9hC=UCo`6G`* zrJ{56!kK3WGFaX`Am`^=P4=C=H{xiA{K5FAl-nHn+cZ%>lBrK-HVRH4zI~~!7<-#B zR#Vf16iVLk1EQ#QS$F3|clS7}Qtx8dc`_)vMSz=~m6er;M<Iw*t8bf%Av}4st6&D$ zow1Q|uueD(WiBt;E!!{Jg-_Yh4S&&ds)^H%{$rx%qG?|6xB`@dCdhUTtT_)74a|ob ztb~<#^)@;c$DO8CO>4SWPw@xNruDuaw2w1wGogShd?V7=`=gIGdsv^gY+oPxlm0BP zj*N`7glS_f#k(9Z#x?u3KzQ|cR5#HQvvo*7;^ySvnX?x%7{Uw35FlGipD#aSEH;uQ z{rx54YyDPHcdqdn7+fpiA-wAa`()A|J6wJg1`-68KV?q?SW4lw1TY<dB&0Cu^kRBq z$X6?HFmua0u2XIO!T<yf{C+aKn-u$A^&uAlA`BI#lA`){nLmq-Ij~TelQ(msQh&nw z7Tu-!JdpI?>FsZ0>E~1V{jrnsHw~yPld7ym?l%k47>zdc5Jdj_eAf%{&G{hxk|Vrn zaR69nL=@cCbYMkf@1XpOPYO=P_$+@7x0BueYV|%^9)I^dDvBxIHaUJtCV{S{%t?yj zMG2Os96uTsACX7vk1!)-kLPv?2v%mVLX3irFV2s2KYdX8vo7ld<NclnELkHZM8daL z00BZ`D<!05NE}(}==+DG2RHIU_yQ#-V{=!kT0+vwJB(%T@><=M${tpiL7qY$9bOZZ zGNTUDHHs3%EONMSIDOLSo9&;XKNcOeKOg!<5&Awg_WoQDWKFU3?IPQw85W_PGZZ4l z7_~|>RMoY-n*{O|8~+G_9HOiQ@=RbH!l*Yc(4u4-4Qt`917CebVU-(3>4;kfcRhqQ zOqD?t$s;nmKPAcUFye7n;Up{|&H_2?E`%z1({^8`nk<9&e7nRb#WGdue?`)CD?^T) z?w><6gSu9ZZoVOw$kP^oq*t{@vRgrwV;}J__%2_sJ(=?`UaRp}>E$a9a=JNAqi}(G z`3)Be>^ja5o&=;wj&e8mH|pg^@liXzzSoA*)@<}A!*32e%AMNPfqzOwGz<RuI%iso z41<k$Q%N|0Y9csPrBp}z@py4nmqQ1&yu4cNJmK>+^Icl$s-LM{9uYL@5e=q2EJ!2m zLM7!5(YYf3WmuMv+o+~rZtB4ih+!2KrQ1_&5j7L(Eq`ZuHDL1^`q%kOfNN`{b=O<y z28NGRv6?snPs(eA`=<Nf<*yf^&cpvQN2ntxRHQT{l@GNW|I47h(#s@=t;*-bOd;s4 zkaZ}lorxN>UKUXK!=;g*vq>J~amV+D!`UD8OZm~0?KaMy8d(!Wnk|^seH+0_C5d{8 zE7gaA`$_}jpxvF>_qHOsWRaWz2*pB|y?WnAX5k@76jOi-csu@W_U!fy1|lpeI%kNl zWx_`~+`wG1LftLx@a0&3nbKJYl<TYXw+&KI#nbn<>DWb{xMJdk$4#(rit|zwm$~Ld z(bS4ANP{u{I!D+b?*47oLMZHH-gZrp#zw^F6u+*;|KG#w{V#ENNUKjPJOow<xGz#b z8kSZB{}D36@VR^j;P-sbmr?(>2KQM<XJ>qO3U8{=W8CfDLESP^Ez!V8ASEtc7Vd{8 zMx>rVfZoh8tRDNBFRC|=I+)+{BObkZ;Ai#4<f>V1=~%bj7XHdp7Gy0!D;^kUFG*^I zeZyY%snUUl)GQzGN#Wjel5LN4QKr5snizFS!Ey^?`M3dbC+}XUq=k#|{~Wnk0}zM) z*2bY5abQg#YP49$a+gAcXh#{Xf02t+zq(J*mh9=&!e-r7taY?Cpk<|7-pbN8cKZTv zDDrJzj4sMGqa9vER1_gF+2>QVblS&!H>Xkt5#FmmrXrRV%i*k5S_iBd1{wQ-BP-II z{$M>JuU$R=@eN<~lzmymbQT(MUcHOPf3mC}*gt&3GHNF`h+y`!Y(^0z$T<#2`(^yp z&5ca&$Phll#e^LzGg#HHS$UHL2P|a`KrMX9%O}u`)eV+cXC6SQF~Xk+cXfBds?A=3 zzhj0B+Vlf3SURClspu6?J{fx6=t2a;M*>|`$2Rr{B>M58d&p{64(D0<A%Ck(-mZAY za(eNIIY;CFo5qWfKx#U>Xhf=qimx2M{ukvwi4O`KSrT5F=ikI#z4M0;k2$3ktv`09 zZu*mSu3+8O_*<Q=lj5#HaLz08xWjGucbApsaR5}QGHiIh-C4apP~@=M&t`okfbOc6 zrO|w|Sxfxq7EiaOlH0F^ybE&BxhWvf>&E%AW`MD^gnF4iv0^7h#l8KAeUW%r*m055 zff7Jek4ShS)7TmTVDQ-5>oEYs6T{1kj+_56#iY$*(3O;Y(wRkxE1W%ko;eAe*`cvf zG4uK1hMcs;RngZ}(SQO3mBT|CE6C1olulozW)&@gtWodKb>hJDic<nmK`Fp~eFxju z!K%pWS~+FMH#BIm$amV`i&i^%sj%Mmp~@cFNI5O_2x3tjpoT!vk4t~KJ6L*PhD*@H z8KZ%3Fu*Cu;HBLFB$ggHSOvc_ia0HME9f7d!nV|#8JGJhw|kjplW#Asc2!V2E1Omd zQuC``0Css-5N|n+5hAmQ12G#ol=%3XR~d*~sONy|C(VJGk(=+NdG;t_n0C(L2kV^D z)yOYIDHG<IBW=82#wJO+<uCGW9L)n$iD4PH&Fa}&va-BCf+wn*TmppQz=LW2%;acx zFfA)*DZ_?AkjtxweD#L)%?sZkGuM<!hU4bVi?&r$;^vQ_bF}DS-!6|&Kevz2+9;60 z1(LW@KmhIcQc_fefn93+l&||&$SZU>Vt-@(Mheu)Gl`6i%!Xnk7Fcldn*LEl*oo1M zsK?2{4l<R?;PHFL9j`L|&lFWm`)Mf@?N|M#ryS@ND*1M~K#mxa|A}w3rWPso29o9C z|B*;uAnnYC%ae!hrkMD+xtFS9c|JGN8e~hJre+-G$RO>7g87fb95-u}9JfX!w1u~q zSx{LpTV+Crw!)m2G$vYg-zsz!@K0sT3e_z9D-#~;u5)~0O;$WK;NM&O?-rN|%l4WD zgk$=N!!M0M4zh?+`}mg5k#OacNasSr+AQoJ7y@T9AQ}72PyW}r2f7v)wTzm)d1Pc) zQ$`J{9+&V~0jVUtY)Gg1<z^p)fm2N;0l@=aVJe7}38n~b3xR2BZ}nf!XBfUMwoncr z6br~2THa;|4~?XM3SpWNmb)}tINDb%$$r1KP(f<X7usd=m!i7jk^t1X3_b)Ql|x1~ zpO}f08WWu|9NPdVkYdVElHrm|<B_&)sBi^RQmc)gmPO|GsWQ*cGS+FJt#3ymMp-sH zgslg!{@$hC3}J^;Ie1L!VCz@fb;EYh`&fNG0s#v6ig1VmlAGA9So#A1|6?rq%{4>x zSA;Y4n=F<=^({dHpLrHmWK_qC+Pd@N&qE&3Lf=y<W*bz0$D{JvMxC9JeZT#nWc8uv zyPo2><_{$%PtUoqv`=>3$~MuvUjgXX`>6e#7?90!KG}817r;E0bvIlH48Rlk37E!V z4}(<S$VL{+eViB4x7vRAv6Xf$9|-cpLn0(31(Pp~=)>Fm*z{iP%@=^nT&~Cq272m# zf75fU-*h%?GkfpV)2D*<(!L0xT6p6(c=wY;4}MRfV}08Jb7VN9U<xWIpf|Q~^BEIS zI0-8!1|r+&t~Q{5bhj!{XOaj>yWB3hOtsa;R^M+*6Yvx1{L*F05ln=AI~L1;_YUF6 zuR;epfQ8Ds^=6gqT7g7>nc@G&lu092uA6r4<FPUv8Kw+&df-QN^Qoxq6Enwz1D3pZ z|D!P&i~YDU%gnLMFU-v?Ae<vz)6)~u|0x47K}B$-9s{#7_vy)TY#%CE4e<2ZPZE;0 z{%?{@7v)v_BG=nk)yQI!*;DqeYQ62&NtinZrg7}ox}fYTlAbkEyF{q)jlALPjKUf9 z8-EC%J}6e}aN2wM+XcsoUTYZBV5m?pve0f;dXFC%^RhquW48B-cJ$aqaIQJSulqlN zz%s9D2JX#e$)nTXNu7i$W-7MzW%Fac)QlTNrN!({&P;^sC)D9~dtR7<cFVkcEqkhU zh~OR7xx2f&<z;=$@C)M_Ww9#K(9;No!VVy!WwBGVXII^o?5kg5>3V%X(b8^}r*u(K zw9MJ=onEB%Zm)go0RM_zQB}o$C6GCQBTiL#7%ca+ArUmm8#FEG$J(a9W6^_a6ohTq zjn>L(df#B4P%j?U%}QjfQ;|m>zI>bS{P(f8>N%=j@t2EK(q@r~0!NRo@>qW7CnYod zZ)8bTvlvygraCys;<B^PR>xTQB7H{aJ$H=W#Nlsc{!m3|Fn)mjK&r9}CP&4GOlAtB zyqPpuNMR24();YimLzevipW^s>2HHw`$qCdeG1`$J~9zkN*lPI%VYJ%Hgd`kIZz!x zP-4$3RD$po7P98^u4yI(kQXV*#ME)c1u9*#Io;NA#Z}pkb9rt!viCE2L5J&4glsHF z#*P7;!d;tiKE5M+R}PAbL)2$*c1&orq_P{%V=(`pDnS@z%zX?Hb#fg5Un`LJ(H=9} zdiN(2v1j{pgn2{X68!{OpqNDa`jL0wLHx>zCz|l4Z`Y)qmvNnI!tft=f0<(6u1$w# z5>{5U^)+nW9KffgtBiQ=E2>lk*hc)n!-0F6C@7>P1DaH=tuRxu2WYA9{Kfk}r5cer zs75QOCiXQ6n1#rS!|<t7EE9NdwZAfh>by5T^4b6W=2;zA!^RPXm0%>lF;kQEF$0pr z0Ppx5tJor(g-7W#5%}lrwTn%&KL73K)SBkTuYj|1n|?u|&O!f&f#F0Av;w_f>QA+G z*<)V>(V%m~(aGbgM%pM=<c+M&n9;?THe`24wc1-H;5a6oN{2ni!B(e6W)KB3{DZ-= z=D<?)(dd6Mp&2A$xQ>z~>Np0cXG22DA^V1Q=?g45*OA<~Td)c%{+YEo<?4E_2bGEY z*y>JyxC(djN*fZxY>ldX71{`;tg&P7Bl?SZ_Jjc4)=~QLeSr`a9Vo<^3rgcV%c3kS z68`2m`Y%oBoexyE^z}<#3M?2$WoLx|3#Sr-Ad^Li4>DeNNuy3zY!+hg`QDVt=34V; z{y(s+-r{_l$TVqpz206$@f1~?;;^8J>y>M7=bQ=gI9;p)5*?a!4ku0)Dl`hklt4-9 zsD1CSQbA&b2|1u#FAs>um7Q3PG`5trU>XDa8G3q}BM_c6#--EYIA0czP9#C-N>hEq z!ok8Ar+^fA{=~ng*KADphOquPHP2I1u9|C6S~2K)yd77;+x}mkT(R&7)A2BV_{fYH zO?3<B<Rc*P3a(^7Pgtn>a2~{=vvxm#;NrNw{r+|@dp5EdW9>bdzU5us#y%L7Bx_-S zCzW!(I^t)BDrM5s`M%NMh~uTs;@uk*?q>PRDTwpMnZ7eqHJDcsBz`@5q=W(<Es7o~ zjG1@p-_ZorUXFlGf`l7>p>=L9>%nkc%W9GQ=l6wt^+eG`WJzr5T_A!J_<!Scr%zv@ z*9Qb6IGjflY*BEs;Noq5KJbgGf~v}npx6%${Pi~%?!GNV$vJq7ZT>YgOOcJ*v#2Mp zcAK<w&wxk0v~(TqZy~MA+~F4%8tVJ`^EW`TgNy`=1M8p+<AA;leEa+F={i?4%$N|} z9>1C;7~ujA787y_-sF8<UEvA5J=uzd?989se8g<{d&(b;>roo#eGUm#bac!ZMZ4A2 zMQdHo`!*KemF}(3=;yrT9XiF3#M31>gEtZ8V&URB7gZfenYfSK#<vT%YpZIq(k4mL zlMD#*nf+3>i6-ZsFB+faW;LIO=wQGVw{a(Jy+%OHX9AX)O4-b?A_=Gmk0B)4MFsR) zn`S=SGZ|B88>t)|^OQB+qv8@dnVd$@_v@L*>{mxeM`L3#$lJT)r&lXW$02Fx-qZ8; zdvCQP(yI4?y#_0&&K4s1RjB#)_BO!YRi?izNY~+9{jZWVR7u+X(cIxN^wWvJ3Gaca z2pyYHprjzw)cNF5X4|X2gO$$yy4d9bF-zGWS@_$13z=FKZ&p>_C3j%V+qb2LaM5=g z06)ub0q>va&K#Av;MO<H(f^TLPVayX>jwg)dUuzGMBy=+90}$)@)UdKPb(d)Lu*O0 z4m(1my3Fld#wSQ)1~*#pS3*A|X8A7!DdxW^u-8cZ$%q5p$5AlYyGDx?0CJFV*;*w? z>9dC)b|4BE1F`1|T8Ii7t(`3GoYJcEj2{S05E+Uf)lfI~EwW_flh7VU%tmNm0%+~` zXWx!sj%@cW_pT7)>hIIO6*?e?uY<ODI-C@Q36q6Nu>w*A1S!*m>BDPwtvNNkRbc*a zt#SRix&?eB3bCv3`~t^Zp>rq3*iK6c?Eb$?7Eag+^)njz1<7*raBfMdyK%DDckck- z0@;D@x>`A7Wec=e7Y2qe$|*4p*MYe5lMMknB981rV=@L=j%9pVF35q4v;`#6NB&0| zMEYfB7xY9t;DC;6$k(lR=u8~l-zZgNMNM<Y&7z~S>+}Ib1RHySRHnn1TG@`2XA;Bm z*=Y56qE2CjT-g2Ne<T?W?R<5=eh`=Rx8#P5$2HzxY+7>=7oBRgd1zqjKTfgq=fL@6 z>VAhSi~r3$=#gBKvzjz`i177>+JylF9unANo(O;NXR@Qm2J)-^A3B3kJ4T>>Qz+e6 zjh3G_SveE1I!LM(&f`~3D$T;uK;iq3b<=N`XsR0<rg~;(#`+^uP4U;LjA>U48N$?9 zaF@vTh(})nHaM~YKB-|PfnmhZaCbBMFw0K+5^x>8+W>onIeUlO29noYC8#t5(hXfy z2)oeM7<cf{v?Q<|vqyjRvNMC1?FS|Z2flbJ!<T;o{3qBS|5wo`-B5)9>3$vO>3hJj zbK#cJ+p0K75y)YC=7f6V#+YljVt;Q@$!6KoE?dt$a7ytM69GDdrp&d~&^rUqSvu~{ z*ZuxoR%jF{tOUQk1pH002wl6~J0BYYq;>(sLSkzfC~gjU7+>QhAA==C^!fStt}jAE z3oNs|fC;ClG9G=w(8$Dw*u*m)9ZzY08e7lWzLx8r1S?aGiw?uCuj$=N=iccm-uN@8 zn|gw<M!xrOoKY}K*4>|P>$4WWz^-JeiZx`r>11<|y}{pBN;bt1V5H#>8s`t16MM4t zzcKc1rS81@X<b)oT}I!g|GUxnp$MrZpEOdK1R@*&sXzJX?jr>CuJm%Nf6nW8+jc>J zU+|*~3zoR%M2pLeiStPm8YtC>I3Kj#wG_u!T^gCMqbMy0T>p{CbR*vC6=+5L9ClG} zm|r8k;2m8m+{RV$W!dB!xDuRW1rLrOs@doqlM|EJ*VK#Em6bn=1!lxvN8NL{!*`Pc zNZZ`0f@=dq(CC;I!lBN)OX}++<rMCxpsd=d@jUDY85<Q%iTu309E&lKgIkak9GDJO zDyZkn%nUP(H}m2LBrU)kj^4io6TTd*gBs9z95Bt<)p#!>d+FBHio{y@;`=b}mJUe5 zY!N9eYR9RXYkbZLTVKI;YG%zpI9T`ol5t{A5ELuHfH$r08)a~$f<~x>6dHVHzdx5@ zc>AxPnzHyPDLs)VxFXT!eW?V`Ql!;k_Y}qzju#X|jelyC9DQMU{?~-1%+ZQej<#ZJ zVrGWHiLa1_`c<D?wq~Z!J}*n+DAKM~s|zl-WY$44U8uREqF%I|<5xw4qCOR(zN=LK za93e;!g<1qmD9s5GjiP~P8CGsVzdxH%HU#slymh^y$!t(8`Sx1<+VpHSL;mGYfI5l zjW8{|AsqRmLM5@ZVjDp5?AKPrR}sjK78i7FeNh7m;+CZtCO6yn>$^64Q#Db#u0udZ ze670d?(2}a_=08irO$b*x`IPB=B_m8$sMr{0Wgjob%`AQa%aB5UXmG1k{KTv`p(MD z_zgT~poP};ngA<!Z{M<z(#LUuX(il&Lu8zS)zGHnhAoSwQeR-~VzD+2v8S9pXg+2I z856HJ>c<p!JOaIj0b;Hnrw_EjtH0L}`2|j^vYXouk_i(EJZ;J7DD&zv107k|%f!G% z5=)?CO+_JGy70Tle8AUn4i5nqxvX~0J$2KJ;$SoVJOY`Y3{A!790lrJRxsdcA<7|p z7aJF05b4!tM5&c`IncQXF)&$nZmg~<fqELRGL#5ub;^ss2=of^`fFP`IPY#qm7)`q zbnN9XF0DB7g0YYwNP2$4<Wf|4#7XX1`+}vl!XMu;I$R;PPS5{XtP%NQrjq6-u`uW~ zT;(9M5r<Q|1S@U5(Im1{`ueSt1R-`2Q?iaUX&*+JOro91<txjz%UaMoh1RS2ld=|6 zzwJpOsBJn`&GC)g6VLv9O8vN5UHj<`^IY^#0M{o~dDL0dcp-mVl@d@3lxvFIy_Hx& z&+cDiZORYQ8X;V9<R?g~^rPy^03<uo1@niVFa_U?^B+D~a!Lub<Q5=+bqo8vgY1;I zY8m(mvc>!2P^GLtDS_&?*0^CH4XMZbFyL*L4$&y-_s`tk65$fDa;%`&k(6CJk5D@3 zBgQEa{R~hh0VM@KEm`rvJ&MKlfvKx7pQn%KbS%U0Kg@^CnT*G}2D%je`ww$Q_(}#0 zo|d$m*Vm|oZadA5in5Xsy(tWD|2nfd%&h*%0<~|(Q%QMEW6i(o5g>`gSH5HYb0Pm2 zS=)B%Y(XuuAO|S5DrZ?3zT0|@$YAvt7iRcf7w{xdO*`m!xw%A0((8X^rJiQ#d(~p9 z>HE8Sfa?t{ti&gi=aC^$!FnhHBERb5AwkYAp)0JoclmX7Bna-YEQCrjFtJpIUY72% zD#_4c*V18E%chE}>4mw;bcejdUdbZXW#c?pd%i=T)PgmxAxnm078Mf-^2~D_Os@u_ zSkFD*$Rm5%eg3lTLjQg;JVsT-`68%sue^U?=WQiE-{nmGzj)7*4|Fiz?zN}Ppg@c6 z*yhpB5Bd0G@Bt!7dm88hLRD#pWVCAiHUkVp*DMdL<5krqO1+7iic2FIEAAZ=H@2p_ zy7?WF{d++#L|b3~I~u_ES4jEMxToCZR}_a(g4|p?(r*l@?aWb5`myi<1$+eiC3TdH zIy~9Wcb^8v8=0N_Ixw=JfEb2Brg&xr#^ID5*5S=6BQtAGCTfNKgII3wJutp)+sxhk z8>+Xr8cmNZEG~2F%*5j(@eZ!CI~-%T*DPw@%<8qG>LJW$zSqE){SwC$op)ZkBEFBc zICvMQcyaYyc=h~c-0JyvCJZ4>zR$34i4n+*a6K+sU^8u6%3-kcS}p87zfzmH$T14> zaMN%US9$8RxIQQA!pLhjKZlIw{eUjCn2j!*B96!2?{VA01pr+ab#HaRqnZQBQ7e+L zB<q65k&>OsQ7OzJ+sYwJ&S@z5CZSk_AGLB3rGJ4duG7|$p43w$;2pO7J7hr2vyi8( zSMw}ucQQ5LfYyNeCG(iXb4s67QR7*k{F2|#eBGc=AF=1I9y$WFUF^<L&D}KO=6G6p z<!NW4iwX)ftxd5smj#_6l<nL)b=)}hB;6rEOlJ;TBZ<8+!)H7q%x9d0(MiSS1jssF zKhtrvkQj8#F65c<n#iEavg%;2@yUju>6>k<9b@==*qC^(GW;ntPQjDaKn7$on;n~& z*^?LEYtwdUiyKzXuEKynWjsBzurL(XAq@vR9$V`9HCCEJLb8OlVUxo%p8`|EBrgd> ziiHqPi0IBJ{Lw>6p_Y@Ali~Nb)l!kj;#CLdw5ojeRubq-ASmhR5x6RWcLzQ}QIJ$r zlcdq7l_G#$Wu(F(D|aRwtE!^R_b#`K8xvSaA9b8UBFD8+6EbB5f~;EFgq6Vljn!=c z<|#U2X-SEvxs90@;m`P82YHehd*o!{if`s4M0{$QWP1-^_EXU#vPvh&5!G%)EvXG7 zzxcOWK~&B4SGAqj=I^3rfQ$!*0Vm$_0Q%qQC<6qUu)%mzH`?Q!e~>{*H*_#9l`dm7 z2=CF{%^=9NW=&0v5KN8`SX;)WoW2I#A#tF(diWPwDY~&qJY9YLUa)1pxEO&JKaN1c z%*{kb&hY~R*C|Gzv5c1jZ$<4jje$G*6#S@%La7#eczKs#8&~s*5Zo~xqg)th=n)(A zdPYAd49vFFmNOJ*nJJ*BP23~vJ+d2Dcdy>RzM`R$btUP1``HV2cw6|f4EgF6)1L=5 z#M8sB$U<MAZbkhrQt|E6vF<+HBy0!Iv>Nz04fl<i#QpsVIr*u~-sW!qBsvF*;&mgQ znbXVpkiOQ0l!7W(-zZg&fN*>bsC8p~$bshMlu=o9Gh@b2+-*0Qte8`0x2PbO){=b) z>~SrbTg-Ziq`}gzAw03#;u<@f?$(5=7vadnif00P(et$_fNlE3<&n)Tw!JlVT#1Y? zA_uSgFQ|i2h5mCg9g!^OD!D~EYuQ@T0rJ95xZfOk{C8Fl?MLT(h2G-q)9zMH`lFwB z%Ob|+>7K`2{7#GcLq7CgNtGOZdr&4>YJB@Q4HPY0_MW}E(gDd~rq3ZOYm&o6@8jz| zYeGE)WQI;;VT8%$iOP-MPBtx%u_TbSd>RB29G{&?b#Df+zt{{dNh~ew7f=NXj~ko; zX9Gqj_@ApdsqYTcN7boCyUdit1(iW=g1ot7qZ|oqG@W82u}E9`Ve}5?x{r(`|IE>n zx{ciMW)-Le)I(G%6t%0;=CokI@*%fu;TN$?FK^f|-a_OU(XtQMfj|OZB{0RK_jjAm z?tG&9vC^*X9dY;{>Suz&85iQ8nns|y>RV(u*-Q@hS0aqhkSzB3bdO{^Cx^;X-Bv8S zv;`2wC8nDWaE2^<PI$W5PL-Gy!{UY$vFHFjJ=+`=gN%b<y4wIZsq~N8RGVpAr)`F3 zd(*}$1!UIL|E78CXGp{sd98<Ki-lppjeB{42ic_G{qARsXkh=4gX)O+U|M|Jffp{o zu`(DsrSKzl`(cGjC11~pqRWa{yhfwQUCknTV_~I-S1_M9ySrJCX5}x#_6z$2uiuiW z-*mo+8|fR6&RFL7_lM;{6wRxV>?~9HVou2aJh1@>C9sggakBC_mGUcA7rYf}F}}pY z2Y2vIL#DLk_-UQjQD67sIxIx-;D3n5Jpzf;y}w)0y}STo8K)_j8(S59TwHb7z0SXa zK;a-IIcZ%~)vpHSRe(n$nD})81f}sozJY-{rGw`L-A|~hNetVh(Yitw7wx{X6|OgS z-^X)$NyNCS=p6?(=tvex99cT7EOt`wlY-8v!(E+t1t-yu>*bJa`Er}B;L`)fg7)Ww zmQkx76wd#XQrz@ssvw+j9{=a0?KbA>Cyl<0vn&>*01{6<R`|KZ$qP#h2#6aE6%nPL z^Uo!iR4_%zDHDbr+l0nSLwX&8g5+Qw2+3Ob1W-Xq;p5J(gP^)H1dq?n{iz6$R*Y63 z3?HAQva(FgfB-#t1evMRk&*Hd1&WmPDx}zh+}vDSmX@)YEc9HJ%GNRlle#&ZsydhI z8Yh+yAFLiRqyEA}%*+hE@uXy<5}|xM-%(3Hv`?zxeg)^~Aaj2o`h?!-2Ecw}>7yeh zWE5M0uF_>lv!kPo|LinEr$2)upH@lC#1Yc3EqO2pt)*sRa2*N%0wR@eCdOUC?T%lh z*H@CE3qLfK5doEWV3)8HMwQ1uG%o3)VX7@B768%6@T+VwGd3iA=xsE%L?3a@a$NLs z8MR#~6HJ}CQQ0|1EfZe;91@oMc-ai2!BxP@(v`dIYoJQizzdfD+*SJV>O~h*FE>>? zpj**+Ra0GGU0bbNIQMY>Z63GNAmMLNN3^@e_xxiF;*QvO0hfrteVF$lSka-0iM%{@ zo(I3=31sjU|9=o1D(2CoZc*Fz)sxzY5JRUcf7s*F)c?0=M38!~=7M^FAeTtrB@naE zCM;5-huZhqz3c(u6DO}I!iy)*J&ELxM^G+xqGb14NpJNOryIu}5oO=a8c!coUz<O4 zu5PEw5I|WA?@raD8qzZuuErM40SQEZx&N#lxp)((G@{jwmNLAA5keG7OQT^ShQJ<R z1{GI<oX3Xtw!C2&a5<pMEs-n}k}%3;<ym~-QRPf1#V4`5Mb@)1G_m}CGTu<f1$6Go zp9e@_F`t_hD?eW+3#mLerQ70)oIPRI{SLlqk3_pS8$`HETQ5wbo&8uW9zyqYAU#^m zwT%rmvXfFQ+6<v1B)`b{Xm!6nbW;GJBH7F4W#LQj(W>Na-FvayNzr=Ha;}~4o=#q) z!vwJ^+7SlJw`GdW2)YUfF~!dhkS<)a&CN}q0n@O*^$YvMhR?LfmcIQmY%lT`DXBf( zaZL<`Zw|rQ549u@jc-UZ%t?8|c$g;eXMI7J@Aj8H?du=sowoxbMZN6RvYo0DO*6@R z+Nn_nu(yIPj|)C3;VS_Tt&)#%o_b4qn`Y&k(A-wL&cpoB#DM&u3t_*vU!qoU{rFPa z85Q&+YiO#ladNb2QbYHXoOev$oAO5$<|oil<d!g!FjS3?9<Y(9-sb}%8Dxi0=&M~R zvybNOg`$OKh7@PP&USXB*Uyo~|KofL6zH?)!jp&buKeRcfi?#NV`KC%Eo?10nD8$@ zW&ypfL^h1W@e*KD9r#i@P=z9dJkqZbyue?65*Er5&T+c#^2gPi{bFlT7@XC5UpYd& z?RE9zdCw#Bkc~~^0r!S6x-jQ&Ex1{K@2%$TBZ^c?wr383(F`YXT=Ar#*XrjknByk& zW97jlWkfTSf>uAfOLOw)Cs7s;QMf;$VfFuHMfqORtzWPL>PAA<-7Sw5(OhpN7wtmt zhc`5y9*d^Xv_D%Oj^0Jjd-|4&beSWSQBjs6jwF9)l9(rw;KP^TCQ6oti^dxn(AqG* zu3&Bz<67e4(zDKS<w`CPP|N2{F5pfs;!Z65X(n--CG0F#v*mMaT4jJ#unh{YKbZSk zNahy3H%U}ARrjX_*c{$R#ax7%E%vy5xOT|I=%GUIA#-L3udkJT@Z<%vri1<9AP&dY zV_<?9^EJ{QPem?=<MFj{JT~Kx=q?4W<%MLjmmXT)&g1;O2Qk<sL;D`39{+s;(>2%k z^{v~S@+<d9gOb{OodRwT=OOMuY;JP$Cqo5*Za}_2a{o<+9smnNba3@>j+wG~;UNT+ zWpm;y%k+O*{CqoR73o`9R)%8b$za96D1CpA)*}ZJ*MtG*<;H`auK$q0I`BBa9wTA3 zU2GWH&wNO?piPV2W@0Rg&%I^D>nDfdL)@@Mgfvh|Nk+@{(G#1Qun^jOD~6k9#-2vq z`;g!T+&ZqXt#z$TGlS$S?9g9v%&5WG_h+3MYDjzb!{F90B~4!ryJbr3_2@P8suRz7 zdlLQ`%TbTw_{Gx7I2e0Q{~%r#wyBccQbMfz<(1|%xlD_C&)<BCwnec;O3Tn|`}ApE zgoFuY%K%5pkI)I_nxZwkI{n7sA1#usY34IqR#3v%1jUrg<Q=j!0vR;BB<{i3DwkSh z4a|CFX&$%&pIr~tkAf}b<iQ_pq}KnQw16PdGBAy_uX;b-04cn20%gikUCrTrvd2*f z&oP{I3D$RnQEBG<hg>Mt*EPl&(J=lk=J3N5E{wFs83T)uVHPy{8C1y+&#+I_b2rsC zo=X*<e^-<C9moBw%F5D*BF-0&k4>hUE>MrRR+=&1D9rKlFDB%MP7H-J5+9rT<76*k z&JBa<KH>5qiuu$1-H0n}1?8@;9)Hm7fw|K^Zdsk37mSpTS&eJHsbk|&mHbmdNOBnd z<-KX_XWIZ5C;O$Lr6GHBIV>U9gcO!3%em8z#~D$<=RSa_z8{7g-pW@W^884RNcmU0 zae6gx?%&cv{Z(`Fc>2~j>6oD2ey2NakA9|cok{~=c{bSsE5>-<k<OWYAu71YI12k- zF1zCEMVL5rXKQRFMLPxR7fQVS;P^5#TdE@Y_;ux}!SxT}g`IUXMayRRw`Rmf_c_w8 z-;axNfh&d1EFy!CiQI!==f`dkL<kukk`MQF0d70OS%54_!DB1XhAzCmu5PfSntyIY zvC35c-#Cxu<H2~k5R5L0bn>5{$t|&#G}D~liQeU_JUA%SiSs3YzxBOL_66&H?)wIK z@c=(wN(wbcm%F8M76TR#ED;|gljaWSuP73Rqvf`|SklHYu{2T=Re|yeD-_t{PY{iF zjLNPqEbWa|J3*Aycu%1z?A~e23i&Z^DFj<rpR_)IBeLEy}z&+L#e(#&G?qg0Iop zUhYHxmVV9#qvmkDSnt{yXw}H<w@=HQ9qtXdc!ieLsE#{f82CB9Kv}aVwMQ50yzab? zhG+AeN3SQ%<j1qYo4oj4^DKNT+NQteNpowy49K*~7__xcmlwf9SjakYMQUs}tek8g z`~^W~CvUYqVS=DK2(Rw%&cdfd-HZDp@Rg*^XlSxy@y$+3h~duln1)10>g2m-`r{_k z%{Nhv_uo7>*6ZC;vlPvezQ`AB#m(SZvZV-7$v6D=wnjV|yrM47FjvYa^d_R2RYVOm zf|-nQK94Pt1-qR3wpm}P5f2zJkh2~sxUrl04+a*(i6hci3dn?vpe*1UGDOJP`&HkB zcWfb6?=g(H|2=nRM=R=ie6e5@3pZ3ENyz`mYlUWG4lZz1BuYaqj4|AfsW>oqqXckw z23ifXwj`QR@rUrz)7RjTj`l`8DXODl6#Zo<Klu<GwN4~AyOx!+0^B?zrQyIy;$0wz z^<<FoAh-wwSx0~B0D04<rGo;Uy}jv4lcMRg5WqdXwBdKpW>@~iO{<$c;Z4H%GoQF{ z&=p|6#18Lefz}j2)4H+C%b41S$;o!`LgL~S;yuI{es_1ix3@kgx0|smPtQJPW&>oo z#Ky3KLk1(EX|bRAh@*|##%%}_c%Y{zI46kuHLIT~!XGXsKzw|{!tx+?ZAu<tSci`R zZ?u>==^8x)xW<WvNQe$t)2X#QtbJ2hPpvS=2DyYu(k^wiDMMU|UNplr-^K^3v9V!! z)f*Z3>+7rP>uP|(l;oL4_dn*GKROw1bVVv+(|2X%9{i+)PQ2fLfz|XzW>Te#L^++` ze+>|g_U`!VMrYmR>Z3;X>0&NIe|=hbl3v(=OFGOm1|=zyd@ZHH%;r^CM+W17f%J5~ zgpLwm@X$M&U0GVTqGJhA`{MY`p%<0nbxj%LY+s10qN@<p`9Pm$zqqgtH;0}ZG|Xo& zkwAo%G0n#=?b!cC(6xQ_s;d+M!p6dYE^g*plDdKge!sK$3VoD^fp!&Ozt+klW5wMB zCFE@*#~e0rkDzq_P`tr-X}MM;?yE$VYKASYbZ2d#HvZ#}07v?=wTHCIkVmMRH)VHt zx_82G#HzL5-r7n)5mkMqf;`qMl|uueM$<UTCu7vQwqoK9F!}MyEfCQo68a(}g7!D^ zW7yr}$v~81BSnclsZ{d{>sloKS%7y9>fqmCR#x=pZ3BWBc}30%hUH52tc6T}z3&FG z1j>gZ)dN4<y1AaOnyv?Ilm5ee<w4|OGmaJ9Y`1sZwqoBdqy)$hJug~EbE_kq9cEiQ z{?AmxE>xm_NJY;`C0SWR^n^LdHMYdEO{>&7R_NUphh6g%8VcjKB|6B$&DVPzSNXE7 zSr?+~y5>a755&E$wYCeWMg+qOf4>YqBo)EYImI~Lqv5sxT}=>R@tGTnhB8=Rd^@iK z1qvo~WH?7gMiL7j+yof0YyQgkXH$BlDv&pvLxuSj1)T7Q)yau_0#KFeilnPn;8l6k z77(Iwukz&RieNCLj|<6^m`dbL+BS70qNiBRIna}0q)QZueUOlIA?3e#S3R7j5)ae` z9cxIuNeSe~Q-wb4_KgXMX={Skj?kDvF6~_e;mLAVq@V&VknzQ*2#^S+#=e?3Ubt^( zEhGWXL15mudm%;gjo3|74eh_aWfGc&=&&^sscb%9Cniuxk973b8kZ?qT+M&oY$~;X zjib-@hyduz<izPTmHlvmKHShU)X;*uY`Ql?(}De6R90S@J{M(9UPj!2ET=}z)Uj-@ zEIPJZlBd1Lc;`BYC-@~E<PFG7ru<r~+|)7NDyiOO^#MKfZqZ*)nu_t5nQ>9CXetq& zzGuGIF07+4p4r#RqPNDfjOPt4x!G?L_7_D_^C=STNt6}c%@zTi`L{C^yjWDx&XE=8 z(aqXN%<Iv<3pTAT<sqLsQJbb)lrDlLTF42H1B8itaw2N8lY8ng$u5y%%!6QhypMx- zK+vwK((O=aZDzH&p+ZTf+Sg8ttK+G2ewIeh=(Rp1Z(BsD&KdTFL$6j2OkI-jB&fxh zxrXImQ5Rog;{@Tv+Soq3!`}L3hUYzp!+SL9eFK){+D_AD^-}1c{QZf?gO%1Qc7xB8 zb$WY+IPvxO+KpXmroZ8&$P&dPBS}7H-Qt~|@#-Wp%Y9D7KXRAm$i~uc<$QWdWFVm) zZV+~kP}UiY*VY-&&C3Jd-qHegh2|@NWtd|rt{<S5(KBC>&CotxN~}?<;!j-aipIMH ziN(v|2u{Xq9338MFq<12A3>Y*^YsAxy)GC|I1h5r`l$s6rojlO1X5%QwcsI|9D;J7 zf>{h4fUk}_Bb-9F5<%ZW;1!BJItXgIG^ErC%Id`dz0O<m4G5De&UZ(ov7il5tN!Rw zs7aKR6V6~vi<~kRpW?TJ7(#u;e9=vGwDwkc<+l|&U8xssNE1-`^(J`9rVI4iCXbrZ z*m&O#hE(}tT2=Ec<%9SXn)&B<wEsxooP3sC#edXuAj8l&(D^5D<t>JGgea>M(g*l7 zDv$s{H6H+YDEsQ2c%HrV9=>(-a}L3mdSxT2&!$TO+ClK=iIqkXaU{!z6+&owi<vB0 zSC;%tp@yo&M`;H-L-;GzH|Wm+89(^}9Y-)S-NFgb>u|8|Em<))VUi0Il1g*!1RQcd z%RrN%0fOkSx$HuiaX0<+Gn^{V@DO6&e=_``>TqAA0EMzFsuZ4rHTvieNAA+$C=YO9 z$87aT1CV8hmP(9#)nwaV-_@!Ha(EeAAXZju>PNNXPTRIg<^6;VPGG<|C{y!xp`Sa( zi48G=#oSc$GiX<Yb+~pV&9Dr2Y&H%kOBY_7*p5`6sBZgt*HmB4Zd&J9T_4%je!iSZ zL}=%-+cYq+wl?rraA}cQ0Qa<0d%=7}!sGe}%XtDOX$qmrb1r<xk@UzHT;BKtc+ODN z+AeUuh|v8<Q%GiW_P-C1(7>16?X)^STjR}D0gd|2yvu(CBBs_y^D8Fv2?aUwX8PrQ z2ibwmf_Zm{kjytSQP|_f^WlH&D$au$0oXHQZMCmlEsr-tNkuY~VaROaq`BM5rkfM? zoNJ!hf0eIP3Vuyn`06HqBtdnAX;H4$+&6itM~r~U_2X8eqEa-;BgSZAwv{Mi3O_`b zA(u_0av$+@_6mAkUR-nru&)enT-Wr|aRvwiL<2yDGnKyyrAq(_1#BvSxk7HB7<(^) zx>u*s5Eu$7&-g<7kWiz8`@t*cz7y5Fm?;KeH(>)@i+o_4p7LUaD~^RO#74*j(=tnh z{<Rbyuo%-5C*n%ciO7zXg7_3vXEDIh`RmX}pkPoSZ_Lgk<LB2#Re|(qPotF4%UeXm z>rtPau;oAR4dVpc(Rsz5b%gwF2b6ughwvMJyJ>hEzQ$N+?=OQJ8Ho5p2YG1-icV8B z+*k$53?|d6Tqgv#3>j}Vy*m{hl!^KvR7Ix=8fWc#Pl7zF2+>TP!PZH-WllGggyf<; z$2?HeHm<u{zmChb;;HuA)l1`V7DXg4T9S8O<W?8FFwmWp*Zr`u54#rgM+btV>DwW+ z&4ufZy=fgmm=pCYX`=R&<n1X%O&a81P4Oydj-V))!wbD9pDzb0%6Bbfai!c!?Z?E7 z?DHJcHy-(Ha$I9;e?;l)@Z5L6gE^^!MvHGu#=tA)h32##p@X2OD(K^;^!z1ZVCa1I zK5k}Dj{?T#a|}xsgK3{EdO@F8ww1cK<xMDbBm*+Phz5JSX(}|qQF8J9t=k&0#h7C< zT;D}-qBh2~3+I$)Ils@Z5h%tqmJxr<yQC8ohy133^$L4E2do<x*L@QIxs-9do^9qx za=MeiaVB=gKaSa1IYgmGklx>sZV83=`kX1CNL7^1*$CzTMufbjHo$`^Fn7_(6L#MK zUwHK2CQOYF<7>78*86Q)gmMyfQxj<*V=f@tgAoP19u#Pf60WcS>wsQJ5I(X61kYe5 zOTj}NkhKhNFkldQg|O4y|4VAu%ef7PfS@WgbFq{j<YO9fLamwR_)E6fl^0qg6Y|gx zIz`w)T*!;+G2)yxL&&hKMKZO)dk=9p4}GWIYZ5gJscd-6c(T0Vx@vlyx^e0b`LhY- zB|0twgxQU5-pPz@b{CS{AGUdNm2<Ohf@k&h^qK>^dM#3#BS6N8bF^)Wa`6>E$x8y+ z6$UnB8U6NmDqn?}{37wP^oHfxnD=G2N^Sqx9B<(J{W8z;8SsraNiEAKB_;iQ_L-s1 zRlmH*U(@Eu5#&ve+i&t8kq#PI7-_?<nR4&2ok*(Bn*M2|@Z1az!uhP@ucB6DfK`15 zh^7<b8>5)jnVEEPrmkRV=6-%3V634^;OP_4+V_+C#-z8OZ8Qad8dp5?v=dFZ0@DC# zpSOKUDK}opc*7O?z+QcQy|y1jj&gbqlas5|35<Y*C_W*RyGYR0g7K?t8<tZ0#^?9! zg}$C)CjPQMfj&cYt6p>~w4>?A&svs^GWHL_^?dO=eJ*uEl%m=ABe}!#z4L8oX6$#V zgJPt5a|c7TSG+3E@f!WkR>BtMsR~CklPxXnB}s-Zb<F2No=cV*0>TT^$ugO&3#a3) zLDw!bbG+kDYE{F@Q^9U`fd+31es`b!4t>vcc)@-(Qk6cjcbvEKZYDbS1FK(m|E^rL zQpGHXPHa918ycQ<K5=>N&;7eaiaeNkoWx`f?O>HWVxAH%uE5ls{QR%7zfN*TgC3Vn zIH^75i=u&npgP|!Mgix6r?8_o4nAn@%vu`FxNF0_PY<vG@e!Ty5|+#{$58#4{q=Ro zNTq0wHqD)0`^T(<YAj>O2+>!DjYw%un3hR~>X}%}E_jGgKymSI1le{EZ8+xRD`0kZ z&;^@dgsTJj;tBEu;p+5O<Mh6a1s{K0<@%T6?|;Au_mz2w*FkTn)khnStH=$r4c4w@ zZm2Cf8FEm7Dk`l==jHx0fQ2+FgIrV#&}Ul|>`cnO9#FR!&dVqXUTAFn#wE4z#KZ1m zgE~__Mv-;<`a##ki_h*yn0vilm!)kx+_fBzzolq{jXs3U>HU%mK+WFJ^j)5@C*bd@ z8(`qniz}QIx|V=}QgRu0MSy2hdNkkixU%q4GzdbED?f(KI6=Gw@wZ!~#@&)D!n{OY zU(-6MZgYa{zhCEf1SNCK<~%c<?=!)NP)f=}(NUmcUYOVF1_6hX{8&_9$Rm$#2S;xQ zEubk<qtA-b(7~b;#pJt`LU*$hU)h_@JC&uo$))5Dk)uq7qu_L>-toYb1wSg0J`CXG znt8$?bHoG#-F_=_q0j}rW?dco5s4e%v*btV;tWik=Pm9WmX;`^%snQl6^oML7a@yN z0qZ$yFk!u33&mOYxkG=k8c@WQxC|Glh}aVbQd>41DV^j4uxk<o{Sy|V2{7$%Pp{FE z7QN60Kcz}mP)ivy_!$d1+`Pl*Y~=WOacnFK7SjJ|<0t_>0v0H)_-dKIa6<TJVrXnO zPOEF-#79U>zXolOSjA4vgg)Fg+TT7X$X-ztHiAQr>YM_ZrBhVYr=URG+c!%(JC$6* zioE>toM8Xsn)sP_Y<X1T2u!I~28@T$3vujTnHk5JJ>OcQ0=%bwsa9-5S7)axs6gGi zn~WwrW?+{X#+#*pDST_AJJL&gO3cM&*IU<%I~fl>P;otJ69i3OAhRF~4^=0AZGVr! zE-Xmvji0j9<{;#Qq%O7?PUL@3hpp3Jfylvfv-czlk7sX9tixEEQA{rI!rS_CS<B!W ze$x?PL__<EvDzEhRAt5HoG6p&NWG>=6*4r%W(!j_J*ADFt3eZ|Z?Zo!4i*m5B{eN% zI3P&g4a`q_g@^nfNoO4t_5XG8rMtVkyAcGImJ*~JX{5VLX(<uuT3TAVK|nfo0qIf@ zSW0T?@cDdy&wo3PGt4-0_rA|P=XC-DFfGn2OyoYHrTt`@lY0NP#l_y$Vl`QW`ytOD zqoaK)W5>&Zo#=PWht;0lTxN^=Nxdo2(Y36itiZfOV&qh&WYzh(c^w=`0Y697VLKYQ zUk-jZOofn+EG|+n+HwayaT7eR>H2wI@qGchjr(hUdm00&L0be7Hh3o!lnW3l?!LdX z?yyhZvOycvP2NH>d26_ETb@9|!StJ>KrFm5G6ar4K;3T~N1BJ#BO}wR)Vp162TUMh z*vi7ntQrB2Zxj3i6XLfa6|D7EQK^M31Y5pHS)m0LhDcS}8MZah?oj_JTDzyn-JWZa zT|L3rQ!OR^ae=6-i|H7*;d3?4_%Ry|j9`hPJJ3Kgd*dc$I9gi0HF_Mfpdr#rZ9%i> z<m|4nA0IU`*XJw7m3b|eXzSj*dMqw|bZ>+9vh48wI+NP#CB3~#%(+XrS;=f>y-!(g z{sFmB#e$geKCMi8*J8fq@eKdr<r3nchOTP&{^xY{6AD~d!-+2vpZ8{Xaic1v__);R z+T~_MTMrc$<zm5OmC7$iZ_!gk)w3OqZA3fX$=`WA=ob9?-#RFFiB(hBg%&SPxq)Ig z(WiW5kP;~(lHZy(u(p<$2yDjN<;tHi&W=IZNSddX@<&-bf%ab_kAUQ`l6L~-Szd7P zu#*+C$s(e8TV!ywWd4fDE>cR$7lj;EK_wlFp+v{X$j6ZbJ(&YqDD&cFJ_8jUfKVQ` z!3M_-S)xG{i#d^zkl~)JM9C_c5ZlH;b4hPfq?Y-EKtL2n%0Rr?q5{qlr+5&b&H^Og zQ<z+=L++3WUt(UA(J8(j^0PZB&_TOQSvJIqn1fxOrKKHRr@8pQZ#$J^8t$V2bf@de z5=ZqCN2ZrCx`@t>T6w5uM67=;ZHG3f*Oq8d#*ndlEP{mUQM?8XW-G@L8&3NP{zCd9 zoge`Jd6|IiuhiF{nQ~VrRX=a~Uq?iUK5cjvd(`M{g=OA9I~{gI-F!G)eMT7pTBJy0 z=w0@MX<bAo*SB@F&iX=czA&5YTS&z5QpI`m6U!)K$O<z#bXEdkvIXN<Txp)^bYC)0 zla+1|mEvEL-a8}<^Ea;w-v!-+z4lRJ0X{{dCA04)9oXpb*X(}OOz9TQeJyFWwk|f$ zsQZ+{`L0IeuEu$W#&{l%wv(TH9aXlryZ{@@JsOg44n-Wf%<1yhaT=b*3g(xL&qp~M zu*-DNs@%=eDNx+>x1pcStM6=oGVoPm85Sgc{6`8X*jE&%bHjhaSxlF9<?F!5i{QPd zJtUs;c%Q05?^(o(bE}>v=O>uqt2!_!>~yml8Ah-D;{=}vbaL*B;uNdNpEbnw5fA$k zFK)=Tv7_wAqCS`759R6UI`2O(V4I7xvniZqHFdqs7H{G1!cK-1>oj0RC<dfhAv_)w z?8#XL^5vI!1uB@tlLt1rI=4FBy;#a9Cg#{k(?#=4q$hM4h!u5GCL#x9n&+zVaYCO( z<@1j!%rnBb@nhdwW9%nltW;g{+HUD<_Gd-Xatv#uSepx_I_Oji%SJxRiyYgTPv{t) z7|fF0BaFCFa=E^1Uhv7@m%l=NzTL5*M;vhEiTf+h+qeuDkUgu+@5z&>kbqf8jX>1x zs2!RY%(I5>*@NLq!eO#X_nKw|NEOh+nkphr6XSPAMk33GqE?;$i)uV>$7bD{47PrO zwNVnULDS~%dN?;zst<kYf8Le=8XugSIX$8UMC}m`SHgi1#H#|@TcH)eNjqWfa;4O1 zGk;-q2s7CEg#up)0E*ALcO})Hy;lLzGW?wked^Y!5f#k$aP)ggXH}KOViAOf7{L0z z$vuD`C&2S&Eu3#Ddg-Nj4R(zDx*w^G#6V8u0Du33(KY+Ai9VOYHKQ>g<;FItM=Tya zU|Qp$qcn(S%{sbKS-Y`W*Hs$YQ&|I69pS-R)}B=1K`YtTB*9AS*`l)A76E+f!W#95 z>OWqhtA%HaZv}18Xz>=WhUf8~V(E_VQ!Fk`nkwBARB|vjwyA3`amBkwpcNjXjuau@ z5?#bT1qm*A3FWIlCOX5A;S+#Q6Q^NyJ7E2wPUqT7^m4iB?(%1WToT{YF^&0=>663b z>d<<!Dod16zT##5PqGbIk8xzv<<niznh27UTOS%!sAwrsNDc@E1?F#3zWU`FFcBLO zRE%spI6W;E59-p1mjMi+Q%8boAUAgRzo!%xRFno-YWGQzn2KQqARxkLn`4b8OO6ar z!KbsM7gQ*NqNDsBja%@&t_8sqhwjqS2JD10)rYYlQA`1xe-e~JXTLJ+L~xQ0vZ!&A zrtkpkn>}z}H}9AGJpKm@f)hh~wGN_QC5U7XGXzoJgoL>lZ6yy8nDB;?<D|s)by9IS zYH2_JOPOiAbF9XSAdBkj6XW;wcq}h<{P${YOzdIoiaFSFHCLyd`_A+vb|RQvHa0pZ zRzI*Qox0~wc`W|}=hc@-Hj47XdU{<;+U^wzITv)_@(mxhpAIZll#k+Os4xO3X*iq~ zklXfTaX8?E1a$frh0>k&)3Wh9HQ42+aeDoC!dFkD2dAlJeg9e+XSc!%`2obkbr929 zhV4vDdP+?Cz=Hc$GXAM<uSeC2-^mvU)JS`UA_cB0C#0<}Uy<MwJ1fAoWl$Mn33mKv zQ2F^tz0%S0G)JO)FZgR?LqASK;HCilu|f!O^nS+WUtgUBD#VIAHC!2V|MnbyLjXQ4 zzOs705lMKN>l$1H%I$=9cX}SbDk{oF>Mg}XOrpW;xy_KU`Ds+b=^3LIoAx^UpRWgt z1Vpe*?G>TV_Cc<$cD}xWc6RYBb<g3YEqp_Qns4C}IFR->!_!R*db(k_+u#uy5WB%; z4h0r&^iq0lfU+zU_w(QvOg+~F_ti@`u9X}zq?Xr9C%&sfvFRBerf4;;%70?cKtfUV zHD;9VzDL1kWzra|7zOC#kl_!O&{Dg<895u?_hp}E?TE(-f>H4EN$0=52s7y6Z^46z zpdrHt21u1acv_m8#9-*u)LFi{nb`=OD#}$!UaYk>5C?O-W&Ms14JMrqw|eg8#DWlI zcscO1SdM&@LP}Sro%FR;u#Rmqeow?@{k2{-Zoj3qP4JAQN)r!nD#4+NEUbJMRl$uk zX9g38h{TzyML58nPh4o&@cr9+hp+lv=rwCIvmCF%MdR1M;~2tuX(VQTT?0kE3Qo8N zBK9?QD1((>@iJrj)`gV)yy}_YOpUD*BR@szhoas2t{iA*DoH*pWkw1U^?#jS<_vvJ z`B<aLPjCH(ySg}SK+us-gfI6N^za|4l2d60L_Zl=xnQ6iMcT)8T-l@ZhcQy+NBo%v zDZOt3{0$DIk)Qzy+}|#Gr-cM>CsnMm2AAWtbo~RPz$F4&2=F5<!vYM@A!?u0;7wH4 zTs(X(iGb61>~^-|eN!%9bZmG^8$tDmM{f`LBu;t;U@dX1qV7M=dcl!kfDy=+VFEo4 zGu8)9_Bh-v95hG@#5MbW6XT0?z_KxAYR_Ef`z9-)@wc|i_1f#WY0??9rYXAo(T>T| zAj}!b+70iwBR8YDl@*2oknv4vEUgs)=Eys%y(HkTbub*cE?u3h)gMjb9JXLi@?WnI z<CQ^Y6bdR~$27;DTA>*xZc}^*HaJ?1!}o9-H-xj_@kmY<3dCdeb6(o<kkWIW{<X{G zG{YrLgg$WC+Rba+9c78SoS7nfI{Tn8!Pf$(H}S2>3F_9GHCwGBn&0_xeHUuEawg#J z6|Blklz;7hu>K)x$O~r_3Ohb#Jpk;JE3WM6_^6@b{QyBkl2BYSzXUr41Ox70?m0;% zL&%E7eSP8hJ8DHtv1C#fRsjJ52O@?*FPQ_%0RWoS!Uoik-PpJ|;sj%EwntH9`7C5u zmA(oR+)1<;)Y9_n6$yBUsb7v36B9IjOoaw9X_KME)iJEWQ;1YHsrCQb09En|<uoGl zmXi6DRH?)==-<ivWx-+Y;|oH|A{TAYlXhbwT?2+p+(;KkRv2t|jZ58LM!+pu?~uMx z<R<o#!Xhf`r9Kgr6+BhzM)x2GNqyF_waJ`3fE(RnBFUd8x;LN|%%{hncz$E-BN5$8 z6FC!6nFZ>y)kJoRDI~ec*SYWG=_Q+z(R`EhFpKbb4NNT7tEafCQ@J+FXPEch(xQfy zWJ95^<<o>v#Jc!R%tLUiV-@$eRWjp)i*-q0^D1bvsxQemN~Ic+YuA(jpu9NAML2vh zjQ_-NC_Z)(6~DxBfcBUeXyG;lT2e=bcSA0Z&;SpFRMr6q1gH2l+Yl$)A4DHER#1c^ z<1#!2=P7TCLmN#Ihnb@H2Han6ssS<COMefXlwJ!-o5^&YQ2R{v&3u7_g!QxK3sN#; zO$E5}ONkV{=L`qVo<*9T6-vvafe-qrJ(XyyG+@VOF7>YGD-7gtb-jLt61&9Yiw6{d zofwUi`x6HQ&zPNkJoDtw!Q}#-+}!nABEuQCxxNCFq;Xl?GG6iSWJMKRP6HV{Tp{I! zeC9}hLNE(Iq5bjds<c$MbhocEdfm}N1|>oR_)=hSmsbWAaFyu-ld8BF5XN^%=22m+ zv(6ws`OVJNRVgKEsNI0qcO>68{f{?%%0(K3jir-JlNYdX)JfcNO3IoRb8lzdG_<nC z1F1DMU-whOM*BF;RhwOgJu{)h5rqa!?+~gG32`xDpSvFkB=OO5PYAsqElD*d2Cq;T z{H`W~KcvUxpev8srKLaaaybYY6*MSB-_5Ergfr88aK4wfeJ>>523;ED&?vG;?<#{L znqGQcL@&~tCKj&13*Qe7*7CeFwpJ8W@la}t6qbI6wRJ>!hEu^v^*$F#i#Y5#-xKQU z;o*|W&sO^}A)qc_s<SWf)pMevDhG+Hp{bc6*Qx7kT8FDw;;WI|OK-Y2fH=Z=Anjxz zCUmf{2OSiK`Q@g{>iH-`5Z<1s<br`>ulRwEhlJh`KhzC47l3;2WfRJmVHzJ%|G3j# zW_f9|vs6rSq^lu2y;R4+e@qg2$X?I!Nx;mD&r8felnoK*A~z^Ok7Kiu>eP8X(Qz%B zVOXEg<~=?VGztqAv1uR`8PQMI1|>cfPojoDs+FAcV?t*2Z0YW$Yvu-44+mCj>Q?6l zYU#}lrLrlqi%g|DYNHibYV<Sl7w-WW)yk{N{%t=iQ3aplROY=NSgo_T=Xd!^*Klk} z_0ZH~-GJI7>G0`>VkqD9K>c^mN|y`YV^cq1WcfC-3tQ2c)M5)167c1R7!ttg_#~NK z+7N~>Z#eaC#WVgT`<zrhwlaj_$l;Y`(O`J^lezmV6n8pvzBD4~pJNsk(7!Huz<`NL zjDACEr{wr$g?p`}8}XeXS!L+A;A^sQ>{ZkhjVwn@2o)ygGcTyc2+65?L;il<L$JM_ z1RS6N+R(;uO!}?G-aISHXeSyFaN|FzpHW{=|89K=&-&NOCcpCtW6JjeO5=qEvEMjI zc=+VNBT<UhJ!_H}Qwmtbcr#y>&t-t5^5~{_M}V?GCFVCtNu-f8yS5F;;N}wyFbytd z6|YLE@*gsj<Bg55xi}>#vqW!9g#H24=&xPOV)J~{*)I(xXxh1D({Xtn*5SnoD;sT5 zdm&+f!`<_r#{yS}MQpM(FD$Sk^X^@fPOyKZZUt2LgBTC@bTVl>OZzwI{d)oTfyNym z&I^nzBaqa;ht)xXf<`TkPz?-V$tur3r~|n-6Kw1Jl^1^6pa3S85cF9cK1eiK4n=oJ z#WjD4-AR5_fU|Fri1*3%`AgVuoY6<DqhSHQW=F=gVdt@z4_;faxUiw3jy;+(Y7OFl zT@=zAICP&b)k(-qu5^^3@5{sCVbL=U^x%Fk_+vE{A`uDxbPkt@Dcr(Ml~sZYL>9IJ zBZddJuJ!$5TbKj*)D7iH6BJB<PG?p)<>5*$eu}-(OMtf-_GxRG^IbFR`RT8XxG!OU zYdyR`A3a*%<ir)Om$s0DF+AF$7o`+k=yGst<TxZVrdZL9nJK<I9Sc#0SdvFx$LGQn z^3hc2`O;c4wqG{rj48IZEhyI1NEjN{^MDFop#suA7C4a>6AjSy$?01rk#ZymF+In| zP~F~4D8nX^geBvK_Pk$E(*QRLd(#?rtS*g8tq*%G-GGZe*d0`$=|C1qPglSinJLyF z0^Bm$^%x^Zq*l42r-*|qK`ly9d*(=$Y<U`W>J$;ac*6uYw-e28%qIL=cz@w(e!m~? z5&5mFKzD-r4d&_awSO&aZgp{CLCaw}XHYZ8TKG*JZ>WH<fB6!|6KA~n!K{4!#9)}O z@rcZ=Iic=$DPX%?H)00;``BqTw|Iw|-b}diQOO~vt6VeZMGVy%Mb4eKib(o!wL0E= zE^#x5m(#esd&456j<J%=_^-S1V-!NIOqX8K)4ma}Zf#Xsa4{$})zA=0kL~LAtDD}= z)ogANeV4K1c($2g?{8rdrjgju+};qk@QL-_qeKAvIy1p9`X?)9;G6K2j`CfAQPG^j z>~98K0LF8FK9C{76)QpsKSQ?oab>=~Q+#kb<?{-U0tH{mkcYnxc?dq&NZk4ZP^-*v z^OD$wnxp?3Ji2kj?!jLfoY*d1|D^6mKsYVS_`D8JMD12A=2(!!79ESiMttA-CK^NV z(2Vv*UU;Av;1^VoMOGY%{@sr;wv@4-ee1UI>oZzrwvN7usIi%Z@d8KadC9;__e1Um z@i)13z%y}EtZ)Vw?j|6xQdcuLHes8qEf@Ysxn%vhgOX*8%UqH%KQKD(G0LJ(p)%y_ zriBwZIxNRfwQF3;o4LzZ1-w7GFfeH_aM#>-ko!GD1d0kF3*etjN?C8JI30~aLfCrz zmfoKu_<baIM-dT@3?8i)b(!^1P=ELs0kE-OFx%7W1Fh3c+3i1-=o@*zB{ZU{;54ll zecc`NMYXq%I~O?+A;r{3c7lpWF2WpfadR-V?vu`0Pq<nToi&NN2&yC7=oR3PLJkje z4-cu?BA=^uIDfIZiDwO2`*)%fehYkwgzQu^O@{4;0%uCP_fZDX;j03(z|MBXJPCl? zidv27prGKJOu;OxD_EYza$HF*iFDcgZ#h*gNjWNsb#Y8whjqcalI(;?5<gBSH$kg{ z7xI5>^0=QQf;ZH9c@ebqr&y^+3btK5M<&Sb89P1S(ke-V4HuzH?J8Ac`T>E}IPKg= zCM9+_?iyUs&0}RV|HW7{G)TsS$Py{M6Sd*SMC9xRujDlW#Ow184srKVZeSq#M;XbS ze_@Kgy#ycKOgXLZLp>P1pz>^|L6Dzeir$mC_j{Tbc{@6f&z;MLey&H4%i4Fd3_gne zH+WB*g->lVHx^cZ*ZO`KTG{BWs%Y5vxkb%wEt*tFaXloZ=~AvXFCTQxp|ZI<a-u=1 z_EBM{=mFtqpnHh?zR?8m28^tSy;p!XB&af!?4y7nHy#7>pgKX(=E6x~2+sqJ+i!WX zxqIk_nX?;Hux&nd&y6R1v-Ee}mQED1iXOq&!95wy{>I;?U*jH^XusIOPIUghp`MVN zaG($NA+TMEOZ#I%5Nm@$4p!vhS&ACaVI<TCNfE1Yf=;fwhSGkBN0P6|F{e|9I5j5- zWun3=3h9OX@D(*<vDryVgnQZmfLnb<MPFTAb8oK(HExT4K)YW+`;o7Xs+Coi<(8Y^ zHFeDWAGd}fYcI)K!bDnb0{C;dkT8!{foQHK`r@Z79^6lF>+AVRz?Hhdc^mfU4-mBD zH)4#MvBO?DW(54Tuut42A27=<rb2m;5U=4TJQXfqrCw3??97wNa`(#2-F%CUNus0@ zMpt1Si8so4khU89F;y=W@SLB^l|)#8mg0292x`$x0n`PO^l{I3jtSZ=s;eEp-t@TZ zHILDida*{m>SGp}RBHORF7sMSHW<O_GyToPdu;^$y|1)glGYaPdMa7=4+}&e{LrpM z!h$P4l4{Gw#i5x>V0y~lmGC`E3gwCHyKXfcS9>)zf#ld&6?#II$)tZ+xpxi+VslKB zip8xhb8%f*+JBr~ZKS@v3|_yxo_VeGTXJklH0#cHTGIStgDO6c4nJ$dUG?o3^>R;w zCl#_taZ0@Nz?bRMPDrA%iHgwV8&og@CUGyv=CsVp#a-x1e~;?MzfIzO31o=Tznw56 zs>r>Dn%g&gVrY<e{PGbT!iLE920Ii_3PH(RxzwKxA8VW+xtDCO>G1s4T7A|u(8ASf z$RgS89WI1@-m5v7h=Y<TVpn3W-ccj9bijB-KB)QeOrka0oEed6o!}zf`()zC1}RKy zR`XI!?Tp_HUKzZzs)!aT${nAnevE4Ry100?8yFjfLCa>aL}6B6dz7fU(P<dawvh48 zzbx;#N+qOvAh)(1mjTC0nyv%TJA7wk3{U9gPCL&?LBPYH*)(Odt^8EgJGCTd^qQtW zb>mhj^vUtxHq^m>pz-306Hh{gTn6@4-+lJmj>aiEq?N@C7uQpr1Uz4)^fTF0D#TZY z_P0}FV9mLYwI?Z1iJA857Y)-Ot;tzMztz&#mYeVuwU$kEDpTPXV;u-pX*PY5^srk| zeWg+5(ZQlxbDz6KC9Q#<ufM27yO>z3zaP^l_$Qy?AHG7NPLvcjEl~~h+eC3g$6u6f z*8hS<sVNvcP$4_#FqlpzNQyf72Z<LlTtQy)iVLK5L&g^to&YkPgcJdWCRMq3OINFP zT6#0@Hv%{^7^7WZr&?G<-1_}J5EH?%T}-q^G1p+|&Llrv4Pjn3t~|d#$%c68!ecMf zoiQnrX_BsEz*XxzwLH|+iOX<G0ya|Er*o5f#a9w=zkTBZIWM}*dcH7oK1}s-?(~H! z^K1S)7?~<MwXr@^4f`E;JxIW3E4M!y&dq%j7V@|Idfj6+#;ryFTAo-vY$H3fNz-5V znkwqctdKNlr6S~n;=XQPirdRap3B?zGd6EURo=hn{^A?J2Ky2e_9@|#XBgH%2yXay z5|MGVu{Rr+0Bs-!3-IzDzlr-sEW>l(^G_<;{x7tfjA>m6CD?-{<>xALhH<Zwy?X-~ zTamymO!3`!1j>>^X-Kh97jc{@WtU8l6+?d|OYDqH64reWStiKzC(}9+@DeBgIyY8< znL@OrgWs(N*phQFc=fS()-?PCKh7O#eOlOqkQVPj;u6q5A<zkRLBTdQuCBN&&H74& z`;qgVc#zUJxW7tJVK#*9k{wnljkK>T(F8cu<KYO0=JGl%)+EYgbYb}6q14y9x+p(P z>2A~RE};*sQGekl%A`N}&`Y7nKzSn&Pxu6-V2|9p%?433N5)><6>C<2(UZ-P;Xphd z8D3SjLKnB^k%NJlhXb*+rVYZlwOwy1y16kkeQ^#|m356%OjF`ZNfz@m12ip;j5u#0 z9amnJ;{1ig*_T5WU5ekN2yGNl$uK>}j7?nVk38RZ&M}{N8T5#X&rAv22|H2^Nr;hO z76Y#Xhk4A;nwfQ_y-`Fl#a7x$iK-@_<97?=Bc(O=$mY76(hZpccV5aOR=^~nRR_QB zjbfd66KM3tGWCpxX)Yu0ppc|bMIe}R`?EZzuGPi1QmvVT9G|%~w7@{{L)9+tMSRrQ z(~rVmV<Z4em&OB|fuUjIs|!|#0ce#mKy#}BsE$f~&s$eG{Iq-t$kB?-k10rS6pfO3 z=<=r7b|`>&j{gyw)n_?pUHR(d2V}Au4F>N|VrP-k+jd~TtNvm}t@kCA12xiNi~GL2 z&CtMu{N`(7ZoWm?afZ|Oo7(fWmGK^jJ)NCa*@xq1puvRO2N$itfLw5ZUpyrRMS9#4 zVAzE?*GCq<GULoP?yS}MCXQh;rS`e?Ls6-Y;6q;+Ird^7KgrNLKjn%kb*%hv$^t~! z#kEJ11LKK5uUhfK&`dD;TX5-U2=519B07U^zefCR3D~RkDVq=rUla<R5ei*=akucF zJ)#T>6lpMCGJakcu4JIejEJ}THyZ(rqhvYqL_%F9sAA&vtnw+mgrnby*0kjby0Nwi z%54=o7#uh!J`m9EZ*4VDv7Q*jM>+Nljt5C)O`f1bt^g`dvJzD0>1h}(V{e@W0{nL= zfl7TuP~maNB8jTF0d|P(W9cUY;T$EaU*5sA_!8Tsr~;N&uzdp4TFejT=YgDsm?VII z|BZY>B1kG%a}N{Jys`}ERDg`jfLiWvVvt&3fMeYBZ6a4O<){ho@Z4W5EdU`C7WMC# z@_}1qi=bDuVc!ccxR3EmHZ`XrR5!hY%mCvQ+oD%miAaVAgeTPSB4U<}s)bF)mI$9_ z?t`KMqrN@*B}D<yhb(jIw(__R>hflh?wd%Vf}LwkmiLFsJ^K`L+fH}SIwCvGIU>Vn zi-_;G+V=ZBpkZ5uJzIPi6{k{jX7Zd5S^~|5Zu7k#grSr#eZt4WR`g6g726JEAJAmJ z^fniN*;=3Qa8=G^=knec?zMv54O1e_Fbb@s086SeC>R6LQ@Tk-9~NI|mE3ah%DxWr zt{cgz1W4R1;>Tv+nvX+_MBP+Dy+zK^_I%xa=ov3$6%}vj6+=n4`w6L9LW);fVU#8b z%7)wezjEiBVQ6fpM~PiWGwZ2;80_t<GdU;a^-WP>=qALgPQg2%`|A_4aXWb+w;HYw zxJnrhFO^9nGedUUOn058CMf)*3dqN7#NfVRz`ac~V&oQUNBID0V}RAk)N>3F8v3_j z8yhSb1znq)g?+NT@Q{%5-?8$f<BOA~g6O64#B+`)FmJp3UBVZ6G^~*$O}?7|0yT>v z8WR{e2i6$xkbLdw5oW-`_r8$p_1EJJd&jbzgq(MVP2z8OqNE%+ZN=EFXNNzJ#J9|R zmr82MnfSrk(x&p|4fF2|A}i^lv31VqAmi^fFpt~>am`_ysVJ2Pd<Qn4Rbg4HE{*i0 z(%HVK=v*eA`J!`Q+bU}u-*-Y8x$?K|i21e;eYEjzW2Izz4k=`9v4TnHEBTm7?UDBF zYsq6#F5VmmrPE3t3jXK|FAYWS?Ru0L9D{wG3;2n)$Wd;Ydn1syni+{tl(Mr&6hCI| z9aUGWFUzb8qnN%{Cj+j5_u;>DOVD8SsTdweJUcrfS+Glif2}q6REU95*g1#U_Pdi_ zwwZ<^*&P~RK(xd6wp9d3<VwuK81o;COoRxAcek%zA$Y5QAg5Q98yV0%2-v&z$cU)S zM9MD>QTLy?)#V#U;UjBXzqcYUvyTB?t1q*W-`Wp={YP)Je6pQgT(YMopQ*LwJ&1A9 zXVZ!kf1_z6wapZg;s0#OH)Q*eAras8r;1b1q-~Mu9xDVcqk)=Eb8%l&0<Bi^tkNUZ zHR@<B$EUFiZspxHhVFZ_erLv}4fI?eWMQ9c&odL0ed8B4dvs#Bl$C{Hykumd44$++ z61GppA(ItwJ`<TgBl@@g4yu$9(lR2WyHC|{uBrdv5O5V)@4NQ4rp&fOq)V1??Puj* zg0lWazJHYc&!s@Jl?4!PWE#>DD|uF;_ySVj&g6;~{ZU{&q(X1gDx<&Ike~$9c1Z^; zG9fz|D8@tqzlJ#`=BO~u4klM+9hisU(SsJ{m#b^)Gl4$5YV+iljrkpy;&~!)qS@R& zzgm${&mre)6d<uYP|1xXnixb3j>s7=BeHu@;NCryEKoGMa}$hW30MKr;sw}|e3^+p z4l}cX=;)}ZUb8o&!V;9Q(`t}mfjEF`d+Z2LH!O@Y$t{&>njM#OdXCR@?BrTcwn(Q) zl;8_-s~c(I$QWq}iRh1bsB4>U?L;$8q`NygsEgyDc1q*CK%#7jDz%I*G8hMUgNphz zc5r7yZ?dn7tQbc^am^HGx;BQ?eTI*EqKwhow~IrHt&F&2XZ|SxXHD1TekAX4N2?>u z+5Li^3TA&|g5<k`ok0&H=80%1hiaq24qszI%EPw`|5=1Qx1TiPX*?G4`^X`eGXzwW z30obx&WC*p;79Egcz6kHK1C0oahfb(ig(Emoyj3zkYNc6XwIsLN7ShB2*{;~4LsmK zegZI<bpM?>z%ILgloHHd@+@v5?q00A@1@$)?PHGMUl^`kpM`A>;dXuNEa$v@76OJ4 z*2j9*k{T|~mOpVlMi1*a7SApzO;he@kc7f^q?Q8+$SEnBB%ucxwsQPRlv)o&JtTlz zC+IL_Nrj8Dd>h&ES>OWlqVI>L3GWk%LNHZvOFUBU^8EYH7%hU46;EJCqjqE<yG`kY z4ceGro96-f0*)WknRg2}S6B0b)F>teucx&1{sP(Zc+u6I!Q;!AaR^S-e`zpI^eUoe zWEeMDSN0Dkq?X~5`6dUxD8oq%Qt&B_jNV*;@ywqLFY1Ea92Q<a$!Zgd!UUsXg`ieH z-k?$1lKU>3k@<6yQ4^mk!`I9XYQ2kXh8c~@M%eX9Vl;Mc_a%8BP2M_*9~>n6Xl`*T z+W*d&-AGP*VXLvbGxhUrESqMM4SZ~60zFE;*zIvL`~7_KJ3l_nVKLm?3Wh&D+s~Wy zGb6*f2px7`hp$_!bBE`Fo*b4qAq(uyUyY>;O-wubi{C`I;(7&f5HJ$G#3w$H4-%az zl7><NNLsVRQxlZWDkXoOmxW$V>@Z$5JOt;6&+wq;tNgdac}muz!2+?vaS6kKscRH) zW4(A8f)63UPe^%b8$#f9$rLGz36dgDl%ji`|K6~MOs?9PG070L%2es)^?@juu*;$m zWl-vv8eaCp*CJExZ30@C@_DdlRi6Tlv}{fn4_>Z1T6oOLmx}MF2_&O0l4DyjjECQw z+0G*K-ab9+a7Mqz6L3yTw!fEb1ZdB)w#?tE33xwJ{UnnqFbI3AYihu78*MjRf?r%q zQ2P-j;_-ac{B6CEmVz<u?d|!F&1Nd<F83_u36K>m3cu%46XhV7twFt+U;Y>-6vuzK zExO6RNzKFaZS>ECx9A5yR4|32*1P;+AX|QA5JNJ%d?_v=QN`+;BH`e!GBr!BchSP- zKSNqY{?QPlA^f1=>-lTLkP#OENNw9X?lK*M0td8v`=?q9CT}x}{z`2*Ze;khoR;fj z(4V~`8<L}n1&<M<K5}x}gCM$eh!0R#u6(*|uoVsxT}=Vy27xHMYL4)n2<Tmjz?E}B z4t`TpQ(uphokU-Veqo7p_}oAa1V9}405`y%9UtzM;IFK)*3>@eV1(jQ+^hFC;VqUP z4heE|hl`8#ndG5Tlv>uVE9@>Bg=rwE9p4T&aopv6_f+T(-tE(j&KOBTpl!*qvLq?M zkg1&S)MVEN6{zoSp98<o9jXoh=>qsM;qssp-zM`Os8fr4%MKWqjUA<}Ma8Hue`}1_ z)uA{+>|t<YeY^LiuV0N|$Y_KY%eQYCmcf#tJF}QGc==2*c@||~xg9lJ?5lLUC$Qf< z?_ah(b@QD%bo7`Fe6Q5C1;BZ3SrcP^yM@Pr`@p}z%Csq>wjA0V(bqsf@%&f+`3A3Z zYf0s=uj=9h<07A?Y`vPSYpheNb-`hq6}-}%f{t)nf>&?DuxfC_<AUZUaW(YQR^T`7 zzq|+rZTQpnOt&pOfLKb7B+7El;-4oY>~bxk3>Zd7KPO9|8Mwi6tX;&4r(*>Xce`11 zNC?>CQcSm5j24rW>}aNdPQt>Z{@)osr@$jKZa^n8IgUh)%>2l!8n%>_mcdz$1~cX- z^}Y)wA7beqvTv4VBPDmocw#=E{{*e%63eyr=|m=FrckduiW7`2<t4}XGw@17J;gK{ zGk1YgHQ7UwYs%qLhjLy=!h@d(9LI95!<h+91wIYUzGVbrIztBo%V{8LMV<p4harc= z*Ylrc^DrQNv9ZCsNPI_xHh+H3u)^`J_ZKbH{Z4=*rz*!0hB{3Yppq?9@kIi(JZ!LH z2H;ttOc(`3?iF)#z`B6y511hY@3oNOj%8CJm_<WvP(`f%Ih_x(W0-gGz9w&URP3h_ zrC`J;VGKWQe$z*^G*rI%{F)hx#4%g6mqvFA!p4BN;HTio{-0sdG|Ep~NYtvo=zBPa z9MVWD=7l~PT2c*yO>&idnwOEN)kL_m?F>70$JR5E+{v|8!USVX*obzlwq4iLUss-B zIst*>!@v^EXERh@Pf1$7&zL^Bg4gdEBRgF?(nqLqx3dcc)L9G-E_DbMmll5tM?5Z{ z+hXpRy!ogXW#CP_V@K=39@L0nmZd%}>-fgf+}63)^7Cz`RAGz^Yb3eBialWCf63~) z)4K^+SDF5W$sr+VMqvYvuBRMcvZyc*_1k23C)e)@`&WTMSg3NvKrE4F*h4@HfAMys zFsQWZJkcF_Lq3i-aezOvUdQf7^;zu{=;X77uk;(S=eDfeYC@eJ2lMI%@LzKyBP#=g z>HD}I>`DAI3L7j)9XSt@=px7Auw|nH3WrG5{ddiRirtuMf~oEAQ`zJdx=ldJQl;QU zn2H%~cEuboeiDa`%P~gdcb=-3jJ{0{_HU0<+a$kD0J-OyT|e_HU!VoDCmTcEf0R-r z9uddxyK<q+KPnjgKzsNrrm@}Lo-B}#qLj(Ru-JHvf?;>KwSz6po$-xZ%1?5#I;@$Z zbFIZ-4v5sLaW5<|>>_vvc*RXpB2wyMzt`#pBX-jG9^AH8weP0ol6gRUc#u&C2^qE< z#|A?n@e+i-t!TG0B^}_t(bWntSR^GCKy}Vv<JZg$k>GYsXQ+|%%T(aW7m3w@x8h+V z65y1>5VayA;a`O_uM09|ZNqR|8Rs11gDwJx6B6E_A~)>;<vguHz5d8f`3HkGf`s_! zSP<I-U-!U3Cp$YydhIs}O58b99K?WwKvlK*)94PwRh*@)ggetx;Li0J9fBu-3pqiL zGQfeb@NlRVQT*Lw_jpn7P6lzg!6;6od9RT-F#M21ld1yjfzHV1F6c0AKcCGsvD4VH z0F?Q|*C+fZv2CsYGN-@thhQTi5Jm1^?7^qm548(p+TolJ-Fkm!s%?tFP+f#qo7Rn_ zW8J5x4@kPKtHKNR1&7@0Vdl%B<{b}wU;0{A*bMioo)jIO>&o&@c_J-KH{Zc~fRx}` z`}6N#bNf+KrT?z~86JL;?MIhku&?i_Y&sc$09x%=SHO3I4bGAgZMn*x@Nn1dOqSMh z4XV}zOy->3;UwMyEx`@`vnWzspU<oqzPsJ3P-1Ujrb)Zh)dwKKMkp`<mjDoi9)=WQ zLzWgZ4UHPqKn0jFwpIGZnalu#gA)HXic%x^B~sisqs!$JV1sI$o|&NsI;{PYr0e$H z%ckF9fj0Q-iZaGk@^HoMI%Zdxm{Bc^0<<-7MxH3W{K>Q^vkRT!qt`;=%9xD1U#dt9 zQGGRW+l}w}49DKaxT3!ZCIPr%fR0$Cjf+>V4x*0QlLu1INKQ$`t$z9w*aWg<V3&d` zOQy*1Ab1Y*xP9cuv*aJ?3wMMeu%}OLsZ&5#f@ZM7_mNOXc6A=mbPJaOQGAf`#Gf}g z3O4pi#fV759?Bxw*CA<%_VjQ4l-?I7$Kqo_a@3|d3#e8Q!4BxY1`9#<t7G5H1suuK z*>~g$>hsoElf*St@tZ&@4>k<A%G_FClYdbKm})FMK87=li}^?8EV+4$nfm<tVpyd+ zHNGwX)*+L7{l|C94PoU(EGyBzKeH@-j)fHS-@VRqriPtpk3?SNHdmh?2yK{IIR}zj zH*cK+(DFz4H+EKF*H1eO?!9&P^9x{@+l)G3yBP6WJ94bbP>i9ABka=+kxRHds)WX& z!vODiTnjOHhho{ieJ2h$UoRwPEZt`KYXd^6FOQ0ZI)<aDkcdhqryWMMaKwuj=>3nP zu(vYc3ztPBMvGyRSuxRxcUqc+?AmttVxva+wNdr&?^c)1m>m$(#z@*jD*9n>`8}OU zN!rI#Oc*Fbh7)9~X@%(IP`iJUVmu?}wI@HK_)L~aemk!9;?Ns3q0P>Ce_(0geZK17 zFqpTU&*7S%v-4x3_K4^7;L8eZSQv};`|+Elth0jCM5jDevQr8M(G+3<)?db2fDx)n z3b2h6*D%B{;+4(d{cw)DbbOp|?HdPXOO!{+fSkpC-dAnD6I{sX$OvJXV0)~+{wxuW zah~SL&bcvf>^v7K_V43C4Bv<A6NK*3FZI(uT1zozeN}#=Q?ZWM_4|V;KHkNCk6m)@ zUyC~Eb#xIy9t7}SBww#vCXSkoP9H$pDH_60B?PBxYm$InFrZaG1(iT_xah!-%f-vU zg(zpUc+=prhxIpVd%#bQPKgqx==kbRK1<?&rtKX0TLOIB+XLEL1IBA3(wt%Zq57!r zhsR^|)C#pI^;*Y*St+#)Qd96#Q*i+1+G@e;P%$(B6-sOAp##KVBdHXNJw?fZXZP^u zM&d9BdV~*()8ZgeF}V#h*R})IH%uXo5eFZg9{1|nq6{|R+D(Hiju+YH4)|_&Z~}ZN z+(R4}!#>JdMF_SaJhPd@EW=-#0&4vM)D(BRf>yu^J91NduL*EiTR3>0a>$ZIZgzkE zy$K4wh5}Yh?rsx4{Y+-oU<bADKT4|+Pv2lmS_dAvOlvXW6G5}DgZMF`_mJx~_>X)W zPCg)UyUNaNtZ?i3zM~H2cG@J8GCF+vFk>IQRNOpQ_j%EhBQjhIe)sDPUI4p%7%JUj z3=YR9mgzV(R4ckk$EXuT=$UQr*>n22G-^iA4AdM5pNH>fnC^#0{i|MxSU~TjkV0O{ zH_gZ}TSoy;;^Hv9d8eqZ6&gbJAKM=wZ~gWFv>~N+io_tr;#Y!%gSV1tucS0UtFCQ1 zn#>23?LcH@xoOsEkAC&!H71LZLG(8*)?;5{u!f`c0mt_w3L*#0QVC?Ic>JEJA)sni z7s#M_hoCqmWvh;|Yk-0&0k!!*lSVA?+0NVhb>5HjP|$sbBe>rcp((_ZBlsnSP*hhx zrwx-=x!#@YDgly1pJGKTH{z_^@$`5JO{INtaX!k>JOOL89gWvhi^eiI*c>~y;2k^u zMP4DklUYG!<6asR*_`2KNE0TaG+Vi8`97HDP};6ZyiSCYa{hN(kg?OUBoCEv4)uWC zA_Jj_%!B>~1+~wBx>f_p{(jq2OLo!P>J+Y%QemwhdyTtkqej{9Pz!q6Jzf#A+&BEG z^tos7PnodRCQRbr(g3m%UqD8}<i$sl^wbP$dR;2VvPXmc8snNzjqPtq3>Msk3A*eO zmM2&eZeD{<yh7qPPW)-Y{a?}(V2K^sbAggQ5rnt&04+JP_$K?Geh|UxnnFH--o=&> zV0mC=NsEW>>ovQPMmng88tg3b##yaW_vh~@e3<Hsf~6xen}g0SU)y3gSx}Q}+^&DW z;=y?=Nwj7{{a}>o^VUX;rgF@)EA>~kp_!hKmp^_X+r7yFXL&tdP1AQ{o#FQ;4B1(k zCOU6!wOl@;q<_vL!yvz=0CpUzmNrSjZVLn2j^;0Q!0zMRM$#}ihaO#FFp=D)9_;B= zHZa$B*wo%u?~&d^|EOfK)y8pn-$YPukX2pv9iP<AU1nFaeOXWIgS_L6>Gl;$j2>{w ze~;t$JdXY^ki{Kk-tYa&Djkxj0-zcyfrFv}JX%e9vz?VFHCq@yDzaqN;?mOTdS|+c zbAkE!>-x?Lk06JoC=r@MjQ|vEaH<tg^*1L&P_WbNH8T~A7pJqWE$LSbNGg4t2)yqd zMM9EZ26et?9D$~%19DD|rZ^?;F$uW6rLDb%6iM{J$FVX6rwr=mW<k3&mY;D=?8P4G z&K|}d38WpV>FB6wXl4%(gD9&B)+u7NBSgtTy^`5XdDDC^B?FCksfb9sfIgwu5yClI ztf-N%*+r^;<{`lVm|%Qpv?uJW#^&?*D-@YwwGyeNZPkPF#VNe6c+`C>1j)5jkXbQB z_i~g8#hL;g>sFE8^{>iMdo`E<1^9GSs<bKaS0V_$p(z3cH*Y+Vxlmwp^LHUOyL2KD zE`xHxVB1_kOfK(#XYD6%@>WN?Qy?UUKL~hD&6wmpG!YCU>o13*+Am2IPo4O2hlYI) z=5`O~_6=vCM65nv)hq6+_j-e#*k>>Ewr3wIpr`boWhLQ3a+JYmL2H|qw9+<C$|X0P z%7G7A|1Mqc&EAY(P5trcgKl-BS{G|_-{jzQhDzmWjITHj4l8_N5Y5g}@4<+4&{HHy z>SDCSTDom+^`<qna;Bq8X0z_>tE!4s7*n*i_}cgrI3KG6VgtTv(@L71aCSU~jgS@Z zUaC?L5V!BN#&m4&PAIhJBl2-{)K-mqZR&&h$E{sj=)1zFw}SBGk?{0!7!39Srt<l( zIPR&LDQcLzixH~nPgW%zFuH{>n3r9i1e`^QXh!;PkHO8wf~cza3{kRb0PkWlMr5ay z;*4Yqs>sd8URltSGfYHTMKeC>I>xn@OX=0b8dR2|A{o#a4rWVLgB}Jj7(y?`ISvc8 z)lW)OWw!?#?4`Z`V2a24ohe`{9Uv!g68&Qa|G=7FHh%H;%*U~peSI!V5y@$l`9^JD zW7Xb&OaN!b+QtO^#I$b;twKPp%Wd)Jk%-{;%)42s!Vpbz+YurB53_HT;!`-&Ix?x; zxG^2!8qkSLgS9H>!9^1V{~1-oSz$b>#5e_dM|RoM*wY*ieybAW^n|P24&J$4yQI2$ zDpD89#U%;xgmux1PT(+0L4*c55eJ&JCCU3AFDCz2o3R%H+^r-N!WY%m<J2bNf(w8v zqIjMb`)9itV6EBL*Jt;Y0;IzPd6w=M20QIFiePKp4`)8p^~v=_`N`1>8RHq$OT~`G z5onWt7Z$K5QvlTB%nbjF6mCPzx5`LO`cj6o6;bpQ6Y`0BuYqGEzE<<AFC(&V!>(hE z!E#fpxcS6o6C$4Oct<GBq^MS3uCO{n2GvT7Ey*w(tPBllv&VmS10Q8j=*h1qLn)Rq z#b5Qzxa@1XIownp-d86W!hPNy6(8Pj8{E<dUFE9AlGFa#$VYPc`SXe`c!WggWA@fq zN3&bKW{pflUwkoIWIew5R~$`=dk*TS^yK&B6~BhNgh4X0vMGYmD<YU5vTu__Q1{iC z)820TNYXlNiyT}6<(zwad%wI-|9lK^o|fVJY>CoL^9+oac>>&on8kA!*}47o68d%^ zEB9HpA2V{K*x1aBJ(4{BMP3~C-EVXEPasn>urgkuUe#|UW-XA6pdc6rpN#Gc!2O`a z1@2)|w9kEg{F~K?ec(Zb49thQctvxfPgz*28VD0q`Er3c<NErMjv8zXVgYVY%f_zf z+n+m%yd()fULu1ruz(nx4l8l0iUvq3(_0ES$wVoZDh}CV15C4fS8=ohA=V6L<C{PQ z{WNy76MaU)=r3q-qdOVb4zlXYWFH}F=T0;ttyP}OIDidL5BLIhYzudql?`1G3f~av z`%@6<ehV45mlJEHrR@DnYvH{|o)qLXE86AAg95XI3H<GEjKe@|#!gDyEL|_ZTCp^! z?^HeXweJqT;_kzoI}f4(yYLm7c<2=G-%hXr%SI0O`h)mo-u+a&n`m&Gm7qe~I~fYj zNjnL<f<vuZer~Sq<02?n06%vth`9HfIk+<6@=^#M5l8{MbOFx^0EB91`Y^%S%M@T9 z*|$^*!=G4{vIgLe=rA@SaMruC0Y5$fHxK}Flfnd1$1S?IbAt-TaaE%Y0BZ+9)QkT# z&yUubTMRm&;P0-(gy|mD{Sn{>3FA6s@D0s9u1fFh&n*~?*9~I!hqX!khY}wjUHO-N z{+Z4reg`nZ=5~30erw(qc9gvR3*Pt^Ht9u)pG7<9u5pjO%+$Vy<Au(%`FwI^@ZWtr z$DAJ!-KOysP+_pCDOM!Wk=j+EmbOpr;y0bbH1`q54I9sE{{kK$bB^$zReFCa_h$+W z0!fMDK|jjx6)ImByu7kcd(->@HmjXV|HAvvQvdVSC_{wigeKzgzu3mv0EY3cUlo^l zGKWoGAb)cJmLpMa;&<Jpx@qX)!O0uTDO^>m{GH>5`f3GE=Gg7>7sFGGLyEO5N;YPq z&Ek}Y&MpV5@(4{;eE0MoP~NUlWM*2v?-YV3Ut=_djwMp%OT6dD9|O*<!eY4Zi8k>! zDMWfCXDO2>HHkU4_McQ!>4%X9`0$q+!moH}yGonR2^%#@&U<ZcqGyfYv*#`Ih6$dZ zW;KO9-|ctkv1OC|y(B*p^i|~?AzVH1wb_@UC&1AL=2GOv>A&aGh^!MrLAr{9J`>_z z)t0IHo?1saR9IZF2uR8V71rVcC`h+2luv<Dy9d7}#WyNc!`SV_-%1h(1QXEES566$ zL`0~gWJ(MWTD1+6JShtc3nkd@W-jA5RRwC@_GHM}e<sUp=gbBTrNRlRb|i|}PzAsK z`TN_d2kp&sdt=(w`*-@vq=_R^*slKF1)GM|)l60;*=@X9f=*usCYSAp-{%<AeMG4- z`mI<kEGT`i`wlxzJf$Ab<9&!mYT9A-;eA&y^E)>aw0o1PChWk>>W}8!H84oWU8m2! zlQ{FIFsp`Y0(qyIESmm3tL3TSOS-?I=>V!gvt3emdT~HN(MN0`C-#@G?b~WDQL|LD z$2`+|f#wbH+osYJ6;Wy+8p(Zr_g_QE-}RN{<&Kb>zl)2DpAcKwrasVh{HfXp0b;P6 zDDY(_)xIp@B?BgwX>p3c$H8|?b8E?1U<1x#<$NGt#>lh?+DT-Y{f}fl3kZ44oznj% zQgXUd$<+p^1vs8J2-v`7y%OJBam=ucIsK%;4eRY4<fDEMnxPI2k(AR_k<t9%{+a9H z_87vR67zW+l{x;ed++pK6AQa%;z1sN``XS`NSJ)h!tM=AU;?08cy>R{!o?#C^Ye8; z_uIo>HCq4Bkwh{2Z!@zsZ<{FXzKMX-^TB->xxG|Hy*ZKm^=txl<@{UfiazbdQ-cMM zgDTdp<7m4SNg=+a(&A+Datx81j!Xl+cv%50OUo>7o!%^~7S*AXAv?DdwhEwW=I9Ji z?hSZ6FHt|-2WO&os{%WKAroN?-;~h5zt-aP@_9ceY|j_4ShC-`RC0qUbxNYx&jY(N z5kkoIG$Zcp&*4Uqg<H(@VP^-;hEW1lfIplEx7U_I5wIR2?gjoiJ}scY6_^U3mFD~n zqD`K*`O$$&+ijM(Em(Vm3WC4C=n1??PD63YWzClfAun~F8Qo6`x9?9hOL<eKVJbp* z<Fr%5?mfZ0@2FiwblXth_IF-8wP~>v83y#EAu!`uP+`A4ecygp1D$;N1c(W^Uv}ds zUcPP1)*{Efxqra8f0%CCQ;7fyLbid8W@*Vb$rxCVuCqQDB;s~8*HmhJVK^ApF~Dbd z7=tv@^=`&%UCB@YdT|`-|G%f2fUP*y3b4VCS2z%{rvv#8myk9(FA->sI#3pdBo9?* z7{6|G#kQIY{_KdqR;4Q)bYbULRpmk{`IP<pVVt9gFt0Fe|8T!3BE_DZaWE&AgurF) zfcWSVSHQtfEgky@MLv$Xy2rci+O_5;>!?61GNEnyzce@39j-Rw?gnI+b(D|IO@vQu zM6fx7oJA^J6RHO0*SlpFuW40=+ELOf7o5q`Y?yPVcXcsawy~lsZgYPz^@+W!V6r(D z=(|Ne%_=kg5Rz-dAor#vKz4@rf<-lzP>4i|WGjMm4cN;daFKJFfA+6M3sa^qBz-c4 zu0MI0tOY6~g#eO1ezzhH<fN&B_}Kt-zx8~wg^z^z@5V(L9C{;e=)4+1fP^Tv6!|Y? zzTzrQJ><#xoz&s+t22@>(CK;V?BT)C@cCku`+!@ZutdX#4AnBo-e~yw)!yZzh;~l1 zqkb6LbI*KQ6dCfYPa`Fytq)o6vvQ@OUMV;3j&iqpvI>LUy6E}$emM0R`M08Fq(zL( zOylj<y2Uwck0QM<@B(GYNqv`l$$5HIoU;9V8@4GhkTEs!FS6UNJ&tpKWkA1o{cdz1 zs<aL_$!(kQTP?DS5$8V7qJ%@=i<Bhpnn*Mu)6C;O^%=<aTg70{#Hf*`WMh*u_b(IN z-ztzBL@DTg-#?5t+zEL6_@A3P&gJV!x(k4QaviE<xoj<7iG^wEc~-N9RxyQE$%?LJ zo7Suj`77q#*3uSvU3~qq56m4mH#eEUv$wtrtdA0lz-lf+Q_mb}=?cs>n$APWgUEl+ zCWpp=<LXlr5lAbjOJCO#1b9eP{xjwmhlYRC2^{Rl2M+acO>~c=15hs91P2oG(DkY) zBv|U~_hhqep6t$J2BK3jM^-{YLc#PtDf88jceqZ?FHZd1hYmiN^S6((U|YZ9fWKlS z#EY}#&w}n=sFq4TkAKk&Vvl@X?%mvMi$Mj(xD4(G!H8wH)aA3-A`80<EIag!mpPO8 zUyNp&?`XK6T&-@zU#2i!)}X)+pM^md=v76f4sTZg#XtlDD<nODkLOqa<>e&~&i`?A zR$)=LT@)U=yIV==?rtQdyK4yP4(TrGh5-bmySt?akZzD}2>}8B_xle#&_l18J^NXE zt$U%x#l;E3f?53%>t@um*Bw6L@N5U>bv2<>1fi6<lX+LHOt9Qlrsiya1bQSC|9e5b zav%Rekq~E2`eJ<iWcK^G4NX+n;<zYt?Ljqk>q4Xalotguc}EW1(LGU^ns!zIZy7T2 zE|R9I$EFayH}rib9#(d5$c{_|Rr5OD!4IX<EdlbYuU>X6DspZr8*=m`#hfi%-1z(M z!@NFrC~pSjn7Nxy+7%yAC32@R+s2MkzGm`4xip7nanh|^;hfqgEm{m&9)R%Qus$_f zX)EHsLW%nJ(h?)Cg;1xxJ?XFRc{zj$Lqh}WkYq1-(?GwHUeicnE?t5!Rl(=;jN9LS z-;(n>dU_1EDoTi=(o_`VPqF=fgxKN1@X*EpvBPXfwp?b|V-F!DpqYbM8c$-9cKJex z2@bBTDyQ{BuGek_0W#nuREwIc17dNWzkcA*|0)pG<x$f*&Zf;N&l`lo59j?_Uo!C! zl@s<l&ywh0T&%8<5l59tnXpKC&+MK_tcq7zAnKoZuJ?^)e3X`5NcEa&GLtJiw!zy| zg_p*KkbV#q-Q#2F$+eWYd^ceqPUQoRH-&9+hQKY_;5X--uRA^1<inN?S{k3guDJ@- zkb&%2A7Y2!7{8fE;RXd~(49tHnOy@YMKye25ghx<IuC*KGSe!FI-5TCboHu%Vgi0I zI)5Cj$b6_~O_0<A7%UC?%#{OvF9l*X!mZIE$17CB*L|5Zef#}KL)c0=3iOPTavT%O zCnzY`;4l2&B9reXKyCpWL`{+)n?PSeD6!wBB_Jsb;O3{k%hFiuOg0ai5x}QU#ra>~ z&WI_5*qHqIm9Erj={kr}7g&i3(=9jo1^dh_WE|;emY@qOJ*{6gR+Ppm`}fo@@Ex*h zIi53;q4d>9IOasexfo>4Y7JMjU0Z8D9ErBp&saKuM7+QomrqgmHm{w-lkL+czdVh= zdld7|aJgiEWWS)m#D?0Pfgo6?G*F*Y4U<f!0P(5<@DA<+KYOJQ-6oUf(p7hTqlDlp zl`eY|XG&sX;+|83?o2Gqvw)$`y#uPwy+Z(CgjkTm_&e4tUsRc41RIY$KoP9d!I4<- z3bWSI-fMCTSfUr(-$@nQ?(zS#1^l_%4tl)a1-y=O&N*e@U_5XnoI7nU1<R=J<d4qe z>N=te7Hc50Xrk?bIG`Rchis6ay}eK&6@4%z<qS|Vi4WYWaulrgZ{jDm`hP^<k+^l_ zagCEX*u=|)6!=cw;e^4+&r^%i-Oa!1D+iyQj)MD?8V`ZzDJN31)vI#SC7<f6BUnO) zCfo(7n520s0Gl<P5Knp9#_$9Fuq#2TqAMTG-tUNw%iyuFD@)pRMPYIi{e#&k5CiE* zJ6kH?d``zLf`MtKok0u$V^hD2RgWApFU!MB{pub($PXvABQb|-kS%t0PyfTlTVr^k z^5I<xr5zqkGg9!wksqXEJ)8MVaAT&%wyxTCq_2&8fw>5+>XT2B)mAyZV^K#G>Cn(C zJ0_5OfHTg9F&?k}bDdPX5uG6blqL4q%I{ULZES1+_0L|g&~>Q3p(RJtmpH|3lZfAB zhE~&0(|<ob%pi`W*@__uy{mruYz}p(ll)gS*QJyP{Kmxr$*<UgZGogO{&P(_(shuF zu~18S^d6evEv)z@*yD|!Yzk3GI^NwDh;-jF{?HEp-68G6Nj5IELpc_*^G1q3D+9x+ zEM-DH!oG|u`fvj&o{pkg^VeigFHg65I)}lZ$UH{tCaB^Z-zEEL_M(<_=m$T5HkX%6 zK+Pk2{r$kIdD%DV<jn;98-vX^1C|GvI2BlM4?J{{4z&561b}h#@+QOrEZa702_>DC znKWC@OC}gF;K~6Ra2=O}j)lE-7#M)m;KyR_RdNy!fjl5MK@^J)d^`qFnPT7o^_b&P zZ>4m%C=(Vk`SC7SVpb8|VNOA{icUtSrnUA*iIUfF`MMH-WhCKvM`$g@wkJo(jtgV& zj#kr~Ejt3vpil8ECAa#$U@;(_ol;HA)2gFf^7cDzYUV8^0z+2iy)Okq0+9_euw<3V z%t@zanr9`9Y<xG!zA|Di(M~s<7M!VMBytQ0yQXVdzhHC?lnPHoZjzBx5r~hfN0?bJ zbww(FfBSh)KR$J2F@K4$Q))j0K07^)xN2W-@nfAbxezRP5P^phwQR5<*}JI~H*-!% zQH8EOd2%1{y21MxfLQ4<!JuXqLi@LUs(;Z`L()Jf6%cbG3z%BQ$Hy5}a?@1)Vmtr0 z&}^{;A2#Fium;PijZv8&B3<)$H1NP$WUyW0Ome9QXU~jK!<54I<>}Ed!3X^2WXG*S zg<%04aqwpEqWqyvW<@K@c{nb$tsat@ud+4W0<o8JFkk}{AFI)_g%g>ekaFfL%ry%a z#|q#O<x^qLy<^-g4xFKUw<`rW_!QXDyb?zy`nis>TY{bpDsAABn}5w1uTAtHf4tdp z<<JKTgpm9+F3M}!FGeQ5i@vrj4l{0W73F?hx;reEoOtB@w^-91RQ#T29*_9+A(6*7 z${@eQc2D=LB-4O~XpKgfl)8y^Ze(qx<@BdPx|r8gnt<q6p(8e)zmaQxujT%M<^J8} z{vzd`mkaqbcod0v7Y}$Bt^3n(g?69$DMfs)uXl&WlBj}ir}-`0lr`Io7TPws&q7Xw zAL7VhU?5ZvvPWln;V!=_o8Td@cEIrj3o<#y4<3^QiSqL+fkb)IB9S42Nne3(1j;F^ zd1ApyPOnJ7&`K8I1lrtU)6gDP4xYhGxNp)+0Rd|c&V&NUm_Z4r760Zod!a%L*Y^9u z0SY4AuFH>07oY$+7sJ-`6RDHgc}5CoZT~jn7cv`Z%#LARqTD|5!+-wg7$1>}<v*!n zz!*r$G=&2SVnL?DOExm!|NLwEvvu~FLcjA*M^v`$+6C?8M6zJ&J1*qlA7&sJ?00S! zs*1Gfbg`%zj^mB2W0zize^xFFvJD^KgpS+}<7cOC1DqGp(pnW_>FJb;Kcr>0@(&~= zVAS*3*O=D$Woi}>zQ=XsaEQz|8SkH|wj!!MB6R*$&K^}>7ami<pL+7rj&FAL>&pr> zK=V;%p)<fYOiD3V*KkYE#kZ#Y7SS4x$~&?_etqqGAy(}x{Nd4&TAlzv7Et7)4rUAF z{q#5wgT`8FCo|qK$-v}=%jb4qz2u{OH%MFP=1C@fbRkz<$nRm|AdD}h3v-vc#{RF( zQQX<Is`!Y=zE8{n2stYKaT2LTF0wC8!4A59GBR<l8{2PQpZ4mCku7G;p!6BK?%Vx} zhZPeqyBZy9)KeUpHUFbTekPQ|Wo}n`Nc2!q&e4yq`O@>DamBAgwX<45T4J<#-s2p) z<Ev>4q9pOUW-4au2zZ~00uv0lqs?5f3-V@(?tEY=ldv)|#DUO@BHy~p6Md>IEI3@K zMIdC_#>qK~e-&Z2v9<Lh_{I*~!_ctnj!PD|dEAj(38aFkVxxjsvp}-bvm4P04>1Sc zX7Rs(hZ>H=(2fKU?upXj@^UfXy=7%#$(!SmEqvO~;DJyzn7;X2`Zu8G5O>NgP;!A+ zv3pY_sgfbt9iynSG}l9Q#O*@N7~;5rmGbA0((8W2%P3}RpLA#$6s*7S+}mPO2n{P) zP^K~^d?#GdND0lJY$qaCu0-cz@`T{PpvjU}n7N-na*jYqLQ^_4DP;yM5FoCGjB}#{ z0|N@Qp=9CLnK#@-r+aUE7h(B|*l`kl`2^WnNGd24AtQ$CX?%3t%kbUTKHupE(|=at z0LP2CGh$+?TX}V8lTx{u+6cte1{MsH;~)M=-)F9u0N~pCo=>X)ZM^~&Qic8;k$QZ> z+R7AIyXKAveSD*eNkXoh+S>o~7dXu~YH4p~Qe&;b_Bkq!Q5kCQ{F&z8*3;h6HGD5Y zfU<+4zvJEJXrwwk2v_+4ic<2V3t#r39@UBG6)Q~2c@GbTgM$Me%i!;Q$_RFkVT4t( z1W08c0FrP-fi3}(j@{<BQ{r+xzvM)^Hu9MIz-BI&B<dOXRR?CctMxv$?=~Or1?P|4 zjJHJ{PM@7*E+(DAD$filUy~@DYw_<7zO$x_hD&pO@iOxpp`zfIAD!A&U)TX3nKi8Q zyMliiX`U<py^cvd&OY278QmR0gasR(?|j-KB=amS4@(Tu5w7lA+*-D|a^^;|uL&tD zFw3o%F!aBotT`Xu?D7_WxgPra=juNT<o@#c!t%=k^T5+t(Fs|>6Is!d;VWP_$q2yT zHe(!|8+iwu)91RhK{Z~rCOv+qKgnS{in87X7v$uO+r+^`=WS>H3mwYZofH){Dl~6j zO&&EVKR)>3Fg_kkhjhV<P9rjmTk(;}9wtN_AW<Pe2a`_bIi<^t5g32pvM(G(Mjm!{ zBEHlZ7_8;w8Zu)-Kv2p$DhiUVu3vp$h(##+w#hKD<cpOl75cq3|BHw1>JAOX=qZE1 z0{>6}h{ea8g_G~#p=d(na5D=+xtsyB(jtc;BQ`1wZ(Q_kB%V;4HvcNn8lY5&*HS<0 zEad3|FVnLApUICWm&x3l;|P}a1MQsPw}VVmN+ihgshuN%M4d|L7E>_grjcghB4DdL zKR@qwOoD@!ievOkDUoDNSkz)4jl{CrvHH29j+XbE2;IF%aooj4&9Gxiv-cra!5*^~ zA9;S3zddHs*`h!8O&3K7zN8DjJmJKZ7?O-ypN7XPx0?1?-D$#>PE~Y|DHcjWnM3B- z$+;!AKSd$nX?RrTVQaJPmyko0H?=BJkQB>TMQY2Pyk0or8N?cXFA$%;)Q;cSWe5)o zXfYrmd{it<On}pI?x}s3BRe2bSho!3Sw=AqUMrx)+p;k<<fcweOkBz!Bot@Kq_%P$ zRLpVjcx%}p?YxiXpOT~5%8&VywaT(Iyn3M;rDwIgzRVCx*PiR*($gDk<h#s#@DDz? z*ZqhIs7uQW2F6KahdL~{0nA~D2-PUwH^+^Fh1M@5@wwUF@27%}x20y+VdPT3a2aTl z3}B>t$<XC#oo?D`7Ok(X5q~ZobK#3XxrlzR-w{obW%qU*6>p}k{;oDeRzzwOYpGp+ zXKW%$F&d6&l(&_7QHe<nT*Mvb!ozj2pHud$hLJ;RJO{8u7n|FcRr!5d+2yjDcQ+9) zC39_h=QU7=4WZ^c%(eK$dgwnzxaGiN^FyC1?<<Mn)OQPI=4N!moNPk*8s$8AZ)PXo z5s2)X!DqpU1a5vX?V+Mq*hqEfjcKN8Ol)H>^*?(6VUwWJ&Or_VJk150Y!+{`;{RR% z!Mqywm?`+nF0tRkO+v%oRLN&D+#~Hm=@z&v;=g16o~Y{NLEw(lv-iOdKL%};e=mBU z2~vOGLrtqVI37Y#DBTQysBf1te!3x4q4AT`B!FG<y4q49p1w&oGEA8Ce>nI3d(n2o zEZd0%CPgF)II@I<ln`S^-4N=b2ZKm$cOuLk_dZb{>MY|U9qJA3^;g=wLqlQ$O}i#A zE&>Y@FB=f;H)<$XRfqr=q%O=VHo(hUQtg*1SZy(o<J;?TPG?&a;8)mM>LY05KGn2s zt+hA+O+{}CsCB^Ii?yn=_l)pfc9O+_ZG&~B+%J-$dKV?oYD$F1{#uPv)x?oh|Cqc3 ziY>lQZ0H!9Uz3zyrDWuIu0%HE+r_&A#z5x&dsh8MAJ;c`ENt_8(eRa(FUUbn0(6YI zytUru%)FX_1&kix$oc#$Rc*9(bxiksf%&Z?{lDSUK?c{<1{7&MGhBMg&HPL%Jj?V% zjyNE^kis<pfz2(I0u7+?oPkv!q3o$L4IJ3xhK35%V77i_2m`(9FSn9!vqM845g`8l z`GAAf(EtrH=dA+=F41@9Xle0mY4y^etWjDzKR!RjSC?orQ5B88{JFIi(F<LS@F{Ak zsi~-`X&_iy1NaOO#Z+2cR~dM(E<+|3G|=YynRl0nSfTd^7JDq}FUg8fDJ;@u@(e6R zkZ8&*k!1rs0QeThT=rA~<=pvdf(&wob|X7BzvPT9Af@uUg}*lnyMHk7H|EG&ICNXL z+8kLLgE_9jwQXS$;8{nHn`)z<&Ei5^nkufpE4HiJBg=*FHB5o`ZEP(?!`?LD6CiMR zcL$Us2DJhsx&haRbNvlcf|i7;`d=-~*<@{v{7$8Hbz0}oCG?cE!CxvmZg0(@>o`K< z?1(+x80X#~Xx*pFTN_8Dn`0*Zt;pkS!X8}mzt?<@tbp<05IU0M2@iES?A|iT8Y)77 z0yaxUTLsR90*E5n^^-^=r*^oL5DX7N@h;C0ueUBT&%arC`#~1R-92Ve;ZSix-2ptD z>vulL7#J~h?iKiWA~>l#bRR~?=+aYucp|~VNlODq#V|OoZGE7H9*&4+m>*m0F+jC$ zc@^qX-P$UL23cQ6fsh#($S@AJwyF{`oF5<CXmHQDXR6lW)s`otLGK#H-h0sox5g@~ zbh&c_!PH_9P#C7!sS69Hcfyt!!Uy^a@Zh0F3JRb=`=M5AP><*H3#@rFE{<4tS&yOJ zROeo=;!o@N8h+yNud#O<I97XCx&@@k#>tFY;Hlo_n7bD*9lT;%*$!CqDyWm(yNNV5 z8#>Kvb*mdCPWkkJn#Bm(^@F-KYiX-6B8v&`#qaC1zX@Z8gea26%)5!gzgioTg_(3C z%#2-c4fEnjL`l7Gw5uAK$lAE9H)Kw@qJY7hiObRlTa%)v!586|Rn`xuPX^cpc(mV( zm|%GddiODl8N#o}@={gt40<3=1%#s;FoqB_sbG7p0*FSWoh~}u7;K4sGDP+^BRkz? z2W=)}1n4Xfe$*wklycG)E&jazRRCCFnPDNEwdP|NUgl91T|kB3Y430*xu}Ev#GU^1 z3DbuS=yytoPlMB1Wl}?#4}kjBekiLAzw1Fi%6^FKJ~fzRFL0Ri-f^*!vKD@@KZJQ$ zf*Y4=*Iyl&Ic6p<*0OW1r&=FGKg?vsMtpKhNG@JKSVM0V<IC|=*Crt*ibOk{Vq=DD zn`o=3LEor1w>Ha*)tsvm!HZbd*9ie+ARY6~9Mn5hEtQC{oH7clRjtFvmDRVnKXUSA z7s+<Uj`MsX<_XGKu$obtnYpQ%Ik-e*@-wZYnK_n6q!#7t*OozR;JYQ_o)$T^ni=o@ z;|gxyGmKsudei)oWx!q;H?He|)?BL?Kp*&@hjFZK)mG>Es5a`b7E5*8V|E+=nN0I4 z7Z@y&s#FODcAp3ZHIrCP_`T%xetEnaY$!LhYm-8&i0>lMh&VP<#fElRlM+;b{&74! z24uk5kpfH>*y8|m_y=JSco+X<xBRP^5`USd4w+p#==pu1oU-IIIvGjKs$-9+C>wAd zt7QLWfi3>t5oeWqAjE8Yr(Z%K8N0U^9y)a6!<C6=9b?fDu6#-9?*~$Ot_C$vc)az1 zc>bBJU1UJG*P)IMKCQf7jqZ;!N7v(+l7$Gtt^JKk8Rhb`r7Aq017yqYYwb5NhCS$n z8CeAdOY=t<AP*hfqnC>$a7V6pv)r650t8QYcF+sm?+YQZUl-nyEg~edtyEMnc<bpH zaP!_J?#yX7c7L7&a!RQDb#!xpo4s_QSXrKngg<*quB2ixqo=1w%ty&36bB32?R`qa zs^g_e=8%b;532G$L)@Z8Yu5O^%sp98G$A%FM_hOm$|Z|V$rIcgXoI#=VW@#7l^V#N z{B|<t?+yst!bXkIX!P<Fp&V1C#U*5!+7B^}_JO1zv33t9CSoE$WF?PKgGYHu6Kv{; z>Mp@x0iA7^De%u+<;eZ9$&^7C_M1D!-X?YGVK<DyS~d!_Ev<>Im5y|0<8E(y{aodx zSgmF}`q({z>o3MdpFn&(_yCIwd<E_XHWm^OJ~ANtRR;24(thX7mOg50Q-%VGii)U^ z+5$6J2|s1EB7k0h9zR9&AHPPgJzPXNo9YBPeYXwx0VRUrg=_6eA04R#+$&fgGmUA5 z4QmcAO>i>IRXJyd^t6hPR8JK?y(H@o0i4)q5faOHjU(pOMOG<Qfv%vLS;{b5^<E>^ z&4WRcG97i<e04S@4jl8_GP884WV^+Rq3OlB#g7{C(a7dZ+X%c%f^ae*R(8p6$Jd?} zDIXJ*ybRblNB@pAxe#L>MyL}<9W8su$zPwM*SoImu5iHcY;9g{c0H{w>Eu*q$$Wrt zbv?bCtsvOjp^A`!RH%P&1BQkJEpE(C!j9gIEDjGaBH~&A^riheC%WG)?ej3<Iv?$f zHmIiwhDSHcZYi&$eI{OG<Wa{~)-={kt8$LgIW0%wTXWt=?Yj=+1+5ES%J?FfA=F3| zbfi2Uy2DHG6-2EpbHa{%Ux3B!&g#`Z-l>{Up?R5w2x`{df79TD{sjjSHeSH`6(g?w zjV5PwKvr7?x?}@s<x0=oWp-IiuAB~@(^<4JGe_(uq6?YM=@C&Tu)$s!Qkgc`tFD;v ziDr+Q`(&qPclKOaYS7sI@D_%I^$7#$t<lxKqYKm#oXMm7RLZV3#QRB=^z*qR)%jqL zh1*PWR?C>JV*}&absC*Opg_<3*WUS*PH3{oc7edMkeeKl_(FledZjzXQb(dkSK?{F zU-Zj;M75eN|CL`A{JvyUy>fANAFqTh?%P)4M44`~8_BRJMIM2%0xW>H4Fv1wihcOo zF0&iImAAc=w@<R)`pFAULow9I%xIeU^ekE#IBm!12KE*P`QRY4HFj1x)*x2eb9eyI zgH}`o@b@(s0jUQ7;!Rtl0KVtOZ?ha8gGOwu%s~u(enz;cXfR*_uno6G24&a)DiXXZ z$%}8v++ai!hfYB9gnwu217^b~4JSkM(5YgEHa`Bi(}VdnE6;4z$~wr%-Vh(z9&Dyw zDt#a?P98E)!H5VA3GoS_B}~<Tj;C$2Qx2=GI*Mg7)24Q4F%^y@gElSC23}S0w2YP) z-@vH??XnN1>J$xbA5Ys3<gS4F><)_+XGgn=k{GaTjuElJ5=0sZ%KSHR?hH^8x2wPW zn(8}a={}>}ydqh@qFg^B**?o&Im#7U5%&);yL{|_xf#G4;}0vKDzEP*+3RML0rX&u zSdkjPfU3Gg%h9nh273CkvN9bQaHPKh3g)TvP6?a)(I2sZVZfdG$L!aPFoCGJXyli1 z$n6ypB-0dk9UvuYLvI)0jx&)y>dxIxN)__ML9`JDw}C}wVOlO(g^`d}@y2KZY&Izs zPCL045&LsTT7o(@otNht2W8Oj$0RXD1;Zex6ntn_c>NR@7eAgC9Vahbs>q7^JvU?* zY*UdrI^`geY0?D?Rn}pJ1DCJwx_ks-%+5}gy5D1rot`D>fII|E-T@Vz!erJcc{8Yp zKec7h;Z?tV1R0NBDc9A4j@`_`UHRyKyurPG_tXHDDPtTT8KPM+e7xd8B4HcL0SngS zGo%itBqasd<Ev>B#D6+&bMHvl-dg(pwbh#z6p0EW)>t&TnPmK$MU~b~Ny21Y#Jod= zcTC&C)?2c{qgXlNnH>CM(-bojrx%HAD6`s50iYM}5lgDY7GxLEDC?G<xVpptO)G#* z#9M@?Y|!?DGP^creZSD9)PCo@!mI^5IoZk0T7Jo{txE0AwdMX{<)2<WqGc_T?-CNN zZ=}(N`3KFyv!{q<L2}b}&$-enmQ32ri_yjI3a8E97U{NHKQV?qgklhuK54(1a}^ol znrx)`a+vF!F?X9>f}WD@$9u(AR@4CbK+=Pn;ZrXG!j-tK10?&GudI(;&nh5eYv>~F z@ljaOA`_lm*c#O$&Bm@**X|)x@YbrP%%ftIb7X@A8l>yqf-f!I?0(blV&na7;vx}O zLmKpzX#1$~(@ru?p0L(|6(j%Lhd4Ypmw}b=CeI13&jB)8q#VRI1}n*7_8oG_QQWE$ zzneE*Ha}Pu;VFJ<rzNK!B}IYEAwwb(0i&*cnr`|tDO1Nd6N*7?1QQX`=)I-wzqi+) znxi^B@=O+-ui3Vr1}9e3WpT935x?l15!&=836KThBUG=iYga_lBrV;4PNm|SWcvQ? zH>QdvsZOjwCK~KylCH|OTP27cM|1(1O#hg;?+|&GA4QelyF2JXZ~J_%|2$;sesn5* z>274^u9(xamAL^b+6X;RAiqgEexcdyX?T_}x=K0=<m?frZyQ3)qS@GqBdrna5i{|> z+7hMfy4e{Bn*{(Lae$NI_aysR-MUR3(oroI^7Bi9<#VFtVHl;`(Xiv}4`nsKnfz?; z@*^WgyPFD1J;!;}^?1a)6vyaKKUGQE4q_`j3V_E837=2~Yx+Dq^u&WHcM?}3DZ!fH zKeLT57bpR;g9BpixGlNU{{URl+rEnJ;|yb7T;%&Ru@c4^)TkELsl^t@?1Z4qiJA6o zZ(|kO`w-_oUb_T<Kj31@-<ZAQz>cFE-1VX5qR#fme9MoQD4_a3soEft514)d4L&b# zy%M0MS$}z9HOS{%exxI(eyJwrFm7hJ2&9<7Fs+v%xCVbDOK&XM?V$3j-)FT8&e@Gu z{Q>(?VX3@f+zCaigv4Hv;i&RttRl-?JnO%!=iGNIaz8|Lq!ZB%j)t}W#sKm3prymq zfIKdj{tj++$xrqHcAieJY&nc$irM@^kaXWL^yvh2_gl#UxOBuqrmX!-Pj0U;A#Kb_ zy>F92b~TFGZLER72y0;?UtMR=u_pZGcD*d)3P2_o7Z#M}tWsAMIgf##sX>aUt3f*3 zw4Spx<akUBP1*Lx29wT_sgEJ@iS;rv$n%oBoIbINx3pkO{DJG>Nrsb4=<-<A-Jg3J z%z=ZEeODuUp?p>P)S)?Z8OCo7B3Q-&u;6oM&}Y6s#0h*TkdgTg;L<sO9_dt~ZpxUU zL!*)JX{>nn^gcM_BQ&kNHd;$uIl>0Fc_Q#Ik>&d<8NebV(E-#m;HU%W!VH@F|Hb9F z;h`+Q5{UAbd1~)XTF?Us98B(M3`ry$F08}m?4LOP2IF=~Sl)e4iOEt6SB;=#8K|<F zPFd%AU1hutC73#(wjl82hAk(=cpI%Qi~;m(F$>uZSQh!P+L<tY(U_;7M$G*bUKBRr z>7LmLDSQ<Y_-bRadwERy@gx)7psipj4-J=K%nhP%=srd;;Jjfg!h3fsp;jMiW|o`4 zq6L6;0di%Weh+r@C#z!FlWivqsepzfv~%9j?L4$wy53M-3M;zrD4GQI7<r!lC{bap zkh9EK3JF6pvx0_i#!5Chy@%l$42)Y0O;SRG1Zjp!bAmq`I4xF!p1m376hE8VT{?{X zS#JHTkXLp0L;wRN52pPE{10V+pG@&~obVOa!O_@*jBhjD(|$4DN6XtH{W4;(Kt6em zk#uX>y+cig=}Roxycn4Nt+Aolw0|yv249XZkE%{gKp^^knNcQigA_@`NkEGcc!}vm zP*Jg$!?T6ZOoU`v7y(kv)_LV#fA^bqdPv1&5ffah&Mk3g%+w>Hfgx{8r4)OVe;L!K zRKNYs-u9VD)Zp6GmqG#reTNXrxYp260e9O~IL111`wwt;$s}YfoR&m<4uw6qB&59k z�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 J-mNkY^%V)~{?XTkiK*iLWq(Pm(wzWDNZ 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%0D)kTC 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 $a>tN&FL}M8S5O)4^|{(A)Tm;v|z5! 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 K@z+>hq0( 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 literal 0 HcmV?d00001 diff --git a/wiki/images/main-lobby.png b/wiki/images/main-lobby.png new file mode 100644 index 0000000000000000000000000000000000000000..113dd2d5e96c572cca717a65f7a05f5e83d5617e GIT binary patch literal 1969531 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℘=P7`(}orwIZwI%(of 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[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%0D5_CA^^MIY>%fcxjMZX5nJOwkrTvJTxg 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�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%0DM38VgpCBt1LI6~#ybGZ*f8HB*n7PzGt3N;Gg_v+ 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�+q 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%0A8?^zTwYwk03_nVQ)(JzLM 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%0DpA^ks_S>FYck9}E3O`ggp<Ov0#hyo=_7W) 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%0AX-!}R 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Μ330 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�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 literal 0 HcmV?d00001 diff --git a/wiki/images/playing-snake.png b/wiki/images/playing-snake.png new file mode 100644 index 0000000000000000000000000000000000000000..cd39b19f3973a9394ff5d7de9bb6b13e317910f9 GIT binary patch literal 1226801 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 #{ALd-)O0V<{<6+kLLsdhcQA86tV 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ℜ`5q&paD9H)5>5C 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Šfx}8&$TioE!>WZ)z*~r* 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 CXwyd(vD}pdV)(b|tFRm;IB1-6 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 N1 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%0Ai50V^4bkDc~J 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%0AU5BKqm$e<Yee<T0mfMuJU`cUC`U(fdyx0Ajd7 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 Rt~_YZl%YXqh3D!*E)? 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�o9P&2?Q%mi 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�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 TN<tk2|Lw7H*jZuieeVAN(>vg~ literal 0 HcmV?d00001 diff --git a/wiki/images/waiting-lobby.png b/wiki/images/waiting-lobby.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec041c540da2cd1e1a58752a49fa69d2a101e8b GIT binary patch literal 1471826 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�b;7f<mOutWF9uk0$&~+L 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 z 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ø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%0DW*Qany#t^%36A6C<~;x! zdZ+rx(Xjl}H8;+jxF0-oR`<50?VLV+OrOu5KHVz-eXPQ9$^g(dpOaqaB8`r1rVG|V zv)el8u?~8V0W_CXwU~<d)BvLftR8zH9pRE%1b~)`sbc^=+MxWY0qBGdpfehPW<q|s zloShb4M2z90BD~MpxqKb=&&$Rm5ql@K@C8A5}NI%kWC2rlszsvVj@?F^2HcmiUz7V z0BB1%XbFpnv5v2lW-1w`k`+oBp`4{pEKd(fQ=Qt4RZlrNd$?tQQ7AB=H$~ME=rd(P zxXMI(1eF*}xKcv{QUN<?s>Z42#}W`!aiEA)XM#S{S$4af8Xc3#1ZR4*6P+9ikGCnR z6Ya#zFvZYV%g^|E?$~}A3cw(<Fzm%_5GX22D^M>y#6q$kAQfXw%=bW*LYq_U)FaJG zpqvvbIVPWCifK<S>dD2FcFC6y`|=TYQt~9_>4S~%Og%JRt6rI_T%IkhO$*&}aHJj> zu4U)O?TL^*uC`a^lx{;Fs>z)iTgm!M87wfOTU+!%f1)jbU<d{H41|C+Dj(WH%o-S$ z4lrDdf<8ma144*+F9T8=s*(WExCNwyC_q>PG@Pn013=RSaU`7rtOSJ&Fm71B1KHCv z(7_sj<{L%Ib{_`N5Z_o^FyhLk6^KRRYrz^C6LGYK2N>FcmI`P$J+843yB9;lK^CyO z0ifYs5qT&zH_Ug+fo>%_KN?#cmnWObREufk3R7c+snN(#E!?U4D;aktq66rX2B6a+ zcQT}uHSrpED5z8lN-6J2#yrWWJuI6gj!Kt59<s{Z`vBUi1L(nb0kmuIeE=PiJ#p0& z4-I-8CXa&(yi@i&6_(E`ft*Uss!Q-tbSoUSbJXHqunkhpLRTB`x&WXZ691X`7(iQi z#>z9aJ#QY+b*Slf-ae<L&uM-eK%3RBDK=^ikC;M3mguN0GHQ#CTBXj##H1}bY1J5X z?TlDIBQ?*2N6$vaKaNg-L4OjT`6RpYNp9_&+|uy0P(BkVo#BgT`1~0raoU$S?Tw%I z#6I#wKk`IAIswq9-eS<ufYx_BLFR(pe8FM9=rrp9+Uylsuf+DbHRap^ucO~>cMFVL z@Kf90=eAOGD||4i22<*Q&*2FPp0HpS{Pv*V$$18RPWn<VRXA_yXQPr+;w_q=M$c!a zeyiVgk*a2=b-?R9H*mpu0-!J2tsh_bRH+t1^-{Q9m0D%FQ}JYD)QqJjyKF1RH!^`% zE<V$Y&ovSYt@O%Na&<a&Y1UiIF5Nj;zJHj$vXtIf%3NDv+oi1Dl%{7!sjBi75}BzX zDljluhPUyNo<Q~8<;$0;_dp#=thI+yEk?O8dB&Il7SQlu4yg^gAPgU<-lVbzOD^hS zqUO~tWi;xIMGBC{r(%MBDgZQWGpRF8)iDhl==u=fz#0cCWi(WvEmcp&o&doe1WfwT zS=0a+XQ7vK?6Xy$jno13crSn+ySdff(E;?)34mT(2(-$4vzVP5EzXUx)vVO123wVo z2B1q)CF_bxLM|odQw~}5#}o(ea|Rd}WfhV2$t;&p{1I8M<dj;0jmY6fDbgxLJH=o& zBBs=Mr=09mq(U-3GhCb-RZHm;(dV;0(D{rm^rm$>HEE7ddUT(4tLI}?=udUmh3C$` z@daTx;rtMQruLrAr>KlmbV{sRPBSU09>dhXvGVRnCCQ{h4AnDn$;>&abyvzsE}M`V zWlaJv;G6sMPVUAk^+zd=KRT-4+b-R?K`}7VTzzq8{iPPw#cuM(9L3b;62;>F)#Tdz z$ia1r$(b=}tR;>$Q?sLDJBNxp^LAi*0_70EN{A9tR-^&U<HwKb&nHiweDlpWG~fZr zr94J;vNp5QYIZt9P&I`sc?@nTJ7I0RAs1zM6vWgkN(4r*7z)zy)H61G{zCG}V9=Ur zVY^NHl>aq{VEP;~Jt}o)HEoa^Q#6#t;=XqPwDIRJ0chwgQt6{+g&Gu?T2t;tcZb?( z^myL4fc{Dk;Lb+);fEh6#b}&KgG?H5{`AvNba6@(`sMla=kU@=2}_3oE5oP?9*3X` zZE$S^Z5uc0wSb0sGF(UjKvQzT87}}dbr;}ciV_xzw{&ZOF!(IeTr<_{^e5F4D9gP7 znyv#06zF?G{rP<WP1OhhG*x2srnIFa=_^owi~gh&=}C~75ZZ$4WJqvO6486X3E^*l z``h3A<~Q#EXehNA02&WT6&)o4Rb0q9loK%5g_$-3{AsI1^>umJ(!sQaosI@L#_QYP zJ+Iu_tlZwN-P;vsyUQ;=UwZXu?Ae{v#=^=sU*v9GE*vaV9Q$%-^vmnxFYb1q-j)|f z@BQuftuJmi9v)Jpv%>XkVzLwN*8Uv;4F)ZwRAD#DZL88=oZXT&mxG7N=%FT*5!j9@ zhZ$izChWz;y@aq6^&AE1u+TxqzoWW_HR)$l$ziRyJx$)*4!Ap<bCmT>1zi)IYlaUj zg+22@ZY3004NF%O!j&k0EkyTHw$t2pD85&W?G~i%xOk8VALi7fjHuaMN7bXWW^=up ziX9Y!+p)l2By^aOx0C8l`rzjuX1@NS{l%@w%J`-49xcAQd*$1^6VG&$@W;2tUf!k{ zS{Z!@Kwtmg186X4wOQ6sU?a<yV^T#&fmC%*cPVNpaI8r&IXldik5S+|H^N<h<wlSG z`In7vpEd66#a1Vci4AB*0YFpkLbcF~|KMwv>NF}u7`lVp(eD_R8{-zV>69~(8=<8D zgEhFX0g0v>45qIu&mYb|dq7Vs{io@MMEjTNW+d9Lq}%&<F>dtlobt}IDLW|*^&TX3 zA{>!!C55e+x|fabm!;iA=pY;3&k47p{9Y(<5SEXUn&!+l9ivT(u<Hu5E^`|yvmo+| z;oyAKH!b)k1ZG@xO!#d>9$VYvX!#sf##VGY8ybKP?1W?c#qgdcsxBX-LPy!aP9(4! z;djH~qa42zk#|zDLuBu$bdV6Y6R}zrMBW>b+@XM!4e>cOm{-_@pyVS=L}5~jOXbvj z%%6^EF%_cJ`}GomLO~_s+K*pPe*I|j<>yo)_W$zz<g@$rJG;tEXZFzn)rVLjMtKi% zRkStSR6?2`R=wDvS{*EPWo3mLCM<vh4Wz6{l`ym>C^uqKgz_q7OUkI!!qV|nduy^w zy8SQZPult5S(K&etV`d1nc7;t_Tx*6rL9Ythg*4dgvOe-27sm=qXmaj99_o%(6HyF z@bKZoUI0z40{}Fd9?T6>i%e%xBTGHuwY4?O*-$fqbu;LK!uKpSI&?4q^v556Y&gy9 z1<-oPOioTvI!sJV!l(^fy6?u-jb8%LbO2qMUI*xnntt4oQVc-WP$2E`OcjFsG1VKC z&eYSOwi^Om)VfjAM(yK+2M?&>rZ+_s58)}=r>+Pt8$JnW#X@g~4+3cV5o?(#H6R!Q z13C&|#7?IZ3cU0TzyJO3FJ8QO{``4Lw6(VZGzQw#Gok<X_4S=Sdlm_MRuAw30!JX& z`Q(#N&S<g#AJYZtvh<ZHec*_g(vTkh=bwL8Cx=3ljrdeu=@wR>9WFdOsNKI>y1B9V z^<#?p-OIIG8==MVwXYrze|dN8={<_o+nc4EYo+~#nI~Jx)nST}S|Zjh1j|Vp))i() zed(|-73Q;18tAE|OrV?<syQ3)qp_`&k9wj3p%Aw7?h^og>Vp6p<nGgB182kJ8Ai~W z`*D~>>&qP9bo=omz;t%1lbh~Dn*}i$l1mx6m=ZGKWGBamSRp9~(-9#Vrart+<~)kP z#$=DoyCu%%b1LOru$cDclD=%*n~ecLr^i~c@uoUf3k+4Fv!k)uF|JWueSE)i>qcyS z4vw$T8;21h^~c~OlkzHL7}3^HL8gKO7lP1E^cPZ0DUE>`eQ^k{QJ#TnB6`2DfTny4 z0IlI*y?>5c2!0W;o{Vx7mPcS%idGD+-ZVjWJwTKL02-|-enCLz6TLOs(tVLp&7mNT zm!p%z>6x+g>_}$1o1Gb!YI&iSD=bdc*5;*l?fR?dk(H^=!S(ju34q?c`aXcp&5vpT zx|B{$bdzH`fX*guoOi%s8FX1M*v#k6{my`|&t)^~euG>=*5r4aSq}iTSJOdO&4T}; z({j;iEzAx_MjC-!(jl=Fg>=Xh6PUQb!~_%L2&5yyaz-eng;L5Xb3!&2$VB-<(yj#h zJ@()I?!OGgVQk-cAUyqM-8l^*-_YkX$L7x(fd1qxNc36V+m;TXKZ5Gx*<-`!Q>P6t zM5lX(pE`iHGH%VaSX^~*9*4G2p7qiIIVLy*t`h(q^{D|(A=+-Dcd-X~yU5e_g54x! zB7sy$s^s{5+!kPH1j;33yUN*R)+RC*#zFZ!kdWMA(WwX;x3QVHxT+B+&S&;}KQ;CF z!U_{r{fUSt9`YuS0kl0P3dOWH7k4GY?sUYR4!bi^cQ(e=@@5@CC&!Ngw7-(|<l+<y zD>L3|##2dAbeH2?t7r&o80N;*48imS9%~KYOTnOs7@5Kt1*1{A2-qv;*x&?@E2e3j zPBB0`xg<q@E<rI^(t&s>^FaU|of?Wv4TUE<q49QnY8ci(;Ip&^frW~cVFFAKiIyEb zLlhryaM;?S8rSTy3u#`f>vBRh&lHXUw9+c7?NW%w@}0aVDSJ{%=h}RIW43l>CbHO7 zraJOOtGK!#3{?Z2iacDUM0TYk*~w95q$O*@=nbxt^_MdMzEq_cu#|qm$|{30(|>6= zN$o;!V~1$~Xe#1S;q4ZaSa?B0rG!qw_?^CpA^J=KSQ!IDw0)XRvL2w3g$DqDcDvp5 zjp*AUp@70Ez)>McHx}2@TO0#uimmB!it{Ur6c<;Qm)4dS*A^Cg=raH`+ELW7kR8E; z!WtT%5PcD-wBQ3n9UPT1R5<7g5Gye}5JH860vLa4ZaBR#s@3)Lqp^i?d9ncjU7S7! z&=DO#Gvy3l&U>>7PbTh2D2})+ms8ZJ*kne`C&gUi7(hp4dss3{8h~cvs!3o>g3ls& z&O6PYIm~^Qfqv`2xxovX1oL2@ZpQ1dvz`l@3eTX$XSFgmi{I&FeJ;*t@;FUiSHIhK z(P8Ryn%R)Rg@pmP#pJb`eVQA+0gu(}wrc(cEd#v(8bsSd)u`W1zc_e?q9x$B3amw7 zdjYhS_t2FuSo$c2Iu^FzWQ$Iz=9lV>RP*@@c7MsKHvMwL=gpXW*}+iDr!+ir-6hps zu~ECyvMDXAShIy&&Tz}&4u9m1e3YF3I9Szer7i3!i~p3FB6G^*Kjlk&q|s*`K+};f zilI|Z<&;xCMSnU~ZQmiEvP-8>HGc>|`~M|?cI#%X13rhwpnCwcCUtEcIB)5vXwyaU zbyto3pAPo*0_aZ$E|`6k?2hx+!Otv%=S}?p&{S5#loN*QmT<7XINe;COHFr`@uo7_ z7KW?Ba3wfe3ywEq%aieyDXJfbcCU8#uZI@K!i(eK<;nEIxCWr7MhpO*n(X!hXbPZU za6AI7H|n-h7XcU=l6mNtL$Vgq0g&qgm8MYy{YjSs<fS5j+)hQ8_91GCkqp(;SR8@% z^>Bnu<(4`whW<t`fTn*@osN2$iWof@bumpQlc6C9g=q9Gs3qtH({x`dp>#ZL2L}gf zJOhDR$gpCaY2(IPbL(<qiU!6blec$AZf?h~%q2D!__6xb=0<gOULI-rsG%8abM=%C zpsTEA5S^e#ORnY|QJJMuDGPqReSHf+$7O#+Rw_AF1JF{aQS1fKQaY6ERK!9;2hbxr zfd2S69s}qTxcu>1NNt=uv57u+^50&CxN}-R{DeO1oq%4Quak)uE%-x06GNriZRR|h zE5aZ{eH3kuiu1TaK{*$d^D$SLw{mVK7WBu1YCh^u$POvMX5$n$zI{3S<gU6lMKN)G zF}6O-4Ob~HKYuX#<j(B#`xMu|dn_-s=f1p2as2T?X=Cxy*H6kfu4r*}PSTpmZg8|N zHcOeAVYyw3O}6-EQS8(J_^5LUy9vrC#?o>S#>2xy8Z13|@&pS-U%!40sbU%k!QY5x zRjLh3n;<y!l}AQLs6z}ZA*?CJidxD}=-1LXi*7_&5lh-B&x1Q(y?XWX<;&23rrd=^ z$Hsytx*GMQ0idD&Pg$L6dx-yP-Q}y(?*M4}6Z9EF-**5s?ZASg7eE8r(hem8*5P7i z7z?ky`Q`An9)O8|{P9QFK+z7Yq3K6@ei{u@>83kUp@Z{1`tSGOfB(Y|KhTy2fwYA* zBv`X?K?J%Woz<%W4I^j(Xrw>9IRijzBMN;s$QT1O8(I}a!-h~ebi8aT5jPeqz%Ua4 znw}N_+R%VD0JNdM0RT-O<$VB64~E8?5*7{#VX}vtLcE^tOG9x$`9J;XPt?_*_TV?a z`3*h!`v4k-*wFgWoLlOwkZLe`DyoIB0*kI}ti{GL7$Z@@<T=)bP`(0y4vf`zzI$G| zy;ZrhUAw=h1Ly}jfWDi$`mX^r7<4ayX5w<RmFG%vE#@Qsm{6Fig-2@YP}L!G)s;!P zQKBf-i*}I>>_pfdMc9vM-U#=ip@WQikYcwKemkNbX2s1IyB|{aQh{wvJXiDKwx3Y8 z)2?CG(PS)Tm%Zw>);-P+<7oSw!+!sy<eLb3rUiCMW#%Q%O3<?!)adg@$iBq}ccT1u zSlEdMb|azvG)H&Q?N8++P4R%=IVN=KZYFxrOX%X#ZsPFgA7;P)qVvV=$m+!9?;b6^ zy0`J|y~$@=_4`}h$G68{-k}&;9lQSH*Hd3VntJ&_UL1S>l=shi=ag7IOYvW#z&A8d zM}fceY`=1&!@qn#_5Ab3-92Sivwem|JZw1)1>W}wAdF8jlBY~aMZjn}VSonD2Nb~g zMn;A)`D$2b(lsGT1k?yoaw=%6&%YRXa(C>@JJQ1Ff0k}Yw0{eso+R48{HAa2^2^`! zgQxU9TVN*~-Op2$cJv94qa5WxelHTanG5V{av92QI&ze!JSI?nJ4(=>{8l);oef>j z1g?a+jZpAP%(o<Z76pDG<eLh5CIY_kplgD)4!Lb@kE_MlD?VGv<81n!BYt5o7Tk*| z`w4bi5%&_xk*51B?<VP{%26h`6XW*6>On@>jk<4YOA7ouO1xW*H1e4Ih_~|bp+au5 zUSAzbv=a5pQ`JkeIqK{s6=UisKhq7SLzljLn%-Ky_S09TtxK0)KWsm~vHJSv(yPO@ z@1LxE|AJ!c!Im`By!ZD%PJZ)v<k>x{BGz6%NnTsJ^!20c<@uS1`xst=+F%}n>L`Fz zI8eoOpyB5YN5XUwT4z*`!4!z{9_2R5id1J(vrE6Di%1ndWl>;g`Y#L@V6IC$##u0h zHqN5sjXJQm8pP^70BD#x0zgyUzS0wZ2|yc0(9{a=?CemBOht*_7kbbD(9qLF%L^Gw zc+3M(fCV%pu&KSKrsPvSpo>chh$UPwj{uKGi4<LBSQBg)-snc@kPzucy1P3BUb?%x z87&|n(j`N>yQM>#(cRrOy1soscJ1Hd+S&7*bMA_a<Ij{!XP>zRf{zR_0Llv-0IpXj zAJwk_XcIZ)*mR9Zxa{hS2M?tnAQ8yd0rE$+YbmuX-Z>g5RYp!9+_kT!i#{_(fz36k zqX39bm4P^6P9zdkkQuCgU?QigPwzKH#=vIy*XOD?0zEhIj<}=xb1ou4c_Vh&*bmT# z_;h^vFfD}oQ#`*RbdKM|!`OI(;{8GPX(SmBs?3lj4)>7z{!%P7uQY*OZcdYz@?Vgb zU`J#6(trQGJY6l;KjSGrr?GbMl^7W>KAc+~Y*k)YlH$!|Dc-Q1TQw7o`q%f=x>1s2 z^oM4SMQmD@9vDMjS{C7qcnH8MZj@F0=SAw3!v{prrPA=s0G|2{nJ;_Tz(aCl$F{e@ zVmk7nyfW_z7tyz?D>1;Df1i3@PboL%A*>gj1$Zn2AO_ztKfxdV!~!qz0`x3wKb584 z#HVj7$b_b3Pt$WmlyDNrB{ZAuuv8_YdMHfGX*%c}lqkLrR6<h*ptpN@`dJZYiml@* zyMuqLQ_q~L<D9BYK9cIO?&=1RFsjYU_A)c1C<k*`{_=gIhq{*j{FC!X^U}3+HALI| zk@Ck21`L0icbp}4Sysx3IgXiYoZ}W2<0HpH<-i-*)_KCkeUD`6;&71a{)+y@252ZM z5#;}sO|GmIS7iNf+C4wx$jQ}~kykh~i)=@)5V{?{$jm0vN%&vRj|wH3)WLrj4&!TU znB$n%3kNf4R!QacTTAM`e`w-)=rPe1lS-pM8}sk56iKXQvXOE6pDrI7%?NS>8U}W2 zgRIW$-9^%vTV}z6)S1L-``_7uFu;2bS|c)C9IA<pc2;6W!Rhzm{Ko0G5ieLheI<Y6 z%umG!X&;n+geCH2Z8jhM8HP;>XTh%%0LZ_1<c%TDJAjRHKwnMRe8<P%Pee_VZQTq| z-U&O_77xVPnPN=bw;AW`59Firq#_*+{}Fc~fm?9_!b5yW#D;ZCwpJ2C9kG&Fi!_~t zVp+P5m~APZnn7MAp@yg^dr;7VOyW~>0BhBMY7vD&X(_1a1nbuOfmqR^&YbEV@-Lvt zrRq`e46yS%5?EP$J~ze)+WxGo+MtbtHf#>anFe~${sA_WIQ-)4+E-$m*uzP!fq9LD zXtW`V6?bsQiMK1d0+cWRJLCbKg&v3U^)2Ou2$~k6Yhiv7!a(cR_`C_`IMIk?D%wDX zTqW}8%V|IlcJRz+hjVSz9oBWTgjX|#Rts8g_YQbPx|FZhM~j<(i*kGl?@b*&^CFcX zU~l`QPg;dOMc1!Ol)~eYRGXmrBLWuGuEa5j*Q>;V6GSLBIXhqc1zi9{?u@T<kO1^( z-ky+3076|9=YN1t93B_pNQQ`zHV>d;Uqp0Yr^&>Vj_{F?kN_t@u&D$>IdcG<@}Qw} z-Q)?3w}t{5$Sk^xe&YOv(quEs8+ioX+yq-$RU!Ws85@S_&Pd}aHV`3h#VS*2G4X5@ znlI8YXe@#X(6ANqF&?=G&jj|-;<)XhrtB31oLfF5BfT4x9XJgrHj0yR&3}+XC92k( zbm&O)j#AkT6j_yvQ>|yp-7^|}o76Wm2eg{Uc@+XWHYWzxGSZvI2MhFi64kO@rAuu9 z%dDI{!*u(&6Y0l47!7EP#=p>L)%RyeO_1Z9*+HluCIwk8;17Y#fsh*lP}4&Yq8Kvl zVLv5ga@~4bk;dw?{?+7KSIJ4)YI)lg0K*?(6~qF60He`O2yZsswO49Sc=nV5Z3=CF z+5I2~f{BCG;UNygpLy4mg1Xa)e>A-IWNH%EX<+a$YmBR0A&3dW?}ZH2v<HlTBBS{J z13QLWwO~M=yV~F;A~T=_UrisVx_m6ZvfZa(As6qJq9z-UjlR{SS+%m;W>~h;=crn6 zw1)<7V6cUQhWjxvkrEekx}Ec5Opgie$jKYcDv;J-R6Q9Dwe)9!F`TQsoSXzBY!t?; z-%;i#)vhxQmV(m%RW!@_vq5&LvF8s5MiwcoHsQrqi?bzuD7bi$&Kf?g%gmlnU<<MW z*fbjbdE!_ty#pNnhbfl8ogAGC5e7oc#}}`q0xYNVfroMA0AW*rO;M(@inpU{YvWhh zh#EpMP4-hRH`v1H&Fn#^P=+j3dp5i;;^X|P={h1H6Af_<g)hAg@xz^lWM;6P76Je= z%K|>99c0m6@O`|t912k<!_3EEyy3C}v(n<r_nk)g(IJ75N<tAa;mG87Fc}N9pzO(T z7`;>?LqYgetTktF3k)i2%jFcSHlG~16L=nLpCFBm(3fzb<vV;$0gwu^ooi7Ex3oeB z^|zbf=~QVqT98k5VjThr>!+AstANc#Rs+Ra_8<X-AZMjUmvs{XMys8wnq3S;N4VDs zgs&gHrGA|t7XAkv*d;&NSN&mBL|g4TmL|&Mm+PYF<A9b|JtT+(arT230EuY-_8mph zgNGcyBZ>VB9YF<ojfA|j!H9cpot>YE%8;V$*WDNe1*=MvniXgF_DCPa^2JbNZ@Zwi z05Ai#S`}CbDJM>++Gq+ecsZ={49j<m^u+cQzH*(a2yHr4vD^N~BiF`@bT%^@Lo}P# z^j&<+tG8O<_J`@Yg0H8qFLCxqJ8Z7b-WMJW;TnmIpkg33!9c!nzC!{xtH;Ul*$G#2 z;X+=3qAYA&>!bS|R6q#SFSZ8vN=UMiOqo7Kt>>^Rnsbhf*&t2{$~uEGN$q}2$p(w= zzIOmVcC15AHm_dQUe#d4vqGW{IH5l9)nI>PQS9oOhJ1m5xb+BG#ZBQzRF&;m+rMoN zfX&bN0C7$EH`u<&>pU6(nTDGTBNUYP)k2BG@)ZkIl*k{q82t8VZMSFZ^D-q%VS2^K zEDt;Dem;Y0vw+}QubiNNP)-jO8y{?0U0$bEFkOL8x7cfS@GDbJ`R&=@@s07i;<~Pi zbG4-x+d>m7OP9~jWh29feNz{&!wKVHy_fyZ0|fXb`a0;m3+}R{Xa8hjE$1G^?*lBJ z5B4i*rC}2VeOJS&h8AU`J6FRz(yiY-Mhq%6chOK=ztxQz1T+lp<9-h@kXl!;iyZbZ z-PGo4Axyzenl`1Xq1bDZ+#cs^Fa7@P`X&}OI~_vHOnFiK&{2W}*8kDE+3-y`wQXh1 zw9>ITF#SpeZQZqpm*s2hS5CG^ZR(3MqQ5xi)$|iADogTT^<!#qG0z8gI}q9nzqg|X z(S70{8>Qn}__yk-3h&i+D7)H~|KL40x*=Q$ZGD^3**hCeGY+2e{o8u?G=E*5uL$#+ zeSMRD-r|ATxqH4}1ZO|(UmeyzZ?9fH7yk{O7cA~?{}zVSnE+>>cHm}y$x%2vU!)M5 z^tiNTA^=sKykp{>#t?F5t`5H8^R@(Pw$?~+TQNW!)Qv*3DNfNEC8o$i(<#4+yWj~` zBUe0vBuUG-AYZ3j>9s$Ei<ifwAZv}A^~c*eUi_<;$z8n=X``9&daw6*#t*kESP_iA zW9uq)O*4Khq7W*)U+VAhG2x}6poUv9mFJY7hgyVp=ss9!XPqsM+7R5!N{=MH80qpW z$+x3AG2yL@L{(eEpP0TW@U@WNvLFVci#y4CDqoEi91>$b{G*nQs%;XQATTfYVX;(> z?c?9ZJ|9>T=Jp}N<(jXE#I9dWWpt1&O^%iwzVsSwri;R=KW$<pqZtSbuS<&IavLuF ze0-{Ifur!Fjb;x)=lj!6&$fr~S3PV`do1ZJ0geAB5Ea;@E$*dZry7Zp`v>s`dYbOd z<^L5?=Dzc=h92EsrFpkcI%#SVzyPIJ>`K|?Pbpk0hJJ64FR_zR<m76_uE#yVNS<V2 zwV7#xddiyV-d$omlsp@GPg=|0+WNTOkw*NE{;%-n$aOW5@TP}@VjvVUiEPA=?hsui z{Cl&Lbpc2T(gqO1M|NE|tF18?Gk6HwTr++`=|TV>$(D#|;3~cMQn9FM4fRZ+#4qo` zWLRUmn%mh^+-gT5M_aIK8r$+AuTTbobBVnzdy1v!C<F)=U#ba!UD!1paG*gy3%k?9 zqS;UrZXASsK;o9|<!}<+hxzU{ni8w2#Mvr!CV8@3ilB!Ok}pqW%ISII(t;i6#Wou? z32#qlm#{zaZ=%Ms<o#~e*-eQ<j7Q`~OgnNvo-xyzXhJrl@Ed`rC!5aFqk`l-uMdFC zPDHDZ7}nUA_a@(+#6hHOXiy?3+WYIqyR!bnM{yA@K!Xy?rjO*Iw%7Zm-`2qE$m`i% zSXN=5eMTis3@qd1Yx&vSfj48b6Z78|S=Z|$bwB^cTNlx;t|Hciee1TzBd3t#W|jX& zWcqG}FuQLw8(%EGDWNHRCSbJw)%UFdg^OH^$(97^D`W7V=I8bqirXQwY``Hd@Q_yw z#w^Hfp@_N=&+n^d`z~}PQ}W)-F8Z;;N_hBZ#C<`eeRN)#!DQPPxVWCeAI#bsJsQ)w z8ps`9&h&Em*l8plBNDl5%=<G~BnJc<of5q|3j8~Eehph}gRhNvfQD689qj|y!l(9a zync8xq2Mub=r~zG^bc`J>P(;ig2KYWF|YO%UHAd^$YYH{q^+pu+~LkNo7N&3D))4m z=`89AMY_tDm6=4X?<Eb>g*C|^+}sZ{c8IbOeF)K_4(pQrfnXhNof2+@u%cL#zw#;Y z6`DP3YIk|&SmNYRjH~uMw+U^|5xFF!K(l7@!{j9^ad-%4zC%4d#zJ^vCMV&_`}y8W zpMC^sT5@R<*OZ-eRRqDx)uW6<Q<V}=_>_#RXH$((j&b@2`_`8iDK|Gh5s}?;3+6oV zpd_Dj*XUb@RU(hc-6AHy(QD=DG&LygHgwQ*9II=zzh&&lO&>s@za8ddgeTmE0!D-v zBZdB_v&CnbE_y#CMhY{Yna#C5;CjLAy?i`fBCigk`<2i}20b#j3Uqjf${^r`mSZJ0 zUn%AGtsd0C_R7`fkb@QzG7qHJu%PDQi(2IW{9F?leQW|o{9x}f1Mqla0aW@v3jral zWMa=SA)Zr4Fg$oI9$1V7Mn>#n7&5dlAbgz=nYScp4N}MeaMIVo!wG({K&F`>Pdrjh z>aWf4aVR0DaH5u3kz~4AYeXznPjBrK^|UT-_in6r&**&E9zR=tT7~Qv-rdd}KmB2% z@V3hT*#y>xFDlV8-%({Y3bA6-mL!R{Go3`(MCTN=Gv4QAO{ivxt7M6*W>GOP%G1rt zDj=eG1%RB^b^jkl+%3OpD5neh)kmr44k=UpB+(i=l2fEshHL$x!@JvRa%WK@C#d<k z@f%tr<8Oohtc1EkcKvu=tqGEC{e{&2=t#aPynn|jw|mfQ2RB!}Q*8xw$$_PKU3tQT zBD8v3jpCj;Gzad337OA(N~kD0K{eQ6IaNyzk)L^nM8eaz5`dD<M97+8bCcb0vB@7y zoA_e6d58#ht4#esFh-b1)_CNB__R8JS;DQSH$BvfuMpQ|NU6_fRhJ!MMZs^G7qDys zac4ruOVdtEvuUrZ39udb&ZK7`EkPO<;781E1BD0hfrBlGMEZ`2gQ-?}_?AHvmr5wq zn3^_KIXeOoV$IALIw{eg^S<FPH?E%Q1_cStJ6?|C7_-5N`Fj9Z7SJ@ftF>;b3bvJo z!v5O-bk~zgFp!gvNOn@kxuel?HaJ6s(1x^bdh#K5F%7lRtbai+!D;aOq+LBjeA$jL z|M3zL$BdGpT{kMr{mEj2B6Sg^(Aa>L`i1c#LGG=DdEX4GNQr;VAe4{9o<A^%-v*XN zTO{T+eE&ZuV9mN-O{n_wLM)!6$U$)!A-x{|f;5>}d8IjE{M)L-u(W#F^U|L%mc@v& zIF|JE3i&GkaB={dLwf5k`HKGr+9KHQ-6LYBOuhFqTWdHz5L0|8cdFe_JT?lR+G1;c zp-EWX{Y#8Ku<Js<i1Hm%+zu(CjaSXQH7235#!hyNky*#`we`(J1FHy6AM&qA67Ni$ z0vDe_gT_V&Q6%@!dxb$JOFCHZMsmn<$7(*mHE>8O+)RR=W;GF{dC3=MBtih|`Ste= z=m5(T{z6o;x#kelD?9mrf<Cze2jOBku)w^V?$!|WT&VG;d$f24=kQ;CYTaI-y%xC6 zPLckuKmms2lDS&^nWd_`6>3bb3SbtPk5~5CPLf>Lo7b5v+#jSq_EE-;5aiZ3D8hAg z9Zs6*Uah6Sk&k-N)vTN8@uMNKfe?_PRN%@Mi<9~^=zXXI<AlrwNA75$b+cZ!*&e!x z8<CscK?Ped=5fXDexJi(+K}+5VGmwrsBpu*Mh}1*A`rPe@%+BMV*te;%zEL1VN5rM z7KV<G7y*X>E!+}q_TY%Jrl6K3zU3-%1M8^rRXLUpcKN`M3O7(KULI}Lc&!4fWn%@` zy=;SVfAbiFVf2Uw7HT)t6xGNhLS+0BO4YM+{p||zTxAP`ubi8;b*_%3iE0Xnqr}Z5 zm*EJFzrHP7Ix}u7%Q6Euu0{m=dMLGitKMO<SKf<E2@7LdRc0yL$aZ3b<NiA|N5#q! ziz20AY{Glg;!D?(+-pczlzX&rtDv#UFRj(~`<wFHhH=m0yTJT_u2n^;)^y>()%7&O zZT)?aAK8X3nD1({#>4V+osdc*QbYY@S9*Y7u=dJh!1-g&5}j;e9AeDUZR;c3MMdE4 zceA%+yPFXOKPTp|%UW%jlv-wf)S{w;$+#nG-%70VGc^=(FYzSJloTOpYqRhHZ(?ph zEMKsd+!w0jz+S7LDhp@zgA8UMG)nXw<i!C<^L(nbD|04m8{w_@k<n&Wa<$1AdLy!~ zJCS#>hDo}sxDS>KGVbVXmFD`q(Ei#=aUS!YMO!DV(eOb8I6hQwY-|+w;5!}}k-$#} z;`E-;VRqB!oB7D7B3`Vg^F&coWRK1eVc1Hj5}l)JAsl)$nt25Jq4&uV|Kg)}bwP@F z6E39A2`x-cc4D_E(uA}YhneO&jqM?b;sL;)LuG(Tg8<0jgTaP&-a0%?`&FYWghY(1 zD+a5ELV9?}MRLv0kiiz{>qmyaRa5BGtv+N5!&$t}(^rQQ>Nry(*Qjk_9-3vrB|#u- zI{L8phn)luvg7uEyCv&Bx{zsv&R?6n!vM(T4=H_kF-;nH09l-L>8~S1hzI(Uj0b^K z2Tab{nb^ea)WG_Kmx)(<=fu6QxjEvfNySL->Xz8GN>Sa21bxDbVQ|4ZVp!Yp`Rl;u z*azw5XyXj@G#u@a+E_iUSl9L;4UZuq$B5+PxEO*S!XfGH@objEV*1@b(0m`^<CT>D z*OnGy-23fgC%q+A#b*Xvrq5)w$z;o_GF~^^DoVmbjK~=fBkg5Hfv8s!5Nlh-x8}kv zH?J4Gvpyp$DjSL$-(o~7bu(*AFC(vN)aeui_y5qG2D!u&#_7Ar@bAoegR~Z75WVwP z<IBhkxU)`R)co`mo}D-0@%_vVtkI~_?jY(GviyI#zK<@Cw>wt{_tOgmI>y2y8%Av8 zRX;@6$o&1xxA%l&`X<lm70vJ8-=gmF^~c%b3tG3lReawo?o~rtIBhno!D2CuFp1iK zsiZXR{cqFtuOo4(#zF=@k1h|feGkWYLNFak1{w+pUtjXCI%FR%Mj#`h?qL`Qzhj=U z6f!slR7<oA0@sK5lKBV}!c&4YPf$Hx))R~u&d+-R!F%OVqZ=Z`!FgR1C;y-V|D2%? z-lt1((beaeq6@|cFh-1MP?FO-mP8=aRHxs=TU`9bb)HoILoU!}#NowBxBg^7>DLas zJb^dvw7LRr&{FIOa%QvGvMU+tvFS)xIhvsQT_mI9V8Ds^c^!!^w!0!)J*9fpoeJuN z{DjD$j|}|X=Z)^4<4YDw_)(28B#8KczWm&(WlimYQc;?=hJwI(u=VvrFwvG*?{p<~ z7uoiGZ%BSguxx5V0}bM-QMyLLuoRA_V~kgHX{8c%k$^(`Zb9drS~L@FX`hKsOTP^! zyn0MXfXCxr81(MAw>)b56q3{R8gw<+H=ne_U-mL3^E~`f+Se3%oxpaDOzImLAG3V2 zds}$K=8QaOmsOn$Cnl*IRtG#K{%nI3gPg6P&-~iYp1>&i;QNLTSj!^)|6We-pv!~6 zO2LJoOx#bX!O|uN2rfOJvze6#$qm6cyX>Lou=*!!vt<KCB68g_ZAOO}Ws`jM@Gu1` zBRe=cs#8HYk}2PBjo)vxHeQf0nLc3<0Z6oU(sln7<t;%{tvw?JI63Q|a5@=as6@O( zC^60_BoI#lV`*Gi`R+QRJmmli<&=w)crct~-)_besV<JVsK&E&v^>j>s_3g!6j1*C zvJbl&3P4)(Us@N7hWSX&;RO=<5y3PS@p*Fcg2^<Sn}jvwS`j!Q=jd^4PeriNqo9+% zpy9BPa&nrK{^KEPT%iuM1e#%kzORxuhkN<ucKlG<1RE<;jQ90G^gZK0l7z9i@M77j zzX1}pj|1W|H}d|L`;Th_Y4;2ScRI<#8Ucm1SI4oX*1V*-#>MF?T|(D;Yg23&k!f^_ zqca-ylswm+O0y&ubxCJ(%_9Z)#(K4NcXBiYN2vpT%d`)nt-9=_JLn9oxeYGA$zk-P zKv-9SX}yz6g7fJhzEUaP|LtI%`Fl97ggLiG$#3*;^={=O7Jq)LeQ1ng!}p4ms^7?K z71n{*PRuhMl0E>-qAnuLmm*B+Bipi{$Cp+~egB;VOJKGWbJ8*YGQO&`kdx3)w^Dob zxz!LW!NV)qk4!%|&M@<6eRYIcMJ}nbHf!YzGVikgLV4E7?Md2ZG@h9mbgn!9h?DHo zr*848eNmRGND|9N!+!;drrj#QjZD837cx}6xPdx6oGYnD4G!&!KN4V}NE*RRZ0in% zJZn(Zm$oOUppq^GzxXr;|Ft3P815FH8EmV_A6G~5hR7M<$KI4UITmkqAXBK<`Bx}O zKN}~K`$@_5b&v3DWhG*K^x8t71Qz$FiwrsTkj$tc1qc)a4+DansQ9NWZG?<eU?=i+ zFwf%s(dGa!%T~;t#Dd%-<M}iU3Dnf$NRXgB1Cf(%m0CRaW=Q!V_sB>%uIxQvAjK>- z5I}99T-e6XL4!7I5>WE#L~AcVX=GqElx=m0DJ8qamsyF=_aYhqB}I)-SpO9gDfW1Q z5n7S7XO8hI<12Y1>~k8VmOv3Ap35D8{aeIyUwK`G+#gQtp5GBG@p*RjKBIM#;$x0m z_Xy`az`e(Ay08is9+A;%oWzFx#PGX0qoTsP+q{^*-_r5FR-}qEcq7t$B%+9m1;@Wn z2Fus3?HkH{j!!q7C!h@1HiX=y`>8pkwL5ek+&!;iJiZH0gG&LJwxSql)2IiE*Z}ui zwpE_W2~IiMO+ee?ws$XA0De<x=q!PqoWb6lO|wppm0Y|!#|wl5(UDx-)GAF!?t+}^ z)&g+n$QW^zJ-$6MrRcJ)gjoC-2c9miwu=YT3;+n;g0n+~(Zcpf9A=ofCJbiCyP_S~ z-!ELs62!X*x;-5(uci-@zv4doTkrtARg}a{AB=8*-?7wv>kat~OY#ntR;d{aD;CjO z)^&=lW$}pooUo%5X#l&N?g57=`tggnBd3*X8TmQOb9<N5K0c<*P3#N_jRlDW8;p1d z?T<^JgH^^=JieN<bQ*yL=$0#)&Zwkv^PHm_zQU>DaML%yKVeW@M<PpviR|Em3K&d; z5c`ZPWDrS^++nIjUCtrF!1y3xzE4;N8Ca2jm=XJaWL6zP;8V@IsluBciXbm}?o)e3 zxbF!<T7^RefAHv1_ZcQCZD5;vVGO@QI<pZt3$isVF{c{FagK7V{E&437+CQ+BjE>% zpqjNRD6nDJ;!mGVIsD;YEHIM*s0!swFX$XbHi|l4H|W(-^1Xq<{mFKSP04rm!L&#S z@1X8<6+i?3AqSv=laZfFJhs1`s*H(QQ1X{#3aeiZYohmPFJ(Udtw`D{XOdOaXt;E+ zlv{adv}Xq2y|lfkv}j7ANBXE#dibd-BkkZ;!ia;?ykX(M>r%_oMN<uV*{4^Mupo3X z*kCi^f0msVhvHQ|x8Eqh*UZ_?=Q~)8b^$n?RMHb#2sX0Km`#ly7JS7+S1Fx9<CZCV z4pXk5<$12NqP5o`Aulv1%<`(WJYdphNmUN;{mF(M9);Y}D_!N1=LTcM91jf`0mkhB z%PhR>fWuiAT?d4MRAZ;B5Iqn}y+MjUJh=Wf(??q&2p)`>D`^dRXM*LRp#UHR6P8=q zzg-}w?tJhf$QPuSwwj^2nNP@{tl-7^UVI^i(h3~N2c!)d+mfDTxaMnqFm{t}x&y09 z@!(2fMCr)2hpVrQJr?>^Evynw(gd>7NEfuNv7E=&mWv2nZ4O2t>vN=&<hu(+=xJ6X zqcbqJxdI9Gfgg}-PF#&Gq6hCaZP|@caaLl+v_Y~<%n}=GMEyrz89dZVt3C3q)W`zQ z$0;w^3>BW%gwh}^g+Z%qE9!$mqyW$(u;NQ(J3hwGLjkp^!de6e79glbfSg>bgbpbD z6^2cGE;L2L<hMbVbb<z%^u)MgrOJmE&0+Iq@p=N*V6F_VwlVg2;d&y%+|-zR=3n-P z)PR7@;<xZ#rWCj=ML*oFp!pLE;V`4|jb6~q{6!s~Zd!`>l20?|VUs!%<ePy*_9W|9 ztYOvG&;$g-Jg^{hTVE*6=8S)~wg3E5U;uL?P$#_YQ&bUxw@TDRu0-_?kys!19Wnw~ zm6}iFcnU<o$<f}wV!1AEI1S=8P>ebu*3sQ{mp`WAqh>W2S7)2Y)%o=G;HPixha0sZ z+ce3Xuedt%Mj|Q>%xX%8`UY>uZ*$JMYGV$p%@-HkqM|k;d=;yI6E}=i9a%ID-k!Ej z33-ziQU@tE3exqBE2>ze=%N5%PV|}K*64nyOF#t!Z){?opNE`z+TjokWEct8rwfTB zetv%T_xIPOw}Wwp>WFTqK74Qcb*a|e)P`g!Kk}If&}SYkLw+l-4*sMjr~DIUKCgfd z&So#xn+pTF^jMg_sS@M!qiJYHW^?VqUgCHSPOR^q@~|Fe^HAf&_fmjdq&T%Ql?Y{{ zw6#k)Dy28?YaxY;)gk~#$c|%L8Y*Ba07-@n=i%dv?WbeMCMRd4>4}drj+7Z3kLt8O zP^Mrd>|TC}xuQ;yQjqi$#9%yBZKEUu(agcrH5D-BWi5+e`o2GKM(8Ix?21kn@qn{< z-MMRvyyOsJ#{Xjx01v+LUEGH8=LyRQ#ddH>y&%xbWH@MMGG2NVsM`Gr&4cL4H(Bj+ zGM*UAg2)2ZuSxW9>%Qw<7<0k4MCrL9;*nEZ31&(=SjHYvWL@;M3!_9Mfn@N@h=T`k zOFrBBU<l)u#oA<J1C*Cg(XZYPg5RP#6Sp#b@21XRW1#TM$;FDSj`Pb_x#EU!EA%WM zIr!Oj?_`qq{egSnHrGf&F~9l!X(moI$o;6jxcTkETg-=PL&)z%G}vk5Z)T3oVEf*p z8pqOzG&DWSfkyU3LZOm5?toU0%OHATy4K1lw$kim#Got%`&3FY3MOC1U7C=-bI<Eg zva7~h8&hl_-VCCuA;l!y?Ol0<sL*<;p-}Ah2|g}r_Xzh2>isA@_0kHMZ(Et!S|jVS z@4v{vXerXY=emH!L)2&chul{WpGF>cFeC7qZ+nF<Y0sTC)Zl)*pWfDHZXv|?q7vp= zKy}i@Jmy(=Gn5u6u>L-Z%-|$icYST@XYF`3N4RZpf4&ja1wD?vOX|Bmvmemcx#q3b zI2CGTV2iJOf1nEXNr6eEUvo6qMNeKe0bp_XU_?YaE|&@?aJR8vlX2_Rb!=4W_})^n zH#{!pqMQa6GBBJnK^(yF9tP-bf@6w;&_&voeRfQkBd-x1$fREU+^YotOzEe)62zQS zJxajR>GN}4fTz1ysjy?h{?+sCEvj(ASj{1LDapzBxcX*hblu}Q4dpf%2;S&fr2{;@ z%10PysvlauCP%e){PZEhKJP~~{Fc3@5#G__k*v}5>n-rxnralb+l!Z+fD)o-l0}f< z_J$T*)<-Wx%Z0toJ(N9*jXy)o3d?w-c;=+{k1}CRP5+jzRx*tQQ$ovDmQ1tFE9x?! z=kj`~>oIcvuF^V{sOSBM=iBNMORAcwMJu+yMHA{0I|5wTJ~Gf%ibqaka%d^2J@MiF zZtC$EB28*2%@5$38d;I*`kA0!KoRBaj9k33efpDcMWJF+&fU<@+qFrNqgI48+W}Fv zs8lL2p3&8^%HLfx-9`=LM~bA!UlEL=7l6NRSq0byk>5~DGdcF{Dj^sGmeDUPpZpG+ z5oV8kIugmn$`fZc*^rm_hT=*dF&)uhe(i2w>zGu;Q;Xh7tn)~?9I~fa`<4NKHh&yH zAe7MWAr0^ZqZYtmW}Q^8Lsqrn{zW3i9Gh+>WVLOz8ObvSZWrsx--Q$S04{?_JD4Rz zLG7sy=lg8&V5xlJSCJ~^pQ_z7JA!~rEC@>D`8*K|Gg85<DGzgS*G!+_8_@@&4!=33 zKhn=IO~b=Y?z__aADQfB&Es%Ls-F7;c{majmg548Ec@pj{?{mwUX4nV7vqeU8O%Ut z0#sK1{F+vWpiOA1jc-q7OL1)sOSr`Cpyb{wR>}FZkeiW_k(oV>V-fIo&Y@91)BKwP z0#RSDBDFB}o{ZAQG-;l<R7OZA3GIO&{JR(AdaGB?!&K-ir`z6M8eUccOvW7Xni7l& zP7}cZS5~}Yf~sC|Kq9q>kB77Rtjj8=(vWh|^T&KnXJ+?P!|TO*W}HX{JCUkgGoH#p z2>ovzEADY%LXOPgY#esKW%=gOz3%fG0qMn6Ob~i`p4fO(vMYLP0rw{lT8W8pJ9WfD z!?^ec^PRJPA4NO70h!tcp>ix<?_fWC*f3Ewt`>JC0;)3X`k@j1RS}WEAYGurMdCZY z`IOaCRy0~8T)>)nA)H?sdwq8R(w-gt4Ftb?h}{`DBSD03c9mO8)U3g(Nt-toxy0;q zUide>m10pubE0A8?9f5d8mHGA8vbD^pXJS-xuT#i+)JL=QMyQ=%AlZ*i!?V^ZY*x* zyZ=rWosLn^RBK~Sm#aKc6+-05+UxD${xl@+adp|n%2zJOPS#px=jKb5!E6R9p*5YP zxuimKm4{ubnoGA6j50cK;BrZB-91{8o#Xic3(m#%rJ2}nx;py)Gg^SlS}z10t3ExU zbo|#cbIe|Y=61h<)|m9F>lFSxWtik;I3p@6;eBy_rfcow$Ev*!^|}0Lt)W2HlZ&8x zV_}S^<`1CxCJHjuI3iqXx^2=(M5yeg*uzycZZ9r*;697yp%L_Diu5xU;83I()@Z>L zw3S9t;|C98LN4oePh(%j<V~*@k3g!oo?A$uJGpEFxd-ah#3dINCW37V5k`x?9_rg> z3m)3&CHh<pLH>j=&)8NzLQNsN?n(p$U@j*ZXoGyQV*?m%JN=QQI<ROFuKMr6gG+B1 zxvtiPH4k{Wj0z%m!XIo)79FsXxBJEwH*WTep_nS)Gni&VJBb9;*;Vi2%+%xqiv$FU zdG`+!0HB9+itLRXQn@`yrpHqJ#GM!Huh{!008PnTxM!WFs%mGW_B!8NGC)Uw;fnSF zZ3zKdTr<N2*;&xrxO+^32lVBo-I+e<c8!<q_F;RaI?xZaBLYJNG|8mGKIbSsYnkVR zr@l<VOD2(w;bJ4zz`tUWxWzPP&knVJRrh8kfLTVxQE93y@05MXn^;}V5m}xGK(~E- zf|z+kVZ%gW;yx<q{J~wp>rWCA?7PXdaTk6oa8t1S6#2LNAE4$?#RM)o9vE0e7s8*o zCH=E0Qk-kqhHD0D#79^_q(DZga~MQ~g?;$&_7+rt0T!ag0Bg(kIPmOvCG#c!ILzq& ziqnW&!)GOoX>0>6fdR0Dsq<X;@r84UF)-;$8jQVt0?5Q6;p(v&_UjM^%}XZZe!@K3 z7D0_v=5oj_Me3h+P(UBaH*sl=n0lG^@pBcb=c@8z%*)d|c-k9!aPe@X=H*Y#A&T=j z-qIdVRpSB}B7;=?Z%|c5L@3!6X!4W4+A$R3C56G6tNX_G{%0}I{OE~~HIJ_j8#PY; z{5wj8JrAmq{R0S80BuzH9+1S!lkYxN!`sLpL#(=XFhLVG7$ks9RT&3yFOVztgTVny z7~bp0;X)Kv8nN3=eSiS0XsQ`?1F@KPisZT$U!1ZwEZy{a$*g@2(?wu{XSP|Q)}755 zuh#R_6V_TMG;c$@89J>TgQdZgv4H>JAtNqb0@G~sN(Nh0#(&fGISE<+qcVp#h@SAQ zk&bebKZ6n)_C#{4UHNd{xiAsg)tkj8>H%9>5bc6G2d}x~tDhvvIA#-HT7!bUK<fVm zOPD3q>0=(opz$<j&eY`KxkQCo4N7}jf^ewwX;5T4;>=>E!}SmuD6XUsYw;3C)a^+B z;_Q43T>qeIn1tRISO4V_Ni0}k@!%Um{f4=f&@3I8XLz>>(~nGxO%o9fKz62;zZQuE zKA=+pKrJkN_YuVY4K~fMEX?}>pxXZKmGyy^HqJYPGsvwl3xlLAiqVO9FSc>)%85eS z<%rg+F=z>Q)hs~~v+4K)VFa$AF8LfEs%{~A7(=>>rYvxx6m!)|4(2T8ZX07}76Qv1 z8|eS^O)?)3z1;nA&NfD(gI?<<#LmbmmFu8Bj%x00&<^DX%mZb+CO|wSY767_`&6ST zpJWaOpHvYmgA6T11H2s4R>`&A{htRzwzTYYY_~6#47!;5iR$?Q58GZ7tNR+GsK)4c zob|!r7hJNU^j~ce4|4p|ENXG3P4-HxJoHbv<BVCV|A%5B`wnEV5_bGs592)o!E-PG zPc48`ASai+df>VL189aOZ}O9(ba0vHH&rdchDuXl;C=xe?8Gl3I?*cdGqS^biLOyL z;j^1fDidUU*b(PE;c{20{i&u$GhQoJJl0<zS5Fivt<PhHpDq~u6m+&n_|9g3u|?LL zSQvZ3e{oj9vZO$r<=_=>!$pG0MUvwluQZ;`$-u#rl`OT#{NJ$Kr^!Y0$<r0G1nc*a z4e4O&*;I=Q=ShFh^CS3BK$%*J%Y{yJr=mtn8>ucyR-3;Z&PMJ8cQH=8J9Xk&#F6a3 zpJRhB(>KpE3C@ZAcRDT6%ZuklLfWchaaQ~P!Zg2J_t)@gY}vQ+01SU2k3ht04+w)Q zR0VK|6)og{#XrC@ZBJPO{W6P+iU2JQ&3i144Pge=RTZJ<AQGgOp`KUF8{JzPrG8uw z4F4<#6~Ecl)lc1))NN$vkAS*TTObIjN&%bLzOuIOzl|4g1J|iBF=~Y>t(Ud{1E1Iv z29X}7gxtSP-Qs|wbS)RV>;mE$4u+m_t0XP2V@nGOcu<i_@%daRX{Jm*P!`#;wxa`6 z)!OePpLL?1YD7U4#JqI3AoI&LjD(dV#pNRO$u)O#CT@ImR{U^sYs<7nhRTUN6&Vy^ zI)V&{`$m7N&KO8<`VJ(X)3VCM#YZe5Lx4A>>`{}^qz2e<UsiA8!`vl(wXkiNHK*)D zNf5URj@HEW<*Oy}<%Baw<nh0k(YC`WAO#wf5%_?put-0>vS(?|P)VkZtvPo-A{8wD zU$_0CBr^yo_QfrpWGn9YU@U{Pp#A5q3QPD~iX*A?B`8uvDpgcCiP@SYb`wzsUnLcL zc`NwkU$7eP0LPrsj*<K6mZ@7XZJogC)4A>W^7eN5N^JE7HI|OtG;b53@!COgl+!zO zZ73<reA0=~nO9TRo_c1|xk&#ev2kn6Vk+k<ijMI-oLWbdy2^oz%V^<7$<()3RQD1) zWlV%sSCQ$fhKWXyEC}Bl4?5mXNYF&(#&jh3eHdAOLwmN7?FLzWp=x78;qhK$Ri(Qf zpFoeJme{)4Vzg#d*VE43Dsb=*!*LvUROvPsCconsrxPM;Vr#M+BP(r-1Dbzzn}+C| z<$t{Cs2u55+kunX;4^o!YX{_qvkzT_c$qPijj~s*Sm@8{s!SCCcYoj&JL?(UZdh_L zF}c9{4z0bT^`)InU`#GC9svnjPcPKOCNMLcw3-T#V{Hctk|gE4SiOETyx5SKjz)ST zz=H`sriV8eR-7%lJOUSlwOtc*0Hi=20TGd)w-<hHH#=%D%KM4&JDMy;%h&D~?a!k4 z7x25tP~x8y01<;oI<?V)d6e%lU;n5lN1`7S4t*zi>3V<eI%rNUX}IXZ8h(du^jPgS zkiZ+_ZNYSD*sP2%^Dz>1^VNV6|6j8){`aA)A-SSxwa5xuVi%1l^<UhOfp=>A@u4w_ z*QN;NWa~NX^)!CXeW#g|t^1bqQYSdp8J>a!K076SLg#;scfM=te+ziWwDdP#FJMZK z^NcF(X}PyNqW^q4@ZyhpMETLlsx%h0vZR;M{R8wAIifFpR_V!mC#0{zIZe;!D~C2J z=6)!Ah8(v%l}^&|m7PU_lrn1<dnQpi60%#58JC(oQd!3FAclOwuNP;a4S13Q0c^U^ zeRLEC;EF5Pg?qFYoC1=N$N4h?UemmuuKrOR!8K4Qycg%Z)#v<wNO^(v{RJEU7dAr= z{*OWEyg^hvzP!EY3zptbmpt4|ioRcuvOyJ_A@T-ZUy<HOK!YzTg#$=rC81ok)45z6 z>U4k1@j=?CU<T9u!qU`1$2N4uE-0Pwhiqr4%c*<B4GEbEDMdy;X>qibV<xe`pWj4| zU~z>@F=sc-H=RTuaKx`>-xCz3i$Xc3&cJtw(L@dhDr&{n`w&RWH=~|ID3UC~caSQY zEaJ0=%<xwvJ+ZE2;|^4GuK~1q`X&r6r7itz>i*dSpHcKK90+>bp?H@Y!5_cSGKAI@ z*vG}itM>rJ%2i-CZMI0o2bx(0{zo%He$emnwl#3(@WRM%7anZ%Z#MnrjKsbLIG@Vv zTg9xZwur~BCHZYD_MK-Bey^#VRsJeSU`-GeVcoFZcRHI+SE_rup5HIm?;O}VJZF}7 za89Il_n@ic;dS%WXQUbE!AZgp#Qp5wjaz1ISX#q<I^&ue)J*d;VUg;O{JtNVpZBUW z=6CJ?EVj4E%iqF1@00PHXYL>KanC~&J_NlW7>nGBAN>#x!g0vP2&uPTKmYZzyEA(V z>(+f{K06CA(^>{|Y$->Ch3$!T9HK>Q@Siaa=7?8odaNK465i_nWo0GjY9(9OT0OjP z!!gw#vc`%wtE9(D-rcgRQ8!NkpL}uPCe0xKcsx*OeZK`H1KV}3Ww-m&Px5M{5#o}% zPc^o7pAyj$a^sQysqN`X?<6BDcj5Hf70W0HCkrnarXVMuPVoQ+%3fxb6E)1)74A#j ztPR8xazuRoV)wb=`*yP~V;O*pn;ZZE^?nQtmqF?<3U<k)XL~~2R>F*4=9C-zmO#MQ z@{?5ov!bi(9VUtiBUQ}Hxayv*`An<2-p&(rAeTvz^VgFoot#)emtxU4u7YPor|6p0 zd}&U`$&t3>D-(~xQ;iPAE|X$?r%X;YVWUWustLE1VS>8-UCR@*005%hv*dVmF>QYc z$eLq4_FMX1aNhzDGu8kePU{1fKS4_X4aw+%M4(hHz*F$Mz3gcZ7Fs+O;3;1dE&k3q z3!wMtxHCZ!f}|JnTa}m}Ae`&w3W$6w2@Bon|EOTk5m0vY)X;olV7wp*@W}md!+MHS zyk~z$NywbmReyYhCvYDDbk_vKb(DZ$+#r0=ei9H76#o|yoC5%NR75vsF1yU20?zn= z;Eb9L;>7fl4SeiFY85v3!Jmi2v=0Unef+qRjVgf5VVdmL8csrs>z+-QiPWE`^0vDs ztxe6kYZ=&;JTLWq(@+yrcVb-%s==OitXP*tdieRxq>d&>1v3F8S$1w`=61M#t&TL1 zl=HdK=hnLRKwocrNB<;?$B{t^eY6?#rgRK|-_x-OD&zng4njQ}CN>CgF<`;p3pMNe zk3i7VWTq7Flgsy>I;L!NVEA<0Z!=O*{AjAhkmm5!Txhd47gFG04Oc@4e@i2|UM7@_ z@x^A2Q$vOE{MXKKD@Rl6SH!hJfPI`V&JO(5RHifK1>-=51cokWwznWWT^aLaM@PqI zCm7~$n`bt+5E9Ie!CD5h?t)N?krDfF1?0N^Hp0aYq2Qvrnd;*hg7~J8>mh=VUSQ5G zwb38Q6)AyHSBlsn_Wao^o0!U;h**c8j7LL4^F@SJ;Lze*3w?hr?LD^cJ$eIdX1S@P z&CX^25Q=g3`fKn|t^%S^L^xOLdph7mZ7Q|x`IRa6y5$ArCb<99f2n;`uT8~0d0bAJ zdz#M-Zh!|>5qNx7C&c@qKKua>3e3xD^lo>6x%lk<Qexa!`L{Y;5?OD*%2PRH)A0jM z%-&afr{R{b0*N=@Iww%uoWgvj?R1SmQg!9q%xPZL`SjPOp!q6S-Q^#X9V*e5FHU3! zhvqDL&9}d5t49|PehSNka7L4xK)C8N`Jxiti4Z0zTl~r9?>c|;09bwlAcTHwhKC(C zURlZ&1I#sOq93ih7B}+U^*pd*6Fofu5ZY3!U33*%dm2-BZR^4Ql*WnVcxQOXMEJfA zz@sU57}~@SzTGxyW?C^<HSnNjqfTv{l8$ShcT~OgkKyUG@g_Vq=;^_4G#fr=5;S1Q z*V-u**kM>QM8p})sC~8z)pBkZwPtZxH;px_lWBuueKGnwTH-i~_Cs>p<{F|4rA-(Z z5|sM{ck*FXAgx0++R*;I_OSJ*4yu^xf_)AWPTaQ*=b3jj(7bIrxcZ;fX?>QT;~=_T z8K!;ijEsb*kID=pKrdg4@la$T@blN7379FT3|&G$u`viG<LbUpcoLXb>9LA%Di|&k zq5n8@P&qY>W>ulqE=oG74|#OmfQq?V*ETdWPc95hRX8&n>ydct?9>kXC0qPCr|;L8 z$*Qqg_8Movg}d?(?&wcvX-MQ3lqoCd!B!V-@}_ChhsL#=ou`oi8eb#c2eN%_zD zcT$D$Uv7^ENu1xLm=jouJ~8s%BE-2QrL5y60In?6>p~3F7vtISUKAY^P&yLcAprnf zyF)Z4Skn-~9xCM!6!aSnwORA4klf4wEnBw?BnoyfWs#Eb-n}Z~UXNIqxl*+XrKFR% z5+nh@l5v^&ANH6~RT)N7lIOri)l6CwoD7Jdb2q&oPISut=jnBwW&Mx%hCCD}X#N8g zr%=uxr`KtkZ+6;pNCO^2gMz)15t}9)T)JrUH$QUCEmT($Tf-vqJGQDgFTWpucr6{7 zn6e5+`tonMtg#Jk4b}kFxxAdn)Ax$8$nyV&gYeKoMF3<702Y|BF?tSwi`@nQ=?3pS zb3X1vFMtqLr+=B{Xn>C9|CV&km@*!qHC%dlNSx%1N-VN-C#*#Qw{R}1ChgF|&5;5e zK8P%}Fh00OVM4L1pk75)bzucnj%J+x(m+PbNnvpv{g&4)vxJ5zWOJI>j=kjvmwJn# zcjWM(4DdmgDJaz4-9$91QW3l2+*xUL)g9AvG4XULt}=vlr8H%DXJ-d?M9vy4cCd#r z^pIvwgu!PvxGZ|IhkXR1;<BV5!z8N$?1O6FGd5fvpumcP3g;%=lq93<pd(Lu`{~hA zd+=R}W_N#~cQI#yUDB%(UFpOT!Lf+P@AZ!bLEwjiBoDEKKkX$#&=2^aNY6N1qMsbS z+G_v$4bIc1IPgnI7Ft#-NSf3Q8+&)Z`{LqOp^23nQ0ZzQnNv0?O_y&4ia*Oy#51G) z%-EEKpD(Tk@u_R^)UlS7m0pAez&lN$NXvCuY;?k`cAwLRA+P&c&g*}D^Wh+r{J@b_ zR58s)wYXOpCxj6Ym$MK18Gh!#j_CKt+;@2j!hhXR&GDmB+4iZ%#74q@v20ao7Z<zE zPHY{%3co~_nKzd2*y5^#-#m8f+s!90Qk-~ico*c|76`0G1;1DEhNj5*a9ywrD2JBU z2ub%A^sP&*Qn@DjiIXrslYWa$h{dpyYf+-)`sIbN_WKnCiD9HB6$HA94qim;b`%8D z^_(FNbPz3ITt|I;clu?ka9Xv|OhK6CYD?!tY^uy%{Cl=M!^jr;SIAX_Jy87jU!wF@ zBE1$oqfR`-vlwR&x@Q0BcHseg;k_*3l$FdU;qf6(<sILP&HT<D*^U^YQ<jZ$mbK~Z zA?062ze1if1%^AwhlY~KH~qGQ4A$izv2nIuaSbNdFxs-*NEc$^7H%kL3p>Iaa#!DW zV&~Y%D?5E%?yEPLJN`=6-K>q?I{)@3l!*_1vU+aUDK{2seM@6YHCom8yWQLh4lr)_ z$|%6ad|{!72~-M3*N0JBUxH-xH((B1p3YlKmG?lK4>{$R##W|o0kBE8R!Z_7mgW1P zDG02GH;IDYdp*HIW8O}>-q0V&auBN0GD%07<GZlM$}37Q-3p<C0O$q${ktZG5%{jF ztK?FJmBK*lp;BL9bkG^G;+g!7z5fCMA1&T0+&Qwf19VS6ZFGk6m?i&6IdC@InIGO& zTH)nWHMH;8>@RDjLt~|Ekw$ay$0W-ZW=iFge4FxdU1XO-%W*$*)WFQcx4g=R1CxFJ zV>1j=(&xAc(p}Wn_IMc&_ZA#$#G`=W<W)dtMca~TBP9`~nSqcF=sO;0(2~Nz^Mb3@ zTW@X8Sw!E*)%*M?4)(`FqNzv<sS1%{nS;-KQ|!ZQEN=!tA^Lz!y)VimW456>iO2fk z%5K}Xe?*&`n@hQa-e2#zQcPq^kC(z?Yb(DU%5imTFcr45Bf*+_-;79Ol8hr&=Jx4= zib(jpqm;J-m|tnY{rMW~c4k(ZrdIU+{FP-*Vg{ke{0Ucv4?ktl-B0!}!>mdfs|NcA zD0YKRGNLC_<`mv^mJ)#o<_LKN4?uaZI0GH&OBq~pvdI*XcLEt`BY+BM4$4Fl#34{V zA_S(E0(8}pxUj>qnDwEGH-aFmOsZODWlljuNlTD6h@P1-w3^nZEc7hK1LKKiFAA$f z9s*w)RDz{nNwB9Fk;jnUiKqpKV5T9-3}MSgDv6t7Q{GrxTf0P2hd%1!u?z19`e~Ml zm3@MQK^9BSiSo_ua=C<h&vMogonzR`rp2N?6q`~lhov$}M#i{xkC~Ic*%oB~m%je= zbbC4@NIku*W#P@yP>Mim9CT#@J!1K_MCi@i6+|_*V4X{rAl#|&tK)CY+mo%6x294~ zyg6LH=YO9>nifo{EEiAjQA)u$TmuKw0?OLad&??{R_Yw($~f=N&ca|pey}Q}jc4qB zs@O3K2Q=#9<#cjWT>DQn;yU<FCsJ$$mxg-=39Ly02M!C>Qi&Z%=iKyc_zxW>3N7A| zS+YlqSr>|<_N_|aKWxtS)SOG1iOxveT@BYqox$mNJ3By6aJJ0M%2?xetrLN){!Bxn zLT`i^4Df!t{qe0<4{&T<GCrGCLR^AQ#Ml#$CbpwsCynBVO=n|g0%a)Wof?=$G1ckK z`%R*%s)~Io-tCp5Kx_zF=CM?ci+e)XHqg4Wwi9(hD@c`DBj^A`>j^eVsR6s&B=x9L zJ^{}d)aB&}3(cVS_oNa=h@jtOgoDSC=|W!lOD%JsMAn(O79v~=CCb|EdzF+wu??n1 zenFqRbf6I`ZdoBU3zF>D`7hgb0nLFS|F-p6s%Zs$R-eJGJ#e?6hiSO~##-N`SPTTL znR6bk#>WaoptUa8o|!uYvbIlH-cnoU?_Q;9P<LRNTd+?O;{KNC{djxNuXLVX@PX!e z_3kIEpHXWOGz%h|JoZTosV7~%3x4H(AB4pd>Wr}mt2Iyd!t0R;WUUC~wg#})KG-_E z%^aT6ZDptyY}I%6)OUu|!+ihM`1{f(d}1iv9~0J=5_|>d15PIb`>jOW3PsI+QAES9 z%`QS6gDpBn?JSu62F*+=w5vzQICB6EQztxV=d5A#V}kPB-|k{L_l*>TYe>+O^HV`t zld{6C-~V&@YTC280}aiJMs8CQsGff7Lu+lFG{@oh3x!kiC5FE^t%Z6Y`K^8&#!Y!f zM8-`tP=90rkbS89D1Tzv7`kFS(u!{D&9GCto72jdq$+Te$O9mQ15~E1^^J48wy`SB z$&IX>495-h9}6`qJs^NK;Vw&#A24{eyFmcq;pzX;bdJ$+wr{k5V&hF3H@0otXl&ay z8?|whrg1WH(%80bTa9g>`LA=%m-#qrJ!{R}&vjpW@85>_4p9x+wiqnXjSLb09Z|$+ zrK7#Z&%(nl3A%FH%r3f7Vi_9^ZV0aF;%kzC_x;;-*%VQS@59?f*`ZN8iH~SLSP!Gv z-csRChjRJ18YtY&)lvLY4h93^gf=yNX9xP9MK?JOfwQL-*V(uv!w3jcMC*1_w?~he zZjJT};7i`lMyQ{C$1zF>)QkO`Tuej+7(c=Ot-&<0FGoqb23Jc`tVddNN<e8zeRrIR zk|$){jSU}ZfWw?fPf0;RqPgn#wOYCUTtgrM-*M>gEsp{(Finy?NF<TovK<`*sgiek zjC1PjjxzZ<wtD}k?6;>BR2P)U6yrn!LnQ-k?O$gR@+&f9&UQK#%TY8TBazM?%-BDX zM(A37D`BWd@5g|X%x50bZ_$bX)vBc=#+?fDW>>y8jx4>jZ~8h-n*G0Y9c>x-d2Qoh z6u#kIOWBjk9zGsXOd$YS%JhIc-(aEHg}VCi;Il&ckj1g(_++&?O4MTT^b}ux%m%5v zZi@J&CSYALF^?efnEC=CGAA3mk;fxVzHdwrOofz-8SFXS4k;q71RN2S?R*K=<k{o2 z6#SX|Qun<?H~El0yM4p5X=1l==Jy*apa`QDp;de@X4It3^#d!E-pQ*#A@28#!8{^o zIA34dVuK)PVlqq$e7=k%FWkbA8?iXUbnJczEcg9usLUKpK6RmBmVp}Fk6P3_{fC9D zJA{M9ZChCaOm`+4Km!I|avl-%tu2Xb$y$K5^dgfwp~B+uekNGZIIWf1f&*ot{#0W* z;sP9Y8Nr8`M;9ar4?H6`9KTk)AiWFXd<i6TtD2D5s}f6cShQ6LQ2%^UyGz?|FDje* z+f_2Bf3{>j{(jiXoFGS<lJsG_su5Ll0IjAVH5i$ngrdcJPB@CxCuzr*Xq3%Z$t00d zv}flw5*xn#mMS2OuKg8}X}-*_uHj!hhoOw};vOca7iAIT^rS1DfbM0n6q#Ri9VUsB zMgUsPYqq+{$)P)Pk<1bL{I!&n)RA&Bw)jEdfGhERD|6rz`G}UV|Le)rR{O_CM#@%D z-NV%%NO7YL6dK^pnHn(A&&*!g$n0!y+*~EsakvO>6Td%)B#LG1`^`_7U>g@?vVh9R zH0Z7mB}TkpgD*g^oUO1#{=f=;{UCPBAe4ExGc(81BYoJ-IRLFY3{>KKP%jDJ=iwsc zDotnqAg1j>U<EfyhH`)xmyEu}0~9o*F|mf4W~|!KDGiD}MSJ$|N@l`l7^;C(RQzUa zm}n1t6FWU(?j=WZVX`m!*o=09xqkd8EVzdrBmfW$$V!N+FCU{TT1_^!WGnZ^XMTI5 zQtBv}>Xv-@5-b$kfO7P_CGvC+2b!XY+3I`pfttEw*Hle!h*@D`vm`dVW%m>|+jT%z zoXU(=w@r#)XsNgWEs@<~rv(ZYxH$zp$C&SbH1swIn*3!_KpPiq5xTxI-l-uAZCYZh zXqde=eBTs85H`^B`7l1}sUdre1M4B%54wRKakPaPZsaw`;4KW%@N4AQ6U{V<Y+b?D z<S_fP0TLw!BH1z&e?>mm<t@#-{J}1XqWa436s6Lg02AR*7nq+PFt=F!o$d+`6b*1J zGRB$Im^c8(TRtt)tfr_cLcsS{af_h3#Z_D$ZDKy~r9M95P?{Rd9}?=QdwUD4Brjb* z*fgRppN{HMnja8xd5U{gEhbJnsrqs$qn)v`z7EYxm7M8Xu$oV#$jrmeF0R|Qn}dZq z$GP0Au+-fRyTV!vN&?k>UsOuzk<w^dG%c<GUo_~)yAO`VNmgMY$4Xw2A$yV%Lc`ll zjgt(am%lp}BY`S+Yz#M%NW@`4rCjJ&=$&gnjOrJZ?mUiC@L_cZ+)+45Uy{m^Y7Iun zz8~UqDXKBCxbNh_Fmb6e3{#QrVXvpqE$zPo9Myrg-T;W7upba1ujK0>=lY${fNTyY zq|a>B3Ejlg-2VCT*focf+g44h9CGPpSyy2*rEPLBaQ@Vzy6fz5JTX^;^9a6paB&$L zFrPCz2EF=T&463j-@V;@b`}g0&FxB^9VXcgog<&QAnN<F5ND9ZOfhhoXq%G)X|ZbH zB<iLV=fDNk)HAo9b;e6>noA*DYf&%hF7k5|gu|6Z$_QNEl)abIWPUyaSa-vhD`>nA z5=)i)_OhFO)zt(wT-s_`toshX(gK}UY<~vXDrVOePx99uruD*T9YgB191%6|<DDRm zd&$mi?3%|rwMwVY&0lydT|Pqpd0m~QXTE>I;rxJ!4Km!zIsIknSCDqGZ0Y5kJH}o5 zgD3E3fo~a7b9NP;AKcPj#<xza15c>VzJhrLUoWv;6aD4*7SH#{Am2Y-o%MGwle33j zNz!E$X&L<TRm9#_5tncG%CW^wgTifUt!@dOtwOiEn*W?hTZP0Dv*=ptT+M6c?y*Y> z4O+ClO+}{I2a;t!RenV<U<~|f&qm;ix*`jrCf~n##cTMu<M87Ue!aujg?Bcwt!Fl* z5rCS%LYD}^m-X-5sif3Dz@?4-pGU`om6MED!0{@&`}8Q{N;~%g*&ZKEIpB8M^j}e$ z=gbxgK%@#dDHuKiTk|?!=b9GsC(bVoD+8as@1rBVJ|E6!%lP?&d?jl?&XHi&-%gv> zf_yt(4(3jU16%HHHfK*G<3DaAmF7PlLtc$?AGSLDh4Z&YV9@{i8DYnp?soR#k`qZN zzeS_vorwmoq5X)AitKDpNkE%(r9W6xe)38pSN_cz6Y?rJe^ovCt+SB9Pu=lR<ATPu z7Tc99Aoj3>eCqc=;wYiwv88g+O491NlA{+jS6jZF!LI}P+;DlY>YDqE6q0uPF>*V5 z^n9eBlWWco10olrr{l_>_kvW92<2&zoe~`mKv!w}az?9%Sd#1O3E8Q+z7|v4=4zGn zTA}%<^#4BniWdmqu4P*}!96BF(&0>zXG>5QVXnCJy8^S~M7?3ouu#M~Gi=J$AdafK zK3--E<-vxmcQF3-=n<?7x?h0>mmC{vK9x@}N6)~(09;(tr)3ndFgG{nvov&Guo-^1 z4Vl0`YjB*ehyfZ0_qfG(qk-3(thDZ6k}Wba{(tZgB4)CwR7fW<9PMh6whg+=2@*}l z5qZ)k!ff6wN5HFtO(LIwfB+8<C{BDMa#Vy@m6Z>|x)qn-4;=;G0K-!#8Ij=iOU_Z4 zD<zn738l$Vx)gm$DIo`JQAR-n>AoBjUhYT}<OP}2Ulol|h$xI##8TlToO2%sR(aKp z_&|U25u&p}Jmm4QGwo=e{PyhMqr&kLHh&569bIn!kYj|lhjoX*f}J}>7)YZbo5pTm z0I&IXIsQ$HNMn+jQqPX57X9%1X^pPpRB}~940=<y^kpy=0QDXtEB4>*-i?A0B1Ny$ zGFk5O(yaew;UX%dTHp+>$R+wJ`g?Nlu)04LSM};4QDCA~9ab_7kL}4bUrcp+b6l?o zCh8nKEsiIhu8iG|#ICehHOYW$bmWY5CdOl<c=3C8O_``HdUJgTwPgCKBilz*?CXgf z=E=w<g|PO`RI3wRhQN+xS^;hMaR1K-6I5%Ar)co|mLHkmFWlXT(oiFUGk)Y%j45R1 zJAA!guJ0oLjgEL8B?+!~q`qwWyFd~=9mJ6~KMoS^h|oO`Cs+Q!SgKF)pb2X<QS89* z06CQo05~X*RK}c*M|^$OHZH)&uP8hmOuD58?vlBcVV#=5qo~t{pgwM=Z{ebTgdPUS z%7d6rL#QFmZmF`TG)<`K<T<3!H@Hj08$x8y6f3yMQVJzTcMN<W>k5GbLGr(|#2)qY znDXt9Pr;(!90d4+oxn%J0CV!>wI+M8L#i0F%6Jer9L7OqY~F2g6|9-(Iq)W)G1j{b z{A6W{-&iJYSpnaa9H6EfLjFZK1&X9rAQc1d){Pk14o}6fD6Bya7M&;}hhR_C>1!*> z>aDI~PT!5}qhxgCvDG<9c(JW~nV`aro@g379#Z^~pOJ4+E@uk!`kqfA$}gdB`IMy< zGJEquG^ek;hMwQ<RY$LDY}Mj~+ZT^(xDC=jMaOFUYrwfoL=@cJ=ZBG#4M@2{%x;@p z?}*&*iQMmw-0IAXt4w4>|JqFX+N|@fhQpnz$%CoRhpF?)#{FY%7y$?v<o1>-&$-r2 zw%e_PO&qQ#<;aa!dX%R22w`;q<;KPk1cVyU0TrMrLn*TvT7tH7OWR1QU-`bqVu|z& zc-}bERv1Vf(PQhEwc78MhVsHW=z=aY8A!ZjdA*pYETaeIV&NwqX_DMJE2uiv@`h@9 zttjsXz7=U+cdIBJo*f}|p2xmlYa<bSvq*br{9;5mNp3I9$4QVJfYmC<=}P@5#sb2$ zR7#?1ics_8HFi>Irg7|0zAimxH}NdsZqnD)00MOHD>!YnfQH}Y4x0dv^0DovaxA;B z+)ifzr5V)2qk!3euyIe1_=5b51qe1a^0aeUDTm35CH3*6IVK4NzMs``SIJ~|`Fy-h z)EzoyC$_)b+($DTLc~J9!7E$wyaxw`j+Vbns{ZPBf>IVbvl}8Jp~DdPVe$)1>yVOE z8@GxZQ#X?<l!W|at)fn&IGbF7<x<YXWxLxi;%dWI!$PWvf@sF+l%I$8I?LWSQrdH8 zzJdE6ib+p;BBN{<FH>%p+P9D$NGhp)DYo_Q33yLb_1~i(F$S+Cw&*r_av?%$d5@H1 zN}Tn_%I$H!Ksg=`xf+8$o)V@3R7RF9?9nY)$T1m#geZ~@@lIdui-fRl%!GhdRK+LE zPR*fAGsvV)GtxBAWu#`gJ4rklmplLt;E1GiFzv~;iG!IS6Vg9m#_>5}4*l`Fju7bJ zI7*x}?pnIKgxffh_0p*Nf-4S}d&FEV=o<JKQUCPk%DH=Ye??0*1B>N;GPANoMy%x6 zv;IQoxk5=w&9g3Ebc0lV;E>tRm#qIRs(QdWp@kPTMa9_45RY%{djM5d??<`D)wElO z!J%&(=b%tHQeIQWV4M7l5Pk)NfZ2VkbwU1h<yy%?9d?JF&W(pmdC#886WLcyix$~k z6x377fXl*%*gFM`*l+T)Lo|T9G8~|2X6;u|^{Ia;nHU&ZI%ImrItSRk)*oX0)Ml;r zX`^?tx_zIl{~5--`jkjE88eA}PUS+;8lIR&k1GJvQCxxp=O?pX436J;(6ZReSDh60 z2$_iVnaA2s?y3)S*T>b1(yR<5&ZQkuUng(aZ;sHlPZ8ygB5<N5<&W9x4~*>_EQU?| zIojKW5W=Ez376nvSn<Ze{E`NmBE9_((`J&&{GNs4vq4%#O_VT3+mh%C=kqd0c>n6^ zGOI2y0+72=aP-#RNlHx8HQ%GM1J)S8v~JReY0#x)#lOs=)1*oy2P*4x>XgY}nWr{T z(}e|H>84SvjgWxv5p*!oIFdMw9bKYPI%DOebc!$_qNNV_wi4z19iaOArV>|SnTJV^ zs{)Ya--edJ3*s$f+w?ipP@$mtU6mTm<QT^cbdVGeVOHCGe}M#!s)C;OPA|7$K%sSg z6!t<yIgaXD{}%Q9__g%f66`9tfDWV~yyQRde*6C^5&FirZs6{xUiBB4VV(EVRNYvT zmB8EuJ}s5Vo7~m1AkffyO~fqIA3wc$o4WLJvs0iY$A0S)+MSDRZ<G)r{-S^In-QzF zKRFeu!w@G&5!bwG@-SCc{j%QJW{AOu>4Z}sd|CJ&_amMU={OuedJ_v9C2#F$@2h)N z-?&x&rvCU>^a;`&!6T0_X!LH;J$t7%we}2QK@T@rt_qQ<A3qeqvx9XWeBL{D@P$Z@ zurG12=AZABR^0^nG}R_Eg#T^0jHDn*!eadDp&&lYk5zTACn6|=i$W-lk5!(>NV-3= zW)x5-o3MNsVNC2^y}P-6{dv!u*do1zI8??S?<q?~>^LRV!TNs3B)fCc+V;yS;5Ewp z2yAJ}!sgeVWKfnhYv@1IHmwX%M*e~pH-2RVno?9mf_PCk<f_FOv8GtSp6o49Axq?> zSsO+qBZwHMR&~$-(xr3-5+)OVN;YDrLpSFHk0fruh?%e`COL@vvg>dHpq=5+tj2Bs zZdL=44snkut<~Kdbz>WbX0{z8qMUZW<>p2l?JS~BziDsh-|MMHe(w~u4d`n+6hE`6 zd?795vZ5~rxm2&zgGrEII0%jH1UQ{kfBdJ4%rrQk`d>c6q~@JSE9}RHc4#g%GwEMU zU&7JvACel18lsmnmJ}8ca5QuX-o~Y?CO>v5FgC=fAhO`t`4>W?*1l69u|~6+^^U`i z!NH=SE1P``o^Ti=N$?F=a@6Mk*8)Gyo19sx1z}z7WimPN50-OB@%VKXq7;YaZ;f$; z1+4dOw;-ZC>W?bP!<{9mdu1$0TR%E9$IJDu7|vkuCcRVWjFKU+n@`Sz!gfUas#~}9 z1OjDo20S&Uck%<)V52q^ey7J>$?W<2{!WyW&)rdE71#{Myy=7@&@P+Ezp40@p{ld> zmo|a6pHH#3UC{MHM=1`s3`Rx6%bs1@DZxi_&G?y2pbG<+>Vs7tg)8f`D1eV!k0`<p zhp~ki4aa&5Vdvml86aydC8#GFC`@))*v?P-Pi8k=)N<-@9n*kuWDT*+3u^J(qQExW zm$Mn(4(&Rah*U6q*q&v_Ma#DbGs{vfTFh1leuCg{Tj%Z{{pCbhRIx&X&wlo`H#@GT z0W`uP*eXf8$R1mHNBw9`wD46?Q2V8_Ls~?oT%mzc;F#XZe{}@<o_&JP{U<AED!d1p zqjd!68Q(q)RoB(5QTpFgozd?(#P5tg0~0qMU(>;xxeMtfqfKpJAAO%{z2*k-+P8ta z@rAMEHU68M{=p2Z*u%#`qjlyjUYhmQVI!k-zs)Fzn8dKZGsD`VG}H=tWzB38=46|u zYtjB78WgR!d`|Gy$)9G-0xDN(@IUveuGX5nlja+h5$or%sf00EDI@<yZ%@0oXIkL> z=1cI$EjvtbpeIUpK)1DZIn)vzC+~^SJWJrmvlV!0Lg~L1`0AjgwX{-a1-@F%v0F_} zheWOKqy|obJx<@fgc~unlnb!&IY>yD&F{`u>cFajWnHP|9oTn8-Xct3Kp^yXYlT?* z{G3(DO+8!$=@|H-0>S<HaER6!hnV|;>io%M`*}FEId$aaDk`;WC}A%dZYi<+^9Aio z9MYxIvK#s?8X01vU+T>zJ);D8?uvA|CYih#9z7X&qIB6!bgGq4KS{J~EnFcI9%-+= z`L#R~w&-_o(AhmYk|*;ns(c<8U;CA9j$FwDX>a4rI>o9vnxMUZk*S3ar=#!Cpb$x6 zr=8PdQjhgD(qJA*9Z0tueG?ttlJoTp^=GFz9}4i3TUT;o7h_Dq|67dp=K-^_Xg=-` z@7Kd_mf}T|?gqc2l8p!9#H-h;r`4@tKw!Ydh{=UFVG<5t%>obhe)2wo`<Z@t!Dar| zh4I$~?;^Y5fpp8ruD1hb4&+%-<cOr=@(9NwYJFs(O1c*+D(b~%$7@s9yJ80t4!2U0 z?^3@_UYl+O_QuUp*9WJUL+E}0kWLgw)AJh;N%9p@&esW*vH{6olBke`7E#Xy9sBx{ z+(QD>9K5r!1;}&NXaN4}K8SwShfU%?yO3J7)J{#UZ(8msET-c+0BGcnTmyP&IWE?C zV>-vh;t<325IXW+i>4&idRsLX;XfBPYq>nUFd<B=jNf?am*_)~{_g5rFU<d3PWIGm z+$lA9G^=W8RSK6OUj<Cdj5GfG#{-&z?-jK=5=anw!PGZ#kBCCtWmXtnHjL<qF~6F9 zO`MDfAeyhw77kKEF%HNl6!$h*(dKfIgM^j*kzKu}M6wPtN}!%*)!?*%76#<puk{pd z%tcDf!*#g?1o5-+qQ|*R=lUD~Uj`PT>Cy<spunKl)8e1+2QTk^Cs4D-k2gbY$N90# zA2&CraO`OD<a*H*X7TZA1V}p}nVe)RWOCZV`P+zS77iveNwEYSj-?<8g_`gHs<b5+ zPcAVzp+hC<_0k`|toQ^#{4<A`kVovq0TMUIBbGx+-Jv<|-Z`1C`wGQ-x71d`s%PKp z&Zn7kGA9^gV1`cg<y=JBy|XS-r!cndA({p)k7|yyNN2Fn_{<;(?L45{J%yc6;5*C% zPdGySb%&`KXMmj86}8%~#Qm{vjj8*mFm`OIX&K0B9*U@XZZq^b!g%e4!1TI|>_X2r zsYF+G%aNNJa|C9+ToH1WKQLXu9MXl#TC%ea0Qe_@0h$aRBtmeU>Q7wXlyh%Y2$PrR z1Mxc0_H9%aKu<HA%OWC&$2j`jS1<jTR|#IK+e@+wTh(q^zK9)JtpAjmm0E0hwFECK z%!lG0-=ob!m%Lyr4Qo=8<h`nry|kj&<Z};PO!6kV<<^~N1XCYlmr%Y1xmt1v@tTee zlpp_KCpuev%u;hs!~|NG3f|S-j{S`uTQ-^aI?bm&@fr?aT3^qou!23|!9`so$-lXA z4%kUqk8v;pnV4k5o4GM}=KiC<L{^^_;{$VfmP_^%d10JTrgcbFl-k}hwOM~?gjQMJ zEX4MZ+7;~lhGh)-FGIjSS-O02Te=av9slyFIP{*oRrn*W{~fOL#>Mn`?rD~KHn>Mi zi-O0#FjB@NDQKDsW%=vM=5}?o1d%x;N_4TUB@$JmF}5vo2Dgu$fq&uH=o+VH*32n~ zZ<^sLE#Sazg9jdGb5{0hz4c+4@dmP)LcuaxLzF_-nEfwsCOjPuIQK>pNrD9f1YTj< z`oVHIfgl$!t&~=bcznzA3X?)lWRmnvn#>g0TTxVWJffm@3H!_UhD3TafX`8u2B_yG z)a3ey`XyC06F-=iX=<y(aLov<QV}MFI)ALLbA;5zRHb+>L<h&d>vFsODik&k(HbVZ z?uhe;1Hg``g6u)_(ox&i&{C)5>f`0+=M-&j_KG<2^6>9!b{(w9?=4LMBEnkj+2C=J z)((ibjp0*Khk68Iqy9r5C9EHqk1sKT`qon}L0OCgaaTV3-<)_1YmN?Sun+_&pB$=Y z5JaElY>}8B={GPzX(f1CV!7M{sW!ngMr$B5KCTSLOG9CbkIrsC8N1qQ6YqM6P8yAs zl3;ABiO7~nHUCj7I$ZrZ*?o=UM*KC|*mahltec#Y$Eg(H5aUsSY%TOv&{bAD9C(V8 z@irR$rSvz1X|id~31a$=M#a;(G{*5W<)BZnF_W}L8j9lJC+vtGvaih!`0xuOD)zMw zEn9O-ueLxgH~fpqVfa&s&f+J^c0oSSGK7fGh}*}WzKP=S2n`lZ$Ho<_p?rYp?~o!X z$N7-KnqgGey4gY+&4$PeH-ptvX;D0hCSFuMbbx!NVip*v++X#`;yYPtK^PZ2#T0#a znlNBkJkj4WF0f|BY3(o=7`Y;{%K_!c<#RMg%W-ZwX>-k@Pu5Qfm94Jg@|w(BypOH= zAO7A~(VkNGrLP2cHKfFte~`;j{;$F4ki!5JcENQlgB(+MF1PO0*;F=EaL#J03|Nop z0lFneUuD@5^rn62rIdRn|1l^`?vJLGe^aCe7=J5d=k=(~)cP<co$n#?RZdS~)laIY z1a)WXf|*yG{vAWVW?STSb8WYgJe@{lcgNGq|BL0EwTpjzwIgboMAC?(XV)JY-&gck zyjqlS+Mu4N^b;E^HuI-)e7JqjtjjTLo!}$I#H#(qg~tIOBWlj^Pe|w=<@KzBN=(~a zPvD|h?|_9CpH#199^azWZd|0cs)`bXHTfY2jSD^_>d1oA;>lO4tc?OUZ3QB$oYGH5 zV8a7kNTwVxP|)?8Ysf+s$^KZy+FiwV{@pC}!j?|ZU~Dq6Hu<kTg9f*j*e&Ml-471_ z-gphUwXx(44Vy+H!@uELCvmPEyn??o@!hfaCRNF}77~UcraeOXOmj<<PT`o6j5kTb z0i|hpU3e_)bXH$5#8^Zp6y^RdLHOhD-OJ(mg?S4i;^S;;3+!x@B~wJLem3{;alEZ= z2`CVm>IOYl5?&bCog4A@dwM^anffFQT2q#2`OT4K6`LAg3J3GPdA4fzLgBx@9(^m& zQ`@Pz{VyqG6kAM^P^ejTZ7a3Sr`q|^`fB^;Y9Z@AB_35MD19T7zH*}Qa43mAcJ-z{ zRwzJb8m>ckWKKF~_HseR>Q{$gc^{24Y<8j3DuPIoH%18f96>;Uoiz%$Py_f}Aw}Sn zA*}n`VPOLv`Wv40rD+n~ir1&9;XPiFe}5~fDBdBdPLYEFZRJf-$W=!J$}g;#Xh$2K z7+h3okeMr&Tw{*uEl>xzDbX&^&HMzXRu$JZwx;camL;-7_2m^g4T>9We9uSCfrli` z97=5OSH9*>LXDh~s$C5_Z4GSBm%#=8#m8wS4V?k9VlM#~t8sqy3W@4u67iIlkq18! z1Nd<(yFoL{fJom>?pAU#7Mqg{cfivXsZLBmbs}YG)?PDk!3%(7=fWZ7wg>@^^3_IV z#|rj8INkcm;}GTecM7WcvSvl5BBb6AXLve_@cEH6CNjarr3Xm}1<PS`p$-53b?+=r zFPtyGEswvS?mbq*E?I$<P_4~`gIk80E;eVQm1lWoB}vsBg#i-6bX{inl#$eaRFcs+ zd-lJ0w%xx8lTj|j++mr;6tmK~!Q|q`P`=P8Zca|gIZ_J=wBn|GYN*m;IMu>$4Sm;X zh~iRI$Jgp<S7~|BXF!>XJ7oY&?eaGwd!62SQ~;m9faX^XL~2Gh7aN}#uj##vi=<N( zg$5lKbV+VxJO{qB!MFS}h~S9OU{mjUVdxj;DxT=uX{C8>4s{k^omSv&%$w(HR7h~> z8$KT~mbgo&l*#G^*N?9-y>@)C83iW|@2H#aqColy9uNNlZUaqgun=4p92puRyq^S3 z!|G2qU44Ct>-k>5;)xiTuDbke0^Gep=p_Ym@}aJ}h+1kjxu$_N|1n4;^Mob4yO!hs zwF*-Qiw-{{zg;SYt)W%F1`dS`H}#G;9<4=RN0M5uQGf0Cf4w$lKX;_-S>LxzTyun) z4rLOb`A={9^(5{JzE3N*2Nu()TB1m2E0wd>dcv{w4Ri3slct5qoayyOQOmSX@MC<@ z+f>exN7_k(U})y9v28Um^3vs}B9~8i8L?j;{l6Yf8n<xj5pKd219{6nLHDk$g*$qY zXOnT)ZO<n29g^J@RA02bU+?}UX}9N64q7nE^k=I{seN2>oy6J!KGZY1N<<ZmLDw<n zZwH}o_Y)IKLkI7LS;B!rciKBMN?*$vIy+PN^qCBEsCTHN^!v*W&p(+Vj&L4nPMc&N zkzf$@gM0)&R~C9JCQ_J<{sMOkWm-1l5NkXQ;@v@;JMQ+a_-QmNn6qGyn@lJX=d02_ zYWbbE8>Bs)5xcFu@s5nb(!e#_JB|-2IsTTXr{^|=BHlYVCi3}qC|pc*DY-;&*)^%> ze9LVp9j+2oyt!FbkG8nxbnrb!;1$BjkMR2z%FQdOk1(yOxI@H%WemT{k!gV-%vy3f zf(79&3Dx=F5K+co{?2ua%6f8aFaI8&v1yH#)!$>UA2a-&s~R=F=&8+VqYi#>Rnm6S zxg$6aD_}Csl$HZ*6o24neM>E6N|S#Y7HiG+NJX1z-Q;vLJ+EYXfow_I0jzvSw>H?! zEu=GJLrc$h7P2*m=(;AFi-&Y()jJ`8wdPY`&*pp)T`AtmcC><&J96w3$xrx4UN*5w zUivt$1L>gYRBFDFKjZPT-l4%qZOt$+kiL~)Id9ORxDo7Tv&Nm5DS^4TxPX*`24Z6? zf7BrY_<LQg<cIIEJhr_e#YK|=0w?#&;{}xuqz+C_TU|k)VNk7t05~tP{Ml0pb`Uh5 zE>`G)_ayhoXh%cw#7WrK;E0~L_*T0Q=GSTM>%zUYCa25G%eglgVFo_XV>s5|7Y>t1 z2$T<Z!Q?+th!;qInE*HEVUV5iBSbLOJ?;^^ec-m;Z|m`5YBL+`Q3UMaovA{|=_gFJ z+*UIApLDTu--jbfra^d7RBYCw#w*_)#qZ<cv41#0;9#P=7=u7B&;!`t2WBK1+uLKN zLVSz9eIG=8k-GajkGsIdi3Lqs&{Xs}n>;PGosUA0W*Zz=`Y%T);AO=sCj=5+{3~Tb zgh}DoOj320*>V0o`dNd!^CQ2RCN<^VU`H@Fo2PH_Moa?&1Rj=pj{p070#JBZ`EV=X z2H_k(57ru%;^n#1DS8%0zz)I0yBSMrK=9$|sS5%G)1)pl`wTW_l3%j<rg{m2f(Qez zw1}n&GYFNrMFagYyxT*AF6YI=Q72#6NcBWme6hYu*K!aFr3?&#bHAZ$_P2Z$?c#P# z)_87BEnEAw537v$1S=a6NbmTp8P3I~f2_OpWW41Ofa%;{QEizVQvD|<{_cUj!mQ>a zQkFy;2`SW8m&B3(hK@qN_hi<SKNTnG!dT+s3xW@S9Ozv4o*9KLutmTlVPH;zS`?^= z_~^5gwpD_kfwf5VMWnGXE^G8zE!Q5)oh+=an!W$=<@>zs^Iur*JR;F>(FA2%7VY2= zKM0!n|B~@pSE}{0T9L65nTy&B>q*Ic#&o2G4A*r%=h@<X2MrZh##|hmjp-@Q3Mt;x z=S<Y-_CdmKtOhc7UsUy(W|(i^&w<Oq>Z&#)w};v1Is+V`V@(Md5T{gy!Hsr1Q(1Sq zw-hPc1J6YJSVkNVbj0s^us41UL1gIZ5wK1HQ)yF!m+-!TnG6=8mtTUFlm}*$esw3H z6D32D3+ato%j4zccXlUe5!JrJrEVwamGg!DH7L<GV}F0%FtiE2;{$i}_(E#UwvO>B zD;}2VeLdd1f<GnTdWlfn4Nj)l(ExPIc>$4ALMd{qCBBKMC4;U(JoL3Ac20RaErMV! z?+rn!cS`ZC@Q>{1cR|hg_e8@v3zhxE${{8mKSEe^y^MfN9d~{Uwn7i8NqhH<d&jbs z^P`4z4s6PK(ha2+m2-n>PouNT){+kQ%ELTyY+pe{>Iz5^YBGB{u>2CJ#C$8pW%?yc zig=H?=&baI`q;A_OwFH$0`W!nezht7XqTejEQ4>D(ywL}8_UTsCceY`oFqyp{}vBD z_z0UrLqyA_+0hNX_aHh3%0pO*p?Kchdb&hWl9kB1f%j)rAix4m|La=WT8i`^92xs- z5Qpw9r)?XWqoChy=KeEIRd&#|4naWR!%egnMOCN&`$^f-Rk-9AzWzdSlj<*jRc(Xk zA@r4vJ0U$VUPv4v*kPwhYkuD(&u!L<ZEmYHy2F8$M0E(zP~`=;E+TMVVs*aY4hJxr z|D#r`+Y7no0tC4dGVy041zLf_szZ@o<Q$pba^c0>>Pib>B^pXS{Uf|VPan#jP=<AS z>B>g616h;>Md?s!$m+#5Rs5Qig|H0ZV1lhIV{@HOZYG4sMW?uDLw5)b$B0t{i+6Ak zM>WqniD?5ZX@xB-g)oWX7Lxx`4zV@=;b{Kr{_{Oc;y3y(`o+{q6vr?qq^$>Xs8PCv z@XAZ7mkgmE{lzILNcclts>!venoUbTW2$`o#!Mry-Eu^-qD9-sGLM53o9HiF3q?}w zSVONL;NG7dv%G8Kw(Nu`=PSI$+}e<r5gVyL6D<B<vyQ4r5COiP2@->gOD>_N!H=GW zyh=H_^T-q6NQwmpK@ws>i13Re!aBIqD~NN9=yWjorq7&nv=SCD5oBt1%-sk96?Jqq ztF5uCNCD}NNu6sYj~cO?;2IZ}#pcayRlpkji~KjrM>WUzyIgF9;m`O(!S2~OHm5>S z$_PzYW#(e?={YnAvrN~edg<3J?<}mBY#F-Cmmm}o>My`58qjKfILeS@C9?|D-;n~V zD+nTWr6j<Sq5Re-F_2C-x9xH4lQL-XEy8$3UPDe!JYF$K)C~ft|M(Jo!Fg||z*jLL z(UtPj%KYFt6nU!3$h;J-z<XYb)ec2zJ2LqllG4f&&Ok>vBL!&;bG9GE!KuHlKWsm_ zUpbCA7kW*PG*U6pJzCQCZC7e6dEt3^-kBhnD0wI%xZCs`-avie*D>-}gpeOSSqU7- z(6FS8f2dsf5GZk*jQ#l0vFksD!MWs|pcl*$;-Ht0vCFR4lStu?myfkIqYjE|<@l>Y zaPleX%)pMbikQ$)n9mxiIa1xyYV->f;(-hzy1wL57s*z4BZGY&oDLjdS8`+Q72cH3 zM+O9Iax+jbTCr<ki;t=OYQXcU`NpqH+}wy~NbsvzzTrOY?#<h_@ta;YLcAs>W?$~F zbf#@ZE?6-ri`-PM*N*wI7_y}?-uqE64%#&&cYJXCY0-0}q;PPqBJ6!WZNsx78vmyT z??Vmt$ayTiOugWCVYUT^wliPf#7+`s*FW~ZkS`<DR+FXaC4Z}X33lggUK|8=lbYA4 ziKZ{X8La420ptvXHuhgc8Kl}{-Zw7kGMU!^ZFv`*NL$7GMbrO}$6x_34=3Q?U1|8p z^t_6{Xa5onc=$#8Lc=4%skBG8LSSCmt>4eY%O*Dbm5eZjq0;JH0!P5-Caki+2rC%Y zf}Ilz-~Kq{?&p6~#VW&PJ*w95V8MaMXgWy)z{kdShw1-OT!ZhZqpoy^bVg6{8ksJL za`{8M#QUCZr&k#`8i^b-pK?y}&=#`G5oX#FfUi)T6yj4NnoJ5F!FSxgdI<@_>p&7z zId|7qDYOl#g;b^y$)jUK!eNBg4O8X-f5C_>&!=iJNO+{Rh%aPCq)Hs7h~PN2K4^Aq zBp4b}NlsV;ewb_omZUC$?>`+>^Y5l8!~-f0W`Ch^p>Q#euwT&Cla@!2rW|2ni10$3 zIAfAtf+5L*HwZN01QGf9ZlAxlkAV#>R!~Rqd@R<Kx?uYEcSN8ImyW1+1}F$-bgz|c z>aa@7mfFKrK}%*uPcB0Lo&z~uB3qA_>|zLBK-8~RCjKmls+;yXi_6R9<eWj5va8hn zGoP+mCb{tAN2xl2I-1IBbyQ{d%3~FpaO<&Adh^YT&iVCy|BlqlDpul3idTx^)|9^9 zz2d*#vW1GO9EGlSoq%TP#MZ_Y??A7+=Z)@BbrTCIiV7yIZ;Ns;RNPxXlonSMhWBeI zA`(Yha;LRt@V8~e?qh<QcZr$w-oADbn^uiB5^k>UGb+Xj!;iqxdahmCMEJuY99B*( zB!*j#Zz;4qLh93R3;y7J3|M4c6d1>+dw9xQ5k5nXTMk8$b{?dOT`6Rhwq3x|sgJNU zm~H0l+EI3R8I``+w{W_NvbxH)IICfA=|MI`K{Z5~M?F||(DEJ9a|lO_oV>$gsx@c6 zd}d!0yI)S$w%W6cTaI!#id(58#zyVit^Cf;hbsBOa<+OcI}z5Ej2@SF7WWyTfB6X; ztU1&DnA?p83aL_Jf4Ql<)<R3x7ZRrW#`bbCF`YCQBh*zT7DCVLH1v=htYs|x)S6}e z<Mm<9sRtr<Ls<Cpt<I0653Rq&R-L*nfDnPH?6>1atH<T0;LCt`=gSHGJw7N*fp-Lz z=2`&U%o*E0{PDjm`A$1n02yQM+DEk#*b9F&f^)j#ubR`b>C$kz)LMl*J#PX_9VdKY z;7(manlKjaNchXcjy98je<jZUtO9QPT8pHpeQ%E5XFqAZ!lNsBOzkRr<5JhSk%^^h z`AzSalhz(7s+<r02sa!kIr30nyt4DJ?<2kTyZQMi#X9*St|bas5Oq#!RYIFa>)USp zm)Y<tRndbm$Zvh~`}H7#mE|Ok883zsCb*G9-!VK+fb2}N#j@My$c-2_m2hTD!8g8l z_gl=$y$@<{PiV}mh$ZT((sbL-nSOpX2a%on+lsY!wG2i{(dd}Cs}$mrYR!(SiH$lb zOQ~hzUc<DArVLEw#{ofN;S!o08Y&#|#^~0ve52-~;g&)rT4h(OUh77|e`YTO6a70c z-Fv4LD|?EcCr>*$U73EK{9a~oCzvSu9M7sqZ|zwnCMxtV;KZ19a2_56%HCzrCqIWE zFbxvUTfsE5&z}KNPj`^8O4}7!#(2s&C>ZGUe=UwHF{T(Ya1S^%xI?ek^FUUI>!#PL zRJq8=$N;2j7R4krAdVi%k4vN1WwezvTaxXHWhuK(6!fJbm9tJ5(#~Y)avBgt=F}x` z$=6WXBsI=$_Dn}S0W3ZM341~KVRt%49Ly<IR~al-h_AK*|JU<5^bgTpej6HDtmOSf zW6<k1r&SB{%9s7~H|r#%viQGXOTlDQq}T2er6V@JBDqj2*7oB6EFc85N=!te)N$$9 zQAqAO0FgQRxh9eZh<$H$*XE}gh?QP-OMFjIbq^Fi$0NL^s8@&|^uB?5nmX>As!gu% zPT$O!>D0QmwAht7Fx~UZ*4~tbg>|1`@>e!q_Sf;MiNhuAR9z{sPoOM`qAtFYTF-5u zZ$;fL<c=e8#i~iRHU$R^0Z)HFbIfZ{+D-d9%p5!C_GI6?@8&lrDnwW<2}4C?JyM_) z8SXl$CwDzikT+|U2hM>U9ddf+4_dzU+0-|A34nwH<$JE3sF4XA<OC%@KcO8dt%9%s zSjU-jlwZZzJwvLr2NPjz?BpD%SF$Tfi2*InCD>k(>mRmqbkqR@zxmJDc@+HF_M=A4 ztJlD`=IHF$$e7wC4D=CSkAq%SPSORnT&V>ErL<jF4-X+0UWS;(ik0F1^S+rj=|Vfb z+4|ig(C(y&Qz=|X9!kO2yFx(3%m6|UwiLlcFBDP4Y>&jVw673N5Gfl|rQ--cS@W6^ z%9eMp3@6~;-`|3-mFGW0aLPr9KnFLvN=Z7USZ3P_5lC+(d|?)Zp8QIp9VrcyS!6Pm zXebwj_r<1JxDT@nGdO#FB_SdTN!c-O%O-YnnXsj?<72zIvx(2w!wS@*vu4n=Z?^ZE zLZ6aSD?fMq{PX0*-rb*tjSrouQqz)p*<IU?^G^4ULN~fHC$IvR+-|AvVN(szCC$I8 zb)YkkP_GqAX_;Cj#*>jcLGVk(p_k1VUomf@rp*v1Gm@cm7<WWoxK$t<rVyL-uAVY6 z?Ipu}<Tt~ZsD4Kc?Xr|rl5C+Puz!+Ww}@b5zo=Csx&dq0iASk=CHyk&8pUnaE(hRg z51e!w*)v!<C;9|!sx2mDLQcQy|8MMrr7BB4LA6<?K-C?9AkeC9mA8~cqynaW!RsV- z;K(h&0Kcqe$#R~3F?yBAw^WGWXOD5y9qv6H;IMOMiMIE<L-Q9UD~qOY!<Dg+_LSe; zf5rPQ(iU91Ua;OlLT6(z4w(ZxZv2#0;y2abevUhY1L+NV9pxbnb`z~aYF*UWo?#SL z%TDm{e-gIv5pY9=I=1#EA_g)cMdZT^L|r3nVQTWA1x@7<^r&p72EuZqoSNx4PyTs3 zzd0*IfS9L{)WkcFO~8`|EXt4gRWw{L2z^Lim_bMmOn6ciq-DirO4*_L-jGZh2#g1> z$}<Q0+O}NK6j)7kI7CDMtf>f*V$fg);hY469_}WrC=h}7e=E0BIh`*z3wqDHoa>no zGref|lHcJt;Q30rMBus=!Wg?wD1MX}A4xQaZ^|<io|%kbJm~Z#>eCNH6&}e<{EFdI zn^_@{o?FsecjoO7$TG~tu=9~7l}b)CNL3hD9<-wBO^O}fm$9~|SuPn3m2Am&ldv!^ z$lHN;hqi;?oPJuc=1A2r3H0=3Et?d4e}7*l4e`~4U;?J^Jc4n|4uG}zr@62tXj`;; zUCPNkt6gMd4hBt==HT~eJYsJSW6IWWSUmjx4~wHwL_LKhl~?kgXd1FoMbxrVhn6xz z@FH_+!Tx4M8hNLU1WEXYP(=(D@kQd{;)8T{2>6tLP=lq*dJv9{tUHT=J9`%graHC^ zy$m(r$bNnnLL?HFPJv7GeTc*_++TH=QsG<Amup?}cGh76sP@gN(>J1Ybw1z-B(Axh z!&%<PaBZ0*oomym=dLs+DgH?*9+XnkHCCWD905H@*UG^aPB*-5;yeCA6x~C5joPI( z#M|KLCwvGBnrXI7Y7UH7J2cV%nefXC-)E4nxwPzYS%G8bVL686x(1x#4&eBHl!cvs zdxjz1bcz?<N%&`el%AjYh0ro%$_xt}U=pH4&4m<M+vW2cHC8@3m(60|I4{cxON^yY z?Vya-CS`4N-2nGNzUm(nF>Q?<aQ?J#urFQGJ9Q~S$^M>9ue;KoJff4@zVK`QiH^xA z`Ce<oHLH#iSz%IQcYHOIx0wCX94V81f@hXVdC?qegNxV-MV2pKeyWZyMPo>}rKDWF zC}+vfpu;nuYGXTA-cs1=4{zx3owkP{R~A1Nt!M(2kQUuw(Ow5?QW~AaZmf_p7^$Fr zry1h$^sENF?D|YdlACdOf7KoI@2ooYzbrI7z)WqOh)`~2GCVtvLs=@ctwa$i7HEJJ zR&k{T+|L++tRy6PIxyE`C3OT$RJa|ffB~j2X4q`7YK~2&oWY>Qnq&sO$r5^FIt!sz zbWSZ*2w5zWcdR%J6=so`XqvtssBjttWwN-U>c(0ypsv@`N2B+v;zx+1(us!ivI>WR z>*wvOr`4V7nVD;o(-$EY>nE*V?l9N>2-<0vU;>C$1U~X^PH16`2JAaU73gW^(p6h$ z0vf>+GCflVF1Hr&mQugUXbrh4Zdk4G<t4_8Co2^%P8p505IW#{w~Ef?W6@BAIFv=r zZ-hT?`gFZiz4HSM?PGM!zp?C@%?`4-n9csvXPSi-%cB>o%h#ame-95!sf-`Hs7{H7 z*I&PsjhIyn1vje)ajAFB=n0)MHgTkl9m?!R7uViFj5ua#Q8syWx;uwR;0v8HW<7&Z z?{F4q#(L^xsOi06$wAf$7C0yM;3BMtmXx$It>{!u45K2TpLjQ!!TYcH!T`l_JVv-( zs+UV{qRL1?pj}F}xh0E4FwiN4qP0!Ey=6>s{$I`(<xfZEU*;tNj+3`gFhTjY^5E=M z=q0$Bq_!C9MYURkNYMB0YDXM2ZeC+7Pqo5Ja-v~kO#$w7qdsn%laZ&R;*3|l?w^Q? z8=(p-?gN{n>&;b_OH0*Qx4XpS1Fm;rHcB9;X;?lAOoNr8*}fCgpPj7u4K3)w-M2}H zdZD$9ylfI1#R|5_s&=m2OrS7!Hgmq8(IE&TUTj|dS7bVer#f+roct$7gbtb0n+`#s zwsd1QSzD)PJd&p4j=AKX&K@ycfDK_AQ}I%UvcLyUV4(YjmiffU9k`Hrss{Xv8H~Tq zVgfJ3goLCN_zQpKiXiwgGcs6G%)b4p%*@Qhx6SyC7<9MJux?I+^VfM4Qh@r-*?zX* zrNDF!s&pUN8o}-1GHk{$o1+xaN9RqrfdNqd`l>+8u8}%p+Izel!K)!O`8KzzH~=V- zXgKz+A_(pgAFo0HO232$%cc84{@Ju|kB7`<^!7J*6l-w^ktEvQKWyv9tXx&V%N=it zjCvmc+KBxg<Rf87fZ`Yz*<?9aF)_UQb`;xDsP)KRF>w}~ReI<pV~bXWec2>12bE#8 zzV&?4+0K`4%_x=_S@ulecReO=#+?yjJGfQSQs;s}MMpVA=TAFOU>#$c*r&rJot~$V zcjype8#PAt9*QM+Y5r(Yn!MfA=gLk=)c+KkFpaqO*uE}0ycSiv7RWc%M7C?P-hos9 z)!V;<r|q&SuIA5wiz*G&e;7ahv#RbHPU5=+N#fQFT6X;6buu1J)47(g{5nu!yc4Wg z?q_CaUx<g>Y=`G-9Ltcj3|kqYx|ThvXmxH|u#AWupQ@{-P{H01YHTS_W8n4$mGPO; z$$iDJt?)Bv+gE7YHw%6v2x-<Lo*QDe1KcHv1``ONyj`yqP7(hhB0?1snmD-4ppcWQ zTEh$YFn+P%&!?tV*`A5t8t-b(Xlsy0fo;Ym!L^m7;}@V3{k%)?V;NhV9Zbz>{aagS z;u^(Qizq@qNc$dmJHZ`%Rq{(sTKum1X4c-ch%{zNv`5ry#-bY!{O3}WE}Okseys}S ze#u%oF0bGE+w@3(9(w=4-;&U75NQqjm2oEEi*=QFe_`KeeB<Mp>;C8@=e=a>`MkM? zCZBhF^$&QG?T$y8g2zog5`#2zpFd{2iHfz7TzaNWx>~JXmJ>mlgx+;|wbAy5v45x* z4YeUKFSeHt&u%Zm9z}9v@J}pPDo3+n+lM~7T}Hjo9oFlpxY`E-cx!spom%q7Ds81J zHnF1&IQ>X0P{Yn3mIAvq9Qkw)b6?U{Kjt@lkN#$dCF%LwW^^`Sd%Zn7P__;AYxPf; zbF&=W#jjz=YkHW<*zk%a>6@-Nmh%9haHVCxxl5tnU#auF@ewj9Rzd+U40UC;QJX|T zL|<j~X9`jxNm?|d)!#o=b#qcOV4S2f_~;m7lLjo)?JK!G=8GEt5@s{l-AYa98`opw zR;)t3ZLZ;fvsELiR%<JIen?fs<(&b)+ZuLqXeGE$UX28^{O)DnU8vpctlsM2%rSEW z;VY*u+I@8coaG!iq*!0lS!5W$G3Biiv4hlKzja85I`iO#gsD0xa1y0ckCx1%F4}pF zM$Ic^W@iV^t(EK)6(xC2`VlNVsKb8Cu)$g#^Sf7`l8;xSS(-U;-0D<(PDpnxcgV|U z@+DZX)H)UEfNVzu<qnE?-Rw2Pzl@V@5D4Nxei1*9x**ooNWCpu6M>RI5NqH&pQb*N zGWEn{y(YnrkO9MWF<`zK(MHcAmd8vMqk@jzS~;p|HD2A>%^VmZjweYELMS=WIg5x@ z>}so<MYv0=c#4v?>$M;_99rcN1Y!Pgn`l7ya!p63UKjF5N<plDvzZIUo6SLuMU_ME zw=MdU5*VY!@yq!YM9{4r{4j%V_6u`;t;X^PQwYUCUS*lkr8|b4I7;+TUMj<qm`IA8 zc|BAWj!eQ#LfEAL=jg-H47nV3fC-#tr2fVcjf4d>!cDxnKY4PuxtjHU6oLH5NKsR^ zBzL*LOZj+w0%O3#$XQ+80*=*r<l6J?`N@V^?P4+YtiRjdebNjyPCl4wi7=-~N#GGq zSq3h%<|e>M1#KhWWTV?9>BrEe`cz4Rn_W~6SIX`*#Syb1QVxheJ}$Rpo!{Q$DR}~~ ziA1_mHlA4S#wY_m7Wglad4(is-@;)*>^tM@CCaBYa9a>ZJZn(Xa=iIp=JX}F+A74r zrN$SaJ5&+rdXlhtFM5isV-P>)okr4)Oq$b|a)gG?&S6eO{W=nEL^Utvg@w|YXmVw8 zq|3ljaAViqU*@)uC4uwqQak`Zi)P%ZCmJ#VsSuga(i^#39G(O@?n|eyX!*f!sgWg` z**FC!dL6(zH&LlVaY&PDNch-MuuZ!0;qKzysjK<*pltaBxfx}D^%~Iy>Io$B@>P-X z&m9EEoYq;}#Fyl<vfGw{<N0-OhX5f?{`Bme)YYv_p=B^CI4OFhjd~9!l3$sLi+IEK zYej4hF-PlK15t4H(V2P^_>mi0md)AOHp`hO)GL7_lcw`l8|UUj_+=~Z4DU;)NJnq= zpPu7nZW|oPfP=AvQZk_{exZU$>0q+ldWJem47reQbVC`}!eQJnY*pWO1JciGYP{>B z{A_piXj$B(irUDZukEZkJq~}${#<F32%O+#kQwcX=hNY7xgc>i@te6>mG}HNsby8j zH<p~KKSH_~Yu|HJrrkI9-qJxJw*i`uHFeM~!3+EQ&1M-AGgNE<8X&}P8c~eY_PDm- zSF5H&VK(Bt!NSz4zezrY`X{Qm>rrw^7tB?s6d|XgUEQq6wRvz?gGxLm@rB^98o|)l z8L)O^)+Yrs-(ox9rfY)vX<m>_QnrC$&({EbGG_!3FN(+-Cvg7N7Y;;QrYBY_`Y$G( z-ZxcIGTeS0d}qm@MR($+b#&{-bo_F#N*U~FPCjYhuQ$q*^i7Ko3~ZKG^2*pa?>@6O zb`j{R%Ush%W>oI3`ckF`f<VEDZ4To524<M)Du021ZqB14{QDDE{P+bCnD!H#!>zaU zBY5REk8aCA;?E!kj<R3tU_qZzLXQB)h1}zbBs`y>0$DX$D$ku2z_s%Og$6lW)~R%$ zC#2rSw)<NbEHs#(9MyOV9$wAO3+mSR*0H7N#oAOib?6)z=bKWREwd{Q-!K(@@@Qih zo_%NZlzjdV04YJ%zKTglCK7H}Ln9RwRowwu=TTtCa3`l58yp-&+lS^49>?ItSXV?F zJu>|xxKD_R;9sCx1@sx%9W6M(F*?|o1_Ncr<be*Lbuy;IX!;*@4I)gk!o3~+DAYMv zeM|SI0cbGjzXhP@Ru;(?R+q^ZH3q%3w6=nzhf^~K*mxe?1b8`o0dR|e-<TqRODW|} z1SG`6fIGuoA74S@+Lj8I))q7w-{qP3%4}kFCb2eW&&ShK?et_@sug|Jf;X2W8<sgm zi)@?L0kk6`yaUi8H7X2s6JtS>z?gW3i3Yt9)frR<1<xSw`PgRq*k-g#)HG5x#}2vd zWK<6tJT{}(PL1WD+hXuquJxQZ?LLNn=?W|Eh~L0z0D4dZ(42wS0JJw5>M`h_2GCB0 z9q0)_8(3GL*+6FHH6BeL-msf)*i0t3#UZkG@jZYZc3AvWuQjc%lvOCYg@VhIGCLCn zwlE--UB0rb2cYd@$u8G41tM3f-<7^0l+1zAAtp0GCY4QWZh+18r`L_?b%Qc8>`V^3 zQ$|->qu92{fG2Z9*66cKtgup*mutM*lAI}{BWYIZqNJIR&3Zy3;cz?5WX(**Vi!E{ zUF~<8`Yf6}lgVSdZq}rl1{~CEc*xkW&m=faqHEA;9&}mkvX|515c=#2XJA}L*5wE( zR@P+`8680PLNzi&9>)#4rjh;eP@k2t(S@#=hpw3huL5Yg^l$pE1uI2wDaBSYj!e{D zNKm;APc-7wBZ=8ju92}v1$$id76P@c#m4S(c5^noIu==*Q0Cj&gZ13eW}&k!j8(<) zT7GUy8n1gQ8K#=?Rx)%F)QkYo`UDQjA$1O@PXJ#P$o!$ZfR*f8ud&zvfJi!K_LwUh zm5AT}^Vk3MFW-=T|EKSN|1aN>ef`hhp1*!h7MdFsE4kVIZL-7j?(xmD(_5!HfF`3I zOcKKJ8Dk{68BjKa4u_jFR*nEs!5;+ub<_)xD#O?SPPM3BQQu)Yi#C*5Dv#0ixybr> zWPK#M*>2rjQ)er|`C4ke<r^#UjeK;f?J1@-0Ig~OS}3Kte9DywTQ#Y*pjly@vezZk zKWm|3p(7|5yw+Y2La$L|yon(F#es5Ktz<ljAd`#?d+pSj&`@tF;Rp$iu;`H7)$^g? zm`NQosO{n4s4*}yEY)tPqeg#oSgH?rlE2hVZvL9j|H_;EC0TCww`8T`kH`Wezt#d1 z7qze4@n5*3zi@?r;RyZ@d*By;1)vqSkFuFV%iCn$0FSx!A+McEx=Uu=3aiBtc9~s4 z(G?PvY-otFYxFrHTNSR_*<wbE>{z*Hg}~w{T$_dI20LDX1(wE{kz#gh5yp;HK%WE4 z6Y6NqnTt6y;n=h$l}jTZT?G>Sj&`W}#yAB34s~$p2Q=^i0*31@BzoZ&qfZCw4Y>}W zDc@>sL(fZBA4ThG!cgM{qoMQDNQSNj4vt(z<KdStU%r0*8a-^<z^rK?M8icIW7BD= z%>&bfPC696DEl?<pV#gla}%}Ymk+`_i)0&bpQLw|mtR~|?rxC*Ho@gtUtU13aK5JV zQ_+LC1S0-n7!3Ux^b#NgjR7-2DgtlPK0P>k-uwIea7CdLVo*(kcC5*zlfb2jMxI&# zrCg3~iBf}pL!|~`(2yon@TsuCDG4*Om?Z*$Mq7?zO9k-g-F9+v0!KLvs&!>adex*( zW@dHv4L5BaK*MPo>o5SI^(B_LG+h@W%MfnHLTT_~T>u)rD=aRi^HaLfnc?w`(K5a2 zO3;+@baJo>xS@Rjps^|$qj&g-E%Y`zgq{&%poor0r@{ap)e%**`Ni4z%$Oq|XBzq4 z-Cg<(G7_-$?EO=2EYD9CC+~OL_q*Axh0Qlli`~7WZ-2M^>QP{4o-BU69z9s*CaRlX zJfC{~X!(mL2Y-0wUmYP^esgc;<wfyuZTIWfrIUj|HfEJsZDusU8wEEtQp22!KJmoW za5e3YOBTsP#-;qBVvJ3xcIrH2<4QN-?<CcObnq}8I!Jqt6;bmWjrxvbflit^^oyr4 z@i@wzg~U$8f1FZJ)84LM1JL7~rS49yIf4^RV#b$PaztnNz!Vdl;nis-FyqdyiJ=*L zaa$>LJ*7jnc;rv+2<^w7kw>oh7Ms}SChz6OA4$1xpx9M22U2Q>s~!83>yBDSsor*% z4wd}AFTU<gZ}ZLjcA*nu&I7JPpW|4dJM{PDeTCyN+f@T}OGkdsNq}yTJJL9{(2aOI zehtz+yCifPq<iyl_4CK?A>G%{=3akN|Fj3`UOt%US#W*!0~+{a6!;S~@bk~~3+Y$+ znG4ZXc0Yendwd>0T0_Sg?cLqGcaM*cA=`?G*3?=>7A8ZpW9rn1EgqyShglrTJT%}x zJw5&X?|=W<XP-TJ^5psR=d=%Td`*jHVx00M<<;!Wggn_`n+2@*M~g`ZQVFH2&~M-y zLf^I?-5!1NiMl%d<Hz~=bo(ID{#LsEWTO2z-G1gOWbg5ASL9Da{*wfM5bELGULH6N zDBYxR6c#AE9!GnUEP?tbmg0e&+m|ah9hF00dc)f|3Fi;}nSIJ~eC;$;y>RCa`RJ;% zbu*IQr*v>mKI4kVA^LXYf=R7<tB0Y~hLl(n!;5TS+L>4s{Ns+uqRBr#a0#GS9j59f zfMz?Yd>WSyVp@#B)2Mh7c6EHrsrDh|Sn(i2CC+yi6FL!R*C(CC*iIl=&jrRCT)sDN zG+7fXX)<r7H+3|c=L@mRd82xU&!++-HIwLBee)=Hx<i(~IGlZXzwznK@}pC6uC?>! zqr<NrsT&i?(-pGR*+%iALzdWGo&4mO+N1Q*M*3uH^ucNVd^g!$_cS!gwej(B$`74R zhw6N+@)6q=PcEs}3K-z&02=<kS}mGPKyQJnP0D`oWq$MK&Ar}+(3;eSQsZ*;-B-)6 zAFDg_WQpVTSg$stljuj?zkeTM%{YqMR;tbPqY`=r`1vy(Kwpi`tJ7yx-B>^a08K>+ zqzqaCSnPrjeE0+m8f`258?ev^afadR1g|5w9AO{|0FAaD9ufeo0BvZ*wU)Z)`ap>W zNh_#|(JK{Uz|-yR&8@9XXe%Q=ErheEfMa+J01Y*2`U`+9a8bH{R0Z@c`bcyMN)t@( z(j!yprst(537YbhMAW9!SCGJ>1A%=ZKSimEg+97-D?JgtBCIYwJKVIfPKchDu0n?+ zrXnIMK->U|2Xrib0yjG9git+(6^i&@;Kc&}WrP;Tpo7i~0F6MA*l7Rp<Hu)bXNQM} z5MiTFZok{;2XsaJgE~8)WVvzUhPxPV?yf77O>ZrSZW#JtOV96+mG5pXJnzmu>ny&! zH~;c6S^4%3KT$gW_KVS{cN-7Rsq;qWuV$oNG`BP%=OS_;8mgs&wPbQ4E2X9QL?t#} z_vd2@^=W;caH|lgX5~VH#*hE-_wNF}y#vrt-hdDX=<{!`#&@~Y;<%K1zWfmG&piNr zslRs_73Nn`E)r-I#A4DaF=9H%CskWeuqv#HwaaPM9rL>)ibIud*bG7{q+xO1Yh>LY z5BD?ikUJjI0JJ8-k#=h$#bN4`^R=8cuEw>Yr3Rp9?w?-;(CBK?e+0*Q+6TQwmyfb2 z;!acE!xTOogWxa-291s!G=C8Low{lW)PX{TyrJdudU5yW>DF0yv9m|Ee0-2zm=voy z(B~e2p87F>e*428^n!_{u2``_8&+wct^h!XPc(gqOb8f9hX6qPC+fk;mN-&j>zUYG zo2#ch`Ox-f7aPxR#kR-Vw|Cn&cbcc0%6!wmI9}ObbL8UoOmw=t7g?By%#DR++Cr=B zEhmFxWp_5@%Ba>5Z*ZEf8wZ9xwmuC&TdrG;GzuGZTCWceSXqxzV9XNNXBvi6pn<jj ze+AIPZW{o!<qCjSs^+TzIyf5St2VCU6>5w-V+)Qj!4Xym(7uL=Em@d?Q5_!)P7J2j z`vIW&@(@{M&L}l(LdEEBSi|EczGzfiUa{unD|P^AwQUosZlUU7OAfv~;E*_%!n^!} zmG>B(77ORLa2^0?i_2tjo18wUGvu@RS(~4`VI8*nddu-OO=qFsX6(0_qN8<hDr^mC z4t#@7OQ4kEG7&Z%Hc6g-%Rs+*fKgd*Jm63T>PXNTtb#}L7Zg|n=ecGWxHde%hE<Cy z4f|LfKs#cZq-{Uv>gV15QaV)4gzGt@%G;8DdrEbrRYx}BEvA`L#+ix+ss*)PY@O_? zT3|^4=%wtY2B6{WtgBnVaUM#<(0~R}(N!QQD^d*!u~29$Vd#Xiqer3t5rE#?J>1<q z&}?pV-J6Y(g(gSty?$};_4B81p94U@{NlMLyU|nLfC>kQGt{CW!~yMJ=x+c_1Ayor zd$<AJ=|T6V#ajr8(6NDfQEim`<($8gw<Usdy`VIU?qtNB(g3tDR^>;_Lc6R1=*@-3 z&N9~kfNuOWfNqr${ZE%&h9jfi@PRT@(=#+QME8ta)%7kkQJ!}I8n{3gyhbyPF(Vx^ zI5>!70if{%{0o=>(4%(aPH;9omGlWJEVR|b0wbOwdd?W`VR;jsfzC;p<nOX8Gh}Qj zYY+R$<Vv0_(W;S+F3ggRFU^x_avaMGI)H{(JO=rC)J0uX2qSQyZu~32=kSJuS_=Mk zx&sJ-gF)j%ctb;+#T=E)F?sA@GqyY%U!9LEPsLVeY}qLNH|Z%2Kugs5(^NQ;RD}FJ z04)~dVm>D4qtpU<60$W!CON_Zd&uvID)z9_=dm%dAkzcTPF21Nps7+Yi_G9V0Dav& zqycF6C4e?E)=L2Gy9ChgsNcjoO`MB~`k7RiO-Ic#Z&ri>r-h5DWIcyp$;h}bDXoUH zHPxOWm)XF$ehi?m83%`*7P9LWgMo1xyv{z;kX*AUHM1+#W6%W`Ul?NZ1J0xY09q_N zg_1+6+QhP5EL+8rS*jU@;sEHgSTg#`CN?`LH~Z6T#?-pO-viJZgYE%nSIXo`-;gVe zTxG=yBh@qj9cc27gqcjKi@usm?g3~v>wOQP`S$?&`rii7Y*;c00MO<u0GhoDpskEk zJJ2%xvEedQ<3C=?WcT-33|7Xj1L)t}_-Mdpylynyuvu<cO~1bOTcw<H#6wOh-uZ-o zq^!29VynoH6ot{UIqJ_ZPZn3FY8x}IQp{aS2;)UzvLsHGrP*d^c`Cd*qfE9+n~Rn0 zrR3}wTh4Oz!c_o`Ni99}CuZufoB{43x?3fXiq3%04b|skFwum%1GU~C{`5WBKmE(s z-~H)Z&3^d)cmMn?*{!!P{WEPcwvhU30DXLVyL<D_&9mF*$2U6&w1Np9jF#yW^l{Ot zr47sxULiV<hQkiPG~JcHni4fW`tg{s0y>AsH-vHIxn}cZJGk5qu8t+P+TMDSX{Ivs zqiih=0Ikggl#-UP9BNefa+WQm>94UyC2NpM1Y_Ww?*X(b7`!(72LQTs6+k;K0dz6$ zD<^dTT|OQNj+>O`U|?i8&^CybzTlWK&>EKO15)jVuX;mn42b1xxou}^#g$%jr&id~ zrj%ae3R`mfzCFEe6`Q8)qCdN+Cg%h3S$}pZoSNsulb+CoD>==_C%nFjNlb;<ctEp+ zUx><VOi}VNe<AM6#at2_X%(X*CAFOP<)Xf1KuQIqY*@<03X7wK#j#)^vi|zf!m|s_ zp58wH`sM87vyC^8$(CL|<frT1uV0d_zxj0G`Mu8Xo|DZzzBTvc&c%0Ml9i5D%Ukos z^*LuY%vUl%mWZmSiyP1w1`+nqQqo^TqY?PsQy-W5j_69_Ee4QiTHqrL)vCnCTy|?Q zu{M)fn~kr{6n9q(yUSz%&`>;}95pvLhtPsF^rF!eJfJbxqEBEzg#*Hfw9yWY<!E>V z08L+Ez=jb!R^wuFJ9oC1ySYyTnE6ldkj=fg+j?{!-k4c<{z?2~g$&Dnp?nPu2Z#bw zpBVnX7?RQ5(zjH&un++O>mU{hUnC5DQD#v_0HA4yhP8-s4=-=Ja~h}7QS=F&nZAOA zA`MNU`HtZ7)FY=-OouNoFH_;7zko^;rSs9z(P?jkcqpYg=5-Jw0XvlV2wP8M#l5{f zIy0Sfd1)EL-KC`^x(B*Cz10CO;4eC7^q<0QSqIRF9EkO~KMA1WUxP)sI0@D=!zo*L zcEf53devvwFqK6c-Ge?3N8$rd)9>{)<8R))0XWc?m(mWU51k(?l()CG>FvhG1{RL! z0Gbk{va;YVBxBR<#N0SEpy8p0^%<>O`|X>%V|NZxtJATy>A6oYHeNr@9&X<Lmw$>K zt<65WOIAEw3vbSBeDQ4gi_hlXK3&#!9xc7POIAEw&Fn9)ym_?q)n~b*?flAgpqvU; zGh~rUDm77!G>e7xxlkotSe+@XPJ|m-GWsev-wxKYl}-98BX#1T<Bb0>A$MZpUYI)$ z$)^di6LlPmayRZfjEJ3x?<g8N%W6Bv(cno|I0`$*IopKS(r~9Yo#81iwd6|7i0U+} zjJy3)p2U(by()(mynzWzblF-x3>6Op*#kMX>l^))9e>7EZ^n{4{M6$>@hp@+kTQpI z?JQhB4X5|`=#n+PYpWlt#Y36iCN`Puo^RxVlj#JMlZ1E>QIFHUlPG@@ba#B*Nr*jG zrPDZjs4Cs0=BC{VxsGM|IL>wgt8X8J&}oqF)&0hko8`wnNcX$PhhIPb0MaFPR{`mM zOarf?z@Mgp?=GZY<>xO%S6O}YIMdzCob9BJH%ITE<j;1JowZJ<Lq(NxzDA%X%has% zqb1*1&09#jbICxh(8F9B{-Zob_0R8r|NAe${1UE$_wL=J{cpbchO(<xsm2p%vJ=y7 zjt21UN^*HBv^cIVYl}swY*IF+>`M7Ic<F$@kUiOnZ7xk*bp8vEb2ZU^GTr`GqJ40o zpT7#(d%Sy`5Kh9HO!<+_o&+fma0jaYIHjB>xucNdM1%%3-w8FTecTnx=kCOYx6+Xl zYmQpCr}1(cs+_2)eX;pK$R0_FZFcH@u6Zlge&QYdl*#PVC)~&<Y<$^K-d7UqLTr`K zY)Hu!J}~V{Za9>2r%*ThM;xJPF1hY7)tms(Qb)VD;88|BN;8@qd6ex0wdtI0ia84K zM<MYf)|<`=`%hBpX@)rt1ag;CNBX?c`>CVa<<yZjZ&Z3WZ<LF7zWZwB^<y%1cOh}I z5j$MrCTm+?JfD93XyuD1hktnGUu&<txj*~zlhV=p-q)|m%BP2izyD(4*?nbgD!elv zSe<myP~+l+@*7qA-EJ4s#t=vHRkHb|S-zCh0W_*asw&}o3y(soU8x#8I5?nVsq%+t z1HEFo5^Yqw-u~g+IMrs)wW>_7%_tjRJqlP^KZ<Izt4HCGzooE24FR~AK6i*Fl3qbq z5lxq>dN5)t9n{d!Bhx2ng|WJYnhXF|tckg*G=;G`r9(cSLldm81fs9dG$T%l4xn)@ zbY(H=xYOIf(6wiOryPP71R)KnmBdmZJ*<MRwS^!M2&|2c2h|c#l%fk!)j_Qi{yRhz zqz`F_S|$1!B`F<FwE^{E=o6{|s3C)D8Px#vFM!&k3qj9<G@+Zv>MrP6f#T6yx($r& z>1MF-3v&Q^Bw<QJ`Z0#+^soTXdSGz6D|p<~jeP*1sl`O|s&AAm&!0cPd-pCBy+8f* zQ%X8I770Z+kH3}fN2fyci~|D$?ve(eed7&pE%!kmOzVanFDH-YTMzb{4>m_WJ*z!D zAroht=ih!_{-j&H)8Qv;WKu4wj+CTI#-{MJ?~KdN7>&4nHpv~TCiq;O%|wU1wjqx# z+{nA50cY6X?=ZvL<EjM5FW;*_UkX4&TkleE@7KTj$16L)&A<88FLcLeEdu#F{S7i2 z{@a2+xt1IBSYz#Cq*V|K3A*}#%i@j5CK|=7KAT_cvl^TManS1=@HmE?78<J>72X{W z4vL;|t>`OfJo&hhei>IyA&Dy_#B$c2iqK%E+Sx20tb3bzPc!dsq%h#3%z(IRx&$+P zBxxU7XMofwfB?!^H=qM(z-Uw&^h>yfBE}Dv?$PgeZ=Lk$^ZsIIuXE@8=;ExsvzlI< z5-OR<@&wt$z0>U%58wRh``17G;h+BXhj0J#!?*vYy#heP4^ej?q{0jJXM~%E*b7Q4 zRsdizKK)E{91O{gwZ*_Y04<DUg=Q)-M~!cI?%u)d#opNM?d0KnWOKH8cGx)H_s_LM zi=&=$+FeYRH<lucQ<3>eU%M)_N?a|)lp<;?>u;oOVPU{BG~_hjuo`|laNX`>`>e)6 z%`ez`-7sKqSZ|mO*G)qo58tr!uIt8u>!yJlmO*;;_-RmSg*k%~9}f(BtYl8V$L?pm z0ny_ZOsspzZS6r@1FH)3I_MZ4v=8^02j!ZDt#DkGqu0<_NEz|+Rfem0gKf81wuDCI zU|SMvELV0id266;m1-^~Z}N}!OU-ME)xI8m9^@-SO4AydHA;0GS2Fk;HmT9i<_G-^ zCttQHO}EnY$aS~SFbFj_TXI|iXqg*koWqRkhQspFaK9@cx>eC8bAxWn^`XA&!+jqB zXwC1N@fcZ;RS~b728DE3pn+;WX%EVFRk8>kUpj0L`fLGh{qBI>$c02U$Qyb0pw~9w zv0XFvTX@%yTa!CCu-@Me_Gux|LVknD8Wq9h7d^3%JsNPtw8(1xoJ%RC{pB8j9w|lJ z6@$vDje^=LDy<@uicpD8O^<QKEMLsc-Mv*m(wy9xc1fJ5bL|q_Dp)KQlgR{>2NDYT z1>j5gp@OSG;~0ZD%H&kPL1CFPsvfi!0GhV_4$$*n&$f3DcmFnkexZ9nUjpc_-fGtK zfCdexdjpMxS1$mx?h1`!f+mtKO_irk!|5xmwn6Czj|LzL)QiDJDb%d^8>K+AqA8Z- z;+odE>RY=wZyjzm_BVoa<K9Y!>X6LB1UHi5nrUAn!B&#qa@<u+gvaWkc2#YasTOj_ zw5C%Jji`&b!c&lL0Bo0TV`ylI9)}VTL>NxTx<<1e^%4G**x;ds=71g?69BZ)^XdRv z_nX8&0{o?OXWe@pqzki~sIqj$Eu;^;w&6EPZ>h1P1k^mBeT{-<wLIBRGU%%S8s5-z ztD4bO(cVK#2$N~L2PItt-4Qs|gTaH=<1Rt9;E+$>>c0AjPpAhZG)H;>djB1OUYd%o zXaL%li-kt2ws_DQQ^T!Fs8O~@w40}5<4&utbU@67#axKX1l@@qfQ|q_`yD+1&Bj7Z zBxqG-Ye2Fn0s!=o%{Xi~^_hpS4G&y141PS^f6Xv3WH(Y_9&{LoUB+RziK;D=+iLdM z2JMzXElyysUb7n=yxSqTjU1U4xNN|wxlCFZ=YYdJU^n;mLbw7zo2WYI0q7x@>Eq!( zlh<MNI?MuN7Q80GOZBgrb(t8ak@wKq0HFJfLrNV0+Tu=Il!hjm@2`42850>-w6R61 z_{>b+%;XGW$xL<$pwpKC+E+HpjT`Y<TXw@N)^8}SA--Vuri?ClQdc~_3M*AOUxkxu zj8tdkIxp7+xhAk#7n?JCv#vlx2{iqoc8JNCylIn|jyWVvipb>`JbsRhj|HgqXTpk7 z&iX4^Z_pR0WCPWlTFY>8KTj5w)t;9tmr!G))!0~7hzEs4h>eFVyqhXe8|$=EifO?I z`Y7cApp7mK`d>2+{A2$$YIp`M!@aq?{(ro2?c?D=rJVEE3OxWF_Y{%=tzj$rM#=!t z=D5EHpr;#KbJWwi3ZUh=R(M4N(Eh1*WqT<#H^x>p0L|9(p^1iXq=d2!0t*jl@IKT^ za5P3_E#PLXr$bmm_!{Wa&!`SiT(N}VKLeoW_P4q>Pfl;2pJ?>?`0UQjn`9T7=@LJ1 zw*iBO7&MhNbTp~-Q5l503jDbMps~UQ%QW-}E_wvit<Vb4<@``c5iVAq)c|zsd{+a| zn<G~NG*eASr`v2f6&cAhsbHjC=ZYC;D(pyvY&`(&j!HwE!$LKu?9~bgug%AZsi=W+ zIPbB^>>&00Tvjd`@Fc=aCdOvtM#dp!L#~M6ii&b2>X6-)lYz?VpfWNf)^3C+EOKKI z09qX%3XBd2rE9+04Y7PJIR0^N-K9=jf-}~{vNyHLhUT2%1y}9Dlw7s)HB){uoL>&B zlTv6}QpR~@T#!aw;VGZ5<rSMAt~8`%gI2|B^)ozmVHJjr`?*BG7L>(ON{cn@vBk%# zTs|QbQYOxA=G;;~Dp%94sLvIZ9ExY}?fvx8EZOX*XR}Yvqx%bFiQ|pgCwKUX8rj)5 zZyWbcMjo7XzIsmfBLKZnT%T)hFD2$iC{>waD!)7vpK7Bq#>4}p-}EMdHr+|5`EH|* zBUY@_=kN*A|5@640D6h+0{|`73z5lYYGyP&H&$AhDlg3-oFHX0IQ!_sNZ?>FUtnd* zU6k?gEe#Ig2K(~m%eQae(#^mZ8%t1ukHb5Qk-g>I_7VVecz1E;`2{ywJNx!?vf1Ys z)c?jIhy?`K3@m-c4M3m+q?mFkymxUw@Iix4I#@99H^zR5PEI3U8oAN$;b2Y)H8nLw z<4m}j&=uiijr63$=`9U|;g3wm(rGc=#meQgvojj+A<PlN<zbE*DrS_1z|iyw)g(tp zM|2??W^Zn7&h%oSBW4<w7{i?$J2TVMJqeB+Mj&uT*4(2SO&vhfR{+qhrUv@yZ_)uY zyv*ofsV;&$GaT7aeZkWiv5A2j&=J9cU)tbwPk$?PGw43Ix3_-`plKiQg6^MQA!6|6 z-9}$gmfPIigmk7B>!~Lp0%|}vmY$jL6q8IP!`5?@b0{UXMb--osIO=|tgcN3H)rNP zy)$+9l(LN$`)F@v=XWpTM{CLMdaAp=`SsJzcdyf@n<GzeH=lh{zIT$lvrm>f+uZ#6 z`O=GfiO%}W%X``VwRpSiPKG=w%^X1?JyZ3j!~RCW6_(@e3YUx1TQWyb43v`e%g|`m z8xOEYs?>?8N6A1psT{`mlaO+rln>&{aWZ(45spGk*UuaUq~n;>i8@bx!db|DAUnr7 z`vhxkda_%t$Sfb7;bXIcf7~5ebjBBbkwqcAB*^3T@_}64S3`^L_$HUw=2N@k$U{%- zfh)5o)lWhrcM`cnCD-wf+*b-GYOd>#thz>S`<tg~bj_96@{+|jwa|r)dv>}>`8ci| zB|}G9O}pSU%pL`O-I&k~2aeO+k?K2%3#SqOC>T7+29GoBaiH^uuUFoDs_riQ6{P#} z#q^uUD_=f6{Qk8D>E7O-eWgJ<jnjSerhIz%V;XoB1^zS*e0L%JDnD}}T&44euNFUh z=--%@S0_W;^MREKS0znlhl(v_Q7Vt_YP`5Lmt38aYPsUdd~R`uMnot_l-UsF2@@fU z@3z&|Rmy=_<p8}P%H)Nm`Q+@lqnMzv6Wh#NQz6QMSl>X!ijLA8@E>$X9~|el7q>ot zUOGPbFFelGMEl8f`&)_j!G(V2DmsAHJc|#b+HAy0#CNLs7jq{e-)W3HPy^kxwsRD6 z9ZOnnIZkk0wSL!@*kYR(Y`No4?Xb}$YhvBeIuBP))k2pto=`cDR&GX<+x*y_bn!gg zdhBXFa#v5o?R#QshY!zNBTKf*ftuZsGMm2G3Kv;&MJb2R@nXXo7<Gkb`P7EfRCiii zUfUQWAI1GANo_i3KSa4SaGK&eA;+;Ooy2@c5v3E?rgKhnz3H4-s5hNcSe*$}Qo&j_ zQca~MYmk91Zp_mlxwtl4T$>CxbM#eyVKi9JRk!H#?42LJjd#}Pp5G&*^a*dxZhrA> z<%`ee-#%T@b{;Liy7!X+dj8oxg--Y*0DXFTdVG9L83XmLuaeOKbTNl6BDz>qv#qbM zW7bWR`|mBlrz#f$S)F&=$;k<w3VfMPwe!`h#L*h6GQBpVChY1_^!uwvQEhhhsP`4% zQ>_9-9hjsF@T+G_&+kz>=rT<JvVdRo7O@AYMZhX0G<JxoK+ggtYdQoyNorXj*oB@a zoR<*_7+v39$KVn`gK>ih>pchXYY5r`Kx1+gYRgzFgUEZ}&Xn4eo`CNN`Uj{AVP)UD zjrK7qj_wKoG*uDs`=&|&)3kIr?W5GwFX>zOQ`4VIl?GJ^ST#r|pPrtk;(vaAPJcT6 zk94=x`KLsqGt*O`J*At+Iw7nmqHX{+c1T975`*h2R5)nEjiCpE=-+e?bSla%aD4@U zrsk5qtyC+Bfk6q2`DUmL13<s%ZO@-S*Fz4{N$%Xav%kOp>eZ`f&z?bkjXtNJ!3%*N z0gJ2wp!@s#J>_I`cU>B9$gT1ReK6{Pk(KWqrH|K>-IaJ}t$eRTCd@RKUq99Xv{KNV zy*>cYj<Ao+>if?C=zq8ZpkX}#{mWmFUFtsn>K8!FJ>6$rd;`%4FXO)SWH)-B^aMJj zr0PqkgI+sbchF;DL%spGRa?kN19pem#=D0+_Uk>bCL@jTB(LW9<+jo2n+7HWG=AsZ zgQD9O(u6$?0nr%L05o;Ni%ZjqnbG#va&WY=_Uhs6<D1hD&nNG8_nzNxpKVWHbSG{d zHIH{u8-NgjK2uIW20*`5?}B1-0v%4>{TW?rgr3H_J^V~x$$I+9?en{L==JQATb+xW z0MM<i6}FI!E>Dr|ym<8Gzy9%?zx?UDfBS*#kN^JXAO8K%pjUKnI)Fx}6k%Y{<)dp+ zj~8=S2){{%NLN~i#|g%XTG0c5Zlw})bxYJYbGI{faj342leKSki`||4;ifv@YVOSi zM~lsa&HC<oaBe~zt9dJFPbnFlY`XJNrVt#KyhA?s^})Vh_kHx6zK{FNhGB>Kqk+DD z>tMglFkm+r-vMYF>wpfjHzYX~&dNGsqZLiks+95<lU!KVM8=aUpHO41G^=`rxL=4V zVlt#w(u^vQc|wwq3V9=vU2xk4SGdiE$HPKP5u1|KRD_y?ExE~pZ4a9>2b(-!adQ<{ zply@tZl+*m3TD1+_m2%EHwO~y{c6jqG)$qHq43PGSTk$#8a)8b6$ZKdAd??dTOPUL zR@z2o#Ke~DzB=Qpv%WgVmj_${X_#@|uv-A2?LKDM>!eQxoYw260jJO7@_C0CN6-Dy zdd=A16CQaFp!u*u&#Of&WbFM8(@z0tfmJU7G#&o2@rH$SzXQ-74L}DKPSb!6^mFch z!DCSPVVUdm*!#Q=xsYZHX}*}2E4j!>IohroR9<Zs)RCeq84QosB4drz^eB^0(a%;N zed3#Lm1qdLy`+v-*;<CFrh)RTRx30j;Jph!RGoMNsv=KfRW3ra!czxO5rqf?8I3-7 zGy&-C!%Z?h0^!E~&e-Y#nKvCJQzx4z&mWRK`~1aA4M4wq@x^B^K7ac9cW*WO^7ZTA zy@6ja^ptgvSjdLxVG^+eFGEDWg+mO8ImoB}3O`>BZ$|u~Mmf~11R5pvJ%IL+tzMj6 z0_gb(rjpJqPG%Oyxsi<2N{S5{{v_O`Bmi`9qz9m5L8J^IF9;IoGu<tQP7s_xl2Uz+ zK_4c-u<lm(F$aAHfTnM;b`V+=w4pNqe?;0xkq3arRgheGOzz#Li?zb@_yYiqO$X3$ zg~W8i&jDyhR3)RFr&Myuc7rV3D8p*A6J+B{a}!JRy37_`Bi!3?(-1-e`2y9VJENP1 z_ch!Epb8B|7%0WSB_6<wJ_nl~9v-$NRBJLgw!blcuoajc_0Nu}^W(N`)Sio}^-`c# z@HdKlIm4CGmjJq)mWwG@I^fGk#9WBa1i7@zXQFI6&LpE&)n^F^*PZ6;4wICO*;K_A zkj=6{_OZ<b08Q1L#-J|&bbs$d9Y7lg?b_6t*<%}c2cU;M)}IE@&c6oG=3#AtiQPC% zRjSP}XeS%KVb%aQU82u8qyy+17Q;IL?dh|b{&Ap>EZDFqWlpZJT+!yq47-v>U(xBw zn#e8zbkU{(=)6&C4oJ;@U)drQO=RBefKVJ(+Jk)YMsUoUUN?x18)CiRoia*QyT9i2 z*SwyLg)h4JlA9}eslsK8E^ooj6y2V@E6@~F>XOwYPtN1Xdwn&Q$vC`elQ$?0F|Hxj zHO#sU+61FTNCt$IY7)J!u;L2)4UCgdXnffk5G*ohQFsIEFtAQ<M7GF08TCsLst5qu zDtNS4*6HxE&?=$|+UT-5WZo{ZHmaSSmSLN5&@wzo{RRy{U;lV`Fw&~UMjC-y(G>HW zV*y7t=Ey{xxtKu}vkOzXrJ3mBRCaYPw=v&1TyvG8u5!G*x0K&oDjuvvrdyM@kEidP z#h2$xtBZ-5vH0|;EfaASlXM2%7Z^nsj{I1%L9d9BO}$vEp3u*xzJ)f9?L~^99cs=| z954X|a*Z7wK!5+|KYsheH$D6QcYpkr?D=<JN0+9__)>QBq}#c9e0uBr^k(<`&do~z z-DA*@Q@|PrDsJe}LU{nLEA$oxQ+Iy`4#Vsg{9$!JXpAV}HHp539wi2`l>wlOhbzkB zsDEiZ(^-#fO$(DXak|miUQNx93+;-pUDbrMsrMNbgS8w0v?U^QnW$M6EPmz&l@#mn zN4;pj9~%b^jKeN^HH{jZ!NS=rg3}_p+!AM`Oy#jtvpVQBi*f&u$1>!#8aXOumU6eh z*y$5%eHwtCyadq6m4U>{fUi!O{NwO+UwHbuT>m(==<We%OJdnu*mH;G9HII50GcUV zH2^&&1*hcTlwTQReIsmSM)fsWUz7U~K+8V@(C+sDS}3Oe>j3)UIa%&}H*vT$@%S{k zKSLH;YSgypqjSyt>a>5X5}s@^g`@_cr`!5+6Da+|kr_2ReMq?xij$P_u+|TL(DWgO zmk@Qr@9F=2{QcKY{^g&@jy``r{qSaTbDk`*J}uVs>4k~v`a*kqb^c(xyfjl-m@F<% zAr=s29w^g+HB-i;x6sGH*a_KBmuP_61N{sD8qw#WRHKbcw-<gMK;z_eLb`K0god4T z25@I+6C>U(b(G;(Ld^$tT<9w>Q|PnPokQ1H!|pv_UCPqBd?!4E=;Y89Sz1~`yg>x# zq@U3^jcy(ijg-hVcBKzd{Aq{IKtIMxVH)^RYNH0gBmriC(U(Fy4FF9Q2)x*~ceW9b z5T3%ChGQ=>Aza95qx;b$I7Y`X!UurXH|VC(pMua6Q0l~hAIleLhkk~J7!?uRnejIP z90Q|M8qxzIUK7<(2!@V~L_72|dc_zXV<aTnRRB%@4rMcdKghOh^|tNpZLF=<buAJ7 ziS8WvnQp$dw%A*0y-g>fGaMcs(rwV=!-ZV?-)|p{ebP;>&MZB>H~Zvn;$%~pYd!qe zKkWSO#m-ls)$X51x965#+|ArtsoY-9p0A}&H<#Z$f)x+fx4-&q`R$YRtzF-IyRtc# zSQsah%UNgG7bqo|Y*5Sv&5~PVTayhKn^I%#a%8&c&BjcUSLlYslZbMX;7`K7!!XnF zvo}@lKyxUL9OuPOn7&fF3FfAs>-w2vzyB;Q9mOsI^oS?7?TXHefl*gx*`L|)NaN1H zw1>>swifr4%#K>z4~^WB!prX3Nw|6%9(mxLed!y&n=N*OQx6KQJIT^*Px?Sg?Fo?; zSNkGVJ`LAS!{ZO7!ilxqQHqCh;XrDBVx@})k2AibD0|?i8}^?jd(O_1y(?&FuM-iE z!r*$+Nj%cc3rFEQfBH^?bT96aT|&AqpRauRa{lvYE85QE<=6E2TJ~UN_3dM_-LGHf zJ3Bw7fmc!BPt(A67t*itGZ(^D=#Ut-)VoXL_s=rxv&vj+`rg^yyLV4dPbqV1E8KS$ z{Uar@p35%J6jo+)3sW>G((vEjE<%0*-W?wwcY7ODH6Vbqv$F#g9c_Ka+LEV~j?azB z^}M%|s_m^)W~Lw0A@r>#N_%mbUYm}u&CEajWb^Hl+|ky5;c>1e+6U?O-vyw{r-x)x zN5jg2qm+7-Vov-$2@7o=LOD)yN2+|9<j=zTBt-Zm#~!QA`}V?toZa`O4}9Te$LL+D zbsmaucvAa({+LZ4`tsdCX3tmCW<-*?Bc=VRXW|)`@2c4&e|X7N?}l18eW68Xbk!SP z@<dmi!8uQ8mhq1{!;>C$+!L7-(pxS|!)<RdwsD3#RK;#Y?Iz`;nC~PSI8ABOIo+h% zo6eCsQI_uWBu+Wjbt;KxVfIk{{|P`}{zq>f?SAzc8U0N+|M*RGZ)xJeS!QFdm*vh! zFHYg%d;k7@DE?z2FugFDTbyF^>8k*m>O;yrXb}*$m#ReSUm=DeX6Bwfd-mYLgSYQC zh-~OpnO>V+{Q({I=+PtnsL$VRKUo1LPdEP-fJVRoRO0~9P*;b*6g4!|x=~|9%>k-k zYW_f`(2(g<k7z*AG@~KF;vsr1m5P`H27re1Z)>EbO_26tbfbHK8Bq9v(sgI&=CIak zyC=FqjR+OegM$Nlr9w)Hx$|zLW|2xRy`r0{18BHo!;=)D4lpN8$3iI!J!JY*sEU}F zn4o5Qx;MW|jSi%5@vi}eKzN$|K1}G+;n+uShaMb4*jQzS$V-^6#uPYoz|c8IvfyUu zDxiC`4@VHXb9yLfg$31Mz_0n%Y5KqA5}I#H94s5cf=ha2IJWEV(%2$@z3D45F~yGa zU<`uAYIJFLArYM&6<VdA1JEZMI)D~tngG!8qcyVp?y}qi(DtzGZxx1FI~7c&kz=z_ zHWQ&vzAqcL1to7PH0ZI3*{G0>m=%G{DltFh0sRk`=(+c*j{UlJ{&Df}Bi+*Lza>lk z$h2<{-dpwjqiCxTZswIzf;#6)TBVU`pqNndF(Dn+05s<w(iZIgHGp<$0NSRAd^+mO zC8CX@ub2!rN|vykn;B2h@NlYKTAmSF1z#&GR1<q|?j`r961x*)7yF~P_tfQ4b#1EN z-KrjL=sL@Klt0ja2+^RQjE*sOkc;3ygl;yXWFx0xj0y6KAK$un0lR(g;_UA2&c*ru zoiiOk@4R^QBLMxcKm7Z@f+bPsQ(v~O1879vhLZt;f>4H`42DH@fL3}iF?d#Lp8J(l za&C;Rr+p(S0O;WQ<U0V}DRguIJsWHnoBNyfo%P`Cgg9EG7B)UJ0s!sJzX#C2=>h0L zi^1Ts8(dbG!WbL|qr+ff9d?0XLXrlcMXx8Q=^)!xX~1quPK{72X%ES^kW3>-O%u72 z_LWoipfKb#$Z18crlfL`&4h-%HYTbt5yc$~xuWWzOOss=G(1u}z*cy!V&|${psfT) z6|M)JUCCi@))*Y&gDp;~d-#fjDO#C=MXWd!4M6v2Hi!HTQ)qUGuaFs(hE;CZl%}08 z8@-u+CO_!y0cih-L#XwRE!w!U%bTO$Xu=&vkHf%w2VB+xm#yDwwENheL-ZwpwsI~T z?;7aIk_@@b!)~*ka}Ikbi<-y`tos81eZy{|RJv|4^oWzmz&PCs=aSh$k44kec3bEq zR>n@>UNa6+Ztu5S*l3tfL_J}3fOii|oI&A-1h1G)`0^>SkP*mAIn5ijmh;yO{(8=n z2zrwtS2FYtK#yqvx|rz!=w@+urLd&|Xr`9&R?>iba5>c(0vw-R?>6W#0FR;_f#VK@ z&f&O&K`!)uuL5X20^#oA-umv=<mM`wGZA(sLb2)g{=GX7U%w!G@%ihQU%VuH)nm{a zhW=7h;h;MKkO6vz?lXM|p$R>{AKjZiq@^;bJK6%y0&HR~2M%FuF)^&Lp++U#tctaw zuThffMX6CVsJ`i2ovHJ~?AB6fVKO*B;mpMfYty-vspP^)cA=G-YXnAfY&FC7f|>am zd9ju?1m3#?!u=W4ly2B$GHC%1dmB;`iA;A3U<D$qX;Sw#z#LuBneG-6$8<RU1==u> zM3tpSKm}rkFD7=dub&MS2yF%`wJsM@hN>?BC7cad7zCeg2CkFz1DnnEcfPttpM{<| zqbiv-DECYv`v5@e40>W|9w`n9A$_6`4Jur{;5HB8Q9Kx`Ft|Jes8gndz6ny6l67!! z5aBXu8yFb)5r7^I%#YhL8i1y@L9G@2jS^qZ@TIgRD3Qsfj8sfpqOvt4T0(+55pXB` zuDIlk`J6G;9`RdL@jZYJDmGOE&?brh$Z8yNTB#8la%c(|T9`q%&E&D08Ha^)IwUU> z=Gll~=k0cSNd|><l#B`a*pOuLSfzYiE+nYkk_t&*HfHDDcEO{CTob%z#>qwlWERF@ z=A35MY4>@00NQZFJg70~9)P}X9O^R<emr!8jH=-4reV#DLjcfJVF@LdT=lX!r!#4C zC5>Xy>CKv`iez#|di7=v9?G$8gQmh!wlJ9?CNt<OoBboh%E*vZA7ZloftEeDJ*2d+ zYjFsB09vj&dY;r4PsXYN=(3kDd)b1=TX3;OGgCALS~38%JL_@x0JN{h0YH00(*GGi zCp7?V(^QK78bB+&kiP`bE=8a!m?~mTDckZ+Cflw_l+fclWWg?R8i00b0Gblh<Z%pG zjV8v`ZyHXvo9XcpTP&#brXrYh)E-wI$xv!;JTX6&TAEEP&16^Sv+Ilbt@*;nY;k)* z9jhv1)xdbI+1Z}Bbu@M7II=j^+*)-PQ?6n%Jl+6+hRZXcGv@BDN^qd}j1DyQ3lXFX zYz01s)Rt2LK|#gZ1QcLYe4x+Y{qX&FKm4BT+aLY_59lXfeGy%nAQMX2owL6J(6AnW zzJ=0@IUZnT^zzZOL5&H%j0zn>9H`Sj0MMvGFdo4C&{Y6Uw~Bg=%4U3fT3wz9u1*$D z_sZvo)!QB4%t&c@&OhDqR<qtpCNx%e=c1uz))D4CnV4M8aQT=yBs*fNDIg3`8u&$T zNM<5_r=Pb`O85m=Ky>;!B_DE$PPfm+g?$3`ud10)J<CU=UMUL&D;YT-<LGTv&TeY} zT5f0(9KLE_e7R4q4~UgMp>&NeejJ(60JK#5C_d+i&AZ}@?(n=bxoIyRcrzQm+8tAD z*(5fseAS+q@rP#E;Iuz99q^B{@+dF0IcbE8Ob58KferD!Su52QmWJHcaHAA%maVGj zjwnXfX=0snHqPZ!LRpLZVdmWaV$2hlyb0M~k2@6a;^Qva?Bh=1_Gac}WA52~vc%zP z;dDcuYm+TMyWe<tbL8=Dvi$jO=5#sTnIoHev=?4(=9b6Oi*0419-E(_3KJ+(pAbg1 z4(P1c?DQel*dpl7*w`5LCNYKtgQk9@9>W*^@1Os#fBVD#`U}~&|NAdTpFf*^bc-y$ zJ{_KDuAO)HFKz)q&+czc?5t1hY#@9kL@luX6l+dt90e#02Yd`TQ5LWofXWEwOY|lU zo)`2prd7;r%&RLC!L_Nz=`K57>3I>BgR7LyCitm3);%pOEMP4&8Z!u9)3vBPLVW@& z4-g0lbJ|$zTCG+mCnq5vL5VgzJd9#O`})w4ZXT{5bO{7qp@A7)5xO6^77YUF6@t|C zN~gsH4=6mPISrEOD0+7ISka|13`YMz2hbQQqb8vyZ@sszuCBuCnJ$5a+iNS@>RK!` z2L6WPq~-w~Pt<xY$=JZ(aS04TF_On}T}+rm8k<s*Qi*Pf5&={igC9Cv)6b1WF!rE3 zhk_xUknV>rO>gM|x3;$Em68sg3;2Jb?4bkbM~@!ex^?UL`1sRLKYjA#$<+`^0ML{N z=nN1WrL)1EAAd1`_4f8QJu+RZ)9E11k!e5w{Bue)I#8IXEI+;9dUU(}_?9@=I{D+5 z(=Q*8)gIgoERU^y{&3;-oz1s*#-HvNFZLUcZjz0@xTP$&cYgPB;^o7M7k7R0?O-wC zjR!Poyntv^STUh6N%{W>pfy*`lZem_$tQ94FyQV=!g-iI2>81x&B?SA<~u>T8y9Yd z++81YtcYhJu_wWy0qC|jzw3(5`_yrFX_r?f+=(S$c-kA7aus*|`JGU1H(c(j<xaTL z4QIE+(lImjOqlshoO>k|I)S;zmD*jVaVu8n2|%|$i8OA;tLM??ouDR<&<&)w*wlu% z&~c7Ec5{cS)YUw-rA|cWdj5l?(n<PHQ}4K5jPA{KE-R-o_o2M|_3K1uJ$1Z6w)M@k z?jPP{&bHdm?zEoYt=vD&UmT>)x3<1{vHaQnM0bO1_SOB|!FqhO0!MPqi+r}Gd674Z zniu(KmCIB0824s+UgYJT7x`F?5?sHKewClO5U#TO)vMUyN_1~2y1TgW?9Td&yWtJZ zE%Em4+t8-;O*g9hYq{kark;<^jfSU3yxF*p|3K)z_~HvNJH%_%Kco$k>$Q3<Ge6}i zr`cMrw7D>HxGqiBsF={V=jZ2CMNowh+M1nzdT09HS!8!<^4Xp2{wh7re<OhYn+Uas zxj(qj&tHWM^AK`J6WkDv!-2Cj*A2P4KFY(CS1B`xPI5wT)<gr)$2q<es^7E4H<|bb z6I!&7J@A!JLiO`V`%WUg?`qzR)NV!^cNlF(q!XNaSZv)%HXb^gk6g)JA++RdoJJcL zVwp~I90|@lN{3=@TTZR}QtP(Ns-jMKLX+OeoRHmiS(+XIXy(Z8>qbMJjC2&CGNqhp z>j?tgbl@Z{bV77L%#kK0L&eH<s%2E~k^d*N+|^w76It%7SMT%o*H63Oz1Fha(>twa zSF+sK&zE2HvfN88%aLt=@uHXImKL8~tUsqLH<RyfQZ-9if@&wK<tY21EufxHWO{_j zCO!br@b<0uBww*OiSiPb1cCh_ATVk|{d2qmB~u=T3e()XZL+uh<Wc|088|Rvs)T`k z;n)Qs2sCh1|LZYn(YPZHAq1M}Kzc@9)&q?xVnu+RL6-vnn$CtbG?32%fYy2oBW<iw z()-U4c83SF#(dY-z?$Lsyu7ryySt0&Nq9h0iwUnTJr<Kr)2Ok7k2U}_-3g@_{bh8w z2;)qtN{ux{FyP>cu*sNkrHdl=1LUyjJZK{6RFMCs4H_B{Ou(zIr$G-3r4ghIB?a9T zCboh8;qnYZO*cb-BG5T?vk_=f^AeC`UH6X;M<-tw@xYoYEJ~vv)BV#EA*Ld25ay!C zq1Kaj=qb=~f|xIyXTe!!-)(#~%T=>dt3(~J5Bgx#0VAV!mYb}TQO}<pE$4TaVcbNO zUe(npITajc9Yc)Wz}kmdn-G(SX`gcr^}LVWGG`J!{SK4e&x>(Ih$;O}vrS@YF!(MA zp$4EG!CyMVzjQ}`$s~Wt7k(*}ekE3arH=i&dj3)2@VA;BXqH<4N6psWTVa17zjvc{ zYp8lYKvugsNc$uA2BWQlznts==!im{`J@^sB*bh)NQdnL_1Kd%ICY04m+W==JdU2a zu8<7cIVZ;TQa&M<QjUZwRkD_lRG6Jq$7;cehCEu0&W`v-vRpZ~_^2~=e?N1wlIko* zx98h8yC7B{=qv+3)1QTI742YN1le8((9mqbi~{91Naf%wT`(Hj>y%-7==uEO{vER0 z_b*OAx!t+Axq5oUm9y#f`A@!lMfS~Ke)#S$|NO(h|K(5r@n^C>|Hls)(1FH)-k<|U zmq0HXT~Gw0#t!N(AT4kk-G^H9W|(byYgzwvlOHKKa?zbvpN@ZWJbLFSez2O}-w3bH z$g@pps$Sol6RXiOjlNf><%vdWaWXQ~beFZ^w%9DX^D$#cGP>+WkHgHmj4qo7pxqjP zzTq%_Jb2B<+3mc;p^8?S=}93oR>fxv`1<Xps{mTdZ|?xKJtzP`OR1j(&_P!;FyyiX z8eR=RkNCMN-?P64&?x|DAvofddjOg(TE(hMs5sQ|;nc=JW@9kWF!}06t~|_F3}VgX zA2$j$izhqaZ#vbMGt{=Tr6EQGDV7faw6A6`I4qivqjBJxaqzc8HwG-jza8u&)9A3n zauq-iyDSdD&4d-3$O!3(n2tC^CPGbKT#GJ9uY5%2Lz0*dF;Tx<%E*PZOX0<AjE2vA zD(H|HJMXq}E|2Onb1rXK@dP#BK3^g_$a@9_uPYp|_*jd?^#F9T2cWY;F)NgEu5`?i z3fq%GM=BI<*VK9`*epA;QFXLNCBmCcOx-z|xY?Dan`FMpdi`j9w6h76M}q~bZLowI zB!K{PL5#j~9m)t0ANDCz!J7)?gz`UzGm!a3Mnw+XJKEnq*d*IK+SxsXY4rIjfR4?K z{tSSI67;JtUeg`wI@Bl*@X^Lw%&*WZa0;q=G;MlNA8<~+4FW44lG&>OT56PqT7F33 zhy6nRaHF=r&bQ0;{q@?;s;^$iuTJNdCzZ)kYObD~t;VLx@#$7{vKbn0v85zah!6QZ z@DT(rg<~%0^Wfm1CZObYWBw8Vn!bhqxGu_!bi+Op6Tp@}2V$ke>9kjaE@IG%5i72% zmv>zTT8|V(8y!wJgAd{AMC}yt6g(O+yMT~Ll$h79UBl%tmGyUQIYVh7)CxZdpslKA zHp=>8r6;DWn*s+<%pPFM0z*oAPCW)9`UHRubfc6JaaA40QBvyq8<(0JW^;dkKOFV( zp(PQ_ugxJ;pVR;VfB;EEK~xtu7U<98+ZBGS8W^dlqg4QCYh1O)0&+Ds=<^PU-o!{f z(W;7tq$Mg@LV_pxA%La_>2urq+*T<SlM+#*Bp7_0L1aI+8b7ia2DP~(myy-9FN}=q zx@pM7Xbf6g2jQ^}x-A2?;Q_mW2?=aSu+s?EFWLjX8#beqi^=)8Js>$$nXDJV%uMy^ zj{&rW(*U$xbh`tL*=sR-%x+b1sXk}GXJuUjra>}?%-KX102&NhX&9A;K`6VJypzls zAC`LI2gQ<ID%<#inJ=1{yh&~ii)E`&wy>EYGG9dl&}2fT-<`f5X}gMhhWy@eaBPq( zm|clsSJEJAp44Vf*23m2-kg={M^DZn)g5w8kZVr4?qjm<V9OtD1(Z6^6kOgS<46o@ zz&)Q}Qem4+!+3GXV{<B;)6bcG9x}U3eGVg;HzIS{D4&aw*<^-H%tVD!N-U*qA!*QK zBcncnE8=&C6cg*YVKq1vP1!>S(3&8L*Qu#vn++cg-uP&+Z@^;sXn0`2Zr0uo^igTI z(Lb9AI?@p)9bvOEM>3e2?E&b;nZ(jeW_3QdzL?)!&;az-JOH%62cRc!b#wsT*j&{B z^hA@-C+x`(P!ZIxpqvZM8MMLF*M#3Cbq=uL4)huLhN@9&yrD&-t8Rg1V<L-o-T~<E z0ieO4pM3R&#-Nucgfakh_w@Gp>8&o=S<m<R?9Tc5#Z5iTH_#+zmav9`DsBWArEgIY zpwhuFQFQ`9BVr5=M|YXNLbo0@J_MTp%cypf=j+O1Gq5}s-C7LHj;r$%RHbH?riFS@ z1JKoMXsjL{t+{hyv*NXdIkA*-XTsKq;z~v?0dxQWT5&48^(uhQ0YEzepv6?^Zvp6X z#~2zn1)9TZF9=~~eMqU_@HdBq(lvGb<H+=NzW5QB|7~o}8J~9trmU%Lb83~3uky)t zp?qdZE!+HUhkwMCoLALJNgfyc<BV^_9i8@zEnaMKQp@YfTD6G7oI@+Z4ztbA+x-F? zQHHfZqaH_qb*d~Ilq~{lWVN*pLmsP=2@W$>18Xz$wqdVz;qe(+WN$9Izo^mY=l4e* z-${2?R-Sb8+p}aFub)=$o@UQ>$)daSvrliu_vgv7ooTL}%`Q)<leO65L~MQnBMr<V zpyk7?9%^>Xj=~on14wxOLJ}IIO6oz<KT99tRC-(fKmVWqP4?&i`+t7_zy9*gfBfa} z?NhSw@`MhcZ$G?y=g~dQ9^SqE@DsT3z~7d#H?_xDKa0SC7;#|=1X>&@5fBc(8vn3; z>u}@A#pd(76Bpg7`)7B4|F(3rR_ShReerbp)&1p{ckg`nIoZPV+dIE|PA8-h6g>;P zgP|ot8$GEeA>CU_OdEZUH8+r7r%O|-K@Ur1&|ol7D?{f&P;WSVL0OOTKjfrooQBYj zNHjVF25gk==@SH0#2RG8ucr-=oqo2ov_x0Gef##@+#Ee7oWAJ?R{^x%ETRWM`w;Wd z6f=5b#a>!nN@FA99}NJo@(WZQV^?~>L_ATi)pP)jIV6l;;6Xq?qm$61A>0jQF6g@S zOTcj~;Kia#+NWcwm;*gyjsapC^f>f6rI_ZF-FtjQd4jLpRRE3Kqf<S5_Uz%qhmRgT zdez(DWkwr~tLcO^JO+TKaehyWrG@mN1knLBT-&y{w>zB<Wg9vQ9h%p#UsKKj4aWoi zw*zQCC3(V}lnS^4l4eoKDtl>Y?T!W9QN<*A*&~1OI1@R}g^siQkt!ZX)Uz~u6yUod z<vhV01-zYrcoYeqWw?&Ybo}CJSU3s+K-)%{!oEAU`2TYD-d}QCN8b1TzOOBjlRM`C zpb@(popVl;hm&*Q#GXvfaE6%_Nl_vdEU#_Z^090=?0Wav=P!H<{UxChMQgneP8}RH zx)J+^s?V)kC8(3G%%Ut$c!HDO{JK)!3aj%>YE3R2Fv)c(xgjQQ@<SJ))-APp&o%ha zJ@GtHXv-51QrWgdGJKI5yG&<y#nMr@c`uM_%b6WMwaL|w)aLC#^+2d!+JwDm;4mT{ zCYW8tf1m_TBg{@Hu%n9YxY7a8(m}$1s(9Lh|45dOV!~eR;UB-={PIQp-YH4+=FGzL z%k1r?>e*uMbR~7XzWC`wlG5Jl%`aapzIsBExxK~D4p-M_5_4l>C8v3jmlM8RD3I?! z{CX}j(S&Faf4CBvY<Y7U#MdvRU*#t*gsVLK_BZRVKU)3dQR#G-O4sG(<@xzJ6)L@i zpm<j{7Bh=esksSXJ!guDz<)aOqXqB|6pxA`rWYVjCKX+6*k<|%0GbLR6=3>yXJ==! z6GGv=0Q!H+)2|}b_k#O>MD5?X&`)25<SpJ!3wseN55c3fup4`ecU88njia!8Vehfb zAF05*tqWUv%@<$sjNA*<j-r+0X#FJCIuAEa)xtJkJYWaUlB1WILR*=Ao+{sFC!VoG z_g%>irg<74x+hi+qUHTaX)jdX6B7%*_?$Ps;L5Cs*<~p>?nx}V5=-9PrrX*Afc9%C z5D!%0FxDxkLH0E4@60EV4^x4*8azmg`-!*1Ia)#G+tK$Hxpzw4J4Nonx4+r^;yH?( zR_dPpuxx+wfJ7^DUp!y@^f8JY$-QrWx%!fd++J{gWbAAYvx^X2_w4LUFMhPZNH#^@ zsE9yFy5}ik5Yry&BObh69zTBk=+PtEKs=3yorO-0#*>;dYUL0RgNpb1`a0sk=;M)7 zQ&aRUHJG#$UuhW;|A__=gN1NXMw!PpTqw|`B7@Mv!UFvOohim{=_8Wa(l1FNq?TOA z$CwiXXGx^7eG?(-Er6!Sp&sxZ0Ig4uf*UV-bE>dw9negbZhL!MTW@YHE-uq!BCh~u z)zI_m5w|h;`eOhMc1+u-^>i}`&`f<jorGR2-4YZeM7zTDCb|TY1cJNKZ|IlHorUg) zZWSFRpdtO;$o&gl0<I^zB8~Zxbd&TOx-OoSHlU2rHo{Ef*`dJKmS!poQ}KyGd9Xr~ z*<47i&n7lzi#tonwdv&QH0{ynR6+ko=rH7pg!8o?>x{|?xF=o+v@dkHS}@FPj3l#g zqr5tsUYMw@&X59jRR^1WdVAxur%SIMlW^0mqkns~{@F(hAKyRx>f@QmXPP{{xcvId z^8QL}u&7kiN+l(i6G}cJ<kWCICzsP6nRQD{bf_egxtCG7sKCZGSjNO;I)sY|;Zav) z+!vYfWaowKf)Jbbr5A#Uc`nd0=N9Gk0+(I44?nP1wxrAon_gnd>wIL=rcPSLTDMs5 zmKr_EV4pnLAD!-rO`DYwgVgK|j~UeobM>S*Ig<AzM0ZS(8yQ!K<<cR0SmX*xHXkRg zK3K`PBZ^Cv$;|ArnKXA=neB61dn|o?I^v87d@e4Q(#~{53(y~tqQeb&xGs&>xn?HN zO2;NEY&kY}zddoeojF|S0O;wV)3zR@Rd>0Az76<-IRpUEp|=a12Cf2VeFO_m&<K@- zB=htG#L2yVd7=a8^LyvFF3wLbZqK&2*h)6DHh1@{*CfCC<JZ5{9G}1W=DXjL{QkSI zbpVaV3ZZPNAb~a0g-{E00FB0hHgtfc2TZ`8=v33+$cLv!)#)*3E<S(vEO&G>v^=RS zO@x*vs{8AW{q@@JiZoesr6pe}R9%}buS~^fhQzUwx0>;kQ{qrfXjV*N(dcz`*-YJb z^EK1J&w8%gIIoFu13=puheKieJ@#Ig<wHX^B2n06;ktQ1$i?_<l#FFpRIy8pUGi&T z)8avEFkn>z1Da_Tv<CyWAZHf6Jr096B3Pw>RpMOHV3*Y>H{5d5%~UwH>QaUkWk}+i z0j|NiQs(e5A07&*Lq2c82*+n%!AxtvHr?DR4fW=34oD3nSLx%*{anQ$G%SIdSsr-< zpoNB0Zo0xFuF#OzlQYOokJ#{N6gzJVwE{wiK5GElpaJNg_jg&mb_egXupW=9cq591 zarq(&S<1esWaqsO*5y+rUqrU?Zvgaw+a?zh7MU|ktXX0VK8HwEFB>)me9o}w2#Nh} zyEh~nS&xD7^m!fKHlvwwnlu3AA{*Qt5)3YzPYw04p8kMufcLYh2$zmYg_JqOyHgQQ zI_k+Loav}59doAN0O-hYE!Zf<##-t~!&6Fm%W0D;Z9Tbr^U=k~@lI@chHVv@M!v8- zjW7oAT?6#ci;$k>PoG>4_g;+TA(kV|NsQcp^MYe)(VzEjZtZP$WQ$~DcN+nqN0#PD zoC!62V~}L~{++uopOJj@>cz8HFJE>N559Q){Q2vTNM5}D2&t{$`3eVNox>trFh~fj zTHG7%2X_MJU&L7kAcm)QAE$-xNskU@$A|cOsRN)3I)JVMKyT>)dP2TY7RQUJ>3VEZ z1JJP>t;pD52S6wK1#iFLLDLQTj0G;+eSLjKqY>sUUMy|EIz}uC9Y7;c2Kq<3Lo_?| z2VvkA0QzcFXg%n*{&f0$>#G2ou86=Dw9vOWEvDGg4FFFAL({3Qws=%3;5-L!&VNA! zlTQ2&CxW)%3DMk;-h)}R7?CDDfLbV0faoIz;W5)67@mGlO4af4F(PRoj0OU00MFx9 z>hY>+C!&Dk2egeFpf^i9=_9@0fq{WQIm=gbLM;z(XsKCNwCt-nE}sn6i`IC^8V`!q zyim<*0D1@jIu*z#oXM~w5we5@Q!ro(az>dmNUSw1c6n^q-8OGD<cS20;(GzK%iwhy zeh8p@-B$o~=z9Qd>j3C(yYVW3c7{X%XtUpG6InCoCF!;px-15>&q*z54~fI1c|e=` z909iupe=qU05pj;;I}Xyl5S(aP#qBK{m!IC%NAJidNU@W;t)!205pl%?B^T(zP!<2 zFf&E7JK5t-bt^+gzGmR-18i}?oxbi#U#E66yV<Xd^!joZN4(Dw>!<VZ6?>rU5-V=D z<X}rqU%|<i%v{CBRT-|vIuh1UOHmqJKubs%5bCls(d`I$ozxR}9i2o0mR`HLSDV@7 zFteIi0}hkdV)9uXyjMf{UZ;t5_PZ@_0CX|MbpW(2EOr2NL<7*OWb$hfNa%$dy|!Mb zsn2Qrpug+qeb)_cn>Hlib6z+0T{rf20Ce9Q0NvLWs_Ot+jg2=F6NCBLF>g8Lt7epm zrZPDkoEepG3<~3QQ5&PHHTKq8`x~{bWnpSioF1wiu7{^b)S0o|+@!mh@)T34nbE@h zIGqGl7l|~lhQgt0gIo=y=Yd!O^I?t~^h@f(;hL)FNYyikV%+anzyHlIzxjd$F`$3d ziNbN~(~n4^b7NdNv(VmZpB^0EIwm=|eROcz)&TUm2B4vKqmt7_aUpm*>t2w$2Q&aQ zXf^VT=_BoMub`6vUL*bnhVC&n26u}|G{Uq7pk)m}&t3)4fku&O7Q<r=u37X|v*xg% zwn~vk-VzS5g@iRCxswrRG}Oy@JYku7L=)%h^Ej@X`$>V|5+P4aF$LUa-qUOA<Kh9n zln^Q@HWx9n4lW%g&6O>t*;3lfc`N~MdEXoyHS?Vi9O>18Fe#n&Zn@R33=WW1Dv)AY z>)|WcQ*++*g1@+956`%x^WNBkKQiwv9hsAhw)m8vuUir`UU`(2M!47{uTCmli&e%I zd5q(ScwfmQ6_Ro>MM`QQt$G#C7YuMIl~m_gD-$2gvLU~a4$1k1Qb@)}Dne4>b5XUC zk2DK%DZ$3XozGs7Og*}tJKL_@IV4H%ugA7#<{lrA#O5pWk506_QpcOqPi~JsJdAG7 zS1#Hlsr^N9cCfLz3;<2V@}1<az|HvIVRY$3#K;tcEF#o0lO2K_J5&x~C;~uZ4$6-K z^jClRcK6e#0MI*kZtdMUJ9}_>=fU0cj@-U~2X6In#(|>~yuHY-yPDAmJ{oY0f?^F1 zXgwcGaeuvhcr&@Z6j`4dy4Z_vPN)kFb*Z)Y`NQnt?Ci7Kv(L{+677Z5$xV79vZJ6G z!<5CmQF;ml0|5kwT@8boiaK%((lcUi5q(832e(1L#Qh^q6rGt)NZlE1W;p61>M>oH zUMxKwZBVZVyAH!kh(1A89?r}3U);HKhm3Z3xWIP|wGt!baN~te1N8;f3XB-xIPpI9 zXqeS%rBEzXsuh4{JSI3k=1tR6(0%}JWU$eu)4JXC6~>t{R~OlA=t1D%j7OtwItp&u zv;lv17|(QdcyQA~Z;#GQ?}ScBoigo5yaLh(bN~(aX8`C|uU@s=?X$D9*RNkA^z+M? zFJHWP@$ttW>j0V#Y}B=|9+;vfijoeX>9m`hn{#t>x(D>w*w|G7O|1~UbL6n9-#=z= zG?rgICW-AV-u&Wuc4v9{le@JCTZ^BZ%)LBXdi{`O;q^z=%bmcD%K0~6jeY!J@X0wh z*$k7()W|EPR42P&D%?mX$4aHehFVoiE8`@^m8s-#iH!)wrSa_SSZcDx#w4a4WDmmL zJxM%_x_5bRTjr0Wfju?Qj&R3OZZFL2g=nYdAHA<wkD0(h*u5v%M!ohipKZif+H)kA z0^u9J>P95D8jLOQ!AVbUO^z%v`CVshg^jNUD*MsqZMnG14V|Z_U;3v%^^d)9rFZ>{ zPwQj%a^;g~dMhw~H<R5H2k!-nM{2&UWOs$sR$%y2YTi~VZDr`O#lNS753-^CbYM>l ztt%fV{d+;K9oDkaoy6F-7TiENPO*C-|A8VM$N9a;(QiMW{P;de{r)XwadhSNgSk)6 z*I%8FJ>4nY*=at!HS+wnv^c!^#mD0xKhWg)B|keHDkc865FZ!1dX=BLQ0FQD(96rq z4<0-KfCd5F-`}SaLgflPWp8hfil`2tF<ABR?egTwlc!Ig(#GN8;nC62qs{`}M?2w9 zI<&fwpP!`CMVbTL@VB<MNWb0P-F*X~JK<axKDs;o^fGn49+(;Wf8gm?5$Znz_wS|l z?_B7ouR?!up#44G_3TTUxBhNWXvdWf-c=4#+^Onr^W0&GKaNlt;M>u$$KKjec=$Y& z-lSGqDISLN`%11YW%k60r*i9dJlmF<cM`SR+{D97;Yb*K<e7XC7`sU4_qpOhINuIu zwxr|+A75q5yW#o?n_H7YGv4G9ADg$w=Y8=7Hoxt*4tni_e%q+uw<oCw+3-Pzielg( zA{{3>!#N?jGn}I(_H0Kx!#N?}zAPNY=(gWm<bF`<eq7|f{%rEaz4|?^$Z4hS)&04b z=j)%Ik3H!Wxd*pKo^^`c=P$-z+#i3Y6*)TO;NLzSdwgEHwFe(SDsR*--Me@1?%liR z=jW@dt5n{`It%P5YOi*7cF0<RCI-(_DuKuu3jlrZ?Lq~Q3gqL*kEt}?x^;_6Ann0S z5&CxXi|2F*05qKk7o`P9ot&JIg>`y*3TA!TS!m<E4Io-Sy#dsx=;>3GFn&yHx*~Wt zZBw&P9S0`hgO*ZXLoGJ-2yoz~HlH3D8P(`p`ic&u{nSvC`G({u7;8j!0qXbBxj<>5 zSA+>Y0MPV%go&e%GgDJ*9lnfVOR9QQ&9zWDo15#MkkD{~rf*?I!n&sO0~Ww<O9#+M z(2bzXbW7;_s0*XU1hKs6CDS%lZCcYdx>_hp^xzl+roVvhgt{ksQjAZ-bp!egB41H| z3hfA5H|@vZG#yKa&>p-ZddbKqOizlSUg)@UbK~{Jnfl^%ZE0qFYqhvICAP|9vy|JM zOKr?dJ-)sB>gndEPd@tg*H8cOD*$LXuF~Ov&agy=I|~XAHE47p*a&pP@BqV_miUc9 zrkts-%>zIuN$Z=aLjluuu(+mxZOlHqAmJvOw}16{>%r;pquYhsJIVbel8MJBsl91+ zv6&hzcvDhvxELHNcp|)5h`JI%xnAh^+7n~7#Aubt##t?=i<3<T*=&T#sus~_@>`>0 z9&y+opO)h@N_<8ZMtss36Q7Zoimk91iA*zzCF|gQTYS+MnRh0aeBo(paNMAb4#-2- z#YT^&?KgU2bA7>)?#P5WIAWlW;ZZ|)Y@l-7trXQ@Bkj+Ged(aV?~IMqY(d_wiUS_| zfZOJe23;K?E7Gm7PRVcZ+3k|2$J(z2+)IU=3B{QVIa8`P6R}67`1p`GSYsQ-=tPrk zWcb09GZUP?f2gkCAQ`<l89qBK9&I7J8o&yb4TQXd_aD7{B-+6r2L}bD@Bvl^jD{l- z$S+C}3_2KS$kj>P=lAZM-#x!|adP|emJXoj+PnU8CboFv?k`?_{oOZTYv}pg4tmz) z4}bX<bIp-Y421#PNUs713%Vlw=utNjdQN{FuqQZFMJHS0SlQpmtJ7nV*|F$Ied6*c zvN9drm{r%ND+e2i&3Scg%29~h^RfEYLi6T~s~C0WBi?#S7}Wr@Jksa@=&~s!_E?NP zPV05Eq03?<GvC~aMA2n4T{Cn$SXZCh*5fqyx-9gu6N$p!V>1~TZy=_S(En@XT%G8M zR)^+pZ|?Wltpa1={iL~>1MWVTxzA~~@@}ufTF8*(-2E<_nP)<SOmZ?E9#!21kH75q z7Cruw&5<;Rhb5`SORa!1=noI`u8fhX^on)2P<1gmlT>r7<HpR!fYP!^4U^O``%AsS zv0iz!$CJ@SZaRgAQyH=chrFR7pVV**b%Q@|l^cGk!GxL|Uo$wRfKv`=lkB|?i`V`R zfbO;$9Rh=p(0v{|eYCJH3+wK4+wBV9@3v_GI{y|xiyZ)+i|_!@AuSZi6#(t-^V&54 z?biTwx7}=Fy**ZAx5c0XXal{dbVSN0nS^QybB+k-j0J2_(Grubv7l5fP<2+CC2t}e z9cjeJTIy(11JISUDJpF}xi@;UH*%x_Xr@_Yni_z%bQYu^1PR1=A>z^?51h_M0a)~e z0Z5>QsRQtt(|xD5_BP%H(0dwyo?TzfPmVa^VG?<)F>|^<bJ9M0`taiUQ<5jIUOapK z$+J#2!jC(GpwHl(aI*vJ08XV1XqEI8nsnW<557dWG58Uq1ER-)h0-r*PSEMmR(5>I zS4w+JX<sQbAae$Vt86TkHWv#U^YNt{{%Y1&$z&I9_y=>oX2xGlC?iFAI4=&S#lf=B zDsuH49W@}aa0=AiaNjPtN$P5KpIsnUx=-AX4xj;Z;KHnjW2ScI!_MM(yXb>b@VP`V zD?Mg3{sMG%Sa3@K(D+t=Ep!q<aL@^T0yn@tHC)K4hUnGEruZ-PJB+Q-|4e)7r1XW> zbaDae&jFwjc#Afu{|102TanhtbcAO^6cy6%Nj=hY48r{$h?%xgDD~0_gb&JWc)QSc ze}6yym^ONQdub0}c?Uq3<hKBt%_ZnB@8f-ag0JHN?KUZ#QD%ENPcQ54<-EPDr`zZH z9ze^SH7r>}f)1dyIS7oWmvQ%domzl)yQ$A^zGfcKqB*mkpZ9l>xPt+Uz*t2spgZln zZtAxSJ_i*wzl(NSC9cbA?6Mg>5y=?vnF4+j&zJ?qCU^m$yB+3kyM-FW4+pwQXpat{ zH3r=Q&|3Uxze|e&<aK<|*R26)f$4MFs1@#YSbx@Yov-wN51^}VPs%KmoV*5$&3xG= zHw{v2fHp`1WxKyX?VZ7u><SN?!y{(CZeUA>?*a79w*WfU=ZtFrTBtaA4M3B4xRR4C zn|uWqTk>&LKUZTM39HgzegL53-I{a&G_`#l0B!mQ0NV2gKyxInevic?`8|@>H(02_ zr9aMNvvsD2^tr6vTHujBEljpu3zOYz8|X6ib{Tu#0%#Y#94#V}lX@EahsM4S41NE4 z{e%42pxUZN2Ww0zYl~|nIx<}MRujH@f^R0-R+bygGlQl4%1mKxu6T1HG*S<Z)`t$a z>jyU*hufj$2~RWcZ52i~mUDAAgu$vaqXIzddMzp>M!K*Q8Y<?yA#fh%?8D8F*5ESm zRzUUE2LloR=$F6y;#c4N8|2@<`3=cuzxnFoi%&@8sUfmar*5upb)s-w0noQj&QDJ? z41J0yb<o{0s{%gGP*%XR;2o(uK4SyAGMalmMIoR$PKb8rYF1MK==%P0^Ki9txE7lk zAuD?3!FhUZvAVvLni+TG<DPQLnTr~fKy<jSwo1{a2B57`!K?<XDw%?;QxT{-SQxiO z<OY1MewUT{QD0cJh<*d>F>>BMr-`geo5I?)n9=@Tmx)b<xOB)J4Y9>ESIYML9fj@w z;HX7x^k!C#!4VT}1j^TxR-f4FqYbe}T4@ho>B_CR^K0J3yf-`x0PO>SZr*mpr~LA; zu>+tP4M0x?)k!7LVmk~v$Pe<qG5~b)e*n-00O&FRw2+Hl1<<>nznFS__EP}*c=IZN z27`VJpjYzCGr~ku9&KQ>Lmw;FV`%7b6Ws>=gYXYUqNGY^fzK~(&>G<m(UAZ^|M~CV zk^J%RfBEKb-~IZp-;zB0{l7()r}8u7w=|dMi_1rsmya$k9^N^BaQE!~MfB|gM`KL9 zg?)|^1%ned6+WV9A(W&ZZ5$OLxwVwoo=R+uk6zv!zrPh(YAroIo_%^$y11D;)nxAD zN2&c)JOZ3S=+ac<=t1bBa6Y0-AX_))Nzv7j_J_X0L}SEiM?FQlLL^u~@D0#g#JH$+ z+=>y48KJakO-Ioiqn%`+Vv4SwkdQ3Nt*tHkF}+oKqS@J5`Wd}ydNcI+^fS0$;Xgtb zc{So5l99r~M>T{G6l@F(AZZ?3l`<{|U*>lJH2QUnE#X)UFzAV5fU{w=z}Xr42PSIJ z8VAw_?i@aGh)@Y1b~+VOA=6QK1N0TZ3Vi6U0_f@KX?kh&9$>)eo>{s>765d|c$VQ7 z1T$U-(4=GFP44aOA^kc6Bffn3639RY(1o)-ZlW>&?2=^elLy03&te-h3oq}dPFK>0 z^TUt#h8}N{j66GQKDi~#4xNAVi|YN8^4+7rWK$_6Ng`u)rB!mNLa3JZ=2UMw=nk`) zi4uu2RFaxSv*0Z*jti9>U(T8W9^angZwEbXF`#Ae3w!qj=_u~n;kkX4JC5)>Dz_7I zABf6f(zh$|M^WE_!t4eCpsi!RQrn(b6eCmq`c}BG7K$$lp(#&(L&@$sldDW(jf=1G zjay3NRL$NLhR-w8pD;6@GGi}XiA{FtqsGL;Oyx9|-r-xf<Mq3~;y$0<(_;13PohJY zQgPRx-C*lS>cn#w(+>Lg73nbM-4%TMihP_zO1HpXggaJg+p{lqA_6P66IM8iy7z>Y z*H2=*OC+0LzR2yatbBT}{&0Kg)6@A+j+Z}swD{Sx+TGp2WcAMPe>wj0A<59wJKR(& z+$<>NR3}Wt_YfZ_@E_8^|2=>{`ug+nXP2af0wv$Qdlvxu;NSoN8bdo&U`VCZCR>cR zOc4?JLN_}L6)O4`Avo^ezyIjbBV_B+{VL#(UtXM!Ob)}Zlj=K$L#T0}V-dp_0Q%Ld zS6_Vbg_e1IX6XOnajqiN_k;U?@Y4R-;epOo{ChI+ZfHNlb?~loobq=Z^L4x%JW8`| zZ4g2{){_1S?by&Gb9&QL+YhF9*xW9g-3g?3h34(p*kiG<D~?`fhAz_83n8=TTl}a# zb}v8i(lh+THh8X5QOwhiw*rZcK&7pgcf-Y9XL%=F+6v`1l*F1#xnYUVaq$JA*mhWl zytW~)b<E4`hkV+AP1HjLwJi&s+u+)fKxa6|e-QNUe?Ocf9>v^k@x4V(t*RJ0dhfW= z%B#m(!T#bo6>P0+e{!$>V0-D4)A^Uj%da0UzW(S<+5YA$dV51pw1Q2CEPnhTa&wLv zA2{~H`xyB6&Ye4}tE*J}sDM$y0F>F?-KFk82hbfa;3o2S0YKA_*WNBWJ3B8s3zg>w z4<3B<(MMF$sK{Zy$jH-kY5=J%&1SPy>U1CH?d@$k1Vbh`ii+;?+vU9tAX-1Y0R(YQ zy<PATp&{tDsn{co1Km6|%X9;Pq|`oB4~~>*=sV!sOH}}ww~@+^G)7t@2_d!E^c4~r z(FT1a?Ge!$X-$^kdjT}v23=Hp538$<P6B|LnQ0_)1aw|nTEbhRub@bSXy^bMoI)R` z2Y{wN=*Ep3be|X!pg#ih9?;#>-wHH*HNF;tQ$e*rd@VWz9w&%WLW(hFDbY?SW?B&W zS`D6J7zl^M2XZIqdEP+k;U<E)M4HmFI(K7hZD!}@jqUaE?X}|KRC;baI?+n3O-(&H z-~H_QSAYA{AO8NgZ~yaefB4V8>JiMYdO#!E7&=_cIYT@#JxUu~#B@L}4Of^_y0N~H zoSTTxjwct!)f;6fU~hG>jk%8>k^)w`wIR=qkSxD=*m`_E{NzsY_D=3}nIwBSJNbAw zvNWia)KDwS<|Aw_LMC2%a>yA~e954hbxZk#kc~6BBwI)seGWbobOafT<kJAO&l;a# z#1TF*6G_a3g<(b*VWn}e2B52N0rc`)06q5xKr7>h#A26F>*A|j;TzW?(>=iv()qiT z;Q<o*m|W}^o86V8ZeNHQ@Z0-+S{M*lSY+dhHic1g+eELGN~_>ExV8LDUFJTg;B^Mv z*Nr`0rk)S`yZ!N?HN;yZl0TnzrB%6-@TI~UfF7!a$7{Y?PMT<NLq&Hvx&8Xt#J%Ix z!CL-cGq<-9S(ye50{X#Pp96>S8$BMhuDl^oIOww;nggyC@DoC|ZTc2!Bn-Wa`<Eo= z_wJnCJw3m7c6Rst=;BNV(D%N27eN2vFW-`28ZHPjU=xZH6&Sc3AX*FJu%T|ElETGO zFMBBS9TPiC5*VubO4;aW0{}Ym20*VTHs{pU4uH<Z>Ra;w(Eet|TTgkaNqT|)O3qix zIO1VGpX>l=+jX;n4E+DE`&yT_zW(7rcbC;@*08BTOULCj54g-f0iYcL4@vj`0HEDh z0kk?AQAbsGQ3KHavc+3;I}#lLJ;+NfzcR>$hXd}6Q5m*Mb+=G+@fAaG$fg14^?qeg z1JFXl7@Zmjlm`5TKDlX^n@(+(ElJZYHQn-{Lm70i1*;CArKU4b9k4QPM04)8X<5e{ zqR%P%dz}^&<LR~-bpYMxw)JU4CRB7;r_4FSV!z*Y-O_*EGLRT+NR7f9H%i9o2?yLk z&Lntjg1g%`&}AKPNUTehoFUN>)FMf0flRg7>r9W+`ays9&-=RNRNNm6TNJ?>l=?Z3 zKM`h<KLF6qWZ0Ps`wA(plIChzV~C57w8X)xG*p*|YQ~6Yib`|$Zk5{W#humY@{FgF z@|2S0jX9t{_?6P4dp!dzP${CFU?~{VK(<>XvO?GyJ#P($+~7;QwYRgiw|!HK0lmGk zv$eXtNiw^!O7bp%KHdLE0Q$x2mzdQJih6Z!IuH%5VI$KT$q$eV9kmsWDyjfXS~Tx; zI8}cD=*;M#w~)RHpna)GWn+OIuCPPp-0F-q6|$s)!`rK=xv|8|h%l;UZq()kloGB& zT+2XK$#wuVgE{vI?1MYRTScr0_uGY@f?gV|DtJAj{Q;QOO+ww}nHD&%=}86AAY5G# zg#%qG`dNS`<n2T1KAk?(x41O@eL8W%a2lF21O}j^Xd8SO%D}%My0)IUke(1xWnu2> z02<2rI{=y<hI(-%Uc?`{zrRl^n$DWB=<pss&e(}CF@_&40MLDXeOP0mowUv^PUe@U zXODL0PuuE5BXXk|A8mvN%b{i|*eEFVd~d)_@?!wq<#Tp<9etdqkM&%4TCY((=X@sC zYh*mv?B;7W(}362?Xq<_tv>|N?l%Bh30MR_0JMqw0e~LxyRQOhZ&dC8Xunxttb*4j z`hE<cJwaY0+6X!Cb$mF`WAZsLHr4NO^t<iUG&tV}poMBbU-EXc1v*?w6JK)iWtSE` zBV**My<%g4DVX@OT?5d01K;RpO4pT!HQ2PUB_mTbFr@)^>Uws)FSXVq4PNI<4myK3 zV-(6xq3rS(tU|>pR9r&cBGwqO?hxw%rs!dcUVGH&Nc6{s6}}!2nsT5nITBrtShrIS z*abhm2dS8J%ZyuLJRy#aOKd_`imEqAb;1{{rh~OiuwLNPVIduMaISDOPliOWmY2(E z5~tv^i;PY1TNoFU2wD9uEgi&L0Nrcr?=trES_ZE5_iDkC3_bKJdW?M^^!I+yM{Q`= zzh3_!Hdy1Ud7)PDmo)cVvns|X8qtYb>_#Iy(^Mx*k*NyR@bL7gIy;_Nz2Pb++?CYu z;ZAOMt<c^GElqeD?*eFNT8)m>^?@MFT*De}r_?vYsSs)<X_*L?hgpi$qhl}`njdN- z;z7fc`h5WU>mLJXFzEf$<D;{q<Fli~TkVrh6b{+|K}L`bfIs8{#S92|p(05)I24p} z9Y90ZfzvchYmCpM#Ycc1+$V;rXhWT7MkWVCldYkXosrw^>HD|h%QJ&pYyN63Ix)x< zzX#A_qb%2pYO`dJd~7c2O{r8ztP*dcUf*rIZtA1n@k3+ZHB+C#Y5CC9N6G~0f>gQu zVV+S1Q^3{lvN$B4L-unq$r0krtk=x>-0|=m0Nor&FAqq~0lxkQKnt~Qw)ml-IYDax znzl1bZgs{LoV16ho#9zmYK5)ea+Z%R(x_8t4sbO~a#~JJ2P2cRJkIlj96!i}Cc~i{ z5r5h1FIuU5x?(|Xcv<H9T$WHR%a@W`WHFU9xJ^nv7#u8wh6+M8Y2n>k8kRylP|5Sv zoR#-k1>ee(d*#dh*v=wJqP;Tl=+^X;vt)aYgda(V=1QwCE=k579hJ^+CfZ9R%?Gzy z4{k}bqa?}2Np7SXn;y~8Ge#*f#t3Yu4~-y-H&`?M@1#nSrG#J+v=d%Vx;3JAGk^N~ zA4&fDUw{4M-~aN5|M-sN{;$7`uT14<CdO{Ao;|p{eE0@HUp~CJd~_EYFr25T{2&J) zt>I*?18A^O>UDIl{C5B}UHXRrdgC1cUAo-V0W>sYbYpOHCKHP~AW%!#U1Y`4ZRl7Q z0hi%mLK~pu=-N>JbuAyiq23KK8R=&eon>rn49OCy@1sM=_=HC}05sje;^N}&?k*X_ z2>MBfBUA`|rRPWlfQB~~>X#0nq2*A8qBleLk6>q7hATDPN#q!Toe$qMxMd;gG@cI5 z=D_Iaqk)+5!u0@NAlf(zF9+5OJv*+8j7CV$NPi*%YaptIPOhO5(vRs4(BosqF+vl* z30#oL=spXW>`V)yYSOD{brx`kctZPk^b8o#icpg2gz!1t-rgn!V|I3yv<NtM;Wd8z z@yD-Tz54v~&*7M(6}8=^!qy@HbZmEV=H*>(vT^%&U(UX~TYY$#J>5v3tdgXT*J}@t z`I(`W&p%2Xu9FmZR{)@0aYY@kQBzY~7*)sXLM>|%yx~Tc#G8o-wVX-ts>3BuIzr-4 z1p~XP)J}Nz1mQ5sw^jeX%$<b22a;!B6i#D-Q`NsKd-o;(NzlE^^T#paFy`KubO2pG zaKx8{_`JV-Q%$eRiDfZ3>8c%Z#hqYvFPPsE3kPiRAXqw##8&+ycXBf?*{M(cQ?LAq zEpGN%v2~fL+>WO<*@-7g>pV7m7OkGh)ibVsN2uPCV=M0Hio1Cn9e?if?a6dY>`_Sb z$le#_qXgYBvm0dELGCyr@5Y_`ymXZC?23WoNZ?TYUjb+^=$`=4KkY@13+Y$+Y0{0W zth|04-CDQ`py7fF0DYAJl0HclP#$X<!-7_-n+>?(BVF6;*RMbO?6b48GdhqqUcP)u zg^JenRVQ9*Jux}#E~az<O}Z{ZaO~~vQQ@cZ35$qMNQY}qC6mo}9*3Uge|(%DytE&^ zx1V@v|K#uhuA=?d`(b}u;SaT9NgsuinAnbSd#Z38=k}=F%F<!N-wxVN7z{#q+w$N; zQ~fAhKMpr;%dOLJ<w(l!%Y*m%>g{M^gBiP<8-Az`-iswR+36=0Dwz{6y+e;JgXf9n zt?1BMsI)I-w#6Kk=UYr@)?M9E%Uf!Gm&@D?h@-Z|LZH~TmNWqEu?=egnyyaug*#HU z;heT89mU-{0=pj$97p+`i0e>L4w6(*nO%i`!yJaR7&7H#WW4d?aU%>Jy?5Mb;rZS9 zPalqabRN4oi+~%cTdSF)g^?%i;m2E}&(2#<ZVPk6cfR>W?fz-y-f>{6wealj+~Ygb zPwxOgQw#PEfTrRB08Kpw+zY7qp#?^pruhZeYg7VhC$(b$(3lZ|fe<Q<RPc_Ek55ic zXhWYVLcf`Pc@M29wR=?j-Z=^`{B+<uN4>WJ)LTC^fa$l34xkaa7=xzh_^7CpSqJh( zIs>9qA$$ZP@&iWGA!ItzlTs%F`i$(jh>?ZP8e|Q_lX}_!=raJ&nn4?S6Q>bMEOIbV zhYKHG+NSQ7u1hZ;PMUOyN+-WJT-fxmc(Amu0%-ap5SNn<Boh_kdeD=?kDCssZTc$_ zMj4t6;%mXVgnA-c(-WPZp6bE1&~IYO7oa??;o?ef22rQ!(U9U8p>@&Q(&g|zF)NFn z5nkSOp7TfdE*{^9(02RoS$b|9Nul>%zxefk{P~*>eg5-*|HpU#{U7K+@tE}LV11w^ zq`!{}8zPd?hMqM9KL!Q`>(reJHS=V=EKijAX6kzd?4JP8@RfcCK$|)Dj{!83PcpeA za|J+iS((kqCciB?sU)T&@`Nmn`IED;<ZM(N^(kW<S9hf5_{a>KSadedo$*Cqbio;! zr8dNs-WcF3*MwSEWU@<a^zhZ|Vx2a+#YS&@L7M>?9vOHCK)Y2*2ha`;KzrOG;}-k_ zZifz_ubara{2oBF>9{=+awb)0G9*=!&KMsVEJw!bI)DyOjd&~RrAL>ATRY*k>B#zY zcxAGFv<c`2(@9s+!F}Lu0DT4n|4`m^0DX0qI<j;kwm9GnsGR(Ec>|#DUw}d1zSP1% zZ{0o?>c!;B%&Xu3_UrF{*P+iOUw`}8KSK2I&3e37__81X9ko%I-vFl#)O4tDy7MC@ z@4_TWOb=<{u*;d^@@#2kPHfhepFJEsJK(08()_46JIqhiZP{pZZ==4wnqHePtk2c9 z7VX)PEgeiu4Ti@XOg5ezAC8Z<JgIoMvHxe?*M8R9rO{_Y&szZ9WAZrMA<+{Steo4< zxO`#Jr%HCgCuCzzfk})v0;w>U3<uJxkPK?7T`>{JMAe}x8&jC55^5Af^(+&Y8I@<k z0Xd)WsA901RVo>`9Ec3DzA_0D98$QF&y#nl!%BEq3J&q|5T^|Caw{MYdZoIT$y=Gc z#h)`PgVyl4Q5`p?*ZV?)R;Ju1HjI&}0j>j}*|ITEvkEP1pl0W)Hnw78Yi3``s<ixa z-RmpZq^9#70B!I%yUYVdkIm$@_iD)oJ8?M-Jr>qu*W$ZsAzt4A=#X#~Kyy*qDr#{c zjXr0;$LiqRX3lA19TwJZ@R+QAhs9^_vs?O{=3a-1jBcaTLWZ_BS>Iy#d4D$>3v&t8 zsmfMGw1%W!zl%*rxNMBgs$xFsODp~?Re`WCmjr+|1UX}fE6$9ILv@L4{Go~=Bp6k3 z=y<ym{kbu8a8nwoRd3Ff*JpJ1XE>gMasoSI@(Mn}Nft;1UMw(GP)E>e>Dhx21Da%Y z=jQ76#@f#2%-RY`VQNersjDM3XIv$b=^l1gNv2Nr&YnFcxp?{P$*0eseEQ<aC(pHw zPo7f&#!Ll0#<8AQ54H)a2^DpinXtv^-eA(g&lgc2FoytPj%k0N;14#mFxmEG*pZ4j z(oshy>Pu--27n$cWjg?Rbax#9S{$nhBUN8D<1HsO0G*FBwVc0_8IW1<V!R)^1ZFVk zC?6rVX{WKX&=X;l5gy9AorO>vdXx-$Qj7;<;1+LyPW29b#(7}9Vh<da@o(ah!MpXO zh1dpw0{DWV4T~6#jC2ENMt%UGk!Te|*7PI90YQ65edJXD4JYV#05lGyg<c2gMx^Ca zUr5cF@$F(T7>qw!0Gjo+PM<-Xd#)@xfTryn0QAZC06I3(=m6-VQZHmi8fmH<#gtG? zD%HGL$_k}S59{t>+@VrV$R+t~!k>uv<Er_G0NUVn4S1azfVLP&s1f{G&-I`8UH^GM zNf%XJqs#KaK+iQ(-!+q#LbS8T+T+l`8SOMNP7;s8dKIqAX0!%8R^B_{({k>aJvKU! z<U>Pu2S9hxsSI?s{_YPAy&n$r{s=%jsC6KrW~Iw&yxx&+^FX&*1JJId#hJ1MN^X0! z-xllV%Px1;%#;T_8G{xEx?pAsMz&<}7ZHV{TdvyVn$2G{Fogl8(C<lImz$Q{MqhBG zS03(R3N}~L_y%O>ES`+nleGq_Ca&z{$}X<z57Zd0!njffd%_$aRoO~_t?*1G;EZbk z+Rppj5!n+_sAcT;*ht(8=LvEq(Q6KPNH6&TfKI&y(2Wj&u6_@ooubcv1wdQ;P7+%u zMz&k>8r?>R$aL}$GA6gJYoN!>xIfeYbdL_86T=MvXr__}fKJ?K0YK;H2LYhP@wz%Y z7GJrMT%U4RQbPyZ9RR&vY_EG7c~7fQU71xUhlIfz->O<;a^gl44IjKv^{`n$X;gLL z{eiX#xmNU?#fYV)Q$MJTdi)LKSJmnBufF*e$uGb8?U%p%70K;a&*iBh60V$`+FHMP zyuW|z=-?LBD-A>I0GjSZPa}i)V)~4D_%=di0fR;(qEDB=R4;^l1(Tw-1`0GrxiR9c z$Na(wAvIgWr#sEIrjjZPV~yK8(S;lFr73^?4S;rKBC)Ync%&({s#3iyR&#tI=?IHf zMT@${Bx3&vKvSKfKGMj#wUnOk0%%bK&>WSh4uIb36Y9Nuy*p6pg7CHO*mRFje*>WT za+fsNB{V*WO}m2=w$PL#JmX3(`eTc}%89LVYM00Q6VrThT4YE?XjlU+UtrK5Xfd=F zh9$Pfg@z@$;qgTzZ#rsIcw3OS1iVr%?usg|m|_j_2EQ#>h=d9eS4^_0fqt)*&qaiM z#G8olmHYtXFfh*P$7jjyrPRS1$>@WV@}0fh*)|C?R$Y2_w*KNwnro3nx2H*BJ98wN z!<&)inW3XC5_NKzAF1&pRTyk&?ok5KUqW}(<8sg%voGPiKxPj@Mt}~(vO-ZrX{3|< z<^TNcPk;aR&;RwOKmXU?zWI;uNFILuOLgf+ab{w2YyB;N*68!a!#j6702(8}9Y`A0 z{il%fPWP#Q2S6j61QOutp=_v&2`-I}+-XPFC(=9Pnf48KIKS}pc5HVp-d;?!7w0~H zH1g49_HYFmoG@z`rXxI+FvJ2cZ%h+L$%n%%6bPsY2+e_>5-Pqv^a5T$JsQGi)A?zQ z$goRGOLS)H@91n~&LN8<?b+JeqFxV9zVskuRFIvF_1fAR-Pq#dB8*QRaAQ~qP#FIv z2HUkM1s%Pgek^o)YdA*ffjD5F=vn^Yeh%{<3v3u&VZuNcTx@`<p=8iWV8eiG!#x~K zfwmEs1Hn2F&Ju4Mp?lzXPWL%KKTmIo{%cq!KL*hBOMrV6JnH>1BbeSN0CZt{IlVDQ zlH8cB?5&sgR?3T0YbWiSr-$$zpf&zV00I;+{fc_tRJcgwZqA2SZm4Thty{b7M2(wl zaFbPa^+sT-Da;LXlTC=aI?0Yzi@Pf%+>HjU=@1en7csCdYG+8KtZE8)%z}^BY)oRc z5wE}i<MgM3YBgo#+)OG&d)Td@xD&PQ`Td6qzZ(hctHNQFJ5brZ5Puxyj#c3x#_WeQ zuD2_TCrM>L#q5W509`q9B$mb49G6>H!ZW_|mYQDoly}1EO`+NjR`)~o<9PivmER9W zmOQZ)&%$Scsn^WpD}Q2>op_wd?JE-x3Wc^Z@l+|F28YfgtuuAxL2%@LsB|n8+EQfE zF?OCBf8p})1(|~oa~NcHL+pM~I*N-&v5u2zP&`fqcEauhk#1Fs5quQ&A1Lf@2$1e7 zr~4k#J=q$4e%^Z8fpowBilp}74X67@H1H?9$bX6k{_sNjRTiGzoqcgv2hchJ#1I7) zIoKz=ySr3!sMH09s>ZNDMX1qieER99pM3HOQVxFh*=Mg`zXtN74IMz!Zx9SUHr7l` zk6Z=N+uPgI)6;qg4vg9YKvN;7()G^c(6juHk8|~<{rJ88#7p~U{vG`)zCDF$hdld| z|43omVW#6~?BCT~_^Av~G1l<zVba?fgy0TUVJ|ASV<V5P^`mg>cCc_DHcvy%TcNSX za_dgIbR3GWdFNlGTKALnJE_D?cI-iZ^tp5HGj{YN$MBuR;GOW`t!VjB&TLE7Q!c+7 z49~i&d(mP$klm6}Ymzi>Pc8<E`_}S-!#3=(jc7GOY{$KOqIekl!EjDn5>BJ;od9zX zWRF7r<Dh$wXOF^klb!>K-rjr1jWBfd-f<&(d$GNx*-!3qQ_Zt)enB$#$-Ua6qui~V znbWn@$wvLr2|qi$`uRtxqYaYM-s-|fcca@2k<D4Km{zMr<pEJL5D<g9jKjl2#CE_C z+Rn}neCjm?t24a=)QQf34hxfMs5l{RA=Utea9pJy4Bp;jZ`A2N0ieMLsgZ|6H0GBe zdm%Cm)8W+Y|3m|Lwe=%;2S8(z96loOD@GP+4_yep&s65ADj~`i=G7rs2SOfeX@onm zIFR=kh>colgdISqPrs!7^z4Ys0j(92g|7l=+Sv&_RmF@S3;-jt1iI#O2lXNn7j0k? z_f-H*$|_wEUR_AU1OSbw*$9yg%7(C7bcb|W_*|pcMyM;gPr4IQ0O&w^7JAQQ&*J9k zk?9Zw1Vb!4g!7_f5nB@(CV){85}N)j-Jul|i|HfM10w$fy`S?(_bwmbhunE|Z~yLD zVPW#U0Q#^0{U3U2I}CMD;iNl6wq$xV`bZ~-`zpqpp%`FRHJ|`s0TdE#LfG`6G+tq< zaa{q6YYN!I;ing*fUP_`DsIhgynas7xOXdmYdf|xKlAK7u{TGOKb&Gm^8PSq(3D<> zC$4y6ijYxFeupRQcZE4NELj463+L-hlQjimBCQA9rXIVo$7V=O2KgbLALf&@F?BjD zQ=2f#re*|X$eo!FhNsx*ysdm<R_C4R6*fF$%k3DGYkh(8hg|uC@WeGO3P-goG}0d$ z>JN_?vKxl*$UtPmqK=zNd;Q6YM(Rd0RLycxnN=k|8)Xwpq>=K;9ws7?p}|BHAs2NC zUZ==-LV{c2?Yx)ldNG^gGI3`z!WB|tCF@EDtwAO}QVWe%#E}xyC<G^mI{-Sf^zgE9 zYdgF)6<MEdo^00-Z(^z_{B`icp}Ny+r@tHeGt?LaLc~Z9OfY>;8!8=?G$_xyy#`=? z=l;coCOUw=b^G%C_~LBi_<(N|QY$l`ef!(r{OPv<(7*rg>p%SEkKg|7Pb5@F5OxEO zs3=QRkf{D*8XP>Jp@U(>1r8A4UwZggP%QxH^z2x1X(muF?!JD$^~p!d!g%9oGd434 zAp>@()Y`vU*}a+HTF!1P<<}On%TuYj(Lg!P6_egvjQZT<_+Wgb=}JUQURRIB*k>~t z>?V`fX>>b`UZ+#xbpUPS++9|Kg>hL~cb~`Z2nhpTd$63ghXk_G>>=J1aEEHiU^QtA z27F1?#CrHllqVxD7_dmpfX_j{_XGpRfY%cbdSXEn<5HSlUzzn+Sf*?X4g2HcDpU3{ zWslJC^G!cn^YKk9Q+D}^cBSQ)YHqn@^%qT{u>pCwC%x9Ew9G=Qmv8pTO{?6r1qbZ_ z(1Dr_06IKok((a2U}Xz7rNziYE~a8<%66vI;|>Z|Nt-?YLjY|Va2k3n{k_(Hqs!85 z(b8y<Y20P*C&RhVY3+#Rx}^XzLCwBD5L4a&XrI&IbN0J`2%z0MfYw~UwQ!fFJ`(`6 z)!6k0K&xCL>QohLP_%|*4M3+<M_hC!q(Dv$6jZ(#l`1)@R+JlMZ$364`UWIlab{d| ze;#g#Lsdgq)B*I!(RK$wS1TO=O%(yN0W1~^!V{y+fFw|<qY8p*f<Y0gDOCIrJ5e`t zbe})iHS0T@kky@=i2HmMKzlPWGT2F^ky>z~Roz)3nYnc^vcK7pt-Z&WBzImsx%2!9 zj8K?kKpgrI3*C(FQ%tvtU?5cQVDHePyUyr%*JiVUnb5KQA`@(s+|i)s3N84(3Duj7 zSfff}b}T+UV#}zuY{Z%lTT+U<m~a>3mbhX`hG<Q1(hwF5LEaiu`bB@A;P=Ee1JLt! z0W_z#3i_;jZPUkr&O$e=$Jm6IBm$nm8%Y~6>MRC>fliCy8{p3HQpYSJeZDmSG@RRT zLb^1L!c<zFKcG!Ohk|D6e+1C_ozq4C1+lB(>qOUs2Q&stVV~;^8W@`TX6kXt6sKOC zE=m2gW<tMxNYd}A!@kj3NI#?B(0ZgZjtzZ6?<1kOkcNl39^lTsy}f|W-EWt!t}a^Z zJ5!6}>7@x_Bu`x?TTi6N>gmzCo797PPOejJ$%>VXH6~f3qBX9351?5MK!=K14L~O~ z04=6tLMrMGNv@FOq-Tvs_*mHBcNsl)lh>ieeDK(fUc1?2vv}>DFwk~~;D^Jn!C|J3 ziis)IZ+TVGsRUfXfLrvr71pD0o)GU13z0^ijqqGVa7v6d;I(od3+w7I=pO=TLoaQ7 z(AV8(F<dkDk^HRZI<*nqR)f)H{aNpI?W1Mj+Cb0u06M7wXj=zB2W!4S*(ug6zJk@8 zGx>5xZ_eP&k_`9@CRehXM6TJGf(D@d?*QnL-nRhS$(LN7ti_YH`icgw<m5^&w$uU8 zRfelF_PE6!x5h_QrV?PQ0b1K)HUMb5-~)gLgLVhM2he8TWAs|ZOpwHz2)W}Ss!@Gz zOSqm3H}X_P-LVi!C$hGcIu(b^YjHUOK6?C4loE4~)7)b-c2Nr~GIo)*3yjI50cZ>3 zHhG*zkE7pVz1DkOuI80`(HaZJh8ywGrY9YZk2Mk#O@26+oUW&5o2mI$eq}1ZI+Nd6 z49yIN=Y||Pb^gxr;^k?feKWJOl54NI>)G_on7f$F&5mbh#(cR1odI<Wun+AEHZba? z7iK+iFj9NN^AuTVbSeZGgoqXx14P{CUw-qOU;OUZB%lBGS5LqCoMidonS5iA#9vI; zmuJ`7J68ep(b+*qj^M=rXA`<EX5u3-0@N261N!6!pf`k2K&&MMt=4m5AjmA7wb2e> zd`xfb-V2~(OH+l#8DBM<ni<W_j`@m7zER}r1z#cMqVB)=20&A#V-isl&v-~B^}B4W z#}@E8172TPa0hv+M`AHe%7I+TD3x5OmLX-4i%EgFtTyt2j2g&BGSfq1E>_+*YEIBY z1Hr+8(1<ZSYKhHuNzGoqs(C$=J}M1fqYburEj8yaY}w^;i#%ZsPB}<&y92qsfz*O4 zJjutVr1%Vzo(uV_j@VQ%HYux<A+f=wXVYSn57gWqiS2V)`n|S(pIu8u$hx}i=5B|1 zz-K4Dflr0_bl9r+4L+MI%(_)pOa<K$tpIxxD#^yH7gLYU#pMZ-$krSwsoudN$-+nX zh993ze{?~z{@Ej8rat}TboAj7Np53q<>ll2&N@kMX`1i!qj~~N%!R?ohaQdt<w}nP z4FFA64I(pAlM5J)u)i>sp%bHX{cDFofA^n%Bl+gvzx(pff6xK+oriZXAKkh4_&((F z(FHs;z)4|cp^Q=C0WrLqPz87tgcnnHQ40W|sSj)1+6b*q7EU)yXWPm4qBuXa|JAG6 zXBUNwy~5>Q{oZNzcq_3tzxeEgs#xLeg6RdY1L-`}bAeDJMh6_F(HS8!BXoB%%;;hD z;dI@@7c`TMZFqSAL(`AR9EHhBT^kHz+Q5|C`T2Qp2PBPISXkKH+@u?z7qYgthSWpU zT_P-r9_CNC#&rOV+C;Za7fq#8cr!@B0pl6-F13kEnmL>WI0l}^Got#_9t@A6oxuP& zGyvL0nZeXf@B&Pgz$H-S=_BG=(CdQt0miW~)DMSlYTT&nr%s&C21X1l{tkeqXF()N zU}#L@rZu?0i$DGD=og=m%sjcsY%Qd2&gcNTzA{@|p2^OQV_<{MjGKXjHW(1*pWgiV z-i^CQQx9)n{N{_w;acrvW9zFI%da0Tzj|=_&6f)wUu^&K<JB*p^K(Naw|@8K)-PW! zzkYK1_3MQfcNbnhc=+wF>!&wKl4Di1l@B+w(ON24OQptZ(cv=ab76ioIabrA>6Buj zYARIA*4C%#XQPk%hoAH`@Aqo*pto|TuL`;7*W~hzv>v^Y!N>ih&-+3P{Q%I_V`p+j zN-PF)YjXZ(D7~SiHeBUhHL)H@u5-n<Qaq5$$I;SBEVjnP*O|E|wHu%MCO-8gHo4Jz zxzYQ%=0&P<n;pJP=Z@suzF0dARZf-4X{2-<E*^!WE1vN?>9J={aWBTSgW_SF+YPY? zLCwwiSoI$&-aUysRXsZba}e|$DektQ#S%FPyZ5Dq=Xc-Xbnl0BUpynxIo&^^fj{9z z{?F3DD_5aIqT37a5J0MHhlhvAxCK=h1d#T7D;Xx2K%hF5WU9;XsidMv8>r@R&j*I1 zhJk7&8N=>U3WhhSxK!YGcX#LJ=GyHxjzu2|r|B=g_@cP8{NtDQKR(XYm-gfL_7gAd zpZRz6tMGe~D|k1|?91$N$fuP7nb+_xPi25P3OV*z{y54XMm_to=Rh8LVr`tL%~Q2_ zD79{fNA8P5cann_nes_EzV4lSQf=PN)-TeDO?LcYp#z|~F%3YcO2@(0tw{YOJb0nh zjuY7}DKzaEK2Bw~!kL>v4M30CQ_Fnm&}P->v)4YV)d*obV%uYw!yvz_vh85tKn=Vd z&e7tkAE=>&jC`2%@5$m(TslZ_2a$g?ZiJzu_l_IsRF|8oscVxYf$5eoKf+D5NYu3{ zcDzP!jD(wP(pp`grbC$Vs(-Ys185AUqRfEEpxuKWrH|!fw2xY|+|F`lb3scYx3y4i zucmL#ff!<l4m}Qn4$~fLGikfhUfurc#mehPE3Y2h{pQQXk1uzA`7ydtc=KQo6wxFw z#e}xsw0`ev0N-u>Ufjia9vW@5u2%sx29JSX>56oIszGq4MIbDC6`0`!`x6}m^)d(# ztw)5TGeb|H=cV)09>mZ@-v`Gg+SwUUXQ_J(t6@x3qIy^DcsEmj1W#o2xzrbE@j5yQ zhmjPK7652HJ;qf4joD6!6+r9R*;ynRrqd$C7K~HcLw7>;dSzt=NhT36iXNO=5;_Vb zolZsD82qLeML$4)r~9iS<%2$LoIc`hfY&4VHDIDP3R@^plSL<_^Puse^8-NNdvf>w zlY94{-amVIZ+v?#zqRz}*I$xo^!e|9`P+a0{cr#G-~avp{uTBJY;(FIorkUts!j_u z8HC_~en>4L27uuT4M#s{k8fs?kJXgvVWwI5UIDw<tKTIBY%{*ADPZxX`qD>dB!yes zv(N5~KRKbcsCMr#eY8R%%@3z1Tbb!WwNVffL8Y8lN+}^1Nsku;5mwBErF=rl#Uq0S zEeT;FDCXmAQgMlXm*C4UrV}$UX)F+$2uh=ZFvJMM{^X1xkC>9vLU6*HT5>ke9jR3| zJnJm9?co`_JZ2<qUvBk_jUKtxM*;wy-53as8RWsf@Ps8iZZ7QfW@g6NQqmDo27Hd_ zP&v{n@THV3$o4q~0&yXbkFmLkJ0|tIOfH$VDS}nvECSnQ?hmBm=8$NO$^g*Tu%r%_ zUFop96!TUR{(6=lssw7q=|^Xi_ix45=i*xnjnkd<-b!+35hw@lI{?sd7NHFc!$39F z0W^9j)FY^)^k)G;Ba9wg0RW&;n`onhp6}ebe{uE$`n=EA@`;sclE+{F;y0QH^dCrm z_uV(Y{qEP_{`F7a{^eVsA2?{ko~4D(i4i6wS-}7g;=;o_0Sq0=Bx?Pe%2i7Fi^=rt z_<I3#V6^fUKyTzXm$U0j`L+2s0J_ux(AijYteF^Zxsy>>LN)nZ9~%0u8T&uz?=~~e zE{k!%<1~1kT_%H#^Y*#zy)GL7G;Q~J90QE!x^*BuH5eSO_>)mGFwMM|iOcpdXAiSv zl=ZtUOg!k1D{L-KV&%QofJfVtiJAna+pfjFhz@hH@fhC>@J-2^cZUWgrs`&@F0SIz zxO2%B9CpY}Mr!z(yfrxNR9Y^f>I#nc<aT;8o88edtJ1RYHKV`OCp9cm!^&0+T*bhY zjq-3mQ!>j<HvlyKCN%68n;yRAmxl~owcF^jc3TbCjr}Co47~$3L$BS?>o5X98(bCu zXqU(s>?VW5L=U2+C5$RwRidu~*(jG$eNmYdS0*C*Rlye#xFlH)VKEnSOCCNO)$%8$ zqaK;n&R{orRnZj`I-Y#~Uh{xEEF%Ifn}`^BEo|)f06MP*3K6~-_2ok>{aKYXQ^^<< z&Jff*pqW~ptrtm*VbP?DjlK1Hdp)x`pW2vZo5j+`d~tOauo7-1)W}d<4N{4^fWZ$c zia-q@D#*BwaZtF>>FMPV<6?emePVryWOQX=Y;BRGFg-@{hCX)yv@}xt0f4^!9sqsu z;whRzx<kxVKud_ce0uGmMW5HJ=hi~Ad37=|2KnHR>{Mk}L~%zIcPyj>XlhBUF(olO z8lN830CYxu1E34>Hvl>j)Btq&3V;^g0BG3ky5}O;5!{FM*v&?x5f6eW9B6Rho(v-q zPl36!aABs?A{!)5rN{9==YszTZq5ME2wwpYYuyo3?{@JY;Vb>3SH~OBX!P{-K!w(m zqQR&8UjWYa@UL*O#$_<-g}g&LfF}DK)0(!nw&<z=(0W!hI`-t`1mm&PuF=gQRtT+W z&uC|XjSANQgw544Gzy>Y_Jx*L*YGsAtdX2Bmd`E^v$X_QPez*g^q2;qU1>$G=j2*e z`W`?B>Awu*lRbWSkI$u+^J*#YjD<9bC}x>A$=pD|+s}FIN<d6Rg_vsay9_?pRRC@D z*)3k1$)_=Bhv0W=uDBY2Hs}C4EIJj=rE~za%xVO-1EAFofMz=Y+Nq@z^mL-gyKH`k z+2_!3Ht*A-&T}64TstMs%6Y7;$LMvw7eIeF(8E`|nc@db@fus!gsWWR>(}}EHKB1$ zY-tjxUz3J<q+v~hW4+SQb!p^!Y`!--dp$Z&8`t9t*E4Iq)IG~1*Fxjn%1CdZaV=20 z79Q3*Z|cs4W?!Jz!_|7dIfp0j^yH}__5(mGE!mUzdh>oy-tR5=ed&Gx=zg!m9hE&X zrOP@X=3*q?WXKT|93i3CVfIEuUsN<pj74HyQMuP;A>q=hMdmC@fW#rQ4u!RH?p~MG zCUZ84{m{@uJ&+bA8vxqWYh#^O#?kMw_qlBJLM)8i>~nRQjn_?vf4%;5v6zudS-DZ< zYB|19a3n&}(MD{%<*g-sq%qV|>SR@&u0&?5vBin#(nM@!%2`UxpC2t=p2XJYV(atq z%|%Z=o0u4K7nANnB0Dn<0F5CyIG^erw%%qTs2p@tJ$*2hVK5qKgwVG2>>mg@gqr!! z0qD84_RjiYyM62E@a*L1_VMxADap~<DZnxG6?g?=gdAh(m{ABV2T^g+Mqm&gX)Zty z^;!HdArR#U?W_*V(CU$DrQR4EyS+bgemHctuWrovhRgoZ%GmZ=VPT5bLYG8*l^9cu zaP^{3bBK=GNaHMJm{iO}6(klk1^l*vug77f|B=*)9=p*W6%35az`8pF+731zVv`{o z6%3iRDx8sZkxF3=25cc-sAQcXzO*}#+v*dW{lUS3%<4d9%|Oa%aKscGGKlpaWw2YQ zc8iTZzI;8u=9R}S@i{FLv^wcXteDGt{^o60a={gu;-gbiY=(_Z$<aw!YI;e-;2Zwv z4Iw?7PEN=8nhOBB&u#qyfVP_lyjK9U3;@l!!<_IIKwCQu`dt9MKK&B_8Vni$8VtI; zw&-sb*ukQn5J0!7;5vl99Q`*O8K_Xf6hRbn1QCXPLLaHgMT91F8)*H144~8N3na6< zn;L+Acojh3L0LkCVp{a6yHtvh#SU6E{5bF%{2uHZ1Ei=p)aPZ|3sin;=Le08<JP@X zd46>5`J?LnBa%dWC3Uzy`Tx`Q9$s>lSGxDCWg8G6A$9JqoO8}O=h)R<9jkNB)mfd@ z$_W7mY{mhwu@S~t1kd>1Kkx2SPwQ17V3<4i`_9^{*6Hf1QzyJ>|K9yR``*#mgOkwK zB%MD5){*y*Y8+O`(kpU-QfGuzd+@6foJ)UVgh3moXIO>=INq#786O{qYBuma{g*np zYGb3Wjp`AdJc6g_Lck!Pm^?N%#^o+6myxZA&a+;xQ%#}wx3{-3(}M*E3_#-?FlRuu ziA#Q1;u;OOvUHy00KkW=jg8~@)bnDkE_u%Mikb@$0M7)1W$1sI1~h&PJ}QU<R6$sl z53~{x=tSEEj!!ob!Pj6Dbk)!RrM{k;J3LkfpfMGJ)P?j84GFLo7z!}7(LF>CLn^(0 z`sT||zU6HD!^fj{PXddhnVH(!!S3STCIEDDybq&2FlbCU(7i<<KL(@Z=6RP!`)+Io z*M>dQMel5R>!W+Iy@`ppk0+j-1h=Qd2P+eApBsluWXGR;)O+`^|Ne3ExE|h}8+mvX z*&g@K^^!%0Qrf89Gnmx|ZH`=69rL*d3Vef#EIB=BD<y5^H1$LrORXeTA)CUXAuAqt z+ACeA%2m$#ubHbYWR}5J%TTLzxYat+=3i`gO|{#`I&9+|_KD8?jdsg$n`yA!GSZ&A zE>7=|iSqlB<c^?lBuj4hRL|Ar6HWd^l{-@8PUNL?Y2Q6%@myHCC91uv8+=DP_^x#D zk)rmVuK%HY^gV6)j%f0I<Ip2x-+gWQwyJbnS-Pd{yDzOil$UM^h99e{kA(UahpcYU zZ*iK``c0>)?lEn83|nsfn#-`maY<d>X{&Qd2+iAm>qbCZcb2ZNzr^W&3eq)my8l5G z`TvXt7Is%qTOmY_h)5(rV~dp8M5#Uzlmwh0fWUuDJcrsq+Clgslwre*<H5zT%*H}` zW7eFBkvD}J1YvZ*Xe_|QswUb;U`Tv<lFs&rH|=LHr}?J+@V@=rP5YUr!+wRzfN8}g z+0bdXIO&)M-gT4d)*AvB4ZLgL3~_9C$Ilgpx@+i(r20@W^jKNBFCpu@FByC+AABsU zKG5|)(B;phlkeFvBhq_UOa*f61J&rS6$6ii!*8p5?@4=aOZx80Dz~M*x8ziw<D0_% zQ+;|*k)dM0CyuRmXLd!IeSx^5YOD#+I3_zQ4?Byu8+NOco4mn9&QVwTs1sJW*}>WQ zh4tO;{Hb}P_;}w>%^R)!_R-9Hw`bnHdHU&xlaEhUKYC0y_u)h1c<=R3K3w_e?V0!P z?*H+<$wz0C&nKvsKYTd(_-y?CQSJ8i&3ErqkJcfAkCqvP6v4un6r|E(NQJVqWAnT9 zg<Y;Si?2?Gm&a@Oj>$IPf3W)N`)HP_;8AHrXby51Qn5scZfL2t{n5Sn{^aD_CzDT3 zgF7>k!&L^Lskruif1|=oEiGEVA8i1eTfflGEE!wpijERZJ?&G|O&5ivX9%7}+%Y~0 zg{x+#jNXR}iUB8*G=OBWg*zAwV39JG07KP{eE<NOCCBD+A^3dW#_}ngC(DtDRXA8~ z1tLb(P$Uwe<3l(w%Zh;sayD3^GlawzI##;dwZ=wIklv?j!EL1fQg6$aH_^F4_zO$B z=mYRru{;QE4t@?N2B}<RO+dB=tSG{SE*2(ZI+@O#jz*tH=rm*&Zrr_b<L=qnol~;& zyXQx@&ia>U<Et}wKmB*I&z?Q~;+wC&{PxQ)zy0FNZ$HPK$54t+01pmJspu6~3duDl z6^$Th+$eYfY~>ucQ_VSQ{klQ|127*q`kEsfx_3DC;Ftzr=KhFlGClv~2HC*fz4Xa) zU~9H?`>@<F+juoPHeg7F<vu$N*8|lYRYO}LF87*wN`WozuoYv*q|cD>@^w;uz@ZNN zR3T4~O5*J|g+{!#L8r0TXzDZiMjV_Hbf3o3uhgaZ#=I~%rl(#qdtL0FP()Tm{z;8* zLS^meTMIP)Z#Sf`*~(qEa<`+}?iuQGR{4&8o}<!Zuk<7~x?(HsmZaa9ODKE}@-FS^ zkS!Tdcx~i$b}58Lzg0vIsaZ`;ajURXYSHktN|9MFH0rK)cW47{k;|eEd1WEDEaIho zUvD}vRFnj{i9_dL!IX<xOSy%29?U(uTRq_<ZfsKn=8+OI5JI#Nu{%(PL6R+cC}2R4 zK!m@>0-{kVFb<@$fq4t~Xb9=RQbLUAj&2;29o{(JKi%a7pd0!dV;jpa0q9Ske)jR_ zpELt#)EA6D+58Qa1hg>7HG)7?tdK)_ZVnD*2{5^wiW7r@p^7>a@z(nE>FD_FliK;A zZL;4!(cgc#K6<=4bg*t2F8XIjJToJ<k&1PwY^<a;g&2L2Q#tP|$fG`6DJAziWnM>@ zRKNjf{&N5==4k9&U9E3*xAHYIk(tvk?vjh77M;{->DDNEw8~ad4+GHZ7XVt<0MOb_ zg;3+O>l^f07xjvaDxKf)BLI4U1JJ6tk^yLa13>F@0y1ksYt3^2+K}d50O;%mfKIM; zda4|NHe`94L?Z|~FSg`Gw!GMw6Iv@hy0l22l^Sz0Ww=M1>~fYH06M49XIpg*0NtYy zE1hPQ(;`qw1X`)YsFa#iYKK;+6{$TIjmM()I$i?MDyLasP`3!Ww0@g05j4aDT&%ZN z&eO<LE|b8l;x}Y)x)lPQ$0V^EBv!r9tZU&G8F$imxinfzS(j3JrK44DHz{0Jg~u*& zTf6nDZi8AI^zfYqfy*d#>eXSVI^tBvoVsL4lez%V@!>vtYO<(L9`h>_0bMju+*ru3 z&l?8|skQ0k@}wl{8QNLJGz>M-Ed3w?fPe=X<V914m?YW|u7?$?Xf~OmF(6DcfTrrn zS=c9|!sB-$_E{0~*awPa#!}i?N^w?9nJXD%Ib|#-jpgTWmN>_Rew`Y5Ix-ZNsq#|4 zK+YgsHs-Oi2~HL+%|drUMcBr&+#z8ggg7!I1KOxp7xVXSFPH0!ndPa}!dPN%bZ}!K zGSQ!&8%xfNh9`yuUK`(QO-~F5hbw`>va2^2sTPC%1tj2Mxw!D_fJit2x`9`&T!E&s z`S}K5#TLaPAc<NJmJkwM03*muiiG9$1!Q1Tn4r(-a2XD2Ce*Bn;Bu2TAOOx8PZoV8 z-4=*CGG%HkVEQ*io73IK=MedbZ{i}69HSXPQ&R;1jeHIaK!c3z?d_eMoIu8_qod=E z#&)@}UAlCsS(l@E>w3N+4jNu4JZ-jIr5Qj+XDa$!z*CI53sGA>V#|e<agQSAk%gS* zbljYdi99xu+bZ?iq+V;6US*5~3?Uy!pFMV&+b*yg1y%z9wA60w)Ji)wk~TTNP0AOl zC2gYac5ydfrx55B9TFa2E#+cz8#8ZIr5ox2U7YYx&?UARq;`|cVeXI!I-~-QKKraH zzfE9LQga|si<LHw(yF0uPhzDuRMRQrcS`v<S~Gx_Hvwp#O3IT7dZ>lsOf0wRWELI0 z^Xe<K{pz(>U!fg(<?OXrUwiG9ORv59`lZ({U82`lFL8gq@;Vv)`TC{TUw@6gzVXKE zv_r3N&_3<G%6*Z{kh^Nkx9GFi^ywCTx>c8K(Ii{cu{KS-Qxoe{hT0UNHf_998|&0W zI~BoJO}I-P?otNYBsvAzH9?ocLk-#Y0JJLL1b`-^#`MPlwDmcFwq5|}c9{qOTInze zO&WnwO>N~{oozg&gc|D>A+JL!yxiWxB_Wgwn*p>X8L{SG0BCn5@2wV8nV>qu0cht? z#yQ*o&{F`=L$ZW_>~L#>0qDg^MK0nW?DY?neZ#%Bz8t3}Q7y2U97yV*HnIsE#2QdV z0GvW-3_?)B%c%dxcmfRpi=;-idjAg}{rV3dz5Dy${Q8d{z5nq?cRqM`=H?Mud4JtH zSSHiNgZ|;Z>{M-TYkgs7b7OC7V{e<Y{q5}oE(swB6aWz79D$7>lM2tA$v`sz4VUR+ z(BD|$g^G_+HT1}sTmTXhG7PQEhpYRWg9lrw-PQE&3IKF|Vahw&Zz^SFVUN2vt4ey5 zF}F12wq#<)M2Ln9=0r#v_VaA|HkFh*QK`es*Qo?Lb%&HMF({=*6;Ce{8RhMgo^~lu z<udCcUK%%0=PI>oIRI^A0NTI+v^m!vp6m8cc9^p5wo;Ed&jmr73)c*(7IUG~m}-s9 zasb*kAYuU8KO<}g(4JvyGk`YbRo)?2XfzNQb{jG>TRNh0ny6FPc&s|N*&HJ`*J}v5 z=>qkBho?8|tz^A@X;aK?2{|ocr>~MW#eLDSzSwxbCFZMt_{6nPBkMogjV#n`6Mbak z_fALdomcOijBq<-2gA2^qYE{%z}(2_ox|xz=VYP9sm%P8Z=_-`r%`gymjL9UrNz`B zo7lh-7=+@|kdaCtCX=a)r5#XOKv+Ch^faG8``goJf1y{hPrv&7-9LRCTBwnYZ!904 zbIKbGK%d?^dEqEF$_$tz+*fEZvx(y75D)q!eFkCm=+3bq%Rb%foE;3TP6yX#UDG4w z-IcNX$D#FEvheQGz}<t)*=GENi-x9t1jv;x2QVE$(Bxv#(dZqzKoDnCI%MO)oG_gL zRw03w;&#z@8K0$B8gq<{j6lkRzK*(s%uY<w1gV+0b^VQ`qmY}RFCt<KITq+!^t(Gd zJ4gtLm6hoJ*-|o=e4JkC45y~1CMG7T0|OWzG~%!OOQkXr**C^RoY?g0>gvks+RDlb zb-r{m3_xS@iA7a2-x4#}hy_EN09*oB2SH@?3Y1KDiA|m%>pC1`x^QaQ=wdM#!0II| zz6Pdm2GEG&0gI=bN#8==OF9Aqf9Pbs_~$>!{`}3CfB5>#tq&e~W`+Qu*AMsB4|j7j zH4Y~={CO5)5Bh+WQdp@STAvB7*Fx(<12<QO?yURfDzlHSPdwUBpRdLbS0>-R7v5P& zAFYttC#!Ss-0OXC+W+uI`eZY4G#}retUcHw^Ue3UvR+Sr!juk(%<AOyuqxs)CjAnt zj?7a?TFV*g0wfllrxevi9j;15;nb1=KwFBf(Rp2TK^I@t7dC8(6=QbOp51b~r{n`S zoC9b6-lI_YC@_2;AAO?9Y&r)I<IyEc{y>u3m!)?^nH^EQ-V<5lM>qJ%ZBcwvnA{O1 zcSWf^QSpYja3(0;5cJ=ZRUgRu9|<mBe*LY>Z(h0b#+Ak^w}1JK#-Fc0H~jhLTUQz% zyYgo7_-gK?4VK*fam$}_hR>95w`n&VT+sB6&%EKctp!YVucsb0uX;_JUd^UMx51%m zbKP%W4_McI_N|a*BVb(%{=d^e0Kp%pfp6cu^_So0_7>?Yi|^kbe|TEEdwuJ@dk|Db z`9#1b0t{nQ!<<_?+FzNUGNeKm1n~ax<_8b40uR^@)Q{W`<htDX?K`!5Cy|xO&{8c@ ztA=X*5vq=Bb7;p9<%)WNd=FgU>e=q-?ZeZLKg{kd{9nM$=a<ub(|&m0e)Oj4>rTs# z&$P}x9s63)vgvbgMs2GB!=_ui>C|#6D}L)n(7NGsY=<pt+<x!9cE)YFX#K;^A6hfp z?Y-AQ1&J$c&r1>g`PP-oT<N;}ys%xtexsx{cE&zX_C4TFyk{7CtnRz7DBqTq&LxF2 zN&Z+B-x8LNwTW$MdQX_z5vDfz*<Eq=x=`GwG7Yww2HLE{t@#^`shV25b+p|&Le^#- zYO@TrS_WIq11;W}7Td@*Q{OdH<*Kc>!&&8(PP%?--Y7Xe_*3&n+y8!_qq<K{Cf~WB zx<C7j7=RxAK7hu|F6JcAS%5H7IWZ)I%>X*MSgYMX-Td$|+3&vo+vndsLw7?Z5DRE} zdwZ!IVjqeeR2mVP3n6BN?Nb+nqKkkY_AO`}F#yfc=l>pnrgKKYMvD!qiwtShvw$~& zilQ%|9kl8!bshr2z<IIk2_jU~O~7?$SPdgy^!so)(J|q_V4w^@qc>s8bs_D=x?@au z(>s`frh9_q_L$FR02<*J$odOZM}N}k(d`0XqbiJhO9!ET3OdeMB{nuTMvg6%lrag7 zwN3N^>VlD261j+(@Ez0gLfkib>9i023*5|dv>;R&KQ}iwhfK)Gr9p23Ky%^GcW#{D zJwLvEV{mmLFkid($wy>Qzxk32f9B}(7x2oNtTQAyFn10yXvlG3n1m?-hMt*BC-4Nq z_uQi;Q#EfLDENo^FaQhhE>`axkY!Fc<Hzf|f!yrl<HaY(*2yxNcfCgD+n9{*E_-Ij zdiPeztf`>6kWvL*a);5CkEz3MGKt&5*Ge2okKAJs+4Uluu2as}`MJTrD(GpK3S9k0 z|A@;}(wh6so)M>Q&}yxkG--)0D+-KSLp8IhEKKhSQhR*&xZGKjxodLYgvvMB;~s7` z<=YME7Hgr?QSC5fS{&srYpKgz=m3C@t#l;TyG#Km`R{y#vP&hFnN(7PvR%sWQi=rz zwZ>)Q>7<;yA@1R8Br=1dTPbN1^176=PK8tx@br*#>avh^TeOZs%300?hl-Mr%~j3m z)8XJ~zonR=5x#SF*fBF$+*|XF^&6`htT9J`5tt583vN3NX%N4RDIBI{#{e{PiQ`X5 zJJMstXAr@FHH84shi6CoC%cDd*U7G*9Bv)%O>J*zlHu6g*zvoM$v*h(kAM99vrnIX zO7^FxpM3oJ@7a=hCc}cDLwd!c3Urjv(!mOK%(O8HS_DC}lt>2pxyj++_@K6w6a}3- z?>(xWAB>#shgN1x)m(mk&NiO6)UvLTv}qu%uW;$t!c)Vc@v0#i3fHQ^;XZeNL7oV7 z+YDV6olvXjQOn!Kf~(!_T~a;+(0sM5hyLXE(DQ2HcQ%wL#9eYxtFWh4)ME@dB({b^ zqfXhQkt(ceiB&DLsbp5AP$yAvxh~~A6_q?$r(7sEsAL8uPfMSawMqE)g4|Y+*?O&} zf>jZgDZ)}`#cD4bon^hFEHmen+O)!uRU30Eb5X2{b=mT2Lso9c%3MR8(Utc2YKNmF zH0Al`5>J<Ix8y|)6Wj7)*8tC2kR$wApB8Hp?VdiZr%z|fYv_O+fKIpa)H0ru1JE3O z<^Z&;Lm}*t3An&JVYl3(5t_)f0;8sd-^CGUuU(*5a|QtI1Az7eK&##6?*VAJK<hC+ z2hdu&Z=9rL13*(DZ=@M(mD|k<mrdcZOB(>XRV8sIBigW67I4agE|J$tCidCHeup{{ zR3}5-R=vBD=KyrfCy!qM=mG%rKt8oPEsc34QTO2XD%78;J)~9|tQNu%Y)t@?>9Gu3 z^or>^Y7+7J&CSj2?d{#&UGk^4wzjCP#-cZ>JJblH*Puh4o}QkcpECdrK?y7}X!Oe= z1Rt=}KFB=)pApeZSQJ7VogwwM<c^_IFwLTu05pTnXo{NwG+hw`(6pIzQCY|)kJu$1 zqts&>*jca+r>uj?`228ub~rjSs4d2Hy=kgDfsu-UT1%%nJ27f5rA&pSDW6cr1Inn6 zehytHfG-x#B7B>Xs4G{lKr8hk0;Azz(hhPJ(kqKlZf$J^TW0{8De6FQ6)Ya-k3Ir( z33O>d+W^pPO?-2@LZ-Yy&xmd^q&8?{)6!teY^@l)V7jIMMu$RCV7(M~D;vLxjr?S! zB3x)}^pL>amY0_yRfbozO#skGM@N|6fA!T@UwiE}di}*Oe(}mHuh7mf8`~Riym9H$ zr8gTJ_TK;>eeJc^8ymjGR5++iUxd4tV*1{=wLfYdh;dy)G3hKMBteHHU?&s%ZPr}E zoKE}%fc7_Z%AJiMXotXR;F;AuCRL9?-mRBOESfgCpiRc_mhyUJJf2#@t-)7_u5$9t z?MkPmLoVu2h<Vg_3A@{bJu<UiZZU{$CaKFJby+(kf=;PG?KX-`N|8mS37EA(i$Ftl zLJ9y)b^)Me7XX@$CNyd|368Edh25aA8MqK^je_iIS35ONWIdb`bT<I>E3f>D1JK-U zd=8)+*5JsmaU_}n=mw1Dxbwx%r3QMw^v3I#-hBP_#+|-|FE%Lli$lHIpxduDcJOlz z<My>NjzM1l=unp;&?eDd0O(d>!$ghLt40;4b1&x6AfsKvCll-BJ!&a;A>tmfSxu(* zSlVSmGHyQ8s-s3zq>(|8<SLI7%jPLWyoO52Tiu+{^X1OgW&nM;t)){cyxP<GR(I!B zPQawql8lJFTw7@?CcC+%B8JSwuxGI78!nssv$|qjUry?K6VwYD`m?U70cpZ7O9qNt z%jVHu>sX&{qTg5R^AGhlf}s8MMV`}?nH)hSVbePZ=)j6Ls!j;0pfM%<0eVGf1F#f^ z@>rmOfjFA8=2q<V{m0keeMolv{-c>&$7JQ}>z?s`&T9Rdcu<#$_=hXGneq7e;0p%5 z&tYirViuH&5j?6oa)lvN3gV+dtDDs};07QH2BZwU610e|!oY@LQf@C7uI|-20KK!C z*;~o(ud5k=E@wqPyQe?r=uNtdF+<u*=dX$TyUiL)BCO*8w4qHcRa2F8m}O220JPYk z<doNR-v`jq3ji&#YE3bpDH}ECV=}L;TPy3<$r2kpYpKUpX?ImSY0zoTwOI<CmSVRt z)2dHhGi6#$**0(OTA+3TpzTAF#HuQ}tWPZ)k~>20gxE2pbqwh&eR^}R)>zUQN?QM@ z!!u~n7j&*6mutwQPfPTE2j8Hf?w<w$JgwB4@LH2Tkxj1&x`leR(4e-)12T_Q;xb9x zW}#7S2stG#vpE~H<YID{Y5L(!_d?CRSo1E8O*}eTdiOS&e{~{vvY9#EA&c#;gtq3q z>yzZ`k`3S3b1#ke-P|J!&W**VYt~9OIMx>(uR;S0`iWr8=o^~X3ZeCek4la!a`%Co zASecEgY=+TS4!Xd>$5+7@y+K?pMCkX5dnSk_wNViN6ALl7XhG8Zk?RnK7#}YQ%^?V zFq|%wF{IC?9YhwxQ)R<zIt`W&rwKrpowI|k`C$$~PmT2Mtc=}1`6&R6C4te#B3!C; zbS?BJR^QW`$Uq40jIdeybs7qw_Cc?MK1l}wj|PCoI%3-B_%u2}>LEG~{BU}o20HXF ztS=_-6eoa{$aI<XUpU@anM+@!PtqyTJJeTF_Y4sXXlbzu#T;hZrwWA;PjzrGUnoFc zv!R;8QEy-}>UlRdHda<vsH>${>Vk96H+r&|Ny2((x~0&3WT~0iqE31Wpmlh5w1d1- z$bU%p6ER$v?u9pw2zqLu@FpZC@kLzz4*@j2L-!wpJi0ST`h-AojOYIGuW!koe)sH8 z-~Ro{7oYg%#};-sn*ns7nn&a*B7lG)*eL-(J7)%}XWPEz;YfWbwmo8~CVmz`SO41p z8Vvfs1E3QNTJNMJx~NO7>wL3H|AIDMw}n?FgQwoX<4AhfmEHFyc3k}rWU0C>Ft77X zt8#nt$bv02V@j>MlPj*&nya!K%51obyTQU<&^4_dy6NjX3zd%|y(iJp+o`_ONbNlx zNFO+01N^;t`GN_)arw>H$$+PuIQ8q9ovXUo>&1O<ZrhdJa`f$c(;JrDmNQ+qJI5u3 zx}$tx%+yWsC1ZNk9G%zp-4>bF-R5<VY0JxnORsuun*rNa(758(ZMh6}uV&q5+YZ?_ zLe_fFxa#6y^rm04YX2WZk-tO(0R$(X+%%4qPd@$k%DtoNgOk+BCKs;$=ptNw>)-F! ze{(0YH9CBIXYl4W`c~9C1nko*M*w@1f$@rOq^wE%WC06D03V!g{^sr9fAb}%AJ*Ul z`O!gWhf3+6{`u9;Z=clep9Ys|$?-m2J`ftOM5hN3q=qm|P%xH`$+t3Ay|o?O81>GU ze+V~!_HvqU+7Bt}kKQ!Py3exhH*R>$b)RX)W8L!GHiPCBk7m<h*z{`G9e6tWHHURO zXsY|vYqsoR%SD`i-?bmH{%fA;mh4e0v*PhpDnj3z?V$2@`TGF+^2-3a|B;~Y0l)W- zq<AhY-Vmj(i&J}|^u9E{CCu*0(mT@V8b7-$Om6WLo4m}PB!4I=U-##C{Ml_!?OpBU z`-akiuW}qJ9{4>oipq6=ao>^NuoX7#@g+lMOI4_weB)B8ZvWo`=>JBMyBFOV8@;zT zL`Cj=%QZiU{sNc}N^9VuXr?&Tg{hIg<=Ktn{rd6sft5K1pnv!E-xz?VW{_G)DtMUK z!|EAo*${q+!6a7LV23HZAzGh$z2<KrESI%@FExP8({HKcdi-!Mwl{%R8iBgdYGVMJ z4wZbqK@b*>I!i5xJ{Q;;aSvc*^Z~jY`U*N7Hp0Z(EJQP4;v5UEX#l|1;bH<6N)*s9 zrXK=-$8^yUmk@CXt7CzlF^5FgjtFShpR!Jt0cgNq+AvRyM7z+(K;5Td5&$|~JCY5u ziCF6Hv5p7n#Mjo=s3WE`r$g22b(}C;PK0%Ybi3#RA^e3oX(-@fqx(k3q4T6WMpp_) z9bl1;bK~ym&3m`VXy?XVE+JuNax}6u_0gA4KmX=$WE_D0=IKBF;~55fn9pVantl#r zJP2JPLZ8l@iTtvggXPkYPr1lwU5=XiGWJTo0iaJ_jJ{4c|L*{F@xKPpx=w|lLoU#M zA3&Q*MpN0u0q9{X2cQQ`+Kebzvj%FG3jn>(0ch8_%ssAf*W``?QFu;d%C;IZE&9|| zQ?|v{+hWSK*-F$YcUTJTj!L(!+!b5tFb7?xfRhIRtrW|QDsD9`1JLd!0Iddq7Pkp` zog9FcXagQ~&@Fda#V(6A8@CkF_HxeImvi^!jOnmG9ga>6n+vI_2R8wr9n%8?C!1qu zJ8+SJp4qS*-XGm?Dt?em#D<9+HVJ{SeO6#F%Y~B9;u{c4L}Tff0QCOp@y_wV*v5(` z84k{k9)Iu-*{?tQ;~)O|=^sD;GufY?e)gxQpJH7*Q|-eH1b&p78n_H-ju8Hg{Fzj= za4m?P0=&M+Ow$0+?$N4yv`-Xt&Of@DKiJ6auZLD<G{tyndm*zvkzN_gFOLMKik3kx zbEAEz>>MtM0`|!0U}&hH%Vk#}huzT5@4DLEeyykDt<JV99j)#B&Ncz3gWSq*@0Rdd z`8{m{UOTtbsqxy>9=n=KmqKig`%Q75KHvxr7K{PAfh_2-COn=(z?~21yn1dnH=p1V zPz4-ft<07VnPLG`)Ncs6MH-noE3xFn>Xg>o@6jcdx}?h4Yc&)!_Ojkq=0u-uCB3z% zH|B(fj94D%bd_}g(9Q;cwiNifbcZq5VJnJs$!<$tWXSUD)oyD8LpK1l(q568ihO0P z+tX`s_ZsyXr7ok?XIgs{BA!Al(5rb`MXP|LNev?OGJvMi$k(f`@w+5ut<<9HQpw1= zRgxZ+MC-E&%vym-ql<Z|VB1qcYm$qGme`H$VqTkwC$s9hHS#XCj0*fUey7-^5gF9& zGEtjE*dgY%i+bdCbB9jZsaGkz_Ex3Xo`^V;Q3jyJUTcS5)nQQc?M8a-G^$m8C)Epe z$kRh!aKx*P`lUfvczRfx^h@JDX~HLsxg}AjDig*!04zTRtP}_Y{KiH*0Mm%Zr4Jym zmx%&{?J@vO8w1eP{8CMsoScOFNu}}Z?Cj>vo1m^7qiFO97in@MT=Kvl1<<rl|6%|d zYrCmKsnu%ayD@!<W&u)mZlJo@5b}(8XSy!L)IyHgoQ-e*I{X|!drbq|^8nBZ4nPk@ zrw6sgsIE7~0qD^_elvj1C&^T?fHLX_{zgnNi-Tq>m}x`sF8voXvVhBUb07(V2>|$; zw9!e@e=&>90+6A|q-ok9X${nXr-nuezsO)W+B%SHIyeps5{&^;^IR9TT?o^rn?~&( zdL;;q{2Rsrh#kvjxrs0I;w)l|obCC>wy?0Uw6wIixJaL&azMT@1JKZqW&ry1^b}+L zYuBz_x^(GRzxox>^DD2s!hzDp_RHrR{g+;U@rz&JPyCDC#17uSeEBlnXfBspDW)&S zEYAV7G;D7I&<;rhKwB~iZ6YG^S|whKCFU_l-4d%_Y}J`#A(_`Hbvp!hlfY)|GN_sW zv|M7*v^R8zsmW^s(88+?`HLn1Ep0I99+_DuH|xbVlh|%<2GG>KiOedE{{lb@v=XsS zD&g|%se05>2tBKCG?}PdA?{L$=^dd)A>`1rocCh@x>eM5t-I}&SAKOtho8SPi2VGu zVSvuBH30OB2<X?|c%6%V=0c$xZzBBp0y@8X0ktn)UwH{Y|Cs%Xp3yJWoUV|8qvv+L zip#;MQ`mJnzg-`&YkYRGRxZ}bt;wJ<<R;VjY#P5^>ojOQ7OmH!_1pb@8GnD)<hOE1 zpl4)Kiw#QZDqaH6WQ{JW<IUEqE&R?FUT3GM=Z%)PIAxNq_RDS8)B$&=QPpWucTuxz z)ArbPR37+lv%qZ;1{?yPUFdfRgHB~CMD3#}<aAVW4lb#2L6-2#Q$g=Y#aPXm1`F1F zvH_q=0MMDqVFWuf5ndKnfc6W6Kjcn9>qbo^BxT^JU{xSCjKabGfZ?2@z1C{szXPDb zpvgwp7U#D&$PnI$g_D?92Q8xU3Pd&#o&zTVQ6vC@Ecr46(0B(ShuCKg5Zf@ik|#X! zly~;lQF?bRzP*&(T~U`3k%=L7CK9Pt>4ZJ~IejkZC`N7hpe>)!#Qi-MjU^FLg?uuP ztxYWzD8-GMB5W7&+JxN#rAVNnIwfhO?iKJ<LT-*)CF7~(0;-iNv6^~2yFqNxORTzv zScg2d)nP5So3d?|JV&1yfaU_9(=GmqHs3^>CiYfzLK_%Y1t&DYd8vC$7@b#zrghmv zo_D;*+AlGemBy0VJ7n_=*}OvzOF<JD_4<aro*}oPs8z-Jj(p6J3>i{kh1<r{$<%I> z+HDp)IJxI8rKn3K(udrpOvIdxa>Utbw57w=QVI*o=p+w5dT;vSjp>Ky$^CW5RCV~q zE?J;H8s8iVuGfMaW8SsNkvoU5=)(Baqw|rwC;s{jnQkE8zrL7Vm}&s%0T%wuB8kvA zvu*<;LV5>l%xQx+0zVTx5#vkDG_aHlUwr-f7tc8R{MnZu|LwDTpZ?A@HAwaxK$9IZ z4d~-rXNaOjq!I?uhz5cTB3q||*dG9B+VH#0>K|0{%h#6+*O!ZjYoXcU=?AxBYYQtM zJRz&yJGIUYdDkc1OEq;RMMh_i#qU(G;rEhfh%g`O!>IH^DG!wqGzv}{f|VdrNp+LD zOo(03*#ZY6CntHESl5p<L>Rsx3K-#*G#J9fI1Nzf;N-Xh^utL;G#Ne&Z;;ND#yZUa z8WjqGOKd<uBN(WE&<4rl25~5XKG45tFoZyCNMKRtOFQ6b%>bG?;mD7Q)Qe22h3UfM zS-^*(b51vMIzerjo(}FI@(m((9_vQwGKYtU>4%1fhN#D<1Hw6h;{;gD05qLH&@<v_ zzzgUd6y5Ls_jhDp{pUAd{>QVsfBJoJfdkOD9^ATh{}#OhK(kY&pFo&4BKqlvK(T)a zpr;=l2R0{z+cT5z-s^vK9^0Fre|w)SwLY=>n<u5)TmWETb9&<Kv(WZba(|4>Fp$)F zj13J0g*NP_vAf8m(gjUq+MvxE_Q)M(u|><*$z5qbeN1fPjIWaxk2%FjYq2#lqm0a{ zQ@axXtSYf;@y}~gJF38fqOjvB?s?ODp3<2;x#Oxnlvf|gQtLL~v^u*d3(s4F)5gq- z(>tk7EZdT+j=+K@uxQR~dV@={p|enG+mqS#X0Q8`JMP%FZRB0e^BCthpA*10pL4(_ zYXImg7wGT}0O;Q9p2(^$x8uleJAzBv$ht0Fx4FipeaF_`eS2idK<1y-c&8M7w?(D% z9{q;Hu;sRIg$!#>!-mVg5j3y+4E2U&$EMS;?Xj*0Y#Tw%hRss<n>KycHUIx0ihS<z z!Q|uXnVV~gqgAr0_wGk_7c<AJ_NjsSckfpoo>d>6znCp}$W0Z{S7sjUjo#UcU!MzZ zOaTdDl@H?a!GO%wl(8Jv7lWRGlssS!Esk$}_~euCzWU2Qzk%`_8bE~SBQ~EpyT5$* z)yLm{wf&p7y|cr?foxznZ?1CriV>a$(uAp8`Z>tdgz97A`pD4jb?;oI`EqbAKYKaN zH|?eS_ER^Fn;zKqnd>j62dtX`<EmTR0MKe~dLV4s2<X?GmTfM2U9)EIyG{L_HoIbu zE@+c0ro@WbSrZrPj?9LgN@H=`Rk*It?N|m50?}mym6r7O)hlnl@x9rO%WSseb<B1k z`u+k^H+IH;t(*S9SUCv|+=y3BqMljpz)8G(J)GO|SN6l{bys%V+_&owOd0$WdMf<6 z>+;HVUwGLNTGEfcs~LSq9jTimb!&dl<C#+Q9|V$Hrr4@ExS)%!OA~8q&xFJ|!fyu9 zKUL&#>wdP#vGVpaMefn{vHQD;qlNJ1OmKawdbW>t6|3A3eNSZ%^KfVbvomAO0Gca) zAH4nXw}1cayRXTf{_`2S8x%!I5>p9;umb=nl`iT#kd2VVv|_;xE5H!zKyp`llbh^( zbi!J{<_3^jzm?xSDc(Lx9Bl;ZQ{&Y7ZB0T(g8^v#Nv~-CQQ8p-4Y*9#h-Fpy6N_We zyV09i!jDi4tczkfZvmR&VPZKHMjZ&<z$moQH@N_y>DpITR;ZJuUT<n@iaNWw#)kBO z7g-z&c@TMSKB?Ldy3q`vnb<A{Ihbmt4fz}BTIkF{hq0m;*M*x5z)c6IkI{{#(|`gs zW|!#~X$(LohU{3#rhtJE#0nr0Mt6XQH%!S2HxNm5srRH4!?+75p9N6U*`D9M0RVl@ zg+ibH7XTVTd3dEuhEfWYudqCeiW9Djo)L55@nIIqhmachBhG=GYp4_+A9fE^UK)LI z1F+uI^rM@7_l|3i&K5toYaTC<)$Siu@9f2vCg$F`7hhkrgj{3-gHmW#b*rTctEQ8D zH=UeEuAj|d3OPhpb+<|+wP~bQwa#r4TQof?naFDN4_SS~F8_#EThJKGdP7O0Nr?hA zho`1@4O@I8mdLCkxx<Uh>qE0TTrEKY66or7XigFchlD=m&nkFC@dneT}%^f-FE z+?)V3KeNpbk5+=iy~c>!81a~c4(j5KVUHo`b{11=x5bu@T2ld)%c!(!6=t>0YnPbR zx`0!pRhYs7q1^-k?a0Q+|I%mU+DufNiD)w6z-UFAi+V>Z9Du%m(>XWdni*;a&`9J3 zyo+c-?9<(*XY@k=4H;-GwL$0xG}fuCQeA@}22|JBgbE$x;B2p9*ALGQ4$ltvPmgy` z4#w*%>O{ypHMDg9ob2)MfBViSzyIA|KmGXWU&uav`WajJh@yz`Aq&r^AHo0_ZY&10 zNG{4$ZdmL*{1I`$o|qhI0?_CAgN^X|TmwMI0H9N5vztHw0Du5VL_t)mweJDwK?a}) zZ2iUO09p?KEz+yR22Hn=-y;_aHBz}*$yf3f4ujHZkr~x8PWzO{X=pqL(E5;5A9R>A z5q-=jG^&M0l|Jwz0GiWFYy!~63ji%OXT_eXN1fDq`t7=;#?@<e_F9YuvAry_7PZy} zfVTB2jX9w{3jnP(X65>{)HT!@0f0_*m~wnmp07=GS@I$?r~BMPX3UA`TgE)6zhTJA z6`>wauR+hDXAVG{^Bn-tts<Vlpt{0Q4lV#uWYTichg!w8o=z^&qC)%vKwCHfeT~=I zqm*z_eNuteWo(xTJLG~6nV?<9Q&==|v${>fh5faPdRm0td~&p<d@jdWPkWa_B-YAB z8rfT2ZJiQ6r^vzU6dJYHq=IX5Q45`kQrx9ib{SOd8hM9a*<ny!yc*Sf#|r@MET&z( zS$8F0m>M;tLdJA>@Mx>FvsBnz$N(Wh-o9_lbaizBzcN(=9*@VkGh@(@ho<g>X>@?< zVjuCg%>a67X^Dny)G1K2jPV#8H!6*%r>6|CfLBoaj8rse8{vR7188d4X`jkAm1HX3 z^hK(qkgKM?hI*WXgM+=jy`7yMI){2=TU%R03=mu}_+|8AIv=F0M+_7F7RzrZ58D(G zyDcBG6~a=FN$NG_mq$|z!^!zU`&iLj&6)bMk*QH#A#N%sjm5ac?+6Z70@bp)lp!+} zQmR;hMTpZG(miRG$RKAHE+pMg#0b)@27qQDm_c)ZU@&O9!*Ir#KhC^z>>vml@x+K^ zXGw#Y0xg<2Kz{&eb{smm|M>>L4<YSvlj%OQNM-chbk6^V#U03>h9(b83Uk+V>U789 z1H%noU0tQlm|oY{*O7-18CsZNE<L=Xqa(~?(_!h7s8Dt^ZAdEE*0lZd`x}t-OFM78 z@diqpqgFBYXG{YbMLML&gd&5L@IbGvkbr=%Iv!F*gHpd!>T?QRCUeYdj=3eaCIIbm z2%iIJGP%>zrB`(66x}*$mrnAQu&b@7y`9&7x&7LejusAma@ra~zEXOvr@f`8qg%%7 zmh-z6B9TfaR?9l2qAr=ZUCbpaZ54K_tXh>#+b-_zl=XDUxn(0AlAdl!&()rGSf^Y> zrgB<1qRjzlNtZ(0!T_|ku|h<vyxP@%t*f1{q9gaTiF<e|@wM)@27~@ykn*cd0Q%B} z7RRf2eGvqG!JuD#PM<F!6#5bie17ePrU!Po<2Rz7n_nCD%Z6RhXEL4FNS--gFH`!g z3_$BS0PSc1Xc+*sjan-JXdeU6)(ZgLmo@sWN(P{fN)B6VWqgfPLY<0E*(vPq5Ohn7 z8i88gEvLIJ>=aQ8&Fc{Hu61`@V*uI!0Ihuipj~FZ$0GDQ1l|UK4mdafoeooH>FCWm z`WS!?Gy`a!)5LR`c}@e*r56Vr(9XwL0fSD)aS&a|l7k_{n0DC8cNR1XPDkH@0^N9H zL*^57^QgU^@v3#O<f(D=*;(t?ry|@c3|Pdgiu+&u8TF|XoWcfGI;z-E;|24=fCd9% zggt^pqnU<8FSK}Q9E>3~3uwi_8lxNxQ?M}&XsT|?TzK}@VQ_UOur?c7pHr6-p;~{S z)^G36E2HEe=JmOtvlQhT-+aQHiOc+UcP^<8`z0P*n~Hi)1*d_omD7Mvs#i+QYMDi& zaU0DMyCvpOIn=gH$exQi=(}N;%%E_Wlb%Z2T}rzO38hW1vKulxUEX1-z1(9dbl7^^ z%(+%$`kFD_YDl+uYS(;YG(5egiN6&bSA`}t;RTt0N@ndBSgXRwtiE_63{MN3Lkh=$ z#!}JP`;Cr4vt!Vr%LxJ_F2|6Y_8kLuWlW~B>(zFH(7;U^bt^^PDzV(G5?fR<n@XgY ziVXAtok*t^S=2P7=INw5mq}tbHq6kYldt^x{>uCJe;hz>jQtdV27}fO=Bpcv*~KYM zHX0b|MbE)>gyCNyya<bcSgK6UO>1<zBaIEp8}ttHZXxRqLh_;D@k0O&2Avok*gZQs zxp~6bt&`K+r)RfM$Pn#?l0!uWl6DA&MaU1Leo!x<07E;#$IaOksW|z@Dz34LccMCU zV{hvIS!ii`=XdXuc~&L{Ze5QpPtdTQY>ND!zCNU<NB9-}BEpbqBtgfg3&C(1;r|%N zLwK610J=bW2a!#55IC8rILH7F0F8yc_!xLSK1{#9v9W<*H|qY#Nv5ulZY(0v5HkW+ zg$@+%AL7lC5rT8`8f%UKpxN3b>Wt~9=`qp3h^~cd9H2H<2hYyV&dknEHa7U=w9!7o zpUEXhhIHtPFy8>dUyyi4%pF=J+n0&A{86X-_K6G46|c+~KM=)uwD13l2U=#!Af zreZ^9(hQ)n9vQg`>D=hffIef%GwoxU=Z^vCItQQ|wz#*Inj8Ur#xx!Z6+(gNPza+d z94@;SMw5qY>63bBXT~~R-TlJ{lW(7=&bN!Vj^YRF!L4bs*|!gabH%yGr>W!m<l8rf zA07s_=L)y?qt_S6Y%|qpt&*6m`YIV))ax!L9obNNszhdwSlzjhubfIu_HjxG*+{UO za}}aw<V#b_<EV5t05qp^>zS0tm(A&2ZDLcAt(zkYn&_god=My}nc`cH$cAO;p|SUl zGB9s&jLNcmve2wGFlC6(o1+V6->g2iu1K!Be6xl`UF(}w=C^&xZBJ^)S3I$256$sy zYxR+|!TUG>efiBx3<Yvp99NzPqBj2I-n<~xTm-Z}_IhF4p4+j<HZ74gbLHF=S~f&h zjnOq}e#e^Gut!(TWQk3se@<Dx#qYZ#RM%~WEe>?b>U#C2#klR(uQ-jHUe89{xaL;v zTJ?38e#@<1x2m?S^k2i8`$r)@0(*ZH;?p=`=J82jYbv-iJN4duvg+fT@%@E`C)d*( zldHddr*!A}Y{8Qom@P02B<U-Y4-UPnV`M|OkEpm}T`(#*ARraR=*+OL7}4ZH`ka?% z*Cy6x?|t&`fBEOvU;OhQSeyhW1X)J0)|meM;-6pt`Ma;)`P-+yg>nBtUX>1NsNT<v zp_hji0hM8d`D1K6cyrgcIvU#^(N`1AmxF8h{{uklHyp+-w{0tE-wNs1UrZ0^H=O3W zkDiNh+iTwNX*O)udcausSl9if8$FSEb#y`NnUr~Fl<_5_b5vB`wMUkXu~l<&M;%#H zrRtX8lG;D3(8XTQY+r3sbb0ggi)oKHo@=~Zyk1OoG~OS5Pg6MyMK`U{El24f=$_UL zog`8_jzrxZTDC@3RmpX;cS_?Nk%wnYp*apf7q%VQEmvmKG4Qsc`bb_r3Q;wQZ&-Y@ zs>+!$zF~{4SrS{y@RGteB@NFhT_XZZu{AJx0ib`X$f3ObY>{K-?Y}N^(~pjQ>*Hi2 zcTb0I9p;X<AQpk8yO?bSy`>GqDgbCSW%c9hRQ&FK{LyFMJ$w4yS7gur^&J2-(hpMG zNQID!BFoK=r8ZarbHQ61T{(IpR)Eo)qW~kYtGV@K4PbNYH}Uq3p@#>7t=atTy`KWm zRF5DWfi*@5zNRxla5NH}U~LeV_)uLSzYz*fxEs*EKxf3H-k`gM#akG4;7u-Uyis!z z^Ms39TwEltp6m5yW~h^edrv!biyGA~1!Vx_TA(fl02*Ud>h)Nj6#!^>xfrhF-eTxN zmp~^#x0Je6<RN5ho1kSu7loBin1#hx=%=X<qBEp#(P`8B5FtSih;<Uw57KAo99R-9 z2txx9lLwBRs7UyRNONQorh_y9^vy;D^x5g18z&rq9*!<e{qC!$fBpJtLw|$p=~w@J z#*hRcAOgl&st*Lr(mp2XF-k<J0qzWv71KT@0615=FKe%4Ba=g}f$~eEFB*E$ptSbr z_TYmXHE!p4^zL=CSR>om*!|<#C%41Pvyrj>aIKG1s7v_mQ8#sz<n9HA%KpKUG34_0 z<-C=YG3+$@Y|d=dk%?%1Hg_qdaa+Qpc0*C;8Fsk`&DNq$pH~HIE`QDG8MXRGZQc<} zXj)c0lKIBu?onxYMwi)=hbA?S0TB)RO}RFEFBkaisPwo8yBvKzwqDL1pdH^tS7N=( zosUc17KzI&ahe1Mr6U^@+YRb~OXYL&Gzz`nDKu+&<S@#Goid@=pz2Ua#1=id`PzU- zWH*VN7E>bR$i;Q!g2h~lnBP&!x%%^lR5&y?s4FF9G2ivyzB_T}BwAmLtk0PT^Tql? zb7D-UIEP^vR^TCG14&ANp_v>9k_}?CMnwW)5LjS=acr|f^dXmfkhA^MqrFB3!sWf4 z!u*6fc>$mw|Ngf>1kk7;4E?}^ppD8WW?zu5oJtNr5XN2fFJLd`WgyR(z-<(`O{Jx2 zcWuBi+$;3k2XE}z#`}j)cL$HQoWs4P%{lK}e|B{wy)+b`?@uh$qO;@SsZnz!EpQq0 zGh?>?qO~_~$S1lix^@x2UC<*ksJbM40O&Rew~D%r-yt(9`Fa&kr@F@LY~goly*7bC zL)Ieb27tCa2hg;y57;G6gV?4O>d42GSmQ2rz^U}v6+U~1OlV65rFOH#ZW7y!ts<T& zBXae*9TmH!WKzeKj$W(1q}8Mq+LX*(P@D2fV_t5|s|`7&Jk%o(_P9z~ZAzj|ikw3o zk(D+}o@Xv_^ceuUp+YV&WQB&TNShLnX_7*HR;tg+6d|6qs8uH<s)SS(mzr`NJq`NI z0CbOxOF8%!x75D#tp+CQk?`9@Jy*IpHr=fdN%e}WjmX6p0NQD4mwyjHH&m^8ZOs5$ z(g4ui0MIfnnD04&rW*(V-69uh{7y$aqz$@sLANCtHYFpLRJ6mW_Ls7*V%k;8Itr<9 zwHO&FGXPzjssTU`9Br1iIRKqozW~q>(Pe_V^bW(&YzJxKu(1eY_9r#_o12@v&$p$e zrP0yRot+&3Xhh6l9`5GNo6IRjUl30uu!;y6ntDkFplKhex#%54KvO#jfkCRd0MOL? z93CF-@9*#J?a@zfZ*OmHZPn{_@&P#^#FZ5~8HS;0qaFbmnko?(^bY}aw?&;_nanPY z8~W2^`o2_re!@37>=_?46ywp+Vq_$*kNYB{gW=(RV<AnoSQQUS0uDI%ObMB-rGTSH zb+DtOgLV*nO&gLBGMOyYaX9<PzCas&3``lTfdLkf#~bt+(*W#QFrg2GT{6iIrk267 z5z+?t92|)OXoyxf18BB@`vO1%nFT{HM9tvP!eKV(4aj1Nm`w!C(;2Yo3%1dPLBNPD z#Kt%tBNC{EGG`SoE>Im4(xQ9X(zIQBzFoa~wY|Nae)K|NU~<SeHR7MCsnQWuCh9BY z8vr_~WB@uAlm=W<{{?_H#XJHUj2dNzpj#hw37uxO->LFB<Zg@1W$rSl1vZ1gq6db) z`aJ-Btr<WIRMHm!S}7tEH38@jiQol*mT>5~^96wBF#vtFn`6*)C^C*mOS?NI-5nAh zPb%z@3R`*IWb_%1eRs6*WkNcK3jp220cfCM0O)4v3@AZgdalCJ5Z`$1dl>rCYXH!V zP-rd)x*0%o44O%Bd=Egs6!`qhSANwDpnt&tw901{P@}JtDeMNN(;zVG)FGE9<fgl4 zPlsvbq4Yax1fUMOs14QnZ91~3TWr&iiF8tpORsk5x>aI{P1hwCa4IF7C=w@8BG9Yo zDM-z_27nfG0?^L^bce7<pq6#;J6-vttCVpR={4=HWHRG}p1y2!Y#=@{M58NV&>;*t zE35Ol<>~zDY<g*GXm@pFe?7N4li!#xY%Z?cJqu0`hG&Q46T`vLzQAyAac1=3;D8#V zlarI<<71ZB3!1!uIN-Kyss^KNsC41;hylS@&?wM<skK6^2Yg@vXsUXsjnu#)dX#<( zdA-@7<ml+=#*G_iXJ>Ru)G|`@cY1m{KR*u{J796DvyUD<dh+B6o76%B!5B1Z98#k~ z_nB#s0bVlzjYX8uOh6;TB~DF;6uC&>^$pwPfMaIRIX4`f8VZi~tJ7h7^#VXElYV8? zWk~yVNsl%WRD`{q2DQxZ5;?7HDk)zj;j5(*i(X{Xc1XEJ15&f5M=$5;WE_CDGXNcD z0NUG|0)Tdx5&+Ql-X43IGxtD`v(jTNwA=gm)<TDGtR*njVaa#u5?8+mpsNDgz;ggS zBk+%CH~`(Jw)Y$DRfA(ltx3y*quvILb~viGmjHAZ0JP}>K+A0^0BE63Eq(!@jXwm? zm7Dv?{SEU-fvk4-`rz%Y$-A7DPUoWAbLqo+;Ra{Mk^J<-o8_AaoSpCK2J@xW`NZ6q zIvonuDs06i`VuUfLogB4m)Oi7I$gN0)EBZC3WWL4f6-gB&}oi7fBgm7U!VQ`PhUN~ z^@k71TvLOw(dzEm(e)e0CpS+|Zy%EZKvT(KA%TcB2EjzID$8#75`czh3mVHb&<9So zhR%2U4>p{0BbD==!2H<UlY3;|l?nga<n%k|s~_B3{qTOUK23uOL@)uZQURtbr9Y8J zp2{i>DVX{s{RDheDDEKw2t}Gc19c7nXmm_;J~W2FpaGF+5FMr?zz^r5+Zw4v$v38v z2MuD#K}F4_8w*|lXB9gLszQBa0Gdt=A|w#!!khuUBHjdfpXj;}Zj1%jqhq5~!7+G( zWG&*((7SUn+TjQQG|&dz9)yFj<cDx+Ajkt*E)*3+MkB}zb7@#7f#-{uIJy?xVY*!i zWTWe)fft<*oyLy>Xb5v7!W2U>g!KVH({umke?R;Be|`7#Kc3zH>|^iT=prJZAKV6j z4iEMr%?=VY!S%wJgnk-B%*ghXcX=#-x?4Iw=)H67m>ybwazB6PdT?hUvcFt=d^Yvu zoGiLOYaNPvW^*g=-x+yyl)JeR-e2r{a7Nbu;LI^IoSYdo7vicg4GdKA@jmZRK@)Y6 ziS&{{IT#!(yQ(RvLr3nktv74y&5%*Y)Bw<3)?!;>Um2O#`e)Ul1)YCR<C|4wHq3z; zS#Va~f5Q;3+lmMN!lAcxOV$5S@0&9_$F=EgRcOW>nAFGU&oNbaMH*YON0w~SRb^() z8k*4-cKq=TXYR-t-LQpLO>~6vEk#pM>g!Da`XbnwqtDMlAx8!q=rFeQmOlPQe%ldT z)`wP&eYY&>T~B1ySUEOC7POHCO<~&;UA3h5l|C+f+nhTV=8pyX4Yz6AZC>-~>JIsq z*|6<auUf42fORXNT(uasJ<fW>u^HCaovKZXZ8K<E_53Krw@0i$1@TQG$L=3LoP2UK zb#uFT`-tp<mpy6lvbP(v1y9b0A2ntR?(Ac#fWETzyZ1)#A4d;XQr9=opiz-yLIH5y zwdJIy7`F}-G`X<IZ%b~>Km6;*U;M{c|M=H;Aa_vFeTn-0<6qzY{Xf6H_vb$Z7rzIf z(cyyDp>d;@fp+Mf{~AF5EKhGns6R?ke~3_3n^t-p<}IIj+b7-BX*R8<EsuW1X{dYL z^|)cprQEgXH(ja?i+aaq*mmjHU46HOzG=B{N)cT&c&8MBSyj9)Os!fXE9T6;F1oG@ zEonnb>U7;4uS*$#ev1oy#%xDZVQXl=G>1Z8>|B0*;E6K1>+C&=Qi+Y%?Y>!U<<yec z^d#!;cwJ9F;hWLM7ER6(d2~t50qA{sZp-OkF#G4t<vXh0(@5?h5Zy4B_MG|aisG&} zx@Jjit9&!c__Dz>Df3NA!b@GxBcOY-yWKxk<WSyzw#c#a_Fosdoj-gq_V6@zw3a^H z46M!gmnWM6G?H|o!Nk-f?JVwX){plYfTrU2;4goC`p>_A^`GB9``0rvL<)nVLLwi9 zkap;p5PGKa3Ee{0c+ziSW)$DT${Y4A`dD-8#~Q$wTEFbg_0Zlz<-sY4GrB)aAu|BY zaz$V;i9l?+Msy!^;Zz+kil7fb1Qw|#a9iknIOjheXVDB$;lR)rBVp>Buq23%fDQ#J zA6R}weJhJ|T3=fwmw$PAnf|1UrQrs$>S4%%<p@mO5_9mtsZ3Y889>t!;Qi9YVgLY` z4qiY*aZIn$<s;uCHoDI&3YGQIkcVai8|Wcm6oeUQx=cC_6ct!baymE6AJ8Z1mAY~+ zi)kaG9A|jr&IN!zyK{Pahtq)0ObmyYCLVwO@n66B;>&NpBKzC7Uw-k;U*MQSQiHA+ zS|V7yg$xaNC>Vi&9Wco??4b8&xsd~7RsV2bU~IrOP<m<f71)?2E8N)0o$n_O*2B9C zzWVg^J2%NjZyk76CaZT2LJJe_VnXJzN!?bN$11X@J>{6pZPmy9LbFzA(%2F~`cv#6 zCsCpCSk)d2y{`>>ghrKj&}=9gO(nIdYzU2cB9k6dMdutc*oVxv0i9!5=^huR_l4Ae z#1=K)DY1V_?VC_KszO7yg|keHt<)8q;Z*pXeLa>^r?u1>nCkJ?gwf^p_(at;kazay zv>~t1q(*K!xl=2%YdU0nmD@~ysM_!3Yveq&RAD#DT;@)d>?*Ir9t)deL8-?sup1R2 zyE<a$0Cb!K(AG*iQXBM)RvklSS<JWm?%mSKPPD!lUZ2<XCVTgm!A4kmaF)RgMUe^y z3r=Dy(wYG@95MWfd3OZhv!vNzI#jt1&yIGFuaj*b@9&-*EbVTU7N<hv0~~;!80bIQ zS-5wD?D5CHd*{!8{M}zZ`Q2YWC1U^@=f;FtFrph98)Fk=&`d{jhXM>*gy|&^E1}<3 zT$nQV7cAAHxmpzY9W<D)9M+TD3+92mxj&b$&zoxn^I+OsP5LIw?y;<Ayw5&dwha}9 zK3i_OrZ1#)*|<6#=`!ou1>K!;afg&!Zr;tMzxp14ZkLOAIz?mcc$d_w>r%_QIH^*p zKI9bH3?iG}ln!+&MV?Z^Q%o2V0j1y3)mT}s_1lno3WA>+pPg^i@C<4)fnH(Gh}0>a zI;nM3?6QzJH0ZIFG`6xypVw+r3QbCGDs+=s`@2lVR&%-4HPmhEZ+8u~xQ1I&TkWys zj?h9|WU<3P)#96M3D0&1r#ijk?arYN$6%+u+G*?WG!@${y)CxBc3W?|vCwKMaY8Z1 zd~1(HaHWG=*!@;l+m)`?9{}hMmD4P@=tM@fm`p1Z>y@-4F{({rH~FD7Y_KK#`mjqE zv}*%4z1yU684W?F-tSO(tOAwP5OV1QE~UdHF>56{nOG|oYUKj0oUfLt9A<%1toGP7 zUiz?I?X_$DPG=&l4Z6(nkTn@GB_kb1Rfk>`Di^fLkS-N5W@4&%K%EH5qaJ%X>8PYt zakngBk%z2f$Lr3Cd~RbpvpUh%*4EkB+S}U^Y05}6d<`mQRJ5?@2TDpb21BqEwTk43 zQ6Z#P@~}2HH+Ob+K!I0QRz^ohX$KL?R3?$6iVEc2yLX!<)T!#lqA`Ra(<`E$(MTc_ z0P?lcKJ|BK27yx%j!iD!;o;%Y(GfN8t*x!Nkd~Gf+P`}B>a}avXrBpjfPXT24!lms z#GH*ZNF~aljM`K&d$&cMTb{@+jXej@$@u()w*jE_#aMK-5E;oe0Q3L@&`J(K+u_r( z#Di>R3jyHZ_;m7++ola&16%BlI?F_ySu!v>ZKf;BRwN_Bnz39u8m4#=q=l_nrh_GK z0Jg?P?|>koi9^g2rmv_qqlb=3Py|Y{Fa8^PBSb$TDhllsOPz#pEtcg_E|W8b7dlb8 z@0h-zhk>=XSci+%M)XS{6wuM5gX1jGm}2P`HneL@9vh7#iw|d7{&absi3Wh49#y5o z9Dpw8y~Ug+9Z{#k;(${cbV&kEV=`<^hD`Jt4~pETPK~%zE$T5yyY&)d*sBRRRX(TO zW05xibeCSm0Q5Df@R~#*(kUfeh1Uo*3XxX9lZu2|1-&WM$~10+)?*Yag<_RRW>P6_ z2Bpnt47rS9x5BLEq$C_heb7lwfW~W;o7HlQhFTM))2w!xr6!HksNpNb$Tuj^NCj%C z(yryncpVbnPXTDMw>qy~ZYR6Sk`OYjj7tn6BM$mGfJSD*3le=H2K^fJpx<l&X!ey0 z0DTer{Hx{&XeI#Nth{mY+F;Ofvr=wRs_2GTG~_$AOZk>~(3%MG>F!zeQk%Y8F4B7K zI<G_Ncd0`jb;#SJlo*0GL&z?5Xk|{FA?83xsl*_c+O#~aoTrst<8@GT*`bg$0JNG~ zYMEKrrIdCmBxKZfcS`u3jSPoZyW6g`UG)|d{&G?twmFIkXF28W%P0~)Wy-I~#{#2$ zp|Js>-!ZVZI9OltP7VfUMniKo=lFnSq-d>`(i_u`@q%-rXsIUBQv<r3-#=Uk440b$ zwEp?V^s`vXQJ^KJvx7JBCkuPTuo#fH89-A_fm=&e4-;{Vi;JK(knccsZQwjV1JJYq zK-cSa8n{!<qHkg12LSr<<Hs)nXp9~(nZ|_wSuh1VH#8p*4WL)7t)SyD(I0sxtjI+w z9DuIcrw1LgF95V>uq5!9ljDQV-i#&_mPI_0fJ5xF$wORlx-%V@dL3;lDNiMB0BGu5 zUk1=Ty}U;$GKK6kfKUaT%7C*=Deh8<z2%fT;8q7cnvl0!BTH|0I;%o^h3^{ZHWxe1 z`3_UI)n4xQO|%=+*Q~{EOTN>TX$#LuA`4RIs31J0bq-0K!_vsCE`KB_oeI6fYR|C7 z%jF@odq?!vKAkEqj!%Z-lR?Lj!!h7g#H4B(E_-cCr;$e3TDMu}G3)$ROWf@#20W#p z!Ef;OrG5Q*Up4PY1(X(ze;^ka%=`Lto^o34FxKuKlR4){ryrgN=WArOJNwDQ+0i>2 zWJ9;tYWI&u?w^q*_U5&f`1Ws}ly4o9<xY1r{h8?Wu&qCDEvEycz3>?@oMpmE%!|N7 zM9E}Jjo{Qlh#cwQpjiQZ2BsnP*JodnefE#Pee(CGzy9o#mA7w`xh4kO{l(?$JImL1 z4>$mQ(g4t>WWGj{dTba6zzK)v18)|Rh)m2EBpUP+eHdh<{I&kT!~l6R1LxO$>r=YH zynd*7^6_uxp4=g~-!(f}yL~_w+8L*Qi%K{qDH%A%+zAbi=~t+)K@1eI5!5*msg2sl z1ZU{(!T-dPA{IW35ee89RzSnOA08g2Ptx6^uh5^!0mvu-h%*a(W+EOS1@PW6Wd*%U z>@WaLJB_bL=__zc=y$6PuNV#_4bBh?MlA-|M4?zf5<&oIFfusvOooM1scMu5{0Y$# zxXqZf0DY!khdK%!3ZFr7!c(J@r)z{rG}cVu5z~L^WaxH*`eFSC4vwc!*A7+!$U+xL zXO7V!J@;q-`unqgefRXA&wl^)mywm3mjJYXpadCl6f=b5VKE2o<7PVN`rL~nq5528 zd&xULUOlW&y?q|tUW^^C4L>~1-`Y!^Z<85Dii_`^uf2b6pY0E9Pm%?9W)p`SWd5b8 z>d~en7q#`}wK2cSYYkSjhIEKb6?Tg)s$g$S7xyYdcD_O8$c1&Wpskc8;~SJ5fbJuw zw=FuW_0On0lXBmTD!yV$tyzML8qc^WI4=s!%X<&}`Rkt4o-@8}A9!Spu6mtg`t-Ic zIA!up=+eus)P}}8Z3xVmJd-;2q&l@?@lMDx>-O@YKD=Vd?YJ{L&hVP4a!&*F%u&DR zfzSVkv-j|B<IK+gb57QlEy=Pav7z??24ygV-g|EZdndu(2@<3ziRuznZMn+Zl1=uT zY_iQ+Z^`cF&->lMLyjO?-c5dU-ZN(~7!0Po_4D5QTo6Ff0$KvomtM<p(6<24LpNiC z54g%*TW;UqCfbhLp)bB-iY*%}El=slQrPumn|x%2?Z0oV+|k;be)FNrwCyzPI&Aws zcPq+nxved)r<E}8xR`y>x|VN696LelzPD`(?S3o7*VuL62k~`o+s0?lD^EIj*~|O$ zpFMod%U(U1{Nz^oQG2%F#l5!zXqe<<q6h|<nD;sZpyTUvAOGTK-~8p<Z~yuygb2o% z1ZWA-8fc>vK<67%(aAw4)#sB#@TEXyf_etPNL2ONm?_+8iq`k@!{3FQf0w6sBGk81 z)bAox+peEK2s*bz&Yh5T*JEn&_I<y3ix-*^{vd4L7PwZ(y&JRb`q-AowHtA42TDh( zV8f7FwZ~WO;RRFerYSmaEbh4T2W)K37Fo9Bo9@^uTfAWi%;{|D^QrX@Pp3LgCo|fq zo!Q!ZL<9WJxe#%xqyCr~xRWX$#nMez{d%Bu$n;;2r+56BJzHqemfi9O=h@J_IW(_` z%{$^tLZQVB-AI@Aqwy`@&~sbyMkLenB(}NXhYre?W!m20@;gF$(-B%QMOWBtOXHnT zxoTaWQvm&aSx(Ate>=-{=C`+Ix#1V$?9}?F&q@ytLOb)3orR&h`vbRj(SL*L5j4Tk z(qST>b^<^jzc{9}dTme2epKE4?l0d^!ZaboHvlvNI?+-~xETN%JQ`9P5Z1@9VA3W1 zik36AA1c7N)PDPmls{2eBmj*eBK(Ko7=!{v3q-Ea)`-)7?a+mo{e|>D9B62pS|9kz zP@@K&bPUtbB%vn>2SGXjJ!JY9`W2KSB>+vmSs0+v(rh-jx3?k00gOveW@t#1$%a)X zH9#0tQ!@u5AOUC?d{8$7T6xsXMq@-z5>gw0dQf(ve}|$dHELAAX^kTxWC0~Egh0S$ z(AiS$1xye#+|;^Z)Qlh#AcjByn5KnsG<_>NYNS$AQ&aQ?>4N9y=g}>>_xMBunl|nn zKe+wqUUp_IzqNS$lUG0c=9j<x{Wp|;^M~L3_K&|oe+Hv+7*kV!Z*p=HKHxB4g?k5m zb;be?19{AXL!yMXW3wZfrCIx6fx2Fuy|1a`8?pTvO1XpS_}*NkxiJ0g&h)d}>GcMs zrB9EipWmZujrwfag|WbRe_*WUNJX_SE0^#aLrzQBDYxik7Of-UcNP-Pe1b}%GZk{= zV)krI?dEz6>eQ4wJ`;71dhHdfqr!$Ky!^1)HDuujE&LD@nRX<Wbb}AHu?0hFg^MrR zd{cUUSiuj;sn72$bvX)GB8{tjwTmlVao1&$IeB=dCp@ii*X4!%E+H8-`kkUIgTta= z4Gdz_xfqpIt7Nr$2O~3ym)EV6Yb^$iMc<~Ms*e;sLMmoWglVWEciEizn5PuyieWY% z=c+k<+?Sjl4^EA^$NKfj(A482&%*fhqnp9m5&zWCz_m4uk|doIOuFEigMpyeN|^*@ z5Pc`)7WA?}sNp(B`4BCgG;ajUA<Ev@?%X`QeNzI^)zwCPZq!jqI|`}b+-P)ha`<+O z()x=>a}SRw-TTQGl;DCOjZfi~PniK?eblg0E`qT?{Ub^xtoRZ4l724fxl{R)05n_4 zu+=PI$_(G!b<GXeu5X!231czVxO-UGUJNdc@#9r~wCotl+v<7Oc#R*as6y`8<d7*F zHKxOcM39O2x>YjKP}iuv*!7XtVOFq4rOni5($VN%#Tq04t>eXzQM943=;?jggF-K( z?J<dph`o&3;^QnnN3Zx%*JD)cIkVnjma}5$DUH*jaWJgcaaF5OI~cW{=`(5U**+%G z#iY8;scuW=sx9AZ&2`!GT~^x2_gM4YwnDd~(#ut^xCgr_y?^3deqzjb@xpn@oBU*b z{{8dsi%C54B)xaC(IztzsL|ROB`Z34t6058G|AHGoff^5)p8b@R%!O}W}k2ZpsfZm zab{86%x$Ag+ozNJOA%i&toK^EY)B_qv`(`nz^etDinp30zAGBJGa2HjH!BLy+OMkQ zSCul2&7|hcJ$j`mrLE|;h1~YASHUypkeiKotudd%V^jHgb-?9FM|*6d`g45X6hN2K z=1k0zjhnL}OU7@>1$=`UW6WiYy9f6cD$Pc4dBndk1T}M5qClGn7CCV4k=#rX-i9(8 z)r68AG^8P@`lTTcH36Lx9MHa?4aB0Ob4mpB>C>m85;1GB+N_9zOGOFOjdU@vgON0# z>Eu-XN&p%|9v~3}x?5UWIygAk-QB%(>5}*g&z(bbx_94w7at)Dj16qlT9OooyfDse z%_ppdq%j>-`gv7=pSaN)J8b6G=G-$wuIWMF^oVn)%vMsCaw0KRGsguc#z%)M)?$h+ zBz^UQP)R#WNowOD{S1f<$_nuu80KOij}{PR8C+OmK>*O;*VIVCG!4IkX(J4Sa0X1C z;dRL6asXb;S4rX<QeZF`M<S#xE|0!NLys9^%x7ak^9PA41e~P9=(G?O`3G^ZYPCVT z8nJ`vYdGEGpJ;=wNdo_UeSP}Vg&qohq|1fQ3)*i)iJ_aJ4ilz`;h!sEXpFb%d7*_y zBaNLhmrd@rM@Gug(Q0bEs*SpJF|WB8HJ4+SN}R2wt^FCQ_4v`6t(>)0^6{x5Uw^?@ zEf`}#Lo{GWgbeW@mrsaE^d?9+vm$_22e?iE?T81NkX!9@s67rD$M$g+jfYpeIJLlC z(QB^g)LPEkE6$<mu4<KCI@O1L-6oga<aTHUo6cqLGi$HNyRIm@7=dBjW=q6l3^<Je zzSpSgGpWozr!nL+g?*-okBR!_W*r;yvO$l+E_(V<Eu%DPMFtH3&58h8X;3H(3bk3M zv6?ij$so`kwZfp1o3xbFR+Fd)ZPNCtWt|q#=iZ1zD3a*51#}xdw+)<M#~~DJ#&b}A zzHt8h#S4f@c)o2n4GZXV=MdiTP4(x~?UOy{PSNw50NN}9X#O>T7ES>)rA`1%PXhp2 zWYB*TKwnYzntiSwgQi=r?lWpG%X*ZIK@3vN=qY{Jb5*8S_34#Y6g?*Zx_SbjJ++Ll zo@)c>PzQh>QAfNZ+iRn{8yx_8<V^rw6-F|}g)v(>Vk<?$<JIt3RRYko@$ttWKYRA< z^Upv3?6c3l_~MJNzWVCxufL}CmtTJQS$m<cUcR|}a=N@YT^>Jv3;<0F^oghzMu!+o zYHe)|5oxIHha4D&zEp;9-MV%6?%lr)ps5tob-sG_3Q<|%xPVej<x!eUgA}!779mAP zM12R51XM|w4U?4ksrU!S>%qxEQ!&AmlhL_RezISf9?*o{>abfCbQ<D*F`}!Vm$~hI zf>ldJLj=$kdorSQJLJ4g(YAo5*GhTgvZCj*vezE<8Urp<$gOibsDU*5ooG#Ik0^u1 zXq}mm*2nAoygne90(_y>Lw!*9pu#_*b`L1{D)mRNMrQh4wLW`Z1kmW7S~DMpri_sp zb8v<U&6&O9+QgE*bfhdFDO^KZ@0i&;#(2kVzHy6Z)M?2XGL2Yj)-Mcugdq=;)|=BZ z#_O;pf@182h)-!VTEi}l*QRybbRHXJS6?A)&xGySh%FtKTlJBVQgpOzO@=AStOmK& zFmeBI{PE4|-Ii~Dl+xt!jnM9FWNU&__0C%5&SLF;i&F9Ku6?Ys|HGG*vNxNV8{5|5 zVq$JQK1V(KdUR?42Bc_UBmgbh<4ZG{w3D(HOsg<nr3?m1M+CX1=D$-Qn11pvzxf5F zpMUe8U;MwHZM}R#Y3$(*|J-<BxH{L`0f46A5Yo}Zds3&F>T39>!*&DhIx2JYuu-eS z&;vtF#JZGX@3I3K>rig`;ZfzzLG5nKHd?WdS9gB&$;gvig<CEE(l{jmXeqQHf(@dj zKtoI0RD2L7g<5@R=fSWGR!CCF6dVuDX!K6#`srJ=jx?}@3LY>$ZDagT&l6Tru;Yf9 z2@pS`QPCrX^D<nCVHpjvKZ%)202=d2(mXDeCiL&|tT1T|GzMM<YpI!;8M;S^W72?} zI!ThgB;ExElX$9dg{Hrw!i(+#?V&q`1r4;hp~8VDL%+rR77V5^4~=$Nnl{ED8Rlb< z@|c*IkN`9uHSBjVZjr(m0%6dTlmPU%B8&OMum1aYKl=55B)1xChkMOihmr(GdS-%7 zNGFlv?Z7!2Chf3#7`nYvztbGN-%78|u7373-`Z;a<g3Of4?XMCk=9aZyI~zEQCj)@ z>DVU^8lN9;|MX+mLcQ_w?!=2*xt&Ey8?Qde?{B+PAq_QHZkxhxV*Q-VYNSMan6SrR zikretwUe>NT)te0jd>_h)x@U4#RHjlNVI@XELwuIhSZKBweE<o*<$N<|ExZ;qN`r> z*RKa6tCmEQOYZWimV5B2H8{tmSAF@GIofc9W~}*bHZ<?>O<Mx9mgEYbUKK*~7T<(A zvZM*l=_@UNVb7ax3W;s!&{HcUcRzrc^Q8-tQR;WoDIz=p(8KrmOv@AB;*vW;<wmG> zGm>g@;RStoUYFd|*A4@PmM68t#nx?^9asG!!!|wqe%QGc680kYmfz9x8=IVEU);%V zd0cxjVK>4ZgzU|LVV85ZLQGTmzgm(1UjZ~|Af?q$o)qrw2e%sGtp>tr!UPo^OPI_% zhKja&&NngS8Lew0-cA6G869}3!)YDJk9Pk4fBy8VKY#oD7ylYsnNE%k)7Y4X)AoS^ z>K5QdASZO7#ed&!)E-<PI6m^sk9`+z{@vR-^U&T(QO`Uy`>vlo^cc4}(~eWOXQ#L0 zX~pQJuzMc&e%vgIqImedh;7F&3a9J^%uUz8ePd*WjV)Wl^Gvp-$*$W%vzq)S7hARE zw}tFBA6d1QZ(HIUw$LKe0iaKyGx8E<J5F=pYr|)0s$=jeTR04*_q>TM=g>Vaw!~Cg zfy9PTX!<i-?%;wgy22;74DK;QWY!*AbQW4ntrbf(L*W&n{@9$}_fWPRdL$&bxlltF zS)|PGrE6=OPMg!)Y;4Kuolw69(1)_`&KsSXG&(bHq;xRzpFTW6v>)HC93SQ%w)yOr z4=HWGdU$4n3bRv<PaY(i%ZdHf!TZ-T*Edr8s{qijea7e-^)|*V-b#+Duj3cTk6%0n zfKG2M{p{Ose*2f-QT7uny+8jJRWUUmH1LL(5?oBAh=Q~&86m=~6*l__Hi%#0C!N1K zQ~RL;{Jz@n`v5f6;Q-JuLV}tz^f3UxsH8yahU#ZDZB!7j4bX=19c`mL(gs>va8JyV zA_yTpMgVA0;wB{u>Ci`N=ID+l#>eT8s9Q^I96bRlr_}J(2kK}LF$*h3CLAB9rjy2= z)W4N9D?!JA=P=I=08Ndi6vz?nJ6xUMse`FsYE`NKOeaV4E%`rT;uakbIs-Zes0|Qd z33#10@Dpj?RPrT)b7Zw0VHo%x)69)VgPsqa6VvMVAK$<K<o><KcON{tcM71#Q=9Y0 zKl{-?ee=uz{Ps7${QYk!{q_&vNG1r#km!)WK?*G|x-PVbPL8JmziD`IqnC)Rh%Tk8 zUdSxXItB~PAH9@%U&3^K?#1nir`Hyqi)rA&TKaIU4WRF&H$?jUT>$M!$Lt*d+S~@v zTrwa6=wiZ|k9Pp*C;)VF%AJ@^v;j0L0_aJvYeWwKEsPk#)Asn1Zs377I{y{`?I>Ih z&x!!rS-wJvuXcx~yS*db!Eu?;-`fVz0fSEj(5klpXw7Q?t(9vm2DJ#FH6nnP_Xueb zKy&G+GZQtZ1FllcT}}80OV(ms9TLh*GvS#r_jnsXAGZPY!<&JbHh?}@1Db(-5}vd4 zzMyM?PN@W-A<PI>A9PBQAJDgi1pv$`(5D6Qq3peJV}Iku!Qw%4Zf~=3u>Dp5z5e3S zcL6kPBx!*YJxp69GKhIEG^`jk!0!hI8AAptdhlsbh26=yF}9p$s~Kl8J$kz}d~??= z0qDXhfL`nb&^gywO&#%w0D7Vgpi^OeBFKb&-D(j)U+nsbQm<P6LHAWr8CkRr?&{Mh zuBv3>hEc6Mv4d^{Xu}DB?lWup7!g3TKCaiK5dk#wHUQ0;Ej|taT8!dz3ZPFc>e_JQ zoMeG_j@Iu;-r)$BB>`yQW)VQY=Fab7eO@BYQWAgo-g~D3w?xu%?p>{21kh@Zp{wfA zDcTVTwLK=CMzDP-?_mQjHt14wtcJIBspMDHGSM2+EjoyI0O*k3YjtEpI{r0)7DZ+v zzAI`GKvS3XHGo#N0kp&1-2tE#PDaTyYOh1(aj3mcTOy+JI@Lbj5O&L)tem&Hi&<+v z=_qBmQqGc%F`1wUptFA8K-%91&_nx6gM0HLfL;;-H0U$c%-!upvVfLUp<%T9;fEhy zym*n;AAR)E2OoR@<6`=#(P$`(0&ASnfChl3V$unqAJMqs`E!`Y!ctf?PCa$KrNSlo z6-fYEvVfK%5TeZLbUNr9UcY{w{ukW&eZ01F=YW_&oUs5v(^rUZhizJ4x^xKz$681j zQvp*tD8?ZR3KKW>@|*LybrC@OXGVR~Bivw_tt2g_P5@mNh34}KuLz)1&Qb!V%2Yx@ zpXt%j9yk!wBgH_H$|eN0;bwtR66SXy!zekgqdk%|J?IgEK~psawnO{r@1*$vT1!qd zv>*Q>IYUU=)0pGLk??TBTR<xedq+v>o7S|4egbnSYQbs!5A@#>YlnrJIKg!)&H~*Q z+&|?Z%1@NHuAVNG$zY>S3+;#W6+}PjJXE!z&jI^Nx@QP+(qSOom_>&@8m8A|Vh}ld zWVjp|ttL+Zv_}NcrI@7>W2=c%0A00;06NzO&_!Q=2Y^llIZ?Su)X6o(1BRHt+h*#v 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�_$)m4A2I?bqr#NNq}aJE%1 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%0Ab*T4QXF;f#J<+{7-i5@?GOeaDx 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 za1�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%0AF~O|3sBf1tu|HPcAfk<+L^A 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 @)JH^IV)ICM&>K`l3^6h^hiY1X>TDu>A& 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%0A(<%xIts#AT117n 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%0ADsUdjySoK%NX_&Q}+M((9k6AqI5 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 literal 0 HcmV?d00001 From 82525956fa4c0058d8c20c62893ab1ef8b41928c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 30 Jul 2016 20:53:30 +0200 Subject: [PATCH 040/266] wiki images --- wiki/images/admin-arena-.step1.png | Bin 0 -> 784994 bytes wiki/images/admin-arena-.step2.png | Bin 0 -> 1498576 bytes wiki/images/admin-main-lobby-inside.png | Bin 0 -> 454049 bytes wiki/images/admin-main-lobby-outside.png | Bin 0 -> 545322 bytes .../admin-waiting-lobby-higherbounds.png | Bin 0 -> 1109448 bytes .../admin-waiting-lobby-lowerbounds.png | Bin 0 -> 822871 bytes wiki/images/admin-waiting-lobby.png | Bin 0 -> 533252 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wiki/images/admin-arena-.step1.png create mode 100644 wiki/images/admin-arena-.step2.png create mode 100644 wiki/images/admin-main-lobby-inside.png create mode 100644 wiki/images/admin-main-lobby-outside.png create mode 100644 wiki/images/admin-waiting-lobby-higherbounds.png create mode 100644 wiki/images/admin-waiting-lobby-lowerbounds.png create mode 100644 wiki/images/admin-waiting-lobby.png diff --git a/wiki/images/admin-arena-.step1.png b/wiki/images/admin-arena-.step1.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ceb2eaa133f33ad04258fef1b459c42b981e6f GIT binary patch literal 784994 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%0Dnh?<DkGYJHm|`U>gCriEn`RpV%rX3Jf(9 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 p?x^(mS#I>a&ZkFB^mFHiBoTl=KeL2zP!x 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≪ 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 literal 0 HcmV?d00001 diff --git a/wiki/images/admin-arena-.step2.png b/wiki/images/admin-arena-.step2.png new file mode 100644 index 0000000000000000000000000000000000000000..77f5259adb971b081869ffc45b95d45ee0bd9db7 GIT binary patch literal 1498576 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%0DEtk4<Rn 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≶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%0DT}e<vx`zV$u+QwnVzHKbdr&g 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�tt>50Db1nnNau@`ZFNu(P*@~x(Zzm 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≀@p=ptp?71X$sm108N^9fYAu^yy`VP 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%0D{m%=5`lVU)?R(>nAY<Fp}LJQucrz) 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 (I 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%0An(kUA8ebW%^?foBuMUJ36JnSt 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∨78#Usl(D+b)^oy(y* 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 I~@ethi27WajFTp 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%0A@WnMRQ0D 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 literal 0 HcmV?d00001 diff --git a/wiki/images/admin-main-lobby-inside.png b/wiki/images/admin-main-lobby-inside.png new file mode 100644 index 0000000000000000000000000000000000000000..c664a9a2bd7abd2fb82309368c31fcb7b18d7597 GIT binary patch literal 454049 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%0Dr=_flnv!Yt$jm}qJh zkc6EX@3+A1FLA$&wg0IQ=B0!1r;!uBa~(`Qw)<N@<Fs`(xVe4PQw%q)5{D+;kRu(9 zv;#Txcy?^5i3c<8;4!ps0#{CBT|R?43*pZ(Qv%HD<_#2a`56%FK1?=GK~0#8kwgNw zS?5^zd`!>Y18u;MNdauPYtiJS&mx~Gv=N!Z6@U-gozTbj$qgJr>$a_Lg%c;sQ2Au0 zrgZN&Gh>(0=R10TIk%r|C78gQ@bI@XtuWg44;{!QdkD<`n_+DUFwt58+V21A(p^kQ zA;_PT=>L8v$2O8<&5c@xaL)D(NTr)F6R0?vz;N%&vha4?w7W2V$y8K*X|)R=(!7g> zi0dAqTZBO~1Nw}YFC)$=nVfudmdMR|UEz2g9hNZ;8Qf)Bs?$#N@GaB{JN$FDkr0@; z@(S%rCoPF&psu0uB?M5h>;;P9IOzTsxicTM=zMQKE0|rfc7w9!iXXU^<;P$vGNzae zuaa6yNnCwx72grlu>1VKnp=ve%ow7Y1NhG_{4qu>0cmcj(SYzz;CKcTmNW-3TBYS5 zqKD(TFL8-B8_6o6h}9j`NP_-$C!$(-aW-!{%I^J4%luMdWUgJ)+lxP+1>8eI`acKA z#50#XR=9xq?qm?XbuT8}PFYil>rUHMf`UzcQ<KNLv)!S62miKw>2Zni*{w2RcfkTu zNqq)vCs8Xw^5ylzhHLo?6&z6tErb*a3!mLHhl5A&00D0UEN{6s-rfQP42*A$4<*{5 zl@c5W;vql#44UY0ER7m%!stA`;Q^?9mc|_bvgRc=AQLw*#0%t<an*1SPbYv@t1*ia zM%_!wIr^oXHk@%oFSr^b#=qZtMffPO_NwGN$O)~uqGB2$=FLw~$1$`<7&>a8gRdB4 zh+;MI7Ww21jE#%%^c@@ZgxY`bYl@j^!jAI0vgXXl{{9zw#Iik!-h*%UdI1Y?j5iVD z)q5ynbm(1Vy|}U&ppOq^^s6A)x%!n1ukFtXK)m_n8Pr>~Zl9kWS+W<pEW`N@o7?s; zp_Td1CHpPGi1&Ie1>sSJNBFKmrQR80wpt$M*gJlyWvQczn;;;mRGzUcD|Fb&OYoI` z+l2@WCwdNO%s^-KoLw)K80A6rT*fhSyk#XVU(w1i_}?GGSST{+IS$H*E+1xGc5|uM zjSbqFwauH{#^W;102NN(PU;YW({8$;+*SMJ)CG@aX=R2lo&JA8hiTdkII?SFl%a}4 zda(CcfQ(`_mtK9;s#FmW1m&f3fY2toLpNdpTB%`*6=tUE1d1`1on7@`emip&p7!YQ zu3@`GdC&qxt#Qw;Ezboa^e2{qtm>_<sQZ6n01UC43_qE^)9Bcf5dCdi7&-O)1Ncw+ zJA`nl0dbv`yvWD{QxJ~mYC!u~PWw^7f^Uu#@lisePZLe-kpa0gqw*~veQ?{?hE+Cl zOpFq{8QNi(9+I_k#&^a$?2#v_zxD?ec`5)p()Yy?9^*au(NbaC`l)BU*ouiRm%2(U zDsaoX{MaPn(+E#8JtcAZ1V46nvG-N*T!IQNl?=g}mw57N!v{6&4P3v+jEzW$HRPFm zxWY;nwXa9v?CqKiUH{DO1(YJ!`UX;oUk0S=16iN&(hKGDZ%uGfDyVhGK+T1fb=SQ* z)y-91$D2{Zh0qoz7p9RBU!3KYv*J$gv8S;arVZ;4LI}5Cn8WO|EsWC_tER%~w|SmY z))XY<dc0)W78h?{%M5xy6~c-ns6I$zu_Hl4_mUlstd)7bqZzGXyFF(iebh^-kl!y! z@6AuZgZiC$lOLyFZ@;O<7u6koqiw{HytOBoZEWlMigI}~;9UWkg1}DIt045BoDNvN zY6vPs(liI?n&m!@)1buPF8>elP9e`i{5S#G63j&reTsT=;Te%k6%igx*oh139fP0p zmH$l6OVxdA9sNJvaHg=ySAk>>YmM50RGBB~-V6qa`Hwe0R<N)t6Ga-RZgv@CR$c2@ z0MYY1T^D4>eMVgR;V%9nDGKdM-8qXYTb=+$+$TVzb0QBYnZ!Hb^)PRu_qj94T^F^o zsgAbu3&!9poP-IA@3cza9G5LQGtI<;A}V}JAR`L@f?Uj8Koyf*awN_@l#yfCeanY! z6!SsoYi1E1Y&#?!hq;5J!CVGwt%k2aTxWHT>Db`tC<Q||w>ibM=mFDE!|8{zyF2%f z=oEyYXc$OC%Sw~Sn(^?)t7Pr(!x@KB$hJ%X%c;7xWw-Z5YJA4rzT8)kDS#%{_|vUk zl%fKu742$43BWz!{=BpgPcoBz!%}RHLXX|!v1(Ra_Qlz5l&j|82QYllZ02M%e*AnQ zwy9BxCaJ?S#qn({Jz!;)4|vMe1&+73Sx($|bo_b5bLn?{w+!b24(c%$#x05|`*ZTm zJVPnwe7n86?8GIIdVH%h-iX8Kn*#5{C6{*In@^zds`W~OG71gvLd{t=5oY)0B**I( z4GB$R_K}{c?%Suz^M}Yt$G?DNW%6VRXbUt0QXM>Ce!L(=Ni3;fE-HL!#*kin;OOAS zWd1@Hr~jYIc@W+!Mf?VZmQwLN9AR3#OSL;cwsosy4&a%KKsVZ)x?ZdKrNkMd>4g%( zx#2-hbuUv~X!SpYz|aI10(FOS4x3rNv@c4CrSJOd>j$y^EzDSjz(QXVGH7EiOFO-~ z23r>5$IEpQ`k%***@JBPs{SrNMk#9HK!$0l_~vD!62t!l9ddTk?n5X=#EG0Jxc?id z!zn*q-B19Zw{IYdiIYf1Qa6RICt#FD3t}U}5~rjP>%N<>SU~IPM~~CrpL~AgP??k{ z?g7bK<d{>Y;zv5pxbtj(e>LCDo3>S82HBvg#MlPh=X5(v*iur$`WfiN_h!g(`o>*$ zhf&W)AKH<6|7Fp5d^Q>vE)LR05~SC`J!T}qJNmeMEkb~9sI_szV!3q<WCae_$O`Ve zL+e%A2ykC{oesy6AqVkJ`p^WMsg|z1L|jDAn;74MA+&23VH>c|xhWg#k9&$Z>Bbtq zgt*n#&PUnDo}TjMtgeS{pjMeXvT};DpnGyl7Ib6R8SpNYE>1J)MKYG_>Mjj_V60T< zGe9(+_YCu5gADut$F+}$q8q+agB`BnvLnd<+H;eVR+y4Yb7FKM{fk6+OxvQ6!Jz5q z2&w!aQX&RUe0MRQlNn|7P^H``G}vl58$U61e%!&D2+Z_Bg`Udu@M_JeJD;0|i8sKi zf(m=Mde%#DUG~hgkk>Xw?@`2_Q*Ma&RZEi`ZmiBMI0RZ%AKxB7CQ=XFfQF$E39-y% z_lz6ozfhI(E4r~uv=_m@lXpo7x8PEfW57$Qs;ORuDRKn#w`pW}tw0AbPuL2pbLj2# zB!!x}v_kCL!(RKXrLe=@x*8xEs`$fTkK(Q*ZYbFTK&~)TcZ5hsFBg}8WpWU_z^V2O zbj^%rBRT0M!50|u|1P4lAKpN@2G9QGgKm|aUkSEMt0dy|DRO?J1Jp0|1Qn-yfS}d1 zg#rJy(N1)swJ8;(k;7nha}`vB5dz8SyDQpf{8m=9`Psr<lw!I#QdTsvg#HS*L_I%@ zmn-yNlAX*>{9xjgvo#yvq4tangP!+^Y}z<a4Jbnz?nxpeaV6!j-Yay412Ol!;+f)A z!<1xfyEQ+JR5D1`^^Kl^Zr!)Nn;~810Z-)p+_K=zawgGR169#$Qpa|#Av_w5LOA__ zY)WjY&K#|k@`!h*F6Yb>Q}&b2{gc>KD*WUkGj<JA{dznAS?^4V&DE1zQDa>9OplA2 z^7~%iJbX<{C{9Rx4hcN7AM>3LTrZyC|0~Yb4)H$bU6L3gaz5;lR83@p@Efgjo28Bn z_(Lg+r0lSOtkVk5p6%P$zkC$s$sNiO!vQvekI|nfiTlF8Fwy6BAB!l`^sFW;ir%dI z?W$2)s)h#D?50XK+V#>K47SlF3q?Av{*?-Ec(+lI-kEUloeI_C(6RbmQ#j&Ff<+S@ zR^c=&LYTj?L!W<>3Rft6-d_*Yu-e{Xt+gQG`ezB|a3j1OJ9_X(`R3mNroxUR!y%}? z%tg|Z>smL?-BM>DN%U}8p?S<kn(?UD0D4=3axCk!0<MsH56bKOKWMjp;@(^xeoWK9 zy4c(*!mX{##UnLDp;$0`=IE#G!sZhLD~d0w5<U4e*?Ve?;1?1lIiVCSN1*W1)dD-7 zu(JH8CofpKXpJjwUmYOo9ncwy$3scZ3}Usu7*A{xX?#q1Ai2aM*dlL?f(K40UjQoA zEhprXx?z^==EiO_Ws>${bO8j1Exyr$_pnwQpl;(I;BsJ<z7pAy<9U~B&m~)DgMS2u z4b1)>WUwzB7|-<85=tUpy1Z1o?drvNztJk0|DvqESiL&?;&ucjLh>9{;vR-8n)3SJ z!Y}3+JSuAdUda0wKr|W_pa%RB;qoE~b;1~vwRbBg*`a4Df}O>zT1`eE;Ocq+c-HAa z%`}c>rQ2WRAA;e#FG(rlR+~{)I<wdKfL)5XP|s6@h&&WH(oHg{kh%7VIP(UjL{P|F zM7(3Hw{_XR-5>#R93oTSr+k72;+`Ddb78#%SUkgo&Op=wNkPK$Jpsh~I3O3Tw_ygV zqQZ)B`2uGd3f-UdhrL04;XFM?{)@Dft+~h6<5!iqZl8Gt-H03sjG`-=(wM*`$Zhy4 zo3NtY^y&o&n<9?2C%sWCG#zuy{pgBjzke;tc{a}Yh3(>h$jGGv338%rnOImA_cPjC z=#8Wqxz!8$LU1%z^FV004sCygig+$?Jpx?crs5|s0-1~2_!T{W(OoXT36}ilh^t~B zCpodO8P@uIAHrZuQ{Ai#XZpINQkF#8ySvbf3@*o4K8GBSC!$^BFTn5-pR7Sn40)-t zyE%iDSvAP6htn;2EOWi!y{$~6v-aw%J~&C=gAHEoJ@}-EP|<rzbUT+qx71#@Sm}Me zU}W}dI_R%P9ekU2z5{huBfpA*tY3BjmAM9b658DDTaMjy1_H!4cVOjrlLv_M_>tFD znl^wg|J$U)ItY*^X}q3+K$+oIIdxz*;g)(|l-0H#33f3(z35H(3fTWMU<>XVcz(<v zS4f`PyLWoPDE&OjtMcQ3RUien<BuH#XQ15Q3no6cQ|dsiA6MBuFKlQn5j&oW5I0go z#TUm5KEma^BiqV9=}zRJB#sIvtA}<%0IZh~1-6ma8(D}8?)b!i)v~~g<kG%1bx8`s zoohcTi<|@of)k>~t*@F|IKgnYSZ;Ly&-{3>`H_~RS7li~f?W&7S^R&IA3zdaL8;+& zENbV4xVDo0{j7`==eKUS_FmzCfnF)U!#P}cGrg_J^JUvr5Cy->_pkGmfq|x?(0<|H z{wm0~wN+1&wW98hH^K}qkPb&6ft)hQ6ONg;ZWQbbdmj7lfdMK0NzmAhmtR5`8tcN` zY4QB)B66G#MPM2>dB`7d`;S!UA5tAY<=#JD>U-COY$%DYe>8B;PqrZh)+fIkMY`$W zXd3>&UBkGwmt;r@NS77!b^&b1c}x^tW{Xo5^^9IJ$1<#CzDT*Y{t4pwzt#ph08y=2 z0rQ0b-lSFa`3GGT_fmqM%pA}?)?lA|_yne&DoKzlHV&vD1cC$l2qM{{Oj^7UdJ8#q zC5;MS`<#xba*um)1v*)NM=R>A-C~}eKp>b1?dA657b^u$T+eETBnbLDh_@hVfoP$K z4=|QQD(i*G@B!6;#I4Qp^!Z*}wJ4qe?-y<S$Dhrw9o~!G2;oL~+esycfK9Me_jiXN z*w;rdV339CPM9MpzkzFNg}&fvV@@vj0>U%<jRIS>Pr3`6q9Wi$j*%}sM>F1aK;P<Q z?vtBv-l$d9Jb3d06R6Ph9`IcXJAuoVJ92ihX#v3JHzGhoxZ;{b@_g$mBOrj4ev=f! z;siWc)HrwRS72Nw(`A6`9GB=?p}0P~62Be!W~ZEqk-_PDBwF=B0_-IA?z}rE*P(&i ztPB*zwKy|}2B2Lrm$KcrKBDu#gZD)40{|T>Tc^off3j<p8nX|aZ@I)Z6=^yX)@S(u z{w(pCy0B2Qa}>;L`_o89&JR6=zfGp^u9V~ZGJ#vP`<zIKKL82qLPB5Raz0H0`SN>q zUXG1LqTVtSQ*+p)$UJ*5;;J5)Mn?L(o=uKbDy@KyTWKtByyx9;gcILTV%*dqi9OYs z0s?K+ODa`x(`^t64XPceu@^#7@D;x$MT2cWLw4`{$LN%2YUqdH@8=TYiS608dxI(i z$z9%q8Xn90(Lp;_6v?GjGb{^<&nR&jX%PnSm2X|{GP>`)NRfPO3j<wck3{nE4JtT* z1|LOWNl50^c5RMBJv5NNcj9HH-p26oycd|`Ezbv1IGq-3xV!qpQlkj!kW=9SF9_n5 z$nYyRE=9^<J!kv=Os%~Rv1GVB(zjisJ`a%0ky&uNh$;fXa*`etKrL$VM4nEbxBgSe z%xz$Oo@&$e5j51Cfgtiqg@$eN=k@FDr8N*0#0o987z6+5$f`Q|$CDgCb3JI6`2wa| zbHEUpt0R|ADnv4vQ@rew?7^qw5^1YAJyw1@dp^!RVf0Gj1F-oya!^Fe{|XJ;mx%0H zNkM9KA8JA9tzi%-m30pI<y!fK_Qguam3tZABd%fpfo^S5c~};n#@6`Eih1V45Ix36 zGh6{~=S=^NR1KKJ@>KS*4MbIX&^C_Rp(5`_&+($j*3*a!-G~{Aw8~`y50rLelnNh| z4T62~R%dcz&J$}IyqLW0HQR0lnU>JUhHakhtiII_gDG~I%g~<xraRI_E0C-kl`urP zYp#I)+JW-fw+y=Cu*^;giG-!zIo(lmY!LOnZi5FSsw~sqpXG8dIK0nxJ@0tx`4vSB ziPfqXZg>Mal%5NwqMjyGR@m<SKu2+_(!uHT4-KUIwn~2qIOJ5=Q(z5iV4t!8;B%D+ z=_t|*1u!4YR<mJg|FN&r?MNY(*&#w*kl-*4Gxs7Q0a&;=Wj$*>pr6A;dN_)7AX1zH z8byHPNJmvg=6VN!G>h`ERPm?i*vTNaTJlVWubGBo@6n{QCEwqT@?v!kzPHwp5wEsE z_nXQ5f!Swjs9g2UaoY0&edT|Dp~{MelK?siwrPL^?i>%3WCa&AK)=`2@JTiGQs*0G zHF-{kOIA<|E~3gNb0wha%!zzVYHPL46rwR_+ouov{jY&pmRW{A;Zy<M3XPxqv1Nv2 z+@`+DAGEst_ubZj=)0)uvksLbXj1+#I4WQMf!U_I-WsKN<0%8DMqSIqyojc@=e?#I zH>vUack2NR6r2IwzU$Mq+(1O5Q{je(W?TMPCvOw4qG4v^(kA@Jj+5S?3hZMaeF`aH zO<Hh?t`I#B<I9HLE3&MdRSA85YO(v^4)Rs<Uo+xOcK~JuE`<YG;B8@15M1ryf-`@i zewdsEqsftHI8}WbkXntHIA}|^n6TX~K9t0XRv2%idjZLI$<$lhpB-xXk!wgH7w}hd z!46=g%lmiir_z!zoocE$j`75AX?iOaa?db78);R+vFvZVtQ<wzvU}z}uP`+zWsb=M zFlMD-p989)JdjdvltXsY3v~?f$vhQOc`GJ`V=P$5Veov}4H5OIgI{6ygBI2~NHBC- z4-Io*O97Lj8G+uQEWC7vr+3a;vPIq`;TsWx@_pw~-Xqb<o4MZw(0GTmDMumW3v%p- zOU}mEmCHLTN(IBew2myH){AC9JScYq*u_-Nx;L<^oU<<6lJ0fmLbRCQl4PKAKGXYy z(340)Y;)1D-WJS}1t5Z7lgDj#KB9ZsZ|J$$X`<K=%IpM1e#B+T-x*opX5LOg({O}a zhxHB@Q<!w9rNia9vIU!v|2@`Co|cd^&U+z_UIcb*R4wsJxgg7P0^n;VPXZW`Q(sjF zFIQ{JIYLrqyn&>yMr$xe-EsL`lye&ovAX?P?;baHw=6Jq&*OiEll};=Kz7Iw{-8f# z8&77ECL?{@un&0InQ46MC}d}EOWOMBnMK%BiJe$GT{<!FZXRer&%POIW~@VIY7pC- zkIQHXP@%JgD?DdA{%npZFB!f$$T#;q<-mN4-0gBIY{Vy(r8xIX&d6Za8&F%<HvLK1 zKZPQWihCjaJq0%W7ijC97;hD#?;-M98&jMOhmAE3oD5Gn5Di+!*2&GrFHm14@6{Es z=(7v$abK>b16mum$pc(tN)SjMxnaHUX0e=^{9eu2ODh$Ddit4Abz0EEHRFL74g2Ah zkblXh5nj;8?}&OByYfk8@dBRJfxMBxel@pIn0L6Lqq+-fjY(k=U>#wc4<%!new8xo zH;qLO5hiTm^_^)0pNKa&t5M<t)cAi^HJMu3w0aXE*24(rae*!nZUq~{8N7L2yf6(w zG8LQ#*$>TQX`@8l3sbb4Vmy#BMTOT;?Y*HFtaPlR<`wH0yKQzbSoW+br<t&8SD{1r z*$GQltfCRuuDF{VoTDC3u<BBKuey75(@aF|MSt#tV~~(?)pdJ7m%cN@Q}i=4ww1Vg z)aL{3!zIYrC+y)D{<`7d>eJ(ycRd)eYxe*s1FOOrfe~$DH+0dpL4N91?;xA*$jQn7 z@B*Bcq^sbEzqI>)ysI>=671EM>MHkl?}m9f$`3uA`cm`z(MYQ&r{gYUlkiO6P(Ty2 zah@3bKBjG|)6D?b!D+d!hmP_sbHpA2t1EioW&N*vu;4ZWRYl}GZ&u`#%??{MYW)iV zn`03)Sh_#}D0qhzS@;hrA^0C3<CMn<G#5U516gf-QVk+`bl{=aHMC@5V@%TF-@AaE zO7V3^65K(Ra2lMz=)~nQwS<S>@muVnC3{q@$`b{3@Vg&##TdbW4vsl#%vb1$R3O5F znM99kk#q27%%%vQES{FJMB95Hgoq9pS)+0z`FZOnR)hEc{&^a6lJZFvra=T%_NDAO z+Ev02fGmzI?qlD+89hIzaYj9t89O-}3i60PyQk0N&X)#AHDcrACTzq;`_>Rr{=&ii zBUc1Bx+(pE?5)Rnchpm&`vkQAXuzuw<fj220Tgck4Ev6|oFpVX5Tx-Ri$5Ly;Z>G$ z@{|iJ?XmI@eS~mvDiX=qvV>HFP2I@fh^yaO0KXa1skl^QvL6~&xtxyg6CS&^nx^i+ zG84R4GB5#16T|)ADZ!iwzg>w-3IGM);yA(Sy^vvKL60j$@5ufF4_PI&P3dJL*5nu> zSIFTn(4tT7v}2AUFd(U+3hZHjEuudUXVhlgV8rvXdY|sd6W-wsF673gzU3Juq;oo9 z@G7=e>dy<xRQZ+ez^Aia`2*7y;j%NL%5p2SL1CjJaMwc)ewg=tg=Y?Lx|LyUKctS7 zhIfEXAr?j$G!qoj=eeT5{Di+~7MkFFlI*c=4FEA($j`G-c;uW%=diu{MF^{?Rui~U z{RnPs>7_&P(!D7BqpoYOAG464ojCcg8Ia5)uCJ!B6=*{6Z4#c=uS`gZUV1X3lK5w= zs$5`C7}DQLi#V}qp1)35Jx#LdRC><jaBTsnw=;PPQWZc~94~rA+L}h>7B^1DQX0Jv z{lRl9TaA*E7+eXeg{dW!chSU-I$|l6n4-*}W|%D!ZgaB9EQm-SW&z&5u(JsN52{v~ zfpULbm)wfApuX1)gdVe><mi8WyTgEtq^aS|h<8$tHL;fx`f{s=$$eSs%hj*@5Hj}V z4JGm3?{ur3S5W!3`EdGaHUIw;1duPegQ=|pD5~?@AOKTyA5z6_qNT}Pxrbon?ly;3 zsFiIU0tbBob!aHkfde5vWO)7E9uNG%rR4|VDyH$(kM4XkdJiT0xf(StTP)R4;y*BZ z)ff%*n@?B4UKe=|upIPum9o9*uHH#UmEmUqRN`d6>>8hKy|16xnRFwW-)v0&Whn3} zv?gGB9*NUEj>b9!9ZjS8SlH3BN{0|2luPs`*N!3%Q{_Hv&lsuqNhyo>R&SP%JC`fn zh6iMPsd(C;@&5uv;1tsTi+invx#;T|Q{Mg?JUFdrqJn&j(*>1hOAe8dH@Z&*%JxI( z%if$9K<nCb4}Mnsk##>KfNu{eN><}4tuO@isHYONQO8tlcEOOH*m5&!OV6s?6&+gU zFHQNY@z~IUlIjJ)b%bZg01$A0@V;QYAZj`Xx3>CWs~2sRTxhG-`HXGpe$H>u!FBvV zTq_Fm8JPY2PP6=qn09I6U4S5crHXVq){9%RJG+s{;Kn+X2`xW4dyN|HKff5B@}-?v zj)*ky_bvsTH*8j?o0g2kQzL@QUYUZHv1N;j@Z`-OBj@o~=Y(6iR``4KuZb$FlO4O| zeNI35|L$Dg5oE^)uKeIEO~d6rJ)|;lZ%Gu&72hfZXYBU>LP(@G2u@l)(RV5Vq(mI2 z5lgow0M5b`V=g|bOkkFjzw3d}Q+^43Ql-$5E$SB)@=19kwlE;`12rx&t*+b9N*cn7 z6gVy%m(1`ZCpz$^)snmL8DBOleLKC<CXw?rLzjDa>TLI9_`_?F2&qyPMcm$yXyej= zXB>7+Y7nJ(9dH{X{|C%z9*{F+${X!HeJ9+9yl0pzEGbW@froNtJ)#dys`Lci|J4!+ zq>RgVJ=%6D)Re{i?3QuLC=o0~L<m?bToiLw1U3x9B<Yo=9zYAAxKeFgN;jFo%DwkT zfv@XjR1_`2q@@+W<fK)QuTr8lS+I?KeiIT!G_Ny5QYnhwolH5Nor59f)4x7t90lE` z9dK{lS)Sp1TMM&2FEENV|J}rN{@MU%5MvLhK$su};?y#@!h#8ph2QYq0n501Tm1HJ zne=0eRvAxIUaSE^VE!fDs!qp$`pT(ob}K!N@Q^S>(Huf-<Zg(dUHk6@euoD5Wz6j- z{3H4L!m!il9n3b;hYE<RIR^`}|D|o>3b&Yz^P0h;d!DA~n$w-OAAbOWs>1jF4*|Y& zrV>PwXyWSBE5y>HR~6?gHwDvz#Shr5T`kGkkqSn=k45Rp)K?*{$a)dH2lq<m83CE( zHUKvVtzRSoDdV%+ykEsZk(GB_0EA?ug5?3RpUD&QiDY<+j~!JZ*GwU|F#yEno~+}d zDk0PFdH7yZ@5EDbTu&9ezK)?1)_;HdWw%y#|Mpva@f)%KkEg4SifWDaXBaxA8w5m3 zq>*MQ5rZ<2mPQOZBnMDBq#H(2K~Y)-DG3Rwv1sWOknZqp?pyEudzXuuJLi1++k5|t zqoI!xRwf(;RbEz$<#n*+B<Bd0xo}z(xNkqn-f$xO`SB|1q5&JRv0`P+xoTz%!qfU8 zp*i;Rw@T3SR-}|_+3PSgd|Ct1gv8I|)XtJ(vcR<$A$X?gw!O6z2ZiA8a2SkaxNht1 zEoz)GO0#^s)0=Qx=8s-_w<P#>Qz_Jv;#?j4kY(FLq7z=Tx4?*Agy44GC`(U|hCAWy zKyz3j78XIt_2wW^`;`O5C8{Tkz`Y@=bZ2n?s4BamYs+E)DBSsPx<DLY#=zY$eW8Sf z*Y(f9>SX6#=h(L<oeybr0np(z3a%wby6bo|l`Ty;sBDH@{z{A+m-VfJ@r;WU!F+=r zjBox<5ScjmgXJIW8aWtfqD#81QO_~%43e2INu3aBf%bPR@TzfE!HX9=*Loa!@O`qK z47)v}zx4QDN6YiE_y1q24@rU4_&6d36b@5~pfwq~5b}-~v+*8UwvMYTsLC2zLo9%` z;qXD_YETPP`Y18cfgxtFxwTPV;=yjeezjrUC$NCpT>8EHJhwGQ1^g9AL#8iINnK8s z4i%@)OA~aSz4xBg@)hFv@ZYI11bfjBXfHn$q_C|eK6k#E@qrsktBX64@|CBc8Fy5m zz=nOTJ#|5sy&Yj&F#yhU)Gq1nO@h3(APR1A?D1+djp}|K9K`@IQY=l^EAMLF<lu{{ zB$Af+d^6njFO0~S1R&@3MCKV_ge=o_!SI?_hna7tf89p^NZp85bOGpur9gpdV{m|d z;0119h+KM`gtlI4uh4I6EVl3bf*I&Ppv3W=_M-08azkSCc$-s9QZ}A*u^`W=8k)gr ziJe_mHGt)oIC+a%PHtsVsB(tdL2O+2IJ`_8e<WZalolJfKa*i|E}oN>DPMojLYs?C zd5;TI^AYv~0N|#3j-J9aH%I<VA7-zQSybQcB+YT<88LP1-a#@K2~Bemd^S_ahJ)L7 z?HuHNl$C`~n{s4`h1=nbC5vN!xEq{{G#r9Cv>LRsofJz@m*)mgj~9n?64ov55hEsH zkAXj>7YsA{N)0Jab#I!UTM2Xmg0j*Q6)fvn_hY4y-=u0S9sjz9vrvx2Ik1uVt4@QP zSxPL+5lKzsxd1tb$r&FYsQBEfG4()2=q@j;g{QK@GAb*f;+}Hl;0u`TbVWpK6E%#( zLpxP&J?KS-Xr(|nQYS$INngBJuN+IJu(;MDS56FCLkhx(V3<ulU#i&jm<VIU2pqWx zY4kjIq6C)f??QOP$9R?f`K+<S*_R;dJW*p)dd<9VETtJ^skk%kcDL4r<dxJ{e|JQ5 zZvC#PH`_=oDYo@3yE-?VsCG{@?wM@F196Awp?Qp~itj$JKG)?_w;~xLB)(*HRap>W zTSXV?yJbEr^!ONDqFJA5ejeyT!dD0vu{Hx>t|i0taNUq>A_|xNtB%Ri=%2LBwET>g zBNA>iDp-@0slOJDu+8|BAeGUY7Z%_#e(~zOITz36JQW}mw8w&U8>9j!9=0IV7^#_< zx@($wbzK(}P{lePD@yvUF5`g1zfq`v3ZtSQCp`8xEp#m^jnH&`m(EYPIBKw5HzC3b zx||Dj<jC@}l8WRK*$(2{#pg0%7G{xNB+36Z>x=8C@nmCqT<*$GN=%I+7(dN89xk3N z6m|E#j+Rc(n|BDHJk(ywDF8=3is;~OIj|_shQm@qz}EFJ0*)KqCw%F~<scD1Qk)TW zCtAMO4Z5PUc}qWl%}VJ9$B8_-qBC2cKm?SQms2UHfNB)gYq&A_+#HRoqf{5U<?%d! zs(pu_*h4Bkx;9Y;XFNqoa|iX>HOo3?!$<H>ymJDi5ICQMMbQ@ku-2E{o~CC&DX6%= zBy((EMoo-=pMf}5IssE^=@cS*OSw0F|JD-(6W>6~FS>W8(<RhazUc=D$=~Ukz`@=f z?p=)B3ga0c;(LGegyf@phAxhN*5LyQ{+F6OmRQ^Cd=M$_-WYhizJ9<FtTANOW4U^r z(m!dSgA|vqyV;CXItK~BfITFv@xDdO{IwLd&TRp%C$+h!F!4=r^gC<*Niv&TMH<p1 z&3Vz0_;L)2&0U7*K4mmEPO>DScR!zDEP3O1<FB<<!oJxoSLH*c!QEpJSc;h2R~=d* zLmT4~*f^dp*fT4%<s5Y<Xmz;#6prUhw_O{&006PHnDES0h0#Lv75is>;a8|mHS~&J zM?A90dXUQdE<oey_#%&RN(pqAQ}-a7R$b*H1vi5XjT(!Y4{rPop`KD0M0{<2?2z02 zg=gCv4=jcR7=-gOfq}Ea4|GTy>|x6ikT`#l_E>lVT>5tl_{ZN*W{`#tS5Is8-#iq~ zi-XT9=!d?{kjLzP<Xt+8afFQ|fsGzGl0f9`9!)=2I4$?YLcqj+%J7Y=*vQnxpg|0o zCmGvu?t)Z9r8lDd_uOqr+FlhS!ceekewO))KUqMHx2xxAYfmU}(alnZn8~BVtty;4 zkQurR-c4hq^08`sPYY0*osX8+f2{9nBHhmx6Cb7UwS8NVuiAVunoG(McK|k11F+FK z20}};+QGKOWIYP6mGS7B#3$Fbx4Jqm<^v+-bXQ?jl*tWb*Z8xWj}e7(C1&+6wsd1H z1Ls%H*c7ILW$zQ2_4O5aCRH0C=G@^Wemjv^rmOUw<4&5z-yipK+ja)oOMbwdU<mGG zYTxMz9H&ReXV=COwbIT-J@iv?_z9LrM<sI9+KH`d_^fMZ?kx>8tC^GF&FTOm*ja@4 z;loF2T(u~0nf$j0<~C`5pX>bC4<MVLD2xTl8HZblZ}v}=bi?qJnHbzM%xlpTe<U8v zUOgs=wUYe>e@Uqt-t~BJ(hXwnME3QPU^Z|aJ=q>C6W*~3{SvDU+;qgZe<L4N*=}h; zh|ACbFH6;+;S<udXgvcxI4ii`&7CSzE$=b{n}Sv!z5Q=!$B}%Pm(qaQc1#Wn<nyAu zX&u*%<s*KkxPTLfw&Bu<@mbO0`3oDCGo>o*+OIX0`uX3<?|%mrN2TUAN}C^aREmDI zSSE)ajb{_1G9#>k@^X@9UP@c@f*kFV*w(nQf5$r#GIoga2el`pO`wRL7`UVw(euJL z_f2djM-ves{$Frlgqx8~j<p{om*rT^zt9?go4#qu8edo2s(_t!+dje30n5Jw3fW@O zwGcH!w$*#z1fRwELPjo4*DAfOsV}mevh9O(2kgETnY962bSg*rWg;4P@pO9gC*??9 z`VD|8s1a)R23T^psewyL_vtFIAl=#tsJk>kbh_)&8u(;TU&!chFXD_0@^)QK&sC_G zlSkqBe|rFnvZ4(=FNo(shQwrVnM@y?C+_BDUyCI;u7_BS{dO3eGt?}}aQP;>*#xT+ zM-mDBh{Vr+KeE2dZ=4z!v8@$wp)seezF6k~6%LgJIW9rE9MJtgVKmW;lhv{!woN+` z&(@ZdRyP>ID@PabF^yldfUHY{)pO0)@>Os2e5@KgUtx}#+&ofD%|3K+$IZ5|ZX5er zjGn*f^Q^HY=(h=2(B=RFKlTbX5!~&ujwe<Y)!HX485+URx~t2uR&-Ye*dpx3qer|i z(hX=vG=ZwfMTl`Pr<H>|9%b~Jneg^w4orOPpq?9|Y{D=mgu*|M<Uu~^x)NZtcZz$y z2tw&e_H9ezLU|~I*OaJw@5}LXtJINH_rN2`6A)Z~TY#d%K&;TggGhe>o2wN!5Vcgl z2bb+$_4GyyPK@H;&GL!wRa=u+%*=bs9SGVgMhXaU5{q#06;t~`okn@wHT+cvl`nM^ z#%1NQ;D*)DdZW#k!gM5zua!eHnxv%(mbzX;ES?bRx@^!P5%x_jcP`i3W!#|fP;f6K zAbAfk($Rh13AahkO&6u&ZI#Lqe*Nm9nVCjPOq&-h^HvgJ!=G0IG@M9V@aT2r^Isc# zI~Ox4I`D*@E_>OtW#nJf$=-Be9kL9Z7eR&3?&WGH{yLV_)SS|nCGHU^jy4mvhuUe! zqlm)nod!^Ml{`r*FPdVTc}v%<_27o}pEs6(V<!Q0){q6$p?^H+ArVR{Yj04-4J2|4 zo-f^12YxKa;D^_f_AX$RaZ;aQNKHTUFU=Op#*YP{R8%*~>93u_{M!m4`{zkDsR6Ph zGXfrV5cS`R1EaDJaD1yECZX9N`ZM$Ksj%BEk^mSa^Mm2!;|~_O&5zu~hP#uj*0=_& z>}F(CaA-%l9|l(+_{Z0D{2=r4E<ND_>$oD_#w47WEB>dh>)Nu#AZ*z`7u?NOR{Cdx zdyiv`EL1ESKO>($tgX)Zt^##kRouO(`;7^UI~wC29>y2_mOX0o%P<5GkV75$!atQ( zK}3>%$A&HR!KsWz2C}ZTSxDdLD+Rh2+bXnV=j%5qCGzN=N(81{8F#r`qM-&GRhkXi z_!}8dg8~AP<uVf)f>im_F1MTSe7Tvp8<4B_Cg8R|q;-qD2c^wGAP@^2BbM2zdwAyR z2*bsXTn`KRR!ZtKQNU$V;4J_Zi1FE(Yss!;)GYj$bADY6^Atfi`LA<gv^9?@!O(_M zhv;0GrOgO0AVY~+_fnkD^HA$Fh<XxBWxlSL6)+;41;lV05AX9r0}UHi&YLL?f2P-- zxkJqTlPKfcYT4C4<OuO)|5Q;pZAKVT$MRud-;{#7ot81XVuK#Po7}J;@}RWJc$gTk zNa|~}4*6j_V;?4)KtOPRudU-2B0akyX#guV4l{UENrYm7tN}Y3NPu7(55S6{DLWG? ziy$XnDkSTp{bxvs0VS9j%2nE7V|e}x$V5&9<0Q_?`*{Vb<WeCM{WNP&ScBY^GepR8 z<Txn1b@rMv{9$dv#0v}E4ZzVnEo@0(3(TyA%Uj)GYaArT<bOVnsd%V}NLPVY^!~ZW z)Mr6?^qc~-0Zwt1Eh<v!VCQj8&;z8!REW`pVNX?n9JQ>y=6roUnurA7&JUK*z<G=V zYW5Q~AXX26?GHy6py`!=E3Pw)esO@<nRCsetp~Z`C`Zd5zRt*UN7^KAL5x(nG}&33 zK7YAl4D^{jEGTJ=6>wr$04IIL0+5hU$GC7UMU;@lVTxDY^w$J@3gY|f!MYE^8IS@h zpe}{;+kd9s?p?V%oSm}{LdN1xB23EL5kmP75%#KoV4_35*M*o|a_qXmq7`eMYpAy( zA44LBnFhko{qOMiV}HYut5~?&vR`#iqHyrwLGcB$oVZXvMX3?Dr?Dg7Hoy#iM+%09 zUzQJ$x{RU!o?rh)065%NbmdsVYat3fWo~zuz#m%7PVrpVZIbKuos%|?T7WqAmr<04 z=Y22og!$h)kRG(@?~4Ez!L<N*SV_<Ikxk2MZztn8HDK#p_1AQEZ;3_6Lx4oA*JZoQ zeNtSxSPxoKO;<yJR%yCnIUZtNObH&Mi*4LNU345<7jlgo=|hS!=zz14iE<A>nAP;8 z?3#Q6HIC?)jv;9IY;NgykAjwOeof4`nizwggtgy;MPf{-`Ev~oYlUhe;P0Ne(};R! z1VJg`&UiHFllxg8wCz%%fyRjW4qz5wkua3!c=%ZD+UR>1ebu(I$)5&x7KxF{beNi$ z?||OqIlRr|u}MLUqDx!@5iIdioYF@U{Q0VhoDLAsGyB}WfnQg!lAZQ!k0E<FAcH8R zPM<|Sjm>~6ne?vMDCb?~PXsrNx-PUY1O2sCpB?3Km1Y$Zk`yjJlv)#t5M@=X|2CGy zn6v`t-D(!NK_usqAp<wFtEU!%Jbo%yU%1jj31yk(6{sQJ=D<R&n)q{^gPQ8?8?=gW z`)u(y5Q^$uq@!z^aolA5{oLi$f%;NeJ~!q8;Qf3~w&;1P9$CQgpi%mbk{08R`^uu5 zr>)BM(G2ukd+$MMn6t%G8{8wIecglkj&776nAq1Q8g>*MMFTOfCV6Ze$>e;?g`u(3 z{tNSyk$JZvgCsUC_!k|;=j)5$tz$G%O|E>&KYcuA&_rDY`0F;((gzAl#PZ;zZ@nwf zw|czRf<aFmiaH7TD`p_`EQ=;~(G@?`lh(U{T|{=;)BhZjSwm2DaHqwM(7zX9t0qzV zRQ9PUl83_e=d#Gztuj_&7oXOu{`5~+wW*)QyD@o6sT><Y#mmFsFfIbttM+)H{CL7} z)``2g?5r=YxBA*7`$`p)c0ds54qf-5O40UKi(pg#xSd}uvOO-cxsH0YB7mJmO<r)O zY#=z=<RCHH3F0@6fr{%4V4pHeMek2wI&UK`pyy)usk*N(moI(zrznl15Om3b!To?b zZo_(Z2paLLVMCIn<oVaFjp!FQZ4xgW3TKFde6r2doeDeK=R=EqNU%MHZZBnI=9-GL z5siH)J8K7D#y&XH4}2-Gpr+SOQOZqf)w<%+u$SA~|J2Y3m~cO(T-ECc03{k_dDsDR zFRLXMoXBoPq?NGrm7MPD0zEPzR0A`^i0?-Ee>m;dAp??munCI`u|g1KeN#;p2h?V} z5nLxT<43w!*d?Ms=0zwmc=r@F|JPdT2hobnfGBwa6Gv@0K~dvohW8S{)n}P(^1ylV zTh**hG7w$@#oz{K0d3kWoB8u~k9$+bOYT>@UBPVg3zMyv3B4AXzdaIrHPl+)ooS!) zh`cqe=`|}Rt*xWNn%ap8iH&@WIC7k7c^WB2y-o`#Ya@;ow6-chPZ=Bhm0|Gl&MQYQ zY~nyGtLE<?z;L=y3#!4blU81h;;KVPEeK`46V_T^2@-f58$RJ1WFKbIr2K`m?N^Gg z4;sqw$!fS28r8s|jt-mOF1J_S>fgxacQX>>*n5OXtJAI!;%xTG?aMuXJd&>vV{X<P z(apBj2KMkR@Ey;f`VBEd{jCP(pLQDevG}u$XNoLJo9VBA3|`VkmJ3c)_ZA9}YKMkS za7r#Op;2SpPN(eYk>}oW71$bxT8e=acW}6&6!qGpvvl+XSDZn&Tm2jXf2l^TwQG+c zjlP*xk4nzL@9~za$GGeDX~{_us}((ayu7gX7zc*0bl(%i44iSFe@Mh!%MyNw)S)(s z@in<Ca43I)`Fyk@te^I>=6w}T2cE&6r{vLoXipUW?Sj(GZdTuMQO2qe&?SP&m?IE2 zi*_*3{&EXaS&T|$H$lKx!H__N3z9F(p!W1AkRud=JeS!{o6z1HpB-C!tVgBN%py4S ztDgDj$~eG&MpyRKhfrZ5TO#kObz;g=h-HYzN^XnRxsd>X;FB$dk6FnO18%q)$oF1@ z2g<Du04`WynPmkhPs$~p)bwPi`KB&j1k=sPAK}UT_SyUF)TfBiUyNI{=ZINR(wU7w zxn6IMMm((SoO|DHQ=C9$71a|9&2{hvhN>m@AJALo@y=(z?2AlLnR*5sB(A)!!m zs#2;a56IzK9Fco*dbxF1;xQyISfnht_$?{0=i!sh0N=F{H$OMZ+x5<O{Hxk$*yj6_ zgTRVplm=K`6$H3^76tVDu6~QJ7cV!NuIBKeQ@7%0QYV}Cb^z8pF1o`K;3MB?-|gN6 zyw-q#IUeji2d!;_7=`xSfw~^Ds}RL6r(YYy8{J7U+02!6aec8E*Z>wxcwqaiRy`Jh zpwZenq|(Kq_UnwrCCT8l#wSUhmEZ5!Hj;p%1#w*CAv*8QJt<_%jPlqL`0r7(Zt7}P zE$+2~sn8#&DQ9z^!*Bg!O)Q}B>E~c@`5{S%0gjLdWFhbSt_Eh_g*mvs6(sRfo?s*P zcXAx|6LKXd6HKEziG7yLL@#hY_sHzl<thB_OX-56&nd->`hT0_O_5NXA;&)4P1C#> zov&1HOMZ5~`tldVWOPO@VEg{#e63&C_ue@N+#|-R9&KJH#@|fOOAjuY2&VgjzW*6^ z2mtj_uB_ILD;b*r8!DNV<J9I}D2>YQANGUq><3@j4}@9o@Z#d5e>~I0N=lG9Am&GN zFvC8z<$zI6!y?UddlP%IPF6<aC%f}=#2q#hBNkV_4Z4cHU>-Q|9}WA_E%C|<>9(Dg zM^)-29m?*V3cVaXNR8KVvjn+nUSrSt{?|LMrpU5YOdV4nyymV}PvbOB-<%z|m(6*B zc4PaJ&y?S-eoO=S$XD*?0OkY3fl{SZy%A<@w+`o?dg&{M(U}P6XW|VL-6s#olQm-I zVZQvO;Va!!$sn0_>ISh+7Gjf4VZ@`7<!&GwrZf6e1a`_zc~p5ngR4{()^cV&iZr-` z_Y_Kp08(gFoRfI_sz+GD@!v@7>4OUmn=@2U@DF0AZfcHXk9V0t4)~;gg>^@snlu;J zPoKf;1_j0<c5jf@A4BI2<r+Jx2FKhP*sPbp1KuWgL~Pz2IU;e+g2dsm9+YE8Bm7zk zEZfjJuNDz)xXT=CX8+rjfk)nT9uT9N&QI!~+Ils9<wMY*iH8?721PG)bnLa0y6uDi zEQykRi5Qh-4%L7ptj;MuM1feP<{aWYYmp48G>H=u`8POb8fjmJ{IQicMa?@IwL1wS zzW(SS14MfLG9>!lvGVU_V1)m~M>Ad(bt#pWUQ{kVK^obdcYo7GiEG$=DHgEmSHq39 zuZ+5VcL!TW<!fS=cIA;vxtl?NUFLXs4;9vnShVC65HyslU0M}Uj(Mh+33^>0UsB2n zr`{;up~6rQ$KL4I{y4zsuJ6zKm!X_b6N#<xJJSyu+E66^x%2d8nB~Rhzd?ne#F<wR z9JH#vA-m(iF&;RyyRL(5mUM7|jb71LUV7J$XZ|EsBz>m3ss6JBT!;Qm@1Z<4tyV== zLZ()4@D^vbxelZ}X@iYzz-}#A5W8|(Kz!g<?y2T>CfBR>@5_uPytv$Rul!J^!WoBv z<+S$9raPkWX9}Rg>pd_+JjNWmNTkdXv(8+$E?T`%FJl#RFOm0f>jH_P7SLP^d)*P= zZAzeQ<g|j2YHE<G&B@0pb}&)$*7Zh@1?6Xt*;ApfMr{`V@k7n;>Vll7hH@UvE1q?E zBIZLS&9IvEuY|MC%>F~X$)^u4{rqrm7H>X~vhb(zb^Yc%y-V&{W9OaW6xGjFR-#=9 zP6WBk+KA{~1<f<kTrRDzAH{W#RTN1_@4{;I?spjX+uFvO+cL6RY}W0;PEyX;Kq@Ru zJ@1QA>q{OL=32^LhAOBy>b;Y5!E!YwkZcN<^y560xD7kEotzbaZ3g+znIORKMS)e3 z8Ey~sG78^dhVZ-#L}=!H%^w6c$+wqCt>n$+>S140Mwjsg!-e1+cs|Awf)bH~!>G+L z(vik8(8f}xS#KacezhJoFL@Ci$b7r=SLduld??T&taQzD5Xq-*3UFsm4bQ`y&$y5x z$i`G*ZpCb-yJ<QK5g^l}nl=%Qp)ucU?@%A#etHB^aO#`Z#lKlh*=i&qNIozSXh6C? z0OA}xgZPv3Lbp({J^OA+zqBL0@?9lZid|Q$2fvpGE6|WX5?!-QT3ef1vQOpY={aAm zveq*33A!5<b_9~~*f;$}kbq0#4@q&BGNFNVTpvSE*l#-z(epQ90kNmu!G?%hb1oum zBdlJamlo!R?oj+QQ16n4WVR_PW@9(69^7_$G~Kg=bX<7;?He$5sBJ%piEM$H&E?N- z6&XRQ2d~JI?RRo^X4uPsOrCiLVH*^E-XW}-Q7UnHV}YZbSpnN>*auuNr}sN4=I@`v zzRB+CJ3$9mxp~azzjHdZQs2qSQ5a?+CdAz3GU9P$5bY0s$|d0bp}IScerkuzmjrGV zS^C*jIeA$63py$*UU*9nX@NQ<8Hd12wK~y27l*=H)XBU)aMBPFjZ-Xk+<qZ`i^ZW) zmO9$_^ohsIAI2VwI=C@f<EjjQ%8%8+J*Oo0`72A);n8)ojlU8f5)A5{5w-x8OM-6_ zs<BCSU0r+$n^u#ASg%)mpyes%Z=3O<tF_`{<Z7O@{v#Xz!5+C`b^yrDxnwbF++P1Z zKyb^LU+a5N<S4eKEG*GA%psXV4h>-|;-a=<gl*T>AjV)jW_Abu*tXQaOH3Od|0x?^ zzdKp!{+dH!1HZ>9S!Drj$IeISax^t7Zh@stnVTbU-p+qRdC2%d^|z)w8<eNqiEfmV zi5y$^Py+`vrGIt6jo;#u_0iM+dDe~{13_X%`(KdC{NWR4n!`e--)P4$#fMU`k&uF! zW)k^^o~`KjBqM!TRnfbw+(2&@6|Jch7Idn*V(LpF7I5SZuTQ-=AHaGR$T{`6dGD@) zB~5XrclWj3N8e~`Nijjo_bjJ2zgmB`;(F1s@flh<4@q+l5?fKN*&dgiU~RyVR0$|? zi#l!B!#+!s8p9)s5(aOkTAzzbPgJCU9UEMp`V_Sp&K-EWu?Gt8TC6hzzXx)(H<uU9 zK)hcFmXh@4t?ukWEY%z5HjdxKV^cps(1OZJG?Yz%iQPMKr~^#`^<F7i0lMMistI66 zMysLMruyQ;yj2lpP#Q`w4AI{1y0k!`rd!PE&=R2=|7O<WXb_Q}baxeD&Gi-h3%MhD z<mpeG%{p?%p0r8ytnhuP=EiyjuK;bMhtccAJ7>F4Z^x8(*UPOfkm5?}7$Iik`IZq0 zPRm`$o+fGH=DGc8IqLXhu7##Y)Zl+}!1jbi-4#xKYQX2fpPW%-_p7#AJ=yC^Z9wQK z^GYu8a9tYf1ru*T2p+mck6IeLuQtan+g`W%nvCAcA|`!*SKpZd#}Ef5Y<~rSoiXhN z)QL9#ttB3JnO5BxfhB_*Po<>%ly2QU@zvP>wN~}ti1g7JJr9@vb+g%?T(xw8B(S+s z?uQsx_&LR9<uxbFg+X<tJwO5<t+EeNwn*RE{9wgqUhnORjZ>KZ?N}+2LuL15_`pa8 zn}4C9>(q-M@D&GE<-3{pED-6#+6=z-n%>f({&rr%7+iIIT5=Wv?m#v&3sydQzZ)+~ zG`a`H4bu_0O^{9|I3V3795CMqG``9<d5V%oU)w~+pQ$UEi+f+?y2$*vDv}EmwA;#p ziT6EdUAcyAR$V-a$$h&%A<QcVhE!xz0v$9RomW_^pEFLdS4#Ypm0PMn&8v4vA>B8u zKai_AX@JFj<~6<a$ULXNCc7*pwn$oo^>zq&;I>fWvaT9Kia|`Sb2F!6m{OWwob!cm z$eA(cu6;i?42>UfS9o#%K(^x8(CLbueR2y%XqrJ-2wZmYagqtl12T)=ea2pZp!^>H ze9;~Au|)5z7Y(v}G%AI5jE}eHIlGO^)~wJfF)f6xP(HE)(HGpM+@_GD;wSD#gZqMi zvF94+*5z}rDTUIILu{H8GGkvx&8P!*n`(5{gu`yv+NQtJGZ5Oo*l9Z;y+r`WBKfFg zdFoB;v#|f}Q~Q%}gg1dG<f!@MgU#PT$pGouEP>7_@ei2h)d&KieW<w{z#zVzB@)^k z6=a_HEx0}px~689yjlx*L0mHnlEL#gQ<cKQX=hyC*asu&>%Xc2GDvw33)edOx7+V+ zDRBpv9Bw57_2qBcN1f8@wF_ppx=KK<sO?f7zm$LK-;*Rjaim)jwuEN{xUw3}lw0E! z8+N%7*38Cd3~J(?-!NN)Rkq`;yb@tLB=(KXNk%*I<p}VGQ<#kd_JBQpWM`BSL$SK9 zqDnCTi7z+5m;GJsC6-n_@}9*NTGsQ>vNY!s!YKn=xm_}LZK`>DDz$8Z0|r<4pKSRc z;;hLt4$ItX)6K&;S9mwM&CIx^;!1Jy<7{9m#PWFgkxru@5zb1`-#z%M&SZDfH*B4C zIV^N`B-x@tLsC7q16`o;=v^9$FKKJ7qOBEeJ`NV>wPR3zg+70Xq0Dl5&6FA)X%XOI zy>`8e@R%1-u&-4j!IgCasV20Yhdxi|{(<e|&aNZV`$o_v7(5E=*Bc?nRNRK}maU$F znvvVi6&*%h!VEKFyL~lD+u}gbfzff@$=W+ur|sOzPY8t4`i(%?^?$AL%>XXUzgk#K zWhjFG(WZAIkfR9t^0H)*%(8JnC1OUv`j6&((n6WbT)N<^s|2R@t}Z~({!5MH_Xj^> zk*_^BGbD`ZonA5XMAkzNZF;AC!1*-q+0ltQf*KF-G9GFLSIAbn1)wDvZ#9|b7yd*U zGx?r}793I^{D^Th%{+h&+@JN4jaHE=uz`$(X;^%ft3k+w)u{`#=7hI-fP4kX!NnCu zmH-t!<%SI;KQ9i}q;~m~_0lg4HZ3~D!t*Q$G1@whVXx7ez=esHq^w`tImP&q_kCkP zIYJtU!_qF+a<qYUHP`kHWM8cN`P--Q9;1GpBlVR3wjM2kvBnb*<Ts5pNVP5*j?)E7 z``;2nK6UBv#xdPwGxJShuV|2bq>7SWw8826R6P##R&o|IYt5?mZv#f|ijii|u@52| zawj`ogu1@je~sR6d@Rr==ss|#IW2Wmz!pzW@U)nrR$A4><KQDU3a?tN`rc3r@K?xI z2D#deZG`Q8B{hyF+Jg;qaIhk{*)pMDMzsD@X8-QD_fu5GCyY7dADe>{7=IU6cd=g@ zNEMmWbmQdDRhF(XQ#7WJ>Hh;_tSZ9t`DrrLraeB(=ArnfmEZSX{}DSnZ0E%uyOwJp zRN-4-U~-vL1lfnF(&Zc&O6k-B2{Ogyw>|4Dl#BM5h*$u^**6iBX+;QxysjwQVQ4Gk zG2J7+ouw68UeH_d(#s4jnYKY6>pLz~RP~S}sLeYz=gdRZ1eJ{&V5BJnNpoI<cDg#f z7mQvxs2)zx$Pa-3!`bkV_&u=ao<(#n_Rf<KdP8c8kO=5X^J892aoqNAA;5nzCBlTt zNnwvSf9QSNLoh}OP>+R$g#*C;9Bw|e1K4?__1-00d?A?Fz&9-&S*1AoxvIH=1Y67p z2F-j`Dg^UQPN&5x78y~{7uz{D^?oCkQz!p83%&vGkHCN+A83G&4B6hV2S^jzwy;(& zdf7`K!%4?TxoTDc4aFJWQBKtOAK0`%VZf8F)dtnuTRzokjqWGH(V{r}#evfx`S90h z=NeT=UhCUF`fcB9ppX6W&MSUK0#T?Rs3C*ABFp?AJx+lVy9(Q$$C-yvPTSJJB_*y1 zWiKzkHti-5#uFK!9waMovIk0n6UT<Oh0ov}IQbMbwBLE!&Azkq9Q;c7?iR#oS?<=h z&Vq;<%0dukBFvYPub~g{Qd`umUdr12?r+EuTM}Y=$xPHp0CF$>??fLhfi^oFFoEvg z{2PEStDc6fO}Q7O_c6NsN!qY@KL~{MoTc;az6v^@=+GDdWTr(yfq8X#{$XqZ0qCSu zVbS_+Q%SQI!LRwr)B2V9Gw;4?KS0(}im1SUJ)3;py`}pqc;4i~u44pOrigJM1QAKI zw4U32Nh}kUt7~!{H^xL4!aD3YgP1u}$01QCdY!oKB@k875PJkkjlyTy0<?J48D2l- zegkfx{XE;?f>x34hQ>u70)kz{0#Jx_B$z!&{b^y5CXH<W+2bi?U9o0CaV^IWOthFo zb5ZkFSh4OcNrTDiHc&8umD-y+osZG6d!&w+2D;`x&Rba!VIMyI3w&;}T9Wxkx0KI+ zh(DJY<uw5R+6ycqk!hAUhj47^1C1CXX6`34QES}POt2f-guR3K{4bQ_c@53rk@dRA zuKa40u>j-Njrr9<OpW05(BkWWLrEt~mn)-4=C88wquE#qwN|N42i4?Lk)Ku<5rvRW z&@#C4C>?@ce8d0RNIG<+=i7c2O7$!%AC_MHV!*|Z!t3riL`J|A<RH;Wfcw2+1~d$n zR(zh-R3FH?PS%rv+WOX0z!v5)9A1e&U`bsV`v87?YUOYX=>etUZ6&+F+~m*8Pl?W| zuE)wn)JMN%$#k6?TtBaRhY%le7jo3kEN2AU#HYj|3W+n(RZ?D&L7}A)MdsT^^wEuM zOFQ79{j5(VICvd{#u*c(o0~o@&u|i@rsyHvSK|7_3i5&2f-X}Zv#-MB_uRbfEz)sJ zv`oPS(|3c}h{2Dpn{HjGG67x0gKCkweaoK<Od;%P!B3j(HnbwC0oev=@->@h0-J)M zUf=hzn}5#X^PLY%d>Jg6x*$zUI%;l^)D>g&m5JKWD46{*#io`(t^f2%id<$mM9&Wy zt%5epeP%brl6%4WJ5Sf$qc{zwJ!J^cTm^gc*l5JeIDL_cpE(iiqr7Ny!5Ads+R?0= z{8~}lAV8Exl97?W@h198J?gVHtA(PEPLGNpv8MDAmK#hNel`znlpb3xVPCWY^kf#X z;e#wo3K^8t>NT`}I&bhi*qJay-ns%Jm8qU&E28GplTO#W*cr+8Tr|(Gy<rVgNf&ER z=LZl9$EQdL%M;9J@J@p3Nv-w7vp-@<t_=)(l19{e(XGHG-kXKE3_qV!@wFht?LL`y zDdE7H|N2OXcQvU2;}993N^QNw&pG=~u~T7>>A+oXo7MwNZcIwKFju_pJo+J$o2uCI zH&*A<sH&=@u@t{{l2B^l3NY560_mW)MWN;8!&4htBN;T`!?oa)R=fHa5MpY^nt^yM zzIZ9B{S~P+1$K7s3Q~EM^ov-_*olZ%$%8;|apie00nUc&$_~TKV7SYf{U`~)w+#XN z<e5V5J%%pZIv_8_6h3(te2Zu+aP158uk-{rNM<gQqD8u!NWuQG69dq|eINS_g5*60 zQojkaxb%B47`}&q_wF+AYstK+!hvZE^*cQZMSqo*qm;W7&rs*XH9#Gk257n^y{{0K zSWlG%XP3B?-t{uOT5M~&jzzobia*G=nHj-qnYW&agNm_f^GE;4=UyxAd5sE~Ym-yG zX#c?T7Q7X<%>fFBvo0y0h`l|OCUG3B8R(WBCQMpDG^K9M93}TPwubfdxwUB<JFupp zcT@%PKIs;adQ3Fr_-u?Tw>7G5124H2K5qtCa5fXBNs7MdXF)8o5piG7wfRxrZ@OMh zjeGX+%uy>D&^kYnV%ok>YPuQ|XP<gah{Bh9oW2$DR=`WyQ7(gS{9G3t%W`$c|1HOX zs?Iybe@IY{77I$9FHZ?9v$U&T1B<w0J2eN{yiY+#i<bWq0jrr(XSXo@iFPd5sFxiy zE~V*G;eypcUi|~*fZ3OelsNv@@bF&fYiM9snd{Sr+Kl?pO744}=52puSP>9DByY|N zzlk+xGKM&Wbh}puVd<(Q$WR8`Uoj2P91!I1m7ZM1i{Hk>|4!NZ=t}&H+#Ia9a&SGq zQp=N!zvXP%m1g6#^jkiA+3Kb7*jb!8G5-9f!5{8{dhxYFa${MZpDf6yO$8QAzaFgK z#pmZxc*mrAWq}vgEwWLu``Tr7m0ShH=CmiL8tewF091SS3-G0TFgqstxUgK9Enms3 z)@RITy+5m?2u@51Lwgin9@}3Jn@p$pASUv)aZKg9qZzlUdEj&%0sfozx{Q_oc?Lvl z(ry0>@9nG=aC9<noeo442pYlKG3w0jJolbKi-bYIFXlUSU<MCKes#CktCB^95tk<# zUS~np@{99H?Ns9wU56j&Jm!1Ww*dBLW%|xpey3g8UAd*uiKS-HHP8e6Zo+5aZP54! zve|BxGoHB(W)sGSOBbvoDnE~LaRV`*l`~GVuR;+LY1;}w#uYFrhOkwzybiA-X45T? z(2TeIj~$1e2U2s<J|$$s>-Zw(SMHb{!U;~xXMMeSp(|Yx(q}5;HNd_yG*59-8JpV? z3*3%|5Fqey*n(VW8OU}-E}0<jd+!G?MCM>7t&V1|m4%vj1+Q;wtq9lGfLkD-*J5wo zqPI(cxXFU{w#aBb_BZV+B1H(rjurV5*l$ETXd;zKj!Ff&+p$Nwl_;Z{Q0lM(?W8Xi z1}iM_K*sP|a2enQPxO0e6yDN*?MdNPhFP!QT#ugJWF_TcG2fWZ#0H~7qyl>>4|rKp zXVT3Hn-eCdpt0-Z!t^gE^&<k1AK>%VaZ>7(5Sgmlz%ej8SSrzuued;+BE0}KoWC__ ziop8Jgr;ANb_VS!$WSC)xZ6rekQG%cSin55ZT<y&nI<p>JST*)Uhf#|ow%Ru34tR= zp#7SEhhGSAPgo=UkXSzO56Fk$i^CyM@Z5s^c1=rK%dw&GE8oS6tQfyF6|`fj%G@Yl z>&+I&A1vooue1cf#$iDj3`c{)TVQL}q<~dP-U41@-J1Bwy?TnOX}Oj0-&v=3V2Lbk z!gU)EO9Mt=xoJxWb%F9I?}GhNq&s(5kA#dtcHVj`j8`!qsx5&8us8!s4&E&&-2%4w z657@W#Be*;d$VKoP|^i#(SsjhU-{M@H1z@2z#G&24mJ~=u-I^w^aq_K$zAYIO9CfY zBR8^9X!fhhZ`vEv<$|HFv5Ndu58W0$S_6Crn*0fH6Q-I1Z#_JTZr*rOk#_-&4;o>c zOG)&aCuhl3Y)5%K>t!L2jjTgEW>8qkAUDRJ)!w>(nRFIr;^)GS_YbEbX25KjqA7Yi z(l!(v9sPi+vjz-<KLwgJQ7SY=QBb%-)oM80(YQuI<%QVhfPPz-J5j04ug|)=>j76F zJkA;h;9qCpLX(>3!c3jh^>+~*3Aw1NS<ER2d8hWo0U)rrOAPo<rwgISX+bOhqlM}o zYjTw32-uj3O|Jp{=^IdCx@zZm-<fG~)o}?-4BQ{d2XC|7Ps?z`%KmhV#!dMAEp_Fe z>MR^9C&lrp!J=c``g9W<>Q}YRX|bmhJ;JK4Nt|P=qwkyv*ozI2VGXpSJQ@XBL7zx7 z$|hCmVzz<4;CAJSC&mRZa!2@xpTt5c6gxC%0i|-lseF->$J{R{mf>cMKPx%&tuA;S z6jG^=eMArii%uJ)QdPw@>MK{%)haaoL_>P|0izPNn-jmv(p@CBX(O%Toc`(+<1=jR zKvw^6MyB*N+FAy94Vn!P&E9Zie^GlDF*&<Y@hl=-VXXlOR{pL~mR+;p#a+_}(jpox zjyXdB(ujWZ*s?;ex#Au%-gVG3?-_tTmSSSk8~)Z6XdqK}sfI?k{xZB~o-MAsG+U^i z+IGCg-x~K?QO`x=i`5r;Hqg=Q0pIurA9fq7PmNBNdl(lmJAyrT9aiJ)QdlM(5+%5p z3{)v`%B;*k;8&K(KZTg5Nc}k>#l*P?VT&Jif`%vNT`ScjN5OjQx8{K(4;bkCGO8Ic z{pSG+E|PI2gDvLWKUJLLVgUXSY)MHq#IJw?=gWdC-QO1Ru;^AXt+yx6tv0?-7o-pv zfQ;(HC{@><P7t0sPtm-O1%RoI-`J7Sj3tPuheVUVrRp&&mgxyfr-=Wt;8_KTq?{FX z2D*q#c6+AHy#-EBwSSX08bGN84o}}^W<{EQ?BA38DgN<hFOxWIm1=U(c$JkZ*m`O~ z;5^mJ$3u>hdY>PBDcehG756bRasbS=v~NuRCB&ve?hfv^#{6|=5TRJe`%81JSbt9K zwCE4YFQE%J?`o38j>@^6T*TftRS7Ugst5VDutCmb2MvjbERf{R8qr-DK;~J!A07_b z&m?y_>_4#GoT<)!%LUdfA!eXF(X{GKB<f`-%Qy#AWE~@^l5OnF+4(HyOnL8CwwvG9 zz=oGgTyaM7%5=3Ly5y6$E*<MfMqjUhi$9mEPPs^H_h$cAw~lVnVchSk&_v;Hf<b{Q zj}7o--X>;r5Awo8&x`&_76cJ~d9BT+51(J*p?IzN2J@`<2@z{8!PaFOsZaT9{QFEg zLBfFBBi$HQce;zcGE$L|HyfOZBmb~WY#Ab-{u+QE5AfuMKCY#Ol$pkL8ksZJ9lM-( zP=CQ0A(ge~Ccc854h_&8ru2R8aOzauB5t_2o*_z5ezG<(JZJ6*Yglh{rTfX`TdZ<_ zlD;K++i_9AEn#jB>`$&^n61dGVS=%O-iRiejkZ+q`^-?)VbR#85g{N-Puj)w$-ePN z^A_k<=6grUw(>6-k=2qToOTIN`R_%tsl|Ne^^RUiwZ6CWu%LDyyj$0<x)MT^U9Kn= ze6*hk#)O*l9@|^yn9Fe_DGvA?-UF=fJA7jYXL!O?Q^Vd6744@utVtoWCvKc}pE!h1 z=%Q6srGMQj$)SF?6`aAh+2B=r_$TcF`hWZD*QDMLEGcjSo~tnJS+-Wq0-VpX2w!LK zP%p7t&cqq6E1W~dP{-BN#E0-sU8RGOSqx3^S7}4l=jYCg2%tG!iU4~Ro~j#Px(r&Q z10oe@#kl8Lb>CH4yS{1dIbx<Sx;0H?b0OlMg~xr0Vu>)D6?(DnIVwi(QSFpI)D7U^ zuqM*^^Tyhr-zs_=&xy;zRsE22O-aCUwQ0I$i-^*8Z&~{M1N+|d1h{8Wr<JdogNdl> z@vaRCe#$T5X9Tc5q~p3wIAF{C?5%j0l?%7TOEpxjd-LByuS@DcYLUv*>elu@@uUhv zUtII0VQir-m1q#09PGIoIGuyS+jW(i=`w`7A)K#M`~9;o`O)#@>0DeZ1oHtg2%WMM zfv6DSZlg>oaZj%4`Bd7Q9NpYxIP<iHMr7zob$&RLw!5}2?Kc%s>~<==ONp%TG?e4D z%%mERQp8MI!;b04(-oD)=LNuJ4oilfuQ~vk-L8IIX<RAG&iSv(+B~#g%|OpKUz~b` zcsxF+C|LPtvvMtYS~l_J@4dM$p234wEskZnotrN%8L)MCWo%g1>>P0~*xzK}h;!*B zeDmqk;BQS6mUod&nU~J+s%rY)M!J9FoRT%T&mz)F$`rT<99V*R=@L6p<aaJtr6=;P zrEi<@?dMkW$DEgj7(%w61b#!<a^6u7UPMWMT;&$Fv&Tzeb5WZdgvv%+XAuR17m<j9 zXf~9mh|FrK%UOyVeJ)^|X#2Q`kt;7A{&axQqh_JY>I*JtOwnfJ9;%Yc@H+A!iB}k_ zOW?lr%BIWNGn*c(D|3f)Cb>!nCc*8&*E3RjB$pAkQ3oo>9}q%)i?X9a$q6d_VleF7 z6+3vv_O3T!D6%^R{pEEl*=;1YvoSwsS2FC8jKPzOe;cteOVNu}5~%s_HUnRU_)+so zN%TbcvK9hI(yg=mlt}FO;Ljw@*lUFNmzX=5@8uXUX;Q|ZyDvv!!#?N;4Y6fN3g-4b ztBTu}7<n@>b&nADjlbN-U@9QkJcXTYhv@kyCBpCQ!T4P<$d;A-@oKQ<4f`GKcM1cu zSHsw5fRM^&SIdaJlj<HuhU!@vF(2vEo@KbwH1H9ry1qp|(i4?05;$gw+~>u9pyL?g zdq9CPo$a)GsB<md4_%3=KlL{9ht2N^F$jm;D-zk(;M{IjuHGVXu^##T0Kti_+!HXq zwpS^$1Std`=;~63Wf2djaG73XoeLi^i<eI5>>l3*OFEJ_7TF6-evDN3wzMa-|MVos z_C0|(h@Xa26|Pj6g2?z`BK*08F|L;;IUL(LPMMGt4o~%}xP!2Q)Vv4@Zcj!YcF&`I zh6}RTz)LefQ;0ogzZ2spB$Rws;iGk(6AbpdSc|R~x)I>-HuVc)`yPABAP)qRA+q>t z#hOz*W8%L||I=JoO_10I_DDjAl%!w0*zE9&wnVF!2{Y`<M)T|Pf$fTvtHX_C{;8$L zGxhNU4i8O6E)Qx|%&UDfrR1b7?Gkwr(L;!91oHl{e6F35(DrpQdjdSi3-B#}RD|^y zNjfc?t=)k6DEA1N*Zhm%GFBzAy8NFq4UhmYudp8SsZ-a|qB64Hk{aC72Y&@0$WMv- zJJHQ(dS*E;a*#rd9@A#iNw6Qwm5%ZdpZ7$0ICZ_m#jbIcnl629)w|nx>8?3KweKQ| zRDQU9O~UqWg44wb>0PRuvSYm1Te41LG0QEbRRvYs8=!Y{Sey_<&29Wllle<)`QC6y z7W<)nD-$AI`PKRoN}v8*x0V)nT(SUGt=}Ozfnz{*;ko*5RL}Z3f075~Yg7<rWAtfO z3+>20uRxAl9(giW({vQt-S9lp_R8Kb#-${^yTo|8pe&!KB)&qamj?ejmR~!6*!SV9 z2_^2PmvarMAc~bUGG$4JJ~JQ>`~tHcHlBSv?K|F<nsdmC>813w$Ge}}H2cL&gxj-| z;>4(WyrjaF*(zX(y)WKHJ8n4+gIYx)9~t@{%!al99VUzI+iQQX@#3oYd-_WvXU5LU z{}np@DZ#P^l4L{-s4#qvljbk|3)5U2Y|is2)-0SFfhuPoSb!)5sOw36c`7|f;CPLB z@ZtTg-=(I*0}L2<0_8yIQweW2GZF-o)ULftb#XVbuDhA@oh9&ryd!x7xo5Ot`e2IX zmHual0*fmFo{SZ(EC4tCYZR`t#C0CLN(2jCmUtrF9HX?t5`|e}O`IU|9l~oJxjsUr zab&z+&OCX>lQT<3caZg>CEL{(e2@C@&K^w)e+F1EQw5%=P0a^_Gam{uigefC6gG=; zQI7c_IdAy+$u4Eh7vaxdxs+^cj^xz0WOHMN#lJ@*c;PD{_E_C`%VftQ7vU;_Z$G9S zuXhW56h$7;4#UdUz$e`2;#<jdJKI}Gctgzy_&~=O5aCnjOa>e_p5{NgBU7V6fm<ds zMa(-x;q>%Lm7pAR&<WXl@WKT0-ssM-D!cZw*&!s~y&`zWlMB3yN-GuzDBcS@7@?pn zL|a`El{j6myT)I-6EWp<PKypdpn&ajcteHzAw9MLk31?iYFF~VY78?rruTh-4x;en z#WfN<_Sz3rWvT&^Q%Q6Y<<WE@AIW4iV8j%7C@-%{2fTa5FH`a|Awh_f_ko2XYDNaZ zdle26<H;i+ok7aPR7%M0_GVWG@q^$*b2l&7h$>4Nq+2DGz_B|u_r+KJG6;XqPyVhY zd1LY*k&Rt7h72R18mY&krw>of(Tz?vwnK{r_jSl^a-~J@J<VNU>?EV4i!8<uX&16z z>>v?k&E=0=N$4eYIj=Y>hmW{F?}caFkkIM^ObJSpo6mxm`U&uF;v?U!CJ|g_zvRd$ zD@KYjU8eRguHrx*=*2hxlP}B*T`ObEl&HM+Pkn|L@i0w&2JD^*U}p6+K(SFeyzy1D zwV+vv3l&I)C|nyh3J=bDDJgg8agjgZU<|>S5{we#74(9nh5Z$<x?5uio@ycGV&CQA z%kREA8P`i-KcHUFqon(<vSWt*edh@A!v697{8tRD-b)#+ia3WHmHMYDZ_c3Sy{1?} z_40@vvq2xMF}%W`+BUfOo^J1@kcA+2*1{DE2xZRs>g4U|tOeu~13TMGwwZI+d;UJB z@|xWyb4~9=;g#lI6XUM85-Hw)jdE17V@Kw1R6Q7I7sz^3#)Pxkc;AOqcDolM3cvQC zTmE|%J^y`r_Vmf)ru4lvk$&%>78%n0!A^wVF@tZyW-39BqY1ZTz%0I9mc`C?_S2g9 zs>MBbm<^Sk3njwG<PIZjd`}G!^Q`+>9xS5Tx&j-;7T>e+(=o4P?j_>A-rS+W1pT>; zbMW-~Q7cS@|Mt`gNZG}?W=;EKn5hgyI3NyZ_OsO^jr&G)>8Ij($#Hw~c1SFXZHu=c z!==qZr-Pw^x$%A`O!$vf#AAGl5O=-2k>OD{qF{I~j=&M`02VlDDCy4<ULg`vhrb<V zL9({=mB2BzvR)dACHv52@gteysQhKk_p(&}+Wjb<LT|tWv=F!{)8G)X^i4i_>H2z? zOk@M<v~I{(*AiH!`A`{8gm|JV>u39j@Lp8|RZp3V1u4HQwo)56fFYhv?r;-D>guZk zGRd5`Ne8T`%9O%~Xvc2<6gES4Ouubrbza%^-`Yv{o{bM%uw(MiYNI^J6AMv}^}jQ{ zw$#CVi>++Aaa}Tp%3g+WcRS!Bv@mWJMzx}dIlEZpmec*qj25ITP1crw*@qDYUvmmv z{%z!e{A)&hgDvvz_j=(p-wv|95%2kVsfi6ZUX;Utz7|32r2Gu_){avC)?TeH%Rd-C z7``r=*6V>-9=udzw(~yJYbYS;{tTFW3JVI12sIZGp7ykt;7ej0Jq0}S55!K0?+tgp zI=d~Kw?z0uV(8u(^nW0Dq1iHG+;DK0D>Z2yl=r~ye#9ec3<!%2DT+{zyw)SXuG|>t zzE;Jg;^@j&#Uq5(byT4;ejuBL;MqvKZoWfp3B{?{x!LT+F<@eeTPZSB1SUH$Qp#+Y z=R#`{TD@eLMHLx66A#jtZg`tYl*fW#>9F*M1j_Lc#uk2*;|p#=SL*IOV3)ek!5n#h zCL-#ZIt#xOHtn>_@a5&S8gSQt7eYsdDL9^k-`6DKnn`-5KA&4^n>fO%6wj42_a1Eb zD#^vJUNyn$UYv-gnkFp#&4T$DdWv1Wd6~yUv_hYp{~p?rO7kYtLRq-|N|!q(B@!tg z0i7wP+sWd+)cK(^PZvTPfvLNNb3#7Rj+YEuoWjP1d?ZsW<bHYkwByeGgE|ok+`B0c zE~Gn?(Ja`pOo*mpzbo}@fu6S|=te>m9kn*9W~-aq4kA8&@4fNTj0ou#j>}`l6cDF= za`Z|)H}`Hqf<U7mq*Aq1IQn5NZl7hO^4DjfC#HdS4Jydnx^NDNGKpI6`#NH*ZWKKf zWw+D?WdEMgIcz;29MXF|k7cnB`F1t)l1Oi`V?GKH@-yD`ymb!y;cp2M{;snOOz@>B zTvERU8ozcugqjSqp*wo(GMh0Zd*s|ka?Vl<I5N)5M-kyWdTm1VAEF-KqQaPpZe^AW zw7&G$eC0MXHqB@9@7zfnoV1R++x~zGqcNSseb|D!nb$@zKb@@6$|jlwW<?b|G4%1` z3gpDyI{u-2`K%c9x+M1E89A^<l%m7hQ^NTj@A&|2N>o0mUO4uyVCW3UbaP%kbNpGl z^)96@mmcFDdKW!^`$u5iZ3>Ld0PwN<=i08f3HWQie5~{#hARJ=#aZmd<(J+gU{)b4 z^+pcqefi74m|gG!;*nKwpBW>9o@C~)4=bj?l?4R~$Ud)rw;d7?kYA(E7{X42dvs*z zVR2($IB)XiJ6q#PwR@;}qvBQb`isbry~H>FdoMo=wAJ(~$S>7d5+M)Vv&}fLx{-w6 zZoM<=RTeiPYS4MVLqY5fkH_<v9^02Z#e}(cE7VYYZ>iz+Av0sGseG=E%vYZ4qi}d) z@lOaG*>jyymCMfuuMHuXg5Pf1wjY~jTs+s(hrB}H^K`W$CI#O99f&V=NG{pzRjs*U zZw;jKqO#>FEOpRioQMpPb81fzd;YlidlDPA*p8<Z8FGWxs_#%;26^XtfeG`^OlZM> zp#KK)j<uN`Q8-F=3u~E`-Sb@kZDW-kqt)wrxt64FY<KzN*nNvMpaS2!9BR7{j-Ztn zjvwbD9yfeigiHq;WwFKlDb`w0Cf>z6N+p(=Mv{o4=1sa@-!%GZdGoozHwQ&ggPY8g z$zK&%?5AGaBIddJ*$z?fAdij!KktR$jKj}>jm$LyEVYnBZ0KyTG~ql*;U6?EJ0gxF zAn2@Wcz`@$7cXf>GaeB>&&PX=4I?I@^RQi&aDxIFc)JIHO7ACL)x1-L`T0v%zIl4k zz!i3}=Mx11zG~qC68rlP*ODB)c0b|0k)kR41=EE?@F5Hx4t7OjOtas}Eo37mbI)Jj zZs<N88}fU-Z1>&|W}p=dUi&aPyRBBLYvOdth!x|G9$>;=EW2l|TKnoj2b07-Y=o8{ z6UOu%OYxitHSYcR$gaFoG(*|h$X^Tli707-j%j=2s2pyb&a<TJvCr%#Yne%K1%l>R z0VDRj4;`FeRzV5@|EcJA%M;%>+V^hIUAJJyY*YmT)x#|W=fEV7o|h-}EndDtfG5{} zh0G^A+$G1Vus}~`-golD-=xC0fBqtf{oq#&x|n%E>@5p@G@i;>W1Cj~?rk(?_znr; zn0n`-=6RdK5=}Wo`k-Ei!Z2L#YLdY@U)^vU)O_J73S8$prdKVG5kx8scM50cesO4e z6*wV7Umup1*krJI75z<n?yy91PZ&E(+*PWV<^8;u9#wgbHTikQYO>XPVr-lMLyTni zQuEk1POYZT>tblfm%T4fHxVJ3?qsbUnq$@|4+bJUM|hzdh8!n<)0}tVYs?VBcA1kL zH^r1kkJ(UQ2jBDbGY_7rX*l|IjT??daJGJVC9p_`cnJLuP2U|)b^pfwJ!W=UWw-2A z*%U{G5VH45IQHJ7BcmvknSEqccJ>aT%wuK?W!!d@UC-6;d7eMJU)`L}_xrg%*Y#f4 z8Kag5h$*>q&5$yS<8$-GDZcDQSwC`YwVf{m+A3p!0w>5Ydir;aK~{QGa>4Q!XaCzX zU)^_+%FKcYg+&6VNfO7;W=Yjq|0d;1`qz=r5E<u;i&jmsfR4n(qGf+=t<$Wk&+X?R zL$J_;!}Z=ZtA2CyBK96n#7Xn(GBJK^b<{50jvyp>M4%)1*Y`j3`2-lR*A9myQ&|$V z9!nAS%Y>`^UeLd>HLGP>f^boN5<2}_??PtIW#$U|nd&Yfg`B{l!*5h=iR~`R!6jDu zFy}JuQU0sSUw<<qo>%592+;+X@bn0q@C!m-F@$ZJ$r@e(6%{J<U%UX>6)vN%kgS9i zgXK&^ea1*%vudcUNa9=6O2X*?!HPk}$yeHWp80SKN9Z8CGw85?Iv8g8bSd<0UXU*+ z65ayq+_hZ9sAI%_ca<JpaP#Hra|OY-BH_E^WR2o2tfeVe1+?_CNP?<qVj>o9VD)Bd zF6JHx6RwE<l8Ny9u_=m(5^i37V)Ex>MK8j<zye7{z9|qCda9UAaMa6D15Bu1Y%>*Z z(VdylC4>3Jid{xUQ5Mr=1qC$Ftc*=USn3bcB=|`AJ0<lbxcJ-`_MFM$XBlFQh)q6L zt-KWGG5DshV@H6`GjRZ`h@KAgXH;ue=OPuie?_D4fs>3(7C}@iR&3+Hzd!sDs!xY@ zU^7CBIot)Xddxj%sR}*?KkH04YAS_Enm=lkJHZF@PP9MdmN&Le_$=DvXe>29>U5O+ zl`)kYi`t1FN>o3C7{5&f6+>IkVCw1k;S;?D-bl_jCO5ESbtceci+4p3tn9sc_l4j1 zSKx8Tg!qz{Yf4m051END96Lt@(<nJa_%r-}M-z~!&`gKp+lZ%C7<4?|C&MIoGSd(l zD_kai*DlYI0`1{mpout{{$>WKq!)Hs77Fb=R9npqJl~Vy;Lk>eE<FDl@pQFKV8#j^ zA37NTxLZK;>!)g7SQv-u$h-527j<0U65+0QLYZS1z2N};RyxKERoVIGy*aewnsPE0 z_Yi6J>p0_MOm2i}4{^Z;t6#b3&a-Z}kA`21B9IUFvozGzT^B|Fn!Q!9T83U{FZAD_ z^C10x4hC5<u5n%+i2{Od8&8B|Vt}cw==ltSe|E*$_L4?sJ;Q$;?oLtK5J%bz{e{R1 zxFFtoP~aAg)?d<S7E1rpQj)y6MVdhw!E=P3zX`F_%#S3_p^d{Izz`5#FNCdDK9}%m z;+pg=V`83vlMGG&1|O7%_LJ9Z_THbP-?04jkcPjHdsmxeJ`621^S*6eA_;Vdeblky z*Z94PO=9n~{Gtv{L5_^|V@&^*-Ugj*%U`O5_}^(y#qaU+d`fF6q2G&w=f;?79)v{a ze{NSE<*`k1cm9}j<A<i#yo>Sma$dwpYU?hN@!Nw8VgCBLW_F4AU6Y{zTeU|0>?ycI z3@Rcz9FR$~nM7hdG)ymqZLdntwW=0w#D^LWI}zg?+SA0b>J+fEUDW>e;JtEjA7=!^ z;-N{1Z+w&>Yn&LzjCEc{it=PJgqYKXVnkYpdh*F23ddr0@utErHbHD>Ff&r0PVzT* znrShFIY{W(#r04t{+VwvoME>TDxCJhlBdS70lkklgoRQ39G5j|Pf#!5qIA+WDje4H z&P#a*NZwK3g_%6>l2@NKwI<P~sHZ|bp}ky4@qWoVcksib-oG8Gs{t35zdeL#_*9f= z0xtf;&HD5A|GO*GI$K7aN>_2uIpp)J3qRseo)*(^gFKI`_7|?QIJvri^ZjM5=e4%t zLF!Ox`MhDE=&pzU>KpTiuaX++>=LFrGGj_lV_8PVL`ElSSqL%D4@(HJOD`e0p!~)s zav7az@G+$B2aY0@Gval&??%vym*t~oq|TYEDQX|ic*7DO$;pq7(@p<|1+LD#Nmn_R zoZ^EQg_r9dNx;4Ha6Ti^&e@7<>cz&*MharQm}}9lCbXYHInK}t>2+zC@3B7VyH!AC z__6rAY9=)<F%~Gbq*)`RZ-3Jr@mxq#CN#REg%3NZtef2nu;*<wK9;QyM2dGboM1RQ zeBWrP5|?ZBX74mKxxH@T&h|Z0>Z_#Bw=q4<T=u?f4H>At|MkcPmm8a_ni%C}3r;!D zz2QZqqyH8lE1hp)G#(axs|oA)43zikST$em8BN!b;F!W;=Gf3KgSX-VOwA<&Bv@*n zYpVj>e}xr<VAfIj_z(zbMHpp|_9D9os{|BPhRT<RdJQ%tP%Akq@&Ph8Z{9~zLo&SL z+Bmc<8NDTjUq*)ZXiYM$5!_fKn=3pghBf6xG8Czg?p{SqDN?nwZP(=@gWrmhBA#xW z^BdQz`8j7Aj`z0~Z=<uc^|ke$!(WdcRPa29dft->`+0T3S~LFsu7M3QSZWeeb%Bn% z4$F4Gh_vnYnrhvmtP3C`&lF}qWlA?egi4TFKzTt>)7gvo;$jm0-O|O`9Z6{W-KZfI z`Wj{=)Xa(nU6|1L^Iar_N7CD~#Iko?;N#ReWlS8YC4zRc2%1@w`9rt?**|D|{>ooj zXG-FjkA0Q*f&im>YZ5VPiure2XVmB<yVSEM2a$|%9ta?l-kDBFarQ6(()S2CQygXQ zc%I+jF*>#gwnLbSGq~l%0I8LB3ETECxmgpXUjieo@jbXM!?VC}CHvSbd`>U$5Hqi* z)GSERneqe5`fz%qI5y&gNh9Z1Si?~l3$Rm=*UV!z=`YkQPFDQZ(%2HUk26r4G!LOi z{7?uOR)Av~chZ(j0~!uL+{+{|Etv;3+{ZT(BQsnV8PQ)oZCH@h(?Q-nDZfJad9jk@ zxcFzffVVUhQ{lXv0gJ3K#*^TU3Lyi1*OU;?+ucckVLuNCLYG<@Iih2rz=<vJLJ8*r zZ2FR*k>tuK*M<A(9VBNBk&H>&0E;A_YqjNd^7iU!M>z89bU`tC?~%#hBoEZ@?WO$6 zU_u**u*C?0>2vkibqiU1Nkvv9<s~-GAg)}`^kDu1G5+ydH$=gc#o8A-Xw;2P3rt29 z!+H`EH6Q^RSe{T`7(_iD@6mXF1!`<6Ss9?Nf9@j1L4)*&X;hq{Ozmg}<_CXkxynUv z@;ZWyYN1bnVKu>9qkgM;?559)R04IE2T%UMwDViy0H)PM?)M_?>fuW<ixjOQdHWf6 zA`1vH$E`Hbwb%@($hA8nI2NP7WDTx`XjzGE8J6tF3*E_NxQSmsO1^NJVnpO;)9DDs z<GS))+~Mg4TNxuqP5glS1`DT4^799g{ura6$@-Bw#SExmF?FvI;0uAVSz`cDHwdv1 zu8hRHzJDQki%J<r+;eiCM{cQIGC4?n5>v1s5`E`!3i1z=+WFCoTbA)9X4;d)j%}N5 zHV6`xi)K^ddJ2Q|fg>_@snWA2t%Cncp_MT+2<~mWvohqkVc-1D4DI3tp{t}iGx7jc zy>>v1cwJQ}iT9=v{9}Qh0!w9Naw%<yrvq+u55Brj_5e#ZC-+-8<>nW0mOm<e&LIAp zhA&xpPs$C={!SenL+N+;qs7e|g^(K?R0iYyo#0d=39><`(CLWh;i{uS_r{qSN)mjY z6)(lPRroE|1Io2b(IF_$x?f~yC3xs(O}s>O^zMC)q*I@v@IHVZW*-16(aVOOtZ&J& zxXz<79)(?e{-6#4zPyGXQipzukmKlh=4Bo#=`qJemJD=~THY)DKm!_Ly=J|{Cjy?@ zNbwbKRaaL9gEkkQQ{B3oEp0=-nIfCBH<1kc%nZ7|znxue_P_UBf0E;hw?9{r;FA~) z`J948X7s|#=<p^mrBsCWR|`6x`W9JCLHjUEbbKhxC&@aO%-z>E#0U+&C)d|==(V+W zbq-5AYO~h<Gp)RC%-aBH2l~S>*B~kLa6wv%8#|lR7Co`_rScW0_gN>o-`m8Kyt3Lz zWxde!T?zOq{#J9Rz^-oYSd(`@2+Mv(i1pn`V^_3d>t>0jnIXXoV8=-CtL=obXH|83 z5#Se~wGM^G8jud546#|;6Zg^WSr~m^%|&KQ0LCX3HIxOHx3-IrGIbFZuJ}Y7kcydh zD#Vj{Y-~>#g`3E7Krm@u*NUgl?jaYc2R>xT?9lK*1t7>O#+kh%BF4K-Gh>?r_Jw2; z$j~Afyk%gwQyfysWoeb5r<!j`_zInzAWKR*vKyjmTj5?2M?$!Q%@wbbu)y3IGbGC) z#-q$oxE;D}mBX5KruTiy-E|3fed(}5st*TNcpmbT;CEaqQIvw0-$099WQP)skp-b0 zZBhQ2hMiwRy6$zM<Bv@Q3b#usaD$bgkHh5wqxN7CL~$lI^m*>%m#&DgjbwLf<)^|o zZRf2D17fR&9<#eCQe5HV_THBj8{pjVqzk3G{p}yv5olM4m;*vUe7<c<P3Ojc6}KLK zeRiAu?;Ickx3C#8(R3CBZzMA2wj>|0psfbHC;yB>f*875K6mtQ$L+P;*5QhvHoz%v z%D_1eyaqSLvEx)i(ww~b+7;C=+2eLjxO#JXtop9HFFJcmWwx8k?Ok{asPC#wWRT*o zZ9alc)o)xiV%8SMbM~+XNb#KZVeR-|5<tsm{dIVqkUsW7DM<WLeof3`ub=MDz!SNI zy);I9_<sopk(IQd;i+v;$Z>~$Wb@cTzuCiDbi0lU*W#Xs!X3J5BYO#D4v(%a4gx*6 zL^c9dBEy&aP*-d&^)%vYt7h74N&g#Sd{t2>bf+Q@lY%P{<_0HVb4U#K(j&Aq$uK0m zKaEhLn0x@Y1Pi5}IYn-Ncl)UUeS3Aptv4j*+#3DjE+qJnjasULGk{h+b0iWNV@GFE z-(BQFOp`3wUQT})c>5S0t7q5lv#zt_=j(`i=619JmLP(NpJH;HA%6}f-$Fj*(@Ikz z8Q7onNZ(FBl<B;ylV;>yLwt*>==hL#M`P39Y44Aa<>nyLyo=^s*rmOoR6aIBQyfol z5!&MV{ZUC_w!3bUlx05^5DZ(jsVKHOL4M+8uwqqC-$<|`s&XNFg8;+o29C>cGkf*| z#qjagx@HxFM1@3Umz!9d<S$D+6>keO{-c_@J@Vr=sxqIxIS`r2uNk}4)wEbM`**e5 zy#5K<o%1N1(_=|C^xAU^U_@`aK%p70TIJjb*(1b8|AfVHKM+hhyPT}Qgv0wE7>laP zTY1I}l8EV_=8K5aF|hrIr`G1J(?;t7-7!I#dQrj7!ql`9q0y*H|GU5kn*>0SG8wRb z`adq15?A^;sO3ShG~tRMg4xS-Kw%0GrfphRYPkU$vxPxLPV_n7c&0M6UxnWc2|*3P zR%eLJ{H_>&ttN(JKpW3VOFbSxf$o&8E5ZG0IkwUmCKJ+E3;D&(+$ERs9=sfK!IemA zl^*oywXZ@6?6VmsGadF)9;*Pe<!>~;ea;D}BNA^ibXU$NL^@SyHwIegNtR3%=zXuE zF!)C>@U?V`d|sTz4V)zMd=%=E?TVAMoz|OP5e>gQq~7L6gJg_F7BjON#`6#`IGsZm z_D8ZyL`q>^^7;rUE9Z#Q=q&EARAg_Q;bxH825u>OTr{IT+p@z6q57=@KHT@^Z%fV* zI?M^bV0g3E0MCSxKo+8SD#Kh%%6B5EZe|2OG>p@t7Y8+gc#$#PV^c0{^`X_Tm80Tv z`t`dFrCQrDwfB*}t$m<*>^9{*Y}0o82r$Ri1XKZ+u}jBQu)(H3=oUFn^Y1htOeypm z;&tEj|J8Fj9sI6FOBe)t6kd^FL)T~*gBxUp;qa2Z`Q&qz@<Ssjsb#p;U$I`udv zJ&L%y?t1%kZC=XF4+nye0hSaMpDwYGdkS!u^6Vu08%E2VtUN=7r;FUO=dm&GpUIW* zVl#CmL6NA2+SC1<C;?p;J$7l<gB+{(0`6k33ves@7ONBC<?i!KYOow=6XL~9MhOrE zizwff*YQ_?tJk;+RT-`S0hx?a=fmm^j1#O>*1-gEPJ;cjJejnD1gv3nbHXoc5t2y& zPR7)(J<E=_CB~<&KSz1G-HMHgu}{S~eWU2j-Ai$)Cs<K*^y*V`l#DqU3~#a}_I9J* z!Od%`OnxHsPO#<Z?td4)sQD1dc<nxfRfkAF<Etk}X!4%LyS1L{PxZfLa3jT!q@IcR zzZPxJ=mEWzdZK>eB|GC97@2gRmZ>n4<D3%q=#dPqtglGrhp&5Yl%HIC=jB#VtSrxj zCgo0r<<Ed#f7GbG9CmF=lPYIw7n+^<MN_}0<j(Q-&h`@h`ay$;k!A-RGCe;b;;N9* z?XpVF8=9IYvP~06DvPWCVs3m5HDz#Bo8iA!PaU50niPyFSEhDJkjeK%26+^+cPaxx zyJgSwc<rh<1#W5?H+OPSG4}(42>R`LM`*3Y;|2|nzHIWueKVECR`>sf?`@t}yaXnm zUss}|&(9lUr7M44>E0?4#&(uSo{eIu*zk2~yXx%@De7-*l^X|}`^Ontz^f8TKE`gj z*2VSrT2!BnW)z8EZeXamTq`6E1!VvK^Bps`4W}Ha&a7v^cL`Lwi87)&RN!0i-n=W= z{Tg1#q|iYEOfd%qj)fy^_&_k)&mNIZggafThz$Ms0wV=Zo9{Nji?(o9-iCY+`uSj6 zH*e+O>>d+%RkK`x4xaakU?!B|fWEz8pnzZ&Rs(d~f40(D^EWE7mB&(T>kCJ7h?3wn zFR4g(&-vmnpp~+4FLlmks~CJUcyQcGSNuuu*F+B?#W@-?5p~HRqi6Wl-1p^ki7RFo zr2yUPRDf37D##2bfqCfy<1Z4XN)?k$*tBu)7@G;))ioFo@spJ3seN@I^=v9_$CfAi zRrJjA-OFov0>hb!@njMv(B>xGReq_)O2jQc6&kfTcMU1#wln|1=W6FyE_?nfF}f!E z4hx#!k&l=mJoDw;AanIQ!+!feq3-r9OMb8_lwD$@w3efy{xU}Y<nG&bve4WCkopDE zUvOeWf4$sS{H7*4xze{kZUyMr40C4eQUPq@si!y7F1Wa@bg>!TvopoZSWS!@w(tgz zYgM&4f{$F<6*EGdI)<HuKlMe>ZB&DN_EB>upjpETK%y*-zk-Kw-A5-T=HT1eHtke6 z$w*K;vZu!RStPU>0EE;dpqhkOiSfR-?i1ntZ#ZohMLnfLiqo<<&|hU`_^~C?ezaKi zcV`@s`b#UV2=f|{Fj_<RM2v@lprrQcj!{S9rq11$*0DG;Avc%JiN7l-4;y}`c)Wf% zB*|7Rz6KS0@+w<tUFK@-!E6bY7U2mU)~1_DM>I3%16iP3C+h_wE~Kx%$q8YTGo<=q z(Du_$;KvKEy)}9RvbpX6ogv(lVV0ygL^L<guWCdJQ|neA^=S=Y9s@&RJi*F#=IFAG zc!FXD<|f=cGQne*oKNPye<amo^IU{D&|PFEJXl5kp%<=sIOY4AOC8-37tqOX!YbJW z-{#gT>I#vf7u#wGaAIn2gM@13lw{-|Nl%(h@waOz5AFSgmB!quAKV)dBausAZLBBE z%ReoM%Wf1Sm>wcQDp=3LyaVFe>6Z!T|8^t>>941bw?ii+GrRi+B7m7-91Zen;Gm## zW1dzi=hC)1#yXxuPjTOF>4I^4GhPr|?Y{zW<7#w&xNf${82@s3k!El(Qv8LT9xb7W z(i`}G8|CRveE3MK(<`F*{ilb7qi)g32(BlaqaMDHPkwvK(B)SYh!(o`QXY}tSQ&T| zcav}>MZT027tbOA$phCqwN{z2>IR2+2D6Z1w)-f2fEF{t9J2-WLOBn}&g)ysoO&$s z5(e{!Wg|#sP*nj+ybCpoc&4V>{*deri8Js>W$bQmOc-KjiSV#69TLZq`0Ei3OkZ{T zc!lrgS~tOpXIHV3E>!*55HbZpH%_@wfo3~S=Qw)iM;-z}OChX;D>#e$mq!Aukc_xj ziWSSl76=<Z2zG9fsB2s=0XahMr_gi=d_+8N9#G<X++#vJ%kH+PGoUqI1&kfltT5Te zyoyuA0p4gwXn4n@-2iwAhia53v&S3TMG*jJ;(uF+<@Y{gQ@@w$^^&&x5$6hIt<9T( ztKpQxQ(?JiJp0`Tsp%s3OA@qbrPkSmqKSzgD&CWHFX6e5hP-Ri(=spzN;Ur8B6pfL zMT3*Z?1xLEk{+DIVo3A{A?y<Mas?r#=kxk~?+us3+su9xfLVMIUhqJB86w3WxZ!&B zl1sf8osyHd+gYk&M~AJZvH`APb+QC*%G3~5N8;hb$zSNa6Cgn1-9uKNn^KKVe0O)M zN{2DsDf7Os|MWntjeYr@>P{XUC_LQ%`De5e?GC~~DQ9jxj1s+aJb59-DzCVk)ad+H zk_L2j+}YKNg)#aJYX@sz3ZzqD9T~31Ea1E+wa8uIEtW~~*N0x;)<@y!2;st7tjcxk zgYwm$4PvuPa$-o3xe6h=BK>wl)Oy+%f|cqv#h-+ks>*8xSGbVq;vx!wyMOwtYD!V7 zjeSDu*X3p>A}{6+^2(6@BkU-BC54o40z5WEVlO?jE|nKMbx)-Zg;kdbx80n&F1H+{ zbwue)`jdrFr?3%~^d4cBS+<o|a5-Du`{kZCZ5t6ziq)9#DHHl>C2^>!O%>$Tama@$ zp+vhRxmyA59%lqymnVeMGJcAN{iy*2c$2);b#+uc7pZnKvu1!8w~T)-Xz)CpqdwCC zX6DqMu6-m6O{=jg?N#}$_gJ&#>2HsU(A*`|8D9W!(R2-Y%OunPi8lSU%JXsG5*9Mt zFV5NE)$x=b>D3D{-J>XcBi${!U~B$cHIEo|v!ml#ip6g(RZHJ$q!*2dl;4C)I_KE~ z?k5IRDCY|>(}(`~{gmUkeHq!ZL8s>H!N(BwDmD7s_)L#IKXys6@Wwg#s>gTg2{C)$ zld@!e!jB&de9tMcum@z-s*VU@3vT0qRbUM{h>^^wRxM%q-0}g{v*Ox@rCG&+mrvj1 z4ADU^^2hTP47?Q}SWE5o1Q092B+pyO%PB4@C}%WmsZ!mBA%+PZ`)0P#Pp_g+9-mBv zb7(9=;Z)~>1`<I+aAjK)_BdrY?o}#Uiuhy_;5K@PfmGfxD2`fZ0gC6Bb?KF<%BS$3 zl$#mR1%VgI&7a5^mxA6Vws$e+?a<|h5#=!vA-S6^dtUy}0T)L^GI9x8IW8FpT~RmK zk}((95=X7vwLJ(?>8B&apq=1IY-nFgMnsifLpdMdC0v1Icf1DyzFTpAcnXq;3qCAM zs{D7ozrP<>oUS8taI%O;@b}@WD6FUclXf+`H8n-n>XKfJ{5_b5FMo<eCU2}bp)d#C zz_nF;)}58-9{7(P`N~{=!W_}-^e(@m^;rc8?l2Mt7dD1GE1He^L2b9v=XLec;jBNF zP?(@T!*F~=Z^_2VrBb(D#8WW1ySZY!F^8#OmNzO6SQ5+{6(2*BD8fcuG{LoCtS>tK z$6p;OJ}qwQO?~qUc3}p<pI*<}Of9ODC1ZU!dRE=nnj{gYU1g9kI6MH6)h%YiDRoVZ zaq_KbK>`dl(&c9cVB|}Jiu);~)X{ZigQ1*WwIo<Y(f|=e)XbKdH9o(3yt-S=PNYP{ zg^d``dry^EPzrH|U_Ofbh>>nFfCbf8&jb+bJu?YyutkEdFzt;oO#|)?L31k*?;Hd! z;=Xf!>y=QTyUiY=D!ERou1}KVeuc3hM_vAdd|EBbz>>Gf86z1HV9Z>62>seZBj`kB zUXzksXIB22h=|6<K;sbo=*2n3r;}xfG;<oLJM?+6e`XmvEmdq6LO%4<1u_@Xb!j{# zz$;J0qbf(02;H=izOoBzUx$M8(?hybna~9mbOK$Pan1mp?7c%!ZTGXJ&M<2@KYFeF zpY)Nrb8w^>Axg<S_ZcbrY(cbkM_g$tv08?3AR$7fKmnpByK?6l8^mb;<0~;cqL}=* zv_h<Lks@E&r}&z3f5VJ8*y>Dy=I*6GZwxr?+$ud%%wOPlNqItBDL2Yf74^31I#MrB zCa9=GG_baIe>)8(qwRRLQhO<zD_<4TPrv|}5wJIbs_c7e_aiegZrnoJ%>4^uG%*Li zRD^B}_*^@3(B`=YJ*1<MUes}bK~gVm8CcE2xT4rYP}lNTwx!f-7L`bx@4Ii-4R`Kv zqd~Jw>ecw&N0YIfdijlwXNP^P0WqHV2r%rnD@>YCiEzWLl0x1*rVfSGOWK`YLE$^0 z7W)?FJXKf+>h=#-JdV1m?cm9jXsdSBlpsV8@UiNjt^S{g%UmFoofMy>Tm^lDSJAbH zlT$l8<!V{~Q0n1(ETI0`CxK*%+lCbAuW@IMkeSy=2f`fe&4Mm?u6Cz%6_H*Qe=kA! z5B_vzgifut@ddYlzw^NgAN9vO7ncgiaid-qk9+LRk*Du&Q#ANgmG0|Zj{Z8B-@zmc z?VZ}Uq!kglvUJ&S6vtPM2R2EY3dH$${Zvvm9J|8K?W|mXDwu|;zkQcZ1Ut6=81D)B zVeu+t*G%i58TYvR`ue)My4nHY%KoX0Zy{rmdt(P*SN_N^VOI$aP`(GIlM=V+2rr`O z`zi>BBIZ-dxh^>wzM!7x4Dn>C<{3~@gWsc8Ad+5mKg3rUx28BF{weiP%_t!8)A1S{ z<)Y3MM=uvfS4`Ucp@gr!GdotDyOf5_hdx@S#G~<vk_lY(PalFv%4-5E-<b9~rnR7H zL#3_<Xp`~p?%)M$CdNx%Z#GOdOO$B+QK6lyq0P%T=nQDmbPp+hm4C4ssr;Q}QuIM& zYq)#qrzyPb$8y|Qn;Ls*n0carGW9j8+P#}PmbFHFR>b<@*L~lSxM11x^D#;P?mg!L zBcMovKyVSfQ?>Q%d)(?iP4NDNr1O+KLu@6~T0?c^C0pdwP)E|4wjurBT@8QIR{Mg1 zAHNlRtZ)vr1d!O!G$@FbO&Ws3c~}4lx;O1@;y%7FsW%ze=wUOTgmwM6Xsiod{oLdJ zB5rA$)T;F_>6eNS=IiIhSFCgj?`ksuK=m@zSU6&VY=-M`p<r`wH*&vqUFiVZW0%A# ztem6mY$SP?0G~QQr7Airg7@g2o52l4vM9E;x%>wrvt<5-vL8I<k@hAR(UN)(80_BO z=B}cGI(3rrm*w%?f8BbBr`npI2<$o!R!5vN937vrqusJ2yzP@?wCgbln;OO#k^VKy z9Q8Kn`7H604@T$f8FV`e7}t%l%B1y++Tq#S!}YK$g}lu^4hcV}T=h;oAb;dS>IBp^ z(>Yxd{Q5@=m%!(P;zcnP_CytP?%9aZ+#f)yb++K-%89?d(_xFr+E37yj@&h)##Yyl zCllhNE?ep-wB9!8(G@fE6@h8!nd3v{!YS7j#HgX!h#)O>DU@-V`FE8p*zzxB6XWG# z865kox`SeD?x<B2Um~t*{+wSpe_h>E`#cejg`sU`6`m)_Hy28rroB&@DfbVT3`(QP zDHwshA}Ukl2gF5IREhE3#!6sP33P_cpG-YzIC*3<)u>AQ_hX1Ck?Rz}GpbD!LcF&% z&|4a<k-PaHm(K>NUVT%`%RACWfMF9{E0gQ{1gMrvJiMFEROs_G2Q@%j9NFb<ALeG& z-u8WvVdR3djb^hceX~^MYGn-dFh!iwWMhTCpNZqPX?ny@5|1f&`c7PZ@S6cL4J-*C z)2G`f0Jpsz$W7BECtPt~Nr*0^S9knu9!rZYiIlC_^Eh(hZRlx3>Q4fcR1Dec_~qY} zld5)#d0qG>+yC-iAu;|w&7l6bE1$ffyCQ(&cr#ek#Y7-Xt?U!Yllj^eiG|xBaMCH^ z!ghwbUL}^}rTgARmz;Ch%|(D=AO^ZUN&5k1_nL!w!P_@fxL;LmPD4)^qSLf9pN(Sk zoUdY+gcH2EH>8~EC1$@vriJ4h$=EFBk7~bT1h6*EyWt2%^|_;P_RRC99+15@e(^+# z+4QN<Q$qSIfr5v*PaI3M*3(OGH;DDWJmhEiGYhoBZ_9agh>G^hf_!I(ba`HJk+NuI zj!~W#NuXqjfTJjOBEfIOT0*piQz=8siz&-1rG~6o4$57P${bc}h*9YRjA}#MVePIJ zp*Z3AW>_Bwl3Hx@7o?uV3@Rz=wE%WW^9VRNlK;jsfQouG0?|h=yXcYA-7qaxV|{qW z;hm3efz$wtNC2KqLrqOvsEcI$C-sHDOE$-OI70=2ph;r9t2f-yc1_!2`9IcoTqOl3 zoum#^V?2hWbW1sjwXZ=6%SHIS8FgPI(Yogd(cHq*Dj@XfJV!ULvU%ex4S{bWVLqn- zKE#|3+o@r#Oo0D!79+B{LWwJ{`4E3MOPiIk(3K}>Oe^&v(h6!?1B8tdwtPyHrD29{ zpXB!4U(VX}wl;>4h!Ln~t+?{5eINqH2r=I%(rslcRk!}A>3jiOJyYAP;>v)r@xEho z8Mq+_p1A;h>}!<sc6^`iTlsJkyJz<sEfN2j-OBiS(ZYfbyaWh*ukv-6<&@XFC2D-& zN^l-@-mLIKtWBlUp%-1(SKgz~?hkl(X7-y+f){D>+{X9#X`LdQ`ep;r1~%SK`<ncQ zmt1Nn>#0I5F<^_;em4f)*C__0@)Djf)Di$`$s#Zy8=1IM_Xu&SsDS2@M%Dkj>ipK4 z-iJ;z;;&NqUP&yEN*@AyQfl$*=Hk}c8C>Z(Y})_y0wh7Z7xsYG-i@t7?GfrTLjv)C z@Ga+owP-F8DlHwiR=EBxV&jT5P>ch^pggA5be{r;>S0Et^~w-trRDl6#7MiB6Jgs3 z$q@usX?*4lF#0ZBaQ=4-TPIaY(qhMMjwH!y5aD@UNV<p&g-r%U5KnUIjvw$@11!>s zZblE&0%D5oa@SO##1S%C@o&&gBB{i;9&+<##;=Iviqks8Fbv(^69Mk_><Wm8P7#k_ zB)S1=%F9QZ*=B4E*QB({;#@xxLy8sh=G(vf$ejh+Jk<&LceE)+XDDaSk)f|3>AP#r zB)IGJzzdzrhZ7X(GWku7tv|aM3@~c<M}7aPqL<@b&Vy;iEIo2b+n&yNDsRpa$n7-s z=$dij{hs$XrxM}-AerLMV7p!T^F?^=xf8|qwL2av6|UP5+m*!pO)Z}glaW;pDXJY> z0X=(zg2q{W<PIRBGOpV#B*PUCJxd&@7CvVz1wW=sVIo#K>6=G~JCO!??flylPnnX7 z01Bq8#*@g&G`f;wN&bc>cPxKwuNnNFB%Z9RR&Z|d3Vs<taPu=kY5%|~=zE3XV*m7m z2TQ_`dIlG30#HAH1MDoAIa`)?dC8j1&A6%l$>tcrN&;OY39d&_@<I}kYiow4sGG+^ zKj4(??D@=ap;Lu&s~PV#qOc@4)Dh<UFEwN{obD_Mv|<zmnW_4a$@=~zvN4R9iD(Zm zJe;)a{c?B@+Pr8l147ePm|~QTq+6|HxIUg`?yWC6+iwU`xL4P(LOr^g(gsc-br20D z$6bHG%SHjN3#`?rxD^q_8`4sQrsSDyrgfB#@Zu~g)&N^5#fB!msa5vm+%u|^`_~6k z#VB60`=n&8-Nh52NkgH8ny7=#d)Pk(N!{V!XL)Cx)bN;#nCcFh49$O@H&j^Ai(w4f zZ&D_xgh|o6rtKMRbe6hhAqv5-+IoM0YAc8xNS9+V9ghDZde1*DempGzeWphtzDexE zx%_<V<EAt!+{ELu_YNBa+);M5CgzCKVJb1+X_diyTOeeVXwk&JZGYw6WcLApX(QWv zXE4n#0W+xj#E_?aLYp|Y@0jXMvMk@S3jQ?pATKKPBA|I=nZx}aDu~ex152Vg#pCjC zqcNu&g<(FmjM(b`4yPx$kPL5PB;$J{R4y4PLDEJ!8S(ZN8gAU?CJn-*E&Y6~fHXVV z;Gx+cY%#8yV8-fw2HlcU-y1Vk|8RJ>+7rRCl0-lC-ht?2KEndu3CXz3MT@1LyB?IO z7MNoGx5jx!`eoevqe6d_e~cDn1keprWNI8MGy&qpT3%vCKZnsvy4U+wJXy}qF)5G} znfXZmu58)VSiZ{<=J1xBPhXNpYuW5e<Q!k)A?;D`k<Cl;+7}l8NnT&SsdwgP>Q#!1 zk%UlsxV&Tbg5aDcgq6{I3LyCFC$K7@t``6op7)jy?|i27(fi_3`4PZdnoE=8XDzH{ zQts*sF{9UBXpUeN#aAWNH{X?=J;wu&#Y#EU$3QWk@atVNxM;3B%<3KFp)d+hDLKU+ zF=UA|_3?za($2CF)`Hr~yVoVOXO9Z3U&T+$vO1?~hAyu<kmI!9@s@~wXusu=m(8qS zXm%3iGfjoy#q&p{$H&9?nH)B?S~<sAJc&`2vUTtg>9i}x>ic|awZ{7XmjDkkg!ud@ zr;yaEB0s)-DiJ-EffWrO0UFHO6i~6@v!6+PPJ(~eW3Rfo-B)F=qeo_1Z~zo7Dw!DH zNI+ZS2x)0z?)UIuZgL1Q2c;~)km7_ZyD(4kfc9%AwPg+b21>(G{w_f4OD52v_D(I| zfj&jFeQ(lc7Ou{3{XBqwPU)jWWnwOTo$qBpd%RfgMCx@8=F8w0rD0H&B*j;iYeCo- z$NS|u`SN{~Cv8X-GWnmp!@9>En#qWp01Mu^VOA&Zz;NYOCWhqFIjZl=q)9B7SOtjj z<_&LnQG`5CD>{bk?yHt3%9b4v5zGJnjQ&hx!^*7m;==rgVA@D^rZZO42EWtK*qp%r zWyK1+Ge?l_^9Ro2HB2DGK^naY{hg`Y2dxt4r^&OtMQhi=mD%ZZG0mt+dh5~$lb>OT zjAB~}^JOgjBUNJk6cA6UIPo)Fu>qP*{&s-mq>*gEGMBx(xe1hZL(+PSU;X>&?v=hK z0XgE-G=i>C4)YfPQa-f9*!eko#F}|WhLpwb5^CkUw4(g^)~0wp7eRim{`pQqjLG?~ z-;-E#hD7x}a$=gTK3EjNX*RrMRB6xh_D*5Mr-9Y;0Q8V%=RR*^c&2UrHA9%ZbW5_5 zU`4zdBB81|dMAOYNf8H_{Qc;DYS8phre^IaX484Id0n8M1Uq*39h^g5NidB~K)2Rh z*|j0;RQD0Se2hCi+NuvAnPz$i#NP!FSm}2}keyB+v@Gfi-F=Kdw85f39+;296J70< z?{cn#3K*Mgk1#WUA>}t07u$7eRN0DQ1x5b6-q3pWZBtmD#?ecF`J`@ym>xTpAkx{h z%rDgM+$b`6o~9aeW#DebTo`RoOhub4R5Vk;LEFrw{7U+U(SpR?Ckva`ur_<WZTQr@ zv$?cL>YYr7Hv@x9fJ!*32h7dR{&lweK{Gz6A!8XZH~-bxl2mS**9PJblEtwxe*rnZ zhPj&$_x0+c3IRT(#PeFtyC%^ivf~p6{Xd2Ld=9nX#aoD&2YnTr%jHZ;Sz@%+%lxe~ zG6G$<RIVSN)LxQb=!A_@db{-hxHoe)Gu76}JPCJt$1}dU_GD24Oz11V-VHF>c7ftm zFXDNNhe6l<DUzBy;BzIxd-KeWJ*t>9{N-MmGI3(1x86X4%lW21{gA)rA*b6Qtt*$F z_&x~&e&C-@JD$#e*EtrvI^9Sl*wItR9W@t9BQ+JQtZ}_K7r1^px{D344&iAVN`2d} z;Eu7X0eQkFZ%`62ECJ>x78G;K$)-rJs4+?8BNwA{ZwTlze|Z5#TcugN`QHLKkkmeG z`t$xaeJAhxx`>H0F#CUQLFj-X^{*17zKhq0(Np8&027K$P1l|3>a|F0)`3?*<?T2$ zProv(h>NqTiCkIG#u^e$@1G054Xz+qG5*!IA{Cts^_e4K%>=c#GIL+#!1IBAkI-8} z!9=#Mcksyjx5HHG)7BqdMfyTIVQmQmV3u$74{w<8v&UuY)+m@7M5Ssdqde=+{#d=A zv>5x{y<?6XxAW~9R$WOc+A^|V=bKVo=&<e$&U3bZgl*Y$9{od&NPyds7aLwif3fso z|Kl@0I3Qzr{3LU~c|$@fxRTEM$kWAQ;CBqiMw>dj@WvM*J;~rkmQG`~Ta#qN4Uvq1 z&Fo$<fMRrX^8%PPh$f0b3yG*%5vJF11$<Ycr8IiV3Jhh6u#Y6DUg}5%!8X~-t|P$( zNT~R)Uj<hbZ)%IbpuQq%@&`-_rMV!nqcc0aM_d^6UlbL#<2H$IYDZzdzFBt_f@j>F z5N6#7d#aaYbSoW<DT1F>5ow0>#J&`ps=LfZhcF+}^V{a4lO$S$eczv@-seOxB|@V2 zWT_~g4HtFsq`$o8?F&k2h7S;;$nFIQG0#V?z@=7P@W^s<X$F>-o3-zw&29rII(BQ| zWoLb#^|1G!QkLSfwLs+-SIOC=m`_SOU<;CBFKYPA|JV%4xH-xUyH25s|38%$YA=sq zB@9tS?R~P7mmUCwpzGzqmX-iE^R)$@ngx1fhFg^-R;WrZT{_r5aZqeyN3@QhD`@P& zC&t3OSLdrq<s)Zz%NQvxZfpJp@(n+51zc`?QFGut#$~YM{`pFo@UwYNXBGFQgHUpr zX8`r8Ye<)9Dcth=C+jQDm5E!t?r($i37Wf!1WNv^&$hFnS1VzqEX3`+fiB*GS1Amw z#H`OBWR|_$@>jxjd!pj>p--0Zi%VYP^RcSOtJDv?%Hz2kEL(BUGj1AAK6IgYerwI1 z|K+Lg^0zJ-%kn^LwvpN6O}+7*_?fb%Ethuc;Ci}h^i+>|`O}K?6sjd4RS4O>mfu!% zXy5_b$?v(>h}&O-g;X|fW4o6~emz(9MK@SqInQl>&S|kH#3V!_MqL5WKi!{<UW<A& z_p+8|ur)WF7v^cgE-w@aE`+eoZ-4x(n>VO6e``6L7DrDZthjtTZ|LRxpLL`@n<~+S znL*IfHUBfa`;<Nhx<XqN@(I7%N5*ytF|J)LPK5nMH7<EgVbwnm0GT`t;UhN9>a+aZ zl%<eo_p;Ut$yi8@mvhXRuR<ynqEc@^KvjOwOrmL<8#j?V-!bc%q{RyY9`XHEYw%D2 zJt`D_CuUn)4Ws$>K0mi|CFu6WS0S0*_8-IW5A0AwDx2ScXqT=Kh;U^C4|;T=BG?1D z=OObU^X-;n4~PZQD?oZ3XaIwJ@|%cEtMM^Vwy}b=nuf)GMM|Y_Mq`Jb4E^_k@cLVT zuB8~eFd|rWCv=_DlN)x*g61aO#|1laHyd@1D4)u_m7iKx-{vuTZg$UZH#Lp=*z#30 zaG1QLVx_PinyC8h^BLE{GNOqyOz5o4%!e6!Rh=qp?xLQz2Q;6^CO;XsMOJ29oH-lz zAO4+v9$JQUcgbxPp?9B%ZG~NT<JxO{*q6dg+7rxP{dixY`or0=&{b#dGYKTGg{t@4 zH_Ap!HN0tpo3+=smt~M)ildW2;q@X`YddZYpLX`fTVaA@e&uDS94^A^1yeren@`!~ zX2LC9e3}op%4W7)!VO^oP;n9Cl@#clP|mMGE|-zNu<)pis88`QLG4$*RSyIve944n zY_)I-9H*V09wqEl^rL9~5oA*!wkCz9gcx_}v=L~>_-RJ0da0LggLA-{x0g+Qub?Vv z&8S8zfAYSl$0M&7Oj)s=9`<A(R8|Z$EuM$`LuOolH`Knr?y6nWeW|t+K=CR0A9>%d zZm`}+6OFTt`o=z^gJh@}XGDl7j(n#dzYacXr+sr(hJM6I_!<hshQAb*&LNuqALjl2 zm{Z}u9S^8;1la=M0}Y40fOm<l1e^>a^8(tieamMG!E46h4eJMaUwl-j`N5a^zjT3u z%jp2PoIiux;Ey7#1r$J?2i{%o4e-}c(Tl-d()*MVtuf*Q9%YFS13MVOx>aD;>?Cbb zdtH|0fV#C^!^Wgl$q9(<If8#Jxi#2$i0Z*nuZ+e<R1+z@eM*;6D?j5CtKYukaCHP1 zo2>4iac34?7|{G!W6`N{pI4~Nth$5FL7oeJ8aSHL-LKi*DoCO^>a|d<k`%y3L~&?j zA~Nb6HF0|$b^*4DZ}ymoza+o;#r~(ZqD*~Gin8oN`u=u7qTvE%d&I{s`IlF|AI=tr zKC<ZUQq_#P*mkl1scH;s1llG{e19bcy}RjC!}$AD(9w6#mwSD)FlhW#g4A-~tkkh1 z!F-)fZX(3eI5e~6)aAm;?uN@B#t2R&YwnDhpe7FQpMetVdq2#^zqYWIt`G0bNE};| z#%_iQiob)r&<>EK_!<F0O{fW+K$Hrnk!vX7JihjkqFmNFG{3qu4OX#rP|!K%CksP| zmW9L%Q)fz$h_bP@JR22j)0md{FVj!iYAGOk1P14;fMFPa1qrC`(b5)E)Qv&)@wB#$ z;e@i2`M;ndjLTU?nDuS1gAC`L9IwJ!SjEo;$Ku6kbE_XPE*|b;i)X9LB>%qmxY106 zIIR{ambnuyveU3%d3q7q%7hFIicd>bsEp_{v#>q#bqu`JsUs2P-hoaYQzImczkgVF zy-(tW;n$x6CI&BBV+0e8EfGV~;+hyQJ4q2T{*M8H(2@V~Tm-nPcEF{~B#F@lFNWZ@ zZNCcC@azg`Dy<hMAP1RdKudG_rQW^x5do~aD(H+z9H|gCcH1aImA#av>lC>84Ja{n z*{fmk%h?P4-p&ccc!cLIY<yZzb``M*S=6HMUb*sdfLP`-C5|q!v+iB&=MpoOpm%=M zOla;cazwfsvI~C44^e_HJdj}9(Cv`2nwAqhWigl-+5u2b=#|ledB>Bfiw|balY<+y z)SEZa19CKY4<Z?lS~rY@h_>0~#im5BPj%1TW}lDG2XwraX<1+KP>MeHqVe{CYFp2q zA4aBWq?4vbBXc7{;oGkK+2xo+t#7;C==80YTaEim7X{vA1{|Guo|lmd^d$BE?Ji7- zIaskX^s_vco16W6sD9xubM@tZ>%Rlumd~${1pV=(jo9V&-ab$te_|-?CtCKasfM(S zbc?1vCUYY!#5}8cGW6ELuWOVnvyXjz|DN7%$wZ0PI}_vc;QjLC1I5psX-H0qaIWgF zC|^;rMH3E>r?g0NaEU<=+bA(=2q_31{2+DLbRtc2rrx^p?V7ICv*fKlLj0=hyE5~z z9y{}@SrA-`D=lymViYPtR@D7dls5m8w%gHznf_KUK}1yD5tz;=r`vQ<?K@so*M;U< zp+==p7+c#O^UJwS{#2E(>U!Klg!HjxWH?QHj!!Y0IPt`VgA_SM9ulz*U$w9z#Trz} zlV@o<Zde~PfiP!M#r5jwC(u#+k0OQp3OOPn!0<bP?dz4s{bUd;J&A-@XZEbPztO<< zU2tm_gsLka%cx{+NCU@`s>0kd;sC`WHwtFWqfIjOo#51c(EQU*S)&8@H%-0yL8Vji zpZy0Da-2gqxBS(`1OZqOV1%4*&$mxr`S{mb_^Od(w+DeRH?d6nq9wO*w7T{O`E{w) z2Oj-*62!5c)ew5JMgCu}%Ev<+w@Hai`}fAMCw>^R>1ZGm>9fWeos5s<&7z+k_mIoS zU^ClepC+4=e7r|?;X}WV^4Y~_VPez`<IA#dm}>nl<(J3xpxZtUJI_D4(Xwvnaihqb z@?0Ofw<%C0Tzo4qz`=5EhQMu8>^i2Z<0t3c&B5KCASgU49*fC$aJK8e!!BH3-`>e+ z?~>^t=~-ME@D7P+zY!!PV{R0i+3<1sA<g4k<TAm{ED==tYeaW9$4D{Fe|uWnW(6r* zIv;N}Z>;X>x3ITup1PlfL)RNLX1PYZ8eGSs#~2Y}UIDk@;|Us>pbGu<^}g9W)QUKr z4&wAG3*rgJzYu8;i}QGt??EJuW`a@hOLqpu^C7uW){D0~XT;PlstSK#A;Hx(W&bIc zZ5c*=cJ%>knSF(;i=^b95#dULzjR-))nzLNt6!}xfk?D@4Xk4&({t>yS;xn^is4-b zmqBf*Sd&bN(@wh0E-)TsbpMN>w(*D<F<xB22*l~)8aBL>zw)l1XLJXxHouoIga`ey zN~Xb$9uA6WKfM2(dfoc{HBqF}YzcPE8}3r#mM^XthFevqp>V=SZpW&3j15I9TJtI_ z2SG)TUxJ2&Ru$C0=H4(^%iA-eCGs=IcsziRbu*$uudU{3G{a1PPy`2yy%;2`!EK4& z^8dmd0`{FpZqDs{wow^M{OBixl?@vgG<SJ9kv>v2ggHkth-k=m7s21V?L_C~@$LT4 zb96yVogCeRd}0<)b;m0RFb#s4xHAYTR&R?uyL)v=YsIJgN!yIVQSjNCqLYw<8<ADl zvFe9pIZ~WVVMCO(*iLc;!fdZ$XODl64LSSVPa#S@PlhC09PJQ@`mB;Z^&`-i?&seN zJn`jre92uVg8Pqw!i;%%`4djx|GesAxXc{t))r`jQf>AcKNOtK-Rd!moBKeNjXz^6 z<lRXAC_m%ooXqN7DFRa4qiMs~Okz<&PGNy3A9^&8egzN)HLG5fB)uWLy1O$(AiBTe zSJ!s=t<?Hyx4+p*W|8rk=EljtYvD6N4IIBmyK=4x_-)Uhtws-QC5>6GRB-y6O-!Ap zvb9X>HvC<)9B-eCX;U}bXlwp+Dhau0WBnlK-1uK>;+_t=w2lK~{XZ(i-1!ze`z0r# zDi+oxcnetLvd!0sL7ck&gO)rZO?;rDpV;m^qwqf(^0q{7PNmSx%Z*xPMo7$%#riKZ zAH*q5TCO<CS7op+HdTL7ngAoZ4tmNwyE43@?o=Pc*IB^V-Bud$!6ao(Y5|wJ>Th7H zcRI+>{H-UA;E8yE+zZm<^<^7(yQ{(*`_M|S)<K#Z8{?wy6lr@Z=|%?L03M@Xnwxv; zd&A5-W!jDaoc({FGIo{~UC0f>y}~Ro&gd=95v;KBQbFV%XK`s^^`@m@{X|JTI*<x& zMR%)-UKpQ0@Z;BsJ#^hAewFK#;jo<m|Fj*Hfp`xp^w<BQ&v``4R>0Ol)(W7YY%?np zX_ZE3ALL>%G1g<(EM?CIc#X9$PKWAswAq+eG`!EY4QvY`Q05f~>vLv&|D<bx`6weM zlVq7!TZz6hn&`vgy!9yCCwk;gLEYbf;TQ9*t@4M$_0JG|fyQt3<l4jS0^Q7y2U~m{ zb2*8O6>1lrjlTRuBhAu*PJh)$gRM0vU7UW(x0Uc%f3GgSAN%ts`hJc`^g|mp+Y|C9 zFV3t4lpd=cnI~%wsP0WGY5A=9owpqP*wyt+DY%Z5;dzC=;c$v|2I*cMh4JQ{_gT}t zBzu7ic#rZ5{Q%3tP$5m>%is~5xxVml?!=9@dc55oyg#L5nv193`YHCNiEo?_IN0H# zRNZWmJJWtt;PP9K@@OVRVc_EDsBHO~=fCz2hc(BsvVYxJe{W=QTblnJWWo9pnV*;O zn_=1@iWrqlIDU`9G-Bw{gaUu$iE9nTG_-@uM4Qf+8uiyCxpOCQuAG!ogV?852y4@n zbM-}%w5xTDI4_4U9%4)q2eEQi)=p5jR4xBfC3dQ}Iq<%?x1FkbNET-`&E<AdNPsB; z*S1@Q5DLt;yPAvov!AL16D=dxoxpY}qtp!HE>DUTviN5Ej%L;ir)b1M-oxj3m0V_5 z+?dOmNn-K)(7%|n{OB=v=2gAwTe+V|q|0eJqN*uy#kZ;Lb*CPWK<bsLP`deLyWYaX zJx}@pJG%p~0fzoQFVU`VFbf)yXQ?81lMQp~U~t>Q0GJkvt3hzZd?3c-zY7fj|8>7$ z<kZ(lnImKha&nk*Ek~Hi0J?L6<r~qDm8U2C5!l5AYY$dHtzvBeGNVgAFBi<2M+*_= z{;a%#^7hGEHr}7~=-udh)KPCBN0+ztA|zTvNKnCA8#&c0vHSr_++oxObb<1t@x<sf z^~{&z>JVoKbKl-b7e0n2`(55d71j5Q%_{*-yqAqN5}^%i=SDJCL=dX_XWHZ*5u3Xg zkIilO%{jt~FDLgL$!&d%IY&M-KSO+%8htX2UmlH!^)}!n93z#d!^|Gf>s`3E_b0Zd zy)0}(lqmU%P0Ha<J04kK&O}slif~~>=R{$Uf$R5*<bb(AX)@z?W&*_nJmbW&SxvLT zNh`ZMBIC5Tg#Fy`w$;=J>{lx5F7RA?z+17Zu(H<^a%uZ8?J)>j`GZKrgz_&BqPz($ zuLv-Qd}$Q?xTDWu$)A4{H_)=qef(d|l?%TqOM><ul15m~1l4fl^Z21M8p4$ZeA*6( zpx}jv#L?WYo8t(xJPj@IvFH-^ZY#4LpIw}4y4CG{;7D3Z!^w7@3b&JL<(Q2yliDLI zS_z2zAWbLZNIoZ6HvQ$#UN%3E<~A*Y#VW6V6yN(C{PKaJS;^xcdLXU%Tmd+hTV@V& zl$Zd1YVzN`;|hLxea4t8XM4!q^pXm`jTyL^fxZ$Cc}8oV!6r|FzggyfmgphBbA^2Y z!0^IMIWSG=b?%pZbNj{`A*~k1ov<wnh9$*{O1~S2uLhM_@~#!tw3mQ|udNnRfzE^U zCe{H^N?j#TG)<Yr1fB^dDVApXT9@cF0U<iQ<-MHw2&T_g<e!)sWK#bWj%koir3<uz z9y*5#7w^)<fH=)PuX;GJQ4k%a;w%ONzZ%OlS$?d#rUE0H)ZfOGdX3EOjZ>Ir5iw3` zG!43t8;}X<W;=0MfvUJP`Lc7v<O@0O%7u^$>JL6z{l6{quJXbgS=9LIwR^Y1J99~h z;W$f3f>*|0QCn0inuroM);RN54H6~wBV`MjH3;ylq6XfAGa2815$u7S+27voYAJHG zS#}L;_K4a<Ybm^FHz#9JN#<pMP<0z#!`o1rFuM;uz-{^-eIj~BW7AWx?CR=`(#pgJ z&L-;4=S_(!Bq28a$NG+c3#K}bdV@8NSVIj+(I>49?PbR<G!|Er%fm+6A7Psqm7ZoE z-?=%%+i<kBAOG-{Kl_7k3_a9Gfr>YezFTJzp4DQxN;$LUf@WQW3vJxzab}y|&+~V) z=zOT#)qO8{`<^_MpcMW6eUvZia9xeNVW&s-_0K1UK7-vM*z<dJR#gU0%2^EtOEJ70 zEtBCX<F;=GXk^(VPETVO6Hl8zl>T)iXfNe1^*OJXGr(3|ojo=#q8g6n+P63ja<N#5 z%HHRgi!eN*%z3b>J0k87i}hS|m!uB*eALrIY8?-9NFsCKrX@{8v14a-ynP*GNCWvh z?7jtcn`;d|<*3y%!SN!@O+3H#(iSR&uzI#O{1B@ksAsJpLU)6NAdw_gy*!HyT_Jbv z9D3K<Ocv|>K)?7zt5VHfWXX2<pB|B3q@j}LLwL|S1&q#e4qutk+?;Dyx!b-vcPI<! z*?f8KfWqZ?wBsN!Qp`5LZ@)b@RQABG?e1Nxgt*S7beSEXT7vD@jRpF`9!z{>ZY%l1 zXa9m4@w5~FpCJY!ZKqg?{<&9gxh(X9nxKyrhSfrsVwMjT;E0OP8eHm+_85No6cR1i zK;>DLz-8B~r#g&6q7kYl(cegA1Os~a@i6SvT7-}AT-)oW0Pn45x`ag7C7D7*x_sTY z%R|!O{UdLBUvXA`^@Px$6MX)9S$9J0ep-wRzx(nMWal2!7m?zESKoU-J~@0fGQRws zY~o-c)hCf&ju~<^B-ImR<4Ty7KvYWS4*=ia%*@RH!_s-jQ~keh{21ALZ;?o5+3PqW ztD?xt3fX&Slf8-Tak6K&Y}sX<WABx5kdYi){9b*&zd!OvJv@l_c-{APUC)dC7yJ(L z`~8TwmPLrD96c?ppQE~!GsganGsl~{s2?P^1Wb#Tn7)a2Y^jN6S*dV|F_bCO`C_EV zA#WWfKd~*eqeqgiEBT)5YIn{aL^u~G(5P1`{97NCk?ttUT%h!zhg8YrOp<76NbKy< zsEjsrzd%Us$Djo7-VRBLFrgg8qzZW~tFHGbf5tWp6K9{^x7n1(pMZ|RSLm*tKy3~7 zV6+fhU^zzjH4on7Ng?6dG~&+FF(fM~TP=p-^@yz6+jDAUihKcv(^>8!$*=q3Mu$P< zW`0?ypRZe!4kZq+mSG{z1|(kn&NY@am$N=@JVc$3-Jrf5l+y#Yp0F&eVd}Hv;yc2@ zeUd{b7uYWm*QKyRHUIP6y6W*+s6Zf2niN-{THlu<ua@)Bh^gPUS!+)LM}`JKu4)+k zfxJy9+9gpZ|KZ`LSZ%ksMFudwl!p(;rTZ_eelV`&v5Ewb7=u?Jik&Q~6YAhI225@Q z3v)Poy>Hz2l3k7oKv1F%tVeNxLyK7A#6w%gA-93Cg%8xmedVN9hA_DI)d^2yB0ctE zl<eF*YMDRB7x~sB!16-+8*i#LC6NQT+=WAhTTtbVe?EiR!v2yQ#WG2r@*-6061b=l z{}IOiA&YP!k{~lF(o)9knW5BZ2(g!Uw1HfrRBLP)HAnd(5A4Ba<#Q;AG=aT*c5VJ7 z1f8#{Liv<3UM>B(h7q7Z?e*$IVy8`&n4N=mMr)6YOYH>vxRI_5eUFr5JLzG^mb-3^ zOzyVD2Bml+K7vsW>GzIZgG9AQD{<iN(pZ?I$}?&Yf;;;H)0Xb>I0f|v?mVm*5&_?R zp@~!9ukBC>%=K~*g0vz{l;d%7MWS#5MYk`G4*u$7w<*$&4u3{wJP~Yion1=3`T<Gx z32A>mM;kFWfl@2=B3tDpV7%rT&=c7EF-or@TX+6PRX$jQ@JryKX%Y!;=l1@MK)A`j zAyz-a-R*KTK}Yf35tvxJ5-tx{kFu-f32cm*Z0S80^HIf8g1mbT1uJM@`dUT_`PFe@ zw^X@f?x&JfPACEyQqx?Ceww0(G%^ss00<M22R^?6QHAL5qu}^*r=@q04&H&I-)HO9 ztT$&4blN=qYvU%vsX7>ARh~Zm%q{HC9usm96A*o4=AsWvvV2L>?LW^PUHaA3TyWDA z7jZzvh_ocY*SQ>CZAxWIyz1UI)_O_CZb&3%%kF0c*$&7KTbl_oc<(9h%S*pkCx1F$ z!cPxleI`K~*w3xUjPh6udCkz)KPg~@4dNKz-r>W7leq)=0j3utY!n}^wTgKtrTw!% zr_!v#h3uaKsdVxXSnEhD8Hf2xDBg_>=<Zqq<7pIGiUJUQ?32hI)Aozebv&>4Rh)Wg z+q0Pm7O&-ISdSGcJFD)%U)kx#FdO#sDc7`Leg|%fHh>$+XPe^$2q9Nqym;nOQuu@p z{X)1jBTvI#=s7+x&A*XS<k3O|Cj*j**PevXzgPHwuDaj@3}ML$5Y2V%25URcF`!DF z)&U{mR$ALm5`IdktJwi8W5opoAoilQ@eyTzmJsH<Ls$o{NbYGW3Af~rz*m(AShYsS z){|Yq8o-!(WsrwBQv7P7@cCXBcsDcTLxG#J1aliZ|DuH=4G2fXF}M97ZES!1QmCZT z+*R>0?4&&zy6%0^eeuw#aL=XiNCV7B`9<t(*P2WpJ}Le@z=rmV5ycp;pUMG7roztg zn!2at!rbkR$L!qk-|9~k=qQ214MEiAO3+6c?}P7-q^VLx!*;a2^mDg+RS8=Uro$x! z+(k*kH5jX>@QIFZPD~jLsf2j!UY7hB6tBNHWR35+>on$g<$G3s7H-(znO_CvjdA{s zDI=>#xB9rR<e<x&jpWS-qM&n;Q`RDMI-7eDf{IkXg4U1be)t{vJyWxEJB__#Bf7eI z#~W#UA@l{S{AC-}VAJgy84l9-wnvVx#JR@t#*5<g?`>8nGqe>e_`r4UnB(%fq6<?w zk117LwiW#B?(^1#6nga0&}ayEFqF2(#@AMu`{&)PHYt89DW2Gh57RuJl;U(^<+ERJ zrHM5Y4@_hBs4dIg@G~X^tG%@fPs?%Qh6t~odEm1-KPJOPRioc80^pEC$oo2>iP5(~ zCyvb@gx1!}Y%rvrJ|wcoK;!CwbH6P>;a}$PP=bw2!<i3-*ScqWWk434_)ILY&#~rH ze|Ra|rkMB2S`3g3*bXODLub9%#MS+PaB0Qz7o>>W35m$S3{}|_0)1@VJHWtPWngm1 z%r`AM3iJsz#WoPnD8}Oe=|_B!iadKsc?1hRCb(u(Kmd4efA4ey$h9@3TTK7AasD4i z2GY(F*eH+*<YzQMu870~{=7b4^nA3YU+O$zlV1%OzOuz$_YCa7PW={_<t4RyB$S;A zz%o#!9|OKm^#*`uM?ju{zOPVH#b)%{I64PFswA=Dh^wnBCf8(L3D$ZXElR(}#4$Sh zH#+g5QxJGkiyMHhT@9;o7z?OUY{E=7iTMCBcYHR{yf7PtDsOq&d|tZf7cw;%s@-)U zQ@o0Rt3wz<B;RD<``%bnpSPVYRkj~G(6(NgM&^V+8tu-Of1ZDD^x1cxDzlL@8V`sD zQPFUiF(N`U_{EA(9r#)~72D}px%S#HUG-e4uFdblbkoP%YLj_GxJ?C!Lm_V#B#QsH z7qxIZ(YubbAvwA~H;=-g-i?&gg#5BAK^U-m*Xd@@K0%MGlpo?1EryFyx>>w3qc(Y) zOcYpB&gb<jis*^!#Z^FV7un|+<9MS3CX6}{!K1Z9B@?FaF)z|y1Y9AKs&k;Somgg< zO#Qp`5A(ZdF@<C5#uXy^$f9N72)qfFag<<1*hF38n4LJ<B!HS`4=mxWt5vfUj8 zAs9YusX8X1Id<+!&1aw-#le{A*Ca{}qkIr1HGXW`J@<Di^7XTt^R$`-dknuK{h0E) zA8beBg2n$HrDZXK2U>N_0M;|Q1g6+(p%mIctMfy{H9V_8i7X+m{+QS4KoEUzStH=h z0wGrNGz5KWDSJorcQrF<v8lV+mVu{rj0k?<Vhw58iq2bQm<#paSJj|X$I1d*%Y3+3 zOp&YOkc@s4!g&Iu0dt$W*GoYl$e+e;FZFNt=L(5kVp#y?w`CCdHefB?Y6yu1L8CWM z-OodsgEd~+somy0v<Ejw#S5u<Afx@adi?L1NfGD}aPhh*%hV90Cm5oH0loV9T*u@6 zf#cqD&hgWo9oz+$$QO0MHYa(Zj8V_h?P8hzfR>s>?E7fC>5K%vIKW$Ii!-P6DyEZy z`=L`z7hRziAW2iz-)%3wE)r@D@@k!weh$j6lOHlf>Xg99braIfO{O`ziM@y=vyc^1 z;|0c?A!+{?b~5-5^+4Hqp=3WB5wp>=#ssVuvelTs90fl+SUF&O;`otBMSepS`wVB( z&fQ_<BVwX&YMy=Af6=#mG_h1I>dhZ^zWuE?x}BWX0)I<zuUR)joEFQRgx%NC1lP|( zmcX~)-+PIOz_;VdTb3weH2T&9PM`TU^3!WY1tBh$w%dcdd%t&>m2!3PeBd`ke~Gbs zKIRB`e8(sgB+fL95cjmkV%xOi2$W@cD8q!U&^l`pI0L1-xX8vee86LxA^{gqA=*B6 z3>SQs3wAr};uW|Jj%RPbb?L^=yjC`xj^PdEqTF`XsNygBJkS#oWhf|;9boLZloLD@ z{&|$o@1Q3<sLq%Hgf`{8^P{`7pGI8XWoVZQFeoy=Ojv*Wlq75F_jO%Gc<iV)V6SF0 z7$CRyQIxTxTiL&ax`!H$gtiCNDjpDb9L!dU2ri3yv?|wK{QB%J2uwS3tid_}qLAAH z<np*e5ctkf06Z+JBH^*fsanz)Ccm{Gz0cZSJQDzfsTn^>p!-#|;h&nJI`wn25Gn1N zceHfKVEN{v5Mi@zjrXpQpUDrU3B=4QE+V5u|7g5E^P+<3v;RPxSOPgK(@v6AYI}ks zJ%bAn9HtZJfhZ_NWDJJz_pVYDYeLT-BN@DkE~3UQK~!`Lo%zqcmKjuDj{(<=1!fp$ z+=(YFAN;KM+;RT31lWN;VBFZe2EH=RMnE+ck%NJ4Q`Rlj7&z5AU~RgOxfYB~sMhIK zE;M8q)ewhNcHz;$xX=dAvL}I0F_;YSkc)BP>+L{Ijt%sT&Y9aG6}AR@a||N5#GeQD zf3ylYE)6Ea6z@L>R8t|ZG)l`uJpg)&C-|fjqDnz}tnJr~&NV7<dX_YjK#>VyT@ZhE z3)3C_no0OY>`pgsjvB`$aC!8Rq~3NPv@dp^{ejb!OUqx<6G`56!IQ`J1g?=n1sp6> zG8AqnQ+FCvVDIAKvHYq{($jNSrM%!fb!50{e?Cenm3_;BV(AY^mcP(`g=l41_w9$% zKbJ_(NTp$<X<acV=bio~<%#hf`AZi^s)|ZTTgrDKA9dePdoI=pCQ*+WMNBaenJg4d z>U)Ly@iica#!T1(SttMF+@1PQGj@?5Q~B!m!l>?-(kA#Y+PBUs{zEI|k=Ik;axFyY zY7p6szFc@P-ShK|hw-;w?{EKYwXMHUeJ0xNba@A$5-PFo6Yj>ou;Z<a&Frs=ar?YV z<UN%6z|X>)B#}&Oyou2khc#e<F+8?dXd}ORiCRrYI{cG$6MFoy9A`~j5A>kb)`AE= zmXb!!_2|H~V#R*PUTQEiz|g$XO{$*NdT-79)Bcwy?=dmNrRc;4oXzx)=~wNG5F+&> z`vWX@K9#yMN0}sv1}f@qYeA5z15`jI+<4c(ylV1>y~lAJgg9SNS%4TJT{;Pz@y9oM zkiVb*xi`|?v-Y<Hgo6b|kJcpsce43uLMjg29wI^mo>iL3$M$_C@4%&t`JN9{+H}wM z2A-;XC2OSmJ6b~@xaIg7KyD~w)Y5b32R3Uevk$vJRjFW7)PC(76_Ah(Y!qpvhK$@B zJa-4!<^MRY{}Pl$aNCP_Kv>GVA%@s*)&SEER~<Ogif+D@hXT?RmkSDpcm@8J$4Rwv zehpjoV;`WlS^K?i=zq)ssr&+K(JQ?Hqq~m|M!h0hFtBm%PP4Gp<AED+;Be1cV=suG z;*HKy;HYkEGEmJm^HPlh2s*9%^6H<Km~T|Hq=0jtXY&<dDWH<%Ad^X6X$E{#X)r~K z%V3vb!3Or<LWtQ&AlrXg518C=c2KLM^fIz{yblURFJW6SL>1|%5pS=gcE)J-pwN@Z z!}fz_!3VC&qTzC`SmX4wqGOh`AEX41u}>c&>hV9~=CrfyJtSgE*UIb)9pdCcKY#Ak zfM2MozbzFY?%h-$G}#{|cgXMm#^O%M<NhaTi5Pac5Axb3l@d#l?gR`#)IxYNx!v%o zq2~mdkl!`@*d_D>xtQExOis#75A5!Qnb~-Kl^V3+8iH?CNtv(tEHx&KJ^(tP-(QsT ztmiE>)bC{H!QS@N=pcok(VIMk$xAH@7vjbtUnXQaZMTy+ugR!>KH`U+n<$ni(;e#Z zg)6K{`O>Lb{0U1RQ=4adt&#@04{Ce5Vz#cN)H3hEuMVE1`PBRn#F3t`q+!9h*o51~ ze%>+;s-u;4*G*yEjS}c&{EVn>+!coNx!Ty(o>zsatz%)WY-6mmL}|K4DKBFa$|Zd6 zYEND>VrJlG7s<)kaeb74HWClzC%78JI|`+Ge^x$qKE3;pW}b5f>~k6efp(ZG&QIn~ z#d>F%!RO_krH$}UFG#()CCFCneTfH^ErfH<4!+hUmK_8m9>DF6)Bm&4jU2)ddnyec z<IBa&FMlu9uf*=Heqm;N%?Jlvp`MF(owUZB<4Maj%%)(<sdnbQiupY;5RA--Is)() zMR@=X<I7f}1|<f?M|&j^xU6|8trV#}b)pDBO=Oz*Z_o$iynpEyp}@urJ>u64hcS_m zjP{yWfZ736atTB6P7B2ySLZ~oFzMpQh0DNwUhK#IvIW56zcgclqxYn18PjRyMA(nR zQghlYO!%iY(>*s|-{I#e?cq+euRne;Po#$RY^s8CWpMnEc-eAlvN#CV*m0C!*w!;1 zpMYEz<q;KqPpa08L2&+Dxml2%5$*}tbRRrbb?t?Chvo$AA&(JKT<T|c8!(zt`ASlR zK5f-WmOflVp?62YGLr<BHMC;#{rs!067u+{E(gl!Zt*z9ajRsb`sFg7Ss|gW;5M}< z2{}=eY1qacc6fXWT7n2;D699dRaU*H1v@yrqKznoc~OGM_u}_XwjdmJ$IrikHU$Z8 z2vT-<tFq$v$y1`l;VsgFNiTYtGqe{Tc4GW!nLWDTPyVanz?}Z0UrT1##~$Y=3jw+Q zx4CtKc?d3(mA?pXqDkrnQ<X>6ufqyvP1N5+Zsh!}rJa7&EV6wJ$7x|U72%;UO?P3H zZKc?x%SUvwyeIxuavC4La`Q`=$o>38R_$(*ObJu7pA}uS^1_*$dY@VZ^vu3ON?yC@ zAhVD%Z5r+ZR_Qdl(!{^aTk(&?#)UZXSi&5s`!1QnsE(HKvW=Kpd_-L*eZQ-CT3U7L zqZ<^C&draTifNdzMsi=7_TLaDWuuW_Tb3^?KC0ao>=_F^w@6PkKg9O4Uycu&K~@zv z*<BCHP>jF6`8#o>4XMA}6;+r4d8{Yk;&3-*^{~oL2(vNxIS;6=t|r!mugP82_p)T1 zhBBU6L$+5+fEaL*1%#}vE`}(>(RfguqJC;f2+QwUMW5eGGKT~C8-fCZ6vKkeq)^pc zE{C6{VB)c8T_Z{dAc5y6m&^{J^r)SroTzkLcBgN>m>W>sE9c|#Qr;xo&(VC_z`XKb z$nJlJpMT?*+TZuUK<ronz|$cCj4&?snxZm0S;sHG200E4p2b=LqKeXQ5a}MN|E9`Z zSb*IH)OPd`5D30l62g0?$^pjSqw5u9>1|U`PW}Tw2d+&X`*<A-fsh4JCi7pVph>CE zrhj9jqE}+}yF-MT@E~w+%Zw%CJ)%Ch*~{Rn+*RD|?rqSs#s<~$@2vP$Sq|BvyzZo? zHYUvIKD4{LOHb6I8)3H?;Og`^*@Xm2)NBbyfrb2~;0FJf=Jg?;zCdq@Ec(RnJSwr~ zRzfuF{c}hZ7csi+^~Sbo(&4R3wMNbRhMA8;@9RjtVoeF@+7%E$qQum<;wL@6!H^Ny z7E%y=P)`r{a)%z0q=_t41coC#x*>jH6bQm6Znu8}O-`6xBXV@4JST2H_e1J!3S%!G zz}yKPz*#~kBqtquZ#r#9=t*XKnafxEM{y)1X5A5?OxMrQ%@cZ!=ydtU`*E4^v$>?f zeev0kUB1dgRn>F3Y4ib*V{_!9m#o%rnnxM^T=cvDBNCgi0{jGFLK|SGg=~xYn0Q_- zjOEh#Gglj`#EL63NW3%}g|t-3ccVG^IJiC6^Tcgftoig-^+9E?@Yh1be1SxhZi7J6 zF4^tSK2w;C5baHwT5hx)qNR#oC!LU)PC`CT(s(iX{f3^HZ}Yp)7(cO9E)_D=HhXYl zf}L5RD?!$Zng_^Bq&qG^mW@Y6RWFN;%Ju20t)MZ{r`kW8hywTmwXeO&fg&(Y09QJ0 zTytV-2&6O{P)C{8PQ(o<wVeXE?KL}8EDHfr{A3&PUv#JKj)`kAMGCCnkKlQA%z;j0 z&L0~B1lN1B9O05@Xm&{bE<j-@g0n|HJnDTp`cdgfvfe29`dr3aH$IWX!rQWoQNw9V z+<&Hc`hSIX|3oQu0G-#Y#~a>y1b~8>^3!12LvRO9*9YadxQKYpVQz=LK5Btnj@9So z-6w!EZqqxssgi;8nOeu|3=M|51q~V35vqX82vx}*#eWws^G+lK<T8z50u_GJjZ9(` zy<!DsE3>*BRf=LWF2=lm-#;SO<UA}NE{r`IfWbJo>dm?9_(a4*(@t$rqXEY#O`3G4 zXIyM{#r=$qgkr(KvfWG$p^h)pX)p_s@znLInb)YG@AXP}Qav&Ew#e5JKR=qdKnRv_ z2V8*1l;Jt#nTw@1zd1>lnfdqrvcZl`H!bJL_S&lZ0%*hDqFkV`AA|>OS>lKwL`;qe z*}%6~x~X$vSKRP5h|N<3)+Nzfbd9AvTuu6(f0qO1{v86;q<yj^LPJnKw`MC`4*uY$ zeL56N^VEg7ch9@&`iN{g9LKXMWjz&~Ux!#KiV+mVBa`m~ja&248Z1@bhH+4`%)l*E zt^g)kj)GB3haK14iTL%@R{JZ3P~L%{q~SO8&-(T^0}#vmxrvbP3D7Dcc!~f9Dv)tf zN#%A9SBbPc_La{ct+(HP;a^zewTXZ-GVP9-(~&3aJa=1#D{wB`u#sFQs<~jac`o+W zHaFm-vUzUR$ERuvdZ9wk0nko-DyU6dgpYTRWh2{6BeN?BdcMkGAmVCSb3;)wpldF6 zf8-!&Fnoa&SFdVYXiAq9ZfznUa*$k_F4e<(S<GTbCbQ(8lLV=Mk@F*H!OwG0^EpT6 z{qAwv#GOuNds<kz%Xe_CE|!7!Hi7%;@QJ*Ssh87>xzBwUx)fjO1N%e4^SUcFo$xD$ za25U>G1QWXoumYw^8Q7v&x^tDAYNJgDviLcpg8QWerD+RxRI(mfsL3Wz=xu_)mmjQ zpd!7n{lF;wFuAfF)XopF{y)s^Kc5^8*wg)d80f$;K4l*rU-%ky0G;fo-Q`@K)5hBa zXO~lNwZl&vZ!7O)*p@OgLRy?76gD(d)`b16fhg+BuqTr&KUr%8f%W7zLf-f>;2`_R zfj`pY1IQP+EPks^@I+GV$9^uJx=;l>mn33z#oVjecD2#LgIX}h#pTP~XJiNO0M!<v zl<zN3EX&2RuipSf++%q(h01QrWKXs^M&R@p$iJP{=RE_v`zzO`tj*XG;}^h_P3Yr> zYs%2x-CyokVk2n&pY>9J*xRUxaxwOGP&pmg?DG=&&2n>|Eda}7AdZ4yl!=LYmI)#p z-7NHN^D4rV)0ZeKmMOUJGRDTR`<p4A??L2oxlAD<rjDGr{S99zO$U=&ZoHcpKN$tv zFqN9s%f}O9U~T3`cxe%oJ%Z8nq&_4knz^HiavEP=p!!dbY+Uzi{(EC6Xhu_h`)uQE zJ1MTo%JnafJ#e(>4wRDku@>bP0L}{8c<zsw4$4=2dPa4gL7DX~hwoCP)y7MkKPA7b z^VmQ{;N5<rphYY2G*8NM_j^*3Z&U6ZQ^2Y;6#n$td^-;;^yn8h_*6CI9|84bpmm#? zO_6BGJ7v9b#R)!*Fz;pZM2O6V8U~Z+g24|G>q-}r<f&A{z$vazvWasEg8JL8O~BUX zY^*9Hpm{HBjFb7!7Tj@!PhvZu<$_W^eW(4M_9oWGSGtE$GuUmM#0gMm^W1z5%y!yH z;Z{PX5~SObNPs(Re-8VjAH{3TftA}U-r;^d9|*BwvRYY5n%2Xa_x2rMI$X}B%)fGe z0bOgtzI3A}08&HT3s{)_8QKy-V|3NPv;B6n^VP*K<68#W(PgRW>(xPEQMLuihxyBX zuvKpJmLhm|FAnf|Hky`c0=0=_LDs^ezwRQ|X5C=#w)c}uI~e^gc8qvRyg;0NN_2d? zf<`cW{m&C4`ko)L7{Y_Vx$<8Y@n4Ds2c|yu0TTFSlfN4D7Wx7!=%Un>$Mf6)O^ZlS zl)&JvmOfDt{He^D{UiTL(r6>Oi^hTq0nS%oEZwRZc$>dE;oIUCJ(12Oz=g4$p-u^5 z=zu>()PN2Gf>gQOXC`0A^DOzIaxmay6o8+RYv=8d^Kb~O!0@4Theo%pHK=oe2}#9O z{2AV51)Qt3G+Lm!DM;9$CGKbz-#55;MGA;#o5ems*ug$4D<o#<MO>)o8ln$p`(kYH z;J&jZa0@R)%4#2df2NPEB;cNfyMt|fklk*e@F<wuRot~|^vH#D3|S6a*YTn9BSQOP zqhqGjQX_He+IJen>Ez9FBb+UW{7zf;Y~n>U4#6JUc`y)<sI(@5{zZH^M->Au-A^uH zy6K}@)V&;rV|R}*6S(c{gw;}WIePTy>OH~AO+|Zg#h9hk;GZA<jmH%vGg|fv`AcKQ zezD)F_OZqSy#gFl{b+g-2(J-Qs@WNnlY|~?!;7)$Gs#%%EWT5N=U~oqGU=Fws$Nc* zSpNNd#A8hB&zE_&=*!^Om@!FHl<!Z+qu=~7q?0o6;7IbRefe84OC^qPHr*w-51R9X zUZr=H+K1FCjy)bYJUe!fRdLUKg%&$@sJ@a@ZVJAFEy(y4y~|{{_Rkf(ufvV!qrR~- zru`_^Wl9vI6a(otWxwg!p)08O`mv{9J07Y1_=@;A)e{;08uBZN%3KYY)L~DHHJb{) zdoxYxIIye~X^!s9XLD$q-HrPTV=qnH`exv^>Uav$6_l!2f@!O@!oLqf7d5};Rt3n0 z`CXw@W@iG>VPEwnfP20WP*fRsTId5C30Q!+_<{6?Ks+2==<V_+*%AoPaS$wv9wvVV z_$kDm4t#)9@&JfuBAY~4*H>S9)w4J#y&kVukSVu<G8UBVraLGf{Ke4?xZPCD5=CoV zr0UhUU*2_mPKW@x5bd2&baJU~BQYtUR;C_+WY)ri2RHcnl>)KtqeTC@ra%ls3!s{R z1EW?O>HPP|Xusnr2zsn~Hou^)A0U?5suH(dy(bnXZ3?%aO=50yKN>srO9zq8kjjo| z%<Y2p3dp5%I|sKIz>wM!|4Z5w5vbq&WXKeq!xxCt`x;_MQZ{OJ`A+5`bQGSV$7jnf z)M9=_!?OQ7Jjory?IXsTYw$|XmrrHVu3J6W@Jfz6&<d%NHm%MG)RK#POCO{RyEe~Q z^H}yd(8K8TNTIy~%9YuxHBlmboWy6<v#P%9UR-l+^*&W+IzMov;J&A2N(eIKs+HAK zP=s`EHoYOOHOqhCY=t@O4l_yX+3DSwqa&M<v*0F+@BDRXVdJPxy955W^mwq3*!(~D zlsBj{7ap`338&;?URm$Jh2o&Jzt;B*)EaXF>)Nnzp~3hb1VkY%&j+D6zIV%pALu~b zN>zif_$DQC1nlHwS9tA$%vY)^NFUvx@P{W*XX(&@t3%4!m0M|&^|Vdg9`T>=JOh@( zWzHu<sn?O62lv8SNWD0*E5=%}w8*yabuQ>o5YzZRe>2<0`DGqQ>I{8hEaTVz<clzm za$YF|c+C;5ZDd>|Je8&C8sncdG()BT(qoGY>pw$k$JTNF44PkWd7?#xW>=u;xA73# zxNo`;u4aZ($c;}9B2laL`Jj8D;N|(~>3%y08u=}oTxK7menLxWrmKSfq=y)*B-z%b z!SzzDzo`uuNfi&WHANLn8w!7?@HEaoa%Qdl{wudSgAu5xq52t-CGYZTAy+$WUg-Fl zq<MkcmLG@6$&d5;Z*Q|9^%!$ayHg+Ee-f{`@y}h{4O@|-g=D-@BZYI<vx>ke)(GiS zbXslv7FhZVs>X?s8Hv$<qCg=l4XBD71n$GAz7Fk-_@zDlFTbyqLBx+)mN3x5a~{*` z+U8^s(Ccc(L>EQHo3L40nWK+%$nGG`b-=lN=)43h28ZWbfOl4eOHSDrwQ9LRO)aJM zL5S&%^$sXWWnOSu9R<d1eNNIv5MTapO9DXi!8g&_3KlDh*EebZD2O16l&UkI$V2(a zlNk2(Bzwq~adEC=htgR}MkY4N5o`OsKwOl|HlYy)+70asvi5&`ORb>&9)F8{{8XQU zTqrgHTtuP00_W@b@81dkun<m_gK2C2?e$4UMapX-wt7;$es@)BMVaVd-LwMw!49#+ zKSn(G5x^^7s$f0fDt<xR-@H=->Ff^IB(}PPylvnmg2%J$Gszmwt|55z`Sp~YsD9Pq zbsY4h>pWx{3JD@4YUdcm3*h&-G(EKA{uR@-1$4AIj5H&RO_NojZKoO%`9pzZv6j7n z2&FBN+nWVvIy$sqzeGj6ZHH1G)7i?I;`3(OE{K9Z@<)t|Fnt0>-PY6dV;7pnDK{f# z^X76<zasj%uDdjyrk~BlNV%EQiC?`=5l(*jeY=@X6yJy`?DxB{7`P9tU6lVk#)Ep> zOD-2b{>^3E+pcGtX@q_oSDno4_076f*zMQcM0cmgEkA5Uul^J_MK}cjI(^%c;cTX1 zzsJfgiZ=%6Wf_}t-<sCnJ@(sr??m>E&Cf_h-OYVU>yTZIDS|0+T{LNJbvk-a<q>0N z1*E05Z-^nuKKe(7{Jr<F;wv5>e+0Sj59Vn&k~p7!jiLK84*YuZT~Sj)-xI#hL>_b^ z(?VhmQ1E^~;?BdT!?$XYxLVqMF4rbnp3T_w6;iEN{)O&6pOMj3#ytcZHam`DTF;91 zhx|#6m2l>iT1B{xO>b=pM&kSts!k<EqNs#D*Qk$K%B(G;m`d#9Bc*auFllULfeheF z@ca^%d5=m7Uf0q7dC=)WB-C3Z7~rpU0?EJ!r?)JYXti4Iu!s}3KSp<)NujlvuufKv zSp)L|Uk}vpo$dsUS~{iPo>P_;qq%!#(ye$>sF(n7op+tsK|xMQ{O1F3TtXPGkt?WD z7QY?i=e<|@TgM)bMGBj3ZWtT|4ob5GaL}=#ZneSM);O=<Z?MWsRqo9*I|V%{n(F{E zTlY{6VnrN+stAmz%>_&V*sTB7n(ctL?+<DJwRQ~h-+^%hdjCxX!*EMqAes!}Ak_`6 z;cM9EfUa6q4-D^P#dqL+7gifjtS#B9;l$g`APPneq{hn;V+`Sr1kkIdyi^GAsEv-l zM7`BKG4epmo)Q))JloK@53xUdTR{VYpEh;`@E-b2V?Mt|Oj^}k%0TT)CeT_p?{puS zKc43Tg4Rit@U_JBq%C*ov3;Xio|Z3`I;D;p#jacwDGu`X>HROvz0JD0ud4}7_@@V? zJhwp@kJ=NOFG4Sq%QtpBHzYH?7$F^^vMBNW4<^6tA=}9Z&Ts{s%I0MM<^8c^ia(-A zp$Sy0<Ee>a>BTy^aCYY<k`Z+oY!cyfY9ad>^|Ye?*^^L=TbVa_!emFrSUw)%=Y1Wj z_P?1tAXXN_0kr5nuJ5EDB#CveB~_ewiS69rhu8j3FLiI4iV^irPw@k!Hr^Xmzcs?6 zxIB@K?+Gg#;K}p8bRhLOT$iiCrM{G29fBj64UB$o9z-xn68G3(X>E_<aAT)RUEBm9 z#OE`%kDV=Lz8~~N$<ig-PH%6UNSd1$wCt+LRDDARXrbJ?+pWT)^>BV#IylG|SDq^( zoMf3|AlsvN6S~>C8Y}a>!Qv{!@9>8`9SwiIz^-zJzM257{Ggz?3RG+_3$Z_Ni*iWQ z@*K0WRTKEZu$khwP}V5HsAZX@PVs)}VH;@#+mqGOP2Ix1@1eTG{Cgr@xa@S%xf+vo z56y)FS<vBz4T3dOgqE?6Jaiw*>Liy8p0;;W;JSG(CP};xfErefQZUU*C^2R7)@ni8 zFFC$xEv>)BcGfK4?o_#6W+WLg=5<OA<wzE^+M0Qo&@FXn_BE2z^?6HChC#=Qjv&M0 z#p;jjzXM-;sN@04;|Y5clmEhL;)(O)PF_x&#A{F1pwS($sTA7jkc7+^eW)jV)b^7c zTP?Dby$T|5_U#j08bAn`C4dchgZMa}6?-7REx<UwKtH|%JC4Ag>W-S7r8fRR{WhlL z)QS#(S!?%1G0Z-mAQLVC8T+X-h7Bk;bk)eC(&)*juK3o&^F@m}vG7kH=Kowvjp=e# zz!g$shXqSb&59Ll0PYn~1NY@K*#BHVu0E%b>f#Byr>p7FpfPI>$VB?Gmj}<ADFGOO znqhm+)EHt_0Vt;}_Qe0Zc2SsC4iI1v1hu2gQ%3oS&B_4fP}0|pz_+yD#TktU8R0^{ zTn1HfYAQQIKJJ@g-Il6Tz)|Wv1)2@CLHUK0jA|}DY&|PoMBhI4JawsIRx9JMU+#Vl z-^v+Kkw9n7zr+`(H)l^3&ma-9?e#1qjikc25qlbIdvTKj+uP#Ow@TB};xeYhlEf0c zLB3w`Mq^x97$vP|n?yMC%bRad?2QQ(&+a0HT&P+2c3fkA`#jPlAnv)F^~g<@LCI=% z0m|!5t#{44eJn_*9W#7IHksq83#(ft@2OTTuYMHBjYrA>S-L0mvr)#6^OQhsKDaR; zyX5@v2@<}LWmeKf#@33l1=4q5ZPR772A$j0v1o#|&wAAuQMXY3f>pSEf_56EkE2X| z9Rw|oGVUdk^AQ>eLEO<^Ph&+Q*(p(`;R2rB;v^Yw`SX_IebPzB*>>*p`inv4CoH#` zvoDe(4I5%ObqutI!k=obXMF-cldaIfR(rg*Pdn8Ni#&JI?gwgK8W3e=oW+M@a{cIJ z|FEp;@jE=WAS#It4Wll`MTS4rdHk(w$+c|ObM6^aSt(TfSK8Ue+2$9{LIX5WU|DZO z>NA?R88h|9lfx%2H$8FV;DW>c?GkU(&{>n<_%c`HBUX(RXdE7OnhlubI3n9~g1`;O zm8nm*4#_s*JlQm+z2d?{&S*%6t`KtnCTT%%QV`<&$nLQ+rV8s@@6qV^hP*+;3S1<1 zoc-WnyVBQgyRaWUD5+{AC*Nk1wnRS4L*pZkFC(m<G+|-^{%`%4hMY9*uYb#00tMr^ zein$Z(&zIaYH3>B-+25kB~(<M^UxBs7V7E{!1Py#j5*JH1#f;{ZnT$9DpJr`BHQQ# zS(s<R|ANH<+=IcTz_^^BgOU#U?*(Be6ler+bn1ZUcd;Z(06$CF%;8bZ9a?yzS9}L) z31|@0Gl2(DW5*8y{oe>&4%$Jsof^jpBBfHPHC7v+Y`oSXfCrSNx-~Y)EMS>5B(v)Q ze<3`)dn)IEx$}e?mQOvE6%68ZT!N~(Ne}TRP#aTg>9uiGF86r?<2FHqe2(+{sab3G z#nh+_UUCKGjf&eGnH&=NrR&S&->KL02JLK@!|02R9|zqz2g}9;wjtTl3xxU~H;vx) z)a~%!^}c_=giddAP0O>4vkhajy8yO3Lb|`~jIiJMY}Sy?@APyQ$YZJCoM33xUJp60 zLika}P|&8)qqwz}TPPxpKX~@38?dR89R5i#LYce5S8NbenvJGpPiQW8eh0tPdmP!S zn5&5?hR?h2>fv5C@*L+X(EO)&g;d)&`)41R+Ww$ZWl}!ren!zUdmH^(fgz&ZoT#pv z69kRsbvjwQBf?MLe#LEK^}!OsnTLAWZXbKzN`#&m#P>=%t<9=GG9aNey5GnBC&M&$ zrU=31=+jg9D7yZt*XySXg^%HwB|$dl<swfkI&mjXfb?~6>%`l;BzQwy!?X?%;kwsy z<Ik6ICAs`m6_YYw9Ub+o_`IMak<U@i)zi$(g|prqF0tNtnuxA%!dlyWJ~VmtUdmn{ z(yIltZWtwH_bjx^lbYrQJZqLuWoI#rH_>Du`BHz?;eI#+ob{-Z4Zj?Z#K|<-uAtp; z#9;_Ar*7MVj^<@slmW>j;@ynP#gDw^%Q1m0%C&AtuY}qL&4I1yPzQ;=&&AtzjIG2M zRN601Omo0jxzWq7^O2)C<IYPWF&2)u%ImYs>1Wf&9S~dLprLe2fu)oRlL;m{==aQ$ zmV2#6JWrzL5z>njXo{3`Wque4A^|&;-WVwdI#4l2_N8YPZo&b{a#%0{I=5oPXb6J? zVpS7cL%Z6YEa3NruXQdV>{uIw0eQit`at)4Yv|!fLE1nk!&_`?>#+G5T39C&4Pi!e z_d47hX=5&?d-gHum+s#lK&2DeB-U3wPWul`_s`cFutwB^i$w7BVNPr6fQI#dWTcE0 z8juUs0gU!=c|mabk}s?b=Sye5d=2XXBEe^X2h~<)AIm2nwBDUi9~n<biTf)?f{O;Q zP;g{|>8Fl$98$xIwS{+?k^#g~rmXFA9G(=<-rd^zXZu1>{&esf;0Mr0aP*x|V}xV` zm_H=e0G}Murj{}GQq2-#e{cHUDHuAMUwoIO+opeoz?EH=IJY+M%2qFiTYebg@oA68 z4n6}z(I1mX->e9;$tw+rULibJ_GW;5YX8972;9^*VJ7I4lf!{(Xv1A%l%R{xZxb?X zX3UYUY)U_tjj&zz4Er`$v5y8DmAeum#OAbi4%UC~W__UHyN@AHkH>RwBs*H%Xx}L< zKc2Xn6W>;Wh&SSQu)53-(;M49o^Lif4=JC0j{Ic$XJN?^e;9*F==ATUF_($#-_EnQ z@cxM%q3^V2bK$q*k8v){#y25&H@orq%aU)r6@QQxPoQ#kDaQIYiSA|VD4orb(?^Q# z99va9(v@XpZp&noQnPjz?`=NI+&hJ|EN}(9u12SS_rXmK5R(wpJITXsy_E=Nb9&zu zaC^9f4d;_P)tFIR4na^B_ag3|KbA+W9{yvJ3vs<bOYDu^ddkMAt9&ZGz@l&s_;f?3 zoE->t{lzejQt)Xexr%s8;&`YQY%Or=dTxrlg;9S!2+2qk+qFloOHA9fY7%N(ox2gj zW$BzL2p8vYq7ZDB3PC?+Pd`s|RYSZBlR9E1aY{FOtDBamKHjI^m#-|<x_js6lZfWJ z*27b<N*{*bm*Bwtj5S*O@jb#7|J@neg5#CSliutf*gU~<z_Oba*tPX6#O^D#n#q1* z2V3EHx2~?HnU$Mks_7LuRdI>$3ET#mGka_|;qn7;6}SN%`pIZv^Z{#BPE`zJn|l(R zZ8^N$7!s(q44Q_lGEcGx7_=WC{&;&VC4Kk_)T^#wT);G&%*jJVLKv=1s9-aSMI~e` z?~WoO@3mB9<c<6q4ep|c88a^e?Aw3Y`%4TfbQ|EjS+_s%<Ig_Hp(2FG8`ePH)Tw}& z!IB9$Au-i}7UCDuQ8|^qu0Mw!a%4j{ie@SSg3vssprrw<&e$1!sp9OkKpWLi)oq4< zO-oFMdOU{k0f5dOB}w8Y<|%;Ao~>KU!x!}%qF?yzja&I@iz<dQBs7_N)7iO6^0vlO zs`eMY>f9dQ@&;g&m=1WdlO(A8kXh93pN}q&c!C)ODI++qHe+4Z4_RI#gNZeK@`@|6 zNDu+O-JZ{6zNnN>@0gb-hF2iYUU=}Uv)h#Q=l22~Jlq2tnf;^-j^E@>fTqv&oWp%Q znc}MZg*GL-Z^vKhJt%hl=!}ZVNnEO+_@MF$Dx02<u>8LGR->-ZHbP1)c}_1=>QU{* z?!t$hBfGhLl%0OuAF(GouWa4^JP!&pmsz5}N4MkZ7190*dCcK=!0s)uOyb%T&J;;5 zqf1<0%NZ1k(X~#?@7H}dvC$&LK|w-5#*c*?6_g)dhE135CGW~JJQP0Dsh1uS>FDoS zP!*aJ`$iO<?o1!IKoeRs`lLVRBiVcrHeCL4?`QlSr<$Uc&jxV?ki<@C$;wmIFApl~ zziend-CQXRS*_Jazvkk86uJk9<cNGpzZ4utMSVZ(!N8Z9Z}`ZemIbL9D(lzB#rNOc zb8ZxIXQmii#`JUm&;;6##yX$u|3r)$UA;b#OSy91UHZu&|711{nu#_X_}hB;XWi3Z z@{{*=)-;i8&2hXsDLmgQk>LTxqOq3@vdl`Ls^txY@?gme;)e%mzg_(piLKWea9&<< z=D=0TsM}Q1`4=*23aNbQUQx=B#y_VgaQ%{_PVwP-?^rhgjqP1QNFHZ*`^9w%H0$Mk zYpt#EE!JqdaH6_%_2*FS4zllk4%KOR<04c&IKaqKO%8zQk2UxfUPY+tD$S(lo7=~+ zm+`z14O`aB^ntv<Vg6v4Be%rZl%&gy{zMx;vyj=-uYB-R+b&0YC#>~h9!2koInL;- z_8(o#?rCrMSp79w=7g-KYbHhMqcm)lyR*KCs9g7G(7zEUg){a{a6;yDBz+*+ERfq7 z3@f$8dJoUM9g`GD25ECf<GGTs%Rcni#jP4-DLHVS4E9Un=*{G~r)8~TWg)7`o?w6m zcB}IasqfJSwnn&MlZ#Usk2i}AqhuHbk+&fkUdu(SZ5)|}?wr9BA0iC2*~)ak!!Tsq z-#`7$u~NNp&^w{*RIkfLr8K_>fjKH(G~Nz*)Ohfd6*5?O)@!p4UEZQ?*OuY;9TrAr z!jLz{Vi50#ih4r`1i}(h|L4&bhFel;o=mL}+Y9iE7Izq7rifi$e49JOmg}M(>m^n+ zViV~w9|QemTKz(#0XMdw_^&9$8`ZDGNuNu4c&Hr8d#D%NHDP(BfG9vbLBJ6{)H1SF zE5w*$IR|6&yhN3GA9}jm<)DkrO5h(2>he&Y&q|>$PFMprR~r@;FXYO7miZy`dRa{K z2gMYr+z1^RY)}20w$1PM_aBLg+^iP7Gyik%6V$TPwLyy{;r>L@pi)N#p529;<;xp* zUM%6rFx@NV(Y|w!<aCn}HmpLSH@z3TI?q%@-_2Q6F;cN?ynK5hK16!TaTdH?*D(}- z)`!2dtM%ILBXrb%bixw%4=mTVz&#n`F)PuMLiTH|OM}gA*Tm^}>fOwJ9*0(FtJ;o} zzct*?=?;ype|MW{MDZd#1EB5tMz0ocH-|S~y3q6g?93X9nR$2z79Yeix~+P-*yU-2 z^_SXIW!r53g`FzKy|C(mA#TZG)!d^A+O0Q}yKzMH0zY|5mKFI3g?5C9*RTCdI|Gz+ zZAa8|pM1efMt<hK%)(x9(NfP93XB`xdqdanfR1EWfnu-2;}JBfoXW%)!fQUcpA!oX z{H}W<U+aA7`c=+wJ(9o#--W<Bi3eY`Xlm{+$T<;Q8F1St&rep&VOo{AC=z9tC+ha9 zho;YqP%t>&Q?zvB4i|iE)h>BIhM%xmGsm0igm2jdxshX>^odeG6A%6ap58Tu`+;lc zz5HO6Rb1BSD>6Y+%^L^M?;3pvPXB}b3-eNx(`U)&gpD1~s8})@5<eK8En`_JmDId+ zB;PiwdLX@&<NmWU`vB)SF~v>{+KhMOKmyn6HRlU-_=xrIe)$#5@`nD`bz8k9BFFDd zM&ru+C3Hn^&aEw|Z=S@1)BDUqwzt@v%L0+$7HSufbHqTW$T`xZ176{@<G@(`lnI4g ziy>}UG?ozIfFZH%Inf7=B`b%-fLvKG*#?|T?Xm~+ocD2kAWIcwm{z0s1fV2&1V|~i zR@?Dzx#?4o?fU%m$H6-q)@@&OEcLPAmN6}1IhCQ?&9b&a7ks{qT|<FS35%ciqEM(j zgb+lsP173UmRtI<V|ocZ=Q39lZ-{+03potfLgs}UUf{uf1Of|X>vrN|70>ILmsyY3 z8;$?IKiy78&o$NkXgang30~gsi$G;GALUs%Bwxn{=Sb<#eS^r*9vC2x{eyG3>6~aj zYGg)!y1GlUdr3RzY!@%{Kvs)2w;KhMNu5Uh5J)*DbrgY|l}nb--~H1xG1~pSQz#cP zr9K`6&QD!=c@$4XyL$CqW#SXib-_<^%Ogdw?Fk$>b*Sy%;f28k<?7m6*86cgDnt;= z)Rbtk&M+vYu<eWRjX}}$V&~J-Z&cm3IBws&+EbvmnJR3%l}FRtKR&rVbuW8L9zg9k z&AqkCB;8?05GhePm*3#^eL7)lN9Z_}$B$n=)$J;Ly+B`<DIAj8a<u;{<<U<^rK6A{ z(&fKH*5iLWv!B5cB8^Y5ZjRI&q~SzYix$QekGVa^AMkxp+I@!kP9q6ABhso73pmEF zU(9!rht55|m-Kg$I6p3;Q=`n0mXdZhX?b{bo8o40mv0Iibl3U6S1A)A)#I+e^@}LD zt6}XPnO57c0M8W(XE5Ad>Lr04XTNZx+12Z3jb=GO2}SqrOV2ZcMUo$cv9gd#@1{OP z%GF6h&5I)4z7_|j#Cb+(pLDwK(zYfjsqR4aijSg&Ef9Ko@_y$Y38}(NaCyf|2YjY@ z{!soU-@BheV?3y$Z1WhkOe97!DES5+(FupwU~Y42EJ7V<dlLRmNmU%To<9EmMdN<; z`^p3Zd1+IerObwAJ?~tt+4R1L$BH=l-%ieWCK}Gloe$N|zQc$7mW)_ZM(FEzv`$#* zK0<xcH|@ycT^{XoyclA%TqU0G^qebLSoP()4uWK;hjxN(7={S}OqM4WBAI2k1n!k| zb`cqG<l;#9$SqBS6BD?FC`JZakcDV{2>NgYyZyx)=xMBMgm~YBRCcmvI$8SJP(qeM z?vH?4!)I0y^!)Sq^%8O!1eR6p%nBa7rwmCP*ce;=-jEc2;VFrYTnya@vr*fRZ4BWb z)_8FD(hx`s_tRO3m6Y>{ie&{|QXd0E#&!C#`;$%k9V5t_85L4E;+bX@Has@Rkpw<* z=~wdAi>aQ(`n|4OO+0)0hwn@X99VSmaot{>!=LVSE5Bcw8{WZ+Z(ihcfwRKV{fV`9 z=E$JYk6EJw>Zd8B9xoc~?!H@`6LvvWWE6}!q1NRHrthZF#6x}S>ni4%PnvArQ|KG{ z{o3LTmx~f9U7t|7v@2sBSRB6$Io-YM_H-vG{esb}`Lm^Tp>2kcNeIiG3l0^t?CEzl zu8#g21y?xYTmFN&+r(}6fT}`2c5IDrMZ$JB7C{~M@S$ARWK{|V+VV=J;L9iIJ+C?K zXM^bG64ZBz{Cr<AxA~m5FM(QrrEh&r2H&3zZ9b5EckhyEi#yu$c>O?gGeZ2OA18?Y z-Rb)Xm5TQg+ah^fbdOnq!*GS{?Kk)H0>m4-2|zg%B$f0%`t~sKv-@S6f#8?7ZzWED z&r>>E7&JX2;hvo||GWyTPmt1*46pk&Sa$6(hDr~COQRiHzcP<ySk~p;^NIL6>hkK4 z*^dOH{?Rs+C4}~Q!xJ;7kgcUVnzhF7J-jc6sq796JEbpNp6Rtm4`>b3YRjg}Itcs# z0N0ich#PJ#w|8OTtOd(c>4}`ZK}U~1iKX&85G%e4@<%HyL%-D?F8QR>r`L*>d-DYz z+=F(PWl9>WaMVc}U-NJtk>&}uA8#l+>Yo_?S*)fqiRFufLR*%^Fp#jR(M$uEqy-6; zs$ate7R7O#w9o^eaZD@AY#gmBPrO1#6%&TYY603U#0S&NZe2?RJoxqYZ|#TI2fifk z3CVxHPn9q^mSe+nLm}S3Y3^EArhHNq*?BX=K!|mQ{`JP8W!V=RMUM`m6V})oe=@Na z%&a0dOjIQ0=l}L6^GRR1yvoA$OUM!}n{Su}`r_gkrD>g;Av}yqCW9R}?|`=v^iK%F zbL5^8UiKBLlrL~O1OAoByPPlh1_D`fLJ*G~b3!Da|02b3GybAeDTfFXnZexdKbO7( zXGC8!Vz>#3vjtite&hU^zOCn)`~<>WWKIq{t7>9|__f*!HL!x0&~T6qKSXlcC&fDs zY;S*;)g?6u36EQv%P-il1*)ZzRV5Yi_g*NN*(nDE=bas6A|+38U=wTL__%WUz_ppR zrbyWIHYx{_A>AIiXXTK#7tI0_JHC1^v)!3O^8%9H-#F(khe%DLI+700$>rEb<fE=D z!}Gs%7#aBqsd}PJ7VGYdXHp#)1dHeF0Xqu$*zvb)zUTRq6z|#;nTGHhnxoc-k&=3! zkj+gAW#rthxL4viqMtguES1SEr!#*}G+~M<ca+sIAmzT@f5*O|WU~CEkn~lo)W<H2 zv^eZJ-%^!cubGaFe8k8foaUS$=A`<l+~w;VWr`$o?5;lAaIM3cF%<hr$ZPcWR8FMr zZYwIG<C*_%+f-r9S`{3DI)pJ|=!%GUAL%^~3x1{j%Wda6om7b2Z)>gmIF3rGd8)f= zI2gxD5!-|Q(Pcx=5O0L-d3QSw-f?S#1zpOElrnjX@o0nDIOy$rb`uU#e7NNXN#{+> zq_Wi`=g?S=&=SdHEaYZ!;LHzSe${|aIo)^d)`*Dx)HHIR=HfzRrhm9iV1CP>@6^;v zYW+2{`|;WA`$mw*=I7cV;{I`8;K2~a<~XH;apx2HD-U%uE(~<J1VrZkO%1YJkSN1) z@%PbEuKH3rd3&b98Q5S+?DM=Ua-GlI-cczw|1{gO<sTEtqX(ELa;OB=@IJom&n!IU z&lXFmG8(+@9-pvDaLQGmWcI~Y#Xm12O?Sg0U#5mBdF&loU=g)+^qk^l9;)qDMz@p= z_T)$<d8$9&R!ck4YWBD_9Gpstu;Gp$I5!Qj=j%P?>;49J^ml*Pax|6rL}K?;#^In3 zX(I%sgeA#^A2F+l6!NVM#$__wPYRI4MJKYWL|m-in5%qk_3`9ac_U<jJS9iKcPgPx zK6>K=?zlMxKIcO-x4iqym*3rX<^z&E9Q@y9U?RO8{(T6$bcc8k+8+yGBTJ9gJaI>U z_tC(>LGAxPtaxAi+3YE?@6JYHxE(6wU?Tr!XhK@>f2Ls|Hynfjc$pC#t11S;Nw2ia zdfQc#tr{08bAEu~R#$+FROn#~?2sATn{D_*6(|bwLXILPNKJ@jCDO?Vs5vt%*YawY zi@s$T$d(XqNad6_ns>;Fva2g^92@xpw7n!a?%~6W9sH6Nrk|hNY}fIQw~cCk)fCIP zm+=Il_=OSj;*uAV-C<>;D8&C_Caiz@G*ck3JDU{haR-OT*}qm`^ZtjSr!81t2w4yK z4~#{3a5DN6$Yd-ppQ8;Nem%_{VYjd2)lv6&QU4W>n9<WB#q{IQBc>SX7l!c0*X>FO z%PO<Wih=HHah;sO{&0jqdG<v{)#CkonRFO)7&C4FMmG=39eAg!Oqle9(o~l{URYH; ztcf58xt;<I=xEw{X)(9wV>+;Fs-5=uVhc~J=8eYl+)l&vCMPKWy`A})XA`l9aRuV{ z<x@<4uhh3jpOq$2qUp(5-%Xni@(>o$y<QV=DeMU<BWD*U57W-9u+f;wfl_AH-Wtf2 ziCQA}1x5PezG5Ir<g_vM)$92SlJ-VLr&=PU6TI1V9g)Ut>(p9b+TAX@109j5%L#IA zs=a%C;rr{F|3}kThc)?lZx4_z1*GExA|cWp8(m6B2-3|6>5c(1Dd`lD7$K;XbO|US z%|<sUIl2bO5O^QIzw7;nKiJ^97}t5uIrq6^mGyk0TnThwHQ{8y(=7G8P!mbq=-Msi zWEc428)Pqv@#BvXvnHgMUgCb(r_on<H3!p?AMFB)HZD$tA=f^Xh~Xoi+Sg?*=v|U} zsWzIBk4nkFf6D;$xO~-v90nMsar55Glm7LlW10JfafOKIM)tu9$m!NFYxSUrKRA?J zs8sbbZl(GKC#C#|5$lWxy;!T8_^diG2Ki724_XW=CWI%-@S3NQwf*>P%3etjH1os! zeNA_6PG9%P!znPwekT>4aznp?Xs;DoWpyCWH*}u)r+qE=7wa8dnYOie@Skn5MLPvO zOcbWCguUe)dPtalMp>{uGpM#fdB=;6%YIp%yG%#r2|Lx%e4<?w7HWPp_PF1!K#?h$ zH6#AH)pe-&idtvI#E9I==<a$6IquI`t5F0z6aYuYtOPhmxhl!9#GYsH<sMystt-f1 z%b6NG)P+ep7eqjQKGlfQ-*|KEZf&#ZbFdNX;lXNWgXF-B7Eo=W$Hd&h05(7%c4vi) zXy#>Jq)7rgl?eLo9T}EV@VOZ&g00H6i&3F4KR>F7!QcV2D~>NcY_VjdbHn=IJeMFQ zh%AAgWl9b*75Y}4K#(A(MGv-|3Bw1k8F$VO{Hltk!4X^^-PE+uK_m)$3uv5%?s_H6 zYqldCUo2v}krZ&DXClM#HK^1FYf5t1NHnyjF=1b0W~^N)5!bwSKRvJ4*z@ShEK-6m zF|D5koG>~4AO98G#e<df&vuobwpK*>dyn7#e6s@Giy$AcY!x3-MD~G;Lez%?Btr9C zi77Z>GaW~9Xi?OeMxoz_TW49-R7k37n_gJT=I*UxCPcX(dBKRu+c~>-sQH@9CjXdz zw7)7>moX?DOIY5J;=g6BbP`eELATSsuFP96Yjpq>d}*UO9jK~b7W2Kvc=Vo+ndOZ6 z#N})WbYi=<;g_}hK@n7+0BTz%QmBT>YNb^i{q8}4{Tnu}#?1|rcDdTAj*I)g&>7*K zwqJ;Sopxe-(7l27!I}5HCyO=rU0=*}9#Z3fAQnTF*?u!Q2)H}o%tUl&hS`Q<Ea>j( ziMda%(WNL9C%1=2f0|hft!!F!R*y*^fF@hv^G-zWKpurW!sgMOy3&nM&8NH0NT}8I zCQ%*{lZZP`dFvLYchkGZ{rBO>`ODiK;k1QEIAQ^&JEFnU{gGCxih7+Lzh1mOJY7iv z*iDjrbO-uIuZC-S@=pWCiaC=f&E+}0$poJ$@b8q=j4+<bl>w_VIQhOk8&{5fOrtKN zGeJ68+pYiO2m$CSEKi*3e4<#eKBuC-8^<CVyJCeb{b{xgax&(l!UO#C*P|n{AKTlM z%-KN|AbXV<e1)USoMDwuzb|@zy)K~fa-(d2{;lqLC#%Q|OndBj{o9jn>{}TZOXuR1 z!%WXBW#oaVQw0!6pPAf#$yZ`dreP>Dj^EN{^|S89)<7=ov3F2Rk<Cwpc5|0}stZw| z;TK`8C!{9Qn!dNiDd-1?E;EYi?IA>c!NCLJ+2i}(+jT6_^<GVREoalsnJURdX86@$ zxFtK$nD#iI{_W4~Vc}R4=2J5iA^)*kGwM-vSn4J{#sC`RPqvWZkL}$OJRBFU62Ck$ z*T27dn?DQ}7|%}gIF)B`V1U`8%J{(WundNVI9Gwg!|Wv1!^GgP0e=I-r%GV3Cr5|3 zJh0tAzgN7j5HMG2klXaX@z#v`U&mwkzqZE+T3(+DCywAM%OgZx*C%R>OPvDxS2lA% z+VtpPbodNFDkjKY0~LeXW>ugLy-elZ7}MTVz(F^nTTdV{Ktx$TbM3T?-_{46N$=Lz z)#UD+RlL|r`a}Y73<xV?iiemcTw&&U%Xbge{R14)6n24`_xyJ8u|)I{@Ni{nS|sG7 zR*30iy~ZY1p3XAst&h8(%EXp`2)G5u%{){}R;Y*heQ!Cty%#)&xeAIeNQB4|Hgt_T zY^jA`hCW#&S{E-kVhSiILK>h=l9|6ugzfFEo2@2z&yV6$51%%?su>4?B0!odiiVTh z>=M7DeFZ2fbKJ(SJPBMi^5RO*;3n_6`6R{Sl!F!Ac6=^~lcL)zK3S+??OLScjy1NP zMcYZCUaT9y<;<x%Siv<Pk<tsr-^DrXaICynCYuSl9$RyI;a?@Oz_N&gSzu*$*h4E_ z?R^)g*v^~DxVU4}JYbA`A96PFW@Ex%mGPywCpM$iobh1AiaEN&n=jx2o2CsBagL(} z`;+N`lk((i66@wtaWkyk6NR5E=jLwvyC5Kh=1IewLRAb9%9OQ{1u@g>JUxv_Ws!q} zeV}X4>c0lw!7<xqmbUn)&6{W0Yil%Ri9SE!@Z}it2nxLR9u=A_jtvrV-MqgIzQ~iw zPfwwEh!39<r-=~td2X#A+I~cZ!q*I{;Hx3$G%BDrEELwL+}fl}+a+<=+cEPFRI9_b z8r}=Sp7jK!E)w+jRUR|08P0C78v-^JxgZp_ohwmLwy-UOtQvJE{8+0i5;vONbqgc` zYMVEtAN}#wnWdBTdC;DvQnJa0r{yImmn`?cxsQRf2ZC5ly$*|x&&SfN1K(`~ixrMv z*t9fJsm`T0Ic<0*mx`zRHX9@##=oRQNZOz<PF5Ko1f+(NOTR+w^E)p{G?$n}(XNks z4s!W}WS=oiCW*)%%GvjVmw036=kv~BN1k?h@%gVu5W0NuYH>pWOMb0m#iJ@##gCj) zKYY(s>^Ms7P-Q@&GQ%Zcb+WYFNcy(Oo%(G;t~A$aQ9+&{Xi#`epCd)INw%gsC0}&Y ze9j}d#PTZmTe}Ytfg4qkjw!6J8OwRo-X3!EXb_Uw5Pp3c+vH(kTDp#va?ONnHhybv z$48lgI{tmRX?H;R0I{(Ze~olaJyyQ80)S1tDG}mQ(sgaj1sF81e$hk}$WIio=z2lJ zLJ1U@tO^KGutW8F$hasU;e{gd%U{{_>%T>y+|2hOpsG*l_Z3{Vm60P}?kFETgrG&6 z@4RI2;yhtzjnQ~l^t8mcmfD9E=jKx4hw*~nnLx`bW|jD;JRnOBtXmlLVt<efMq3Ji z>8p!nhcSLgBfwA>6S`MY{Cxdj{f4ED-4`jd^2d?o*mZee!Q~OGKp9Dh6D*)cMNQhp z6Pzq=PvSmiwPzA(@`f!u;Pm8@TLqZ|2|%|NA#sO7=_h^coN(826Z+5x)=L?q$r8ZR z;zMw<zQ>OxPpJB|9TX`=;ObJ?DmStHh7h0Tr$?bmjUe6}BAxNuaTu8`?F$|6UY{%o zp0<%~$Zh946J&8u;oo)hw)6GcxLy<bDQW#T-O9?o02uv5ELh3@X|T?UF)zQU+D1Mz zXpeAwo38-kQ*Zj|miuL))XY@(3c<=B#9)ozQ|1xYY>5xkimALYnZ)8w1Kkj7!eFcx z=%7A(IO%KIdKaS@l+9iG)cP%3*YydKn~FF5jyKJgu2)Ym`Y}!Kl+Z~TTb9lBX8qAD z9@=s&gT+l=jy5SXdf{P1C8m}2Kl#UDu*kVY(|sBqbCfh$)m9~iTIxVHGgmF}*&n)@ zOVi#)S}eZV8nr#Uo{u4|!9lU_PQSF_<>Bh28&|p*y2Xg4_MU-cG?^t5Y`5bpxQg4Z z(sMbpE9l7VQ4~NzYUv<(ji9rbYMeWE3@2Z#vm>x+*omkb5k=87L&hxRB)!B<)q!IP zr<)kdw)$B(_{8R0W64#^!`9O)p82=LljUSP`m%(>IS7l;q5FO!E85e|+F~lC3hFaQ zoZ5fW{A4~G;ixK(?+W*Sav81YIZ2|&x(Yej%?n;6KO$J>{+h`C+J>jUqWJyva$c7> zr^+O8ZE%{n_xAVervx3VBIxZ$@GKYl<#ngu=^c!#CxIR>Rj%vB!UB3x)MUZ;88B%^ zX&R48JG(@qy_ZJ6NbH`9DMpbo(zkK!D_02#IcfgNCQW8lSnht<`Qcz9K+V~Juvw7J zo-99;q2Y7S|1YHuhkx}XVqXH5c58V;yZ~e&8ftvNK}Ao@6mP@hX4YF9Jkyhr%sbJb z;9WR-1eYxZ4hFt6;|VR^CQvZL#{4UogRW6%Il4X{U8b-)Bv~-CH(OIbV&~%~HVc~l zCbCQhHrvB#&~d;+47M{FF`ce4fcR;F8&|_9*U&s;y_5tF3YMGwggP3ukS6K-!q?`G z1b`<?25+@MRb=9|rw#2V7u6%J2C-(z1?dUmOu?*OVE{d@MDM)wLeJvU;$bOYjnB?8 zp9e+G{>Vd}7k#P@mU6)>9;h>XbbS#teMvH}Ra(Z#kN_IkWRqR8B$lh0Yeyb$w#$sn zyZWI|+{6;hiaslfQjBT4d@uSr&aE*9d7r&j?)|fm7AX)>vZ7DCKs_CBUZPeqy3V}r zL)NT)tC|4!;?(;uAfnj6T=5$x_vE~m_Mssd2q{DQndMEeGe^i{Sm(`pEpHhzN`!m- zXNC4M_V=p^9Zh84Y7MMDZNSD3Yd%9pT^-Y#jAuZU+ffoK7I60J*PrT(-H>qE$ywMd z|1u<fG32fNS9U^-5sATzw0pWiZTSDrz96xm{38X22G7biLVMfjpML%}9ELMgGh)cn zBAnS;WQ;#IyW3YC2WKFFr7RO_ii1$Uzp8M`@HM<U>$h5qqyAb@j=UP;g_wJUTb`4g zH7=9PRZ>X!BKlua*OuX-9)#CijYZssTIhw3caRkyQx+bgB@Y%Trp%8%8FJ+~`pw|c z`qVQXlyMb|mKW9h9n<Abli1@5$}o6AKA;=W{q{ttx_A0JCStLZ0=)1x4L9EgJm`5X zDP{Lxf|`v+tR?05dj}+@BnpcFd!LSnIXZ&U-}z?KjanyH=?CnWrXzaJkP=Z&@0)$J zpO$f+OSnkM;OoTA{hxo)*{K)bZDi3(Xp|LE%bCG?OUf&K;4*E~N%<dqMsM<-0s*XX z(c@e;ya`bv9X^Bfcm&_do#$~Q!%mCAZ=X7%7?dBm!1<UVOTyE(3&{ah<~C!K3MW1F z?@Q?QCHoLjMe0nAP*m?|8$VmQ5QVjA7E~uRBcQjgp#LiAqV!kd#7J}j@H$HEopD)O zpQ0|t<$FJ$qnF&uduf@$P!xXx#SdS2QKCwCsL2;6CRbKk(~fT+8i6V!_`g!Swnv2r z>Md~Vg-DINtGSUVNPc}ypdhI?)`bg}1m%)KC5jgU&Oi$q?nH>jFg6r3w*UHVqGK23 zOe18o_07N~%+-8^JQ;vW7OayCh!KA8ltKJu()frEWVAR=K9aiQ+rBT&l^(%#?lyO} zvNThI-iWJhX@kVlyMO`JV-i)rd*2-w@xkRy;w2EPY$e&>r?|oy4hOZ#FDHb}Y>ul( zm5%PR*4D7q*(Rs~iKJB{<j<Px#Z7gDeG1KWE@vpfbO^a<@$&XvBJeEZnjmE)u882p znc9$O&*@-wsd|$6!<#)l3UI}QUeNtDyjNReeXWmrOkaH&0KZ(T6*4b^G}>C_@l<j9 zK&q+1dtQ>292&*rvq{5R_q57q@O(2-S>*o))U$|3F*xn(Nh`f&Q=B+0oH+9&>nj;w zU^N#M1(rH8x0NNx)u-B}NE>#=Y6MYIJ(5lztT6X!XKaf$Z42$Acm5*0o`Yy6mwDtJ z<VR)eJZr}A=lrB7ja<Z)nnq!~=;g}l*q5-+jQt0Tk5aLmiA?R<;lZkf4<h_4+4?oG z3CdFYFXvrp^7DMpuI;GlfFq^_<?#7FTJ)+8w_j0?kF&4kq#O?uR6~d|pZsd=6T$w= zk@5tx^Ixd&_jM9$m`WirqUSx%!ANwmr;956a8F=L5J<bGIc&#-wPUbc^B%a;?*+Ft z>~^4iKcPDBGTs6G3joUWvk}@%?P_xjDebw16bj*@IEZ0sZ;;Frb!l2oW==vc^b5z> zcVqYrm|)PT`};|7<|x%rR0?K(zVKj{`AGrxG+^f1pCy9zV}^a6Hem@VsekH_p6U?l zlsSuZ%PRc+A<MMKKB+X9Fmc=Mr!apMVM0qbg<&6=Hp+IiQ42p(goo95&Wy)r_rFPH z5aS~@+8%qS=r(O3a&@_h2Am(RPJ^*&gamG1ugTLUzavyXh7h>5ootRL3L2YORnica zFU&p(2k*`o#PJbnkt#q5+*YaJ64l^Q#PyeDJgYHlQ$=RY>H8KO1(UfxWWg^SQ21Ku ziloYHW?KaXj6;(++NfXS4<%=%oHcM*ph${S{{+SNfr-orJ>v5fGWeJY8<G}&S|-xf zDe01M-m=F5*=XG=LkB>D8UzX4Oqb@bI*R51bmZT~iwjMHDA$iO5ldF=`Rs;^NPKr; zG)f@LSTCEn5aSKSMTgn6G)8%_N4RSo(v%(H<@N|Uxf+15n$Du=`8Hvou`vTTGLc?Z zh1K1Kzj45Xr|cI3Vu_9@|LM71AX{+`#3<gPOOk=Ynq8y*<o2Bpr{TdgtHPzA@!No% zFEcZ_^wfzfCnsL?K0m<G4gy4otHvb0{h~w#;8$x6QVINA&hyIDdVTtX2~<Vw`$<5* zThbhD)})Fo+U9-;E^mkSjH)0twd$A-tIqO$ACDm~^BGE)KBr6VS+0(70h6Ta|0YFg z{-ut~)X#G+-Uoqg)~BMc-Y4S}>Q(*q0qb5cQ%f6i3WYY2akp_1lNi$5H1-ixDv&Zw zw--f~3X*}<8`lZ`rv7-QVMAo{YPmv0_G@=;2kDZQ7PBGpx^4m*?VOFbP@2pHlklp~ zH0hE~d0Tq)ce4S#u|=uQRcxkSNb0}^%UW(xM1p-CBkLio96Ov<3Xrg~nDKa)Ed9Jv zWW<8$n}*t4Xh}j6yWGZHuhZ+=>l6T%j={|1sPFS>ZJ^2nl|D$)c96Ha<2+I@YXdS! zhWFX~&y0T0%Dp=0e5##e#qA5MYzyO1uEdP7uYc^(M@C-5Osg}@ZsR|HpZ8>!9B_-> z1LfuuE6Xdbw>~P`Y(G4IiD^O%(t4oJXd)<_W!tp{o8(#r_*$8t)_M>j$|p3ib?LL7 zof_XY6R%AxCGb^#ON-M)a$$l%H=~TL@9&+`NNPS)Wz-Fck%=CT0m(d5{Cy2dRMYSl zoqYNY!pyNS*e`VA41$>!8|RI)hD(YMl>V$l^VN#lj9Pwt3;cknQ=iY-G!QZEhsCSg zQ`%%Z%sq^3kA+NZEQK^TdOlGru|W-a2tTm#A#E5T#O<bFz{r3OIJ&QG({zwGv-yEk z25hzj`NEhlWzO68wgs}UM}IqUv$>O=H4j-7Ui2|e(e;$JVJvJN9M#ysiy!PzkN1KA zE2!0W&Qx`_P;cqI&UT-y#9UH_8L!RrqWQc*#Ae*s9t|0bh!f*SzmV{Q1Cc%LERye> zK(-Z|WYkj%>9UvULh0xbS#Y#v4`T9ybX{lY>}jFn`0dlByZ|rmlyAt)7uUW!1&Y+l z+YL^_=>BVy<O}|iM?05l`As0~9Ruk9dK^<Y=nlp0kzy*bWa7rEkpAw%e^{u-nm<Cq zzKIshM#2Brh!R0(;fnT=$-1`K!|_GN&Stso<6x*)%UbGzMJ^~Q7z9?%DMyKVZA`~G zmUC$(-j9$VTd;PpAoib80xerTEJog4c-)oM$TKqP1{lN(zScI*iO^zZX7w`&N(N!w zr+}%`71ZEYhlBF}1CDU_u02rb)+yU$#PJh9u&5!y^n6Oj2y$jqt(4atXN|X<#THm} zq!#^*eb}vY*-7b19dvj4WvRdsWeyRalgv<{Lu**k9Re2sxBpa-f=_}W(}w-CJ%9W4 zdDL`C6T%$h<VDwy86E+24;N2`J>Dp4$EX6nZ(#=oOnXnQ!Syy-e5_uC9y&n+(?g+u zx~|`gP9Cr&k-A71s3U*o3KASyn){Otl!X8BaH)|d*d;}$LYUs~@O7m^+QkS|JYylE zk?_}&;eatAARjO(bmT8cY`a~4;`}yKh<Dg9WV@zZ-?1IuTb5oO`toI*Xi7t@#BY(S zKsGs;3N}GpIwBJi9?lu{hIOB8+%sFh%Fceym)^Le0OFd_Sq*qc77l^6g?1~~EQ(`? z*}YQ#ivdS$mEHGe&M32o{K+^m;(Pn(7g}^IGDV=qWgPk_fHvn~sh`D#+wJl*SO0Y7 z&B2$CNdAb6g1z6(Dv8LXCqZ00--B{pR8`1u*~`|xF8_`5ChDEEd8uqXkTm$@W6ZlU zX@Z(<5BXCES-PAzVJs;D1Y*<*u4KBFY%~Yg#*D+353|*(-Plhtb`No#yyu8P7U6r< zkmZAi(J#)v2PJf`vE4&7MtaMqH3%ksd(KoN{Yx>h8Rq}DF<BAKr!P_B%la4+6~{xu znp%BL(%g{uyz=oU_+y&G;SdUtsowf^QB}4_hUzDa@xDlt4@7<{pNSNVxy<ZFi4i8n z_4WLcyA@m$Y6lWgDQH#&T@fb@I;wDQS1PfaDSFRk?USF*N9oTs4G6_QMk{{!!%=#C z;$SA|MFzJdmK5z&&Vp8OiHJCzy?`rnZ)P+Jobj)|%vylIooaK<B$kQ$%+j_a9v`h4 z8*~o^KXv&aj2519M_mm^(JbT{lMn>8@CmtXl4$#TbhUK(T&!95qC7$f@-r3v2N2J- zyK}#sSU1yVD`L*rQOASnFlthI%OJnNO$Va|4J1OH3>FZnD8FRz&Ub>oUD&BoCh(f- z0Eum>lS(7{Ovh$*8y*L~nH?=&7D4~t3Bm4v<Y4mPCV!9OC=ga>DtLERoeiKH{<LVP z1>ZdfiSe#@+(Q|pqC{5!*m99X6tn<LJ4r3xSa<3=FV{Blpx)0G`EJ_X%07<7ks+Yb z`WX;<GR_e_58M_^LE1<E7DR<$(6WK`8&lRgY?+S@0~c1tE#<-X0;%j^0wei@07hCz zGTv5-6wreI^4pJM<2<M0l9-(LIXF%~+q`tlJGC2z-T+l)B)$xPCsKaB99Fh6^iV!W z9U0OlzJ2hg4;t@XlKcfuJ1vRkNc(|~hDf4Y16t?<B!neu^J8V?q;}q<>$?8VnD8n% z(kMLhvE#L0h1_^Mik(RkeD|^)3Sl$)PYPY`%q{I&?wC6qBzfEd5endZgjZeMoUzfs zF~u{PbMf-GX|N%_nr5WEunrYS{15<KbOSiYx0zO}IQ32A%uwBpnIL6l3@1#$bwar6 zm-Bl<{dvAxXRznAQt7EoG17`9mk6c2?SUREBmL0-NqlF_kwEou@T<v0DD4b&%5nrG zS!GexZ!#D;5pJRX?5LF$ykB%@>U93RS&9D<!(%TWD`vHzv#Za^citjj$dstxP)+z# zndOU2{5EYADMpgrAn0UcEw9#62rc6|iZOY3sPk>F2e>!Kv+=*YuRFi^aGV(wnVB2r zgBCJhCbTpSoAFpYp4b$gG5?S4%3?AL$Znh(mg}7~Ml-j4lP>Vv>XiYFt{$)|5RT7j zol&lG?Rv!UmF`S7_ct>>4%{HohbV#g36`gvdzFlyRq{>Amw`|lneXy!V`IdK5znbe z@6^ud=VLm**uR3*ilAqOBe>vPM%8#s)5dbjnBKL)Bo&BkZtl&%lr>3&$DM@CzzI=0 zf@P3j=zWcUV6p2LO~c?+JXR4W3V>&t-Xf$m>Arm82tAx=(6*UtsGDjLqU>uodSa|G zh)(I<%oOhtwn&qCCtM6g)tG|7eTZce$}btT;IPX#>7<(qpDeI5Kna1Bqqq3$Zy3lH zF!tYibS3Ygg0ygoF$lONu(2gj`dJaPSmVZaR53Qe+J}cUT7n8F75zZZG{p}DWCuRQ z0Xyzowp=DF?@0ox+a8KK*`oR3EBgCDF}b)#-u7htn3+R!0nx990Q3aA2%ZWa%ciBu zV&L7Y_1^t%GmD+3jqd|qS5NGsP^hW0pNj#2|6IPepj_5PfGXT>09t68RB;nyAT>bG z)1zr3-07VFyTJLpV&r=Pi`-&lICiq|mOK&DIv6pd^WpUgfx?+5;5_@Xx@3PJ*dqn; zFpUzxSv|}%J7r~m;bH>h6a*|HAJ`-py>|=zM+2l`63xNGOWRv0eKRm%?st>_I4yq> zEvcIm^uf$MQq;@nKbGyA#LaJnpV1^Gg*6>!xn-!cOp|}Nx4rMkv^O59yCg}jxi{t3 zPDc3OZf@e@lC?so$ad-l$3!8)CkA*@12a#yyiezoTk}LTE&3k?I1)ai&;E$y#4i%f zpsZ$4o@#UXkrymYTc2E$HW~4oYF4JC0xhcX(UU)p-{#YQr)%>LJL%yC&jZ33KJ(lR z@9or+4VzP|yvoS&%!#Ng<7wg9Xp4#$q||=<Rc1~bFvB4=X^M+;omVI<(i8u_O08R1 zqw=ZkBT_XWTv~jb&?4EjxY>q9V|(h>6T9EUmT9x30xQO33UZ-E_uGmCneVYKgmPO5 zkc5e;T<rMyflQ0oM#^G$d{P#?+NB!P&DnoUFtC<XK)&>P_S#}T%Nl@k-Q5q3yCSm+ z51*N82<`sYPCB*%j4}MGM5TM(xqb<OI5Y2!!RKY`kk<CA&Ck}wl=o02;vYK5!BfoJ zLS)OT@fnaiTF~+}>YOk(+%+)FZz9gOqI`t_5G~613!#Nv`y5Pup)iE+;mDQ*NP%o} z72cX%4UjYiLa7;(=50C}7aC2AMi#_hdDrjT<D)kIaJFt%!Q(H!z^xu~Z1Ktc<jKnI z<JTO#UOLEgUg!0!=dyY(<hP)X0DKm!-m4FGT*;6*6Eiem)ihw&*XxU`iBEPoOq4Cv zllEKa*9+*<f<E%WZ}*Lb&{0-_|6wYhMf2#itUpDzO%lLohALmZGM-CNr0e&+-<Vq3 zei?5Zlcqi*%k^lyjM5PWUwS$symv(9RX;LpJ{c*cWt4|%sV{J%uY4eaZsauG0~XF# zMU7io7w(#u0JZlYZDiHMn|%uh<F?wZVe18L3<8Zt0Z{(Nn9CW+)H8@c!F4kT<c23s ziRgJ3DT+_53_ux00Hi;l?30vx1l&iY4H9$m&o`Ao+K@#&C&wx=5I~G0M7^6L8m||} zbt;0of+HksnShw&<*nF#>w|V+B>eVUW~D)CU5##Xo1O%xJQ+i=IYpx(BHo0HQW>%N z*xR|rfzuEj3pAzj6%kBM%nV~;%ysukwR^&wMLrSTdtDbwV+6xR36eE}c0hUfzzgJ& zZCC-m8{>IKx|-$0kPt$7PFYG->z_H9c0*^9>a(#0CKR{Y@dfJGzZ94tA(qR`&?G(E zg2@n{oIj`b1M0GU!dBVKEquh&6Wc#>UQtVQf{TCe9a`yVtFYVHm%~Z(rFH6mRdre= z7pN<7%b0LT_2$PFh{6Q?a4l%meiu|@=Ow2ZOmD^>yV!|hL)jg$a_GPDQNDkJkt)q~ zv|Q)(GS27T#xg<e9^RNMKGb&iOAAxXHenjtC)@RRnj|PlS+{w8HtHto--S$V#}u9X z!68pI^<%C*to?K#(6I65c9Zkop3QH?tVsKxQLm@W2SyjtKFBk#-d?GY<ad!*Rp)+0 zmIfxx(p^m&%a*;OilIqW60jYsiUQ@%oPOOeT_4sX3Cg}4Wp_AL%ceR6H4MC#dZzcE z_n3-+^Q=vn7`5C~g(hf}RIqzyWVm{Op2dz0<BEEm?u7r<aZBT0Dgc1=UoahQvi6(= zNo8(NxLQFn4MpQ$Mx9SCyT}vj-2mzzJ}sTXCr>KuN^j)O%WFag<?YWvxluTCX8P-2 z1>Cbw^wWk|fL_F^+b<SDVW-fY8*>#q<QRkv{q^$=KN*e~gD<*@OCUg{ar>Kx1&!?Y z09ece5vLW$mR#y(vzVek8$88l_j}V{oY|tvGv22ec{UO<fmnFHiq3v@-k<$wJ?xic zXCEUz&M)dT8PIP$)cMTOcg9Kmm@_xpDU+$lDanzCFw0okS6ufS#L!t$2yOAc^~5tt z(O}-bD)+6f`r*jKK;@*xKQd6^<-1{O@Iu};eZyc7FhV@lQW@zU(tP4)dGORSN;a7b zovOGf8sCo^f&*?re`3!dtBap?cCW>q7g|45$OrpM3g*_meW4S1YcC0CPKes4?+Abh zhb+ZAE5OgeaE%uP+aAkb)Z450eg1nKAX&X0t`<j2-$M~(gar5yA(%>hi4Y%f;lNQ% zcN&d@>Dl4JFuN;)Oqa89QA0X8xF|7*tIax;F4kTts<A;Qy;M=dh08pPmebB{j0?H& zcvT4lK>b?=a+&H*<Pk>Uj0HNrfUOod4`j-BJoG*vaIs<hNT6^;UWJ2d!X=bo(Lm-x z(e?jpTGIEhITLSCILqHE2AZ9`A7|X(J}Cg`jU__}Zj`9I+0OWX4it3W1ZzaO@@711 z(#}_bk~_GVs{~A|=k^0|I6mg@C{Gb|3aoyR-`p7b_xQCat)}F@s~IZP5`3pM4jp^4 zS+b0e@{zBVsi&mz9l|B#?JS~NlD^lsa!T^dkD+DfA0I{hVF#(TgTI@;_G?fM$Log< z{_`k-*j5xY^c|6)*5ZHoGi4fu_%aVQQ)%?A)r6>B`Y~72ho7_xDYXn%wi(6rczg&( zsc+c3nsB^m*9((AW<$c;cONt78K#~D@ST`rhul6iMas<vGJO5Uh~vcJ&5)I@QrNm0 zau>$6V*q($|Bb%aEnQ=!e>@iL1OLM9!_6^?F<jP&ld%6x<xhz?uUAv9bwUi&3H%<{ zJg4`XQ4&M`M{#StyX{)KJqZf_LSN$l;HR502x}{;g(NECZsi^}{E1J-EmNlKa}gdh z)^FvIIxK5e&p@Eh7f+?2-fx+>NIj@3a&cPPg4(FV$8}1weD%VMJR+=?DNED-jgj$i zZ61O*qcXktSpm=uEw^|<{Bf?US67DKIzHB$1%jfRIf1nmN$ms*m*Kj5yk*ZN*OrIS z8dL%vF03;FNV$|cZ#=|x1BoS>KwU|St>iR_WoDBmI8hm-eI}0M8z?C3Fh3)lCR-o4 z{+2p)+|Fuc`j|X;l&#;97e8tF@8K)k<A7;Nbr_2(-RJT8TckH@uKVBaMTv@oqT;BR zn_HrjXUO=KmmfXO$*>$C)b#y)P6CU)+;5*WS;+RRw+I*-+`rh|(*O2$K*2MrYT4mg z8O)<9&eCOj`CWxPImG9aPr>egO$j=lN1De;beB9tjobSYz49S_7S0vzs75#_GDJmz z3)flbvS67UzHT>@Xq%py>6kt`#{JWyW%3Om@NO~SIw@6r-i-npk6atA0@E&eeR*Gg zReoOH)8eKq$R!AiMt@44Meq2?yHiTKC;A0Dl4?r=i&C%uC1A}eqX8N<n9n0xA9Df7 zSwF#NZu}9Qat-$t?s#2_0O)>U48XCHlauG!{M!3l?Dt?&n(H`puuiXa0z&Ch<ULe~ z6Qi)dGDf<QVTPH@Lk!fGqnr}0VMVR5Xj4a2^x?j7{0l304)NE|ETnjoC$T>xIpGul z+i}odxOn?eKw1S!m%W%hewMBWSmf*0Q?MOmXSWJ7>PCMeudgs4JmcYSkzRatnhwuN zT5UqlPiOIBS{0Gc$Dw!hK_zW(lk)Og1+f@>?r2KgV7M33(<i+^7{X`jCnyJ5-bMN7 zi;k|&;hdRSxGM)mmp6X(Goc`w*u)2pdo2e+ISKM<bcF_~hQs{~Q$o+KtG^IDkUDLL zK4UZQoEr^p4LQctK^g<YTAj9cC7&C_7128hegouaW35lcUc2HVpwX;-GCuf=WzvZ0 zT1{-_trkX+Gl|cMy+k@Tdh@Qz;bFL(Kc<y2z2b77+kp^H4LbBNDt$x2VpQ(`@jLcV z3`UXAlLUc}kc^(q1wEd$UFt6)8yx=FZ4ZrdZ{a75nb1h<?k6%MemMH@VP9GLI%(#q zn~KzfH+1EmHZ3=t`K0bM=_g)d6GJwRI^;pyM_I(6M3;9`Ua6@$d@+Zo=3}+bi*hJh zlXkUmWs?75ukE%olXOz{q*uS2ydAj4FHcKJ=m#-wb1?H5mozFU7|T9TW;t1+#7A*+ zRe#snMTH*xK=h0$TijZ=iWTI(s#{=IXeYjx(3}*yba)UOUbRTa50H@TQ3hEDZQUw$ z&k_ef`Q=;x8XFOUkoq!d@GAZXwsGs^t*oq8>{k4J94G&@_D_9GZ!(#BT37`8t%!Fb z$0TnY{I|C!Q)Sny)r|KK*mP7r_Wbc^zuw&w60N>REL6NP=20z#exT4*L53wu>0lq9 z-B>4x^G{*4Hr+y-s$EaQma&e0LT$gt9}BO;=`lZA1V03PBBC(!`O|i|HVJo05}4Vd zzURA<kOW<?R~SIV6`2vZozj~+nIZoZdlrM_$}|rT<qgS;e*zDa8Ah<Fk_D$Q6xLrd z2(w_+*}!w6`5F2#{mB<*8Wx>%9K%&j3u%Y^5!L+s`{QSF5r?%q!2WcMCX3)YAjfHF zsb3(A*h&MA&;HVQi1ImM0GB5o_0Ud~pKW*ypc+_FwjbkD4>@5*8<C9|ivoPb!TSoA zam=O2oi5RT{403co!D~j5>%qo+6mMk!UL#Y9@;2cF1=01#N>r>Of)Bm0~fqOrhBMx zR)DN^T`*wi?g$OzBZIlec8zaOC35w0CF(BN0sCCPUv@DvH~8mb`}pbWCy?0BaxFm^ zE$r)Chv8B)HT}%vQpV3X$)Zqk5-=NN#S499p^D@f&s8*Gk!htLQ?lKUP7oDXGC{sQ z+I_@U`22j1x_G<D=%rZ;FSw!o`(_>f<s6bq^P=T?Ug~<K01x)6>iNWd*dZyNjE?;^ zqf<QnTfn3ym&T;xyHdtHH&*~L({Spd+SAN->+$Z*VT;Khlf#5awLu2(rXVea<KMo_ zn)g+5<rF(-^Vd;RlhAZe>00YRm3<+ciU>yyK(i=tP35L*3yRWLr++(YPsZ+CxUM%? zIpbSkF65L`#{z4LQX?4FONmGy*`2faB7WBCs^EV>Pbpf8loNDgephqdKM~H^H8yY2 z+hfn|_m10QnjQADv8XT~IEAOTG^T`M4Nvqbzlyp`w*S&QPPu*{3R>1R|K&^AIrK#; z&5!FUspz{et11BOuW4_1a(iy*y=9;MT}ti<OR0*fA>_jGy|>nL#bGcmU|m^qy2po$ z9wPx0Bc#b6lQ3|HLdi5>ZgAx?z9w9!pMQEmZMPQd&nMd)Gn#(%aQ@t6pNy)CvI&Ay z;-ZS0mk-`Yh<tI*QL`j#b0kp*C|ELD3hu?luEA2)JW3UNj`P3a{qLb5K!>xE-(mDy zLnkUMmWEHcgngVbJUVR2*F>hI=IRhxK5=6;R{AdOcU760iK+;C%E-Py^KzI~A%vjg z6UfvAYKy{)9%Ey3XJJ^D@VEY?e!w;N@PlX%q9-CrlfXj5cK~tq*##O_#|_dp9hF(h z^W`CMJ4|`-Y8}obj8-i7)Fsv8cG$xR8GFa+@;^8<|ACo=?fg32WL56JrME^4yV%_~ zrgbml&J~%F%dNR~iJ9N}=E}JsjE)HbuG_`RC73Ku_r~cg-@6sHry!K+>8~GfS!(`! zD0asK9A7*&H#itZYivP^&~0m)t2_r`Ke<v$IDsPyYBc8%+q@uf*JxO17=DDiNcg!0 zuz#^fP@Ey~0huzZg6nH#kQ>4Feej)^6I;=aLDS}ah4RTE+=vnLP6g6&05B}q|EdbW z76#!hR&M+(`-RV`VGudFJYAo|aZwyh#-@1(5E`!IH}5)p52XY=_$$Q*G!jEsuR>e; zdfm|DuSjM27WtwzTD<C3(kn~K*8`FnI!`>I1(0~z!Yj}1<CTtFZHN_MK$lT3<*i{= zZJi#3*`2S}T)O(Eaz9O064MH)2vpb4r%Tv2qphSYp<g!l3y}-i)_4OR5HAz0BY;51 zHl&jI!k4|9M~XV(T~t1UKsxZ(J?(rtjoJZ>^q1N9IO^JSM1RYRl%;t+pkxk?Dr(v; z)e6!Wy6^{++qvU7Ck9Kov7*-sG<-VG<POlHP0VYjDUftJQQTMU?I$<SII<p&bR_Om zxNA#T7KYYELwxAQl9};gpGa&4-u_uX;dzxk+2R}(1aPjv(=qXav|Pq1Lfw}mm;c@D zw_cI6<pJb0V#J^>%aq;8V5GyK=W~~<AeIin4lgP1(6fh1=;eZUpR$tV7t^~FUb6t< z%zt>%JHWN<A}NF{MEab$;WJs*1<M@p*hu^F{8cL+YW!+V@O$6naGI@vc`-hseyooM zNzQT!kb;IuZ`KW1{coR9S~T03=(M<7Xexuyc%Sc>GJ-hbNxl|v%9d%ln9s2zZyG_2 z=O@J*iJt?#lD=ZCWm$$D*U<kuli1yD+eG~NYXN0vt0h&|pU4Y<U~3OZ5wjXhCR~!f zBIk*e<nQH9@=T|`jm>nBaeNXVvZHh4^8iXYa1VUGV0q)^?<j&6xy^F$@Frt4JM`Gi zVD^p-X4MpPqV}n1vAxx>K}j|!^&r}xMCB-cP+mJ=k55hEGOi?3R@2^9I9FQ8N!HWc z#G}Vh_aheNoRGN|)3jUOa*X-ISG>QjKGoC3r$ZmbRl8D5^6<eWw1M3YvL@9a<b1UL zT))a*!-Y&2bF$u1I)W%16Glg?Bu|rOO2WcvzR+a#e_DKRNFlt_GFN<HVD`Ov+Q{st z`d>#f)hHZgl%_;9;-8?(f-UPuAsKf35m|2nSQToXeIP_N*|RE`UH+5oPXT18yE2IU zu4#R0(5L*FBf=Pr^bPPn(E=%!sgZyX5ZEB)tB0K6=$r&7_xBikFa?enAecqTwUS5B zR=9yMjd3$<bx8|Gzg{r}H_ZS}o3HT@{O?L}P}<BfFgHFikj#jj^H>c^9y}`{<=nso z>Ik?_n`$E)+5dab5xP`l87h&*@E`!fx=;1w9oQQhdif`Zbp91&K{)DizW)jmf`Pp{ zP)v`4P@Y>-yfpM=1XBv5@T`pb=!>A^&=83f25xXN3*7_d3V~3+!$0bb;CPpz-L)MZ zsZ4R_K<_bRu|Sn~XzysLg6?go(?<H8vmr(NFXg=MH*h6O_dm{mqF%MmB}PE5i7X~k zP{+>&c!^%}PPfC)lqdxi3N>@of1NwNP$?Ybs0oGf<cEa`k?^w7S+O{h+Z&kArK()F z1n4J+u+dCFp=5+|4z`W4XUkpr&m_a;(i*xG*^)}9z|y(ua3BpSGkxWDIF54-NO=0< zx+?IPB8otJQP*|@1H3;6VB*QavS$D68hf>Q(a$UH4^*9Ki0_xa^FOCB-r{KZ?&I3S zz9H;|7i)2;I33jWhxb=jlx>Kb^K8)hm^wxp58a)__V-MQqqBy<<|!xsOfuCEck`#? z?OpO91w6Ldc)*S4Lj&)E$Bw~_V4l}V49J!e;TqaR^{$-Drr~6%M^J4$Hre)Z_xCK{ z{~ju=&zgqU0wjf-F9EC<!TbH^)A{v-2J0mL5y0`&97&-t8+h{7oKrUZPbidzBU!ps zd^T)uj1k1rx*n30w~>b6XvLKC7~WIv;Ebcd@qIO)9G=@6d2Nj`o!!it>RK+D$Zj$I z@A&F;tO$xaWC7)ko2Gxej-2(R8HSYVwFf7Y!wX1)4-H<31gPN#I+buGY^7c-bp`3J z;-RAzN!fHwh8t6^0rv%cnB?)xs&_keFILF9ctV5EO$lJa4~PH>1O0hct#{R{KNnv! zxZ@IOH2aa45)P;u83M4=NEuTpapd#Z6UIy~pJas*hL>Ff71J^?<ZxCJDkB27j}#9t zg#oJLn{gY3ew(V7Ex#~B5GEN>bjbVq1Z}t?8!bVHCs}Z_4XP}jjx=4vi;B2zWVnK` zy{v)P(HG6|&WP1ru>g(v!C$@LQc)G=0qAL-B+VkW?<<HhG!eULR3UkF4#H-YJ}t+1 z12-|Qu0Rrnnov?er)E#0ke;lI<HYi-Bji%4MC=-ngf^z~f~wBTK@EUqtil<h;Tx|K z0LA~jUIL*zLsz4Ls{pW;h3^AKkvlui={q*)`6dQjbb~>isqm_6{ejC=OC-UUowSSV zZTY*L1`ANG1N}6^MT(Fq-zQ4vVW@@cSbn}$qBM|M)$XWI3LZWWmFF9qKSs~{eiTCc z;(Z}mrmLYfUSWO)6{O>OzW53}*bO_bu9`tW$7Gnt&wh~$ALfnw@IIMCZP(tr8ot>~ zXW3M7{XJL#tKIoQ0)E#xs~(bCj-=zs9xLxh5%&R?ahqgaEBpR~_4(r^zHqDHFCOFd znWy#1lutjaBOk$%xXP1L*7&w3efzL#_D!+0j&YINecHVk2C|0xJ^P9f0BGd+{?X^E zH1r+la{uNHr>u`Ek{!m%faxy1;qr1|VR2ioer^4Gws-Q2Zg#_8V-!^LPv*C5+amcB zTj*m}2xMZr&g!Cnd^=oT^noY!&+*<W3hI}1<oC^+E^8>5#C!7|KG1yAbDwN`oU40g z2;-1mk=5Z7>g#xPcaw1BD0a#Y<BIS<Qu^91YH^(Od?vH!g<ac+<@m?rQ1j}7Y{8H# zn*9?=HF|=y^|(h=qXzeBQ#gmYHl_t@d6h58^UAO~xW*3x%5}%t^5G5{d93(s?W=kZ ziu~KHbz&30^kbR%Z1zZe3Xc+2j%}8lCIJzf!TwhPN?Uc~k3!E@tPPt>wvho^``;@3 zc(ceouBSLZ$k>72wh<@0myL(=L~s$m%zI$GMPl=v=#KW%5o$ChcX@aV@WcqT?F4n* zJuHy!UMVl2B}Rklw;RC(Zr;TFoPBzVs@T<>F`StM-`8}4q6^KFmRk&Bik`8zn$4}= z^dApgMP_^6Z|C;qvA~T?G0EKY(>>XWbeYf6log%-b8eUacFL*_WOBCFA9C|Y_6T88 zE+lNxv5JBtIHUTH0U=CJzbwbV##n#x2v2Ueb0k=sl^)~%9bu&<<P_@ftMw@Mk@Lt0 z*5ZpK;eI`I4rxtzXPQd!RR%zYj3#U2)f@Pf_yVKC7yszJez=qiKb$KX;I>!_NJs^L zOm2*i5je4nuV@15ZS`T?ZBI`OrShb}KW71C{&aWchBm0-^|&hzrr+ZEvJ?6YC@v#C z*H@x@v^qHGP49UqTr5V@r<rU(^dCqG{(MBOmphZ7h1IABI;AAx^fx^;j&I@hQmKO2 z<~2YpPVhLy!LV`X0t2XM(F8d#Gy=+OH;cXT`uraNQOiOE^SY`CSy>1a?(6%wXx8`f z05H>5YsY8)5r~sZBai3|y+OYBum@zYJbV5#ANTIG>mF;0api4oBzhU;=dkRrOtqZ# zL2-g5p13VBpo5Ij^QE5>$?~6DvI>iB^Sj`y%5lFO%G;?|M@r{BXhP2h8xH8=k_SuF zRwK9qbyOwW%Dpn5ymQfXz?zrn;9-_Bywh+}s=uRtsg?cbnO90UE3D`jYebZ$1(qEv z<ll&oLyFhTLss4lq>__=?k%#)6f*uM)wB5khfQmI+hAfloJ|#5`G?f~4ey}%ANoR> z;12G=KY4b-VR9k}fW7GX^^f?D=o<u8MY_wX_2tFb(t|D;d&-LQoAA8HfGMiS%gfs^ zt~k0&Ob(e$++XaEaB~gLaiSTXbp!p(15A`K3l0AqI6{YGo#On&s$#9~-6rakJ~EvI z8iN7EgUy15DmKLrTkzSf=^i8nNH8kkqJ?B-c}Hffc{Ti%<!x8o$df+ngay#xp(Bfw zv3WRRYMtdB40@`Ha|z+>BJNZb2U;iH2I#YX5UTV$F#X*h>m+&}O=2z*UZTmeV}b0# zRrsJ%xcr>vFBQd;d!4ShFGalEam20>oO^U35H>lD-_Y+G7ISaKA4XYjQFko=b-`5- z-Q*=nF7USZNpXE>@ay&a%%V^xQ16M${}ePop>)2MIyig!GJnis92m;NV!|=y?|9rn z2)z5uTvk^7{Jj~11u$S5D^N7f({3`$Tj*&tZrY+U%!ZVbytV3m_^bx@a*UV0;n8)H zVzMfQtIXMV#I=)0SG*}pY7HUhd($KlCdRpwIlgFCO<#P}QSW=YXOZru|4~Snq~AkK zLj6{UWi4|=aS7Z+Ox>snp$r(bZIZXNi>7i*x$CR`_-E<HPgXeyZoboFZev8yrFQX0 zOky&*g!x^sG(yQ9xO06NJIo1Ta^{CyzLBjr`hBW+V~WFKXVR^v5vp?s4r_pNVgdWQ z=6^N!@%FzpX^#bRek4G9`~+YlTisSTh-rpmpg=&m10H}e2m2TZ9Wv<_{mTp)SD;++ zhwPuT4nzbW(PJ<ZSO{3}Sox&@!{Sqlf18?H1Mm&(5e-bIP)2pqnel-O@E6T!bo9AQ z*6J!k`@F=^(kzua9J7?|80hMhaCFYGi@lWJ+&x6jz9MF6`wjZ-?y+<>qh~!?0_N(1 zIhYGZ8=xbZ!Pmacv@U+}GH?TXJ)Nj19=pEzV=a9+p0LChK0L$?b<Dqgox0=0K1^3L zi-1l*y|zPpZfpxVP4#aW1empl;IHUmDic;u)iER8inm?^fcXckHKyZ~XE=&uAkSc= z|Fse4q|cwxqogmy@o$F#|7bXHNF&Jia@eF9dA9#BD6jSFpyemb)dyNY`Av3DE88rH zfv3LW6q<tZ>5p}GgZ%aF_x<Z{RmU<qu^ojL#RF$Avj-eE9vPK%TBJf;>&-Q`MWh${ z-gB(K6o%b~J)X7*Z*IFw_W7*#L^=7k|DmR<Ocr5;YfCE*%5|q+cKo}~2$rb6$f89; zsaf2}w7X)e;a~Gg`g`t%lAvlf9(uMly%u_yy0rs*?0%!vyi_;F=9VK(*1eFrt%Em7 z8DlV+{PW4)W)_2+sTn7<(ZFfYdgs&j|E{#TiwRM36OEwUuW1tgFqd~;XK<xywJg9u zX)jlxz#=Ph>H*uOV#9WEwVskEmkOY?`oq39<68<q*XJ*8y9w2jyFSHq5!q-CZpK?s z^U=zH65rAiB6?oAeCt5_Nar#(jgePX;HN&~_(q{1`KuET#jU|v4htF5C*S_F@{J3G zc~U9IKw!50dQaqQQs5dAoIfrumgAB8n`Mh|uaw78Q=Kfh&SSHzk51Fy_th5(o5CI7 z;I{cL<*P1`38&)|X}fMAYbl|E<FuYV0=(d?C4x>vPh{yn75$yDlUf=j*(IHpab5Yh znFK*N&aBPWuusPh*CC;+iyqqDvDCBBpa;t+u^#CNJ2_~|65O2rC+dzwFnxZa70fZf zn(<pPf??7a81;p{X0pA=7P@7E0f?nRHQbN@94k)zaz!Zair#MI7koKa?8g4?Rq!`K z>-@<=wg^RedQCB(;<yiwbITsm=lfzjJ)W2R>uvu~$dTYq@$q0wU@*Ln`hbV-ln39D z<6vxNgFzkp0Lk&F%GJi5Say}LKn(BH$zm_283-nWRt>@cZoicuDp%UG=M;vE;-=RA z*XsUy#1>SEH@t5LYVqIpmOpeKTtQ<42fhhfP?FCTxRG`NSX^yUqM)|qb&b153o+0F z1klejE>2!G+UX86fh@Kwm)k?7wEUkhunh$}wTjIU3~nm=zx^P6rE^bu*=dCbef5*B zqF(>E%2Ln?=(45ru!%?X>}bPEhp~fIIgu_dhiQEj>#5AvRuomh0@F#BtVc_0BA+}3 zcxq*iVxl^=kjOP@Pc1c8x2cEJmtI*00FF`}9&Wgdl4qqR8A#A#RqV&ygv$?OLuT^3 z@*Ho@egAv<$ku7+EW6wMs+$Hjw&BhbDXH|4!X!<FdTQp>3nQBjp&OFZEVSCsj{QAw zKc|VkZY0XxVgBtKm^^Tc9_&ooIeSk!IKEw&{P7sA@_LfQ+XuLn-9G==)?1T&w>`~? zyT++rco!rvih`z_4{G5O$3z9q3rH6kYLC3cseLe*Xm<94LP1wG{?i$|qqb?sLb`8< zG<L*N^)Z{ph?ik6Ff~cvXQ=x1Z355+gdGr(1B-W@@5@4OR(s=t+O_>$YYO>u`t|3a zo0WVKiU-nlL=ah|yQjks2lpI0AKk)jkT2#*Wa#`yL`Llz1MmE(tfuL!WOVyO=$p6W zi)2ID_fYuIvsrJaa|^rppL}lsRyp$}E=tN}%kQoEiW?4*F2vR2y+HM`Bq5-@$3yul zhkz^$Z@PmTPw9^TNn{Ng@3)%6<%kg>+kYA`<uiqyEr&`zxxrCQhY}(c>7?m7MBJ^G zSnA>nE;tjngZK}G`lg=@2(0pQU(x3$ln=%`J$wALd!HG5op{~y*_1)V$@o5%-E*IY z6+WKMM{y5HSt5<O0(%h8Z`IbbSs5CN+>i*HB*;i}u7gCua<AoJ-HW8Q<K6a31FO(> z(+~0yibtaW21!>#scn~s5egc2<jXonFDp<6XvI(l5S5wanLh~qcF=X<ALN#$NcxzY z{O9|+B-^s*echEYFIA9yG<t=0D9QkngJXL7+)igzH)inunM`zAwE3-5hUg1rGsZ>$ zLiv9zopo5#Z`8&I$PgGU(xnK}4FVDaB%~yyL!`Ug5z?T9bZ&rvNQrbR-E4G7NRO15 zAfw*z?|t8Y$93%*u=9PMbIyH#ZdV+ih9khsBA4xUA>l?6R1h!e7WB3v<$7^|0plWg z)P(2I6H4N&)#m*5uH<2BL6r>M;ya_p7hXtF{4&9tV#0_5NoNBdcOv<V*91`oSAHuE zT-bMhezPCWOLk|y0kz{ro7-3VbC3y*B7l9<B$O#T8`+p4wCz&FMJLOak)8i{<MH+{ zLM}z2y%!r~tMPVIUmLyF#Z#w|pHPJ>VqBIai+8^8`@KMFUsShCwqxzu)Af7L$Qy*> z>n=|<_h?<3w1=P1QorkPnDB1VB-;hTA*W#1>l5SaCr?whHcSi!<!1EPm(sz*C6mti z7m5ZU{^xK~nKG4z{wN!#QW3+vu_ff-u6Xx4l%LK3O-DX3VgH$B>F%m!cid9@$@k9) zw_Jf?m4l*J=EB81@~XgrGBNVI2Jtf`k>uI@po?+{Vsya${PT?c>tJpE?3d>+EY^l4 z#?4Jp-saEL;3M4yvbp_P2{<$>*SquVLBW4bn`{$7VP1Zxi}z8&y#I|Jsb#D%lDl1@ zKa!gj9J;n=2W{y10FK;L8<T>~&jIR-`BDwYIzj%QW*@H4NFXs<$Wk3%gR|X=a5W>- zzbj{G`DS&%+WB4Rzdp@#hW3#;pH-wkB~)ZeAqWdRIwg7e2PF5(avzc}eB`_7@$j?G zs98S7S$(qoEB$*V2Ns?ftofpJdfqc5r8k3NeHFDs2+GF?<iZP|5-47thfiyAh$SeC zKY21>Mt@D2h~s0Ez_E}wEaDkHXvug^)T9Bv*#~B0jCb!R-|KX|6kgK44dI`0Dq)?T zUbfVF@-fU?86b=dJ;`|bl+OI?Ym)Hamvh;nT`#yDDamj!4<fb$PG1t!oXR^e8}7KT z=bT`EOpD~*L;XeE)0K=qP!0&Q8Rq}N;K+Ff3W^7^CT-eeoQgo3{f+-}mhmC(!M?*0 z&;fCenGy_Su`g))c{0>8i9Xdxc3E$?d*9Mvz^88vE>OkVh_5(h?TK|FmFJvcP1KIL z+Iyc%1C&#Iver6@q{xwzj|G=wR=tle@ni6fg9>d>7C{Se>4VG+_92YxU-{loRjS}q zm(tE@|HG`dcRjLmW#?B7!LHdsusTr_y~B~yWk^zu(XB70ZAoFfZJB%sYi^MsqfW4* zd-ya^X@9TqQJPY~PVLsl{OT1*hQ*r~peu45RVp7<o|}S1fxL}2e1!e?uW<$TAdF%? z*HPsxfi|%WKpF`j1h#0e394LU3m8DI$!Xb?xgZA~LE0jF9JI%eOqess=S=)PXffjg zWU>QbX~dNPv_ZiIdci~y?mE~0U`l?WIv51o%LQ7vd#Dc6A98<EF_&xnhv4tjjD=yo zf~$v6KdELyf9-RFo;0Z(u6{m<|Ib8OvZX*G8OwHKH1pyx#ID2lk?ri<U#*)PkFs0t zm=g*a8f-h<M?9+F2jheY;Qnkr!zX&3-%`JYbx3159#+is7C9MmeJG<nVb8x=EUTC0 zyes&Vw51?5mRsqle=js*Fjf((QEgH<i5w`bO4p&(e-SRnWV`+x7e!D0?qtSF1upW| zBApx$n49fXYQPh?SFda1t8Lz{PE%2_30I9dZVVgGhD*SzF?0kK+9~3cmlRcB*H=03 zJoza^bEn=-d-!+*Ka$pl=Ndt3-(ZJthQFnTwm78eu<nX54(yRhR_-k0Y-|T?pS_NM z(s~{5WlZYGzJc$@WDCjv!I0_v_gr~i3J-n%X&sWWmHwR&#oKXF+6CWB>n)HEog)2? zq9RtZyEmI=&G_)8)#DFOQ%ZpdZ7Uka>hk)GAYIzIh>yn-ln6fT^)kinubw5~ShCe9 zR*#&(O|<#GBusXEe5s`f2maft3=E({q8HUz$*0#OEcDgh7g8gE%u-!g0S?Uzp)kAf zg{R(miZl<i*)Q1REXWYRFX-r%#B&=rF_@{@M04xulg`ZP@osP{?t?X`N@NS*<JAxC zml=8U6@BUc^oK?f6NrNf*wEcDcr#8?T%Wp0MfOtq!-HqP8}(CDimK!NwJFY%p{e)1 zX?x`NSfOoa((qaGq<`|Xy%Yb<AnO>c{zX^3B2o{3t8BL7L&bNa$z#ltXb}e8nNBPb zthd`<aNRrkndWVWp()lH?q+A(NLERLEQ)p^#&9~=BC1LE%Ywgs(&yTjj4N>9yJiKG zKspq`GT1i<Z20Jw?C*|mtGfGcnAD5{KS3F`&uMd%q_2PLFLzIs5quh*0FVX$H|@vd ze*yIMsULrBgMw0}g3F^S{w^@d#O?2%d9?tD5W|WY$2t0yo8z^f+hhjN&1Yv4SjhE1 zp*1fP;fMl!#E!Lmz;LAI|8`#<V0o(P(%P9hW%Z~6y*9r?dPR0XJgHLh*ZC_GBcn$6 zA1=_%fZT0uQ;+F}mmBv-T5Tb=?|_mK`&hJar=Ef|2b|jIJYk>sRn}{3IGtSHd#*96 z-Y#_PjJM)f<pdj5_)IQGkSuOc<5u^WP|!G{MXETepoh1ml>8+Zd|g<=K-*vQF)Tzn zyx?pM`zeaxqjWArhBN(Zgt5KGQqS^TVENN8_F*O(b^-I`K@VZF6_|xg%?s~fMeHc` zwZ_hbP;bmn@-g-aA<oS;yNz`&&)?(47seo4kk#Y2$CdUaf+X2$ur3+UGZ4+9KHx0> zR^HyTblUJIBjWpR7JH^IZo~2MR$^~@NuHTbS}Xg(GfnsazviU<XLWcx!`4^Q?wZ3# z1yO}<gT%jxnP&HQMLPQTpUTmB(rOhIYkf~TZsUXXI|N`EW9zG#N92%_xAY(F%3vn` zzy@kZ1URO$eHWoOw5h25)vEg^Jzp|(@|}$cwp!y^BFU*@FxdoIZTjP-^Ffp{r-hnr z-#3~FmVo=bxv;MiunO;|n`;<b)h7)*mEskw=eh=v(YcUpTKUk>Y3F+vinzj=`~J)N zgQxjF3eG`6r=YmTgvYt~;05i_@CLAlMBOH=_m&>?(eiW()S7lLcAfVVdfLy|mU@eE zrn+*A2R2TKr}h>!mPv&Ujopp=(DI&Go$JQNBJ!7dn#Fg*FjB?pp7~_<g3{sMldkf4 zDkhizpuPeta}yg18LKv8vB5uVmT$H`_@pnGu|-%ABLc64n0J5XFK_a>D7AUiOsbH? z{G_2>tyD(I=}>rnjkkVES{!Vs(=DMu<&)YB(=DnE6!XF#KoH-f2^)vBJ}U;Y*}yZb zBTROsYfml@kB1U%wrUQy&lWRzQio}!z&Ajyu>d1&y_Lf(y5Ll44un=Hs$;U@HO%sT z!I2~pGbd}AbHCV`LO~d99~`1=-HTX@8^5@-ZSjITCRU5^vizBuj5V+Aniw}@);{&o zFe(UTim*sXPaT&v&&ryB@{sM*^+OiTX8z-Ft>BgeB9J}*dx)O-b#nQHz^biry_SAJ zF}#BV<iOz@e*>h&e4Wqn5PeSoG~=J@vO@)=c8oY4f+dp!<KhaIF*VIq<iofCdu|C1 zdh18J0Q;)Hu{@m<_#t4l#<;YLDIsTrFfKbKfVwyrAZ10xV?ZW`!GOtym^9^v_w#Ke zXt8ntAgBrewoq%>ggqXr{oKVLctMN-v(#>vrGP9#Qp;yvNyc4x{N*6?K5`n{uVg$q zK%b2SVxBj1r~P{_Z!=-vC&O8oF;e^f*(c?sx+;VA(W0RpNk;3tW{^YS&OSvD^RBn& zchsKlwRB9`mkuq=^Kr7*DeyI@?Fq(fLMsHqum3{(QxS5Y=DhS;h0mXPo}ge)!i&Zr zhHKv}T*5JG9pFqy=zyJf&-7Js=~&7$VqdS6hS@oo-mW?P9>*IIVg2Vjd%Bgl>9ICf zOpoPVzT3%WH}t|;HRd0tE8UIWJI6?V-c*waG0LuQYgfrCZBY1>?566N`b?Na*HRI_ zioZKQ{$1(>$~4{a1FmK!2@#p_XM)`(d9Uj;&&{xPd@ey!nNQxYS6i5%t9eXUqR6gk z8x>>4%P4dz_L0w0A^Cah5YAT2dqlQ9z|Ev$sOHKQ56x&XYuip@Hrz(~!s2lA#zu0V zD87(uyLWiftbjsxYIgLl3seg_Js!{iu;;HzkWVLu+>T|!Cu3B-)B*wnzqNCoeP`n1 zE8Ql;L#50=@jrmY1FRXeI{s|$4z0X)Wb!@GVnTuKqu}paH(l#Qjj#->_C~g_#Fr{k zW#X+gChcXq1<r##`z8V@hQ9%K6L>70^W!gD0W-GB8xK545TKqciSyP~!9g)9+rRGL zC+K=hBO;^YTx;=$BCOyI3V_*L4fTFDU1d=hs|oD>I$G_7og4d;^dvEm)=Pmv##*ge zSf?}APd4vu&3KHZ+x>-(p!=*7GnqF>$H%)`8A51(;vUo-F`!=7k_zhN9CCqr*Modo zGdlzHFpDP+*1eJ-`e=t}-@!la8Bop%J+Bl$Y<4<{<(Fq`Ei;rXqF_&mF(XDPmoVrP zR1PO1Wd0$83$4#55lx!T=OJ@N;zt8U3p?bAmfAw-Gi{n3rf5G1Hgy=G6Mii0Rg}Pd znE!ksll0G_OZI=)!UlX4wY<crGZhBlZc9i5tUBl7WWC441pv{bT^SG#U!#G`pWSAu z%wM3Ol3>o!ZeSTew#Yzp{&5ur)W>HdK$pn1FM*FRW*2Pe-(x5Ox~{YKWLeW#mHP<e zS1BV5xj%r}+OQ<YZ1xJy*iWjDM)U+BRS&Vl#(#8FGK1!)c2ZNRs+OkgaU3fC2sxye z{h&Va<7>;3fFhH&C(iygP^+ss9a)}rvoUUTANdfVM@=`KDrwysWP)Tn#lj1;!wZlW z(wNHZ59}jNozfYbAI1e+pL0i^NxaVPK<!9ko}+e{%8TrOQ{L%Y7J%g}o9PW~zXyic zbYu2R{-~$j14bNj!R#H;vUli%dRf(`B3+6v6C;uyYNyh!Ya5mTQ?AEh?_k2a6lp1i zHIvZI5@<e-Ukvp#mb$$DsU)xFQC_*p{%{KqHk&awWq%a)B?Yt4XL-HVT-Kuz-kiU@ zUWcKZm->the2m|&Wi{1M>KJmot*s&h8wX)o>`NOk*#}uSd3$o@)ek4BEgt0(U_YEu zf^z{SiNCl0KG8n}Ltb1m9if(uJ<zb!mm&WSWP{(qoW8p4JgA>hU{VD>7YnXDV7mkk zw)?^urBvA%_fKxuzXhF*t|q!p&_)5j*<j+JWgZO^WGV#Y^fxzofx|IEs-FvFe$m~2 zKxpzc<n+<zA1merYitR__07Q}X%3K2dWEX-;W_)_^9jm3+KFl2SL)1T0aOHt;sXkM zZu@mXqn61Mw_6Wh$*@@H@lxQ247W#Lt-)3C2^5LiUgHj`Jjuu3E0#vkPvJPIcS4Lp z4m%6*FQ&BMVs8Pl=Qjh^Bm)0w8G*Bh2+|s6uADf11gl#oh*-c|8DZ>=x}0~Dnq4;i z5(||8wRV2HE7U#UvE)zqni|CYDmQo{dFA%xGp@ry33Ia$u!azD2_OLRkqj|d2P&%j zGPwSEGU=)j#r(d|Iqsk-=5n@vsjC1-ac*%@P{okNXS_y4z`Gy#;)j}?)Z#m24Kwyu zI{z_zF`^qIxM97VJq4W<K_{d@1-5B1b;F3vC@7~RvD$*NjFk0~bu6>d%dsBbK!;DG zrptop_(J2+;}zR}d5Q4IjO{gzsoxWSCx%dUUU@8|j-Ku+fdFabaUZaL%TROuZ{z`} z^*1+d<eV5Lffe<I&=gx(frKn^w=9DRnLPvc-P!h-?X;@o7-PpCJ%#<=yS>+0(S>%R zfPd!KrvdXR1f9SwA9}$7kVQ7)z~7D)inNB8Y2yC?c5WpK67mbEy8MLb(-?F%s5Mkb z9?OX9@JojbakyU~dqFMiNXALpD6=R9QR8%5xhFq$<zmSI=tvO%b!CnbhBX$h<A70Y zfjwv?RW#hqO!%IZsUvizE(5Lk?SA5CpQfA^z#wBeN5t(YSuAdXxo)SnmgtXyALWPf z))f57o@{z%sAD5J;MOini#ikj4}ld52$){0GyM&$)R%GE*pw3Q5jmvr@y}w;_4(s& zPfAPj&X_81AaCq~*j8S9EAkw3$zd18nc|rwJbXSi_&d+KmAHp#S7h(%FZvSwm$}eJ z6`n1v0pWfRP<Dgu>-(y@b<e~J3|*GHFN_J0{Oai#nD<jj?Dd^_`qA}O`2!A@4;)KS z_6X{Tj7aon&D}G^zFg(!Xj%0&=7uQt_l7TV=sDdlB+7uLJ_#(NSy(clD)7FtMl*6t zk?dEMr@-gdjczNCqie6X>#>r}&#eNhdsJCO>HM*3T+75bq5^D|5(26{9(2NCVR{B` zOvILlA1t<+<!Pz_GM+M{+&}tz_ERDLtddv*!oN@~j)Wx0{2>Rx!KM_omTWWGmw$_2 z;NTYdxRN_lFK|jU$vGe{i~+<KW!SAB*+iW7hBRPdF@F_=cv4X8p-Y@(JFE$CgT~D> za2yyj@lXLIbQ!VimrwK_7FMV5$~s?FMt-ybee`N>x`%K)QGVw~tK;f&VncrUJ>~!^ z+1u&zr&;zRa^Ctz@p;OhE<DJDpv(`w2W>mQnE>RmZ_Sh8e;bUoenR=vA9Tx0^m@MR zyPFNF{k#B#eh+VBp=U-MI?u?x`RX*hKBi1pPch|;6N50H1myl%cWWHxBnq$HZZms_ zf-y_VX`7gxcWp+v2of0{ydWEtq9;X^R~YmMC?dq)$X(Bp6kmNb#Hx>w0oM3TS<t7$ zJ0w-|?@(4_t>NF@&Z0c^&N^!pzPvr%Gg4Ynj%Q9=p3Zm%z<u&9O7rq$J#JhKOptw2 zBJ40Vbt4IOjT(~%yDqkQm(%n}86=&v(^p7ZO&_1IM}&Z{&ZNNk_3NQJ;V8lXFTWqo zAinkn$*>Ue1^~(EOUeL}f&W`V>@<K(y4ry4*)Ahs-$d0laDg;)fa2jN#1RcVafc!S ziv*r*Q~{6}6J6U?D#8q$ad3p#)9jt1!XbjGL!Tl-8DJAB-6}i*&{~PI%Y|ri<tP~a zK3a)9075Z};fDzohBc?U^)Ta>Zm@ir*hhe#0q-zUrGYc$cpWIWNGc9>nJ*vOvb!z? zqGAi+heAhye7~YBxD{uMX|JlQ#l=LgPCB&KkeEyyeL1Bg0|Tf7w(mC;hQ>e4ecO8< zottENq^1$L?K3?#;Z0dKAdU_ceHI$nY!I}b&pn?m&j0AV_9En*6s3lRgi$`?tp4_{ zfv2U?^oao3vxYL{#hoX|GH`z#`UN{x`u=9}SG*@w5ZU=G*^ETKGW7ffzZc*mm=i0t zevG|tqM90mC)I)9sojozOjb%F{$b>iq;$Oaq7)e_mo6JCo4UfC0idO;s7pm(Oadbo z00aSl!V%y=yd)fx&vRym#|R*f=*gHqdtAR;vbRXu-AqhM;yE^Y_px{QNz&@HgNym$ zQQwCI*_wfMAfFte%~T$TTq=ItZi~-c3>yK52NRx2l*)@_)>s_Aq}lz%Ec!api>PpT zV9eQzFN_p@#;WWZS@Zf?5a#gIsr<6tQlRf>D1j5m5K-BL`fW+nLhUmI@)945r_WK~ zIb3Hozt67xN>lQ>(&FeP>9j%Qp39#ZiTISwux9H4siHiRu<D6l^Xf+Df|W#BP)<#( zEj#dD=Yu$op!&FjnW;&lB}L9oQ%OSu+7`*cAoQi{*rHBJuZM@jY-veO$JbaE+8oA= z!K?=Xl_y3sc7bh0?|JcPHAy{$rbeegakJuOtPKhKakQcrXt2|ul*mbhSPubScW2AH zW3MBp%oXhOhd9naMJSG}ziC4Bt$%Aj4RKUIUAD^}GUQ27{X?403h14@-;GIIEz7m# z9_|2uDoXe9EvB{n=icy^?`O~-Cjh3$x2T<7owN~xrK816N#RpH4P4DGRX0*uEPg7u zJZm!*L*_Rt=-~Y;7MdAL_WD`n3sM+=OzP6?Mc&JU=m8Y`fW7JwK)})k?u;{kDCFTj zhfR0@eh2uzyPl)}<MJb0XCoGK&53utEwcd_xDv3Q4msUa(@uqJNkmMHVIAv81l-O) zDZlal&rfFB<R*r<!Y&&lM#xa+y_%*6lw0u^wy;KGu6rmu57LP`824wSii!%$r5*Zm zHF_4$;T#TH{Lf!2&I?#S?>EdI7+*gRvpa+;B4-1*hO3Zl9gAW`J7@0;Y9LM%-a^9r z{fS`v!X4`hKi8(X!KL4a#g7W=emyEe3I&B2H;V{i5Hoe=H64{Z<ee2?*BzzpcaPfl zes*SQ`BmEijNv*`8Ot-j-164*9ue)vUmvv7d+OlC7QJ(8m4{%NByBMuQ$~(y<jU{D zow~Kfewl-<^=JO@V+6$u66Vp3xnNyw_(#RRXk$!^P!UH9W1IrJ%3HDd41vzCzt~=N zUQSI&VcTg%)!{$PvSNK&DB{i2g8{9Eh3Yw<>B5A)k96hqz&}UJ>u*OL5>U>R4JvzS z9&FgSDfR;&0A8h&Pm0)8l}eDAtQcq7oxzn^#>MV_dK~zNpsobjXr}@%t6ZYA;tADl z*0QAgUWmL#sFx>t6=i=qs6sVx9?7WW^9ycPL-ZGg3^J5IxQw^c-qR-NH?b6J@zr-d z9Vq@r%BjPZWRCX&G&Y&zj8k8XL{D<wJ<se;@yBF{faS%fLL)vZ6=%ZQ=2`igtm0(^ zJ^-!*AWAursrVWDGWsvMEV;b)>o}JY@f;Gy$Q&Lj#RQtOkKGTx0PgJYT`G4Pg){e0 z;}j}ca3I`Ai05M608F~gHr<_z2H!bdiP~(cWU>gg#+515mc`@61h1uWoDP3;V?XS_ zb{@af4IEpmj!4`EypI=|dU4Tc^6z!O_@6y}$tslLI{oY(${S)5oZVVzQYL6^Vz3_u z&CE${&)*1p2JWb?C<Z5q=TBqYEHi_#`x#JsSV+L%gsmA0MFD3RMQ;6^7210mWv7bC zdTGzS;4`-(plP@&a5WTVjC8sM(}{YY$;Lv7ML8$r$4Dlr@>8XVG^>X~@Rd1R-bQER zHUT~w2=;9bR6XycCG_IcP;im;%t7MSK5aecL~+j|H%Sm!X85YO$p}y@He#7@&<ql8 zc}i7f$geF;!0g9VQNeZXLD<7^v7jqnClXREfW9M9%fJ@)aC|>_=D-;ccNAPe8G#8# zDX3ojbRSfo<#it+CQA~wLM{V{8N;Wyy_|GEFo4E90Che99sW`emcL`5_kY0rVvie8 z9B21*^KjRzmLa2gElTZh9r$bxp_BHd`Xc<w8`-imDErbZK$MdAgE9SRl>L$z@RMl) zd9ro#K#1OwC)(I%;Yg1lr;-+30T*cSIJW$-O`Id_C7D)Mj0;={^?(mohVq_l9+%I^ zMEYeS>tYLfCM5!c4*WOjhcUeNz|@h~8rYC+JlQ8Hm~xqkd`_>a><h)tDXfnY1dIvo zJU9qeh7+F?-Hh8P16Q(t$pYkxkLWTYtRE`vxo*XUvfSSwe+QN0RTNRhfWxHUzDgOW zSmi4rQv2Znco5oG!jA3+E^CUBWOoBmz0|Wu%Uybm(qx?FllE9d!r9_`6^&|fM3)=N zUQbLVq7mLHm;5ZOccDi*tkNrRldo=mgB=DoqJeRQ=f7mN`ViN6@Tn_K>=2N*`w)_F zzWIx3`DEr#w|{_APjIWNV02ZiB?;TEO`X@;nu%nwxtMp&s7!0NE#Tn4V5jkXBm}Dt z_9>rj$HkNW#-qEpg7f>rR0E!kVw(Jw=c^?s^ANl#(8`r{q);tKW>L3%d--|x@?Kx5 zUe*tGU@HIA!^V)emeCy<8@v*PJrCoz<^rQ=37S0fC~n@?3<#T_Cs*b%3|+&Ti^TCz zG`jex%8<CapHsbCYrmgSNwg08a)%XcZr4`GXe<?c=uyafK`WwQ)ACT>pKi6}h^1*% z)i&q-AujEa(9eX504}Lwi2+XTIE`oOf5fe2n$1ib@94js&;DzL4j_6K-u#G%N)T<l z%;}|cJ^UQm%1)859c7#pfx>Z^0`6LJ4`?nYxyllMl2-{ww|ufvi`9C$>O@=5lX$xK zdyz)n3jO?tU^i+s?5N9!lFkQ?<9cyyHPJ2kpGG78p&j_<*&CE^67u3Q?=5P9!|lBT zO@|RmRFn3GfwsPDYZT#(9!P~XDR4;!c$B>qBTP+XK2*cW`d>sGFe}7G*hb_NpvYKc zA3$$2L1;UxX3e6VKp?&EUoI|6bEpdlmQ)frcwHx5v?EyGDxfg$o&hM84u9P!ixZ$6 z1A<EdeXrd+dh9#bMzJ+&lCaX$%(=;l37s=x#aI8@o!No_2_i)f>Wt;TV`yJFl+~{& z800zv%pchST<kA@AdsS86I2x?wF#EzDQOi*cLbJS2?a4%oSr*e7+$Okr7`oVsGsxK z{#1Ir{MWb}?4NAa{@W}AF~s9+3<a_(=!F+f?Mk2fX~QM%+mTBur4{>Mzx_k>ZcG6w z1Z!-SAPKtdEZRx!5;AAm>6C6w9Lm~-9%&i)p_Xp;(IP}<a(T+jf!T_f=duq-lAjhK z7yjgBK49kd`0ar2I&M@Qx%Ih+Mq2GLjGyXQjh1uwOzB}{Wg9@=&^Q0)x53>BY!dCY z;R%_SqcL{+2EZ`BMEe#{xR-R?%;}7K$Urm76clu0R5Vfc%vaBFBj!_s1{;YJGW!O- zH}qu8)Zt9)y#EQ~pJqhH4!mF&!TbCmQbQr|=LV{E+#)3#z`_nZF+7QQ&e+MBES;Mv zWV~m@T8oG3Zkxi;wTwb=qXDxtDr&_ipb3Pg><ph1(c8>t*vy{n=BhvBx4u5DT_xnW zI(h(e8)OP*$UzaNmAwx$!~fCwe(PeUe<jTDRLtL2`N<<XOL?!GV>to#oQ4M6%krL1 zotvSLz-p6UeB8HQ?Cq;Z?um`oTkj-wlB<7>#NeX$X61<TCyvN8ZI0Z?zm2~qK)q%| z0OHZ;tg{k<JMuOJVfc33&(su4(^5%w<KefX&cQ_Tp>0I3dBA6r_(LRF-?to!-IT@# z3yiYuV*;nz=^MTiQ^5zl)}F=AfA0q#%zcR9H%z!_t_w^bjdL#@Xc7`px`qI7`WlIL zMWU-R5GZ2=!H@Zh)JpJ%kvkRF<jm~xvd#!X8ltJ_6E*i174a(cN}g@vt8&13P+@$O znmwG)Xh3@8srTih<>Z(*K?TrU1@IX4m-r8sY)5oBQ;@jvE+*SRBqH~I;xNLJpGeOS zBBhocsm6cQGPFfoBsrMl_`Y%4?#h7h6S%Ci$=l<?YnC^HBTk(2??d(fpHNI9b^r=K zsp*d{LAC!hx+{k`m`6?>7cFF>4y|b>KctK7O@#rASK?f=w-Y$+>e#u~E}{T%5g7yN zRj`B=`|8Sr11^k)c&lXC!^c4FTq+Sy03@j!0#RHCi^=B?CxHIRS#lsb%@QL?BCDdi zfr6xsj+=eicv3h^@cKhaRc*W}r(|Cx_=}9(t920(i9rNi`Ghw>1dvNWiQE_7*{c1C zFnAN_7J{PKp~UM5YAkz|_)sP@_u!0KhD_o_MJΝKMTQ{!d8PJO2>b^rIUuj*0Zt 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 literal 0 HcmV?d00001 diff --git a/wiki/images/admin-main-lobby-outside.png b/wiki/images/admin-main-lobby-outside.png new file mode 100644 index 0000000000000000000000000000000000000000..8d6dd459f9bf34627d217567b6244d79ae67f291 GIT binary patch literal 545322 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�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 t^5p;mi9D~+O2XT?RO@^(OaX@wSp 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 `r@YV8*~i_J6S{(!>-3oByxZ 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 mInP<J=(4}Kbd@Y7eh{qWTtib&Rh`RK7d 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 literal 0 HcmV?d00001 diff --git a/wiki/images/admin-waiting-lobby-higherbounds.png b/wiki/images/admin-waiting-lobby-higherbounds.png new file mode 100644 index 0000000000000000000000000000000000000000..b553992c98efb288aec25e58fc6a3180e672fbf0 GIT binary patch literal 1109448 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%0Db4q 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 W0vM<1C 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 X^*FFg#1j48&&OJHb;<;)qe;Cow+<lyQBe-@6 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�o<h2D4$CBVusW!jvv0G8b`6%HuNMEOeS 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 p2dgQ`I@Q*fliE#OHTjwa=0}tbIPX|@ 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 bH0{6qVkLKuJC=I88Gyjk)z4*}Q$iB}*>_AZ literal 0 HcmV?d00001 diff --git a/wiki/images/admin-waiting-lobby-lowerbounds.png b/wiki/images/admin-waiting-lobby-lowerbounds.png new file mode 100644 index 0000000000000000000000000000000000000000..640305665842625d89a8fcbf451b75e99c97ce0d GIT binary patch literal 822871 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།$PqF;+N<~%B9LsBgvYQ%6 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±un9*wXXMB4@r zibtVvnM_Nl@FWn(ak<C9bB3Ztr(Dy#5Ah87{T0O|AQ6qgUgF2#Z;los$G@O=@YA`Y z7N**-L3MNb(^Bg~mb2>77bJ&ZPU!<g10U!8rTr5te?3kJya5Q`(x3CMFV@zub~qD6 z0LDNTR6o#93ILnpw_tO?yf)<W556j=2q*IB9<j(4e(k%nHjI>2i7`X6ml>haR(t>c z2}3TIC08cKR682&UG3#&t)#_fjHP{kUf?|_E>-G27$b_%8x|w2PP1R|sP#EZPGw&r zipcBHd+51Wbf(iZ8yGBPO@SoKfxYtsi+M^Eg@hHtHN2GFiAx*zm*gLbSLJt@?LoK9 zyB+m9Pw-UW-^0bvOkGm#4jeol&WT5#;<U{?SNN2_ja}7y-~9GNVd+)(=990&aS@`l z@9p1>V2cT=;~k5Vs*b;mO*%|*t|j?;7(+J}8mFaq-y+eNP>=Ivuw?wMZ++G*j;FRN zhubUTz9RNGgY4z)(WWL_4HtFh>Hy7px?c8K#&yZDK04QzIM%9Z1h&^dTPqEYSG^OK znex(|x41lvMB=*}h99~X?ALUq=h_j?$&f5@HEeSC>uA}7w)3ca8$DJZcK=g!)JZM6 zUsvHih`T(^efsG6qo4FSW(<v5`2`8iz1&utuQiwD)TWemuN=zOy^U)G1y+rc`9?NM zv$tPfo-2eEon$Ll&d!yTiqS>6pQ^IwNStjvS7uDF;@=ADOrAAuPyBw{8%xq!{xdkk zBPH*XVbkeK=hydWB!Lns*j#E-6c#2vA!fRNk=g*}cLBng_W?;X$I=i_U07oo@PPx) zS|Fn_78tyRgirz?&ycQ>C}6-w>TC+4x!@ceVWN7{E8&Zc<-GK(P-mXuP4vPPP~L`V zn;z7RLnMFwcnhcnbNxVNKZc|j0H-0<`Uj|U;U;*~p9u>2yHXBlLE(7~jCko|eZa1A ze;*hISnp<^K?b8J06PmI0)(0Y&{VN58+{{2Enm=#^>^SY#`zy8{QNag-jBf>KJghd z-7>_#i|s4)_~4*4R&Eki9tHvq1=l)7a%(>4_AQl|U4!Cd>qhyEbE7UV0q+Q0IosuF zYH0Lc1=?ItsTRrMKw3eixjh#0Z!?HD+z~OE0I44QsB#cA@<|#vja#5%tSlS@&P{yH z^Yyt8g-oFAwvv>Tl$)W=;ziw8JtJGk6zRop@SF5Wk`UraQl%&{{7~Nt-+Hq_vb^7J zOG6_K?u}VLM#!v)dG@R`{|jCHp{<hAB1-#0QZ$E6yA9Ei$iuHGAzgddeP<Q$UKmq9 z7BsPu6FKFZ9t$=Vci2&TVEvseP2_mz`U8)=GfK^HuqP|tt=LjnM1qaP>D*LxdV6Sd zQUnYIZP{>ZOqJ7zLj=;x2*iv2y>~bkh6x@5u}ri6ry4ht&wmLo_1lRCye?MzO!ua^ zav&nbX;j4hv4k8uCj1QEoZI&jyJtaZy*rbN9p0oTWM_A3c*r~24i)t=`a9hgaGZEP z)aoEg@|JFeam((P)~Aurqk{Q82!)lA`;s%Jv)Lcle4iFGv0s=fcIlZUMF_iN&EQbs z`^vaixSrP#)DI4R8$Y%TRnuNX@Ey^=$&<P#LA|;Z`r(L{S(VQ$QE0njLHk1?BlnQB z%&13l<Y;c$8e!~sZRN8<yX18V$dJvnVa`EQEd}ygDJ)|Q@4tb+ojBHY^hGvZZS7GH z=r5WoW<v)Vduf<BmCUGM^1~)D89+f;%<KpCjT+y7Y8jT2Dm@NxE%84X#3p^B1d~b0 zM*Rn@ECNun+CoKi4lRoGi4=qZXZQ`-lRUO>9b8*&0)**FPwE4noEO)A9Dt-(66(h; zVxlgf!i&T;j;&DVL06N9fk2vH9kMcmTxJ!5ndXRUJq4mmbDZ|r4BQ+^1wrHR`o9W@ zq^{roHxR{HlDh97Kl`v~4ahsL0+4jGYx@c|4AkPOf|^XpBotDVIY}YED$9?JWXc9^ zM9Dm$Zf?{2qcKPEe(Phn=`I!EMV_U78LmZK4A6w@a~6=ss;Vx)a|0B?U#39je?JXk z3QPjQqB@OAOkco8NQJ24*TP>+c}!mGl_%)W$1C{)6Jj*l5I?=u<BuPv%-0MSl|EkN z_cFJW#TG?V0ZSYYa2ig{!LZ~_2te1gY77Y9SCo22MmYZ3#PDpExaR#uanB0ok)AX> znFn$U;=U}UoDS#fx>UrIF)1JK2tqNk^cd$Aw}%`q9j|ti=h>U48&7P?Ln(P5$m+)W zTX*kJCFAEx9nT?L__fD?Qv<<lK4LPHx0-cM)%xmbRTm*5ZAG2DqZB6~h?YnK+w!o4 zn<O6PM0?WUwn({d&NGrS@B9Awwe0q9Ye+(Z*z3s8jb6m|aC%uzGC334s}EX7iAi0b zl%RwhQzP|nY6|*9sse3{E>b`5_T<o;{_0Ha@2A##|E+O0&JBB*<~LpzjEBd(4EHo} zOoKn?ui7c2K?W%|hM5?iVwfYhS=qzz2<4UYFNZcEi;*urcpTdpu+9K+w@xeY7wHqz z`Y;iD9VLT6zG>dtZ*3#%bf$@h5E;&|t2U}BiogCe6k3xzA{r7XHZ%h9C*%Fxnj0ct z^;6+xao?*NY4ju2v5Kx&w!&ZBx0afY{uQh`?=ITUvKJRv9#WG=u~nq2x$gK9p08`! zB<Od2l%e<%KD}&0`ETs`Jjv<r!S$aNQ5!`*4Cdv9ujlxEZe7z0ULm^3O%&B4tV#6- zEMW$iK)*cVn>7P53F?Yj#DZ^x1rn15l@Eq|>P+%yMkK6}=UNlY{y_jn*OsmY*};G8 zy@dwT=!Q&#voOh@X`Sf?47xydZutK<J~w<6__@$|9{tK;DtY2;dVL~)*-AjI0p`VO zmeYD^2+trRpAz^`$PrOi-++OJ)zloa6CMa|w<3F6z=}(hu=?p}VfE$>k$gFT(N+X) z0U^;_kr0B4Xd;Bb3q>I5(@%k4Q3rx{EjED5DcV1lQwfs9sge*PFF2UFwe;ioXG(n} zgeC9+bT$e<eR5)=s=6AeIhbHcg$<^gdIr$I9D8ZsgH41FLZx*t(_8?T<X0CTlMdDE zx5>D#b%TZx-(GJ4u6&^ig}e%Q;O))OV-1&om-RG*vA`M#douMvkl>xq-w7*;gwRsG zRQ1o_paX*z4O+`7!Jr*uB;xXG;Di!H1`bc&YkFsWyMnFIisT8ki??TxIF)T4X&UR? zDo8DtRWq~^8Tqyj7P28x$^LJI4OJ?l;_X?&_3PZe#@ArZJGV2qPQl_%8brE-XUebt z(e;0<f^n#a%F!C0mT{Xf(9z;2v5i0eu5RhIs{UWgI1O!_((QC;jk=dRt#c(O@B0)h ztf4isrFV=g`@NnUV)KQ`ynL+_^o6p!Gd$So%Xn_{Z-skAFCI-3)a-SLj_Bz8kV(+` zBk?yHKWtiYqOx4luA3r3Tv4i6a_qjCMyqjM*HXAOPA&D~jh&bX$KHTmUDGN1h6ag& zAl51G0&Z~BT$I3=d7mLcU={w2vv*mZ>wq)W_Y=u|+El?(HMbw^hYMn}`A?KA4wD%O zr0h*YX<E6+Z$!R!u=Qp46SR8|YTZkTN2*by4tFm<TB%A*<^3!d#V04TTfuUARCj=g za*fd1#N*Mk{x@EdQ~w_<)Y*P?RA1~|f2r`hxn@}0ZNsAOsaotnwDeenNmRJE=T5_q z(OQz5i6sFou%1E~d_xPB6K&L<8jAF+G!<8G0&j|^zL>BCnhTe|hR6UmCWSHei5kU| zVdD;gax{Fz?%K$T)S2j~fg$NJVA=#lp%`$Gyb<^N>LKXkG3MALill<dM>(V8o84tU zr9X>Y5|Zi{0cK8`xtX;84{fX+tVwV-X8w^w!NdeI@U!~3{_&>{tfnx?pqVZt74ZVN z!CF$m2t=a>Qbc!zAbLDc6N7<D1>Rkh(cR@_oi>sD5gfo77&{*OxdMBQ)nkM8%~NW5 zYq>rcgFnn@BIPr>J37u6A5uic24H*oQ>=gmp#bqWG%_;M)0>@{34jK1^X&mL`Qn#8 zDUu~t8m7oIfPUIvgqTj^JxY<S<Budwz~)H*K7uJ<ume-WkC$7;2l$=a@3W3bi>>3V zELLpf{<JZKXeC^Nu;l}%=PWV6N-@*LsP+;R2DqHf2559Z5bMKrsyd3gZ)mlM(xK_! zRqgHV#cVEnb31nO^k^HeYw^sHUVhCP4zbkEM_UQ1^uD#OmyUXv3rGlZjihmU{jtsS z<J5%No_9SCSDo5>T66xE+9SFehQ#^J(;7yrCfgn}CG(8DB^Cny8lR(5h@zlM%-<&R z{WHi4+-On+9<Jc*pEWgTq<fI82*9-rr=@om9t}OlkY{tl!ryyG-4XC2fm9>QDaI~K z;xnVNLZ!_>BkXnDHW4T0yR{LSqc^2RV`1?dBHW2YTvKlXWdf3<?kt|$f$xvmR&MfA zCenkIM2JlUZi-|`EfoJF7`t*=P9@})R`*f)dKq8>8JH9Ydzq{GEB9PI&K3HDdQw+8 z(|!B$s{<$Iuwm~i3g4GH{hjr_jF6ajPeRocIZ0a%y;Qg(y2(4;Qik_CY5CfIbJD~{ z>_or4!egkhE*7vzbMemAc(E3Dz+n`VnV~vfRL&f(viXh?>p8gwU_`K2#KC|1gjFr> zPKf4IMo93qmepD(DjjW6+B$tZFI`JKaY5w^ryZi^hPu|0A4dG5=QDvb#%h-tw7tB) zPcbsv#nsD^K4w&Y4hM%q1hxaIpllpAtU^=H=GC1I&A}oUhku11;b7QOFrX+tkp3uh zf#5@j0GWI}23MoXqktc{<0&dvAPMISFg;X}z)!REnIYGb>e2n>|NT*tL1V9spc_~Z zUcCJ75vngv`6C2PnamA0_c^wKT-NYyVyBm$jlIx;`9~gmEJJ2Qt}-FQ_D+D0ySN2J z|L(7Opw^@i2E@<buN5)i3~DA2=VP)Y8elaC&lk8rJfeae|DFX`37C%>wBiRXsr)uC z3-|+oOc<cv0`pg+BoOosQ1|f|BA7$wq4I&gWq@r8f_8&|iWY(gAu22cl6}RGCvc+a zrh8uJoCVl8@goAET!F6%>7H2|KfidpFdhr`TIP1n$6#N@p8>dhWlt(309I-X{1@-` z`j$|VTj>+?!{jy${B&0EtGoV|Wdn0go8!gzVC*67JE9Ux2r4#DkIe0dz1zWutF`I) zXG)oR1d*%puf()RZ2$SVK8>Y(9H=PlK|nfOEu6MoWRcpaNH?4M)S2%1c4BLrp~guW z@<vP(6>rWcGmnG>-|pw#MBN^xGlkz{+*!th$67{5hdkktDUUWbZHY!$=9XW+$!<e} z1e2cUEJS})Nl2BoeVtAOqo-qn+VBW-Nn7I`cXnXsGmO6cVA0ZdI4|p;mIqkp*o%<p zllKbh2(`^>{|f)|uAE$IjM=Sf$kzM1|5GrF&@>adFy@=*xPDO^qBXVD&Z2MFVo4rp zD_rsS3SJA$vOh}S_KYxgMyO~#cm5rkn;#cuW*hsq<Ux+XY!zg;!&zxW-z|dJgygU6 z4&QHy98bg+d4OAGKEj;hBzb-Huh{6u8sQeb!1XyH%cpDeLC>08Ry&yVZ%v&1l>7Xm z1d5JZX4~Tqa|Az=3LI(wAk@`_#rC947j|<sgh<<_U|O!-nUupL?`aIl2W(X*#$KdO z52XHnX!~EA_vx3-fv)Vzj$^tk4=P7ZCz12gC|#jLk$4Nwmk2E{1;H)yt1nxIq?1kO zD_>t@G0+Ha)}qr(=w%k7w+BBQ?7b=|ivDDVi<^@_$=fP--)o0>mMYQ%heOWG&z)4D z5}D?>!)OvsSzRd__g-=gMF*|R#<;ixzy;R;4U)bOf_jUrdyb54fR)yyLer$p6(~E@ zhYt}Jf-juBhIpFO!7b`bA3|g{xEysM4Al}s{)~(dS)tB-U%N5k{{T@vLRA$zJ?FQF z_#cR{om`EPA_mG`k>7t|7Z~D$r2ul=Vyo-S9GEZpz=4>f{|k;)#V*GEA7E(mp_Xr7 z*Qt}|Q~le_y!{yX!nlASYNgWxg>zc_OwY`;MVmk(oUoj!n*;#z7n@r=9p3eA^c$S0 zC+&|q%{!WY_=>6y6~((>5q;Ly#!=pifIqNLrU5BBwAdmwWdf9b9lW3>fXhhK`N2)s znlA<{7-N`paY4(?t-x{73TT;<*WN|QP0`(^nLpw_rSqMW42gCtwHnVK$n35@H+e{; zWQq4(L51G0(&O5h{N4znc>nZ>N7Z+V9|dExU$n#=wN%cgdpIvtnQT<_K%|t};jX@s zw`sBd%=PW6Z0Nb9KEXGFP<<5^#&-mfa@USM(lc9IEy*wKBu7mI+k`|3?yKMro<I5@ zn`M@-n(?|K<V)?+-0HPe1J`mXQ|;Sw-q9(YcayrgAtGY$%qP5iEU>s397oq&V2WC_ zb;3D6FuN=1gAHqS_L`na&K%m!V{dPl9_+HtP_(<5G=R>6@WybC8Wzd;gTg&8Mq34B zil6`@3C<>Wo&U?mC34e7u>H+Se0Aav^JkvZH3X|C^wPE;L{&s&PpfJvhT1dSd7B3U zeHc>|D;>;Hn+4$vIC#T5pS6+_1$OBhU*C<-@Fn`t(D+)0(X!f|{A(=m5>J@-uw6Qg zx~SbNwr9uOJY%<dej#pkdN7x*p%K|0njmOe^>R#i;lz?h<ynXW7BQKaK`VSV+Q+(V zx#L{C**)NqsvPpXktDfT#{H9wAtn<@G+omr`z>uTPz#~30gOcm-c`uOzoKj_Z*`vz zPz4RKcEpF=Av{5)8)fCB0OAtaFvaGtYbM$TH2Xf0O!iB`Fpzm-4E;4MbALJW8B&Wz zGtK^Sn?mi!1_Fp@;uAh%c_|pf*Q*IHd(6gnfR(xGne+rprX-8jzj(*T10u=m5elj3 z_ZK7fSKCw1#YXz;gRjAUJqSJ7Sv~ZhXac@sZa>!>L6E{f#6i#Ij!#8M<@*N>iR4YL zrqqb!1EYT}O+w*w=(QO7z&OPIg9z7w2mLizA&dhYfJ2vnf0r`_s$4iBYxwZ3N9mm5 z3Lpebeaz}#ngp9Nu`bZUQfJ)3O{~ObW^fFGso6;JetQ3j0-)!5hdI5tHG}v#I|C8w z5Zt8QBOYgvn-T2y`9mwlwRG{YXab+Xh5@<=1@;gP+Wo!~nl-i@lfeWyxBubrP#Ib( zUi8;?L(_p~l@$@#{F~v{N7YbS*pS}H#bNKHxMO-!itO)@!=bZEsMC>se->%PccrxU zlKwYST>|T(4Hxj6^8z9wCQHbA<FGxv1*XfB{by=<X<3&lYQmVg2p=U%dlgCS_wS+C zncvj*npaUpY@?Kw=ev6Zli{A18|5ct>XTo)ouh9Q*#xDeJ5mhhF;AYo*R<DG`kbUR z8*(6K{pILbl{r|17@B4Au&n*hD@wkQMS9&uZkVEl#HIXMSmd|U&YAb^XS0+OYQp;* zUc0ydk{Jw{u)EzPRHr8u^Ljhtak^~Dxao@6F0|;vth90z^1Yt9h+I74i|vye2^7#X z&YA`RX-ol2<n5K;;yA~PcZX&ZIw6r0Ix9v;BChZF6^_I>Hy_3-CI0chDD#Op+$NV| zqETHq^rZ^QbX0O8=$20F`@PCb>qY6<XRcwJc2ky^!x1>~rB`kG#Z>Q|M##)VB}wLk zrAJ2tpFQF+obYzI8Q#{@W$x5QS6PV^t<R=HKks<E2#*fLC$2t^SbFrRy5enZ1x>_J zjfjt{a-D0C<;ncK!a!K7N|>^p2XQ(GI1z}Um&3Gyu8A%nt9?(N__YlflQ!QYHES^X zhZMz&a4*d{wyWl7G=?;=WJVKAPFPSL5VYbN?joQ?Is`ri&*k2-2FOxTMII1J+P1sR zq2U9m@n?|B7Z|9<szNe(DRV%V(1HOM+*4JF0W?dF^CpExo_H<=@Zit#fdJ)_WC^V( zA5Wx_p9H$(;1r+bl}a<J=K*lr8-YYr%@}aoH@J$K$H)TR=zEE`p)pip_MSZEsv=~t z8mL8;1jnPt(-vvH&FNqnj4r!qmw!t1C1)ug7aRHWDUtkkD~7yDKWMS|Mi$PcvxGt^ z1HPe9+0OgtsDzji(!9J=?#INCq7N1_2L`bJu#ui6!0vnp`za7EE{vIhfhunTsi@|2 z7p92SYq2!|mi_YjqwN~uXLslwk)>jdoD{Zj_9c<OZ_P+&Rzy|^+iugGZRVdRi(Y>| zpb`w`eCvAcMoOZaPX26+WEtLGyRQy?-3gR6VfJ!vk-LmusJ(E%`FRq$JC5Y5wwIZ0 z_*0NQorO6^1GR_i6cTveEOp-ylgjOEMio^5ozyRxXbVboC?IK}O4gxldU#%I17P^8 zrw@Kxz7uio^`a~wW&6}Q-Ev5kM=T<XCqwVx(H`C)Fr`^=_8)$N)Yrc&8*|vy+6m1g zxt^;Gosp36-FJp`A_>IB3xHRHa@EhvMwJV}cMCsPXGTitHc_Vjn@rA+J)EwtJuR0o z9SVD{`#KG(Ufx(KlPm~Vv!G(OANQRYD3b_3jr|E1N*RAW!)%Xnz#g(N*;ys^D_Kgz zZ=Y+QozC?~@Ij7O;u7G<{P#pOAfrg-Q%}-;f{tgJNO^^bM9G>=*6R1R+ARhFbJKCM z|BXNgmk5XEb!T%=_BnHfH!`5suT03^Y8P7$wLB~6-s{hGR^(@|{wLgnWuemFe_nXL zJXdz13z{$LynX};D!nLK5a#qi<S~jLuo#<fEl|6;-|sXDoTO+C7Y=j<@snyH<T4%V zxO=lr0U1*&*z@iasZzEmrYtr1G*A<#vwk&l5N!)(L7lvsgQ3%}gbPS86Uh+!$A1f0 z{mPBDF6T-40Ov9cxi)}675qgT^A#OTt#n~NI)@~Nwva}Pek+KxRdW41NYSDXuui;7 z&uvMil+O|Y)`&1pfK0YaIsoa|otk%$2-`>~5|xUsYe4|)h8iC>(rP7U)Z$zL><z-# zX#HVS+UQ6izy5^nhrnx-5bywh>r1;Y?>9k-lWunZyIi>*c7GaBia<GrKDQshZ1Ve0 z7=lHDIp}m5BLU`6bl7!WYwaNL4hApl`<dgggcn#m&i?JJG&{gchp?6?>slu=09pau z7#Or)bT%D9d~kQaDe?^s^EvQL+u%SXM?q{*<x@`ZW6&EDUr;RT!!q02qP0K-@i{-M zOjR%5yUq!nZ`N<VSifA}v<^w@Up$c-4&%g$249=7jJ>8gjad}zX~Dq77W*duYq!X( zQ=^R`FuXZjdHi<sEp^$}SsfbbARzBHvK3Chph<ec`sq!7YQ{|c)s7uipPA?HW#T)h zyDav5568#GBzVSu(jOH*?fY!*80oOfd6q5ROQvJr4`cX+`utPtq)qXmasy{M!nWNC zCK2BEjlpJd?I%GGJ3b^SRUr!ZbHV*1tqD6Jb!Y0YJ5j5}UvV5r3Ldv%Dwr{sOSV)k z5MaOk-sJWDT<F=KY$2Q|Zq0eoFl_w%4Jm?q+j1YH24o^_xH^-9dAUqla)+{$pF2Az z$<MlCrTuD^)OTVzem9+DQd0dpD~&K+wOw<tX!}12$sdpS2@&zaVKb*bFPHg~<6EX_ zkDxP=ysMvTvwI)FAJKiFeae7oCb0c7RW0q9_GrUY_{XFvsol5VFhW|sCuAuuNWHOF zGnx?-`fR-=Z=K91Bg9Nv{`3ApBPi(cq178taPxO6H+QV!@2bNjQAE<d<wL!~MXzKE zOt{(DS)s(sotFYfB;R9q)f$b81t=0*2|Wn|H?Y?hzYCzCwp&){JAv@;%5WR75{A2- ze;rg52MBO#E`5Ab=Rro@{`LD{!NAbHnM3(Ry;7-qjO!oT16m)z(~N@ze*SmtqqAH9 zVJiSVE+INL)Q-nb4>_vh!I!V!Yf^xMibPNp>mxwyul*9xk<=1sFw?Udp95I_10C!R zS7|^ra83s7S~X&zlfvJ!`Y&wtcXb7)P>@4~>y?#24F}MC6w7F#LjKy;V4<b4jGKO; z_Y|bAj-Ejx-fuvJO*;wGnLWTUai>C~KhvPXU-%zzbMWsrI?(<?CsIB(02dLZ%`=>b zAdx7>p%=Sg3W6nI!Hi7-e9?uulo0g!BK%C4{wetVWd=l-FYx?zS7-w!j>UA`<8&~Y z5vFUbG1UHTgMhTxwOGkbU?AoNyn1~|_4-7zM(9705waf5sm^j9%v`T}i%@OKdCn|* zQB8P<V(e$+m1E&^$V;&Wq>-)Ye_J62&bjpJqJ(g}r)EQ`ZryJU=C)F^_8MkDNK1{5 zD9|p>`LV0ln>Cl9SHk>lYw|*n7=HYxIHyQ{yKFu&(nr6mr%GFU(uy)c)BDFCBYBH9 z)|!PqPi6SZLmLAAE71|CyA<>=9oHmpmyF=&>naJgeR=-nl@s!sV<)^N#s@an_HXg; zfUQU(YPyL(_+g5ds={=BtYd}B?zau>1dCIX{EL(lfdHwx#GZQ&&mPuo4EOKHyrdq0 zJJ-lvI?h?sHN?yEzVRvBKiYMx|D<HEWK*<3rm<>+-81VTE@A}?D%`HFuEL6l!8xSh z`nXVIzXT1LZ@j=n|H3K-cJV_s%h{K54I-Sk?&5!Ft331r?;%lRMmD+Bh|RZ!^~y9t zHu9~Tf^XFW+-x0RTN%xAbpeyzIKQ3fcN{A3w&yQ~JpR*&_p5!Q;*g~2h}V6S<SgYN zwrQuDn{Sv*ApSP1P}#?4XCzB$;Ma!miZLMM_D4QBvOTWlNBvYXj38A4hz#<yKcGs) z6j{8=i@=qnG&~2e18W7ZqeGAfZ{6y%(j+Z@2eRPaDtZPURKO4FS>==Zm7u%)xfu<5 zL43?V>XQdv^dt}>3gBY|2Y@zEt<>@FY6Ezk=iP$4GFa5DCw&4QPm|o%|6#=mA$3*2 z8DUTlrGp?te835)WCx*^sY8DMV0;&d{9ZLMN%vogKqBzLB!2S)1OC(Q%?oM5^yRog zh%WDoG@sKXbQZRsIo%J?c2!$G<^<(Di37%kP5`(AzM%DY^!_kGZ9dXDzW^#=W`10T zjizv@lpBA>eAEB!d=yK#`*gV(nnpCAjsdq-B;+SqruC11iupI_T8ANNq*;Cdut0K< zf}k-6Ke0?-6adG=xCwnKyaD5UZMf!VpOhwfw(I9_2xx`P=F*b!oxK>o|84(?UX*CE z`&`Fup4j-;)qkC8<VDvsX$#kmjgv3jG9u}#f7mz{w<Qx#Cd1i=tAE&uTH;;#OLZ@| zpJa8@?XSz1JUzapvR3t;?xGSCc9m`PJ%<|vLXWq$ZPk>g6cWfll{|~;<{xQ^q2o{P zpS}J|JFp%s$qcrZntFfm%Hm%C3jC=%-M;{{M4X&D6F!-${3+_Q{ak9|n}cS%ct1bh zPdv`r&7v6(9)MS2r}~*KZ>#S2nvoROWKwliZXgz1_cO1^-JZq39+ML(R`h$`u)1(r z`g*vrm(nrhA8iyTRg~<f@L)t!#E_e_NVb0(qU*?>+1}qCa|uOg*&?nEB2RiFk}fkx z=|!I7P;ZW@%*Puj%Hm{=amO%7Rc(op=1Wq~{C&+3&YJn@h4~7PIHS0e9<_mu>3Kkl z6O7FLCr0c1-$-7O$|dII+y{);C1-ngF66Do3E#K!jdi+Tp2fk^ehnGa1(Xy0ym3(H zqi{H7QS0K^aq-||6Be^MLNu0Gx_`7?EqvoW$L!*^^@G!+!u8sl{Jpdx|6w58SJv}W zT0{CY13L&&=GsQv0u*kB)HFOcd(0Y%pgC5CMYQ=+s0gn7Y#gqaFJc!&ft}fW*gYPw zQ7fQ#(S8nr_(PsQd-58JEG=ZBTTUUQRj795e1^Oy?=+&;&;YFe0W*eEfL@A)w5&bk zr3V6!XZ9XQ1t`O0FsFRFZPP(0Ac@q74G5u!U=WJ=Gz1>~Z%!C+;llw4?GE@JC=#Kw zx`BY0SFxiEyvf-BYolOz)TmD+zY6xleq#yf1;X7S-yOImuaiXp_AU`k;n5;M)c9hF z0=FmHJn=ISs7knC{_j@;IV(nhKmYD>E&(YzrV;xCa$X<6_JRP^)dfBIOe2p8yorI; zeec`qfnEw8?}~p6hk%*$GVRX-aLS>nk(`jGXgSO;t5&%XUDwadkAH(D-Mw$ttQJhp z5M5n$sPIHv<PuiqE!}8vwA|B|5ipPr@Lce$;ViwYrX#Cnv|reL>VmvVTkyxNQ_k?J znKMT5O(etLAI~R9xf$)W@Yj`pw#&jq+R}R)4y2#S);FC^6Jg1MjIi51EdJx=c9+mV zzDeP#+e@jAp}a{c>G>|(Zz@!Lk)lJAX3i#WJzuP-c5C8&BQq<>r5q4^S3`9);v&x4 z-{*3+Q%p|%>%(QMx?+AeGLL<_{>)&+q5ILgmJvZb)~`0*|ESJa{pPP%<%mVzDZ5{q zhp;U?xN}U`@S6J(E93Z7VwQZbd2UkruXonZF>0;XHGeTxX02uK51nb}=Q!BI*OOA2 z{XvTv>yXUTfIQ*wyq$8Q2y*M0mK~d-$D&hg(k>tEu(mp$TL*@O_{hyJNBE@PSF}o5 zS*sJMG{_D)Gq@ESa#GHhC2u!+seqLKK)sW~5k8aPO|41un;^9gj+0SzeO9P5q*G!$ z8zACAA+Z@7N0k@PAQQ-&7n~+q5^flnf7}`?5@FYeWyhR!MBK%U>1I0+`&O@OE~Sg7 zc@JxT$Wke*R}7vy<}p=Z;ViM=L_}vGVUYij|HIjXqUR;CWOBhD8m_jM@hl)8$V$mP z&8t&DW!sBP7XwhW`vmi87Iz1sCpEx*xbizcM`O%ru|sNUVKOfb&$GTV1u#bcO;4#u z2OTFe>+6Aa6gS;ucd(x;fH7;SsV5&72XahED9O0-SOH0eB|k~+jA%Up(2x{ks*rtI z;$@IBfFU_qn?Q3fJG~)=zw4qKI1F!lfgw)pkPw2HbpixG5kOmzuvn!ARVPv~&}9Zx zqFu$vEf6wqoc{$ySx*+<sOSMQY66NvezDdGM+IQ=Zp0bo3+M>_%)AeK9|`iKF(Lg_ zX$>DCv^F5v_>Z(}5I_Bs4}*VjhEw*irhM9;dYb#-v7Q8FKrRO{Hc*Ie<h`Xg&<e_Y zJV^$NPqLF7H~r#tS3&dTqZVI&=U9VZcW6Ov)&s)1hxy|j63*ZwllzgVW8eP{MlpEU zbZoDB+fZNMe`wJHZVcyo@iDnzVPHufZ8v@IS}d}84z;qZ*q>UBa3B5rH=Rw|e>Y3O z-?wVM^N8%7ipI%E`-v!RRAi(2Zxwp)CRZd!u3mGbh2EFg%~XBe`AoKZ58|H%f!l%2 z-OibmkByda65f@#Po>XHSUMZi7sZO_rG3p2>!@S~{;U8mecmQ}GRvcbqX=372c2Jp zyUZWEZnLk2J$roKc4UM*Qb#%3dR)PvXPFAB*4p$C!QZe@XikP@nlVu!g}BIwqFIBF zkSxoS(i7`lN>{6AZWP>VVguuzdu4r^wanGFclv%Yl6B(&q?2V$f3k^8Z}Qp9%%e$y z)({V5b+nFFQip##{qyyhXN!Mky!?fBx~H=~HQLYN@o5}?Bqdhr*k|`t)z$)O2R8nk z{*6hizh@+&LXMrzQexJ=<ud%v)_9k5*`$LB(MBKTTu8I%q(@GI3UhG2ohO;+E$ezo zKH*xW#hMtkQCb~Rm5Iu{3q3Nm&|?;x){a${GF6}Q>>lLEws<0@K)Ubz5~8Ap@*rzN zco4LI2+5F`%<=v;oZc})%}{6H_;#V*PHV_aqRX0dF&r@VD9zACE8F&yIY2Arhf{Qi z$J=&jpxqWKV?3;M@3F){dW?WK0PJu3bI8%&q8Jpo5k&PGxyAesk(0M{()Yizzv3l` zg)wqZ+`src$c2T_07UT7A&?v27s2H3n7Kef%fXeMIe_m)0Pj)F6!;RPieUP8jQ|Y$ z`Zthw%#sD|K*>H)03-6?K2$j6%XdJ6Dnffmr!0XcD#!&Se<IGQx4`f76rg{l9B-N+ zTCNb<MNbH_=3fs%{&$f11ziGY78?9xqs!;vvc9zSh40XczX>#oLU*0<8Qk$33f7PY zFwm>3zgD~lG7R72Cd*b@TcKaTIrE5^0F?yj;&dT-Za=_-$lzZa*5sFssn_&;1+Ca1 z#?pcb#!r6q3)Tjnx_)pSSNU`e{`M{1D@_#*VA?)z&9lZy6LC17p6Pw7_shTO$hkf= zp8M%4;mSbWMwdlaH`2{$mvT75LeB~hM8ST)__?4Hu-JU!d^Gg+TUbdphj&G>2LT%` zYvhnzopN>*Vk(*nKmER;N=w{o_6@-%{8@~0^Sq2#`DzLYMenB%Zn~DMwJH5{jX}II zsuN5?jTrP$UB}NsgJRTl-?L5af1w6dinv&eVh5u<C`FXJO}#kUjS1Xy+M9lpZ@Amc zyG&!%3LNx!rx>_%vb1t<il-pFN(joG7EmcMnD`ddwhE}ufC<(6*|jwD#^UZ}@sD?T z5=B#|F2dz>VvQB6&h}v+&ic2l`21hxR-LW8pkzq%qiZ!h1@+4nTZa6C=M{vf+GaHj zgxR&lw8ycscGif3R9P$>Ty?@N7|v6|Fy-B>cCy{V#Bf!7zGwQbmSZ0h5>1wDtlDTT z@6fhN4XV@2%yQgHOW)$T-E+^*<|In3c6<zb>xN6jUTfE49iT+6o}5mqAjD!@xhfL! z`>h6DF|o(^zYhcSQK}#N_9tcNUm;R4%x|uu?3DMVU%eC0nBDPyFEOQth*+q|(5sJU z8G4O17(`_pCfQ7iBZQi<pNUCv^F<eG4BkQt1Xiexkph163MAkvJox$y1LT3Jg{xeF zv6|cil|%Am(%7soo$u}AHUTuTL7n2KA-FpT0Ekb$ktS871oZftQ1`{Z05@sk<wWUE zV}d9Fz_%`vEsTpHyaXw#roluUc_AI(s&=vf$KV9j1$MrMpo2g+4Y-ST+4QS=0m7%j zf8CBq{%*VZcDu3)2t>5uU|bT-K{ubGA+7l7e;~T}lwkRVZ^B0^?>9;Xf!{EKpD$Je zAup^gePP<JU$k6+k_w?kf$3*F7AmZ{2~5|XR#8i!kr$Fe0rq7eJ>Xu9aOd#Xt_ip5 zvEHJEA%6lh6I}kg-1Y)A-GLa`CVra*qCKV&=74DVwKo@-n_6kg;Nm)gvLGJ6XH%GS z0Rw0URtVhxwy20lxy{S~csjDZ(&nbFRHz=QS0T=Sh4P*m$NGLOkJ#-T<eSjJpPznO zolZkZuUf%QS7{8Hr?z`{N7S)3IZM_p<GcaU3T8Xr&6{+S+YY#qy!W8!WQ6*un7yp! z%25B#s%RQBhCRln3yi^7#<a<s#jlyyss?8D6DrVv{a=8Hg+nqfs*o=DX}iXH-a~{= za;dCw@w5Nb9<`cN$dbM#Ixmpy>EVdAUJqa{a~Ycd%6YhZ61ov)Y11=6nHu?=x_*_U zitG)?oJe7+vZWzwb0uu-r5ufWr!bsh{>t@{ZdnV8>CG1@0X}kGi%+(dquaE0Q~U?c z7d$S;PEj18P1Z6oB8#+-yS!E1-1gmza%Hs-yqwJh8s!VT&tqxG?C!A+GUbue4UKe) zhu2?(h6PC3#9z2i&wyeZ%|%<06o(%hGkKVl9ICm`5VsPRe9ykryP9(ZZSbnIO7n)D z1)XTC(FjipiQM};<VK5GcaxR3p>Le?QPp!#I-iC_Ou|6uh(w<_imT;qcXsOyVb;zV z9zs+*b0WMIvqSt}o`?i1`4K1(G@%y~f>X>vK)Y5}SGsjS-`p3I#3xz&T8x|l=zb$p zr2bl}(|e=<T?S_T_0!!3bdq=y;(X2E1&%>+_C@ywDY^w#1(@upor!b}tVoXu+3|+c z<ou}g#dAL(F%c-YZkVSpB=xcdy+O-X=)zDy4y3*%1bc!;P{r8{1($(HSs=IM{EFlT zSZx!F2;f#4Sp*ea!mfn=ii1iR@HrJw18V0ER3SrPuk*7dz(n0NeUt(#f?px3z>328 z09a7rmQF|uob(L#ja=|yczO?VSw1WazA@l_Py?(KiZTEu4_^Krr5JGe_t?loPE5En z{>!wSmJB+GZey}b3Z^`8W?;&zP$>rj4DQxQ>!E@u#v*ZXFn2zu;m3Fh2vM30HqyqQ z^=<{Q3WX`-e_(`nadzRuukrnPV1Qj5if#J*g6e+-i(quZNnf4^yW?p-z(=l(b^+ec zE5F8(jztn{E0B;pKRaR91>1#m^)#{f*J7TfLX<Tp+3Vv`$;P3_Lq@)QrDt12csN<f zL1{J+NwFVvKJw%~R|SJ(zpIB0cT*bww)JLSEUvKKoYAFnUp_A%*x5|>v8mj1_WYam zTXYJMrE$`<VCjssccr~UF`hYB6sX`=PdY@4N|sN?zqR@%gQud=IAV(+h@^QSSL%D+ zwtW?sLGN3c3mwP6?W_s;)<DzyP{lciJvf@|vzZ)<-PdkqRn)3?TYpGVo8kv)n>lq6 zg*pp6SFF4l^_>gLm>Np=q_L>7s=|<GmM&b-b8}^s)L>GcA<c!p&VQObDbohQtnvIq zFE0)67(&H{`oZ<vS3e7+J{JC~d02ftvp1R3`Y(m8@KLy@fJ)5;jPa*FS8%xDXS))w zB+;L}VfE!@{75@0Uqs#q$$y1jgB3(BVJexZx><=lR_c7Zzw-|i&NSi=<814P7k0=0 z)uvuaJk`u<xXl;etm!K!oTeT+{@!rnVmufZ6*J6T{E(Q~4dal;l#o}M)aF&?`n<Q~ zQmXi9pAeS4Yl^917AezMZf2I6?wzhuqN>MT(g&UoIdh#}YlwDw@<H(E4ia)K%t?VK z7+~mOGK&8iI9MZl(&s0{V^(bx=~op1w^#`>*eTM60R@07hUwxf3Ad2G|Io*0m^GmI zChkvK6JXRcEWdq`#aoZ-Im2V5i1r~##=CU{nLPC05Zo!p0FAbZriqX-Fg*b>{WriI ze%<XQ%!e;uVB-W_+k-)vi*3NBhtK;z0V;2Z4kU}`a;@Hg8EDIx8Z%vDWYHZ`!~^oh z)`Ng;oC7vyl^FNr+r8ei_)lnJA|H6~KLHyvaX@h!k6s7=*Kd&$8zc!b<X*D)Ye$(( z4yoM|LWsJ-zjw~=0?~a^3)*hLo%KV(9B{N=fSQo1UI?uouno<#i~eL}C1#YKnxB6I ziQt+7U82D<YVRHnfH=SF9|#ih=~d?{wQ>y;2k;S2w#SGu+q?y~JnlVU>$nX<f1TcD z#KwZc1^M?#3)Qy(Fw4`Rb}N8(LuCh*72CW*Yf@-lp_u|lI<#z^;g9Uz%}Lh*6`d7~ z=n-mFR4C(_1>t<%e`3GWDiEmd<UGErt10L!Szy`_SZ89rhnF)d<#%(lyI3rCU`c)j z{Cp!9F2|sQ1T~hRI_@noj(D0`{kbV}>au??y5iN!@gFtv-?MQ23^%(fYEZV<-fbXH zG@s=A>($$p5Hg;$8P4Zj3lv(BayNcTKJ@jEcD3>dl*6?WVE)+@%%!A{>k}TIyz0NF zMxG}@77-+TMP<?Ra$7ySw?qxEf^3g%olo|8dS$fv4)E?Fu5Ipv&+HLYdr46Ru5dAT zeofM-V8YItdA}w8a<VXt!L)GwZTR%Si_;$eZ>a{qKWDi#P*sV4`LNl8GT3Mt_x}&W z1w4{<SBB7eLRfO{A<0P3&W`bzuE>nV48iZ+2-e59JoEn)lIeeMB@77B7UXrL`83J| znhQ#`;WY{@XH00NS>wUF%Myob=Bgvt+<H?OV&x59<-SVzShkoTpts4Lzk2~G4ozlV zes5fuR`llt)AJ__nc=@6J_^FDt!qKhR(vPCx*eJ-$A5%B$GNC|e`R4zLTW^^OO^aB z?e(iK<^SZCv3>|whw#==KJRuHLcK;8I?qj~54598=)2Rcr`%{1>0_Qq+2ncY$KiTr zqHV7mE3VFlEO4*^n7DKlP(WhJ`Q+%cpz((}`ySOKq{r9!xOt9fF5Kk#)_<C$_m(Du zz;(nFwB(UCvhsqfyl0}#3)@9iIuLnq*5xJe*M7fY*~m>VFVw9M`fu!)LCRBZR#490 zRR;$=<>CHdQ}?ST1@x6@zkoV7Y&r7KK#!TfgPk?P9;AE*rGPK!!ATJG7{@0c3ZI<0 zC!ZDk7%;1NX2BUU#eZ`Lz(hI20L2W&Nsn<SK}YI^N6=#vPj%rv`2t*!t7mIhyDbF0 zPS9hp^1y%xt)3S+;_Mp@l>tf+U-WPFu)n)B@=xc(X;)aM6E5wI13^vMA9=S{(0~f% z?ot&2`AzWks?qIh9_1{n<A&9L2b&3h69|CCMZ0A)fT9z!zGIymnGz)l8L+xj&mmoE z9$DIGl#!5}CVlL5UR~L)KDl45G|b?zTkG^RMT*mzu9365Yv)liThq+9S9cNZ!;|B2 ztGH?mQT5U48G(ub^UUqRvHe0?e=pviNGt`Xg3Q9hXWP<*t|$pl#5t*``C4rSRiOCK z+h+Cn<X%5e8ZgZns*QkCybXR5D(f+w_=M`AMWeM|)ECOMn+hY)T3uBVMovNZ#<6GQ z(Fg}uZ*Gf>_}*xwCBKo$ALe)J4nym6Mr$l>ns%XbH)$q#`%hRcc9Vu|xtz@F$?|G9 zWPGo`E}Q)uXo==JYEz3Q|J<u_@YlOEix~EI*!b&u#J|T&|5&HklIR)^9x-SBos0NC zmcBcl>i7Nsb?m*eSE0z>I~>_rNoJI+bBv7aePo7XR5m%@LRK<EMn?8H$Q~u(NcM`1 z-|h4L{X-9x{&98P*K>}uyA5l7{qnh0hiyXg(a@`{h9TGWs=A0Ns!svvj~ayz+m&~w z1do`aS^btJ75vIxs|kDNN&fU;eTwih8q;7Eq)4x=(Qa$p_Agxq;4y6so@a5u+R|@M z^&dx-q&qEI%|o+O370Ynt#iZUJK8_Gb@J$vlXb~1H&%V(&SSI3|7&;msK~ibkdB5? zaU?pO4G$Dr@D8gmP==;`u55&RI;$$4cb@<Bs(q!}n5(QK(Ic}C3qnw&*BpEs{`_v= z%Z*tq+buWowq3D)U|+<qEFK<m@hh(5_<ZokL63|i&LI{<9NH)OpLO)rtBs0YL8$e; zYa|Z~sHk?U85q!%OC^~VN51)f?BGb$@({ezC{8=#FdV4F#%&P;fez3G?4o|?+;BBK zmfq^t;DE`59WWDd3^05Q2mCh(ShQ|$|L`Tsjsmqv?H~=Bo$Q22;oqqp!lBcVe9)7g ztJnn`{?5r@7x9H;0&BDbs8jbc1@EG70e4WVMF0iE?tpyI`TLakxbGK7pMb1<&07Cr za3UV)%fXtsVC(f{f=N*m5n(@O02J#A<*kbZvz3j9GM#ByJ?@lyLk5Ji2P}2AK*gPZ zV9^udoM!?DDWH@jfH0p4ydE#$w5mpkRdDzA@PG(wf4Wj|T0Q#j3{2rbo<lJO1{Mtb zbC1;+?*nJ)K<Ltsax&zfyHo`K3%lS8Go7P!z%u*ntq%_mquFG|wCy!!a!=h|&sEyy zPV@Aom``gCv+2Uz@A_cTv^@xym@qA19L2>S7KqBy*weM-PmX9&PbJMzoDLi=7*=i{ zdhVRC{!@3Mr&#FELoa((zH9~Zr(Y+GJqxm*V;>pHUJw5Cz3W(iKD2e>YkY;lYWc2* z{_^6d&#b6#`gax@4qf+$%Qj5~7rLx1emo=9*UspT3|hD~PV6gh^KnB+X!={~E<3(U zQaDMmC4Bsp^P}asa>w<}h}^qa`_2uQ!{W>R%bH`}c~3TrqvE2qZ*Becz4NlXW-nh^ zEi!HXca%DNYrxm!b6IIwF{1TSD}%`spIY`Y0sI$lO7(K{Yhra<QUbgidrVBn&m@KH zf?caQx<#5gOQ!=Cjjj1Qi;_Rl_+C@qe@i45_%Y1kPZ_~x1w)<yTAFNTnni{>H36wq z*EHPJN~Al3_p})1+MoJsh;?~ej>GDeD%BsMBb?2bo*j{XHXXgZs#Z<SYx+*|X!C3{ zy^zS7b#cm#Z&Z1+#`Yz$Z6(Pex;KzcI*I+(QV+IQ&t__L_PKQw53fsqHRzlP=0nUJ zFODVmSWVqa*0qf{!3E0V<i|?+R%K4p;Hf3#b1YhVGOhSKzYCS9PJWxq@5J|3*lsv! zb(TL!WgE}1w!bE})njlx<A6PxS&?sgUSgZF<ln62HrQKUG(!?cwU=w#!giV5U3pA6 zgkh6FUL5Wzvv~I(ngXD#6Jv4hTp2C*n?)*p!huH*NC+`=Iu`NqMUj?HG93;;oVsqf z^_u&I43tH_g?~MqMB$Mhd5#=Y;wm>zD8gXiIqaayXDP#EP-I0oRmDnfl?ZFH(gKpg z1o}&1-f7BHVz@?_)CD4!1RC;ts{z$o_)$SEOzD|WZ56W{2_~F88z1?tkqafGZ%v5t zSqOwG42?}7OU^On{X$TChyb1@Il1?E*sy$CNGdRh4C6^E7Sc`Hk-`cIE9%3fPz^Bb zbQY+XO#}I*U@J+Q5In=}gTN&A7a(2~b|)MdD|k8f)`U=+0xGvLyX@rE<qwee9e?Q( zgrp@>LKV@RvoH!&+S~3u#0-$n-aN+t+f8Z$32RVdQn>D$rqtlKSC>2FbUDD}X<B4p zi9oNl2yQ2<ccU9b5$zswZ-^o<!4|Y&#<5g+)^PkxBey{^`SCDU-~u*O{l-&piNTsn zeS1edYs0W5$!u3`IjuxQNQRHty~WV^*CeeYF)a(lA!u~aGXh0*#iYb^eDnh1oa3G_ zPDqh#D)Hqb+SU;co)^CSWaP}7<$2$!Mov(awR7KU-Wux|f9b)$nU%78H0~CQu%5W= zs7%wS8;quSq2tB8#Wer1)>)tZ&V!!Eqz-B&v|<R$vO#(Tl6Mz#yWO(fZY8dev*e~3 zJCcB3mcCtROGHVH{k^`BskL67cWF+M-xGDbiQV(G?wu`5lNVYuxp+V6(GD!$ka-kE zV~$}jbJ|deMz?{LPFvIiWfn>U8k%2O%>06a2)ih!hjZGrm2SgT&&Zb_j==l;Zn?b2 zOW{X+E8p1?i<I3AZ^&{z>g{+t{eECT<g{aKUpv{r(rMsXft8nd!(gFEmqvQg#+%r^ zy{`zyVop=}UF=<*os@j>e|IBhf^M2sdh@b4<~O!pLkS~9BlQAXs$Y%LP*L-S>^@-& zhPmBwb=hG|_BU2@%TTD73c!xR<JV6d<~(II`V^`#<h!(~AwqqntO46teo3|aCg&Cx zgSJS!PTMV;;z9B$BDn1CXID2O@Y6^c;TXGr!6HTGT<y$5g^xjt#+<aYbh$=ek5m;M zjpZQ++)MWJI~rJis}Cy1Jr-B*L1Se+T5mGoP|{P!Zd1a;@&wziGbKht3c_PQ!XO+W zOYO<AumeE1+Gm2msQi7t4$Yo*Dy#y+T+?eUlMNo0{w5Q|ky7k~*nu-JC6mous8t1! zs-But1kKvtc*y&R5OYW?QV8&dUF~j=;-Mk00VW0i!Vz}BmltdcfdJ}W!ZP6Q!+1_G z%Qwpu;30?LvAL{JMVzaC;f<Cl5b0h7N&`|Fk4vvhWvjZlgAP$a2~;#??e8K03V#Nk z*KF`q1eR|eZqS!VnFG4OgJgjTR(Lu^4<sEhf<z@92}tUomke`g%AZ$#^8-(g%lmv5 z_;UNB`oTR!u;PFJL6$2c$wteQ3OgFkcu{piNsr04?ljb{{@k0z{cgI8sEqb~fh7IK z7kOmS`n;8$S`Ge>f<md~kpvRax@7my$bHQy>FaRR`<bfMFR}49qEx1u?n*)(YHKZP zA(7?JFE+L93~!Cl83wU?Ol0^+a-6u*i;PjJskoN)MR!H{*>zpaJ>B`a<GHn|-Fd5- z+oIM{=zwL643WfKycOuPG%R^|PvkJ+hiSO%xq{=xz&46)bwH*rL5162%Yc?{EtJ(+ z{oaIJhD~>};0udp2VPqX>bQfbkYQ5CUdz5}^a89+^fK^^9hBlc*W!KMyV6uGWSV8s zS}kF#!bM$#-ShqE(PEi$r7cF%cv)cZ*+;u_w!-od&%jReK#Nlg#QC#vlWG6J%2}>- z@jP+3%}IUu@U3B8c7sx@#u>)Ujgl9E%Z^``YDeV%MM+USs3cn>GX5j$!|;8CLpzPI z*ll^9)dcNyU;6l|m(U=*K$S#-FwQ`~@2753?if=cwmAE#*wz=LE#ob==Q^Ce(*DAJ z4D@D0e^ui<3oC^*l_f-hxWNC8Rb*MhZp-87`EberQJ(rK60@A7(r{uI#n<NVr<k$D z#of&Tm``2CCF=;Kh{@}H1JXa=+hWhMBljbOr(z4DRlPzSC4QRUC&;a+cMGQFNdz`( zo`8cGI#n}<<yp^pbx@is!+t{W5~JT(;~`JQjU$$1lv>qV?ii(kyJQuWexBEXVGk(+ zRiRwrHUx;QfqB<w^d#}XYGH`izpJev>m<>15=`4*DtV&>G0LC<%>?+BTOw4LwzAul zzyr?cNQfQt4*m;%Jq{X-EMKon!?3fj0OGcwt%RD?EW^Vh%UB`GeY60CPBbFKsO;V% z$9UEO_Ax>nwB#&2fGURm1Eu6!-`m^)+fxRyj=a~#5uZ|g6I677Dqc8v8>QVHu&f4- zRC6Pk6yHgguUrK;B=xNo!X|SKOdh;^XqN7TEAh#Ou+v4noWIz}>qmfq(FRgtMFVen z+mB%g`=zJB<iAe%MS@pFoYObcdLg#1MoCCPH;=0b7-UILOtYvgh#j=B`pcZk&DE=R z*0vr2&pf`0<3{Ta*DI*7l7HmbQJV9vs_dIH-ikIjEts17f@p|*kuo*c-HN>28>gP` z#~&;6sYdC9qLlZ8zpN9V2#Vp(r_@N3@^v#M9}e1#i$zl%VfAvZ`|uvm(XlD>9$S(i z#K4nPd0u2OnQB%y{}y{`=tCk$qE~z6#bHfMBQvxwynU6!pZb4N8hTmW%X81dG_vZ3 zT&2@w=$r>lT=KnN73_%2<*(*hh{*6khX;Oy=W*j*RYNcI^EH2}Dm!bsJHJN9V(6aM z^>s25k4xddVs>U@axE@75Xx{$S1&ORU0iMvv$e}DQfC-kv1?yqe$UasX40*$O`rK| z()da2H;aaT;xFbfdryy#4mPXWsWZt`h6-C1of6Chh;}PW*zmV>-{xwz%ldpzWtosf zxUfs!vVnvB$HJ!u>|dei)GpImgyJmo^v{z9T`hX$R$o25k=x^rwwtdeuh;jkyz(B$ z=uWVra9nIIZ*Uw@e+^fci^eslQZ{a?uDbuI+nD%j7W@r4C?zk@7Ho4?*C<gCv=LmV z>F&f#eTqbJ<yF$ndRX5Y%IbBKbbJ`WM9$B6_$<}CE6O<Obl*on|4u5aCo`=#V~WsJ zEKihMKZa$p9DoK6*xTDZu{;&N3|y9h;Eg4YTjqHoLy;A~Dsv~A8z+!h-o{{<OwvRu z8+Hl$JgnuiAYAPr8OAV&M1c@%b$|bRD!G;y5qi(X>H@-gN#aDy0Gcci{g)H+zIOiS z0VH)%_JIVB2-xC=X02YvL%3~c-D{BW2q)Mn&zit?QFNCgz%~`Uxl*Xlz61MZ))a>P z^MMo4_QQC%%d*=RkZ_&}#M*C)kJ&}W@ZJNOliza?1tvuaNPTh1z`=1zjGA;L0L>rg zYbuwSFe#C1MA&<I(!yN8C{;@aUw($)o9AO(8c1{_4V0GG&`NS@Rq@c5Fz`vf;jSQn zDk5$N+Zhd3K$b^e0R&#UhwxVdnP@6NEv83^1^JbG6~X;_VlF@IEcEL6gILg-)g{r8 zrF#PNqA}F66tCB7u;S$(Fr?9r;RtMPQf~MucChn1FxDkeE9t{$D1wtQ?4COBs2|yD z+~>^&zH_Cn{P@0#$zQ%CFGd&k-8F~f3rN-)jR@4SU;0_$V{?Xqb5T0A_wsMO_;{-0 zcZyjqkea-|f#CBkVvnHH%VBwtE`ivlY|*-4Gp9YfRc=0LbV<2Zp%*}YZ0ChQa02@# z&*-2u_pLu=tyR(3ALX{n_kJMDb?rnfKD;{JFVzwt9{(-W*3DQA%_iR`Rx2T#j(pes zN3JfC_tOU5ABky+m@iKArBXFp_O#py=8vpoIR)M;crFeE!C82DG=N2^v4Xooybkr? zYr;RW?4+J{J8F|y<GYeSbUqd>X2|d4FVWmk9m?V;wi$f~PoV4CHFND@*Ls6DT2wRe z`3<v5a&KW|H>qC4n>Ra~AN$|WqWin>&c^6J|Hs7Qo=HOa@0h5+^^N^+{BUU^R@@v* z@%Ho(kJ9gsdd1&%*}p>A>okL>UWugFNr*li8AXz@VVF3TTj<q_AMZzN?dK&Nq8;ZI zq7m5(-(mO4^C+|kjko_=c5{f<amJylcQ1;R_F6`Ny;A!6=BX;tkjmd|NgOXQy;5Xl z4#y?PCE8>4s!g4*Zjr*BZL|jS0ryoJ>mkN>(lv5`PL&OMM)r<dQXF^8`@bv10NY2W zihw!P%bGrIU0&@NO;#<|4L!Juh$>#8hH?q9PU5m>%V{w?>JU;`I+RtH02{4ZX>1{l zS`91FCB{nM@l%E<Y3k`A>&g%}Jj~&Y9ThaBKgAC3B+Zvc$uLeFLY9w;$lx1iwe@;{ zCXY~=1h1jLU`B?OGC-^>n2rf>kywH#?K5^{GqRRETp0v{$d~pIhot@2mdXtO-WoCo z{g27N@_3lk4_?_^T?rIZ*U!(-L)*Z9XmPU<tAMg91LgIm-Fg>@_%BMK+VUuJ5dPeu z7jZ5-h%S75A$0ig1UTeh668mi3fB(;xLH$Z{9_~$is-&0Gz8*}$*^9<<KcNk5{$MQ zD?k<l!$<yARwEP6Ti8|^XMW<+*s#cIZJjrN`(T)O6CH6xLNV)w@QsQl$&$F12C>Ru zY1G|S{<x_-Ba1V9cN>nsj<7vBtM<GY(#Cs%j2gxCCFHB-F=#FeMh(*?l;)adO?%%A zYn_V5v$WmtyczIT`SybRH&RPHuWyEGg;=_9+kfd;6A?<Dbvp63Kk18D!_Q<qt$#=Q zEM6z0BgaM+e~4!){4*x?K(hvJAO48Hob8R~;s0tmsQxfN$8k<@z1Zxr*X>XV{#l9~ zTRrw$VezuaZv`__fpl4I1Me<pg=0NF8t@_ug_q~8mz%11v`lzwTg)<>gJVZ7m5s99 zne;yOp{8lxm;aoOPvrUYIQ1Z5T;(FwwbdHicp*Wx?%4g2kan1y!zlA$4AD!#FIn7L zI~BWNM)6YSKWj=mKO6d=IeGhYmosF$+rlNUvgY1>7+04etu%JiQ=>TaR$t}vblJD1 z;#duKzbn~&(DodDn|3TMc;20FlTG2*>sGpU#z7%n#Q3jGL`v-RjUWBWmrZ$Dm-Nuo zzdZOfCpFziH9wOhgO$cu*ThMw4V%JG-E+@f`}}|yB<(c$J;WaLREw6BGv()!LTkTX zT@8!+xY&dmhe6-IF&QSC&GVrVL+F1KIm7W8s<JRF5obkjEQkjHC4C10ArqSHhZL6m zo;0e(womsJc3x<*|KITRdoo_lP@EMNpYGL#;>E@O>0#sm9(H|zUGScU95L#{Q|tgC zwtFK_ayTSd21|~I%L;?F#oURMZ1i9kgj(LdVSpiLv`;U+!QCR@b#pA26uyBMkB<xd ze)Z&HP0oWk;$i)@GeB@RzZ*!zXMZUT1^W4Y;zFgp1W!5N8gP4z=z^<WKQ9wZN;hdK z9`?N^Bi!p6@Q43)fYn-#i=n#N@i8fZOjnZ<>;lqfLqHD5)q=RN|Gy-*2hXl1N+=l! zUEbP<QQSPvHYncdCHik+aZv_h?PhhAM;CiL-J+0uzpq(}N^^K{A}Il~XVa8k@C@u_ zd@065GVlZaS8zEYgm&Y3Qgs<UID&_iYk40a1=S9|A&l<KcV&cFZGR8T=J~c#j-H;r zo|JX?;%hgcmC+zLn!3I;A<Z;3X-+IG-m<V5Z!&_QB1XJznhu$N?NLG^-;BqqcM|`E zJsOl@y(Df=pSjtz<GrP|q@Op^!r~-HVNH_e_p!f*=AV1?E!5Gxygkny@1>P7k>OTW zB>XG8{cw`vm;P8U6*P@Rn^ee=k*)Ly=9p}v;*-$r7Gouz?9dZxCOyeig($OLo%0^s zFR|gRI3`efU7vR-_vS3?zB!||_omD8%=>#ww>-DjjAV-QO7PW83cObp#JZ%U^jqE@ z+j87CcI@o8(?{0cZ0jBQCy~G)%=oa=TaL&C!G9;M{9Y6Sa!B=w{#{PH7RDKJUO7Z_ znd1!Qmm<?cj6e$M0)^c~;_ie>QMY~+M;@B~%{6AtWwOa^#k_8hfAXZ6UYS4jUg*Dk zesGIcQE=~d*&sWfOHgK@?we<SEA_21V#|r8);Pbl*6KHHd;bkzZzI}3EDzM&%y*pT zl?eMA(6uZwSRf0qhuX{P@6&n(6r3S_ab2Do>SL}xfiL-+cMD`gKL17&+ws1o+Sw5^ zY;<9zEs@}m(46)ZMGG~b(3l^Iw20K58ZiVP+=Ui&hF=>e&zBfDZLJoH;Yz=soesu* zWtG6mt79$vyB_*!XtFypgdR-&o{+?`(t4}$B)(D2{=Vecc0CS!u60~E{$HVqDZ#V2 z5|e90=O!PTiD_$LSf|WK1R?B@x1}=pTm6{vJ@G~l@SK|2tD1$&+G7td2?y(Th*6<= zP!m`?W^XdBzyl7sa5qgzlnT?Rtc7>AsHQL$HndR4`q-`guqzYD5E#Q%qu;9#>uQ@M z40)$d3WkM`+y;O6Ai*9crPc=&mij4#*c=~_N>v>NZkae1i1HvofCWNlzJE-HnPIbr zNxkU+7Y(2oAKkht_gN1W`+onDa)#db-38loB#<X4o9rPDbkbA=<xG<lX9z`fzzWfa zkULNKJC|tSjQ4K1YQ>ccy0lXRe9JOJG97F@lwIa)P))HeCig1yfm-Ta-I?j><hq9! z2}~dys1Sndw)02GN*#UOLpc2|KVu1#KyfDZB-<&jp_e?o9YTI7$#yGivQFh(lR6l- zd$~~|;a2O*c_4$IutiZ>AsMmQG<8e0cErSgO5<Z>D3&mq=#}#R;MYbop2!|-C+1b_ z+HxpMUK^X&`-&Pwf1+Y1bJM$#McL)bHoc=KluOsF9r@3k2r$i;j{d{ME}5V5PUZd- zRqcL6PY2ODW!_?zb!lyvtR$A%XQ+6tY)Yk2`;fa$g2LIpiGC;`#Ymz^w5Enp&NSgD z<DFaq1^2y@5cMNU?`_u6f#`wuR31;d8{bNP8z&JWlYk;6cHGev_e?h^(uOR>ETm|% z$-<RGkNO+`iyK9KSaS*eej=y8Kxtf_EPW<x>l-%}l9Bf9{#lHel>Q4QAZ!iOLr+9> zuT}kv>1*tnNW|`l7H9{v&e5y0<*Rb6z6yv>xcQwokN)<v0YPq~Hs|1r<Em)m#LG15 zdJ9>ygPLE?LrmnVCR4f96&!yhq&b3W%o&6!B}{boo`&ixfAw7LHVavnqYdV>t=TJ& zsct|0lgnM)2{{-TTR7aY4Hjr9mRDrGJC<T0xp3Xq;s9kBUUg&2PcGOcz1{KW))sx9 z1zG`-k$x^fE88ajRLS{_qw^LQ;50O(U&XU|0>u`K)U^*^{|6uwH3&-l)P{lBgy_KS z_A3~m;I@#tk4#4<v-fG|Uo{rbZxAS!EqM7jm!yd+;sc%P^_QmKlSrE6QEy+W%DR4_ z&W`i20Fc=A%&SA@S=@YNn2HFyUy^{VbNu{Sm{|acSvv;c!nth<PzA-T>(fR^;ZYtT ztTvEx3cMYGQeFt)%tW<A1Q;IzknfFlmLkTU-5e(XrG_OiEV2nK9mb*&BDijLMlsLp zaGHfyGLTwg2F@RFU4U+gQv^)v2{|aFs_1_OsK}iZu`9R=#7O~P<Cu_t;6vcF0s_wi zmN2{v2~@WySR)|f^Q}R#Ke8*R5O;Gr@h$xfE9MBm%)v*2N=^Y$HFI-w&p%Gbmd7&Q zC#SOKQO}M@0@qc~f8Qn|VNwJjy{h*k87?8_sntCjEY$x<BgJQlOn4mplP=6Oc&P4H zFj7U1Ctz#~M;_R_fO!Ozj$Xsf7{4HqtwZ1KL*6ON*Bcu1$SBvyMb5zFuHgty+u)Fp z;DV@(`8OV!q@T9r=bQh%U;F9VmcSPxn|Cl8gjM_}ckKL&U^K}(v?I5tW&M13H9|t< zOzNUJwqssiy*y&e33Tg$S+Y7)kl)tJ=@D5(M`XuzVmoUpV}!g`gCqV7RGq*3yo=%Z z`84P_KqWFp)!|fiND61??bnhJv{Cvt&1Mfz)OvzkD{!R4PrA9q;5JM3<j;jO63G%9 zF$TpNVbmy}X<@~j|NLZz^18bFc#TO}W$?+cvP-0nU=tg{Ldw#K>L?jKn8F`SCRZPx zh_X)QX+JT4%PuYVvK-x|2-TUdve2<Ho&_G8wDnU>H<>q=c!wo^E2%P-s*~=eB2pI- zsZ!u1e-~)aqq(|^uSUv49mlL?+Gm|BkMEP+8+!wm!u#6Zv}Q!h`fC^3LgsTyLn!k= z?M!vEl?3BEFHV(gTiRD1VWTYW4!#Gg9GRXRlPA@Je!i~!{)s9{gPQ*A4yO&q4!qY6 zH~+S_N6NC5kV=^Sn;!uy`6G#)7p-5kk&~Eyzr)L#;Kx71S<*VS9tj$x>3gy~sR{O5 z2xD^~uYEfuC3i5@mTs!C8Xa)4R;@KdU*N65)_4lU!Tb@L?VXeJ6bgbb9EoyYRLC<Q z1Vak{CIk}XC{Qw56?NA4WI6x|%7BuYUsH<5Y_Qb6p%efEm~j>BkL2GTkF}$vJxJ;L z4N$f+nqrGTYA-Qnl$gSYxkX9cQ3djVq|sXMsJekN@S;PW;KPB&GW$f35IZ9*L=Ioh zTYV0bs;s_&YNby<fuvmWK%l}InVA<fG=T&yo{nA+S~>ZubvarYV9)_H+~mNrz5(8J z|AbJJ@kUpn(6U9l-{I$!s8!tw2w5wDk7Oqia0N;q;B1Mwx{Fj+zJU&y#@j#gDKM$s z0su2WtEq(<zz#g*z?`kuDmw|HCI{oH8A*hoT0M+}$7D3%J8K8qqac1M`%wsVa+Ld; zoeB|REgbRS%j)>>q#nCJ=`bmpnp4#)xFA_(K#y6<rC1~H3MWWsh0s#bM8HB{4gJPH zsqs>6ntg%Cy0?bjc*Z1abr5=I;d1w2r@v`H=e+__G|Cs4|G!}8j+;cbdUi32jWdfv zwIj(Y1A1Ls%NN6)9p@)TBYZbq4Yz7#gIyQ5BmJ?vWH^J^pl5RKU&<ra_h-`a4`-6s z^=~pCz#OE^_nE@xNOt|0m=@8ZXY69Yp!^!INssxjqkr@Rsx%AY>wYqvwVk$$4<d4< zZccCioHy*`&QT?P<n>VkNGl?~XC?XD{?Yg%LrxUn(IK)t@}*jtS0egce4;LTSS6{S zm6w!`;X2~57?$qUAyr)>{WpW3Gd?9(p2$ejEqJ3>^(BnbZ1z@Brogq_0&QD)+i$rk zZLqqC_DLgWY5Z$;THEDOQ8iDwGO`1UZ_mh<iz%X>+N#J<Ii9v12i{-#yA*k%zLInM zuZmiRdTjX(DsBf+R%s%Vd}1OYHlOGH_s#g<rTSPvZm(!G-?CLz=`l3Q+*B&+R@2`| z_Zj(;m{6`<Rw>K1z~lVdFZBcO>lk55gq6XR;&)9C@+{@88{O2FtmP;fX(4wKac;jj zSB}WPPRI{EwabO8z1^8T^B(>;`6Y&S3g`pxW~z>J7W`hv5}qcl8wINuU9V=%3VLIq zCu5uQLdrjudqb9P>%ZYJ{x1FtTHrnOjdiRQ|HR^*3i9I~HTTD<V@)0)&&sV+fO|5+ zvA>NZ;;kX*HxD&UL3{8*&zNi9(6e7B2Iw4oLzTk|e74*bsFA>#Ksd0)e07u;lQany z)O${M|M$9EUkaQ5-(~ctEm~!dX4n}&H@A%&vNk>e)Xo5gMM;ziUR*Xvi4k4tFNd;1 zuEwZ3WSMJ{0A9?XNC)2-<b_zjRg!^Tx)~{J29$xx4nNBD)CwO{SPZ77l{x7h;BzXU zv?*UhO-4#lU=H)Ch6qoE*kEozK9Ka72)_JH48@7o1pKGfZ`JltZ1Qo(bMQ=?FJyop z2P#3x228KcFFtT1{jed#N>BobBH0JXHkSdDS@vgpTkVj7n7YBMH#m5J40#|+h?PEI zxe8A~da)})QojJaxYW$I?_fC$1UmqPGpknB13RAz4U-z9zPn2)E)CW4a(X-C$}04% zTqs54C%m>}#$jqfv<EwJNw&5>>;lV_S{79QDE~RZMX0*ZJG;;Of;-8#izWXBj*qK8 zjy{TR{PSi-jCI#h=hnevM4;#nE|*Wqy?@E(VC!j;!|)?&MLL912v|CF+PV!J#UQ~V zVtGHWCzf0#DR<}OkY?#mKDkrP{*0Uuhvbj-{Kq5hC7nILLIu0<naZ;re>&~`shWcx zPx?;xmL<riTfTEgJ0(6ys=Tao@?h{12a^=1L8Mf&2G4R5i#+yr%*=0p!%r-_pnJ!a zW8OlIV!ND$nIqGV{xK}uP^fnqJ@Bd7^c^mt!g}0nFH<_bVvSn3!TBMH`|;yLm*kKx zb~_~@NjX8$5Dm`nq+bUfJoFMcfqZ&lY~p{iv&zPpyGX`({-r;ePL+H0qMD<o3Im(f zZSl@zV&nfLzJngMCkShN{pj@;nVs8_gv=d<Y2Th$E5nvq0=_;K-L|MwtFTsGbzEbd zX}07_xi;COgwb;!D!!vB^(@WM_#Lq<GnPfl@C}f}e+>KjIrC3g_Y<7OK|h`>`FF1b zr@Fq;;^C<oHgX$ph1mb_)($9s3sPCU3<+E@rJP`9!gOT6KM<1GPDFlRmV9rrlJmOw z*Ng)dQ3Vwpc@~HoMLyOIqiZuH8tSVwMO@)>Mj5>29kF)22X;Sx(ACfm-vn?q>xxR; za|#Wt3EFEAeBAhL#%DkPI%O~&d=CkfV$$(^55VXQYDuolnTX+*?eJS}px#!VQ2{Xk z;lpRn{8#zBGei!wQ0{qg;|-K4wowk%`p`NHA8GHOO${$bHgKVaO<e&pCnHLMnZW(f zhH_=B8R2D29+ar)LoZ5{DOL6u=mu!SltNM};s9dsmIFf<2i||OL$Ske=>&d)O|!`i zp|wN-zhj7xS-KD2bZEf*yvw)>8};6uCNxME!fyHkNzE>cPiJU*fwb2RZE@`8(NVor zN^pM@rYW!)8tOFx%}mM;8V8`)?#j@X35cS%4iGN1trC2FBFyeP6X=rxxu)Vs1XNr4 z_R!Q3L=OSMPL&p@#r~c=)Dc#2+37?IUmIQVVY;vO#NxV@C4Pi2^Q<K9;w#NwaeRDn zjM)n{sq(y@si{v}zSi>_Tgrb7sVqfuc(exi1gzK|KhZ+ni)m1UZLD=bfonR3woINl zc6l+x+Q(0a@7aD<QS06DzP79=4AR1GC0o)=j*uKCrTslys|xhiCg}g8y1%urOrGYK zcN~ZNr=m+v<?Fi`G=rFs#Aod-jDU+yKDQmXmF+mI@quLZ+`HRZT6^W+<-)3%=r=Y7 zE;flbHx;@AY;L#T;wdT{{FfkFA%T1eqyd`t=DPy@)kyjx69IR_nI_r_5$@aObrwHs z?S#^#cqv@DQ=%@ggRA;nwwGjT%q<-)3EB$h60Z!3si>Ven7?Ee*u4C}GwK<wBvXaf z`)|31ajAwmUGY(ZEqMu5?U;_d(6UC+pQ=Yce0-Uf^6?ILhW@7g%6Wk{A<qtd*DWNi zBkeM1nCye~Fi-o$M#M3C#w;=?Fe=UPY>8zg2`Bt-E(2{hPh#!4;l#(*`FSJQMAOoL zhS%aQn_7}KH;13fhlobi&9R*6s-~NxoF?f#ZjbS_Jw0TMoDUSVeQOIE{%O3_u~U1- zIoGTG(FcmioxjGzL)pT3roFU7AId2u{u3l*gq1kT53oC8Eof_>Vw*qnQZx}sjr3zO z>&pQ+=YTaaf66~Y!t@k-d-_5^9jhgQd)RSy-Sb4Hm0b{o!Rz}57A59iMV@xoE#nt) zThYJ;BV;sw*DKH--1|S~CkM%tr~!G`2mjv!;;E1i1qaf}lP{&PgPCpzWe6<~&^sb; z5j@Oz#Sjd0NF+^+l9_X-!kGAf=7xlOJ}`VB#yZ}?kilKlCh(E+(|``W+B{kXv?A|? zP-#3Bc-RJfaI9qds6j&_++-L(UteZ;!S+HMh^45NqW=YK_Mq!p|0=e+!Q-GAcszm2 z%<>3e;g}H`-hn+hkVluAPPT?0gotS^E-nHH08luVEVW78j{4+DdeH!%2<wE9I1p?s z{O?ta7a<lLIG<lfJ^c(aiTvGASI<P!s}A6bV(JLN!wZn?tNN)>qO{j{Z!O-1&IW6A z<{#+cDcn_9_cT18D|nSY$_6X);a)khXkt)H?!T6b&%J8Xs&sd?-n&OKU$5;r2nTde z8u@m|(xAc?gJ)aK@-qzWF!QO=?%Hckb4ffA_H1ee)adJ=XJ`psF0tL3R&Ki?CESbH zn%`MZ`#q0*N)pm+`f56Rx{6ZE46fH@@@yNmipDV61$T<H3_463SiYdc9=dqv5?z-} z6lY{l*sp(^$~<6RF7ZNKVg$1oWmXNq1AL@l{Vi#4^firj!M#d-^46EH*xr7%8O}=n zyAomOGN=>bKk42cT!>*j!PgxUN|7^VQFMQ8?(|sW=Z(mRc?4cRZ<glR!=B+67TU?) zoXsg8qxoW=7XQ>`-nLWVX6`$|dF;htrlbqpex@X}Z|?Tmri5)w42eaz7A=c%vg?zO z7PaA)n{EGvrXI%V5IYTqi%HZ+kmV>>{TIla5H1l$C|q;FB95ERQBWXs{&q3=_{J>W zBSS?KUv`o8C(WiNtA+>_j!tjR!zJM#uhiWK9h>zw8(ApXBAB*!>6-HTvYmfCM{g(R zeBL|b&1q@&={ZbzY#iG|xbzdvBW*$Hb7*`@p3fCwpn)YKL)6#}JtbO5R^6u_HHpQP zF-z4{oPan-2317ni;FLhfm)g!n!T}VV$b8+fw|=2zvMG>w8fS&s!pXpJgHNs_4Yze zu)~X2I^!^9O`cw$JpEZesm~I!7c+h@G+2aPvH~gcK?U+wYb`%t`#T301@rJPY-kdE z6aLMp>gPUC)*85Y1|;}#Ic#vVl<`$)b{+%d1M7Br*Px1uS$24hX%i``y9!|IB{!7F zF^!FYli_p)VewhWAV<(u29B`q6d<!X+?c9?vNXnnbDh&=AWQKk<pG^X=pLY8ULgDh zU<VfkRj`T3@R0#zgiN3g#~{sDW|R5wAV7}2p9}n`SJJ~f`z<ylZm^`OCG*)24aWqd zFk?45fUkLClvR#k*b1*oavUM&53oE#8B0)w_Do_h_}8NlC$-_&hdSU2(&d<jEKODY zQpxO=KUx4k8?nQgto_rId676rt2dhicw>Rp&ENW2;7>d|5H?8Z?-|-wF8m>BhHD+W zYWabty2ufXt})dJ#^j<or1EpX=Vb~Et)HSmR2uVjde0h@hP%i0Es8xyogXA{HWb$H z-;K1e-XoycBpl^>+e8q(M@pg8I8Np{^>xOqGvwuzNIFJx@^%4rRZV=GzAxE4P!ADT zlOI#qK^3cPbk*-V$D_iDiWwuRSZ5Z0^yb3|rBJ#~$7dv!EyQ_~l9jqy_%ZjpWr-X$ zbQYgaekoNS=3ReLpFYFrp0l(ZMOIhm^(>JT6Q{SdZsqXfi*N04N*ZqBt?s;;Cc!-V zKe7CnThHu=s*9gDrHEd5J<tsQFx<j+B?e>9iXIlnF%OxoFnc=@IaO6&$fJWJpJ*{Q z3H739Wef~^oZW^oxV@T{gjX!NJgxu2>ZQ3M4#6yRf9h+-CU#E-sy6uMlMB1JADvnz zT+-4B)wTa_2aDZP)=iVvoU!~$qwmV*bEnFkhgo)&)Ae)tR6!(*75~l7R^7HgTx0E| z$_rbTj@!!_<TcwKzcx7d4(xK`s4(Z@Ss|`XA&Y*5^O=UXTYPP@vJ^`ny){Tytu<Mv z!JixY=KI1$zuj~3j>2->W4UI&2yUzEGZ&vO7ss%V<9;kl@Q9d1%P-9eo!d(g{ao@P zJE|8UdWe@`Ky+fzCkbM$y_h}4XdS&fRPO#_+U9n|nn1H+fO7qy3rcqUbwAZ8@FWHj z32PizmxJ&mNu=;jy19l-2T*iob)<24v3Zu$!;9NG%>-V!HQ1&Bs;L}2>2igGiwr)H z_vqD4_!$025=eXKt&i6!u%GtY4ZlSl3bFT77!DvQ!`1X3S39gjf$9zn0O5<rM*@fz z%4*A{h8LK6;p0ksGJs7QzNiPyX83%=N6w^k1}Oo~wNDzF-3i3UP=<T}+>j0fO7nRm zz`TiFpxTEJ7T_dJ88Ga8;S8j31wgRCH}n~RC=Jk~c*xpPJmj4y36yDc{BY4K$f}Xs zuC{=XnWj)n+tmxr4atup;+KH}#h6i@F9xY%)Uft-{;L~IA6OsgXpEp{OWC#3L7g&$ zb_c2T&rB}BD{&7oZ{)+fx*YwI5W;ZHrwI?}xe~0AlmlFX{e}c%zaBd;=-{!?B?kz2 zh<#vS%jQo_Mfe(?lJ0w2VrFj$t3q&^P{|%5;;KNC{YgQ@EryxE!W&k!oeE>3YVeJu zkBa&|!=Kx7Si>_Kbtq{YTqfPRu*V$eeW6e5-ZO3+j>_L=(jmX@ee^`}Ab2=NPw#rI zG=-@n+KaRx0<Y<e>`w!UC|@w67Oa_<de*t8z37_3(FW7pzRYJ{_k8jZxgtXaAXZ^r z4%)bPcjVl4A%~@(S-bzvSET=m;313ljBVC{VAR4_mpzv7wMIX+&gQ-9`$=*<eZTe} zrxHfaN%Pw`uI_v=>18-k?zwB@82seYB@QGXueQlbo5u>HN7VbwIlTrlYQCHzYtoEM zj30Rt4B+9EynKn*#kWQS4s^zB<?nc^jYmOWX-rzlXdKuS>6hbQRIp5u!%g(Eb9@4u z&hKm0R%++4bvkVE@rtrn)-mv%4p<`Iu|8ei{~|T>1<C2TlvuT2jR<^h5#wLpF{`$A z&|6qp)ue!&+H08PxVzMSt#B*BWbP3IzNBImnX<w^&zdO;w?YZuqp8HR-0u$`t7ecg zKYR9=MBL0G_x4N2aSF=%Eb*sJ$pMXBe%n7^y}R}Xh@QoYw28D<_(hcL&syTCFW;Ok z%O)+GP&74OAqSJy7#43eqG#&yx(KX(^5i`<faM&ChT7f$$%5y*!I_)$<9XMv-zNZw z0)LM_AdBRgdY%wiC&?MUCsE*dH1;61bhqIpW(~qhgCO@B#Pve*9?+Y~Qp<n6g%b4L z&o-AuKA(pGlk_QWj}tn$ZI(ukNtFc^n%NGF1la246JIK*;usj7YlBVpBaQJf7CK;6 z6}yc}gZMpXAYW+s4dgd01&p$g!sZSIMqKM{k254il@H!~!~mriNG8NKGvgx{q`|c5 zGQvAQg4n!OPJ2jrpAwb!OaiPJETZm5@_%~>{*TSr#C)@GSH>4EgxH97IQVG?N>Qm4 z0Sp7NZgxZ;9=tOQf10U>d>kPUFF_rt{S5~_xg*gqtpD4}{E<C9svm;FpabO!S=jlG zWq@J0o<(;8b@c552Dn`&Xu&;WnfUS;^@9NpP=+8PrN+s{<OWXLeN0Wj_*Y#2=>cZ> zr=$4V?^E-imM#xtF%yYA!H-|NPszH~tIa<bZyhD`#AYq7yQ<(e?~ss^W-9ZL<{KK} zxXr!%{SsS>Lr8ltO3}*y03P9gw6gPOUyPD2WcB1r)DvhH;ec&V?6h+zb4fHNe_Q<b z=QbPbKlhlm+w3xg3I2<AC;O|fhi7CX`XXd(i_LinP6U_(-**LUIQe-5p(6;rqcgsl z_e+dQhL*6Kf0Al(Xm>h$9%$<Rs39yF<Yh`e@RP`%yYmN0B}Mw$2;FC0S}n9PCtm9H zxAjN1MJ3(+J8Cx4trt^8PLBz7_EIe}STa53#HBJ{1_)$+^P=y&t3)|+`Wi=@YA-MA z|0D7X!HY7X8#gJ$*Y+I(-)Pllz4!RCG+m}3*|or%5#z7zY!EkTdK#fLKoEvbd>ay1 z_WYPjtI)Id_MD`Fmeb6w(Wf6CI8CzKc$1DdmY_!(bcoC&{x*(ed?KqSWzQ~^Fp+(- z9#7)*F?rs<K`UAI!_zFf`#kG+S6;10X-2?qo*x;ta>Er|3euB$#*p(rHQwDqxKJGf zfSSI*??eAxC%r{s1mD+B>;E-;g=uEHm3)$3+~&Und)EtZ+z+P6s?uhNnB*Q1LJ}<y zz-5>2$1{6=%a)L=wJaf-6+`apl5W-m8TF6`mIBj=v)dX2m;$h*>K{~r)*sMhoA>$n zb)1JAK(%A{BZ|3m3<;hAzSW?XT<h9|bHAaADN`aZ5K`d;IL{S5mylGLniaWUT=Vz( z@4=+}!G{C0hpcfJki_w4?4ulNas`106hPVk_Vqw|K^6ntOnRFRCUyKN5JEcuYPQAR z8LD+QqXZkEV#ENb6r6!1EynjF<OktnR8D@q1~<|Q@Pp@pIdTbERUcpm-W_y&B0w?> z`L7b^Ls{T<ewdNz8z9@@_P}d^fZw5T>G@Fxp<07WeJ7JO=Sg*qY#<6DGi$3KM>m zcB^n`sf~*m4??egtrOMl|4>*@h8ZoKNM@yTdPpJM`2)1#V#L(@iQofiH9!K<g?^Kl zxx@{kz6r4zqLQ90ocv*?gi?F#toXR4q+wrtiogv=zYSBrM?dSy3r9#|-nn;q{^$@# z7LAA}Z9P#~X!~=eD1DB7OOs@3h8t4M-Tb#evlv?tv@R)zB$ZBxHawV&_&^|5`)PH@ zvsjpRj81tyH$;3sXfj=H-xZ?ZIFr2-t-R08J)DE~xExAej&FO`u+wGH+Oo569`WfT zHFW-8+ggO4%xw4s<0N~6(Zkyu5917ZZqmO`OIM-ZE~ng1gGKMHxU(_kJaJYbJ8FH8 zD(;o)t&I(MJ@sEbL#{d*(u2GIO$O_Y_nT^IdYe7l^<^6*wjK!mP8#<5A7aej%bt%K zlk~hW98%9LOQ|#~C`3&&2o)InI_*BiWpGlJ{l|NpD;^%jqy@EWnrwdk%H{GTC!o5v zGQ<x3F`)JfT+da;Br$t1?L%rtM$Pjx_hoZYD?GW^4kFn#;>g$QLOtb@P3GLYKCjvm zmnuJ--~PK9p7kab7hd%Gi$T*)I6uMP+BBmTvqnSLp1aFkQyJC2zgj+TO{8F2<#fn! zgnw!fTXv+_;%?n$IUSLkHs#rJH#+{f*rWd5E<mEjhP>K|=C-0hG>?R@_?@f=4(CgS zr!A#_Uj_Tz9JDUGw;QtfH_59R{inBPYY{b?(k^R_cVjdan*BA?xjg~yqzqNFbGpe} zECZZ<7zBeV+X9lYTy!9|fDFzifAj!=-B*G-R>Dw{o^a5VNVwQWtEChn6LiOo8wtY8 z-a*IyU?7CbXjDZPqL#IZa&NixNHRRVb~Q+r<g&v$-b?0;D1-Q%Tovdbc%=n~tB9-S zhFbI;fHK<w`(&m6C!|nE3anMxD=H+Y)ygcO{%H*ZF7M8Aps-$xhAh)dh_M;Q)R+lm z0}-5>C_)I;y);1J48Vwsu5@}p1%W!bkTGD7o&e=q?<rB;IR1gW-7YE+X-OF!Uu*@q zBVf*+S@%|OfP}psoF<gPe?wPp)R{z3KEatxdPl*z=w5~c;B{_-Tw|-=@Lrvi7Tvjf ziolZKz5->w<zWFafjKUPBY(mF10rOESk%CD<tphLd4aJQ{u)-eV11gQcJ`<nW?CSu zyXs4my2An>cB6p6uWf+QUI*&|j-!S3R_g7GX606)(dVI9GfPFkK-O$oMLWA8qYQUf z_S$0ET%ka+IrJkA!g0Fu_+o1-GT6bLmK9s?kcCXu>u(&f&J-0Ctoi*oVN%09>1f$W zDa}ulJ<4A&){Y(A^7(3m?mbMQta+DC&6mzNi<*D?9g0kIF)f>SX@+>&=u+@bbCYbF z?u&nBkA7s>q!%D{jv*-GfE~0~2BkmfUyGuRIW2rOQYm@Me`zJOFMjdKMScFvube|w z?)&HmK2QBXioD!=f%q!Tk+}W;%=Ya1gqIm28q5Chi!j?Vj8|33GLObKlao<jBXHs5 zP`HU>XA$jkc1x5nDd5u@G|>-jzD>>L`FnwhRzxbAPP&f^{ZDfHH2ym`f|^qW#TUIL z;v*=+rc%rw9dXZuTh*@f0ne7qo!N=V3wsiz{oi?0&AS6^Q|;L{4A%J#vX<^!0{6#V z61FS7dOyvp@lroxRs7W{(!KzZ+Z+Eb`O7-Q?D@1QZYb3y`gVgSFZCR|`1e}6bqT(F zj*q*Vo4<ur=VVzpGHIuN4JHUBgmFyu#dv*++6n9uU8(qDPkx8#^G^?HtPVwjCT_1C zk>}>1DQ@i$Fk;GFw0CI06HMty{HfZEW$RPi+nQzB=cfki*X)%dhA)D1=Kx9vuVJ-} zyJLOjV~A6o8gE&N!=SH|*u5|Ty9z=&U@h%MDPdSTU}97CI{9%WFVz)a&rVDw$%1*$ znkBW7%)U9WNqR{V$O~D2#f(pJ7`z8+2b7G4!HN#(RHuO>2DZD1P8TJ}^5Tz4F)mlU zZlEGR!0P_GfA)r+Ek4b{2Z?Q(A-`b<dLryz5YpA23d#-4W+%l|*(#w{t&xg=auqKo zMNP^}gES|51{5b%4E_@Uck=>ZLdFP4!vDPjLCpa6o)rcI^$K*F8bv7M!#6e*%bCO> z)|TAYxwm(LZ1fZu<FrAfS|b@q-VB)e{+$@rovY8PuIvE5Saj=KFbb->(I~-13G5HW zkSNEC{f>CG-${JtIYNKk0o>OD2%}^HFlQk;xh(L4dt-8A_2x`C77G>!9{(jcaLQ%U zWPjC6B)}#c{4eKfJ*^;qqd<4#3pRtwGa%$qA(j)a>$*VJ{s1?c>J#&>GR9_ezgsnX zjP65HrEcxrc_f-_1HrUdsdhQv^u&=TXVJ-U+qcMXcLtVSe{f=BZ5vp*+##=CndDw4 z1DM#Y=pCpjHm^HqF`b7@)P7O^&nAPwsuH4P$#y#+17$OFOE`FOE^usj^y}KeQ^lJC z2a7`~1Cj@+yLtC_SSWH|PKB#0c9__&)o_xK-Z1Snb_szCx^en46EN{Mi%=NEjTL;o zpbikh-~Q%5mC{@_n>lN4qeZsiM{ED9U@>sk!L64vcG6e?Q7(oGdLcFUcktEF3wg%n z*}-;(dPbTq?n3-7yb&GtTiKG2C!T(5FOwd!q$nS%qB+t>+2o{41ob~)boy5Eugef! zAW}RliT4<4z<O6D)T&p#RoC)K9PjdsLbr)U*x<v;?$^DRZ;NB^=HcYPcPW}KR0*=h z@35nL{@X5se(TO?74zoDiQ=9_8qf5tOryd-6PCY&ubqDu?|+Y1-RBSgGjc7d)q`@u zK=4jFI!xgc)EMBOw^d#e-=;a(C?a_2YwpFBogx-Q2r!?|f{DGYGlw!KsdKV)y-)A7 ztbM*2xtCl;5;2*#<&~{EC5a6EL&Wv07sCX@4pt=a25L|=#Zd{pMSGYMJ@bv}KDoh- zG#+H@x^6`<1SzZxfP=_7$#$GJ#Wl~B1Os&60LTth;uNGksD`9`&s87LiVQ>*kfMgu zj<-9iyxDNP6sN;RD+mE#l>@PyCi1IL;OGAUYL^|>02Hew;86)>ZAi+Z46dsH$!T** zCgeSv0L(rYF^dH7W%_sEcgrEmH2^Hs7#9IX^$=bP9bkbZpaQsl>Ru)gljmqwg9p|3 zlFe!uwmKb%7_5Bt@>o6tR1RqAgg+^UJf(#!gFY)4_2&Vh(AcK$ql&ctJkJ&}l))AE zb2~Rx8DFXM4binR>QOZaqngancK1T)8W8fd!mwib-F+HV@NYT9Y&YV&^$JH$;UdEP z@%c(ik{|W}S0(2PzbIdanN)={0AtW98HUT=6dx#lh~UTnK!silgPm|KbXBRbDXNm{ zF+WqV)=urhI^My+N-;Z%P+uAjpY{kKZ@G3bG5I$u{zlkQUREUbYwqwbO~J14f{~W^ z;-DxA)=bi;?NtGvu05a+yhPs!a}2@}Uz8Cqlw5jQb`3AT?K*foHxvfn{aAoGIhz|j zTHZQ(EunlFP;SHuSA2xnfN}5%{9-n^o@R^qGQQb~nQ)MtZ~1Goi+L#$RdvfyNKV?n z>kIOEs>DC<N4LBsh2*em)qdD!1mZhYso2b~rvvW<r5X=wd2i%%8JV|NkK3i(U%Ywv zw7oo1N0+(qh}(s>*uTQJAkmdw@1luG=~i2`pm>9ny(u*dBJQPpo@x)~Wloma9uNLc z^PJ%rC(LHR?B_^NQjb1r6BB)x)OT`RsFb7q+{51v7A|Ri2%evAmE3hD^3p+3K-usa zU7`JAar`yX?hl;%yOD{nGBi{^&~9owaDV*bWzr7D8Gd_Cmo_lr#^@hd2jj%^kg7}y zwtEenZq`~zS6)WB{SWBQmrlV)1-*&dCD~-ebFzHVTq_IRtDQm#(KoAmrRVt2^s{^q zg&KA~CvZp#IOePj+=<gEx>w+~s>{zx5r1w!*sE?rZubq5)Ohs0hl{K&t2`j2*DNzg z?XE8^3>PSg<6)6njxJ>Od?=2jKZ72pfTIW}qzWK#EhT=eH5jLl|D%NdkhWf3Ni5!{ zoV(yMGTU`HQ<n!0A=X#%&(AclGtROs+zP7PxYDc~Z{RVdn5EDQ?Gj<91UVt4R^A5p zI6J<}qb47ID#ORlSiSiFP@JV3UXijFgeyfPfk#`b1REI4vaBjj_`o1=o4$Pk(7CKy zQj~!o@Kk#}u7(25-w2@`DV{YIdOL2SOU^8M_5lBSX7MZ?Y@9?26w!bBu-efOpseNs zRO=iE0KJ)k9$Uc^<Wo6;7UAR{3bvO>J+@N{kgRD!gjL|u0%_5{;=f&BP)lPYDI`pY z%&4@;#D~zj)K<(w%tM8ItdxbIyc^X1-pk|q+-<F!XgO{qfa*pYnGr`sdx5Z93v;C{ z8wfoD6sPknpKOP`-e0g)C)7S(D>H1z%smNFIP(ng7w;mumOh!1M#DSGIvycYP3!i3 zE2}p0cXR$CRv^IF%k~mIdWd<c`TVXs>E_*4#ra@a_!?zq03Sg^O(*tP@zJrO!E!?7 zRz2URx$1Xkjpy3p-a&!iN&iz5=-_613iPT*H~ECd=t3{{r^)kl^=k{p+9Kuloo{#^ znV^O}mgLN)JrlO;q=4SX0;Ux5t-Fb?o$u5kb|j1=>@f|z^CDpmw3F(s)_#eYw>=-z z|Et1BWiQq(F|%kpRHEwiM>n}iJN=E!q=cm8>F?{tiLahtNXWd8uNyRt)_c!Ek;PD8 zB08KsXw$75zMIGOk@iR8L~F1R#m9HHn*4(aeHqWyI|ehdSa{sGNKH*o%B4OG31E#V z$9pwTSsN|e5}?B6Y{E`yl<4ycbm#Q->{IoGR{<duQbWv;hnHB04F6xU|B9QYgrxjJ zKkxF#8fe+Gu#3B`nHhW2sdb;2Kri3Z+R|}Q?sSE6nA{FHj+*GK_Gpb>;-1JiB9JT@ zQ7~3)<ERv+x~b6WkujD<KJLxQSg#e|!eT1eO8iom(BW&aY^|sceMtAat%R<>U-zPR zRIa<-7jE@*@_RnM%dB%S`Ttlt%b+OOzYFiujfB$ODM<GsA(Dc$beDvnG%VdE0@8~T z(kV!bASk(XBPA@Ulr+3I&;Olq9EM>KKivH4I_D@Yc)d|!-*2ZKR#Lny37HPUc_P&~ zEXQ_Rk{ySr2dCF|9_Qsu@IHV;dOzaa{;!7xQcZaElO@t+t5t_3ks2gDzGeomt--SE zsys;Pu7?vN5ijW+NjTnmAB`A)`(}8JJ+wne?Pu{LDK2JIgKp;QoM-<n7swY{fw=CZ zcb}n&@EA0KgkfgDPzq}?aX=jcnARx_2hhmbWdbI32?MO@L`LW}Ai^D>qbvW{3?5x3 zA@HwF(UJ!e)W}L~<Z=xlxp@OOOv7lv9jW7OKBWjG%l{)3=?<%UD`yXFAT<+Zi`oEP zRt=%$1+UU}i~<P5IC{Ha37iS^LG$;rZZh=aP8^y;B@O@6wx3acWn@6LK%0dIAOxT$ zG8MPz2%%^8H-J=rHGm#ZWGpV4&PH^kMv*~B?r|Ym&|wOHDsE_u?Q!yJrCvT2na~G# ztFZ`BrjFe$9#juwXrf&h-i*|2!MB7iVupb?^z+m-IUcwu7BaV5mTzrGOYd^m-IH;+ zE75w*c;46bjMB{bs8+UpG>^U^Dr4I82d!Lz87&R=UUF=WiV6xC{2ogfJ~lU_Il~b} zMqnTRox7;1S$n_0{kLIrpxfCwLh6YD=4ke*X}nt_>sJI_WYEm(gC9za!w;hv2Yx7^ zz8qzzyjZS{%k9n^l(_82>>$*(VId%*QNr*h`ZKX2JX+oF4!MA$qZ0A+wcR(3l2DOk zisj0N&5_^xp9T6o##ps$6AyjpxojJF{hW&xrT+6zbiuovIDy$W1fzHj>;GIy`|tl; zeeAw1o!V0o5ORG2G3%vv+A-0s_9C{h-}K9@WRgv>JU;rN!t~nlnXc0;twb`V=&4e{ zW%@<%QME=Q4o~N{C(F$ARg8BwZ}d`mAwgtgwiYv;hpM)ke4zTQVZLj4QBGDJ-if4K zh<6Inbc4k6ps-HcfzqOf=!%uN4Aj1BekEws5;H8Rc-}#4gQ+ghtl0*`ZF4&%<byrM z^*&KFlbz3#cc!n4JyIpgz>Rk$7~>;LmHk8YY#?w<z)L|*V(?3JQ|9m!pKgT1$i#r* zQ(^motNq}{dycUxB`->t%55;%e)*r885Pp}7LCUqTzIBG+B#@Raq8=-w3Fz*oRUGZ zsJ<?JxFz~oRpv!q`+&_f?Ju`L`I2rT>g&J{-Z7-GkErTWrFii&$_Cdb#S}KkQXI+e zg6f$WXm?H`Qz*XCXmHn0)pw1V#Q~4<7jak~@ZadMEv3Fdk3|r|MSp|6!;VNA$775@ z*7Mw_80{^(;Xpa$BC*9!tMQ+R0yKS)mRR``feRKaqz2{j!B2&mDo!BU+x0<$A&RQO zNX>G#f&koohBPc(A-QxtmFL9H^seXSpkCcj<l(}O?%+Cq7c@kzDj6iOgA-W$-1i1N zLsk(zY^_fTkh8_>K(ab<r`sDqb4aHY0@_sr7jFLy9!?Os!~w(-DBwVaju<V2ART08 z#UTxLjJm)Ow?Q9$nnn8Eqz<@0`K?mI>T$qko9n`b7oP_nIU7NnOB+$ae;-~<2{GP= z2f%?1={<O!wjd@@!a@;~d&Z`L<gh>5DJ51mjEWjS3;wta8u3UUMD~GnW9{yD3Sx0f zV1BDJS_n^ZAfd@%vrW9(l3YD?CIy;7>;y_vV}r?~4SDyanU>i!t^AOClzxGK*RtZ` zm?kKx3H<7RJmn-YDX6YYs{UNuG#7>@L)<1K+$!fUU>f<sK4vuGr0cUt&)=4wi@%Zh znR1ebf6OKJsE%6#9vnAgKPOsemEJiSwr%qw*%e=~*Fp=I^nu9{du;r+xE*rebR?!n zYM*5$3-N$u56~E$efDDUdOfphi}o<NcBnPjrs$38r;vgp;q}j^<pF|Me^M6>0-x1< zyO2;VvupDc!osY6ot=2dnY!xo%8qY&PRHaa#CT`-{lvJ+s~^igYqcUJc5#MrIM$t* z#h>h0#&BZ0>)tdO#m#%l5t4{kx!tsvT4Jmfvx}6@8ydEs2%|-_Lq9fPl{Cg7&b3nT z-IZCZ6qDSUXz-36J;0OulesJ^)-yii`-B~LV^?}7OE@iObBL*#_HtY^l*od0aPGju zo1XB~Gd1cwXCmqT&y;J9A59W<2POD|KQPi$s!^4kv&mVhX+C9lA>w$vGWIsyd`LxW zNDZCH^GOr?<-U@zqC8aZp-Ka^tH64_MUrRAw5&I_+tNDr=;x=Hf?nI(rzRUi7Wcay zj_zl>Od!{V+^|I4tQ9Nm2m2VBW|M4vyiKjWenl*)sR2cUaV&GE1f?)p6j+PNXWLjE zW!_PDHz!qU9Skf)RaZb2yA5JdTPJ~%0^LDDB_lhbh8_mK<lSv6XP-PqJ2}?1tP=9c z28Z-p`CvncDQ2)nDt$M2Spp9Hb#Y{y-?abunkr}xRmoA)0RJ7YNuMzW$VEHU;a*i5 z8mg1s7T|Za8#<7NU7mLIK`6p`i5Xmyw41<@={y5iGnA+_(ZlL1E<yIPGeCxRoA6*f zu|q9!0&wN*PwiOa_7Ie7Q+X$^4kULdwiIIA`UDT5-44z>-LLQvwSfQ=3I&DhmYoYO z`xg`B`SCQTf~EO<c(za?(PL{Y<l4b|Xv3KOl@TUFe)2xd*)79%ISwR5LGREb_wtmF zsixqK=7t{iHwZtP!(O7ZKz-t)d5=;8P9!%p;)dveCql=d`ia{WtrtSn=cKd*8~h}J z?yzV5%o9jE)<??TN3NTs?*@Cf++I6cpcsAM^vp`Q5d;~o>4qDU3bw5WNU$5c;II1p zw*>!T@KW>meDnPL-+qUor#KXeqmw5GB8oif<WscQ->{6oK^;DfXp-&Oj#}SJ999?= z4<u(|C(3&B2hFtx7=H-<{(bo(3*(UNF*YGVyZ;Q&o_KN;QVWLBepxZHf>THQY>W9C zK_T18tFWPPD1A^%V$b50vt#tL>_d;0TetrK(F=dMDbq(@kqKOsLm8bf8JANe0Z3L5 zALd!g#c5Md#MsPvlH;U_KVk(DN0^~|5=!ACXBBz@*=p3I8)}{)CO+0Np;bLdQ;mCH z8fzYVz4~Zk@)PfDE^O{OS=UoTIkLCM)a&cUN%vU8w0Yg$@;JG#QIfrQ`CzKO*hxQM zr#k+noJoPDbTCz9{~OAol19>A;-+v1i!QS|C*5w867QkLXf_G^3&pd6AD>EwnA|5+ zyfsuJn$zB=t_r82b2L1#*FR3&6!h0?tZMPEJgT1wDg0(Jhe?;%tek^>QXV8qaP^sp z`?x=}_6Di)y;1w$w<h$dVVW3^qVF1Gs>PcoXA$NF(S~xvam}mudRsGh93L?oN9Vr} zcTfz|scqG4C=6y&plWd3>^Tl2w*RrTswbwfDZ*edn1e|)zN>B4?;~y*&>0~$Q>s~# zisoR4ya<rar}84hswDRz5<>aip?Ny`LkOzG_Y7b0sXc@#<Y^q@eqpKoR2F9l+j!o& z;1d2M7Od$0Gr_8`LW0V4v2y{=wma<wTCq46R!XB}9y)hIK2$>h#$DwS&hUHjH>o?~ zBha`WN^^mI#cwo}kcSZoT(iEN4--aHzi|#}c;v7M@+<+}cOt5P0?FbL<$=ov-&|Ed zTKWZA@L(k!%%BgH$pw0f{U(5TL#ydw&e^(9hc8;-FUU9mAQr=*!me{hkoMNrd0N=c zeSj5wOb5=64K7IFlxhzHPX;KoVQa>~5H4TE5g>V=01mO04r<YJ?sQ{!ME<~A#uE^u z5C+IVSBRXmk*R6gXQD^gmzV&Gz#_7%ro1z5NQrv(FPiXMWW?_g*pj<vFHp<siCOdQ zYL``-jQ~4UlS`Egg7bP>Uj4p&BAEaFAQ$$eul1Uf)ba*{W(Mm;U0iKXTKWy{>E=+_ z@=g3q^A6?lFp!+a{PU<!SPv(?Cr`{@S&K$pO#An@yUIl*eqXLzLyrA%rKoHl_OO|? z@uz~;4B1rF&&}T>ei?E*CRYufB>DU~kLJQ0V-~w*<Hg(NmA@i2$pR_gjrxyVd__K5 zDaI#u2rC%ynR;F;M0vcimKgcA?no{vEjRaJs8E=a+pk;U1<BnXhpNnw4EZ8LnXO-M zAbvh>fhs@llbF4l&M_c(-#<OlPN&!v341|a^itZ@zS1u2b@%)awJuIVst;77pFDp4 zDCXpqrutB=df&YwHSHM(8E&ct(y3?-oTlgHZH}nbCT8D$OWuLuPQF`{6BC|zLq$24 z#YEoYl%adXWM&ZAHU9d|j9XO7Lu@)tcV&LvpMc1q4U=*vmCn<)dlql$CCj$qjJ;DC z_T=rWnqxVpwDzZAj`c(xD97B&F$qn9A4D9+*lWjhHZ@LCH?9ubgO&Csg$cC;N2m!B z@e5JQ>LOZk<s9hFCI7ql)p!LT(wC7k!Z`&2Z5o>TjuxM^KN=i3n25BbRNpvrAJ~#4 zOFP#q<_i70tXgf})~q7QeP?+3a%rXp?{r2uk~n>Yj!2PMR0^i!qfC7GWIfDLoF?0c zfKJ3BAt{Q=i|Ut~#N9P0{;JN)PM#%^8!O>MjO+uk)lc@wmep4Y;&lXb!qb3|0G>L( zufci)>OgMh0lv@(0OAD3YEJamP>?V}^Uj(rw5rdELkYvwZLm`8Q&HTVV5yw4q3az( z2>ufpFlXhqb86-QP{RF<KIEn9wG=dXov8wfw0~vG4q0R+F8F!W$P39G+vLVtyazk# zkY$96-ghQKq|FawAe<jPu!DL{&434%T^JgWMG4Dp1c>W}mjODWSp#e|r0Ip=!*4W; zN9JfmURdBE9-4QUU?NuLzuwTako@}vLVDPq|4#r&90Z)V+fjrjK$E@-{y)OWO=dS^ zL}$80{4_wj)L4FOl%)n0#=C>PfiE4rmqidFOe@OBoE|z6P<OiJ6<ZI-2y<YTHVE_k z2&S!zGs0GI!hQ5|eZ=U3;1C~E7zOT90|Au6<=R+pnakW_&>S3UC%*tyf2BUYE^r`4 z07Zwm`9OZ^PaD5Vnf9rJ{Jo#Qr`BWR4vJ0=ey7*_7tctdT<Cm`60#R_=i6&}**zw| z59coZ+jEVUS_G0Okp(zO-!Y^3D{&eWkLDqPhS#5{5tAz)V>CzHxWVw;At`Nf%E0CD z5lxJ}F5#PZfDjD%(lOP3oLMrGAEF8x#m(<4R;N#cPis0)CzRaRIjxQ?u?eW9C2hC@ zwp<Xn3a7M@vhfhFzo@_aBlF+YpP=4pP~e^p-|mK?JTp1tE2TN{GZh_iw<E%rRh{lh zcXTdwwu}DNeoQvf4CA=(DPXKq>FiY9rp;+z07)=0GADlDXmU3Ho^6D!{^(xcUsULc z&sS3cad97?FVgz`yR7M*SdI64DwV=8wAPvHnSF+)o>Mqs$A831d#*kbFtxrKCjC4& zjzuW;aU0cf<HJim!N4&~>b%1zi=|!BhIxWsT>eRPj+HDJvm`Ya{`EBl79Q=9_pLkP zV3c9fUaS@lxc{(|pIHJ2Fz-ZH#EazRj)v<BXZI2bJfc<#{o?HKkZP8BtH}3Vq#=ev zPgGu0?kse};+(>Hu;?cMS~{NNz>=9%p){CZ%T-?wk8VwU8dJ(DNzKXK!tY99*AR*A zU)SOj{*>MEqD><30H(Qa?TY)wBq>Wtfa4-k`wN{U^Z4e(B<t$;TIb}h)=}T2z!|z7 z4oP$Lh#~&R*hjD9qSzvp)pJE&^l=R*7Biy3tL%|RlHJlCMg&>s?6+6xzc&Sdv1%YI zJpJ3GAy_Kj53361^D|PW1@w7F2d@l`rG^{04xRUW<`tu{^t`K%C%?mheQIp;abgmV zq}sUV2b?)j>T(=NyktIBNXieqUNMw}yE2CkKky_rNyoV;L`PAVA1ARBuK<#wQ@TSE z^0KiFyhuqmUL1ra_1`Y2@U|Q_Jbl<RPgMbO{jzETd^;i$$i?CBfgIf$ELaK09Ps<i z24uQGU=<X(_5rBeRXpy)_1^<67i^OpwqvJvL(ozd_!9yk2C$=0#6w_*b>-h2bKGI* zuU_7qj|5L;$BR~gWH`W+*K~pc_&S*;6wM)^KO_vzV01I6^C3ue=j+3SR1z)LNjBmF zVB)M47<C&bs&J#95jEL1yf@}my`H>>-mYdl>_qwvlJ$E8g^n1x!w0u;W0OD_X*H~T zr4mY7iH-%*6sal_TR)BMfosAIzzjb!Oh2KRK9J~Wpf5z4kyYx`AQiRTyhPo666%xo zUYN2CSNNra(T$631e-1+{I9Zq_pQVML5us6gT(m}+ver2b)et))50!9)1TK8p;zbn zG$@He=C;Ya1t<UgHnX0&o{{{eJs0q2!BwkG(eG8cNb??VK}ss}`{KX-)V#QESu4NJ z`g25>R!rrS#mXpowmsSp=7gta1QzI^7k%;NvD7@OyK2tk3v0L%{bL^)sfHCn;rX&h zCGM;{(+8U|i<KE$gp;`ByfHEiti7kxf#MXSLxu#X!?z?E@}iIba(#9dh?%=5Z$`}n zlh6He-lbho*5+AP{Y=XT^Xd^=+0AzTc=fG>NH1m`oVro<y_ZvRc(={$I;tL*0J>mp zg1`TfR^sfn^qz|>X0zS>%5tH=-=WR#Gm0`SsS{o-1r!C;bH5{??(HMB{@BFFCBf@~ zYu5#PV7UN^CmnZx>3mDK1M{tyXEK|3E@b&iR^7tkO>-L33GrM|Z~fx{%s!S{mrpx2 zag06)&2zRUo8`TVE{(0pj|3S?te2V?J8>E^&p*4A&JTsS?8&*%@sm`^GmlcMenO8) zR2S%XZwmcF<4!DSGpm@^C)~#CBGkJfI#;$4`z#w#A7iiLd&ymq$>m|&jM@D$*Fg4V zPa&0XYqDtu>5U;5!@kh(+9xbBITRCKcH_U#rb_m50C)S}5I6MzAhd-9lAk{SV-?Rh zU=rzRRCV_XMdeBiY<g1e%Xg~xm)&`;Hjr2Td-WgtG)@S(j$b7>k}{XY)(i|JfHa>{ z4Y~)BNyWKvQYtk*RfM3Z)j{B_$C#-&FtPAb-?y#{0XW8;<x!>I*GVYqXmiBAsZAX8 zpG5p1lvnO16i75$0jqIw_k4W8xy+#*oXZ-C^dQu<|G;F&bqI#cDUfdDJk`Ywk;zmC z)F8wb=plRSAr}`XJ78UsHi+i1uLiaeJTD;)jbKe8cm54RJ<X2pumv<B;2U9A0sj~5 zV_;#ixN`!I(!lLIJ6R6wUV>(!uz`jEw##pi2!O^NNw;R!RZ1eCuZ`3?rUZE`EWmL6 z(Egsy?(|lQ3_S8SQng?dYV+_tXy0?JW~0$i`sHj|%U~U2lP0%@w6Xg$KaL|Vl`;NH z0!6^(RS>w3wO6n9cm^{p?}31%N<kbB<wbhj!Q{!9``Y%!-@`d&rigT0h{K<=w#e_I z(qTl}l&(J%1>pa*$LybNeTznCrQQc-{CVW&n4oW#?Ul6|Ue`QZ@Et?<R{nDC%{E6$ zb2?|A7sVT4Z!RH!{Lj+u@~QVut&q3ush!XMp2KAge)Z<i6S^2jl4r`!ZzUO6)G=O{ zSqm<Cd=s=i{Yff~TT*}@giO>IACLd46QchF?i$j}xul9wNjjL))Ryq5?!0u}sQcyL zXXerjwLV6KDPeWuLFlGJex=>$jKI67F!JW2Qw%*T#N3Itc#hX^kq4%gA~_;v4Q(DK z>Co<{!q^Bpc{FX5%>STzGnGs6Eq-E~Jl;oQ<Pku%)s|3=e*!`rvwJaZ^Tj(tJR*9e z9`0c<k4U<qQbH+!1tX%qKmMD9UC%6$o;CfujS+vnDQqm9tflXDu3NaYMRw92Zqa5G z?v>Ocm}D{^|9vigaBy&FV18}g&qICoMeRE3ce~~ajf!iEX!28@bCKJVrWgs0HYxnv zgg>eQ3Gbxm{xD;Hk#6j|l6mXaSGAMUr&hXmGPgbL``kLmZ-2h`bFWH#!i|^+&B{WV z@yqexZ(nq4a~-~asMNtH8G7Ghz)HVP?_AhdJaU!xs(g<2t@0DCl#%e#C-O^-<9#d4 z{dw%oq*_0NFQ`e57YK|s(t*HA86&q?;oV_xhAq|IVXbNsG^Ai{$wa{;vg%{>B1`B_ z+sjRQeWQf53%euX3H(Ta0;^9=za$tKRT^1%yO@dtg2A{fYqby*L(voM7I$F7;&}eU z1+j?*3|>fPU_ct;?_q=q*Y`5~d=N<>8S&OgvmFO6dV2uAqUF~qF{1ehcu~yx0YA#Q z65y<-8*&0MCI;IZwN4ojVnJMuh7`~Mh&vu9P>^`C0x4FJC)k}l)zbqacvr-mN${vV z!R};_2Eu24XDinGQwNeD3TWLZhyWghPXufaXRice8T0G>fG`E$94hR0C*TFQ?v?j| z@~~Ib|8sf?LB4W=goc!O_^N(~<rjStr{;_7l_v}-tA~JO&43^fs(M~eUYdmFP)h8C zgG00s|031pNub1WQ2AXA)cJeHr@{RqeFy{*n@BMR=b7!en4NCWOiO8E@3B~*3~!{H zsZGRTISQ-t4Bc_g-D><6Sai#;NXE12aD6<EgQfS5hcl+X=3-~$ZqG(Nhb2{2X-TIk ztGl5|wr&m0)8Y0NxBoes?e3Z_>AtpS5+D<7rn)D@%*xc(5-CR)&%ZuG`hr;U1#!!v zMDyZUCe7&rN4)qOVpH|~hBx{D*ev>2j)(dE-p>S1Nu9o7^|;{x2$gA~(8F9o;R&Sq z&1U2V@jJM<WOf5LW5Ksdy;9W_UY=!wDLR&>f@0=(&tglyM2Q4)e@36>#VKa*+bJck zuDh>K=cFUc(uXyMW~prxmf8Aa+%S1(^}c_08qaG*TUWC&by}s0YJ#i-$|l>-QOXmJ zOLdzDHv<Ys1aoaMBbw|+VbShy^5%74r_dahM~@p_DHaaywo|G_f1m4pK6A?UA|I$4 z=Q6UD7Ik$}O65LrzN$&udg)R$gvBE0OECOh&`zX=n9q6)@~TRyRih4A73LLAnO{v~ zVPD0G#3vA#n>X5Cm2wyf%Kx=G(JimC7A2KO%P-^{JVH@E%^nO_-W^PPn)btQR+Tb` z`jwC$>5%bBeM*;K>0b@Ky+rvwf19UYY71&iIX8v_m=`EXO>yj=HgGu4C)7v%GI;u7 z;Q6zqii%0ueEjB;qGD$1jg}gVTq2~|);pys!nU8+Wzo;K^&>-}>l=2+D|9fR<e-R& z6aU*>qQrD57x`U#v{{DCa{p^LN2#k-Fl4adW?W&zR-we4p~H_HDhCC@qhq7{Y4{na zN5CBUrf(|Z4!wf(rT+dVNCw9;yb?FLD{d@Wv$&YZIB+LVeV2!l4)?$RTm5w=IxIhF zfE0SX`Pr5TLYO`G9ojJa#~*_14;GXG^hSc`_?`2stOgLO50zsh%K|}fsT$-A5gv8} zm+E3ln0H)gKB;;>P?XRQ00Ms)B+%c7d5Qr<K7B&16bQdSqSJ{D6lN_&fRN7w-RCLs z-6mh&|38JjIMs&(j}jdSAw6GIFW5m&gD_1pj8hxf3&&uHLn$u6^FNRjs)A=|!c>Bu zjpl&`*Wa%=&U~p1a7RVh4R0SPm8DG+@<dNwiq*uLu>(!ygc;PU{R+5e2DK9fn`FSJ z>oIN!C@*x*XwAH!ruAfsfRH~f#fehF(Aq5L!$wqBxS5=y&Rg&UBHk~#__uD3Uo&W( zKFoVVMlnEXW}39xKZlyTK(*Azrc;`jWiM^3%S66mz0mhR(zM@BC;%nVku%pnBj;c9 z<(mCs9REcIh_Y1&oYkphwrmbr1F?mJo&vf;l-!?2@BDvF3{osaPjVQf_5=2ZID6(t z&zo4z<guRv_wti45NtMUz`y+CV6n5Q^YV16>2~iiJB((eov<I(9y;P=^>qZF!6y2i z+7n})(JYGgG!KC}9tw*m%QI2J4%XItd1W}Wg3Hp-12|5MUTIoLxK3O3Z8H~C3lgCS zeSH1k@#iT16ayC(x-$8_=V+)iPSq8A@z|g+6jb#4s~?9vG0dCU&dfV{Xjxan$tVOS zKgcVB84YGpN@h==Cp3kX){Oo<G*G@Mb8YLroOzn9C$-CyFU}E8L`JHuV<rN~hB3SG zm-l+(zy0PY%sNtj<{MEGiT;7YW4ws`t%i`W7k-E$S^o8%-lZd&kC!!m%~M&%boa4w ze8h~&%dq--fu_N}A2&iC%o^yP=ijQSxRV7~bKR(wS%X5{_b|0anyc&f=kLArjP;nr z_DuU?f2cfY>{n3abS*r{mFTCvJL5_n71%y>u+2>=E%XqInu&jE)*mKGT3W3#Ntu)w z^!xLSQUo6y3)sWl-ee9UvO&0I8tI@DmMI%BiW!o7V!#yY3P3EdeX&AfvGB9etoU0X zPiAp8t&zrm1?F<(s~=<J`h^uz4AT<$#W171s5-diDsWnw9gf!l3+$4)1{iyJ60fwW z6U8s?cZ?Nt`|(<RNFEK$zT6w|S+IGt*G717S##|N-YaKq@|nQ(FCu^yt_eKMxflQV zqa!6{$l$%bz^Ey6;~$`Z1C~!9)I3uV2inlxYtUeBf(?vNpe9r}FAFe>E^&k)H~B@S z{sY(mG*p%bk}&5a2K>ohD_TNiay3C^@(x1Ub3Fo`rh2(OCPY{ic!+C=epQ|f0>&tB z${@zos$lSggW3jvg#-4R>|vXDCeHyPzi*KhBDyd;3$E7I81QsH2uvXoXt=0wY*`>v z$*-I*<kJkoo~%88knU6ha%IE{E6HKyS4PDlYqn1%0)FHdG-Cz!szg#NI4?aW2mgdP z0Ka-uHeUkfQ4Sp@m7nluS~ya!1;@{RovDqMSHy;h@wLt8mER-iM&GeH>r<uuSB}<O z;z(gq#k9pyS0(wVYoC_n$5I#4Esgsc5}L&PQfXeloQp(yr>FbGSVQTe2A&#<zf$oE zy3+k{-5$4<+ZaB!$rz_k(vZ|%axJ8VO<EJ8{Oa2xB5+>{E3iah6)t{ZHh+ZLAGRD( z%j+YhSSU%A`_oC^;zP!qjLKl*zmiTr+xf*FT_2QLUyaR=$AEh;w)#d;=CrC%fSroM zho?AUpljVy?ZZ1}zf}TL_sss?6AQV2uIZTYL70|J(jYAd@jNuT$A_GC;2EV|g);po zMPh;d`CzxF<Prp8B0sYay;)6d3}RsxX|uk}`pEpe!NMM|Yg4NZvvE3~PpZQok3Ax6 z?n^x){f-~(IiXXuGq^?$qbU8!=)arpHYK<J%&zfOGCbs+kZ6q1uE*lSQiv)(^kEc9 zxoe95XGJe3QVs`ErWnqnkD>-&Vjp>u4!nbxjM>R@3OEqrYnlJ^d5+aJK)dGQ@?j80 ziLPq<i*)YbUJJiK!+E+!PC{qY!Rimm+cN(5pC=<*f^IwKjp}$Ub+<RXK0%}xS;RU{ z?=>|O`g)6C+t$bQ=FMsE4}D2mp$$<~Q$%zkZf7F8J{P9~Z{PLSSNwvFjc>+SUpGZ^ zKm4ehs=u9gR+CYU*&{ThhC9yj5;waxc}Yb6ua833=x7BepL^_cQ5s0)L(iuvn|a_) zu7fqC^>52+Xb6M{R9#5mt^N(76#h8#n;NvFsIqfU8<w0f`RP{OYRx+zXp?l;9>G)q z6gNo30uN}AhghDFScwC!;bPtsGP2Al7fUPuF(stq)9R0@4(KvsVO85r3<-qCw2+pL z$UY=ii<&L)Q3D&<b08Wk|8%?nB+c}o6P31?g;e^0q>UlQFB0&L1kkohf<-C1I6W?+ zs2mk5a%jKk53ci@;Hv(6g!*oH1H+&GAR5Z=A_vW(SsgHvblMZa=*hb0t!NIPI4NNa zw6uWlay+R>rhEEQ9-JKn`TQ~9Sc6J*e`{Vsgn{8jgD}vFWm-UhO2vfef=lSPB`IMv zS>X(YJ|)Os?z|87E|2Zd4$G`#XcKj5tZYh2g~4G1#Na@vWk7(|tOz<P&^-PYtE^0U zQv75WL{1T&3k3y*a;-%d5`x%gvl2+l$#;&IF%RXGzMdM%h<O=Xc{!SvEH+V0w{7-H zdLe11=ffDnFrz%zzie0qOh)i-J?PjC$QOa+vW4RJ6^UGJ9S<vE7#$al%bd6Eejh#C zZn--|L;}YEf${GNCo{p_znQ!|IMmgXlWSlj?h(pgN&UP$=>(<SJvL^)9-!<4Ar5Z1 zbi$*pBNtEwxh)CIW2T-_(`W=+j^45JCSl-y3CWkEb8nWu+*{dmpfDrt`nXo=ohZxu zZG|9;vGZT%g{t_D$N&kP|11T#J<0+ke*AG1PfDO|-s|F6@B0Da1pe<Xhkqk^xGmh{ zy`zcrCx{N(@M3o>W@~q;lW`33Xt#ks?PH9dV$HgxQM5mW8Q%s`gr^WK4{{Ybl(80- z*Oh9=1ox`|etq6uk=_;9D!Kb?p=Yl_*AGe~2imt}egu4$bvV?dg!nk9E|GjQSdfi> z<zQfm1J#-i9rGEMqV&WUT`BDMId7?JI=DMmCukCB2r9L+R(gNlPv}&1@*NZwz5iDk zKxzvvDpf1Xj-<`Hui`A`ve}tzW;;e7dg2G4jFbw>Z+sNs$+GeKb^Ay3$-3aRnrZCg z9A~!CQLe;a2?9>$=pU{9Q64xW9|`kCDzh$BodeF3xCVYEti;sAm;!S0i0H%DIL|9M zMyJYtmmKzgwm;X9z`!Ih?Tw4qR@YD8ze*J7kEphiI&@d~ccV1U+R4)?ks=nukFgsN ztM&7_5@FbeRv%Lt1OkUVRg~9d5Zx&G&P~}cR{Q;KDip^1G*kv{2q{wo<+DI&A@9z{ z5R0ZA8yqzte6}3?_0%4;T;M?hJE@kuLg0l1bZk6f8_YsU%{VQ1E|tvpSAggSoB=6d zlc_*|MnGNU6uoaa3wy{JTE#VM5G_kYgTfS<(@AWb`9%!h-{>EMdX)*8K7dzcD2+f7 z^+D8t!Mt;IuYdoU39c#cP6kQf*aY6}8Nj=cKXc3;&?tIf8f`n}2JWCmB{Lutw;m66 z8t@d_;FJS2Vf(jy=3p|k2GTNq5P4YoE)T@wu24ZLi8t{O!~r1EW8}5Vlf)=PEaW3> z1$=QjRUi3$TOg$g0CDH%6(4}bS+{T4s1Qi}7_j?Y2x=w>O5}S1jvwrRH@g<IVSyk8 zB9*7)KQAI_)4)_JM+yZS*pOW%32_j_6G59O`2m2OXOzd8(1!keASI>yiFK0pBop$D zsBDuVXTACQcgbS4+)mK*o~C@vsjD#W;2V#Z0lucz>jgq>d2F;^9UFlXZF{}Tt6BBa zXI*_sC9S`LMd30HA2xZQ%35uzEs!DSC3HVik>Q%~NE~Bk@w<Nb3+eh`ce!(F*wo)F z>v08Q#BZ_%Do5NB@442b%T}!msU$zr)+GO7-?gB>zbJnZAbkToO^Zvs=ShorFKYg% z9P?4Ey`X<8#of+cd-R2)_H-e{G3MGp0YhB^0gu#cz-TK_xFVN@B3AJB(6~C=Vjr~W zu^V!o4|R%4XfFlHD~07NXC{suP;(;m`ucZqVdIXh?dMylB|jY2(j(H*3bw~wMaO!4 z2M_+LhKxW;B?z;)sWSH@8#Xg|GvC>3MRLCynp}M_Q8BT1fd&0&fabg&-ql1+UsuM( z9u|imaSMaltxMlC@raRor2l4xSo-TK8q8kg2SmMSps{*V>_?9wEsKzT%-7Gg2PI6Z zU7wRG%<7JzILU&4UA=?U@Yg!><O%B~pDT5rtYc7>J3RMHb=E}hW+gRzRNF@gJq_dT zTr+)pT|CR!g<yG4@6R@ElRO_xGiviDV2UYyV&iOAOJQn`M(YSixD!RSLFw^xQ$|R! z>krgWyXN5C+5DH@NJ?~p+4s^;YMe2m>N%4;k?W5bo<#O?hq?42xMmu9IG!hb^W(X# zq*WBe)*Ck!(Xis?=wp;GH4Fw?L-E76L8A;yrqiEBdDT#elx8NC_xglF1JfcO1oTH8 zqHtiq;d8edUz&v9s>c!{jQ%L{Ex6c&>p<-4+xvnJW@az!wv=hHkd&_u=;OtmD23gE zjb?FZ9-(pzYmU#Zqd~H1t`6~0_U+l-heN-`fo0<C)V3lruGM`)0L4A%S7#y)ik%Q@ zq7k*`zT$ue)T6`@Q*(VnMC&9-=8?QUt>uL*_GDNCVNcjwaBP@O7z9^E6=&d6aN<IQ zIH_%Bg7^NTL36NX)geZFE(eUx^L$?T#zsGygNP+?hHnQiV{Qfx?tw#cAQpRq2157@ zjGYH!29N}5;3p~yUJDw~z42uf=1`*}JUYl>AB8yKQ|Wz}|9yJ=5T_qPy+i@53=Dy@ zo4t#x>nfGuL+m|{EY^GTU;|_}I1?(ob$1L|c;QZFeM|Tw$Feu!$tpR_nhN4@Y>0_` z#tE2Dn}nQH9R>~7PY~+X<m(S_5BW@f9K>jZu%O#_w<`P|`8cYwRX=EOel#`p0Mg)@ z)v=I8IldX!wcmU_SrR=wolg{GxD#|q^?~Ey+ELxR<GkW%&wh=ka)r&pAv{CLytl^~ zxWH*&QGWPi9ngON5!r*r;TPU5whMbibXNQkBg42Ck#QP-E@{7bc6}7&i_4Xu&G9(L z#inVRZ%y)R&6ARXT-R(y*Czq59&}`rF?H&E<=zt++|9OwLb>*7*&`Rkp}h^uLI|`W zL)sb*Vw|o`0?gvvjx0BK2jm4-ePq0_kkwJckc;0I7d1kG6SKi<8u`C2Od{M9gO)Nl zU1<HJMne5}H#-w^wIib*x%@%cA?ejI6kZHU9NB&Cx6QPutlD-jXykt>6B;|d7e}YY zLV8+Pa?ic~uXwK_6a8+jTU}XRnu(BNclcZ0weHK4&f=o2kPLJRT+%S3#!{L}6dKj7 ziG#AdG5y5PKUUkPQrg^f@EfgK>f<4JYCRVr!R}-}`J~(9<)55yjvRAD|N3SSf?pB8 z!MNNUT;mut#fPZJNB1R!TNBoex|DUu);95Ln#hkOd=u6gxRK-!_^R+8ie5FpRIbAA z#yW--kiE9*;-5}Xwlw9<jn2<<nr4VGWFtB>ZEsue_Hmglp(w2DbgWUYc|%<4!$IU5 zJ4T<ymHg)c&hd}D!fZuHnFm8CU)P_f|12G?Zx!R9PqXBW(O{SP_>hQbI@z%=l7sy- zV)WY+YhpnuQPTn1jFmQC8POaHZOP0YI;_{-m0yup2iFhKra#_L+4aiO*JfxgaCn|@ z2{u5d$SGF;r6`MIGN*$!5^HE==mI{RG!YjKs-tnN9l7*abQqOa`<(!st2)q^n7~-D z;Vp^{M5JJ~<FO<HHy)r2Z*^|I1Gc@Ky4sB15%Yv<2A}VI>r=(ZO($at)l|FBC>sgr z8_MH~EEI@-@Bk-H9ZwEvE`C~&a?(I0r+P=bHM~3i*C7tq-~HkQ;k%7{sQV5R>g8#T ziiBLK@OgSdOzTtbJ}d=mp-6HseMlfbKUf;Mb^_5uZbkWB_7;G(E5<XRNRt&H{dR`R z+)3~@*?^!y0=RTPAAwNc2kmH{1*wY_RRh7D)%NGfDPH!RsTWXTO+tvU6SE#B(1oY- z3Bi}<=BywItRdj0xauGbLLW1vAq_4jiE7XWp-23Hzf;SH*oICb0cIcpfjK{dafy@Q zAw&l9(Hv$XAuyI}iw7_s5Gp}O8ALrphXRra9ZOoSB?@2(l+YO96!f^Vu|Hqpn(@&+ zZg`}x*Z`=*kyjFwlIE{KR}FT&)<|<HEV@j$t1nmv3H#ppPf_`Sf1r!!|DMPE)qAGg z#6E5MiSYQ$c;NeqK=7+>%u6XX2<*?opJpHAeB1bJ%lvH1blObE^kU!)c366{n>W2= ze|*eAi0Ar@@5H?SSVpqMqxNe=9OdF)dO9cM%AUB5)taUh=f^*-SK+OR4^J6Amx9*a z>&3#}K&N)E#PYDt>(ya50snr(tTt=J0+A^*ehZ6-iL~?d>Qbo*9E(FyxkG*YjjVZI zxjbHu#4>*=TMUX@4twrNQ}60&v%EkbDDe}E!f@`?pw&G=(}`gu3EZ~$(8WNauV%K5 z{aWwqI}cy|r&}W=_8|gD6-<fK3}Zvo1DM;%7f9(z+7%)ROGu{=ZfJaY66_Xa3UNSx zPu}^#&(b`ig{rbA^8kKAH+!nK{~gan<{l;zr?G{ft{k7bT$GU%Fgw)#F&IAX{zDPB z4+yf%&y%DD>AejJ`xVegZxoN~bcP-~P(587zl!oOZmZGHbQ){I<#-i8_NBc};@6-h zJEVbNP1?f3!Eu{3%=AHvo#%eh)0Mi!?wtLHCf>E%Q+ca14PADr){QsJWiQiJxMSEa z9iyITi)BBXc;bsA>(nMs5cX#Mona&Qcvyr-z(j1p>~Z8vM1ASMchBnG^TLEO^0?Ih zlCTpOXm{0{i5E2~JDYR|<Tl@%oN5^PyWhezT1qH+VVOoO?y4xN#ar;^aw>Go#Y-di zTbOY>NnZtcq{Bu%cVbvIOSveC!8^sOGq>IZ0vDc_CV#Z@a54I0p1iYlmFAt-$@$NW z$+kNIx*1UV&AkJzT{*-sXG^AYu;c}LhW%qucb@}3$nAB&*Z+v`<Kd}$uo0$Evy?mk zldJ*%H!FrMgg_HJN8WJG0BI>+zL`yyr&(^5gjC+fWe_3khtz#o;rbL2-=W7TG#~+d zx^S)>3e138*42Tu)j=OJG+&L4tT6&U#V5nhh!N#F8Ug?V0{f<_Xb=wB-i`+gKK#k? zh4%fOb@BM~B(ee@kbM^z4W3~>7hKt12&8{ILhjtWfH}#fIH2TCPfwu;5gHI;^wp#^ z2?TP24e_1B@EILzYbqIszcz#qpx;=xm~iD&VEpyEXN<8<QnSbW<}gF<dP_?OY=X}x zdZF+se|!Rj(V5Hoh<g6>JCK|^OYaA-dBHryvs^2BpW=QPJJ@M$CoO>$7yCr8!Uo6` z&jg;s#_eueYF|SY*h4Rmyt}TcpsNc27>IY1#q>~)udYyo-4Kl1-<>rpLDGv`hlj`+ zQ2Sc@8NQd-a%(JUVwEHf8*rvMJ9>i+4HPa;Q;qULSzQKEki-|@<0k?j{Gh7^FP}~M z>_{KKn3hOOZdcWZBJpHP1{+aAq|n4B%HY+=O8<s79xLsiu+g3ftr!257;qrMCsHS$ z+hlS<9Blqet$GeqlXhtJnOQn;_dWH+F??*jF)OC<dBa_~DB=fEdQT$U$CZ*+;)<4y zmywYhuQwl2)H?**BCc_JS5)&%heeemf$>H!IOZ?k=B3UTvg{nJVsvNSAfd%Lrvb5{ z(_e%M?GIr!wYB=oapy+fX!f)Rt`1Ab24RZ~H=T4D&xfNWt*c%hW~Z??0uKsy?q%60 z?kkMkxuK4`4Z)WU;nW3i&#ipbPioD_<v*0<D~rMyWj03B_4|^WCMqeq(Fwi}-<nKi z!d<qaU-7^3)znB08B`6FIVaDL!jh0RXSLc3k?;E?LrP6^Uw}bn)i+mAb?S$e{6wD( z<3!Dad$P=-=O5fK7UQJ|D@9KPvqjQ=B}w@bsz*6{I<}blSQRcYmTA1<yv?<}UJ##; za8}f##PwXaIw;Fe?03KjqmaoyXp#@lQ&TeBv?0wl-epZoy2@I+v5T(hLpoEJKJ}XX zK|60)GURGjFCfMD>oJZ@*UJ@hxjOHF%t-<uJx`ZMR|r!avFzzGc^lkYf_$m}|A1@% z_jI1nDl25E(H=nXz6gfUJQz_HPsN$zjnCrcx#N7i^g_)0u*t#YGi&if5|9|;>lN+f zkwbFRt@%T%Lh6l#14vClOMRR=cR2dxf45I@kSTV@*xBRXij}@<H{^%Yvx6qtFL5v& z$Zm(on;7B4%v*pf*e)EUg$>A6G&};u^xp@N7~@g^ZYpx`fS}N;4#2PekMG0n?zT&N zdq$A!n1@CX!dD=y=~Dn6!cuP#lJ(FG9idGCpUMLUtvb%=2>Ec^X`c_{3!^|<3pQjf zu~1>^JMQ(#Zy=Z5Nn)HWb&<eF6euclj7p~;mO`irsKpHvwe>UB(t2+P%x_*@96Qc3 za#li-;$Z>@U-`f0o@kSi0oUbo;Kahp4cwOr+<C8|rwo*V!0@;!tA{inER}igLT0$0 z=>R?B6gg~w_T(3e%!7Slm$$$_;!?=&UkA&|QIa!Iw#OE*`Tfc#TA>r|HF!ZIHa8xY z7?+*9!d4y6KZu}<;difh%C|jF2x~NUXA~x0nVEI1kfI=>aHgT>Ng_5T3%4JlX`*v@ z<AiF}BuvQU|Gk_mI@8cSZgykx)&UUdEx%@4eno792wD3}OK&evQ!-Llncc^P37Fsj z+J!(543eGkpTdspRR=L<77kh;qBeu6pTgzyLs<H<S2jE2<!)_Xt!y5c2j@Bj9GoUB zZU&y~ujN#n`N73+U0F$V$C8m9+|P9dPY|aaxiImwu@3sLO4M~I=9d;L;}?(og0H?k zw2sj^!#$0}yT$(g`SAY0vFz=OpQDX!=jc4{-sV`O#&c}lUz=uJd^|hvDb=aJ9b^do zAR4t4x-i)`J>u2}Tuq{Gy`Ow|r{<6SR)xWs+Y;TMFxJi->NtX;JO6T>AQw4$>$hUF zWh>}A^X32%k(|JjBs%;}vdZGPuy%AW`MQ+Pi05tLLCo^_=37Db3w=7)ui{V!wJd9a zwAM$Hd_{G&;}IAB?$lz0;@MFc*&dXWPO_$j2RBoaJ-qWp5fidx!4dq|CvsvWc2d1x zdp>oF$Q0M>M;qACIO_>2z#m#>{isnh8#5uAqWf(tCt5#j7~sC&I&s8$_P0kY#6e{Z zc@c9|u-9H^k~ja)CFctH%J<6>MGAZ)S}|kRgqVu?Qc5drvH6c%F-4|y`Bj?sltKG; zNHYERs@V->$Jxs;L(g};&*~euedf7>vg;I-wCB|Afag&Hkug4GC;%Aq5oG<$cpLG* zom8yOpZ}o?OA|l<Lck@2lBc%WVn#(07{?XV;sa9zbXfLbml9HB3oi-mrMO2pR6RlO z43QxV(;WF8rJ*Dqb>}2&q;ZV<YQ@k5;~HE?XAiaK?yN9B=T!3p1$}pH9XUkiiQPBw zDywG{I|29VEIc{{aM}L5p;oR!0wR3+0SL0TwK=5no7`F9Q@8Bks`CO|REs&@H@>we z<$Z>Zuq{ysohCg2mL9}7K?>l$#|t@rv?_Rrv^1dGAi@H(ZGsypoxx5g7ta8nWP^#k z=!q`tPrqZ;!|rZBQ5bhg0k0!mo93_ZRqjqb57I?-flq}o+fN-R__gp}T_q4mre0$r zb%G6r1|HQx;@^9mTND!R4}KCrci;<1_+&^A3OKxR@AT3=IPxA1#CYTA8e5iWc>vsR zn9Digy-7onKy{Bw_OH1cW|_Wz44XdkE+Oe=n2w~Fwjfx%U1`YYU)8xM-@We}@cBN0 z7~V+2&y#;WC2a3z+GZ{3j*k%_aT)(~6GW#?EskCLE*}vR#ZsD@8?c%dGqi1}=jT4` zGqs<BP98P<{SBv{D`Eg?*quBpo&=Jpwi86FZ?)&Y^X1(mruaND2Cp~y$KJ%3_IX6C zIe+TCXWW0uGVFHJw)luhUs^G)xQG$?w`!3Lhgx5Hc<-bn^)1r<fdbzpdhe7>0hI!C zLhrV<`sXroJ51Nhv(xBLih}7tk1cnOVIuoARD?0^O_o(mH_;0L8Vg-JB;E`s<AlWv z5}GvX(GMfK>4&QQr<ldN=x9#MeD`s}4!CARf(2KY{-~OuJgHz51fTk{tWMBG(>nlr zolvVMxb-5g8~X#>rb&?b(xw~1apPdw=1#>jsU}@`IxRQh+oi`Z=p>Y`$Z>)MRD75C z63MAnm}iSq`0BmLafzGO3f+I*_^Uk?ep^XW!Y{JR9#WXs>K<$UAZ0!4ImNqs5sju> z+`$90kJx6gvLep$ggb8xW)EGCt_}XsbQjJyJw?&@{R=5bkTm>=vM$Oq{wClMhQm@G z<^9@{ynmyGCnk8cIHBB7u)%IX5rr9DZ~eyD?i)sk2p5@=8V&I)N&zQm`O_7L3X4^# z?#+p#Ju@rHm-joAWQN4aHfJUR(spUz-n&v^bXmVrPIIBYha*L!eCT3kD_}{DT%aN_ z0$H5hhQ9B;c?W-lg!B9Mv!*_U9*<E8TW9fFz3;y3kn1t-5~7I_+T>8)(f>YSy_iDa zCwqs|Mw+OwQGm(|Mn&e4x<BR^Lu{}Aoz(zi41y*}{r_SL!SKozdc$t;C9-cJ;v+qP z_)eF<g=FQJ{3q5j4kCuM;NIzt!KL*k$`}YWu8sKNH@CC?Bm1INE-zk~?^7;5h{=&p zMsRBXe9JeWTd1g0NcoO!Abrub^)lT5*X=Fw(&tm)-c_a-@z^GLWY(IHDEx5&DQvkk z#@?1eya2Yg^hFRI&W~af2f*L0ehFAaKhYJ0i$eFTK>wW`kB0P1!6UldO|gIobNsk7 zdd7rg9fN}V`{OVtgpY=m0yb~~=%w38B4;w#4thK!>y#9>#(6jRvJ<hxr}8OlKYdXL z1NgoOJpG~SEBWA8Eb#QAv?zg_3SyOAVE2Ty@5%S|QGgIa63#%2ynwl@)`kyBFlBsU zhVH;Cy*@z=W64v84DHsN1?8|8h%5bL-=(UNw!Ufk$f!$0=|huZpYlCbqsLpo1%_wF z2%m!Z>0VLcIy7%5iaq@GX|dg;b0-Tg-R*iYD(hkWI)6{jZ+?TOTcTCkx<NVK$<9t* zy=#8*D;oI&TD4RMinySSN2Bd8GrafZ%5^($mCFuu%d0w5e!oM?E-(1&%NGz^?s$Y2 z%-3Ec#$^~LqM{OBmwt>~8^#t{w&Uu_pVp#wP($&K)QT=O6jpT*LRy*(wj`uYsc6Ne zWqhc15ZtGcMB(nRPS<6$8#CW|FM_#WC|BRbFRL0zP2@@|5%azF^PfcpZdatwM><<x zJqPY|6GsUTP01zkK1?pzt&cKNhy~-Hq6LH}h8~=*F}fB*sjb68WK+LBHe2!Ef2pYB z7!;M~oQ_b3-B#sjEWr-ciDB!6v+zW@kj?6~*Qylt8i%8`1y(kmu1XCy=vSs|j!jOI z2W6q{>E*?7o<HCm#BqB2*%D6_+R>HQ(Z@N{x3|gnnDN!zqAbSs<zJ^W!Lcl;{!+|M zDKR>PGriYwlU#NwwaL3l7CMTG?U`bbIg8U!)W!bv`qR|wA~mhdKt`CH^=`=OdC}0D zhH=)pVvp;KNc~htyO&mT${TU-rMnNqe{jm=^CnH{dL3;}7_oID$od40|5Am=TKn|q zqxFmsnrGi@NL*Fj@~`)r!QmfFHQukLTiuEb={<4zho9(q$*v%$B^mwlL5!RE1;za? z?6*M)<WZ|bW&@HH%|3SMR)G=>WCq^M<mS72@5_#}!yK1<Qe7{8y<PO;nn$)VVpPr> zYVm~84<LS$^gcpakwjr3v*ZVsuQn+>$ORmzsJZzRds1@K_Om`ntXV11ViFkt*%88* zr@^Z1n~g#Y5e$vzy5UIryEv$O7Cc58Vdc`C%c((Rd;vf2AhWJ<xbT8xcm%=0U~j!5 zPDtprUl%w@jha>7FTQLMMp970vTvU~k3jT+R$76>25CJiBx=ClmiGXLZlN)gE&v`` zw*AzaG!U5uS8Q}nZb4BCEKcO`VUci~ts`B?9Ip;ohn~IShud9AP{4M=gunwm(iu-O zfg~hJW`W^wAgGHStfea+LK|*|tsuf1z{T(osLqUCdu%X}hnV2-dVX6a$MaTpypxG1 zf>H!k@6v7p;rqDgI$(?D5UBoEb}ft(wBA^+eh5q6@S?NdLvuLeLFN*dK-1IH{}K|p zk+h5>(m(zE=qL(J_?S^`uC5NmGx29a8@*=Hh$WxRu5@e$4mf)aJKU~b72=?t1Aazd zCOH4EGyikDiWk8TSHA6a8UzTQ#T$1Vh(R3QjZ6M|!5sPK!{#4;g;Ros!Fyg&CqLo} z)+TkyzV+E!p!UaOt&y4+yJN^OQ?6;pXJxl-q2*yR-g-B0^3sb;*e_zxkzHrIYa`v= zew_J!%J$z@v=>J=4KyD5y^)rzaco}vXrCYE`uGc!>Ui67Xz{EOm#~2x;^m;`vpYvx zML!8IEHcUN^2z-DZPbnWoxGITF*e64Y};siBg6HcYk<?r0|$iZ*en?pow%)Y#mUS= zqROKmUKZFy@5maMAGh3dy+-z6x~C2~xCnIU&Lt21`7KDuH&QBXVWYR~VDWCtyiW{^ zL+>4~02b*G0lWV~slLSzrLp@E_D?6smcNBxql^0xPCC=7nKmf}iOp*7g>^Lcg8Cbt zTymvQy9Ly7uX~*d+vIeY6;+bM2b@P^;SFco*~$IkkCgQBoJrL2t71$Zch?`|F^a=Q zlWs}Vx7U7_N?-06lRE2NSl9Ush6n8JcNz$9-R#Syl8f&AW029EX}dvaPzvU;k!TeD zBgd0DwW>t5*70Fia@#11d!rU+D<_^tNaqu5T2D-V$)KF0eO>k^Cwpf7MJWU;Y|2*P zlM%%cZ{&7ylg@3gTWO34mI#M|`oX%q)%LTZ<<C;v>f919$6akluvy<^RS+xcJ+yLo zHw)LDLila#rt3aqJyM*D(k0Q`Ig?W@`BA@F6f4#tGn8D?plLF*%^TM|KwC5=L+94_ zh!q$06I8|JDk-QYbJ%dKxH?W2r+n~cPLBL$B*K%bq4<7DKSHpk7@yn&6fs)6ex(@k zSI~x^Z3FK+X)M9`I)Hc$@eNtT;UJc`FBS9XZjJ)1#*{S^6ABl4%*upX80S;J$hXG1 z*pC*(gW30CHo2=m8qB#xdyt5hcPS`yGslEl^H{5%h;pxmw9I^~O%dC`25YJ5N7g}* zO0nr2NEU$yi03_BpS?@s*2G5~kc0AiQea4c_#9M73A3l*@}IFsAI5?mef+@*c}b)R zQnoF*C}7V1kuh@Coi<>7*5a}{(hQ-d@PS+69^e(_Dm3nmjlG2;566Tc)VB*K*h=Tf zDyXo2EC{K~1a}eDVBPKo&@NjlgQQkCpel$h1*jI$LJB;no>2~<%U}}RhafS!9zmhP zt0Qv^LrOzvsM-U2G>2Y5avbdU*~Pr_6`=f)AgwwpMS}f4M$Q?MkhXn#`3fH;v^t_I zXW$z6yw#sd=}&#tSY>Ba%ek0Ao1Ys0En#uu+-b(nsY$_ornQllA&WjT`#+IHlYy~? z^__nk#?CxSn?ElEEceUw{2xiz9ZrS+{qHp{vdi9*RrcPqNXRC8g=_D<M<}z1>?>qt zlTCK!z4nJ};bukl{=NJD{?X$;PsJbSea?BE*TBin$+T`9VvFiv&VL|xrSygz2Vv^l zC2-FLUcBz7b);tsc$d^~ZJS#{CX#6wL}!v{Z={!X4>%S$Ha^upE)iK-ZdyC2-%)Jx zSaH~EBKq0Ctu>mzRp17dn(skpO1<vcLRdfP21#bOo;VG+Gg{&(JKOAW54Uw|eE&gO zbBT_YmS)D-35n2_L?6BPLeQ>9MtVs-E_d(Ok{Uyjye0<t=J1J#4aG}=LIU;bBc@o~ z*qog4#8R|Hy=G8yXGc1Qi^%=R<aL?aV5FC;+~+6Hqw*b_P6B7y(xn^5nXUHP`xf{- zF^8XLLelkcr^pZM$>|Z#3SUH|JpS-{!{MP?v5aid&%*yO5J&aoI5!H}4ConzoTkWj zvEKDeg&3vMUBB#{3%|}+4GXs(tGbo&FZAZ$ZdMjUD;5&YJW?VGvw8+KCPnMk-rM?_ zTSOe1MC`{GAA->68cXyffd%T4Od))@`&pmh<(nz{x5q@&R7Nj&rEHj9S=6on*m3`F zK_PVbRlp11B@RLr!Um*z4!bGqG^V%C(@#NO@zPH?XUuRFV-kFgw|v^G*kJ!nlFa$p z@-foK?bG-FO`Xd&sNQ=r>B<Sikvy(am~7@SDKGK1zjY*}by%&Vml+lKl;iR((opiJ zh0aNR+oQbtdk`=FNFJEzgCRt*6{_y7m{26cvnK~n9|)lBp+eL`g57cC?(tSAI*H>J zInn_RSg;v0`fF_S{Q-ribd%8t5ZC?Pu>v3(;OwfHxGnh2?Uw*r3o;*%&k!+2RJU$x zjiSVn^CaU#Rdsjs14|x7hAYZCw`<-o9$VBT2K=J9n%`=K7-7RU`?p^TBGKAx3qwUy zB4LOV+Q0P>qdS9~dvZsdFY)9k<-nas<aUP(%&sE%BKPD{{sS&OHRn>0%=YzK2u(+< z38dn89SpUA+YgBI|J<&{0T-$WNLY>yG2v~;5X6OEA4nq70_Il~DB$zP#SRtnfy$O0 z7GN|1vkwr4f`$4%0Qr~8CG<`Fnl@?-(b6=M2T{OcCkFngKbLRydD2Nk(>fujpc@Ri z0?hnVSHuPa{6{wew*)u1fLz=H+UIo!9vtFJh}huS^=gJd2wx_gi!eB@Aq$ZnEIuHT z_9~?G#=4aB>RxxB{G+`}C7k+6xzH_XTHnrb)<)jt>z{usI`ukkzId?fO80*@P4A8= z+SIRBXtW-d&x_<aEZgBZZz7AL?I34%Jb6}8)9?tJfRI#Kv_(uJBoncDfHE{c6-Rq~ zczZg%#FIZmw9|_^aD86U>5*m!%X{y#-&t~cmJ*SpSk`Ks_OOtM5N}yTYsVFUc~zfj z=M8fs)2+#C&;}=6T6>qsO1xD<-Zi(+TX_YS7saOs&g(;0Uyx$0a`gso^>h9N2eT`x z2*n60IiXu8MoYC!|3BB|p=YxCBfMwhWpSOx#E>_giO4G(iLF2G{%iN-o@U}lE;mOm zhVdSqov1Wc)}LW&IB-u7aXfTP?Uw8Gsn72&7ew*$v!<#4XDG4j6g3X59dN5mvv#Z7 zx%fm?5cm9Q?u*aBR@%dHykerd%j~uJtWK}v(?9fj$Gm5ykj<mbFP+p<vtb0rEVLEa z#;>C#AXQ$x!Y({F$yuGsW>v5Fgz-%{2@f}z1FUEoPkL(9gBp64o4(VC(P-0+J?t%@ zL7)1(Zt5R&v|zkp$aiJWsFh8BP_f}%GN|q{djN0etsS@JE;I|)n|uaK7#ihFG0pTA zWs)iPQqCwZ5fZHE9a=5!Km6caoG~w8PhUszr7E=gnqKv@ii^vg;&-^`3pwAdVPQ$y za^hi;aJAu_(XR_v(`YY2B<|;U*rT>ZPO`CXB)z86i<HG-sW(1&Br%=wS(-3uP&tK8 zMx-&es7%qrz)dFsbPa(~;7dwSWiK8RD4WH`T9ZX?CTp}8Gp})2paO>KUZXx9uRP9E z#Wli&OY_h~j(N1lQACU-R&o3zHQJgSka$7wq%%WIUgHluf=Ec-vSXrac<Za$iC2F? zGVe%VV#;~49YNqdh{Gy&-#B%AM4hH^x;!Pa7qwLisn18I0H^wImz-=M%Imj?c-WXU znJ3iC1+(7-l4Dv8h!&R=5cub5YKTyxPl)yes6v0Tu+1e-1QKYeO${NVvk@TJxa40K zoPt~qrm!Qj&m9yY+>BG;O-Xn~kP#2Y-}G`UR4iz7qu;|9Sdk^r`fFAoB2a=X!i6A+ zny%I5?@K~}Wra<dcGA72F@kjn%DOpc?{;N5S-d9<3K_+!Pn5O3aF@RlP5uUsy`Xf3 z>;c8{$uQP6LgoMyVsysbn;JHTD?j`i`_PWs1Mbb3s+CjmA$3RYyvJh)=gi>U9?tu> z(GH3(zC4M6s*B1tO1XxKGRxl6AuB5$O*cz6UTjVa<_gS&i_4V=Jj;_Mo6^f0R^rU` z@T?tK9w=);0n;_DNB)Uh^9e_);sl@TdHE-ggU{c5R(fg5afD;?eIKuk-7F5Ryx9@O zU9WrKMJG;=138{<tSnvGj1g(UZ=p38)^C4fy@3FD-^l@04O&8AEHYgf0{5b)3xFOU zeB2R58xb+gL_bC1MY=S}9luSrMtL;f)y~U)B}#PUpb{66dEQKSd?|^8z-;oL#Z9OP zdU^3v_HsYM)o1HNQm2o%OS;#mUz9gz5aqB>HUho0Z(YL-Fuq+0KY#ffzE780B&Xm$ z_l5)7Wj#g{ckh9VlJq#r$f1<U>lA<eF_+Rx-(~u4ylkYc!meB$cTg{n+jeQdL?Nl{ zl7=0@15CMjJB-5`TQdSAO!8=_niF@EOhkR2+?Lua)w|Fte&=zh16TdFQ+S~6{p;h8 zSdWjUkTg+?*X`xhjA`MV9(M9?-(SEbRZia@7B#WIs7mE>e$14;Z~L}_^wqB{T}qir z?@<fkx;|~cLvMB0pI?)@A(EIu>d`{~4O*`*C^_)U2no(dX|~ibzr^Ig^LTviQf>RN z>mW9JK7pi7{ef8zVzirz%31$ZN#cHPIR~@Xw`iNrETs*fhQZfUys%n!S+#n9>6AO+ zVJ2jGO_MwPYe!kphg<(ze9xhGea;LcQucRv=EJ?H!NBz_-3)AzJ<COZN>(X;$zi9X z5pl@blEQuGX3tBhnB4`{M`G80@Ajuth7kh-aDtF(W2VSl9hmezxvkTA31?UZHa!@L z!A_ev_>3;)-^?qb^S6|e2*GZL3gF`VSGffWsA%~ecTxouHvG@$Hwa}YeB{?ISYYuG zqfO@&i7JrenB(&RZn_jcc>IE3`jH^I3R?~-a*F|(zm|N38^#tXB4~&UAmg{2Sg3-w zejO;>`Zk9`jy9<`3X<9C2V%=JG;k3$jO<|be31tnTSM1gK`I(Gc*3I9#VF<K<V~Pq z`)5}GYGSko6y!hjgou;XLLkst0BfquKd)n53^*5rp#&;K5l9x+-+rlt0z+&_CTkch zm@Q1HO>Po=TThp&m$DdevOV2p0rBDT{DA?ddjtYu8N+ewBpGRr2Ps9*MXT=#Koy3t zP<~8l`aBl))S;W*!w6Nd4x7kbXS8Fjx_=49gwPPDlBfQp4h8yv2p|lif)Gx_z#Sh0 zJ*GdGjxVpO)xkV{ZJE(!mmYi@Qp%m;{IP|27!-1I<5}Uu>0p!J(v^Ncl?;d6?UHic z^Y7{(vZgfSeMVEGn$POjDrGn&5nN|7cs_}j!7;hzXFRhZZqG<#)R;CT?(NUcp6(>z zsA?M|W}#Wpzs7iX#)fNlgy<tFg?(4wn3Pm9oU=vomVHM(3Dhg?3aRKc*t;68G{c&$ z>ly8!OA7hfa%xt_eX^H++t_*P8v6TU+cjkSEB)-Ox$um6tB2**Y(iMRx$w$@n|30L zLHo^%lE@c#h>2jWG@5h!>@VvL22!0Kp;f{6y0%7<dkIP0=b{Sj8gjXJdqM1lpMnD$ zB||Hzs9tAAYsF+@F<X*NJH4l0U7Bim%_707{RQ{0W{X$k&dh^{kK^S(o952nRd&{y zD~0<_q~Q})hIan>e!Qd0E3+3;RJ7W9NB7+H?ah5op|Ca#Jbf1&LWGT$;)1YxFYa59 zL+WN?jy4r%M~*ba1y!!_oL##_KBH0pb(T=fF-M*xsU0?M^-N9r<fhdFCc>7b*EWkT zFTQ7o@-SE^B5%~$m8`#4!}Z>yzcxpFNQNv-I#{zD5KfTORo3Wai?^xEwm)V6aH{(V z>JS><6<X@}ULFU2UR2;Q;~d$o&aQa<L5}`N90zjIs(w%KQF+R|QxLmyX%(tTW8<>j z`%&uAuORsL^m~C@E0$%dqCh2Y^EB@aMhU8hSn+17eZqM{pI?(*TSAc{y!_dd3aqki zvC|=19u15`SpB2Dwb(*mkvyF;-z2YC%~vZpt#wqC|E{aTsOBFV{^w5mt}s4PDG!rx z!I0(mzU8w%<P-gk_e6{46C?uwm^$YWZzhmPUxdRF@;j}OOlzoRkrRVUlY1hO|N8Yz znGU9v5)_?5E!5xrjIMyH{<c=g6Sw76FaJAvYpRU%-=MttL0Ac)tRCsWD+sqDBaD(6 zD<|%B>?`@I6G6a~<Cc&D>gbhNKNyDk2m*{C?cYg`LHjOX7%&Gr?0~r*rgR#wT~bk} zHe+`~TMY*!M>0hm>UAnRJ_2cJs#%JH%&W<AhlwQMu;ZWt?p^|x#t1vea7wZU+3TC& z%N+|D1kHs&V!-1uz!uEx`8tAN69fKvf-9_JSD7a)ZF&S7B_*B@1tuv_l-xE<uBu-i zbn(-E47fj&%da!Cf1~!%g&{@Qp&jg<%?py(^r8I&rY6a)Ah|k$AUG|&87eoq9zR<} zSA%l=g#qt<_g-0PKsM;Z(_DIh6Tk1JhS1PvJj%q(w|BDxe>cVr0%r+R8h+uQYJyF; z^*UbG8htJZ`@$ZUcJmBEh+gp5bXhb{D+{?wNX0>QwXHtRL}Z<%o8D9}96}_*HY>E{ zkVy*(rplkKXS>+7b2Vi-tE9?bbe(XWJtWNWP?RK~H=&D_O_B6%9A4aecemqEy)!Y| zlU~w)skOdco_1{-GvMDiAE<A5NH9P5Ik@Ypjb;xif1gk|rZPv9X}oD6z{ukUHg11V zA|qwLaM|2=QM0$LGjQh|Dc|#rnY?E#Vb#%q_Kz_KrE|#aF1@Zq>&BQ_bF2A#qtKsj zW{IMN3vruHS$RKaWg04j9b%%R-ao}`I5^vV$~+dn@|c9j8HY`Il5@rTB+I>u3=a4D z^i+THKEaTsy4!zWf`dU6=BpXxzSY###*7)>^nziU1GtN4whn8vIjU$lI=ULZV0+%v zp*tdiI@M5L|4jJciZ&-mj(d7Li!A#i>lE(CHPWw=8L2+>e1;=DmY?c=mnnbxv<*Mw zyiS#Q|LeA(JaEAD?9q6+fr+!9wfDn*^`Bbx)>y6D4jW?R(@)O>rv6;kh&Epl^o~43 zw&j#(lt-dk@KVmx@Gp}moumygA_+foy+SlDzRLL-ibX)rWZiEFwJP6S8H$R-r=fNE zBomXzog;d<WC9x%pfx1IORyn~j7Ddx7&pvRb`OU6LEvxe$hI<QGiPEc2#nI_SlFms zT91m7NHEpZX)=FNz7d6ffFHeTa}ATHJ<qa1wGb$av|6lNmyJ{|>#AI+clvu5O59Om zJ{tdx$zqS2F?hAJe2+wNXJWXD|CsgSxd8+*i11$v5c#+6j`IG*w?tjy!(<haTx(Q) zh!eGX@c=DmGzP39V?OF(BA(*EcAQZ6-6aZ}V4hBDbF~i=U`whD1!z?W=>P#US~(-% z_YB}ypixs_a&JULA>y|D4;4{JC4!C`lOTL$XhKC2m7V?SCuK}&!APDTPw$XWl<i8x z^)wVNL@3D$G3Cq4fO?5sNfC#o;pFm$jdc`<&u^ZRD07jOBtLIaeTjDGMJUPa67n zEL7MCn@e$!3iW7{WT*%rRGETP|Dr%Q1@FmO3j<X`@j4#DMg~wjMnI;{7hq(5jsU&7 z<7u++Q6s#Kl+o(qMuCXoW|caY;<>?9>fyFrDiuURHE(q}`8RcF+B4SRe)qm9K^o#U zGYq&>(CZSLy|U@DYs|j+!LKE4z!R7E@j-eMm<CXui{Z(~hOh%*xU`9x8UH8RO+pcp z5G4#1+K-6Ed~1IXQ5s@<JqG~@m!mIF>pN2%ck)BKsGK4r*_IE1S>wawZJlb(o~msB z{UxF1n47dqkM~)`#&m}Tr_t<A73$|2Xx-R#tWAH+ak$dLL(NU6?MS1wks7Ar$883* z62}Y49t4+&r2t(AX`g9-?QJRU(vZkR;WMA?pn}e<)HsFC<J*LrGLt>2Cv}x=4lho8 zo-{SK8oQIfKmI<9*r<w=sxuSKKD=mR7@=kNhM>E&oD|SkB%e1BQ=7%74M}@lmfmi< z&jecTYFjAOQGaKJnV+`fQ?^{$=nmYe>ymeT@X_lsplun%Ufp#y&7s96WL`lHVV~Z! z?hrsJ*|0-Y2>gvT1{J%HJ+oBwo^z{l2uzRfdrCsMP9;=zxZPMa?K!<z2&jH2*7T2Q z-x!w6n5nohHwqAru9aaoW&cXF-VqV=Z|IoGFq3AOmKq+{ScL7Be9nQ<$~LHlN+}j7 zFo}K`ki%n<Zu`Aj`nkq5fs=4=T6(8Yp;z)ktFv`>{AbUj)@}VQZ|*^@fOz=lA+}V9 z%ZlbLZ39v>Th<Fr^2)6*M4aBds+JY)crp)IgjRGuaqv%U1SI^bw%jMj@$8nUv0PuX zoTb8b#Nyn|8(a#ogkH;suri;hKi09*Y<b2LpH8(!XQoajd9F+<0PFL45xVe8YTS#T zIbTN76}N#riRncZx_Py;l*gZB{GgGHF|Kw*$|)j7x_iN5n@|0y{))9gQN>VTDZ#!8 z2fPW<gq+!NYt)>kIh3pk`J>tH+dTX!9IE}(8v3WsOF0MDL{poTj$Y&Ct~axPXkczx z(x05kGW2KaKPd9}|7PX8ye~7IKq&7B<HlrsLJ2C`z|m@G?kQa}fl;U={V)PR&W^Bz z@IQBP_x~YZ^AYWG|0`#c-}V2ib%JrjXas(LbJRaUQDkre&r4j1R*2n$h+Jwp+D}i` z*J2QL!(RssELW-U5jLObeW8jdd@NJ|S!a1@J4GTM)XOK^ov|AaS}&tNtCUnq<wYUQ zOCe|1js)Ab%mE$LYhQBv6{MYfKo=t6y9t~*A8=8~t#^XY5`N<YXvzT^)-Nw`Pj3A! zz>(WC!ORS5IiW9$?ti2WLaeU<nl^q88P#};Knfh3$S2}pB5IuAW)CCHd0xLTd<?Yu z$q*VsZ;PexiLkKfiU<e|;}Te>L5O1c^kaRJF~`l)!%XZ0>;arG+t*Zh`7Vu5b~qTl z@DO0%P79Zg#F3&Br66Z~df_!6GwITZhah!;g(>mM{}(O<5IVx%&xbPoVj>Sv{|RHE zQhM`D4=%<w9C}eFC4ow8G}BA(91{O1a?#kMm41yg|F|xR_c+`d*jSpp_xMe|v?Igr zjQ*LzNnUgL6G^?P%vnb<AX%0ZylokaGJ_?U2);&X!v#4gFOg4fa_+sR@xZ4NGA4?6 z+B#1-y^P<T5Z>td!xZI$V9zJ3r_EwiAk?5~f$_GRvCM40-;ws)P=`zTohUj=o24l* zNm#%c?K)0tHZ&WQN1nt?f9&~QQ1m=ok^Z?}0Pm9=N*hj-Jx2XD(dHMff49qNUg@EO zHbOndUYZ!4%dHh8AhnrnGN<@t@wtljN|>Y0AEvJIip)`3GP>Xlxj(c{s`v7&o)#6p z?O2+Q`;cf>*{*V<VE%Yk)2aP|+TY6{m(MH*3)v4Q#ptSa-Gp#_V6QX^$%U}T<vu+3 zoBWJ95|wY8u6<|6`@$a6q3|j8v$;1!C1q6hVZY`44B8c*ZY|IcCP)ei9Eaup*89Qj z^tm@^FE8i4aXZ!ib6h)41pOa$^?_1<mRcvyO9iY)H+CgIJgq+*t4s6y1?ii`N!drf zU5$xOIlk`K;S{TGeo~;(Tve9-j_Ph=6%R5gu36lc!tepF)YUntRw!@P#1?s?%0=o{ zPQ@!qsW;A9Gq|NMahzkd?A7_HPG+^_sIMcg0Ba~(o;G=#s15l$xUfOc9=|z%q~FsS z#iyb5ik~Q?0YL+?^{>bK<ZG7dm2u?rjo#|=?d3kf<nudNBGd~0bCEyz>hemLn!y<% zxQta;8_ZItKx>*V^oV8{xK#JA_~sAVpscBd_Nb5e;5UTwp_0?)Q(NGKWQF=QhEM7K z$#wn`e*zqU!H>}&Za6xZ;06OHU{J1gJ?8})EdN`dfw9DOnNJ5ZT#%qhVpu;4<cblA z&m)V-SL?xNN~^bVPX7w`gyTm*C^;xsYOj4>(+&s1V<$+aVkcuR3qZO|C~*<&*@N|9 zqn>Qb5oN<dZED#85Sy$mhXNDLEet-u7DNI&>IiI*dZIcy0rp*gikGqg%8tJU#0*tE z2;#jHJvL(WumCEQHwJQ0^}uzw1;EoIy&z%;N{DC%>APvORZ!H=pFjU@My^8viz*3* z@{s&3sB8V|F~c(i($B|9(a?j*ln~+02a&Vp1q8{IAvN$OIDzHt_cBvIYyC&Uhm2x} z@|0#oh4D2`kbz&_G@z75kUxQsDQW_oq*4S3G2ok-U28STVtl`R7UG;)hriy?79tBE z^{w@KE{nV>Z)_vYYRAt*@YHdylAheKlWT6y+}N-OpHBO0Mu+yWY`(aXFFiu^h6y$a z^4G^H$X1~0#sjJs{C78Kjb#>hUFmjbG;g+e?kxrz&0tgQ&Eu_ARjtbBK<2Lyj#>j+ zF$I_zXo}1SGThh%H*E{c6+`Ce+?03yb`>kh+fu&MKg$=+OLxjyyy?dhlAPHP^uaO& zmRrfuA=Cf)%^q(w(7I-kxHr8^OnmhF`Wy5_(6OgASF!ipv>+5+Ki;06ub)WgMRbUq zZD7(#L_dBUt(Yx{WhDE>sd)F@7pvf|YBeZ^<&*E_q9vOr{5qEwH=ZHo=?NL|iO*#9 z5hrU+@AR0yPfQK+!;jZr;M^aK*QT&_RrC=`>m5>d!3%J?sY@Sa$Yk7PkGmIt-ty%) zyWqH!dYYpXO7>bK)-qGVy%QqEe;v2?ec!XP!fMD`(=PU>yEFM3TeD92pLd;WI6?-t z@p5zB%*71l<ILKPoB*~<T18!E*UDxsxx6m5?Lxnn6Omfl;aECwrgsue_kI}s=LsZu za+^;p^V~z4Shg^1Q;s^S!p)GAw?uvAr4WTvr8m<z{$I2h=kHPkLdI-f`YsYwiFJHF z;o0%W#AKk&<oJU5mwzQMiL1x3sO@Ev#CiONT27u=WeFm{^sel?SI=-x-J3qwg1Vox zd&_|>LeXgg943vJC#_Xwak6FKhr1m3rv#do6AOvS>+bbGcQFd1Id>FdYP_49l((O} zBl(k-`E={tIb?6)!hrFkdtKquJ8`7yd7)#7uq=q2G>;L&&N6{HQ+ZW(QJYuTQT!`l z8j2ClH9%pC#v#W<Q&ZKiS_SAAQ%1}X7_GNaQyoh|=BqocAky5CxpZ<_{QkHS!-y@s z|1mr;6j9A;4)_0go(7D3M<DNmy%(@Pwy;ohv$y}>g+0kZ9BOxs8}OyKb6OR1{`c>Q ztP@<4P-OE0D9m=bx(@?Q>u)Urm{2;kNtwX>q7Dh}y=2&bN(vxC3^HItmKCJIM}*UW z<#<ky78_A>H~<2TRr$ka81H*Pg?@YTg!R7xgpOkHJDkJb<0JUXL2Qw16%appzh?*J z4i_i}`sU^a1n%KIB1AOaFomVrtq!O{;Qq)#kQd3|mkFV%B*1`o{N%GDfQ%YMEwJLN z0O36ov|dWmdjty=&n<XM(9>_h_uVYn_?*+A5<^bWKO8C;olBgHfu8~R8d_MWYT03H z%XHgMnJ$DT$%Dz?`W1#M|M;{5$Q_%>9s?at^Pez~`B#=eyh`iz_GP{vGw5eyUdC+b z3pxFGbDQFDXWwx4!<#Y{BiiMrY1fO+m~{cYjn{&I*>;rTH~mEHlK*^H9i<}QO4>dC zlYCn&Ihv?zD-w1|*kV#w)s@>b+EWtJ;j!R_78gKw#m!%80VArOXh&7Qg{N@}r8Da` zrKgkHCC&yyt}ELIKN=pi{Vfxha%qyVZ$ccK6}1}g@9V>GggM0M%$0JQ+64K8tj1{n zo~a+byC-8Fy!<&xaeH2QYq{yPRQkXy@nib*bV?=}Uwxfy;1P`P_#ojf=RC&t4z-n& zRHogYP9CX>QS{EQCG=MbzdRm^#)pXOg%_*UzJ$)|eP5ry#x>I-aes8GjhOzAKJn;L z-ZR2rH9b4L4Xr3cKc&SQ^&yJ_to!+dD>2b&!h%n!b;lS~`F&MtRi1dEHPDQKPhQov zD&>Z~Z6-7@)8qFP8R*%|e8Vd5QS}EA$0YKsewSBnTBw+<YWA(gmhRytQNK6o>Z3^f z=hA~ALmQQ8+)TuAMZy|SgX=JjmFBK>;&7tBHqb$$2Q$6-^DS~VQd`cJ%O#Rk`?&R? zp4C^<o{&%d(cg-*m)nB+CGU*hcg}bm6cuDh_M9WqcKb^;teYx7x<f}UBFl%~x$Swv zLB{p9k`hBs^&hXDW;e2SB2N2&dUyG(4*JNKb6VYXI1D#^U+P9VA4WzubQun{f7VO= ziE#Vcq2)JeY}Ez7Bum{JPbXrc&2^-hKp9&Ph`jbkYuNl25O=?^-3ajhaznc*^kFcV zy$bh^$ij%}FCR<vjLp2kc8cem0B!HC4!0h$-M5e(vk%C7*KMk`f^Pv3Ccnc=)mPI6 zdMXdo_p@LA0Pw1;%!|le$BsrQGv@;m2<Tqa5}1;qxbui2tIx%Rec%lcIoAlqlN}~G zE@4J`n1LqEV}aZ9{V)K`)pPlxf3WM_;z7!bngWd17B`?w%W0%3j3SY`-&_$>nl`MT z?@vq|2I{+8F%IH_)bS-GXBa_=fw)K%B@Uax=OYh;eVf$a=MLM<1^}4UJJ7kaL%>@y zJmU!!@|6c>HQe9rI3cJ_#R!0keFTqzG6lFt1K8WP9C{1_ZBM%_lJODEBQ*cdn8vn+ z(8Up6I)MXDxq)MYQG?OOmSV<R7^-&x3(zw`SKVa;&HWKLAvZ#UVM%Gl{WU`c&nWH- zz8}Ozyr-V^u?5R;S`EIOtL3YHvt-}<6LuoZQ?5kktXNQ?bS#b3BIMsTER?1*z`Tg; z+oUHtnL}$zVpTEaSpLKpJ!7Mp)ajDH<jPC4nf<|CtK{eUbl~}{pWARF<AO)NZIjr% zaZ&#n50?7=f+Eqpsz|0;?<#dYZ^n5{(aeko{Mk98w@@$$#gCQKVqsCgHBQcH1t&%r z66VEMiV4Svx_UJZ_oVaRyQxh)_Y5tbSa#2W1y3~B(nL<6Rhlj*)H#LyR*gtceV<gY z4{MJO<hy;8hRqVuza>hihr5{gPfi)6biW?(zHc|R?M`@Thl5y_oQ`h2WSBOREL9{R zJc6MGwUOF9gbDA$(bEPzN}^(woPS?!0WtB*WaHyMH}rJ=Ij>dUMtdV0A7xOb#DCF4 zY_@5`A|MeDA_yh}usqtC&JKv1FO1WPaAF!ir-lKVU~FtEPWBV>q96lyl5{(*--~j7 zgibW~U$(2BQ0a=mV!S#NiW-xq7DKDxnX(7+PCU6YJd?v})f)<EbCbFz$lEn39p}S` zjB5X#1^%ocdSOL&|GllL%k|7#@{qpJt>v+10^m!+@s9Q0^7-ph4$pK%GQ8wD%eO5T z`L*}w4=sq3EKkWeuA37)$)Upm2u{_Lo;%Z&mb*KX#j8Jhn$5|&!8)SO%eC`_!CtHc z^t-|dh5X2$;|}*ZUK7Z(V;s9}e)*atLC<$)$7Qr&b?c|P`&}Y*=nXM%%<~xaPe#0T z_%c_{KOW$fe(wk!L=RLVuB;YF|Lbm>E%Z&<P~(LKvO5fA|4|LEUH2TWUi{VfF>#{| z7L7-xo+JHET}J22d!fR9X8G+*Lrzf*9<$x&)bBWCv9c!z;oJm+UuO3xp7VZmo;a_` zaPatK_WbF&%I8sgs%iXjM%~|Q!;dLd3P!o!Q5ns$f<1x22v+2j0{pJ}5XzvI`QZd( zmXATPN6u87#^Sw9lK14&>;=7XR5Y#c-M?Cw-rQ9Z!wl=^xNv_#5O5#j-0%Me@WX@{ z0_DMdE4ZJ>_MZ|t(FFhKS+$#5H=-EhjX5AFGymD6#FC>FMB91B?|zf0BRR$f-5yl& z%%d}qxMc4kIjy#dC$B+-7;Rk`0R+tNU{sgt`vsXF@mGLIZ-4sN^sk$#<kpiJ@WJ8> z4q*WXfCF}t$TvW2n}v^n(gB!^R}i@R3qdlkOfk_pIrKnKp<EEifUesGq-Y4d?Fby2 zZp)!UvR^Sk?dxC?1`O+c$>XLCWebaj(LiYO&R%!D#-mMuL4;&+taQF-F(=tz&>U0P zTg~BnP(v~^yk6zYheH#Ar&a)oU!E{EvIrS33mhd?Bd#0h9>>bo4dyQ_?fKv##)U~C zG<a}-T!@eupnfLG4s%y9rpag12cNzvM<BK7*=G)N3C+=pXqx*0sNK(_8c#+f3-Fk8 zX!jjxlyF3ktqq<_pEW*dx_7w?IZm9E>-o!NuqcFlFfMp6fRIy7i3P{PE41-l#7>6) z)=Y{fT;cf<Y!AsN-*dbBnr7d1@wZs^`+^Als3$mjoNB+{&?YJqn+pf6cfne4D?5oc z6HvMbg)(Aa2Zd54tJ=O+cH;Hhl}<kxKwKR<+!eK|@hY#3lPa=2_B)#8nWn2|Z5pgU zIahBF)SSuR^nPOwHNh45&hbEoT++n;wp;U&1%Fr~e$5x!o8Of#JN!>~CkjGnjxbLP z=N5~@BpY@kCLKj<LhkvW=I?*P`J1&b<acz&GX&>B4^D4~C1^k=?1xl#6c+SvqRz09 zD!qqgDlDZu|M4I4zvXM@i<<f*_A}OLQZ^a=!kCFJ{GRqYiOGg_*Q>YVJ)WhpLhD7x zCXNOTx)W%mwdT+41D)YVu?>#hSS_5o;}uIBENtsz<SP<5JV#|DoBhB_h;0M)&M-vr z=%NlHK@!j0^{`KaJGkv6sfU`hiMLHx0xP@dz962$Las~7#eF*#E@Zl;rdH^0EV8V$ zYQ@!uHXk}Ky?%VTzln-TG_-VqDVLdxM|qM5xUhw&-lq?ZO@5b_RfmCRrPTVIbwW#> zGi4%MVv@4n^5Hf!FI~^=m%coA{$hc@t~*jT<YRb6>w}k+5beg>@kyIUe>X?uU!;@r z*H@;}OIpEaH0{wb4%8kM0)M?8jk_`a?#7q>Emg|k_m+_d+?c4(v9f6+04J;Yru7`! z@(O0kw8lqZgjA*ogi(9B;2H_Ssjn}C=OF<#4-)~=DuMbaR;)i7ae_i0IVqs9P;_y7 zppqj+h-H^aynJMuZKpl)<n5IA@qevFf#rS72m5*(a{S86&yt(Y8bDw{&j7<3;^osC z>>Z2?)@ee<k!K}_$5LtXNC?8<Z~rq8hv?f3*dtl<qcDUgl1>fCqa^)2Af`bRRxcr= z7og`$6~;jU5d|9}afKJ|DbfmZtG~E-0>??x6bRb3Zm_o;*uC~Vg4TcKoqdK0-}kNf zzI3RF3BUOB1uFDRf<|t#Q+^yLEehaYCh~di1u#_oD~n*8R#Legm#ApK%XYk6fD1V^ zWIAPYg~5cC*fNO-F%dC6`7o4|YAlK$D#Vaj<$A7}U}w460y2A{N)SRWq6iR`jf73p zxk)=h)bC*HfbU|rj%+FlIjhw@`RSVN)3cQ+Y0PSrYuK**alfE8W;{_@64I`xKsN86 z{ik?G*&ruo4CG8l-R!+%9^X^0G@-fVFO&MueH%zIX3eHd_ln=;Cgl3MGu>;iHF$Py z$U{I(t6jOX((&Y&`Sl=o&Yp+I$#-?svL{&BwP5O3b)Ac=o8eWKWG)bis{Yhty*!tW zQ~5IP4Mbg|Y^y|R6+>&h=N%%#gC5sh6cyuk-V(CDwVz<#0uE53p&s5FraBHA)!R>z z0*6_!dp?PpRSryJq8(l?L5C*magG(6{|W74$$T7)4kUx_^e#BmbMR?7J|)@QS`q~- z;H}-=C2x-AOK&3^g$KHc)dZSqMP)jgA4+ij5=$*1oa<g9omJ++DVyUpP@43~?}jO; zDQZ1VZCb8kuE;d*sBiXN9zSE-cjuL46%-?g(rmq3es!1n_>g}4Le}HXhNr4t4mme@ zI<i`P=?)DOtJ*9LAI(-FSGUdn{F<Y<`G$~bSeP3vE~wl3K5XSbv9Z`lJc=9l9|@78 z-YoPwgf(YWUVX#NS<a&06CLx%68-ez@&;EP;i^qs@gVd}rngj+Pd0xuw$0qH-wQ=R z*d@zr>ax=~jo&su7%y27^x}6|Z+$?paOE_GM+_sUu3=@Vopzo?6B~2df5Yp~Oq2SA zs#l4SYz|Ul|2!O5{E=j#)9lsk<Xihm+Xot5qD4<>7?v9}zl?I8e$i?`I|)qjx77Mj z9+eZZEbs*m4JrzZQV}+9>eU5Pd72GN8Y3w2z|E^`ZZ08-QO{&zS)*S7o>)VO2V@Ct zHb&Hd%sFG;y+!H{hvi)9T@xsvYO?{14UE=(-m#6>y+II;KLG^CV-ay>SPp)WhA>u6 z4qm5Ft^sa~-1WothyO}d<m-h36s<)t&xNGsL%+d9n^cD+GNS>K6~Cr;{tj{+MKB*< zRYSZwLU4K7<Zg5PiY&~Gntv0DQX}KRlB0boK^wLyR0l;zpf6uRM(-q3FwrX7M*!TG z&clFki*Bz2B3N2$(<K;&m-GRD+Ls($m;o_lY!O_Yy(W{mf}@jO0dY}b^ly+ar%(zN zk{R0n^Jn;qK$qbkd+Z2X6*3wbu8f}^_0>>BSZ&nJ9sUnN#Q0xdcJi+_y-<ayUvl9O z64yWgc|<6jL~i)reYwbkwZ25r2T^gx6%<7rFgb9E(oep=grR^8B8h@-@E`;txBeU0 zIvb;xAz@!2nSc;xDm$}op`pM<^;=MArWw+5(jx%zx{)kp{e+;83|TRui`>i9y;J#k zX!kr1(=gE~bD=rJwe+^<!`04kmMERR5{*Q)ZK$ei>-{#QMmzbX{g0=<xvBC+#z`2t zF0wx4&7Kfc`_{)wVi_DryRmn#xCnD<#CvP*d!o@XW6i5Pj4dsv-&h+iIucs`mT?OI zS4Eh#txa2%MeAx}>c6+W{WGoHw_;i`&nt1lZfbL2Y_k}ZfU<@UAgTs8;QrB<b8isl z7q5?v+21Ptk#DBwA#&S#@+a#h@l8zwRO5I+KWc2L*?spI^|I@*OeSc3$C-tVF_@PZ zmu@M>{0k;iz)RAfy`1A%D%9>&7fdTehI%tEvtl_PDm)~C=DvKMfQ<S8Wfg$`=grbf z;9^ze;`Ytv<31h7aU?d&^PwUOtd1|-mJ>!O9CDQfR1C^TRTZaEJw=H#MW?^u$D}+m z<<?KOQD<!y-HI~Z6%$Q~Q~T9se>bR(v`a~|>GXnp;~-75f@KsUf2k!jKOA{+K^In! zhTutayN7i5$P+^4y-%ifl_lX#!4`&(OSB#qtG*0>`i7sY-)Q%H-=qYFxIjv5B`=GM z$fNnfx+>dwa-x^Nyx+%0MryO95y=a_kygw5ldqj2Xy3`9BJ7){xW^-UZLaHB^^53) zwA*p0cYT#?V&7Jvz}{yde+W78YwR`#Qp&OWA{Sd_L9*Jp*P4qDJ|-fQy~Rw>KfTA1 zGWqDY?ORwV?NScMhnpUqJ)vm~tQZxkkHTeqb{&CeL-98OL5zazT3##kMWUvtjp96b z>d2#-%)%Vn&8ftUEPg|lVONX#vN6_+WPT91EdU>i8xVQK1p#s=*)dw3w_*fgBIey2 zafeY4iAE8g0QoW-*Rer0(>cE+jj==-(g=Hsb_4V*cd!%#Z2~hTku&rA2bERX!8)dL zta0b#o%T-_6j9hs;%EKh(Bo@nG*{#d^r(sz%T(&F>PI&}9stIkOvnKOHalY|6o0?~ z2QlD)n4SJqOl+y2l5@o)nkMgfEF~Dm<5Nrqfs52;0q&Y@9wj!S?#~ujk6q~S5$*;Q za?1uiP9?hom`fk=5$cT+ig|MueE10AXc0(&7~ST-oK;v@KOk??=s4U(6NIGpT@hrK zJ3>q=^oKV<==XO}x2Y}<<c<h&bTA~qpAbkpb}CMAKQ}Pp0SxZ%<{6l>y+fv0C=cGB z#6#w7K@h|$iVxB<`5PGW+^RtmbOpHRs_iUv6k(%<f+Wr2fl;PRIzy&^y`J-|Q(*@8 z8~wnZOY-wMrix-W8pxY-C2=(bRss(*&IJMBRyOT0_$AqxY0hF;J{i5)Zd1Bc@ZwIz zd&6EkYV1IMvYT{@j<{!fW~P=*8_D%6$Cx<Hm^eGN;G}vg)jr5k{=Ym$8VM`7a!KP8 zFrSZIWmj+nFtk0FAgQFE5;YUnGI*I;j?=KJg^3Mm4_SajN0SGvs}Dobv+5?Mvi41M z$06hy=-asMlcYqz2w!++dWG_#4B210ok(dp?O;teB#{OaI4T_FFK#9rmQ}PcJzEK1 zlH;OjGTfeVl`j3+c~*5Z<#WP0g*s#Q;{1)=_i3&^%pd%5lt~<(_#tX7eRtFDoCr}! zs;$ZAxb=63=DqSVZT17FJy(_U*wC-|69MxIY7fE;UVG*znSVI*n#W3^pWz`IC@3I( zIQaaryz&GkKhLL;JbF^mpx5Ma@9Kp;-_XQ6=)UmzdX(QgGgZO1k1Z>D6nE>$u$*G> z@VRP-tq>(!s&gv7iQ{N0PHymUdt>OId>A|D?Hh4V%DOWPzAbGyejybxfm%N{3lJlU zJ9sLhZ=;KQj+tD~Q*a6{=MDeTwzOcw5-^4N*{(JU*`IDT2oF!<c@3A652&%fapd2p zd46d-zZWR&tl2f+EY@ijr@>v9sf0tC&WCWw4fxGo#e#NRAjRj~`>&pT{8yo0<(NG6 z$7`1r#O}5Yt8Uwi=k!}EgRMr-|IVSr54=ZD+v8~|ehOy!5O3Arr>elF@t(Xl@myCR zdVh*SkZ<0}EJtE?l(yN4b8dLYsPNR%#$ZAV#H?-(Kh8G268<P4QXFwkvS{O_CrxQ) z2ve-;bj=i1a+XvX%PBMkH>xZ-(T@TpzZy9^cvg@8F-4p(rKtfk6s(?tXp_mEY=Qu? zrA+l+{<50sRxyevYd_Ruv-CZ{;0-qG_K~AFv3ro?61D_zdgh_BV_N$mfZnC_KJq?} zr}j!CIh=L}JGAXDACopXGg>P;#p+S;d#IPb#5K90SU>R2Dq92h>^pqK9StPF2qw)P zW`>OShj>BRbAX_V{nI@;jfa26uu-q8bfD<9tsF+Vt&WT>4EWNgA|xP&+9#Y*K+wC< z0(peTJ)<wNf_We)C%#XMNo+V3P@!sT3OVa<hLDOgPH6oIJHV#FCF?p$4q|!==5MJe z9MIlDTbEh~<vo-D&}kHeCZ6i6p&jyYn<Xqd5yaK1fzWZqee6EAu>LrDA0}WuOBPfE zq>_5vVPhEZ>JWrw2HtEs4O}tL-GW4J9in(`SUF@`oB#S-E#n33*&@zTCXiaaccX5i z`$lpAe<h}NO?^y#xOM5Ps@>3<D;5aZ;}ha7AYV-?LU|v=Xhz!UO}RD7EO<6_EGHW+ zmgX}>?gut|qIqy3d-&<AXt)cvXo$&&vSovlb#26ihII6)%2t<|x`XiR?48O{#N!M^ ztEnwbz)eZbVVU<yLzQR+1VOyRk-RaTe$o}9SJr53d2;qx5s4@gSrRh1#$txvd~3MK z=l0$UmISKjZDsSkd9>&cEFqWF&k!0J_y;)F=fErS5|IeEb#FImOr_S#sd-()=20ZQ z9p?=<85`Tuo9on}*oNl?Qrf>C$?oXi;92X{(Jw`$GkwlLW$(rA<7?zRY*kZ8Ul|)O zQ<E#WPz|fdyT7t=%+$$VYCPGcafddGd+Ti{b*q#+r(|f9qrZO<D_T$x9|7B@4-sIL z`=CF!{Q@^9DXx-@e!7ihW;oLjZ!+G-Xz(|O5FxFBm9nH#@S#aI?RDo{v-LQ9><7x- z*U8rw%Sfzx8hfk7+IR!+JjE^PbJjOM=;d_Vsl$V-?(T1GQYM{i*o|nx#Asr8SDU(W zV!1uvqdxPA^Cwe8!>N5wP5O+CYO@{oi-T}YjJUsjDa!mr)mL2YBwg!g``x|uo7|6K z_CwM@l7%JSH-7~+LiktW2<DUFAIu{QXM6eyVp>+4*^XNOmbI)2?XUL1e^kjlj&`qe zT*;NmL7`GF<~6wMGur^V&fyt7LX!|`Uu?!}?nM2pmcm!_S^=$LO+17$?(xB4*CSiv z*LKDWC2YwLU)Frm5tFZFuoHOG?{t)%5JG=AOF%=X=w6_D#@=?>Y%?~uq9r9V!e({< z`aZRKscvSt{8or~Z?9mim<RQ7_QS*)0-EI#Fq(s7m%#A|C3!@Ml+`~tOts+HgNC7z zgfzzgoyk`>5dd&YIApv31HPnd2`)$e@x2|Xf<ZAi^OAHJAp!OC5hQ>tlHrXk#r+5~ z#G8VDOizQ?tDmCecTNQE<as(^0h^YI;hm4dcq~x(yNY7$VYZZ2Zy;zb`9*tfx&riR z6eQs9{(DfLJ)K}WuUQFXfH<%H0#uW{F2LJV6JZY<lUdk(Dr3zP#%40MuWU9A2xKk# z<r^4q!%c9)BF)7{`6Ym<8%MTlD2t#YccpCCW-j-y$_O}R8}o<tcLB!$e$g9R4@#)e z?jROQfUzHVk@UZ_SZC5u$Adw<3dSw24bKEqE5d1^hz$x7yNu?bXy6N9@tBd<vL`v* z_fZB6LStx~!HllvlAWbYk6TA3yMlaL%tN~y*qf3DARdW&r3<|G!RF9!1YQ6p`$gV- znzOXbvouHFh}Z(3Gmkw<D)FG;PO>5M%AhO4vXk}NNiQk2%m)!N#6c$$Ie3@>KCi^# zqWZp$+OguQ;sostWVbHd?<LRL(HZGDt<zm*++w0_y@oEkQrrb7+v=;Y*=R8$2hhC@ z5`p9&f-VRcc=Kf#uJGS-c@!)X*-kZYm)HKf0E!<o<xM3b73`y(C_3u+#~9qGOQw6~ zX}+R5NP^h%ZLj2~hK3*Cqnh`oIW}nJ9ny~M*<LBxzI?!-$GPDaJBKeivn;IeK!I4g z>TaTI`sB<~00XYWWYw@YoRGs>IurLH)nJ(|TvNOAk(;mXc=(HQxsy*Umc6cjL$4D9 zQy#73#C#m|{V$03OA<>35l`ax4+JHDH5*vSO`xT@e%$YZspZlx1aT6$%1kyeaEu*I zNUiZ#1qvh5WU=-58J`gWpG^5t`DZF{3CcF=-<#oMfnl$`GDm7p7=`gOIaOD=FjOc6 zK5Q0W!qikP@l?nwFuNqX)LC9MUOpzi-OCG}T;f9<kw)NK*LEB_zB8e{!AQKf|FkrD zEy<4ufuy3+aO(DBO2D~orowIC+_*o7`Kma2RS#hl4!wBllPz<TyxZZWZ|b`{MK2$- zNta|UncHk>A>~kN9dK5d$?Zb-&MLz85<w8P=-2VfVZc!411wsqNZzug(=;$ahkWgb zRPj#dBgW)GJ=GiEl_^F=RW&QLmK()asp&zT9M09j`-;}CH$2K7LW8frb%y`0-Is`Q zdCCZ7&3i<<u<J<Y$KPV6{=HEGhJlf&@WH7gP%xM6?Vd)@Dh<i$+x1!CZub>OHYXTx zon#y5SuX@isfA$j2iXLflNw_P&+$*Wf}I5~|7Tdh@0I2Z`$r_LC>EE7IbU7@rvm<W zLewInS+Uk1NRFdYSC9V{_*OSaW0TK%FReSq`p>y<@Tqw+3GgWi$Tob^Z4c&ry4Si` zw?OWJ|El89Am|xIV$DCz)(472%A<rkEl9w064=x&>A<P0`NNt$)XTjM!0D!Kv-coE zUM)aqiP1C&6(TX?2^(XuFw7g|fQ%w7`XHGpqX5?Ki-Q6a7_f;;x{!s<7yv5}oQMBq z0Ud`eCSqf?8Qi+ykotbqHP-MSwx)L?(ICwsh6ixUaOCrt4QC*kIm{p{Ed8aN^`hk< z3V4J`_h#EXt9JLJ8{)=7!4+ZyEnjVhW4#7;L(cdv_z=Q@H%@vNL2+j!9W2z4QQPSG zPCy@zSegT)w^#Y}!!V_5!?dS7e7Er>!j%dD5C88EF#Ovv<EnTo3(j1?2bAyvb~Kg{ zsHzQwSndQZXC)X&rDVxS`Q?<(^kD9WZ`lMbH;7+sf!bZ>E&0sBN+-E&?KsA_ya5E2 zySfHv4%*z)$$YQGatrT4GId*g?mVm=OBu>fnjTGutl7|OyjXM|NZ)V`ZG7Aipn0Tc zF6$AU;P_`gtD~~ReHC5qYFy6iSTa^uYdr~<J?|bA)i=`xf(<6Ln*iFkVpT;^uf6k6 z*vXJQxip^WQiJAql);k7;`AAJVSdpij$SDsd+(I{YC`j)6RoEWb8iY{{0Qrb<sV3Z zP_&;g!K~%m@y;XVyVg4@L}eRsPL=laC%0kk4UO^J^!i4Dtn_Tt@nTOuT32<V-;Ocy z-MtbZRZ|<=k?`VNR7TX>r}y<2&k*(@=%ZhjN2$mXcKuQd%Wu$|tA4y!8~e1OLUN^| zee%`7Vs7sv>lsNlOVj2M-+Q#;G`Eh*5BO8?rh`eV$~hBqF;d=(E?%4sE#A4kSq#`h zhI~E_?lHfa^}45L{4`!jWcNKTqPc_SVT$~N#N`VE**-dH2i;b-Seox`KOXvzMGC+t zqj_ePDo$9`f?Ug<`#ny%LgtQDs~Y0@8HKL)PTsq1DU|w9Mx*#7JtFCdonuBWbl=9! z+4|zS*LT<L_?PB-?a~e3J`s5_5X^;Sg(vmYJn$arC$_fz?7d2+rfR<<Vb_qMLLCDS zov;4tIdJ*5nkDFUM^8)TrDyHOBALDSRORbh^cNu|;8yN_@<+3OMtzv@9f5?m0xJVj zO5g!O&aEj1=D9tu@@@iksL8_(DzEv559DfDlj1Yg`SUR^Y{Y7fA2S3hP3>QmwrF!d zxS2_`;X8f~NeEBk668ah_zP9O<cS<3cSl#1UMome5J<!|5=8cYdeNH?V7RdUAJP2( zm@OEn=%>8@YF>WFxuJyQ_z{88gP1xy6rFVzb*|FCCQtoO(m{Vs6ZC=^4Wt=9(SV}z z>3>qMfNaXJ+;DlyAE`Ebw^opVuTj5v@el(H23tgktr|BqT!g{&D+|VM%K)ID9=*!} zRtBr<K-YnQt^lrRU@<ld%k2RMTGAb0=XLFL%Ffe!d(JmdC!onn=mU0P4OF0H0WBQ> z`s!=h*r?bIpzQc(YCj09j{AFn|8)V4;M6T)PGp*f;raPv$sZ87n=v8cFkh7cB*%n* zg`uurV_yQi`?ESW4g=98SJK0<=*x^lyANJmd|m))jF%m@eP7YbU3IndgW!<U0O+vm zp$MBE{c^o#QUM!61ZUi=0#zk1?}}pPS0<6KQfUwxZaU^%fDO1S+=0s(s_wck<>75S zQ4~m&NjKpGGE!h~M7zull`EJZ|2F;(n}ObC`LQ_8v5)t`*Jz_)GwXxqtESx|<kIaf zJ*s!K+U<BFJoec@TV0)kEN7&=Dxr^K$-YkUB3$N`QUk+_k5q9YtPiF_+f45GEzp|< zHk@F}lObI6H==37y}=8VB<H+Dm<n7L{#HYoHSvp;sB{r>Z~UUgsr<!L91}7v$Gq9* zq4}(Wq4`^shvi-qk2h=o=UH>nLj5F%%0x#Y*LvR<+U+;@c;p~^PwAHWR@aftQ0|RP zic6XfcW@iG##UGEMKLT5F1vlC!p{GZ{3fWwYr}dn=3)AQVo1?PH#!`&&JMmyFIU;^ zcsr>VNqdF`XAr&iSg`x6nxlB=Gzsx_L*&%!hb%9%C}N$$YWxD%*iK{L`ON>hwO;X8 zXHsVypwV2(N<AkZ=ImoF9>Uy+NXb>kp`q$y8ZpFCqt4THgnp=Zo#$VZBLAY3F{Jxq za1%SeX9@bEfKLLQt0yoESCq?cR+@50ktB4Vs*n^S@g1`hDnH71t)~A1t|W@KDwhwr zR0sLNgRtCSIVZ~Ql^~SDYM|}W)K{hS@ta2ej7OZYWE<An1u<JgN_}8AHElojhhLWA zaKW47`l8G#T$y)q^kj@$PoO5BOm7i!;soT0{MIBdqeO&n9zd;CfCCB+2c4i)3ssW{ zjeCcd1;(xoCzEN1T$8inPFrl)oVOsWk)?pNPkgVI`<8hySt6s0G^@_bn<$KOx3lGZ zvVLcm!m+camWx19T`}KUD+UIlvCt?1N!>tQ?YG`ej1c&n;)GGmq%|H@3gO#pg)>2+ zKMEN$5yBmAnwINNEmb2v1^XJN^mgX&PNyFPdw|14I38Q7yqzKd=5}c9lI6Dq;G-3` zDZo|txSk;3FG;;EifUe~^*c#DgKgIT*S{zI)^8;-V6XWU+u8^s{qdgyj0bKjruYw_ z8~6v;<@Dj$QAYrWEZF^E5#Vv+zxf!OM;Eun4=4B;Gn^1nx4!mD%#1v-Afw-)EFAa` z*%@!<J_gxOgvSoHTv&3%N5DcMz|&LkO2ZBYshF%1guqWB*-*KiKtOJ})B;zrEK%1b zm854-w6iQ2^p{>i5Y2kv1=!03w6%c$Bk3%FqTt#nymU88BS=d~EL}@T3W$nGtJF$& zccXMlFVd3IA(DcCz|ztUD@aNAfBF6yM;%bq8SlMsob#MkAZwuj$6r7Lh}l583@s5J zSWZux0{Hz)ke~A&?4Ak#GWfB@H_%Rh15NwK+IhQR8RraYV!+L}QALNx+12)Tb9~^? z$|eOXaSGUg2{3iGrpsiU3B5|hgWGu8od8yM%bK*D1@R!37X%$P5G_cd_o9i708we& zn$BIliUa=6)5@4g-Bk!!(bEvHdxzLNLXdIx?Z;7PHH6;?&|o#pU;&pu94FV}O!<8f z@k+MAPlab#>AUvjuHcu0uF)AgU)!SHo88GQht($T37aZ;$h_y8n%!S}-OFM5a;Z{m z?xQiasTMJb*a6J3p_+p-bizUX>5`KiT?O0=y@GRxrh_-C{c>C31A&sVd>x(Ii_KB! z0d|s*9aN3AEQ$afb#E^qrF3bCryX^y8(qiZK9#;XP`0d!fk@-`+8<5M8_gE>9;s1> zwe)Ew=u5j%dpW#xPKfTJtyoFf{pjS~Fn&<?@RV`tXI9H47%dK{EmBF1a4YM~4L!A% ze>z&0U$^~l2-Nz!ox9aTJd*f5lLpzABV+iQigxJDwdXaV84`Jqez4m|srG1wscN+u zw4LI<iX#@e!Q^W?_moWMRAc^EcHn{%xvz82gYp%~KIf+m<$t`adp6=*%^)u@7~Sud zW-wd}%Wn>WijbM-PxLgg2eNWA97cKc1a^jc9R|5BT$Ps=^kf&**Xl};<(?({`AS1! z1f%U>QO;bt@plo9?J9JGPt@@LEh#HbZTa++|I-7+R7Bb~rNUK7!Nf4Mp^BdERBX83 zEZ>v<l21W5O<lv4>#BVF>0}$5qxS6m1YJ42KW6*}!t$0qCtva38^~`t1X;_w*FzHy z%vL-$6olTr{wYkzwm*@ElDyUYT}tM#s@>;!FO)p&%#@pr>~8}XXRKy`&AUDdy1ojn z(?`D^y|VLgCe~U&{Pq=~p77sUICl<(iht`dZINYsLb>;8iYo;vi1I(N^ZJ(kZFk%= zew>D-fRm;tST<>jqDg`{xw~sjCI`XfuRCR#n;)fRc;CPjr6{=ic**1S567D?DZbk( z3kFF%H{@+vnnMWlU+gPLh{S0R5T)z={7h4uJ^bro3>c@Ez4aqg<_q3HZhO-brZ=7> z$=}@)!qO9W1-+n4QK1m79F?e$R3)j)iT9p3P^S~7D=eS^9|=G;tTspkQ97WFDKCH1 z{&Z%IhNQ-VAIrZ-SW<5koC;eZEFs9IRqH*4Mu|IaO3m~p`kkbW$g8I@Ta+CKsdOWW z5wP&m^by1sbqL&@#c@Ef+8$4UgPgUZ#DKR>gVQcf{sFBvo*^SVSO_3g+@qO?E(8%~ zK!EO|KW0fI_7fcX8es_S$Qua!LUhSc1Ym)~O;oEqg#+v^bJ1$?(6<W`aDrqoM1y6l zA=lj`Dlc8G^sv!qAjnU65UBLP-S^Z`a%A}{0-rQ|DjGow`Ucb<N5fC&jy7ft+}E!@ zwECD?i_#KhHv%q%fzE@9BYP&ika9H;hm#yFTSHLrEBe4v5dQr!h$lXxg((;f#)Jww zR`};#?3nAif3ppC)wR1)`ck9gbQ7%{sfF<#t}mu9%h%9g$U}>V8p?B8q|50*IC}1X zqs2sK3!c_<1Hmdm8mhxCdV?q_Y~=Zoq@>8sC6NT`3Sb$EStop|qP*qOE+vzP+-TOB zj=KtgQZ>m?iRi@oxg6Nbp}B_<&YUCM`$5`{{m%(Ztv14r&AL^I#>1tm$=Ons(ELMf zQdkRVt-Uzz9M8R{NM+%1D;K*mk3WZ7s=S<Hnrjs^OTTq)tMGT{q#Y(?pVFoVN`{wK zT9dkz(d%MFM=Ms>=_b5GpUF@)u>NA7%`QVoO>Xy@d^~xVsrT8VjSab{@|lVEJ-?s7 zl~3`Fc)k(L`EDgZb2~UP3hk+H(5M_|ztXSa9XbBGTe-Y;)`D#`sG~?p;z%SUGC_$= z8aet1k}uQu7tVusvi!KC$VMWPrqkT4@;O2UO88UB`Ak*d-6OG49g}D#<40uA+PgB` znBqcd(iE&V{p{Y?qne2YKjBHxtdGyR&kelB9>diR-v;VId!n9(==Kmji&l4X7B}ci z(%HAZX-yl<`JQZcqLY-B<hy^^qklVIK!gyJ`LXNMb=y6?(HU@+2&b6zJXXU8CIPt) zSNqF&Z85z<@h(1OPtdSpph5GC%{E&qx?u-tW<SW-_pN{NiVB^1jA7{QS{Dob?D)!E zlFR>(o-t>x3cE7He5{S*_f>&uj9c<F$qam+>}5``yZ|#XEAJjeFTq-HzGoq??h(@& zqe2T&vWH0H*lLr2FJB0!NgG~(oU(QOC9itt`s!@8Mt><|^79R7&yK8D>dDE;h8glo zM2t6>Pg6+?6!}D8l-HDH(k&nqoQ(#Hr4{;kH-aY$qM{BGA(XJjNf7{RH^58kxs5cv zu?rCbMg1oDl!BH&@R@WWjz87hd%H_u2E?bcraQm%$u#MLhO!GX%v6WwI|c5;GPL*Y zd<1yue?TM#^0YvN>X%Sc3yAcW$lV_}NQglZNTOQUoR&voOAq5A+6JRQ>py@H6*85F zWUc=MkGjp{?|=uoKJXC>S?!SsfnPn~0qJstp!I(s3}*RLAAxx@^H_(TpB83aq{bJp z>(&BHp*0f_+EiC?aPKEyQa*dV$M7xirwNz_(5yX~v8uyG$OYmd{xoeoe-H97z(`;^ zNX8NknzeEE3#eSk!qJe8_>lR3!G9U8eUG<vAaFeZBsu5aBMk0<q!UcDFMWdm?hvq~ zNTEf5NGng|FaAqO2(WLPYFyDgehmf-_i+(vH7N$a-#n`a)TX6zuvDO`y$g{fg4FW( zb8lpEH?*lH+w-CzN5KgIdW4uerf%M;Xx@@7QOP}E@*;6#Oqs(P&Z5`}!$DTmGk|iz zb3JW!NR?6|0q(Fl84T<=^eAZ*EulQdHB_h7GP(QmiuI2K=fsoXjx79sJ+XRqlmzFG z*Di+#)s&TPIjP<)_qf7~80;$Cu61xl1M;(|z1lv|A{G%;3V9sMbtL6)$6c7%THT)S zwK~`l73Q`&bcrJZb0xjaU6`U8BpG@it&C<XvizA_;CA&vdn$AmH54K<w}r`|8n&A+ zvH!#&YCOA8MFA@t5)pm8GFxoecv!@J>b&O?HV!p5I2F*DZ|8;4-@Lh<O7cRNO5zdQ z|863A|K~dzdHm|(Kj$^4RT6(J0<Q3+$mc{y*N!%1o0*;|36`d%TMTOIWD+}lUe3j? zTzj@}a;bLwel9}#0-8P*r^ya;xD3B-V0XQ}rCYeH)ZyC2)wA||Xexy)zkN=N`pHKm z!xG8fB!s?>6x42bbt(MT;WwA!s8Y+a&5+*!2d8X$mWDd4{M%CVCqiNRF;)F5=K*Lh zOH8*;_M@d;;`%s`Ux+rtTTV)?dvDyS)qs7OC@uH#iY{ep3ZZ`P?1xuSAVHSb58vBj z7s~i#d_{joYe~Z#70-^dL8m8s{(WJHHapDN$MFUH_L%>B+_}D{*P|QCf*l*QFFt}c zm{wJleR7h7*M$`WN81LL4r22TB)!f@o2(pfI=RBntU42kS-x}h{lM6}v1WVuR4Jo@ zX)x4?<wg0;S^nq2Eya%~;h!qPtb|SFO{R5W6TWp^9h=M@HI8$FzmKn7pvK&C2|`Jg zR;dxC9{^bpyw{%cG)KS9?k4stm382x1L7!<r;9`74Bp_*kj|n<@E1ko1;`0q`OVxN zZh@54)L|Y>0Ld5JmzTT*RHbS0Xi^tDOdEhJ+vA|(0L}e{?J}s`!57jda0AY7Y*@wt z6$VnMRGcpf`=SybF>6&8!w3prp@U3_myrE02!iOBv?;`vmIU~`2S2CdfWAEKZxRH0 z-yVRK{M&(y#+e%%*=TM7LKBC;%#|7gQS%S}|K|PJ1`lz0?ROvMtSuZc8D`fiAeSQ? zfW3?r&{M=^y6~oqjvEZsC?K#y%qTEK|AC88%`yK8Cg@%G8rN88(8(uum<!2)fc6Vb z>i>7~gC6E#{__%p_L>MA!^zkaH2ogjOaWp2Gz_@Yj${Xx^=t8~8XGVO??4>5e`vrc zkYHgB8nDq4$8%41QShb=xMPH{(Ogi{)V6fxm$}8>BKPv?wR=aBBK-}OaO6F5aszuz zTo?#vh+?yil;!MwlyavLx(;Fl%0f<?ulQxc6K1m*y+l8WUJRF3)GfI|kZ_^jUWQxJ zm8ggAJrhH2O*d~;zZ{!Q>*C!+tE5@K8RMDTo*~)QS$k{;#gAc{d&Z7hR%Ph8^OZ}q z00+upLTT1$|9}->F(tW}4Nfqvh?P{fy+1nP4t#vMwF^oEd1ScG8Nyq;qvQP?@Ar%F z3i1njgG@FwOA?KW>$#JlDMsrT*K3A&4ivcCj>bsJfXGi``A;D+T?W5HqGfest9Z`R z<*Lc+Q8N+8)S8OoxR?G$zPBbAlt)ZYVU=yxDn{BOpwB9!dRZ^}GF+N!NvGuX+)tBJ zy0-$$h{*IWukEU?AHK|{7HLl(gAKZfu-I#K50YIU7M(8t@rikEH#NZSdKpWZM`HY! z8bTu8f7az=nwp|k-RkGBJ!G9Z^!u5b#*#|f+)y-jFQ5E+VJO34eRrMIucsy*Lvm@+ z-0`S!%s4AD`L_Whit(A64>MHCdP4PiqYKjuD+^!6!y|?2824pS?-IKL<|ph4mWV~h z#lAsbc1g?^39MPlT9^HOlxf?K8sUO(bd)5s;|bqnN~ojF40R=J{|q(JnGIZDARU$S z6AwWMEbp<_!o)LM&)6Ep8uyh3>}&`2wwgb(3oXrj0gx|a>Q3KmM*&PJ&y?3aq=OVv zoSqtg@;FOpQ>OmXUZh?K;?rt|O-Tw3B$e`;KkzGi<9EM3`T7$-+*Vz5J7Meig3ocv zP_P?62g{Pw(JWHvQdx`Ib0~{P-N>2d=rx)0uBd^Zdd}TY?uaHrOfy4{>Nh{3rye4L zg#Zy9@S}SIU=P8&3#=)QJ<O=*7E53}5su&}lCq=^65*(Y(#lkl9&xUu5U`m?4+&yQ za|DQd*#<x*(C}k~KCZ@Y{v=0ry1hy_a0`W$FG95NV6i(2zlZ1u@Z@6CJuD!t;_se< zKWSiv2d(zKz8K)7@mUE3Y?y(9{7pPqxY5x#1GlNbFgj$=00`naBb5O?_@_{qMK3mN z)9o>4fRe0)Mh>uj8@A81F)Qq$pCop>fgwAc8d#xY0QI@XG9->F6?=E?@=dP?A3Ca3 zw-U6~y?9&j{k~{fVkX}n&0cbJ*y^*67tTgz#O*E3o-DL<{bM8Cycy_mR8RGcLESD` zW##no$`%Uj)H(yCa5$tqc(|EEYC!^mc#Dqa+tc~e)ZDJ><tiaCp@hwKy0hv*&J~Fu zM0-NlbRPE^{4FTt&ohd1d_&noPE&C6g167JF$S9rE#+e~G|FvSHbS_EzXWei>?Yzn zBeRqX7RJ`TShI4v`r}cl<QU<|i!jfX2Fmn`1Owm-{!6+YYB!N?&$H_9e&f{Nip$k@ zrsQS3imF$5hgGEAvy(^sNc}9KjEd#o%fPopWl@YGV>iMXG}QCr&Gj4OCpVw<wNeY{ zqfV&3_NyP&xfvGWdHvW-Z}B!a$};j_4t<H`dhENs6+XF9R9~7iL${alPj_pELswU} zKL1tB7uEgq-vzUiq&|MZ9`Cu8*h>M_`xSAa2eEpm`Akp&<#1aq1>W9eQq89ngU_5v zBQIF<M=_N3i78(nbXXRciX;$`#CQjM!S0W%BqL`#6yS@|;>zSLtvnaANJtnhG+4tj zf|>c7siya-`CckN$Y4_;9DnrzHYXr6gd?T--bz8T`ga1~76ZAzfWz}H8?>jfS0za{ ze9<>e$}Uk;kyxWn7%QfQL&xHHTo!$m-TT!Wj&eN=Ig|&_85lI^jPwb^-|;5Y7Fu25 zVl(hDt<u<!M~;+LWhk4<yN+$(%;%9HMJ&7(%G<QKm|l%xits7Del-978CA`&A$6W2 z<Tu;XZzoOB>un`|PveYcLT0=dtjtzaUvxC`N!QKiXOc5S%<Zvc);MyCuSUQ^ogo}= zaU7?XuDgE<K#&KWv4rW*$twSesUBR{9kohvi{R(l^_Y2m$S)OC^D-tHO@Lki-s>>B zoOst|<hRZT3q#U7AKPS+(P+mclIV*Z*)bX{gMS{d5Q+A`H$_)nQ26}2`|2HpazQp! zN_VWd_JA_Ay8A;8*MWfJBeL*FsY3z?1_OYXex#|LR2*tYICo{U;ubLnXIllK->u!G zKeP@3B|GU`piwRRkGaHu@lpZl^=UGc!1DhrHRoRdiztW!GqFP=IV!|5!96g7laMUL zmwVjZDZm@d_(Sz^b*QO6=T#j5vIPKw;!6x^4Dcf$tw}MXPEd{`kRyxbPxLT4ogah{ z{e?bDY^2g2KXbs1TQ?^J=~ev|qMwNT3Q6awriM8a18&-Q9Vm>0?qPsUJ3cJd$qqE; zGnruIt`07xK|Qy-cbo_@$oJ-fEC%8@3_T#_Jv3nV*ekdrASci4#p;hAbpTd624HQ} zsd71Zi1iXsVYmN5E2@`DIk4o*<-raCrG6f7u9RVlMm@R6;~2gsLR;{(BZY3{Et$82 zl>8CHPOM-z;qjx-xzC*O1Te!>f#K~w9*N}@O$!N^jTFI2BToPiIU4ku4ka345&4?+ zEU)HZb3ws!g4$*(f96!Z{8PZL45#~p6z^E><_oPy%s32=HHr38kHXtx`-3-yD`)n- zh<Xu53Y|A@Y-d?UA3MKf{BtZ;#BN>X))#vPws4J(OD~46EhGK&ump~3@Qvt=DwkmF zGex-!kty<5p00}>cOKIHDgh}gLXz#`<JGXz#GZ6RX*H{3#D=O%`Ef1i+^hep9F48p zQ7R}LeXBM}-jaIk?%qE?FSs&%eeF>B(%D;2&CW4BCU|RK2Lp>y;{g;6nn7gjIrZ(| zcRV8Kw_zZ1had{<t|wbgUS#Ns%1Wj;U3^J#dh7#VxKO5gXFkTrU)%W+%|Jemh@|tA z&)ii(c|0HcWWQ0OIFar2yQow>71Fitq%FZtRaxno_pVC6*;0MuPF}H&<ar%Mj}j#g z!Q+4GJc+}D;rSoi*q?tl6ZPMt&DQ*2<<wD9a7-1Hvo;mO{7j{uc0y2;mL=MPg^oJ> zFNbOQlxbqaOWlUW=5CbZfbJg+;*N!%svYAhnUSNl6;wYBQgTk8E0R+FR_XTFzM=3} z|IDCL1lRbGW^C$-|7LD?-~;6!Tlri69Wl`-ifP(*anIjuC!);+@J#&HOR(DE&A<th z63i<*@SJud$%uJ9DarjvoJm-teJtMC{N^|VcT)vbvc#2><S&&~()*BxquNsfhi!uI z&8EbB_w!Tg?)z0T@PY#3c`=P3Nz=@#gd^7E%x`NNzYK%DcO{d)LY_!J>GjzBqbFj} z_bc4Vmj2KTx#eNEwK|;@qP{1Y?eH*vlKsKSJ;Kr0)06S6SN<wrP2YN4YTRme=0xCo z(ah_|8A|?%i-dUp<>~LK(SP~SRn`5H<_E%jiRDi%p}r8+A)1#65W2~28(5G!t_i|v z%s@iz-5~wWOe!3b3EFi7TrVfG-VlIMNgMtsm!kpnuPu&O_PEW|MB4?;xOXa=$;YJx z=F8Lr2<28?LnuI@K0A91xw}rpKeauCNT<l%igm#Ad*vZerWsu{geV6!Xs|CZ0j1c7 zBL@wZQ5XsYH1^7X<*#wr1Lkdtjs%ce8FpYy$yT@zvj$LNMAI9fi}l+6qftu=DWAo2 z3hy@;rv<02&6@gx=YdBx<U-Q|aL?@c@DT#h*hmanxTO+@G{}~;M=ieTQpg;Q(-XKM z#KJ*?7L5M(!UmId)37iZ7LWuzZzJ;6^S#d`U_*d*Vw@g=tQH`9m=dmF75KpNO-ta3 z(;kzw?NAE{t-Rn-U<bdhH%EYi9&%*=69dF@3J(;&Dun>R>Ocax3#uohWE=c>T<g`i zwZ5PPP+MOwtzGCbk)^}d6>e6+J6lV7uC{jqIV?!@Ko`~S-jb(q)rPY95u>4}G0_fA z&Z}m?B-WwRFxhoW4dx?}$CY^g$H<)~4Nm3bhG_a+`rswqM2zzAQw2$!TIJzwWg^|) zTzZoetb(35ZL}Ap@{M10v3xCvX$9dWlWrxgMpn{BU>EX35&;~h-?v)nffEHm8$$P0 zLUR3QmcpuBQQ%3V=fovKmuoH}3(tE2ZGQID^_iakY~#O$z&`=m($3RY^h|$y!V3*s z&kat8a=6`ZU0%I_^;wSu@)Oe6<Z?y5++;d}31w=6CByB=3p^Ald}2K8D#k<GT*a57 zGe`bt;;LUpu34b)i*0>|0OwACQ~KJ9p4s&Nw`PhrkK(AgZ1?+mz`T!cqpP?&Tv1<o zne%XOp7rC0eGgjL3%6gJSj2?^K@zxz1^CmMLQ6flA++&I3Fa~kO~zs+q;mPh3@xuO zhHYI4#?S52jNLPmK7Utms~s<1SH)zvT4j>W{@~P$(UmF0Uz`eo#`6@BFgm@q2{|T_ zd-GZJX5(>R6MlC)*V?*`x0*YXj(>d!IM;bkJyMQDYR6pOZhql=_A&%<Int^=w4k2( zjSC08LB!-$&o=qPwVVVW?vzDLzd<cD>W{?l=V~8|CHD|Lj2M6SCiRalpM#LN@Tqo{ zd=Zx5Q-j0h<!4u;9n+5)Ub|Jk%6d(*FX8IcnZ0=N#)PHtIOjn76Q_$vVXIRn{yUC6 z-aqALTEai3QqRvL{6r1>7x_m_-@#?Pt5>h|;o2T>#!oVo8r9k2j+#i>imm-RJ%V!C zW;2PQSaYzf9uq{(nUDeH%%q747>bK(0w1Y1;Yt{Z<1dyKF?H-LZZ<ItGMw+Sna@Ek z9^#|w9N2g91aDMg4M)i>4ic7K{=kz{5OfApHw*-kck44Ce06w{y&DDasNf}S|IEjV z>8o}>rUc^BAtOOV(94Ae^zS08rMn7ZKvsJ9aZzbL!2ouO%xJj`WB)@yE)=<gKaAZ0 zQTGbbk^0wC_hFmOOrTVU^?ilVipF3eqxfUdk&r@A%-;rp{5vW?a!53TGFvUkv||EV zUjLD$7e8Ci+D##~#A41F1JNKDZx9Q@yA4D&-?s1&j>Q1pLKC2fhwv;`&|%gB6Lv#D zN!_Q>;&lglJD-`{jZmBn9y&;EnN!Vlw@65(l3kLy#VicKVhnfX3#o$$x|>IOs`ShI zCwnA8OJMv5AfeRJVO@J@U<n|!4$S5eZ%k=E1#DcQAppNzyK)Nc&QnUD3ViA=+kPcG z1plIUy95zJJoHX=H%3)b7z(F3ue5_Lg%va2&%(-g$34V*au~vlBd@U~W7Xz+&3iIi z@M7Hr;hQVJ^{wo9TO4Y&BrYq0C!$viOA|M~P+5yHwr>8V*NsW%{4Me`E6dDOvILTM zYHj^^JNKKd>H3p<Sp7T{E;*?MhCt+&j+V-heL~?9<tMuefdoKQ73E&K_w(UjyEI*w zt!;Uh)V1>5JF8ayWzBI68hKuvl0aksvHgi7Z4|x_^7+!pKhmX*<!uQ-K`nid8G})F z-ha8#bGb3I-8{afYTLECF`?@^C+IW#`|P*VV4=?%5nkiq@6aehD6?|5qPt0o_9M~s zS_Zm{#miD`6W4-Zc$I&84CA)Rsd_vo4W0dH2)_uQ5Jltnw~wMDLOI|Vjq#go?sPv^ z3EiMP$$l6s1KVvbq%sVT9BY`{vT<9~(*OOyLx{%r{|HiT6r|-x-~7NTk>NkyR-HN+ z+8T#t_Q^o=R94oql{yX&Uh2By_S0o_EZ2hTNpYg9A}jsj=HXU_J8P`P-cPK*No!2` z#^UoEG06qRGwBQ~Cv7;-B2oinDg!3|{!Nv{sQ_e0&XBSiuJ;zE8o|oFR$9+FwBNai zs;UZ&Y1H6UCTMJ5wa9#$?$+Yit!X2Vcpe{z8`FRjS6=g#Gn)gKB7eG;_!~}E=;xf$ zM>T&(7nSdA*T+1heCV+nn#zm77>G1x`92vpxG6xYS^i{LEcO0S+_8sM;Oi8eHs(Ee z&!?+zOQyK194%b~s!^4Ot=;li0xmvypPaSlh$Hc(%5hZF-9F1cTI5~*nq~F4By;IE z!G`az*5rcV1u3$io+3PB*$QmJolPmpfRuQ3Y!1L$R4+XD6AX^%T0@BM=YvI<@DF77 zaxiV<DO8dEqG9>}^7nc>Nj9?H@}oEdi|sq#X-}M1ttI;k%DhLunM{)$RPZzV>&}F7 zZ3A?hj6r;FDmMub$_ImUSYoN9N3|gQLqC?l?!RY$r}|?_Aeib~HtpXn)rnx1efD5P zz7ZV?q^y1~A9PMbYViud^&$Kr3w(012dvWdxuwJdCNJ&eA<=&~*C1X=QDOuL@f=X% zivsAmr|IHz7Alyj02sh8_5(P~Yb!pGj(`Ez1R9%vs_axSXDT?*=Ky`p6X7tTGAg@Y z=<ud~dz#nEcgFHG7zVt83j#HMhxjb!{uzK(fe#%8rg0O)5qF6nUC%M#Hfvyy9!?5# z7B)8kN|+p0vB!=4B0RJy{TT6oQw;joo$B<HdHdY4i4X#~9gau+=__C`x4sG&xrv&` zgzzT5-Rn{)-+b&}=dW-d`$6ow5;~mUkpWoOE9RT%$A{sM&gRWYEjiq8zK(k`t@F?W z?9=#`=G|VMkgnoOpv)!b(URU^D8jd{UQPOeLr)T9th7bACkGf|I`Xs|zaEOc&fPvW z60T2qXV59wOpGp}F87@oi?Oxd#NGATo)j+&&itY)*1Yrc;Q<EdBOmhhk(T5eyMmS% ze`MVK;~g34$K|IwsC3*v?n&cn&L>Cu1}fK(EceUR)fpvh?Mjd--#)>jdgE_=%zrV{ zD`G&5jdrBjRI~XA$|zM)a7DM5PWM2cCk}4uFY|>s@4)joKg=#f#a#Z>rulPun>`$J z^<|Bw)^hQEWCmrE(mN@LY4kI}iIrbt#Y9gmIf;<kiYFgU({;FCtnN)3vGHy^j6o}W zYay<8RvduDgP)N6a%;#lq&6qd`qo-wQrJ7~s;y8e9U5M7yJF$JxyW7dnKLcM^d0*= z_OlO(X)+$^`#r=!CZj`uR^k5#6~)1>@??A@hj(|o>V7;K2mPRKwUj_=Ial_8S}zfG z;&^Vm8^wc<v32QY+!sngs}$WNixVYKNA6t>tiG+w<cGoRX~NzbT(7qDOUtzgsmHT- zL_e8Eog*;=>~@l$g~|DYQKQQ{GgApuk?^U9aVx_e<h#@^P>&FVXl%2t4i`tqKAqI^ z@gI~#>ssF5VJXK1KQ6YRcNw+Om0T4Of5`e_6*6kM0hU|SS^i%4P@d!2A*4{zvY6Tz zKe}F}u^;ZTM{uwbYV<%ap0-<Dn1#Ln93k(N(|;!UHJ-^NmR+><g#9>5ET3yEPOVAp zoheMz(q4VDl;yn*b?k$hYtc5B+UDM@_b;gR8y-!Vr}I_(I7!AF+;D$X>hh`TGdDKC zFE=ZCiE#vPZ0dt1jvPBH!)<MI5AO;655jcbDj=%^_EvKuKuR|&>AnJfbnNmeufT`I z;E9i$cclIQPr7WJ?l4cg(R7yggZP#PHpziY=I$;K^L3gj$1TE_vkaF>7;e1dzM=kd z{+6Md?mXy1b#yHSS>G+$y`r`jG7B0%M;%Lw!6UqP)Qcp%OaIat7j0WSn`UhZQ z@9PQ{?J-xX;B+>C#^CzE0#Kh00We01?vBtH-3mH>0g!BDya?D(P2f2{KZ`FIhQ*<D zJ`sSqJ5j)7O8}(VkPocZ?oWV75)6=?OTX}uH+YZA3HZ^)Xb-;N_@=bc!khzS1{46K zu~v`*M2ipsja?ZQQfPG;(Xi-qNCdnzH67~4ga|H=cmrU235LMBN`V9)4a(2AU*W@* z$jg<X&-ar#kY5l@Kui#b_l;Jm2e6PxUpR#Kv|oO-E$}9!eMOM8KjlZ<`=!O=scpnC zef7%-S<@E-kK$z9>(#Q#t6$za7B~*OGPoR_w-n6G59ohqW=p-)O2U>1LwIMa;p|=& zKjn7uZ+V2Z6UH(S8^lOE3f6GQkgBG8S9FM9a=TY=ny!mOwq#3d8L=h94d1X!9NqJ| z&kwC|s~-Re_2(J(v->hFOowC7H%q7#N}sye7YTZ3GkhyX<IbbYHH2-6Q)Up!aJ#my zG*LAjZoMt;2-H$)D=YU{4l_ixIiOiu2AzypsN_tUTzXMFUiz2OQx|JnlHB#^3H`Qx z#+?dx=llB7#cWSA$4KMWyOH+6@Z_7^t8ySPd=>I<YLU^(;dy8oU`%OcOG;8Rq?-`= zw(yfYBM<4%8FfEV=Oj&}Bt80zaTT%l()nw2P6CqcjKE(}>qz0~zRi!3EVa*rDuQFx zFnKhzTkmy1Og|&EVM^ex{F2TeW?^@WO0VJ%UWlxnx!sWFR>Y?J$4knfqH+IB{oPjw z+7Hxc6VaVv5|ba2pz-kW8uU->;=Lp#`(hX~W^WsAQ39&I3I$w=1^<$t?j;T-2~%iT znUp6f6#q0Sl5fn?_S%jsyDczHI8O4dnSW3?1t0bFNJghSoN{|J&43sDDm<;C3TO3Z zB`DP4!h3d;*XrT(eq4520Y}TWUqS*%$97U)^K_`ii_s{OaA*Gh_U+h)q;vi405rD= zY`g{M!=UGAmhO<2!-rdh(c@XNmw@#)<twIfE6vgFX*8vr{<3<0B}NG6d5;~Lrr<$n z)p<c49e=vg$K3TL$K>$|=;YWu&#^rg(0P3OkZ+#wbE=Ise<9wQ#4=5hU1Q_&9<h)h zyp3hfUa=~3YF*`Iop44hG`LG_p;!_}g3MV$cj$$no+M6vz&F=V&eU(cdq%^&vX{ra zh)m~tY^GleT2nD6^jKL<H;l8*7jbUqW<<+bE;|Jhg6VvoEOymuh#=fI&(HXsq>pE| zUUxhQ5){-7mNWfHtgnI#X8)!?U);fE@BvS5@T<dr+-FB@W|Sx72)Ocif`@Dwe>n1i zTS9Dy^bP}w@wfp*sWATV;gFSfhynD8!j6MF48WxV#v5#~<8M1yIb}A)y>s6Pfe&BH zLtO4Z1PMtXgKgHICt%1N32qKUV6)p!J!FN<_|$X#mp%kG`Il*cj&oiigAb!Cum_P0 zOLoxdzX_=X2qIrl(b&)c?JW&E(8?J$ftUqzSrEjXW3`q?EPCgLkv@<E`rJ9-jn9jR z&<0mqcuIiRU(1t;*y-=H3(++`ba+K58h}vUxp98Ic#!Fo457`?P9Z9iKz0EjY$=N_ znKU*PHV?>2X`njiZU8e%izI?(8m>42V><|PTr2S|s<1F__%qZ7TpNdSV3GgyqQsmA z2I9%g)7CK@K+(YlkXZ(1v`bE17ifsD?ZHJly5CO`FZZ+yu1&d0$`eQwO$rHTTv%*u zlk=Nn`-?ZO*EeD-BuLc1_alBil|IeUxkS4BZHBryThr)V-#G2y=<eG?>r>X{x0eMC zhqHPMCcDV7kbF1vxrhCB4hk$c-wwWnHapEhBC*2?Q}b@#yf?3WwEl0zJ5ch}jT;G5 z7iQ!O)Uzg^_cXSXcHP0*j!ns@jZHzmcW@y6J1p0Gz=IOYN9vN^C+2z(<R%VemX+UZ zjeQrLj&p^R3>KQLq)qIk9}Cx~=4XCf)iA|%4{xJt^dxF%b6w{@(ngH((KGmWN5hV` zO4B!k8Dfhs7H?`usMW&IGv!cugjHnBSm6ObBuY$tF7Xev3Z6N@G#sBQ@(63nSCNI9 z?beaezIewF#EQ(6^gn641>5-rM&2&8t9Umy*{jnhiz@ATG<6Zvf{G0X?$>rk05_>z z;UZbThY=@F{(>$pkPHtWkF*Or61LSW_=f4BZ3v#VUxCQGVj8+D{iFcP^?B_Xx_*_A z#KI)9t+&F{o}>9Lo*_%q>z<M5!j|J@hKFKn(se@_|H4@{ZolWw_XiFr*C<ZDqrdoD z(v#33WS1ivCu1u-B9j<b#&LN_V!y*%na1b#l~8iygEjmkyVJNvn6cQI}J?Rn%$ z^dnX5$96%V4%d@-=s$S*zt1{qKGn+@uPW31^}}7;M>Rc>CaN{#fdJArp;%L94f@7R zC1=xPyrOKITG)iZ;zwWgaV~cTU)rInt44`zmB+u&lOaY5Zgy|EMYXj0Y6uM9T<3+C z9)uH!j$U#X#GX2@_6Z$&<6fr^Cd*i-O4C4(l;xzZnRUFB5i^%;x{uXTRTznaH+t8_ zX`q`zxrAV7(1#G81{r1Vu*;YCY=B-bU;`O82q4U80sjHp!OGxE<<b@542&XC)(CO8 zGDwlj-Mk|7nz`fJSds$8kG?`6fZG5sEKT{V?Z3cH5Ax20;7>qwpt1l;TXOqhIO5|I zP9Wod4Gue_AC(CJ(FKcCe*8EczAp~|cTHo%02Z4m5|EAT6xi|~WQEXj0}9s0L?2qM zr+6$DGQICU1{{3_=zQF%A-3sdU^+OaCP07~*|i7S{ZMTHtdRnJMMEqYF?<mY=;6Kg zd+?wYkSnl&HMW%@;?pv?F47-_fGvCv8YmyY%y1Sg1^+3$?MS6w8U7TzQ1nSQn;3kV z_Nqxi|4d(SXcefA^n{MkLCkNB4I2dh@cmurpfFX+DMcCXf`J(?sZYh!_P#yS4Uhk_ zZ_gi0PefVLoIGR@I~Flq%>qH>PTdK1^<*Z&u95F4%Ru{Z@u$eA>>rtH64rYS=+QtB z)9O4qgf?Zfr<D!Lc=R4l6=AVOb3;Vse{xUGx!{tYbTiI<!D-^kk*2YUBGTEP?p_PA zOv#&|NemMb^*ZlV?RMnxrMij)#nXld$@<SpQqA8rEk)6*^)iRP3JDnS-Sl-^cN)z9 zMd>Kzo)8VB{3To0_Wh?fd^(HGf44dSfx`)H!snZzKMLl&={cQDA}0yC-mk7?i-SX% zkAjGGTj%jrYn`qCCgCB%EAwfe@7oi`1Vt#=nMk|s;20TRRN-sR`_%v4YU1XH&)e_M z6ix2iHm;|)%zOu{1NZnJKvK~#n}3h7Urdd>mN5Pg{BaHCi&CZQr$&!?nkn7ml2LEC z^67h09A@hx)e+B838(4?+jjO>lLCF_rR&kJaOT&Z-Oe#S9Skg|R(6dZ=p0@%Vv$q} z92{OyT_n_cIX}_N$;8^}@^J6QQO7{6x>lXSINCj0Cg}2E)dud;5y>If0z>!TdTZsv z`dFUV?;gg;sYEcnR*KKepTT=brXA}>yi2T6>uMolrrx(ZX87wUC+VT}B+1mc;HSzF zU(HBj!c*3h=)rp|&PDCrk7Masf14Wy00YhWO&hjm<ALREjBI#d;(h(FxSezrR*i?h zS|j_4zb_{&x$RJGOgdY{dK7l_4Cjf3el-uV(u>THOh7?WS38E4JoV>tnH#5SSe02U zy+J@+K6%60?eIbde{Zz)Y<f&g<9rbh*QR#K_#4%FYlmsR;Y2foU`x-k7dk~lKK6^3 zpFvhOiiqdU+fD35HFGPc*6`oUh)+++F=6TFZyk5U!UkVY>@IlqaI(dj6<vCh(Ht$A zYdmbS<tIQD<4E+9o0O~Q-CR9c4r@sFNOUMF8O07$^x0EtUQ+uN&q?+R`gua@^Y6CC zpIWcDd$X9bDw(<)D1wM0sD=hCN+^7nVtBt+@GR9KXXka3_w_upN>kO7T3tV}Xx|(k z%-|ggd=mQ>m#B;pbN=F4Hg69a3XcZ*Adf>Jc<2c-)RUly{|==!wmkg(sb#l7j9lJN z-IynsSq6mxPY3O~wSNKveat{a9w}^FNJ5;f78}WVtIGq5fjmJ}CT3deGG`H25MwXa zkRj%LUw_(1ga+4ItmS&ABWLg=U8W^OdML^Of46pX5Zj9!+erRH8$KP13v$%>Cr!4B zK-t}gD}Q*$?GlQ1v_=ScJTB*EmSA?l;lT>A?FYpNikTP-IXBA+(Z^T;bIY&3oB=~M zK3Zsqj)-0~cnUb+JkH?P2N;i8dKNwcfZ6e%XwXMCklM^FP)igPGo#h|;nU(Ew8bdb zy;A$(AXOOTi9dJ`iB5+p5NQ$KB|nu&p=v;j#LF!lV4;(?N=AeW(U^=X9E0dz+W%}& z@k{f2_Wj|M%x}J#GzhH*5n=RBZa|7Nt1lxCsC(E0QoyB@1q{9xp&!tmtIOr|2WO6d zNN|2{iw>XTFfW*+R?T?}nQt}vGw0Ni6x=<yG;lQe2Dv+3lKa35CpKq8(*1rE0S>}B z;xc(5_|cAV<0$4hGF$R-yFbQUlc%@wXJ7l=b#d42-EXm>lUe5*S)LrJVdXXb3K8u& z(X-AG{l~J*Agd`ZC<xvt`&hcN^1F@dQA6nvt5?h9H&K%oUu|?x+`wFK17^Bhb(OR3 zP-p*>`@=)8S9KD@=(>@wA3OHZ+1Y$^$A?EApE88lNX@w$4}WZ_>#!plqO-=?fqnLs z?=1D-HM$vn!o)q5oZ~%2ePQIxnln+_-bsG{WmzI4@zSgDuU7qk1Y9DLrb%9h#JNyX z3pg{RF}!_%)d{mvYH1MPLd*J_FH9I(A=0UwcOP1<#;&!BZT&#$_zNROywAa)*CeK4 zhTgzyiW&Ow5O0&_89yp^l8f%>aQisC+euM&a$O<$tk)UnIx~KX1cAPS4N8LSCuruy zWG^ceO~9YZGg<*blXWMwu3^U`<Fo(r)Lp50ckMG7jdOih)cyXgF(0L8dEpdhA_Lv& zZBf*U0Ug@&AQyfIZT0mIziw`(4$|GJnv^VKOdFXwh+C5mKlnw4suVMRTpvrUZ$qKb z7i}UW#mA@I_6KosJ2iUjPek_G|9VjY6IO&N+U}Va$SarXK+6_hk_7Wpe%V79GrFX5 zXdugm%P`^V{Q2SU^j;CIFji{Uv_(<6X(k&X(~d`2I+au>Y7RoZdC8qKSut%sNrS%k z=DRcQ8RPN`vGuU4pqsMy9vrcLEm8L0t}&qxdnHM@a`0KTZp|bo0Y6NoRcNN(<)D!4 zgMddzmfS9eDcX@3_F#BaA2`;861OGdk!0c1QQl)nPb)HD_<0WNFBDqg#6<Emq5b&E zkGk6IA6KGZrG|PhvnnDtqCEPGdJx)thK&yR4}ow{?`Bo@W)=Dbxyrg}$rdE?BxmFA zLzF4_?V*(fnQ;WY@rp>c_KR;#4oMiOZ<)?iF#vuygcvR-I--O~*nhaSMRSo%ahwH| z%U%Ig37X3?RV*eV7CN1V0e5!ez(*WX{p&}oT`&+2=<x$7jr6nYkc)%WUN(q+!?_rw z+(-}~tyZZP1RQ@94`BBl0yMi~r~gN&mQ?{@?RQ$(c6^xCry?epfg4(VlJr2ya-BM% z?A?q~Tx0qiR4qq(ZXj_<4j?z9o+CHuVO_&<_aAzR(cBVMd!xf`Aw(y<ysCUW{^$}I zu&!|B@5Yr=831fIeD?DG8ogXjV8T}gLnbGns)ri`LGTL%@E)n=e5I+!+yJ>0S9%}j zj@IOe@!=(5HUQX%s&VlG{5*+;6&hCB$>I6gdt!3lLU7CPXpToK!TN_inX#U~?b>bg zoM)FU&KsO9bI%hokmRkLK}r`LyRG;xNKzS=UPKo%UJXYV<$VwH#>IGe!3S(<3$g?+ zvI+J^mOE_^i)W($U}pVrb_q&BNxeo%wfE!eszG;uP1qTiUAs7PZQP?jlM3OxmpdgV z`8cMWvf6?aI@Dp6ckPhtxA{4;r?shPUi@^gwdsUqvvb5-pJ7*A7hdFe!bi`)>(GOg z9O95bAxtD{VscZTj9GQPMUiABPYvE2e!(Qar{<FLD#fIwI~aG5bYA}!=?0ncmX`by zB<mZXoH+NyK2W6koUQ)M8-mnV!{ej4B6@ctx^)b-%q81WQcQV9qyEfqcCnJVc8#K1 zFYEPFbuKb6#+&h3T~vr1@UQopRn%SeN`yr{MY6*_cFcvrq~t`eziQ}kDOO)4(yL{t z!>RNc;oTX>ru>oEB=TjRrSR(GHT1vSN|3CCs_2WuQTEs8!`NqbS8sh6exy6Dd|w&# zsavl0TlZI>39e$7P<|*Oa2Brk5+{*#8|Smiu6gAmYq#Rmv#dcO^T9t(uwy&w9KoCG zTw&~Fti*vBU&RMziFFBQ*{;Mz_mjVTycFJl!TqOz;Jnl;X|cHn+Q*UB9A~MxWA$e7 zK&vvqZ4(|kJn}FY-@Gegu$XE0SF138XRcieQ_R%H&-MceShM}rlwk4{($_g9!uF?~ zu-n8R{X>l}=4Wq^m}Pds!wiYD$Ps^k-Wr1E$5%w<m*3uf+ZZEEd%*fj@&lC^tJJ~- z@oM($7rQ5F3jf?)*lu4YS}w;>ajbO)jK7x^aB-cS<Q8b+?vu2Cfh%5ui^2#V>S+CX zxy0)=-$;F~V2Ip5C?=#em$<tMJV!eL6M(J#g%E1^3*7AFWM>vYuOk6Q6D2RYmPhLt zwW`tFVF_K~l*6{^D|rG402z<coJAAv{>v6-2Hp9BQ^qLewB-FY^)RnZwZ%CeqB7;S zofZ_4tMuN_hB63xbHNT{4Ugsss1gJ`zCVQcat8C+e~|TI>^y;|F~9~cR?(5VY6BsV zi{jf6cv7Tr5eA~tsHM=_l{295u!j|ZZMkre8{%&C0e<uYJdl~+&<w(ms|wIlyx93? z1Az{TIza|;9$|n~7%S$0NsLH{{)q(yx(*P0!Lu7|ILM>x#CY~aVBxu(f~0rS@)m*= z7;Z9H-Xa<zo*;e~5cvP`gfBk+6|d4r0x1WOPr2{|G6?iLXLyP~nonR6*nL*Utv5f$ zhN;IpD=zkFucfB{MWZ744z{C`tN}`Ha^Qtm4X84=*T3O;5<^@VwF8U@WAPb`yB7R- zBdNeGeH|`NHML>2==<XG=Ck584plp{obGTasOw-I|Ay!x{I|3$fCvoN<vqsf9$}td z>Y8yVm6@|rIePFjMF%I(cULaF$iAuFi;ARl$c*J3YD3GJJgbFZCbVnB(jJ3XZg;Lx zn4{wu55_XM#Bx5><m|%u@*NMWdF?P%%*S|7x`f!BcA$mtl?jv$mV;sEx8Z^$tPD6g zc=@@<oLYe!1BIV760wjXwDQ{Lm4b*oPTnb9uu)FRezMSd0I)0Qj74Ti2k+YHvPR_6 z5KCNAhU)t5s@nMcC6o>zPC>>9;;6%!{uHFT3c|aw=fsta^iqu{D5ehO*q>ON!oDU4 zvp@WEO!;`S{!8gXe~JiIfEY%odIB6;IEx?C{Os|g-ya^u8~62F-%`(A?A`0$xvj%L zwJau(Lrx|MJtq4i(8`vHZqv_}X)Qoy!q0JDS7cPgc5zw9o#%PQnwbOhxo&HCk<9Pe z#af#jLRElGulk1adCm`M$&RuLPbro}r)M9Z{!u}=F7mBsr9x_^-_o{YXw&!G3BKE8 zg5HQ*ME+7aDpVT~S$RONXI5Pt#-=_eWQ$W9V_@}@D9SxBxJD*Qx6#`8cYf5ywW;Dj z5b;C_wUJH8r|sdHn95#SY`UX}Po7NZickh=WMW5X!*3D0nVH%UC1?}O__We0ygezo zcn&MA?6@OhNUHDFYh1uki$}F;B<h&x$2ZZ;4O&8pu+;qwJXTbEU1-e6+QqNpnA(4n zW`+1`|CTQ?xn6Mg)awdx^bC>-ds*Qfc|Xkz^BSk3YrAwo6kGP<kxMwA#8`eQLe`3y za8OQoQc*a@{PPidw`|@m(qXGemlu8&a$uOiR%>r?nEo?8{Z$i;;<q04ks6QkJ7j2^ zkaNEw7&D-`3?T~Q9G|}JeoI|jNdB+%ve*Kg_Xqe0OG>$n2Z8!T(s{s7gV`+LShgy- z@)JmpxZZyrdyBkncvNG_lBtMki$DC1J~&$*Gb=Ap6-DCa3a@UVAeVc92g~`6>m>p4 zH7vp9SoEW}qPM*9+u);Lhs-27M&If*I!H0R&>Rn4eO9yq?v>|H&2Io9&*-HE8q!c! zGT^(QoH!+nYM~u$G!32cA+%@q;QcSp830kPz%+QSV8a~XSJn?og+ozFbd-I~yR~69 z$V@)XIE1#4z6T_)>fZps2h%{)EjFqO4f#6*L_q`LA{V^{TF-=0`}JYc0WS!?;U9z0 zrX7K_NA(S%ZVLp+n;R7dRJ><wJ8ftXUhlZE-aV=q*x$5Oe1i5t!SQvJllpQadH^;< ziuut{PfwT)9)!q;=NN}FWnC!`h!@^pNBJ{@)XmO7MYo3&aFGm;te`Gx5Cd%_4ro9r zN~^(~>%&NMQ?}VxZZU6}VjZfrEY!MFR6YQbmtBYGL-Uh*x_Qauo>*tXRQvrxb@AU9 z?-`qL%nMF~i5F-cHupO>%^*9@B(DN<=Peky$JU!1SukCYE(;Eb^AmZdkyGw#Wnq<k z3KPF)j`eifH**IS$ek8#9A8lzn!jRKBK%%%sPngMW|TfJ_2!6U=sPS;Tk5|}H6As$ zRxc{@NSBhh(~-;Fzy1}fCHq<qqC}ECl^bR3JMBV$u0!B9+!|11RLl6QfpLiBl$P&= zu9~Jy{C>_9Yl;cfORJPzhBx<PG)dNvtn`p!=|-f#@%Em_Z1i=UKJpL3{Yyqp3$BDc z;R?3L`qk{>1!U}_w=kw)#xmQ%o)mkbsbE~Md)s5<SE>yG(cj(KYlwx|{;cG*^f*r! zvy_~T%@|vK5Ox}URpcNr`7M&`j}o*h-WMbD{XLF3`PxpXN>g4jg$My3)gtGMG2^a| z9Oi5u+qYlY(#oJzZrLFd3oMd-Bzdzu;_>tqm)|<2+qognE<X$mQN2v;>yvmTNLm_^ z-6DBUo)epGl>A6sPADOSb~D`Uquhc0U%gRL)AtV-U9nm61Pxlb=|}Q^vWRFL*^a+Y zPhVv9a;2ZVwBVetwU|Sz@NA&C{gKrF+}dx9%TgKIxBlA^U~~5b1@9dcm?}vs3(|3@ zx&-$xBq%Ddt~+%lKT(X}4jSWs>5wSQy?v4&6CT`;U)#*g@{U?PJ%_LK$~8tUR@1b- znYDnkJAb6t!S`$L;PLif$t&|Gl_cLq$gWCmW%xyj94u}7ob<RlJg>LJ@oWVZ7CryH z+MR~?ISY80AxFe%o0rb;<<sLnZWfE3ML6Qyvr{jyo=J#5qJ1??9~F`yJ9cW?t;+89 z!b3awpTqI}(9+jFvn=oTTa9ObTdr151TMQUYbmnFHr4Q>qy`6A37hvh;6wM-e<6ee z_{@;)NT!iQAvg<2#7SR!XT=gDk3HDRz!E&!jdUnpB?pmp8s;kkps+AS@~jhHs6d)C z<<!$YuD^~F>wkizh1DQ%h7~ch_RcdS5YCL!A91~uAkxIaE3{JoH5SsUFEYysl<|W3 z{zO!EVqg3@`)u!S@{yod8_mU!+20jpu`lfitg8StA-vT|3F2#B{Tv-p8T%M4J!>qS zAR0d6U`imdt_qUj8`dG|1L5c>`Fo*q!|-S)NEQdF2xJDa3>4B`0H7T`s)qq@mItK! ztWK;^O9;w}2Z-e|fEKCz6-$6f6ApOfU+_cHWA6V&|6@XgNVAKF==&7`IIk!HE*Bb< zSotE#9}Q991^!huTuIozN^D?WVE#9e1APvFKWkEi_uGJQ(9|@T@i7RyaRuH)$UCsq zc-&tiOiQ#hU-#O<84{54QQyve>Bm1;J@6^>JHfT1bOP`*mtTv*34<1cf5KEwK|c}= z+7NYSkIKpKO#w;4py|MLCYkhWj9~I5cJ$>dYhr{u?acg0`mk?T;N0u!c(jY-O>{Ng zv<(wk8y?Kr$Y|K06Wv@}EHuHG`&O&t{?*9DZ_?r5TV&|+SkHdi$AY5cp=&I>C5!Of z2V$l~MP4VJmea7$r<}#PEV0=f0mlCGZU==#4bgR}yqJi?e|CANjicTx`GdsL-jUGH zmyPIsLIM9~wo|%CHGQv*W|e#Oq}m*ZhO&Vx!hOM-&~1y)Z9C&ZGx;`7*7EnmIRqLs zX()A}E-)9z+x7Jm5)%>9R?CUWM6Af6NqI|eH0l}K`^h8ifJv;=UDrlbaqX+xS$>*? zqq5?3gdKgB7kuPG{)Xb0cVT4Bq;T*T!^_@;&gaCsX*Tb>{nP(aW8mjU3aP2`Mt9Gi zvI?_@GoEJJlqKFwZF1+m-Co3CS*88y7tM_&Zkk;aqqkSgLVW*gS^^orE*<`uCNo}z z4!&|>J^_#LmKNT(PcnRB*dD5NFLYwJL`(EEHCf0cg5^g$V4Gvk>D#y+(_~G=<1XtG zJH7&A4y5`~Tlx)OP1?_c8sEQfa{M;2`+KBy>Qcn#s~x%G2MZZfR?9rWET#%!d^=*@ zf8A^1#Mgec)EoQ3L=vJHCX**zBL$+r1Q7nIrkW~|NHx<p)^_COg9=9u1@cm9BAhMv zEEEl2P|jN5M!n@}%eob;UC^$TY*%)y!usl2J348>G$S{=Zh9mH_0e6rY$GPkm3$aD zaju!jnGvF|;i4_dpf6LO@HMk=q()?qSkTPEfWfukb>#iNnHWR&RzD#HjtOY?qurBr zdrGcjPG#L+k0KlHKOfa@?6D+%WI<&6(PL3%m)?<2qhU>Hw>^d{T<g#CW+vIk1YpqU zR)mcld|fMeH~oXx#0gb9vBWq^!0$uixuV1XFL-|i+yT(97t{kh|4k$OXXz_(oA-Cl z`e=@FmFPnuGqAKo3OQ@YAbRVtBaLHH1c;rt5H}~Q<=fz{i9kp`F~^74@`WF=1o0h> z$dG{gf^cSz=Kn3o3}?%58&FMyk6e5QgU38{RA(xkCJju>4r7q+OaL83CQhTHwhIcb z+Nhg^)@rivR1&hsYmkc>IH*20|1Fb4%GCkum?4?~4Qh~w36LP7ILOf5iO?e&N>}=T zo=9rQ;3kCz@GvUHf->X_7(zb#xAD(XBS#$qrPUj=JOMog=e`&OWX8x0`~ZBhQhFkU z^Q;||0VTvJTdcMr`SyPtU1d;|T^oLuZh;r+kW!Ei>29P^>5yKfOBz-{LRzG22|=Vw z8U&OSSVB6b7C~C1`HtToXBfm~oH^&*_mx;6FXTurDotL1!Ya-h63(Q}9TG>_`^%a6 zKz+3Wg1C>JR}u0MF=cE#@``52<KC=_i%(PN`uiGgI^9`wwSOOe0k#otw-3Pn=mARm zu0)ZO5m9tdOGx7{m{-FNx-M*_z4ckR=)%XzDsv@L#m0hWp|<?_MoPK7EYU5pgP(40 zv#tiMugF5-D$6tyhUX4jl`*|Kp2*Sa@IC2rlFz^JikawTDkO2P>uc(NADn!kaz288 zJ<=}xTRk4|l*VbAdZ=|+gKr*h7I|4+dr}^6wCLkPmv*Nm&7zSECFz(id_)>gEhk&X z^LsMwFC96AA|K+*zA~mXun;lKrj@X#3Z%hk#!d1@u~SQ-n|zmzBmNx6s62j({{1L1 zQrEiLP?dXc%8XnA^qLdSIDHF{TPrN<JYip1YdilCaGj?}bxUhK{5OOF@g&g|sFRxq zJlGt!wXVj#S}$LBe6(WmEm#s<FCGdcr#8WUfpkVDo-D<QnG$9{f}SCTRz-AvsFL5s z`PL}NtIJ5(WrS(V-+XvOf6{reas4$kCDq`P8vatnVqv*VJ#ir^mHZuT9?V{9qRoiJ zD%0_-Wo)_PaeW@|JrmR8`(HlcsSt8w2by%6{h`6CPI}>CW5T4XQ}JV#78lp!(>>pG zB3<?I`k#_#^SzoW0|h1-7>+_{;VTN|9}0_7me~fm5|Gv?Ty`ea=D|x)HqTJm9*rAZ zujI1C_5>%E<T7@Ol+!2Mp|uo5vze4YKfG;9)}jW|&xk!4dk+GH;w3Ij@U&<1oIk0U zm=v-a>DZW!$eP=$713Qwv1CqFQ;QN<ur`sBI}O`opL|1~okb}}WW*hepUucrudOsF z3fbj0jMNNt0FqhozDQPE`_~~#=k%wy!5@+{%EAlA*S1sN?L{(I-aLFT!=$beHGee9 ziUUM95${YeJf8<{g%wVJ&jFD`8Tj74$`!?1#zLi~S5$7WPJTjIeQ!sd5S(I|11KqJ zC*Jd;!DZlq!-Fm61a61^%txKnCFwHn|1BRM;K2e7WPJe8{G&RkVl;vzZWIhfg9U_x z497a_$#YanIk+bz98ltagd*4g1u@e34Hjs?f+oiZh=Ba*!=~t0DU?t`7;wtTWBL|1 z`axt|Uw;iI+Qw&<0~e+LJvHPxl#?bjstDg(>carF8CI(obr`7W2OR9T-&RKWu@NG- zS~{TB;~y4ba*R@h3BQuTM@-3d|3fHy!Fj%P#z)-$09Fk6cX!ByvKI!=bOq)1(%=BQ zd6FQ<V*hy|z`wv80@%)=B1;U+pa@B!rV3D#$$KP(MOEe0*4D;74CsT4p*$=Uf5Lsl z)F@*uQ!XK6g(sxNr7)|{%YgxZp)O89D)bN5u%W9qk9~R0%bf+pl9tu>;#AGdkbt6P ztZR)UgdB^m^_)>0O0B)u$ci@(Y*zv)kckWiVv~*3Os4*d28*7Qe$Wxb7m2Tr)<TRG z8>5LDLpUSQMadhIwbZ&fBnE)~Tn)43`-abp8@E5+`qtbO4oRcYbz4JS7qc3<0h(-T z?Z-LTEzV*ej)zy8Ve`a!an)1DI4GGuq$z?57jp?UV!QT=KZw!k2WhUVBvJcSTTR=9 z8<(`Z#k^~?@7P@6y!T;cYwf(*tmB|a)VB)Sv)WNjbOFe|YFVb=n~ansj^0~)JSr(R zgkk-SP7#;k#K8NYjggg&?Q8c@44dC8nUPE4^PlW|@k_qTvu7w{S$Gu_@JMe)#>XTq za^(d$x|;GMI=o1`qmelQDo-$uww`y@SSBzv?}p-u$%p)%w>FzFzD0xE<nmP1p#gR_ zL?5Iwu3=+f$4eIO9bwFm_kNgbowf;{sx|kn98-=wgzoSHNovZ<!z1fejAbd&tAx?K zX2kxB!!OfN6<B$KNxH6<RKuOj*`_JRRm$-xi<!AY<DxUu!+meC162z-<QOGNOsF1O ztwgzHrLZ|pWi?Ml6+G>h&j~GWZ%6rA$Rl(bK5to_$XirB>*<p3#x&6P2=yrV@v$iW zr`efcrwet8%Utf6;9#(x^qHAPqC)1LcE1s4sJTeD+G}xYGz~^lX_x05Rn{7_h__t$ zcZ?DTnJeaQ{(Bt4nL*=j9)33O68Y`g;#HjKGd0F8vN7>Vlks^xI|&P}+`vvOh2=fb zYm|NZla=HFlj@YOmOCD69A7$-TB)F_JvT?S9cGJgQO98etY#{ou7@VMOgB$vM1acO zk&w11jm<kQ4WBv)?rbBVV=Qdi^EhJ7mi$QIvDqN`1q}{^kn~)6k^lIJ`97JxM!IH1 z@y7Lfq9aE~es>na)uA!i_MOdSM&Fy*fkrKc@_9T&Zle6!gJo_a+BbpC3q%rC>hS~j zMZ>0uOp?jS1&~W%ULc?m7I<rqdJ=<t6vnGZ%=8Q^M+i<CmtP|Cle!Oip5;kN211O$ z%uxTO212V-*YgV5|AQ!kLIVFy3|1)6uU({!O0J$ez8BgdUQA&@@?fhQke+Fn@Fyer zgsQ**&2<2f32<F_H+yUho_|;L<%U}5)$=$I7SvDTzal+PVm-8>dX>m05ZrSsgI*3( zi}9`;-OiRGtiC1;TrCUd`H)GPJ0#I}_y)@SI}h%L2|zy7NrM4`%$5Xs?m&X{o{|SM z0Ei~!k<P+|2fl=aok566Z)5!}4%@&Rh&DvOLI;ZTWJaibk|RcT6@vO7F$0yk>^qD{ zV4S*QGK*LEsR@}Y<jsye@6cx#69mF*o(&E++uj(wTATwa+0vCT`EEkZ?`$BLu!*k! zj=(wZ#^^ZTZqO_~Ot?k=RVYY69#(*eNq9xsZ-~B{>*da_lhVquVlod)WXsIa0gv@! zo6K~ZjOFbri)P+-_bPw=w4@@|Zz<7A$sXbd@vqb_SV%oDr!YK-PWPVG$Pp0>!Dn$c z>4d{xSvxQ>U*Bsw4kNG~%LyRVnE#`kr_ArM<$tT^edz97ZLa#o*5*uV8yS#bwkK~K zW;E+q`PkRgAzVYYX+sLRx?A3!e>wjsdgb$BfBx3Dl7=5?JYU_aYTBla<|=UcuZzf! zNG}djQOq2H5iK-FTN<wO{OClxzC!7DOII^LY7T2yYtCyt&!6~Q2bn5-PC7fC?)dtA zluqsvO0e+zPoHF*oYwR)=`FJlWt<oXh556kVw2cdZd0f{QJ<whh~qx-uQfdiW!-`r zzE!<`2C7xU1VWS|8Z3akgPXb0lC1yj>+;6&sGB0bsc+zQpVdm;XtE6ZQVv+&t)w99 zt+8ujAIEu2xE6Im92EBnAPUh^eVN)!C9so-k$us(OK7Z$hSj47O`f7h=&30wIs($< zCYqEa^lt;jFF#pt26%|6OcP3yr92Cl-4B%UfBpHa)kaAtdoI|AI@8Y*FS@UPewY|V z-lbjii7JUzIe9jLw};-Omq|*@_3YTLQdzpLTZKP(w$dlCm0gn__OT{T`#y8$DS!Ao z_BVf%)Ou;hvW#@@s2z-pPzuLSE6&hu;fr~6#3l2tcXm}P%*vo?(x9IyN;w${NvP2x zj`v6bVJQg}sD^T`^G=<l*LUQx`r|KR60J6y$!u<EHWm60`>6(yILTa_l?~LE6sX6Z zQKgvIe*<34h2%YXTGmN6;IF0y$1Zf}{1RK$?>{&~AY?ljAl*UFZ(ZO12`yEpgriF4 z|4NmKI@_r>xfm%^8+<+3kA2gh9V)+OH$y`sjK9fdk77^PB*={e7Xq&Xif!x(wL66% z+&a{=AE_}@zp2${{ZFd!;b7+hb11J9jPt?6P?2w9s-y4X+{nqi)WPW&j#>40;0WcN z1@#+%C^c`IKVIq91K=k*C|8jxp7q(v9SGTl)H*kDLOO8IjMiYnn=$!f`6giKRk*k( zRDr)s0bNX0n4af2C_v^hb{;^YkPls`=+WRJhetFZFOtF`p%<fIWN3C{4vP5XLyu4q ze~9SK6aVLq2B#V{Zq=VSkswROQi<`9##Z1h#vf6@gqH%Ll*-01IPR&^VL-%a1A{Un z742+Yu~1?JFu-V-z=;16fxjIA^al=*Ft7Rxrc&}?(XLP%8yn2|o-8_u_IVCu!W#(O z9V!@v5o<y~01<!1$+fXV4dKYu?QF=^(m?ecQwPdCA@@~Pux&pG=bSDh|J2bd+@vHc z^t^=PB3m{SJeey;{U#ik{?&r~aio$?AW<15AExt+8p$CzBA%)=FIUFl8EX@F-4)CJ zey-=-w3ukL<bn`vbWP|lU^koU0uqL6g72biluXm4VQAd;^*<v^7qb~Mf0+zl=UU+` z9%kTB<xPeX3$I0={)BVyi?k+WtE%q1vy=YH>3v9yY`<#myt|uwDIm)nn;#hv_aWy3 zlpgpRU?On5QjL~e5t6Js_ZGwrEU;KfqBUG|z5tFwS5X6e^&I_ISEaS-=tCqFl<Ev2 zt8SWo{)`4i4=H``YzhfE+mZV@ekp=IR?F?aF)CfeK*&iDqFpurWZ1#?=Zc-VkaaZE zZB5a$0W6wuGua!*fvq}%B*F|Bu6(_@?i!8yL<)!92Hgo>OV$1L^*_;b`OkKEIosFs z-VYynK^)VvCObr>3B9Jw^0OtMlV->LQt=YrD&!RE5Y}&#I)CCB^ZR^nY`#M9F7wa9 zD(OtERz%ou+<?px@vn+*O@V4`HgSnj<=F9>9h!NT74ehEjO?TX5*NniH+W&Wcg3`Z zEy6qu8txM5+?y|IR}b}(@sQ>or8-C(^s2nw?ldG7z40^-r9-SgrWWVN73b2KZJ7G_ zvXJ`m<pllrkEQhn(zt&eTwg0}5&WLa_w1_)iWQ2*nrvP8!Wo*x_M}AOY2`gmo~@7N zxeM7ma`2cKy%9pzY!%XG9bwWs`D6bn0y;KdhMcr*MBwi{4RS-(H(MibA_f=Wh(fK0 zZT{`a=&P#I(&QoB^qaDXoapE-SS%O&qO|p#oa5>>3$?MXmgclKe&AQEh>k8En%h(% zeZPm_`rn7$N$@ZeaD9$0kC=-K7tQ#Rx&69F_>(aqwX%3)+r0!y@uw2+<+og7eZ{zN zQIUdh3KMc2;H(gW*Eauy4#K8n_hkdm_}`GJ=J(al{s!lDI7#DRC!7UtF8oD8<==D9 zaU>`81`lA3S(N;r)`8=KHEblOuqJteOg`-k8Zek!l(@T@LKO08@9XZ$Cxk`!8vprj zE(UZ7ylYNPqf>7R>E*Vv(e!h2Kyu`r<aurbv<{lY$Uh8cMv(9m4=rK<M)20xi9H0{ zf;gB1Ft4;=NXJ4u1<3j77XUKS**s=OjQGfq$WeXD_k^4+wugWcLMR=Es?7tiq-ivG zgPX)z5u1a#eBy{yfjmt3NjVG!b?8fbVcn!Tycu|9r-1?I(Jp}r3;y>K=pTU7$|M%b zJOU#{n2g2)ayc7A4?Nq3{9Byf6mE@gL<kkuGziYA&qZP~3vCY7(vVh5F+D!+zC&w7 z(?s+6!4V=n1wx@|fui9rl^_iUz&HSo$QhCvl2l3BM%S(m5#J%@9+FwTB)TOo<v+!T z;)XdwT>K1)BeQ~pD~AX25F_OM!szf((a=TDt<z8}Y2;xE$;T{7pMvS*u!q)%R>Yy` z8$~7OL%j;lfF?R3<cls?jKkOGWgSOt+twxOI}Rv^=+ky=eAKU{!iTkFkDs?=9i03$ zsQBCTi^Xm0m-W3dVh1SBckG>PenhI#$qW4UMbCrT8Q<w7qq$PnDGTi7trRLPteduz z&%dLN%cfFv+PU(~o#?$d-q@FSI!^rctKJzWuWWNU%{5qswbvV_;Za{~<$~B#C06D9 zufMX2zs|`Mj?iWD;i^!6KpBQ?OFG7Pa<fG7MA@jsM%?8p@})$C1vH)hg>{qiCLF8O zCMNm4SYBtkk-0~xUAn|#D2P*K;LOlPZ%(TgSru=s^b4sT2!Eu}P@c*p(Telt-Xk3^ z_yCiFq|I~8VYlrXs2cBc|9h9AK`i5AFN1`SB!o_igS`zbKkPK<q*GPORLsl1tw`Ku z9t)Jqe(RyqY=<y*%S=tQLix4a8}k)@0OQxnBf#HcJh&`yEaM<lR*b8=d%wf-l2rf4 zc9HX37b04~J6L4q9knMW1jiStP0DNadUdc8Z<gZ1&sw_mbWX7{TpA;wk8RjfVQq}< zt-fcWa7jS4$l__s97?GxJ-t{UpM9HEZ>v5|-wjui4E#r~FTArEh?QuGD}2IlP<3q+ zooV--THPmnHj_ijkdl7YNJ5;A!!MoSZQo-WZpDOFSM&1^&`F_|Z;r)vMWk9Wec`W7 z;fX@S3)H8rjYh4)uvgKP#KTNKih9OOM@7U#vK;Q>=U_bTWcgBhKWJZ2l<Rx_2cj}+ z<vizK%68$yqL|+UHJfI{ujQB+gA9Ehz}tLIH16g}QXPCB%(K0sabx?xq^UX*9|)AF z>)p3FM8ig4_4b}Cglp6%Y%Fl%7(JPw3*k5ahY(yD_`;@0h*Zht)A-@XHsqZI@f!bX z3~Ka5-cAB`A}ep!b{I?yAc25N{OfiU(tBWFvo!kuK;sLtlXYnBOL?8gDhCYJ;^gd{ zgG&`p4iV#+r&Au8HUC=`jMpcQUtk731%N_TKaM{EG#nb7jU~7B1Obo*yHOCq;6diq z{NV^xd8&^W<DewkmjH3W!xf1E*UA7~Cejz=pm$4CVZe*pBmw8?KS%@d+<G$-AP;4C z#UP&f>Tf{nkO{t@djtHOetylQayH-TphdW_2Nb8G_y-U9NT3f#EE@+^F2zw@F4}V! zIPz&p`r%v<y!7+GIAZ;S^w-*7Z7Nb_|C7^jR?pK@hv4av5c_{}g<mo;6RDaqjvQin zjahFC49=d4r0S@9SamUPg>G|g(iJh(1yW_fSPD54Uz2ulp#5jx-O$ksRp0Vrq10rf zBvu&T6!z!4izc6bhY34NoAD|o<Vw4oy7$bwG&Q{<TgaepISreZUrwJ`pot$ns<3x^ z^Xdgo825z>o;BJ<IKtv&VHUe+IH6r|F4?ZUYB{|}by8lkG44S_SMtH#^4*0hVb@X7 zb|zsXp&uye+bX4b!UFbGpDc2&*5UR3)oUbx4f?YUPqU)_i2i=&da~<<N|f54G_(*F zz0;DlZ_dBG;?}rVm~=$yZxg5CIv2H4cUY{|UiU<<)7e$2UC2z#43)H|=<vszR8q1G z{g;=QQ(pLF#4RM%ND|JB$j?9Vdbq6yiOP73$hI2Y&YUlm6@|H6G~P6H^6~6VLr+>p zAMUjurL9(Ye&x4U!>rBkPEy!h!MaXUKB%hCeL2;?{oY$;<vtYhUZJ(kG&cc}i**Of z?wQjSR@7&3wD7H>wo+y=%5ZrKrOhr;D$?6FkV<mXD2GT3`L}BIB0thlBGI<bw=I>6 z!LTYAF(>V}%Re|>C5?YVc6Lmf&k<;3ZK=|1QeunjBT1oXEUN=&-8sCrc>Ce|gaz`i zO}Gc}SRah&e>q|8+WWXy^pZOHKbKdqx6_CHd`;x4Q_bYb(=U#fSL%2E#@abg$~nEA zV3r%b7VU4%|Na3!4fk!{Y~@HUG2B<d>O#vj53+fQj`8PQ7G3=4MH6)$WflK$>AP?& zyzBg8xF|*iJ{l7W3G1xAAS$iujrh^5c#X3<jQ{JaxR=0L^2ZF!{f6Nt>OC9^J5?_H z!Wk_-t1CzRE>nX4d};SaFOKJkPSFAj_G5A3g$xaXBFj#%+9XzpI;6vTO$o^>e*1-M z^F^yYp`zIBBXG>~d8Jw#)|Y2VplS1+y|iI<XD==_;xO3#dczdjy1W0DA<O1i0}CY{ zwz*a-C9FA&{2*r~+)M`8fEKd~<8I^!2+|rxKDs<B8l?C~J=9Z_i@(CD@O(9D{WS>_ zPMP@AM&KW;U>rXdWkVmv%Qgmf3vflGf$4z`r-FHrGX|*vozT2RdKP_)kZ67y4lWo+ zuoRqwc_Pgd-K|H0Job=rMkWv-AFz#u5J5Rqn8@jvLGXOT171PqM(u?lS4HFzqT`WC zJOR=Z$D9O7Y$rn@X9H@$&1*d|k%x<lu#=w1J9n^AXCZZ1ayzywV2{X(18RvzcOZ%K z0a0kvbP#cOIwm~cj~GeU0V;?b!D4bUM?nS1!T=cWcl#!V{?Y%E{3VWYv61q5tNF2I zVUcS#INNo*Oi<<>sdD~nQC-DZ=C<YxzA*?+AM;Pqcy-^JK*{(^Z+VInv_b;KwY>oa z2P(Dqe4tq)O!V-u)-29+!z4|&TOhzVIE-^EUsnUaI7R^RtkC-CO21LqJXyP#uW8|J z1P<!nbRpzl>F!*4@muuAzCNj<hS<cGBh})?e$dr{)-dj~(cvt4CiBa~0;S^;Kc#&O z>`x9D=r2gth={G;aRY{?=G$tM)?mGYV9(0aHPMEh<r5}xXfY&vSL}lGlM&*V-&r|~ zDt@Vl;Qh$S2BNO6+<2kVxow*};DTGg*CY+Gg=76kStHaB@6z<y*G+jKM-AJ%$U40+ zrE2F%i*)0Bj&2c(SaMB23A0#Ph+TC?TH;EQM5h>PMK?6^1lAw5aMoP3Y=0Xek$$pI ze|9w56|(k=?|MJj{A#aJIq>1CRAGA!4s^1SXKr?B`lU9l6DtLM(HB3Uwkc@WY((@D z)z8hAo*Gx$;?=_QfHWRWAX2O3-F5b7S&`)h$dBB*D!ayyWVfbXy1-SPC~b+2@(y~x zqHCA2%O_>-q13xp-8DqZB7dOvh6vOAtuYLL(%?>}k>Xzqt{?P4RE*@VztmN|-&@_; zTxjT>g6<cD{1TO4kCwroiqi<IrTxfKPjFYkDf1C)x|X(N@5`9gtlI`|c?q4GYIV{F zR`k$S(VMUv+bA!#dt6Elahd7lCYwgA^tNT2H;dHD!h!cB9+=xrKbN-W3%=TVM`Vaq z@j>ftKU=6lixU>f!)4---WMrlou`N6h@~GtECU8r*^T6iNb~~@H2j?vnhm|Be?9kN z<cU^9ttdF!|4Ae?;Mwoy=Ms?CA(~reS)X*XpeNe=@LG)eoh;7jZp+GVH8)I~u6&34 znlb}i89|ZFZfO1<Y4|{!fRc#qvKf`vmy$4I2eSi*%k5AlM@gE=@aB(j+xLPonM8?s z;}qB_YbFYnT;+=j9&|J_$Q>W8{^fzpV|Dq(2)-|T-);qQ&9g@@Kv=*7cEejnc# z_{m|5(m!!sW2JEi76gZ91b}yBfe#~(6XL1lcJkDPX#W)y`yMVVEX1nN1MvSXb2^YO zH}I+ABV-<i@lwbqNM3-Mq0hYq@RU>-Up={i3F`vok;#It=ow@K9ce&gRoE#3ZieQD z*SVqcR3@JPj1h!kysJfkps?8y01H6bVI2hW&;Kfa$d(xj*=Vfw@PKI3!5<YvfPc^i zki+nPDkeIz<2@$)rc<0mZf(;51KC^#LLOS~VxYU8^OMMJff_WE-tQhjuu!-r90ZgD z66+AHBd}1w6*1t{Ds)iJgu@Ai4qMY5Rfu@`*CWfskc2Q}S(|&0SRS&f%D3iU%eM>s z35CgBm|-BhUb%mh-{t<1m<0jML51xB=sznn6+yVr-lwb8r!4a0+)1JYn#vNz6mBkj z<k-Dh_J27LqN#cI>=5laQ9ctcLZxt^UF}qnkEAqV7Z;*+zzT7mjX2tx^P%E0yk%Q$ zs!N!PJ0EOZR=d~t{5H5Dq;u-by)xLj@}@B6oa;70=?(S8rE6kjb&w;BtUNF0(i6|b z85M<jL#H%87T=?{dAf*wpE;aU^}6?)#TA7*UgT(-*@dx<cjLBo)%Mhx(IKrvH2Ttv z_~hJ5Ih8%pTeq8?ZNUfW$8#Z5)!}yJknW@gDFVj?k8~C5#{`@p9BYdu!Xt<1xG<7} zM)MTp{_(G}`xPS8%tEU}5m@~7SWcpBO}XOuVN55H+EM5~^x2{vC-f1g`sg2xTG1QR zGE2gIs>WV&bn$j#t<OBTaN$eB9k=rc$LEQ^7VPh8EuEP`j^F7Hhg@k59Ira=Vs#I` zUY(Q0!RdavsVrk{WR%;BVv}Ii)xO`aM^f7EK7DtfU;{6sRe*Vb*wjzVX0rACL)nj3 zQtK*4;W#In%Bi`9DfgMNuU^eWvuB3fd(&>ZasI@{o+H(KccV|49VQco$R<otrB4VW z4yt2=@c^`e?_}5-h2@C-v0Esa_#|{UJDuA3-JCcHkG2$bvfUf6_UXaAiODxK57=C6 zQROAYl?Qw(L!KI?GjSnz*uN|&HhdVe&dWR;UF|z&`KCR>+!-(SxGuLIj`W?S$qiIv z<#~FfsL4pp6KkbT|Gw?z$lAM$%9<SJlW_Rr_LR><>coLRGYOQ1l_~qhOX1|Q+E3R# z)ubMUB~&%<y{hQbw#AUENVoTp!pEEc0}%O5d2w8ucfd%-C{wRw`PQ&2s%$i^(qO_y zYmjIgIJUR7UBx+Q9u>5=Bjn0hsL%yR8C`UDTKo^Z)x|Nb$`3Qt<}yh(f-g2@%I`JY z4HF8m>d)9#wB#-~#X$Wh2=`bw2JgPFmu5ebkW(mc1QeCi3RC06vCPw_$UFYqF&3Un z{8KZ<vHXz4$I<#J6+@;9$VeyYS7i08=}xDBiEN>-B2#sda*iKKqtQ{t8h(el0N90* z<7bSmAm9x$ZyLt`z{2gmn%+(yEkC-~?GC3A#rA#4OD_aONNm@DZ2(7_Qe<V?4m0RJ z)WZK^)lCy<4?HD8z!cDrJa&%9LjDQaD1nfV_&{@sqfi{+B1boLA?FTB5;@tYc9hU? z);!Qb`T#CrN^8Qwiz&*M86m<oD@HAz3Gl?awb&~f?{whcV#Z=}u)Pno%aZVm*xf+- zk4H{lTnYgDTt`oG;zy4V8Ko|#Ueq}F7<QZE3B_^Z0{s)*8qO0E(PEbRVG%;Q3%rDQ zrX^v*Cqw<B9Cv!)0K{}|h$VjBRDKtQoPRIt84f&FUqHv|tB)|@>3(7Y+;@LG9ESe+ zBXCeCndy$ssE?MOEO7k$bh`@#FdveKg;bR{rNP6qUUCFHdgpsO-Z}*~<O*rQ)qf_W z>POpgUq8Yn`u*Bt3n-YX1P>_b$<_G97UDB-8h0io8~3@z_=7q_(bDC-(%z+b3<;;g zpkUo{)_s8{JTvbVP_7y(O8StjlhZp*e<@vs@zk7@@BQ?XK0q5*XjIMPQG0Rki>65< zUQv!NS%fY4HBrF@(L%%${h4X6c9>Z#U(JU-mPGAt*G<dZu@p{xeQ;D#88f;#th1=G zKS#$TnI*#;vaN0=0k7(CW|k``O|Zx5em;EI;r(a&=GlI8*Hb6kuSLCql1rTm78=1F zBZ{*fhrf0EKi=6j0a@)OtgwOUuRaHK_jKo0<!R<3%FUK<ofDUu5>!Stz17yRSEy}e zJ@NLDFT&shTyN}%Ns`!ll4z1zEY2HLJ$T5{-+y8YqIS93(hYUvA^T<N%quB;@A%u; zc-p%qGQ`I#i|DK;a{^V{+Ml}*W9~m$zSts>9Up(Xjb862!(Quk4Bdk@Cy7RodLF(Y ztKSZ7KyAM6gU!F75p40MUVMH0-&l(w7JDPIH(DxqFP(Y);dz?OwdZz4c`=6>dj?BF zP+z4L7tIzfVw;WH@YAzio!fSn9?Z#`$j&=a#&;ja-B8OH(z2ZA_YnfqCiMwd9?ia8 zjuUN$c!Oj32s4c*X3I{}$hY^0Dll&hq<jv;WzG`HO=8oF1efSe&eT_ld;J^gzv4(t zMm=bXZ`WkgRD|2AEt2AOOUYJ$IwM0WM@IfLiEw{Mgr0vzdw&TMc<R=Qa;4Md$eEu@ z4=f^b?pw7G(DUQ$scm`qBG`H<6*d0ix)Q=|#uu{t+3}&=n|I~!cM2kjK3-L96vr9a zBi67@&#k0?(4vUW6(AVa!K}aif6{TNMhI??$X<+MbwK?Y^C)r(k9-Tz0hO`29-v$n zkCg$&NP85wheQc$=*SC<OEi%(s(8+UE0j0?Iq*X2=^qJ6=lye44Y!hPb>aBGE!ck= zLJi=8TTG<!=GNAw%^(HjZ&$C0i_{RwB9+T(UI%@Mh+REcy;TQ533AljfDUQ&13)8} zf#5)Df(CZ7)|UV{hYnD9_M$@%4~bg?o_h6L04mnLfa>?eNCKMa#XbTLl@xJ-wLT4N zi2dpbf?M$&$UB#@vs~*!KqkMU{~Y1HCUA0cLKFa7G&h9YFkOS{4dRn!G`fVSaS%k$ zG2pX;C8H)cfT<*eQ2PH376A2Qh#e*^yx-oJI@Jz>J7J~~$=R+qq)vRTaTEXIOAFEV z(iV;4$kCk(xe1v>-_X_K961;#5`6hfLv1oQ3&DNE#5#5rTiw*2&(6A--GNPU&nL{d zU%9#8{K}&wUH)`7g3VvAv^5f{G~Mjh<Ytcw*4jC3OTez(PK-RTz;2=;G6@wy#pP|9 zEo7E0XZHwBVM<7nGx*iltwlxSk|oM2QcC-p;D)8Touck!OA7~yNZg@f%dYgR;#?gk zx<GK9{2H={CS2!g+b(Jw=#^1nIdU21E!_-EqmD5$IFiik6L)8OOgFHu^Xsn0#l7zt zEZ4I|z%+4H<5O1pS3{BFbME0FtF4RHM4_s~kr|V@P3$@ArL!jdRYt5jSs4@)LQ>pb z#5PIcST%#NY2$cjBAdf9nnYq}^SE1~+(u1T|59a>Q1B<rUza2z&@2gKhw2w6M=^6% zutT2HP}A2<KPqEl)cVdXqe}bBj}Nk+Z42)1Dv_(7{PO7R$qq5U>?60Lfv45{am(DB zp~83d(-O$>%*ao2bZc62dB)Y$a3lQtB}L)~DJQ)V_1q7d^*yyBM>sXa+JhjGYBc7H zj9<B#QBLiLbDoBJ@s|S`R#lOnU-d%!r-xt0Mh#YRSaBm>1P>1Qi+y&>^m%Q0P$r?a zjMf~8%4t+r${_p^_c67Zw6waIHEw8hd%z<+!9|vi0Ev5j<SPBEP~gmyl_Xx%f@H?@ zok(YOMb}^aNkcOoa7(nqBL53~kZvMWg@fyNf{8zFZvW`&Ft4j#x;=a~vNG5mmhbe8 zdgPaq&Tl1${8vt+P32csUiwe8d32}CRhxFw^!A;C5`OMRZDY9kMc-JYd{&n4z4`pw zP?K~Q&jzRazg4PfkF~-vwz8WxmGKP!$9tAax}vb0i4;DI^hWjd7^<`62py+2YA@c< zk&xvP00799xP7DnaJ&SQbn|sM819K^m4g{|z%203^7MpQ`caq+{=YX^Z(Yy#70@jb zW$q+=`@a|3LxRYJfMHbUDZmlE21;`h|Ft7g#sWEU5U@#-Yx{p@LBI1TD8+NILh1WP zo<9VZXCDUOgUU(sbo@V5$W?gj1A&hjEfbVPSa3dk0-=wF!Kg0hGy#KS%>IXsYB}m7 zL=tv_SKYJr%|JZ>0TOHg*Vx$D2&9FV1*CEsL$R1Bcq7mtxNHIi5=dAmThR%*NS4~( zI5DP#kcS+2K=1+gw<MJ-v;qg$0U}1KCpJ8Ji-THpp{gVUYKJ`DB0m^1ZXfWBOkZ?g zyF-}<bD+{F3mo|AN0}5EckMJ@*a8qy1gd{(k^69iRSLf_$vy2JA~h@eD!l+3*Pp;* z29*!g(sXneL{30eGy@O-w{yflqJj(mT*#@^&otS2MRz&+q}iury!A;+)Bw)byeO5~ zRXwEWkmrjU$eW-&KQ4~x{nI@6$brbbQ-<oNs&PkDN&^#Lcf4XKKE64}eBA3HE~7N~ zQYLOt<#M)SzlW}zEdHvM*Ei0bAi2%mAHzSE3T;s^BI%h=-i%L4zoIl{seMn9f33XG zvi1|DmR4lqsi|GYGPVfXHWQn&_*@yd>)f$#5xi{vM@r(%l|x?m>8M7oB<scK%b3xZ zBk^mcgaieKmXFBRM~3*aNM$Vjr(gZDcg1W!{j3bN*IQcp>qRR0pN(S+lD<<?WsT>( z5@lP#B_55FE9jJaKus<D0cAmrzW1%MlRd7aIMKFmt`*81l8bzLkfcwRNuAGi#^6cx z7!^19#X4<dB&=v%Atr4v#F7nnOZBy(%A`gr8xswCsRnB?Qhef?z0r8a`YQ7khDFBv ztQxY9GMltoq4zR`)8{)AWPiHxTt<%5zrGmq@f?9$AJp2Tw_2zaGM~P^ZvRwE6i+^a z{s2vWNSTD1n!SWY-}B?+mnu3qHf5)xBs;aPrlU7l_j_r{<p`c~+A#<a9B2yFtmLV_ z9}#v{@7dK5RF;QR#S?G%et7|{F?Y~%GUrIt<IT-<i`AY#oTWMDpcipNX<IOb(5=j= zbMWJEshBqlh^3}l*{FC6J>7bH)Kkswp|jTTd%;_!b;egeU@Qn)o?Pr1D`<R@<o0uC z%!l?wrq9k@DN_|+BnGyp4-^0T(?UxKE=&<X$r_%);~lT-JW#+#Oc0#BjoSJ0M$gaL z;`X=eRKE4bJ+1UHw!U<)Wck7%HsP>h*3+Z;r1x1?M~W5rjU>t~k2<x@DFuZ4aJJe> zFLG_-t;bt_()0DRa_7kqqcXlmvED`xSr*mt!#RCBq$Y_Za6u6ol|&xn%dbg21~=Np z?LA-^AfTzIpueV8MoBf;kO3dVFiV_x3@|{Vn+rV5fIgYXB(E6Opo)P?2IfiXph>6j z<S3-p>NoF~|94Sqn_x*d8;JIy`glWS$f+jq_RG!0dUITvb!8NB%tOukg0R<a)rc;H zVP4{4ykkmviNq(Rpko2Kwy?=8MIood5}M1z15kqP(pgXdla&I&1!qBiLeCh02Iigy zE6|~Vk<$O*J0KdG>E&E61xe&~>JtI!5A+FfC5H-7J53A>WrSjQkcN=@G+>iU1PT*9 zFWNqTPQ`?0mkUIQK(wO}77EP(ghrnD$ki_-5b-D}F|ZbZP6}Y7{CFp?gMSqU#qGyq zqDbu=A+2*ESUoo+r*Wy)z?_r%DtQ=0y8RO#3n)ynnt#GURi{Q=0U$yIO#Q%~HEb42 zq0|FqHgfuXO}Um!B0jH!p%zV3zFj_w-uwL)3+cIK@Me<^FETx(2@l(gYm+*hyTzyK zEqb{sR5kK!z!|b6>CaoeH0unm@pfc{J&5Za7T;u}cM)aFY}_o94Q3_#Gj?3Ri08QX zy=TYI_@|$ZpK1ZkIFbL<LXfWUysP}pLW^X=J^zlA+Mw-c0p6XQ02SPku4L)YS?y*X z3otv>^Nt^Nof8IRW5~R5$aMZ~@2@h0+ZWD<FX9}hEE*Lq<e6d^RsQB0OfS`w3Se3Z zoqO!IKF3jz@ZjzwkSAYUF6G&qT-oOiaS7bLhnesB=7t)m4L)OW@~8<PQl3-QP&Iq% zB2-RSzkGD)_{#MD=0(&gm}l!HjBFN&|H#}lHLf)?7O3G1QXG(7kn1L>?@jp`2*j76 zL_D^742iMaiBhtn_mr(aCi^pUvY2R^8i}Pv>mhrxZNkvs%l>>$s<)343gD70<yNJk z(V^T?e|zn&D#-N-KdffZ?4c><yD1NiW!hawf_CppkxXSXtD8o?skE?<BM4V%*?gfk zfq|@1X=;}K(c4Gs>PZzghS_@5>LO^?0h>aXxq7w|-WjdRu4^&;h_<opX^zl_K5YMm z3p_4Sa*-G_<K^294%juHwpMR5%{hrrZ_ImJAumhYDnG`d1+&n%zF4X;n{}+GVuvz` zOZ-uB&$Fw<@%-?`=ywBNGh{mau&I5F71VCbBusU8!Xzl6={#>JD)5L^XO=3~UFAse zg6$*0#ZGuem%iemvBikQ1ZQ>C>GRi|o==S$Uv#vUzvDRdDI?FsC^IBg;nn|5!{EXv z;H#(f!B5w=)wXWQLcK(1@|=;(qm)*brE_$K)xCQgBiEWZY$T*X8z=^e01B5Hs;J}g zH9zl&csT<_BtZoZc~06u+&{6Q--3W3JXz9(6302%Dt_pNNFkmC-w~!gm<7N*p0qO% zjqFQFrUXAx;qcDh76mkcoNv_6i~p0?`Pr?9f%LSD|0gb3$Cm;MBXWpmqYM+}cm7Zb zwP8%~A=fhL|AND+LXeb}%lA;#W0fCG1GahRBV0`oZj>xdA?Jv5UHvf|3&AT~4dO=d zr4z{H=sKi;RL}z-u@wISpaBRVD!KwVz_FebE-LF296)?qF;skmo|(cF5dyIKSkLDm zG^|S)!1J`UP#iV}{Hhcte2I6G@jwmYc?1I}VX-6@x-RfBMEn3v4h^%uJO}b2r|)Ho zHz}`rIzgt&G@=W81Nb8K1?t5GVPI1z$q3ZTrK{nZ1$`1zY7HNrfmWpl%t4zCv6P5g z9L9Vrh4Gy~VEnMahJ-uu)WC%yRSd?DM{c31v_ESMFyXV1ck=H`pR(%!UWu`dS!3A% zSK@^9<R3U5cSKyj`?&Dkqhy+7n`@-RN%)0V{(9Q;Hux@THp5A2fvBmiZPBfG)B=mx z5Ph114bM*U&}Aw2(`WT@0qcOptx7@g8Xyv;0*_AvFZa5?IA*icM+7gSrM*m9M3%fr z5hGzG-r+-<=x3u{d*{YMc2(lO25I-AEtZ^#eCWPQpso9^H89a#b(vp#<sFWLroTn* zrRYdUJBAo5TpjE{Fhe-4qNFPtByI;cS*re&e-IkH+CA&FJC%C66C>I1&Af3T#3IFw zks%n<8s4ABE+Xq4=p`!iiu43w0a{VgEJaCusVsiZE#pq#bg&(Qd!XYo#&GfBiUy-n zVq+;D_r&4iRY)3Huq)<cr2+cLD!R>QUL8saY_8!h;g47N%88PruMZmKQ5VWd_h%n_ zxZO{U3#7qQpEsrJaXiw^<-;?<D7TcjAJvY=j6q)MvTCngq2?<TKF31%1oj;dwen=B zFpG&JJvbgJ7;UpYWeki{@K_6B(Q-Jb2@SK_VvCk%uNbF(mxP^mcf*eCg110%AM1Cf zaI<rhdZ<LhDC9|Q!Twuee&r?4gTsQOJ2Z#RhzfZ%&TU7=@hasaZR|t#-<k{oW^^#e z_;M}1&<?STCyjs12)7t#bTz;C(}sq7EF4k5WfcP6+Ny<yzdigNZad20?5zK|1^vxw z{7!LxuHAj%DjE0|eX`5@Lbchz*4IVHI@XaA0<51L-tC(Yu=wQ4qbhQha_#TSUjKay zeB;K%uD)MOA0_iAZ=a#Jcgg9<hy1sNx5(=!BmxcVJL^t&)GA5>`8Csb(&FdMszgPC zl|JfwOv|@9(z?0_z35xQPYR%CPfHo2FUit#Ot_`uJ&^ybi<NVGKRaB0%j;d!lUy|r zoTN@IJeWl7mETJ$`#1qi3IE~~zO#gm_+>w}0Vtt+=k4J(a524sOm1Ig#><bUP+kXE z;EdM9AU)Ry|LW^x%5RN~J$Mj0vTRR{Td1Q3b_Zbs-MJTUk%Y4o`E>7ftCJy=y+x$d z1+YPae52;}Y$mFBMVb>PNG|K>87A62ZQP5GQnL%0z#tcLJS=+r4>y?enwW$nbe@}b zBk$NXfl1^}U)mZrYB_-u{342@U_21F%q5ZY{3jZSWCz_$fH1s}B9R*^S%bW^L5y1K zB1l!B;<K=Q2@)IyMy&otB+YL@w2vnLbb4-)Xu}}d7x-Z1XcpR7`iKv%6m}5w$k{RU zG+Z1}yxmMsLboy&bL8L)_=SorvLRA2#T#xaKF|r3wP9M_oG8m2q9UU>OWn$jP|;RC zQ(ZfxKA|CiTTIS8c>2SGdoa%`8(1bL2akCCrNO6Wz2>ulJ?bK4n&J7R<mw2|GZoF5 zSJ~HYxam>G8b;>3yIAPV;<frbBo9hRzr6Euu{HQy{@D&vv7;-%%IeUH2Mi0J4`+;> zxt)KM`n%i+KNxFnMG%`weNwOA=M8VFgJjWDIe=%h`li}&i41*I7NEsc(LhzPdfdC= zWB&D5u*T2vvRD0zXCE<!;#1o1$BEe*haNdJ$!e7QPH~R~nQcqE%NIIa&Ch=#k^W>~ z-Ufdhc=;jZkH)PjQ<`+T_F?lD`goorB>2BuZ$d3@O9{6dx*go#H^(N+S*kvbT;wrH zN)I&9cU*=v2Fd*y7*R_^{%cPh{^T4ZI@Sg1W5OuASiYt&-+BwEsopZyUSa=-c{?Re zOpg(J`Jtpeg}oABaJ?ZCe1=$cwB!rGb)*L8Bk^xmc&3Hb`*(q}k!_*qF&VXT`}iLE zdqnL8_A|5KiF?!--wH|Ii>2U+4YaTlYkp=d9M}M6r3+&Jh|h*1_;*u`Um+%KtIDA| zl3(=h&-J@1($CJ?$?x|Ow0>r<F4Q~=yDJzr_@XeD?fiuKH`9pr@#AlyhsyVnp7s;4 zg+_0JKIJ?Ueho1ifBt9OpC+G#`7&9tlKlw&8LgB+ZZ!Uzyzrf--(11GVCX}=<eFi8 z57wVWAReZe?*2@Aw0!b@2z`xlC;7ML-G!8yF_ZeT->RBNiZ91gCN##!U#8TEJ}=E! zPklcl)QW7x*OtpLrui?7v4K~;@_x<cuZQrsb+!{yGs19uH?2yw#e4VlEL`kEi{i<p zw04RabSQrpKRG=l7n;@%Hrop<k2~ul8}Mr~Qlaq*5k)y1w_x(&Ccim)>%sCf1}}RH zPcd`u_jFf()E0}6R7Fs)+_)<KrqDy*Ose&PA5qA|s3!n9SQ%xF1|9?z@pu2SP$;NX z{y#z7oVQY(*wTkFI{XtOzql(c88+3KZI@+ZixQ5_9g8YVls|qju?wh25VmSB{!*ly z6$YoI!F+;=W)*;^0>|Sd3z~-J#2p3~gr^Dtks{h})Bp=83aI4i&H{3kQS3w)S2J=T zT4Ag4LY5pc!WRk9gljEspfl?GGZ{`ahuji^q3+z_>cd8Q)3$)%=i4+{UPwBgkLj-5 za<iu@AvaJGF;Ify24NDpI^bR8_5;66AU77utsVs;lW1nIgb}IN&$HJ`??AMcunBG$ z3NbQgmW2=DBfXghXgwUb`}@1RNUlX8<g~TCw0j4D44n|th3`<tL%}O&vFnjVqci%H zUc9O=Bsh|0V{7#*%}Vii1=pV#=mgV)<h7mwLEitG+)!>b-wjhmtyh(aHy+h8fB?vn zOqs@c=Tc~oxwf}IFKM5`T=QIL3go={96q-P{Ss+512}GhsrSq(gF?twPe!IU{lV-v z@{;uzvc`DpRAHyY58nZY$I*qyYu_MLP~u}QSD0!;mreA=JBQ((ii@9xa|M>-Cm|$_ zbYF)PWrtKrCI2!$HS6fYefHqZDb(Uw6)MNrJ<^_-;r4$5QJvxBd277UJg_dUnq{%` zwmZ>*!C>Ox!J<gpVjW>*etU+>U%d~1iyngQD22Se;$_qWt9*AKk{Wc%7^s-q!Xo}q z*BEXQJl1qo!v%}k0^JS8>?cP<5p}`A(;XL{Of~1Ftrx{VLJY8dBJP=BgwJItbvgsd zkzyeHuaBcP>9u&XtmI#OUj`*k;VyPPjcTK~RFtr@8sCa46Esc$kr>Nq^YeTZrrF|{ zx;(Vhz!OhYQTW*NY@>BBC%FhA%KpUU+so~Z#}+pFv=X9Q%gN2Kr!#XL;%yjJ#t9__ zQjdSHDr1dTsjrI=W;VSjOyJnpN~KlN`kuBo&0;4aN3Uu2!u7v?PxW8V*{)5=y>Y7h zu^jbEO3huoFFmEns4qu|AlsCa^E(q?zl`s+5MnGh%3EjiXKdXxvsMg5eI%A>(o$PO zKRcaXq1w&ic!wwP)2ZE5+LTmOV`e1EnU6CsZUsAuh*E+T<5$A($wzO+UlP7aKdCB? z3Q45SdgLEf@Lx`3^cXf5rk6zGbGivWCkc!01^iEw%NmOD_GD<S>nVlA#EJAbyB-t< znU0a4JX<`=8HxfU=8RMdZ_RLtpAe3_nZy)Tojqb3TT+-?B%S)<8&9Q2{j}{7yT;$K zL5-EU)l&D`x2aTZnPL$sY4NhU<W!>KH1@rIB(;zJi`=g}t=@be_SrhYkAiNqBW?5~ zy*`e-w<o6%&pAMz@#SItdm%XI1}IP~-KG|f9@kR_5JDm9ov#8;MMx$&5`HF$9d`4P zz>qOop6>q?L0>=8I|E<>@$wp7e7&<^%YfBWVDiNST?LKs5ZEUOH9BrVv?8Yx3f&3> z$~y&-CmCQE@Ozvsj$rIV4r7a9BV>f{u6jY48#@@l$Vex$^%dvhBM4PFcEXef-+Y)L zgAH8|!!yX_*5u)!4w<HqGeixlm_RWQAn|Fy3NeHyP6=4L%n6Ww$n#(n)HDLuG6gO$ zFFH6w!VDrrh+d&s7*Gx3$YFNULSSR3pm(81q=IMqKZsl|?0Z4N^HxA4oQ(Lw-_L~> zkjo7v0*O9t@63uP_I6!4E{J+XInW!v(uRnin``H-b_0UK&hQ90q4VNuOpOzI1~7R4 z6DM20?&$=o=l>?b>#C+9N&_vrG!kx%exFcV$i8$%Z2$LWsIthQ))ZcINcMgt&XIQ( z8ABH>DEYgt(RXi=5QpKnX}n--Td1r*YkU@o^bqZwbYpO40s;DM!b49YUYT-rU)1h6 z5wCQ#+T6T*xs;=IS7dqlrBgVwT*maN$rsefD^>~D6ULUnFijD$z)j~I%g-Q}z}0(C za%T(aA8h1)f2>veXqU=Nj4Hn3VUYOqE`g|Gdb#l)2C5hx#~jtW_${)Q=QCjxEw}X% z)O#Xw1vyXpv=`NjEQP0*8~ECtt2EjilLdR6d*1wAMnV2fmXQp7n~@`%eIq~e0%R@# zgE+*;kZYmGh$?e63zuDPS`T;JH<8&vu8l30r0mr_4r!cPE^V2q7{|(ZYDa_M3!MX| zXR|ZmAj5Ne|8;AXaNkFpZQ~-?w3Xi)_a!-%jq1Y?#}Qw1Ze6vkub+^LarMM~KIOz= zYp6w8229^HD}7cV8m?m<e5x|AH1a5yP|r|sHY!qaP7eQZQ0picVvN*ljkH#<OX<#L zThUnit#(d%J-^^*bu1ycoeJ4WH(A6xP4$M$fM@uR!y*|qxo!>aw92ye#c~9?WMw-Q ztD?uNOKo>YEbX3Fy<PCP-=ce%Mc<GYzBYp?PD_`3NfbUOWUVWdU5K^F99k2-tZ5Rl zMW;5K7oc*r<DlBTP2D0oSe%^vNLz~zmvxMtq2NXFYZyI|dT5q>Up*s@S1nAP{8Hj~ zeuK7gm=i+Qj0AYQ)#l^EBW7c3y40!T$^=^@=-|YB55M#Z^ezkAs)Y%S#8a!g4!)() z5gL8p@46kHN-I2ZKQ~h4PvygDhT@wZ!zk<0nGMZ%jJ?8y<CvVWEsYmu3(5~$wKxTA zI;mkEE?>*@1F3(JU?pe<-)kuKS7$lF>x{8lUMwvV6$&gnl6V$>pl1<;QbKdKBtk;* z17`|27N6nNIe$LhO%P?jZFi+Wdn`90woGKK*2r{);8KgZ7-9AqZ$Q#2*&X0xbU^8Q z4L=b5r$e&s1N1~RnJP1w4pg9ukY7NG2qp<Vw*?yt05Zhc8t4~4M<rvzIWJ<h)xa$x z#uNhtjV$Pejm=3VKqeF-Sw}!3(_>~WNmDYfn?)h7RWUs%2#5{-_EOPAZvEfUP*?4l zFo?Xvp!@(AYz(MK#yut2iKy~F9YG0_1}1zI5u^+xN54OUJw_ZKfkP~%0u7VtlK^h= zdGmimVvzHdCg2*f+<+b0wS)%Ja=^!ci<oHVeK>%rV8XTX08_yMQqw8`n-S;&OpJT- zCuA@9V8RS}hhI4ix&EnyR2U%PN^T7J!^{uQ^MD^Ah+FLu9x|Yv5xn!vh=>QVfm9@P zKt^;!2cdqyqC0XhiwNw7DMje3W-<)gfuf2hsa9-p84qSlxRH+zxbUI5(sy?eQ%4RK z(X?_JV^C%&=-3jV1_iNBzpKv{9}*$e3*<r6!DiBnYR^{kpHmo=)g3oBj}`D3>XnWo z0^Q?LGy^#8e34rqKne84bsxg{-Y_zc>CkbFW<_-+U)1XGa4^B-s&<9hr%p}EWSUSN zjnAKsa<yt<y(4}6^(s7WwXP**i$sy{()l^&;<Cady7M))RM|vG4{WDB;y)$X%6oDd zRe`(Wj6ta8tNa*hJ?TqqhaD+eM&VYs_p{1>2e+0!iEbDL?5vNz=Ingw66j_ylEoyM zChNm)3+iSCPT2g%9PXL<P0;U7;RGzD^@MFM9h1J6+<!{-_vNBP%ARLmAz9e<9FXK< zo$2u(UyuLb=Upd_DUZ}f;kdjz(~V4D57&G4%k8sHVv3pMjX=}Qe*V{rTjM0;iok~v zy1VD(mD_0xuoS%5ckz!pBuCrzF4aRZyUT{1<@?^TJJxsKyY(hU7asbOz`~W7p5@e_ zR?J`WG+e*wTj;7t34H6IO46Tz_X*E=LKE?9|1)u_N5+N9w-WdV3@vyuwmsDszBh^Q z4~G2iuW%i@2})t;#Lmmz^1|o`Jgts5<FO2k{85w5la*qH2k;k1wJumiSQovg;cD?C z-E$=~>D1xV*zfQ9R>z<36#V%R&Cq^P8IAny>sk_uj8E|+bpKO>p){KPL{DaHj6#wY zcATk9+F#q%v#~ApOvTJB-BZw*&Y^Z;ot8{BvzZsUvCoy|{j0dyRHD8}Di|f!$M&|( zraD4pF>oWzD?q-4?&+rqDZzmJfxD%@-^FS4Mv<EO8AWQ?oZM_~eyQKhIXVbS8j}6{ zz+Kenk2X%PP-fC%<I(3*n)-OMMtAl-dw3r4^y8Bq--(r#zFGHNNGOoE!2N2&*8Jzl z1_qNeaoByIc}5<fK)NZ)#*ou!&P?%O1r0G>NMaXWfiTeU>Hy43{60@{Dhyw~yc*)` zq#qz^!II1SA4z8&6!q6e@uj;}x=SP^maZkFLupV-1eQ+eSQ<pSq?c9{P(h_b5D9^$ zr9oO67NmJEzjwwN7*-bk`99oxo^w8j0Zfh`w{~Q^?0g0KKC6?5=0V%Hn})K*so=k0 z`G5s4X^?ZcjXa9p!kWwT>hK!@*=X$LR{@5nB3V?POA_e{Nln4|m<R!D)G9bO)KJ6L zS1(ss^B7^&T+6Zq;OuZJjDxTk=mTer@8dQ2u;npeLDB{|MybO2B7j(X%7BMF2CO60 zDm_b7bUF|=d5^pk>0ryG&+w5iPwrqLJ<5Sk**+f&zS1fJX&i>H+&U8{z?P8gOcJ3| zg^zp!+|6Z0#DIv#g|NF3-eFRBaO)7#!?*>tQe6}m!3xV3V<Dgq0_cum46qW$7l96S z46q~jhz`g{8s^@~vgcJsM6NV441+pi?M_i6sh<;qj0f?hHhh}+3n^hrz_XC>5R*Z( z2Ap>$KT%1FdXXtKDS*EBIzCODjU19b@Y$Vr7Ld_z5AbPZn`R@D<t+=H7M>+1X8;%R zWrKg`yHbEgF<*l*UtNs5K0}b8`$oC=BpT&9SggF!fA&e~+egWq+<zz6KwSsbdsMMe z?E?{2jY1n6@|C28q8!Q2<ev^2*(pAVS=6nJK1wQ8FMinK3{bN!B`@8I0M+^8?T9}O z8(_wK@II)=<XyM5-O};^1vP6WuaXnQ$)s}e=JrA?ybsoYxV53J(Z7C0zOTvqaWqme zsk|qC->3WrcUxj&!B+;sMDRC%PHfK{p{)6##fcR+kQ8QlSO`uvIv8`_v;N|5Uh?fW z&}`!o#g<XOJatPxmo!Dg|J0*1eIt2F)p%2=!b)(Yj>^(Ze!qQ)t)EHZqlT#Q7a_?C zd8}#sQcl26*eYQ{4(nU?EL`~!R7vd`*Q0-BpPW`ZS+<*`&ejX+N-DtcqTGy7!@Owl zZ}cpj(wokDj`H2>XX@&5j3xFtKPjBz7xR+4zDua4YJ3T$E`8EqT+?gy^<6S2yWlfI zd8{q1K1=sb`Wwm8RK^v9MwMFmc8@upX`hJS!;*@~hbp6Do>=XV-4NtbW1PP(`-?Nr zQ<aaJUk7C<MDZNgqS*v{(JFkV^UxLSsUkUodBN<88~!H-I9FIXT~Q^!l)`z=)PAHF z(;7`qKasWCRU?=*q=Q-bs<SXW<uQeIg>@+hshrBhYIqgkbT>Pl_$|@bq|UN)9&D+V z9aJN*)Apj$!q+1X$BT}eJ659=wpa&7dyjk2nM+Oh-D*-BUovnASNHu}TcMv;0uzqB z@&=wi*R2w-kScKH@c*inZzoc>G*j-QAVej|WzH%)H3t{R<r?1M(5m)xbCu2f9<@h5 z@!O-v_hFCzoCL0mh3hyC0GJFe^?S3yg>A1tO97X$vSivD5H6^qt-B`hc6WC-U?&|w zhCZ=%b91{@9*OC$Je!Gg+M?|Ki!6x#r#1k?pD;LI;Gtfi_<-stF!ropH(j4xA@_NR zWMLwHBl)GeBo&1>!87S1gUGaaWD+Q$1q_l$=V%aXN{7Jj&C?7ek)VMI>5lf){}Hah z4x!x>$N>Zeg_=Yj;G60%0r;f^r9AL`6=ERjIOQP;ilytocUQ~bf#u#rlirm`nnBq3 z0aQ{Sa2KF~3Yj}QM+c+&vi|?;hSZ}`d!7Up8wrNLan^OI42)zBV3M#dfV^`YE^4J8 zc$ur92$knB@JF8j0K%fF!0!V}rb>ZMA==)dSGQ|I%F+KBgbFd?V;E@D9H4rhVEq?^ zAd$9PVNyOW#e|^T&ytg-cfQtfL!i?P5W0m7wk-mXhM4)(L)x3aiJedy)k6c^3J|E8 z5WqBuxKgCcFIxt{Y)HOlh1!xqQ09jC$dU`MAF3G~bmc>ooj;E|I?orMv@n}XNPVL| zm$O+KSw2to^|1(gymf&c!IfD&g!^MqODtBN)9f4dw47RYiXHg}|KTHey}QJF66VLy ze;GTt<VS}`xT%B!vhO1_l$cu@7tBJ(EkgN+33i8ONMR8Q|Co%65V+AkVvI?=ALkI= zQ&ph`rc-W|N;Pc`n&@wp9Rze1Lqm>p+zRCULbFaRZ#><X+to{rEpfD=lQpfb!{J!< z{zo<dgkZlMyna|A@cc-BG8kR`<+AeAWu@fr_w4Y0TEshtB<ChKC>7$9t=MbVaaxc1 zw`_}qEj}nmw?OeY<Kv?EX!bD+t-n0DB!<$xZVEnIy#|R7<BmML&gS-lm3I$`MWF-+ z?rT@@1S4azoL+%WoAkZwMl~AMD`7aF5St|3=Goti%;CGF7Pu+Md-IM;>oW4JWhk7; zSbWg{i->V99H%-0oxlBWb_NjKs>MpXa++dZ1onL#_YO=CdlEM%e?^8Jj`?^&ZcqCz z(y-h?<7l7qns6OAnzaXS_72=wk7<8mk>xiB%hpsd@|(3g^ll1J26Br(vlAR<<4=vi z`vh(BB$<%hO}|lE{MgG7<lPvhXy<ePB4-pbE3d0uAvJave}`5&{EngYn;5NJH@fH$ zMJs`n@~GltlBFhRth$76gw=t(NfdbWuZ4Crv=-w0!VP3aUbC1DF(`|tmePvrtajX- z+s@5d2i1LD=QQb*8Ddgz)Y$($wl*gvxYH#KIlflU*c(3|B<HfAV|e0>?Gje3T{rrk zK63bz_?OivyD4i8KFvG{&zRTCD3f+g?*e0TIA`M(M|^<<S!vYYr8TOD_v~ECWMqEf z{<yFfaJFB5L;IP?@1qE@)Vk}MtdTIBZPSBogP{f_og6r28h}sP<MfVP5e2{|4w{Q{ zK>@oJ`pQ|P3A`|7hlgsM`|S;~4R`LjhBmWpC~{|}kt@``DVLC>fMV3~sNPjrCqAFY zE<;5v-a_D;lK`L5{JC^sH9$O*26G881TM#KPI>*m=wbC%l)MX$5zkgxWh@~4_TrKV zv1DHrNWu*c_)-0jR`qTv3CFBDB(PllTx=Ni=VcEFoszF2$S-9<Hoo6Plw+X+h(W@! z8c31Q1%RpdJO{$!L;%<+44GrW{e_1xyvy`xNn<?mugoYnM3@f=khU?Xzmza>I+E=e zh?x&3H_@mg7c2D8J~oj66hyqd>C+%V+G3G_=bQjpb`4G>c;5$YW3W*l;<oe9ri7n^ z!!MsFTdj2h1Y`Rb-1yfWR<QT*cQkaWV(njQFrb4^CN!gLMb1P^ft{J?HhT@kNMLJ( z)bU~6cOoJMOhz|TeekwtWMQ?|n*0F51bj`6K;e(T6IEWXz*(>L=x=hFH8Tk?@IClF zYG30TEn!w1SV1{9Aasuzd-sDe+ZEDl$&aR4BJ(+=;vw7=c~R>%^ShF)Pz+c1Zv;QJ z0^wD2Lt}29_{7Q6tDj+V4`nlU%pY$Pi=w-8b)d6w2}{zwz2<tu2<3nym!GPWWt>6d zyD}#D2ZH4Gr3~qa&06KH`Jk;<A}P-gt?=qr?@uR{U)Fksv4K8$+>uC>x;j3|iVV(- zI`(zJo=B6cX>kE~7yGN(xqTYCP(TVEg0FvFQZlMOcN4n1bhy>sN578Ua&Pk4E8^(} zpJqZ+yex|e2f2?v<S?@1xUk22hVM?a8yZx+tiwj6R2;~=-86>YG<bE1cg#dTKH`0r z*7izA-TC<k4-riEqeOWcR4j&5CU^4jx>%%~3hzLTI~E8WddN-lKnN0kv#CB3l<RXz z@%kcM#1Te8A6D?AF{;eA=PPP(;mUS+(b&c3*Di8hDLM1z<uFlTRzra$cc<q{{0U#l zyLlC#;|n(V)%pAPqC-rdckPRFEwEd2U_1*3cAX8z4;iJ^w&|}KWpr#=hzAB654=s( z`On0s4I3ERFX}?;>JUCG3U6t%K1NHcPbxZNdk)DkF5pjHjumA`8xeNCi15N~K1cW- zITWF#6!REqv-kJ;-{E}kp#GtMiX!sZjjZ8$T(SMuwF}vt?Own&JYMBb0A<lutbU8} zD<n>xFRfYXS-*w|lk(34UVmSjE&m<uj;CQcA3a2#`s-=%#u~Lssq5vFaNG21>r>>D z=+V1qs`VqroJP;c)qE-!$Y63KzjS9g@aG<1=DTu8DXkT2)Km_i;mF9RC?tv8KIvDq zKq-i1)E9xfiV#Jt*@5E&2rZsHjB9_A0Jw`_|ByWm?h*Q<IU4}*o-=pkI|kxSz|KTy zcKr7CLIL)V`b%jb0MUD^N{+f|Na9eSC8)#SVW95-Z{uZP1xt8=%wBfg42U=6<tS`P z<?&K@TVqt5zJfpr@lGWF1Fe<U3>h+gpE8#?JQ|?&W?jk0fo<L31H`idj}8fPfR$8x z)wl-<njwZgz~*x86^K9A@`6b8=PQtUl4l(Px}h5=hDdxMiCCKlCPgzOIjlbiWFPZD z2!W|V6ahNzf-{S`3l7G@xPxd{;9lG0b$2emEfKYIt`1EfWN%WDAfoHvs0`hblQy_8 z;dNLL=y5ale@%1f!j#H22;HIm1U4J+GMl!CK!Q?8Q@UtxioZ8c06#P@1ZCAVBJmc> zSqfQE?i=F_s%4<ax&l6!3CV;OM4O49cXgHk;1jrlf%b4_j0Jy<VTwC|7Z6<ljL@Kf zLO`^`4T`iUs6d=Nx0g`R6eM6x9~593YtM2xpKa0KoV7@H=Q!8-@nn<Ui_w&pJ=;y0 zD6#q<;^axxk&4M$Az7t)TZelSh9YAcIWE@5_}m@A4U?cei1&?$;dk{S-|)HG<>A0x zU3gw#l6j9<=Q;_sGzoWn$Y{!j>^nAA>)4j=KR#7gRvpUgDMV!XPbqmX20#W{fS|~C zygh*1D>KTNACOdL@ZUJsCzPB;mki-?Nl|tUysvrsEE*5(ShtLrJF=>2J?}1~O;5TX zMLLg?qc2KCMw|@N$0q2q`cvB$0E<$ks_|vcyz5=k9y$`svocj8Oku{6%=c}_<SQDI zZ}ho-l-#>lkm39wyz|o2Y>M#Qp{_G4Ln`oUS<N<eMUZZeE`YORTDYP(q=k_ltD6Gy zN&D>!D8y|2y4ZQD)Ezr*M15WH^Unp!D6+T<3ob(D4|kt;i}Am(v-zW2(aXsBeNf>$ zJqtFkJu}O&$-{%-XSy!$9I9vUOIB1%5|*0cRTeGQ8&C1Jh>g;7U8KWN&NNULs)^#t ze4Q?{K8>F)Qk^ubtwM-$fLL#YfA3IXD>Sv{-E7Wk?<>7bANU)xu1tFOYWj)P<gd@c zH0kCsyVp*1YS|PqIO)~}%fa#bJio->?qq!N%j}dePjX9BPi&}v5o1+OCu`$LL})4X z-HYRX8iVwsbnav=y@1g04@@)sS`X^aUJJSk38H@)?UOyx=TQl*8t52cNwLA<3GQlg zz-0gWd)4xL#T#O<yiE}{RH65VCMvI+f_=%ClC*lC#z`vkAYYCKgP&O(^`Yp`xy1S` z7T<HjAU|V-yc7!L(avWa;6gA_&$JIRk8~=`eaOvaA<>96D)$EPAZmiA5qvDdH=_zG zw2@3#pne7RnG-b6|4TcWo7e$XTI#1;&dS!X3-7ugur+WFvcg+{Ex9}|4}UuEWp(sz z>VZc&62KQH${v#h_uWp7my+Nv0qzCMyCdsVuw2h=0S2HlYD>C-o(JOTba@(tn61B7 zHpnW9qyV3@tE4ERoPDQ=_?!j<D(&hC;n(#AbD(jr4+Glv`~=`oj{Jb#$?gZBE7o%1 zp$^B)F_Hc%pfiRpA=hJXgx?CR6uuE4*Voqex3%R7N9>y;IL&KThh{<Z(>C_)BiIk< zs9eEZCuIY5a=`tR<B90hSXBVF2mdk%3~TMVcW*b4ByxKmlAdK9+K(ygBtYo62F<Ru z!oK?8q$u9H759l#UMZ-Pytg$?CSuTjP}paO`0n`+QTDP-F9o-Y9o!fWX#qm1lL9t+ zzq6-sGm!*B@_PVKlmOB(`UV%H&H%vZCx~$);H^usBI$!YDjQV9Qdsb0+c;Pu^H_4& z;|cVxAw@?N7M*>YcApf@6)2j~CYO@_bd(lwF{pUD5rVTuFU4w2F6}l+3qd6+TqMB? zIdPwUnJ=kS?m`KSTCohu{X<6f3v9GV1SCCZ`AIo`a)kqPTw`L`g(|ia1UytumT!Z5 zCX7m7Y`7Rw7{DIxfQ5y4-ck3~y*y<8PB$-iA}QVazx?q@kYmguv1565B8khnc+FQR zpt9r@+cG^8QrgQbO<yRLTbNgfiwSHCpF7nH4%V&O?uq#^i_JV{>U+P}JlVCSvTll+ z6-uC~U$Rq_k*(@Lhjh4<?3iDmF!R-?=e1aAg71dMK9po1)n_YC&YN-kY`6N00QOH* zfGmXK!2(^v!_-lyF>U$}n_ZL8d$GUnBQ~?tyWc=_Q#KcMJ*@?icRA_G3_lsQ{Z)=t zc2ip`w{1fc>BR1@C&%ejJi|)yzN9{|?5F&8Gx^}pS|~p|+)P_{eT>3eGIlJZd$e@s ztr$OP9aVLtZ@k6Cw4)oj^;7Aga2jo~X($;%`Tdn^iagqPr+?yKFk8#8y;<2GQO&J* zLf3HQtbn<1@LduS=u7veLi1?t(-{PUfT$}g7zh$E)6>S0INTYGd*v;)y?ftZ2lGhc ztb+i-fjh(^Cp~?zwGi&{O8IoRE%R+vxwXgcO2JGjDj{sU;PQ@wxQldPsQ~#0j~b$` z>W=&723(XTx`q!|d-beOWA<mQAASBXFWIvYvN)F5AW1Xhx|5eiZ@GW2eS*%5+5bnI zKZ9y|@U-ZYn99%0X_)*fO9FT9TIOZ)#GYQ{O5PLs`CEj{yoF!`+ZR>>9n}g$sGE+v z)`*(y>gDUneB9k7O#cN>P&l8{rt&sgY$HMb&g$mZWCbjx2xS{<@Hpa-<*Y&)Bf++E z@0Zd55@671p&`Z0y|-S5&{wN(Z;uQ)3ps-z8Kp$Gpykq)ax*b9NLC9hPq<b6-nW72 z9O3{5v<w06z``e>LWqHkMb0WfvjRN&VvZCmg*WRegZS49Dh1|;h>3s2`kIgYIK&-Y z1qmYL9By?6&0(c~E6OMkg(z!g;$NS=WisWO2b=rj>yp5dj-E>a_R>=w4CLmHG$Vow zTZR%L#wbpJSSwisxD^@?aKq632*?S-?1)U&RS?Jgj0+6UGvL%NI)(<M_i7<Pi$vg} zg81w!ehm!t2Aqomm|{K>$OE<wksv+kB@cd6@{7J|pf|9C^y9KB796REx#9Sw5;Rd@ zAbB&uv4l>+F`go-kY0j^KNMh55N(pd<(EL}=uCP#0V{az0`RPr5~3hS@zI$@HET4* zQ8Q40k8hDOb0=jfnK%bRw=xZZpH(yH_}F?9W6F-+wpUbE;tW5Aflpfq%)g2Rv`QvH zBVvC5-EY$CpAR<b3AQ%Jj#`~D4DUQhp2oW_BqwWQ?tNWJZSC^dzxVmlL<*ZhZ5lk@ zuyL~Y`GI%izz*ZEw)?QQyldaVW~#}(C;Vy1+OofmZN*fmK?cn!c7(uBt1c9VmOM!; z$WT6=bK5kTa;e@GHU4LgEuFYS2Oa)6y&?au@mNjd^v>78<7=b4^|aL}!Dw7xQj4Lc z&%sqk^=z!U4SuxOjN1~sd`q*1vbHBuaPC+;CdIb}lMB9Y(%f03(V%wf(Ff)_YTsw~ zI*#8)&tHz=WH7b9y?~>AD|HsPkH~SqC1jCQybfWG^4wDjy1DrC&m#0MF*2B3Hd1t$ zEBu5mdGs2+!27};s>pco!f$d+z4sTBH~DOGO<4b_bELrO^T57jAFHdx5-PQ!*cYnp zj}2142b$H0Kbv{`5##i=dmwq7$U>r<>wu<rp>dAx8pUJ2lYdUZvFg2Tf8ri9=hSs- zFa(R1+p=eLtM;Z%+AC-&8f1u4SYv-wz}|@<Py0OkEKPu$G|1ub`xD*-`LZj2mPP0M zoTQe*k0EQsAzPtU^XG-*d&LY-OO$LLDLO^Dsbakrc9;(i|I&rDoa8KxAD)gxFof`Y zvqm$cx^cR%5EI>8oQ%S{dYt?U&e|WcWBIic7NCOa?pKyd;0`YJlS_a^q(RXv|EU>$ zt%Gku1y3QV?e`8E*=ZlI1cMAQcFM(Jv;F>8W&fCp3&aODUTg{sQwXGse%+&}SS&|O z>r&R!T`$r?2V)&{zW6s5NKHS^LiEDa+9(Eb`9<2w`sn^bdume8->fYY^gKtrdy0MP z*XZIndFQ1FG3{g4(8O0S?JhOxj_z}de-(LwYMx2f&m|C)#VhB1ovZ^DU|yVj7ojq@ z|7G<YA2A3L6EZuiDhy|C1SH6~f(jdy-oA-Q(Jif6@ATvfz*a7c5*N-?h5wwIX6RNz z1Q^C|#|c$DGkXM6%r~z8R-u>vA`SSBsM{B|)@1LoCxU*d{9pJ;K#u0SMKuwdWdSJ@ zG-BU!7AOl|HowCMU=I)eZ02*BSg@&-GiC!DKy6850S3U1GjDYS_=Ot~gaFMlxbOS= zQy}Q_2jHAywrmRG+`;8veL-@|FasE-YIy*6>4*xfI7osDabU|&8o=~e|H}aDH|$<N zVt{QC(nAuCfyhW#3a%pI6H!Q20gLAQ%Ni%iSa6MK;LZMwi=x?~gNYOsg5GP;RORzy zB?M6mI%Nbypos1yObDF(sRfrF2`2njvwUL;YOD9z!HK4?&<jFRV!sUvZ~V+*Sn$5W zCoa#%41}<*HMBn}IdkzY4YC@hj;7$Ihf?3Wr&ieUrL0GI90lpC?<B?r<gc@+M-cvm zb^?C>&~i*Vd9nk0S4cv2*O2-@*PqA!ant{(De|9oB(kH{FUFUaqm}nu$5Hlp<?PX} z3ueh1vli``o!0PcTJ^f4Q9lEE*Ku>_NxUSd{HD8c*Cl3!nW%sHmkrdl6jH(HPREa7 zCpsvndB`+{{oZkN<Balz!e1oyx8^(N>KP%Zh@BiVyz+dOfXPn|KeGxaG7BVeWn-V) zpLy>XY8q*L*v84S4;ot_b-?9J4*Pgf|6Q~{L=!(RqI(LD7|99$w|z($vaNy2Sq742 zy~rJuz<gbMewL+}d9x!M+0yyNiEkT!$j!{3)gkk)>88cQU&N8#;U|CXzI{CGrgh?L zb3}zJO$1#yS^oL^P_`>4P<kd<x%IM2{2Ql^hD^F^)f0fmRlroFte|S5ofBBneC{&O znp2+^@_~a-V|G$yrDi9~1S!=XW4s7<^m)c@mV1Z8k5ZOb-||eP4#{9JHi#@G3OQ$> z;s(9{wDw@nL{B+faW$}#RUO@@Gkc-j1%Qldc=iLFUnFraCTSEt&Na)(EQa_P`4BRi zMM3na%J^G8(3?xzPN$pG(<d_*;~F&~QR~#5y3)S%rn`hxI$Wi{g|{;Z;Wn~GcSi#l zq+H(7?Yrwt@(7SbWX^ZUL>j%QfM(3k;u_}>I}`Sj987k}_*M$hQm=LuMHuaoN505# zSW^;G&2LW3qDghv_&BZ7Lw4kmlO4&Wx3<~wEIdt5D4`S=HLuEsG-QG+d&uPc9J)V| zzv}%#u&hstzesEVMpW;RBw=lX-t5l!vBI=Mq2H+3x1Sv;Nb`e($U%!>UrtHd54a>$ zogPyAr9Qh7br|<=acXIck3GhE7Lt;xqL=NewXzzL@s)NUwX&+6*3*%CWw<C$;mEkF zh<G{{DH>1^_1`%IM4Sd`q1sl!0)c89KXYRK<?4uAm5q6D0Qw(*u3+Qf7Zc3H9+6or zn__<(!Qx;2ee1JwN;w7jEKna~Cl3aKSk#5&?R^Bh3uLe-9+eaW^Hf$k@KEM@N`d|< zYK5)mIyZpCLJ%RAo6mdOR_P*;c4UVY{2FpDv%)I#1Tt_8VpjZ5@<?HBcDGeB-+F-| zDr*R&zy*fhmw@cGB@;h53!zpT$zkh%_bx*VrG0l92$9V1LFS6yItBw(-v_QKp7RVa zuVBD`XIVpwf}-p5KR@C@1{oB_^wPolM?o0tke3|~b$VO`jt`)?!A=nZ_m06uLFy&m z0j480m<Er8Xo$f(@gRp5e?U-(InY%1@W1US2?>(bG1`yz+;*G%wKN{egzSa{VZ(!s zTI}Z-Gk}#qU`lKWbBa$BaOMR{2h<B$EdT>10~<B_`_ygmThRyQv_94Unz1HM86xfq zZmcDoO_11c%r-4!c-Mtl%sZ+P7eWKBb>FzD363JaO(GuR#U9D5{0D&@$Q9VQ*7}w( zn2$s4OKtUK>6bVYUWq+y{l`yH%#A_7b39A4qFZ`h(DK*+%pXhWH{m^o4o7gnSk}fP zLPtcCPSYywi7NStqDN}ar~5PGjjIMCs=LaJcitBU7|S1XPAvF{&HD)WZ*2c@!SmRB zIrAgeXJv3_AcFJ`3JjV+SWMK~Dw(;vJ$IDchI7aUf=83(Cz9{k*{s(=*}C%RL%R2F zW?A!+?4;|5+cv9)REO)z*$ZF9<zI5<-9(d}{W;t!S8gA;cv;GT1_YO*=%XpW$y8C3 zWOw|LryWvEB)(A_#8zDa(BKKHF%Dh!`)4;(fk$g!Q~2U1M@8mj%_;wxr{C{AG&8UM z+~4#?^J{ZvmgmlR|1a-<T3XF}H#be$+(#>`+T?8S24wea^V}b^;A6&N6JNW#SH~%h zOAcE_?PjB6t=@bkPN5Q_Ld0|O={#y@(_1kUa_a~x(NSd464zueT)kJ-;uO(Og~T#? zwTN&%YqakE_ln>1n4Z0^xYL+bzM>18ef0$&B3k3rv6KAKbTjc+&2j>_!=1LO(mT#K z3B&_E>MdNBrns(?FMx5<QP945{eE*aa%P3**s`k>e=Q{FjJd!3KAX+cdg!jLK*Gx- zKYL6cH%3pzbaj|B(xTDnu+_%7zuL$`D^hS?&ro>yWq44YFBbzs?(MnY21KP(C&{v_ zruBFdF&9xgLpChqq7uUxFIcNn+ws+@Q1r;<d8H@v?U|8Cr}Bbm5mrvL$EmxdMmFwX z2rNmGGXIaq$Q-qH+8GT-n+K;)V!#Hgv)Z4wPlv4Q)<ym4#v&Fx20zMU5=Wl&Kz1A3 zSrXA`tFETU78%|JwA9^Uy9ISLdwBDGe~S9*@0zPn`dZdQr}XzVyqcq6J0*=`MkUO@ z7+JczxV@PuYS$*0NR3`e{(bX-wVT8|wLjL!c~k`cj3re;m+;nag-bHjg)Hk0(4p<J zZsioet3!2bw<=qrxBu_uk@n?s;#-5(Nc)8j5zGl&QanPeZ38`IwVg96d~3)m7x!_c z0?ADf4y1?}<kjvy92&cIa++D^^hpZBji9pjRA>%LS@8%tB1rH=8GZ%cL{vUv8U0;f zLIYCgT4+TGFj8XtNevQPG#j8*+lIDodnyz(Sn)-OQQ2dHF}HOCFTbVOwZ7b%7%vth zK@48J(128t6@sp*hsv6uv~TFM`6$+gybgTLz2J`g^Xsh+POyc|tOhW8VcqK&MYt%L zK43FlYvuxl5Yhy&TvDN2Hwbh?qzH6pXMS@ZE;c5X7a~Ti)sTVX$U88TxIt9J0UP!E z9>{}a!U|V;W1XxqxDc7ND>K<`to>j`lgCCM^}%r($SAfV1W2LZ5acJ=88w8?oFx6% zpF*@NduW6$7DYU3sBku20o<R}t(TC+Kw0M@FlTkLcB(S?H74^9><pC-VWZFrRIq+( zYZvR#HC;gne7jGjgtgx-xB(yiYd@j83J1RF5sWWOA(|&ffBiBa(s=W6?ew$#L<iMX zeP$)a`S%D6r3F(+rBB^-g^L6)I=Estg5~k1m5&|8_n#dX#QZLkGym>A%KNiLGV!Qq z78%_{QY!!No1<%A$a3G707l(=@zV!a4cE;iyD|aO&6l6q%>w7azk4|Kmz7?txdI%u zBtDL8D+=+8!L65#Udzj1r2kx^mM5uc-3qzxr1aj(T74L5ZV@<jzMQ0qT7SYT7mk%d zFe&@&WO&Hs&sx8mG=6~35<N=4V%(Tt3fXr0^7KbxbeQUeAIbhk2KB%j?74;mrO%Q| zB_^54n+%{7tmd5&p6=>hoN2}B?N9+Prm+X!1f{+Bv|eUMKaXhf+clp3JqV@9j_0B1 zuISmk6fJ8HpAuoqc#$|b3ku+rQsL&8{9ROmQ9mB=CBC+z9;Yizblc-ogpTLn{e3AB z*UJF;jkBk(a#&9KR{H>RD&nT^58Y+uESnKaX@lQva~?`&dxwi-@~*(qg6l}0ml>nP z=FhGu?Yq)13TOz`iGTKN8nAc-kr$tr3G}{MP+Q!=VDxuRWrLsn(yo8D^q5fZQAx6L zu3$m}4S(uosoPU>*-GzP&pow5yphUi-c);<OhsLR^$y~Z7@jY<EfvD*dV+(e5k#~4 z({JN5tSi8koLFbAmg=G}r{c*S>CCO<=N6Z9IJ=B`PxPhq<Yy5tM}1ATIAx!>5)YNw zQ9^&Z6x=7aW2{%WY2x{H|IhOVf<Ajjgx`Z@+HX?gA4NWKT%Pr(s!hIn@%vkY=88_` zunHsY8{vQ>F<1vbbAgqip4dOey-+pz75{Un(K50=Qj_G_-&JBWyj#ZnGn1j8NTD`d z6rZ^XDRRoh-JcHE+$8(4g>ENOlt+-5P8)=E0S+>}+*AJM^5}yC104(`(l^s*Kp`G< z^IJm%ShsLRsEG7daoeMC6Z29CrXRol|D(RyA|eXzFtR+;7r>3=u<jgQaA)AaAqP1m zA7w+i-A}s}RpFk;cI(tS!q@<MtsGz_=}R0kUa60>=3&8f9lbyc#bF^9EKP9`1Ic~d z`w1c??~{mw;^JO60rlpM<PdEYz;YYD3v`&tk+j>u7m!okK+dWk92=C2abaFqqKImP z2gspO2)x-Agh>H!V%pM#hSmg>S2g@)L3EpSL=Qp0WlAy=2tul1xTsSf2ppY6EVyXL zM@S0Hn0FpwBUGk^b%?N0v3M!hFUUp{`JFJ+U)yM7!N<syUn)o;Z9lP0gOIuI?N4aN zMc7&3-7D6m#zw)0Rv|f?L$O2ASJ@D{yZF|j-PP%xMwtuEUm(Z3hSpKLLFN=MANlh7 zk$j$QUG^-_5~t^VnvmhL9?i7#)u=_R;ALK-R2JDxR-upbRg7WH^q~*dp}<;WY|+r% z#oc811nc%J5eJ=>*;r!}ep@Y3v{Co^l26OOdO}tjsiO5a*D}AW$%4pL_tfvw@hCyP zkF}|1X;18j|JF`yIOzA^Wu5hULjOTY;&)a2gyq+idvkbkA!~x(h%vXO$$W>#&}AEW zTvzWR`UR5e*1b3rxBcmuf?s^!(eIf9cvS`X1CDJqEjnpQm|70Rq>u}Bcz9vTHD}*u zoA#u1_M|PZUar2sac{g1W^VjTL}_vL`{Iu-sb1*8`Vw;}BbyZDE#3V3@YcN_Ig!&B zv<Nj03CaB4mIONS8R9VC6Ni9%Dk5Z?>*FmwueFN!8Rxc)I=$|FXLJjAiA)fYNZ+LH zNg%xUeUH+Dn4&Xf<BY{_J-#$4gI+p_iKec4DH;NIjgJ@JFQk)suY^5%*&W8W<d8s< z^Q8Inn$#dBn+Ml5`zOMo(~INDqTgJVxvoy;Rte+@PX_afqm>bdJZVy|w%)PVI*8sC zdi_S$<_%+U8EdiZ1V6O5=eKlNUH1k}%HRn}&$w^OJA=&+qpx{FvsB7k1Fb#plKY3b z4Ojcf?k68;2l~<6gq(>R7^;`ImbO372z|~Zyy%M)=vViR`!n-WNe5Eg;FEN5@8!lC z)5`DuBa6d;0RPzp=X%YUf84ZBm}nBVDF$RG;~y+$N4lm?c)PJn#b22hf67Ri+F+kZ zVqA%%nuR_{GSm5iwS4-bjq~ujA94}JF81bKn`XoMZ_8@&5CX!j8_oLuM?r;@27laB zKT$Aw$Fk@BTi3GOgt$gm<f>97+t@tl@O<i>O5h#W_SEkzR-Onv{1I!mLNy=HM!ySg zP}+6GJ4^Y*RaID{^1^Eh3IIr=gx0}~5)|wLGE~&+SUK?@L4cPWU&FsWctkPmL=v0n zFQ;L9(2yEZ!epGtf$6)t%jXprDAJ}63i`_hpF=z5y(2IaZ+SRasIcYBjj>THsIbm& zSw^J0Br(w+)X255iBT8#x_<voq63Y$I^h8K^KgNm?>tdgwOH`cmB^DJO027gt@(rq zf!D)tz~6nkfLhFrR8nB%6nC4?y9?{Tc_@MbZ!updL+-s7+cb-95h8$j4FaSj)ddHn zs%A+0I$F*IEQ{#@bSePLKRR8rysV5<DetzrMq3O}-ljPq35*GE$${guR{@d`w;}a` z8;><D9i+Xtj&v%34eKEUN%2UQh8Q0?B`@3#56$F?A;W-*DYTlm8W`z<QB&9;2V$gG z01QP_yyP?ip^MG#9YeE&Ymhf49O(#w2N6N)<cxbpUTE5KgW%etT^`I&m^Gu@5dyQp z{qW#O{DtT<`H)piapl;M-MRNCdz0s6c~;@O^Hr$n51ORKEUb=XeevThnZxjJn|0JT zb4~)X1aU)ep)`7;Oa`YFL<{?#2aFa2(nOE9c8f<_eq1kCQokn^^Bz}-1Q*nrZE>(@ zS*ku#5Fu-9GmKcEWm-?j%10EnZASf0pmwP*Fiz6T?&!*I*`l>Z6%VH*P5KRUdAFX; zu^`sO87thRj2B+kbR+HYg;2ul)9=NwCq-<;U4teU{ALaaMR98cOO{LQM~BSs|6D}M zNuZ_PDzG!}@|oR~2k$h^e^Co{y#&#X(P@}KObu_WZ;ij-Cyd|?so)u$yBgu&2HBJD z;B4J@K|Ua_)px)}&#Q<(l09My_oWgZoNeNBP;16SFZV?yblQf?<VVsoJxTiTikVgL z`C5(2eBDpQSuMI2s-BCNkYSw7giKQIgXOCVQ7fayXhyz}DV9Z@;cqGKtF7CZ1@9fh zvy&&joPG>aOm0Wj<Z_s@o}I5_bY{^Sr^ZmiZ{EeS(!6$P%{)ug*CXVg!6)=9=#lO( z@hI^wQ|QLWzSIt(HZL4|V-6j$Z$yaRT}3|snS;i4xib*68vSZ%EjY!Go#VAGE(=Z9 zySuJT%{uCL)PgbxpbLX9C|xnD2BuTA=PNlQ9#^0sJZoXo&te!VxNsR$-ba7DH{2a4 zKkZsWVLw>zMID6MLBU&r$JP1;?@>r2{_;)ky`<+SxNZrNbLluA-yRcq9lo%2UX<dM zT)<8vh`{6eIQe+fK!^IQ!fys~!O7X!b;mFGLSdm1lI3gv^^_vb)w}F1jRTW|OM#6Q zt5Md*VSl@faQIV=EO%4=9;9hguOK|z1eD11c6m}km!hmuBRb!aVLbMrVSC<wB=e93 zup`ak;c}S@^i)uKc~O1x7(3K?R>8ICOEZWWw^JcUED!^7C<+B{Kf;5i#qCiQm`H8; zyeI;YEOl7RI{I`w5}2L9=ETgbb;%y+k`Ze{A%k21>%jeF@yH$(Wp5_q<XOPOkVb<p z&6Xdylc*klKBfmQ7~b=8t27&c2j>8co!42vb?}iMoL-8MU|uJ1W3Z8aL5bj+%432Z z$!CF4GF5$qjrvzB#*CQoT7%?ppM1Y0Stb<%6g+JpUxen63PmzjsM0EGYHEJ2jLKZk zlUs+F8ClUm2CPWd+<IO)KnDIqVxt%$qgdCrwzjMW`uqEl;DGOGQiQGZ#q5y=?uN)c zBCsdL1J&G|*WGpiC4o$%RV&oo2JLp88xf9Sr&I>UT*X;0@`Zp~<5WVE2p}u6J>CGO z<T)R`zy$?k_<}wzjD4223#@Lo8Tkl(+zePEuV^PcP30btM5EVh?$KKYO<Z~^blpij z$$zBfao)$<YSMhY7cZW-_<C1<-yfBf@^J||?NYssP4bP7?cYQ_nOR+(q2=MM|ISAo zAuo3K^(F!Lk|QLWqD-A;?EHt0O$PP4_q?$@ycgOP5&Jbq3KudP*LLIYzt-vdmIHeq zA+Z26lp)C{jv;?|bfRZnp@u=MDR+F{ZhV}3)-4uRNZTZ&c-mdNw(%C{oX;$DGqpti zCS-Fu=K5t#^5JDQ{j#XkAqD)*0qZ%=_xF2E7P6l=SM3v)^tt^pT$*><_nL#o5GoI! zwzO3C?88lR#phodSwM{~0$T7DDeGbd%<_pa_Cy*)hFOIO{fqr+ETsueyB^9G7L0$; zT&*gu$<__32r#X@&(I-0_02|#0_QM3`r+Tl*Lfk8yP_68Lm5BfITGW3St=J-$TlD! z@$9kLsS0Lc%{JWBWtK4iVGUr7YlP>D#<g4Hz2m?ZMmKBFOul-W#WX+ks$uhik9ENT z#B|`r6RMF57g|CJ7Q0>k)t{0&^>nZEML%(DgsP}r++Tuxmmu?*ReR)!o%ye#tXW_o zp|CS?kfh)pV*XS+)=B=v-x%>efb--jgPr+AkY)pU$bM4xhlD3)Q#uKOzMM?TQsx+u zlaS|AxkX2JLv{UmvN^MNr?KC$zt$-*dTETstozOJIa8uavH%8`oPV;Ohr!z@f@fTI zWkgSz@0bjw`Xxy4=^v;wyt(!<Cf@By^`hY_*roq5BghjFg+m<N4ZT@u=pXyzCAMGx zQc61N$#8c-A?Y`@m;o0`bBD)vogKD+WBXG5>#cF^>6!O9cSzRH-3_%rDdXgH_Ga_G z9vwC`ED#!dXo#MD<i038CkVgpjdyrPbtIfM$}I%fskqy?B5qF*k@;xgCvupOy+V`5 zn>8w%=N2e=IVJBz4%EXDlWKR$h=OkHs?f&=_MHT@bp@f6f%!bKHhOv@MtgNyAm62_ z<d(-1VfX3>Z8j3*vD1Y7%eerny8mp_^bL}T@yp_{y-WCfZm~I%pm87i-Wn}g;hrwC zq5dsYKrE`{g~O~gXp&wRQ)s*Il14fcU!^3$i<lsp<fkS=-q<z|VBgM`Ds%$|RAp`! zavslP1~{^HzI2eP8?S6|RahE@Y~-3svm#n8$Lw%WXL<g%dz6rT`GPm}bwI43+W<HD z`>7PMuFx}jP9rd&K4Id*n(CuHAhHakU#?8)jDCSj296e=7g(g`T7e)K`ta~GF)naY znqa`To<Ip;SmIc)qd%tQECgn2DZ0Hrv=_C%lE%}H!3|>!_W?HMwlEf5e~P@&+NWzl z)qXsMNTDd!;RKZuqxXjI4bNCakPe|-!kN0m*IMUb^%7441{qLX!?`oVK%JK7!EA%R zN67kxXt})ao)H}w74^ra=GVt&^UjEeqW~1OLwFaLW@o(NDMhc00PA$b+LGOz!}~B| z_>-F_B$&WR;<Jhu{IUB`$HsP&fH<IT61_QOA?H;R9P07WG(vHwV}Ne)ICXs(`D+I+ zUg2L06Q6Ks2?%-wZ+8JXmlrSLONkf+x;<39wRcgRQ8B>V`WJ~m>;LiTmWxr~Q;V7L zYoC|s51X$?VszdrZD`zSCCH|qXWJnpD`r{x8$U4;GPjA`t)vLhMUTJjcathv*B<Vk z+3jxHO#tt=TGBmY9qhM(iIjetG5B@#T-+s=CSW<3y7AgPc22FHc5uUZfOl|lTkfSS zm%_sN5qbLGt+u4r>x;jWHzu6XT)E{_$wAmJ`ivhCAv)i9z2s?@$u*RV=U8YKrddk# z8VsPUQlbw!XfZM84^LguFpBQ5@=a(2_k%d!<d=f@WTmfnpBUeBllcQvj_lGM=FPd_ z6<ztGbTG_7r<Jvm@xp|!dF^w=m(jB*Q3=Z@pIF<=iCs`I5~xU-^Us(A64Ft0rflam zNBTOGF%PZvs}shEluuqg$cB=bPck_|ofc<r`RbTnxdhE{y5X2KALz@Ih_JQ2ZoNAa zDjpHuj}I09Mg<);zPtb3E=R(XaVftd&<pFO;<w(n1VYp`xuqkEsat!L%p9>=>Rld_ zDCrM}*58XfmMbv2!u_O#Op~f-zqnYH?TQP-8DHCIp<k04vo5<fGDOU}?;_E^u{(7? zGkD$OF6Ehtd@E6ZGw^$kC?!a+K2<$%S)XoOoX_PB{|IrnHJ?OV&!hudeX7#A<Xt0R z_$ji!du9mx@wmANQGc-Ql>OAQ7`=1wb|qWH7NZ4@Y|@L?-L{A>b`MTXo2I&S>Kkxj zvaIjoJyxXh9t5#PFh5+tzLTzsA@L3-9QsTR*dk;jxHx&pA_lclwZa?USxB!U3e~*J zZx0&-Nxvxm6EUs5bg~p|`qaZE0P%q<@C7L@uuk<Nr!;8L1Q_0D%a;|;Z`&-s0R>{K zybT?sg(|<BIDRCgklQUP8KW2Z6B9o7Lf*pQR-l}y`dB=<S?-<(!W$=>rS4i-NN&a- zULqT5ldO64K<?P`afO^)zM2jK6x-$j4CHZgli?Wfa3zm20L?LDblwJ|?yPXt1X4vE z!iQ)z9V5g``fvk<oS*E>fOTgSm<Iz+Yl;y5te<HRw3Xl+Y@}_0I%Ha+Z}s@_P&m5K zxduGN51-%nrmV}xgtWA_7GS}jeFIL7XLck=2imo=5)9Ovv<UKx9@ILxzm&?sOo)wL zMa{=IXi;F~*_QZC@hz}vX1XX(DPbXPb+VbAa6kk;Aw|6p<isMV&*)7!(;2W4(H;H{ z4g~sEp_x;33DF;5U(7N>O~W3`#V==}P1oJhX9|~GyC*SVSStOVA7Ob<twL3f85``X z#~rI`?#)#0BV&dQpZs&ZTg0#<9e?~#E<#0`b$7~;W!Ae4zbQp^^qB7kcb374%!fUA zcfO|Q@^HORr}n0&OrHJRw64ySnnDSnY=xkHb>K^ZQHzNKW{CdJzf}$2zH}4XxPE@L ztB8`V=$^w_T)WPEuOjigQWAG(Za^Rr%VG^H>*J@BW=5Ie3li#|2cLtlly185m{%`% z5O?wCR0~9n&Epg+tV@SjeU`QDcWmit=ycYHpLqE_W|sOh+f6jws5@^GIAxZ&YiGoQ z9el5<)med8Rl8zc8xPq6_uAdV<Ck~)(CQe6nHmEA<0x*N&M~g#7iHtNo%u_LMfA~P zCE1_)<E+(mDLOrEs%7@?zaK|khi60SGJE6R{Lu0_`C%CytsJB1Gc|fX4T9m8@9=K4 zopD?Sy}zd_i^ylacra0;S*~`3KL5geK>)Qs(KCnrie%Yh3$gkc#0&dP<FoDOv6Au5 z(elHb{b$pcQ040$nGSs>TTL6DEG23C$|f4^oLPZJ%QRgPOzD&8spG+dca8>s>n%{a zjCS82lj^nYhTPTQ`DQAC`(uNw`Zd_O5Gh1|5t87pm8|L#0;Mzgve{JPeG>VT1~9@- zT7xcCd=<4#5~dC(EA2X$<mz9)%=0L#mlKg>)93b|#vjs^R{xHee5K*)dE*FoVjJ^M zQjM9x9^y-w@yI7=QtFEI%&EwQd4Kt-=hw@dUtd+$+fec>`hGwz++>azzgYD5oo;V3 z-M4S-Qgmho>M`#5dPubW0FI@6Tnl`Ax9khA^GvP2sh$xv&m+0C56Ap$rT+U2oR%>* zef2-ioWtJwKEB&4<NqQwV4Gd;RSMI`$F8nHfl}OU@Mo#Kcb|<Fw?86?2uT&qEaD{q zmT+&@*8<|V>(i>qEk+_F7%O!)ok&d@=nNWk<`U;D4T|7+T)xe*BcCRe)hAaaMS2m- z{-;Z*h<toG@!xO}3l{xuqm6Rr;#~CBMsXewcpeI;5uBUgYU`p+bCE}T1Joftw<i+O zrF=5jkjrfo#&4f{w^tK@svergmc>I97;K|4|66}RgDG40X*RMUP<quK?u_q3c!)vS z9~Gp?(2JRc>;6bFUI4~*ti^<jtbo%7M;rJo$dL<>X=BcK-eSY(&!3SZ-E>?f15`jm zpz?c8h}6SZ$ygieZ*z<%&!r^sQ1xQKjP<b`s0P14FxJI?4V@=P1$y&pF-r>o%!2$Q zF6#F~T$ryE<E<0JTLPmlac0dJ4jE|nB(_>%r-ChOf(3^JEo1;?pD&4(s(As5y$>D% zEQZB$EEb~s@_r^hWFR2ozJLZ6`NxO+LnEw<YwfMV5tsW4gV79?Zv;Y(f^8sm7^uY_ zY*bHhW;C-lHp*&%4tAu4nfsNGFpTL<%o#l>|CadX*0e%GzP>xBLC#jNhf`aNUxxpv zKbNGUs{33a(6(u5iyW8#B9i3EKZ_rmAyFsm$QZ-LwT!tnz^j7#>HSPkZYYAzI=nu~ zEr}?<m~?Vznr~dMmDn{_WcaD0#G%iYq%*%h*r|bHza1aV<PDc34+Y`Fl|!@S$KTjW z6CLQ;C6H|dQG}D0UyVs~@uMvQhofPIF?b{}`{C(+G3@?Yxc7<>+Bz65V^U-e{n;ec zpco~0PRq419M5GVo|!~9x1-@(AsjS;VDLCe2c<l_<M<)#>)Mzb^C5<HC)zU=GEK4e zTyDq}B>ea#B)lj3q@FwWgJ73$v*TA^YWmzlQ88*t{@?|nlrKmzsbe-j;~U{$yiS|H z_3tlzl@NJwy2%#et?<{th*1u9KU2>%dyPRKzo#NL5Z||1I?zwE>@y{~Q<`YIZ@4!` zW?7$k?+3b041*{YqNfh{<JO;xTC@9}cYDT0!g6HDUqb}szSn%_bAAj_r*)&;;In(o zjrn+!q}|eIj@c#}>mLP&NQJ~E`O_j`ts4+X&@A6?>e&o3s3Ut47lFzcJ6afg6+3Ao z_N^6<ynDy*S+7ah7m4Nu{hl>J^9sF4x};Cs{_#;<rfVYZJs!U{+P$X@Ort0r_ly`y z6aN_~&qY-BDkuIUZWL2dVN{(}3D`Lzv9FYlDN8gED>v7(p{h@bA(GzBuJnywq)7X< zEFy5asMt3s)=NJdA!C+pQYE?96WDTOvC7*1BZt^EtBQgatVi>=+nJ>rx4C`9_p%k1 zK0ylo2h4I>JsrsR(o07lF}TU-d%S957IS^|lXL`Qp~odFj^PFu?bH@jSwf>8JcyiJ zc9H*AA%9l$BhY|llI^v+xy=z}b@8v7pSKbxZi42zBu$;p`eM}KXoW6NI^m<>(n0Gz zXv7tzpo@tbk+?xCFyy>)#MSN+489dKGfz6crM&@4>0sC(g91ae!n(9~02L_av`ca? z$PSn2(?&&+d4NTVSAei=L}s~7iLPt709ql}P9rnFkpLjI=LUabn}_=jO<~K%{m8Sw zJ&dUE%A601M3v+zln6aQE9yyr^=Nr8p%7|Ra6>(&otp+rRu(Zh@FQAv2m={PKchu_ z{u<(4v>6frap~DZL(D=Q10Vxioje$I1PfqC`q@Yy9CeI2A!bJt>X4in6HFxcoQ}wb zKP6%<%7YY;^}&kbhz8=qCcV#H&mj)@m4hDwBdCDJse|y(<Ym$K1o8yH;UM{anO|K4 z!qqAjY%4q)2}F%rRACUs2H@phKE+3>d#-NSHR7w)UB)?+jM$svfy9X}Fn`2e#*6-} zBEp3G<yrp|(nV6jI<JW>K^FBDo^WVHkUt%yWt*OeOe5_GKzTlEfg$+nSW{sK1DW!j z)$4ii3+~2|L`&mFi-d=ASWeMb4WLD*#rV;h%GP_Fo|e`YRAbBU(?gM(<c3cnC=0;D z4O4Iv$4zon7+%&oC*JeAxh?WVWR^UO`#u0ENvRBboLHKC%vb0cMjsnyG368sHl`|G z9J`k+&G0$P$mDCj%7wFEn_EMQ<T0B5J`_X!7bG!7NoG!}{8<;<C55(Zd?W6%@#k_r zHmeS!WiHKxV)j|zJ$~<}PZ@GC_)pg2qy2Xt^>^6TELmd_mamoAK~Q^5oiqe3=bxh> zV4B!H?&{k;?$3n((B0dcY?Qu>Z)L{S7zr<|UCJBAvoQ-Wi#f+L)EcHmVW_JfKBA-a z>$3iGvO!jSvRnLlPV&z(c~zwfJQ-beV-l_Ar>zcKzxNv1XSk!!^LCp5ZGs=0Y1xwp zrfWS&F3W}=Zq9vvA8M^-Pe-1HnooRvZX%o=iNL3z*nCkCshK!C^&asj;fynQ;V&Pl zGVJ4m$rrwuIR8%)xOd$Dc?8C_C$sX7c>EIJJ+s&B{&JH;bG}y75v`8xbK%BIUX>Fi zHvt*7IZ)z?Om<x2eGxWmN~1XMPUj<JzH}zg-^nIHtXAiy`Vac95M9A6CMJt3G|||) zYDR2pccy&CQbDegOPL5Q`%6P;r%b-><HPGxW3W3E`sg3BFF%)AA9}G)i{d&{SYRJ6 zKV6ina1gJh7fGLW-aLH&Vs-7+fqE?VIqeyx>Ykw+;e@Yp9y`-Bi8V_RqXKq9)$DBr zosLa4pJ$lopGx%dhxjxKxTQ#C=3XMZ%hL;;<%-0vwy)vZWF#AZ%KVANN8h$xCfUZW zlT4B8iwXMA|14B=M@fdrD8IOTQ=rM>y*9X-Lc=6}uqyEAx2@)29n;7!$({jyuFtA| za+|xxEJ1%MWgmLpeIE+@qi0h6%{?C)r?753b9!0|o>}6YFND3wVV!sd>hM%Ww2U^; zMk2av`T!lHZm;boq>qI(?T0lDH0Q(0J3;u#-&q9!(CZ#S>HNTUSzLaH?U7y)n`1dv zVH*xo=sT~qfVDjLxvjlp_=I*_pd1%`ln@Iw1jfiIe^k)X_N^{j=O7}qafER@Hh35~ z?@w*N(`CgC-~wHmR{ugFuyq#=$koh&&x6|y3%G*`dALGaQocAqyszH@F;(FkxEozD zPkjO`O*s;T7}u^k#OxxJ8>~_iq9Bd?48@@1H!U1Ym9tY02>(|3rU(Yq5)N^>^>78) zX#<-l{{nn_Xak%}MnL)QC#_w%^sr%wSq^Z4{R9oZmmpE%mAU#fGcywk2pO5nI1n@A zxiJplub4t<H34GAbSfWV{yU7i=5F$Eteg}3Y}&QwV4{FF9{;etjL8vhcc~ITB)Bq_ z{aQ%oXG5$h5zELUz}ZLh8yM8n*ThT-`h-n)uA+}q^6@W3Hbp24Db9%v-L5gz0#569 zF~tkU09unxwXB3p>UVL;XhS>;savSUJfT)L4G=vTcD@+>Gvo2;q-ISIHTKCRr>TQ; zJ}@hKKe)HOs$akup|Vkn4>K*Vy<{;Tf+{!7+CQ`}m-D9Eoyb4=J8(hd4r8YQ3)wb& zUTB=xTSGsT)nfOEh56V*b@BXSfYuB-&Uw(C<${tcFeu_@8`_?FO~3#2%j%<I+g{@e z33KbG%MYJC!C_?UB!_Gj!D^<A2Q4Y=O=o;_Lcx$H{Q8KP)EpMmzu`9*{y&n=GAhch zjlx3>pmdj{q6pHRLxU0)DV;-iH$#dv(lH1EN_V5uNDUzZf{1k20Mg&#{eJKR9ALQ? z&zW=Yd+%#&8wp$f{bLiGyZ%Gu$q|>NJY!U^J`lcgdS(k`XkxPatMm=&V!|wGmI^nV z+s+MnA0{!dq{>ovBM_QY(=(;80b?68ALEbRMxDbi8VuE<gcC_cf@o=$1H@t&T>O=1 z1k~@_9lq=1xO}N6RVL|Y-?Nh1bWO{7apJ-i$7aECnIJiaowjYn&;PP8<>zIEgZ-EB zAMAI6XP6Csm|zEH)hN*1Nvug<YFN0+(~2s4^5xUls}Y=<1mv5j8;TN!4Vf4JT4vvi z%`JDR=&>g9EWE>^IZHKP31Si>yXO=}vb&~8O|B5<GS05i{gJ7A-oa|hW0U5=xAH&V zI#+_xVr1>LczmbXSkY6nudVrioy`5tV&sbYv=YIyRjp3u5Ztj=CEO`tX%UYrZs)np zIm?pUI+*mHrIPJ;tVwD$QGD+}BwI*Um%8H~x16hZXbY~Eitjkhs7;M9U|*@BbSwFX zl#6$rzmU6a_2Im8%XsrRvbKVf<AYCzNVW6Y0MnnVl7ypV>tW88dnx4m^fEXl!-zy# zSkZJ@>yaSiPEAFq<+R6n9FDsxw-G*aMsWL2e6Jp@;K5uO0bOj$oe7&VBb_JKsO-*q z@xvWma^T+NCjN_J;*;S44lNYHx!(_qTs;Ipb-O$M%%O*62^-(eEn_GfAZ`F3I{K0$ z6Z!DL8TgA7j%Kj72%Xvqum=k1$lABP7Cj8~-0i3`W3d9R7lt%#8dE-w;5Z=gefg;G zKiw2=b6KIua(mO*I@y4%yFv}gT(3ALStMD4x!1<Te5LIm0cH65nv#kTDJFz86>M$2 z0fbX-dcI@S{oV&zlXTW3taZs?P}MP5#RFsxYY(uqQT(9})}=y5fFSKF7Cd!7^N2W7 zzB!>o>UY(d+P5jltanMZntuTl6#>#GgK!ZDT?XZCTva6v3^TexHRdF`^1yeM=Fb+~ z8xpakhy_36IubE~SrM<h#z0Ut{<C>A$u-#Scg5AUv(D(<VFFrMThPuJnZz#`kSFA( z;SpGwjx0p3&3I+nrQ;dvx|r}O0)>W%1{uV~;Ob!IeN4DRkkxkq?>bKyIn4YW228{( z<lApU+)VmLY4dfrsM)4B8yQh+eIEK*_smX`e(qFKTdrPrWlpeZrq*wr$$B(tom%3{ z_eZqh>>Z6;&C_Hb=Y>eOb|T(46ps#)@^xKE&V4$~3;P>(HJmA;{4?#8?)jSOV*$K! zX@}^k+<Jq5(DcJxH<89&o;pS@xe?r*AHF2)o{T!kK(%F>ZD?$qe!Bw&OPSctr1l4~ zmR8CzGsIvdp$VLnHTPn7NqyO#_jKl?qMtn4<cpQZ^GNMnk&wbf+?{dZT(P3Ila_F_ z^$UW(&K`F|@>^TA#{N__P;`oKvb<cfyz^J(W9bLOxUX^)`>)E_PWxntN#jv6Wpab0 zA8qW)W4QJyy0CH9AI=m+S7t?4lNpcurN4Qn9#WQ=N3-)w_FC14X_&!uV&_Jm)TZ*$ zv&I#lvTi8?Br`qhifIWZVSZV&vY)+mBkTCrxNwG715Hg9SqT^UT~17QR|7XGFCt%j z`OIzHpQ1t%i@`BwHze+Hzffe!Hhm5Y>Ho(N6Fw`vcWI7|W0iBJYWdtHFR9rrxjCDH z^s7n8o?lT=g<_p8bD4$`k<h~+jh^!aa@Px|0!ajGq5{tFaKee?&!rw>j`8m9RkBmN zL4n=x&am+}-&;lJc)CB$6$j#EH+`ATV`t4)%h&~frNewB^XQEiSRTKycwa9N^s`*l zM@i4*1)+~w1_TwOw~u}kNSB6M;%%w_cy%u)ahLOwEL3?~XFOz`GeCzx%Kq}7_*&*K z4U3_uq)Tb#k%f$siVFk!1V!VkpKnzj?uS*;32h&x<VvzC>GZ!788T}N^v?|IV*JG! z>2~c83+d9o_dMZ}38Q-JpEH!`!?UKqVcNR7xyk5f$>!i$M|9dx@PhTiz-K{3DzHRK zzutM&0K66hei|Q&1p&DtGk4ua4bXDwc8<4x)<RuCEpDt#okpVU(%QHGt`AdRcL6OI zj3)jWpXe5Ehl0&Xb(EEjL8QQc#?A;+&#BwP!9${)BF^=8WU;^1DG7X^LL8jea59m1 z9afWfaSftwhm;BFaEiF3#YCpyJUIe%8G$}s>-xmI5NXwmoiI-ph<M&V4xmb)8?a#$ z5D9Q$pf|!qKHGe>xi?;`j){_720dN_dhOlUfV)loH5m}_AUr*Q*I(*eQHX)+y%T$u zNWmo!CY2TfHVk*hzkE``z3`u)*i!`(`*5cU2INies%@46fv<5w!4b7hB(Nixd<nQi z_;=g_w8p_LGw&dQFo6$%D{wiJC#*B1@nN;hED%9v9$SJ=qbEV%?KWsLXq!jjhZX)D zk8y1wgyeMt3kg2Kx$*TfgROKhJ22nW`QM?$yBB<YS$ocuL(@vSUVF!vDnzL3VlHT% zRpM&_mR;aF%I(+a>L8i;*u1@K-UV@~3F>+wLXEWfGBzqp-saoGdR>pIXbPeiRWdRq zycXt`mH2Z*hX|}aL<FVpA3Fk|V5ej3*b*=b>g3f!e+gCko~qVw&A3N}{Vq>dz%6Ps zw3GQ<chz_ChTlzb`A@wUjQEs(WW%4LGiSq>QOeFJaH4tp87V8hugw?6RiED$+r7u} z0sS){^2EdE*4Bov9VxkOGKQaQX2r!!?(;x#g`C$wYTec3ylU4U73opZs6$!a1}B3N z$I~TXP2@`W4c68^t8B*~3YUiSGbh2dTkiIL-Sg{4nXckl_Cf?XwC)=>vz)(uTmO;c zJuFgVQE;US%AWo<>1vY4Vvh5BE3U@pyqM9vl!sAc8m37+<Wt`iY^H4#6$UsSfAdNq z<|krE7CI#erXpqB&=3FT$uDG>yZbiMY+5`+<DW)RFX7}V7AuKn-E3;{U_%OoPpkKc z#2`&R?9<VaaoX<H9$ku`iaMdvSA!ZGd6gUr`v(#YdcXN7MLxd#N9hS2Ul+UDl+jTb zX&OFEdf{ULJ>cBKZ4x9%H)3OE*V62mjKVwPxPOn$I8@p_>Qxgg?#`)wNZPhtI<jj% zyjUoXHP8l@`nWwLk^N5io0aFHJSQa~LUDMnR>t|z2a|Dj-<`6OhXsecU#%IwStzc4 zYmI;MknEv*;9Vyc6mMLs#JGoKfT_d$4C3TWC3&EAg6QqKm||&Pzw0hXnrHd0(*c!^ z(eo7371p^eGMBlUr2M!rD>@-@^@UO1le2%z%5T+VbyU`pdE7#L)I6US#VtsSe(uBN zcv<#z`s?(Q1A`q5!AeVDwP<R|q<|WBBFC0TIn+^NrI`rX+A7mUtfdH9dio{|wO7zv zBWE2D96+bXFW}G=L!?G5EEo46$K2z-fzKmk)0)cH?*8SyRFu!&C?y>MuJ9b-(*$RX z>S*UJrvDdEH?46{#g3sPZ#u#Ro-U>*dFLkLgPDO4nzNS~gL#YQe)i+`AOOh{74!!1 zaAJUE$qg2~E<8Lu8Ed^$*pdMK<AY}rq@`OLaPoXiG_a6If@`V}@rQ%pp>L1@H}ms^ zJZ$8k=7!IrEVv_>f|pejfv9R4IvkQ&2%5K7RxF#bJ4qhjqIs!{RMH^u4cweBrVv4U z5EQ9lSZ#9&x1@2-HpvA=9`L)JU<A3(d<5%KwqW7K1eXbG4CG2U6xA|;hx~{Edv*hX zxlKcK0d>d3?72B$YSlAD;0343=;-KtbgMEOT7U$nijhK|$Z&owGY##<)C(lB`3XTa zU(xbSO;bVO86PkNwN;g!A+V*N+Q;W#beu%bd=XltgT&CeOXO6mPB<~0DT=kwt)GGk zy0eUdX0_UybKCq~DMt{zD|6?L-lznj$b79;#sZs7+A%@>-jmLMb0_bizfP%5op<Ld z-I=s=7`0ybIa^jn<HbGbhV6+cw)bfjKh)xdlg1F*viP%^tmkA7Ei|<<Z;o@f>)qQG z`IBS?dgPCUb4ExuNr>K?M0pa3GjFgLh-v2vWq&)%;FMec0V$;7iz;X}^qBorL@l9( z+8m3S+I&_F53eBQ?mCtfEt|klAKTmJ8ZuG~EyD6W_P8s{AlNZrx5PnI5|xPBn{}pc z5gk*p)_s_O9r@=6IeFx=;5h+K>+5={n#bC8t>=b#B@cKzPfv*LqLmci$vrb+wEp(* zH9NIH#PMn+R`Tlv<~Ub_&b<CMb5<3d5)`M`douSp+SHs)=3~~RS8`Ilb|lcTCo%ts zV)K(@MR1a)86bwL05jTZ=dsT@H#4go-9%<iMPx{^Me?=^*RTQB{pOMWqo*v4Ln|tr zv;o}*Pg*|v<Uv3o2kV#Cvsxk1)>#+5UF=gHFDW)@_Yyq+1v+<r6Y8g?90!h1Ylf_M zUrVK{8aB(jA-+T)*k|O~|5jkR*nX|4A>yGYIl<Zanx8V)boiQ~s9Ip8vwJX15MPFl zHZzf@0eNYdDpC&3pC22zxqgM$HTDS=6(Y>Ixb@gZA?(fF#vAFs(wGRU#YF<rCu;@+ z6z`Ld-$`&^(!OKr6SG!TkN!bH4%6J-IG}Mk4U=V19EfI6Zt^s>>l5FzUM6KY4}|ta z3OHU_;<@yUSJO@?s+@drUVA_d=_IF%BNY?+h|4os&XN4XO*JrdH?GkYI*gV#N)Zt7 zWrrH#6%<>b;GoYpyy^2kE=<G6ov=j@(DRyKI^Kpy*(TebF5aF5!Af2A|2{$B^Q%OE z`$KZB|9wioH9>Ui(W2D=w87K&Hi`ilde+vVQ%{KNuD;lYa?j1f^XP)5=U;}ofy9O? zy7}WRE^lJwVYs<8q<kLL{Nx<d90?2&@XW2NAVL^Vw`Y=gn9pG^_=zn6(h!HXF7RY7 zmE=HSTLSyl5Z{-I-&E0OU^`ln_Y8ubZ}kGzSxSBb9EPg^zt5kj(<2sawFgv47eX*F z6s8kUqnjr-0K9)6$cR%D;Kiw<BV&|!WAw0+ZX_5I$jex=N1!ls8fR~3ay+E0iVM!O z+A0jxqbp^|{NAZ$DPeH$2^nl_OwK>v3=!OLs0XCT(hUs3vhSiVzs5A@LQr^)P-RA< z$f#B1Fs%>Up<}srsdj0N;<N==ewYe?e0pZ{ubP65U=T1{!Gf)w(HrnJ6?#C>e`E>g zd^TR(vkh!!b|siylRh=Wkz*RJ{&QczpR${R=o~2)PNN^jyIyf9TRY7RoDi!!I74%7 zwU8%!g2B0wW3;in>)(>;SUd(tNo)yxahT9co6e0P_t!}d+TJX9&xFtnj|J+6%=oMz z7k^-DpLpPHp?bIC;7tp<L1Pix?Gt)+uG6|=_HV^CAETVVFs>hI3&C68%7w<g@?&$m zIQV;BD%`zHm|?nOX}4o3QRvoYUoL4EEWvYcGKWZhJ3@_?VG?QLCS78Dg>pM@@H&e8 zHq4Y$5wrk0Dz~F60=Apc)_E6_zB9K{X03qV($V=Z;pMwQVoJ0L=u)ejgpR?~iL6w4 zddA<03aIj#IsIVWlFwecLN2ua+c{`!HahQm2h_@0Z=3nORlnm_##dar4x?ejO~^GD z>Z+&;wN3EW4iktD(;XU4FAxeAwpY<yES?s)WFC7sK&p3Ny7jWgRCjas7nKd2d8o&g zxWA%xWfHDlSzloP62&wNc8&#dsE57dVZ_t}YzN`p_<&Lib7Q&poxg(UW%sRYowx=i z>9`)5!`=&S`w_Y-H@H*N<`IcDARgWwvQ!k!xlDNYs?~Wj?>ualxwA&1si8SsviWJP zno*>k)YZe)6V>iG`=Zy8|7b9Z_Zi=P$HFIg{VVdw`%VR9rd0SWg3IRj;n~2d!UVR% zF4aHSep!P>%LbXn_Vjs?iqVUsBVAOIvaBi;XYbMag;qlLgmW7~inqC%4u{}xx882I z`sz2TAABU#J+;4Q#!JMs_9EThF{#MBAa!i+F-?%`z1l~~KEmFWjC2k@&}P`v>OU7S zq1$BAKI2|FoFi>7_rxZ`P2QBg_Tb>jGG8JKw5Ef`4i4+lx?jtW@vc8irhoUMmLFcR z=ugm+ke?D323PyKaDrAy!*x+JLm8BAAVdWbQ(AZGDSe5^fpHtoW7H-}31I%ZbYXnA zD~-<rbI#|sVc`AR3MKeC512I3qZygVnTNOM0|6ajM8VAw`?~7MrREHFKoL+AAmZ_> zO(hhd{mbF`&+u;8C^mBDj^<NpN-QbzVBsC|Px9VW5MR@_VO-?VXGAR~9DT$95ht!p zFCt>$9DL6U4;V@G8m4Umx<b1#*i2a3rFV=!%fd$L=>V*STb-tOp81F>gpM4@k76&> zFj2?8^8mj2M8p_tebE^Yn4s#~!0zGUm^Bps=a~nWE`G3)u`!q)(6l*hOd)yt#!9Z7 zRfi@`*eIIbTiUMovlg6>Ss2L0yWr6dM{==%NJt$9aA?!Mhu$JH7ZpY@1Y?i>EhqpE zhQoB;A^>|Hm0$!baYYzN56rSY3p=qE&8e1Hp4TsDm+=Ika7!}S#5EUvIuI)EfGsQ0 z4)`rmhbGq%ZJZM>HftTH8kYM=;eAHyl9euzOk?i44t@8Q_Nd@n11H5p3XGQ`U-V5F z-BqFj|6GoEtDn#P+Z1TyMK_;T(Y+;!_!{ebG!lv!%jJqc$wI9Z5Y^RC7ga4YyNR7^ z%B>6hSSaJ$%~+)8ciAa<q93q2o<|CqKXGcd4I7(nyKa-3t_b0Z;r_B2C2ZuCc1m9* zCPA<hL-<!Sk<)P9#cfR$hi4sOG+P;I4;sG`vF8KZL?uh)(>pHfND0S|AvwgG&f+oW ze)Zps@Pe)WK;4A3jlwd+bfn!YeGLPDg;WIo3g`Z^W#6{<_A)Q-sgwUY`~4j(5zt8X zGj&5Ga9h5+K3_E5^={x*{Ey0;U!UsRA;)=8YKPp8%t!g=bLJbR1d08eUmQwWj0k3! z)7iQn5RYqNS7Spg$8x^J6Qp1xT|lAy;nq0xF9jmR-ALAPUJ)JEz{&l^-sHRYtUPZ> z=GuZ`D(22_zQXqz1VydcD`F!<l+2@tIK#c2+)8y@WO{KD&O#BZuDYYVJdsW3!eOtg zD&4&TxbJNp_ZW9-yD?V_3|yIhbsv&?Dak8)X5>jHqP_4W_%M67l#dqS>6d9SOmh@? zRK>JG$YlAEt?xr`Et-r-=Oq8P9{WIMj?H+2B@P!Na17S2PP#Q;9r?;fe$~6%=lLe; z9)Dt1>EpO+WC?DXcm>@C?ax34#Fw^M(@m1iGBU?{;Q#^p`*TCj$(!RlbrrW;TMClb znB54QtJ{=am#i-)Lyr#QWkiBy!{1LH46j$X-^Hj`rJNuhb(1W$(Qqgm-gF5`-H7Dm zTVOj&TN1ZBj8Su|NdMHr@sju@7j2`fsq>v)$q1?L@2MONH(Dxmw1X{YrbAVE3**m; zYr-lYfnsljuq=ZGst%w2rO6#K#zEv5&AFsh@M=5&QELt$tFvAI1M>QehPU}1+kR(` zV}L#5ER*-JCs7_j&S-?o*5*(lrn22TnB!C_7kS~DG~J0{rMYT_dH|VyJ_6z#Sy+AV z8YgZuV8fmx1euXPd@_;67Bx2t91K9g%*D<;#vLVxrSYy;vWti{`kzC5$MH8WUx}_l zQSid*8wE&9wk(f@0};eQ*g_jp?&r-8k>Zd7MWE!*HHeW1yD1R5Juqfu4ES*cv;P6c z&8dR+eg6@$yBLDES&HmOfL+7*I}>zzNDmf^SChibBR~dyI<t4hZS6Z0eCGiL8;0PW z*PC$rGMP%2X3Bqfp4=FM)0`M}E_=3+`BOp&-OuG)m7xaPCk6{DJIWP_2ezT0KKKX= zhUgi*d+pRoedx09QpSr>XWwC@xo?aK?{x&BdTBX`x_LbmRVP!sSy0#0qlks9zoLzz zCH%xZw4i%J2+@bW;}rA$X=(RweJwL;V{{nq7ICGwYWh)D!69lLF@@HfY-=a!KU@;W z6rtmfuaN<4er?ap!H#_s=Ket8YYsDlx+lU-hRU72D%bON-a@VMa%ZwNtG|~Xn;|15 zzFiYo?S$qxZefLa{G)-BmY`>kPFB)#g}!W--K$3i=SyW39r&Qj@CV$ZR8fd|x-t}( z2Hsp7wlz9G*-O09;?7IaQ2z#{iviZjh0+kw*3dBSgXZ>w3cnt^9S?ezF}q5GYT2`i z{I#?vFP{F|cVXaWJXdt1NfrSI0<7`6Z5y4ovL%C7q-SdJW;wr1d+^Bn!$N)6n-11I z9Zf}%$&f(Z>(bgcAy?1yO_f{S(Y95pk3$<SKVy8N^BSI;Q--D(WRs%2;p=X%3s#c7 zW2$NL*^LO`N=mhOi_Po<X$nG?cdOKBCv@1t_)RI;r{t;Z`l%btmVR-W{ViU8t-j5* zT45XW(dBrv%*ZfiFFweKKX7MkE3_^o;Xa9Lo*_Z_>X<_6tUWzf<M@%0yZiTsF!ZJh zL3KonD9bAjytG$J4)1^utu{t*sllc9Iu&}3T`3~D)C)oRp?)T8S3gvpY0_-2_7TNu z)L$U`3SZMPk+d7?%MA0W@RAjcs7Z6ZkHQ?y5*I_9Y)J~+Tg<E7lW}x4(yr#U7Hf*9 z?CdSa+vOrnZ0A<#|KLv&u*G3Ae~Pf0X=_c8(Ml**8RWo|V4dfW4!<T_In9yr))vs% z0Tk2u9shsK-;947FH%{0;gC^ZPyc{t(dei224Szay$L?xc#|lT^VKx@;``Z0*56HL zb%IARlRGWX>n5^y-M<ovB+!>8i~n6T|5(cP-J0jXYqc7bYE^&@zzp79=O3cv2==#` z1K7iZMMhKKfp1|?V9L!GTF!UJ<tsj|V8tw0OY~#ZX+-4;-R3!3hX3<osy<sIx=nrA zgB4|NH&SyDJD_a%<Ud1qZB7n|c&VR{e8axtvg1FPQ$rPZBCTELHAazc{I1d*3==dz z4%7y4ivAlhxF3TxCA9oVQ#ujkI%wSOTrY~TP~m7FZHQqL3&?bIYUGl^(o*&~F;H~R z!Sj3E3Syld;OSrW1%1DAzkm%&VDjjwx#I#DD8&?kfROtL_(ShdftS&~c2;{vO$$J` zU{6U<#v9HA#spzHa4`oRKo{U^x^FPy`*2KnJEb#~9f1B9VbnEHf)xQheJm8iy>*`b zHc0yDG!iQW3)+QPdR}CAA+Xxl0ECBZI+*!ecjl?*t+|#sf{&D4<bFHQ5k*duK;V=2 zQ^Nbdn}`E(GGUQ^8w1!mgGM$4c190Bf^TZs{kk%}j40=!MlKed?^nOt7Yb@dHNW~4 zbfDKYs72vFPEx+xkbR<mg{u_>nO$~r-_y})xMxO{Psj3)zXbi=kz8NKzEZ}+jInMo z_#{f~HQStnsPI+O;}0ypONw4qT1>&O1WtVx_||_HJidpr8=d_C4v003_*80^MDt2n zNc&=bZ9fK_$J+BGaBXDiPB+?GyddZFtcuT<>KpoqidL{oM1du92}yLmy=*wj;jpA= z2k|;GDsOysZ^F@|%2-|rw;aXIa$Z02NP{*!DC?2RBM|O-LML4=P}ZeI?QYAKh;@hW zo(y{a(y0%9yr7fw?To23*PTF-3$8@=urkq1O(}voZp2YBZL`zubeURgcH+T?8clUn z2>r&{fmeh7%#XdKSPINBPg+!>L!v^m&3L!+_o6Bt8D_?C^@ET2Ek2tLWKK>u4&fPO z`a{!{q>715^H+OXQKX}EiYuf8Cc0<}a(TC-_MRUsJ@kqhEVHq8C9G)!lqhLqB`sKm zh?#>3Ua;D^u%)y@Q-(D~m2Ym;)X3#7<_qbyW`3&;^&@zJ_(>?yR)1Gw{i`4US_2Z* z-egq-=}u7YC@@gsn_f5=M8DX$pF8qyG&UBJXr6TCB)vk^NTc1w6KhELobiMiH|Qxm zT5(fU6Zr$XsFKb{ROm}MX9f-Wf`Y4n^5vj8zO)J4@PwS+Rh|hEW%@#%@4f#}*%U$J zSckoCbS$BsM7{h-{4A-Yy@w#7vLXNs``sNHsr>Ns&5@o=?Lp6=Bu7G@Q(BqufYWt9 zrY4biSI+lj3ukz1|F$UckyO)c$*)hv%Nd8wGh)O#W9DQBLca6dq>c9mk*XL`_-Z7P zrl____I{J~BSCg}7t->0)dW@8Zh<Ov3cpnkpAE`aCzA6MBCHB~fdz_AeqTAJ7xjPH zQE+DYl_^TM6CWs(Po(m1MaALwMIzuW-_S8MqIG#2h>L3M0Q}%iWKFm#arbuD06)CD zR;CVo3|qqO_+aHA)s8QI`Yopz-<OPBat-9WAmWwBz9F~cMJD0W;)I}VT3YC(g4wO+ zFn(=VuPFxgefdvG3^DS>QIsJU8)p0^5a<r-7Q*DgsUE!V4s{_8zn|cuR_DPD=4UPV zcb%R4kQV2Xtz@5E87qjO#ux~e>y?6}n2wO6bT1{aFbVb&Z@sXC5Pr|Vf}?ATMh{tW zQR%W+aDQ+?*clZM#d=khHmnW65dzg_-Iawce~QCCN6A5hjf{*^&A~N6Sr9|eseSpx z`W=I3r9bKRX!5NcLNe5ZJCz!ODuX?;d&J3{!>;p`4(29b_3=;<8?_$*jt&KfATWp+ zf)G1Ks~f~&JZ~kui~tKM-`T4Z!{N_n<=7+_>h<_=Z`Nqg=1Y6q%>Mlr?mh8&)swZa z1wcQ1a$ZpiTi>X~LJ{%#fxs6*K<ZD8Uo2BI4<wZDOL@P1BVix?&vEYsCDP{@iIY#a z*gLpeFCqm$2EFwS>+S4AV}}(JrMsIGB=sSZa8h1(ls3tDUJg+f+q%usridZ<k8u75 zT_aM{pJaEGV?L~ODecQDzd?^1<s_os&96IZx4hB#M!TaYkc?c6rXu`cm<a;t6A>}< z)0G~LoTzcrdyvc~F`7K%hPH`j7FQ02sCgJkUn|jiEqo~eSMFZ~{8)YKd!r$qECZ{! zs%i9b&x~*HgF9<W?|~O0UgfES15c9vs?d~ZZA3r<=bkX5BV?C0s?gQ(PzXD)e17J8 zCqt}Xor$&3jFMBRd1BUyGWE-C*T}?Qkoijw6EeAU?*!&g)}D<w4RY9;A5p<gjvU6U zt6}|Q3GdY|sT1^0QUcUQ?o}rKGtbM44v@XxvhNw=eYX8E_;v7S{}=)(%8pm5MzN(| z^VKX>?unEQSBalyIKo#)Sraq<2w4dEFHBUtL3)~~J90TaUN0esh*AfAi+$Uj*UGFY z-|h2~L6)F)m61UHv`T4I8XDX%l=Xg+N~dp+KSoN2<2~}SNXY*;$%EAM5i-@)Uxl9| zmfm?Bt3PA2f4b9z%>KIhgXn8o?$$b~#;N^fLaK(w@h+Tql*pNp-3UX8{-`5PMx%Nb zeb|SHx}Ry+sgjXW#UPQ;p7PY?a92nB^NV=SB)z~&3D(OBkz!KuxHFTm?AF7_DLyO; z+BlP9G#r1kKT@xhyhybsr7Drn=$gK69(`lC$`~Al5Q}$CR7Y7_sSn6{&ewZ)LFWSp z{s<%TX(Iv7`fLqNKu2BRTF#|2>c$JNJEIYtN+8hZY379h7H_IQUk}+wN~p^+L1wVG z?`_CqOxph+FNlU>piF>f3G9*7{aSl-pzx<LXAZl3jI4Fb9U(gVc|bE$02Ae-nOlJ` zE|P5~nU{l~d7I$C0h3CqFvrWwx|gDHmMA*Tyf+-3HtC1ACI$#xm^P9+>$Z(t{h}Cx z>TA$sx(#sv=zb@V8`e$jlN$irDmewDHt>(FFj2aZ8IZbc!(v=i5vw9#(<HJzfSjLu zXVJqn={CdrG>DMLXFlwZ;rj0w==p;P2VCovvt~_vWc3dqI5NuTc{l;vbPw=Gt>A)f z1EPEQmS+M*&045eJ%bP$^J<f!fwQt#kq#ml2Z)#qZBW?Y6e%oOdN8l1v#=c?BvwKC zV`T|IuUwc7Y2E_OA=U+Z;C)irdxm50QWBU>z(hSRJ|N@@1skCWO&0*7`}-r0blhti zNGu;4lj)?=o{`6X6+3Ihu1ra^xUo*?ice#G%{&E5PysbtE<W;2BjTL6)JO;uF1J>X zNY(M%FO=TL!3V6n;a_)IsaWh63@He63z><u=@{&%a9vm-btM<Pll1N*>xk7&(-_lx zWqjUe;pO5@Z3{5$K9g3emA52sML%9SzYz4Db@%p_ur2MyBZ99_<o$}LHteYV$*UyS zdghg_o!7|By0NQG`C(y()Rw6!gd#51NnE6Z2{y8Q`54>Lz2UL`v&iEYhtiRkgfw|S zzu>>1r{5Fj-kKQ<*<gE^fq?@(D28w78M<-W4!_ACFrzVf+J9I3uc$p$oUB|LrY&KQ zpFUe0Uvz1Jmf%o$MTZ0ZIzFTLJCoNG{$&duXYD@q;<FDoLOy<+RlJY;l>X7<={utA zHXN9hmM@@OHOP#ZqS*dVVB~n&UNh~K`4PG*ntMrdr%dtw=A%o|mxX?bCW)M%*c{E# z$|O#Y3sLytwFpZ6m763AH{1iGQ1&G5hszEUji~YA^71|w5;5Q3886jsqwir%exwzY zul9h{dA5<wJcQhfVcpD3K$U-iu2(+UoVzE!chO>u*%()lW*&dW+cLy{HC80dj>$w) zH_V~?COPTd9HrY43`_R)#rD0|<cN{%TH)_!0S{M-zrdNL75kKzwa7OLH3~4f14V1( zA$Nz`q;L}1%HBO-I-9z>F+|KT9m^>G)cWzgn)l#<Wz$ao{A=og&^K84>-o;~)})o* z^{4r(BUG$U%h)8WEFZmOdgSx@fF^dlC}Gtb=_cB{vG7p*lwslRfzWEh@Ngb3z_~=P zb`Fz6&cnVU;)=CJ?EgZDw5*MVD=nbTyEu%`^Uq7%iU2hgr~sxS?1<FVhxRnkVTHI( z=D2Lxtc72|e3(`}V5>=t{CGf(BV3*>+f@cQ5!@2FSnHrU^x0i967!s5VgQWLw-yh& zxjF^GjAh^|2&x~k1|CPNWV;1(40H;??Ca_*ge-jv+P6(LXatNJn4myxW&|*EB_zn} ze5OKnbfHp>__K8kf_aJmcT-OQA2pY86u3x`N?QXz6_6l-?*XhaRKd?Dj*S7mo!v;D zJFqkXxDDN%JelB;iN;k3s;g`m*eRcTu!AJ%X&xhNi!z-IcC;=2Ab8{%E7)85ta^a* z9|>DWh~Z%s9ubuo^?Sgh^wt2y8^_7wU@mFZ!wN{f3FrHQfts_`)AIS*9R%29x9VgO zPy<0){NGIsM8B72kQfvJQ?ocAAao97!Be-~&8<VkJKkQ5@UL$poLp7NU^iP|t~u9h z1-S^(v@j3@_jzL6-5Ctz%NP7#hQN?x!=DqvJEU#(x#p7NE_QJ5B3tFkPmGRmYDE>F z-nRp3ASpUC7CZtDnhfC+YnvJyfaT+10}<4xlV|j5MM_;~%2t3@u_CS0>ebg&Te4P6 z%s2(h)@cYm^|5SiMn6hnupmJHJzkI>@-mWu$DU+<;Fiy0(oU0fH<~RYSLN9g)b&Gs zTNxJT7nwb!%DCRPAM+djU0}Nw*s~!^MwX|D7@jp5R5daV{7uT@-?dR9B@UOHSEhtF z{erdij>r8SkvI-1eWU9!`?*5eE_#-jnh$_~p<>}CnW&leEjH2AlPz&jCdz~<V&Z8O zI2$}?FYSqVmA!T5;kSafg8hcI$f0WU&tWZea^^Gd!P#uz_3>VIMcba7ND!!kW0a2p z@$vk{7x!4`0p?%BN#C($Y3w*eGtS6YI}%@?+VpPIj^)zoC<kB0JH$qvLUv)rtgdYt zN<pB7n+ohF4;s@YkzEfkEdvuD8Oe!}N+y0XjOHsUbhRUu`{)z=tAk#ECG_k&|He#M z-^tdE(Ss<}L4SHCKOL<v$Tp>nI5)~3)TT+b#Z!C^#)Q;{<TW3hw-Y$aed#z;ev`=9 zds$o`Wln7FNB&{%I5-N{jcq_Hh%LRjU(2z1?vs-uOf0>+I&onG?Oj)o(K<d<FnMX^ zn|G{Yu8S+YID7hurhwhu`A>~z70dYvgilarB$uhcdlYN%nI%Bu*Fh5<wai1LRmeRZ zs+oRSer|oV9kV)xx#u~V=MVijL$M`-f4__)&7gYGQ!Yj#&W_bAZ^_wYOr!ku=ss>% zmTWrrJ-?fvp9+mPb~t7RO(VWmJKYvk(9_HOG~x?PYBx{cL=6+0=Ml_VmAa<`lvb<} zC|!;o8lI6~jB~#)HR!(yYQCa7aH}fs=Fi8`2%>C#_lsAO<Kxp@7j=~rv9IWXSGZYK zGJL_!t3E*=aOW~SC11=dI)f%JE+T%A{k)-ts=qX$ao6Z0K&&2nEfVj^L36Tho5;;= z-S82siUJ4KR)S4UBEZ}99DVE(jo*?W3mRyBzJpz7I02o*6f+SPat!`mR19I2^#dE2 zCe*z<|BGhOhq^t!ooz+|o1Z{GHHeCRUG9z#2y+nvhh$zZ0vs7fQg_MGXkFR`kIj#G zVAKd_Ta*MrE}A-`qA%0H_y8^crPu=-9s6#l6L=1=+5)j5*Il<ME=H>Q4Gi>gnL07j z>0KiTUg(7YAN6(oHduL9G5}oF<!@I=&PDec6!k#!Z36IBmfw7V1aM=Z*dN;h*qt3# zO^EcM=L&>wl9F&Q^PiJ@ToFiDuodWe;)*bkkXIh;(3pUvmrTJp(w^C<YM<Gs&U7wQ zTEGo)Mo$MrEMvk>F9Lucn;Jr=V+W23d|g$PHOwNx^45R7BDA`US_xup`=_8hc0Cm1 zuz}5N1%V4@u->o+VO6@kxX;;J{e&s4T}@N)gvgPM_dC|ggO$j5`wcUDY?SE71mLS4 z+)o&_{Urnh5gD&96;THFIwjsCD-o%TktT2|8ikJ981Ig?$Ao6$<YFJLnp;}dvPVX? z88%6#{&5#Km93Sx5G~-%+Eqw7$Zw6d#m(|p-!!eF3#a@HcFt7b)<Gw71F}A2ZLPs3 zgmP;ibHoisd1YhLujl+;dd!x2GU+JrN-uews^UcXP*URcnTwpi;gxu3?XE*rv%xT2 zB^i@?vZ=C+yrSh`Nbi3cR#3n`F3b>cqBe8o^QTjUJ7^*#p)(%`#dYUZ$3fVvwOyH{ z)1l$}wlPnl^>``F_3J>&-Zi1KGHU0e?}H{U86SUCAkvhp^#5fDc9%Z(4){Dbuv6Uu z>2n5hwF44m9mS<24=BKB-e*U1Ozf#G6>?z@h4Vg8&cpa_Q4J0M>L_GY-g#_;;?2-! z++s1lC;pJmoX}f{pLk=iQ}ypthI$_<@r`OpCsTB<w%4)|Tkc)Pai)veOgc<!8+#@m z<KA(fgwN4wWFZ+Z&CCkw52#KdFXt6|2J4(CJ`FcFN{yCV{S`PJj7>NB+8#|SedD3( zbT?wI1+#<ZV-1Y^Edlo#n$0U!%B+!7e^3mk6^hD6qoi>E6uT{Qa3cIAceRNwE>)Jx zk=Lf>z(4)K@7l}IJ;gI6D<Sr|`hixm-z#e2cZuCsG@tki53fGh)NF`{{^Yqar!{+u zU+TzyO}}><wNCYu+XJg$;$Dh(!;5c!St^QKjYHCp3MiFSsE7i0F5D51WoUeaRYV@X z&QN}J_UdBS=ZnQvfOx`&k1-R^y@9=9ww{@csJ%$(8_PfM86}XVhLQPOeop>)Ci0Xj zLwny$UWc)Utq^2VpAR7+*_ahiOi^VIUcztnMIj`|ZQfJRIyYX{j#ZKnF*UMYFbx1y z>D|bcLl<r6Rl99atiykC@z@BvT@Hlkkmd|vO9JyW3xeG!TjCZ=;p?U`h@B$<-&h8Y z$SfZ5yX5ZISo8rN;6wm%DWF&8IB~$fa-_0mzXyAc9DHBv)LsBqLP#4zaw4mY{|~lo zSl1K_Hy<Z_rwQ;ApvBYh?G6P7+9~iT3kZ?-mw_@dC^YR4$<%8BAS&9+Gx53anMI9f zZ0w+zR8m3<6G_?w43pdhj{y>p!U=FE`+8TlZW6)zLI(J!k9?bfY-!(-KkAABJ<rC1 zM`%!Vlw!E&FBt4mUmNRb0Gsqj&MN%#&sd5aV551DJs7;>XJ|l%4-u}<`%}p_jGA3> zZd(Av6d|xd+F%GB{iC~y@xZPf2s+HE>tql|-|zH4#|>V^D?XsDroTTX9)#5wg$~YE zO>kkkD|-#KO2~WcN?}gEzM4vjxJB5>j*F@^YlG54OjF08-ZO=cdxO>x!Cg(>`(f%- zfA0t@olAN@m;VRNuZ?<@{bZKSis^tsPAq#@yX7=ALUYqu6&G=oe7>1m`m(8Iq2=&{ z-;cWobmbC6FC)9xa-g<kM2(w*5)XeK8IhaG)jbOj+*J5^H13J_*ZE|vWCZbaYgcaT zHzua|EHPEi!VL9&1zz-b*?zAGd|yTPKLIGCp<tpF+*A6l_FiY1l19DomZ#}t2BUt* z&nxy-KVHE}rQ!Nn%F605K<{{*EQ15jYwALhrfT=+)-Ig@H=*%o%t?aYNrHQB=97r; znBeOARI;Li975TyJZOTk-Chn4vAg#(HTMV0XePbIFz7b5I}o$;rR-xIk5>sbu-UJJ zim6HF-elP~EUB$+dd;V(Gt9hQ^%9d6R&8RP4YZ+qKuNe#JNY!!VxxFc@vB7~fl{XG zgIxx~ci2jFM48)|IjnO0ij5vMipoKDx%HnV$4rN9{3c6O-d{X(o=LCFIbh)Y`Uh{% z$6eBW&d3(esl@1?xpDRO{*!ZdS?{+pWVRK&xWV|aue$|#nRa%6G2IIxv2}Hl#Q|%2 z`H$v3{-tM+eCo*KnOrqlZ=%oKD&SPJ)wjO$%_caV%nCjg_hQ55w1=&SqW-8U<Gq-? z+S?8`xu`rH_GKf~h!;7W?b$k0OZTS2jrsb%Ry{w#!~Abz5yf7I==8S2`_-=c4=jg% za;1BTb{>&m2L}6ROQci_&$r)Em>khetbXgLNb7COHNNPA+w0k9lIJecv*$t^Im=17 z!5=;6X~;`L_xV26?_^%DSE!u=5p!a<em)voNN)(WfbRIKduJIeGmFi+r07}!Lq=ch z39oDEPKp4p*u<HGYJx9Gn=DwKR(ITVlyUdS4OnHtQGlT<goy9}mx5scp#u!cDEZ9% zuRh5h=HNgBs|=hqbCmcLTM$)Ef-KXg2#!8L(WiI;)|W-Z;BZ0bnPt6~r3YjQW5GtS z!8p0`zrA2&Qfx1?uXl!eKNJK4r$b<Amhn<nUwsCRd#<kQTXs14dx1}H|A0`2`qJ4l zgBr?b_-m5qZRFv@=)?bV7G3*lAXjeTIllYHT1F3&Q|tzoo^-K&e`Gj<M}9Ft&PA$o zuwf!vS;Vj-%x&KnAo$&q{tL)0h#+>5w{UTP457;dzN#$!aNwJC$^nnEhdH3!+Vzk@ z%GU&~y~V@bAXgU)H`2H$*9{>W0(WInK7oCmQ;UuTxAS*KNg0G7aU~3)dj&d2bx2_3 z@(Af87qBXIOYL>PB}u$^NsOjq*1`hpe#n0xL|8k)Q?0q6+LV@!X_@*6<jeKg6zST- z$_UOx<4Ga#<{_xT>YEy8v1!nrawGyl9!txCEEZUxd<l4ZC{pF0EeH_1IFdhg$$eO! zVFgEQ=}mUj;$esrGyaG!{Pez@9TQ3Jr45<oTOV%ezsOu!IEOdlLj%tAtmWM&^$ri{ z+9S1^awFfw?jjyz6A+RShL;fLHH-n?WuijyQ0(xm^RGn9LYbK0bO~Zkb0MgR-MsSq zk2}67je8b8=sLyScl(4sK*x;djP<+wVYMA++<G=I>y(;=c>XPBv=T({Rc;nB)$_cB zR}qo1D_y<oK6X_)Oy0sfX2`~zRHDs<kTH^%`G&l8#iOhWZtsj544`$-HsPKPoX@?A z$7c;F%G(`fM+mP17QU|AEgUNxhC<Fam8}yQ8HMB?^=(mMpuZ0$5PnWZVvW#OHYw)u zFE`~{hxQ6QV}9_Lte;beGpyfNK|y8U4jpxAK*5;m(|22i7<RrV29cxuO2QRbV4}J& z+pWZn*_nKg|M|VnK|%(}yMk|XVB3QpfB2&_4u!^=hb)Y;^B67eNh9-<9-XD>z2F@e z)MLU@s^k#h_@XhBjCFY!O&FJPLR|X1#Cm=2K|;4p1ukEA24@##f2;lj`@+O7$1fW( zwb8m$JS_8YF%c=M!<Wx(`N>+^Hgh;HY5F9UJuttyBYJ5Zj|79|E50{wLGRyL;SeVf z@ZQbQ{F?Z(cM&4LL=I(DcpPIu5_Tj0-mQ}?@qh|14(T;;Z?s_JWI>sNxMl7#S7)=8 zk>iQPjgnf<l%BYI&XM$;U7LUkv(|y`z7IoJ;zwJzj>!2$tyr7>4UEtxFZ6)I+IzMe zx~g>P^)`0XmWd*&_qclNS<e1wmfxOt8XpWvy`x#+^W0;>X_l-sFW#EXVpx+TF5G)U zC)Rz=u;_JTt<~}@Wh8KM74#NItH(^eINqR|6pimFOlH~__z@<XT)hf7x7^|Qpw%ZQ z4QK5^kts@yXo_I=Unn6W7aRGJ&}^^^8E**|7Zn(&SNw1r<aBZ;lGuErhxl#~2H0iZ ze4fpFeX&uTXGM6s355gi^~VswVd`5{&CIF*I4pAFdsPX1wQtuS;sO6CZn2qy`?=xZ zY>}z}jtOu-xV?1T@*_S`ES5p^MP^d(0$7dbe_N2*x+B%abSzkw=OV~~11}~w6^v;R z$#d^#f7~D~+NnmE9Kl^U3UrP!?<{=SmQN8b%6A#4me1r)G>MRBGhqDq`54?U{I~7{ zM?-8fM6i<VE{1#DXV6dfY8tY>&<D06>jLSYFi_LRz<a%W+L_FlT5x)I*Aujw+u1?t z3?jkQ5`Y3W>_=eG@XRO~9aVeI2LuM>D6;V|*0ov|vLkn&HTW8odMiT+Ir(m5;auAB z3>2jbqXx~cir0l#0D|fB#ErEcOP**8@f!-??S?`Kw+Eq+VVT6Skj(uOSU-}o*UkK> z{%S@PS^8u1K7<grP7NbCf|_2#xh$(~1$AWjqW<KJiP?v6<C2iNX0ay;u{+vojuvCt zxX|kV!8qsm&NHh&m~p3`%<OlW*Pc!`<7<@+J#&<cMJ3$2!md_;9cqmZoS@I<j0*I$ z#FsMI9VEz=wL{MZyx!>xgNwL@jYwHY;WlrE7LI<Hy22^Ojlo8Btw)3Sg)kFW6g;%! zyy4-dgVtgI)sK#AM9G=6?4)lU-T*=S&gP*hh=iN3WRyfdCn7aND&hqj1x)~OwyW=t zJFkoyb&Tt1uCo7%cG&RTn^GK9Cd3Q!^m+`a*eJ^T{=Yh|18z1O4O3VzFV`O6(a^P= zO?=&0!;ly2FN%$)!EerI)pjQl_#~zkaxp=cUB1h*%k|RaUG`(|@_-naAFG4+<YMRZ zJ*2G)=O2y7HK!fq<f*Oaq!$)@vERNKXdXTd<Y^zDYXL6F4R4I7@PAQGRZkGs_)or7 zKH)jEbrQq+;W6s&A`p=s*1fEvLRkOv!JT^ZG~;1+q7%lohv)Zc=b|nKpX*l%$C1l< zw#-K7yOrcbWqtPRRo~s#LS_fJkx!qU&EwdsI8XJpt91<g7Vub}`XKvn)5|=65w)*~ z8J?N2`8I{s8j9O*Zi~BKYqoIq$4mRwc}y)f8LP_pn{iYAbDkSFy)c$c$D{pcOWM2) z24|TFp9~+mmVS#_^%=gTn&u77_))_3H_F~=p2yW#eP1qq1eH4%ZantSU$$a+W-zMj z;HuhzXP~u~Ra;>~M?iXBOfTaSdB}0c(aLvR4o7}XdOgLHtTy*7J$&F~OvxiGo5q^& z6mQWZ_hcm3AZX#63a`)1^E*`WTWWcts&(ze#Ysx;N|KQe_D&1=t6YvPCJp&Fy8dOn zUFhw_R)?0`r6tSS5r8p5unS2$TrH6gMwV{vKpRaPV3%y!dm|PM1{QTr0t7G>f^0@# zJX6qH2X^RiBqz{6!3>ibx0@3!YqvbS2;eZ>;NWok56bO6pYj85P#rw#^%G{OcjRJ* zw{A^)knj{vd8_G_3l<~8T%J!M0f3`>_79k<z-soQ5P}XbyxoYnx#zhNpwSTDqLXOI zdeZaIAZ~~Q2w#7>h0Uy6y#Oafe2p-GNLXiqn?#}vm_RBIGb0s%59@F=6|ycV0TP{C zjlhKE&IiI10nzEec%dJ@>e2<|wR2DldOM5kRs!Z#bfECy*agmw6Q~EQ{{f*>N&tOi z)ZrRf0aG`%TbN1bq2!80pfacj3UOEAJAs^gbzs2Edw~2%+2mg6Vq{ds|NT9u&eQEt z<Y<))z+Jr!(&fa2>pjR|?JL`6(`~Q}Ixy+0_*R4gTdL}D!k`jvqoOAmtdk)JYm#K@ zSS8RSwu%v)dRJgJ@8jaRK?gNN-^$tR?yj~Uh(N*vn<3SBi{l02+oRxNKjdjSeMwOF z?Dw>z`>r?v7?MT^+kfcJ*d)oa&FEb#kVN(?T8oO25q@Lcd48xJP`98j<!n~fJMI~< z9u9V+QEnI4W?M!i{37Sl;cV-smQ{w-9!xqC@sD$!2UbbXd3>Xb@@8x~M0~@T_ao~> z>Sa{<1bw4^=xzqApy2p;8}aB#lW`w`&cd+)V;ymD#A)-%F_Z5vBJoqtB!QMzy$wek z58?KP$L=t;Ao;Mbv0!<EjT#)KE9H5^YOGPk*>Y0-Q2(ZP_}x#|WodAPM2;e%{34)N zq{4q)4lRqjemN1m{`{3yDua6uex8WJTLi(M0m3j&-)tSD2dO`2^}@0*gbwLkZAXd* z7jW_nQ@Agb4$c6EIO6x=8<=Uu<2}Z+82mLMQ&OK1*S{M<Mwk<(qKEA_hUD|tzf=ly zl6nUjw3WnY$qg<>dil#f9eRaFk0)?y7ugDQR=qnn!8ZNy)tV9myDq8z>HCGh;#H@D zY^$x{?U(ZD_0x*WU!vZ<N61%o{jI{yxmHHb2HzVCmqU1I$Yh^sjQ<P?$&`fWEblj0 zVp3zu2httAlUU=p%6-9pNV9uUcggj}ilE>3#{N5Tbj1n9(ADp79TVYuwOhiM<|0hf zg^>fH=VO^K75Rol=INSG<fofC+NPKK!FiGqNycU-h-Fy?Es**5gn^*DV7!_IOFWlp zDkUUSK2vapz&xYVJYj|Dh#uNfXqqcg<|K!#eCdsjBuZ$MuCNs5wc}0}adpkkwB>CP z$bEGkjOoO);YVB((cbkrO2f87z=>wL!_Vt2Y~!`Ztg0qKH+8nysM62V)bZvAMK6x< z?tD_%^S5ebB4|sDa7%k6Ws1bAToP41lRPjepQy`!R)onI^y!eghVO=oAATLYHm*jZ ztbwf-Aa|)3nm-^Uh)@DckY`<V8n;JECg*cTs1!bIf}D`bzhpKA)N}<24|OAhUhcHp zf*>f^x$fM*bz7hr*x~$ex`8#o<JNq<mOe_09>74~zXptdaE}pV7MS;L`7a$lGKrnT zLrWi+%MP#2o_MSXh?&Cs2Xg?myVOH6eWbaVet0qtF#RcwNe>K6?)3R!u9Fuz4*}IQ zP#_-=HT~LugI2M!m?I3h<fIHBTy0&i5X_>ir~XQK0AQ{YU`gz^0xu*q=jIC#Mf{yW z#AD3ic4TP-p7HaiSa7Z?64;Fq@L^QcFRSo*5luhK1d5}1@r2>s+k<9)tqj&*>T4m| zfA>5SAGtDK0)`$rP{?t657}$QhONC=1@Ngh;G*Dp5PWTD@0#AVa~DE52`(-EIJKg9 zNYms#4}K6k1<mG{oW@T|%O`rPrTGQYg}~>Gi9sQS_{c?3;Zc!4N?=O(XEY6D6-yk8 zjKhZzK~|xv9{?u-dBSu*c<RI&l$zeUH5wV%<KIKm7=Pq{L(usHi)Ys=gOxXfp#Mu; zv(=Qu;-SG`gxYM|%ED6K42MV^&rFS6*~Shd!9(;6jth#Uy$*kB4j$N!I^4W?4bNz5 z+p@*4@E)+^g;U%w{EB4B%=tx3#iD)B-Ipvya?IuXp)A&>^e4eRo+!21UX#X#?IS_$ zHb{=;-^~|;8$N?CR@JGo48L6Hq1u_7inEBRJ5w(5JQ_<uGM?A>Sn=)|eOGa8ejfjH z<rv1j@07l^NA>Xmshn+>4OsEDZR<>v3J8S0SL2;T2>}ap;K}%~<>S3<GNV;VQAzrZ z?=i_+i@&jXX0R|^e{@Ju5}c2-puRSWLZ9@25Q8Ki>O=l%n8`dxFsE=%qAba2)7P;D z#gxntl@R6a=%Y=U-IFV~>2<~+&L>j+r(XBLyVX}~GFLtj0(FfXm=E;*)6IzJ!)3jb z<?*BEeQIko!3U(5`3Y<d{S?C3sb<Y${rfXp9j<I?qlO7jFBKI$*it_)Ns=mleDZ@W z@(#{S?$4jPx;)>SURUsnmMwTSeQulhY8L(2pvjI*Sng}%C_EzIjT4)f6m{+&SBAjH z<|1W`oYt;Zu&xxMd`I&pg4Cw7{QIlFQa^;W`@i6@eDG8N-V4W`KxgqjJ-&>BQ&%_A zE+=_A4i)_|O<HqWPkMijL|E))SyKpqc#}HVZ5tdM$#PYs%Hzgg-Y3C2$0jMTj!MGz zp*$Bc@>Z&L8%ZG|jhIO{X1w|&0Gl2laM94>^jTZ|iP6(a#6c*gl(;_sR<@@rY-~|n z{lRPM*GxlB@iXToOnr_j%K(M4V8tFN`Di>?HQuG0{slKqPdvHTJLP8{fda4v8*>|l zv5#F{T_6@V2sdEJVg?%&egkd*KB2ASleK$;9vRWdCkEZ7YchkypyS8Fy!by%9wV_K zS$CoUyv}RycTSkBxwSeuR0`Zd`T@Kf=%Y%>Iij~UK(B@1S-$`_!paq_P2}-i(z8hs zQ(T7>z~+VOD<0{@E`Os~58#@B1tr{wf4(@mbFl0gLNNQh$4yvP^KaGRRCqe_8Ii-h z4t4IWJL4hWl_tjR&@!W#_nH7L27zlAr_;l_qNJFDtv+w7L0YPIjX?`~9B2}XT{-~m z9yb!-0ca*j911%s1?>P2^#mYv)ZU=u<F}3^!X-p3`1;Dbt6?zsn<=Y&4+MTY=vXFW z=;9;Aj_#kU$uxBo_9b~#K|3&i0<TqxpvpNHVGJwCd;pVI44>EkNV@KLsQ*8HXYY|@ zZxNZ<`(&39in2wVz4yADjI5-Pd3I$bdq-9YXGHeq?7i3T?fZK?(t`(G{PB5ty`Iy- zl3xpOxS;BzZa6uF5S6b)fLeNJM0N)-#99y-RXf;5ka3lU)9<CgIQR%bS-w#fz{lqX za|Bs@%lv1Oz&bW0c7`i5fQ!D<IOa|(Fq~Nh&J%Qy2=V=dmOwq(f(kAH^m?kl;)3(w z>f6Ybz3y;}xyPQ3ZMeLIGe69VWW2)0Vree1J=gR_TSN|hQ-2@JroN;sqWWdjLmRnc z=4Y?7^)dUGkG3tT4KTOQE^4{xWxw!m<DE6mCrU5&&&7>8=bqmahEqZK-Bk#3$LK%; zf4Nsk`4ZeKau!ahqwpn%EF1GX&G}eEg>(C1%#^E*tzZ(1Nx;~hl7JF<a@z5xoi{k3 z=EwhV?N|XBdO6m^saSD=BKY9v`@H2s%l6wgVsEYJj%W;ReTzBLWIS9SzZJbBU)D(Q zP~6kOA>kF?=uGwKj5knxvlb{-?q(BL?2k_f;bPg+^;{lU)&^oRk$03e+Q08ZLrZoI zhzh#j2dX9T6h4I;V*2Ic%REFTNBvsZvc*|^B}R-W4Y`ClsD0isKaDRc%y{4Wo#~g+ z=ggHlS`i|3ds^z=9g3VHS=di}vj{Q1&+N3VW3w-q-U|W^Wb~_ftopq;uWiTJMd=(R zrs>{?(WlzKO#cPqWu-@JKO>!|+trLonLMByvyOe_bf+)+yrhNPU8IZm4V$sl7F_zb zR~RlwN3XQ`v!s>DSTow-w!h~WqpyG6<rW@gwtW8zd#kEEdHq-Rvu-MVS)aU|Mw<Ch z{lMc?%^ioC<Gpr!rn$BaN@lXvOlX%9W6o8z8b!@+XMd10<w2K%;HLz}k+q0s=ADgA zS>#=vg}L%4nd(1Ft!M`LG)0RwJf(N!D4W>}X{IIKIwl+VJF_w^`N!-o=C0e*+hlMn zJ7fi$X*{3~i;)>new!9>>ugy0fU)Gb)zXRmiS;W$pAfzTFfD1P*Rt!9v8=eheHZyE z;m61BJdI6F{4GM@$xjg>2V`m`9y)bR`z4wLBlJ1CpSQ0SRR{%%+iBb*g<x9X^_FCE zMJi##ft)LzMM3))>M&j|mUg;1Nanw!JJoyB|G7zR63g9g;hE0gPw&SuCGaaOR+W@P z+Q<+?_<JwjEAampBw=fL(}L_|X*tIS0ZCUQX&$OT=3NOq<nY8K4{s2b2?DBU-nW4= zj`i@aB0)f%;J}h?GXuW^PWAdHq+Vhgz!%nNu2^6{ciP$ktSa&P)kkc2Q*ICRpja4v z7XE|~kyLQKeGiIGycz<@Qe`@9h+w_pgOJ?D`ujL&KXZ^a05FcPWI)+H_&b0a#P64b z-XB(NCUy4x+)U;tSDZH<j%y(P?g1&i;06I&>>(KV#XnZgc<ZDkO~zCP^=aVGJrA@k zr|B$FVy77d&N+R<gd*jKPQgq0k)Fjg5(7{9A*cxHOSs#;S8f25U<tE)M`Um*!XH;8 z7{2Shsz3_9=T}RezdcvwoI*xU89uju#zsL=Ku``5eIOx34gon7Fm6r<@8bKB?JLtw zUmKa7BvdZXpB3W&4ey`F1ey*U*>*aUNHF9q^{QT5^8Zqk<%s^7|1dz`V_Olxw976e zjk$CW&qP)|Qck|T<s+jkki=u!M=9N^v_;?7?Vh3VVy<6|-O7ENMt9&>Q+`%SeNbGr z{041HnIoRWm{!_)S8lRMN$63cqLM(Dp92Z(d>pyeF&-@*Mvr8-fV(at3eBs^nzl{P zXDj!LS3QSKg2yqAb*yAzUXkNEcT~V}lF3nn+VaK~Ujd~++A~M~AarK0LUnYM`F33l zS$_d#yW6QL7(T20Qw$0R8NrOo3m!fPU+)?PO|c`Go9vwfF}IYWD;dVEX~Nzux$!E~ zwjY?0?saGA&(%tH6r$rgzJ?~SX>xRkhG1q*m8`{^wLHb-xLD|7ZP0i_sC3rX(a<+% zMJ*>iXyw*6se3FTJJ-cZseSEt!=4iwx(eR9dt_}krfI-19OFoQS`C}F_V5cP@NVCW z#%qy&_A8+5#n-#pM4Pz%U%WT)YQ7K=4ivMr5jmiKHRWnZ7|Qokv98P;o?F}FFT1uV z=DjYidkuZe^@01S!05wUMQ-xo@IntmJA$*5XPv)b=T$$~|A{PY8P&8%_IVkUg>E=; z#L|D-q2OKk(nw}dxcGbFDk8qxwf=OS^_5v+j^Ds!$)JdDo<oDQ$TQa!r5WgaFST<= zMo7%8qPXU1{a3RT?oG^&bFVjB@Rz<;p}IBp7fy_`%dTjVm73(*p;s+=sbS?TDN4PE z8ww?suR1SA%gObRgGp{@vWP+j`!<=k=^#pJr~8qC(@zFqjgoOnbHOz4ZmHTy6V;l= zDet$EwP2ZF_@!|B4;ht8sAY@{BWV;41elnZ=0a&(MBG}f+d!)JDKZfj7N#o#w+iJ_ z<nsQ|Qvh@s6Z{_iC`<I+mOpg8!uf>b5DX76pyyk{2M%t876Z#x=z8VM;-5e<eiKM> z|FBLA^!?=mP*j*uulva-kV=t)>J|9uQV42-fMaT?T;wG{Sa<dROSr*yxrLO^{=WcJ zOi_oI+80cbyCv^7vd9s@;4Zj736kzWEfCjWF$9=dJqh25MRcAPx;FAS>5tbdyrISH zg%&Yd-0T_}5Kln|fP6GE&L2ReL)xwBAsIjCt)QOGV4zf*kZ6*lmayDG@(s*`4Z+n2 zI2W5B5XkEb?yQBE?m*1x2)LGO4hAqwcuiA5F$bCvHe^)<6}_5Ce=iT}k~4=PXK%q_ zBi`u^Zj$775Y0>bnd>*m1~&t@O7+bq(F1{RLb(yDFBD>^#)2T|y#6<2@DD8QDPb=d zrr3>1J%qc`0!@O$yHh=-nO<lBxmFAnY$!&S5N57VdSq*GI~_C)tc6aMRx9)n2Xa6T z#+@B1m!6C0OLpg0N&DRIMv_(Gn{HLy7a_nGRX#|+mBaE>=9u@1gf`)?zO=)u1^Q`r z|B*7JxI>Q&X(L9y_+el&#NQLm$W*CpXy%n&RMudn$mlApCLY^vODTMC7VRB5^{<43 z!HDXpbQS_ZKs1yUpAOG}P>XCbOHa9D@uJO$Xl;R!I`%c$QVL_i&A)b$s`ny3U;0wg zGl?~^154!iNdZ;ue#P>~8dLb@Glp^orEO2<-?zkRGBWwdj@FUbpfIqM)zYUSheNV7 zWR&L6yC_x-Ff_Su@(aB{hOR@e!z}5rw$8et!VzkH<~Vz4g%rN@ipo8TXqu6U*MaG& zm1NmI-^|(iUUCR2^(o?0<U@FPzDJ@)yYgU8dd(UF*VmVjv9*i|c_l8a{G6a^NlKj? z3tyjY-M@pDLU-$ogl%+MlI|gP4g+Penp%7P+1n5@;oJ0`QO>|j@~!iEww0dpJ2QII zPdjW}3Jd4&L>^mkzSqJFA8BNs|B%iY)m_rP5a~~6)9dGa>DAqJB$Xf}=Op&FqRFKQ zRLnmke?w}u<`YTVm+kj9`57Pcs{>_o<$ams+cZ5qulcX+G!nIv;(J7%6GYdYj#?=; zK5XH46A`XtwiC#fv5AWydK<iapCyq)lKQnK4~t@+Z+pmid>IE#%xfl(-^5z^uNdDl zhQ|%d;OG>=XoI7#SmPCqbI>zXg8@S-VO=IRz0Y3dO`UeBTmM#wJ560^`*{^R*2~5p z_J(Ld`-9R%ZAFIGKXMV~*;*Z{w$@cv=CZxQ&CWB;(2Cd1hV8HRXj@gItkY*53tH$C zxE!XP%X<45ejE1&$bON|k^Th)o0|u&!|GXS4-k=Y!Wuk(Ooi>P9?<u4uu6Vh>T>)l zPmeFMA6ofXI{!yeE-MsFg#6bUba+mYX|K6Ja+MaqOi6FB2zn(Qs&+-Z*ywSPU%{1j zlX8o41!mK9#UV|(SO1+PX*`h&=FiSE><9Bf$KarANeH+}VogAz%?;P$-;&i1GHmFY zkB6b6z-{v7Kfzeyj5vTxGlv1bVM;p`C=cXbUjwc{?bst`9?6E=aX_#o1(N>BQN3*5 zb6~RA@>U=PWbtkSu*MZQ5L;UCUPAuD{_nr;t2m|JCJUeFBSLxH3FJeFui67l!-P<i z5al-I%ZCu~lm<OP4Qk*-DT^N0grt@M`9>Kh_{+8jDtgT^a&S6xwK)R=v6#I<_7G7S zU@G~SWharToaF^<Y=crjAl^NC0JsrVUVyg7=@m0%3u%B%?GrsAa}a>@8C0|X!9kDX z^E-e{?=D&YX9gN0jNdY)*aj0T6?&w*YdoI(O8#9>3F|R-A49r_!1^^qfDrVS=iHOo z^GT4p)k_ri9R_Y4f&ae&bT#(KHr-Mv1LD7fs;-_0O*xzlL6Hm`r$0%2M>4)z#A*RA zvwt8nQ^xB3^DlE)H9Z=na94WI4#&&GQ*xVlrTvsd_x2lHS0YPR5zLON=N07h2w381 zX0<0~|J}F~44B4~j_G^OwK@7xf-RWt^^e%xu$3$C5<i#MU#G5=Hv3qN$nO-@TtnE% z>-TFz!Kz`v#2IwQPsg*WMgOit0k!`@W8Le)(6V#}|4T21k9fMi6pD<d+ekcQ^95I! z42Pc8<}+f&e)cX@d^(sNEql$x!cMuTzEFD?{)bIXYl9W_1Z)GW10=|;ji>3}_suU? z9(_*Dm#sjlcYa)LtZX5{f(2%|G7mhPZ(K;AEU++|d1EIjjQoel>oZfa(vt7YtTnrn zf}+*WcvLAWVBSz2t0H=$$?^K{Yw~gWUq49Q<t$zfj9xc=<&WqTeRQ^e{rz~l-;Kks zx{Q6fb1F$Wsq7`4k?!<)QXwPH@1kDMqQVB-uFb8DAkd_I8YH5#-1<fHHi41dR&xy1 z+gn7qoVQ?<hpnxr4``m(><$;s#=crrK)6iU58ij~d-|pmPQUbZjOFNE23?E&UB&*m z$5%oKubNo|<%0X-PyZ0w7*5udW9sJ)aWawLQi4W|k~tgwo*b5hl!o?s=)SJf+JA6W z<4R{6@d=NmLP36VjE6kREPCXsU5$~wtuW(jVg6@}gmX%T=WEbWT8De_E83bvk}^0$ zf}e)Jzm@a7+<t5XPq1;F#`#?#sM@?X1s|{P>mp$EI>h*yJnh^+rM-3VT6;cIO;1+; z{`M|r$v`uEaU*6qsDS;$f<DV*^}(kp$ZTQOvy2}VnLnQ~CcXSDsQ2D)n|q5!hG&Pm zP}F<LG?glJad#(Uw!f^Mg7nQ`sv9i*L5-vjosei=gK>qAW@>!i)`l42s`%?X2Y=0S zmQQ~C61;DzM1rw*{D_^$g?D<1@SJ)}W7b9BHteIe=;w#dbd^<`o10S);10Ee<Jd^m zA*b?HG0<MDg?EV*eE{D`I8$UKL{xVQe_?6Y{f!zpB1erC@8fr%q^_q!C2xW3tESvs z55pTpnE1J$D}oE|Q~?>g(n9}6jgkGrF&*C+9cKH4D)QMHNI|vWK{ABk;uD1t)}hn< zh-ITVF1&g&M5*ua>^ctm(C>gP-*tl&R^di%?!olXY=46eHgwP=0U<4}HipPW;~GNX zm&PXeu=Rx}GN7nE>^UjQR>g^P=&zhKF>EG%U=1YvOChSu4u~KnhH2p2?&Ztx_m*m9 zdj|6SXK`Q?Em8<B!)Fjvq6{gyv27xhup|-6ZLuE<eZ)_sB&;rQB!3;vd<&Mlk`JMu zAcMr_grNG51R<3fTqC5eW`nj4)z<60>%#MG69o_$M=G`-J?-7e{BJa$<<tS`6I-<q zjJF5m9h+5NKeRy-@A_J*i#56%j}1|MINpG4{SjQvc?4<(#<LWGEZ!+#6Boe3Bi|Gz zT5!-ul;OdWS%)Qf&nx1`U7_fVBJPG!ZL)3gPbZG{rt+3+Qz`3aKHq5|z3u3)6zJD4 zk?|9cbu=?R7Mh|!0lPr!7#G==xRB2FQTnJXU1ih&qrk3TZqvM-m<Ra3vb&R~(hnr# znZ?*x$Tth(nIBJ96!r^@(D_?l<N5YRsZY>O3VzRI3Oa&FKjk}Eo0hX1ObyG89f9X| z&|-EglHOyMN`MQFJ;dsw@zu4Ma0vECyis6mIhR}vm3-NVw<tR-pJ2839XI3B5=tN4 z^{I>|Q=GNA>f~!I&pmB;{f^&l*#QNC^tivcE>~7dXXeS8ngqCEgE=0Br#n^FG2hjh zqI7m~d_2W?F`PXZr$36Kgm?Uk%Y9S*`J*0IG8zPq$dBio-a9MIOhskOYI+NYX6CWK zd~dE8!If;TeAzkoz%HsSFNsEFq(FBV7x!GYojxkwlBR0zF8inuhBFq2tP3Yg%KONW zyUJ$h>^J}X!$C+yyxigGoj=juedZ5!ANl`?b~M-U>RzY1<9cKjsfGUjy1L8d+T(CU z!LZKW@k^V`k0A;Iksy35F$kU7yXW$Li~r1K`}AmggKqC-AiL@?vYiT2>9iQ##Tw1? z(7#iGMvq?cUV)x3g42xBHrw?!dH%DQ2bm%CZa4(OhlpQtEo*C951;P1J$dY=8bOa} zPqm~9rdzTt8qfMwwLfvoK7VCA*>s>op0uU5rR`R<n`>Uuf{r4ajEW1dP}<!sA12K> zn0vtLAC~9??*N(_+k(M|)eq-S{qy=6f8~7RMZQ`zdABcduir-3Ma=fTv#zq9$%o*M zY06ad4>p%iNP^wAlx;mhnT?FGU*@kfa_sQ!w73KpUeHy%ybUv9X$iSDqw@qvs1V%Y zWFrnJO_!vQnM(&x@nWm-@wC!@IMa##dh<R*P6V@dvy9}9y>jSfB`dybiLNGst^7AR z<Y9OvX%;P_UyCR~YW^#<toD&zs6bUHGl<OuY;X1hjB`!EEEguP+zJc@kltNw3o%Vp zOpd#_z6a!{n-NF2`jR%f!-DVIbfGA(O>;(=p$Mjo7t9T0W>seyKJ32L6a!*pIAID* zgud$g5YyIBTPS9c+)WHoowVro3>!l{RDuQLW=g|F^=sGYL3)MeUqH_GmU{j|#>Fc@ z1L1k#9fUxY0yYerg&U;ejKzU{!l6|f7Y!#w6c`!-4M^sTII$Xq`-tjMFjTA<4(K4M zN8WdspF&F97)K(zt4^39qKPQCC8Zb{=J<qaO?=>V)&7A4Gv<DsCJdq+|KvjG{m_Wn zJV4>*W)XZdfb@ojv367oP`H|4jmd&qWZ9ozs9_Uo?^>XG#cG1`-9(^9v0|gY8#8-M zQZVsS_Z?MKKS7WgY-FG5cxFqi3l$)-%xdjiDVW9j@~Ez#zs!b@{~yr+qYr&ve{}pf znS_F~k4xVv7SgFiQ$2eT^~EQEj3l*K>I35>TqMwnA`y7(#ost$x=NmH2boQ6BxuDm zvt{H~T;xE|kNd~fC!SBODMsr|;6@#NKaGe7&5sK9LJ7Hk3zF>@u~(O;SJ;JHQ;D81 zL3tOMCb(eJ224nqTw-GeFQ(s$t>?3_q~G+sBeILMAJtF{BbaaeHgK<dFM4D(9((Bb z`qp>@v*+$g`OwPl#~GS3|B~iS+@^IcapT0^>LR@pUg|)!II`D!Zok`ebyV2vY9F&4 zQk>FvEgSaZ5m%WJu2~dhDdxjChbEhnWxo6h(^0LmN0`|7NAV_{#W&xE&AZ-K5>!Vv z*4_Kg=|vTND*7N*y}8o+MYl&vpKkAZot**r)dN?N|L*0?*I>`^vAxHiYRmIb{Mtg^ z46PM|Yj)W)e`+57G_uflYD-p{kWyw3IrMh|Ou0nHm*LpEL#HWki!5=)g<C`4Jr?{_ zU4%{SKDwf$`}AFOcf2k?S6{&)=DledTjTA5n6O6`2(vk98oWmeU)nI%g6O_tx(Bu) zWT$l|l*bQSspPgRw0bx?q6&k){K=U$)*I8||Gb9m+`4x$d$p{12SgYSP&e>+$LL^l zcKOxbWwm17Ywsv8MN&i_rB%lvq9(;_a*9YBX^ZB?Rm)}G*MydjwiqijhY-Qje1dWm zn#!^_MN3w6m|b1pnrx6yb*TIL4Y5CV_rcY6n_MGwU(<iIx%=0$VhLj~=SBH3Q;y=t zb~(G%O4l1%+=(ffU5@k*%zy1mJ2vlX{Ol(uXMQI>+$fX7CdIa6+W2qIdw9JX8+}3g zA`v|M_#Sw@Mg8fDR+(Xn+&6`#hIyomBxfZqBQ-A|sS3;>W8(g|K_LtgUTn5L#IzSh zE$8vs0nhCoa>V?b_of+Bd#f056nc$?99x8H(~5Rp!@#8ytcm{R_R{H^3)B8QgOQh- zq+T98*57)NVv6_sBweX0!QLT*Mg9vXLsV12k?Met;z9xNogjzHoK-EoO}Hqc{!bYZ zjC<2TL@}gS7~Oz{{<V6ovPQA2;^RY%+W)t13dM-LD8fd03_r(*tvqurf>!cZb0Ioe zzDq--31?DpQHeXTFCa!mb04wbLajuQSpE!L)M*e%&nS^gfxz_^I75&J0MGD-C1GK9 zebccqVe%jk@5q*EjuB?8ApHJB5Go1^04kS@K3{%n|CH-gw#ko+wug2OkonrHMK^IF zm`U(vTSjQHojAhh+6LY%zT$fgp)aNbbA~=577MOiL<JKG#m*;&qBcoX@Ex@`a3S#L z*_5HLCCMf@Fe1_}*G3Y>E=Pi7j)CpL-%#8TG-CL9!KDN7Q%LNl)<!=O>hD#|1!>G& z+a?5+%<P5Qy&PE#c5rPNXm-El?s(?S+Ot{2%@%4yvB-8%^5xg}FiK4ssoIUI9ex`J zPnYx!6CZn1nSmpAq&Vre7^`FkO;%-8N(TRU@;z(Chd<znP3wA+nc6&PTXIx(2Ru@| zq-jmc={U*Uo3efGVHS(b8xl;H7I|vW?~2RyI*<L%-J=pJP#J9+)n=>Rlg4EKswi!C zc`gy}9_X36p1WvE?CfsH!;fF)5rPj58VD&bbj;htgawZojoSx!X@@Z4KrWkoj?Qrj z4o=syXap}r>vt-Key43={HPw<wd%9H6l>eYOTH5IKJyA(>W?nk_AlBFD2A!qR<6!x zbv_{wyu+DI-c8l|E}7DGQDqvhe>r=}C!;a$&M$f=BpdPk{&4O(;z8*mD(p5l-e4H% z-P1b5D>>`uiLO!yFYa(=AnN9#3x1tJ6uxWh-esDvYc+@+^b-}5`$iw|KCgL=V`q&l zTx2*lFCtULOPK|qWT`!o$)nnH#`bOsO>itWHIMipv*V+O`+p_ui7;Bl1*h_Qdi_?Y zb89mDX_+|LJ71Vr5q2*v3$`16%mkyq9pPkZn^n0VXx#s-`i`cC>Pq&tWIln6>bLEF zB^wjX4zuWZNggltdkVN8a!X`ZhAYX7`qXqpN15A%+r*{MLxL5;OOJ*WZg=`ct&wpC z@#QL#eAVq~tv_cYD3s!_p`eN_JGJV3n&;Fw^xTy`U52oO%lGd&Z1u<QPw#7cO8S5A za+qu_kr);4s{HYh*CoDmBdj#k-?}q?aH5k>tHPWyO!K!aIWT@_4lgK~{KJlMq(u3m zrYEiGzTOiNs$3&Zmv+-%X+-pd?`5jw@|Y=F1-k?pC;rVMmiyH&cuV_H)Jn+@;K50T z69kwPY5;ZgW(n8QmRO((5qL<|32bDwO<H3vp|mY}1igR81;2EPZ`GtdIGzbH&r;0& z_yC?iolj!KZDf0Nr+wETm07(37fp!l+^x{Lsa)2Z!O0N9gdsRRw_%##Fd5h|Y=x$x zst)s*YH!d}V<x;N7D!2N@Drx5g#LE~WuD@h`V+wo$-myV)S~iiLyg5fc$13-b2!)I zVf=fNX8sYdu%+swr+|DNjDx_+K2(`@z>-HyiwRM!vqumV9n%vQ7}9VAA8q2u1nF&g zNe!VVF(M{6fMD{DEO-#jcb)DaY`9!_5F^_cdXSQt6|h!_c-}!&Kl^}%xjt;U8ik9_ z&*eer@vX^#&7B(N@Kp3Z#qw&ucoP{y8&e_1_zwrI`BE1W`!$@kFSSPz;-tpY@H;b+ zX}_76w$#an4CU0`e7ekl1!uU2i>}^$j{Ceq%tp8(jCJ~<W;GM`i12zf798*Sgrj$O z+m)lo%hw|ku4WB;P(*bR%{nJaWVJ#ppyw={D6BiXdV0K!`d=0mNC5Hx>EfdkHs72K z@hd^!(%4B7+*}@7+jxT7JoqNpJo-RO772O-w9tKbf~KMZ>D(B#g%f@%o9_$tjnoBy z59*EjLQkeN<3TbWwiA1`dAik`Xo2pKJ!T-8Op$d~MD-Ws7czbJv7H`nktw^2Pe*8q z<JJx*`@Z@l*tMcZI_$oHRQ=rhT$VRqk(cNDC28EKS^pzIi$9zpmdDKc2TwE06M7Mw z-a1%V<-{aAg~_L>GH4YR_Fnz;)5&KD8!kPXwV4>pmq<N&$#YK#o|+M%la_1y1>@6v z;zt72Of#7F%$W90xU+ds-r{_==y}wIi}}5sct6BUG(k+K+9<I^T&Qw+QQ9y!h*N%| zFGd$Hlb4Uf=p|0qW=QG7VvLu@_n5+Y{ktJ!AA9y$bW%*`9~mrlS_e6sI$)rPTO@Yf zh`m%=Er$1U2&-_xRQ-ZB^~i3`{TS0%kq3_N-?IC?_|@!eM@cpJI(I+Dwqs=P#KM@q zjZV|&I!i3_c9a}nC~@A|r-qE3b@dLkrBR(0=RlqzBh_>m>xviIneSs5?K<n&LiLa3 zrUi<M7vtpGKyZ$Si28KPI#nY|Ry{ULlMN9V+aS911J~qaOteBq!&`N}q5xw4)@@P0 zIiOAd%U{*KKE!QP$N7d)_ctB88_6E>s!m}XILD7KtcWPeE!y7b#>K1ox;5MtFy9r` zu|69j&fOA4*D#gXD#I2PKAw74*r$ggqdV+72^RafW^Kx`Wtf><WQ9_2RfzrIZa5oa z3f&#<_fq<EGcgxjpMv!*-_n;l=~%KK3+@MU;>s`=xyTTC(>dNki)0P@Qn#)Deb{IF z=%l1O>@4i%LXlv3>3W}*^TypJc4SVG^lj&ixXaduaX^X#lwsBFRk@cx9=D-BDpEzw z+iqsa_^gS*^~R+w(HFv~=J!NYl@H+Btt5wZqV&R^Z*Jy^1!;g4`UjeIVCHceb$bE? z?r_2MD$TqXMRoJF)p9A|wM2@n`?)Y-YX4ZbyKpiBA5EbH2yQaIoV~=50LB>cMu5*M z8q07}Rf;qJ1!oM{UM4KlP>=n_5<a19p<Nu}irlf42lw<PdAo~)Yc{%Yn()D$f_iMY zTh#$;DRwkxLzIHtkCTRwZ(ant&m9#Y{(Ut~P<Zg>_8nN_pCr}GJ}k6#DlnG{c&I^2 zLOQ-eEAbvZh1`HGqEI+4qPprS1hZIRg$3H(g@|DbBw)dKu0jUFI-NAZ;$@{*(%XH} z3l;53f{ahUY?aIJ2RMna1{TUG83YlMY2%{lapU|fLY7agh=#Ox{=Q|hWkTNytftZK zvZ1=k{Pcjt1~PYkoK4M&vzoBJnFhT-@m?{seu1K#P@aJVsFI%m$DoeGg3nqRa{*P@ zgN;Grx_(hb?0XZklG6YaIVW0WBtq@-jNd>X<<DzP3C51bl_BuSQq<+x75EW&s&z}J zXJb!~mZ-S0_DJp@$kK{FqO2!@KV`K(sL%-spYii7)4-SvGsoZ(Qno@{S0|&AY^flX z9K+;B917&`C1jEEQ6zAE70mvcO@HOG3a4o!L#Sl^rOOIW5(^*XpdhWQ^62Y|(1A_D zm80~&^AGm0wWzHi8K6Y89cs(P8*Y&38f_iFKz-Iw|1Rq{ZML7?UtpH*WWnNxDMlyK zY@$H?SIm!C%O@Tum2{AU31(%?MyO<9x#D=1;mlEzxexf0oX|H1J(w>#dT*G}SpL^0 zs4coBCfh@S6i_Td317bKDC$&?uPDUdW95yFc^)+LhJa7K`Cv8RjT!}0)%pw#fndD1 z)>^pfSx|9O=R1wdFM|E=YpArS&w2SuRYL8%Qv}xNq?^-yA#^g2DUeIWjq8KIoz@h* zuD?D`IEkA0+__fdM)CH$*DXq!XS}Y`?T{>9)zyYCya^X5krjW_%XN0o^%es*rlfY& z-mfnsVT3!{8}AY~pV++XA%AzQpYXZJkC^&P^BbRM^O?lWcTTzdfQsbjaIh<uAS&H| zLBB_yj*D=6#2Wh*`ia}j!!77eMKP1%j!X#4!-}*z{dd-+t324{d3jOc@Jz1!1~EVS zA5$?=YJw4Qe>pzt?)fepE&Da+6S5Ht(m!?gUJtf*dF>;%10~kPs&ZS?$_||Rb1yRw zH}NCfW|I4U&a?tG)2wAolgPAv)T%s5hEcp7TYnFmfb-+e(k`*xOt_hft@unW3RC>` zSw9IsP73KSmuk>REeQPL_A|a6HXM_>SdRA|KJEO%+sC9{qgQY8aZ0!NErEvC;hadb z(+m~<`@aVy3zWU?AXSS%1=&X1ee!u$q(JP~Z^Vz%vH=ouccYY6^uEDnk|MX08rTNt zH@ukeO2lp1@nDR&=n74=5p_gM!A>;R!V~Tr*DUhiQ9r;*f1y6EaAjhqQb9}m*rT4_ z%@H66%kT`y;=&A8hfp2Fk(~Yb4<!W)MDE-V844;-E$f19W;33)La}jZ5<6HXJ}QpB zE{t#r%~aua!f93~QWHa#E)S?NVw;kpsIGiPy$Hy0VBAjqkb0JhV90@qV*mtwmeFz_ zQes_A2F|35)k#X&N>4Eat+_Wv2}8affuadupFxaY04_LzZJ?NoFEqI5Mo%7Gw5%K; zU!L7V$j>ogK*g!k+d*3jW0T2c$T%J^6r_6+B9^0aIbsq9GU7}NAoN|_(8?xlh^T7X zLO&~60dUzNW9|o4%cFr3l+-^Bcyb#|jS%w2$ZXmnN`}~_&vzNYHbV~j-bH82yzsUH zBvHc3zLxmh8~xsjxR6+9E6{K>qQOA5ZbpVm7<Cj(X|Wt~I-n&d?GZ0c-@hO=p&V;- z6MHq`kVXj6I<F|9A)#jp6KwEU%CkaCVEdcZ{zVM=xjJMvFHavzSzz8w*qwxnD9^Zd z+6I1QsoUR~uz7N)T@grHm~Q8abH!sJxwKTP!?Drish17=6t}X}$kTfI8}6G~-KGwl zG^(AUl_z+)ftT%ZzO2#x#=Q|E5K!UKJ>&b=IAo|R+9Gm#Bh!CMBEwGs{S?#3WN1fG z$M~*D6eGrK(od=mt&Dzs^cR=ApUK=TaDZ8sM3*7Au(vfAPdT}gP>KPBzCKBGJsGyd zKu|M>24)RJVY#-wA~XEyr_**zT0Vb!b}=a>P;sZ1SDjztThAT0LzRD$lA2yQxo;KD zoo0ngTvZ1yY-_u!mbJ#xs!ZOIe6zqRFL4^Act8{|RdmOVc}&0c%Yq|)f?~+h{JOZh znjSAHN&P)Lj9tP{VK=*|*W-E4&29I1#RuCJFhB2}z0GDCi@DN2vYqq$`N8@&E8KU- zF*EviY`)R+GRW3I{3=Oa@Ly>K2j&O)Y_;&~?<or7=Dh9_T21%1*wt0!S^2*|rV(Zf ze^FnNsQzlnVdx9r<$hMg>08ke6hTt#madoZ0{@{SnYn0GHd{*WrSseFXO6?E1sP$R z@0Wz-AI{lP1~JeCoc7=Pr?q_U@R`dnrFP+-orxIw8}j|`3uyhos*d5q-rF=)DiIA> zlqvHmgtjj<u~*h^Z4rieW+s`nm$Zx7Gl~;(X^6UU4jB#(M@BlcITlC9Q6hy@|IoSn zweU7S6Vg}AB2vZPzm(#)O+6o~I=H(HF}<F6zdAmX^r3EFRae(bDD(X!MN=1wa9DOD z@#i0v_4WXA+}y5Q=01F;xDc;eni>uHU9Ly8P;X5Skzt`eHECAI4L=R&9@~j!QzLam z#UD$!AB^qwfb+kK9d<E?BBluySI)y+URqHpT{{Xj9&pD9f{nz%)0mq?8VUqlBffL; z(TexUJ8ZzCdGRJu2H)WU{L-y2>MyX@0UWkkwc#v|#3;ma&j&ZSc;v<qQz>?_GyRN0 z&FotO{!eG5<Rdy!<6hP{Jt|SCr`-p|DnhXB5GHFF*m8I9;Q{g_Ht7N*_pvGn45B#l zNt|9VV}KP##_{H``7|DA&4o$jJo^Dw6G&y1-t!Aw5MXhcf+8n`CGTMbL24KjRphov zqciszf*#+P$mK$8J)U4dWTrV!(Up8qTrocpgL;0E@l}IpX}+L>CGvwGWH!?aB1#7r zLvZnx;-NQw@PYgeFk<q{AJY?>LQyX!W$@7>AaX2A(v4lCTptq4Bl$oIThN&b68riQ zM6_fV2d$p2j;Xk81ygH+_cm;y3b4N7ompN4!dJ9_K)C@%x)6ily=9l@#wI3zpp}PV zkW?>XfT6kz(R(}2&X)fjxJn1rs^s|OoBiPaibyZXfY5hZgN{{@{~fDFy1{|^Q>;k< ziH)D-r`WVVujs{wI9+1}P8eB)RO40)WME9B=x9A}Pxkh01op1iBL|QZWUvbQY`eX0 zPDZsusP(beb_QI^^A)y3=-ED5<+I6V@0@KBiSXl8#p#8Oueap|US?Q^R?}ppac3)P zhA@x+(HTeYRcJp6>r)<dFqX4-bz#oA9P`VnsV~LK#ztco)*yeW_N>}D9MlrxZ8r92 z0(dfvoFPMoJE5ZdppEb&UKc}m(3Sv*NqJWG?%SLSB=!$!VM<H+PVH+RD)TT3qktjo zaAvItM?M!HNQPFCOMRS7NDTy!w4`Y}Yj5w!b_G$;IwtBr5Sr35_W;$xl9E(CVdh-j z)1t*{z*;E<R+NRdwR7gmErmCKVi7-rjVy3m+VxV^OL_;24RKT-Z<Yxu40ybZRc3a! z9FA=smhClQLRIQ56AnmRmH&we&G~K+m~OtAMM#U43k~NYe<<B<-JpV%|AHm#>n*}t z>hJ{9`=6*e-70Chg?|g*<%q%S?WWHs<*DM15kP!j99*{Ks?Onj6)Iq-@)j}vr~pyw zsNHLgqE0n7{7}qS(dv#SVmRz#Zj(?o<|pWZhTGWVhvo%Yd+>GA{%YU~c2(aGb?kHE z&F9fLgSgu9Mli?`@@7-jsf+#cuJ3$gvaddzSH2LVn!U&Ciqk;oPU^=rCa`P?b1v$8 zp%FnaS;2>2*TbM9J8<v<DlhPZ?Ul7hpWo|jB)9ZYlB>DS^Hn{7xxI1C70u84_nBbJ zFLVB+?y4p~?YeG$@o`D`&-3G`vtl-9ms)Jj8ahpSj>HeO${!zZd=H~Pm(6+(d*D7@ zrE@tMqZ1*C%<R9Yeb=S>(^H4Y@w=czVrB&+qtADp(P@*+KA(c0a=+Z&z6iRPX}8Rr zYzf;)Ea*vEqH77Nqt*WuxKSJ#i;^P^@OsS`ln3(_8S_C^qT$?$F9-pe7{KW@@43)b z+%kz!w0i6`Q7%0jFAXNhr_aKHU94odH~E6nPXK-astvs5Ocf$IplEnj&;&QKz{9WR zzt@VGEDe=(r}DJ(Zp}nW-onfH_7z)L@je(DpnuWXvYKiWY%ae@WG~1VV8-|Je}Ice zpoGyEOp>=IaY~>VsRL!pfBFQB6pJOkHT&EkYhiT2Pjo)#*)={I9}BggB!mfmF+q*U zyzg)bR^|EmX~;pb?^_~BhQ)6Hy0%9Dg``g296Gd>STOS>abm#U+{Z;9)ziZ!xBv;< zn2C!L*5N^@CIf$rVWId-j3pLIOj8N!Suw_ki)OqxRS{{#6|~$y2w>bvB8XEO0^CP% zV-z!+D+M-eqM<tXCOuHm-H!@Hm|E0A(A_6ki0VY3VcTcb`ve&;K#(Ejjj=biAP0Qs zBKpcg9nw|-?WF}z{!kpy6=nua`h%6_zQ8|l1UM;$A#B#MH~Q5l5SMh>{V6#KGdO5( z4e=hZ2{~QgMO0h1F3CYEzXYA)yzmfwtFKAyLmxS7!QOQe-1Cel@Sj=m;A?oKs)Z<p z$M#727Z7SeTmMaAMsoErnYPNqc$VtGHdW$JeLXrdiCs?mx7wlnlMd)B6W0}6rZD%E zlq<~<S-(N|J=fD=@0NFJe<EjvgadN}eEP!v#YP299`G&72+BI546=Lt<K!_NG){Q1 zGUwxTvttWevxk_9QFyMDC9UW1PLvgzSckrQ>3P6}@z~bh;Xhlq6o2w%*_Y0Bm861C zS#gln@q&($lrRzQvkh`$0Ny?$L6VuRZsRBR-ua2@O5^VqhFgDa-h#3AAx3*#8nm}x z?v`&>-$6Z|^dmw=7cRVU!3tZoEd#|IJku)OITvJH@+zf%y8<k9ltS#f$#^D^q0gt4 zzK|@hwd#rQ{~*pM82|4_12*?{stkrCp4BS%uyUMEjTb_a6X9`)>_UCPK56FUP9hmJ z%Vo*pt9EaaCb3^z_aF6Js@QKbHZa;|9Wy~iBj-Mbm~+0JZ$`Y3ukGMS;Rs6W3nxQ9 zkzHU}S^3~v#?Co-hi&Qy`cHT#8mh$oV^sPD#6-1>;I7VtyU+D0ahb<FzBrGP(@K*) z_*22AxRlJp!?5(00Ht-S=bfHKRpNdyqC`U3R#Q#mL<UFYk$VcQgHbB2VyTb$Ba!w` z61@#Hr%}b&aJ}?iQ9=fdIP9Mqd*5>^XhqdzSYTwt+q!pW6n^Qp>*d(q)xgWORQkGf zFVR?eEv=8~xN$vK$cJay#+5Dolm3DA02S#xYIXF(vN`@sW{1i>$#%-nvf6pSHz_gZ z#kXHSJlSsGsf#c&t76k0J~!(y{V7S%RT*rdr%*Cn|G1k#z5YI4#{LIA2yo&y$bPj! zL+;_A0roMnVPAZ+XWY?b{MlP(gFaK|dZCwbL+5(beg$GxcYR2&fkI^N2gTe?fVFOR z0Z(tNjf}I4B4dT*l;S5;)h@SBAL<wzRpKUv?{GumdILT;OwsTM=BEWZ26sk>r%jp* z)5!Fcr)>%g(@qtH!^2oXTNxY>s0ipAOdb=6rpdY~Ns&CG#e_&fnmCZtyM!@UF$Oa@ zPBVWzM8@MFsdQ(Bzm0Ga&CkbdK*{nuAQ5-bs<DS;d{6?{O=JxC*r^;~A#|S2<)9gQ z9k4W7U`U)w<D==HC1b<AHK3KI$>Yqn<kYbHQqLe$2O#@c+Th|go*Gn?BM+<%)!dM? zfm~27U*H7jV1qM9(jIO^XO#rBGOp!N3o2@lJ^!R~KNK=f4;95!WEji@?vvgSD~iET zl<qqrD7sn?0$&uIpl?m3Iu{X;nL|{M5uk*}anP*Y)!q#`)pQ#z`H*olDp-XJpH!rX z(W(a)>Xh>nKcnh44yb$AgiN(izLcPVIJqC<m1S;dEaSbDNM|=Ut6dkatdWgpsg%sf z28D9wGGh%=;G32SsVtND_mLJe@|SA(#FCi4gXXoOf}P+)2B$C=gd)e8pHorIUXFvi zE(7e3j*&`!Ypghx_}kC1qnC#g+A1Ua(Q(I$GH&y}xwv?8fx{&JlO|&uSi(Ln8AyZb zdM=iBXjRhX?V+{x%wuJl1hFBCrut1A1nu`ZUaIEmRnunG`Te~l;+d32$7AL{pR@-S zHk70s@dA46hU|WEIs0r({RNU%xn-C1b2rR^8n@mmah4j5mhk16=bBZ>_p#J&kC6fZ zj99!exMeAQKJ-LMWcHNFN&Khdc0(QA3vMD=UcS$%>BOcNUV(>Yj}7mBfN;i<pC~16 zila5mUOc|;@l#jW*R<a=32M&7K}$hF8F55$y@4hBNCGEmUi^dj9PxxnO1`zBElpev zb|%esOHNPEN2#-8nr~Si+S@O;tAI={?;}&;<@qy4yt6D^4F@8{Ze!mWtvL3QxdL5k z#+^3V^U}m&Ur)P6g&hLEQ2D+t^~5l@qU7{wy?EXR#b{Br>DC!ZW4D^w2t~b4p^=QV zuLd+8DtQ~sFkZa@j)V5*p{o61jC^LUFWyqXX{SQcr_TbO?l4vc_xvUJB0o{FX^+K& z+@A$h66TdZ|2(Gphg2~9im)Gvpr1C)iDSuW9A@U*)c-Ow@XwghYv`l87X6b%92Sma zE>4SXD+=O%r5G=_tpMdB+{b<rZFqUz-@9cO-iD89Fwa$zulu}_>Dm>=-W-(wq%5Lz z;QaP16<gm%YG|VYw~p~iFxgrOm-ClR^TvCZ(puk#6LLv++fDooC*9SFq_m+JM$k}x zcZ`w<DBC^yEyR%8MAUsR(Tx-<f~A8(z&7h3g}mCC`w5^CdghP`YUHwx&n2NQXiH5b zMATl4mYFC2=d_)4?P864L6W*qKtk`mol0Uv*c}XF|E_f44}<;#SetO&{$Qc;UxjK1 z`z{!^zZSx@>tw|AzfJ*j<(m`<m1vsttR*%kPjm?Ysy?_V@+igRmt7p{bDu5Hjun_q z@Hsual7`vG`L0iCc#BKRPM$$A*2~vykW^1E7l^;^cq!zdBg2RXp)K3JQjxULZv3JM z;316D01u(xCP39K+Cxm~eS;iS!G=-)D<9B7Sg1pKNqn@?S$vlWro!~kA`pcDez*7E zEl5TTaO}ihe}4d~Q*S!mnV0n;C3Sc6A=2dv6Au!$NzP(eiLv18DTAOYQj!zEo<N^E z0XvCy3;lOHEpCWtN*!`w@3?c@iuPBuE@rSk;(ENHS`d=4+m`C32dxx4m&|neHs(kI zMJc{3$wG7!yu?Frsa5a3ew8NEvE21Ffr|937!0ACICeScN$U62?)Xj}hTfTPQE^D~ zETw}A;*rSGmANS{TG62_;;q2K@`KNt2el%8=m&=`y)~uj2=y$j-18FM9km*+`0)b0 zk;x`0d_R`TM601-B9ngBzQitm90!Z}b{%0-mfNfST(=oa{05lh9Us2`HsG;KFCT(T zvOP{Z7L0#s+PXx;)KyRuU=-}ih?GpZiuq(H-tfm?Ji~uTqQuebMX+n-z(Zb9A<>wA zf#We^9!9R(G_50gU4{bv?KAD|^Uo69?~y&mY-e<+Pn3*X`e~a>hD>4dWzAl%@UYX4 zfY4Sc`%niv@?fkz9kU){>U}n`cbXNU9%_(#P?r@>rgLo<IOicW6l*4~ge&q(>`18X zHQ_ubgfc+!siN;(ar?mfqbKgonqgn<D{)da|LMPfNAW#KgqbusD{1r5yH5t!9JiNW zihY8XGY}x+elb`+R#M-pq++ao#6T5?q$jtt`XjY>*dnMXu*TW*#ll7Ey@hRd__XMO zNis!v%H2W3W6?rxFI**2HPIkqcT>sr`z1UJ9N_{aX+q^^&uwo>k9SIuy>B+<<Cmz2 zzS}5C0OVxU^XMq1zqXnoYhQ8`75i2Gc$!!dSnoXA3alM;0_QHPNK6AHB=eO08DrZt zA>GLCH*$eP1p%Ss(=&x6HZ69p=tbSa_9Sjx%W^MCw>m61*7=>E#39Fp&EvkiNj-=- zwc8C(KcFvy-Xk34o}T1|-uY(@i4=k}uIWd-?8}W-gBFnUhwpIK#2GYANZ(s_*e96N zwKg~BO0WA>r`lB?74Um=$(I{Z+(JM|$?bkCI2OX<NG!MP=A!*q?UhSMwnCT*DsUr8 zI$0?%*rcj+)^*c_V7np3w|&nbvEs)$QmrCW>n!8T3)QzB<(e{7he>QM`HURc{CAlu zf`bi3;3oDU-<%rQ-@rL?wbe#0+b|9W2;QG@YJ_UV<4#!;e>J?=6tW9G9#Ui<ooDE4 zkPpOr!`r%%8vS>!j6j-yp~k#L74KioN^T@7?nfx%-tZ?xsKb>JFgd6m=@rsj2H|Pl z3YrCGe~TNKb-?krB{17&PtScqB^sQKP^O^v51HwJvXyERt|vL&2hSHe2JhHUW1ocb zFjA8kP0&Eme@W`kkZR@;I|Pu*!M|X8=_vk-gQi)p!s#}<=Rghdztah{ARl>wv@P7` zDK?yGhX@iBq-qu6qyofcBhR3qT^f|Y5C#Fk*Cs$VSUCi2fM%9A6&s^ns857yRr0|> zGlIeM&l|9`O@IX^1{Kj9l%ZhafF!}5_CK2CtO(UEcL=FG*;!0@kI}nV#>5a&0ahqV zCtXqz63f9^*B2&C$3X}n)PMfMeJNO5F*!3wZ8wAp4H3#IR-JfGj@%fxo~WY26yEwQ zR*-Z;1~4@)6z8lyL|Q`_woO0<aRpVoa09(65(~}<iF{pMHBnyxsf5pYTlv=5(N8&v z3o^Tyxw8jl%ECDg{B{$lXhn;NbEao!k7W4<`|dLN9kefpFfO)bG}RB_Pc^!yuT4r4 z`n7Mk?zc7Jxq5UXkII7PE6!<znYb=|4qxd;pcmgA*!X}{gdy>_W0{reImzap>1KLU z0}D2QlR9hriPwf2ojGEAN`r$m3#4Sv#zq8>gOHG>aIXFdPdR<4hKpC<wPX$f%Jf^f z;dU!y0iUxprm=RZ@~AZ8TEN8z<z;TTGkh*@gMg$)qgUcD|N6*vuQ-zQ`x_tRn{yZR zv}gl8ne6p`_u})4(W(}{jB`85yICV^tbI0#x5K^mHQVn(KKy<q*+P$TS1R2r;ItoW z@7g~!<yy376U34H%$D4_*yx!e5L@|KR4DJ;l?GGClkTE!gn*Fe`xeLOrCXIS_SfUF z*U!TxS=aiO9pCQXf@~7aU)tf2@V}Ulzo(SBYq-H|bFTaS>zi%vKIg=v^gpGD%;Kk9 zloJBe?Z>fd>K4ykr1PQQHOafl!@mr^;Y*|?T>aY;&iVEWlDE^-^(xfsZ4ZOv_;miq zl>6>@*R<lj3E9sKu-PMV?HJ{+r3wl()!1>i=zN@OXIOt2CeqaovUA;i;CA?pDuZT4 z`;V@rXhgJU{4<uiQGzej5(`f%1%&_BLz3UWNRYuC!vE;gKR0>0FZ>+(y;h0pt+e*k zgKW1<9qfC^f-{|!><gLpXK4qt<1>$m&qo29yu0$6^8Msx`EL%EG`~Z^=r<*j&JE6w zbxFm%(|qVRc9tL2-JdcQ?MD@6%Da73U{Vyg^>ki@{VW5*we{ObwKm=G+tX?@SvuDE z+lvNUOBkP|ZyeW=od;5pNVP29*_^m???(Va?L$fFFyU!!rH3i@zeIno{my}0c9Fd* z{g<G)BIHm5q6|yF*+Sv3(5DS1R(7-peBfBIdJn;*lBAZj;Q-EcV7k%oXXHoe8>B<J z6&+xM9ue{k5La9m6xfOcz$ev3-g$X2g&KH%k~~i!(8{gd8?6}tKS-!Nd4^?x<`c{m z0!?&&Qay(iy8rh$U%THoFfkyh{0hS4GH-I{nSlhI0>*9LX0AbUFg3pE5cztV93k+g z1ArYbZ=_~|BhE5|D?|{}IgUQ4=dG_#NKs-{bwHzvZAOHmYBVN7mFIv9<_*}4i~@x4 z(Z4tlM5wu-K4|3)<S991*YgZCtO22!HN`DRua6TACIoP*^;mH93Jz>R4_qrYTnIB` zV{p1Lg?-wT2*rZGGtYbeoP*KutHZU*TVm&aR^Zj6uYL)E15vx|Lq}=B2d&;t?449| z%orsy)UGwe3{*O|_>Rgu6k#K5VhHWY+0kQh_6_e;=MouV6UIOwPik9p8LjngR8rQ$ z3Dh+eAmy=Pxf`)TSr(?P%YlcSKP5ET>=(R|uke77U0~9VWLuhFZYw1z%M-7L;WtW) zU<`t^QEb~fOyr8l+s5PUeS}O@;~!=g1tX+IB#ZbXo)#!o(sl4{iIOCvu&&S6jQ|Fh z4@Cm^j#dU1l2(V;uiB8EJJ~}g0J~U-9T~6Qm(Oxv%L<lp^_M_NjW4UsDgL!D7XH`h z$4FAYqwFFY5zkPtJ2W!B&fE^cP^`=H19^DWnRJ*t3X6?z5C@%GsI}<AO76e+z3QyM z_TlgSvxw%QuB(o$u7bmO<iP&&2eaDew(cwWhS^-%*dtk?k!cA7Zh({ds~{+Sc|Koq zZBloX{6nkng5sn@nwO&a{?5{w57ap`s=Q()$76&ppF?s;Xe?dkajIJ4qdz@o_s(Yh zkn9~CyVg_UdnWo1b>-Bx5@DJ?R{_-X^+bXtDFtHB?_@kxUt>+4!673MuJlGsXs=i_ zdoO9}Q~zpg*Q<XQ685vmBvWps;({}Ze)3O=z*nxf6(0jcX2kNn_o7>3EeolOStz`9 zdmr4=FqMa9F+5`?ALvfk5iS>ErFl60NWErD%7S2pf8(<}&B@f$Gib%PD6Yp-D3vEJ zlWLWyRLKO&{=U_X8i%)sUAMR2CGAW|LfbXMa1|b=H4?i-o%nvA3VpsIEc}35m%M}b z`_Pa!%NBt%7C9%s^Cw1A^xKk-^$S6z$U4SGwruX;`S2rJ=~!b$p6+(K-Ua>SPWBuX z-=28v;-?E=o!G<Q;8Qo7siyHat+dY4mwY7pGMW;-M9NQw3P5li>F-+~Sibp|G{b!c z!*(2x<I;(EA`+ugA;ubn;?zl9wy^ILdyFtUJ=Tyt&b>76qv_RF3?=o!Z;p$*d)Oc$ zE^hw-F7!s0MB4JMvg0>GP7>*BY9c(XKN%4>qokIR8=3hk)F89NFEY!52+Wh*XDO(^ zV#NSkZF#mQ1V+kPS_p^uAY-T5f42>NNiapk1I+Q@MveX@Ya9-&Vk~Z&8(}k10yJdE z>Q3_)4G$Cn%_HR_TI=1<1^zu;oGYRgRbt7xE`kAwNFGxrp}&EQELCN-EZQ58xE~a^ zQz+aIfL2VpD<dMcO_&&#oS7Fvidq-Kq^pHIgVcLYHrqfl_Aw!BkRW?iFiFZgo1mEJ z2D`r)Fg^_NUvQ=$|Mmp;P4%X2;RGMVDP#sL7*f+f`C%wZ47|JGyoq*PfsB{lz$oD^ zoN}5Nky`#Mi(SeZ99Uu{FQR&(?lufr%Ih|A?M`DgdJnP8MFpD(=LFkK(SJ*ckq-q1 zbkx#jm3yOCWSQH&sjS*>1R^&O3i!$@xy^nYVBI}>fdxO8C|5AfT16N@oTfTMS^*LM z_sjoCI_sb)*e;4ME#2LqgtT<;(w&NgfPi#&!_p-s3P>&>paO!ll$3-BEZq&#A|V~$ z!~6Z|jIJ{}`*80$zjJQlH9np3UwSmCN&dcimzjy}GEu`n%QELyrt!WdCU_5){bUJR z6B#%ci+A!m^($ws>~Q{7iG{?S=5eR{$H4uEp9xM~hX`FTF5=k33M`yY?P<TzFvk<g zb-8B0M8by_XxV8glSO&ydmTMCC*Q5H1qy^7(%P+<S#3?UiuX!Hel)S8na77TaY&sb zW|E5^^q1sfUmEo;(nuE?f0S-Ksvd|_{2VPRqitWLcqJHKkh@6Gm!<m>nYtB|*b&jQ zY+<#xCX9$uPMjQE0{|KowzMC=>k(elw_BI0+Yq<Q8!&L_((eAZ-Z;7j<Vi~6GYDfQ z=b~DMjL^t9Cy_`yCgnFEiYt<=kgkERBcl&5RyV(XdH_Go+Zstox8Hs?S5|Yn80F0Y zH@iYc#1?1{k>1R$AGxNP0GFZ8SZteag8l>f19OpL5>vMwVud$qRnYWs<IFv~kqHNz z5|*C^2#uq1(P~H1&d!HnQj_vy5TVtGs@FXeIfb7G^dgvQhs&8Ma+b&385O?Zh*orc zc&b(?&gReDIQq&t{AtEW*g3{w<k1&M5!G_87u!!2CrwDlQ0aS&cPR?lDr3`+ek>`< z$ah!QpSJwWuO!?2$U<2tGP*jcSYA*0U?CZ8W9XM0^VJyM(!(3*8n+*7n3=Kf+sld? z-)&!B-(A}fJ)V`m+>al``jeoV-%_3v#o(5rsoJ?U2m03AyrSIGZs&N<8q-iq@o|w@ zb^fFyb5FUk?;t5VX!EXISB&z@jdPr&R>ju5dolIyQ?tF)VI{jb-SnfeZtSPyPnQ#3 zcv~ZJiu_a78SXyuVSQqG@K5x&X2fRV!&CZF9?_NSP2vw&{0+MxPXL`){!+amH1TiK zm0cFsZy0_?)oFh<FrHzOipMbQ!V)-$JyNQ~v~Z<SJY`Gy*E;jVYGg8*O;G-?<FBRC zvNluC!2FINN8yV29r_Mtf|giegS-~*i`>E?6_RW>jJU+hn)Z5*N0adnI4<5)LIH+@ zhzXWN&a6+y#F!NiV~Z?U_0@=g8+>c{_<q2cJV}lO`f3My1zuAv>I6vU4SkQf*I~;x zYzaXKFXGF`An+03`#gJ!hOiZ|s|Rz*Cgd^&j3R>}Rp2p^uyqhQOwkkj+?>&U$moaD z%MHnO8!iI1s2GTmzaNH(OWpRS{i^7V@VtT{x!14@J;1{|+>t;opIXlmLp>7#HB0Hc z<n!Sk4#TaYPkYO?cW<3$e`kgNUOIDtRODx2AiNcUjL9np>|%pyP}#_fp^hT-eeewf z>gUJ7_0fDpbA@`q_xKGAT7Z$*A80~q_b0)`kVyocb1WV{9gN1;h2RhHpa`9FqMU4$ zbHZ)*Fp~v9C@vn@zqsDu+2Df+aR5$)ch5ew$K=!%1KtDY2v&LzBm0OBnwjf|)=VY6 zoV_ayaHn#>CWGn>x(neWc9Rw+#QVdiXz1Pq&Vq-j-6+mr4yuouq3H{*4|TRWq_;K! z9yKO7W2xz6Dq-PZE;G{TM(1EAmN(9fcT|V2yd)Aqr$A6J%v;`Nl1Ir{7b6qZh2b(U zAgr-K>siuMycS^>$~&50nZsmRl7oGju74mR<VrK2cv+9a<6L{?yU85wkpp_CzIN#3 zAg$$nHC`f7pn(T9*myL8?FUXCs)KyZT-jQsW@pUf43TWwCPb`xflEW;3)zl~QbTbc zHSCNR_wX2ovZ)~ZMxHN`UF?Y~X(ia(bh`&vwlX}KLjjt34H_U*BbKXq6LU-yk1tmx zm2I%(m799;%=Yhx0szNnx94j1Eg9a48TyYE58Vj~0ppja%|V`Y-MhshKgn<=@^b{+ zFiT7cZKyfHW$zO}s_Z?`8cz9M;51_7SXwq37R`Yxh|-?eU@Y!4uCq)R!x_Z<YQ6d4 zH?^18*^RuKSz5n3RkT!gT4t1pX^AH_tjCq!Jiv6e?1%mP#l|t%^MRibN1m@!epT&9 z^@1(dkqZ6?S9W637xuad8vH`<Ih!n+Lukw~%gTuw3NK$29O#j6qsW&0@q6X<Fs##1 zh1;v2CVFKp9v()|KDYlWQd;2;nMKFQ{NOaj(7_J0=b;Pg7Tjfte5RQ<jM+w;@*np0 zWAZhB*xYtYp3F7VX<Gll7{F)yRK;vQ28ji07rte1$g6xB%w5eEkK>oB>(Q|4qC-*y zGjT!xH1IPO`&mMZlemYU8^yd4!M|1XWD37LF)}5>n{f^D6i06f&jyd;7V-jC4V%Hb zvSuk;q)2@`^6U8LvC(X*6RFm-;ZTN8?{iBpfJ7vJ{bXcJf!eG4kK!9|J+9GU!Sf#u zBoEYsKg*j7dd3GzNinUFNyncP-}vxgQzV}i$2ZfjNPdphmyI51*2Bb40ph7_$h8Wl zCX-1TEW&);7TLJRYmMZH?_9!Gwe!G;(1O$ozsR0MN6x?Usm_9x31-zC`l@&nVLg94 zhO>b|{$Eg6iNDqgj3stIv|Hedgb`XgLm^Z`7JnFkp^KU8wl1BGsI&jmE2D`l-bZL4 zXWy_M11}fbMj9xs0Q>+iN`__KtGq6i6^`P<ek?-as3L+(sVuT29L$RS*#97r`bq%7 zUc*!wVlKbqK^b9qC!c8U^L1sw&~0lh^(jzN-|__Si-PQPG`pkwS0i+u3*vS3iB8%o z0AOe2ecX^i!D2G#u^w1$PE)~aF=b<nla0l*<q0fZbx5ryU`6Qe(4khtY!Di&@YHTc zRIsK1{};>@v!H-zKfDwe!FXULlCTX$`Xg<L4BOq2po~3-27;VEC1ux|HV;Cz3%ADr z+}eYm5V#FIda%oc9y>T1kfyj0XHs$~>u@Aw_R{rkcC`KNzWH@EpycPjiwF0}Rb8A2 z&w(;ktM+}25MJi%7+Lha?;yHMZ+bQdBb;R#Nu)jzf6CTETrI4$B+~pvjhRF|3#<-- zNiaSc7e482=uZUhOMKFk2~v&FlACY7j!AKJq#qPz?UhOPpJwKY&Z=wA$((${=W(gk z{!R@omuS2$#O>azDKL$#89@3WsV>F|s(+JHB1fd_76?ym58yIq?sgLYnwGwc9(aW^ zP}q|OAybZFfm~i={`tA6;E0RAby;)EwgYBfz+4PGZ)%B9NdS9xyj66nS=RPAuw-7? z{#NPiHmBbPzA@ANIiggS;G>S;Urk>S*CnS4C?b|QDrv4=K#7pqjK~9to97`&`B&!% zO7pt9zfAmzs9TbEt(dtN7R%_Rf`u>d42g(@vCXdLNc_es?u^5hKbYKwKrO9Nu^+|h zPnOfMgZZ!Y7MIKGMfsW~gDUA+rd{AGcHwx@;KFNtS@UKdg)mA5iM_^B$X2F1-HZM# zlZtFcxu-vljELG*PK3}RAL}?>Bjhfm!ZK8J2iN}Sr-q?+hF?Z8rHbirQyGH);fCXU zb<4JQXXKpIBqb>JF}P!1@B4Fg*XA7pzG9ncN<C~;7CK~2)_&ijhAa2jpa`2raBh^W zrJ5y&!Ta^jkh+lrw}-C46Bh&s{RyYhu*2x+g7i~e_IxMLpOuZPe1Y{aH(mA?<||Sq zY1^Nnw`@TuJBgM0mG8RSS)v+-RMQiBWd5qCta6_lqP=C*;&o$XIGvCGu`l978r%ro ze~E1ICvw@mHVEqCINbDcryGBxQMj;_nVf!Xrnfzg!BK-(B&)D;rk%Iw_I_EwFo!*y z0sDoMs};ehz={<$jUq`B%FGwk5^eTA_Bi=-1VKs2T@`!I66WJjg)T+EwFHhui};lh zEfKq3H}`ygJC^13UUrX%B<+VI4d{I&yqouBLiIg=8}$Gn@}uRvK7rjD*<zOe1JNO~ zlL-u+xV+s=#J7I8*Cg`K`Rx>W{H1&JNS<~e-X)KVf<feVq5(vA!AC@E&P9Ns!nPS_ zmBSi2S@m}T)BP>5e#mD&k>5MK?9#p4Ix(;*bfjIs&;A&?Y16#{JY>P8bj7cMRPC}Q z97dORtdDpCn*xjp)wR6l%EvD03VO}^$t1DIU1s(EU2(4H47dhoAcgkMipu3186nPz zp#@0{(EQI+08kwjp0q%I@CHjz90Awo3t}i24M56(`I<=6&IJ*QZyB^iZqZ)8z(<G& zQ@|&=Qb3$$Qw0@4-KGm*^Hh-eF9u#oK`BG+yb*xXO4cC(&d$yNExF2ya0QK}_4vw- zMD;&zv&ZhG6NgO?qp{JAU%@tessspXs6}qU%?ypxniLi(q@n}7CJ>~^YY4I`Fay<Y zt`>aw9|*kO`8mYd92JZsy*0t}>8`l7?^v*DHn~9p*yM`uD63=4$i4~{I%i9Ib<fqB zo^sa7&Y3`vslxeQ{a{yV*!%Y`tt9FB*=3HZfY;scmTrk=-)7O@hW14Fu97xG-C?*P zbv%p?MYV`#<*!-9BOH0;aaVeRUkDivVG@H#LERvOw?kRz&bzc4@xZOuOrTw@AHKN9 zBYOacjor3f7kZxFgy$DDpS0lH0#j%>n1)2PnIx)Ximpmn;ABg+Civ>1kl&VH?LhS6 zAB?qQ1K*=^j2V-cNZe#vo#8I)zL{c1ah@xG1M{=Ou^HX%VxH$YZYSl`mJ*9Ptz(Q> zU5U|SV@eM;{B$8(QKc>tk>$2y?+++n1RWFNe$?ngY<lJ?#Heg(->8Su$g5XMmRRSb z?|j=I1*)s*^%#}J%?(p%=Z#mSWvxlxopm?DkS84@x-e%}=8MY<(s>`_g@ob>GHA_o z)|FFaCeDIKb<aA^6W9+Vx>A^K$R4MnH58^L@@~PcUs3xN;yks}<YuZEJu~Y;#g{v0 z>`tiy%muI8%E9#4?7nI&!YO*(Pf8XYumno?=em(&uf*HANjMZ^9$J5c`8|$i8CJP) zhsrvI?XZkJeN408A7wjP^fgsAcWRZ9&~%g_<>~0awp<KaDet;wx4zW#i)GLsBDeLh z%rdL-v{;m8hVHsbtu`SW>rjWT%}&n+QlxB1D3z^w)5-nX=!5rw^XvJWd-ycRbj6Pc z*R$akO}?g+LFC~)#m~n=k5`k$hZY|Gp=NQN7>bEyz`io`TZ9Yb_%d}8MeRgc_#SJd z-Y`^udk6C@%zM2DzGEevgduOTuRjelYcgVF@^WM?y|UDhl0SW3qCX|xHy{7V;%5&2 z2=8VnXA)Nqv1%KUI_2*TX^TGuGKWrR3uqLF5RN>t)WG=2+1@?l$c*#GH1iIGuw5Yl zLTm<pQ41Y{Ng}A8tnL0=-?(1Uh4?3W0TvVC<|iPtXRgsePwll$cyu4D+0s)8Kbo|w zCkM_6W6Iq#V<3ruYfqf-R~4$?<iO@shB|En1;Oj0G$&7_EN4bmXV?px006@#3B9_1 zb!;R--hZ0{B=RJ_4Llj3YYP2uB9R9Z$&e5Fy?inY`b2K3eI)Ov5l96XIT*w4S=Zus zRBa59+*&>=G(e7+@i~IGLVLetaL_Ig4cYA(0~A%SMpn31OaJrgl9O))a5kz60Hu0j zz$dqhA(y}23xXBr7)Y%b?+Q@uLKIMh#5e(_4y4xRs!xOnaYdAqm;8{QPr*c!^7TO; z&`Zym%p6Z+XY;=jq1rVQX+ne;OkS<6C_n}~BWh*WQtBODQSF$F*_ePF0*XDvgrWKS zKe5mTZtM<bM*ufA8vy|?2_Q$xJRymuR$x0Jhnn1(R8agBF|OGFVTn|Qd7!YQQ`Fv? zRMw)YUcjysuJIvu-DYFAzdr8H-~JK@^@y9v^6Xl72Wh2uzQ?QXAHDmrE1Rb_XP;~7 zd>Gcu?ijF!2Da_(kcQ9(A=6@b?7Y6mkwg(_ED<`GOQK+EUg9C~Fk4loYLb_$wgFnE zHJoE$?xk52qluNv>T4$Id^Qzi591(X@G2OtNM)b;0A4=$P`T<>5R$LiR+c-nFDt`L zEH^}y$;)hENA7gCB>&WY=vOoWjLr;i)o|gDc<Z0UAA5LG(thJq&O!x%J44+XT1d-v z&1D-lSss6|!5=2W=PJ(7+Bg%9nz#6epB<>K8=uKs0AV(VNA{Q~tMly?FOb4$q-c!q z#<ASn{tj#vj!}&PAruooL1<Nz@75kq0&gTs4KhfC>Ag;@F`a{8Q1!AW3B*~p8<_fK z^egCC_IcY)s5Z>Ya#kUo`a`cyhoc!n!>BYfC_?2Y*?2WSP5)b(GEVCb<kKcO8?)1k z0d=B=Soa2pB_H8k_-E<_;s|=7L%8mU|2ZF(7l}1=(rFbM1{2(!B;%;a@2g;no(!|J z=y{k+@pW9WRnmr2;k;O<v2SxD?4e=0U(&O^0NP`+^kvW1vFh{y^@#PP0|x}Zr+OoA zc39;^Spp@VDpS<B;VYVt<aw4RU+!8}M0Cjd@TZm+UZzi}`R0fFnpxFp+8e1vuEYww ze>sc!{-Q6=QEa}xpM~>ek4<&6ebq7SEGN?xZO0fgw%VqWPkh{c6K}2V5EhUBK9@bB zzKfj7xMJqo&jSs!`~5EY^5P)72RXEfEyi)JjU(JTgj#XUhna%l(V;TCuu7Kuw217X zd)RU))!#3R3wJe`+Z{~X!@*7&hJ9FVquVM`2RL(*H1D)X23`5RgN~b7zOM;;-(GU| zx`nAgD#-6_fVEm>WsN*-mcXjMCbkoN4s^>+wr4F{d_V#m{Bq#Fa&`I7(HdC{#Lw2? zD<7baI1}Q{X7K<rH7WRs-Gcu0jZ;R;e7eIu8&XXBF9K{WgC%3)x7hHZUP1PeW@}^( zVi7Dez(fTlB%!2UdIWDDHig3uaG<+#r|k&O2f|#VD`2H@!r3P1LN^T%+y6#pK~L%x zE;DngAMe%xF(!>C09#FyyS;K+r)~%0;#XuHXc5^x8z%0Bf>FkaT<D?<73tKdA6O-T z^nv|Tgw%#?n$If(g=BMa0@yOUzp@~g+0$=mUSorr#T4)s1q0M9&1s7c8sPzQdh@@) z3{t8Du4J=bGoY!~nz_Fs0qsD8KmBSTwdt|I&n4al6$K|iXl*dA0Ei;%Le-Lc2q(M; z$q9^N{Fbt-3{c~|2#yTHmFQ(@6riU6#;fpqt+i1R73vVAm@x$5eA^9(F=u7q1;;~4 zK;v&>0d$XWZ`e(5jtu~=a{QkGLLUzDIdEaQj}=B4e~s>Uq4qI=$Z4EZ$pQs<QNsUn z2?4Tp?9vf=vUm6!QX>okf?!|iQgl0U9rRSg!oao&^&zn9MNnEIYdGaLDN?--e!sYy z#s27d^H8W!kPvgw4`2UoNa~5G5@8l{RLOSR{w1=Eub@3^s^N-(%U3ftkQZIs>vbUL z7a@W2Njt{0Z^hvA+x2D@P1Xm#M6Tge&I|a@$}ybm7@Y0(VmKU?I~)5=Z!P7=pn5I- z;gNDEZ~X(~mYr@ErSuAQIckwU6rdldZ0g%JoZS-xs?!b=S{8&x5#x{oaeU;HQMnym za^r7NBoMF&`r2A<?cF4PrrH5^RVepzx^$A&@^prVKpGU=`I-iHWG0Ozy*PjSdYIL< z&%5Q*1G1#B55@kd4uKCpGj&a%+67Ie8faH<-3gn%@0r|ey?T;Txzwvj=iJQ^Pcwr; zvN%s){xE<JC5MH4mz@8RC|%MN(I(9dY5f32p^p}((B}Cw&D47z$8w_X6T>aP3eKc` zp=0&>hfynN4`V#%js>@y|9W!PY{4t)1B%o!Jy#w4@x__hqN&kt%ecLkS*v3!CPF2h zh$^<ihY@>9Op{3c=m#!aR3`_Vy;CZ7Y}X{hye)P*3KQ|`N3X4t;uhb(3>HD%S{;hv z?`{b({S=XRaH+D9l3VCc!0llesTG?+U5NI4>`VWNIN8plO(&@_KGoVN1<^>WcR$WF z>I<tF6RPM5Rpl-EG2TUokim#N&{(y#C->Hhx32_<T$2R^<Xig{+FKmoJ+Dw$RSTL9 zSANbHIv+M?7yzL>{CPVxKeLTa!d9^PNkJs~1SU8et2?s0^zVlTy|$8ngPWoH%_zT& z+O^f;^r~6ZdgM9=|36|PZ&k)FG;;uhnwo++KJM9INaY(CmspQ=15XSd&AYQ5e!E)( z?ez4_d!@CoHRJ~Tyx%fWeDJC65@IZEzUO(n)&juP3G7uJNJSW-@I9@bDDuXD_`bb8 zN$)>fhAVE;Vu>f>Hvq>$_lT)6feTPm#Un7s>kR-UQip9!8xlhoi!Fgdab6dy13=Z8 zWjZi~lzNNIfqB3=D=rk^tWvnB!%2HJWGi1FwIbOeuh{G`kh4kLQC48*@B!}c6$-Lg z8<VaW8`PQcMh%z?!nJ1eP=vy^N6@y^jU+)PF4-X%A{_@dj~h^Q2SKW0cN;+@W>V;& zo8%WB5KTBReJ56P(YDsdbs&k~-v9;H(F3`u2N|qnb)iYJ*aiDY8qJUM111qbiWG~( zZFsRzyaoUQTj5=y4k}AvC|++iQ1b?^@!PDA(Qq8agdsu>m#H!l`z(lLQJbDMaBV7+ z+lR&DF`!c4EO%<OFK50i1wPD~lP_xz4Smn|)0pWVlv7)iX7G7Jk8cZ@m;*pM#)TDu zMhS9-^K@5CPvoKbhjRPF?LQ~qK!8pwg3tJMNe$5MkQ5opM_83A^qmP&XjwG#dF&C< zv3c~4ZInl%0iv5sVntX?<4c%_rlXsS72^3*E9+JWQ=#51i?UGL#Sf>OV{>R36^FHg z{_`FIqdi{yb~Y}^+m>IEiJSE4j0!{1$+KHJT``({ic*2O{@<(W7X&NX9)q+lA!h5X zPt~6>arozsdtM}W5&r=~yLDTiL)Ok=NgRczbx+KH^>u?rsVp91qoS~9c_*8}>(3Q4 zl~8GB&#(!K(sw=n1?um1pCDQEaDw6oSp2Z$>*g@A(7npGeTi02@sZQY=LdVqxKCq8 z&i%JGT83k9TTXVxh!$nFYcm&r$clT`Hf%+wAafqh{)$q6E*1QWOGs_$vXWd__o(1@ z*(FJXbO0+t3)QxQuvX4I?vJ`+<ofuK44u7L7@|xwW8#ceU%foM9f{$msIlLibYu>0 zB*6{1YA-2@)XIN~N1>1Rba$sv>A&eJaWD4&TqmPET)|txrSencnU_G@KyI0oF=@_- zXR&ty>bmQX8%Uv<_b1Y4l;qQqk4LQrqQnRTYu7y!3_WyUCVC$Sqt<)2;zn%B+(Nan zEaXYbQ`vk48I1LnCs!G!x*d4^1=8NM6(aJfK7Lz&nATK#REk-E2&apDO5KXp{>u6J z1pln5|K7X#iSubLjScscr#oMGJi68dTmuE2R3bZVtw?^nXT;?w@1RHjLl^ex@1O0o zp%2BU=QAv-InU5HGKWc>gia&h=Df~}6R`ckKa{8OZOCX!w~hI*HG|?WciB$d{yP)N zjwR4zPl}Z&sdARZ7A$D3n6LY?+J6ycj&tQyX<q;E1#iE$D7b4wax0~SIk@EAScSRF zWS{#3gm-&YIU|%<Ba~{UXlZFxiF)&>y@m`(FrA%y<qW~>VCM}1b4BB~cihjj5#Aqn zvF?w-d~bRO8wLu8_jDM_1mS9CRDo*Y*)K!|Al-AHMyey-z$=miOH-J7bszQxwT3%_ zz>NhP(Y>%i3U!op`~RY1jqGnawF>_NIzSM0(JKH~CB+;(1=B;FQLa<~&^x-W9#|rP zlqr-nI)#nctp&A2j%Z__&=BOAd9&7Ygz);^26gL-tS85=YQd0TWn+4XbZY$@;o@PD zK9I4~L;Xqy&2UlqvHTX*jz$+iE+)Dd@F8t{GpzKGM7YdcYP%VjA(+-o9>k`Bs^}Eb zc~D6>RUb(QwX*t8zMxt+a6(5K2NQ!#FEaqvSwKesD)``^Br24&pvmY(Aq2_=G*S?N zF<Xbs{(cBoa(S{1R-qeF@Vhy<mkiV{o%r~VAjnfw{1ZIw+M5JN@z=Bl@sGo&E5Pk- zsUli%ho<Bq{ri#ALv(0SSJrn6Tr7BfMNdfw(cqKUr=1}jBey|EzrMpfZErQ-h`u21 zoZKL7rS)`)Z;)+9+EzwM;%Dpy1-1q5e;D&F9jZ(FD6dlf+A<<Zf9Wxi=aq4a`a~>? z7w8b&e1E$qmv03**%`>Q-?u(E+3ncg54$@12UkTd%mMSnOCtLPtTVA5b?a-T=vLp+ zn!#<rc@;6_q)5(okq^C<Hpl;<wt8lNA^YIMA(BH}>@Pq-x1e+}*~eXwxZ$!n>1Y|k ze4&DO&t<S@ud*!sMG8g{_WPR2Q8?sKLCEF&S(m4*SVikTY?l$U<G=~`6$e(%$Xssm z^Qaf|$7i^;QrVe(0wKERMMh5i>k3y7k|umxC(g8N*J@TqL`C_@$v?Jd5o7M>dX*hC z2W4DmXsPm?D%xboKTAWkQ$gdfd-2G7l+L7@(BMYTPm_=5J=vx&o`gxPv1R|V2TS=O zF?I&}8M8~m3In~d-M1iNKK*!w<Dh5|2e+A1|DNdig6c_9sTFUgXti;VQd+rLg+yQM z&O`O4*rV9i)n-KEFXiZ}X%N!=RmpEbMISMwfuszjbu5(YYwIijv-pO3^l6``zhlQ! z=&{OXY5C8^@o%?X@cc(<6R+OQV}0%*4mj6U?D6`#zB+`}|AeBBBif7fdPGL&(Qmmb zn>B6RmZ{D!pR>h$@!81<NU!`2DRHE<l+_&zg{C&ByriT{kC9f1ZGB2<*`iN9x>WU9 z{iyy{jkn{>7giB3SK#J}sfGB{eKu{P3NuUqU5C;E!=&bJV)CV~`>#bz{O6DDzul!$ za(b)MuWo6#EXv5UP8WXrn)P$=IO?JCclC>o>*gPcr><)XZW-)Jfme@}&V+~quOA1I zl599S_po&IOhrmXt82H<(^J=4f}vn=iQPx~^CvPO6<{Xbu~`68!<1TR8}z!{Qj5P+ z06vB_@*1NK1Zc2K4*C%9xlp@bq`|nfSoX?nkOQM94Gs8CAcC6%GhvOL7X-p7{tPXA z5iLS1Jslj80Z`dHSO#wkfXcwn@bclCY{ZOL_s(<H@?k_;DLw%by&_Ta-o{n!T5(_I zq$`GG4HA^HVj`OclHS0EFJ<mn?#B()d*K75<Ls5G(Qf!~5WcUF$3_FxUZRf8g~MfK zWr3K;_GaMVUWyj8!P^8EKt+i2_^YO85WCkqNe~IXFhd-Kt#fRW28lm78KravHkIi} zBS_Q9csn`5R1=h&y;PGV_J9n+FmoQkl>)rm<o7@Jp$Mg?07%S-{_BS)1&LLIl_xVw z&|w)FflrWG8N2*y{RqgcPa*2oLuCx}s@R&UXacxQzDzL4-Awb|Ux_+ICGwYIK!aNC zLJ&rc+9<W&Zy;Gc>tI!q83P*({-wrMO)FS>UcDX=LA7hQrc>GC7pSeE&+d=w9t52O zKU(hlLSXqLe~qT|iMuz|^v%Qw2J>%vw&z8&Zt=2f`Zpw(T)5|5yuMKA(gykZHN=r6 zfk#EdlfZ&r6zCz^(D(vSz8}k1%e~UBEt)FRb%2K=oo#up<a^$ZV)xf^^cB*Ulr%r0 zK46W#VmTsY`~~n}vKU0>yL&ZNx<om&ydGgm8xgo(yi6pz4027<+Efpv%jPdt_dJzD z9{*JpWU?njWCUl`BrN!0dk=*)xSci^Y>&@{^aU*LXqeR&{5uOSCDg(}Ovy^93d>P; ztUyk7|GYoIL`LN+mxRLt*N$HnS;&F9dMy3B@t8LC@Q?{Je@DgxXhbQ#-M`?2BUjSW zCHB}b5gwO@BH93spwi^<$RAz5zrW^H#MFFE@+){O<*j&)zUm<AIEf?sK-T*Q;Telw zDq8l~9|k<0;lcX?w47ddBQHGv6l>{KTNQVSvrT%0?;YpfnPCv_gLn$f5(5??&vH_G zn-u(6gG%sBDi*m|GBo{s(OM$Srst8PKu_W0qI@iSaw5vIZ>>VC&&S+`ejk}+V#@?K zv-DraN;Xtj4>Fl+@eKNLCR-D6xifq%46a{D>|k`RW5OR|lfyuH5hD8INQYL3{-?1~ z60v|(q}ock`QFp7lIX1PL^iGC6ycoASF)Py#pr|~&!M5Jus(2>Nkt+>fw}&KhTT^T zUhoZPk9$sNFpJ~!j_L=EkWvNB<_mqYp||^lS~oU^$u<`)ZwlsEsiUTvAI#$_mS6bZ zyr9v{d%BF?gb}|ndSXK^nrM6W6l2IwZ{62R2sJjQ)x^q+cbAf~?dHU5?M%-iKVN3= z{dTI7Ptek^E6xt3_sUXoVfLc`FIL`$6=|CcR)C-jzvs6zGh_dNMmcs)Zvtp8XD6p+ zhh`9jR{?E8#-F3$Z~hjuMTF=VZQ#*p?}OHmniGF|NUoH3Udq-E6G0TyxpU2b4lM@D zuYub%SD=@2zWY)J9)~wL74UL`h)FB$!?fGR1!p4Vq_}@)7kQe<+37G4-zW78+n093 zbjDwh;kegF7*w!afPiX>QbgE|t_i8Q2i<ERUZbFT#I~3RAZ@crqv(U_^H<la5D89B z|L%K8mByRRHa9tj7%kY95kDem84>^rNiK4YeU-|z^Up95<OiU&%(l9o6<#lk?^|tv zg7|6*rX~U_VYrqW6L>Sw-xkx#-TN&USnd>n4g<pokJSC}ptb>_37vGO0H|0~D&do@ znvz%!fUF8-AWmk?)=!LF@m?bS5~KcCj_66$?zXS*qnXr;>PBM04n7vr4C+6$0jCN) z-UTysYdce!zb}x0c74&sC>ug|GQ-w%ZbgXrY7f|0bP(kQ!iTX-sEwxF)szn%ick{E zJ^TTmh0K8TANVL0A8@Sq!IN^NTE1>Oa#C;X_H|L`B1^Ey2#zMB*Ikd4>2Swh(EdaD z{L~hKzch>ZkFeyGdK14v5X9xW=<Z_Kg5i0%;M?_IIA-SLPlb5w_OK&gpkp@7%KRx( zC<qy8$r3XL=yr(E{_t)kR>?E-oD|;e%x@!xe#;wW5As4J`FUg<^KZnYHYZvovFt@o zjs^%K-)<IA9*a(zo$=lXiI|>SD9nIm2X2ECE57dP<U1VX1smRMW5k@?i;~(Z=9vVL z!KJkh3WD{G2s30hvMF5MWWUb06<0QyH$)`S-p2q_v*Wzw{4@QrXcIq-&!1#4&Y!z| zb@%jQxCl3&-qDQp8g=!sdtL8Ug5v3J=odR;xp$p9Jd>pzb-#26w_oc?Y5ih6^&P%a z#!+G_tKYaC^MAk}rJzTjuqi|NTN9sHD`$#rPGhKjC;XSM!B4AvhoHdu@xUiob${~t z!}RP^+u;Qm(6r-pk21ZZzJDaN_IITY31P5=BL5XdR{s!lRWE_@)Y`}R+Tl8OD%x+L zILPa($l%|%mMRHvlq(3S|KKZVf3d1NoPJq({)MwLrzB=|C+4MGX{8U&myxS&?f8`h z8#5`lp9_ql24h+!Pac)vA~E0uzqvZdGD2vv7-+^AmIZ%wKzAepX6XEFTjN;!egBEA zB&nAp<HWe*6%xvKv^%mZZF6$}i5+emvWraoCBpC3`9&|M?zbtADlKM0qMzh@K^$Uk zzm7X#b>xGa>^AtcU*9?%qkD{_Vqo1gY$XAc>|h3uYN1Q;he0Wp28XWLjdw<`(r$yD zy+UC4XZJL=?Us^a&%hCslZtbZp+D^chVu(Cu??iF*w3U+3yAKh{-kW;&CV7nCxbw( z+_PH*C^oeFf601oR~9|B5K@&MbFed*+er@voY%%T>1Lo3;_%F6N{WPy<(RR@%2U@; z&|at2I^1`5T&TM~zjt3fWB&9ZMr;J^Zat>KTQP*Fu%AG*z6Y~L*I|PwrYR1hj-Cuu zh<wq1;ST=5C|dt)M;1ce_pAdIMCNi2{@lYJsDpaX7eGJzarDJm*L}Xu6Y%nm*DMeq zv<Uy#$NrRm>w5nBv!2)y${mfK7y%)aYiyneuJzYN6B1lf4(=;m+keDHc<=h4Bm4Oc zAa>0fnmQh!*$}=AYF{hCnsO7734YVF`_fc$(*U!-dXF!@7+l_Wa}=>`et0Xx4l(As zC5Em=-Sg`p(mQ5*69$Fg>puXhh5}0MAOb>T9socN+OG{BfGqpmO3!MQ+u#h_fVRK5 z;sebelOjvEj$9aUOfpP(J@o?wil?(gKOeH@W<dT21)%htaUivWR?-T0upVc75n{r! znJ4aQvkHNfTt5O-TVWILzoUSIy&6~ITY^`3pe*3O=zii_2Ow+1WEyz$+?u=!gEu~W z0$oF`QB!Q2j;AcyE~9k8o=I`TIhw&pyf~j)2{~Kif@aYiOkdg}ES|CRFf8Dgh;CBk z*D?p(cMEl0;e!;LP~+5tOOY103ETs$3jb9nWB(a%yvsp|HD<wK8U>Zt!5=!IMp4;D z+0a>bN!G2I@fP>_@x<fygZb|Vzv<2`Bi!V>4(P5&DnZV#sJ~5ZWpsdmizq3-9`WwE zDJB%_aqIRxvS50-IRtri+nE+^Z(k<pCq$T-CtT1!aJpqwF3`AO>c1}(H2Z-H(t7#@ zEBDIX?@u!97u+mpBHAFBUXI_c$NjaLkS4HcZ`hBY4i8{pwBy{=d-nH2vw5$dkm#EQ z8Q#W(QyrNG;?r2`-DXQI{^2xS{(N1Yh5l}i4f3Nq>aD>AYd7;6o31c^-k>~pwKBrK zu%RIqJ87=W$LZ0Cg5rw<GTr!0&Y16P{C1=ncqM3$-)2%1JIRF|f8Ks$vQl2jO~58V ztoY0Q!)RB=pp<ndTX@&wVrk0Yjs9DYdNpc?N0v{`a8t(@-x_{c+1cpaKH$|rW-abE ze=yi6<bAPM6^D(9bL+>&QfVf3Dl*J@vW@1jH;uN-J^C=H1cicQ(KbeMLbhzXNveJ# zK5yyP-RP0~9Ig%h$nn#cht0hFLJhf0hDGcpPE}va-stE;CKr3?o(5d8FR{?=i0vkL zM1{21VSdW^&iL1g#xf}oZSNhbQJYeEqPl;&BsEP_IHf8kMt!Vp4%<H2cE5Y9+L)im zW6iF{IIP!|gzp(Pr*7-Xto$X6=ZLTeq{zIx5<Vnt{pJ-;)?SE;r{4O7raLDrpa1CJ zkBp=fB6Al=V>35)M9F58&>OQPYSDmRzxQth?Su>2?gK2dSvQ4~jI}u6OJDTvK5$Dz z`RCdd6qYjH4xtZ%{i1>yVWmte1T5R}XI$3Ec_;?bX%g7BwWC2#ia-Vi2O-R4?FxWX z^!Ef$L1B6i@kb67a8{w>5%Y2}1azz`&4IV&NWQi6DWKAxOL?39m#nMc54dBq6IoaX z5(s<Zw!}U5u_-PE0y56O1Wv#+b3DgBnS=*TgVoUc;Pn1}olf`Cyc^y0*gt^}7m?Qf zu@VR;HG;diJy1q5xLK|XNX9VU{*6(c+=1BrGGc`8E=AF!)YiR1D?>RET?*32f*#Y< z(Li@Y!F!Ued3P_C-hwU0Oc|^#HzB;j6krVDHX06({0hdGdR=fpH$If61JpVCrISNF z5oFNK&0KnHkguB|gIY18BO4=uw-O&EJV$Z8&}#ym7J|tja=M%?scpe>Bsx;$fjB&R zz!0T2{AKhLt7(*kkx-;XpoP@~i1U()iZV<H%Mbvnd&Bh-bT$A7k!7`{<&s+gEr9zN za*9>FVkPe1v=p=;iH|to^(Bzmwz@s@K-@NJ)U6B8rCMGFQSUE)<~7gHW?%H8ZE+6N zJV!zB(VtNxdEd%kcwGI&E^*dTtWwIU@MLuZ$D&XEhK!B>n?b76(wCOf`{nOP4fviK z&;E4^D3T5t-&xF)zXh%9Y3$D0g`4!sZK90q62ubuSNxIb=3a(QDKyd!s9cWja#yaP zc6l;!Z7q>P$d6w;YBlnUjs<09mlJ~kpOga>eQ+Q<ckxF20jN}5E70U6xhy8-uVo!^ zrH{spU~m!2%@fhJ0n`Wf>fTAou1w=h{S-6g(mMm`e_iN(IR=r#!RkhCwtq6OH(2tS zl8O*X6g4U7w{ffzIG{QiU|TC#P!=&^8rck?k+_k1{RzqIM|nYup^#p>C;TH5>Hion z!$;R&CI4@DjYU6#nPh~Bzjihdw(&w-0aHe$&4B^mqVQWCq@&V!5ABL@;MJP}r+mFR z1Y3w5b*&yvUf|1jy~I$`1j#47Ml30v?z}`Nr}4<pEMDi|QWDUjc=7KfqEBGE@?k41 z=B#y3>lMe}A@5?D#^}gzxR<OE@vFuJa`t52BuXd*16IjlYcy2!MW$@3{0XX9-{D@? z#2iCh(xx3GW+5-_FrtJOJs|Q&c-6w0S`5!iePKuAFBejB?wSnWG|~<EtT7I-z1(^@ z)3fk9Rgn1Y*!xe#ggUNPU--{^S0*Gm0)APMPu(^t<eqU#vyqtL5%7D347dNFrtEbV zv#Bjx{~meJlzl`;>wV){#DC=Dq^)aA=go-vGsf+5&W0l7xRK~iV*KHHzn;Uiuhmh* zqc?U(TRJy<R!A_hnLDO(YX_&f@t4Nq<3tdw3}yLtuPJl}iK+G5PJz^Kdg{92r-m%1 zMKebER3fuz1AaTpEiixR;D#U#KrlC96W|nhSyRn5z+nZ81s@6K;P!N+seqj$_pfI$ zu(XER(jERSy`T5$$J>>r9dvh4s{`&~(*GB+ee3&F(C#`@7jsZ777QZC^|qjWIdpuV zCzdr?dcl*ZSIye$<p~Jrs^_oDLIELJZj?_ri5^@9X=01u#orLSFHp_<rfe0S_wTSv z>mFPG$A85FB#LQy$t<cZP}Mw_5g!JU`|SJXWYEg=x^L9r{uD4LBy2SS&~7>nEZVtj z-#1&-z-N(u1D2OG13-Z_G=lEt{SM&DiXM4FoO^8nQT|;2zj9Q5@axcX9}L7-U2M1# zodPPN|E>Q9;bjZhe>T=n#6g$YI6AT(bQ6lS&Nw}Wm&AdhGv_XKNMb7?#Mv_)j4XgV zMcO*LQ52zx5JR$tRslwa34sVTStNwR=0wH<3L!Mb82;>N241M(sFnMxRTXuJkbwhV z6#&#aGPZ-2V4Yf}5s#Kl9Yw&KvJXIuAU9G-Q}9Li^*2|VlH(<&S5`!YA}^wQ!jl7i zn#SBNhF*@vPW?p<77_4_aILG%gI;v}!B3~onF_LHbK(w~gF|u)iW9Y7B1JbdzYBzn zqecK*v?DMFrAU6eQ_@o)v<t(LTM@s7JmBbqw?nh5@!6f;0G|YM%iWR8k>m-s1e=o= z*2uP#rAEvk_NB%{XPS%9=jQ*?>8=0px_VPr0|5iPdU)_Z3;DD%_7Dj{NB|H<E%!T$ zD+tPwU8RG%<E!d#skw3RW^=gZs2Y#27-9tlguH%YNoUutFTb>6Fb<yc4w!m2`O9~k z@x`nQnszpb%y~XtlK4>fXE5NyR}^_%JmdJU5aTKJ3tXc&lSQl&%z>kwzGIB})p8LR z;nk0bKeGL6O@CvjHBJ(QJ4{Pd@LKNch>aUMsjNN4<3m!o71O)1Jw5fiZDp$70%%%! z&T$bTk@D{y^9&r)uj_1R8``8?u71~T`Le>5dwKFg7_XwTH?MOsmfmj6^c@3WIC5(c zjU9C>bJpT9;={7w(0j?HcYR~373lmhSL3WVUzhQ~zyH$?MjPfJ`2(eO7b8gwKb?^P zjp63moGB}4FWKFX8|=j)|EY=22*tNPMl!B>|H>Og+Yy=#x8G<^%*$E?pk96*o8Q*n zYCFyPw3y!YdLWlF1cskIzveHOYaXO8`1j{%eC;2ntSglT+o>CbUi6H9Oo2ErkJt1e zO(ZU>C-v*e;NG}yWWO}po&vV7PXv+N-!)_CqWcq{{9iCBDk=<@)i=kR%o;BeI?v|O zv?PL*;whrh_X&S6H&Jw*3^&%MaLzMYT7;-<q#@QKD5cha%6+A0JlmvKk*K9$Bwl{+ zho|!{xxi>H6^7Qa4jKs~l(_JL)#{umYyV#&f27L@PeMCH#X~&y;o|pD^Ph-{8K3=l z5MxOP1IcalFnFBNxNEfT*ONniw{&a}?Z+3<O@l4vkL;ac&VWKwC2$|d{(UdFK$RQn z%C@ym*_c&#W)rT(k5lgsW{m&aEEzICLcwV%Yot?*L-=oA(6sC|io5{B$8%5(LXQvU zHSH|OLIBEq6nL_0s;xfg0!Uz)gunT240_#%W<s$ctrA814-j`u&U%voD}7Zj0l9oJ z`55$$-QQw}&jfRZUDF^c5)4NGESLZnWNJp$KxYsi&`;^|0XFeH3rr5C2oR0wF>k$u zWYK~IEFE|se!c|_$h#DltZ<p&%M;L4q>NfQ=2XfB?=kpzV}v3k{{@z>`&0XFk`!v? zClK*3{R(iZ^_)QMNCbRbnwu)<Gn)l<%FbYcsgDCEsfNHUD9$VH`dG;9t+hl<Mbbaa zRICcyM@?$q1;0x`5W=Bd6yX{SSA4^uy0uoefiM5B#CCYzr|eHJs*e{Cu+;PUzWrgg z6uXBC*-B^GDXl-I6h^y|t=XOl$#cjzH6p%D86)mpapJT^R3y%o8TsDri1)Wr0bA&$ zp4@WNaz6#b#WK+s?tB=soN5ba!4G+uJZl~}0h1y>Oh{9*!uol8Z<MwoM@IfjA!4de z8!JMFe6`>zHY`udwZa7yR=J`(dn<KjQ9}T2O62KxQ%$c|U|#=Xw&!^Aty%3*$oH2L zH}-B9Q~l&)u3Ec!YWbJQe5ZPL8Rl7`knO$Uh(!Na(pL|+>Yv+gIA@^HD~t}fN__lk zGa7FHL7m}SeL>1L_pi4Uo#93g%-5W9KCbk|&4|BOAxbOfMQ75;Xi=9F9OqGAG)+<H zc!oOGRlmEVhD-9~2a9_|^m&xMaw$#m`*#9CGYXG|A{)F~KTBCoQw)sTC(*Lvl8qRL z#_r<~ayFfr>W04-3i`}pNyqXi`(h9cAB#yQFaB#144+I1lV8aFADb{{f3AI}Ft##* zUxN^3vr6S{#YaSDOG4a>Cjn2$YFg%kIn>YV+oQ6KI&^t7%|~dN6*a%vLn=lDq+ldW zebeq*%;eAH9ar{377>1d?J`3(N;fSCaFtI{Se?|~L+F>5#ggUjqIa?E3jFCo{gW-C z!}1AME8>>yyRRC=@}#1I?Y+|F{E2(PFMav=&{WE*<9gk`?#md_{yYfX5=5u7$UDDD z^pAgdIT>1^!`<E&5ms8oK(&F*u3K;Vt>faFZ>68)H6glNWgK-t<;O;ozsxFDsg3$- z)U}c_!FT`saT&tS+oWx#I6%7~RTH>MYxZIYVLOs8ftSSu;wPl)Ut<8r1)R|q4)81h zbM+reZQ&fa?qUvfQqNmGnu8Q9jhcO`?gFWB*$0QmHlSQkjn>x@NS28u5MzBukQf!v z0oyshyVoN~03n`4SU|Hda8zq%QYHoNld~&q*fTSN5n8{;qX4$ufF}{^CoBE}h@H7Y zboM~|Y)coO!v*Do03!AI$hPG`Wy%OW7(|yY13QN@Mubv!og)EjRFTaU3nv}0<B7+a z=V{?X!}D1{^t^u`PIj~aMS5q^1Ufy6Yk-om7j+3~vJ5<a#vTjev~!F%;4Qc^z(@Q` z;rM_1VAm@NT<G!nFJPKBL@YI^@YeTqjO)Wg|B*m~H-5g;yDWFHMzt#j35fO%5d|<f zc-QBEaxX6+c5ugpqVIca-RES5-_7P%2nTb4+7HPI2+hG`a6T7;bfdd30duzHMG+GD zIpj4L3>Z0eh$c=sF`YwbJ?00nPHaDzuM&4hC4tU80k^O`_e@dkJ_w=-9cMhpfZN<g zCxT-UyVLpPqO54Mw`H7ke_`1mqQcx*pcxF#vVfdD60{(vRuLcPI<p{Zil)!PDS}#I z*%kg9VnY7o;Xtd<O+k)-7bMg~*)ohl{(ccMi5;+LdT1Oli4r05jU-Coj2bTsIpewc z*ZdLzUIf<4D6GVdj0J1Pu>vZZxZ#qOwcp6>q6{-Hj;igBu4vr(SWsgUux*X?QsR~T z)sqNyzPXo3AaKh4l|+MT=QSV>YY-zfY@MR<*NKTG228Ie1@#NI<3w^Vk>FXml4s6- zU@IgwK2RwMA9#t3ORtv%zHXnG+@G4M*%&kATOOfh`(A|blj)l8Q7Vl%T}~&gj<c8o zwH^`%QrS=TZMLzn;n9smCSt_N9xS~47A2QXGHPA#Uo41w>^%59uJEa3TgqR)VzR0K z8*$*a=Cb)huP52ndqH!PSQ`7|*cBG(HGfw2>^!$`$^8GO*HPcz=pb*LtDVs!cz4!D zf*xm@Rc!rW7RoimC-<M1t3G;&zmZom4&TmzH)KwwcKgT+!6+38?xa@Qn6RG>3+omg znPbMX_xR@#6QMD(&GE!5Jj3=5seMa1@j6)Mcy0V96B7Q&T9GuQ14Xz$t7C8v&L-u? z^K05DgMLtwi!y|o_~+P}!|v#1h)$|yYMA;w*~m+Zw*zB#N2?*w?h?^kE9&a^_OS*J z5{7p)iO&?mmwZ~)Bi(U-h_sH6<lDj<U2E*{o*zgNK9$Jbe`OIbv7z-Uxq$ChqVR>^ zr59>j&z5><_(}V6{}<(jnfz#??}vVRnNEq_NaXlU{q{LQc@yNP^)_#@txL$~*=|%Q zINHLa0>poi4srW*-`mIGh#kR}^P><%?G-#ZB7S?2L0OZj)-#x#C;)+V9Fu4|dOsex zACvq3{;o=L25gK9b^~Ce%wX+i0~N!hMqnN-!r)I87iI-glT^Gm#JCeNau0znPGsF< zTQ<fj^q8g&pk~l!PMavkg<G}_P@tVm{HXUGVs=^dfk2C3gMZ;|^o4_-4&bWJs!at_ z-S-bV;3((%OoQ%0h}X7@L^xSee2L@rXNZ?&!tG}bB>Dc<F43QO8E_0Tl*18N9>Iy= z_JSuL82=~QTT!LKkLlYVm6*s`aLtMaQAGn?^9EnKS4KeTj1WXY`mfjp^%_@BPEP*C z5(Tj~(C$3>=$_xo?Y8C!1|Vj795V~N$K$QcoD}#WZ_>PA0N@N@X7r}k&x7m>YppEE zloWd21jZy!CxE{qhO5ML44%CW?-{D*ybqq#n>oF$pn=d#5Tk(Z(nA^$cFT$)BE5XA z7j}Q75@4iaPP!t=W(^Rfxl%B?Xj+_uW0X42iCR1H`j)CvyF)9&bgcH{Ze~PC<((xl zAX(V73uWw@gSfpY8O(t6hS5D4;jCVhDMvQYMo4P$mUOZH9%(HZj`s1eA0n0z+@e;0 zFc23<muY+S@rMEdDby3NpH4$MCos{}+m=RRHL_LV)Y_|qF(ym9&DW<kn=4(vUloDs z;T>3+i56>SRuR!n%Xzuxr4y<ngS5+&8-MGX-P#F!$fdpGkq`zFIlIeZ7(oi&pxPFr zhps7-MLCF8CNGf=kVe5QtsQX-nAL%_-WCuFu!DaFRLi^;r&L%rn+Xg|48MpLk6t^S zx7d5YN3)A8GNLDCPKKiGqAXH<E(<>nDry(18z!Oa6FbAgSsoVB8do&J6&!?o%&cVZ zc6!Z{q@1)^#N{ZWf)y8}vc*S*24e>4%j<c$brNIHpDBt(JJ}@Fl0A)U_?r9t!sKdP z9g;R+8{6jU?e4LqQhbpf9NASor!~g)&2W@ah1~&9$mhKtf4aGPqoLk@VveqJ=fk+2 z=%F%&&zYEJ$n_<5-l)k?1@>zAD?L==gWng+KXcPslH6#Es$(ABN*!r3NN6vRVJ|cE zi*WFBWXVl~i9ugDo-C^|J_nXP9{6X+|MJ~vB5s$5C8lk_l{of0Ht5q=!*xjGvQISr z2>x)LstXK1a%lhI>tl_5O76*kk1*a3We(qpV={tu_J-1Ou^x+v<jlTWUEIuGZ+KZq zbMemwW}hYX9sgv}&_njq`Rb80vvrRJCLXv~aA6v^pNm1o{A5dNr#sm&g_r%i><4=W zJz9}h-!(=yRf>fP6@rn-uZLdu6~fzA6cIhw0KQ_%#*WYm7b{087=<S0|5PQyq817z zbai&-jL_1!FFrqS4o=4gl@~?eJwOZPhyX=6_Te$kbx*cF{5An!DsW*k(LgY^h%G|P z!?lcB$VY%u?<eA4v;rW!YJMEWSRVB`bKbXpHRJzRiXQb1l=!fJ_?2`A_=<Nxcl`f> zNuWj6ZKI*Ypd)N8wnmE_T_MJyX*K($WGksCTWA)@d`n625`ga;{?#S8&jMO8oXxS} zyotZhv%s;HO*@EC=AOfT`q<`LZ}I^OluNDx8<Eyp#R_i=xw%XNK>y_nP&+mp4BQ9C za!e#uyaQx#3IycaR_bg30$%YPyf$XSG?alrB4-6>5n904o|l*d+?gb$E=Pd`E7A~R z^XjA2;)BeZ006w_Kwx37b=!A-^8G(9-#6qYED6FjVrhkJCU1Bg^OV&JA39XiOX{=d zo`Cq~m$SROp!|s7s;|4^SWIGS3uk$C83x!<oo@U@=N4A7_@K!c0htX!z4D}o*SkMJ zQ2)UL#i&Y<L?9jz7^Fjtw`+JrP-^$705}#z5AShzE}9v3$7G7@!BVgS968W7WF|nw zjgtwp+hFF@a}XX4%bwynedo+}MG2u%r7?V&!=e+C67zwFJ^ToqY{2Kjg(NbPK-X-# zH(aM@iJ@n>TTaF;3;2xjY7tR`-yG%TsJuAXsi?g)f_P&+5j}5)h(kOAU4n{g+)A4b z<5dC<U0x5Qs6_~V7&Z<`$;tX+yKKV`7NlNL+ujBn%G4vN3UGltdW-$$iG!7!i|y_F z9HOqGqiNe8xxPr(9Ui$dN0|yEbRB|%KYrrxW$W|Q#{IR+upEbY<EbU$8CFLADUg@6 zzBA|+C={sj3yBGnJt;Cr9|2frdGk?A!>z;1$7u*GfvBRsrI&q}%TFL)uYdb3CZy8y zC8Q2SCQh(Cv-&rIsFu4E`hHaX{G)luTz=?$T)?QsA5RY12hMafHb)Q$9HOcKdpf9y zdE+#s1ZOGXraJi{%Om$!CIVKuuQ9_g@vr<{TWrC*W1F&Lfgt()U+_*0$|M&U#v>sc zn|?mxZ&?odPxp5Yihpbveoc{whC*}oYHEHv5z%p3{`MmCh~uj+r{J)8wo9j>?60Gu z{60_JNY43Z#?Kjh9+;2TkCC4w31Lz8&e8%*Xr|vVy3{z0+O8P~hJq5G0W2wamr~91 zqcO}>ua``U$Lk-XqmEx5v&H<cOSd3WPR4T$rXf!A%d_GWX65=L3y~mk%qLFT`%W4& zlUO{8fB5r+-gXTBG9+3omBc)>tjiy8fu_*s485l0TYCCn$N<s5%@SfL$MZ1ujLIpz zR=mvieGP7M5zbFKP>ap1-yFQ9L@{>dNj?|+g=IV;zJNKKGu=R3%xi`4e=L1>IMx6A z|LYjXI#$^$QnE7+A>$n0k(Htd+2Pn^6vE+TM@sfO2$hwYO(}aEd+*|y4SV)``h0(X z_`}7)<?_1S_hZs1B0s))dUJ&DdiWmpSUxKybU1eI_$b9H)pqfP;aV%ht;Q<@=`wmA zKJya7jY0pI-XT&ej<?(%kgIO}_S<l0KS<ViC8L~jTP><DGBn+OIj#>KubkD=xRH-m zLmbo5Z##1`EAR^qZd_GPAF^!`N3ZWt)w{#|+P<^9Fbd%WqN+Hbuzq_jg$d>N-e16` z#kMNIbs35Ttn00O5R)U<$Z&RVHMHTqtS#$o$X}k%UWcc}DFJkpZMN+^7P)PD(@dA( z;B@iZ0vj@@{2IJif@H`8G5MOP0QK6@1TjFpaCk;<P!TC17VX5aof#s>g|(|V4i8Ai zbK`v8?#%;I#SF`Y`qhOuz%L8(8J@W75>^*l;u86-2}j7SPx^A@(4>hU8Mifc`-)A- zS)7xPkCMVgFKMjL=D5Bbhg?zY=o|DU33%OAtX-@8j|y@^2{$8Fz4+59j9A)LZ3Jz$ zcyK})GYqr{j^XmF*t7DcTIB}WnKcM`mMlw(Ig7!7o(Fv>roxXKyR2^uAQ16<D0OE7 zZU?K(?H~Q5SUqkG#Vn+5AS_c!Fjp9FLNRprpk5Cq)P9#b<l^)Z;xGV}phX;DtXP6g zhmP1RmhH;zdR^zz&P1y2+#Ur92p)Ra8cGWxb0kn%E}Sq_e*!HC+^>wWJB1+HAjyq> zZ;0cSBPt%)^v^)za#Oibi%3i~OOa?b)5ZuyIOq|PECT-8MH%8NbrujPk1j!{8vq0) zf+UkjQQs_*o27QNy|^ik-0wAFf_B(~``&yF4sQKrj}QI&3o&rUr97RQ);wVBuNdJc zWqBl>E3eZtNBOXpaCtl9m$!qjxgUYXj}6%%E8WD*hD29{DPNzaH))vr-T_0Ya7tL& zY)<eBN)Y*sw<j_V@g#Z_%<6WDm+nK{G|aBME@TqK*{XQ-7|!{bC1EPz!^Go%<k;9N zM-KFsla*&57yI5TVN3#9F3PKpda^^@yie}`>#3KlJoKs5cV8PxI-P$d4qTPmmW1fr zA>v>0x)7nzU5V8sNE$g2N278bRW?4K793OCB>f`fLoMMXo{qM!XYSz~`zI2<B0~P% zh?jwbD(Z@rAuou<wY{%qU#?EKw*bW``9Ejl#^Rh3Ed;rmhD3oR$C|oMwu|Vzz<mAX z`Rj^F2!_oS->Xs%!{s5)e~rIKJi5*b3(oUCX?#pDxcZB-KBLN*G}b^}Wz%}E8~Z)N zgX`yHuxYKn^Fw%C`$8`J`zKGexF~MQ7bo91{f*Bln>!64KeG-qNZV+3Bnf4s(iIVJ zF8@AXl)!2<!s^-h&6YRMyPFCTu-iN;cwDL-$V*}LuPXKV$j{!EKf`{d$2>RU6h^Dw z6(}oWlTAvRY)ZJ*?$-o`pw*73Ns=DT@yuuT6kK=m;Sr>r)Oix2k)y~b5n$^4=w`&* z>fF9;0cT>^oq(a|stk)V-{S9_oNmq~^7Y&=bYi)67$U+Ynw*BCPuVG>-fUZYsCTih zAh!Go)o#b6;Kd&^+VmbTSj{NgnIw=&!HqjJbB2N?XZLgHY*6_IlQxeDefN#~4w&AF z!n#&qa=&LPsA-Li$5U~GD>~G<-r^6Uy06b_$0{ZsJYIadea&5{6v2_@t8u>_Up&+3 z|2Y=Dt;(fRNmDM1;1I>9phfH}J)9SPg2!9%og$2muce4#!Vitl0g_1$f;tPzsSyoc z`RDB21c(Ki3?9Hq5be&jUryEUk0}=kA4V3!WDyEeoc^{1E<SIy&ywhy%1*5N$Fk?j z^r<QiD;)5*ta#TTCOP0dQRiisQ(trm#y~7agetcdG#-ca@u2@*f`L{D=k~a-11%t) zEbAW^REZnNx&pF4Pz4&GoDxV&?v1KN25+&t1VKk44*nzrA(>fb6mGAYf<OkkqQnCy z#@7g7$rx>ZM+=$!170-L_S;NyLhitO7;4Exk{m>W8AH9x5R&C4Ie~3Ui>9Qg2=rT8 z2nAFFQ!Whj<bpvW1BTWq3M2p-!H|0(5-5!hR#~CKpABY!VHCu1tVWG54x$8VP@qan z;lj?2k3)G%-fK)SWMD~~{ShAYx*XF0aoB~2$si>}?$%%^x53h%@iReu8}Hv65Wb9x zSY>bNMU6LJiCYET+AU5lpFr*Rl#y%z(6l*wYK%(11lWzFuT5a)j_;FP=~_vO-t^PW zo?2c2qV(WoCE=+9{kIsuPN1@WdGUwY5w?q?G}7Y679eCdeV^GGaOw9v71!xi!UQ;B zCdWD221CaRkWC{n9FMk+21K~kpl;cF86rxTw%gB=1)N$ftiM9r&-GnIO7HkCe3>3x z;`tT~L-Bt*{El7iPjge3RV4am?b#o5_4ZAvoxOl@qsDXV(O=k4?U255?LD*xJ;Y}N zm!?y)W#?k^cU--ePvzEH4+bwKil0hiPIo2V<9jR#`Bh`MUDXaO-P{(U^u%Rk=XB0+ zb4o(>3*JVs{dmAp(%rWHI%7X+m~+uDgrL5IWvZtNIUYM!azn-N+xE+bkbp8BdG|xA zk{pg?a(7M*17v#Hbl3WiD{@-_|1ertLxkSnST*m;4YqV%j7noy?IkbFp?aK$d{9l& zel@AAs&JZcVNTSpN5@3+8qa!K<E8vW_x22VkFSR06UNeVLT_@*7(?}N&x`_fC$4@L z@J*RCaxlEAhBOnp_4U09-^S2oZ|17Ek`AVK#5(8B+NG#6Hr$rHROI(P+nxrk|I36Y z$eJDYKZrn>czRDb)LGu8RM2Z}r-7Rpwxk)rX@vv~`yTq)9J}sQ-c)<JL^;(cwXo>$ zr6SgFyEXajCr()U-Q>T{@=iw?vR3Bp7tU&ON3U>{Y?Iu@v1n-m|2p#8Q(4J<V;Zx+ zJ+05*eCXMdDpm#iYu5M&Ivpj02g_Se5_UDi_NZF*hq-!Ziu_PlrvenZYA-EzhgRnf zg?!Ekg>{FDx_c_VU)56HkN)<w!>)Mo-FLNKUbm!Gu1nbohOSC`Loc$NFE_hh4=AV1 zm`^b5!rwa*=*IhAq@%;AQQ|q-DrK6ON+FP9D%z4j=VnP5MLpY8=$9l`W@Z;sKeRsw zRpm!v#J50#?g3U66BblOl@&p2w44;YRyWR!y83(_iPp*-5s1LW4?bEI^}uxE%f#q9 z0QTZ?a;5`R50iT?A*1lYvS!{`Cg5uUhIXHa0z}b%g+~`FoyJos$OyfNIvB$xaJRW0 zQ9LFb^LDh`h4fYHffU}GgKR`uu$ri4UAl%Xu_0gtt9=pPl=~ETvni4D$|wr#nPXiQ z@QTSiQ6A#}_WD`y=|5GFq!`iXoKQe<zC5&fmctE3$Tp}8(YRGeN@y_jf;g%+<Ond# zu?xUr%D_hA4t%VIpoYmZmjrVs#lQd<YhwZpk9zi1ep{U0%uCCJCc^;t@(x&JKS+EK z#kOg|K$hS%gn#|u4Hzt}JM5ZWpHwb_!Ug9TVu~^b3>j|7t6=CJ(0!Q$!Pz@+x=e^q zhctVtx+irfWNy(9A#Nus0g~AfpB;p;>eVuHwcw{pn;lr`I(tOsghf{j;%Qeclw~}( zK4)`St>U)K6(+>gP3xxe-YOgXnesO?<k$%Cmm=2VYqc$c(ezDOk#!2vL4~9cciEFq zvPJ{_Z)yk17V=|?twIZEaNB=d%^||)n|Dt-aa#}1y*EUwr$0UD6IWtbTZxf@GA03| z6j)hFDw9Gweag8{!7us>O;2Mstth<$Wu~7?hulqPptj-&P0aNA@TalwAdtbVKY!>Z z43!2>>h(~|piFAwcod0WY{cR2?~U+7{Htwy<(D_+Vs6Y)yw<v|m?1JO<FJ5UTen~d z32b)X3qNeZ&mlmR7}b#(;cquj%g&F^M|T%I;2RK*PLrEFS^aXm_3KY%XR`1AJ_|b` zpyOCN{Dzv7nVyr527kQ$C>TK0T1s4SvC9I&HoO;Oc1PSUzxr_H(bu^ro!$zM2?~UK zY+kX}Aagtky{^(5EmN<{A3X04e1e-^G#O~~-^^M+k@ppxXf&PV6@p`OMpA#=ju(+b zCuL@{P5$&I)V{o=a3gOy%DrqrTU<W)p>fhR&X%0%2{AsF3ys+&J<+x;WrKS)BY`Rd z4DM1+p)b4e*}~V3O0`#c^1Mmpb<>Qxa#Q$nX%acItTOWFvKCQ1nDIkc>Q&~tCmC)H zm)c0)T*bePxD+<`=CEyr;X4X`oMWBou=6Z2BhhbrSLikOugW|lGfD0|T9>y%YkqOo z$CG~rR|OiD8MZE15^RZwO#R+$UJtt9jt4p&sO#{-KipZjnA5_PpKd66(7$eXjuRJK z67ur>n7*&iVc19e(X8xniH%!k6U|e<SUA1Xe=614fc`6faoHyAp&nyTMkzHsaXqiV zf^|D*$tZATUu|lXsZhBMfuX=xAUMV*>ZLF)U3gz1J$SK;9zvmbxd6z-VjPTqPw>*& z5={P<q@X=xiHYEBsoX=P1`NJI7qYU=G!;^%#y|LKt(^(?c;`C}K$fWl^!g^3+-<EK zUz#x<5aofI5CLu6c234IcQw=!*pRago1J8vY?a&76B|Co>f_EKeQ$_rj|m%ztx{-v zhrbJ{c<-_ax*4(zF{PvCezFXgb_9OrWh`H4F33<Q{b!JZpBw(%PmQYg5fmWeAfg>S z2Kk`U4w}hw1sjINNF^}gh~L^H!*g%W0NNySM{5wADM`<bz_@6tq5wD4B{Ed~b}cC( zw;UWQ<|#mJwfgU9ta(%=+95lX3AJtwDk-J)sPVO);D#ZvLnhbmBo+r*Z5l<G`9LP5 z5tgAo;JkPM?inEP&;`-T(O{`jw(<AKD+kXwC#ad5jMcTYa5r@p8aAT9wtWHd9cdh< z@Zkp76uDRRB|s9n4+4<nSRSerYX)h^D$>%V9ZnasPuUMS$q1;yacXze6z2Wa+ai^{ ztie3)DE^5F!xshQfcoj$voH+=<q(`BXU>KBd-f19kgt4sK0x`{6!Ex5dhH?!s^SE1 zO+0&Az}sRw)P*z8KI>`?j7+d!5f5O#|DTK3^(@5E-j5%9Tq3kmo;FXe(QTN?=aFDX zd1D{i{kC#@@-$ZUD;)B=&p68H<?r*;!|kUgWu)EZaEILqUW}9b+02iVV?h#P9LwqD z4t0rObbG{#hS^I}$PBw29J#mBiK}JH|MUK4jm$+ae|Vt%(827+$!XsS4nK4=w^#pm zknDu}54RVTAky^Jul_~SW+@mF=-vDI@?&nO#nakDm8(7B^KV8!;;`L>iA&4b(Ls;i zJ&gL)6%fb*^O8_*=2m@;W-Yao4(5YPvOW&~Q~H4VTbi<sx~6;vv%(@X`)!?y-wl2g z=@OxA_dkd{9DgX4B+ucQBeSYX`*lrP*X%v>V8D(0ltjykL#fb~KN=@v2}}GR<hO^C zl~AKa+S+EvD+=EwTQ4WvuGAU|)Y~(AUCQQvT3(3d5ebR26&C2Ep3MksZx&`+wHArU zPEo{4W;9NI@zWhA=vXP>hg5^Ko>WjRacy_a8R@q)9^^#xag@1ebLvjlMRtE5{SQ1% zan|j^`s&r(N$8biWt_(!Vwvl^<cT3XGiNeO{ZI+-^nD$j$!B{{w<kvk)+t>%+R;B^ zzO<$|6!<(c7>k#4mUo(|r@T6HMSJN}R5-I9@4<BmuW7y@4yTQS$$Iqt+M{Q1_=7)k zZbu)GYZ;zgDk;oToUEc7zrT;(-$BUv8%C+U@f(vQc2>~6v)k^vBYx5T>yxUGUvRDp z;UQt;kxFfwTbNXF-NiqQp)6%TsQ&w$FZFZy?B##X0n3$+o}wAUN6FbQS1G$M!jMi^ zZ-8P-*>B>n%@`;+T*ow3rz9}bE01w<&-SN!@V<OoEs17}_UuT${6w9~L{QBjg?Zar zJ(`KG2Z%#%w%t+*!sOR;xv!aQNE-a-#{}x@gTb_DuE#o2*<}Ot9e8eTSBDTEDAnIc zYr6u?<!AFt@Ka2~D_%MZJSXpfIf(4w+MI_JLTjsQ>AT4?$h*RUs8rw@7uh))a`?g~ zNPw6K9gS--f}6uXRW<G04A-0gK?AHHqakIJv9zcg5*Y3k;u^yiJ<6$@CGe#3+%{JN zFi6j0rGRSV4N{ayjte+u@+v>GgJ{~x3#j!sH%N(2F`EP!^1U@F_Kw~%SUm>yp@74` zKSe>-=-H-QP#Q3#>~mqOEo?XY<+kNO*4GFOvlm$}=h4|M6aePO)%gO5W9|aVlO@#^ zY$LY(SoLX&>Ld^pG~Nq<ly6`@AUq(B{p)n7sn7U+9~ju<?mQ+ZP!911RNMI%ffYn* zqyJ$5I9#rrzrAyB$(RAnF{0Uf_D(*+KyI^yGcY9$sCENKO~q!6tTHwI<=M&D|EAxK z2a(!}UzWK7KLTm%m35Z9ePhw8A)gD^LgL?`TRRj_0`0aIjRYW!A?xt(7)t#0fbTsZ zNeFX@re6yRa@1e`uY%6%F=38k;xpl7Gxk0QR}s1&{_+`JQ7vIGclK}Y?7^O>HeKrc zOIhZWzF^TQy{1DC#*eC5Sr4-N3vCs54*HyjXN);{*mj1@vBTGM+5T{WINC4r2;V{O z=}h_kz_aP__m&ZXljOLt+u&@=e)#?q)U|Y65m#=Pnt_Wsav`kw%)Q7GRZPKwJ_pHQ z5TdxQYSm)|ejEC$L%(pcbFakDJYF+XIt1AXS4IM*Sud8I8}^WuPMPzzvj3m{1U(7R ziBfdmQiJ+~Yj34tHV4~Kc_3xNsDgj2?a(C`Ym{^(XRyt0%4>Z?31bf=Q5of^5~<AH z0_tIs_>|%PLgq~!uVhtTFYy|zm*y8kj%9r9U{us_YAOqb8lP0?>X&|+{)5Vli!b#Z zj(sEjM?030JVrNT*7KfcF_W9=su*37fOl&dg8XJ1!j*xS2YB15#CR6}-mp9Tchgfi z>iz`D>cCLi_el=wm+uK)@7tQXU?o{~>ya=e4@9ui9Y`<Sdm!LdAo5Iex_tvFf%&aL z`$i!8$`x+KbSnt?R6gcrmUWZuh8%mNK;^qIW8Jv-KFperM?<2fCoqz9wz37e{;Eiy zRl3o$1?%-p-1F^(8>b)q(yngXo}xBS)`t0<GkC0Q+ZWz3^<U$AN4Z!bdD%@_k-+7% z8YP(`cWi8>RDbyeHc7j$!cfrO<g7uVj4AEHOt)n1%<dm5(u|?)YLVJbp81efy@UT& z$jmADacwaynoeDKst+zd%-AbI9>rrq!-z+bd^eu`8``8&1SjyQ5AGoc&$w*T>(e2H zd9+|`qhLykHT+$74c@yjApy>mbqqa^;(Joyr<dVR{(L!A`+R+n!hGs@ix#m18kDIW zZ$up(>Ly#G3cUDNn;rL0Z)j2y^H~u<8)Fm9`!44fkDZDNNa~m&Vh4I5KO=a?;14Dw zR}_^3O)NdwI=m+?nNm}{I{h~z0M`65Wj?HWE13#27Mw?ah)a>duC4fWYL&oDDAi>S zGFd6V1~tZ2n!%88Fkt*rCz(+N+UDVz!2$F%D1LK!8er>}xz9J{I*J^$KOTBSf!Fj0 zm?I78Q92k9e~PYoG+Naw5ItE?+wLI2qjVC&q-j&*2X4LV|M3;z7U4s!3=jv|#MuL= zxZ+bc)%{sg?3Pb`MMZ@I|FSN>2*5wNIqJcQB1TynKz{TRV5zNN++oq&SUaNh=kh91 ztj~_|X8$+?M0jr%apzOsWo#JLq<Y1_%cm1?Ywk@^7zOe#sGE9WP_f6WI0@p#vRt;@ zQ5D3?i@KEfl~V6{Ct1m9-@TKhd#p_xX3A8zx;^<4xgH;=pSV~B(Ye=J63kAjZ_iRn za*$*5d*$C-4&e%==R0U}eul$PYC67#prFnq65TKI>R3cCM;H>j;&*n(9=xo;A{KvG z&wUZvnaJ?S_6>7mg6axFDbzN<6f4`@h$}ApZAk}lWcS<qv=M#;_B=KBo33Ky<)njL zj*bdK-E^8wANsR9!o`&`tO<fwC?VZfp7@bVxQ7m(gs&Vpy6@SXjC%dqk7j_7{}nx7 zZk3ZDUN$F{<W9TP)_vWtFk(PZa%VE_%c9{}<ze7|#~=uZ%jK_E3CBVC=lflO%vI9w zExXc$)9>3*@an1=awX<Vi*(@m-iqe?{b}Yw75JE4;M$doSN{<6mXTuXvt$!WnCp#m zKDrU?CYKZSIW2FsD<f9v8~>Dg6aQKyrPIo@A;_g1)x$dzWlf*ljpTI5s1qI0&g@Ev ze!08V73Ge+84fYH|6UcfgC;6#vbw+A4athhyR$jMQ1QuIZ19_Vn1QF!6%shkC$;Tc zij)%v84T`ndB#Um;BIQZi#{Qp<?}FgykcrOotL84z;ovKz79TB@1GTexqH$Y2h07@ zL%&$Qb;N$bu}2MQ7P^wCFX2k=P(Bk1%punLaq@QF9vI{Q$p7Aw5SJ+_tXHzb+@9Wr zy59P_YRW|tm}u$0u`=a%pK6xe@n-qh#mw?$(c@A)^GcBj^~sPNZP@7FOsRHk!pzp@ z-qi>tJpF~_*To{;k)>J>G#w*<g*3c>AyoenhwNMD(}^o4EyV9FzVsm3cNW66G1Gf^ zg1e*9$><)K2R26VUhP>?oWRt`)Ql{+K+F=V0d|VsV5{Wp<zN{H*M}&!+Kx4;2Ibs} zH$#Qf-~ehcN@%R6CW5`cauF+vTQ&qiG&2N$AUU1?etWBksxB72?(!R~3X=pCA#Al~ zl|69kCjkId23_EyCqPty_cAS=N)iEj;RGiDOf-GN>f8{QJAvHq!kdy{Rz9day69y# zc`%TIuV~o`V!+OZQz=Z9zuo%;c>!YVTHvrGK@3)zsi~|6Fw!6v>}&$MzP6H#VDbFV zchwRZQVg9l6@G^5BRlGqdTt_=I=+7wLNYj#Vn;1(S1Wo8!D8|22@6VObHwR_>C5<A z$1W2)9GwGT2iTZ>Bn$#KhL}*Eqd@frBpS%&MF?3Rv19y-@%P;f8P?=~<ske{>M;yB zOP-mv*gYoQG~%s(XhDJZ@B;ZBZ!6BJ+&9s6K|l-wL4^4Vh|p4Xo+UWSc8X}|rup>e zne#tzl87>)rW!Co)wv_FuH*!0k%$D1*(y2&+0<T|8g>WHYPN^`<b+QZmaoB<QPE51 zw6f7Z>I^m#SrS*h#I2o>tv$=<a1A>Kjh--ZIVo*Ax{?<!h*p%5%9^w#=^;c{S?{L9 z3moQYFptdXHBl8}u_B1MU&ag_w23lZ%=-1>q5UWy;wp8sicEuY?w&ov%GrnksE9ke zL-8?3*0uM7=C<jOI^!v@zfDr$V%h2hC2G!|GeA3gaY9@xDmn}oXho2re^{yE+&dDO zP2cz8lu$23{8^v`WM!Z4y_^K|q9XGey+VArBz-FBm<8>JimO;<u__8HU-O^`Z!e05 zN)V%)Efo3L2^RkvpfAVHA=(PW8O-6W|2o$K;8<BkWU2GM_?ZJ0!tYk)K?4n>YifI& zNv!hF<HZ$BeAB4eJz!rt-v2(F@S)*Z)X}M&Pc8NH(o3~m46JQ$IkXeF^4{Ok^m^u> zajWhd<px%W&rLHZf6dP-H8u<U4cZPRP0MqO*%vUA8weCqHKgB3v7Z^6^eR(b`gM)k zzVH(rx`!;*(WJ<|0i|{|ZO7WkV=%~E$BD`=KEpWd&V=n~d#`xcqM57T&zEy&F62|8 zn%@M{oTHK#CcGjCi~c0*T4XnxY4hjb6JC2fCjYlN%CIx{YH|+sX7O4>LN_U#cGcW0 z!TiM3_Nb2~<;wG?of0L<_C<6i5*XKvkGwyw$9J(l%7ne`7v5d29$FFMimyb*8tP<; zdK(PJWxyts_~xxa%TudK;bBac7w=ySv-#40m2vR9n3{&@z}V|It}HD3p~Mt_sjj^- z<jSi16`75@LdNgir6xYh-CnvYe2LvPkV^=c|MACZQi9y4k3haV_S1>F<nCjx!+@*K z#_7~|@B;Ab4f=3h;xvfbnMhbHK}^ob$DvI<pElIQ1f3pvo1s;u&S!*x*wq`~T963v z?AxRmKxXaufxT~dhtNAP<T`sk;5BU2*8z=+GdwGSQj3Gp+vb(J4B>R8^`%oIWEr#c zmq4k4JiOPC0&f718Fda(pV)yzF<~(^Zs$BoH7U@C)M{J@cmp6rT}lOrOoA4-Q}<c{ zcu_Hb0Fu9)Hwj*^V}YA)@80CUrt_mC<7%~rOGuN^++gdWpf!F9BJSLGR|Io|y)qi1 zAPY5$;ATazeSJB!*s~lA_{y%9fN{;t;DC^*hn&!6hnrdJo+F%~m9h>Yorb_Q(NnUe zdh4Hf0dzEXwmAnF-V%CrR{e}CHU6IW-Bsyw8Hp?8glR`Q)DUYC#8IC}O7Ka32br`M z-Oh5so5#1b6at2p{nADRn0ok5h~Og%p=@{)V?YN(De$D3y#2tB??+6xlrQLWePI2+ z$w8$4pKqm_4I;b@1i#FNPRia-x5~3T$AAvKRuJ1Jwd6&1EX{HO&9!&kv39Dz?8gCX z74_@pU_OX2>THz^>aA&yUcx~Ewq+3Lk2~LPZU~6%`{f-W=7{D+$Xa;{kTc3PBwKR- z9;eO}B{O+x&+qL6b^Ax-c`&@LY#cyWI8y)qm-G=a@N@;jk5I=%*h>(9hASnfQjFQd zuj1?uzvPAA<KsKJ#}$7YNWM%0rwhw7)d-&N^`33bJRd#=EzI-X`FEeV`?Im_#Lq6a zCX>Y=FfSpV#@`s%5AXUx!K`V+fhS?&=~Bh7<^HCuxoLJW#VyrJK>D;UH5^pZh$(Hh zao{d3Uq8D*+c$U8fNE+ubiI#J3?#6tY^0yEePq0#S=!8=3gK@=-;e3txA}oiyVJ~R zb}(~=xYGHxLfq@<RItreaVz~$PI+5x7>GPl#7`X@0_@p#d?+DWu|^5<3o%S|5*P)% zjM>imo7?99R*rUqib+ugKcZ{d1)5??c+~SG#C=B}^T)rs&sa!)Bl5&+@>S2YDTTNT zuSKJtXV$_$+sD%OZ<htKQtUJxrpe}C+pIfQ-6{MnU+9+MS$+FkiN03HtGA5D9Iwbr zy>>=z9~gxZUVKj*rb|(OAQ<1clXUg!@Z%(=NU;O|=d&$3IH?Y6VcnYaSnHcx^idWL zvX|~?u&Gt=%Jb6|k-WCJkGNx&E>8aa0Y}5$oKsv*OXb5n14r}xWAm}si2I+FGtQ14 z=0)`<u23i*<qIz-94A*?+lD$XY$FfSWDo|@_4aSCrVdLULh4yaq7A1dacxS)h)--X z{$(V=``dE>Xx=k_<q7Ob`fPD4Ic{f_sJ!;q;<cMRD}mMG8GcKAMU;a%@x?to9)g=E zIfIsOT@84aj4wNTUI`nuq}^BVSe4@9Z`i$zP*BbjDQx~|GYP+w*?aFKvBqLQs3fW6 z&NHQ)7Q(fSzp-vD0LS!}u_e@ybW34I-M&2dKmvk{Q#|e>zQuoTq6O1qmd*!}su=oI zw5IZB@?PsOka4)gd_L_(q<$9n`8k$}CXL>RM4Jw^&;pICK1dzioPPoYAPn@jgbChQ zB;|!j*d|VH$0wF_ip=A&FU4LNj+B^)P@usNxc4VYVH){eTJg1)wx-C6bt~S`TZi~i zEP<V5ooy#O8DC+1=^W$;S(1hP!02(l`BwjhvE`BE*qKqjJ6Hoa-FvQ)5mvJUy#BY9 zIJL8o&SavUj<ZPc>vm-#V7xes!Mv(vNQur-Cfrya-Ou203{qP^a7$FaL5i{W>;w53 zNwN^8Pf|O}g~Amg{4=Zs%Rxf6%be>37pS*>k=wr}-~(|mUIYp->zm-_Fo0r~zQQoY z#6lp+0Mw;%E+%`>o&sOS1|ZVZWj8^r0GA#N>Bo7HPzZ(*(08YXl6k<|P>KZm6KW6! zbQ{9NEdt_2ITxB#7r<8c%W^@Jsl~5PS&aK5>eOA~g3^xw$x74-1P&S%7&dI5z3>-= z?3pnJCj3VeS#D30w!DnCcEgOU-@&ajlBjiE`_O!UYMHd@`pggBa9Ct{1Eu-T<3<nT z_i-c!=Dy>m4P$1)p~1!om&;y;Wj(wgJUH>v-hm5MM(giTf6s$oUr*&7cOB*`|GsmZ zdtxalaq#@p$-Ae1{vD|=(n@u046uE9Eg2$>9GQVKs(oQXFYh9R))>?$F!+9pe>Et+ zqr;8kL+8=$9|K&s5J0|q+3Re1<@<XJ7RDW}#q3Kyf`;6Wo+(hkT_y!%`WaDf`}|t7 z?5-OKD!h!<()6qCmB3V$?bd_i=2CsmymsSaLg-NKNA;Q`j;qyLcaN+6{xx2)_@esk z6tF{c2V)8YRFEs)GQ<*lOTg4q%k(1$Mk-EFV?9hLQb2Ebm7(pmwlKXlTtqZ){!?ml zu-_vslM4AysZQx(|2du9x>{y(QQpB!j+K-<{_4luQ5_Lq@W$4!HJOCCK1)uRQ7aXG zdYfeMjAN*@{88Q&UZVynUF{P}`{KU4p_w0Uj4H>gUf{AgZBOkqUY02dE+nmt>R+V; z8%0@k3tn@ASD;m}yF%>NH^UTP8M*pLvPD8{m3H&`u~8q}CzQPB_cDBXk9#n-(T}(T zj`aU%`BJ_uANG!<GPLV*5FXUExJf8b=Fsoa92nqA`RgSi`ME|4<MX;n0bdiZ1ru57 zUV=Sfp}OC~p;{8{NjX+_<XCvQSW&@iTOPjI^HpH0Co1yrKcE=J4H@f<>X^eLm(TFb zbkdOvDi5yf3sSEzW^7)bk#>2^dXP)eF)Z{s8Sl4O7DHHZFhOn(0xgCnoE8C|Z!ut2 zabZKIWJqCVsUW{apGI0-_1@z5XgIvrZ)a=88|)(YL{xNj0kDAqbc!{jNi`=_2}sSo zcyOA`u8C-LgrRT3i*F=W=k0yLPm~K_#HN9K+v!*Is8j^MEn#&iHb4UN24gSj1df~W zoEcYJ_R1<*$b@RRWP}nhvTAUSAm19q5kZ$Q?m`FPPTDl(M;CX@*>{?B2@^gwLR`jB zhS>DebP&Vm@BDvhqk{0dpF<>K&;8Pcxcox~+OxiTRF?&OWQxu8K?O<9n2-?Nnhx#s zpwyuGNr-swoGUrQZc*cB+CGvJij2n~yze~|3cPod@e$xd{}nsap-9n_sdg~r^($Nf z)fuuhc#qd9z(-%fEdYQE8#)jMD1cqoHX$P%6q8_lMC}7s2d};i)BKY`3M#IFV*6Z{ zKDsT(!uACQ6@TVQ=AikrApCaSY02g`DYkk6j1)>A+gNUW7!vzSePZ}L?<>UZro`Yq zO1z8MdB+<VAXSo^7S4<)$G-1jQ?$dD5&%1~#zDOg$r0J497f4Yf7l?7UGONm^jA7e zQh)u`;8k$*C@|5aZpyT2%HYV^dU3k}`nfQ|j(HwXeP72{R%~`veC`(-l+lb>ecN7J zQm%Br@hn}ELET~KV7W+0iYPT#t2#Jle>;z2j9MtO>E6O>XJc)sJ_6LwnFkmOjb}yw zpdDHkabIDy#>4RJ<-w(2KToLzhRyk&eup51v#0*I86RW?T#DG1e=n-??5H=w<oN|% zLPnv*JrMDE;6W04n+QS%U-5f^DbN&sd-AOQ%<t2gAKU%Q4iHh*%$m4sEe9cUWp#km zgsKkI3Vx~0BEf~7veOYugPP|NeFAbbqjPj3pXUo_zmBF;K_-7;i+XpK@_wxn%zL9A zXr=i%vkR|Xu>0~zpC;QRJE2whf>!R8VWOjfT{%pW@LlD)p)X}#FjJhQlXaE%K%J)v z?aQuZOTn0rAqL;K)Bb9m#O+?lrqn4IYg`+D#V-y|`Cu)2Ywf|JtZw<&456N{<WI4y zq#74cLmNeHQ(Y*rmU{*CaF;<WP08zWS#?E`j@%EvlhQmcs}2L&5}4b$IkkB;3Ieeo zUTHdSdT~W$3yNovt*=`vpmJo4$STwYDZbBmcco|ghvT(a#8XN|idKS5OX|B1zl%GH zyqA09UoY;yCYUAsT}Y3=M%RV<8)4(d?%j0*S_2)P>q|E=MLuCp`=;ZS#v!k&SPHBK zpS}P4<8Jy;oKwGB!hFSCP3)C3gEs_6B}v0qI!|ESBaww{u`<^A;e+N)TrG6NCs~eN zf4^z7;%G|E+HIFA6bvZ01n*dzsJ~f(iSc)Sudq2JE7j%3wb5Ajf}Ebni`TetK93oU zrVxIvmISg~W4LbW2SFbrc=1oNgeZlJm7d-s<N)8))tPe+aqYxcKnkZ;z_k*Kb=5HO z;(&v>Vq4^Lev~Y4S|_4SyHi2wO7X-|^$jpIdh5&K5fvgJB(Qf3aW3qbl?9VTv<a-c zdOY9AiW$c-y$FTly#P{N8(c~B;?B@&b%EoHUIF69qgW19eK<1QHl**#k6dYVGsqaG z{0n3EQrORh6M$;WZffVYE&+guE?HDqpCF}wK~R7fbQJw=lNujMIYo*&U9T3wR&O~{ z;Sa|u*ii*k!a$VOF|PmxxYhv%)!UmCyG)l(PG~;tbt?xq1wcJ_g})B0h+^}*zrZk4 zI_JFw6E@WNj8paqWB#uX-wnVp1buP>s*{XheB^v7Zk_@tGHCluDex{VWCT2L)=^J? zc@4wYIs+rV2!shUatHBUKkhmi!Urly|2IKo$%}GN#|)_(sUanvS1u`5_UfbIGDX*A zxl{{1+(M`AAup_h>EstnEFZM^NyYTW;MvP5+VtncXU?>HE}XrwbmRmYV0Ewk@@?h& z)XYy3RN6zgPo4|iePb3RsN6Pu<c{w%@9M5;K}{sIvpB<Br4r9ev9x{qo)Z77PfUr3 z?xy#H2;iUZmJa@AMuLXYiQ;_@QD*kacPim0F%*2yNg)pER>qx25C-&N>O%y9XX)r1 z8=<e8RvkYn^C)qn7V2AE+H@?cd0%!}agOubXM^z!y=6^i-#i*#3SY=-4^<y-TjzVx z_2RB=ka$piwGw{F_jDu<;pgrD$z<MvVTJfooIkUlnUTwqz;)1joksSxTVQj|nccI! za9_;s2xKz7Ca!d2SBH<eZulsz1wZx_o>w}djA%MLB>|`fBIA&)g#kk%%#sS<*Gp-^ zANt4&InK*OYUqgtb~Ov9eYz57*X_a>E`OiaFDGC1asu+Gy05PYU;Ghwt?a^m3FpM; z*S=RdK8MRjY4%=C;}5$tzyo=i9O<m|$-@sahY@6lA?dphE3$R*fp|N1jUT_RA?_|0 z$t0R|29B28G0gMce3;jpAn0|+W$kOFv9cYP-oNzdf(6cZITM)GkA1V1jLbIqofoR7 zh{?(2-bJdL!xxm9^D?xhzU&QtGvBpHtNG2=ZmVy@+=8!t>d>aZsy2t{ko)sfqEp>R zE=yS<IM<`QJR~dZnIO&(K$Lz4(~i|Yn$rsOlPV(@mZ*1H4MZ$4WtP%&#_d-kM;nuF z8|nQwl16)huXn}$8$sZW7h7Xww#@ID49EPr@Cc9o5;-fAvQK{vw2Qxs657o_O3M8? zF+54XMmx$kEWuEc)E2T%cb$so6qy|OQQ$FEzTS9(wKQ(I(9swkkmKBZwp;oXY!MD1 zVi-uX!mSw(=0oK4;is578EMRS(6(f+kVb+r`ChykiJn^7Lnx2~?Uad|cTxXSfM&vr zKU?*@?nuQSK0<?Np5ts%0*HZXMB1u3);ZGy31-^pz3+CQtT3j!fH(Fnx*`d@$&h($ za1=Hg!ObYF>0CqZC^d&$hukqbWY8t(#V7h4^GRX$E0@80#>Cajesp7Gjr8yUAgrk5 zR-@Kn0U`^85SKTUN~`@h1tL0&x39qQX_`Csl=#h~wdh9xIY^D3furX7s{pOK<w%O3 zxi}55j+oy*P6aAJu-<V42*Wql6rf@aCu)3<!TBA*%)9DIjb~+Lt$<Q*7LyWwlK>`^ zf|WjA6o71YN75y~jVpf-=4tPsbGNcc3Ca2A2^gFZ@`x79mK2Di5u|jmA!?o_hnm_F z9)ib`-&8G;9565@D?q;bj9h~kYZu=7Q3q7ouY;H!`FQ0iWnf@=P(jCc9#i~)!6j9e zajN%j3<C%wost8P@IuQ^1h&nj^|*%~-!GdV(6$NR?59K7{3FAL9VO}A>zQ~Mr1&W4 z!pPx~Hf0q>_Mcs22=l~o=!YEz<oDBRuF}zOSfiuuq?b;FT3;)Rb<0OHOXf7CX_;aA zkz;@prS4<0`vMz5K~c~oQxwB29f=1Vw`HNk?6vvU8pEkv%ZhBeSOu`m`Q1}|p2iHm z-3-D+?5*_PcyQKsKj16KAvuy>l!NdKZ_NGWKQZEC#+VJ1w_OoJ*rwk@B+N6trQr|s z+n40&MC0+ejpi}|tJf5?qt5@xu}ufzszC_q2|}|d6QWK}OfgMbteGelxeO3Gww&zb z?|%Z{PgB?;NF`6K5O9~Z>5~f_iphNMa((aWw$nY<u_1P`n7Ln4iCezgYnT};);E6S zbp*?Q+jPf>p?^Va@N$*3y}5tV1y8N$4qCPU+)DZ$rY^lCR~xHUyokCS`yrUk*c53s z^fbsK`#@y#YPoRLQECTXNI=e$YxxRDKGfdV38thYzOyN4DEZg)uK&U#W5xK`&g6~Z zX~%A#pT9(yK2$DKNrbBHXRUpRv~23K_~$Cv3G&3A8KEvHMQ&YwRmh?*+Q~7eL;3#7 zeWyG6(?xZ9Z~lE$O=$R$LhU)Y8!<n`F(Xp*TWhdFhPjr_#<!<M-tji_bAIB7qWOBc zpYq(UUKtKQv&GrGQj0R|Lc%8tRC)_EwrZdB56F;M(5XMujE4Uh;Tg?bfDejwG%(JP zaoWxw54Svm-^hv}{BX54xy?aSVk)NiLXfIzOIR_nDyin$%d8$lZ{z41my2KjNS-d_ zrYz(dU!;3b^d$6C;bhn;a)}c$>7_a`gl5|*?Y2vr6pv_?#LQkpN@M<$UMe}5sIaGg zU4dlz@jVm`v=i$cR=n(9el)#8OHt|jeBmAVnK)TQsu<__&d|6pCv$#0jI%!sR{~KN zAiysVVIp4yJhpWae51_%Qs{VeuF%@ZTs4f4iY@!!XfSOpIS?H4kwJg9B5VTh$&gew zg*}0z=LzbfS6!D6iaUo&f%bul0u+<~dLMudJ|1dyj>m$xYUrVuNG?C2uVXTs0OiDy zVk&KJFN`w--DlXjk~5VyV(m6C#L}beeRt517dK9s61yyYmWY_lUP**F{O@Q(#SKmD zs44Qcn0K}?FEd(AGZ|3n0`)Gsc|#`k00D8K;)HhGx`5~#dS3#b{dXha;!gp8>vn9R zq=Z%Sm-Rp9OTMc_`29D&fqJ2tVwPnOl04<e33W~rB->Gp;ZSMU-CzP>Ok>_8fChqy zalAXVX$5CYZLK^IP9bG!NHETK?Snvk@WncSi53G&@g`)Dos#h70LZ|ncgMfV9ZPrI zOfH|X*zr?>F!;x5<Zn_n%QnM_LC4sabR?Lqyz22DqGcw$R+{r%A-=M*0>dXLi(q*y z*6+q&P;)x+e1GGazw2qI`{n@F`e^%MPak3~d3r;~HDy_+n_L5&8^s}+?RoTd`<tCi z>ioW>Q0i?3CLU4CKfjN94h$(w8pc9psUcd)=dJgRv)!H|efXs?CfUDy>gKY(p;YZJ zvLmAy;Eh~4C-Z|#t_hQ6BPtcr%EvwphkgKlg^<DwlO5e(Gb9Q3^HiIO7ez{)cRTP# z)ko<5<22cypUH87D$0%0A=YQ=FnsBWExAd+M7Y4K6;)X;bc&jJdm%5VS*&JMm8WiG zFBe@{KK3Al<4c2#u}Gh#oq9&L9TSHjSuy2bB&elAd~t1FQuf+>+c6&vbEZ&6Bt-b} z?lr!Vla8n7Kc)25S$Qg<hXel&Jd$jrwq)cW36Wcpws%>oh~iCvbIAE5vIt5$B$Hlz z#%vMG)0_Y9CJnwU4kDD~BrR!}+>Ucj8eMu`rKagY-dF#KBgMFx?y|+%)-RDqy4Esd z@($Uzch}18x!!txUyP$mPi-%w#zrP&SM4;uS%4=vA#K0+y6|sa9g}}Nk$kiLF<RB2 z&J1Z{r0MnGwZ6iOM$l?0;8QcH;!^G~D(%Vh_MP<LfBPauMG7w7tq#{cVnV89%i5gO zX*-LW6j~yecn1gH!iJ(-6{<FIXf*?Gp_FCOS2t=RXLv%gFny$1=EPuBL9@>j@N7mG zL^7nV_ij+`S-I;Z$=dS>NisZFsN~Qt^c@YoD4!ZKLZVZTWUD+X@5C>Cvz0F_Ii z8sV7q#tdh7KGbxdA`Rb||Mc%D>A1zAl9E?*TekG0PN9xU4EGqToN)Bhh1J+Jn}VRP zC4q01$~H8)amz9uAVb`4%pO1wi2Gm**zDkN4bN2aAML?!h9{dPqPJz!_KkdSR;`?_ z?<9@;T=ftfwoOzTaqMqEl#SRqJ(ArUc0O-RJsHAD33Vzp=ZfwEgo2BfB{x>xKq3Yc z8z7DOy2TXz&<Uu(r+x`Vw9Yh&w7FOkXaz77k0n3gq%qu^3?ROSkM29Lo}_Mq#iCxS zsud_mgLWBUUS0TgzrTVy1Xo9mw_gV!{JP^co(w9#AjHvKeYrIV1jl8iqwQnbvOdvS zd6IG}{C5!<F{Ql5keTc%1|t1xM<Kj-_yj0E^PDOJ4v{r$;7ntwqC+iB*+In^5E2NU z#552-E&;~KOb|b)awZm-qrLOQ5_@47Q6F%HFatT&&!^OQv!_<gA;DvSMWN#|UiFm5 zE-!>B_*-_>HSRoN{KELIA9No0a6bSDX6!=?kkoaXgAX(<xIBx|%=(h_+7<@x6_+W% zF6`8@1G^c?#<+58HAn$nFWj?Vc7sq;-(JrHrsG&T4oQL!t~Smgoc;Vm=^R64-TFFh z2v!Vn*t3~30`BzNL{>eko@zX&XQk>;hhmMC!4EkK5u|Fm(bj(3*i9h9Qdez{Bbs`C z|IDZ!FI36|aeRj#8{N6r=%xn`c>2WM+pb0MmDFi1<#aMloy|WVO1y}O*S!|^KY>p- zSFurSN9tcbxM@tt<sY`ZEfl3gIU4LA$LE`8yMCxDhP9J<(Fw}Gy;`J<6Vl`9N$ERB zw~aGlc$_&!anfqPa6aHXa5t~J?ecPxKrT_MT(_`rQvCIQ9v=wht2<MSke7omPnzn; z7uM4jd^Coxg*fy}U7&@SSL~WS`=gVKiEZcj9wFT0UBBC9ES;Z<D!D4=kMC2-$6j8o za(NJ5S5Sp5y7-iVeTQk*j}zu~q8WS(lH$S&Boh!5)b0`OapPkGUm1~i(6B7O66UOw z;h^H(Q9OkAY)If2q~lad4fTp?IvmPjp^g5+81yhg8SR^t75s71JNEMHt7wC1-Ncmc zPB*oWs5cr#_c(u4mzCa4(n(CocjG4VzblZT-EaR;Z%`pn^FB5w1RZ}LXiMYwsPlAf z9217ur_El5RoL8QeQpvMvx_K@z5JAU^{Qxp)jx9s<vR@}6Wr5cR@>po4=AyfxU(B# zC2~LCEI)DGAG`zM!gh#DfqDGf5eAnePl~njbPu%Vo>>NHd({-4L|)@c{SI@ee);BS zlr2s1@<ML+^TSf@WV<8x+oWpGSU~U^k|E4`F8`NK`t{4NYM*f^=pl4dxw0IY*c5ba zsR9y;N>8KO@9#cazOIcZzQbPGJ-RX^^K<g;-Zh_L+U(8+cB|JP$>6#VJek;fXE@0( zRLvHBAg<ib(VM>vXbn;Py>`5>O`H_QZkErzS3nioWJ6Lcnlz`ND@N1B9)mG5Dq_kB z7!8I`ePpy=wiQcC&$)5Hf^MgB4YxeJ#)brN0stjq%s<kc3pz`3y;&~`r?OXas26F| zN23eQH5D!{{{H>|Ry4~_zY%@QL<)nfKbp&;N{yk3PsN+5YmlmY4Jm>GrO<cbU-3_G z868WY>%&&L5~+@oVU>P4ufCF*QRKdYp>p}E4uMB?@aMl5z$1EdkSW#-<|Ui76i-Ur zh}=IgI3F8M$8Z9!e3KcKb=!m!is=NKjwQi0+yPF2sz7D@CAV{0qX3*5C)F_2`bS$B z($RYuhB5ofgvzD(|A<9#G^mvJzn(ZT+5y9CQj-&E_JB%L))<&kWhn3y+GGTWEGHxd zNcdP@$X8jR->lOvWe(QW%sNCz3*(echhjS7Zu|xmMzwcY=_duht6`TE0M+T-Ylntn zW}uyvGfb5V>7^x}b|222OtDNcNFf}m8(JOj4b_c@akPAsB^MQjkXm$;$XXfDT`(9t zY#bQ3Yean7c1jNNj2Y=Lq90GmfT!(}#wCJhDZU?#?f6L%=8P!q*%8kY^`hQkPpv<A zFq~I<G?x+bQ{GOE^||lD9v94upk{E%mtghcmmaOw_oxsfdlDycnL0_D2dn*`wa2zk zfB*X13RIiCZKxrNM&9S_p%krpJYE_%?6YS_3<O@@<y%dwXf>_KH3ia<4s7gef}S6? z?{-khN17%!2z6aCdFTppp*V%D{?EJi;4d&U5+cTZHcFWog4RpS+6}4pqsHfU{YN*{ zmbP$sN#LFeoczLR0ff)~xuOK9pUOJ3&cGampUpMQ<}L)8bYBQdj=i+<{jVa@rGZvq z-{2rhA2Rz;Nk)QF6Ooivh<IiK+c~L-HCf~JOW7TH5?lIC59YPI{f6Ah=cC`Bh?X5& z-;isp73(!=i`N2jxv00rK1|m&$mqRIjQo^*r_A!T($z=N`hR-lUCfrDWmP!sxebgM zf>PS#5|1pur+WEnK=m`cnbrmLL}j2&9(`v}^o!u4g_*qj(zp1k%%-&D*=QNn>JQuy z!_VfB0U=iPU23`x^I>f>CRv{@Rleh4eW3U*JNnTERUJ3x`mF^^LOSq<#~^$bsJggh zOw2-CHNqt<|FaN<xX2#-sB>z6;x<O1xKZ|Y*y(y`WxR%T?eKh{$@-h)0_AI#A=Q@$ zMERFLujLvQ=^!?Fu1ju)Q=6||v3s%g*Ork@{1u(a#~~#1Uh&a-p>BnNabzv2#>G=F zn5J`ScMuh#PU=_EM6W|Sqa{+0>CKp;`%jn+>ZF~q(00v}-;$_%|E<`IM%C8PxRJnY z9fprjg0)&@B)lT#KZ!H|Uxmm493D{a4B*XFGp#MqV=%SEhRhb;@~%w>M1vFtt4%@P zf%h%Qjva=d6QF-ke7)!4d&socX(psN_%A0}FeWxrX>b4${YC(~ZosSppZmQe{A3FN zKsgYpz-%(Pz$~_sS4<0RBI-^OXdnU~-7sy(J50|4DF!(KNH+`OhI`+$pDViMhtwqh zSD!?E(d(!tj}{An)FGQ~uu_y%Jtl;cfb?=uKJAh`d<_PQ48-AewAfL8h2#Cjc!;RL zbE<iMl8ie41k9<#46umk{V<Wnj&@c9x|D7R!c#d;K^QS9u$T-fhKpiH-N28S^bn{- zo1BfI%|zfR^HBvNtcyfSuu0sa##4FLs)JR+=(iS*>KRDo>3sCm!x4Ofeo5(|@-;w% zw1NJ4#3FA1D6;IPf2MU*1WhLX2SeVt%JP8@SVnF@n8()hAJbazu}#A;=EZ!~Bzu4~ z{ZlOS$>!X4MiUv2BP9sRM|{PS5#04~x;7WbF$dIrJX2!#EEzr<y=(;E;t-^rb3gi| zl1s-YoP*OMMbS5<N$!e=P2vu?+_#_Ji%;|19=nOYp}=R)59}XIDDBNJA9=GiyXnQ> zQuP%n$u&*Du(GsGS;3cWn?~+^A&V)c%pmm;$AdEh$SWhj!#AFyhlU7u0EGF%nK#46 z-Np_CxDIs<DZe1D%s&kr6e-Vc4WdEJP+&8g$ATX|0TtB5y`CR|6fY*j3ee!c-Ityi zY_bI{3~zI}y#hay^k<5p^d2?h=<BPC57TtlOX0uKq^RpIw-_}^QCa^wwR2?!!8cf} za2*D%(q43ky1yFDRK{Ef3{kYIQ;m77GkL5^5Ro>@Eu*=F%bkqC5s^(MY+GX=SajLr z(6uR2fH>P|z*IQ3>i?5%bEh)kdYVmIj+)F#-GYg%ZZyT4UH3yX?q&ulUQxu!PRI)Z z*7r9S#mpG*SXiY9e6|b7<vXqckm`Gx{o6Y`pRc4%%0H@hR*n?7jd|zRh1UyW13_T3 zUG}en(Q1$Sw)Ma1>82Xf$QG<h6&0pi{FUK*HGKoK@!-F{s{^-2K4L$tPW?A8_aIS% zRbMBmu!M3vE8sf=ed?&oqC)R*nKlUz+xs_|tIf5F6xNue?3cIn)1)nA2(|)FTPkw5 zgs}O-Uq$4<a|ras>ce}V#CCb6sAsf=Qgk=FyBsxD@F`BjraJfLapzsXaX))7*)rIp zmi|8xuQKo9z1UfUr|xVW8jMn(gbRe~Ve~DF+^;E<LU*4=W>-)h>x|>0eZB2l-r6ha zr{`L%n}^9<cu`#Nl$H0Qp5fJ{*z8U6u<AQ<!8es2-IWC{kD5o|DXt;)Ky$@{#H~n> zqG5DWv;Bp;9DoqsPZ39*@z;bvbAUk2J7xutrnP)WjT5X2_b3C$Gl7_jYZSP|C#)+a z(FI)D^5=L5AUZ?u;N+OVHvcri-<p5{NW{5Zi<8ZZ)M}t)90;P)UDv`~*}pCD#>Os7 zDeT#Y_^|n162NE_$+hE>@k7Qp)f?O{dL=H}vhSSf%WYL+!a?}&xFQ%1{!joD5NaGB zy6X~pfqz|@ZO0tum59FKIjcqnR9kg?|D6%7@%xh-3Jcr7#99vd#Z@Ls60m9h<OJ7L zz=j|IraB^&?kbSiU-Hc(5naFj0uB{_-vR__X(<P^(*Ur{f`~^z_W2ncBr8i&yr#F* zj>92^JivAg6^E@(9nhiH`F_=P!!WK+<Y0Y}W=n-q6PeCG9+?a#jVNOKhL^#Urg8UY z1ptdIk$~YBZnha!JMz}zf!3j;7Yj<&I4V9_z{b9wA^NoIkuW6BeXKH0%I5iaB73kd z<Wh)RS356ETKH&p_5YD{-r-dKZybN@J<7-?BrC+RGmh+$BzqH%nLSg7W0fc?9P7x= z$QGiE>~ZX!RUETnllpypfB*DH;kr7P=YH<{eZSwYTleKlt?TGc<E%~twbzprz$SKN z1gxX%b8kHy8I<)mwGZw5{H1(0+-gf;GHqYsQZV|VQ4?p|C(%V6n8$wIy}$V35|AJ7 zsI-%STsC;8mw<fOcW+K8WdA$AYv`l95C-%FJw+DqPF8s9Tk7kQZB}2D^SSb#gBTiu zAM_ihAo&JsR$vAE981z5mfW5|)Em2ir(bQJOsFx{xdgR*#?q`$*--QI`nZ2&sriF( zssBR>u^)s49ff^CQ<UEUS40v54PbDI{?i4T<ftBSl8r&~>6BIQ6+GCVVb-X`Q@<-y z-hYd=zK48ePEvffAM;M!j%yf?^A%_(1dmT=*=l5TZwKUKJB%T$j%es`5GhoF$8H<U zz$dh%6=-`eHEi*(uGo;;NnsU_+h;Zf^yI%c#3LL$ZrR>r;p@U(yky!H^^Oc(ZT1Lf z-KhlotDbUBu^xJY9ZhvMNf==-m{E!`Bz+EVNt1GA4?0@|y&_#kif5wxUiiJ6{^)tq zM-RxqmkGwzy@(?*o~A~OOx??4YFtl2wd{~ACK$nf_82rw*cl1d{$bp|K~-EQWs46h zuIVt8sOJu~a!NAGB;}E>{5#E3&@LcnxXvXsQg|HDZ(~!=Vk)7wP)bmX_dR6!Vfc^l zisi4KrQdS^TCMjmBHCvLT_itpy6G&@j4rKPEu5HSYvIip;(Vuoo#eP<6a5*X@r68| z2vzjqXUHA#K<><3PafR$yGg^AS2pqjq@3UE)h(I|#fqQZ)sMaiEyhG`SQ&ix(l6uT ze!}@KK$G_=eeKB{b*Bn$<|?O2J9~PZ1J;}|b=5`h)dHO#>-Cp3COZC<=xgO4__~SM zL_k+<(V3d-fDQT$(xlh=!ALoGbR@+L`w>+ATDO}E3ET~dS@Xad@|K}l02RQ8aQjoS z$nl67AQlX50g@k>HQghvnEkX#<|Gh~B(u`anSkW=vQ-?{T#(qzMJ@I9?`+cA;aDpg zGkWmGUwm;+3=z29rUW?P_xkY=ZX)^l%*t+S+_UiN#~_XV-=#$fVa^4@-R?%oOHIL| z`4o5^fZuB1H}w@|XXd(q(O(e4185S7L|8=6<A|@ENX2scgmoS?$w09rxHCU>#0<h9 z#FC&(;adQOp?2Jz7|S+uRk_6nAZg|%r7H=rm5tz$`)MzMY~#HJl!)YY=pf#5o<aHF zmdU3MBBYLhok6l3w2PAvZQ5n(!$)NK(kr*DE&8Wfn^-7Sg$AFgV0~SIELrhGb?b`r zVqqaEgR+Aj8D^K|B{b)hceLTzc)1|u!qrMzTF+(UAK~F6#z2FCWBY7x89E=W9$PDU zzQCc(Gft2UJZHL(2VCe>kLR|qe<}Ih_lc0|1(I-y9Z-C3>rFh2Jf6ivq<sn}{+2xl z>c=_Qa-bgTQ?;SADQ`i5nOKxg6;_+yX~KDA!bx;%p%Oa4nHR21;wz8yTNU_n1v}iK z%1$I4qM=n79h?=bK<5zNQYeX#5yU<zlOP;zlO5nnSQ+Aa`I(D)d@SFZ5F03;+>+g~ zwqW*TMsjFAMq{z?LD%?N5<IiF)Gjf)J$Qd879T0)BG8fQ943Yve=O*+_Yw~y{Yb_~ zYWQjTt5a6B^zM)<SsJ}wRP=CI)+<5C51ZW7x27#58WMHpi1Wp6rZXy_pDkphyd^su z?73ZkY6oH;L2HW$$CgjO1rd{f7pYauR9@TzwMx^)<;iW!@_g1CNNOfEe%A2Khr-G( z{Kol?br$zB?@lUISnJ4%Xtnvt6c>Gto6sVW!x67ELg)e=Z2}hyWBtasd&Vi7#@b6y zrV-{F3B2)>GPb`pvf~&PP%G%RO~2FBvZB9^2Q<$LProco4X<T6%_WJs65sABx9&Nx znj!77rKQubEorpZu8%AhlM~0O%ucMqPURv`U&tG^Gz+dCd!`%b5$fwx(2RMG)aT=| zQL;3jy{a$yXKr}29GuDxLEit-Uv550T&~+<{`PgKIhv}YjwGHZu=JYIiTZEuh|+he zXSUHxTOTcRPXr^HumNEVwp*JzhuZM(>iRmVTTg@F0e|~xFFbpVrg|I}rVMo+xZAKA z20rxkESxk8^fDqBe@OJw*5uyH$%fvxXJSEKFFN`f0)M2$$*Nek#jSZwN)``~`E=yT zn(G^ebo2k2#=E;cW%Ep0Gq<%}q$2O==8kqE#8N?p0=KZhB(X^gqTs0YNe==PpD@%q z1Xwgo8MG3tU2x)xE@NiD&UiUCUw=4QWFwaG12R68k;&cAI0J;2OCCi(et8+Ij0xcQ zN!7^4-hE6RoLmJSNqII$tluTPW?PRdbpB`;1(K(OjWnxXU}ZXYX^|)avxh0t9wDg# zzNm$vQLX;&BsKZh`JGI7?XDzQa|XPa>yV2NVK3PLkgLU?w4eV0n44K5nYZ)_8%+W3 zlxVio*atF-zEFJcp@Yr}2%Zgvo)qI_=XNOnfwLTP#EX=eXA;0eg<u7xAQ`^>+6wTf zd~dmcjcFQe2%xyDfE4j^(iOs{6=lxrnw{-{nt+}H-*s4KGwY}?#g}=bepJGg2p^ZC zNT9sNr1fc47PJrwV^)FQ|4hyXwXO((ApyWZkquXrbGL!|PzJGxh64q|r@BeN<19;* zxCmnD1Tb+|zy@bs0H>A>WPzvJ9VnYcr1q-?Bjs|MQ2fa7U){5voe?R3(HUH_eE}<u zPEb3Oz{dnLRNw(Sg}av=0NQ+lu%+OX`zG%t0ShRP#0qOdau~a3BJZvc6G2uH>xFMC zm&aN;Aeg;0EZae_H2-pXxGn!0!tsX>U;NOAv-G!@P(`Z}C>wGOLs(%YnP#Jqw~r&> zG2W|<fpVyA37uCV_rFa?9fL-pu31v7!h?#o6c1tt=EnOzv?XZsXR<JlHf9ga$@bH8 zcEoox2ur%ag=n}U6=+}GK2C;|0>nLY(}GKZGA%?BLROX>4AUlJAuNUdTYLT(^Sr?5 z%pW~)&TjCHVfXO-z{EhOUg3WHIp4&F=Iz&+PZygd@%I~Poi@@rEFPiIOzn30dU;f| zRKWuleFonb=mkAGt%y2kZ(L73V`8PE<203UNpr$~-EyTH{4Vk{e{szDE$f<5f3;?2 ztKe~w+o+TiH9uG7hjfhf7iBYNk#i0C__Ftj{r*nQI1m7@Orh4UXB}TDbIZO_`<wdd z_r}Q}JgTOm^zdbbL*IK1kqi?8bzNQiz7Pin#_hlPk><%pW8BG>vnj}J{TF}9=7*;q zo@Wh^5%1Q><MW7|o5eSqJr=!PCqfnt-SxFT^Wv`9>g!12JDeyc>uoOHTos7@CQ_^s zFJutgnozxS7J#2iVC1=)W~G3uIkFSciiPXv#Fex+yt`)>9rP{mm8EV|^Y8kGVow{Z zdjU~SFyHg7zgni{E~C0k`sbXK=y${St_B$FzUaUlYO%Ih4HSx`q*^VmNgLZ7yy|(H zrM;#V7b~8mc>mBPx{{J*Oi_t-b-42dX8YbueT@T_9OE6{8y6a8gk^XN=RyPD<V{;S zqyVrqj7tTD{a~t_%K~<Y53+%j=&Xc4!$f{li)E<&wkM}ob&|vZn4%ps3K{@6;f&ry z&;Xe4pHG0X+tj>5B$kIg)@>C)^Pn2nC{Hm}@CNsB_7hjM7-@9I_P+z~c42_~JTC(c z!eLu$J7LA5g>wWk((`h{c!Ujj-EoqC{0(S^Q!`2=(qKL69QY$F6I1KWOhp;81o$$^ zY+(N>FCd@Bkw_*N_O<BM!X?_~oR<&5rl&y&>{kcL1!0#r0`8%JWr~kU<vf=H^DMbe z3SuFcC&1N#z}L%hV&xY6Oe%2Q&?t}yYd)Pvt=#e_o?dxm8Wy(ROmmrnP#W3{)v<IO zbH>Nj*VpeDFW*k`%mzKdE|GlG1u%k4gWNY*d!E7}W6ROabf)WtBMZ7GtTBi6{+8zE zHLT>U@tNSw7=Xe+Xz6P|EsH_HDe*P{&k4o@SOupNFZ=TOenRXFju88krR-Tp^h`wc z60lIdqdb@R@v2HLs0S2jE>pvtQ(nj<i7mlp^@YJT0%c&}s+gTbUmC5_A5#XlePw<U z3Y5A?a41RG?s@Ue#&t&Rp`{Y0gO1%wmtXe+{X7CTtw+E#5rud{-Ne?I-<x<I^^4iQ zHyR(880quV#G%WL9=))s3N{whiXic2OainYmMt5F$xi{~P_t%~;%rMuQVs&bVOS-k zSm-;YwX?r+WItt~m&m5LMSp|D!2i;$VGBzJ77^<uj+}oo;kF*c$jWl;2v8Rjo9yKF zJ>6@<W7kdRsm+%-=({)IM)5z@3h|XSuEzhQighHb$G2MvqXu>j$J`DCNP(8UC%&(l zBEp?B@`Nq-!uzkKfH8YHRHwJE_R2oIeP2nRKiWrE_U@9&zZ;JqH0OO=ed1!v+y5{r zebvQ(QBXG{#4v~UQ8Oia9ZHGD3NXG5*S7ATSWFaw6o$2##tCWY;v0D@?lGiY*(;)K z=62(^<SX2oD3q6+O~MGEjJtqdhQ4=;smUEd7ra1EE*c`hm?4}CY$6(^k9s)_DFUR> zX7O*)!h;!eipl`Nq@f>Z<Y=I2k3QaQM)L^a-BkVqwxFsr(|<#$n*U7S*pt%j`+VYE zO1Q0&B%l3Rx%r(=M~3S^-!pijthpZc4mK-OvHLmi({HKMVT*JV`CCbG2FI^5A8@|z zb;C=|e?t-#@;GD6ll%JQO?9K62?vycG*(IE+XD^^i){;dek7UwpS8sMCyU=Nr@v|+ zdzYG!YQiAwnD4c{orLqfBEV}ZaK0LKE2s8eX3*~mtHO}221yO0_m1?GEd45vh@Y3! z>n}5fRBE*9q)54Nkp-&xIEQs(L`}VF=c?JbWr9Yt9I+qUHiX=PYqB>}98u%GAh>ol zca$@oOT^2n0BN-Vcr=R{YvO5?XhSbbmZvjd!%&ei>s?dFDn$EO47BJRX%)Z?X<zSv z&GKR2DWO2!WA<ZY1SASJq`HNv=?n;T7D}H2gXII_#rti-6o8%C{pk2VCOFt;E>^VE zYM1&pC0uSV=;ex`=0dVL7J*wPW<Q3G`Y|!%Lq%R*V8GxI1^%hwZbwid<|MQBsBc8^ zPyo>}itJ2JPu}k`Xl5q+6KpUV)^5X<N*^~|zZ4;FAg7K_A;dIw2WI5Q6tz&)+JNY% zKYEqfB`z;=jtMb_N%NE#+2Km?{MrK8)gL;bMef$D^!p9qBTOEM5@DyvhJX+N@?m^o zQ@(AC#oq<D1(Ax*Kzmpj*IR??$|x!*b|6^$?VC8k_?9|4BJ3Xr*MIf9pkav1aw-Iu zEBAn)m@WCIgAkjZeW4>xeMSi_ZUQlIp7?vxj2eY;yIiCY4uXZugCgpXFVR9k605gx zglGBfwIYgQ?FEQ>Jq`$RECX562pXwtExg^T5W4-+==@?;ge5$O3}e6!Or6V4ExGt% z#C9f7d=?cx;@e~FjwOU6S07oz>FP?$Q!Z7Fu)K$VQBC;a+%5g?3Je##`BZf5TV^U> zqeFFj;rU_-No#tq-KXZsJX}Z)&4H}z?(FBfzwWe`dq(RIOHqtJ0)@(jwXlQV(*>1+ zE+&>ky0GoE7c!)O9c{n24>9wrd)(Q?QznT!*l$0j2^Y8Fr`Nf{XooF_^<tdu5y@1# zcn9mly@bS8c^kX!uDV~DFkIJRL>QgwE!z{(<m_L&nR)AvA1<{$w+0*u^*W_YQwOmW z?#QQE|BgflAS??Me;=Sn^wZQgL5UFgb5+e32Kg})E5wFqBwJxPcqPd*i+nP4RK97u ztEmhLCy0xgWW+L>jt`ol6aBf^yM*3{W|h{sXVy&pawvdI=jnMwWNRK2_frVBvm2S$ zL5MUweA$V@lhOl6laF7cf<Dl?uIgB%|M*u;o>+;mY-luk$3OZi`WaJU>g>d5X{?x= z`%Sn`{D_?QV#L<?;JO(9N?~!Tn=5&%G&{ji7tJ;BaV3?uXuoB)st8?7S!_{#z4TA1 z%!TMn*}wWX&0&eZbsIly@9R7>)0TL@OR8;XulvGrGra!F2LflSZqKtlvqUnD$WXZm z0<lumH6mgv7j>~$Edn!w7Wd=#UDksfv45-kXYcC{R!%A0Q82fH0vR0MPW^pghgWc4 z(D9ss$<MrWBml}5$W3`96c7RL3FPuQ-INRSOxgZtUd-5FKlhy2%S|TQ;_rutjyR2a zo<0k%*>bOVis^BI0oLf`XV3FC7u9pSYQtp5)A1?-DFRl~9kHtJA0hzGuJ}a&KP8KU zD-%%l8={d;V67QfDI@NP^(WTtSOA&Y&6!s1P~!MXPcqCXy*SulXzAD30nc;A8qgsL zlxrPPG9X`xjvwcX?Zm@1(;|;3S@hN{!2>T_RmoykOJ+{N_^WjhC=WN|J>FBId0CFb zyRb5MF3SeWN&W-b8GJ10StxK#5ug+;p^95AF4XowJ&5+q?fB)?7*N26OKS=!02WFO zW2>D(ATmrRa1%Ex0PZgTf5aJ!HC4qCCY)&8Q6?IMO~=Dq@NvR@U{mRt<pk}DIDqA* z5Sb~6at~nv1#6oWKy>ecF+^^gUctd;2p^%C0{&o&27YYIs1#5TVA3)8h^aHfvq74{ z7O%}<-BV4xx;NVDB=0U}(H!!+SI472iGxU%_)mVE#BJb%=xgzqWRlf`76s6^$gZVA zEcclJaQD_#JWx!;DkWR!@Q_nK0ZAJV<MOO~1n{&fFUJYxk(24l6%Rc-)vDn3=yC|% z#VpSoA+u8(|58X@`0Cr-YThcPd0Jzxt_l!4eUgB`1++@RJl`Hz)9sjlV{Cfz`vu71 zwQYk%otq$xdGT2P`c%esRsg9`kO}-%hS7oR9EW0kPNZwr`*!c;Ex%H{ctUt<A-n8B zo(|{1x4kSX5~TG9lg)+9(?fjaZRIX+;jcf2mnt!}dU#_88&T)J1~lsshD6%QIQOuW z6w|1o860h#bJ&Mre*bGoKMo8x(SY$xl4`~_FcO0OgGw;wvYg$zo<ab`&I*_EgNzr3 zGg}^QtaQq`UzrW?9^8cFsIRQL%NZ89&cvjqrLqE}+Q|Ruc8$->{vN%D|5PMUFm!&( zlq>KqDEq?OU1@=ym?~_)2f6<_yR3@BD+XUVdE7`9B=0LZFm#(^Tlb>w9E5p^BR0hR z!yEVmomdpnS{c_M*q02@w20O&tD&h5O$gP=Z=~5ATJm}$4T%U|B$6JGruFJBF7SF9 zS`U1xc%AEX*GkeCdEvl~n)1JGS9&1%#65A@?Oqa~RhR`Q`SWdJCp_92{H}8d1XA0I zte{M<rZtx_vk2(;59<*{(GN|S4~^W=lTUHyCd#R4VPu_V82J`WfQt6~lS@SkRENW7 z`i5*J3k!_mLkIUc8`p|wSer<U3+0PlM305Ops7=vH|N#M$)|2m&ZW}%Rm%z!_H)0r zR0+!qPhRa}=$Q`AEyGW$q1;hcI2dCeR5-UwIDIHE;d8inH^KDX!y}<x#^)OExt^jQ zClDU(xY6>CZpx|}I({e$hbz63a=sR4!~Yr~ZXaftC-=Nhp5#&2ncwxW;SFNrO)c)U z#{5GU{VG8WP#PPDMKX8fCT}C!I%6|Gr@(UsSp_@R-s<6j{ME?|%DHyQms%)a36#1V ziQYKKYzx=46E6PTdv^I82UGwH&(SnGUQ2Lp5HrdG0h?0AFMoq;#Ncgy`w4jLl^%~^ z{B<+SJua+JGUnodD21jv_7^|`7EFcNza2?ngF3UvJ7VdoR)VNbQo;LLQ!Myy3Dy}5 z6Xvd23yuFFbgyJ!j?Lq%6j1j}{#5A#hE3qmcNt-5sG+vj7Y8+m!=0%{!8q~*Y!r#l z5{tZmL*d3~&zlZ|Y0I|p+g-|yc-TtN!JZA&?2;)v12T>$R})ynCV*xk`1Wh-BV1v` zMFACZ-SIOVstZtgquA2qya~uMJTBKmJ8p)7RA)=g5I*kUVE8g)wOU<=v=*aPc8HHn zpKUbX&RpUy0yG(*FQBWzF|n*7FqR-*zVsu#w(V|M3yz-#aCw0RNc=f<mk7^NCmw=T z6QbgTNJW7r0r*@71DCNbsjSQR2NAY}jr8DUg33C$bFN%v1<fB;p-a6hA;+TJxi|4& zoz=a#m?BSE!F;%8%L!#0p6~zc*L~L)-_$o$vT`g@G<sYM3PT@efC<M1A(Fei2lYI^ zEI5OsiMa3h(j;eWzHd>Cdy%ifyzrew0Z}@!dF>K5vmxe<dH$Vbq%}jSkxs4c<5`_% z)KjLeaFkmy@wEPmgker8s0^L|H#4Z*wpcR*yQJ~oYhS<pWg~>BJlZ(aTA2azvTlrP zQ=<2`wq2a{lLaGUDm{+j3>kCmzM_W3(wmw1jf)69ux}ViIXeraptT&^evgVRPRl(; z#5qBAWRP46V~Q98AE%ic_s{bwDKii!u055yWqIO=XOm%UeJK4k3bVnLR0`}2nVdav zq8bopMZVJm+ln%IRK3dD&1_6Dd%Uwh*#KeUo|Qj@gAtl}(>%{BvMUj!7y9sR{!>MP zXePn7Z7bWi7o(L=D%v6i8h)C)cpL;Vjx9&*44hC3o&4o2dxSMt8v6DCardi=S<}7J z>Nln-mT@wP(4mhv=Z<vLJ30JcxcX<6CbOhBn(;^PUCfP=E3hlHn-YA#pUP?3tR}4? zHP1U_s{EEnsih{o{OM*A-DixInuZBQHM#v8Wy<eKfAaWpe2MA_S5rT|N5bVt>ia@u z!US#cQ3<Eh-~C_*vqT=nPrbfi$+suRsO=^#jdazcN^%!fzsXsNr|7G`3qPY*H7lMH z^V7k<+CMTWrDA>R#{jPo?Z-Z^i?K34cqmp)JGPaV#^HT%sMB+G+KIEk@z@STsOQpO zq#y3Idw73WGReM@Gjb1^SN11<wR#AKqV6D+F0zrdjrjNQ&44H!qDFGVTHQMbp%9eT z01QY>71UX`+}UY1?m-T}4u7V=QJKpXa-eVEjMeE&fgcY<ZwvNd41(^1fW<;J;A*9; zmpNcxSXRtVSkh_$zHVjJ4HWVFzDrP5JlUL)xRXa(@epVlejy}Ke3h>2?3H)RC;xM8 z+f=$!uX+I@x2G{kZ)gGmBa<ru*n_-}hA`CxYi*wI!3=EPQtfzYwsdcBr16aC-fK3w z<V(O>zHFsXS##6@NfXv+vI8iXUuQTgfmv!ah8i<_WbmR&0Xao|hno%tCJkcfGO*z; z4^&GKMa3u9aE|aK#?IbP&?mxJoj-y6SUE29TmuF5cvzQ{?n(i+Azo=B?5yfKpk{>t zAoto$u<mRno{>fdD7-El0VwW~%1e8~yrkDr<a?5AYo&cO;C0RV%Ey4LcP#{F@OzsQ zNtndvqr}SdjKFM4s0&q)l>2yGYg@t9>b?GQ4_rMYg<#Z#3CQTCdBElt=4h*L!Y;+% zLfF_PfLo<ksCxJynCD&h;Pv%&fb++IoCml)@4>e0WSR<wiHF#^?ru;$kTrUE*FFQ= z(JU7zS+bA^&%A1trl}xo=O%KLbO{P;_?0SOb`c!p7;q4FpLFWOZ4!w6<zUoLo0rO1 zN^pbJCilDZ_-giRyw;#b)`%RVsQlSz63FW3_tcn+R1E_NTa+5psuDJS0-_vf&5%<& znm*8mL=JmNukD{r(V7P@#4wUWt!I9=_S`XK5R3Q7YRFy^yyqb<Q{rN~IQ_?+CX<q7 z0MiY_$CaE{Z!NEHUm4HU+ZH9k{vNmfbv+V};(32(8&A0yA1T5ReDDWF%?wMH13L|X z<Fz_*d4O2iiKzzd43K$%;h~ZYLcblCMWZPyQlEoWjZx-}cZ%no>E3MH@&w%Lh$nyT zUSc*#jr$+pebl3W#XBc%=dnF^rbWmsh2Z_i7}lsj@qq!xDBVI4+2pbzqK1+x^-j8) zE1fQqN?`4grrnp)hRnqmwWz8);1mvru!emTL^N_XbP<%qdgDR`Omc2d9|rO=*Y%n4 zv5yW1P+TluqO<i{_yR^jtuVAyF`P2Z{^Er<@J6{mDhTOeG(y~EkZE3<y*u&UMP|wK zbJ6#Y^r}9s>9HQoCmSF1w+<MrTe#dY9(%k6k=0vH0wQ_CWm}z}M2vnd{A(h2*}@N< zQKhV4j~o4YaN{rs1@FOr{mu2j)Fw?Xn=$lZHGPiD-1)+>g>Q?W!l#|BoKCfDd-PyL z?meg&p&1zMx%Vfl<6&FBpNK@jy=-CQt|mW!J4=?9+B@=M*<l$xdl}~Fn!$}y2kd4U zu`M=5QF2r}UAK9|d0Oe$M?pN6WM_7My*2>VDi-J6DQ=py#TLE`L%wmPGr0*E2wSsi zId2}cJ92tnkJYK6M5iSM7)<8C<wfp-T*Q<3>Dl3)Vu5DRP23v5ka5eJv;XV(?KK59 zp~tsQWSL+ra1RMo053qydF-C<Z+Pfp-9N7NH%|gngt-n~-Pf9{cclrvWuT#5N00Y# zwjW<x*G@c`>ilCbBjZazyBwcze~s9sB8oMms|%?f1)S{wb(1vta>@{pmvB0csa5ke zwR?71MFL*|BF*A%Ydv7-wghBRo*@O;T2%h<h{KDAfDiE!tt}Uqud~t%LY@HF54N11 z|4zYm#3iwiB>}c`<e~-@=F?z3*j@<TnITrT(J}|!1wUCjJ`QFFaQ^!@hoH0V%?2gN zV;q<&XPfp#MK8fK|3y6)ZCsC@<AdR4QD0{KVDt*E_Ah(;*zd>S$}vkN1LMBfs3}-d zG69aZ0(Wmj{Sg-)j0RTG00sh9(BUL}?u$^QQ?}5!qHIA^mBl062MpTpz$qk=3V5zY z{uL1W%I#w<7zsFiQQ&lI6YuP0cz_vxpj1vve!hE6l@iKL9vXtt5Nh!}LNPRvVVX?% zky8-D`I%EciL0Rc{Na!+=>ao~O*WO_Z)x1~1g|D+$F4}MgabwZLL9<tzhS6sK3-ET zV#E1Xi3RE%dD!+xbxX@Xbn)Gzt{fJ-2tKu29vyfU0j$b?(wU5$es~!DPfR&aZ_8bX z^S|K~hG1pX;)w)condN^>uaTk4lom|ogxpN<Y;ttUbSHVv;y3W5pLi3*{&KPmV#!Z zq_E@g<L`3mHhES*QPLD<2#sM@Bh`bj`!pyiZ6M3&5m8<Y!-$d5KmoavLx2Ryr1$rk z+KxgXNbkJ1lzfR_Z^%y>plB99o<8+kNm~y4dzMB7A#e-&`}A>CX#0izmX+yGHeC0) z+{Q<)s4+xU;4kwpN6C3O=)&<ZrTx-3k4z(&Ksi{ul5)#+w<bk1;y3?W?)wCuhUqH& zZz`lqsw>dZ2Cao62?mY|s-bEBn!8G^{%yz+9uaC56UOk$S*Yu~uz2URH7F6GW^UD3 zH^@ysi^?rZow6tO>C?{>+zCQQI^}tN*G(&Y(5p65jt}Qjxt5k!PiLhiH`Hu|aanxJ zn*twk)vh?(b!;^Ex$#lBN=mQH0oU-_@}X$gRiBzkMXs=3=0teQ-q@G*0{65v=fcUz zwaR2~OyMY9B0NoLW3K@G+B<}$ygh#w!ZoAI3{_BciWv34wiAkMS!`TNhzc6c$`4J$ zTSTNdzeP^=IrV<rEDq~k*xwl-oJ|vh-RF<@@}`w#Juc@p*AIJ=Bz@?rcBOjAwM-;Q zb3|uu{}H&^msR8$GXLSv4tZI#N)%czg%R{el;oH1=kD*$;KIhNnkf(wjUE<*b3N#3 zi;!FM(QtxlNilF}0}_e7n<#X%Bs|cc(p<|%huCAkAB_pl{Un6)T(;Eha+1@Kl89vD zR^tF_Fz$IvX*rqP07f(os0=K(TK|<x07bK#1;j$f_(2cgneX)984T9ruOJoLY7j`t zQZY-o%k5Uqo&~SP&yj#TJOHIba;LS{(KpuaJs-lu^c^Y_Q-8(u|Bh-u#=F4(P!T`y z@zaCIUC=b-Yp#?yVBIy+E{g&BXYyGhYd}>e(SN4Nv$M82FmL>*2l?DN0<cSIpvV(- z10~_FeKY7GWa7Y56PZVK1J4i|Qn~<Z&fD7{{W<;{4-ZxZ5*ph-r8mJ*5B2A=*83l7 z!_J)1Waj=L>`o@yJSKL0@Pkxzh7CE@MN?&ESqL89#mvYw5bK;<e+w6KRaa-!2!-OQ zv>^|=o4}dbal^xcuDTZ}7F|ww&`_BMYr=hMi>qGN?w+iqXYR)=5SCvBK=($$@DZ@` zB2szXso)3<3eL~Ezp6nVoL-x5bk`BxH7lD@7lcR7FKv~o6Q6&%4fk?=vaD8rc(Z8m z4;2x1ATV^`7=*dqXh`6%h;;%(`OaORc)ZE=s4Hx-LaYQ}?XQPqIb0~0_$de>t%I=? zg20W{fg#I2{Iso4Lc0o{(za{R!Lm91pW%U5A)VV2^aj7}@e;4$72W-<PGf)CKK7T5 z4a<NO!2yF+mFzWOlWLQ&C?WVH0UfNDG1bE}_s7<9id2Ncie$tf+)XQlkvisk26ndY z$mjD&*@y#f|Ew&J3_2S;zg_q9k>`q5;QnH|7S`@tT9}v{gm}TrBIS(OZzaJN*=9dw zRpS`CUL?WU0}PuiSs-P5xmbDskGB5Qo3M0<iW%!BPXOUgTt8xx%fn=5UL;F@;2DUu z?sy?bl+OS7yBoeJ<mb9S$Vm3_wZj8Gk<@(&LDbX^McU3_)3^^)zSY3yYXF)&5h#o- zZ|n{)burltPK~U}Hqnhwk4Cn(+{|-NZGgN6z8J67Qh0EMl<_}nisYJO(!`o&+-@uq z%qdg~OnE&PZ}DZ69340{T*GgVGZI5Qa2VRst9?FcU#>4+*CHdZO)G{-?&zsoLJrFk zU4!kcqMD{`u`VnhL?}s|D$0w>;ffRV@pz(>2Z!M=5?ne+_ehBnCQfTe^F-_psk=g{ z-u&99s(rIz6rxgc-$iAnUYZS+5bDy7Dc$N#y|{n7O#TU18=y!(%w_u3h2Qmq2_{`4 zPxeT>T<KwP(S5(_g+zL`+T>yzB-3PG@CN6!RyE0oTc0uGR-STJH|Y|8eBF`>Zy6Fs zfw>wiG5vfg(b7<m-BM*Tz(8<NrSXG>g@M$^7r5WL!JRK1motmah=*pwWj=-+x|$Hj z6Q2y+@TN2$Rn{S<5}S69a9W%AkYxt?d4OdgCaySs*o8HV03;~Ov>z;8c@SEPF;EBy zpCP$Lmcj!V2F=#wBNdj0^S?}W9XN#y%=o(cybz%8yIl?wh#6-#)Rbuss2NW3`?|C4 z1HbnH{<0ratLX=L*l}95R(rrPognDsJr8H9vybbPggcx3jMW7U89@92cYd~g?(hK{ z7W+%ZX5fNi@~+c&j0lJ~A<AVy4o`iUk0E2xUp*$reA1i)_`G858{k;jpTNTnjG+M% zd<v{T6<DV;FctG)^J)284r;Bdn}9I2`cdIIqsh&yvr5e1C2t}XC5#;Y8<}R|5*>OL z*fqp%f<Hw=4z84f+L5jNrT^srpeUB34Uj|aB;@-}ue|^Eo)8;gReqE)J5S4$B*NZd z3f_#R0m6egxOqVcSaK}X$`U&r>z;u^%OC5MYV()Du)?Qmd@jKRKHA24A{%04L+SM? zpi!K>bfWl-0kz`c{Vwy*R28SJN4^j+R6#go!H+{sl!fm@CLif{fv3E%wyy$sey<LK zcYl2*T=?kszA>_N@rTD9c68Q7u!9>yu2pj4VB=T3*$Yh;5trB-Bp!qjPWZUb7`rHu zaal|Mc7T)WT;0%-ium@J>mb-G%;`y}lo5n=Y}@y_a{TcQ`<c6Ws3LNB?`0q6(4uDD z_s7OaSbCOd-KkS#`2Ml{L)-olg5n$&Q{!ud$eghNunoa(Yg6bqPi!68)-(D34x+yF zT`I92+6Js>J;IjFhrRr0{u*~UjgsK(E?!D_`!!zh>P3TY)Khs%KHRcj0yMWBQ;m<q zED?D;Wvk}0>kSi$dM~AvFx`)JHl%zo!^}U6w+Kn{>5d{tVX)ID2H$Q~_<mnVFe80H zw8)s(XKqs|cw5>-si1S>%MIu48&21hDYg^umIfXI)592-`7&?gYZjH=L6oi5Y<fc7 z+1oxjrHVh%+J3^kCEO@JwFt?XU!L(R#->x2*5WC@bzB8qLq69XhNf`eIY3I7ne0ut zaOYM;rN7CBmHNu=deIpsjo%9>@}V*gP`#Q;>2Ffb{VD3@_C8r<T!OOeriz&0`@qvG zjr_s!xujS_&DyZ>Z{FAR^2=W95l$^!<(NAW{fRisBBMliuu)W6dGJwfl=ffmS2TpX z%AO)Bdfiu>h9fj=Sj^TWW^eH4lj|gU+zfD<9q%d|jvug^n=LsNMD0!9ac-vGxM$J% zEbK!6+G)k;jKIP)%e$-fqk8&=E7hv@HPm?U?}{!Iz7dsF-_+{tupggHyIHoFKKi0U z1oB7#&@xvkV8sMX$QEl9YqqX+9)N%k>`mz%WhU<}FCW~GdyhLY?4*?v@NrJp>7iX_ z7%+~3M5Z>t#BgKTF7E@fWU;rP0i4#2@p3!CTvvH-iV&b9)q$t-Ht+eHUy8ce%@A2= zkrsS$9mV&cu}WFucy{7NPtJvv20+)9l8}&)mzU=mvco9=t7MllP#nSWbYP$cqG1CM zJ{B>!2WYnkAU`4SN^t>@D~X4k);J{q1^X=rKtg1?zR6_+Scw0VD;oe?f5Oj=2J@-6 z-U+HG#sUzw$XCFW8W^ttei<h#0CZX(?glF5?nd-Dh)AUMUv4=N!hnWt(E>z*Gk-g? zbdag2XdKU-S@P!iK}7@4z5ochvv#X=0TZ>(Mj#UU%_t|lYyu9lIC|wZp|0D>mzz)P z(UlddllPK?amkZI<e+c%P}0Todq2&C>?W=;A_xP?h{;%XH_XVQC%8F!z`WTP+f-GW z7q=5Lv-)`!-P`WTi|n3iWS&h)Oad*CRLw=dQw8WkbU<tzMTjl<24TxBaxT#m4$JBW zPF|b$rs+2&N)Lu&f%`}gBr1$n_a~V_N@26&N_|i<$gJ05Bt&~?cSefAG1K>-^LK%J z<7K$i5a7dj1~UHeuOH+B_G%b?qMznix}#job5JLOAgnY>Ggto;o6#Y0;h$xkF(EeJ zB6T?sfH1DYbg1!_bHi9chH@Lzhr-uSD_RFY%Df@zJn@zF;ThFpUoYirP{^TLm73_C z7jr?9gvf-u93+5FnE_!;Y>rH9=02(Uw_m;ciqj9XIuA146Nm1(6fJ(Vr!{0z<a)(R z@g=FdC$~^JdT|zuhuPQbe!qKc9yYo3M@$?~nSh%ofuO6YV2~$;^UlA0UR)a43``vS zTocP^obQPjAI{)@Ll!1vyH^!fYc#8oI+5r*FQ8?h@7F+>J6B!i9;swPIoFgVq4l9~ z&GZ7fl^GyqK?lJKJ{Xd5-Bk0#xn~lEa5#R?N-{?!@+Jt8Lc7RB3O3rtLw>yy?5u#z zcxAxHuSRcp$m^cwBn%Dl%SVJ{Ns!ivb^1&uO{A1=JsCW%y7jiDXYyG&eD*;k`C0w; z!f@7}yJw)v^ky4<vh?5Pl;7GAPH?h$M}3jijApzbCc22#x7f$~t4JfB`cB>NyrPmz zc3#1<cvz6_SfA6l?18Gm#r+1wxD?kwf!;TFMMYjJ&R~ab9|j4SEE*UcV};DuzKmBe zOS;^V+m3U^Qx`)Bp8pOHP-&2|Wi0Is<;dmKjq&L+8`!+zG_9L^tM*W(HuY*foqPX6 z0?cvV_3ef}E)#WP*#n?yX_wFOTA^&q6F<<eOC?ZTB3>NzL5@=D$(J$@%L#kehC970 z-|K-or|vwXy6gwA(!Ql*T+|vQUaU*BU3p*%P(U@P+s{P9*FK4W!JyjP1@!^$dTEES zPJZKvU9dZd#x73nv4HEOxa{og#>Yz?BW*XK3f^XB<ysdH?pt%Ec<caqU8T6&Nf@Ry zZ7CKqR|Bqhp}tBZqg!kw<i_qNC;&7z#7?U$AJm>a0=Q8xMEw)|fp$PSr}xcQ;_{kK z{>slg59q+E#l43TQy-=RE!MEhAwgPX%9iX8FxAY*nn7WLE*_Ad)Dv*UNB+Q)1pL?c zX~0d<Fj-)hl%ohRgs6PoB!EzHv5R+*bV>Q9b6`{^;PKgIL#`ie?+k*?=hpzGl|v)I z!u^PEUI@Zij{P#~JL27V2tQ$BdtD1hBCK{U{6&))^P`@oc|wm!&^BzB2qU8}F5mXo zizp*K{^2w43+-&&)X({LQl~U;4=D%6HB?vM2KRTMc%5tK&#jUnAbip(Cv(l?^O&F) z5%M(qXfjO3r|_3ou#X_bpKDKD2fqZUDSNScmJyu2WN0VRed6!WaLPIpx+|ebt9<Qr zm>uzR7l;dVKDm0RANMl2ks=gV(d+MHup3~v(N1OcAxF>cl}bR*X2t0G{*`Uo2ZUH5 z8k7>+pOoO^)2m-1BJ){mlL3w@eYpCp;NQQR<Mk153$vO}_HrS2uJ+k8xUKMsBng{+ zt)H1{`_Xc1-lN54<iK6w@mJ~ffB#NHMXqY{4mT->KQh?6_RI4TzcxQT`GDH5Rg`MZ zki}gHH^&(kD$@i!tKG_(VyuuKc^JUa{zVku$H$HoKQwykRe}u;X=S{dI|;~pVe7L6 z6Z?J6N}gaZ;v`L?)krM=YFZa4xW_wXo0~B_<I#lP>84MA4#sIcNNj57MF60GL+ew^ zGD2*W)Lw<k_AxMesR*dxBVPEE2HMc`;Z(|DruaA&0odB~&`4540|!m1&-%0jxG!?v zC${M#&IF3yKkp*wY*q9IQbg+@ck6`*1G19T>HG7X1&f3$v=H`+h0yf}{P_<J4D}?* z?@9<+(pDwSrmsK{`)xO#RuiWZi5tA;D+8aVU>TYDcQn0|ZV|!^4XA6wYGtP(tO3=1 zAx0B!-WwX*uZW>Xs%3ohgEc<ce2+DU8b3VgX_@rl$ZauEDj$=!c*?B7HD6{&?VnVx zYS&fgxvf)>!RMsd)$Ho}4JHs~s3B$Y*?L-j>yx%!w!clP?3!8{IJ~kdJ}(#Wk!sn# zUve&;eI!q-Jn8D`EQ(?L;IDRkZ!VRjMTT2RvE5X5#gPTkFIcVgR)n!du{`IoQr+Y9 zs%Ri@911!<#!<Tj`5b!3xZ3l$YXsDH&d%B}4PtsyPS>d;?#|^Nh8{MNNY*-YQuMxH z*Zr}_|2*Lf4LH7KMWP2EjmVhob-&RYGSIWgVi!rB{DkXo%I4MKUfDQnzm9J8MEE>^ zEegJUH(=NqPV7;U3Ad>Ac9upJ`8J{8bew@ez(`;O?8!5&b1^{EMmd?*Mm+Z<jxWnk zxHBt^R1ZDC89XEQ7^1GmM;!Y(Kf;Fnhplt($B1gjL2}l!0VJ3E5vTKD5tP%zIyan( zFSFkcO~^<0`B1PqfflDi&=?xkw>&6M3Aj8qn3Q-ZpvX1o+Wk#hK13bUY%o1t-QSZB zobmaY7@qTndo`wXbq%piq4>DJd<ccwgj9G>@&O7QT_>@}k`P_`IbQj(fqQ`<^iB3j z9+)fAw`e&o&wykXj)Xye4M(=pNWPcbWSGPEKP{oK-{1P0AahRPZDOpYiZpUhEc2KU z`zXKzfMs8LD!_9C0|WiX{W=eY&Ik~D9v87+mrbAw6kgkR4&%<2BW^J7_17KyG;hyj zF^3fqC~w>OAI!2y)e<O6JnM|c^99WdDuD7MSXlg7{z8at(1j4?(b;ZOB+9uw;M5p| zWm+Enc@Kya;CkSD;Hda?q}K4cE5ccV2+JR%33-IQI)>aY7?eBTBMV%f@IZCMpd{5w z<o~o4tc(>$nHYE5+`7T=AtMEdCJ(#hfEDSmgD}1W^)m8nv#c)ET&413!D>EguVU5> zy!^1i_9|=|%*Rh2Q$3&@8jQ~l<>7L{ZpfvqwTz8sv0+WN?^D0{LUzm%UwUyfIXemd z-YTfp^X%IYvCmtB&??=CHd$m3^FdQD(mE<OFOZ|s;9S24Q1_jcZr}kS94oK3Lu~VS zk<}-9?5`!_;s_+T38d>-t`lJ>p|GPv`nNPJP)PoSAfV{^jcq?S<{|_!52k~oWP>l5 zn-e#cJklXd^37(<Sj(j=oMn<U@9JG8cB!0+drlivpk3(V#p&OOGYfaGiH(4NVwQhr zq~N#oQ!FA;;M&v#(OeKaGU2r9g*&O`gi6Uz5$59;KYR`;w|{$H-ORlIkWP6z`u=r2 zSIeOeb~>{Lp&yKTHDvuJLT_&UVMt_?VAOVSs8_<nT(?T7nPw3cy!Ix$Gl(!|u!`S* z=Pm1p*p)e63lIo?N9^(*K`0>hus}e?XgK&xja`AV-{rxFQtYR4{*!I>@x#9K1T>f1 zQc=pOt18*?El-CJ_RlqgVlj;8<W}go)gE@C!3Z6WCHepZj}{KMy~^%jUdlP|jdZ1i zcs*n9O@`SX3T~7X)#I$UAENIle~?V2`dx|2WVK%AZdu#q-5w!AiR`Z)#@x7eH!oW| zP?NIs^Q$Djw<!qIRlUl;$BG5gCG_8&d2&*doP`+Q)x6^IVy&K+L=koTvBiq8fAO!9 zqb@wP#D8XLxe-%SdaS9vvRF<hwdxK|XYAB~N4_Oy0vVPHcX&8Ggh{NL8p2pjN+t}X z!U@U};rlPXRP$Qi0W27x13Jm~z!fYjorB+sBTO3aYt>cUr9|-|jfr<F_16J-pZXFd zVNQYsPzcIdnl6m&MmSSlwACP>*L^G$E6IerErK^eLle{-54X4*e~3b3X4&fGO2|S) zUhX{xUJUhGw|9355LVP86zm4z@8`T>fvcQzgcTKQ(by|Mw-iPyW&t<FT+~xG7LeRJ zn16GG2i3h{Qb?dra38liu+zofHq^8`uy?@7XAOJkoP*;K9uRu>U~~ML2{bqNKnF14 z5`{;ALsDUr3?mvn1q6L#4+F?N4GRus^=!pL<{4Im*uCio({u;3eBgfh1(^jsI8nR| zn7EqAaWG#{kYLQ>UoVy9OG1dn>hxa4abnD=CihpLgC;8FeA4T?BS#w?oe&XL=7ZGD zbFp*Og&Ro%FUvu&44Ytuq7jT~aQYqbe_3z>$iw043=lksiTI+`u@ac3RyRYONCO81 zAt5bQ_(O1gm?4Nl#scr)?5z0~Ge2_%t8G8}@5>pglpCsVV3m0|l#`64eAUq-2)D9P z>;ztv!Xt$YEWnX98~Kwe)VujbkkqbHIu|b3B5Sy?rAbWYvN)7#!YCMAdFz}!X_Y0M z2@F{4)Y2sGus!~&JxPj(xrvX_NK4aQD;wCJCYhMp{g(8#Sz_Utc;1T}yZ}_a$X+DS zD72UtUCT;<__HWpfz3?)oDV)mB_;#MAlQj`5+=8Nbe$5)epuy{gmVWVFF)Dh4>>Nb z#^=61cTMcDlwn_=!sedd5oCr%<WOXX%1agsMvb^-m-+yo*>!FgLwu}Kn%sWC0|Ysg zec-d(@oHO34JT27tvwftA};a;lOBdajzE0%Fsh&G;`E<jlk4U(MSGEUjO2A#Tvp1- zYke0NNh%#lwK&)tGAP^V=+xWMi2PCgBQ`akcYd31d0DY4Wy5CiYS9ozV3otaO6uj? zJTbIDg@vS5z9!on?treWtxzJ#H9m<O`E|dvMYKDyf(2TEDq+&A#p=$n?JNy_mLyNv zsXbrDh!jg})pc9bg*#G+ZJ~c?hP>QnbqtfTOKkW(!{+!5H%Q%CO@jg`8rh-Gk-E)| za(n*&T2}pM@B4`3(EqsGi!$uX1I1+wTEEQ|1}{i+yl*fHd}$}?M_!iAymBW2?#3PS zmvo{@IxiB_VzKP0qe}Vi81yNvt@L=+SA!Kz!n4Th`wZvmD=$XO_)oihVHq?QxZ;Ds zcR#E)^=imVx7SGD1^FE?Vxk*_j6J(%rFjfbgx)pk+wU6BtN<E9bK)I5eOv5vyZelw zk?(8E0kP?xV<wZ8l@?OW?I}W3bh!C#0E<}_v&iVhSUDByWei|Wu_eH$h*CEsUW7A{ zb@8Co9TsYL`*JAF-y1Q3r6zF&>{~3rMhwlecO}N}RAnnk$MQt$M0`594Q3N##3UYO zcCWq;g%4;Eb&8kefR2KrgK*d9t)$=?h7TyJ2o1o2aF5v!{4CO3G<GJ2iyb?d{gYEj z+QRIo>eH~DfP&Yuvx5=<YeX0busz<W|5D^tcN-Bk+5`L#1pS;G%C)mOr;q>}yUz9p zk6JHiaR{R?J^yR+`W-&V;}+}Q0u|=4r+^08ps>KHoSPEh2eBI#0JU7n21qfs*e4CZ zBklo)78d`N`xc`3h(8zRq)20pT6}~w<!1|O)0S~VJebpch-$3@-0~_rN!bl31R(ch z5agP_jsw?r=1-sSO0fZatqvf|&>Up=zNMMB*rAc}g0S1$+k{xvv4AO6$OBN+=D!24 z15V<qtQQqNK*ltv;lZ+&Keq$;Eq)$bI`w(&#l%bpNP>nMXo4JsQ|)AT8_}0;Q3j~) z5QZ)v4O-`ZMiAfvAx!gbFW@7i`O@AgZwv^zrP9o)7E9nH#&T<+khC`&Er7u(E!1`A z!pZSyh#a?nu%%u4*x1&&ftg-T;#bC_S=hN})MX5FwRVUGvJ%5Ra5H%W+>?gfJ&1Gb zv7IyUaxbF>S#+p%-^-&ByVI>*NQk+a+P(BfkWO}wH+AsL^MTdp*ALHDH1nn2VKxZ! zb)XA`D)!@{?a8l9W~i<?XZi;v7#}n@#ICc>0n-(a#HIuutj?szO&6?K{j1xh4bO$G z%a=IaAI=3gs6%0Ui}Z3fNGAw~Fa6k(f5z|KgA*rvL&Xb^{n~<C<45BL<l{k7z+15| z{dBQF`?L9SriAW!m;#@q;am8tN9A-M_G{WR-w`oFa*s9v>sgWO$I0*SpLQR(t|n`A zNMK&;CuB}>Qu9~cDy%kdAAGa(XRZ%_R#&rk-Jc&`=8#yXOOQN8mG4%c=r43mD+ET2 z<LAQ}w_wHJ5{C8Y0`u3w<=&Tg%4t%4uj%3L=!#z@LDf`}TZ5y;E-?Z+Ti|hSe&|NW z#Lw)<tZL2P-mqg8Giru^n=z7b@$U2(N11$&Ke89^mp2hsKv>Nycxr6km?=5t!))vH z!Y(<T-27R7xH_fpQUv^N<fq~1xq6DD!m;99e=BJ=O4-jQi>tJ&g?UGKvU~H3rh=%@ z)AO=_$cGqC&z1uDNdlM$3}Y%`oZ_GHd>XZMZ=fpaIZ<Mp#$96(A~O7L=qaAwT*=nH z7$YLolo(_0p~6u1E4o8MznetT$r88`iVlqa4DEepn623(EK}6lRx=9jfT*NIuL+7F zJ{lA2ZNx<f4LV{;S0=@9;2!wxtZEe8;&L>2g#9B&J@kvgH=p5y_97@JqLi9@pgs74 z4P$~Gn{v{@;HeJSYQTaS5XZSMs<ghyWbImkU>?XsxX{Xj=_VhcCx1Z5Lt!6O0$7&7 zY}s)FSAvvykSej>)e5(S?BM%g77=z+xCA=X&hDudKcEaFrGv4CFRNVoDn}E*&CchF z_T(C@C?|`D<Qjp#8|(IZ*h;&Vp2UvZfi~<Um$QPm#)UN`mjnMKdO0yb2P;f|&(1(m zSbWvjWa)d*q=ZzQb=M%lLJ5nI`Lnh;$WJwQFI2iv4T>)W*z1e0m6eshv0#I#WDUMb z<iXt^_T3S*qqpN@|B+&33GiUaoTQiv0{*b|84J8R51`@zl7uaW*m2ovC&1pZ%N~oT z2MrBl>69IicEzV&GOC0zL$(@p&>VGE1yBm5oZZ|gfEl~BDrzRU@#9Cpu-$P29!NwA zTOAQTo%8NU!3d&(p?9e&YJTi<?3GgR5td_T2pags+%m%<bmBO;c)o4FQZO<;AT)6l ze;x8`&rZu5y;iIX>{QQltOaI&ZO-%f!@y74UZN^71G=W;vU=j?N8iWsi7XPC#n_{4 z7G;UpPLSJ@i}FdS$<QOjI_7nR@;p)i5zksTp@__Z2a$yrO|<*cTe=(0$#F{VSC!ve z%aPp*`<qCDjpCa&QO<RiHW8#+_9M0@w*1;=GY<X(t}Qhx&;B^6hyCtUA3NuTa0M-> zc<p(bm`7OpOP;3L8*HRX1UNCY_TlGKc6_Ab1?+hV=xN>(H2cY2QxSs^LLS=wq(a$Y z(nLt98#cA1kes>~q^!Ye^`^Ty9e>NMbX4OF8vEc2hGFgL1G97ogm|w@_MD|R9fZ)n zYp@L&!UdDM@3UT)wCGHmb0c0vo5Drj-0pI#<SnB&hMH3du-_`^r;W|NPL12?YGPG< zZ>t1u&x*0`K*Ur6lH<2l;VvnL$qJ?2`tkD#{LI^&c(Cz1HC(#K&z%DKkIQ9GUP*{! z)ft1oznV%g=M#ek=kCokcV~A2mr718-63D(er;`jv#`sxwD#9@)2&TbXv=adD+2wK z*8c2T_-=D(+-i)Gk~<%%ka|p&t~@Qu?PjT|)|kM#UqtjnnD)!{y%xlZqG!U?)OhMQ zn#8{oh#Oia1@vQ;mHy&Q_G$lo(^l7UX63=#3*@ca`8V(7>r3gp;@<69G<V=5lWeP{ ztWaX1y}Nz((^-P}QwjxHz|+9cKIWg-E#m2zh(NSzs9Tqvl4akQ_XQ2Nh@Q}A08L<q zsRzY4U_a*ceA!>?dBua`%lbmf(ak81uvP=w{4X-MC+y2tm|>^*6<9Ft6Fvh!pn?Xe zPVj<g(~|&8P6xDvR{X|`fcwOHl=0RRG4OrEML1g`yoV8ZBf-o5>&IYUQXt{f-IZFT zG^fBF(yYeT#pNo{q5>?wEr93xoB(tSNjNYx)W)Rp&PDmK^<F|I@nk4KygLBv8mRzW zo9<u0lRo!ByvHtr51DXt^9r6HD=MMjT;_qydPujV$Y#1OmOWH=F(ocOe2)Ng*xeVS zwSptY^0<6zA#1)FvIk*vH^2xpwJ3j0SyU8U%iaYe!N2}SJjC%luy$+TtNrx#==d#x zvaidPOOvEV4fyAvLqaTn|1~_nLBA=B^gXhh@&VxC`wR%!Y{XTnB>(<gQO+m8Db`s5 zdQ3w$h%z!<zV^m5z{p_(C=MIcP=yxziOl*&Qt%Eb#+!Ui$NMZx&YyhSo%5TTDx>n+ z)1ym2<UxjnGdT2BB!pB?0N>99vm9ZESc2K5h^P^f8a!T<i&te?g-u8)hoYBY?($NR zP{{Ex%a;z6c_{5c(?r_D)u92$c=$Wa$h>q+d{(?$8D?Z{V4$#4xRch3k)eDnm*Fl- z;PJIz*z;H2QGBU1Az$jwzV{WpPwLP3k#IG$&DeEqT`-PnPbr62;eRBZcRbbqAH_cx zU1aY~Xi3Sq_UK-FQ$$v>uT3sOxVhP@tc-9gk*w_95=!ABdnMu8;Zj}e_xAn$@%@Xd zugAmZ{dvF6>zwDQj_f`ksHCCHG-7BI9OG7C{3_t8+j$D237z*W-}z}!b8c4l#3VQ7 ziHULLRg=mp!-O%SbifN!o_hbPN{J>rXE1zhstS|=EA`vltWecxCUW{8K4p`U?5`+R z28clnodwj&(-r*xzOB+~L3Yh~ZpEqZ3Z<BMGii+q4|CVPox>iv=PT{|c#uh>Mit2H zw*E+C^4~*xnQX)`z=)lKl`?-R{wW+CP8-JY%GkRZo6TtR>VdgH+^0w@FJKhSOx82% zAGMSr4iU+wAx7?r43|X})N{ev+c~wgCbLFG5UbSm8wS?})>#E7QLt-2pO=FqSm`(! zQdvMyZtjfzgU@)Q@ixnfff7#ZCpOPpb^q0f6H1)*z1vhclldoYe<lcqE>!&T>}lig z3z!=?&rtJ2e~^(LvTOA(Tb_83Uv;g<IQAKbc;h+qi?2JX&EO2Bl$O4YzrzBnt>EjY zEm`$P0yt?{XZaYm_td${=K97@r(2md1YX*6rZ8n2wc3AHnJQ>C<L}SXG1d_p#3r;# zCR$vKteVIE%E}H>oV3i*Tz*bh4T*LtyO9HJg<J?P@=DHF8fGRAvgv%~b1gh36iOGk zj3N1b{*dCqhEzlhj!S9G#Wapu{oAH1eWwycz7vpvD|}O(VdwM+H6Nn_9<sa-F>T)T zydAb`Ix(piad7SU6YN{^aX=^i^za=%Tmw8v?g{EeuM6QU9eA>9z$7sE{xg2d&WeJ_ zjUgrMfr=aqRbvi*e;?0*tPO;~g`f2AXS^<^sNqb?J@=mb?>9~=zMJJIxG|gnC*$>4 zQz#nM2m>=m3aVe#h)_N1F0V|5bH!ij`-Gkh{u|Hb{upIrLxa<vA6AY)G`tQn{jaGH zD2R4UXH9Pbnp?vyfQoVx0M(sg;P5<89KFI|w+fDh38+pmp9wHsJZr|diHz|4{C`bO z_<fMoikM|jVcW4T>d(u|qXvz9e}X893$MX%1#TW~y`b@;(h*=6Dz%_qe_cN8NNVe* z2td7ouAogI8yNXg68_!;$HHfR7@|*l9}nUbPrx!mNgTTv4txfAAa1FQJt@g*o>K_A zmEogRca07C0+u;p`A7|%HdoAP$lu&90(-W7(#5s=u<!=>ey!}P?k%@Gkj|2n5>d#0 z2aF*cH2%vd$on{Y2y9K^DpUmA2gsItfqK23;Wt5Eveu|tNa&aE*j;3nx9d08<CoWY zzb?tLMD*$wav*(g+nmGBv?|9us(9u=_!cgA?xae~C~zI+KzM1_@(8YKQh8ZJj)|?X zWVYNiPu}u`a$RK);5d2QMEVVSsNx*;vj0p|vp$O+8*(ynV*7qD4VgYaL{2dep}K!R zbYo#{UVY!h)XvXwB1{^Noq2oBQJ3^<qQ?Ceh;CdxrnUaJUC4c?(yDkd&=WkJLwkp| z|2~v>p2JDJW(4%9(12({$kNs;!bD#>FVa_)`-Vr*OjG0O%orjC(!{sQG>^%`h!**d zmDNr$7ls!*LGNl9M#(+C3RVdDC#M2LJo}L-<SJzOS+;l2thE2=scR6hQMG=_`DhH9 z_8u0!SBIUx7D(1wzv{#NR9v$Ru9U1Dh+-xwD8rCCBjr%b<0qGX%iFjc6^=JXe_x<3 zGcs%RYS_+Re27-jlG8=GS)4I8EcJ`sUBLX@tIb8F=eyTyoclW_0qPQ_8aBRNewNZ_ zEBi0Y{qtPk13<={#6)<ggJ8j{WcGAmHoo~Th1+@)Ki1=EeX2-tKKX3=^RiZ5AD<}e zykYzDwwu#iR!5cG6X&o`sx)ky=%4|Dn}kI_yOD<lvpu!<*O5*<ljY;Vb!usJ_k9>% zRP_SRSh=Bdf0l-}^ev+z(<6ayqGOlzi}l=blD_+H9~;xF%G3>qzWd9w!9RO(?6v6z zT8+MEV}jmp{vD$>^WWAwlUL%#S-+|ZZRl~yc8K<!E90^;F<GOMMC)&wd@nKSY%;lH z8uyi+FK&{M&J-nvgUgBFwBJ6EM)QH{A25!8OA6pYAcMfooLnekep?;T=L02)DQ6hF z@v_MAQ~r-otAP<CR27#Yp^)D{z~{1!fVUch$Dw3QDLiGLpp<>mT&ONvbr|5iKDkky zI43UCy@34`I8g;g%EkK_etrh+TEyo6NR#1z@btOS%S_Hu1&J@o*?6bbm;s>o(enxh zg*^*sSzVVIT%<tv5*03DW4eWs2eNEH6eTLCw{Igl8*kU4c$c3(H#jfFC#r9|e2pP< z9wMk}C^9}iaYas~h(^C)Kn8zW<ClWBFo6uW1B3|<HPkUCQ3G~F(*YAL-h|}&SWSoq z**zU5HOe1e02G5EGDJLd^#tWvX`yJSLjEHt;B6SV^1$9XGD8n+0J{2pft_(6BJ4}F z(`*XFiz}o7o+l1uz?&i{H%#wX(Em7KEM|HT{vT1kIFlQs!a<8UqgCBC(84qN=GwgC zXE`WY09`u{;UH^`gBnJVyN1Aj`&Z%VAa==)byCLvSMW=C=@1Ec3079ZSUB)O#hCE4 zp2Bed;AV753c$vAD}tkfXXpgas#t6E31IQ}FN0$%_G+vY0W3!`z_k4ft7cZ>o08^} z3|!1{^GGEfyV&0o9+_<IZGld@Q2PTdI}`n^r6{#@g}gLcvbEI0%H90${v}Ca@bF?U z@PP61MueZ{4G%vJh2Dyj0j1rKpC-fRWohuTZca-P4j~c=)FOTzpC)i_g(ks573*re zn`(las)Cy;wz$25q*Cog0H_z%DU=PM6v0|(kY<LYV5I2aRj#)tN`FE_H+GYt(9kk= z7$)b)w#e;in2hotIa;XYdpn9ugOmwS6f7Ts$i}pIqu<IJZnMVGs3%taa$9Sy?&ZjP zTPAs2k>hn-VO3q`In7%ULAUQJBK#;f)x)Z~_kHzY$P4QEl!SBtSTA!+of|UeaJ%Ry zTz_4r_^!qc<NUFUPT6!BrVlG#WoR{u=$AFU4tAhK>bN9si(yCNt!?{mrsFbh3fm9o z)HDN@WrCWfR(j9<+J(;<Z^Shd#i)57^P8Ezv8;_Dm1m&3*Q^;PWo1P)AHt<AUb4)a zdMWT=zWBY&eZJ@5!@`YVrz0!AyuY51)zT_T9BTpAE#Zfa+IthKx`MS+_MWZFB{jR3 z_}qUOjqq>YckcaxsB1A?U*jpEzTWTO=d~)vBENg|PxIq=b6WYp606K_pXdK-0&S~v zrpyWRnOf^Xi`y58gMXW1_SlrY$D>I_qKvN3Q)s_)cjv!j4UJlT+vA!_G`c#Ia#wEW zUTv(rJI3U0dOnk#XTpkaO3UWz<-1nAe{iikMLMvL@M1|6a7Nclp_5{SRPNmo)$P@R zOLv)aa9hJbvdQzJE-=|hq3>sDOkSp~VF__2qzbA!Ui{tRI&V57g|=mURxZSYDWbpi z)`{Q|WkDqL;&V7p)2~;~P5^(iO|lQ*%x3gvC3(YMt+*1}js_Bk?{TnS{aOo@M^eUr zSB}u#kKOksqZDe)uM3ab!UbRmHw7v%hj>2)y5%@%uJPmlNHv|V*)I#6Pp!-WjcIPV z-V(TxIwGYMI#|N#&rb@zCvFEkiVtadA!{2UHcTW`;XMZ+k^^Q6fEL|roS^j*6m8aZ z$zPQ_!9VPht`)PVG|x?UJ4b=>VI%t}1yTyr*~xbN?-r55ge)XZ^M|^wQsUQBT_d6P zDKBtq&y(XqPMU0i)VO#M8amXg1-gPaAiW)NMw%lI<M#B94*mm3CwEA;)5Y~GVZJ^C zW2u5r2&1F0+&RYfrYEG-$A^IPw843baKD8`W~?Mb%|=7)TKzR;C|N@rVo0s61^D*) zi*G!IM=2m)E*9&5ly;rBnUUht4gW;3#j{|6c+@$#HjnQ=X#{VYdecx-LqSd&m9za| zNjOTXKZk8Nz69#{sL^91LZ5hc>A|=Higp%b4|(J~4iZm4l*=>H(Gi(;t&RUHs}T`5 zQ8@b6HtJ3g93yd$<hL5iT5NK)>f&qTy(M)?Y2TX=FOi2de$F?8wYbfxB@alSRgJz+ zZon&+`)fBXkcIV(bANl%;-OsiH!*{5X0HwJofCr*d$!yBJu^kHa?6?&#C&Sew=-?Z z=5Pj%^F%X<@WMCC&@;Mg_DWvE2GgHHlUE|;q9CO;NLUJ}a-$XJQrdA$Bi*g}bKh`Z zMs=W6b8emms#~59uH7l#T*sNQ-P-9oyy<a2VBDE)6`Qh8nI%Gn-E*Ox&4OAktNe|~ z2V!XEv;I=vxlcz1pDsh8`#bM49`Nn^p4U6|87cPhP=227T9vXQ6n<2~lQh`(By{;& zkgyBSY359)72I!U!f6+pB+@fqsEIW;TGKUoYj`C@znbqzZO(Ljsh1<Q*eijPJGnj~ zn+a0N`fJuwvaeH?v#g({BKLVWb)n!ovbanjzeFN0JMo678z1cgqoF@lvq(h3k9<nY z^|2oBeED<>e^8~TTAOg5FXhg5u#xZ+fv@?B?e9KT4WTI<jiz(nWTc_QH-`@FFLZ89 ze5m0O1sJs-6OB&i>UW%M5G_j8_p+wLCSOryGuVz8jV!Me_PY9vk!X~Lm%nLk*?HM% zuHPZ#K#qz5f#Dvy6}E4sU$0sqUi(-md*AgP*MzT2dwj+VhhsJRZ3PJp$`VCg8{##8 zat6)ldc$2lay>xR-ay+N>IsIcYKJb~E&M%B!zM$R#+^Ud9g1&>X}k8pOrtP@K-!_g zOBE;4^HwQyBbEymb<$Bbl=@w9k6wg;GehqFCuW9@51;W;zkAcpq#QY<p2KPfkWO>a zPt)_V`Od!02k;nOJYT3Vy|q!XH+^oZae#}LdpICFwDZvkH%Os9e_3o@y7(3Fq_|1B z2+p5FWx3$`Aje>t3;|U$ov<s9Y7OD99;UwD3bY8mlZB?*#zA~6VA8wNxhF;~%b|1# zA)258yf*2{#@hRU6E}6Hrp=Hpv$8*<2k=I_7wE{NYW;T^sqkUa==ByIlmCaU9HRQN zm~FjIy0ko%!6~68N&b5>a$pL<-V%`)IPs1R{8WzHXRw0w@C%HCA}4o<e_XX-En%Ow zKmfzOw;eUM%fuFhGsS~ISnPogA9m5T<=i8+$u2NuFj@slYLmf)vHpc|dIAmFIOo}D z@n8+nUFZ{oa$0)fT(=$qsFBQ-=Wc@^cGRN`8O1P$Ni*e~_Xk(@ZrMl;7$Sx_6a(Sq z<>b6tDg?7kAR~JfdXTvY0;~CE>NQc4)Q`kB)&JjY?8vSS(ro;gkdCCxdyjEV@q_T* ziVaj}eaD#M7+jfGAE@>B`38t2QW|vi-u(qga2>k<dVPBc><qlWb}t%ATmksq+OnI; zAJl<4@|>XEIWK0UXI~d!@=*~c8@109mc9%xsEgG*?Nzw{AO^^GNW(Dk&%}dk)t8d_ z%Ge>&-<9p(gJMIkm|=B#cK!2Z=dib1tv$D=Ys4Nb+LSGP^3A&SQqt(1St34Ur_XQ4 zXK-ZN!7BC*@>|E(5|G$J%-Knz;mA#u+mzUmZw%(VR9LlRAAw8d1ln_y$h<u|?`ymO zc5ND8RCo@UAkX<;6GY+rP063rZ&2V%l=rrl^xSTn=oYTtA#SoggNM5=#<ZW(0A$`G z7g`wp-Nm~7y9^>&wLcMAZT%b}VmyeuOs_>Ame?otyh%ClWAJkCG*rPRn}QUh|B@1= zNWl)FxfY(*6hwY8@9xQ>P6B_yt+{;2g2Xn<@Uf?!`|&CVmBNA{Tn*AhSJqRb<EYyV zUD4Qn{)<awzi2xJ<mJ_+I5#=h4+Gk~$${=KaZQedN`*Wb+*hBfKk?5aGh=8xg;5Cw zR@2uKo(<nI;H_k9cE3Y-M7~j5P0v+^wX5)neIA+6S>FU=V}=2JF_*<(4!2kEtMIMP z$<*g9^ZTi;dV)2RAjPR3a^M;t!)iNsvh0mEMy)UZ+=dP_ZS7E3s+Rgj8g^mW;yQgd zdP8{t#rFOplUr*@-y2V^EskquVYTbEEm@I&F*ZHTrCTDty=aMEH%*@S!A9Srl`GV% z@ji_84xzr}E&2LjUzPUuT1Db=J4YuW<B<EOt?~zhw{r00kuJOx=jI*4y-%r>WcT6E z`0LopJk;c)MqpjixcUAvE@*Z6BVO@imu6eRS9~>_2yW4(Au%=X@|lm0s?6h`DO?CC zo;vW}(+LSKlmC_SN+mveqHPsC*4Jk&1n(VOTDw5)LO3m6dxr%cKn=?D%9uXjckhIc zc!8ZoF(w-i4u-2|Qa|Gd*37^pB1r^_-B~gbAYsVvwY$^=-p?9pWhMQ>h6E~tfYhm2 z8B`&|x&p9NcY?MHN?}!ib+xY^V+R3n?fK^?gGI%1fg(5$7zyS1?=IkOD**caNYE72 zl815|J@$h_P3tLP#9rG~-8rxeAKy1gQ3EC=|5YG1Mvf>!b-f`Ns3Q0+Fcf`=@hOd% z>UxgsN3$T6`yU>O4b0kr+(iK6BVDlfQ(|n<Ed)TgtK$(33!e&oA_Rzl2{HL5;U@KT z1Tab4hX5Ia)F>#sPm@T^dK(B2Z#|Erujg}aCnqytR8GtZ4ZbiiJ#>Xr0I-7v1Jvt7 zfBV0u8E0{VtMy*G1AgASu`6R#7yy~7zb4wy`L;7c_0}3F?AUqp{><Md@UuhNwcEh8 z^<dz{b_v6eRx#25tI3BGN>mpA!z~_?;ug_Y-}}D2Bsf9dUU_+fuFK9HmAG>9@Npu= zZD(3!&tff%-d*9TGu8|TE)w+ix-=EpP%0k>O;DvI{iDUZ$y*rD3ZZNqL$rga5zP&T zZ=arKjd)DeV+i#^Xb=O{KX<weLQ|m46g$$-QV;`tU2}KA*YIvbGdof+%q79Uj%~+| zDlHAp6j%#!Qs0nyEHl({_PdET67aa$#hJ5wi0bY=UvGf6R#HjP;V2sgad6j`_-&FF z!cdHC>cf<t1Xdq~=8CwBsE&tNUGoQ9RDJH`ZBY@e@Sm-ZADy|$kZ)N{H6$!H#*+|u zU4o|Rn;plP`I7Q+U~9oM_o2m6F(j3rl$eKQoW*`qS@=&~O!D7O^wj4l=GC&1TW05t zT^O3Jr%X~QocL=pIRq|M>`46rD?Nh|Z_zlpule3iTk1^7mGCEcy;D|EfWEvt`_@rC z*o@Rtqrg||@1$EP*z5W?aH0?*1SWh{?#B<ic?@n8C8;@@njU?|KQI$b8d3dHH8L32 zQZR0FUTP`VeKgZEEVq88gzxOB7fG10Q`6u7Kr==)1y&1vWRBDFyOkPpPnD{FycTMy z#Uu1%sl1o;M}DS{$3lPa#p?N@mP1hE)bY>k${&#vWi?L?RULRU{S=09l|y%maxa=G zW5Q(P3YYQ^W0*DMr60c@(ofCL691mgJ4**Q(p&zz-MI1a_9E;IsGF8}F8L-A;1nPu zYTROgn>WxD)wsEV7>PFl{05Fs4;N_gJlYQ)D7*zHgH!fbOo|+w!6JKs5j@vz8=W%2 zsyv7}OFrC)0?o!FpA&IVt{Y#=6?>Lq{0w70ksEPUT`5WdGb&d8?S|INWS}O7ZU54X zgw}QCtA2vl`Z&AB9|UT3L1|u=@e_WUVwfw^6zm*F55Rh0rw1(9C2%RX2#?XAcixEL zHNX(g&W6YfqiDQ<RRbH0v!T~d^otaBAvT~yf`dQ~s#wRLC%%BtpyuZ4$rvG!boBl_ zu_0(mig3t7n$q;`##0Z5K6g9N6{JDhdpGz%y@ijPp$R3V5VRgKG6AB|UBD6*Mgq)h zdN}~F2kSybdLVwhJSBo{xE26%T%MKn5(>bqZ7uZf>&&z{xF^)P-r5lzD_f)22ZzEx zu_PM_^JFOZ!uhPOsKE&ud^6R3(IDQGsGsiCc&Qo}6&hGwZaFRf+G}2-%+z@9ub3ov z3l#M!5TdFTe8Me0_}hLj^1O~`0wzmsUaflf(TUrd=L;WDJ(p4#>NcZFtqf{vDW2Wt z2gI2wVC(sb5sYl7ms$wfX}$S#`OAV!jPG|BxG%kq{S_FJ>-95WNjQBQO_o`%bvGL- zq<i^0d8J;@yYHedQ4%AX@gimPB3NRk<SkHBI}_X+qQorY6k+JzDI`5&rk;zhG3~De zgeeV^jW_<?q91v?{eIf>-VmF?Lix=~U~HU~z_`7+P6Oqhqc*z71(DajE{|Kj+_N_{ zv|);IasQz1IhvJLc@+%)9K?{j0X)D-5mcD^EMxIHh<Pk_46ADlxjPVUG2Sg?%aede zeLJ$J)j+Zm90SCuKW1PDS&HquY|vzXE-=G`0v*TgGQZ`q9&}$-;%1X*rsW9jKxVX} z#n4?UGZwdzw(@&gkFDgUkiE5iX-V+|dvuUMtu*3-X1pTEh`=yZPZG*9bh;BlkSbCa ztb=t0Qf=0$8HQz9Y|2jEdXg3R*b^SLaax&_(0p^uWBQ9>CHm8%#a|96w@2H_jUl^l zWW{it>hR`AjcJ}Y6qQ`GYd&YJf2v5MxpbfJ*E0TyxIJ1PkRjuGTl5lFm>O^0G^abf zdgFoDcFm2z_4Hh^>!UO5=lh2Az2A7ykM5Rhv_x9~$m$Gh6M1&uHfknUWT^kvK;8$j zmF5&x=KM#Ay)%`5jiqDt2$D7~FJujIsG&?*_)pS5oMdbx%KT!5V?uE<sx9R6BYLx# z(AHViht;36JR;f`&34Y4ihh1YX6MEn<aiVfwdHBbmXgg4+6vw`af;g6R`{DvcHt}L z1`T)+F$0WOK@jz8+81YaNPq{yz`L;${U3aRqjmz+aTCxz`1M3bX0W6j@w$Fy;4~mS zYWq}aFkNIH`XE+wA{VMGxEb*va5#|Kz9jZ&-Ib6OOq4^l>VVY`xHg1Dr-Ov$V<8yH z_9V=3b^weL!Dra{SV9F;P&;=w@buO|8}x|M9-`0$qXCFb3G{&lB(JwHJui5c(Y@b+ z%a7~n#EHQ8Ch6S+9R#YI#&Xq?4gto9rSEePCYE-h{&JU{0<K{%e1J3W<G=@eWcdWO zB+5<sIF_2Q(YP86tcT_Q!XSc=kSmOYA14njfqOvNvwE<8lo@2e*G_VPmNX*(hTKb* zgYu2O5y4wOpa}FM5Ni*6dx3`6G}3Sr>V0?l5LU-4257Pe@<&$wB%UpH7G$eP!euS6 zc38Ynl?vq!fc9+_scH&(!+@6nmqC*^{BaUO1hja|Kff;oA<jDr%34jvgE##JMp#{p zSwQ%$If7az^|C1wk6XK)<JdR@$!k;^0$QPy3bsD_PY&H#tad$sz1RfgIr9AkTqv%H z6ffhTdzv1Sf}a`$ga_^!fE5K;_fdh*Fi9M-$sQcA!$=dB286$>XCX8huVbIJ$%>qR z*KyUD;hiBxcrk0t+X6(hH6{89m7T_t@8hr4(r??$W0mc1Uz(Rq%c8~0n^|-bGP2CH zRJhm-6d?wJ3X7+VecsA9Vjksd<Mk$Gb9L4Bw-miT<;=*cS>Eq0if6Dh(e?kfa;1sA zt!3u9M`zq$I1>1REiTAg7!IjJ1j65m?Z2Tn^k*&tnv)kV5FXAI+oD4~qoL5%xi{Zm zY<F(#NPT6>9VCHoE-B2SD3J5M#&g|eB;c7eZOi+f)~g2Q-c?_~UTc(|Tw)zJ4Pj&4 zm6o5R>EGYFI>~$02KJ;>Ti!XpFGY6rz6Eo3ZU~?G#`IZo6rVy2d%3zy<>i9&vTh6| zy>T<{<r=Rp?tP6^6%cw9i)t;pL*df%ZPnG{@@!xXy4ULbPxr*`VJ2-(-<shvGhE)d zz{_s4popXi(@;jps9AG)+Z8vaTkF6=D{En2B6q{+${pWQ+Ra*r4&KYVw6&Qe_Co(y zaW>3?h*RYIfwQ=v7-GW&_6|W-kKTtU;t=wS8&SlURw1N2SsL}VCpR~1#IU^YQ@me4 z4(0h;PqVHiu?Z0@dX}?FCVaQ5#BM+<0R$}BgFO@CtVZqE8$;bhvhHJ+zmd~_(l1J# zrSb(hhf7h;1ZH`Ar=eZU=K_k*0ClEwNh{Y!N<ZUE@Al>`wH6Pr`piwUOQT&#j6<uN zGA1IuR|aMg6+@r*-N?fiByR!FvZQ9C6#BL#xXrKXRrmqJF)s`Q97^+G&bNHrKdzqn zB~4QtjPS`I0M&NS&#=etX+TS>>5`9^28Z0s3%IUxU~~kXZqs{vRD@r70X%iL@9kKZ z0nZRFW~rSCoG=AyDE?}xr=MWx24H%QVG4rKf})^cHjy8-@de-f^zW7&yu$5OV3^M$ zxbTB+Z(u&k6+G;uAU4x0W!ZSuYR&&lulobS44{w~d>O0(yus@qz*lq(=RQjlFZZje zok)tnnoMu)K%%B3OmGTPPE&)#!lCfVFLV0Eu^?238^C3aq^k*?R8(LN7~Cld0(Yii z=zWK$ba=bj&lJRl&#n!(B0qvR;QrnJ!&tVqz@qcoMI9KSVOZjTq2tOQbB4WC0pR4U zj}w8_Y2)8WiY{3SPQ&n)78dNtblX+#Y*D|l!is0d7zq8H!?^$sL#+0kxu0s#_2vT% zo$<gQns}Q(dkRYS$vQ>2hX<C&P3-`04kS(>Am=o`dw$DHuC~*<(BTMt@T4?b<{@Fx zAIb%v@cydvt<JmCPr)#Muk7WPr2)SGIu(IHZp0<~ruXLDn=se(qd!A%L*EVIu|D>J z$X@#ITkfiEP7CFYR52)YYM#x9NSQ7k`+Lm#$L-b$GN3Sv^*J4@>c8S3WJ%-evqWB{ z$VQcx`<Iq`#M(Guh@YUivUEHdMg<vpPxGlS*K)+G9p1?xNxHXgqkQSG#zR6GQ0U}s z%Zau|eaNmY^I;tWMEugrF;vGqh5#gn!<#fRCvgO@RP|)_ri(Q96fc=x@}wdN9ZM=R zwHM}x$pg#5ioLN$>8~G5G89C*;=;5?%oTHd=Wi@h;o~iG_H7}tZJNMfR%A)ZqF(Ez z#$w=naajIZ=KbcKch?<|j>2H5#BCFIyKQ+orbj(J8Xt;e-32W_Hs3Z+VT&^~M-`Oa zI1sW0#C{IgkVizHIPdC&-QjFlal+`6vx#j04<!=${Q#X=X~T!BoF;6yy^C@`)0rLd zewsBks%)-!P?_0U>rKk-$IC$(P6hQ7P8^Jm;&r#4M;U;3zw(T2V-oIWj#Cuw$|0wU zrF-$7)cUvgL%DCf2GN@nEKdVK0b5FZIG!g^x+kX0_NadvoxHTT|7Q2~(CgXet+pty z%L5G+v~EFxjCMT_yNt3)a7bBi-XiN@(OEf!^F!F_{z-LK#uu>)r`8@eF-@<xTtD#s zepnoPBaDm5zFdVTj6JpWh-!IoEkkUx__O7_JD8}e@BiVZ9xbHj{dx3Vh??m{q(c;g zNBr9m82azkJD{m?4aJa>H2Mx$&L?jI*&hvbKk;#ZQ5yzVcNfCeTo3rdB6l4npt~dc z!NATd1wORMSe-u}iweFbIr#x!u`F5#zWHt0=%c2nTu<N)(l)zxFAJpu3`Zx4Y|pQk zs*h_dFCKbP0%@;e**ghrELAm}y0!+42!8kH#{@o8tv`)t)BrYw7kq!DP=6i{j43(V z=iQ}Y!xY^e;q1d#xOaA**bO>-x7C5f$Bii6u!T=sq*Pr1F2s8$3g8Qu>P--tLh%1_ zIz<owT*)86duZ`9gg=mm35Kr_U`JNPHrxVr)Nd|eH-dtIQGm&b8eHZ50$>;$=h_#* z>@%UQ4;;z9TUCG&YpV_xiI;BEU>l4Y7Qip!lz);i8u5SZiu63CJ9s;b|I_<P7`pr! zfEu8w%Ev9mPe_eToKWsGurm|f%G1KZ{E(jn;P6~d=Dv~J$ij-bOO*e?Sb*l(2vXMJ zBe!?Tg&1SO)E+_&>TUJ*W!TEDTk$>+B)-2@ybGg3vLSJvLq}c)8ghsi&mX^g@RyM) zY0ML&a*CkY|M$tBTVD5V2>C>CNxiHvzbNg=za2C1a(Dj=Phg-xKG}t@jwNdrHu^Fe zO!E%zt2EaneZ;N07jOU>r0|d6S)+GW&uB7aOFNEiD2U1$Y3Q*0azf{~7d10K28r9O zgJ6cq>2&bT;SZMpy-8IWP)k%FU!#Svn4-ev*(=%7z#>H=X)l9_%1oGaao@Wf7UbqN zJ`MU%K(M>?TuyGI+-J%NT=Q2hr*w-lgc}q7`Mm5AQf;*(8V?d%fw!5CWb5kB?$4iY z1K`i!W+lT9d|dS*@|I*K=VkLd3(Mp3W)OO%*1i#NDrpFc`ssM9mwro~x$b|odcxI? z&6Y#j#>_(_+CTxwvD2UJ$gHUAz{l8>gSlC9@or$w*C)pfboJ->5I@{^#gNRgc7{D` zy2bq1lup9WfYs{<2^A$8Ak(n_ys02TXWrt87P|(#?&~VylfyQl>Nq?W{I4TAa_L(h z-(~*RSN<ZK;agzP9i8NV9OvDzFWLQF=iYAcyKMzMzWn9qmF~*QY@ON0zf!XPTB+tX zkL7)Iqp}^sZJ+77eS%|C5T>Ge!=>v!Pn%fpU$^Ox!RUGR!Eu@*feUO<^;(gHRe0~| zay|2qw|O;<)TFMC#$&fagCO{?Tizz&#Fitsvi)09GfJ7WUTNrpP46w~WO}yoB`eq0 z{Bkq?FkH&_TRXkA`y=CB^Gf);cjPK#jf2|fO8zuD(x`D`?6|I9Uh!GdAitRNVHexD z8c>*5uUBu@EQHvo%z#xmxg>o7kCXNsupHrjFamd?UE#%?L5J$H9c{1<eBtLp@ZsN- z^vt?ZDjYZaS)7x(iyMTab6tNm)8__dHZ0ZKeZ%Adocp3BX$sg8cAW_=mP^35xZw)k z{i~M%JwXPg1Fsk@15yF{@T4Qc%4awoRlDmzNU62;b(e~JfkU}DU?SNNa-6YWZj;;y zEXd$GA85J@KRK~3Xv7rD+m3o(-?|4od92TdJ^*_|PNdMubdc*UEXE&Dy5XOVSH44{ zIN2a7iTs#%B~(-L2cI~Ufvw<%g3{&26rHOLjC1}Fajk!z0)_}WA)^Kc=zvk5dy<j* z=zSn1nwK4Tm4Z?)W4k29fL;KeW^0xPN&+{l8w|7OtJ>XiLT%K67!0Z?2`WLv2)Vz` z;l9-Pe`7+T%1y#PRp1`8C|dh5wihcH{jBOr1p~5nb9|NkX4_lii-!9FR0IX8(|8nk zsIHNTqM)r7{4`*1R{eGq<MHq`ejNZCCh35(NO41f24CF)%b>;c^m<*zK69(hxzgJ} z_kC>fVPp=J`;SkK@+<epqogUfHlP$lPkJ@@LFi)dY*$Na)93y65~UwP)>n(nvwrKB ze#vxsn?+no(2vaH@1-J?-$3Wu+MUN11BIY#WwG}rVQFBr<S7kanDZ=EcrjngW$VAa z(x4!?&?ve$gx0Yy#y#eH%Br}hCCDrJrhx@8yMxuEHy4fLypnluTF&tSc+Oe!L7vsK zKr__S?#vZO90(O_LV)&S^Cy;yV3;VkuF8i~^PLeo|BT(iAwvR&s8Kl0F|s%?vm-)F zwkWMVWh=*m)NpzEVQ|#8ulCp@&D<HyjLcIz4k+!9FrdIl)G8z>Fgp7{Nc)4Az*cZn zGRVdN84cut{%`kFAMf_%UdVbX9vWt*SLdc-Z0WfB@0#y}u1kZjd&uXqzTfG2HD>`s z>#mk8e<N8oz|a-X7oYa^?IvAJA`!zo@lNNEmOoO?h>aj*SX%QC3-7gz+0wdbSnwe5 zr5o`f4dW|`v(Xd!AOax*7vAmRJ&yyj%09%OxA6{^!A7ibM^vCDfBE+?WL{ViB<PNl zjgb<E5Q_g%;y=z<uVlyC-EoAUXpFKl>-0sbC$%Fh6)dXEyoulJN(O{loNu^FqA$E% zkTcDHr-b{dz7#Iu-B9Bfxa(@S;{U~&U~boM7IZy{CfGqBR8EZieLJ)7)#{*ensfIJ z6{Wt^a;v3r8(E2au^z29=~qM&LMtk7J)bE|q&@{H*?gB;9kBRZDPy=<^{I&6f?9SN z9<ejKfBwGT-knn(58os1Cag^IO<g<(tWRoGxUQGJd^igyFL2LS+a{ltMqe%hX$1W& zRDiet^^64zsA=T4|Lu4e9z^#~E4aXmFgs?DA9_y!6a0?T3ngG3kfyQJucSl{rRRaE zz+<74BV5V*q{(vU9$=rC^H$w{)5z3=54qU-Un8Yx$XW-ULyP5yAO(_*>W>>?bkc?o zyWvXEf3D1pL4XWX#Pzz49DIFs`Oq^X!ea%YIFxu&P^<1V0Ue|mssNfI4*ae>McH&n zS>sQdBKi`gQNhf==HUeNHLjDJKj0a}9PS9i5EGlAEN*Zzn)2j!v-ES<mpID@<h81G z&glVI-Nt*M_%Wh|Ac12^m()|oEn2v?!6hFEY#5UsEOLvTaE3vK*apac^K&$KyT5$P z0boJ6&4H9LQ>U(!Ji~^heAk6yp$3|qoXka#RFd~gfF?K>AcX4=JePqe*7dQU4!HkU zN#CNJP2{;1-OsxQU~0&^F%We20~d!p3Nk$+Y1-4KN1UQOzCHRV=IW`*&fUabr`hOq zMjd{LSG;u3tqUnC1vZJf6$kfJ8u};tqXRFUBKWCJa($TXy#w4sER?{90WR4HVnC=* z(#E0zSlhi*B23_h#KrObv`G8wklkDE@Op#?l|LBO<^OIc3ln7!?JYGS;q}>Xb6uO7 zTXK$!WON|A*9e8en$&a@2qx48L|#!}YS(c}Zzt%Y+2TOfDL`>h2l-SSvI8{^@%{Mz zR}u<Gl@ABbQ|C9*<wr=0U|q?z%cKq#7-<i8y;KA!t-xT&tF;eIzZmjX+(ek1@g>7v zEp7}zIK&+hlf%jYBlhqK+X^ZD`WO7Hv0mZh&oC$)w#*YPapXQk1s(n?Y<zb0$Wn{~ zO;gItbzJv=7f0x{mlFki*Mq>FpH&MaC4P-d%oLzvi%pgAea#TR;(Bxcw!r;^ej6*7 z!`GunOI~ujx5V<u;yHKt%+Ax`1x{lK%@v=rIHl&lwdk)rI=6G<cgdsc9YM4W2%PMQ z`a>Zr7|(R8hpNvl(*QL>|8b2L{BZp^IOd}cSjGzq0Kd^{d5&O9t0Vbz27~6v`mpc6 zz2gj*Rm`>3t>Ggx_yC-O2KbaNyW7QCJg*J8_w~a|y{3#6^Ngx&)({cNLW3p3osG*E zhL6hca`Re8A_!(Tn1cJB+GH|a3DQ0M;9-eHb>|j_Hfk`mh4y(o_h%5vbF;9$m-EyN z%;45TE<SIT(oq^yR{(<=#bW%+>j>^E-TC&x)j@{taNZ~F=~q-=D^A=YB!oLj)(Iwh z-9MehhLVfqm|xb08*Q0hnjMt^?D?OH=sa7uPV`0()6iJt8-9K=n{z%Gn6Fzp6HE$J zmhTX_v0&zJ3lgjD!CN^MB?F_O3>vE*tk`R?)nwsJc$mcR;j|X9)R)f)@4fJ6`la<{ z+scSv=%_{iYF8)Q_6QJ5@B;ayW`9xOC!n{M!pOymN~8Hdf$5&BzwO4y&#lUF;E&pd zilFa}X_>fFs2Vmh1m5WrxmW&yd=hty8?#QscnNSOX`2T(g5$s*k++_H1R5rwWY^eR zFa*~<kW}iLG*GpfQe69ecHp!HuqcB4V?*Z&h!uvfzcNK7AiTXLMJ&|#|A^qZFL`1~ zxGD)JA4`B0L9pSRAJOV~Zx=@Rwzp1+pJx1~{e?}n7Tg9jAN8IhkW0W@yju$EMBqn) zw})ymF!Q;{BL<h`AXUNCNr=?=?6KM(YJv(9SdK{JSwaBudY=OH(ABk1GT^H(o+9uM z3^W^(y^`xc01x7OLjW0-0W38Ghyf>=c9F=^1%X+?@WVQ_>3`WHKkp423UrteK&zbE zS86TCpTL?%Y!jJ(`l{|oWxqz9eA>G-`HuH>xzOsXHz4n1@bBilIOB|*^rFWCd(`A; zELigQdX}-%NW(~L9ycysx%GLxP{%$$3YZM%4Gh?cJFeGXJpvt+%ktvj)*U0)`<5>o zJkwkOHCmK5q7F_Xu5L7>9Hkv+3KnEukYM?`h2vt3p1Z7!Jc9U-bO?r;MPCAQ`-9-b zq?A<qe*F4=hcu~~F#cpHAQ}|K4tCncEl?Znl9X{ukuUU@04iAZRQODYiqf%<1$r8@ zH(W<Wpm_2ij}~t*ZGT8I$vY3^{AK>)7PYw-b2A1uuHbCAe=uaPAHKb#{RMwqbNI!C zPcM4t-_#!&2p#6X5nJS(D51}&4IOUn=g<yW-FtJEZWDM}nOE3~p9fHI3K)L(GP{%) zN?&y2=e1|AT&8q@c{%H9!29Sf4~UrUPPk{Q`uCh&rp&H+3(~>P?UkG~7o_AWd$DL} zjCq>2N42*8yDfXw1}MQs|LLOUu)h>jyqfcej|TtZbBQg5hPMbOpX|^BCtmDgI#U0+ zXe%|g7{U6WHGkFjhI5tjC&kFjpY@%oATd=|nkeHcYYb{Al6*$s8Tz3dI3J8kh%J)q z<2<(sKN~k9vjX{wVES&L)8$huP3Sef{;l#bOM&s~pRZc$UkH60nH^FIZco)hcx|Wb zMxo?cuj~J*H0d}~)$fXK+Gq0+N!h)UPqMvpb=Y3+{rGmDX58rSVY4!=2Pn_2ZxfID zLQAXzZmcTlKf*MSJwsVVf>S0-jo=j*noJ<yMQp(J3r}Z9tU;o{6E2DF^)q!{T6qPo z-}f4Es22$|g&F-o7C;O1?hMkH_YLy^AZh(a8}QP%q-$^t-kAEYtGfFhNDWxfgZOX7 zvu!;gc*VDH34k&X-{i)C=5Q-?MK2ZDCO9$xUO`1QdzcBlHwmoX20(3;nO86kJUK`K z-a7)^xc-{(Y3<XtLQS(T1U^!M=pK9`@I?6QiW0~5RSr&#F$9fvND*n)zBBYbcN+m) zfE3d;1#XNG_w<F6{a%I3^avdl0gZ0~KEa@MumC9dH~^L#^&fhv*H84pgYC;Ia59oO z67fFu>VJ-7*OI+W3jFlAJQq?t3q1YvGr(88ksXwcuZ>LO$2RQ7j{yT<;}K}5@3Lb= zIu+%fA{ZDL+^f#>Eb6y{R3)rAk&$_xEk5C(*$h<9-ZzCIvNoZ*{ANaEfH30B{4^yD zEzmcvwlrn~0!ei*0CHSPb5tW<4Nj(qdikC6;zE#xu^qxt-4#&n@PJQ6$X(lE9BGqs zg^k1$Sq$t4aB>pP7)oAT>%S#me{FI+cEf?vk_tIFX!@H_jNcsh%wvn}c8F{kl{@uK zVDo2|9F1%l%S7v*|7xIIHJl)y_Gr`Ag6^OpWx({S42(qldJgcBDDbOAjOi4_;eHc! zs&0J0xomheG@+SVTYA3F@`)LL_X2<>ogWc2huQ<fZmsnBEgi)HbKV9>Dc=AP$uv2i zO5>^ukbVpV<#}k2<K=tD%b$v#@$)spqtigC_5^8pzqd$8zW-fLei=kMs?{r9N?%Uq zsBvw{GXlE+DgPkPX#E)C^SUz-safC6K2vGub%fm=A}tjF65K12g<q>UvmO0sHCj&M zpy|3aNFz)h=$WMTwH0913XdJyzwhtX`kKYb0Aq5+)(%`+9!xM6XU<}c$?gI^=z9Qj zVAOhbRKML?c_--Oa^Yc!c<CiKz@_I5*f(H3`nuFToxY#&ET5&GWzzbAAO!%STICtT zD@;C>{BWZEV@l*Xd~+`L%EeoT2A~7;=A1CsA%A#EZqeLFgsmjS+v|T=8z?4UX>xp8 zdj8uYnbSY4s(4aeH#1&5efZ|WXtSNi#}zwrs@-X!V3zm#&jT|(E?tPPYYA;B8=lEy zSgF6-vvHek#9qq2mm%`$@&hv{m%$L7oxc$CV8>o#&kCsXhs%40^%N_;S0#N!-W_D< zIUx4)B#c@U3K&}^R+*>?YYqS+Vyo?K?3>k>*vQ|L3Q%xbK@id{^9s|eZi7YxyLJ`t z`bsBJ9Cr>M2QH}T>0>cduo_U#=6%1*KX3`(qH)jQjL80WL{ian89TdH{q>qE<4Wo3 zcBOa#ArLfBZ{au?_C6>&3d|?p%@=lWQRz%zs!1K59Q+nNy7Q!@;RxH9e|1ARjZN-b zGDs?!N(1?wY$1Z{T9AtAV?pj*qS!pSJS?731CUi$=Q)~dF7^(`KVQdN>i6KQUjl_u z!j&&=B2f+~3@n8baUFJb=`qS+w8&Wp7D_<uz-cRk3;T$7)CL|7j5qM)m`VEaGbz9! z)Phr}2|SN_E_#wOCc*)sXrxI-8LCrvuw-BwYUQbGT}w6505iJ@YqDAPR8O%2d>X6_ zxvlju)VLJLI#0mIW=TVas5|B54va*ttrnLliI=<u`=|s^V;^A{`FOQDS|vV}aMFpN z=)^T-J?Rg!kwhA$Ysk~F`?N~HSOi9diLFj#zYBr!a|Aae(Erv4s%V&P7UQq9wv)%D zP$TH@${X>(-rIwrL^C!5PZ6Jz5@giI2O|v*vc9snF?)en{vA!nb>bqLXdp8~xsTW( zUN!;HZ=D>>*mNK8O>8)jK>I7~v>4l1hX{W;wSS3)pT~|okZ(9gfj;6ATmk`TdlvBK z2XtmzKWT~qR@h`@tX2S&8yUV<t0LqO8B?803i0)2qV2;-fiPw3Y5Z>7{0x=?O@&hc z*n{v3*oNwaWNU9>5OX#Hhe&4&|F*oBU;)i7w(Q(F|AqzVajVip@NZZ3wgq}O1-5@D z%Tp4TmKQk4c!&EE-hK83uj|ayiB&76jN6{+gG*mB7pytZ1-I=S+&>IoHNN{iYO%sb zg96R!Hbk1t)Gd_vp$A%?{wvZe)7+-O3tPnXRy`_0@z5U+LOEou1>WdoJoP(%S72zp zImu_g0nL7}(1?Bk!WPUJ-q;V&kE{fT*K1s=HaMW77N^~u-d2{;sR<Q^C<<dO%yxia zNLZ4oI{&@7(Toj-kZo1Q_M9cE8zvf)ngPpN<rR+reYi2bwTJ@1A;fJW`MYx(fy-#; zT9(%Yj9Bz>^I-SgdNvJyD1G^z_a%nwT_u$!BDzc7-_8r88S1phHd19M&~9hVtxso? zbmB^Co4WYv(<|ggjppzzSBLND8r<y&w7Ji9Tbv-47$e&e!twLszhP;dRjUhypJJ`I zx>wOlBWpWXKRQv3W%Vb*(2b`Bc;Ag1!Iyu|n3=vbm<(yos<6_@YY2)@>w>e1XLIo& zzFXM6L9GPnT;tIS_+@Tzs^t+?Z`7TLQ@xu5*XSUlW$N0pT-LL9W6)O`Z;jp;zbCGt ze)0ZO`dr8I5YhezigN3n7rx}$sdjKLCFfCZJf`^mNxVmR(K8_prNJwm-uuGud+T+p z$MHM8q#YVP106r2Q|{-d;WTH$M7ziTiQ*QU`)fcc+r)LVoBhu%?f*>*-ki~)jh|7- z`;2#D81^dFmPTLL)%Wa4o|#IU+9Nj+Q;TNo9a8IkRUS|ug1dXW--$IKiSDFB4u&|* zq0NTSnUPzmi6<ip0mmpMq?whcj)8iTyY6<(1C)(uycyi6?ls65<yu<kW(Pjeu$6af z#Lz3<9&j-tq@YA+og{FJFR%0A&MTjhOK!5ds%-bH;Rt;9iE+?{@IENWfdHx;=ySPS z_`tbgL=WuCARa6>b&VOPt!^NXYv6<-^!(*<+N-+1>W*hty?~}@G@JV$BViJliza?5 z0cp_))Xnv61{qKVZSbKi>wleBw2Xucpt1#rj-ZwcxT9wtiL$_v{ErTJn`0ze-UG`K z+?zqjN|&Bw3-!iOhL?-+2U}0X8qWPKZa;hrP1FMkBJoNEC9-uY9-JPphrx^?z=45? z4K|>>Ho)cNgz(XVyggs~YC#o8j?_RZ^fsK-F7*DTM^@oY)-9|^eyIp0SEP`}<<3%| zC$&%7>1~TC(4WLXa>+?^AD~kTitf{uaKE!WxoxzAddd;Bm6erZz+w_`E_et8dJcb( zJDDIh^e|Vvlwk-*JS{$uRxTRi{Yo7^GdYO^FK^!PZ*M8ij?R3f@HURPN>g>n1t19m zz>wL?jfT)zCmYZ#^B$~O#tI*I!l2|kXj^gEZOSOmBly%TNZic5Yq$?ojc3@eVkfr4 z1dvg(x0cuqWWcY+KRNvtP|I9$>Zw^s^kkL&Ak(tn3LRhD$emwq*cWJOp$Kj(q-mB+ z{vkj-aeP5HZ4IhDRT%POA!`FhpV<l+sr#y%UX^QDYWI19TN_w9%tT77?RYuf<(_!R zW2nqD`f5BmbG#S!FjzQHl?`c9dDToTYW{;{Pq7Zve)Bu`S?o+1K(+u>S{d!&Q#0-E zKef36?{X-V3d5AeKOGy#zwU1<0I}(}+?#JNmf#$La;YkKL%ClY2py_44~&33BE8Uf z4!gK|R#Fs30MVwfDg)4srTM<_;KsG73KcDu+nkoAE7-U~-Z$=;9ro{>=gJ?N4+%Qb zz{^9dv`g7jbrbncK>`{w5PmYPSoo!)l^^FnuAw`$cn)`#T{*}4b55H11ufNqrg{+J zk>lYSNP=6w(xKp!iCU&lCdj$O90cId0ih%8ULHGrC1GbD{C3=_1}M|vR5ua28QH<> zW8LbezF+><ygayZ;fbgSq#FKdor-+on25#&uWGKpOvZaZShG6zy(xy!!?CAbYg{Q@ z<H!}@Z+uMOl9ExnA@VBBj&dZh%2jo`MeV@jspISH_#}=>9*oRcYjMAAIDG^gNnUfP zt5(g&M!{{w*A1T>KeMy@F-%Zq{Ogt1+;uxXKt1xhz&G`{ciuwzzCWgiay_ls^I|{u zbH}PQRO{<(XM%*@7b)~1UeI=<ofQO-kpwApdm3;bG^x2e5&UjprNzsCz2Y720>?r! zjUsyr5CvjRil}AZ<1d59f5P@Zu42GHfI^t;s9+3aajKUh{&hyj(&mn3Oevo9TQ8>q z(~&^%1`VjJpWscH#GHVWl1~(dcz&>j03eeZ`j#s<HAX+#9sF@7cnSP?0Xi#pFARXE zaZ?LE-A&comEX(^PcHuSE*UjBu<S}84gyM9FnDmKL3doxeU5v}(czJ7n1`snbpS~? ze&h+fNaCQm64(#c0SKW7KYlWV!148glthgZz)vE2UF-(BxPT;C0m8`RHfEjzMiaK= z2qGuiu0jMQ8+mL><IBmeOATXckhNto1G1I6PXyc5(i|N4X3M>H8Fe-s$ST|cX#j(y z19S#NqtYO_1_*$AfrU@sb!MVWcVSTnXnUCjw}9|LRq0nJ&V>RUqVVs3cPXn^fd}!* zN^sDg8_9;g6DXTX={rAdut1@KYr?UMEZxgMR)0fBPV#}14WVRwk{skMLy5G}FolmK zz&*Uq+(U3W&N>1sQo}R4N(HZssDc1s<J^Ce5*Ef_?0x)kDp{II&Vo9)>+YI8vs<wr zGt#7F=roe)>B!K#cv(td^woZGMi@qFG90_5y{4^KD6U90^tKfT4hU}GP%^^z6Ug<j zdVi-(D3{RuzL(r`7in+Ml=GkaZ{9Zxe8cyR4%s+}ccM*Z>ay)1=$ahr6q37Ef!XNH zfRwaUuJNz4PqfIN#ky9gE99aISJQAz+I)@Fa`{kh&3M{vLtfeeCY|q`w7VU}mms_S zVxiQa!pa9~c@hV2jKgj3E>YogUi)t?^_oP^oW)A)o~Iqlr4QY78SJZ-C6a0fj7y`q zEWwg;|3;z3O=_cueG5-d+0KMFYlD>dw0ygseyX)4l*_`u6p>vZE_ja`o03yRz7>AA z|8bU_cd*snXFDJv_Cxel3wIiGwrXw#ZI)3e@Foxm=H#3}Z}Cr`=8p&56H`AC;8z+r zg^R^?IANGhoc^HmP;J&q*Ze_G+uK5=*y7TMRxqR|5;p$yZsfGY5~;|U&+}kq+s*U5 zc-U_GrB(~~+!<QarczjU(Qkj7Gl%$~&X&lxWz{bd6XyynSM1!2{=jn=jy!N44H+(K z`U^J;P_2d@f{yvHlnL%Mtm+S4%wcH)O2ewJvisE)qfT~t>LyON(5dxMk5$?YT|~c+ zG;yqOyq^7shh}TgwN3(KZ#v4%I=K3Ar9{7<bN+nAJFRQZ&eRgT9sV+<d-3uzQy?Dd zQ5KY)Op{7)y_s*G+lld2#r>2U0q^<=-XjCx=ViPvifcIDcK8RvNT1D+;4g6G1750U z?GC}Z@=Y=-y?aY!3P_+FIy?x~zKt}T7dzM86o0lyVC7ikx|LffKIIw}#HGcE0h>n< zVFriBde;#>?-YPAI^6=wL)0c<m}tv`3KNeDAg-7>>UX`5Y8s$YSlcgPgV5Y=-L`BP z8zi;QLsGRm@JM*RF9%LUdk?wQYQP{uH~4{v5qA<ko|vKsl!OWFnUH8EKxh2TM2#O$ zp}>QfWaJDNI%-7w(^M}$l>$EyAvOVK2gIF)c{x<KtMWfeN@9v5MhFhPNbT>H9>zih z{~^FZ4O9bWDeIIfCT!3NuHi6b4NmwQHvO17nsXF%WgXf)Iz^aT0@j3xVZd%yH6#N% z0z&nXn$6dfOF+w)$6%8vuq*?WB{B@)-DHsvvi1PnoymC==sX7rY}Y05L!Zy7fx+O+ zcZOs!CB_S2yE$Qu{08)ei(m`!w4h_|QI40Ns?#sZ7|&!`?ln6K^j(j@+aSbbgYO?% zdyN7XNWet#nz$8-ba?3d!`?IZokLkDfW4-wkw4!qR0`~=^k?3p-<PQv+N%mrU__Uf zEc%Yo@7d`-Zg4HMJ6tPrzZFMPM7dR~)b9Q03O<JguM`&UWO`z~I!UvHHJT&b;!^%4 z1`8<ken{z{bP>0;1A@47e)x@wn=F2z**Nm8Dph#QTJ1}pDxX=t$Dm*q5Y!>wz*BS# zk9mMzWau`QgDNzdEZ*<P*YRYAAu^uJT>>xX%LexrJ0C(V$ZzK`1=H3naE6~xZ~IQ! zbVeF{4G?zr!Rya$4AmF8>3y3z;UV=Ai#9#O$vdtzF~$uGGLHGKM_tV)>f)qHO!N(F z68R7YBW-+Ty_tu6`UNkXaSj1Pn(fXXpTfGr5!;bhkGmy^0sm~T-N8s{l|E$U+*Wwm z^4TM9?0KFuu!x$U=E6yGkuUxo8U{`$6G~(^|KtiSW;|$4=jp5R*H@-*<>X73d(n2Y zE1`m4o7Rd)PMX2jSD59R-r*z9JC<1@UY0%#^{>VjrHydg8#u#14}ZQa@mq)oA>01W z@$Ovhlng|u*J>mKaFEeAELYxvar2JlaYM)GW!JdF#hP~^xCittdmR>;GLtKdF3B@3 z?R|frURiBCLK7&CiaC_Z-$nZ>mb{KK*g!mauO|OR-jig3kFN-#9q{Hj6~YXv+=u8B zj_PHI>kOk;#_eRQx?DS`MK><sf<Q;^`%re)@8dP8r-(9~a*+a`gfB!FXeNInz4Phj zV@g4ph5EP(wZ)ZgJrb<>GVPLJ*Oy6|{}u1#3&R!PlVQ5nd|}NR@f9xxDF1kWmMAfR zIHDwj@R2326>ufMJ%I9P13bOeKA`L6<5r(_8GUYu0RE0Mp)D%_qGOBqpOi2Q5%~N+ zlFmFH>h*o&pRtT>5F%@c2$7u-GZNWaD6%Dl2}82WK1C%;$d-&fd$LB97RoyI5RN6r zTJ|FRZr|S@=bv-D>U7TQ^E}Ue-PiTLeuARt(Q<(T^|9Ss9fnEpD;P^$zez6j?}WT^ z8Wc={{s>_ND6CPJ=KBm#C2r%39F<f<Djs97vb5^G(9=YEXuXwM5`**m?^cafpgcvd zBhPF+*5w|!pGLZQ6o;*mrA}z4iQU=9{?CSJt*XE7ub~O2gKB%05jn1SNFqQLfziX` zZjFdM#a7$u#{YO}J2ya0pgQ26P-6LRz&Vh;a`8hHihRcKurJtfm&WL@uBRJeDXD8V zbQ*+#U0HAy?3IJC|L4=0BiMQ^8aC_#OBWS>5yAk~XWT;h-@8?x3>J$M4Ldr^%jM1l zG9<Hm?DC=;?h8HX76gbo68%o|d7%_r&i_deI6_M<KX!aT2c`JlQqMKn_}3-)T@U<A zA<?@@NNN?$<qJ=#@51{XFAfEh5pMyH0x{stQx^gT#KnWFPhAC$J9<I%(*!7;ung4x zE#b-n8ihuR5t0t>=1b~lOTlTivvRS}3G2XtkO&ji(mXqBD#U5WJr@S_Y(Gt&6nBX` z#e?plrmdyf<m2MmLd}VSLa_;n4~{xogNOb$-=5l*gzWNg-RYb@#xwu651&KMn1-%* z@M3#^xfxh=aRTPV^wn(uvR|MCteItX<x7<xoOP8U9R0L($HN*k?qTo`0(kY=$>pBT zoPcOr8D5+*$en&HGgonGZhfGH6OOj>sgHB~)Z$&It9iha0C`;MAC8)y8dlf)>9E zH)NBP9wCAIj*zBgOz+w!``Zj~{<}p@6*fbswL@4~18;KQOg2OosPG&nszQ)?Vyl&l zOntFZIal;Puk{WMIW_*qaL~KL^Qkw~^s#&ySiK)5x<?h(5)j@(T)#(}1+Tqr+_|wG z4?_;m-W+Qq2C^O@aXv}(MTeVtm5;@aBp_+CQD5*=ZmVvzq_)x088hR~pDqY?aJ$T; zm2}mB+NX+Vw&aeCjh}}Qnn&U4Swb54C>SZgb9l4*Iq4h8@v5I~$(LjCzm@7W4skrx z0P511HhMI&pFe1Ds&osp_`3N#52=Bk(9NM3l-+(oB9;yDPEfCSlU$1;gm!2o+%R!& zDD7V#GvEpU?#N&Y#!|%FhybT@Y2Ni(mk>*(!)e)Chk4aI33h{2VR`;_j_MU&arJZ} zwY~hVvCzF5)5dOB?DgsS^$nxo$Jm<k6`BvH{+=zk+qI;)d-`K4WvqGIXj#TN`{@VL zhA=WP|5ywkdiSE)NXS+H=JXF$uUN1UBsjt4aSlzO9tSayf8r#udBd5G=p>^Dp27-G zD>|ZXG`t=xKON^Miam6C`w`qrOPfn0ak$>VZ*#TyUrywKYd<u=k4S6|p#ad}HWke; zG`U8d&-qh-^ztiu=t-~=2j_1qY2(!jm97_Gpgi79!dGC<2>cKx4lOlW#1N4VF8@nN zNzrfzwA^DCs{BAjgmkm-+dUjV3s&k5oM50nD!urqM?)S~<6Z{|!S^PsbHu==RreoG z7B7BUtgBT5P?b}cC}2!Lr~8~e#gDaewfX}GMfuQXh%6LI3ET*mBf}bDrwX_T+Y~q? z%A2vF{X=zLr~j8(9-(*Q3v13GzC_f<QXrn-x8KN&T`TjY3-f)f!~}awNF3Z1Ij|ja zKN1P^)o*3NKC$9GV(+?)R2K1nH_jk@d4up~_^{m;YJ(+2#2v&^Z;Jcg!XHU0{NXjS z<_Dk=%m@i0smtMT_?W#ExxG_%P*H8v<YvtqF$i8}a6TEohZg{)qUz^Q$4d@e!lDM% zp@hpI_D;EkHtQ`aA(a(c4#n~*Ms5uG7t*(<1ovyJt2d*x{xw}6VJJd)1uK76L<$>| z=?~(Lg&%L(MH^2XwUvoe_Xu*eEJ@g7+BS-5JW1$;g@n9jXgcJ<FU6)BFj+Uh&`){> zVnV>$_Wb6OaMk{8YbuJ>**p!__iBk($g@{cUdx<LzU{?KVj_%L)4HRB-Ct3)9uL02 zTRP5t3G&bjQu1ArsLGE&m+ry`tCsF3n23TP>FWy_C69X^&zv{lWOChETO2U>mgK?g zn^6o|={);L*n#M8EetOBp=rpNNVK~dy1}$IlWogdfnuJEk2a$O!H|%nbsUzYZ;<UZ zEsx;Mh3C6RsDhP;+DYvPp5`5yL>ZbeGZpXD)At3$kp>G{$KK5fHZV}f{5lCoi~edt zO@t-wMG61PR6Vwly%7crNxLG;z|pnUBSnv_2&&1Nnm%mRnH<5J8a>zI*#o}UwB2#G zmos})>|IvOWDdI*u=CvM?y|ps-3!I!-S&(|BKhE15sy<Jju!Y%-+H1t0ZHxgjyM_G zcb8h`mpaq!Z(JMX{~iEdPb<0gMC2o!>GaF_H`AWpO}uqtyqzRF-W>nH2OGrsUcoU{ zFn!O`gyntDfOifZNqAJZ;VLQZ;Y;cQIsWTz&hvx3fq^}7uUsxV+>k>Qf0{T>1|JzQ zU-^cPZzed4825>Gevu4oJaKw%EdSzpX?25wn$3VD793{DUFVz|Z$-}4&R;(U7Ty#E zms<#5`W5@i1wGnM-|EDVbElhkp;)q+z#rpeX;i^wwGD#UF8@Lp;Ylv<H&Q0YJN_^9 zBh3qHfz1>_qT6G=3JmW>7Faj9Zv7hffOwLuTL&nMaR58`S0RA0G<^s^pm38%vFJCO zh-8=;(TP@@bp5r1Jf4<3%DN;8iXf1QVFocRtT@mr2aj1h^*l&x;>iu*nc6e~n3DOW zQVb}L1Fq*-#``a(10u=9=Ds)0)ovPNbc`~vmjSbURu=ygClJs97K$eqKonTKOQ(cW z{~d@wU^^bX8AibB95|l!grSZZ>pE2~viO>5Dq8_ReB%iVM5$&zeF3Ne{-ETgmBgtl zC<U7bSX^AbUv@xZHf7X{N>3@;LK%^5D{BC1P_krQ>eDCun4{hpQ0o>#VU4`7j9kDL zF=N%6VNE&hNkA;OBB{v-i%J2*zY<~BZEPTiT~Z=_z(liYz)?|@52lEJ#moG~`QTd$ znj~tnVC(t*9R!HDU*4jLGWKS{`=s1%f85<jO)eD@Hai;HQvS^#gQv;}A%yDGDuT-j zzkn#mo?Ar&1zGl~YRfY2AA}!PI1k$DH(Qw2c_7|!9_1aiJ7k7Aa-^EY*IqJgkCOdl zZ$)r_g*EgKQMzL+%b1S^|9WO=iEy%I+l~t>vheBo)5ra`GUwtni8>d{iZ5Y?WIZSU zEF7nz$fsw29r*sP(Eu?PR4gGoR_i9d4_CVfYM{&7%<T%HZly4HkQ`I^`sVIt_pAox z+XaBVFlmnxp)}$ar#W>W#A*aT?dCQvn8?uGCH_!z{A+@sC;$aqQnRuI6HSnGuB**z z;uT(0<cotjoBy5of*t1piaQec>#zU*-(-Z>UKD5q-pd{9);4!vmty@leFTbeNV=wp zBNn)kmvQ*5zr3jRFInwEGq}G^T_GbTwXjrJ#?p{4S@{3%fYf%~?=>}e;kbOil@Vir z4)(KPI7dk3pt?#$X2jN8-+(R`Rb7<*r{otRW|oTW6MR%hY#yLzny)Zp^-CG-7*Um7 zk<a~^%Uqn2yo`Sj{}zj`AK?5P?a3SjCI%{1XO)3kB6mJt$4i$A&YizT9QSZd3HGk| zJC!#f-dD@8O>UD<ezQdQ_SKr>h_*m51v4BQ-g*3l2Ngc+I#`>c+V5XzKguGc9-&0! zQY|XBNKyY&7EQ?=<wH^npX@AD>C%3jFBT;Zr2qHym9Mtd1sk=CztC3$L;|lFKDPnH zj|z~<Y2S#SA7$Su6;Fqx>0(UMUUqYFomt?B?qI7NJ|^RW`g~MmOw!$COr2==P?}Z8 zLjwA*zc^;ra{aZlh~|}8oO4s<ay)m`M{(&tBZhb7eFX+|)cJgUI!ID0o%fdQY&dp3 zo82`s&2td)fHzhjZJcr6fo!Qxd&HcPg!)QhJsuVdDCG@!Fq{qIPCj<A1Bgk70jet1 zM8$cqO&kPcQmV8<8!6mf|E|sA8wav)K-j`x&=#+nzLOVya|K}rtuPALn++!9{#t@- zB7Dq(m73|i06M<KpJRjemc_?BnxWcBCJE4*9axnU+173gCg9XD!9wVcAHVkwRv0x{ zmYWf=C7)=R(dls5V79SHYUA5%YP{>V>c<Hq_@(T+s8dKo-W#`RmMpJS*gv5M&CoHz z3@Tgxw|?x*b3VzBb>(cL%{yQsE#Ctj!Fgome}JUweL4~}I#z&13Fd-mDzaQ7Fx3T? zAf{*&uZ(o4Mw|>23up)Fe+_q#P2PJA=4ErY=O7(=b-evnIwpkjrV9o}+THIce5o^k zEo>_fcm>tbz)|F;USI$Tuw<R*tgDsaR&sX8scI=E(o!u+aFdSwd8qb{(C-*1bb|oJ zMF<AkQqiy8lm|-1E>tdeXlf&8_*s@}0oAT|sS9R>#V(<*76>7u>i)l#C!tr6Gie>L zyX@k?W^W2bl_?9<Q;ln52sWM7_Ww3kY3eHBfZ;H-%X;nPa_96<D2y`qp-(!r0(#Jk z7;r5en)B*O{5e!3RV9g}GqM}xpi#gFNHXl8(H+z$tC;%<7B6Y?b6`z(o`{PTsHn>4 zx=|jfW`7X+(R!~9zQe*}*G`<f{Xo2~ucT?QnGxmvvEyR=W=3pRV=_DTm*(|slPli1 z48DHag*W%kmMDHl$eh;7oGG0S9PG-QOvfKs&sEq~e<hh>*5ggoFAg3HyYQ0Y>`LmI zk9;|HUG5x`{-XnoP=2-vYCFD+;hJY>L#^|{d}aI3F%9yL!K?Ytgo6H_$~Q*Hk4lw~ zmZZ{?;-}~CQsHMaMZzM7=dC5Ki3YrdC~)5a8uhg#q5ImCld`QJ*{Gluq$Jj-+4+lZ z;drtSOI;59ts|fLnWSB=hr3fPWkLH=UGI;XrvP^~d^s-07qM8Y^E9C&;I^ox@d^vJ z<q{Yw23{XES7*MWXhwhK$!%|rdhG}E#<3~l<#`zw%*#|9yf&)CMXJT*@r>?fEhN2~ z=diAQG_vfTdsF12&41{wQ%4>?t;&UFnsR?3m3;4G=7wU#$Yg=csQQ#>6OV|oCzmlx z?H?)k0(}>P*{1igi(@c&FXv8PK0~`+^VLx;zM;-k$Vymtr|&+LSBO0<y()6r#<%#W zMO0=sFN(6NkV|LjrER|jzp5g8zUQ&F5LYIl$&lW0u7x6TH-yGN4nhP_N#tPmTgQ>C z{GnAI|Cw<_hmQ1(WU+Ry(-km?Z>SeJtMcW(ek#nGH{>It(<%~SsnAW6gGr4JUZ=!8 z-|@P>nkL<Griqu(9Sr7WXZYTj72LqP#0|-q`eRoJV)!b0iv^G!HKMLa@qNy`+-)r+ z)dt)CR(shma+KnOZpbQlZ2+6FVy-0mC1N@F?mg735Pk1v6Xgmxx5;979WS6SXAhP2 zX7a2z1T2A0fZz#WIB3}r4G@lO9)gP!n9Z)FEbuP3%yg1O0K81|7oaBc(6Rt>BOn-p zcObkd;7&R4H4Cz1{S+uAB_&@5gsp*d@&I=c*}YXN03!&obD--1(1&P3c~Ys#?#9Q$ z1_YkL)$Tz<zW1{3S)KgAnmV%X(*FiFd8Ma!T)41XIbF4OVc%8gNZ}80k5UAVv|RYd zana;)Lk^f2NeC}n01a7|?nGEKZuZ8@b)NAy9nFv6@Hk_n!G*MJTk{gdK14%df;56h z9~+_P5)3!yCYb?;m1V~Tvq3<UL6qDqqrw-z-~GvZ5O1=ocnIfmYn=84ggK1~43MhD zWo1(p&=d!Eug`pfF)nJtR{yqhy=3<x*1QKdJY*L>ak)0Il=G1QudZZ`_SW@jQYzQT z$IfcQieNEKo^v?I5gk33o0rwB!5LgC$tX7Pm_GKA=HTss1+zy}Cs6BtQit6-j|Ydy zjs>fZxiYSwp8KY=22P>=jpC5m)zOGkQbZXORWo?m796hi^h<=5La1_SpHXz9d5-g8 zcI3?VpQXhhcyv^p$_I<m_H-08dDg~iCR)EBDZZjCe^wIA$)~LP{{9*SaQoNs8(ex+ z<g1*x-Wg)Q2`j){GfVW&K02t1fjX=9!JV?^oibyN2gvr+R>fN4p%y6Io{#u;V%G|I zvscpgBoXEp`9`nr9m!0-nm#KebaqW9A!9ytL2pK?4uu%6;5Hr*U7h-h1+UGB&C0q{ zIfs5b<-9*C`ut=XpV-1BvCK>}Dn-YkS7r<qHaPT>y`4fgm+U9y0JXoWsLD%k>uzTC z<hqexhsg5z5KP=DL9KEmGn;R6I@&ynpLa<`h1HX~o*Ke?t)za9m&^BQ@?{4kKQ1&? z#lumMuWawybHjGmR~{cfskI4~to4(okB(IAR&+aCs=Yp1RUPr@2ft&s@9VFm#CUu0 zr#Mr`AmcA2n===a%(@4*-t_AQKhxjf$VoHvUNj-xOX7G-<HsjvB~E@go|WcM|0?z) znd<TTes0T9jS`LlSMKUTIlQzQZ)oxD+R<<kd9!>iM=30N>CU4+HYuH(!Hw4(?_eFy z)A%<@wZo=BSClA*&B^EfWP4B=?}!B?@`pXQ_9d9EFEB;@X(f5CkU&WUCsI}GGu+x_ zxPRwBRMK@2379{(C4Yr(1r1QQZ+YB|EscEg>HZ7m`s4EW;&0aI4p}`~GR+T0lFhOn z+;d#fg?_U5>rpo$))f29IaB1V5DUxl#!9FRe@m9g|Aqi~KXiAqO2(+s5Pj_?cY*03 zd%K?=-Ut<#KpBTS_qP77&B77z9$yV)lIpW*q@h}2Jvp4~)XQJsqa7JFn9pqTc(X+3 z=nOx_f$jQ|4O!!rfC!+eR;?_mvq12n^f#oO>ii-~*2*EG>`#GMGz&Vo7&4BGq^e!$ z9+t!JNkbXi+>o_Um~U7u$OOMU0B^PlYr@g71K9ckqPSbVc^0Mw$|hXOEv{EBpTl$? zbNvWPaenme)O`#cE&01R|2v5=Urk3d8PG>OJ*0vUG{`bDp~{UbNJ$kcAP9bo+M1dh zGd@V_Tb|*R3WWF9>LDVO$10X-`n!Bzos)nuUnis>m}ynTU$t0@3j1lV-Ic>y>_#w9 zBJUCw`rZM%?77z)JR~IbM&4t){tTwtJPES}qtf9+&hEUj>uv`&|Crn{A&OVubPu4) z1SbD&m^6_Lk&fTYwV8(7K~)3We$?^VU1G=PO4806N1(lZhwsYDY}{_Ii+G3|x6E}K zgz>%O8Szu9ra2P0H2>@&j{i#Qv(gh4?DIJb`i%eURRRdo!<^_sV*N#fZMO(5-r?Xk z(2X+lMO1hui9sd}o6(yu>F1R~vwM>nQJV`kk-YN2KPD;Oi#AO6E4qYC>N<2**(j9` zVov}sqlZ4r%c>+5Yz7Z!g9ir_(966F%%|9$wQNO*k*z0V$CUvgrzG72Dnr@cFum7_ zrdC#F<V<6Q#u2RPwowf`bC%%jou$~m^V5d4FXbg1%VH{H9u>{=7TTyVRrBi&Sh@`H ze^+kKpDt$`7xwQv&CEcOKzrBL-DEBm6?)9nN8SDW{KEM_U$xydIVoi-JeZd*Mb5xh zK8<%v_>Sjy%e3wssT+dA^OM@Izso0E`Kpq+QI%rmhrUUe%svAJF<scInR%{jV>OL- z^7qpG%j@+OH$OVneGGdl(!FRHqb_sD_hw2#cKq<f!^{n$(3kHMF$rl|ey0;sWbsug zH_5ytyB?A6@3i7rC&}ZCqqBK;I_?W(8@4DClnk8DysJAj8nl~<zl;Cmm+8dM_(0aw zwsK4;r8c^Hb{MKymKo5yK81s3gwZ=UO|>uhhn?+cOVK+di7uf_*vVfxsqG&mI=bBY zrSrvW)FIt))}tEag?4b?h&V7$evnNqu86@={{uv-tMW%L%&^U0s4eP~fy<n}q9VLe z0jJQ%N}EszqQAQe5gm!<wihdNAQOD11*ASl0vNFkI3}-C9LeP`f-5Z#c7R|HD*F5c z90JL9r3?qF%IHBU+Gs!no4b9f<MHOIJwY6x&Ji@{r4_&BcVK${A<c%}vLk=b5<z?N zr$THZ4d#1@2B#l%HVv~GlRF1W&g}mWUw{ubBG*x!%y^|orxp1_n7&m<{ZJS{5Lo|* zNXGlFvsylawDN#2KLRg~j}#!I!k?!4U<jDCb;GQObFWXx0x1Jv22mF#RN>;+x(O<x znI)7jDq~xZ#?q5c-3PKjAT_+j>(}83*cgNv!KSytPLGkoBMqFBc_>792il;1BM^-+ z<|yxh_E@;A%P(?U<s+$vQ|9X+f3=8&&9JK$em1{d=kzmN6Qa{KwZtM^5bPByl853M zNGmN7h^4?X#2BkOB5&WcI$WxLZQ?1y+w}>BmD;H8ntZP;ZhjOQj#WYwxgw^tAtETu z2AhL-Z{B1fypA81Y;NG&pL~W*ge>05>e|b1lb(B!U@o22&OUVkERG8%H##_jWqbkx z{`~!>osZ2(GoyeB3cnE@pEq$t9HInrH>a9GHE-U)WnOuHDbve1_ZP-*IR=}tWuoov z7}r?E=mjf_bE3@K7=qG4_j3|AZvpxK;e$;n@Q}7vzE_%4KGrh>&Uzec3<NYM&ljNz z3gMcjw`L+vabVBxbcyF)H^OFQUa|ZgP{50QUnt%4(3Bc$Nb*XV`{zPM4w~3igW#9X zM9T(~mOHSW=OG9ksk!U3R$&4mmsmK^Lm|;nphXahqeix^!;?{YUGLJtZm4BAEI%>f z2ewQsM;*jYo@!2}=W1n~FRsv*@@bPie>H<tiexJzBnK?6z2<(x>WQ9y>0|Pr{7|e) z+R`)~C&J8HvtR43N!3=npxm#yJJ!i-9=XNN0euq-P7r52qCas7SQZw<ql{**ec5-F zfx%VsPMl5f7AvuRzMYq+`_-WNP}Da7mMyK_RvM^2-uod?K$y44J+*dK?hO%9YYq6& zk7Y(L<=jX4)J5VJhFzxbUl^pPAF8~=(796<Wa_10uTdFonAbH*$P2z3{3OTXi(J}K zV(u-o$B>!MQZjNV4Y%xC(Ov18>7J#la-I0kth-;q*=yh~ciq}Il0%Z0u(l_`2Q6K} z6Pj*ab@AnJtPY3nAg1o=rk%}5<cf93s|}43o`#b;p+Cs*S}lhmASScWfy~VhmvZ05 z1KrQ<rqRtQZbcbse&Wo1{;@a0HqUV$=F;FzHr8kYD<zX;)<011tMly014lK39xw^J zu?;<~P*5Le_kr!e01!M6PK|#{vN+eUNZ16N2h2K+?T>r#$e<qNYF_$EdRS<~?AJo7 zs$^lC4u>*Eze7>3NU;E%3b<#JUtyHD(fNi$Rl0Y>aKC5{1*$StTnQzi2XV=P#Vfmz zKKcaK!lmu~Oek4kbKSFqF6IHjLyEvI(^0=&ae`x=&Gg_i{{QLUj5N+nI#?w%`yEOC ze`q=%)>&(H0<|uDV?7f}7`fNa4^tVFN0IG#C-~;;G~tWX)eA<}bFHJni;Ua?QSgZ` ztPaAVGR?>zri2iLpi!WeW_@Nv=Ach)?Z!Ez;rc-%^r;RiN^yKT@J$am>H|&4`;SY6 z=ZnxWUmi~Uh>!y(Z#-@0YcR-|rNV2T1YZ$GAQ%(Xg~E^AeZ3AmWD<<$nq9vgT?ekx zljQhL@$-kFD;@tEyD9J4mxl1NYDU1hflf2qQ3#TTrQuEEor>Tj8^_|}VyI%7pZ*q4 zY(k*u+1KiL&g~On)rmkVMv))9@Lf-_++ClZcLtyEqfCy6T*#Tqzgk)hL$1*H)DHD3 zq^`sRoDl?@p&Y{Q5jA<lPdC?HeA^n|aiuPqN$zOiQftq=xp=`am-M;?s?zMR&c{eI zv3meNYT!jFegHIy_%G!XmTAzw3N_4+B=6_KN8ZzoIa6qB>t7Qxv18(FYYhCu8nk{5 zT{7_8P~;oEH00dRGe(Hbho2H{?2=*7!&`6=v`o9^M6TQ~j2-?1xu%RglljREW%#~# zN_sMC9;wFaWU##n|HllQ6-wE@bU~q7Ee>H`YT*6VaN$^3qxGxXLhfmuDi#%4-|AMA z|9j~5D<2k+FCR1{Z~)yARmoJ@@cproPu!cy&64oTo82KT`6tY;JwDcKVqRr0KU&G6 zTYQzK;avG4T!onS4XeXvT_4=GuANjkqie|)XHr41GQ0EqOWNVH>hoZ4_53cT$F6kz z1;#S^Y~Fm(+iCmT0nEIyY$GzuXPG{K38q4%B_B#7-k&Kl%4%s%J>P3qbBpa%rC1a# zDoi|r9$|P*cwg-p<h#BnIN3jtv%Th}5uwU;lN^7yE#Z#c@rqVoA6o7s@zQ_sCXL1Q z=gga(-D%#h<%W*SmA@0cigx|_jcIO;%i?Bx{D}e!Ud6P~^xbm%r{{{B&X3pavB)~o zW7Niqy!^g?AD5~Aajw^P(8+s4@os97_!;+zB9_9M6V@pM9Q(gn_Yri5PQ+IdPn{k} z?UmQdRS(PpzA!#Rut_%>lbRj$IBbMl5gh=wf#cs@flR<z`)m?`yEuoGR?>dx^4R)m zcd53`t9>Qrx#31LSTXUqET<tE)@LPeiUVFc>Q@)F_Se)c_>3=axxc6E@2`!}F<ra% zeTRP<YtrxOS9~ew*?H01VeK>_*RJvX<W@ZKn!2_;Ge-I*W>QG%WC}<V0fisD@>4Lw zj2usK3L%zVL$w2yoLx7`W*TWd6-tie6EeQa4~XJ6f!fih*ALpAOAZBq0#e5FxJnQ! zC`_D*UrQr7NZ*Vw%lmKj>Wmy*B@VBan*NF52W#(`&p*Y~jZ<knVNhdPwS%cAWC`M# zE5~#5ZZc;7oz_Ow49~yqk8Pz%Ki;P28nNeE8hb!vGGh<EBEdh@6Z7XAvflpq4?t7A zJ|0L7Y`TI0j4l1v8wkGT<_<~`wP1wo8fWqcSIYssU{uAI3+r_@0jbo*s3XkV#p7d} zK6=}3KR506s)s)=G~Yo2D+=gID~)h%v+Kg*G#g3%RitOOd_HUqnx5B(80pYK>QHTM zcX`{$8K^P_8J<i+lnQF{k1cu<!RjP4>2HqV12G`80JEK%I_D;W9Z4X4@;}uvF7yOu z3Qjg?T&b?^U_@e$DqItB4z2d$>T%vFZ=<5D`2VXP-(7A`QK%OEBgGF(KGmFZ&Ty}Y zOjv3x2Ed^;=FEZe4#aXxBWi5Zy2P#vpuR~Mk0g_i1v@yd_ut~6DCF*<uMWq*rX_Fb z#+*~rN3H)}=+z$=jcGi+G`E&s<#kaEOo!o}pLSau;;HZ_%BKt%u;Vt_{K1jFg0Ux> zUHLUK@U3f*dSWIC#ytHPw=PfXen`z#<>OkJNiv#JF*li(P*}cu13<=T+fqw5F*fXA z?cbqSm!ohB5W|8}#{Qgvg?kkYBvZepr1%_j9}qYduR2iB*dpQWVcTb&o|854>|q1+ zEL8a3y@i#=A7ZRXFw0s2meuVGbJ$qUdHxqFW)(_r{C>Fh%BF`Q!_)26tt5r;uY$^l zHR5o388@Erhl!Pd+PLbsz!ci2Gsuz`+D)YsY}=vsK%WgH(rRLcDTc*~ukL}ElDWC< zD<0ldR783>w2xzM_obcc6IVx_Jl2w0!7^T~V!fZrT;eNQ*D=S1UV1V3Lf5amsHgLC zl3DnTN{@J4y<60+Ed%NrP@5B?NAlJKwuTCXt4>Ojg~z0nXCKdTDE2?Ysn5~nALi_t z+x(j(En_qr(bN)il30B?2C>wFB=aRc-Emp`5%v-qvzQOO%sKTIb&T3O)hChXwx&3e ziEq%m+R05q2d`vGp3k?d!`aVl9k;c2JNs-b<!VOyM;`B3$G%6mQJ#qd*l>Nc-cN+s zEXTug=!iYpOxfZ&ZtBFl&m>P?4j#oWJ2Nx0KyJk}@2TphucQfn2|0YruQwRpuBW(o zeuxpAudUP<;!(UP%Fp2^hM&ChQkg<Xi^WNyexb-_$tDlaa$(mLn^6>YqHnG<{TYm9 zff*~Y`c1maQ4U4Aj<<t`6Zvj^W~n#Ch%;6v8A&P2&z4w~Vd`iqckk~a30RO%pK>{H zE7Wy4MEG`3w343CV3SlAwUJ@wRal+N2oE#Dw@x$K1v|owQiBZZPMUPbCOyZ9&SyUz zsK|AxdWjz)p!<xHZ9H*8juPN9cR2PF)GFDN?zZke;J+&P5z0>)y)-3}4$&V0h+;No zhKB4qI*%fcC$x3XLU!-EJk&N2fOzP96s0()(Ae<zOjqJ$++%7o#r!fAIn4y@(Z2=4 zn%UKmrRr0Z3g(DLk3|*Ij`Gpl?E<jbuV#SlL0qB2r3yQ!XL8&B8rgHOgY2Nb;s(vm zgh|-*kw@qu+<+pXLKAT??BAlzN?{;%XB>L?t=*X}xY`*Zp$Zb!vl)aBs!R@mDW1Am zgn37St7isS2oM40+=OR(nlN%u+r0aYi<R`km>$v+otU`Zf6P+k+5RH&f+pvDBT^SM z`$=%auTU_&_k)UJO6<DWO-JbYJS#RCaDyuNXmGmX+eVWGT{^7C?(6DvD(g$&O>XYE zN*{?Q&weg@U-TvN9ypE%SgFBrY%irvMadC&(A3-yN=GbBGvl@DP~?Xe<3&|#H{fVd z+rP8>ugHfAKjUG&``Ymh!=WwARku1Wib4V{Iq#9`pa4BorS#TQ&;LvFK`7g0r!1G| zLc^1bS^$*SJ@RBw5(fFqHZ6iSoyWkf`;F_K1~&g>kB3EKUp0|Xq=iede)<qOpdk;2 zj5bCl$J*AoCa>mAZG18$M;S~dKAi74vtu9BHirB4^-6RgEneBZ)d*cKk#`24@rkA1 zo_E!@rsAI3NL&|fx0<yf&0O(-j-^bb>S{~uzWL$@>tHHMGO^fWc$@h?#y37<<UFH5 z=t<pzC-(d(IY7*q4xaamd^UK^?{VLt9L+Ux#ZztiR93TYIu%|O+wh)yU5pvd71ZH( zGkM}A?qI3$_W0t_iud10X@*BOOaji^e27i|!`tv&=u_<;>0D0`JE?jKS9-7MaYp)c z`}a%av&O!i)kEHFJ?ws(ogqE_^u_g+CbtBxV~Sn32H%nrMM_G?3#z62Z>@hS?N(Xd zksQ<ikK5ag`aF8c`uAYnoS=oz$D66|?i?|2|CMNSqoe6T(XYTOl3!$$9i?>~7J`P` zncqIm6RhOh_w0nbEB#_@i-RnFsU7_f77C<u*z<9?ktPTvL7WD%gOx?}nYRNE@vIw| zZVrNfP<kp6*E?6t|FmU07B}*!_MmR5<fT^VSQn|}h05tRl23pEm=HQYkvzqeS&6zG zpGcz$paLjR4lG7%%0_24U@eW|bxgZ^0o`$KNd<sN#%^bxKm+@W<J{gk(`yHVuTy?I z2Q;--a%#Fpr;^5f+FrtUak+j}O&h&*V(g9><yw>+uI20E!Quf@6U;?wqY2e_sw`h| z+TCn=?>Y~=gMoI5B)Czto=DyoalP-G$=||EGCX1#%ZS~QrMPJkr@+p9YS8oZ!N1xf zpEMn*igV-zMlJ0zKWg2w6nrdc7C%`uwo!`Ldss;+W0&M{3+<z+&omvn`hErE0)Wu9 zW*TONv$j3X>fU{4aC8}NN$W!>ihnq2-C_ymiTe7_0N6TmS~mP(UGS5=P#wl}erI-U zy@(t@3Z8!q?cZxBuq|~dTZ5Tsk7gaFhRcv}C>Ny2&QK%FSD5k9A0S-BiKSl68du_K zN8#Pf{&5O&y)&dCS7T)5N1mh$#KVigrL?T<z;(RIla_f#)oTW`*!4&1UC*C~q5w&L zOG7dZY(A2&pOLBj(;}5QwR21Wch^skx6yN^^_K)KSqXnZ&Eb@In3JgDWAG}d*F+sQ zeTmDcNt@+iFh<fv8|XN(Y3Fl6*k_FE(&UDCK&O_i)_&GNQ^f{xc0s6n?ys);)vb@~ z!#kgb1$To@Vlw#<X1U#=1d10eDgJsjRdA%tI~O=iSc_=L1ljeql`l2YVFMp1L~{sw zB#mF>Bd}W$HBFUQnifPI50Do7N8h~!w^H8p!;qKWdrNAl%I$Q{v-!&rUl;zUmbi6; zgb*_z5H=R76gmF4^;DXE=rAOnAAXy37Yp+(tx2CfJ1N@XXI7UPmggYFvJT7HfD1Ng zIUYKcV&978%=sF0pX6^7K9b?<<6@?_%@}jsPbYjn<mdK|Dt+|KpV-F!2}G;ZIm(=G zNMgMyiwfKF(u3vwb9Utfr6h96Bg4`p#w_zBWZ0*Y+UoHfKdc4xb`x+5zPB!|UYklY zuIuvV(&wL)yKTKvv#LXdf2Ffl&$2KXQ6<%1+?e-j!P%Jlvl87|^{=<w&fRUuu_HeX zNq8eXm~MD-l-ql?#a{u%<6S?+@L*8o=QGM}AfDd6q9U1-Zr5U8#<Xewb$0)ESAE}+ z{dZ?s+D@SwKKBpR=Y%^eAH)H6slLfmDhKt~pN4#|7;}E7{@z^TpOV^Ee_Olj4Ykfk z|M}c9baMGQEOYr@Fa9L^-7E8s?2V5w+cX!%8aJwU5hM)J*TG$Bxe9nA8+KK^DKzGA z#p0&)og<v0wbk3fOZ2aQtn@Q!36TSeF_)cQ<#BY(JfN!o0Qlh04>$rA58D9u_$Ao? ziK+=Wg}4DZyyN8ZVL2!-N_fmQ7=n&Tg^+>9!6V>RlLn4oqkzn!VQ~OSzjE;asH~Be z9)(-DwG_oF$mK|$ej6>1cPITdCR^4`z6gcAVucl)2Mi<&C}a7uz9tLdroaC*kh%<< z9wz42j3Ul?;XI<a@Eeorv%NmIQF!=*v~$FsO({#t$8K9a_lN--HXnHE!zKJ?cL_Rr zXSerhB=~Ez1#B7hSczhbJ9JcduJ}XSsLGI|Px!IDbEiS6QqVhnP<+CpXlp`6w*JTt zpQsrFc7!ecAaAr$`voimU~^Ta91k`_2vN1LT|T@R-9Wnynm)R<+nEXyQtMo*+wHf0 zoCykiT<G;7V=>L*$<X%`>`ZekpML9pH`%mZU!H*g&0f%4&+&Ff5zs0B+`6HMn+=Q9 z=NCV0l#{8#;{@0J^3pXo^1PIB_Z~!q&wg9-vdggjo}m;3&<8@?p>$vk&Cg5v^6hN( z6_{??>UjNErYr|Q``%&x#VX~CbflFt$hOAzWTmcFT4l$7>m#@xKmD|EW^Bg7;n=eH z50DXB!Q6Y`tV?)2?b&0VFFx3X-$Q4^2_%j-MuPKc$q)Whb*<AH4poGiq@{1Up)dE) z`cMtWy9QViY}!eSdb|iN56MK4={UWebm<@+K%7{QLY)(=EJ%3Yv_89=Kb0PJmWnd4 zVQuF~OFk^I_N9jJimO*C$dL#CxvtQieP6g9m_8h=CZAr?N1heCnQanyHC4WQwy*Lv zL+}M$SLhf(+Y)qKoj*?Jl=eYyD_uuBGY}jGnEov&qblbs-n(;PGeX~ASbCo>N_&Zl z3J~577g3}s<~fUFW|#XeSC6MQ2YR1>)vnCP!h~jKBOSulf3*~}9r5vYDN<|A^tBn{ z_AHVa<~G10#-1k-Qno-Eq81r{$ljOz>3v#t_Q5<S!)FgI`y5(J<necYha?7Syg8Ls zks7j6lkOHqEJ>25aPg>oe(SZ7W#LGL|LQqWoLGNvvEqkC{C)Ka?q?t4g0n}hS<u6i zK975tUz?#zN+v3YNHPG(l5+msXn-y$AIz&wQJvw%bMPq)G#$22HRB!Aw+>JcBbuGJ zw27X#<|7L{0dCPz$WNX_3xJPT;7vSj#!kqGTu@`%HVZu>={=97?!6c-;9s6KiNg(= zcScN&<>0Stz1)t;$uN!iN?xFgGj6%!+87tI;iH)^KdhX=p%GO%RXD!Cw*|}SpuK-k znRYV{q{Wfl!&r`u$?s>{NF}$Gfok@d>?RFvzfYe}5}nq^v@w?IX=?*t{DaCqY=Pr= z`0#b0VODaAu*uR<oyvV=7K>|P@uA;{R_&K&|CPPyOg_;<5($gNU+X#t-1K`ZM(7eR ziXAynxsy$X)>9QB+^^O?gX0&C>>T|e_<4d`(SQf8MndlA0AZxV@&QhrCF_@bFHMX| zsQYu=7OVrYy}t|Z8<CgGs!iHbNFr?_L?>xRlE_0%QDQY!uLdOaj`3diFevLd3Fp`@ zYk`O&&egH^#S=!XtH9O&6(&iykd9E1&HiPn4jhiPx}TN5YD$GKad;H|@*C+r#f%H9 z_i2@lih{cej}yPQHCN>P)Zsuo4r>CY6k4(dxs{4C=k4<TmjRTR__j!^rIc1tlc(|y z`cOPS6cC@->MI|<j1aW+hjyRdjcArq-^S!E_T=I~U7Vpgjw~Hgra)v_9!!L3`OEBX zJ+D-lpmOO9`uvw+Hmt}oY8~zZ35>VcDW?}T!x?fhRCt}D37hJgnw0_Wd1y~bdqRaL zxim|SxUwMxM=#JR1$BlqhC-fB^JbiaA9j{)<ym&xLHQuOE#iL&J}h{t_Ivp2OI>Cz zUZowKp}$1~|2a~1<aFt)#B+m%kGaHp_e=t^o|IqEG%KE&==z>6xD;7utXdf@TsT8d z_+g#9n*uCi?ia9b`$7hk`Sb`U2&y^KbXV(Hb^A6Oltoi<{1VYqA)iRcccC8Xzs2m! z%Ar%FCir3Xo_l2P2_Hw7(vpr|YReqklA;ctzkE+;-0%qWF2W&(dbn2ftuuS#?aazh zq-vT;qt`~5>Cty)J6>mt#zj#oX#hE?KK^dIjSE#-Fn28(EQCN*I#b{x`U+8do1-O$ zQh{T8a}ahu1#8T({4K4>{1RO7?;OuP`8;JAi$gE#Y^!Y2j`ab(69xL^VN^UdS;4qq zaIenz!}RiU7xceXwr>Qf%`tQSj;R!o{rc0~o459-QEXz3Vg_n8Ds-r0<`Mo_IInD? za}{Fwqh)B?6)IPIV_oSIvmR9mWK3!_+fppU;@GgJpC@_076~IX<nmc7hG$MZipu1F zm*3WfzquuOlf0aI4+>T9SL9gnR4)4?wcV`I%m(NsUI$5HsRCDOrm0uu@NWmJ&g3rH z;7S9V{U^chnxhl_u4QTLOc+Gq*P{<HY!)LS65*D5SI;aC?gwY|2JPD(dF8Rch2z^8 zTkNkiUmK(Mn`nxoTu}6y4eYsQ{8=u1SV^{Tw%7T!WugB*9gp{2y2#I0ouy}Qk}v%m z@EK&=XpHa4<>gbGzo#vu{$)G(D&pd+2)Qb(*K=Hv9o*>rs3h)6Cr!u@JGj0}r^4qg zPUO7>T1xc|8nT({^pYJ}HP;i9D$Yu}V$>lehd&q2!tqqDn;Akt<r^6e<e-=NQpeH8 zwOnlZt`UP>Bq$F8ZD1x#63Ubw!=du|y2OJ|a(F45nPP^(he9m0WV0U+;3eQ3oSK1K z=#Re7t@w#K$%$-cn0)XSSUZ?4Ea20x`k-%!1PY^L)HJ}`45}VCbSLq0NIk3;@How} zzEA(9?Rk_6<dS_$Xj!RAhM3fmNr0!dq38b`M3kWyg$A)yA6Mhvy@gapo(?hqkpxza zCxZ`Md{5`;$SWb)ZY!@#=&*X?8zCoZK-XJH3{eT~aVCtBpowwmMep}PCkE`3+&q&U zm;hY$7Jwok0dwl(irecJ(RZs{F+g3VA-~%=q?a%EnP|HslVx09dyrhzI6q)WU)MIb zzKf(rO)5$_{KaLI&==rdbeG-VuPR|h2)!SSAJ>GHB(L+_8+3vYL9~m9ogiul_c>f` zsVnS1Afmq=8OoUOt~SN&1QFcazGKYI&390hOJkdNM&kPRFj}<@>ct&wXDe7UH~Fp* ze&FNNO{;a+{{6Scg{`S`QY%1Gd55gN^Ie_m;u|k9@iA>eV@>aU?M?gpG)6gkYE1UH zx>j+4qOIy*cSrBtb;>r+2_G@HVOE#uk2k%*_&M$KVG7buSI!Yg!V@z~IvHJ>N0+Yl zJST!H!1n67b2SEgl)T*=0=<`i`pAA3`RT97L(Ws{$iAau{^KnzIk9JIwB;-Z#jB{L z3Y$?7t>u0tHB~W`xJ1WOi@JrZH>K%Qk>86V!A(x9jn5&ZRp%~yjR8eg3U)`l1+rJ% z(-B^S&~r$+JteeI);kMhmAB?H#MIF%l=RYQU`n3mSW;$GD#B|bW+E^7e0wl)^;p8Q zr^-F-zzzvsd%tNccm26yYt^1>T%e4Ga3Fi)EA|Wt^wo==%{xN?YLWA<J}!iKtN-Ul z{R&gZr1<u<;#d=KLA9+%u*K=__DhfR)2_)?YL-<Rj;5-4|1e5V9)9n3u1l34pkzOZ z+(qEGYASsF>{<+FSSh`&lr~Jnvt(I8S#bG9EVY`)o&6H()PxdGt``qOToS_kmi~zl zs#7|o%m2pX{4B-H?k0$ITi=k!Kj7=LqjXjsv$(OlKBrwL`t)nn&}oHOZeIlc*%TTu zC>JOun!{`|_X7Q7{JqcSRt%OdQgbVid^q0(@X8Qh#WNoBC=|)td00&_5|r`1w1{3` zGvy(!g7Lmu)2<~?<7SJ+a|bfzR-}WyJYI_bTO3X*cA6#*$8lB<9Wyn<PHethtbmhp ztqySF@m7ulPb-ml;3V$gi!sCuKT2=mgndH%*Fzjasqhi^{lloCJ!{(;kD%f6=l1d$ z+=RXM{S-{9VcV^3umyE3$grM(&sEne`K3_o!z)~0I&YH0O5g=><32<Xhcb>4mr>+m z_ONB>3jg_wVe)(Y8`FZ*L{-HS`&%4}_`$4$=YQ{^2GDVdP6F)MQ%xk0>KSb%qMXV6 zT#W`>%`eUF{ZCb3_EcksYW9<YB@Ej>rLiCkFp;V>QDMt1WWyE+<da!+L*<brs{3#f zd`41JDuA3wmuY~gjd*72WWc7%Eg>qq%NH}iN*XP3QVZP)77y;EqL>77&#kdTUmCy9 z@3#VP{T~oN{JNY2gfk_hp>Ag@NznR+{BuC=hyH{{FNAkUVlx)(0U#pmB9>2{E}_hT zls+Oyh1dAy*2zeE%Sz4RB|dRSo}Z@|)(TuOdYqM(wekk47g`U{1a+!A2TYSB>5`@A zE}_+*SV!dONh*bwC5&|9o3><UD~&3xDH$Ux<uuMQ+MUQVrgW|}=reos7zomBaJn3L z11j^h%EqtpFohkx62mx{+6i2vqQMK=nDJMXwOa^29_<;XDdL<h-1gAmqI=(=)5fM7 z;`fx@t1*Fhri@IKhB`+lt~*4J{j(#_o3W$3OUf?xzodZU@HF36R4P}=X+EXkQkre+ zg-()5U@;Q-Z<NOXe)Ez<-J%?j7}_Umw>{fv5I|+p>JR>S+cP9C@;_7J>yS5h)Htx} z0`F1}VQv53QYesDvJKQa9_F5{JXT`spA-QqsDwYfI>M8+_7_-k1?W$Od?#Tu>|!;Y z*8)uIlNm^5yN*&Rd1<d=+O#fOA<}I8kAg>DP~4g7DQRB(W@#@S<6e1vl)T)-x5T+D zn(%^}oVv^ViJ6|1$t9tT@Xk;B)BlhN46m2@>K6TWT7!U8b_zxtpgZ>NJ+07ve(2i3 zRt)0Es1b*;BqT%JDeNS~fDI&w16Sas|LSniW$l_keJn$x$ps%jNqN&X|4M4`OE9K# zb{8Htm|wqjn$Ia;>Q&<)w*?k$Y^RjYrj+(|LOA>6&0AZyEmU5Nb=dM${^=dLOIxWg zqJuCe)_o7&de3^|TwUEo$w--Vt(1JLU(d-U-`+|PV=Z{9Zi;fY&5I4t?ydf+PYBk( z<2ZVLQ^)Reb0lHP`0e4t9Age<k%h20-0^8FAWre?+Z2@T6Mnhck(Z0~IsA=sfA4;$ zTc!D)>pC*YT`BNWWKgw@wDc9@S91<sl5WCJtnOK!KCnS@@+fw`dBHF|+Gb%-9+uE- zBe6aHFGAH?9p`Ne9ykmyDE0(V6bT}5t{UDsbsBd)^&43h@07^Z1aK>278(BoO;CxI z=ycKd8U75N7lwBx=_oqb%%xsJ-B}ewl!?;`3^{<Fej;6FBspijU?&b-zrRLJadZ9x z(mb~!2*XSCgLlO6Q4Rb=U((wQT>X!LBdz847*fB4t7&so#`M6t55NIY@RtmuApi7J zBz0rrQxx>9Tei@UO6Y5!e4-I(Yvh5?y)*Jo5EVd;=wfNGuw3XI_}P~9L;@Xn87(kZ zF*DssLnc}~qSli}Q}r`;P~H-T!`-tXNXb?fFo$$(4u*c8PzYO&SFTax|6GG;@=@qP z_L+DB-#lytSRb<8gu#HhylP+gQFcOZ*W+OdioAK3(N_6+_}fF9IlDzsEp?5SVedi3 zYdA<IM|Pa1!r!o86x~ENK`rq0zE^|L`M=f@`OLG<(+d%Wy+4bGup<s+XQ?3n@~73h zueClU{_qHOO2er?rU8v_=qMT0A$D(*y<<FVcWCd+KhH21R^`$%Z7UTzE0w`x!55Tg z`QX#*n@;1z|2db{Rl<9vVKcxuL-<+_Diz-FIof`xb>6A~S6D8%Dwt$$9eu2yk+P_< zJ);QChf?0@A3Z~B|9-j=ScE3$d0iCGBN||SzVgX8V<P=xHNCK&ZP_bB%;O8(pHoFq z7<IFSh41OW<2&w4d5G(|rLNTXsO=Z)y#r0r`j7fv9jx`fOi$Jq%$ejed4MNC|GA%_ z_!KZ12Z%~8zy5xQxZ^+O-sSjvC9tiCPW<oyAck?8XCE5BFV00$pU=96j@A8J6GM43 zr%T!VbzHON$oBj@dn?zNL!%p_gzt0Q?<qkQj^erVnK+suzQ3cp8=JON`1?YeK`odQ z*9=gK=lZmn6b_>**J#zBi*K!Z=vYae{H`X*Sj1By5Vn*x%BS%FQL_}V(UtCg1^}HC zZ$HE`I<7Pvn@WDh=7scKDo!vBc<x@{F8Ge??Yxjw)=!!6FVx$Q^L$_k7;G3Oc<ZYa zwdKgXbxrI@tYdPiQ=C)gdWfiP-*-g>rsch0+vuH};5KhoEg)hzy^$Aw;e}_sa4*Bu z^FI$v<_#BRxN|>%$!*fo3NHN7V|7QqjP^GfZ%jWgwY&LV*GTP|+Ad{tt}{%<;DVhz z-h$1h>b%2LKb7BQnx0+jrRnXf1xYJv>8znCt8F-QgWl8LWxW?o2S~<f=9Naq2923_ zOR1N1=0XWC#TTE_KX`hZIqIG7Vc6C$)ge_-M<@}iBdEpya5&TMAue897Z|CPs;o`j zk{2r77{I<as}P4<gLg7Bcs(v;2)tQ<V)?a%ybK(*SlvNOikUKwmDm}HD`Mb{#*NfQ z;s92Z*ubO=O=smlNhQ&x<}go(5F8gkN^qNaRn8q~$vv{OPU8tymyan7?swbKp08_9 z4Xw62!2VBHg4jugZz1`RW<WU*m<ZsmZ2Se=e(4wQHj+U{@WpJm2!>k6;?#d=u!cFE zMq2(P{4^r7geTsf_=mCNuwl6sG4S#E84Y3{b<)(_q}~w&Xhy;h2%D+~etjdoAE!WZ zn_gc*!O~&C2;FcZtWzEz(!g(r0nH(uaKoQpg8w)I^_FzldR>AZE$MyxRn|ZmIlNxR zT}1KM1t}E%NMv3u$9l?JXV~(8+yZ3DWI6{{;kXvu=VnL@r(F^o=w=E~p|JJzI|7vF z=P@mp4@wbzR63nn<W`7=5$~ajZ0qoT6|K<UFZBxN(hm&Eb4tyIw~^-El$Z9$Y{+(t zpNt4-*eT{w56|2Xr&ax3aq$@Nk0Fx6=Mv1&&}D`fJ-?%X4hL5g==E!2)U;%H8-y~D zfQWiF8;Tr42~=kca7O$9MprndbGy}RbMtEs82#NMUNVq`VIDvT+KergCay`1<sUWg z#V<(ZblvDkT=~21!r5|}n$k>nW_zZ6I4R#Krz?gpFw8s!n-O1lkNK{C&xQgc$=Cp_ zkH&Xd_53sSQQj`+zC)2&KQ-misX+$5CjcEX%a2iHhx4Jf`<@&mG4-G5?sSRG^1>CW zcAD?h$iJAbkg+_OcSAy9?$jzTV^n@IAI6&2U(~JVjD$b*u`u0XSo~AGdU}P$!aDxi zQ<IEmuMfT&PRPpTLmGD6bO>iGMZ(NvV<f;TfYs}FxFlDpdpl^i?C$uLV`08La5V^A z#blw$HW^cbdyXo3O?j`FQL&7R?*Cd&bAY9QicFZTLt_VxEMCVw6YyDcBuW^G>dBo{ zZO*)d;*YyEGOj=4VV@Kc?=9?uGKlGRGkTDsNDygiwZ2lM+oY?f{P24Eh!B%mD@Gzf zc68OW`XK{J-G={oznZ<7Bl(hq>N!)T!$RyIjxRWVBBe9Gc%pP}VkY!xvP-)_5G*|t z&^eSxc-<J2%fW<#mF#67wLgko%};r#@CG94-sgs0xt}>Kuf|oRndpsJebuTweRMnJ z&1gSi#j;-=_7l*P`7$NAxIQZ6$lI~UkO>+WuRGT_qg5B2TIg38iPPIOMt59&P)blq z4k}44R+?5DV}eauW03vY+1(sJlS`>8$BD7QIu4dBpFPs(I~;@_heUWMsfK4C<Ih=D zOonHD)Sp<Kf;8$N%BRBD^Ep%8{PxYKxT%=izTh0YXu%evhb91?z|q6To*bB3h#6+% z;#RTF=6*L2+s!}{A)1Yxy0`>F;#u{;HZM`5--|;PuncGdSAh&eUdlI8cxF07s>GpI zlA&`+9L}NXH74%T(?mU6&LfF?haJhPwo43?mynLNtfL&2ET_Kx(Z;0y<gR?VtA@n9 zNwfj)Y9PtvA&#i)SkLyHyYj3g$N@?N19FrUI4Wi&k4ECMpTp2XT%L_oFebYPV4t$y ziioA3dx}^_KaCdb8sFQjF$81L?)E~N9t)`|mKAHYTTqY<hXp8sQwlieG7o|O9SQ=c z6hiHhr5o#7jM#;X-(O$?k0Qo@zO#}%UnqcIz+>@bn5K9l&_(!Q-8ARLfOVKKL{bM= zXX(fb;22mdA9*l517oNuFi=H-?uhb+C%;?iWntFK{0F9iP)=;cL}tSgi4q{2CQIf3 z=2ZFR2`ap<WcGc8wbD(1fpkmCX<F{g7Z$8Y05t<QBgs?VzAem@;VvdrZQ0FqN8#fc zgtQ|0juxe;`2?a0zwfL;E2=}9^w<%@G+Ofc(CYNhPWX$EaV%$Ky_}$FmC4G?#l6mR z%+uGvtuC{xx3E{Jk72xajEXWmV|{Dk39;lC9Su1?(%{p7#jyNehjk?|j)6Oxr*)CT zyA)M<>vvQ<dE5Aw!ijI43o7PDN?{>=F8kj;>uekK#|hNXk-DsE*vjO%L;ak3&X2HP z4^+P|^FIBVYDTakz{^P0ze?D!y%&QwSMY&%6A`tJ98|0S3uOJ&$cNS=<6=#qDj3HZ z5H-&dbX(TSduEwDR9^Kty@q!{aH{vFMcPL3p@99XU()#y8>Ud$Fb-rZ75b>CAlv^D z*ezME7iwoH#X9V7BttwAQ`g#yyc{@>*CkZeIK*r2mo(I802qKDz0u$jt&QN%Ka5<> zHbGZD`|N5X?v{4sUl;5uuQ0!6hfv~-SDq8Ca~<-CrJs4;Qog#Rzi#VeG_!JsWzpvC z#}FLY<h;ipIZ(f6$YpuNplC%1^dYkWHnW*mRw;K>P0W3d9{Y7dlp(wE{${9G_lKbq z?ClmjiaOCnPPR9*KPi2oTB50tmRWi~<P`iU)1gQ$Dzj=UPo(<?C+FO;vynXw=3B28 zjgeN4`sZtvYUNY>N&HBveV#1*-=KcQWNqL>wrMbtk+tNy`s?YXWWH0mCy2f#tIMk= z9(eyBNoO8Tb^3<!??Fd)C9+l$LfQBIAlXGBds&a2?E5L9h_WU7v6h6g?@P)W4zfo@ zS+bOzD5BqU=J&_UTyxD#HP_7deV_Na@B4Gl2`e!~1yIR35H<p7M85cK-;-Q^N<6r_ z_w(BI@0@GXzrCdW-+SFku$mk$iRg2fB;MuH7mPw@){qIEi|QT`efYZ%@AJ*BCm^No zjTn|L3nqAxYb4d~&D5%ZPyvVcd#oXl#+ZLDesT-gVY~)TpG9}ey5muGA-{jz1ju2? zow<4-npI)eoC(h&&|KgONM>YAt&;uS_NvupU95L|eCk)*8@!RH%Ocy!;6Mk$JJdBe zPO=*KNvlBEB4jRV;$$HvdrBoj58<-p2H|6$ey|V!>KcsU;@H%LZjcj04oguYU=ZY@ zqqt@Lp2SYKII1f2tTr%^!-tBgMkw^BDCq?AXJx8ksbJyE#jJgMr18(x6&497NjD?3 z5(7>X#dKPmqzVY#w>b*&KyL@#z#&5fzbNzPDT+{$NCk!g>|xb~etbHbV5Y{^O|h|3 z{j&#D!O8EC5<b}i4+5vq3QH(coW&HTl2Sk?Z8o-b@^ldko-_arDw~ploO!I#6&e(Z z$*>9M;0qW2pvXDuXwP(_c-XX9X?i-3ZQ%t`js{N^$=3N9k>t7j!(wz9eu^R5{s(L` z=ck`As`~DB@4Jfsgv@|Mk9`Yu{N;TKh7%;r5nT_}y+(3^G(07KS9&zui0n2XLlSPj z>Cq>pk3XDlcy#an7;!mat&D5sgO<Haa_1j~v5q%C=n(9)j2pEjB(Bh2L^;c7Hb-X5 z*2cHrSrVx`r#>9sOvs$K@<7!nwuc64?X~>F-WnpxuC5;>fjv2##!c|xt2VS3baL&} z;grqp&pT)3A~SwJ!sh(ilF3#)?$1oMNSwhb53?quuPHFZP~%fJD@TOs_VlJBxks1J z(}gJSo-Ovq$KzpgWNtcOLJ_-)w!J145Q|?<04yxvfHQL@QZD8wJpPXnd_IRKce_~~ zx>QdLXTi{~QY#;%z>RBD6+Q6b@wrQ_T7P5LHh@_@a>sBskALHdR<U)<i#tV6LTLno zj1LQ_>Rhi~;B|VhSBE0dE7T$Ktjtt+dzR<A^Y<Fd)+-&G{^U_kuOF*D-<_7=XNYnW z(6v}D<kOKd_~tgvKyWm%-D`9t2%mgH)viM&wtQ4`JhXyCXx4*)m3<~m911h<Ufovy zz!Dzt$zSRM-0pm%PUP41s7L&A*{eT^x@AYsc^k7zj{8{=LzU0ltRCWWJl8AjI+Leu zw<>0RkJ9-wBF3-E)-H>@zM9U3L6-*;w0@j7$JW;7jOs}xuPJ&MH74%4xJn;rnr@D& z@vmP}X6OAm-{|@N&0@pd?9_KD@opm4rXzz%9<U6Y$@rO13%$k9bjDUrVe`Z*;v;Bl z-HHc(S4av*>#y;Gz0e@EurBe1Cygv>t-_vgp7XannvOPsCqm)*7!#|I!j*X18Ty~V zCR#~hq3yx@beG{7mzhJ_8%cw?*lj-dhO4Hh^kB?qPPFAZ`)20$)-f^=I-I`V0S`de zsj`1xZTlp}T0jVth$L7#1Cn?K(x6Nl=meR9KdrGCOR)pei#`ra0}3lfq(ATkS4=Uz z$wxA+!=Y!HoRk>hfwf?NIG6&Ss58KjzM@sIaWRCnwl~_QfX0M_=g&`($N~<8XS{lZ z3!cPFY&GL4o^rHG?Ihq(Etd32k1^^aToR|3C<zt=C~V+u>S9mqd#~pfWF!#6-t5Q2 zfV(7y*$W;q%)inrQ&pG$iyBzK*dN-~#C1aXIqS+L+grbt@5YnlK{CSnY`_=T`%k4n z#CTKb9Io3v6#5SqHT6EyEWQ|S@Va3gbaGye1Q!XB$puoGHG~XplVLkh25#W1KNTKl zi8r@}T=<fxHhsr3GT22EaHLSTl~<0#`BT2+|I^iPb+p3@cVpC9QpX2jSI8&BKA?)o zMES1bx|^ebUQiv02g=zHj1BgRq0CHqnE!Vu44xj7_(1N=xWoT-kyBV6|BL+S0=SEK zF%72?zbZj9%EveQU#jHE`J(wamb@T$FtuIhE_>xwp2a$?;yjEB%+NZ%+m&OfKI$x= zbJ;dmETLVId{3`<xeOguG|b*+q=0XC^WWKgHqm+vB18M8G)XdTOz7}~cSR$ei}%T} z)Jjxi+x3$HS*$B_p%?G-;bP)51cs$>hgB2cAtwCphS9cG4TQYdNy9A7w2GEl$=k}` zm05X}I9+;yp;Ei=eG~#m7h_nE)_?9TyAG-1c%fse{0$$96rqWQ9u|F~tb2<S&h73| z%2{oPv!{N=wr_%ixm4)140x4J7|R+nUM9zLFL|BENpC2!Z7S-6tKb|?IwxFNe!qZa zwOV@{FA|<jrfPefXvMwsSovzG$Yt%yZt2^%?uz`2VA=cj-Fck4{1~SP<!f8{3O(NN z&AM=%tj62gAnJv*x7@nkYGRvlA^&ApBCpDes<fJZx@_Yv{F1>+=*{U~ynqweir$H? zMw#L&QTC|E9;(h~ahspi8l`L~nWn2K2x3-KU&(}=uf;uWcp0VPNIosg<lZQI#F3EN z&E?S2+IjU|xi;E*Kb3bvj>CaA-7{eL-JUD+nI^u359HN{<}jLB2<KWA2XS$Ps@|oD zo@S(V+&wm(9<nJA6(E~ND{oM!P~GjYM&HHk?mplms-XRK`~@se+jtN^p%R<FO(uJO zeox%Ftu<t_`G(dKPVNnkQQ;nc*;)^kLl0V;rQ8wBt1_%jtUtNZ@lAH>rNg9;nQ+sa z0WIiG7%QHe|60%|kpAmk<%=Qz7q%tS+2IN1^<PywFWgYjAdi~h3F2%a17kg33||yq zaV?Muly3RcvSa-F@t;GM+(9Ow-#-fa+l*i+pVQ?ZiJ0wAr~X~K_R3NL6bH*9);Acm z2W6FPJfc}+CWkKHn1Qv!?U(~vc7qMb6?cOQxE+0f%$TUW?Wp<%xAA?WaCr1QjaMXJ z2YGJ*Po?B`Cy`b@fCspgujCUkYu8=Q)(ufi3v55Z?>BRS0x>s>;Rn#sS2HMrI^OyS z)`;mBT<-*2>s7XkMG=IPx)OF2;pH&-%A1Obs7UmsLYLdlfCRaFF~8xlZE|~(g=93( z0NxxF0wdOW9_`N%Ctf>xRaOVc3L$!YD~tHP*s$?eCEnQ^<>SvE-yoRpxr@lrBV5|y zRH|!%-)|z4&X#0^Cod@Q9yd1b8GW?)J_+UNNK+~+aLP0VAy-%d(5W_VXg<050I}Gp z2)jt0$gH|H;~0gx@;8NqE|L<@%2GwuTzn1)bi)&>zRRfAVkS0(eO5P1__*pey~<2p zQl{PZIwj$W+^)xQm<RNR=fl@!WOEFBPCulRT6*}7&YkQX<&N`(Y6asXxVnq+zKnsx zs5{Rwu~hhD6O;%Y5W<Q5{rwK&Hz#!<4oFQ7XwMp@`{p-qL#RJ>|8LK^QD>&6V^#dz zE50E=zPh;XS?lHndNNoZJfc7ndV*|FH5R!X54Q#3i~i?L3tK!6JCBJoiSM7itdo8U z58p)&=kxnzWLVdqb8)3;f=P0B1aA!|FlVg8YJIl+Vf&W#`_o(bB49eeETJY)v_zyd z`2hMy0M9viEd|^rZTup2ns&w}YV+z(sH&Sq&NS`$f+#U+m=y+=qMCg_jU?GFMmi4_ z3kj5}mx_%qS@=XtV*GbE8i^H&!J*0LtXS9p(2j6<xxiY%?9eJuL{b2ExM#b2-meS1 z6sswjo;RSFDfY)%9Nz^v$?ioQ#V>MgQD1?ST+utT*>nN%F?YIR1J}RT)HLpDAlAz@ z(kozcHKr~ZC@d1-0HT}341eKell?TuMO*!ug?Huy0^x0H^->9=lY&vE70-RIu0OkH zCG%lv5mSy<RTq<Gy@gXKBmQ*Sb8l7?#XglCB96;neyJ(v9Qc}XQFJIVjb};t^4l+n zWbs{#3@7OcMGlv_(?$h(8d*>WI*I;ENM#7*hVkF%;-qBFvX_FDIaHT+_{-U!(9?Lv zu2pcFV&lkjGiAvr8<oaA|5V3?#3OKhYm?v6VN(!TewtzPQP=lc!$}_kz}btA8MOqW zMh&-!BZ9?LqQZ?fP%KiQj^?s=<-D)#1FdJX^<F#*tduzc7dY5zxYS<dXNzO^Q^c`* z(LUb8)#4t+*e*9tg@t>jS;bQV8V-b-d+=5;aorptUDw4aV!5<ai`YASHup8T9SK1n zfL6L53<p87W8lokVSEPp3Turn&8z-QFc8}d0SXNn?5v-hVSUUhX~acWq;zIcvto}; z^7)B3o$q|avDwV;AVv8hfC6R%W~=1WX{<FfO;UCWU|-^l(!AJ-FWj*BSRaci%%-v! z>8qbJM(aOmctka0{`A+~57Yw^Dp8tT$r#I<)3Qr686<x}-E2eRb$C>mbIx}`5D0Gs zx4)?*eS74;dCgN^bhLEnS64{WMK!z)suRzVR7Iof$vn`&4pV|5Io|)@zf?FKdQpBV zQ8sk7*;JV#89);@`<RW$yD>jR<PXn^(Bb{-z?E28asdarh{nLIA0SHNB3~P)AvK3A z+h)Ty70r*y2`w7Sh-AzN3Y)$YpT4LK-SQoeS9~c5!igC~Hp(*jIts$|YcOc=Ke<m% z@aBYedJ-9Z3D=`&QFq^C`{v0bpLubb;_w$kRt%8A(?0YiO0Zt#q`b5Id^$Tm;V8YP z*=$v39jToSe%L1$&&b}cI#4+Ea1~cKtk5B;CWnpG)OfPdjSznL%%(`QAs{8DC}$ZL zq3_;+j`KC4b)_dW45kf@C<1vLKDZv_c|XsyvKEMSX>lJJ-eYLCe)2ro${YL<Ng>>P zqr?k;8Euqgu%sfWF7JsGH)cM8{<!jKTE0N~IIdzeV^`36|K$+@oV3RWi{hiH!|f{s zhf(L3_PEtw-_7)X5i2e9ztfg5=gx=9&!^Yj-5(x{+%3zf8E)^`{*_l@N?K~P#r3E- zp2~}?Hb9_2T~s4Vxr}2E;>}lS@Eji$TiY#MK8e;W-NH6(kE@JR{IM|0Z1>sJkDsNV zFXuP;ZQt%{eN-&6ivnbcx%q0_-~wh<^*1+_WVLVlu=IXw{lQmvWGuk9q%zaNAz>1K z1iXR^qGZ_1Hb?Pp`wsLZBH~QZ(bY1w?ur>Ldk!&2!t><u5diSKVyI0qBIMhNS5$h+ zww#ksXTIq?M`%7?`FW|-h+BS`MOB82hCAUT;g1#bUG`X@7aDh!Dt`<p_T~97O(-9{ z8W?1Knd`cL&zga8t9{mOgYnKIL$wD!g>-r=;#j))^K8ZT_kvStwtA~vdhoNKR$cqj zFq3o)#R7RhP4)dn-iEEUeYsHY@%sJ^)AYslrnK&jdx6)`8=m=R064@S8wDMd0x@?~ ztyHp5>TZ)5TCHVEgPkw#F99({D-f4JospcEVC&2%eZ76HO$*daYrEZR`n<PpkJQYr zHTiNGDhB;P-cUF<IuHV`SJJYxaj|>T9@kemP9Oa%I~GuDT~)L*C4ev;I3bSBC1|4Q zwhe$~ns0bd0<-v)7z32TLrXit^^d2}9??GlPzaNLKmI;VuyDepVB!Nv5VqzAbu+Wo zRO_a*`t?zi^Z!*u!Sen@uujo8P$-T^Z-_z>dk_BAv*I&}IVB~=(ij0~S*)1=^&mE1 zyP%M2#yUlHQwK_zk-<4cL61t+nawW}xu-B^qSsdsRB*8svpM6U1`ru(Er#FumqI}3 z{DZz*qz%Hk8Sc6W64m&8#9crMLocK*vNHAes@$9!tvn6h{M-nA%Ei>z$JV|Z_rO*| z<=@}!Bv>WD&khiDDUH+0XjmJ<5|N*rAU~}_q3SjWy%(?HBl!C*3#5j&V<0+EO2kqS zJfTBs&Fm@#EX|8*GMUnf!KPsK9D)b_4-ocMSNPlHF2$wEJ+P__7syG5rCuVrWdZ1r zYquG9EJJDNlcM&AydbSaYnzB<PWw$+Z_H8QJqSnf!9fpTsn^k*%|Us$zG|AN*ZOi7 z%7(JIH%5Cus`5vHX5e7uMB=EDVJ+RAJRLTMA)a`Z>(tcN7vMYlF1_pTk5hU%+>ik2 zqZvTRv2F~@GG5xO9vrjrWI7{!;n;E(kib$Z&0NE)t9Jefq{RE1^6rIo9r5&A^*xd! z^G_B(gRFd?JU1Qu<dz&eLKoITGsl&zT+huBc=@GD;2xdn%-+qHzq&H1h>a7i++%rC zU#BGxA|Ck-l;te#n~XY-MW=J5Dj7m4+-=IVy3GoZB!*4-u%d2?-&d*yTI<MQz|gKY zmHtkD<_JMM&@xFpt8TN>C~EELw`JRNBf{aIH_+#|rPP*n(pB7T4jZ(gbFI$!7g)ml zKKCTVr-99I@WUCLbpGy{_XgXpA2dC}vTcIeF~}e;(NFhqI182-^L$(_S?6&v#_x#D z7WAErq7Y&9po%^{*!5cS;kZ*;>u!suzy$b*s(JjTi4i}B#I^QcxbNMS_$R1dW9~>E z%;cZeazw{B!hae`wt7}kdg4~Om9bI!+5D9yPqm=g4r*tLA-)TXmHqfRw>k0pS8wMu z5__+&i3vFH$PQPM=w#57M(r({jI}nOOC+0C;B&m>-+$IW+heUptYJ=%%8{@c7cH$T zS=y?!Df&qG$tK7q!`5&6*l!meu#K*%%SYN!c_S8qH*(q|y#0CzyH)>^F>7IxOpQ!; ztgH(<y2rWjOk3QGFeF{m=@({u=CAJNdu{OO=$gY8ODug9{W*CB<!K>9G0`SpnXXF9 zX-gqV3O@A1M;M_u&NW7LtLNDyQxn>JMtA+ilp!D57QWvZMLFYn6k&hQ+_MXxs-&jZ z{kNTE-NIuObjz0<2(p~9BLEWhp9Y8F;-}+Lnu#8gnC&a49`@m-(#ijglgiJia?&ts zFNva9@zPUh{lj}bNhx-G5^R!l@HN9{8Kezi#w%^7Rh^mQs%bM79+*%Nz{nIck<tx6 z-mfftEg-cSq7u)^L-~Q$t@>A(EYJycj|D{-F!@bTgNP9aZLeXwW|cOOHP&p6IAFId z|46aH>bI^LedTR2o1``ooX`6#RsQ)N<_mS;KZf%OLP^yPKj4|r>b(MTs@M1DuzrNq zf}Lh8b8zg%DF`mLFAD~oR6LH9`=0}45stRgmFnUvkT(2!ixUn7*aZ&V{`c%tBG0ON z!+G3hp!(%KMJCm?T^kkLkhCz|)qzs26!;Oz%G0W|VUSbUx4E@eL1e?5MrP^2`@td| zFvc$m$qDNlNk<66!g+erj|nL3kFWnnpmVKmn|(EQ4xu0fo!ppu*USLY#Qyy~#oy-= zlYU&!DujhS<dQQs@b*_|Q8iAb(?r=L2oxk_PM-{dZBLccg_lZf)pg9OJX#b)wo?vA z2rtdXO6Z{QLmu&<sYF6NJO)o?D~GcWt)!(f-wlO)nbJ!tMp`<AZb0I*I7;&F1^N_w zLZM(hx$*w?UIMcY&~`L*13M}3rLFsmt(5j;D|5{}y}5eBPg9qZpk4K+6>6pSfoGtE ze5&lgVk*<Y%Zccd92A7ooHKqRuiSx3HMT4iRZX_SE~8ShsBjctzsbvc&iaVF5X=l8 zZ3|D3=8Rxj_kVtdet~!-Q!Nk!+llkg9$&Gn`~4{+pai1kBjwtrpgm<da$0*&3S!Pn zU7e<d8$E7-vA!+(>s(l~0ixf@WbOR=u*G~WU0>M~<;Ppc3zBKmZ=WdRl)_t-U!xMA zI?z2SHo*RRLx#7GQ=`EPS^wJ&e?Dtk;dq_87ATn<Is|{=EW5L!R3-A3`V`j_`CXgJ z_SmXR>FL8}KUg4hjvgZ^T4)VKUqEM*^)|<uuU6xGGsY2tRQJ}l#U9J^xtxy~VvnfZ zw&YK4KoK4#stW{n%{O^4ObxOP^NR$c{5aZfKck?Mit$r-ux{d;Q}O>}AFs9<+mAmu zlIG2idaS`#BasY!$=~+O)SD8s?0fbahcvu+cFb67$caA6?3c=&g8y7_PZh55dpA^N zn<k7~Em>W!|M|e?5uql8%enQ|<JPyGK3|3cjc$LQIqI;SVzq2d%hhhb=uF4tx1IAf zO5}sNubkgM+xB*~Rek2BeCAS;^ca2zOZ(J!r$Y>T;*j)07=?V1XbqUmFl(G(GOCJF zfvq0WlYWDs`1Oj6u$m&ojC%^9c}#(d;rcj5xt4q;K6nXzR#lh@tOVuFN_^~NKfZ?U zZr+}6N{OU=>3#=-iO=rP%I5|PPC-aX%G|#5M>3EBA$%BoDvfU89&M&4c!VKta0%Q> z78|2}>cf5b@=s!5CnUT^9wUDDF@>;Nd<I9!WQ#rF$*mG93zw6tqFTgkK5U1GyObgy zOE#&IS>6)V2Ci&5eZoOU2&e|}p}k-{@+@_)qd{S>!5cuU;G`5V33@uPhcECfIuJd^ zPFnxKg3H+HRv5ejpbV+P-L&UFs?k=-GhXb^TWu~8Os6iB3<q41?PtR`DG8gQl`sS_ zLy~$^l#d4F!2^VSdlf~HHswVI^W3@OwCr`iKGq3TJct{!y%`Q?+bdh4Rp18P9RM3J zG$j+q%gjy|3@ZvQp#@RcO<iidfBdW=_vc$I;893LB<I;rGZhaH9lCqzAcMlu)cBk6 zfD`!OuIla$2}JTxDqH%!2kuH2q&q5<y4s@ml5P%A!<NDOhaTh&n>*B@V?Fy5LijX< z09JrAL9=5JA@qi+Pc;o@ALEo3OD^;{l0>lk?x|qXALu!neXP>R#UzhET$*?JR^cy> zi#W|5wKVY+ow9o~XTnSFK{(NE;>EQ+%>G}w5;c{Kh7LMr6p^@(nT=rVUXGLX`e<HQ z=gFU>d^O$1Fn^<8+j{NL`{!JS4tNx_MXvUCNAQd~U*(`ZcqXj@pjF-T`%J6b#2vxf zE%oCY!va-{Mi*~<rH^6ZMZycw1VZud*Z|z^LLTp}DM&j-G#84fTRCuA20ByBBIb*R zS~Gz}l#)xUPw6$OPmRyt{_YBm0t&-1kD%mWG%ufBmAt8y(<nV6*9j%5_?Dg1$eBhf z`PRg(vaKo|o9wO{8e_}zCCFY`<Qy1ODpWllkF!e)$ung!PHa#|`TkjpoQ*n)x7W}V zI8;MrSXS00;akkAJAl}1Id%VQwLO^!O9$#qabJ^Sv6kI($WlY&r%Cr72|YH5qOaJM z{)!3DiCldhvo_DN%jW&<0?w0hN~=1bjiEe2IEND_%;xfocj#}~CzC8+<Ec`+(P$g- zk#Kb{k=~Ny3TG<pa}#=Qm&tP+@$8Suc;dIF!PLq#ax$}$#`(CJdMj`ZHH+8wK|&XH zo-rQ$8K}28&Yak*?IWed=68|(Z}C80%6v!CfuQf{4I*>qzWk_H%M_cqw9ywGSkys! z&7j<Vyl*RLq+2~utt&EDFe<<nh(D<jUMu2x9U0}hk;fC@>knc6sfW~&aTdv=2YDb? ztjVMXy285WumXt@UWEa}$27*_F~&X#UdyyII)+G9?#d}N;LN_Ajao{T?ducA?woQs z-3~^<&1g6&EN=4xUW9pl!L+9ruU(Kq(mNw|)~EH*`u7Orz#S=fw}h;axvX3^-1F6` za*$DybcL_{GDBA_)FED^z?;J}05+A^sDOth2}{II&QMmk<qP;$j^;3cG0_*Oq{vJh zO?x(#{Afon-a`vALpKP|cpM1l6&P&ERKWq^7}d=np3ZdoQ5QLO!bcRFGj3GuoyuC1 zW`ij3fsF|GB6_spUp|insvW2!eumZp*LG%LWz$nDjKc12LCLgr9pEf7;1lf@oX<w> z(LVmBII>rEqD$#|-5p*;UkG6N@~z~AzcGFYJ0-L9I;Uo>G&~8s_lLA0e3Y2}d9`}N zDQfT1x4MScaOrF3iP33t#P;uuoWU&_Wt@_>H`*$h>X$4;R2QG#ZR9lFDFNFOBZ_j? z0Y7|Q8m$R(<vz<T^-r&6Aogd!<xX~l(EGgm!=v{6A+Wf9h#}=FQ}_)l%FA=){i%@< zN%raGp~Gl$b_Hz;!cO!f6k*iqk@1V{Gq-5)v&%`S4KZSUS&G+?s=(kMQ;z0NQktVg z(8IpLy7-b1PC2xF{IE+5MV#;2vPq$C-Mz6cMpVk`W2`hr%Gn5{I`mWk6;Y+i-Cj)x z0;;x*S&0hmGv8r83c_-(LGp9I#EnpRWn9Fuz*c^LxSJ7j#v4Tg-(~d8=Dm`Y)n^%E zQ^m0bu455L(ouMkgDIWW?Z$K_>Nj#T5KrL9@ko{wj{H!h{BJ<|1<99G$$u}d;#Xav zym8@cFb(l3M{aK1g)QQNUwN_;>t?$rWE$g-rM*l=u!26bkuwlRJd3N~vGuJlE(;&M zt(E@bTLJ5ev<XBCAcv#3S?9+j0OibFG_&vSBJ!YmH82{Z%SB~=`MXcKJ>|Imwe-Oa zYaf%H;Ny9t);nS-Rc`mvi#GJ{_m<thhvCiEKQD2PjRey<P70MIrOMY$R|!O!?!YzV z_F+OFFHkS9@A9ImIZl(GM@f$3@W<DG;nF3(j3>IS<C#)0J###3cUxzqMw?ju3<}X< zJ@_29MuR&;)(i+#8AK4QQvl^K>NvKs$vzE_%*&@H?A<R*ExX1VM;A5eGuL@4S{3Wa z@H$i$zCZk^7InF`U@23{X>22y4o#csT0i+w{-aiAcVRPjS3R978}mNsF=qDD`KS`2 zL8`k!{J!SGc0YbhCP1Q23g=|0D30ZfT0msryUjvJ)xGu+Y^v3O@i*#54<7z6(St9^ zG{EnPBjf-JXfrQA;zgIwU4ya>%(lj}Jd8x|b+(#|f(DDQvv+hnkDG{zIH1i8Ka++@ z;lWzm%Y6jf0#N`CQX9WI2dUuqdT5WgZ_j4{E5e=$D%8gJA4p~P;ZKTV6#SYQ0b+0# z9<@Ta=a<+d$x9%sJo41?>bk@MAN04ET$KOs3~;-66IjT1XX^nX;NI5&#}JC^gH7U_ zL9aWeLN)9Kb5ok=IdZ%?wJB&(<}moDV5)!k)K&X^)u0hux$y7cygw%r!Z)d`2o26o zTrxPPX?kxk6T<5xdLR#h=%E}=`8YaZ_$_P!n<sqUwGYBI?lTQ;H3?`gN`ybb4^LmA zZ~d&t(7_oF$Ai)XKV&BQ)7te_nW6|p8$Qo9Cu1Zb{Y=MAImFtPzOTy+zSS3FLcyMe zg$#f!xy(v)Kl<}XlIKy*k<aDFL_NBq>#KVdr<R=5x_wk|=r3>G#AFrEfrU}j(ehfB z93r_R1SGNHCsR%p`^OW}K2x}Vqs|GA>iEkl;4=Ob*uFp4m%_jC@#<3pIy5<g-7lJL zuTfdNt^e?#^RQOHgI$u9Gvn}z(5UmFz{v9V+1%S>^2EmC;VT>jANy$H^cOX`qxh$h zoO-^9#qokQTI}d@IQP(%eOAT2B$ujxK~-af<r9@#H~bF&$Y0vyv^;iPHEZYeLpLQh zGh!o}kRu&6%#R<=s;BH2G@9L=kZ)?AxJgLk$oyx5c<3BZogODK#dijFmP=GJ0#2yb zcM?pNVnAD{+>-%zvEgODBLx4h4)l4j<ZrmyJ^;hw#V6n(Ajf~yd$z&vMll#F((@k7 zLrl4O%A8lS9wsCBjK(B8nM|z}7S(q44U?u(KfV^CE*)Ow-%|<!;SLsSHfiQyhY{^2 znfA30?=ItYzPxH<@%8ng><@(Hfya8uz01e$FEF2sOyYIC0UPPKpyT)45kGe#@aG*Z zgMM8<`KuMs0pcJ~IZ!-EFwYZ_OC_(pJ0Kh!WnWA?Q~D<JSMU+M*;|np&H5?43v-nm z45s>G7aelHFj@z46&#N;xX76`m`_Cu>}$p1PFt?3I4=Jbf7+p{EPvxO%AQ}CPAS)+ zI!E%>EPMn>RYdlNRrzO!QYzAK_Tp0<(yXtj2Qc+;`*&$ofQ$d^d%md6k1zIGz;zrp zBPLan&@&*x-dDa@Iyu#}tE4ynRL{R5>@zz#lluat6;HLlzvNHerIZ!tkB&o+FzR7f z)5i*?x%OHX_T9$Q9x~yEdLzb(Hlew+>`C59n5dT^_^;mf@mVoMdyu?)p@0ugYqfuj z=`o#?HF%rU#6`01wOv8gh+~)ULx8VYCiEZ)<F?Fsgs?4vz4jPv#vBhy^Dv7PwC8|N zSRkK$`yJ^0@Rl1V$9LkbZya?wDd8G?r!z1k1>X9J7|vJ+g4U}u&F{olE}S*Lhp}8G zLJ){gV;BHKp_v~612#gh45$*LI%8d^{xcER@}q)6wF#?Uit@;>Qsk){(hxD^dQqd4 z&;P}N8(mKI^zv)G(N3_{41@`kpMMGb?bKoR6`u7E8>^H&43JjFs0oJGaOZ;xG~@s9 zKBiik4VU{AC}X=FE0HH~OI{xo!TJY#zMypYWlt`JB7WKT$=~=iq$-d7w$h2_gFq3s z0&<jp$3any`VL*ufzVr^5OXdZl&2&>*pkA6W?2@!hu|vM)Mf4I3lX|MyTZBy`#PZS z)qU)T`GH4UaRNOTgbqFd#8QH46bpiV@Nm?b!xAJwXwL|h%Mf>}K-d{GcAPy$IN%3- z!cFo9?G46Uy0nfCTa$jt%7|cRV4yI#J!EMKv;9XrsSsIURJ!v&Ux2p8yDR)*>bW2P zdR|#uIy172R?UjB&5hy2P4pC2vZD_+`j>Xev1|LNcSEjsVjcmnpsAaXz(0do_I=2| zockVXLw(2yI}TKk)i*5-3H#xmLo`pp2YzP=<Up6-AAV9*GCWMs6;*2A#op~mpbd9w z@C9`aj6<ofSE5d)=&WgrOfst)w%KYor8)eAva{a-AzRkv6s0Qe$5j;sa7*@-cvN~N z{?g6yj4ND&{*kYBsPQ6^*~Vu7YJl^&@Argwfyz4rX);M0$wxxgd<tF3fTFs1D0t82 zPKXyjrT;miMmfRku%#H0-&)Y5AROy*oO?qX7%+m$q|N&N^_NefLmtTY;ayevHGBzL z6E2wu#py^C{WE0dCSOnBiK@V=D4Ir8+-z#t+Xe<lkT*tLA7g|9*YE`~C*TNzC&gaN z&%Gf=rPH@U63k44*m;U95iV6h@bd-5H<xKonxSf%mqy62uYz4EwbI{bOFbCtfkbNE z(tx}}`+AeDe<cAtf!=gHn-xovvnAp?5)blalsfs$ZEUH#jL_wLcF)j+XyLGFLmy6K z>r>W>5&h80p<K~5+j!*jpGU)iI~0v^`1sf~6ZFPUW62jEq+%~bhpfF!4_kvI&!U7b zGPg%;M&z@E7R0M`Ur7|l-^*#XRCfOnf5~iP`(I-r?cUv=SH-cPfOdX6AMAa%Xys46 z7L4k~Jk7*Ai(`L$<b~0fEBvSIycqWG^d%-g_et2Kpgk5fk%Ti&u=Y12N?;%9lVrdV zLfn!+Sd5=eiLI<#KO^-Cc{q|hh2#Xt@qN=RC<MSsSucLNpAR;6DnI-FM9C7|t53Yi zzbYRv?R96O>Y^+^T(u>kA*ayglGHSL#d$D8@GryIZVl@@Smwjb?`8zXKhrQO#Dkeh z&M6aLyD;?K)9!jN{A@7$uK*E@e2l~efLk7JToz1jVFnFpfR|i*rbj3qeoflp>r!qv zkoNdR-hb=KATsz*9jOVp04lq@qY7@RnMjUpl>=FyYaaNR)~mo1##TPPn13*}njU#y zxml6!!gX)}^b2Y_3tIs-1o!@?a}12mmX?-9!%B!epH)}hNM1XNqbiNdZ>#xa8B=}R zf7ZV$_%Bi~PJ?Hw!tDF1;Ocm}VL_jG!Pnsg(8S#fDfX-9*<2#Y!qGf2N^G29ArymC zMq0g2vc|(%1SW@WrVX|Yv7r<0I-FEI^5lHsvsHDvw6R?P2@GsM*zno_lE}s%3Fo0H z{&2-pUBC5cA%#<83`;IMY&TJp|G<2oZpIdqXNg$55XVXO9l5SgP`^s_AKj}LN;72& zKja>9e&!-4doDa?CUsdsUH{9}<K<zK7tmL>JO6CrplI+k8b8c;{9Dx1lsAP(RIjFg zbhn9UE`?%3%;-)lcP8U;)yjWjrSu<y<PDI$t$X>yu1TB7%D%d5NT>;$WbLj)i?hTF zq{bq@-b3sZt#+P3jLUmsBN>5Dk`;`%6`1X@ByvKi!<a}nHIPQfcAO(C($qj&2;cm5 zcP3KG2y6w_k&)WQKpItKQ-e&vIct|SfD`IB567l1D25+~#ic!i>!(597+)}aamB^G zWu#-J*I<HS%1114#6&x;CYv$^v1oiyA{uBX#NMQj&<Qx1D7ePnidgyK!<+v_KgaRB zq@nM{#S<>5#qM4gs8lef?jdgBj2m9C8W`ma`EGBW$!d)+=EaqK6TOR8z3lllg!S>t zQ#%b1%&m`v)0}j?@^daL6{9{QS(Q>X=gxQX-0{H~o$-9HLo*r^|7mye3bRrrC+XYl zNan&5x5&4d8YgdgaSjMiFWaAlwW4$DhS)+^U-*q*;!(<#>Zx>EVz=|uGF$Bjvg!PN zHY4VY)~-E{!SpCF_=WqYSv%FYcR<`XC+DStKHS9NdOZ0)8~J|6blLn$G1%qAI8Q^h zz$CurltMRNm7#0C3>t&@Ql^(GmeUyiLi<j9XFDN9gH5tfZr!%U)K*p{YT|lRFW#qN zo%H3;j%WZ%uxSvc^Ma2g{?{S}(s(ur)76t7JJ*j#eecDaZ#s14l-axAk9$;PWk)zq zRtil;&A=~hRq+K6KxjO4tiwZkr(=Yv7ox{>SwIrZ8F7A|>2haizQD5o%F^T4y-^xK z5M@|;2B1Xa2{{n(2jP)_tYa2l^)MD(?8ld{;Icl#`VMqEF|6gT9Gf4-AdLIHc>h8X z@FSiM7TQ<y2H&AZ6-m9TU7{esD?(@%#i9?!o=pF5?@Rxc2}F3z%m<xAn%ZHlC(DO` zM&L!`{{eEpGlvghXGimQ3|SFrf>C5HRSB{9SWKz9eeW5t0$QMEpp8NYVJBu>mmtIb zeK!d9ud(UY=lt#(`X9n<De)OM%e#g;eGm(;r8N{`nk9aSC4tBAa^6UTF-o$2QE`Wq zKO|<*lo}+$HD8{fM7oL*g5(7uT(=<uUi4OmlnevH9tqD*D}#NB)=|%F?N)FO^&CA| zsaN5N?5caws(>QG@J<<Z`=T6D!?g#{H*aS<C}IgMZ}r~Wz-5NDs_i{6h+5Q1RBrZm z9$hw4FY7D;k?smYmn1HPGmvPUrY4%7K!|hs7WuKZIS_o_HcY9_AZFOnV6rqlhC&~9 zU(wGKf~EKm@k<_7lC3icICLf)mUSziQV{kH`BlgJUjFqiLPGY`g(&eHCevKQ{E!ro zFEJkI)PcA5zL(uJL-GmLthV0+o2MhnixG>bazUi8_Jcd{!{U7w-hX$s{_ErV4dgUY zqO$d9C11L-9yb|wWnrIA3k6-JpD(#6!u@;r{+l^X<}58?*`E_q7$(Kueu!W4-QnDg zB`rV2>P8&djgwz(hfLDPJ0Au|Id3%6awAWmAzJIEX*NUZ@XLz7EfmIa^wY@$=02Tn zRkTfG#iHU{aT;Y=Pi`Si8uoK`Aj!CSq*fsze#;NQ|9tiy2sPQz#a0`$RS_sYD?Vbb zGd}p72k%y{-XrTZI4ZTZch_rrGP)?$<`zMzXQM+0Z7rh<Za;$wb9b?!KmiAiqlM~E z<I6Q_$%AP^)ed*=FmS}>R|~LIL={*(v^J)gRI*!n;kULX`pvT=n=#CNb}4WCP!&Bl z??G@E7hjoCoqGU7Tq>R1>isq!h4O*9iFYX%_RK7DS}T^O>d)>cPc}PPPi8Uu`4bl& zt2wvWx2Sc6Ig78bx~QS)#6-SQ7`*DmV_d!IOJLuIl1!@M%9V#mPs_lNbiX=$=VCs+ zzq6i$X74JWqX`f9#UWVR5j7rTDou(jZ|NWX9B?20!G|ruhf%0=4<W37=A{zt%=0`< zmykYsV~_FY9Pl<+Gy7%|F}{nMQ*&MT&u70o6Yjl(hOe*ppH|h8#3Fmb%yUQq3~Nn$ zit<Nw_wP^u0eJAjuL!1^JC|fFmnjIY1L4rL4HQu7&`%)bi(}v4LP!a~H!hzG5DU`% zzE2^5b0W#<G9owcB-VnnCwwO_00O&G?Nss;pY>tbcu}lR3JaeZ*})K$0=UsRbGv?? zm$7%00sjLO@`MOZ68}7UB=16WRP_M`Z4>cG1ZVis_FfYz)gA#|F~X*G)%6L?JU|J! zTS(6SOd@dh{zyzR;O(z={ucDOz98GId2dDjIE3UDp3EMjzpRNOnqEBslz`o<)PZ9R zFG<wTS7p$r2Xl3%HOfae)-)6X!N!2U%ZH`XC3P7_zOFl4qEopja0Gz@R{~UGX~>)} zQo@vS=-}Heei`xby4$mJKk9((GW&{eZ+&&+h&&w_eRFD6wjEHa(<}(Y0YeOO6&qi@ zx?M53Q&M+UZypKh29d2i%MHZqHtpvU_#>)bR<=?(trB;Dx{-4_<_aC2?Q2+>emq~e zbWUWIK~Ag8+3<-U2`*efk&)<<*Gu6LO7Sw&%1ddhs6G78wl_RcI`^C^|31S0Z?3J{ zbZrxQ{|*ZU2MhmHf*1aIS=fWt%Y^_7yoigCC^mlBS)`H2FJs0R`6Bv)OG@EzAEb=> zzpO0R(%V$1Lzd8TcU;?=96LrF!cWZICR-T>*j+8{UN{+nvT`DSyE5g3YSiUwW&o7F z-K`ZiF+S}#ruY&)Q8ZkxJOL{J>t}a+(*HvO$~O1K%!ex*Bl_In{O}vi+WNBD|HZ}_ z#5sTO`!^Dg;{rBUFPtr%8}nfC)wL;5V16EKj`X-j3u88t8<V#h48AdpkKeV;LM)D) zdDhY`mu~GVk+6FHj|tc9adQ`4)srC{CoR)8f?J(@5Y?-$>ZY;-<?FNqP0y4!<<h<9 z`e^7QqY>W4Z@#p^Gc{1@Xb&ui)77+|+wzmL9<I*~e*yuXTye1RmE3C88lw~PswAv@ zOP!&zqn{p%tq{BMSi^aY+bX##;OscX16DCBk>}@ho}P>4#C6k({bLOyfkr=`kBaGC zuznFIY_lq;C6M=~&PaN%WO3l}?!p`4?Yp)<{dn$Hjr7_$1^<R>D^bFwDnnon=`4o( zt-NQnZW`|5E%!~ceo<!=`5YyAoJi8+?5z~&s>iHhU&xTzA`Ya#tN98th{GE(p(ZmD zs@s7;jSr^Cb|gIDdH_J+1_VCCz(dV%{ZHs&rq6uNKl3>M4gQ$DUE~5=DsZi^$t7?z zhy47a4aB3rdCNCm<tRPvBiZ>D!~0;V&dzMvB!JT#vCGzfd<}qtVi45p7B-?L1^%j% zhS87=))edFc7ugn`TN2=jHOF&Wx}{3Z6@m2xqO%soV)X4F+w-KDgws%liTn0*(eAz z%PbV|VGkJdIkT<rVeB^`{pYL=Y96Qv9*!xioR85kx(@>ch;OAqMZ@A7yWGwbyfrEQ z_gB{Y>07g&QP>8?DwUj|j|e>tl(734p$E$JOvG$|Jy7wO$g$--C_)H#7$0uPfX&QY zzY=Emm<#Ezdq|r6ac|oZoxExo4HiR?8XBgttfqy9EwYxg*4FFL`11(%+MJ)?ygacV zBus}7ojESQr}t8~QWNsaW~vDGksC<(kWNqFhx&w&Q08sT_j&Y8V5+~M!YY=|q{33i zfVF`P9y(<jtN8N^w|w`bNVP(DZwE!HVe!vWfD17=p=$3*uew+(jY3K0Vwlt}py{Q( zolqoj$N_HVW>JnZY#^u0+(Qu3NpQkgs?L*MD=+`OmuM{~XQo!3zGb9U*{=h3@b>>Z zd@^%*a|Iy^AD7<rV<k?97Pju!20U*U#Kqk3u0Rp%g$VEfc=z#4c#K6=m~#Sgy2d{g zvO?_VaV3nM7-Y^zTjdlftZ-TqGn)R<K;Ih4Dd8uv5@%YJrdqDX0}i%nA_uivU8*zx z<eXBTRfqyFZsKpkTn`V^O7;DTrB---zyG=`Q2O6D{L8J~o&Uha5>>PM$$$3JBS;y2 zT^`i2)K>90u3G5DU2_lwu<TWdC$(fN7AlkHApPO$F+zunY5(QQL<CE4(X*N?!K|wM zO35YJSXu731Tkvq*KSKe;NsD0hPB-#xqde0N2Tg7eJz_<3vw2diz?sC>)ETf9iP`n ztaYurs9)-6Xnz!@3sR@DzYD>!BM*Jon@ZNEw8?_ohw`tW%azc~s?AsCl36=%e#0#- zHASnx^Pq^8oX{<$r)xepo3L~J<d~ICmp9uHiU!Y+*HSsoa~b6*f>`vTMWcPu@#{yR z`PRCjuA;<u0c^ROuf)h?XZ))tB9;x!>NbCbJBv4hkH+G1M}R$~kn~?m)$1K@I@w(= zQ1IBIo=hS7E{oM)$Q_z^{IUc8DlMErFYM$c^jw5N<T{0wA6cfOlmgX2RZ!Dn<9Evg z)|om}bPnD8$e$l>;K~c9O~Yg@^=atX@_DEZ_FlU4V{7oAB2XQ=edT)a#~wp>$Vjy~ zmer{f|LYwpc0CDG?IZ2<jFw&7SJ4D{*nxSfl;TL}dVUtN{6<0dF+4RxwRbSzm6ap` zc;8A5xN%WCZ9sS|s{y*VN4E-!LFeILvHAOa2Ht!G{56upV&I|wu3HugPl*e2r_gl0 z3QVe&H+f*K@F$9Nm<TDXoj>ApK58j%ic#F{j#Hi93uqz4AUngyq3V=`8L2a7ea`Yr zj!p9OKFIf!AC_fcJHLC*UlzS_CYq;6iMHvqD$~D<C{j}*2^$8802ox|1>t1a@4h9# zSuCA4)lWgFNLo}RO&Bc7CyrHcol;dvm4AIAF}6|O6d64D+s=%$NyO~7B*h!Z|2&Zx zeS@e*8UmoG{o$k{GE*!J8eX4018zyl8IFbss+II@tfVoieYC58vo!?qTQw;feg->< zL}$Q+e@-AL{0<r-$KSMs55u-7QMn97HsF#+Pl?~4$uJ1!U5AyRNK8(f%Q~%2UWQw& z{ki%%RMlL{-8o>fTk<?kX+Hr3jqYwVA7WmD(LmMclOqYvPo7|8Bu~xu49;7lB&8WQ zfW8yNOiM?v+NB3ssenXezdCK>95fUs?kI}Hf&FUFz4p%r-h+RN;Cywt?>m|~+yDt# zp78!YAJk4t`s~f&s`!~zzx!R<%f6<h99nPS%NHK=t?dp&_dY{+=HZK(iZ9zTf&#dT z#oT=7HT>|--=%UCFA@@T#)E3hV$?ZKE0f43|Ie;<V!*#vC2OK0Pn=Fj05{(Rc!iI) zJh=JaH`CbXAZ$d7gs)nc`-<?v)}B#mgbd#kIt)L7)yT4dT7iBV2h<VNltvs%y(e3N z$WP_pYio9P1Rw)n%jq3KRs=r;W95UI>0!x6R48L$?<WJmLmV6x$L5Zd;im>KN3l4Z zVP*f!@Q{)kFK{We-;-#tZQNX*XttG3fAlJz^SkrI-S%1W^El7_hbA<Ji2kv+^3A+S z;K62B{$VodJ$KtqM4mR&I56LU+*23PcR5~Db*fDOCHeO7#t>I2hptacMdrMYN?V}j zTe|0{g*|?2MaPfko~%>?#kB0K@<LonbYIW^T8V!p%64NeAk>Y`FQ@lI%S18pTidte z8J4Fmewt!?R*g08bd*+#LYjE*S7mRNplUcT%yC|siQV{0LD&*krDf=}rNUQF##v?F zo$*(AZ}a{pL7ZJ!yM;Wu_$oF_*(kx#{a2r1NIHh!C)a^6<g}@{B%G)?YyKV_$fNNA zdk3o)S>HA-o(5B(2Zx~(I%5B=VQceos2IHPdAegSCdApU)bLUBX9|X=6#e*VVNP24 zQ0gzNk_(>jDJR@Ahn(OBYt1}Z^d$uc@U?#+<#sCtE_*fFJO%yNkv{L>mHdVvoKC)M ze?71*?&b*x!iwb4>pzIASD~WpQPXdWWSaSqN?cF`dXOrp<hBn%6hyeXstsA_Bw>aX zAw-EMwzX%yVb6aQ9`i=UBuno|0N_RnVSkr~u}!-Z-vYOPbJ*DXzer}W(nZMGvPr5J z?CXQ!FTLpmT<iYg7yhX6VLb)rR>0BEwQu>FqCA@66Rhoz;?t!uZd}~B2@Bz9k~g^d z`G@&h3Y?RehZQC(eE3}#UYAokc>w}Gz2ex4pEvD*EmkuDuH9Gs^Uylzp7;+!!4@<l z%csyAE57$J|99)X(x*~&TQLVnu!uVYE|D0_jg-eA@F{;PA_~g<1EdiHMmtYi7x16X zzI-?*R|!^OQtihky&?gEJzLQ)h~}{)((;z&V7D1))Wkk5g(lMBI;~@>635vq0tREj z4Ak)biinBkp8MNQif~|fOlvU`*(BK#s3BrZfq<6X8`J$xJ8w%6M8W;KP7Egmsy;#6 zBbbA}eS01*w>UX=iibZF9?N%??@le~WDL)rG8*$T`_r<+`k`6jEY7K9duP|JP{c4x zD^I(4_5<+G_#*8?d=YTtyJ%9b`ckTX+(1?iVizqQb~}H6sFgSVGwg~#`?+xC8^V|E zZNP6l4>Ic;C7$Cmkl!hqa020C-pks<@AEi#$g?P{qm|)@Ht86HxZWNkj1xoc7Am%E z8NeG4I7J6&a@XMbP-Q+??RyqZJml#00dwS=<$=>B)OdwP&cVDIiF`kHcNha+Kjf&L z_hMAd5|$j{yf1Vh$s4Yj+<jOk@1c$&I=6cQ3e;lxW2F$TgzyfyP{tKA`R)rz7v=`7 z`$we&imqO@5n$ojOCRTrdw=a@dZ&%Ac`x?cR7P2hm$1m|OCJ{|_QPnTw8H{+t0i_Y z-{U9GF?}^1@_II<Wd<k87dxRUQ(J$HZ-R?#vHAMMUT9mMNf8}r%L$ZPn>5XJtm+&= z`*?)bxLyOC(JxA&N8;Gx0<laht`c5*m%eWb;fkNyo_{fu;4Gk&=CCW>VI>KvZV2 zPxY6X2p7nDdHc+|v3$a2xAo(k$J~5UZq#)VaZ-aNi+|IOO<cM)2Az8&ga_=cHHC_j z5f*8f=CUjOc>U>5L06wX{c2mUJ9(*QyU0e-_tc+&kB?f78ms5^3%-|aEy#xm`>Kl! zJBVC+;<xcBIl$AeX;SyG_sieLPxh%4Fwx|x%kGLo_h{K$YN3s#0`=)9z<m`*&PJIE z#;M#Ue7=`K%g!(HCehR!?O|d^=zy>7;d4PTEZ*?c!uH?G`PB-Rpa?8P^@8=LrW0S@ z@CbY|$>KeDHe2uj+K+)(mq`?`V6%1r`H@3!0PJ5A*4x%oN3{F^2HKhtkUQ3e|CRmd zg&fD5q_>&VjsxOYj#yv>_Tudw^}%ji?!H7LhIPNXP76qn3f=rPPp+5<Sp;T?PZkrO zXlGXR2x234+)On*`G5<z22Z@;g`0N*G=`xiC{qL^yznsEnQvXO450DZe*KmM&L0p4 ztII{WwiF*gB9PAS_kZgEc|j&(p_<Enti2sU>0m37L$!L{Y#p8e)=L>H!F)L7vGP+$ zc|9Gp1O@sifnDz{pn)Q6;9avKN6P7Wcmm>gQ|l^{pgwpBRinO~1U=s0zki>7Dnf$~ z?!75A&w&3!ryZlK+{_4df?}u|4$X~U9@}r=%a`R`2zk|W##=(YBMnN!mKL^JCAHqL zbUVcd@66`;i*8I(4ye0HFm(TZ2Y3H=A+Q&(@UVvX`!hpk5PU&DWEX3HpLBBW4#fB6 zbHVyxHgfBnXiW|m{s7mSbTG*h;pi9*frgnKmh}y3Cc0@=3d&W9Xyv;X!wuN^=QzmE zd(q%LMTvrN=6g$IG8vc%I~V2;&)9pf#hzna20w0(sbxK^^$~(LL-LQ;?5Zj`lCD_s zh5WpF<7Nm4`R)NPEc78b@lD!0wT+LIFsqj3`~e&=4c^x4iLj~bsIRDOMXublZF zG!t*0(GPHD{yYR;pW&X9^X^ZCGv}ceC`-7#GJMcX*<BE)93;n$tzaW&v8!J7Cu~2w zh>KwbI;!oSXe({Fq=zwd_OPgCJ)!V0Mp_xFtU4V-NqOWKY-8)KoV+GlP#aWthHORi zSNIAwo_oHa0-1TA&#k6sHShvfKeHQ3CZ&kJ-<L}wxthUeyz=cWS;*~sn4cvao|BpI zU(nH<;l$N31N3gUF6->ufxRUC{vxZIXyKcbsx-$h{^EbP#Fs_%JXml21E*SWfjE{a z{VJ+P+sLdhtUQS<$Hl>sxj5rxTR-0a23M4{fb;sg%IovG)^jI@nsOiQJP^nBi><iN z#BBcg_;>b{2EtW%(JoT=d}L0cv2)La?uF#)W8u@&F^~K^h90gJKe!S2ON*(y+APZI zZ+*Oa-!0eH?K7d6cqk_-^FDojW9u1DN!b<J<ip~G(>`Xo1y4DQkC&$$(*qAMdub(4 zA<wFXRe&dN-=%NOTdNdxy@@9ZE9~#YMO=RC&b#bg$wdfYd}y!JgAZ=m1U}&KTPAK! zTrxCyvwzCT8M}j#cycHFM=FL~eb#5*TlSqeR^bl(4n2Aaoxs@v+rdVb?KowhFXafB z?EmmH+9)oqJ`=}Et5+wj-Xs|2Dso@oAq%*k4}!iA2!LmnVEDfgOmE+e0i|D&dX}p- zMDz+23}}AiWvW^8l?A*0XJm>p6(i)S9Q@Ovor?V}4ceT^56%_Ktq64aQSEYq1Y3<= z;UB<%&fdE{2|N5uV=BD0tR8TQ*`G49NzRX)g2=#04LDhNU`gme_^S%PSRol03v_oz zVJqm_;hc$IMiCHRYW!TTiV8dnTBv5y66V3>Tj75G_pHX|eXmAv_my`&CFz1~+`ttC zUBN#LI!O*X2QLrd>4QFS8yvR)EH>_YBmZubvR%+cySd^4tQ+zdQMR>wEsNj=`U< z6Gl~QeLy*w_2EXiT4$5sksJkI`KgCJl1EeEkeGGVL_8RN&)%hTXg`ET5x%J!J|F>x z${`yuN!*j*W$--nBJos&1VbjJi)oX4(EQu$Ywp^xT0}*PS!HEqxkdsSpy$(T=@!}J z`-5H)QO@o^P<Xb6PD$tEu3!oPV!kwg(e2Es%pGSUca8H2Rf!jzY_`Ae*Svk1m(_XW zMm)gyTpo?wCcP%)IzB;j5Fa7<Y1|B`0#X=Gx1wQ2c^0*z;W0r%)b(H}4I^72PG*%& zKaS!uF$V&w+Z?<5oCSIKyxv2%S1R1A@N|4u+-JzAR-7VVe)I^OM$D>L`?L?j!rMb4 z)`o7Z4Ov{K3s>F`sxd32UkQ={W6w;aywd>Y2w|<>R4THt02l(EQTevzv%u56`dX8@ z>ZVTWpRYw!6W1rDqfSO<3*st%dGb)=EonU%PN>?xVDyDR>~pnjk2)@7kmZhH?9N93 zH0_5KAx%;m?fS;Z2FxaYKRngor6847;Zd}a_aWiW8{s%D`Nm?hhhWD#)<KQu%HhTh zNy^Y@(}XF{F6nX=Qs*)jl>s;C%3`93v3ohMtJTkIf*-{E-<8YxN^ag;&J_GL8!q<2 zL$C7yX-aIl@;-NsVg>P|miv=#{rm(KIQWtQNoZnU@6IN9*WU=)*r9YbHKBPrTap^D zHX)V3n#m^4*II**m<4R`8;dv#aDUhZc1{(GnwR_1S|qfJ1!RN%_oLhWk^7j|NkgNb zcC+&X)?)J$jN1!78-g64t(lfz-fqa=ETKMGuOGhuFSoGm?|#K*LKFXN*-UZTaLFu- z=WaZ$#jCbNTw6N$e&?5sHj^5RsBiTxv6qI=)5*3aq+!%UE=SLnm^aq?HcIlZztd-v zq+dK6)&03yX;|Hu^Jr7ux-4z2nE>=T*HvXK%7RM!`mlG^``Po1p+pQhoim%{Dfn%j z13H7zuqyoVWl#*8dlVeNL({1k%g<sdwP4D>eFyv+*N+9E&Mz7!VaN-PS;OBjqvaGO z`!f8qPBm4-F**90VqZfr^abB?)QuKfb%uEZ1_(04Dhy{LW{kR3h?$M3T`KpVp@<>M z6#I4#{~tI=h$A~#j{r6xVUsaZ7g=2u^Dv28V*Njot~;Kp|NozBTp3ppWu_8B2-gnx zBC=&~WnMd(nK!qjtja3$Alp@PZSrZ+Fpj-bDK3&^&wg*;-yiCs$91kAykGCv>$zTq zG=Iu~pcmwnIXV{9yd<|jWVB^|0bDgjVCN{122E)ef{1WIl4B2D+YlMVE&&xMfIk1# zR%jkBAgK$tWdqatYuIKl+Dt6eoP~!J2@E}8uOdJP$lQ3aZ0I%Yp)n!IfULfyf<Mc) zQEN}_-+x>~053T4{D(rp_s5MAr%-F#COcycPj+A0A1)85m-xB!R|z6d_yKbv=IDLk z=*h}g=?AMn#@(BSVUQ_4a~m*-Ybsz_IVUTwc0ZUAR0Sbc90|x7>lK8E^#GQuSIUI2 zB4#pbpn8Gyio<MRC#TLB-?WRZHjv>a0Ib@&AVgjm?(GsQ*az>R1pGAnhf9lqf_E8g z5Q!FA(uD|nM44Dxsha+^x$(isP=g&7vXfK6m3%Y7*M23nAWpN#V>uaw^d0&B0hx<C z9eOH(XD0^=>ObneXmMO4m4;w;_Cpc}t|;@Xqfo>zuAu(f;Ab};sx>rQ)nQsy4_QS$ z6{syL<_H)k>U`1uN7<wNAj;=y6Nvm$6l@%^04v1v6Agg;et35;eE)lk)<Y=^=K}x* z?n-%quUXmN&z$*81E<R@w`ZLPr+!9zDawx;NEZIBWH<>?Yo)wA`52%zd~udD13GFu z({LaiNPuov_s9cnF?wS0UyT6oJGS^^I5WLMFsGbERsGjDwYe1T8q97Rc+J-3hRPT{ zMr_E)ucuZQ!UP*kYup{AfXs&K{A_QN3<s6E;f2*4b+A&%aEU8)ND@R92(?RpyVJcN z->;W2Cu8uRN6{|V)ia>UkRvWiT8$6$+l4D#Rt~<<B~6g~S8>MHPITeCr@;%CF+L$T zgq6Hd?JRIskG7kW{C$<npX~<v##E|4S*n&r*&*uD<!&?)QqJu9Re!&>)zqPXr3Vcm zzX->0oql)v2sw4ZG5h`zY0d=S>i88<s^X3)wabQxg)%;y^D-3abL64~VnFPD0CtQS z3ZK^9$o>@dd?9XFb#k!dajTOQ{oO_Rp@xCaEX^VHcSLRsde4;|MsJsMd@MTkS_e($ z0tQ&$T2~~jfPZxi`^)TIDxHc9z}h-j4v(uRvx>tNJ0dt-riZaX9=`~Wq2_ydkLBXJ z%;P{6k6{59q!#0U)gb97U<X+DN<PAja%uRPJqf@qjJpW(f#jglx$$*i=6eSmIJI41 z6KiiQ$NvQN3H-e*z`%D-IYABt<Lw;w{Q)%7Z{c*C8}Vu=QpZ7DZpbMJ1NI7a(vblH z2;u>g#elT`%weL};zbso%G!sF&6MIp&Yl&Be}1`4OxgY~8EnD-a^o@JGq^{%&yfrk z2y9$^aKB-rEg<awy?Jc7S|7DervC+m=N<ogN`hFwaR0#p12}$#-GJk-TLpPsEZ`T% zBPN+;To`2h%FfGvDDN==7Q2GAyMAxi=|UURQZ5i*Wr*)jK2oz=xu!Xy>^L_J_6R6e zn}EdN!M7Lry8cuuhI|};Yr9hpR)?1W_77|vI=tJIY>q~S9InX=APJgE0n*?W(A!E; z!EGjZt2giUSD>!jyXl6)F7>wB{`Z3bdvs_{#MLr@OhC@@jLsANr$(Jw4mG+ao<0He z$Rwuzps{``evSJzkHs@>G_F>^z|)GlO1UK?cd_cb;+1^wDc+$UJNN3c)b!aYs*LGy zpequ|2vTx1l|p_4sf|h-L%vbSZ_Fkg&g?^|TG%iR70y!Av^dZv->G=dO^yLKWfLD0 zZ06NTvW+nAeAfF>V4q^i*(iM`N;p6sr65j>lV8RFBW}r*h@c)VoT|PPOb&c5OxI2B zZej=EKWadC!-*bA`~?L8(T|>oQ{sl$BQ=rz94!SP0t3=qKqbZb*oWoEU&p|jwTd*< z=9$U2wjNHP%9weXcZGPGL1aR2-`l(lH~xdOB_jm0q=(8hgi`9zQc(Zr_1Hy-DychY zd99i2n)N3*S6V(qgjUb;&7yrZ;2ga)zevpZM>$UWEqe0q6eN^#DKEOF=vy~v9fvS= z%M&0O@TBpG#&Pw@{)Lbl0P-)rxeJn$t4k6hh9#5zboLjVHcyY-HuK0{@_KS&`TfJ* z%3aPUkAa};)Ok{ML!;~YP@k#qizD-#xw})Z{)6==l~~n)W$%gPV1Ltxq4!k+y8JQw zeDjYxwc}X|fC%)4s~f_h2n@bu-T2=!)Wv_VjGM$=6%O(P(<IZ?^4r{rktx4U=E~m* z`nYV}L-ihh)Ym2{JTWNX%N=QF)0Sb<+@#gc3xabB#IGSDVS@>>79d75JC<|&o5Q7L zF6_?8WwhayIWDX*p$1ZntC!`Y+_=xe!!Q6&{-Y#ih|C6rIx~FN&R+(wxK3HtzhlPt zUN#Ikvx07j)Nva0zAzCTa12Mn+o?uwU8JGrJp?9w#qPI^z$n@Y%gJSrVnKQfQ0p-s zYx)6xvA_HH!n4<rOM(D2ktUdn#tRPLKQ01JG%K*kb}v<aE-zgHo4|ha+T6Is2h#U@ z&X)wP0i*7V&xdNBH|{|3<F14=d07c4$UAwf5V*~S4<q{C#x4>6f{ma|l3;@g@WXTJ zuCYTr?{R;GOb_>m9|rXRL;l`E$ke|R^awyJ=<{y=|6p$m@OzU%)4eqj2-%qe<{ZlK z8SXWpqKN4M#`oy;by`Bt3kF>08pz|7#shTVS??BWX!OFVohlvs4?5t7v{f>s%-;u) zyRYeBZ^zoLz(83V!nq^hdUgTnJu#b2oM9%fmp%;rKykIl|55GIJZ&_e?CCK4u-`+x z>eb?xDyetl^R9=iT!P!c#4gwq4ygV^6D^7m0YPmqUxM|oM`%w}t^k8@iR%T%2H}^b zo-rM>*SvsWW+PFecGiEC@8L3wI7O9<1<liVJErd@f};AO0CrX_le^gYRtjtcSHu*w zoIYP`SR2uDqEGhDCBj$tqcE>m&R^JnsDDo3m0hti(&TmYLr&5O+_Yom@qBUqOHa=e z-CH!S5g=-AgeGD0%Z<eip27Y(ZI;O!8*@_(f_kEX;t|^k!3UYvW6uEP7ws)4<YPV_ zH3||x0-}}G!mbAbTf9+to))_MKg>YKlEs5HZZQ<K&0}!u%>;%X@c}{|<^6R-a&D)b zo*%S!Zr-AQV+N!LW3}3Wowx1e%#=rwZLf~+iOv+>uYGAWR8j|%uiopTWd#WC{nz-L zW4T;J1|3yx(f2SLK&ouGfyk4nwYpiqoiO9J)ral{EcRsp+oy+ZhG(H5hIc`?awL5d zZGfzLWG$h6={zx`agMde5@!=w_GkDUfev}N$eYm}C7<prZLsv&t)3NU#^pti^!zx* zP{5H;09wp4(IHc8{$uQ&bB_DL`rO#N9w1TcS8+`X|Lt5CMD%_k{sDmAno9v(k#^5g z;;ih7u;1qI#9QlNtQX1rWV+Kzeb4KLjNA7OZrcYHox_ff3+Z{ltM{@ZI+!7z(_fl| z%|EOmM`IIm`%*xB_)DXyv9sC9+U_2zmYve-p@$EjPsdO1{p&H?5R08%{<j$W=>##x zv?BRu3ip6=;+T{W4dLTZIj{~q^DkwwZMgfJv3ce?Yw@Y{J&n)8%ie!B8FSb~N!q(I zS^^L8c5E)9r1}Re<DVRp2WZ`p5bb-%BihD}dxS&CTEMY*AluslR`N@Xz-_0>_VYTH zH7no)FE`fm9c%fvHdqXpcHuKT#r+6G1{PDQdwIjOz`{=uw-cxJKN}zE2~hl$nu6G_ zs8Q)(AYF?kE3xhnx2GZG(Sz{r2(BOym;++He+`vGX8~?zdI%-H$$akA?ii1s&<3P_ zZOdtaiRMO!vUhO$myL^5c49q)_1&k3MjhcZ4j(}DW~pjz8Nljp^&Ew59tj_c`F;U4 z)Zxa!QLA*VfB(9s=0hi}GlX`mEz*acW@z324v#(V<dQl2mW{RZt4;mez(gf;*AS15 z%JApS3+v(k{>_CFF@8S3BBYL7y=gfeoN=-nMTdGw6RoJ|AxElzYSYA|GYq@DvsLt9 z4^pn4?YQ+AW<-=F#Tc8-rv>Zpgg&CnZS$MibAvN!f|PR;=&6tKW`$CdfH>HB`<sd) z?9aD6;w=GMU$U(O4MFV;GeWzr#Eb|<)qn1J33W%QtElgL`k4Uv0Dou+gi)6xc1V#x zY<M~<=#sA}&fDR_iPuyH>eh2P#n;bF#uB5NY8v=dYJ`Z%^wu=gpj##0_n@S|pTf?B zWT&L0)GWR4Pq=&k`*`gbOH_M7FGS#wxUEJDH$9ZL62;9tr6Z8xH*)WT3!rXSuV0w6 z5>U*tv)gr$i+LrcMCFhm=w6%K3Nrl2I<FcJt64SL>$nZn35P<>tg~voIPZ0jArH>E zo~7q1)T-OIy@u{<R%A7AHxFys^{2P}?yxZ-N7SA{{P-tdM$Y#23YU%CZrlsX-bsAP z>r1N%2NrjvHg+q9QG%~Q`|yJ{<r3y7BTXpW_WkGi*YjL`3xWJ}i%00GC7jnCR<^BW z;PRoe+JOCgO*B~AloF_$LZGL{Z@*<DLHumJO&f0$QAD+JO}VE#d<B;ak2)om_l`v8 zIP3;QFO>?5fkYv9?EME`NN_ZzpDZ&R`_`Rp(BqDbPQBELl8mLjj!0|fn`cnXhN{(9 zby3X$LLaX#SwD7Vw$)ThGD?Tqc-p`+36(;#@J730tEcG$=WwMQ#iv}m(H5~-vNb9^ z(mzRBed>cAmV%`xRCCBtwF`@P$daq3n)ODy)RT5}1o8c<kLls<JQQi~J2co>-5oCk z)2<iY=EqobgR6NbD5~b1{vA%A`$>3AR>Ah{6vu&kEFE>tHBlP-XpqIW!0cqQA7zEU z*YU<fQN7efy;5G0Te(o~iGq4Fj$Gv#nS1qhWq4VNb8yz}YP7FNbN?Pye$JLfxiDy4 zRHK2<;Yjn{$(;s4IRZ0HkZr0hruid}qd_V<>HN?NvR*9W@@usMzj!qGf`A+WUGcCI zFSs_+!ZAGY!c!xjboN(YN6+H^?k13`X?`DsYgz!ey<herhbQP4sY6Y2;Up>5nnhWT zz>#N!QP%z?T!F8=CL?eMog{doIWPq;j+=Q{<cbjZ^H^J5BJVuLPe|ADU>S*M%rSFP z@_QiaJI;eW?!R(gO+N*1w~AABFT!_TB+d4Th7ONi5n)Cy5)zBiNzIb_7@mP;1%hgQ zqR0iq*km@l`D3Jm()ZT3@tRU}MyO_2L^@A3BEy|ygIV}o_z_$n2;ahtYy0@WO@-w+ zdDvAiGG?KZ`cmomNlUt%u=GPupio%cUt#N4^Xah5koPlFOT`BcWeew*b6)?HX&*kv zK;WO#jjczqsl~8kF<CPjkS*$wx?nidf(Ddzmpsjn3vBf!o;u$Ll7P5YDtAM#94-|J z3xzPGgNxk7=LjmBmS9V_?FpD{t#bliXB5R99hu{RBi6XTRQ!`88in%q^V8B2G<++1 zMRCg);%Klj+#GOI6$iXRi6+)}uv~au1(A2v?VnVD1KfIS^Eh0?pl_2bdgIfm=NVj} z|B2(enI4k}h1w`WPu*g6hWPbmPJv+feNo)oG&5qds9F9B-vvhqyZ*G2eMsKf=;3_T zJc#ZY^f9`~j3BOQ!O2Qji5>UIOsdPjo~<hg=U3}IV@awef%9vjixFErDX1KrF1{aZ z$7#EEt7v#(qy0h8K<~&zW80SpwPkCs_sOK)nW?*K-eOq92GyLrp~Qp`LGHSC;(E02 z<**A+`_RaW6FmVfQ&QfW__<g32tDD+U$u%GM{q?wXtyzd4QcV^_|+M!@QY)`am$@8 z7rrlKKc!i#86>IQk}FV?^*f-Dt|Z`PIbf;w$vpMZC+b|Hs)E)3?&RIEh}_Ghr6+ue znVH*8UoN4ePKjhkB$VZC&m=<Kis5zq_^99KmJV)7X`py&Hhqo<6x%Vb{hj#uv%&DP zCq3aZQzfUjoNL4pO%zYx@co025gq|qbc8#?vR=s*H(A7TO1v!b*$*j&DJQxN1ME?@ z5hXQ=!Sx5vX(+|k6<@9U%eb*Fn`6SL@ZHxuw9F5oZiK^AoRPe4!0}a?`@0Np?yK0B zeCD5=U%Df<8Ct03f#Wy(axU6k{IT!HMw^kNUChc8bjMvflwG~$a|W}{YgR1+OA;i= z4%hLZW1%F(Jz$Kn@O;R9zu<}CbCaX3j7Y=3RV~3;d(603)U&yp6a&M#OGzdzJVC)< zH00lyHYo3(_7qC`#m(FWj+jPfLG<gf*1l@W7LHJN@4bHU6^ivkhcj$})#z?WsFc0i zv1<5aO|4_IoT}bQly!gj1_R2e8vFVZO+qf(mvP1mIpP=Wh1jcjJ|Co<_!m({`#INE zmO9#!<nU3k<bkS@YL{SX1wIw*eZ7#$H*hcCOY=>m4u(hN-DEx}1?W_`&$ojm%R&*G ztJOW2e7PHLaC61*L^Ok)1Gfd~PMxU0%eL6(il2B+le2!S2=7vc?=&GLvq?#zu<J49 z_}ZfpAK_cbs0*@1P(>To6!UmsvN$W7enhZj-Mh6yIYk=&-bahsX&)+5XUrm%a=%3T zLftik@cPF|cQg-n#9Wk7*&E^0d<+l4eUZ-@U{6Hoh&V9F4#UztS#-Xa#x<`sN1766 zb?h*(nTeViCo3%>+5EDVEWvL9oP1$iV2(PYGJm7<f7;EjGH9?2F`DLuE{m$Acst!i z=JGdJE5g3CyXA4h`e=UI7(vNrOgieg#jOaMwHt|Q;<!%9?t4v-7FK=aRrIt^zysyQ zQ0|79K|5hS&^-StS3^6s*7NxR_s*0JdibQ&mrpd<P1An-OLJnf`gvO*KW*mcp7cPx z1>;kit0>x?;2UNC`tqerxAZT%OaHthoGN<hsHyLfpE>k|-=A!GeWyP6-yCXWi1@JO zn;5e)N4xwXRbcDcl^9{%+k~-N>E8lL+5k|*LgSyZ-^q5)1YAn0l=%|7V?gX^m)3)l zupT|UD4xxtX0TL#jj)%%dnGb?Lb|e|H@-V1nq(4{{7{ca_Yp>7xDQ3`+cP>|J3&_K zT$1<lE>SBjfRY;b!gy;|hdxwXs{PQ>YIm-=`|+!WCWs1P2xH;SgvP&-dW7K(5<?k7 z8{&cC_)b9WObDO;%tlA}gRS&3$!D{0o4XtY?F1!e@q#Lm{?psveQ=JaBpc^Wp$R(f z?_m)zcLYVCTg~N!1*==1%5=eXboXf1`VxFQc4J0;Q9JDd7yS-e16Maym_f$i->I~K zzx7P?gm*&%S*LM=l*O<2+JB*7Hi5m*lAv)2SWQte-1F2yjbp(FkE2`mlVZ6?hLRkx z;Gkudf~~y%T4+BTvu-&PQsHTPTBFZU{92k9CiA8h+1EDfd~Ue+-CxXC3|Hf8?=n-~ z=kR!gmS>h<94B}uv_U_yY{PZ_BNH-ZTO%t+h(iUHwCXm9Jge3dkE;}TVYX^3|77$? z(~T;@!V>evm;2w<jnDS;4PE{=1@4M3@!VLhtTDtB@1<2<Rz0Lu|M#aC;ycKzj%rT2 z+|WirbnLbZ?A*^tB<6+4C0-ssuv&Pa^)4evg13Lq<lInBaJE$Ne`ciQucc<B>X)H+ z10p^-F5VkDTE?#!Y&MeUnHyNGBS*0N<%O_i<oCSjKdXGNV|YwiqZ~ickO)o5v)H!= zi(a4HIcpnRd!R*KF0HQHd@<*RPKxEaNKiG=#qdmOle9NbQn|9E4z^st4G@O@UX=S~ zl7*i^vyM`JUkshDMFWBqU$lBg8-#Kmn33Ftg@v;2DPRfmN<TEckV^~0GDYJzUv$Fj z?O0|xDwlNkDN+Z{vJtcfa!XsK5LqWwD@K;^`HTgzq`eaF;)>##5#-in;SmS^BoFbM zgfpzNgv4l)CFUF6#h4w-@Y^Pf&XClj_tTV=TvJmceGZg_iQaw<K6hko@wP4^tXLDP z2dw*u^tEJhF3RKoy^hlRjY$_#{v%{7!DwqtC{M~e4l7yGQU_rh$5|Sbt@p?=cwjJ? z>@(nx>`7Q83X3=#!7YaAKvB2RQ%4cy16GJUv&@L>qoYb>5XDk8I@n{~nh6ok18sSG zsXl7w>sOco?yL0m{QR07w;5PFJ8?6USlU$!`L>)NR(k{vUvlxC@J=*RbH$8kX(^0L z>73z!pB@+xhc&KWy8m9tgoe5$XBnj(`nnk0?u^S<h;jDfI9awcYBJ(AUnRig;MLdM zsZZ=Ujq_eQc~)xH6@U?Wj55g*44a+p5Y^fbA{dMT^RWq0J5|##Ci!-o8Vz=xTXP_1 zezxZ1>)l7er$P(QoY}#!!;cOUD~4D6b@SO+kvcUU`{)-@+t-h`m|ko?Gv7S@^>rKh z2zAv6gRtDFrNKJy4)eUhG)um^z2>nX`~A=B#{2hN=&AcmRf}OSish6kAJ9y?;5+4s zJE#YT@OPUb-8%PccTz>KA-#v%Imm%`t?_~F)AHWTd_SjKN^X%`yQ=hr;DyEMZcaEm zOr_;-c=-Cd0m?S}xONcK+!NPBvo^FWMtZfPY38Ac+L`TbSr&|L-~A@AS=P&D^`-u* zkRdZpw)!8o{T0A3D0gXsIHwJzq?EbEa8`xqrjBre4kE7J;OzIGOo*k$_Uzev)rAXp ziLLD)G%19pxl9LfuL9q04xKb%eNGqhS5HP*j(2AvWxL`CMvn<6ODVFdM^k8ns>^L{ z)e8nIU;G$XeOe%jQ^=h@!8`!j8d@eu>9{W9N3te8%SUK}`bCW}<4mT<;fYrs2{v-X zdW{o2JIQ+P`TusMi|pEq2dog5EVf>AqC3RI3A0Vk4#5_MxBGI>9#tYHQ!UlF#YM+Y z<eeCDdwMtT0L*J>l({rk!$FSx^uOhs<B{yImmlTs5$=Se5EesCd1%ODvi!lTt)`2l z;UuzV+rN=B6D-l=a@3xi(KYFYKm6s7N)ueX<p}SV{wZpg;jK8s9w$9`<ltTJ(^PEZ z$>uXU#^x5Z06|1ZR|{`G=-EA0KS0}kEA#i$Q>xzz2FjahI4Y7BY0Ce;4&+Tt*LOA- zQhc%cph$SC?!99PchDt<u{1B_O7&m`o7E$u6LZN7}@wg{_~n=VY#k*kKo@C<r` zEj^zjrW+o^zh~je-DGh*)Az&(4As{*%`sUY>!}t`<Otm#4#$W|8{kj^QUN7Z)u=V< z)f2htr7mC1ZZJLZX~%c|w{V3y;0fN2ox+XHypcsm4rU2^d3*C2x;r>6BkG-4$NRkT z6ECOX02}Ht(kt^6Q+5i^T9~xnT}2L9=_NXs2HRmunzdvjy_DyJmC(X?acrk1Z7Mt< z%3>T_f_KRgWo&MzA)zQgJKW8JtY`_o!Hu@;l=NapCC2fN&zVxaN0DY0Pb8+i^XX&Q zjNb8o(122ZshdZU037U^YS3$Y*JWNYhBNt}Epav;vsGAeV=exMvHaS<8mQYSKpz!e z&!y9JeW#TJu8|!$id-CK$7$x*#cEjsQ&F3Fz8UerK${7fKe%6KJSaOh2!@85OBh(< zIX9G~ilQZ0f;-)=lqv6(UW9}gZf4{Olw?eX$W|3KJAo%)i<+x;PcvV83T1$jv0SKc zf#M<XYT7w<=)d6YczRo{^FR4sb>*VIBcFX`p1w;~C`sI-a;=0iK}qzd1W>ZH#E$WA z8$iE!e^JjS>mYIa_2(HzI>I?E*`u~7o@?NJ-YZlv^$dE5z6#hQu;ZirzE_H6RUp8o zv)RFBcssepZg37;)@u=2A9w#WWv8}I=$V?pr81g^P;c)zwNPm1%j~buNr&To{`IJo z1zFR)$^|~-ii^Z#-I}d9nxH!rfyv?Brvgc*aRPbC&tK(9`$e}GLEVi9Q<q|QCObA) z7yT=FN50fUNoBR!m0o>J2wR<^@x(c*mG9(Mz`X*<Fd#X8_tx%P_1{rjrNXTFNk`kk z%`BVjWNhSU%mK6cND$CbZPg!cn-G&BX@S84Xv*{S#*{g@V4FGf>ekKvnh+08U#FTT z$kG!sZfckD+TI=T*$BELOfT*(ciaZTlD?MRs3&|GYL!DNOPn&*W3J0_@-EW3V>%#; zqMR|Z4VR-Q7=AJDAM*NO`P(MHWOE|tJWe)CgU*38{Hu>5c=luq4W+3axNYB&3%!QA z0CZb_o$tdoOJ%W1=^q7X$}-d@a$%6EX>SOY5VaU-oXRKDu(73pp4q3CBK*Mm@6KNQ z%9MUQs0};!tJnj|uQm83DbLw<Yb$tGyU7vm$QO1U$ehR7z2=sq#+$xoh%&kmLPOCD zxN}0>xW%ue{GHI<=j<7QX#RriGD$D9byKGL6O8j|J<sP1G2?na%kUGfOKZg0gUrXj zeSePY@`E<U=$Tn#%nE;u)CPVCuF3XB?^F8(fBmY!uQo@sI-dEUsvd0cYkIYAyg5ly z*BA5&0CH%(JPhCREZ`2ZCB{k|llHd(9e!uDJJQ<2W`=unmmBN1`gMRM>yxqi_W-p& z$zMSU*x-FvN>!lle*DkpV$BDTtgq?^I)4VEC*!81`UpKV|IF{HmM1T{gAxZ}Gon1H z<HL#X7fBt|{~g}E-BeiV54Has^%SY+dkIevi#dycA7cB7<nT8f;z1`#Uu0Cy)evPI zzwj$O^xf5IaD)fwMnUvxkqxOtD_@S$_8!?!qHiLfE;o7T5aZ)J2^JW~%qQQ5a=W!= zd&iYh;Ruj@Dq>^s<9YE*8LQitmyipCtLN~gGX}bd2R)%@PK6#o2U4_c95ANHik6yQ zd1JKm0&1-wF`Ah7kqWRt=24L4l?`w^TJHHkTyHBA*$DuDs#^K?Xt4<@9;mEZGKi9r zC(iygCmJz(zx(P(JUF}ZGm__DbS@*jZDtR0jM6*yLwx#M(bDvUOV4(?_#>vajm3co zsk3rpb8{y2LW#DNC9≫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 QZhTp;O%bl`+X;z3yLVZ?=A{b0N5oGI zP!@O?b^XFX!f=3!1+UM?8j9>${ihYsXmcS2FQ@V`Aks}oau&R;1Zl)FU6MMW@PFF+ z@@T00HtyfpW6)w>lZX})S+Wg^7E4koDq9$`B$F+}peRB`DaDMG<+fEs5t6M1GYBCh zVPq|%G`9Epjh_2?-uJxs>5tCI?J(c%x<1<l|1_q~jc0K^KeK(5;3We21ymmDF*hnO zJvAt4>jHqXe^jSJk1QqWTk5?nTgLPTc9S}}sj&c90L@4I`rScv!#^j;-U`}!=mM0( zYL8F9cShMb3N!(N@}2HHiyr}7d&%hj^qJ}aQ<n5Ux)&R5tKOu<)Z65eZICF|V@8&> zSFnZV9dHqB4+Z>OK=UNB(=<^{N}iG7&o<aiHYgv^d(|TjK$D*Lb$*d3rQ7H!&3yHz zW>dpkR2Cb}&@=(?_P9VrqOMJltZ_Z%G;=ZC2n0))#%CX{FQgg)<F^a*6vZjmQOxx7 z*)Vp&LRT(2Mr<b~d@oP1dFJTvUu;+KD?~s4jo<I7(=Q_CG%SbKaO)0KhodoHAQ=h{ z20Bn|WC()5!1$c_WgK)zpGg(9&PpwyF6h()rNOoAu`!Rki7pS%J(p;j{=EQgOx2Zp zS6e=Xt=$%s{K0j;9Dp_*9dYGf``Ak&(?M)}{=smRf;z^|2}oA@Riodhk<<Qcgtk;w zDN3KP96;R*P=y{%Dp^bNk+$51#MfMGL%xF;?ABU}^xRE-OwW5-0AMS2@7yms!}aT_ zDoW8eJ?5Z~bE%R?CJU=?vV-0qoDYD)>;&mpyF&%&i}=fba?rn7onD92{l{YgDY==k zv|5$I!;Pf@sf#urfwC~I)0K%GTYLn@olutz<NrOD$FV(Nxs!Oc&@*rwh+H7@&#sKe z0%v!e*zgJ64bWFe670ywqBNK9P*B64DfA@$OuUC!l7V5V1fwC7^PWLhx{AwnuF9n! z&%mXSz_{m38*PjOX}WqzwE?#{Xn{YYvM~+3Su;Kk2CG1C63@*CDx;ItfwgKpJ^G8# zziI)k4>i;C^QBo-aK?iF$A}6e6Qh11^nLmSF?9^nUelG0Q2xX5qs_VG<)i*P<JBZI zZhxRjt}*o<h>o8)!qqGxsL5?3l+d~;XMF#ZA7vt-LR(C{akmSGKYt_?ZuPtDvwl(x zKv$=xrkKn<5RcV9KIdo<x&Y}JP^G^42|oKb2c@5g<tLqeDP^V2CedlAuHNobcE4Fs zh1AD0$knFaqS~-w`%0ATBGMw=RS4=)Axd7~=7Y0OJ;RS4k>7o=-0=J3h7V7~4BXC_ z%9f0&pT-^>GP2)bEcuqHF`TJ*(VEM8J%qMrWJQK77%gch+i$pE$<~0U@%H{`@biq( z+QV17<!I$NXY!)<C&Vrz;Js-cF1JQr;Fec_Sw_6Clqr|@+a2?J+OP6Rsy}YrZ7k)m z?STc)pT$uxiKWJdgWvb$*Btwp_Ik#e>NP)0*fXJwq;O0EQ*kkRr0dvdCqJ)m)%y*n z*h9Q;ebuS!*QeRvD{hs!Qgm4>YM7ih!>cKk3D!A7D-%q)zXtbM+GkRzD3Yr6x&%|g z@4oV_dhrnN7*r9>Q62|J@gk9`>z@DG>{_v;xz}*SFuZNI>AtfrQqx_v8V^6nuNi2p zUX)$ApR5`-ZkC+;d<|5};MZYQ%5v7#y2`krT`V)p|C-TKP!8ZSBAvbL#o2P&CxwNd zoaVrnv>XnBu80Ky3xohHvihh1I&A)PdGI4tCbhkf%*pRU6_|_nZ!0<25~2fW>Rs?g zB{I6t(wJ*qo`R4{b8Pl4MY>w)1h=aDn0hpZaSI?rE{pFH|4^kU$D)=YJ{pMWQ_zA3 zcop<g)|oENbth$bbH(QBU&H`2nj2ZV4t#I-oDq733enQ}9}WQec}-%zL+KJYYT9^H z6b{hXuj^AS>C6c+4sQYoP~K7W0R=vZfJ3NRgZ{{LrF)qo{T=jLN_}sjPpLekDiQ~D zqBakh5`p58Vwp9nh?3ik<V|FuLCU2AyaE=r*H%uJ)dMk-zo+`{1GrK#F+B|q#F?(J z$*wP4`7e*;I-1phvaa)bACHs5jIfMQ6>3~HJB8KCY9DhPcylC|<M*2jQb57XRYnTX z#I$hjN<scFZyOn5X+MIiHK9Au{0;)oxeS^BsWfupFqsps+EffJmTwz!dOU`mQJ`c_ z&W>W76ld<>qMr?~N1F3BpR0yJ$wJgeCdHmi*p7k(C8$K0)IVVf<;(0OD*Y72ZJEOr zuA!(EDdVgfq0o3Vci}V_ZS5l8elA+_PEw}`ctg;8ty$a-SvBzNmG9V#=+Bo&f_#pX z>QZ=zMP8>Nc$IX}yzU|>ji8SgK}p}Hj(L4$ql-Ge5R4e@x{ptw=oTt}2J^&~jAJNn z*16%_JwE83zBu+^LRvZsg75<{wHn<pk`+ShC$@guimD%g<ipx^ft;z-qS;acmR+1J z=7SrpBT=0pz5(4FU>@j#7YyoEZAP$|542Dy?co3BMPdrHM>WJ0aFPu;%A!|TwSi42 zD%0cvBl;ya!gumBi*VWz7ZX0*5T)l3H~mbJEzoO|0cE|DzZXE6UvNCH6+baCLD(Zb z{|olO%nTUAMehL56EW=D*ba|VsP5J5%*;$^d%>*;ymn0@{v)(QmukvDr}8Oitqh;r z8<W?}LF?H1uW+wzr+H~Q34D%LfX6G856V?Nl~T1=yGVt<c%4a>J<o&3)iI2jgK@qN zQn+m!^AJYPo`~EU3Ois=I?!T_Z=|!+bT7@w>)@yj(%&C0N$*D_GT8}3Ge?k~R)RGf z%|!Sjdx_>^a4K0IpwONebqJV0&5O$xq^t!fL?2^Ur1h*e+OYa0B0UPR{?xZ~Yy=xH zt<Sf=;{x;p)%RfRUelQ5j=#38QxBnFN4Lgu=sqm%ouT<56g*poEwQJOuBUTg^ra?A zvpo9*lmQ=hYW;(kYjekL2Tj304Apj6Ni*L<vI_X{f{VXpQ|5-|?v#NKTpAU`T9$4; zOjd)s0v(AcR?x<|D+eAo=fC23EDWgDcDo?Gix6!P{w$weLvg*mFa^?d+ufV)Bz=(1 z4ShmVlK|+{hLIUjG1Lh%DwZb?I74w%--7D6vE`dsJP%Y!tKAU|Wq)CB%yJ@xKp3yw z>hLCjWXX$(Vb|bJ*oM$ivZtaCbOsSc;Ln<wgf<v7NKcm=YHEx!TXVX`;WF6CT`!(@ z{x$yzu_?AVa1uLhcmqe9pKEYi{`pInB&SZ~9(4?Rc?vE>Pe~|SKj_z99?oz=Js+;T zSJ?FEA3q8;Ril}~z&E99*S>W)&ixtqZ#4iUPET^M6P!GZv9zn%yOnV!n?4pJgri!} z)GsMlW(BXsnMl-z`DsG*Pq`r*K7Ttvrjv$?f8HQ_${(q6f`Yus?9CZ&oS>>6{Lfqa z<ZywJ7zr{b7|jP#ukB)^pIz<%Q+*EDfA|+RanT3w05J&aB(z2)tTpLft`cF_0RPTf z6erb)hJFPoCQzheXypKcLiO503;pPra2q}G{=y)UUIe1|Ey&}6{p%t`7|hn!p=#($ z=Wgq6<<e&g%7b-cK=maYIR<EBPmp8ALQhJ0AD|eNIf%$<l4Q_ug3l-F|AkJDu1epN z3aH5?2HCXZ>U49k3`?*a=1b73;Ct5ffdhi&>e+<{jyL$llRHA4JH>!8Q?CD1wQUnI zAUOhR+M&a%xM=u1kjQMrEa=mENk_a(H3_fde{H^^C1W0+KIB4f=cgwd`mJ*giqaJb zeOF!BSQBt&-fY@U^vLV;98Y)W7Gq%e<N2Wm{*R+)^!T~hz4Si$lqDu42n?;Mnk4K2 zxNI`$jZ^E)4w2#4muij{9B<76VC?A|)6CY_0x{aL;%=4}7U0JW(Q~RcDnG4~;uH}d zA73^QCMi=WZuN<J-p}u*$$fsGuo#Qd+3^Nt;<pRmqaw~kJPa43)E>XMbGK(?S&9?w z;1df4y&JnWeacpLaPru+i$1)@%;H;1fjBRB_f%`VQrXDH_c@`l2`zU=98(Y9S0_xT z1)KlISGA=*`c&Fn>hNl86WNN1%}Dc<Ht$6w!uCF$<SUi^Xkx*Wcgd!qoGL()NgJsA z7;gP3)f3D)`3i*j@ur!Gra7&z{?=nc@UXNWaHxI0<k8eWX2HviPd{o?7uDUlbCLa( zVPn=4#mjleNh3IqOBSWO?eYnHVu3CuzhijcbMMzHoyAwA>)`yohKmlxcrh8gTi9`p z&>r|2&)Y7KOj}nmMbB9KBxk$DUAZ?0a^AAvrh~J&e6ED5uf>M1N=zFU%fiDf{b0|| z_Z*6kRDNYNuJWpi-^Jt?c`28C7?gbKU^E6`<PjAx{zBhi&|$4(FCk?F4=L>fowwah zI^fa3a@#C;b)UfPPI=F|uY^beT2<p!Tdx5s^6$-ns-3{mr(=@mEdu7i;1A}gx4!j0 zS(<W=TmS%yiw0g6&=gi4#zha|f1UU3?w*J69ixJ$V1(op|J4+Lc`eQXJIdxDh-RY3 z0PHHxc(TbX2WlMPJ{xG7AU}aO%wC0qp5Y<EzsH8G_E+x>n_QNcWkTG=lE%zAORxWj zI>e^2E$XnR0DrkW29h!^hnSLl_U^_UC4ue(OFDDn#HXGfW8zdmMdOdlLlnQYjPCC4 znwlDbOrRv`J<ndH53d#Hc{%~EHCZQb{(0-iM^2tTUB8tIwlQB{LGHanj-w!P`Fwp? z+w-}^XTGX8l{89VKmb(VSFZTMp5=ec(Rd7ud;~(yB;tL!;Jf2l8sPJ5*WenN*zRGI zjAF(~5SG!;VemZZ2HZF^dHcx<bpe2MC$>nK4LB%*RKuckgp;-aWFEG!T!1uHrLHA| z6XihCRJs{NE_|E2Fr_;b%F8-L|12IN%dlzuw52!>xN<=49(@Nx$TF(HNO%vHqx|$n zl7KT_dX)`_muc!IaMz~M(Jr^xUDH9ze+rUVzN;%<1xYMRP9z-Fvc1CTI_q(XPL^qr zv|Dm(RbRPMi>GD&HjMjUCMBQhcPmm(@d5}#h3%b^QfEbBHrG>xq0Kbk1{`4hLu#@Y z(T%I1=ngidt_tq>!Tv<iW~_7$szm}|*iN0D(J0P*F!6B-L?|{`<|4}KVS&*;OS^H? zApC_G2a56$vodIrgVek4Yn6b>W{%#1U<7dMIFK7L^btop3?9o?@-jl$-yHoVrIGmI zb=ML8i29?Xgg-7)q=reOXz+Y5g{{!(cz1X1LwbP1XBv^y)2F7V<;`7$1t!dc&Yvee z*ZrcR-SG10R;OvB{E6$GSTru>xgEcPL|BQq)z#Kd9_KG!e12m4rn8Wv>1gt%zJA|@ zZE86Aj(zfxU6FIaLdrPX-w#<Z##Mwe7Sa&e5@K=Iiqw#UqzUbz)!p$7!D1vJ*sUH( z!~FyL60LY7eiUZ5XU2U8zpNA8ktDN=AcC{fxln^trXnSFh#fn9Z_+U0?MQDLq}q)l zI=I?)k-z}A${AB|W5o3WZ)@`mp_siiC#CNY&6kfgI2l=852l?O!(q^$D8sHp>yb(2 zRyakkiS<bQjZIvu!2>rlZr9!#KZ`=55Iqr-9*;`GVvV?4q5g-pIm<A=tpO!zD~np= zDyZV@LBTR^eMz)jjW!taMMR=nI^7T2oz@3d=DWJj-5<6Oq{D_!C9s@&?#&coAaNm1 z&d=*y;RRGo?Rzgr9V}dOkADv{udA^UCX;R}`H&JeJfhn7^yf0oL1M8BWqzZLeY-E| znKDDe`?+Y(6K%nflyVeQD;VII_0dM&pcbu-JKeRHMFnU#Jl&x((X}Lv?3V)?!!2a* z<UA7JEo%wu4QbV*wPV}UpU~99z?8EWdm=RxO4hs%Ao9Rk41}H3m(Qq7$-lT8q>;lH z(8b5#x6>kw`3=#`y3e2M{AlMTeew$m#yZMim?2aEyKEoaVrOhDwDDrYXL>3l-g!-c zkcH&`z}PwAMR9_2kQZ=a7C%2*)lKn6`V3#Lfr`)Iuy_w2rCm`0tmHIXLD<v+Bp+=P z=5~bMQjlZ!!<CIeKRX5qDcp1pjo-I<K*dx7HelcF=n+RPSeco`okX~=*Kp#8i(Zbi z(S=MLbZ{n)1NGohGbLU@H1=`Pgu+Rn(z=OKd7FDKUcHdolyr%Z&W8a*Kbin=j}=N3 zJ^Q%5fI1(k@;`SusO0~grWL}egPSx6Rh;-?9H8YOTm`j!vzAqtyLlhXPB^WC+U+E- z-#zfu8m#0|bN33m^It0y&m2?(LCU(&dK7j6W^MzqRIJ1)R7;W<Rw))7d{s?t?u8Ek zCQ)v5)d2F%Kx&)!S$a?7HdJT$mzZVw({)VT(^KFP>W^C6?|8$7VOfS8NVR$V-pBDM zVT5UZQT?GE)uVv6(DNgQ&;E6SmhHEhn)?pT`NBMubCqm|N=Cqm6Hq~fF<{VJ^i^IG zHNy>Uq=!K{5>;DU3(V~aE|G@F)}6<;-ku9eO;2xFM>}E89(H*L_uw{_XkpFNX1AiQ zsQM=yW-m|m$8LF%GS!kvoVLGzcPUu&hv}6^)Egri-IU<?>0g7}_i^IQi=OmJ*F!kb z0nG)@ga52kIOp|Pqx#`^d@a-W>AUPPh&O1qOqNSem84%x98oG*@;JDw<cU^p2*0pJ zKe;r*@~2XilFwUzb_UrgiJ#*A{QAY{hUSq`TaP_v8H$(s0^MRJxsT;Y$3OJ8HykAG zCipZvn_8$&TI}^cJPs4ggg$3J8rdz|5vN-vd&NOe>ilm@pCfI%!_^VH0^iq#-o3#k zkqbRMl(_hJ7m7)_f~MWNCrMaKQ8{LCAiek*)?qXt{4OJW=ZxZm$*7b2{ll}a>9eam z9Q#WDBN>jvhr%dWFa|f5o+m9Yt^BFZIRAjSJZq(_3BcdJR)h6V!uFrHMx+(C$_f>{ zQoH-``k6fYq)+KWvt`SJ(>BX}D?f{Ds{XVaW}9=ftpa*1Nbzz;BSKG;Er?~6(|==7 z{(^xlAL)?6!ICbWgChX>C9Xv^{_DnPzgPIL1<mze<`7swR2T`jf_TY-LxdN+tHD*! z{%)_EcnrPLNZg<AAV8>{3kJNz^gEQybk^ooKCZY7s*@Y>W?FJJOey!tW&Z1099y^w zuIt`GDdjQ~)H-kwY&)gLUnHPc-^HlHP)9$=Vh)f5y}9ytMP&#D16VufKXkQ!lz_x? z6ACP!5f+6hXY-K#@H`38FlDD7up%8d*Flw*02MXx(8TV-JQn}3u!Jkx0MR8RCUQp^ zRrEy{ErrS2uM4O+{Q%PTIUT^X4n0qTGtkE%9*H+)AE~wV+VUwj8<GnG>n=#0NOSS< z@bL3f`=`%IVor~Zz6{+N+u5<FR41fTYajEJr1=##4PlNzL}TUkkTV(&_XNWz+(7yB z&t{}qX1oVURRgWRy$C7#Q#5t~A&ho<oeLj<N+D+MDJJASfa_Z;kB}P7ixSWj6yo}{ zOd=odH=h9XVBi#%S+cE@Ttkz=60afgR3<orS1B0gEu=@^Qheo(D61)gPy=oVHRua) zI+Y>zZ|UK4LJ>FnZ4(Q+uR>LFp|=GeySJ^jn{d020TzaOXHYC`h%W=u(cbdW#sAiw zx?%5VqQ4-7%bA$)RV=rF4&BQ4pB@hVA<s5<x=(NbB7EOSejZ#%t(3{y8=~>gRqIei z>_VnOY&J-SSg>vQJ|3^owK!ijV#7Snf31nTK={a@Nd{2IU?Lse7!47=YN%uANiq1l zw9A#5DDgA49a<t=-L1IU3sR-eBt2Ct;@Cl^qlTjvnytJ6YKG7NF%@v>a0|*jNK1pu zCNoohLjUR<C9h*^Q;h4LG)q`#Ux>E}pNW!fqEc6wMJr4g!Xpypqj?{st<_gtza;F; zhM2X=FJSsUnAv)@!Km@Y1RK3d3PLxaCx9(Pcy3Gj_=T>6giv{DemC#D>0s9g*n9o{ zCd+tsntYT9rlgmmDoqj0dKmsRg-zqO8oU+#UkFm9bUPUcFLvRf0FqzXeZL%BzNnyE zf}N6-rzS<Yt@sd<ENa&u@bpX9T2Gn8>R$v110LvhL5i=J<uy!?+M_ORirlAdR$R2V z3C?JX(4*7}JgZdY;Z^kjXd>mK5&|LYM&Q~n3_ey6m*|;e(7a=p6%?40NZJ9a(9>1X z`De-!H~b9(D0u9ioFc1j`U`{tIIm6s9a40aIq^)KOVBAPDQ|WBY$vO-{|nx0xDS}4 zHH9@tZO@XbCL~r=d9dT(GAoox{lB>AKcnui%E{_&$jTfv(Koaz=HhbmW{>Fp_iXgb zr}lA8(%knC4@N>hTne<&>UelA#ZtquU)X6^9<SMY|HB}414Ye;q-i{hAHn5N*9L(S zOa7DG8b4CuxnS_?qjE38)bE8)7uQy`G&g&Dd11NOU-XU7ZN2?|Vq*JtE(a%r0Qov+ z8rW=rX7Q<&c2WomoVP3L%4CzyADI(oCp_@b!A)Bj!K2=d7bTDiFDgPnqT1y*6_%vJ z`zqJ3X2dY1cxeLBRbnKAw+LPXI<n4QoeLyQ%_?;^hRB1smPcX~>n%hiq>G1kl(BdL z={YZcN(zTYM^-9Y%xQseY}^hb;qQ&aKeh#|(ta8hgf;xrK4Z*J<zuxB@jhUl18Pm# zc~$bGW5Nf@W-dIW1G$RhDik15&l^qD+XG5=Fkan5nv+b<rtA4?AE*}Am;qE76`F$> z9F$ikYvIv{PtpNmf6$ButaP>eJgP-UK}ASD+srIE`46>OwNvgS(`zUGj10K&&77<1 zpy&hpT&xkm&F*;VaKNEKfy(1^7gmmo*r3E!IjOeFq<~-xRnDruhgdcMzwamNA$uNV zpkFTrw{APg3&BY&34#?hspaGwyCsvfpDCE$#mhDsJ<+j$_Ndw*knj1`>Me2^uWK+N z6^8rN<XsGv`)1Bn|2hZY6a-B5_w@ldG4s4@9JScw=R<s&%~HJQ^AMP+1Agw3l9H!S zt#gk;w(OG@(6vGg%~BY-TsrG5_IFog>*C!{jtT4{F+pvkIcwz3$?O9amxaeb>SOJe zF&<gn%v+od7itfdPd8cb_;Q(ZDB5=Om*J5*w@b;iEN@LxfJXi~C0Fs1nK_0}v(5R0 z+@^XSjWQ-@Y)=vO<6yj&`-1rW`54|;;zMl#5xcZcK6(Loy_ezJ-)V_KeQlAlJ3k>I z6<WNS67@$1=QdjsRbMER+xC9EI?teVgw?bLC2ftJ5j;en!1C!=s2`KP?hJ`$UotEd zb#SxsiPu7TYGU&LJmSX5E4TfGpv{96exC`8H4t3JgUenv`3h;?5+=agKZe)8c4a7> zvREI!;*kAnv3^uY9hW`!^4+uUxFbHo8y7<d8zb)eVM2I5XO4zd(;`kwMzb>p7OIy8 zuE;M~t$a%nVx!;tx_MC;w2rZ2r~r-azn$u)`XeM$`r7|}HKI_DIs&f-c+XQHG@}1} zV%VYl)#~&uT_+^v&6#qt3OMiZkk-i}P*7cINnCpMc11ODjUtDMBI=sCgLC3-3mzx) zsqez|bTr@PLZYJOxPNR0>imRWhZpo4>TbOdvqemBk&b#$Kz*?^h%{@d9s-Jxl{r$4 zLa%6GL?6?9a#`h0MlD09nf8&UYEL#nMfCurcaB<LgBT78*ojS@LkfUODriSSl<k9V z6S51b3UdI%*oeRl?uuB*o9f{5Tt%WkMIiAyy1J12(BUZ@V_Z84A$_2n-aIC|_=Wq5 zu@hjVo}Qk5e(Nyh5>~oDO3KQ(11IJ}%7-?)-Yk-!*rY0Q<FCuI@)2G3lZ#}4m5IM( zXA!QLfs_Q({CHNCT5<O|uZmHQMGJ7?%@uLA{*64e8?ZtfIq?BA7fHX`N0sK5#`4(c zk!-Zun?1%P%dLw7<Gwsdd4G5mCRL3AZ;P8ADP4q}(Dv{!FU{KEIy8=~mmXaiY0gw| z%dFc_EJn%gNC#&%dR?%d{C~d$bYsz9IzX`?Mz}5|3qEWA{mdOfb3)_l-@e?pxMz@k zCgc%}y~F#W)&~^IJOpF}njThSCt%;|9%@)jhn^BZhz#cEu$TQK-m+2~r#`}Y-@%mH z*9CD8@G_jG&$bV5R)oRRK;B-_2BKFC(^Ek0wYpR4v9J&A6203-Z=#jjPQq-xozQ&) z!&kZN@W7js<w?t49cJ(q@k*hC2nwE~sdoXn=R{1n$KXy9B&L_`%cr(#(-ZGN8+<e6 z%l;r+0WkOII>P#L(ynKmE>r_v=oTk0u5o3%!{Oz=`|KL)d)wOD9Cy+Qdw>kl-p&M) zJ}M~k9_T>9>+tF5dG+*LM<k#3{Q6Z|@28lnN`_=xTTYsoEXlHCMS(OWv_7UU1<~;A zQNS=-&eZ6$?a95S2DnfRrsQTA@a{j@=(Qf1MrPQ`X*N1<p3}oepHsI_S)S6zWgn`` zLE;q*LJ<iE%r~Txypy1aoBoxp0%PL~*mZD2ao71NlIL*`khJf&LKG1G#06<Ky7myl zXl@n<V}wsLt^uKY@R?k~Xt+s{qP?)<J@MHIn_AH9DiFhj_kycJ?ExqZVO={Fz-BFc zZB?H!rUW8UYNQyt2iR%JZJGCVbVuIJF8!jH&2&SLX-<FbUYnPA6b_X@2C!1FY}YfX zGX{fsP^W8_ojr;QeM4tiP<SF7IIum;r)@k0?PVI%+~iR+*N#s2vQ_3YVXM@)4<gZ) zOGjbKMwA=2z$@Dx5Xjy+omlYrLhJ*9*l-sq|A{x!Thw{)o@bv}jA9n`SBjkHi?iUs zS9ElE)5L4ZvL4SCuhu`N&L(UpHyhW%yyDi`(F0Q483r8qTY=#u%iVHPaz%&HrWq4* z<0Lcq=TGpI<>p`*0fyp3*T&{TIy^6eq}vB_bs>F9OCtVw-flIuh#lO1k*;8O(_4P& z7%0U>tGt{Ms3J{izT2joF3Cqpi(nt;pdSE1DagKqBaqWq;+h3$BYjffUSSrvAdLPW zY#`9g^(VGMvYaN#4Z8y^GofHG8<3!m2_qWEI^Kc-9&%A(PA9j?AtWRy4Ak5W@^G(0 z38n_$g77ozh6+M-WpPlOADS!UGTmV58fXv|k_^DW2pWgrj4I4wKLvu>c8D~Ofa4aJ zE)*ynS)b-YNY@)UbSo?_ebk6)&Olomlp_RB>wdD_j1M$fr%Wl-#k2-nP`brWt3gif zt9vI=7W>=8CEBb~5vr+^ESc+y+)j)x341lgO>^P`rJ82c@i`suijZ2|7M$uQ#z`ks z04fgTqBCvEuEQA`EXYf+;A&RT2%1;F9kJ|nOq>@22xF~d;J$_9>e%W=gQ#RJd?<u3 z`=1L-=JmE$!hz$yjj1<YM7?Gdo?bwm({A|M<$@u2(Q=y3Jug%4O|zbV^SFUS!RhN1 zN5?r!XXVbPRk{ZTo2MYooy)OVm`|v{_C#z@at0Vq4#d?Se|$v8z@Q)Gy;!cLAi#gV zF}<YbPK}u#vEx=38eSKFTHM44_~Yd<w#R{bW(SPE4Ki{LNft#l?J@5Oec7h$HEH4E zg-r73A3xfWp&v0gno^qwvrNzHyA<nwdwb#Btv8Zb#aK~x=FDF6vS^7o`hz`Y*vvnL z-X*+32J0V~41PI_DGq#fc-+c*e&2j{cO52`+I23~MYH0-rU}b+-_~Ad2+Bl{N~^GY zzJ6O4BaqC#=>S=79%~^X*kFcT*WUTIwKJIt##YiuyoNWD=DGhZcY5*M-d}t46s0`9 z=}m?ouQ4}#WeR5LniUHj=?hVvTO1zk3P?)=leTv)qh*J7l-AAz9?36=4<^|YzfOT9 z!k+ZSFH_+1K~R3+0)6^kmk5pqgk0%!GIl7+vfc9bbG$T<FsbT2WDh0o%xcauWE!q$ z4i_zDuZRqPa9F-;jPQ?1Q4<ge*FQ=J8C!|BIPBLsmxAABsa<j{hcmznGvgu-KX&#; z<xW<zDK3SIXQ=N${<yCU7-r587g6WRQPMIEq4^j$bI{N3Ef88wKrBbo@=&AYLh>fR z6?tt)1rOq?2bmb1a<JQZH4NhAUWlctReg0z5)x~|f*AIT2W0llK-~bb8h20pL!Gj1 z0MZPk7;ZEp->1+oxPAw00N-T~Rze+<?0!G}IUUP82BI-)Vuab*-B%~OBH`<U=>8-$ z(zFGYdG!>cq9E_O2?*fC!L=1gF6hbEvmqb23_pt_KyU5X0>>O@XhxdQtZK7GX&;Cx z>R-kyn~;?ya6>s~FebD7ASyLGj&ixw83;K`T#wpwy{F)NLSV82pLxB?WyAspohGN2 zH{$Jep?>bqCQMJHE<9SK1`UaLuv<<B<aKz0IMcxa0#m`W(pV9P>A}-P*=c2>Am%a} zJWNX9cZIT@hjzekPz{k-kI+sF(A4fX^iCjn*8zTnc-|Y~zov4ClOioYAeeQ49FI)O ztjS~77=gg%7VypGRT^K!l6<gPa*!fcg`tdBz5#|5D9{7X5IgZ@bNIh|Vh_TI#*wNT z)@x-Cy7cROw53BBsQ=C?qG{b5(8Yr==DmE7vkIK4f!~YoUq&U@s^N6ekB1XmP;?MW zGg?2Xz1!%Rb~3mNz<qN3re1b~Uho-*TVaQS(-SkPH~Og{>kFv%bwz_8Sg0^`kULA} zmv*CRDlMU-0V%vEFHJ`?11{A-=RrTKx*d&|g8YuL;tx<+azYC9WZP)=aiZnV{bD7K z5eB}EO!HQ8)JVd`vb=)*(o*Ad@1uvtL^qQR^=QM{Gz&hjT~GS5sMBDoR<s9gU)IA0 zwy5KpCi$z%8FxBukh=YYW=H@^nKPd7Hrf%5x#?#~{vtS+46GW?#fupVz4cYdDGE6{ zm~lQR=tXg{y1qVmT_2YJ0|OF!#8Igk<=a(WST$+HI}=8QaYL=Q1tBJ*`SvCa7<!P{ zL^3<2x6Cd12$vM)2Pu)0#%*)IFBd@JZ|&=3Nd~Vrl6)SW*)VekM!YVZ*@Q!tDx1rV zjgizM!(4TLBJ`g0vk0Nm0dOI=!0n`lq;z)ZpklB@B1`44Y6jU15*7pbn|<MIwL^f^ z$pOu-i6&KM?gjcgXK!yOJUX(`0pyDJW_-JVT!ScIL7a_HS@-hh?``+wUDEZ6Qq1xY zepQtr@U-Sr8_HC;^`R7#gf<`Q>Vwo|KZCw{x5i~?CVNhw-wM25xe@pUz=Ya&v&4vd z47$hwVv8eW3Y$DEGtD(fk@<Z2#O>~ckG#APvF?A{`41O-(Q2SKB;|`G#ruT4P--33 ze*5AKn%tlBB9@;r&`bm2R0VFa^=nR?qqa$}Mko(0j*Z1BJ`0;RePN*Ll9TIrx_$Hz z2fp+2PBwamQ4$!!_PEy7IyZCBLWYlv;<EWn97J%s-a@zK03bMS+kr?tZQ=$IYuvdr zahQ-7iAP8YLq$|zBR~NFB9g7R@r86YdXx|@3BDQ39~hb&<H84>f|cANA@{5^jetPT zL6)>&Bxqt~o;@?fS^1MJ3pc3Y8UgChw%w9#n}(!mx&ng(a!kN#)?;azsa;72uZ1#w zZ)tH*emwgl!_J7_06zlUZ_v7Hak#Ug2eH%)GKf#3;R9%yt}ov6w5K5ZkTc0t5B323 zJ4-hak6645R)gH&$VUT5!28*`s*Vo-&D+6x>a*ZJT$;L{OTBA()xhPmg<vQhZp;)4 zys`HK&uR-ns;C%B)@pP@BA~h{1PkPWQr0ee5P|v&b%_gYw!LR$Yj_5d1LHHa3{Tau zF4)2}S2QN&sNeVPP=-v(BoyF0Zx~gKM?e9#hUU(5M{OOVvF6!L$gXZ;wRWiF!x#Un z=+q!%w40&p^=t>VENLLcC0_9Sq94RGgx|3UH5kzB-BtSM)xEpk)j_qm-d*7>yMDNa zwJ7%b6;Gy2`gwo&RNCEDjemzA*q;aX8Xa{H|5N95b6V8F&>>s!@Xy(E71OS#sHL+% zb?>|ju=H-E1?bNbW!-gG@?C$P%$^MW^SSHSiHrrw@@9j^x?e9A?S2OP{QOfoDiq^Z z6-MqFrMa|ZhsRqOEXb5E50siOF7_1aS9uRT7@)l?tuFO<*PVW~W^iE1EF3q;&s_es z!W=jflxZx`sTaN?yCOI2yHq=ny;!sIYruN`XZUFN%CvGR=o?wN6N~LDzsYEBxOSNw z^n4cdU6|BmDG~M({zwqnva%I@aet#1VGrmP?;<IpjWjSprmKD}mNp(kmx8>u;2nC* z9huPjPFex(0%TDCYsiTPm8>+t>b?CW)*X71`RXhFl_Y91SG6FgRm}de8*jWoG<_o? zrZK%qsSCVSaO6B`EzZ)K8(TP7&he1h9}iEEts`8yETYFz@LiDv=sa}C(E-z5kOU3! z`g2oPA7n`HRxrjul-yG`zPWn`bwFBe2J-7PokfU8G7SX1-Wzxp3k^<!U!EHc?kD~G zmnu_IbkiN)A*7^sEc9<O3`@y?8kc$y5dQxH69^YRlmL&&+fUG={131NkIYUUi4E*; zW1A^v7Tf(#G$oBz>}~VyMnyLGFU9Mh8knixB)^>t9v@Obo0VY&t9&Z+()k-89uEwi z3$AA+Z+L}10rievNC46FpyqVT)mx95+joLiF9YjMbV&XVTFf-g%)Y2(*zH)<zhR#! zsx@?V?xY)ydHAarh`|jDTL3p>WgNmIgiZoT6OK>X+5}OByXYBgF>EDmhj!`<g+PQd z;3KH!FMbM}+wincl>h(zJX$bJbXsO}qKF)nIk_sCM~Xdy?uh++8SI~ScU8kp9}tI} zW^tV4q&9SGs2=HW+0S3I?Kna^3;nvLOvL96v)^6@B!+!h@?^6*`qV(a=lz_xdh{wp z!ougmC0Q&>88CtT3o2csf*a^UsO-9(;?)6H>%uso=ny#3PU-WFbp|`2!KuriSeM66 zQkV=#3DN9n@D$q*x;=$YlrP%Q#&I|u-fE42-It+VM>oNw>9H%ME45&G2e{>$(SRsK zlaI9AW9r#OohJX!M)<oUs%@aS;J|BrTC-Y0+yww;rD>ISV7sR2a}7QU*}vrl&vwA8 ztyJq!_kb1ZWLr3S!^JsWugkd2_vK$=0jwYIP<x0Pcy`cCj_xgBYfP5u!?upDGnws6 zfxv{bv<lVZnL%_=jb|A(A4kKqnbMmMlZjYxqurQH90tJyP@jKG5dq?HsE2rg#juJB zAP8Ir{Yo1%R2nW?^R>9HHl#q3KoEiSpd6xHJ1n#U%1qSExKFtAL^R*QFutehT>sj# zjN+;v;q?#ykVQVB*uU{ZX%ltF28U>QKJs)ie|3EpnZq*tmPM$8*LaC{ws&=CLZWwC zMmwKo_nkq!aCum7Fr&MX=5oQh(euF)e`R#zOM^dQ-7@DM%)({1C{<ZvF8X}Bbi8JC z&(lfO@Ke1Z#);Rc&j<YzjDM$4%PM7hraqK4mNsb@8H&y^-6|U9V@xxCOOHNaPNYy@ zmY&{X@AZ}R!SBwf?_$>qW>^(6a-x3vu8fA?cCMJ7h70fJo37fFKik4*e=C*F%`A4T zd{ea!9hq&23STl@_#h-pYN$4^XZ5LPAqe|hIXbW>9Vs{jmH-%f<Z`JFDfk`03qyo5 z_dV*R*gQ9XjCg~CceSt=z7}A}H{Wqf9oEuzq!q0LTPdjO4J_tvT+$jdC$B+T?2c3U zRK_02Xp7a-H){=acnEr0@D1L23>RD)k+bV_=6y4=3pWh91aoRWN>cm{)L|V!&<Cpl z$&(^m-m_lu_Ol)TS>rMTyIA-Z02k5ycN9?XN;lBnZNYRS1rh)(sa+t-G}x0<g08l3 z){?uXnyecz0Gu88|Lx;qP^nap)ggT=C&hOOKy}RYMD;p{SrVQSL6ZutHKi~!fS>}? zPU!2!KRO-40s;kHPYN{fy7Tosw3mBF-}$?4Ub=%qCoCz{`VbkeenWt)R3kxW2vAFd zsF4*KKY?OwF=PHc6jV!Gvar**j>uVIsBCm(#Zveo^)4_u|JG(G<_T)y%1><1Kzoz? z2twfETg6k$JU@!tolHCdz$eR|UD^ut%!o-w#|0%7XyrjLeYxHl)qJ7pdLV>k-DDl3 za|_lN{(G7KJ;M&FXkh~@4m6TF1JqLJuLMy9?=TXH)ne!k&T^fO+pk9xb>LS9G40x* zO{WxaHhT<}M+kSfP+g&&OGk&fP~6SO1{bwi;)7;N)H2aSia1gfwagAbXbWvLyU;|g zb=2w0Z#i{b^-P<4j1f#PV4c*rv{pq>5TjnbB%`=Fap!Z`yKUh6o7S_xa$@dJCYFen zLU`I%oZ&@`28)`+rnR}pXY>ghdRkp!VspcvIV-(O%YaL(sIM|&9X5RAtQSHz<6Gu} zVFs;fKr33tpMa*&r0<@49B7@uM31Dg69iB<{pw%3*1+t8dw+Mf0vND$OdR+?x%w+6 z;E?l59zWnZ@L{l$4Oy3Xl|EQ-dAN*R;A1cb4CiGCY2;nsPOJ2|_x9-wtWg~xtZq_h zCs~d1Y}?Xr=TfIqjG>5T4D34!1)2b7p#yAn>3_Q>Nl4!IkCO2|!h<u}#rSjY!}D!0 zM4}FyOpvRs4Ec9pL32aB_|I0Y3c$djrYPw=X>JO)VcuN~Gt-M`YWZ9oRTmSY3q!xq zM)#rqZdQk!xm9+M%R6&a2$xO$kfW0UDOed(=FICER@(jVvqS&=Q=a89`p5HqS}`c0 zpwVIJ0Q^B91p>vJzyp9h3U=tf;MEr_fLi(jJ^DPUo3%bt<_4oc>ZD@|hv5er3=CGS zkMINhZ4ZD0e$dJ9Of-EZGG08?wXRn8Mi%-ds0toE<0$2f1xE6E`GJ0z-P61KOr9?F zR3XcDX@!20CsC6+I_!ew2y+{DCT5+O(@D70?2{e<vmQ!nDe^omKrv=KMvu@UB@VDI z6yQR))vQE&1{drQS-UauNWm?gqe_9Jk@S-oyfb~#YT&=WKhp=pNW#L&2gscz-b;B2 zxd3ROrSN~8CTifO%I_yfK|=uL9!oc2{ZOCVNK%~n9V5ZkB`A|51<(09HrCR!<Xrz1 z{pj19Q`6BW1%9JtQ|Be2qbPX>r(CwxnZ?$LjQexYTE0s95E~M%Mi=}<+4Skx^)6~q z<&+!Q%5bB6JB)hq>V$;7W2is7P~@wUCWM9M1&(fnW*mDH4qMSy>#*Z$yBIu?7T5w? z4Y(c9UWCB(BVr`r{o8N+E>VO7&6Hvu|Iv7hKHGOR^mBI(_3r=mS(F#%GRK~YQPy<T zfo!@Sl4UictI$Lez(e6Y{17@N|1Xpv2!p@=;y@cr64iMmG|k;;gr%9Gq*{0yst~vo z(O^$=sB}3**3#5rlsZ^gP|MBnFjc=5$%M?$F+~tPv1d;@wITKx*};`woQV*A_D=xz z_)H&A1xYX)d(x=+U=EQUQ&-#zK11M<e=G%W!-XejQ0;#?x3fOjK-qnd4`sZe6{vP* z0#SEM6MrnC9rXgs@}iq-%&!uFbXScAHvCN^ceWDmBy3{6SkFM34cCs2Q3wZ9CjVUh zGZuo8;AUJ$e{1NsQMq}EN~<lPECvn`x~T$d-?ST@9E3_{STq?6?InyPDL{An%!sD< i{^|RhYF0A#%i#x7PipE#wmwGSzXSU$_ZAvEM*bgfcO6y$ literal 0 HcmV?d00001 diff --git a/wiki/images/admin-waiting-lobby.png b/wiki/images/admin-waiting-lobby.png new file mode 100644 index 0000000000000000000000000000000000000000..b3798c2bae2954b11018b8d7807b5ade32d2b00f GIT binary patch literal 533252 zcmZU*c|25$|37|a#td0gc1bHql2F;FRHTrEB1=>zLNdr?m=cOmx3rLPETssQ$-Y#Q z7R!lHBsYpdNCp|(_jPpNpWh$9hd*vHy5{AzJYUb}^K~xow=xqGRuD!IL~M`w&I1S{ z$U+c-Z9+u&jOP=3DFk65dv<O=c((m#XKdcumTMcmcD{d|d!HcPeW3fm?E{1@pX5mQ zuL#>6y*T5NWjzv>-0W%c&A8{FPTHY)<<W#UcfF+pFJo6Dz3cC2`vn|(z18gX+5Un? z<LUPsD=QRS_lK6mnhbR(=8V2>*~VckPRM&*oil2xlyJ;YXmm1Xl&KW1Nu22G+VMrx zeO7JuQkAn<mqfUR`_OY<*Sy?IiDu=&e?9muEsrgybz(b;{HiP^9d_R}_ntM$xTN`~ z*FQ8R(zs|=H?;D_8Mij(t|vETZXsp9v*QvD)%O36E%vWz-Th)w!Pg~Qr#ct=RgAYr zJFKqU#<m%}J3r<1YH5Gj;=wC%2KAMh^ONE8sVAGm#wV1U*@+YL`=)g}=5>ckXpJo= zr;bdX4G0XgZx7!w9iC-$Zz$a8y@twunf&tK@6J_S^gNVmyVK}b_>nzdf*m}5M2Rb0 ztv4!G7_1nbXGGCP;@)%aZtYEGzv&P`!dt75Bh=6U-3{dUso&l!hdaw^?LATz15O|6 zb&T^{C%5#Eu6l@P!*A&_*$aEV=WLj%kS^RQV_x01g)O00mK$DmYgcAe*~;}tr)@R6 zo#ytxk_`-Xsg>RQO7UoQ&v1+TL)o0*54B~7%J{bOGnY^M&K#93lumui{aI(S<>kb4 z&ocAIJGZVRSPPA;WVuvSuVhgoDtEIeQ8I{+CKu7!#6h?%9YKh`0{r14S`ywxq<dj% zT7ye%NF2RWWK2eyYG4}cVx2lDO|70HnWYhFo4Ddsr%a??NjO-rRAgf7W@^40Yr^68 zo)!XES`_oZnkgAsaXS-sS}QV^FMP1K3_lvzQ`xU>7pl4QUZc9L2dhw2yon>EaP^(h zRh#|-0tfS?aHTftP)%Pejh7H<Z(eLqZ6t8kj;K)!29^_PaT*f}1T55oH?BwIb>>|A z?WkY8A1gq(f&U!Qq~^~~m5BP&1swA1T4G!D^T+kVjwc}%<E!Eu6+Y+*D6!@q$@a%H z-cJ3w`)h*Go-To1OUqY6JJBM<S&QD{??-5N7r`1Z1@unZy!}NAw>RNT%3`Eq2Z^r3 zrTYYSsWyy{w+W*?YOkV^Aj!LaYSjF;gNP3$WtcM%{E{OQwH+I+5XA<YULr%9z1Ooz zSkTi^i9gq$?^C?Y-m=7KiIER4gd4K4vN6*@!brl%M3Oln@b17agnKYm9yN;SAadr_ zvTL?>g;pbCJ+aIiTE|+^Mg;Tk)JH1jG)1gG_DP}g!qn6RB7NW2I|T<?e2BaW|A4N6 zN@Eh$p(lJbwX6O@e+i@1c~G0gv26?_a7G%%saaNb9}0FYMVpn<$EOxk9p0#LKYu+d zh305ftYl3n{a*5GbkR2>0ZiJoYE_R4(w@EuJB4-ER*O?frm^|=jFd76`U-S1HmKpm zil=C>g-<Hb+vo2`Zu4~&gI~vwf5#vnw$O~P9biRO2&f(s#$?o}Sri}j!$uGOA<}hd z+z2@|V|#UM^Ys{lg0JsPD2cT^g1tq~$Y%{>4Wk_!!^SvieJ6Vwp7@KIT1&5{I`Bmi zCGBkl>{r%<Mp3L^v3a{2+9-)0O|dOTn0bgkUoD3rOm^Ep8c`f$E<jr$a;V{5t2K!} zzD9pAfQ(5?JvA0#RXXjoQ{gQ((x#dXl*q8+%MR{+LS3KMsKk<4rO7Rkz#Kmb7%7vv z%?7`gQLBAJ)PD4szASUE=v_?JHm!OZ>#BsFPgDMxPQrX4DQqLG5)UIBiTka{kZA7v zC4r)jh>jd@XoCRNEW%etBPKi-(I4W4n2qYG1f3Md%1J%h_Y?nlv_Z1%yaj=wah1?6 zui#SNYGU+I4(*w>G|VBOZAF1klTNPw0JUP4o)u?YMdKT`wLUD=^5K>=c_Q4~E6R+! zN&>Q)`h+l(nO~-Y=#;e;1jIXWXXNoWkK}`>JCc#1`IjYzf7E29_q-3ZM~3>tg|U4y z*Vq~j1kSohVcuOwfi~s|R;%<?hqGet1T1B$;?aYC8T5|5dT)24H6baX;qnvsHx&X_ zW}kU2O&t>{L@Itf8)^^Q`Dbi5)K$Uzsx_}Qm5H=iQ$$IOpXf3(01=o)C6!o(pNKlz z^k?gggxXC>^mZ}-lQT;xVos_Eqrw^CY~c<i1WHr$6CNP#!Lq3ykFy`wWgztdqWoJo z2ntbF1`xQY_o5_@BCqS%E2q0>?eoP1ScSJmJ=@)QoNL?{+>@q_rj5-}?5v90!^@!P zIcxVLSnzT)vs42lWp2@c%}#h{dGFlvX0F+p6^D?qQP*wPtO<@EWt|@~;co<*d3y8b z<YlNwVZ&n)O@t*A(IW8jl<M*?yR#b=P=o8|E)zl}QCr8{V;Ll@|AU?*{|<p+kaYWK z(ITuxM8IfkZLqI{ozr8D?|X<mMZfZE;-cXvov1xfMWVAQSB$AyqD)gHSB$^i0BV%~ zLmb}HT*oL&{XB&mlct;LE8_o)BFvf)G1V=})#5E;ZHcgg)<fh<t5Iw1hD0B=IvYw{ zh;J^~Os!tQEj~t}$q5WOeGs6PB@&?4l&Z3?5Bz`KgB#-IyHAn9o**`j&GWnFRa@&% zGbyafr7z`aYmXq<HMQ<4ZEDt*dfRzD$oj0YO(Anasod+Uwh)pc3eHlvUKiAhK1iWy zL{)A9LVMGCIF(GDOucFK0ogqJ&huII1^zw$hTd6=@xus@zf<f{oq_^dm2H|_M&bIb z{SiYqKr~z)cWPU*TB|wFj7_vyL9+UbFqvp1NuFQkY#93IS7HSG@Plc2O6br#{~KvV zrA1_#C-*&}y<4*kLo_NkjjBU-L{hjktm~M+IO_20T+g#KB6mDNn%a?VKNui{zCe45 z)X4CH$EWd^%^dH)YqE)BqClVdXRb$i{`TF4^mxI&#yzQ-XDnd^1BN}ZqiM`b-A9lW z_4Dnc>xA};YgAmHOZgwtDYnqxmK3X*|A41Q=9&jOrb3gr*XX_Vw-YthmNl1jAtWsW z8cW(19TI0_+rw{>&7l;UGgYqzT5V0aYu?gwk~(u3(NSKZHB+((V>0Ks83}VMOg)BE zH^vS<_?0{5`|VKk*mVN;&!JFVbq`te*>(rlG*iUK|0QYwgM}A~FfXMUAoZfo8a~YV zd@|acJ%1rBr{r*vgzpg|7Iw{?(0(&i9NzZlBwJRYIl(dEjj;gCrV^Jh$ET~wFqt<~ z%eGfvjOi}#&U*ewCWgQeW&EuW2!Zx57%A;_THA)m{+?}~2yJ<##~md^$M(0yD>;<; zMAFVa?;VoTFeg}^K~Q+GabWBjqVxSF+9*wph}%L?*y7_9x|*nCZ6!n+Kak)x5TIM{ ztgGvq9i7P6GV&wv2R9sGd?nJ!SE4OUNYt%4XUd{^1jo9p+N0wE;skm)wQnuL^j(=n z;ETn0BeWM7Kb9_pT8l;wlXMh$&k)`-IURbl63f^NlcqXcZ@f=&CU9yB>9Z$U@y#Fa zLq|#KdSmOY4~1h@0yDqr^>feBi-qNa{~DZ1v9W80UmFc8oqsBRi_m_7P^zEbwE5V~ z;?DyY2xu(|0K;1G@^YB2q||73mY9+CbYov<N`|o+t5+e4{dpIw_etH&O9b1UZSnj% zJPNgsS3`3$CevIA$fIpFOhL5gl^cRpDo#0{%1~nU9;?b|q+sQtVf)I7++5BlBAKe4 zmPs!r)7T<fxf8zvB@<z?$Z!sQE~RkK1s>#m5uh2Ry4-7IvSgN4Ij^R=KE1jWncXe9 zmRe1}+9y{!=3%9bT5saDzf^&7>dne)jU$x4#nR>I+0{-g<5w_Ql1<Ze;qB+?V|x*X z&m)Akl`DmQMoVs(>3)TXl+|V8QEF2q)3(xv7u&LeB3emJ6^)hzeHXRyJ<sN@5!ywQ zvOXaH|Dg(#WOydDIpCwGAdOvPbRsCPaewEk`vV`=wRQmFaOiB9yY-J18Jm!Kvu{33 zca>4?)Q|x(WP5=?B{69XUm{&!*)6kA7*$`|Ga8~w@qYc3z%(JSChVjkn30EC6k3s# zZq4Qb$(@2|$l!YB+|Po>BxF`H66^DE?ulV1BeOLd^T?>C>zkFVFw-a^_mf!432tw* z026=jl_{32pr~PlUdrfd^Y`8Ha(dULdrG=o4Qj9)Lj)6l#FzZ18S$|paCY&(Zp%L* zjH&N@5hsj>jP=|qAkw%i+^tiHI!C6uQxCA>a|lM7B#!HbZ^Y|!4RuJx1qcgY*}>yL z#{W%N%lbIL8Te3XOf_(Fx+95ju3s>C&NrjbHs&u|`s4wit*aHUL)dbtZQVD8=KZsq zd)eyB`w05NqK4aY#_tf4Iz4h=a^y@QVrbyexJu(JBsbcmdULaWy7b}u?uQ<BxyHKT z1ru5I(AbYq+Fp8tt)Y+1+Q{rkoknI|WNu*rFuj68HAMPJJjJq4h|Y{c(1kRK#Dabj z{d!u@{pFjvD%3FxVb<Jet+D|kCdzbuErS|B`<S`9eJi0fhNl-Rg*r&A0=TXdY(1z< zhVI}nCLc4}05F*`xCHX|1DaNKA|h(<ikb22*2a?3HfW!-^BNMzS#wJM9<S{Lh5O7x z6jMjgwp+9_nI|JYH1AFa08;<FZy`KA4UO_f$$%-%_FW1(BBt?McK%nj#3Pw&k7o<y zP@{l^y@wWgyxZ2lCi?2?h`pPsq^jq(1sB-zsKdr10OI>TKE<1BYoxBgg?rETNF;{! z9>1@>_auuF<TjEc97m**G&2njzwxtZbYjV<IQ5UopeETF>3zo3Du-8V`7;LzbkCI| z<zo$sasS$WU__`R%tfZkxmjUCXgFh;CF?|#jEc9>*`;Vtwim0AivWO_-F=GSs7O~v z9S+v=cCf5e&*UOWV)_-IG8fXv$C->hNf@Tf8~#qJ8c>6XjV)Cl)UfNjjpNfl8}LEn zZ<@X8aOhjtc_CzoqBPw-K12dA5_+=T90w!NYX1Wx(d<-Ga6Eq*K_OH3<r506K*(MM zp-oGzsJUHY#)R>{9f>l@LWb_FKy(u3Bg{@bgLYK7a~qkK3r*KyjKGi2MjSiZ_{BHK zuLOO@<q^lRz4vZDH1=j$36hm@tXEgrf791{RTl3Nf!~l~p#1g${T>M$dArTBu~CLv zHMVydnfu9k4Z=)HOR(a~%a@X{muOBs)N2iv?q)6s-J_;#coNo`mnbX?jD4`@s7J(C zTt>LkM1bOB@*??HkfBa`yJCzocRj3wQOh;(Mtjmn1=<ho)3=-iH|R6HT{g{!6>#ug zTOkZhNI&edihmLg+&2Mm$Cnvi$O3#XuxhkP?TnOn3i)FtjQL9X|A7T0nY!=uzb|+= zf|nG??p74Xw3c2`eEJo3f>6tyQR8h=sK+YNi%)Of?=ShC!&yN=PYYvCOc|v9jmX_4 zPu7yT;#H>z3Ni->bi2fK>qc=*dfJ{}PUgP505h4y3v#cJ8!?GDriS|)viJ30*(>wA zp@mE0b*WjfDubeAR+ZpyNzHUH&JSQJ=eF*LUY8Ey!nV7u&F6YrDncF8s#wHwdBPVV z0LE{LG=o&43uC{!#fzu2E-l&B-N7dE_>)qwBqqb6SC5BaA`!vdu+vNnL9;Q9kNP(d z_|8#9&Yb_|2mdRiXto(Xj#B)goc#N;o~PvIUKBx+%%;x}s-@73U70mo&o({8<DzBF zv)0LQV?~t+YHXVhViY3Zo&C<o#qsYFb=E8lX_1l`gNuMkmxSa%_GG<Dj^C4yl<Lh{ zlXNsQ*H=CvbI(;Q{+ZkaHB{sF{RVX0ij+f|El^9!_xilPzV{a7Zu`-b7Fm9MmmoUt z@`{4yUrQ_6_*sy4f>tr={f!AQGZ!E!2{vDtN5?R0QM89pp$9o(RknpW^bjf4kNf;c zg1}MKA?Y0CMaNkZ6hs{-$wbuQOT{^u%3=zo@1K#HKZ_>eA!?>UR6C<)-ygGurh*UX z>4Y?h12h)x?;+f&!vPB@rL~VvQKE1YcM+-8Um|4GWj$CE7u8QZy}D*MK>GNp6wH&v zEoP&QYE%ccZ!yo<($whzAD|DWSNztZtBLx!{_?N?1}UN7bgDe4is(hgTHLS`{ZKrX zjHoBR($w&zU8T;2L`zm>fbJ`=@|oZ7J1&nOfSJbAV}xynA!oeY@r^;?sd4$zSJg;` z`}CTZH`9{!KMQi-U>!q6G$Kcvju%q+BUlZXQ7+0%4J1Wo{X=nX9P|wCQfLw>?CM`e zf~>+|B{FwC>e)90BYCq<dD!gxl{k1efIbbCBjH2Tsr&kG^gjf~kUYZG;+}+cPcS2^ zV#N|8o*~cBha2)`DkR;rt?z+`dIymeb>R&PJ)FJEKEQSt1j8yWkhzXT&u$dGu_M*t zdFgp$ZECF6p2BQV>|g28W)0Yf6@>qJ{>zhqF@7EQ5-H^c2ylmJRqtvg2)uSZCjjg1 zhJ4-^0@phB0k4FF1wUQP|02kpELhAxC4Jm_a17qi%#FDnUqA1PcF8B820uQLO()O) zUQA7ffdkO~ocv$_K8ZAt_Mj7jFpGxpV2Dwew7e!$q{50qfaK{z90kI^$;USmc#Ols z*w^=C6M02Ik9?_{Um^w#$``|2%cpviMe%wuZ4<8&Kpi$gBd!fko$+e_+hH4@?8J$Y z1<ELl{Y9Sl`B@D|ov7nEd{uwD)j)RHQwIvIv1S!DD<X8rbmg8a8zsj9AX=mzeZ4~v z{-e%{m)}~v<{X(DAdGFOD*Y2h;!Qm1ms$o~9qX&HZ=N7+E1`WdfkLCaYevLg?teQn z)KO%TyZT<A2DR%Uj35<im8;pVM&o;*^%%nludiY;4?-2p_^`dro5T&Ehy^g%Zrs#k zk2IZ>(bc9f;Wu-=qJcU)&b26o7y-JaKhr5*Lt|OxbSxv&ps^%E5E;yvxx}YL+6kEL z5!<UH0n0&h=#?j1X-azs-}_&08Qw#oiBM>tUJIjbJLJ%M^e9{S{YI6}q%8{#w>?1R zL&o2Y7>1BG!^P*v2&&=h(*H}d&C@)^{zNU}^I09C*VS}i*>6Zd&FU7ny_83DmWb_u z_aDC}SP(sLw%UT9wTWsLd2wI(>|QeFZv0%j)He$eL}BA88n-Hv-m#u#1q&cOGFcVT zmws!3@7j6PdyRtyfb2F$27R48F2wXDa;`Rs^vffq{2R$6uGFjr%Qt>`OLd7K5lE9F z#OH$`O&ch}EYaCX{UnG>ZnUExRL26rSXJ+SZkeVaK5rzRRt{tllEjkA5F67Tpi-iu zyd|Fd3edD^bHA&d(1H`JLN}JnH6pa1pLH#VwIL@-)Y^I}ycG}YR9bhJ99I!c-tw18 zDp3FM-;l0NN!1PxV#Xu06CHj9P%!}m$MT5C&}VNc7xT~E^!+Ptt5G{%63`rl7m_aL z0lQR94;z@579sV93OM)3GRFY-)`YU4e*V3>M0gNrMytyM8r15e7PnRi3jl9qvBnm1 zg#L`EX5>Ui_&+ver~Kmga7lEFt$o}QBDXQ2)}EFxf*N3@1lqJX%<K%&*(?zt9@R`^ z*E*23<RDaJs*_nW0q;4E%1S^Fw8Ex1>m!-c^MIglH2h_yFf?LV2cKj8-?N<}^6np# zjx+$CjVRl1Wq$676gu*?BALjM*FkvE2@&`r01erZYjR~gYW)cW%JOk^v+}^acFK>? zr%(TDJVplp*Lb*7C7IBV1-V7awKC|`Hyc^$+c$)e_NIIJgAaJ05&eyZr8^zdS3Yx) z`SzgEjG%Almet4WX|>;EwwsZMlqN}>7QviOvpyU|u*Y+Co29Fk5xKl$53YVY!)jf3 zr>TI#4enx2N(5%&{pZ%;1DtkC>=0(o{pm?aAo3P5C*Cekm81GC3YNf<(#Fq@CsVl6 zgE<|7v`sWIEPZ2u?rL{I)HX`yRo8|s6=d4EdKoCYaCMJ!%XFz@WliyR2>lp$pi~`c zPdF3(k6w0g%~s#OJ8^zMY>D_kcUmAG!}dZ@`1Lu2TZgL7Zlcx>F8iqXE#xlX)nCKM zSuUx+=evH-6?t9HvP=eSv&3k~WH-!jvs6eSpss_%Vmd>fC64b@Kh69KtsEtN|9(eO z^k>}IbWNyO)7Fi%KM8kkWxUETOW1bKa<BC#+MpDgB9(+_NF6#`6!)(cL18ZP^87NY zw~x7UUmQ}OK}qI^3Zd%K52K2mg)pZZk9d$R!OCVp?-i_Px{NRmzdp%yN$V_3_lyN} z6Sh9|X{{;=v#hdAJHw1vjH*X{ZKx|&athO<ibUj9o>yYaQf42=;|rz;%lP0aSe;IK zI<(xL3zF^VDYmi~!$#vy)|Td}D?m%Bx@kk8I~M65c<RP|=H3x(*W7;}@j>t6K=|xl z0B_jiuGZJ^DID(jZSF46#yj@oTXLvRZn5p&;LQkcUXD`)<lNt-!AN9@(Zcp!e-(y& z-#={2R07&1e)My5qse?7Qg2&aV4Rh>*4=nHtWWLN-`%$J?>EozjMX`JoK@)FEQ)<t z+O41eMUPBNdp={n@z&z0N0LXreHWnCwyXRUwKLk2x<@@XxjhXK&ETremgW{FgTnHa zAy+z^Spb!rXPnanU#hZ78xP4HSjn3E;{~<2gc0VBFbDnbl4$cWKcJ*K2{h;K?~X{R zJ8kHng$)9!X!-UL)ulQFEVoZ>lKiDX&A()l=PO@I#GCfqgfOZhK<%)$R*J~;vKFz( z6K!{R#Au5VMrWVaPE_z~aZuQ72k*h{e;umJ^OcL}Kx(GRN2gb+E72|HwP?=@+We)N zhO?U(?VJ}lp=o{Z|0Y~;*xVPr0hrZ^y$E%FW}EwjQo%vj3t3idyL<QIj&7X9w^6N! zSAe*fT_+%#c$^isn3x?*RM`njhU2=^`f8H<QiTwo>7k3p`MQ$GkfPH{Q@edl<A+H+ z8K-RFhDWfdj*A8=F@spX17rFZlvrW6()sjRe>J161pfFc0VBV0y{7uw!!%i!bG<tl zVMK(f{>p|$nK+0j$(KriATT)Yr2G+}BG+30T9gy(tNmLR7vTj>Ezjxk7XBlHP6K#U z5Y;ytUtloU%ufm&_RRkMPw_1xOg4cQ-{C}n#Bw=t{D&G$zS>;q=e{=x?Y_DQ>M^_Y z&pW)KSC4z7xH(0{M{esjJLP)|u#x2gt1}^G&ihXsfXr%2*`BI|YV^e*vtycR1cd{t zQ3u;VFglp(kX?fesjWF^xsT9pEV5)m(1Fw&@6L)>)5c!4O90b)xN}9y{6#>1WZEZz zRsc%=9(QD0x7a7H$uM?6I*-a|MXtbgq-PngL<21u!;4R6dd6x{C&!^%&FmJ#^4n}a zj6rS{3vF+dk!=bPL~BaY2z;4c%Bbzc7ZRt&hIJz1D-js)7`mSjYAcn;lDl#U;pF;^ z73jk(#ItLwJR|Ue0yMAKE*Ali(+0Z@%p~+Dd+I9vliVmUETzz+8E3EK^p2JC>THU4 z7K}KBErvMjbEriMDtF4M5vh03HK^rmul+34livC+*biL@))k<@CSGYVynIFf15fe& zA<sZJB~i~c{NR`WgHPgzOG)&*FH^=p6WRkpKwH@HvV0U0Om}HDgq6uemacG(=bd_i z%zkaTWZ*S)9j0HHM}Qj+FSpzTK%j$uUc{2I71BTQi#B{PwFv1<^L#%m(U14|*y6=# z^HzJ_sWa_@@YCjYgl#Y#3{Zx(9_W%jgl{jS#O!VQ6-{WbTpo=m$T7-p&K-_M^zH3S zgIF%Ee^jVuYCxKJVX7*ISB%_jpBEt&y0k$-01}j3!Fg}k(Q@ZDitFdE3H~7sT$zl? z^Uc)h-S?7VPqH3MQqY;1?$nn<k1nSF+$WFvOaZykq-or>D|h}qQcqEu3^06wpb~QQ z#thX(cR`B#zx@@q*W$5apkxSWk8M^SG!!f4<;TtA`VTmUR<pMC{$_v8vlfWC41$!{ zLwW8N61}diJ1d}46spp>zhLCL4k3Dt&aloW6G`-iH6qZ;H$f2wtgy5oAdsal80#HV zXkm>C%OsOhlle2tcin3&^6i8-E#vnHpN0L|zBLnzsbe>;+`=G`4JFrzyj=Z4-rWXE z1{pP=I4}AjgQlcSBPp9X6mIsR#vhPQ0zj#2fJPPjq1Ah^5Nee_2coHWRJ>9;g%);G zHP?7GF!DD{+zm*NZqJ+!6a@J;VL6%Bk?xhF&iV?`%BZ-vnMUCr5>?<g<Ea(0<jp(u zPNqCgzFS3Y)<iH>F~;Af1;oeJ)&GN406YB{3$W_zxe)?2!q}CF-L)Ts4esjuGT_3L zTAIc~H1sSxjt*~^KnQM!DKu7!IJK5Z6xnxuf0pN06LIXPD%waykE%wLhR)AUswIsR z97Up9VR3t$f8hGz`LCIP#j6~4S~SYE31NkCmMqE^rt|Jy@I5^-x&(gnDjnf`Y0w5A z9fIBNS*(VUs|gM>Yc?j?ZCf7&Rro+YTo0lXu9~q3XmnkWB2%oA+6W+7E5|(E6Ic{b zAROU))1(biTB|cFRa_b{seven@~;Dh#2}jp3hcU2T=rf0`K~`@2UspjX2RGB3`=d_ zt%WPxd7}Ec?_a>qV+c6Kux%~EiMwAFl{|uv!vzt~Sp{O1(b)Vt1t6$LaN)#2PCk*U z$l1l3cm%3~DUuRD7~?m2Y$(~U@+fP<T8jS@@zJ}r{3B?zB+k0SZ!-(XG;`JMsd^+b z-siaiU(TsfwMSUSu0mMHN_u$bE=RTGYaiw-@*yH^XY>&<mk?*9^YcxMR9$NR@k(_M zr)(g8Qr|7+o$?2iQPVy!#!v6`+G&<5O|9KCAWqQP1dDB;hWKbdlVv6ENa95+hke5P zy8@aU;0Ium2kKy2)q3~9OOxlGkZD`E^wc9lnEg$29Bbj!^nBB$Pnri2=Hzf^0ATwH zrtp1+`1=}I#Xh3BK$kLh;W%Q{wpf${phn|Qv^<3yC`kr*+q+03e=I%}Ppt(`&1?;W z@>j!I&IlXs|ICv|+S4?wSQMoG(lw%vlb7S?CD~U>0l?Q<KZ^0&2K|hjsBO#26B24N zGQXZc)XBPzlLXbmwdEa~XNA$DBPq>&&4|*Sdqi&4mh^}#N>7+3BIm1|SSRw!m!Ulr zuRYfNhe;fbLV)4%B21U?S-R{6Ht-wEcR%d^+$}(LSOsw1pvM~Lf|PNrC45$SVW)AH zr;~5Nm>N$6t<QaYrxGh3Uy0LCLg3D)<uIR$k48ebsdv>NV5jd`tFQY{?t_05gihH< z1vx~BPuf1g^5EQ1FYGm_+ifoAG{~^)AYAkL$-Lc5(YDJsjO7vF7R1Q^AZY$))Kk3r zKiICjhQY<P9(*DOj5OG!uBMvNVwa-3SXM2Gge2Q6y4PBE?>pcV71+nE`<8PKX~st_ zh5eXjQwZdv^~!0)$8R6OaSgk_xe?cY3OY{3LPW#Eb*&KkyA7Lck9+<M(4F~wO>%DZ zDjxA&i&%N({}{DxNh4w9=ewN;^DkJcGlof=2m4m>rq)rj)E|?%4FNMrYzWr!e>#XD z|8xy^uY=+Xj&cLVc*IN}Z(PewIs|BLGy*1rZ#dBBo6)wLzWAbofJOv>Bg(4Ec`$hc z(ynQqeleVksS5xxP$1sXcOR7Idc+4ZK~d*mY_GVisD98TQA|b@dmKoepIn!OQ?-qy zfkYC(h=9m2gqyq>hgpB2>GA*DbG}UNLi-*7U8F7#>c!0ag5H=T9_v$jE!E#<^W-n7 zD3BLRAoP8&)&o|WNU&NupB*GX(#d))Q<!mpHL>q%aO@lXW;2+R9>Ws+y4AI-AvpJt zS)-bjtk$|FL2foLVCQS`_VyixNPR4@yJy!n2Y}&1ObUn=n#&^!cj(a-X(Ncp6XFGS z%|$N-bmaI40q%%`KLX1QzEwPF#Vc@DVMR2;09bJz`c{VukQHJ8=1*ZQLAmjMBA8Ot z#Ly7$3Z8Dw)hXigR;gtVp>^pS9px>1Dow2#-L{@p_yB|fUeFEt%#!<v*!#~7if)6c zL~ts2uY>`q*u%Cqcu3zZ1c-x%D@|u<t%avkAaIIX7Xr7?#KiuOgwgu)xgFZW8{CjF zrup8#_^w*O(R(;^=^V2hDB*d(8JZiR4Y-3Iv+9DL(o<TY7KsX3{8NZhv-Ky9!Gi1? z+POXl<jJ_;d`QZAc$_H%@SB-;``#YBf0eXvcXGW%;nHpPH3nfopd_QUn;p_zf#vmj zk~q`e_6>%kYY{R#yivd?6#>Z&2)p}#^aZe>FMA<zfQNA7Y93z()C%m2uZx*~^`v)L z!oYvVrjKZqCiFu$EDM4O;C{<te>*E+BItoHxhId2sooJTBKdhweKApNli{+;I3OC+ zZzlr`i;8mbOM%vs|6q5hHZ?zzF512oy3=qY0t1r(=-;ENPPOTJWr^|?HqJjlPvb&q z;vdChV?P@50KT)Mil0>g>4jj1sWKU94FO7P?av7BVZ6fp1|BzB?xmN4%A$Rl`s0An zNw#K}vA$&-Q`2Wq){Ig3Z>X(Q8`O$p>8l9Y8f`geB9<ap5B!9t)p&>q_V}tWN_O9D z1foGdV6%_LEl7QM3!)*T&V#RBU>hJ6@gs{^Q3Vx?u*smbh0a#nQ%L~m05fPa?^fA1 zhl>jsKm3rHGR%D-BBER1%Mivotg8)(<u}+ZgtLv?U;Hoc<;)8~Wg1RTs9w3f&mQIg zjY2ENerLhRKWVJ7jSW+SUQ@3|4Vdi90-l)ndsC|-0^Hbm8|SPLLNDJ`t9(x$;^xtI zmu*$mt~3u051`Az`Vz&Ch7ZtgO{RH2K~>Sezj7gRmS%F~tzY7wp1~<l-Ds_LSReH_ zZs!&d=rdKY_igTa0HSNWvf!Ow$2WScD5YojK>apZ+=sNwoLNZ?2$Z65&*lkpenf6E z8Z7y_9&`nbD^Hq$;mZn_7SHo9#Pz0FSs_N@HUaEmjn8;U%KW54TK|*)bqu^<oIHVp ze<!82Y#M0U+Pvs88WHB72DM=O{C*f~Ktoi)l90UJRUGSI!Q~k40;3$T;+fTbJ^dd9 zq16NDcFSpw_l%^@D(pN^fA$WvG5V2jQfQl37E-Z_OdH`I^^k`KP$-+(k|U1}wJ#$u zd{&Tn!U&h6c)0I-ekw(DxAk9A0%&3&ibL9q$FzSmpwP+yN5-6dlf2T<`mp>uL`T~_ z=^JC<J2JE=@Lpq{UO$a{+wLB38G&zI@rg*+<$3)`cy6b}ib^0cjRmp0zQI86C~z_# zg8N}MVj}^5{;i14?GrHxEjRDuB1_{_^KYA%q*7=rgv7A!{B*<|8d`p}!L3LXP>e>@ zYcGf#0qb8ku0nOFokakD&K-HZl4Wdj(J>(+?9k4oFgs;BItUA$-^4gx96}Y|bxDJo zRpoFOq2<+Fn>efh1bG%dGgaT}v0PppN591+L$A{LDPOsc&whk}q^F<kE{u7{9$*z# zE-(D}E>#QG$mtJ9S@D6+-5ZIlLWJdVj)WwgTVkM*n*PP@FS39UkO3%c!90}8U{IJ_ zSX)B&jDJSj53dI;XqD{x?;jWKf7s+{+Q<7mkvI)zndNJE@=+#0=rShSe%Au6{oCHE zV|%JKLbq7v1m)OQW5D}~h?S-IWVy@S_Y}kWQOD=CUcm&aX_&K3uV>&UqpVl82y<(! zbwkwcdEmvmCvRKa96HAoLYw`Eomg}4Hx}|krO;iG!x~0|rr~lBpSg0$XoSCC(#u(t ze^iNyE1OR1UvJM^_JsgTxA3jDXMNKyhFYw6GvJR5OdWuPuUFl3SLlxdp?!lcUZSGV z+4y~8?6|8nK(ELvAmEZn>Y304j5?R}b(a>-usd_+H1VW@c3(W%n)W@c=VYA>*fT8^ z@x^fqE<)fk#8kLRTwHWpaaAV2e3c4&lat%AooqE#rLv{bCI-~W*c^qeU^5)a=E`TA zK-+229e|y<uw0i+J7lhm*2tCR8ao8uP3D(h2sRi5Ju1iJ`;!T4yO#5KzxsJb?Reg@ z@<o_acL1Qb?lY_t)h&J>B?J!gfD79dH?kKfQ=0KSI0mAfPxT*Gp1k!_G9up^R_j(# z<{n8e?rJ`uu8P^a+kr>cr5$|%@QZ@OueX>r1)b%>CZetb?-n{z7OBz&*EEd|<J`li z)J=O<|IG7x1Db&P0q9{-mIZmy0QE_ns^tUp{0sz^OfejCsV+irCKYg>p<e31%uzg- zM!Wt~ej%4mycuiGhOYjoain5$Iaga^F}@0=*lS*CNma7WX_6Pk*d4oBR(5Y>HUf}k zRBQv1*m-5j75is}6+~L2lb(+(|A-d3ZPUqaN(Vz23m=R`xI;;hIfzfzRSGw^&FSFA zTHYyWzQ&`uOHHqwFB3r3-{yXGPi_^YZOPG~&Iiig!n8^B$a79i7bkx7Zg6Q3IOE=~ zsc{*&+i305mG=V%$H8y4&NLX7Ku3w)!w5$k5PdRbb`7CjrK?;3imV3gbEgz>R+ItW zPMwjuz$j3x0cwHKWD*RVm7c|i4jjjDq1=q+GJlJZw0GC^kQ5jmIjLW9KF~k<5t)cn zHzN-kcOTFKMYw(OFA&QAPwJa;@cJdEV{)E7ppDQS(^g%u$_7!(=A4GTi*3I)qEn|M zXZyhde6K5OqsNc3^4^St&<!52UcdKlzdh{`joTMAgoG0xeQE+fXSlZ+8B;nTNj~uB z;}WFa+isDIAe!MO#2QY}3LGd2V$J;<A@OQ|cMRZox|h9U>Xh0H#OlXc8dxzne*KGB z#`=YS)^gjew0V8CJ?nrrt#pN{m#~?alV916Bd?V7Iwh8i&D8HMHTD)@bBu+-MbYf* z&MZY}gF@hEn{7|Ubw3|f;&q)fni4JM=uLZF=M5wt!yn%e5ge3yNB`9)pysqgQ^p>G zQ~`hNd6SsQexl<6=>!pi)})zjY%RDAN-oN9em#u5q`he69Dnd3_ynxf51!2)L~=`N zU$h;lu>g!8zDrVYhaKRrir>1ejep$VWJKbNwl?E&;rIn%w7I`u6xFqT)F#BTYTj*g z@H>N0TD_s2dKkp8yw>dX9w;Hnr|*HW_Gr!09tNR3^T8sl{3LWE52Xw2Z&TCa5T=8n z&6j*!=~8Hdy+Z?muVb33C<p}L)V`hXu*u^y;Qe5-hP8P)RnXJx!PSN<fu(*JxK;=p z=AMm$G&e5qefb<%K0Uk_%;HYKyRIYFlmXn@O8a_#&>EC$Lc!*N<$6I-BM_*CI;7wt zse}LtuQ{N8`i+(%JbmjwCw?5RH<~+V_@BoOY!}U8YZ=SQups7j>J1bCi}kw!;g8o| zgFo{uwj$O|2XC#uZzYbgRd;VaB)^qJPinMBO6N3HZQ1$#+fU4uOi)X}T26bz-40Rd z-M(vilG;yQ@M84b+-Y;I8L9tcTVGhi-yo`Ebd3+c4}~{5P1Tw)+jcfmL-!fAkujSX z*kgQ?u)guYKN+Ii8=+?}GwLwAi*V^4$w;TkurtfJ7E>MAZWc96qQ8TEP=k+jYH=O% zcMGCJYF9FVCDpI_Q6=l|3|w?d*!4Eq17LdvPxUFRK55inSAZIz0aQQOQo;(Ei9`<U z&!g5%=v82Ih`|Y(Z`@DDo~)=#CRrqE{^|xq?3-#RBl}mv1a3d@S4^EcbqvyL!8VHr z3_2CiT4Q2>mN?cSeWQHMZ~U1CgAs)4lxI^P^&^%6)Qc^6N8{z)KLUrEA7d`|aZVGY zL*=wE_@BFc;H1N+$JGE0d&{9AI}6P8IkB#<uf8<!+S>@U!L8@~M}$%jbkN*~z)<gb z2sCO%{6Rsq>gO&C!1Y6W=@;0~j1{TjHlU`;z&BK-Ik74);)^0Sk!zf9TN?5u$4gik zN>HbK^ucyzG9(d@l$6}8tv|tV4=5CtMez3M{5eC$3dL_B^y6S4EZCmKe1O19EgZ<y zfX*l(Z2tjp>;}SJf&*n}Ive+)|7nIJ2Vg!Nz})jUct=$qNm!1g%b^<Jc*^r&$>5F$ zQH4VPnt*@O0bt?we7XN=@c^@?E>MmK8Ffv*@;rVN!EWx~$(lG)-6d{4i=*`{k6`5Y zdS+hKfqVG+vv14Fkc$IvMKOsTNEOK4iZzJX;bV11ZJtlIY%_9blo?xhQpJOSC3(Y{ zfrbDV$oW?4&?Y<6{%QV(cb_&JIh`W#-v<d5S@wg!^yEGJv_|(s!KGv01~CF{R7{$8 zH|)zw1}K1~O>b^4n7Z?4mZQ_6^&<?BGhMS)VA&oNEAj(3RLWnQY3{sr0$3Js&pNOY z0d%Hx5wv!oxa9PQOw;V8NE~erW+#SupC`f+V+(`wYpdbqvK+YSfY{lvT$00uPz^cs zo4)KcodN|s{1lY3OiyFz{&fCcXJITzzQ-q2eC#H)vcJ}`RI^k7@DfG|21Whyy&<te z|3beS`h0P440cB$r2e>Sm&CWr`y4B-YBT~r!I<q*p_;yW;;u$LH%ERs{;wBud^5Fn zpN|2iI{@vzwD=yT<qDj)!I2z-<1Z=P((gnXuU><c9+ul_?tpu@r+IY`OSfqu6l*Sg zwWD-Z`IvmDE;am_$o59F@e=-}T;nmFOeQPJmcNc#twJX_HZF4{@K#1u3ZS{?jE;dc zss!v8zeV4-tFlvoyUu^%?jy|5?RX*L0|Pia^@3&=g}cqk7x;+6=j)Lq10k0%GBAoo zfkjgSGF^>8@Gb{y`>IY8?|NH6uZU89kQ1vnN%3nOT*GJ{?8}lh(EE1ka58|ot+cM^ zfet)F&&>-F17FPlj1C|%Zft)C3nhVY1loNq{VhZ&sn5vqq$G*1A8sI_68XIy*0&|B z!o-W;C4c8<gR6lqwFIHP5%36-QNBY47V-P5!*zMb&Sh+VT09gT1a)X#=W>>ae%o~K z%u}l@k$ycQeQA*WGTh&gwdv4@F-DtUATHw5YbxE<1%w@tTr(%|3u#aT^qRrco(05L zvsgd)w1#0=Zk6Ysfl?%K{^KQ_=t#R!9tq|nS;wIVwO!hUo2t%UqLMfZ#%{IpcAM7K zp=6LF$9_AQtV6(uIjz5*<)WM|R?0YX4=k-UM_E>4?X8An?z1s4J&U+3MKi=}abZZz z@nh<!_Vuhs$5`>Qh1;gi2ypwp;3|h0)ae!clISmB9lndB2os8u?WX2Fry^ehwG26H zEZw{hBq3V3M_pR+&5c<tI7z0xTV&;Bb@_m;TdvcAm0tYMgGTk^pa`495)`QG@7LYr zz}3XL)rp%w1%2Avaxlh{_4W6`wR+IwSH}ovY|Qlh6XGF)9my}xfV3lv-shbH=4P%g zMn)kV$S~}*0L}R%pJOb-iqbQmhQ(+i$cpqt!xN-N?$DCfz7&9U+pD91<<1Ws&#+wz z^l43!A%pjT1gT_jT?}}zAh#^fFGL;Q;r`%65it?~eG#b2-lF`yw^~mFYX-1rmkn-A zlS!u@u+w}<1n0!#DK&T<iR!e8nh%x(9qu2?V=ymzQ(lAfwJ+xwYr@;<h!Mh-t-*u$ z*C)-ygEwqAJoB=7EPOT{Hop>aRl^5fIJuL0zVM*;tRTY4+9iqhD0&dd$ZXs0oo~Gc zv{5Jg@F?Rv99wKS!vMWAK4ewq)u<gHtQ}EA6ecLgDhJ8sQ`gwd52e6<_Vt0!K;;z` zYW1h5zzX%#ON>QY9(vg>ONX6l5QbX3-xnhN8AIAALM0gCKM;2SYXEJQ7XkbbSfxis zcBE2TRoAf!b&UzYL@2RNTrXY8igF1Q!CF+l<N&At9G|batVV!15Fws9ekc1B9ukuJ z%J#mmrvWPqreHZ<5Ze^rc%;CQF9N*1!W_rB<<A3I5@!fHiv##VDPnDgWh8IhS`scs zK!=iQv(}M#`lk^PkA{W7imi+AL_9Gl*o9LzykHxz;`U+9+XnM(c0d(|{rZ=H=r~xE zkMBL3$7^-+BTzfS4@Shsv4^S%s9vC>jeo(PTjEshQryTzAxYxA*w{1rM7b17h+IVt z$QybwEyx42jc%g*QgkTp<^4iOP%7jO-6ZNrMO0j6k3W9t<z;-dO!`Vp%v<oM7m2W1 zH)W?L_z`&}-`*xM$wq$fM>3I=jkzRj@?2Vfi3pbBkGV&H>+>B}zeju;QJQWAKe4?K zt1uRl51$cYur@hb?|LKZY<EBY+!+xp=t7X3BWZ!#@0k&m23YR^qLRL|JbO4HbqUa! za-cnZM88@0+pbr`ul`_H8mt<QS&tvHh=R8(^h)=~3!y(c;+u;+YLS!)a|95vB-)l; z$qo4cpacfRUkT~&Lhj0N8TwWojbJL5CDG=Gj8)XC@x7t9cZKehL)zyJDvd2u>|5^( z8pM9UCKS>dS-vfYjM!rs(%!6PuXI&F@Db+|J+n_La%WyeHw+jcJku3NE(%J4pjfH( z>|t*6<<Eu1jADe#<Mp(By?K+&1e-eXhYjGJD3g<{yeO;GX6O<|5AG27N0?W{=Y$ym z_ubcy>wnr|Mba5`mqm3={kBf8gAN9c>&-M~6OW)^>@5Puovu8O6jPk}2Sk@!WAlQ` zzo7wz=%>1<lc-az4q%pp;}hPWJZZSD#E%_d#e1gyYL`}LhZD<%kn%@4_*>TvDRld{ zp36x@4w=LosD$YOgwdhNEdI&P$$f$g{9=i%<1_(bkP)67?=P;4SWw|0gs)RlO~Bkl zVFm5sm=K7W$gKUPL#8C8{pK$l$^KuS)+rmjb21m58L)Vu&Y<`^sksPaoBEDg)cvcs zVUZ13!DQBP=KRQ5{2DbXssClzAwMwVeT(bYxvT_{66-HFjufD7?c36m`(XEC`+bM6 z4a=a-Ca{By9r7iV>glG3ZJ5)Py@>W@Ai3eE+bt#+vEoJa2w2OnRu5Q0=>eyvY;YbH zhr*164u=W}Z0<7Xcu}p0vpg?j6=+s~NAz`p6(`%RT~UvzRfXM+v|Of&EHJd2XqEru zE~WnU;<|z8)o00ypWQa2YxVj~ARkCIidY}`J^#0JO#$Z%-e$WQnc5U^Qb`XQ5?E1T zZ-dAPXXvI7R*e_%eX-pMI}<=?0(0TH5B*b9XFv^*L^D)NjX_)16GAwiR7sS%NK4h- z==(=Cm0b2VQ)%Zn_jArH+kbwg^wzz@z@0Z#d$F|Lz~5}Q{U2#Z*d*f3U%q*sDZ&p` zK->6Zis#uL{pQ;N{o0<5oIN2OSA-}9A53M#>-MD)^q2dKVJ)faapUqWvvj-}7CMO& zcput9ee#n+LsmxfrVQjg@l&e({?{`QAA{M&kbl8oEu_t+dH2D|Dy{{n0SPqQSo;Bo z6gX3Ra^Ab*xeOY)-9ZSLGevrph1HQEVYpW8t%Ny&^FxJ-0J?*J;6zdCd&F;u#IeNc z7AOy&YdAr)V5l28!_a8MrE&x26Vp2MXo{-8e$0m+{4ihvtKhLqfU8xLNM3pSJ0%27 zyGvY+Tv6D9?+};MMBMfr>%Me1dj|aQ?AKxk`neyqI-~ei`!2FSZ~uJUyu+xdJ3VEE z-mkWC#$)0G*Sj(MXJi{b6ZUj7+N14Zn|-$w@fp+vzZu-$z+fv7VuelKT8z|J%iC^@ z)q_&Lp>}|ELWw_c5S(NJT+M{&u+}4OFKEyPyWiI@GS8Ppb0T#J{IcD51-YO4?>@+5 zN};yTe(pPSRtR7)Zb%fM#r{3Pu@d9gLJlg)gZ!jT=hyEEH_cgAs2~8R7UEEPK-R+5 zue}p+L9n3tV$fBFJbRdXz!&~qyiWR@5ZW{N?V8NCC*Y%Z1~fgsUlf}NjGu4I8^-0W zC>OBmtDj9#y`1!7A@L-3<7o$pm%OsEG0&h3c8KbOXEtfxXk2~E*k+hNGh8-u!MJL2 z8-f~1{66BbcFqzIUEiL<=fXzL0PgD6`HEx)Zt7PCI4JjK!@Ay1T)aCM^mdiN{E~u? ziDOS4Sg?MH_3N!Tvv&Ef?~@T5SZq*8|EyKIuYvI4PI_R>BD%S+{|;MEu<yFpd#U|B z)9r*L6LZMKEN~-UaRlSHL+Iy;uh#`=6<1+93+OF#$sBa^bQVE1tgJ`iR#?5v(8kRX zm?ZjA(1t-P5N!XS3t@g8Y#S%Q925`TPRF$_yCNGWmUO5c<wbut43MN4yUKTDwe>GW z#H=HqyZsV|&4Yk4gKAZ%22Rx}G18Y$0Qu6nKv%|UCb|B5)U#bp7&!9TZn#1Fam%$g zkbTPQFSmP*i<3;ASJ-{*V_&9f(7yQr-A1KlXh!mF2yH;;_e0E=0HOI6uB%iwkM7yu z2B5dL{H^oa*2!N|$<1~ouKB9Dq(s6!#5vLR!4jwCeS%=Or`MSlja}S@yIs!sys2-y zc6<c|Bm*S}V>l27PQY<fY)#qWOg`8cd1}XuA0CLalze@nrPPI$H}lxN``MH$J5HSH za6t98Rs*v|5QtW`C^c9n9gzDnYHh(VLhabvhx>j&1eB>u22x3c4{X~)MaKqskMGB4 z%B;s~uyceHzD`_$aJChA<>#$V2QF_15K_Gvn$RBg$*`r(RRZ&HNH$g7J>U6Y+#YK} zyXx6vtinY}^5~S+j}+Gn1pTk(FS76V2>t0UntO*R^&JU<%#8PZ-`+P<<67n~0%<*$ zFj#Z_Frezc@&X?yU{iJ$nD{*7*$%PtwbjuQ8bucJk>D3nc&A(j+*Fw6&N><->1Y>` zmtqhMSIoR9HH)2hh)evzsZhGU>ap=g%Tvu3StxL%M}(W&a<e}w;Qnmk`$yo=R5@i_ zm|Nm_Hkz%38q_^)xTpd65lm88wcKErdfahFVX+HK=FIJ;f*LUbN5w4-{H95hUoA<T z6t^sbf>koy4y%4W%90VS$n|?VF=E4tj}O6*Z%g$freUJMK-T4kw~l&f>LWwPAL~#Z zOziHNJY2*o#E_J*lM=X^!{Cvr4h73zEzKu#1ILX7A#c@iah~m6u>#lO@jIZ=xIz6} z3zk|=m(`2x*Qs3cyABa}xA|X2H;`F{|IRT*7T`@Sj;t3r^#48JfHxyrQZN`$x6QEV z4E6FFPd)N&bPybVmssrI2vq%qjQ{sL2-l!$r|uJ{eMxSi*2mO9`#fT!pV`j+4CjqW zULxycmNbF&>fq6<t4X$xGF05&C7goRv+-Zz@-i{d_r8AYYl!F#Q=ze<($1;%pNh`k zjUTAWy$mGq3bz3JvQ-fCZjL9?kDOVG=2Qd+AWGH+OOX_P7ces{3Vj=60M_Lj00Vve zVe0s{dJEEkdCEUKJKi=8zz#gNCqSt;nV%U;7~&$ZSO}v-FH6WY$<uUrFvBDrFX<Y+ z6-ZK}^0vtZxmn@$Kc?2NC_`<@!XW2VuU!u(zo0FPfI|i@(ze&GI_`ez?93Jd^<0YP z+5PbZhLX6k^;z?62(EK!{U_H8X5cblG`kk}%`AfZs-N;^b-72tmsPTyI5@^IKsY}v zCE;MGhhOgUnZPwzx$3GGHA~|5?(5k+Sa0<+OPl(nui97t0^2szP9CjUb99gl^p(xt zqr#8(?fY;8q*TLK1V-7f5ycO8ywur?fRwD+3-`b?!7xY<-y+cqww;0S5wJpMr|1QD zmg~or#<%uX!x02|WHD8wcCh$~Tr}SV5mWNTC3@VI#hZBEQRXWJO;MNXq(fkw3kxU$ z88!C)_WWUh*7)NjfQ8XM<vatl0swFQuyZv%5=2ykcX9=y(2&mK<-mTdPv#!7O*Y7Q zma}jI3^z3{r?x7C_6*0tqM+&Ad=08bJe?KwcGV~RJX-vMRTh`$`9ltuq5a18$Vj3U zANLp*sg5Y%Vl;l8h0BEtlHt_JAWyiap<NYh1C!O=x!Sso>x1ep8=gGF3>&N8DvxTY zw!@W^ABAQvQ6F1$FC9pTZbbm*D_hjNJ<oU8BlR^~>rNm2c<`fV-dFkl&#TB>Zsy&+ zPoGQ>N);-HkP7EN?L$h8R)iUSVSFmL=qtbY(o&>;e&cR|tQTcD+RvOLGZj#i4XXl6 zx=i9tkxqe9+V+-zo|%R{0kQ^;$#Dg!h_t7O_eg!zMS^+`?j}wE8R#Hdp|PnGzsG?k z5Pw#QY_19w$Okx|Z9N%;Flq+CA2@_-Ks!hrrHpu3^I-K0d)Vq)l=Wop?OrGfog<gq z3W1el2IF-8w`@`bn)9tm5~B7^s8kK8REV#OgxR}|cSYe;4j1)%&gHoK;OoojPIs0| zmnA~G-T5KD=erw@BJt;$R6XV!x_-wGyVCly?y?=6`mOh^ZCdmIL3>WGY6A&6yv);7 z{V>7`8}ol<ouGGZaO_>V9P07)JCbrg`k}GY>sQc_mtR4gTX?MYTDws(LGJBW=U<=c zeDeV2x>+VHimGv`E{S^JZFr#kG@baxyivvy1{2>(<`KNYLE@PR%W6KQ|8qk+SnE6( zdDNZ9qrAz+k1}v4w6elVFPY3+p-F%NdVfp?kMsqel6_ifpJG9AVuYn5&f{|(rK$}W zE;jl$oc<(8yDc3og40^KRfqc~38^^F{qzk^T6DPyPeD4?q4{5dVZIeiQ#c@!0UyPV z`8gW`MAxMBA2^fJA<-YzypWy4d1`qyCGp!kPfa&gujF9Z&@ouN;UWP~VK^StnjOyK zi`7kP1GMK<{R@u^!XE^({BOo?0wb99bRajxcS#g<0YzLF(NdRb-IOn7y{mddh$O0U z_!2VPt0`FzM`ukN5n4mC{lWf~Bu>`e=exD;{eILpSv7Bzd2|1%>#(!gzWFy@_4%eD zA?)En1*&PB_$SiOOccDR?ODFr2tP~-2T@sz{PbVjka$ijHwtp;!S|3MPq15lyUk8s zrg_gZ7sgmsl>&exoAl>x1B>C#aE*Y`B!NHXOatv(5OWu=QWXFhq%qD!7G`<rBJAOI z*VO>1w-OZO04xnXR{^D|*B8QD2Xm%l+!VN1-h|xAg>g=5JAu%SLT>lQd^a?J)5mLR z&Fy>Oc^SYdit1PV0*ioqO5oofAf{j0WOaqNd;RR3y|eHao6qzNJV!%S1t?1A*k^Td zYh66l!jReNq3S(#3)(K+#s4MCh7EZ$H;NaIz+Z28@N-$L`B``@1NXMY*&VzSmxL<8 zrV`Mp@$$M#FFf7GBky~OMn>Wwh^1P0V#1f4cqf0iS^MC_3G*DCvl{j1q;TTNbU;k= zPzab!Q}HJ?OqaRYx#jJtJyPAU?+zK^=jQk?qKf3h!x##{F_;~CK{pvuGN~Y8RgF8I zcj{{-w7#)y^AW*Zmq}~~!>vmf+NikTyYMcVmBufrhQ1cvQX+y=#TdwKS52xD@9*wY z2MWM^k3Stz*tilZ1zJKqCFN#!T$5`2HGJvDt%*~|0V}Ay-dFZf7}7DPdsdoidff9* z&V!0XT)r#*6#O*=uCHL!!vb~o#v{H=ma{NuF*;vDf7LHWIFp8>CwzV2$N}VXZLSbJ z$jCa;Oya;k#VhQI8x~+k=fF`t4>+`)+>mFtMR)TFzyn3Cf6X2|$#OZ2fFKo#pv@(p zJsOVBzs%QSSk=yh4QuKd9?)U`tEVoU**R}f&)KmOCFM3=+c2~^6S&t^W7V~|DYge3 zr(XxOuK-yjv&$sZ)A!Et8mGgLjU56Q1c+z?RH#Gtp>$f*)%pzFqtVs2k~g)On$`0Z z98xt8KMjD%YMzn;vebbJ73%ym$ts1v6b4X{9UzUCPke!!hQx>P%nn$o0Wl@PxdS&) zCI~Xlkp%b%7o<AW%yLEw@pxvN=!*eTw95zLT-fLwz!3inFE|@5bf+O(8?e)M1uq&z zv0v}b+Gk!rnJKDNmQ)On6#%39sCwmEi?S7eBRIGhfIJa_hgML`7QiMhwJf+<xKnL` zaQ1jx^gdgf08cRJc|!Z(?#`F7U6j9Dj-cOLc=L;Y`ww6zQ{v|%70RyB;g+p-BBS=j z=?W>dS<o)hc>36HQOxn|%;HVd!5wwp8Q>eNfN+m=x1H+06YGai2eX^Y%hsPLVNOo~ zhhYIXlkNYHtUrN=a)1BF@q3JYP1&<lPLw5yvW1bP5-Qn4sEi~>w(L_15!xg)+)`Aw zWKswvr4sH48Cwws*)qu3e%Gz@{(K+*$NzCokMlSk$2snK-Ph~7p4&C*+6$M5<8%8D zIh+h;%N2v70Xa6tpBB)!<kf80WYJPm_-Z2}Rb>=TS+;p^lj+{%Cy2Id^&uo5Nr#D- z(1r4M@4gd*(EA2)f*qmF7?{KB2Tm}}Rf%KN>6DXzeuzO!N|lwWkoC#*!tiS<<Y5cq zRH?9hIRZpNa3^s(i4KA{DB^m|IyL-2YJZxV2^xtFy-T2nrhf~qt@jJ4{2F9}aTJ(| z{NHhm2o+JYy;Zu}w&RIXf9<1SAhq=cL?eU$lD9eux4RKP)xI&#FwKuV38!)`;;%a% zb3-Z`WE|7~_}uW{SZtoFQqtf-Nqo59?X1V>kNwF9M>YESPd<Ly3NT2^(IXt8-9X&a z#x5tqXxW`Q`_yXqt4G0C#L0X>H2cy!|HEY`3ULnrH3H5|UyE``DVa@^|MSW*5NZPl zBK1U3L3TIjs>%WoRwsxQ5`~;W^RsePniDjl)GxzeCELNwiVERI-)WO8P4LrLiMOSB z`X#!kAP%VEB~<(aj2dw`z6Mu2r>fu!=qi^=?y56EEVOVqrPYuCVDM8R6W4Kkp!`uA z+Ml2Wnr(0kN^0H{oi*aeFw1v>TnIgKb9B6oF7bDujd6tyfmC!$4BCf<iE25>Au24g zYhOO_<9~XX{}Bw##h>7z(7xPuWT%@L;-4RMoS>Q1acyp;5Y&%%xa(f2gircETn|b} zpYxQ#13k_2#1^C2$yyyCQJ-w`t(6SgM2f%hD*32qc=U~v08bPQz9~~Vb+)Md4<|yK zh*8zIMW}JS*mU5Nf==6PHpZE?YO(&eB+(_g7p$(-U6|sX{7d4`lHabTXvC;!l2#79 z7rSEF0-~EL+nAi8kx`7D{B1=MkqWta3o3(uwZYsG$~l|KHQ;uFM>!*A@}3S<@;Ych zVPN-%pE!z32xcRkjF$4B34iJ{BZk_N;jFfC!P`H#p-Z32NsfOK<t(1$2VaJ(L8Kl? zWQ<*^Il0Q(2M)MX23uNzIMEHXE>4OM-yagWPR#+qMh^|jZWTN~7cYj;IKup(i<*i< zyw!)haFw6@7d0BNUAU<?2+VYs#&MOOR5SY;yP_9)gtT~0QpYL0Ggaraz;#BQ7sT<a z{r=m1aU88{qt>|63mCqr*<qP<g2T0+1-H+5r=T7Yw>t>B-6JC(PxtVG22EFwM4a(w zN<O-*>@#UvCz^+_c5#eO`$SBqGo$Wi?A(!a1s*{VuU2S2KWH9hbn+SYqtkJQUpMAh zcWwGvy5YSiZVa!4d)+_)+j>X_gxc3#ew%7k>8)49iJZn_!#e1gIB}`&wVW<C+IGgV z(DYRp6Az6OgK7OQ!@3mxZSz4Qt(*5O*DG7jh9&MG%jl=jF$q8y1hG%gBWWN|a%$k` znR)lR>J8e<jXPWY!`eHO<STDHVZp65L2^r}3A!T&f)bqD-|o2W@5@itc7_M-qVODU zBIxj0CbfWrc&1>}$5DK0Qfq;^C%AcQ(*o!h!;bHsaQWP?qUxZ-LDX#bPc&I^o8K$@ z(%qBWPa;q3#Pu!qUTaef{N+GXSuXWa`Szz><`5a@e}y8Z+$(~N)oF5&FAjPN1Ic*! z&+UWF%}u`5Q*jTC5Bhk#!4VKa{DG#QR7B{R8=>w+GR_<XZftBX$Z}1EkACL5kd^_6 zo6FC2fDaqP89e+L8X^6Nt&Q=lZVq2I7?u|5mLD07Qmw6@uWBpPL0gHRR4R0#;Gw3v zwyg(V44&*cAb8#YNqsuXVw9JMGTX9Be!ZG}zK)&bcx?5MdLNOApLs8Ws)AD6aT7kl z`y5aB+lzLiWq0i9<{Bi&2?8>vmE!xN&Oj;SBi=f#w)pMbK$azm{|B+-C-u%=%Z3D? zc<?`}mEaW>Xfd~s;6emC*hl@C+1i=1Fo%j<KREf|lCo2r_8P_OT$EYOe@=f&KJ$?C zHtXtWNg?ZrhJAt!4zmv`-qmkg&%xm!1<>qkUkA#b*!0K62zkq%8bn~`h#nE#UWxCI z5|}=FVuj9Za<`_IJu#;f7)^!IoQ&*up;sb!ak#kb$kSFOC+#(*Y>Y=IV-N@Nf1xVc zR*-Fa7;Ln6o>3NFzjj4h=%}-n))<dEDV(<X%0c%5dHL!fuMlny<N|Im#s^VlinHy2 zD#;Ni$pEa|?r+`cjA*8?IG_jsm$L_9mfy6-6H`EKF<Z!s+P1q8G`T+S1Dm1ZdXS>b zKuJA~4WDi7vNx7wXg+b?6nJ<_dN!T&j|xPK>^=*Gg}1nzS_X&P%}OABaN-O?nbOa! z?{DmHwA=@BFI;pI{X<2i?D~=S^UOZeP>UbIwO&P)oNvPq;VFpWu~!|XpWAGvs5cFS zJ$Y6#NORwgDRD4HDkqO^JJ$65r#`L_P)|5@-c>uXCSC0GNgT54x!e3{PGp!5K%e(( z2`nv<PPY~*$#+bOwRN*9DRSQts*;zr@=3jexK-pT4e|j3C^Je<cD#29Y03FK7*%qw z+E?%e-e*k9qLyZ~yCcw_mKT;~P#^^%SI>e-yRiR<jf{`%Ra|dji+FDbmM&fp1Ur0q z2%f*LAS-F?L{!_YJYFC!g&{QZFMII?4KDV&rA)Dy*wYufI@+_MgbZNl1o7``3(9y= z^u9b2Ce0(^GvJ8anD{cU-2g)H5K3tUm%&8>04fXK>u_1(H9M~V4NI$;iK|k(p^S`` z(RQ*YwSybGe$#Zz<SU^#<SEbO^&IU?=X(ca5!UlMIQbD$MjKi^>eIn&@a?y`*r4d# z+RsO-Aq30dL2+L~2J{P^%a#P)K9QkUlN%r-bnxc28=a&Cy`JRzah&88Qv$@YI8UXk zG+&ICIe9445Zab}n-kq0Cdcp~iK37rU%(Q{A!@UD_Y7ney?E{j+OvZ?prti_E^gBU zFupZcBawL|I$8)g-G9|VM;((jGd_x|zSz+4jIIbxJQ{!#m%O5RnL*8sfKc9miXCN? z+xE+E4ZMYhS3#dRw+Z+Do!&Yad}1E422l$YiU#CTT0$ym_#wy)V62KfNBs}3I*?8S z`2jAZ6K`G=JrNM`kY~qvqNV1L%?LA&=_LroLuTS0f~uk?c@d^V=0_ycJxSIw6_2-B zwb|ebDl42Nf6fCzrwXt8Q_=VGqa_5USM}aQ&+ljM6Zl@MI%qD4dGfy9zX_32;2J^v zj~iSo6lFmS(nMrq*PB?k()BTx5D!9=b^p1`rvD}Tg17)ywaAP9kh7wUBlY!3pe?Y_ zm69|e96}4ep0TnmmagW(s%qFe5}QHZmK$)4^-A?N*iVm8EP|Z4P{Wjs3`yP((qO#F zk77fsxAh$bZJs}C3cshw;l&5ch+dRg>NouD2Mtv?rPK!+TU@mVd<R6b(H>dS@UtfX z4_KKpn;Odj<~b)SFoC$d804QqYgYXEHAbEp)tv(i6&V|Lc!*TqXTy&x4vtEf+ycSX zJGv8I2oP*aPhuf|CK3cf+gFLC3M1p0ZOe(%sUWIV+>X%XcJwBU{`>mnpO2h>!P39# zjdl#j@YlCO@_@fc8Yg)d;ld=HgZI#<@fG)T3l7|tYiyk1J8&cNG1{Kb9t~zr5d9Bf zz#Deh9CBCATRW^FE!fzhOo<)}0$lenr~L0ZdkQYW7yvc-%7^JqIms4QIF|`n$;qEd zc@Y;Mz1;N>h=8aVGG%$>M1H{Xv3&=ds0SNFVW4;5&TSidu58c?()JdF`pH`kT=Ks9 zU<@V~uT_L5A1H27W1pZ?c;rVAQr?6uTYExd+G+|09e#lDUt{H@W$2~yTTVkWuxj$v zRh2^Lxwbh<V$-{%>a%4BpX2MM;ja2RlTeZoED9Ixxc8Paelg@lh0khdXIzK-6sF zI5Q*x8pmR(zzz6&KUclz?isQJAr&G2H{^#k*WlF^xH$p+Ch4eEv!UAA-40s}W?VK0 z0r8%oi)f}(9xV>5#joQJv8h;IkI<)|F>*7O>uObHo?EG3IR!adh0L;>rn2MiJo!(R zZWv4p{}6VE|I@b>pwWoBew0%9WEWANk7AGuIEXLXTVB+qN=lUEXWja>PigQ8?^8hH z@UXnC2S8p6ZcRvZ)3iQe0uy}?Z!YQ)4};PthyuLQ5t#U{J>jJVrDq4tIe8tNLukQ1 zV-2?!t{dUfm6)s_^}RsO36eT*N6FybDD+i$NFWSsXV!Nqp22&o5gG^>+&3b+iF&7T zhcvEQ4%&w0)wpoP+rpbH(08^@nS&gA;ULrr&W7iok4BxQ3>HC33WCl0;);%CEmiS% zibRA-habma@eP5V$iZ~Fwb`QMfA`dXJ*q)LlX~{hvl4#l;qY(c&GMx9-}$>2J7!)# zBSOsA1T?B@)3?Jm+wfzD%eRkcY&SWy1b)E4J-k@*?wqFd!ZlHw%VHm5aJ2t~tl7BV z!6>uE)V4)<KR*^iC$)j9GDb-5*{uf;ffA`}eWcJ4lDesN$ksV{K+axsIMp)h?o}_! z;6|X%@?w5lIgaN0Sx<xiE+&VUIdOwqH3s_qK#<!{i2Ih?f&FZ`T&7j`Tl+jei7$Hm zY%@6aGP2td8MS|6BHV|GH17a8&@$vYk^W8rxoVGQdqxCsK_CnPJ79J@?k(S~=(*El z7ujjcaa?#g-i>|}Lo|iD2MDjgFq$a3JR%fq?e$lbdJg;dXa|I9*w#MY(QkprYUqv! zj`9LIGAB5wz=<Ew-otm}uua<x8}HP^(*~d~)6B~lL4V}@%MTW*zZz)#<@Z$EhRbP2 zu_3!->kz4tv!poT_($ctAM{HTP}h@3!whyn9`cLPX^35YgLq#RMKmpYWM_1CygTUJ zeB9mJz$;C$9>LrgUe=S>-*E3cxPv6OBNh70=>t}V2pP3RfB0_z?j@%BGC~&U;>4ax zJ>FS)kE5jo4%Q3WJIGcmSJJxITtfY6PBEa-hr@!TP$6?s36CGTyjZKPCm;6s0|=C= zu0bS8kr2$aD@4r8^d1pLtA%u+LB{yCU9n+iNH`1yAasD=(EYl~G5<Hb;@(C_6VS>5 zw6aR0=y6t7<#nbiaR79+dVn)OdkJu?;(Zm6g$8jF=UzY(Dr>cs-38}25bUyBB+vq5 z4|uSJRsOze1usDEwSQs{f>O)C?fbVPfRL%_`5R%E`qWpxt4|oFt}jDd0UGEE?kej& zE49sX$o0{)VL#mlYVXH7M}JGr=G<TMq)}6M)v>swJ-VdMd>sG*J;0;PrR@GB*@pKy zjRT=;R2(yrKm*1&Y)W{qeb-r9esz2}?3@gxElQB^>$O%hO9+LoUoILVOVxV&>f|DS zraVlV0lqeQ4I65CZ9^MUko(FEm$fck+89Dr4(V}lGr>u{`IkJ{eW|N$L#^W7z3(6+ zbYT46tm0xo#7Ci_-fh4gz%UE_gt3p;j(hHqm_!6LU=?Z6$3S`~3Yn2n|J8^9k|R#< z;qumydaTC@x-Sl1{9z$<NuWyOdC`IiXb;aBZGyt<vhocb!;T@9jUWFLfKeMM5EKb~ z#)#=INM1r17u0UvLE>>u)aV8_{P_+(>B6Eq?kmJdU&C=~NDja`6+AV-&kD4Keg*uG zN{Yu93Ft=m-=?Z92i{*OUbfxOV-BrsI6biaMe^Ba21Q}Ja~AKMeD`20^@0Am{j~;L zRPVBBCL!R~+oy8r2kE>jb6%P>n%m=AxMBZNbJ>J+Y{1qbQK7B65jDtCe?QQdY<vh) zS!63|PSuO*1B{7P4@8?vmVjAV)}dhg$tg$5IsDm%1M7c*59|H42P=7Z3pz8k_^;G; z(2-VL&$6@?)!_yCh}KY!-Wd$wD@nks&7%@GL*geW24h6S$y_jh?S!X2>bH;RFB*2n zlQOG(3Z%DD%iR+ZP<Jf0BLK?cp=P;DkP1J##tT2B(Wh}8e=qkH?eAYt!LtWdsY9&$ zJKc?vsO!s+#RJlDAK}mje1l%?7jwxH&mUZ9R!IH(Kv#P$c%Uz*@mx$9wExk`rrb@W z^!B|JG0WSmiVdgY=jJ0`G|g|Y<Sgk+ShEVgTmzcFnZ2aH_LWa1l|Vl)Ik_f#h{k>q zVVtSGKj7kdzrnb|-v)x{kDcD6KYem0gZ0kb?BWHzl<y9=A(uH>p0pwX!?@~G2~zb< zzzOI*3b+j0!7`W&S@H$BC7+P_aB9f~0c`0_{vJTN3g+!FKivq>rfhGVI8PaG@BPE- zi#6O*3fN0#cJUp*1E)r_;nwO-y*qx{2yCjNuynv?-D<Z0q51%-fVADJD{dM3+D5F? zZ_okJrPkkFFehMBrO*PvIW1emRdkXA{;9RCBgCE7p+8=N&JG+oaJMOXOLGYr4$eVN z7QOKR*c!JcRN6T-+$*w%i<xn`+G~seM>p#rfj)7wUuOEBJF9aS=w(AP_Tcf^b<{jD z)8+RgO%Zwm5ARXWN)t%lXx|f|w8X9Jdxvs~H*FG$h&P^wI&@bU)i>=-q(4UJJ<uUX zd6M=#k$SmHK%PhoKg^3|JlsK=epxue<G!s8hQxO}R=xK**4F!=mjt`GSpHdLN#4Zo zy4>g|U8?g|Hb%$&0{{rZfi(&{UbiviG$`-@5+tkk#$|xRSu&IjH6cg}V4hiYNH}WW z(=@raUL7}6Of7=Bu+&14pDqFILW~6HNq}C(v*~f+HYbk#^Q&g88HQedFx5|o^!D0& zoNS)1fkYq9hIeRQay|fFE~k!x<V;hfk79)RN^9QB+zMT)2JW+HISKOBx8g4np@T~k zuZKhj2TsPzFqd_ltFZq$Z1GVdLe6jr-SOEoJV|yg^?&a^p4MmbFTmE^n6K1p+*9r= zeZTv4(ZY)VCxd-!rXFNhA_#r$J#H*R(u9)8lY@7zPnxd)y5H%3Q=*;+!1h2HqCdyZ z*9KFTUMr+sV|sVuQ)}~;T7je$*zrqA_!qKG0?j-40B8Gr?1SGW**}ef?F5#J0@%~a zaNNk6^U7@L0T0$Yvq$<I$jbh8H;)aOt%(DB1+(-L<e+DY_*M&xv-z`*)#`*)aZ(IE zVPSUwfPI67TnJO?1dKt!81f{}!mU-wZq0?-E-p?36B~$MWhWWl3E-aU3<<Qz2nabY z2!p~z>qdB(5S0fwB7iRZsy2{ix8Og8SBJ+CO???3wEm5#T3KF5Hd-02UIrbciEcVj z9ue#S1PN`Ma?2`us&NNI*PF)g%nU<6hMTB^bJ!l$b0T9tQ$+p8gSbi*NLJhrTt~&F z0QOK1vW0<*7Q`kuyvohX$DeiK?lzAK&pC1MWPE*ZyEVt8@rtrNB*fW^5}`kECTPCu zwkm^Ig#sZ=eeUwFs!eIyBwmC*Ysrgw?(`-y?&f&61ZL!bt&>AM4U{OUD-!67{6%+} zYu}~N{s~DoG&t0%<jI;6OMrQ&KAZzdnfwjNF(VrUm*%8Im;=IKPyrF7j=;EF<u`9~ zy!91P{q*}@_K+8mVPG8JG61;<fMt{K>gN-&!DKC7m<}L(0uC%l(D2J^S5!n<Z13>| zJmi?(c-;%aCUWLZl0or(nz9W0NP-C9H&6!a;wfyoJ;x|M^^75o5`rt|3kvpc_sji8 zXW3|K8>>z`^+Tt$81YMt01wl>{fD7L?b2)G^kBC&2)TlKCH?!y-K(<s|MPf`FJ7uB zdH%tpn5FU0uLwn<WINkNfWVfC<CXo~#~rnm9oe}oE#1!aKPG@8l2^TmIdstdj97|T zd?-x7K3c0N|Idu;au2nMmW=oLU2{V4)ZYsFndBhUH2$V9pqq(~2Lajsd9~(}U~mJ- zoq8Gtf<;b~Cr!%T7Rk}W_S&a2GYII94-jxXeu80CQL`3A^HmCL=!=68WH)Ow<$Sjv zxK=H5IAYGJURgt4oaBXvAfj4$>?Z;cRys~oLq*L-sDU@|y(C&Vm4GLfygPnF89H&d zndrYU6A;IAVUHK3)BqS>-pGeIxFBx~PD_ZBmN{H}b2J-p8A;vcVRll{LNas&`OnSq zVgOAo+>A#&`)%@z0@tD5JgW(>*PMnVnu3aFcdeqaqg;Ivc6z*p6~(uvWa@V}WN%mC zp#IIph28+t*m2IarW~|DKQ$yCNXM)z_uWe=y{FDbTQW^+U#Lm__WA%g(fTf{TTS}^ zhKy!cit}T2qNbwx5m3Ci@Bv_#oD7eg_3J)Y(ohKUuC^<9Y_o+YB+94qTej2{-v80} zCEGMDL)BY^C0%^qZ9s1Q8@Yy3_t(!j$n9CGBp)wr=5Pmr6|Vx37A|L+r%TUVew2d| z7+-lHTB+dhjrS=Dj~IB|iJX*3J>ukDKQJC<1)3m;<j?ok!-v)wa16oVyVV#%%XL4! z7_qZ0G9WoF9<FN=0ULSGaRi^xZ1V@;;@qy8*^5uTKozMoDuO1U4O@c~Tm&d4BWD0; zl+aw6*@7#_VS&U_UU8!xe1N#!ZPg!X``(vj?efDm1WGTt3h0?S7riAEtZML%7jh;# zurt1O{`rya@Bg2_4fk~$H}yBFp?an`_?O`kG(6eq(<G_mo-hn!!a9Ps=Vx=bGmuA- zFTS0$e(l8#j-P}Os)G4;jaRt=)k|YOfV<A`zrC~mpad8wJ8Ve~QdYkg<|Y8x3x(ql zZ*=jOtgv$a8HfZkO@ag~$h6!Vv0K#UF&LQ<6;YB`_^i)ik7ZpVqspKteAz_Ut+2=# z*QFja+)3h76k**naIO~ZRO<xX28QD!$s5^dvY*0LnZVi3wBN!t(h!SdfzTSBg@APE zaw*<B5Xj@(KtlvvcVn3XTvI{NqOD>J02-Vn(8a2t>Yzr~cLEJb-?t8A%W`;8W{DF3 zi0Ole44Dkeb2IPP;SDXhy2A~+WYFfmu$gp^;Hcxr+SWak;Y0i%j9mDb)LoqEKKvZY zq5$3H#ELjV9|}sW6j(Wn7y{31c>ofhF5}u?PS9il!jPnA`8Xl>Re|Fv0(Sgxt525e zA24C6s0;h$abt(re?0&`Y&{zZ79F8RndaB^2db?u7rp&daFnt<)(<T-LH+toP`^EO zdlY6zprsOt{#|AOW2cxT)Ww@@ZuN+XH{Ga-vtc_pUXA8vM(7p*=Em`KFNKrzC{|&n z@U~j}_()3$<QKoF`iB7lw#gT5(!{-Hn6T(0NEBHbc=Lz>EO?}{@kC@g#eY3?5p3vE zk(!QlCPL=S#+P&eAx0Ylfxe*>pq{v{pw6O%2p|N$)@8XY7S8ob&tF9~4m%Q!b8{;s zAHhTb$p;C(r-5dKV23y8eEXH>TD7g^O8X)EceNt7c>p-(e4OytX9(QgcwDAJ-g{^< zqKxWVl0jU=gN!Xb%XFU_s$%BHF2Ez_*9Dn2(}4{%*+#?NJ%`M+L9T_T17_hP8~m}j z2Q-90<ZpR&W<{7l&jU`(IH6ygn2|eqh+RGO_tY1d)kODEX2ol{_BqAgOKPvKyKQ*- z3O}~%B^Pu4#l}q};{&h3%H_njCG-O#<GY5PbH`zcKqVxk;3x+c_Tlx>s+G-0DG~lV zOYv;M7EAC%EDxuA!!x8`ynePRT)XN3;N%PN&;iz6sQL#CDw@0NUU87OiS-f~W9)zu zMF#JN?I;A`cJTlW0W4BqR8-%Ez!>}x?DPgAG>FD?1l_U7bi)aVW=T(&TZ13$|LQdC zz)+5g$d1JWA)u|nQ-HS9BpUMxy42Lk@m8EHUz!j(*Md(9eq6M`E8EF0jpJS%#<iLi zMk~u_?%D%kFA96OK)7MDGpl4v?HieOME_rbeQvn?0KW}?7+fXLFKW*!BG@E*v?@D7 z583##?vi4+g8gcp1}FAC<Zl^is)RBE8jh~&<~40ZS=!HeZL-4cOFKhgmq?xIw2B^} zoE*i+HzKqp9!NYb>#kqF4^DO~tX?5@K>XaO2k6&#yk3KHl70dOR~pPkc6kWSr_p(i zUKfGySCR+x@5c^$O{_)6o~a<L+%+;#w90jAe8%1jlDzueAVXF&`>@GFH>Dzxl(xa% zBKe0N86OY8VgS%-Y%Rg<p(RuAwkZWIzi@$T@GYMO!gNuK{Yv#=M~z}x(2j+VuYq*8 z(-2KkAp|yoZT|r3yP8$v^%qt%-UL%}e61L|WTb=(I?8jPpMj7|W$3B7|9__C9|}Cs zLxIi<x3q)s9hR=NlwUarTbqKOxP0i3pZ6aaKh=F^JL#>DM#Q<?bs`8UUAT@f8Ftu= z@*oXdWR8^&a*%e+JXwIxAm*X2>LG%2cpwfo&9|p1uYjfwG64gkK<r^Rts!OcSWv-f zC#HS$yWu+`GSO)TIUS{%@RC?P;KmAD)pg=L(II=^^HgqZ<+s{O4MLTQMab7B)$5WK z6-pOjg_UQVn*j)Wj&C+n-bykI`*RqfJp|+9k`pim_7<sqioDKWA%}EPh!^!xZxX{w zpeIQ@2U~8C@;zB1T~7|YI(qy!6^L|gE?o%F0j^SFNYTKzphqXfqG=Y)@tv*Oyx1@w zI5k{+v@<qQW}jFNMHs{H-GEM{;jd@`h>BZhD5Wn00jY#IObHe&AdqA&sf_Q0-C-vg ze(-e->qL1eiB_EtbMH)=S6g3t(Ycih2y#Fm)DJiB-y2tpb?J#HXRqX*?0lKK25CpA zg+Kv=Dm*3cr2@=(8Mo|s9Edc-bg^FLL4)U(nf!tD&#v0u^mv6Yeqp(PV~6<qAa+O? zogW6pCql00s9o20ufR0rY3OgeB{hRso)^q}LLq{pEyZ^?&GWgrlAEqU7$G>858NU! zs~6WIP+9>WS=NJ~UC8jR3gcwNez<-sC+USlK8^46#<<5pX|MN%z>*r>oC^RISJ)-k z-|5)WR_a9w^!x%VK~lIOA*Gm&QRTH%$sO@<+od<)mVC4M@E=Hhxt2pHXSI03;iqej zNaJBnk@es{=;M%~REZrgO&VqMuR}9&9J8%Xt&tcAFdHIM@D%s^LI12O+Uu+r2mnWU z`b5d<%7^E;9~mS`Bd)?-?USzMYoJ`L6vpzRy<yUzqWeC>h1=7Bcn7E$*XDfd90k$> zR+Hg|7qCrMzzqur{M8VAHy7IXb3BODCz4~n_*sJP^2c!w0=i_QW)Ps=@e3bJTAbOh zWn}As@Cyob->R67VRsN>*OF`f2n*Gt3UWuEYS+L$<$AIZH>P@62bI{RN)ef#xFyhb zWl7XWUl3tvda_d19LaQ_6&9#PA<oG9^lEa}?~CHd4fkE2Ze1{e;m%3Fh7ZsG-_J(W zl;>plDb<sj;QGm?9m5~+2c+TJ9Y|1ncD6we>3&@E84p&bv0dGu@`miT{n_@^b;(*v zkcM<V5wb9t)vZ%w0ekCC6kW;4^oBzT{e+kzL>Q82`aXh$RX0a=>bX^L&7a;6p2!%m zS&Bj80e%hoKq_}SbN^IQ4~`bGf&#b!=xIO%MunV49Kb`_a+SN!^UkUO6!dd)Os4Z0 z7*c%4J-NscZN@>cVWjwcDuhgmsovRk@iALMmON>}X+z4b_!Mc7zY?L*g$+Kql4&-~ zj454(gTlT;;t3fpk<zg0ZJQcGE*ks{j!AE=`7lGdk^qSzVV@Zj@3#RlnYcDd!{*S9 z-MR6QS-bakt^e0XGqp<4cpuX5BK7SbQX-vxVraCn76JnB^+s}4FEjPW+$dtVBnmF< z7gp_i6UC*%qb_i$K^KC|PoY5l?*5uY&`n;WAjl;qfbCMrF9IUtoCWa%-m`I;Jh&j5 z>v5LNKkcg*rL9EJ2BD5$_rp8B$j&QbB~Kc`exF_8%%^V{3N;Gec?DAD39{>_PD>C$ zDYspLX|!|^LQa9(XjlSVVHcoiEsb+Ao6-#1$q;bUK!q(lCxEXU?dp_bP6Wb;qJf|7 zB}q8cZ?{%%n_tz1;<<{au_6(`!*g|^1&a`vyJ3!##j`w`eLAIL@7k5BiBT>$5!4p^ zCJ7sk-Q$A7k{IL^X3XzbXc4Ek+G-4~%^td7{#U^)UI*Kf^hmws0m_X7r#?ooliNM4 zZfYCpKPcRtcG;}wUFTVgZ{Urcbq2l6-5bFXw6$AcZ397_WE;Te5+V(EW624H*RUC` zWbL1IO||`?2)jqnJk%vhJg=!9k_LAH<Tczn2<AZ4lgKDgfiP$_vv}(7NidshJcWUP z&wbZ0wABrsh^kVh4s1Dq<O_33bigRW%(Xu|W50%>6LM}(pC_elofDkYcQfaMs)Q-g z7Av50IZMR(A_zx_k#OMmJ{Qpkc|;&2F{fjH)934YOhMJSYRG)TSCZ5d;rJ`QfB-z{ zcnBUfk1HOSA*JjDY;@3gJ$%`y7M}YC5yimJTfBpuu0k_>s|^0ohks`BV?7uBc~gp( z-r{;j`Xx0BoC7_a4}k_8mcgG=<Y4Mn6+<d(G#-5n{d=&bPcWsa{~hd4)XHD`*vWq1 zxUtu@1}PiZg(4yQHZtM!8Lj52aVl3~aE9zHgX$M^{N$zVAu@QJFG9Q(KQ};yWlIm& z2%{Tk^0WcnRo{Hk@S)WkKW<z}!Gmog+2;RXp1r~5fBO?85}=;(1uD5k7gLs|eaV!; za%klEPFzL8ht6n1PMm+-uXZ-fx*N1YKP+MSj+8wCC}wU-+w#^bg;F`lfm~z)Z>I<0 zj<#(fs!SLO8w?F)*%<!KoxsoeO_{DPuc~>Ug&*wC03WGB&iVb3D3F!mpa-5F=NLWf z1If@GXbU`jaK8fRv>f=?#eTpUI^`J|K<0q9$J;p^jDx8VT%mZEfgkVfF{IsZbZ>dk zw}B{v$`9_0tvi=>KN)IIoxO-)Uh5#iV|<|3uxt`43mGdm-?4l3OnaE!ANrRcTy{x% z)fDD06M&AoUHgx#fV==7R=xtXwxHZ=mfNZq{>i|C)khmE1iWk3biX_)lv9Mjaxt#u z2>|I}y(?u|1=@afxvP<EwXu3}c^NkEv^J66vXc?)(y99py(3Wd{u-JWDDmoyec^Sw z%WTsckROEDfUV(<p8Zq%4hv93J=q42d6EUUUgTPGXZr_jx#8R$%~oF;XMz7r=z~l{ zT_!At`WQ}W!{9M@fe80CIFIX(tOky<`O{<05$KWLdhA%|BZJX3pn3q|nFbRUdInfi zm%l`0!`l%j2;%Z+p9)S;>eA+Z2#<Rn*)D*?aeMIeOq>R#;^O^`{4!{kNBhA(8I>3d z8AhM52>Ex2caSGP7SYSo&AmG~CGc=WG=3qPLbZsl^ZOn~Q5WecFrgHpnQFTxlNSA) zR=rNEwffKr=C8&7iU&q5=q?X1Lulp~w;{R~CgiJ>CVht8U}V5P1XMmUIq)|7HU<*O zmc8I>^OB$|w=2|b)Gqxv+slt#*OVkJ#O&#rvxl8()5MNF7AM*vQbkdgos!t0d*KGB zWN9qp!(&@m{5sTr@XpK@&(IFTqJ6yBFG_w>gXw4QOqh^^euMY59QNo9kILPPyY1yF zm7BPa6$)DC-5_|@B!Z?a&j*&1&17_)pQOiCYwl4lq+S$fqlIH;5tH!94UKy7d~?Xf zpn7saB3n<R=7rm@+D9NlOVUB*y3m;U>V8~uJmkag*L&tK12 wcdaoxEeiL1D?X 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%0D$W#V~>#oVYqLs zN{3I~b+pU^o1h5w@T?Ooanpi+;fY-+xCv6C4f{ZMzQkPf55<{0=DGX^3C#9*3JW?v zVm4?C$<L}|qor?@@d7ckPm|AM39mRY;o$p2^s4UBa9Pr=7}-LG4VEtE0=9FvRUwlH zUCRN1uMMf6uc~4%UkOq=u?DV`$I9&%A0Y#eBaMV0djL3Ily<>*GX!A{$yt-({WB$& z?U1<RB=#@&(n$!o3))t<q1f#ci=P9}S|~f#k}S*{sQ|O-KT2r8%zxh}I)e6vq-OE* zd@2#EAE4sgKeHMEEr+zpBup_`dNOqQ2X96ifcfwVDc>weBgKy%|I*t?hW=<~r}G%_ z_8Mz_j#j{3ZfcrkV*vM^>0<{pk@=j(GLTJnT$y7tT(HWqa<+TnJA%`jr$&SDX4d;X zeJ8x_M0neCVY_JnA{y8s=q|&u@DXTDzZA)QVM8`Lsa2!+!6ULT@eI~_35?Ld!%x-F zMGPWEHiw{rafpy0lwB{8LvSIBb}A6Pr2Xm6XB%0}lz0YwXm#i-*iA8(Q+^C+W;y90 zQm(6iWQZ`Q1!`X*Et3C#_XIaesW~+o_6^bU%27i0+$@F!?aZWc?fWl-X6Ta!q~kLE zAqJ(4%?p-uC|nGg2X209vru9HG>#$jJ*7*)VB>^}STg<K<Clo=_Ahbd41j;2JB7;@ zxPQ0AT(gJ-(5vu?AG-;#_TI`Ze-UIF)K+`HH?haCGmIeeA=kOifT*$u|Ax?iL8s?3 zu#}W)Pke0=v^9MZY+kxV%d(LhfN}L7F?F?zxQAE3bP}cU>N=1;KfxJckf}L?f*M3Z zI8$RSOo!G4CGv?Ui-S<C*9hzYs^~nibSa5SVX!Xpi`JYwU#Y@;y!b?3aBE||=@m5_ zG2zXx{*LkXK0Is0<_1mm0c3&G%G?!{Q@qNRFRM8urB`*h<or#|;=0;$Ns`rEJS&ER ztXA9hA2k+mYkQhVaW{C1D+?#CrRN7Uf0n14iSUe#_hGt3dh506awoo+qdTqXk~oUb z#>t@O-IUo$juZdwU9F%sx2q?|7FN2?pL72Uwx%${({e=k`l&RX`IFf2{f%0wuus+X z2#$<i>5vGHg-YWDNM^6S@M^000o15q)5lkcjc?MThY>2!%W7E>8;u)sA@l6#qQTp4 z&P*V(S@;k7U{EmYymkXoy{z6vyxe+OxC>cUbK>ezvqARgpx%;qs~y8y*0W*bYeuAv z4N36^Q?TBZ1e6ht>n_y|bi@RYAzRWCxSlb*BCa1v(7L!6pl;M-Yy~~ib&`PR#AvVQ zPvNcX^XJ?L2ZsT@_#Uz_n2g}E1=((J_T>Om{?BLD1;>K4)7`=RN2f~<-$hDn2t<Wg z^7VFpG1#%XTo!(_T6CD^Ubbty^eK}sW*_hl_qE)z<g?#P(yzF?2C}>Ij@(mL-MWJN zkj%6VeuJtDg`dCEdNz8gyWG(wC6qfJFRXIsnSR<%lus-w*L(h%k~zzVx7cXqaWh^_ z!CTn`W%15TF`TQEWsRu9E4K@_dvclvWvfq=(`{^o=`7===?*!pa+Nw3b2nGT0_d&< z<W@=Te3VDY^0ZMh&W7=NT<~lU*`xE31h(4ktVGj$3T*JqyOY>gDl)ePoI)QGFJs0e zhzSDynfqhlykoGZ$IsJMEHi=jVGMkbWwu#KaUlNaI-v~VFeY-!n==MTV1$P!Y8jv& zkKa#52l7yu6FKTnlk_@51+d)u=CC-|kQ5j&QvCiM!yAya<V09u9_D-yLV~wF_zTdq zxLcMMEPb}M9Cw5Tj&}~=@|pDnnfd3({!&gq0CBR6)+C*51Vyx|jNTRzsM9-O17O8B zkj7l}vq&Vu*et-}Sr1Y?P>=uWg8pkhltVb=k;Cxa=@7VTY3OUy!kEy*`EB4Chg6I5 zM^50eC@f)Gf|igySDYDymW^0nA=yz7qr`kOtqr9|rv2}OP|triOt}0AVbh|GP!J58 zT}6<CZLS4wRAB5k#abu@$^ANfsk-EZdB=!<@HBJfvwQ8}xUo(<vonJV%=`$xLKU-5 zpxp2b;-be}vjC&Ks%&t%i5DCFMsJ)neb)v=n%Ak(8Q+*jko9rEwev5j`W-c8b7&mi z3P!&C<bJ-d2u9yF_}qV34_0hA2~tsGj_k!lBz>Y%L?b<ZBRiPxST|@K3$`j?2CHT) zew6zfhK{grz#f_x+tO5WqrI@Wx|tiyi1*#E`_sT2y;nCt?ZEWNjJ3?0R<h0_;f33( zr7WBkvAKBt9E8+G1O3OJw)_mWvxvewYdw!I&mREa5I;?*bn&^7^#mHc3QdCynT_-Q zcX*OtMA@=;ft9zZ>ZgPqnyF7gy&Wku4#I>hpd_4ZD^!KD_f()1BL>TLpHiC6oq{*e zZ$wUGN*al~<`itK1DK**Eqy$Ku5u1Uszb+Lta!g%C&m~s6~mxdQ`>qdz$x@ofgQEE z-YK~@tXjaLWO7q7Vw7&+v4zun!~UZD*3y|z=H~+}i-LrB^=n*}(U|2%CA#lz<UF^2 z*~v0T9x$JeWi*++`Bn9>FVvXy+@-}KC4AKK`LR5w>vr0sd#2`QtKE$B1-=~KG~%zA zpU`|u79PCci_gX={sDn@rg<FI@r+d~3yGWY(e^@RUjpP@0{&QRNf=!;an|~H!EM6j zLiG(CljGy;W_#P1C;8<{uA5g+a{tZ(ON(yHF~^c)pRV0Xv|hW&X!i1t$NJS~URpLf z)q|<_i@*3*mUw11#?9JSFQ}jE2=C4=cbW*gq40ge-1MeOmb=naAk9me{4pDW@0q&# zitlAOtAbfXnQNGH4>dxr*--zj&d4X@4szbZl^pVFoBp_%)f=KeDDa>j?!De3hh4Kg z)$gRPHU8HI)BA<gjy+}04KMjJQnFn#Lr^6$labj2<czWwpQr*IYStY}a0XW&Fb}*{ z1%nCS&59w=h-PaKY7bJupm5P=oiE=PbP{T3)0Mpef_Qb$P~x2u*i0KknGn_PJkXJw zJxN#V{{bf3bK=Of!{DFcXUDK=U>zCqXgV4krrBr2`&ATd{y@j^4nI7H6Ebh+N2d7( zD>;B0QsH?GKi;-12NZA5Wbo&}gRr2bKW^C3#EmXfkIV*&>?}a6lr|mVHA!b^fJBV5 zD%4~{$$roPbKb`*cC|<~?o(3-4hfgEy7Dif*MG~_S5~yyXb2*EF4(xaQNU&%!ChiF zPM!G;$gs`l)B{1xyYS<(t1~K~!6!5W(cb4!k#<uUygrEm0@yJ&j+A6@QfII9S0xi; z$lc9OUuQ?+e186jepo&i#))KEhO6J%HYx%M92fC&nz?8y+?v@MzA*P3Y4*64{+>lb zZ!zwi1c~af{r4R}6h)sYOeUJ4FfK8%qThuO<v1JHm!J>k?a#`21xi**!wEmo^Px_u z(0~649Kfjun>JUL6X5P5X*ngoN)#)GEmQ()&gP|&T_B1VFEYINkAU~zzPSP5IBU~1 z+M|!0C$nL!e-+XJEggEj2-nP(9Zohh8HzNWbo~sxszTHs%z+24J#G<+tfTOw>)HB4 zE#%lm<I$!yiTm4d>FetkJde1B#1(bOwK5KZx;*$v?V0gNaC|(paDea~{5Uzbg%#P5 zH5LB+b`)e879b1~^qB5{OW1`l&_gAPVH^y{mj03OC~WNc-H&d@bh?k$&NtzKT^rWF zT@UII_?3A}ez#D<mZ|HW59DADcqBh@8i|X~(fJLn(a`m#@&k<o5XM{D+EoPT_>J9A z(5bF2bkD1Lka|qlR`|P*J5SNr<%gx~DXqf=9tlANE#_0{e~bm*I!ZXzSX`r#8JGT4 zY)F}v%Hny_o(SLl1H@u&J{)!yL3E?1*NmNCyqvUf{Sh`vktDk+Hg8wN>+t&>)n(XH zz7@W22csOzYIV1z^BGK*^zvAtMc3Y6MP{ZC3DPV4i?W-37tY;aK8WeP-5FousZJ(s z`DJ)^t8;8n;ou<oMQH?o`<Pz(57zXK@evWZAs6N`-h}0=?-vd2pPw%nRw;^W7cyJy z569eT9j?7N-!7wdEy8D`kyn{a=}b`ZHHxlNA3aJkeQsxRqRYa5bR!&=w68Q*`YVoO zkLum;JNVadrqx)J*Foxj<|o1T_Y@FIa!mn`Sc##oPm`d%j25p?QGyd)&GI9lpP`z- z_V&MCbIH9X<eIGp>H+@#*r$geBl&fo?yufgKY3*OwmrNEp5N7qPa^<lhbtt1P3VaP z`e=m~B%YtMf)<jHNxgM2$Sil`-BHVzu>JaeVE@Jhae-N(DJe7zhAev`=XTF2Se_Az zX8ocB&Esw8_8W}qTFoAE0i8?F4{J4}LbS525j;yYU;MBlwzJbVG|cTa3jOBEssHu; z^sqmHVUnE!Z&BMp^0cWcG$(AMi&DZ6C3Mwmb>_%am6s7y+luF%96CS8(EQ+7C*$F( z#gj#Ur(-VC7(GsB{+#{5Z#8iL4<}c^iD<AYm}grv_B%nH!Rs4l;TW!ypx@-av3-pO zC)sFnjKqQ+VxY&WSx!RW?Cx)y0QTOh;o9j=6rvn-U#BU@8JZ#%<rCQ8zJ&`dJXpi6 zZWI!F{BQkPtl{(@x;l7Zlt+xgKl1`u_JmmfIB=r}oCtP5mj%Q}Ng)D6^n|Y(1)l%s z^l`K<S;fXo&uRa2M@Dy7#D?~{KV%<VJpZkk2kX}O!WI|X0;py|J<gx^BrtS-R8t+| zEui*v6#49{e@z@Qcn9RU3UQ=X*-hX!uMjA*Zc|wPPZ03WB?z8`-u0ig6Z9km%L33D zn4}FdXr<3192@Of-S5GB2gasTJshx_`Hdx_ENBVppqYDSSkD(AFALQHIinPUOYn34 z4N!T3*Q!ikBQb%i>Sr4W(Av$FAx~*X8aZG!lO`&mMrYHZYdbt15fSDEVWpi&q}mB= z^h@^PiwJ^6^t3e01NlB@qtGg38->;JdDqC0tnlq|bS*iuyu2_h1ip*1k_xmR=#O=d z2U(F2{ElK3!~}Ae>S0AV$yY`PA82$wET1Cd>W8Fh^Rw0O&0>?WXay;ekl-Aa^qG6H z1oq6yjm;6e*v-bQs)yE0Ixb^|&o;b@Sg<X;aB+BnZR$TWH7TBl8BD|wCRpkr(=h>K zy5GSI>zKQoARqboiTOJbQW4x3?$ospm`#UmiFysR!IsOwHM}iQ0($|&-IW<aBuaJ( zQ_Fvu2fn}Q2!boJW7M@!iiAq*QxzaP7mzrUzpN*ETv0m$kw*<2#E4XM>(T>JYuG}A z^`WHlyN2{#Z+T<}I<AHE#X1!*riW+cHupg;%+F81yrH$4QcvuA4s>2}HVHwhD1Zl@ z_W(BDmUo83#P2bF&cNSVD)SH2rz1aJwM?4nkFvgn<CqLT1jl>sqm|~9A^kbAqRvOF zx6@n)m03jCwkGcJCE`8g)rs<sc@e35yi_cpJRNDs9Az2Gz`xVHJ9Dx2Rpp<O3hl7m zri2Sg0%D{D%kwV{4=<<{$EaR&5BmbdoPK%mEv>Rpaj#1^{Co3@nli{I;#X>H?)iJY z!o9jxlJ@(Zz>nqYLfK`{IjcAhEd{iz%Q>GuK78jD6h7zm{k~i0#d_h0FCRus21*T4 zfw;2tlr!PJ@chdKgWWdfq#9FRoi@6-8~5`1!R>S(lv{S!!L&Pf%u6><mV%*j1yQ~V zqZzw6iO08BB}VUY=8R<H`ciR^H?!Z1A15Z&a#lHz>of0+7^?P*>Q7Jf@BbX48%`Xo z@%mTGy9<gzF9(N>GL(1WrrcSPb?%_RzH-kwHxy<MB9qjmJN$JgHiE5g!zgHd*-jla z<^IXVl>iw8FL)W{PJBC3^DOEGEO3(He+<VaY00q;5aWk+fn*9cN+1oFg%u57411{2 z5PI;;NjUk?o&oLkG4S=)kpf&p9hinMKt5P>TT@k<)v_W4(SDb}vg;6aFxq=9U=DQM z7kA5D0hg?rv{sKw0&j6$3Ndxc9x}<&LX4lt8u2m!U^6QP3cnR>8vFUt7c_c8KaFn6 z?Q6PQPcGA;z3ix&Tz(1vI&b{{6HWjUgLvsz8Wf4fLc(!?PqR6((Vs06!ay?`9NRt& zu*_B;r`t3PMIQ)F;DN>E9-i~u=0xyZ?B=4Oz-fov@9_K1ScUAIH^1kNk}V5l;B$az zuTZa4=z64)X2sLjQOmS0-{IzgnnRlx42ZbVSZNQ4qAuW+zGWhzL#qwESVJ+CI@AXP zjBw?jon=5saT3uX=$O`21Q#z>dgm@sX&h$;K@KG=kvRZvvLo>3O4;EybYT{&f!MjT zDv)Em4Au}bRhS#*fmZ)N_%Ja(5n;&OjZ>Hb2+S?UZ=Pds$qw;$#YRKhWB-S?(9}g< zTfPJIDDC-am^*Pm@I<%x3xo(G8&iUhmn@NnD$XS!!=8C<GQWXdueK(IX>J_=|8kX% zTFr=GI+`{Fpzu#(4;{>2N=v$;miv%E-J!=&_uBEmGFvK6l9LcbrPlMfK-<lgOs*_9 zSGouIvUAYUvt_=%fFQIFwg?b5@X%7@)qO4HSXA}c(?&{pPB@Q06`;XA?ED~`AVGxD zAA+yxo@gjA8KL)z128QgpDQz5j!06_x+KnFY*baF#V;8>Il?Y8V?0f%y&z@oGus;z zrf<?1{ovNN-p~Z<Jz*-OP*zvWAsuUK5y<iRv2yaNd8JT<pyA#^vXLUmuQF;H+UF{9 z)4jtfg(BBu-kqK1Bx7;67xRfUR@MBlyFdH)Q2nXE9d(vmM~iWq)c5@*-%^b9A~}k9 z6Zj{retk&j>bqF&pO;fC#|he}g^SJn?MpA6^Chb37AV?MYm<t<_j^=(y-m4F4IY0L zp013#>t7zhJGl8H=~6gLFxl7(QL+B_7xpd%UEKvA)4?Nk>k!xGlJs}n{XV{$h_i++ z`8|D31E0FL&-odzr9Yz3ZO&Odo}m{J$ED{jKVvK>f3aIqti;)ft2l<SbSTixGudny zH+FX~$Yrc#Gw}VB3!D@t8(spH%SET&4?E27m%e53Ev^zMGW==ezN+;Eb&{<J5Z6no zzgP;tgDBA`)n)($xZXiR1(%=|J(GXq;W*@z{9aA~xxjo^y{tW9297Z==-}cFjd%J$ zCZD(jBEn(jT&6mCY<%iet_A21$S)sF9|xxpob-2TQhb-(_`uJUSa4AK|7`F=vi1Z( z5!b(ZO=vv&$X^R<?(^z6lWqb!Euk0m7N}+&O7)&^*}(P6tV_*j_Yfg*SK|GpHJ_2y zMP#~8FN#Q@#%c+q*58Kzr|^cJ-wRnjp9i86lQ<D<VNKq9j!u+puH%)?ko^W2offR3 z&UK!GPi11`p5+6mFv+L}Kma~-`TTI9q$TZX!4+3xHh->fh7@aPf2emZj2%(Eb}uCr z2$S!zpnR}LLdCJ0=O?d{;&&h4BPB$zlO)n^lA=`#RxUi7-vl3h71uh1=|s_%hPVmO z!k(G$U0S2iT0ApFXx$&4djaC{yg?J0<!6>MzO4uH;3TYeCam-R5^h9Y_T~hS!5dn6 z$-xUw&st`3{->f+hn3b2Mx^+>)o@OPmXL>Vocti<-#LgQ#n-<;&;NnhXe<Rf-kvQ9 zI&@hDH%hkTcK8J=Y#lGw&E3!Pi!{RZgsHL8<IU2juw%q>x%(6`y7AQAij5rj_Nsj& zc5;i~-+=uL8XxoDtH0FRlRyFkMa|Ygbzz4b#1@z$dqNNrKCFpg-pz)P;+l~i!|#g7 zWY6xMQ{_#p;G+>|RH#j7595Z7Fg}>lIAWw)8e@4=HX#_|Zr(x1oq=iMIPM1U?-R5F zHkL?%iR%gzTIO~_)!^KS2$swrEGIj`Hh(<2-3lqsU1gwZ+|A&7hf~oAH;qhic8I%K zL{)r34yko!rlHK*V{6hH<+#WF#I@wy&3(NgWRr7Jx%rx1QCrtvL1vD`7&)cS6q7sA zBB}8?F&4WGukZL6K4`Ly<6#|Si;z)#Zi;-q`Q3-K&VlT=RpRWyW=QMbgRhLYQ(Vpv z8Ovo&2$%GxT1O=6-P6i=apjgzC^J-T@3ADJ4z|Bm84p`KyA$>_wB5_D<NAfpe)uZB z0)WP9TX*@tb0J_rlMo!~1l=B)!6azJ<Vx8}kGZ59)I;haI`8+1Bl$45lNHkUltKM~ z8;WM;h6gTlL<F-z1@npRfO+ltX`UKiFoN=*S&4iF6rA<zEgB@$2U&)PTH0k!g$BJ? zgtQRXW^V`0EJre3KLoy@0!6b7t&yWCJK~AV(I^5uPwLpo21&%=#)@_uCHVDXH6R#F zN--Me1W*^7x1Gs6=!yeC$#`SwNp|c<uFrcPh`^>JL-hVSEtX6pGV+~>@hE5+g>DzP zU;a-Sh54BIG4D^+<TSKtnV7^Ms{p~z9xQJB`pj!4mCI56CO<QtVR(KW1hiGG)8Ay= zD5#|O3QD91IC<){^W3!YwJeR~8`rLM9`L<Oy^gb_vlWPY)wbCtH0E&QL1?{6$jYt0 z6FP4?JuXHk=Nb>2?j9OP?dHrFx{DS4tgn_AdRxGocuj{qk*ojyRK5C_mD4>X$uSqj zcnvM0+8gG(MDt1Ui9AHH3hAvd9mmg(fL_dp(zL0L5^HH@5P2PjdL>b_jD<5upRI}Q z%yG1e)%~gTYi`KKXa6F9A#g&GGkyb6(^8N!(m)!aZ2Sy4%Ht|y4GTe2p=Y_#YkYT3 z`BbxF!SOa6(;$!ap=FmNg}2|x#$FgjD49kxZ=XT9a)`5EG6TeX(kH&r8_<RzMq^wo z#H3`*gWBoYi6KfScI;w|jN)%nJcI+V{~M|J_xU-8^m$fO4U)Wt%&}11n|LUUszkxk ztxvr4O92Wf<H&oH?g=9$&F${Hz*Wcl>hS-8`$kEtL}B4<A#ku`-xZgl?TFE~ZO0=& zL7>o@^)NrOoc;VU@D7WKJptiog-G#|FhVK|KG-QeD&mH|#ci~msGXOmIKfXWlx60B zqHvQ4dVE&e=Q0RpNkeIS?+VhV<1V${4cyM#XI~=qmp?3v1?DaeuD<*$hIQ-EVGgAE zbq;=Ii39|<e`$2|A%b%Yg|wo<G3`O(|3r8E8;DvWArw<#mG+CQDazkyz@F?iHSwKl zfTst|%Wq#{@e*wZFPC7Y=Qw5rc%z~lnUoDY*x<5^-*w#zVE<Y<Hhk^Asnzn)r!ETP z4jYF&KQYtsOD}+M7x&Kj;B5_41Sz82^5gvLF9yg?NS6x)l6Klr-{Ydh3$yRQe{wk% z53bJS7DGv78bwGp6T*FmDPDE@$7PxOaLcMhTX_c6oY?^$+_lm_c^rk{jLbDEp<7`z z%XQ+4gv+X+lY}s~_wDXT->V3|CkGr5j`&F<FbBr7@oVdZ?WMZw1_E(sn4ctj74hK% zt=p${?;al0EE?$#RH5}h+sB<J$9#8EbBn|w`+0fZsI^S6H)PQqH>$GH<x79b-O_SR zxm{Aw|6y;e%7?5U53Ul;7&Cr&{`CF+*H)gYIghp-CgqPdSLxgzNs9H}<7?Umc_Q7F zU2BHAC;2f=Q8wD6a!PbHvtPAL@ApRD%55M1H8mjp8y)q8VZq~KC0B{}jurPvdh8QF zI}DpO_X2~l7zE<odPkn#VY7EB>UlX=r2S^=Q?1+UU$dhUj9u6(<3Gd7QK2S!-I(Bg zHc=ac_+O?rY>$;T?g?!vZn|-$)#RvVPWQY`yMy`Ty1S)!ugS8enYB}>6?yB+!ZC^? znTm3Cv-gmxWL{m0>bH_Q-b+`gSJZP1Qi(<yLm!<pxHw%#m2RUvI%l%6cJ_|S8UN!^ zA%+KuZ0a^kB2VJ^`U4q$24o2;1$_^*$k>`T(;<Ma#he^pLiLM${T?ZTo3-0`fZKx9 zJ{GZjP=FA826X^#$q-*vESK?u?~P4u{X;d%>3ST<TKL0CY^y1;!JO_=Shw)&EP~uH zfmFPpH{k-rkw?VBCIsSrXs}~n3&nqLi`<|<n!!Xi%ZV-;8luR`=4MB$JSehfLYrL< zGda{+SU{9F6$A1<MI#*THiCRPgD(`YmP=6zx4zWFbu;~1m&-F5vLI|)K`cvNm7UM4 zs6X1MujWFCu^x21bXCITzr@YII(P?4v~9&_tLf@$khQo6v06YnS3DcX@R7}W!dZX& z{#yn>CEVq=N$9d8QPt66`gzBmQlUfSqdlcIK^RslOw6Dz4N*`M!s6|hj_P)3(x2l; zd~Fw@SlnN^64?P#N0dwT5&}s&n@m>gst7ofK%$eZ&h$Hy^-I|R>^@R1oIL;JBIx7{ zK2tGXt^r8)YxndMxOSN9BGM>wk}GJy`ZziY5rf=yN(qn`CoZ358tpIJ`oz%Y|IQ+N ze~`%w+AlpK-dw+g;5X=eaAN{dAn27-xOzfNCyE;2-KvmB1Ink%U?|%H8?SqIT{tAT z$QLjkEXz9XLomW#kAn8j(?$rA+I$y^RQwHG(vA3uLIv7vh|5CF69yCZEn`3#pn6Ge zKq*X7qv$lFLc?#b`yC172F0U|xM)mSI@`q^n6gD16ek~6KrEH)S-ydhf;PDFsC>Jh zfMA6`<wXPYq%%L(4c!AcEC~w{Gp9uHkH=scc@hHqoBq5VcGLx;@Kj{#g?({n%a;an z9aOX;Syd&+_qaw$KL;wFw0IbkMu~SGI-m8zl(d`QKeT4m!u^5h-S;Is`kpLr?`#b! zYm}+8N1oPI_4t0c|22}m(z$F=;I%~|yWZn?R@1XH#%<OOC1PavMlH|J8z<lJFt(vm znin?8bww*x{I#Xe_sQ4m(lLp<01ZT;tWxfc)b2|Lm(D%5o|E$}mSlNzT+FGEZY0Gl zWu*60#!Iu64-a#EM^77Wp9`SKM-*tw^&L|dc9Q<yN=jj^iZ<iRB+Cz%WS+SfRLqq@ zZr1xQL#xxf{aG$U<^h2u!b{S1JkI`Y)bvwTQQCEG@<g4RM&$g|_~zIFSMU6`FTZOd zcc!93;!$-KG#=>H>ssScI-BK|<Q9TIijppP+60GNbjN$}vHR-2SqregAAM?&Zv0_H zjK=h_$I4uTSH`T9%!Gx_va}SJuDx(>(YZ=%!w+^Us;~NOQ0S!i-aQDOg}f2E8np>o z2+asy)GNAX1)4`5^;OLAdr%pEgeZqU0?!{N{5oDs6IM>s6XD(GKuZZiu0-?Tu%G|P zh8eIvdJ&AzK9-sxd*_j?r|E`g5+L+y>i1q9B%>u;KIs7q{KKRi2TRcZ+wzZ#e}Pbz zj2FD$jH^pNt^<!JkN`&UJJwWPgWCI$N}vU)1ezu?k$f_LK7BoUXIao<umR}5%GMBC zd_C*Eef#xK;OTcJHj+9)FE~Yl-p;GDp+5DK8?lk}NXNsR!%8P1(WFX=HRQ^z4=21r zCI=y18P}?;`*Gz1L}*>!wuk>mJU{hoCBGPI$L{kDU1V>dVJN3Ki>(#d$G=WTEeR7^ zQtT4y2=TJ5nt1*UvZuQ7Fv28f-HV<F*#X<pyZ-*0X&)%(#3E+^gt?;<BCfj$_PEIS z8U7@Op+xwwGH>X$;zUUa7q}r{$q6&1#q|S(yD5?W7s$GGE~eAM-2T5w1e_Dc^k(_7 zV=MFFAR<?+%q*^ci{OT3)ys(8pOX`U<C_)V^^!bD0Tkz8b|Uxsvsg?exMV*mx-A@~ z`R+UbXUgm?6A;oex++VK-na|$B7SoHxHuvLIXGUl#o<xz-A1Z=)T;}E-VlL9bJ<Y) zz(s$^Bt!~!g0-02{sbC{@C{epFg1R-4Zbf+qCWl_ZLlpfjHFd5);oc^sUo>LT>OPp z4FnJpSUQaSmLLx$>CXMg6_1Q>jCNOC&t1ab&Y95M`|UWg=RzLOd|TOSlKnh`Y%-<b zv$7#!Wl#DC1T7XJT_4Ym{5ci-n{zoX>~?Rn$%rg@wf9D2bLV^{5zzJgORx)6bajI^ z41~mllN5it4Ro3yP^TPU9RfZHw^!6PC!i3RJwbW<!?t4s9SmFB))puS1#qD{pyqFA z=&mp0O1YtmaFuxF`#vEj_$s()BGVj)TpuiuBSzgJUkzIPW`5WhzWl0%2~t{@T@hvJ z&xYg5AnGFnrS@iTZ0M*egjog4*mFb#Abo_JtLkv(-rVj`kv6a^zxNj5aH~AwgfYXr zD`xu5L9z&a7AUAlp0A(y)tZsS{w@#MNrj}G^E#ya1L==iO8U5XZEVhrsjqy5Esm=c z(wmymZ?z(*KHbOETxl9$b-1<l<%t8IJsUIS;ZMCw=L`mQD&9vEx|(NMtjwR>9}vun z%<q*FY70md<UJjr%qz<19QoZU=<WPYQEQ<JvD2zm#hYKI9&Ya?r5&3~ijJi}r+Oei zV0F2-OXR$(iM33q-sy*G@vWV1rh{tOkLQ{{9qu(p9moqYz9nbd-6DSL_YIf(PTatZ zU43TxSIykR$dyOJr-N_k@)pyMisPcrcnXN8=2ccRr;*;iue4ZIaA;oe&cW=29LKp# zpApnz&1%YbE4i;MIx5VhXQr*!Jy(nNht6ylmM{iAUKr_Nw>F9w$*X@Kv+oPmCNk5! zGSJxBilM(;`<g<jPMcc+!Jk>Ps4Nyuu^n|Xbe?72{30I;R5xCmnX-0szfsk>%J;%Y z#_P^t7ZdMW^2MJ*nt1^<KrP3jme2QwpAq7h0)}9g2mAD5oJZ_2>}7hq#pg${7v?k& z*{V(x*~!=0F;k2{gJ#T2{{~3A;g*OGprK-%E?>4~dZ7jX!?%OtyeEUGoLEzXlYPHA zcKc&`&x`-PrAG%7pbPK6w^r&eu{inwUMi6aUwIUDLk(TU3l^*no0Gw<+(V!iN`xWW zPlf1hIHWGd;TA3yh)jJYLN_80R>2Wa9pL+w4*mbQ`pU4V-tFx@bT@*8N=OPw3PTOu z4I&^QB_W-Pl(Zlq0@5(j9TEzXQi{YNUD7QjAt3QS<L{jJob&%?T*}PePpoyXJCv@* zso5$TC7FUQODzE8Kiv*Av-`E>>mD#5oLx8acW0FaJbw(-L7N-5)RD4g7Y6DH00bEk zIRQ-~K>=F|I^Q;K02x%^;EUKuKr$;@c|hv@l^@)()93add-go|$AHK+CV1a%!uM4O zXd^Z|Pq*cvNOh;jWH)eW0NenKZ0zU35~r10DuIkAx7hyEIDvxQiw!-6f|CE#{>%Vt zJ%O#o<Y4<}2_X6{-G5>xwb~8_D!Gpw=5^}88JOPOlfZH#hYnmWA1IcAe=?6@(F(39 zDMBe_U7`mAm|ntT`Pes{z#9S_+Ng@#S5H)TND-vL`i#e*bHYIybT7RCFAWFDZjhIz zO@o743LggoV>_MwS^x=W1EpMDn;({hwWutps?Kso_CntQ1>H1YcnnF_PEV-W>k05K zgN`Aeq1S;?!#jYm+0N@x%LS{kL_t%W<9HT@EoGN0zx^kC!qo59X6aKZ<Z$sF2AcXu z@+NBe=`bDo&4jJr>?!F*94&Rfu;0GTHIN}yA)9>5rAuSXC|j@Agzbraa&(%&5gN0n z6KI3k{EM|I{kzag14-f&`FSDQT8giM&v{)9l`)rYJLFVN75nK+zTZ3}uK?58^)_SK ztgpJ9U!ske>qzvzak;OJh&<{+O=h$f=!LId=G-mhZ~>H*Fbgkxwfu#eKX;Rly5n$r zqfhPIVdl6<VO>ErWv7Gy!Fi8i*HKR5HI`b^Dl{wp()zYKAa^Wuyl5-xW!p)Q$-Iif zi!h<n7C%;`d}UY4`vX<&E>!J+U+7dj3!+9TsRqZ9UxD}QjQWtwh7N9tsXSMvCDm5G zXnFPkYh7ec$@sHQa*N~=CSB6xZIOyNO>(ga_HTpuI<_jBnHlQTW}m*;-?gl6yMEgo z6M4NXq?3TUh5B!5Ute3$2F8}`yJv(5afqJ=!F`E{2+hgW0sbW3_lxl3s-(f9fO`Pn z-%PDUU%6x~RO>n*oP(B9QqXkG5CSD_TI?PjCnSl5{3CFEF70_TplLjz1&us#b0!X) zd1j{ydR{<FW%b6qCz%aOQLCp4rCZBTnwJ7$`iCf310Yzj4RCec-WdntC@%Szted^B zE{Va7`Od<l==uq9?*G}!PLKwwZ)U{dKJXxHoW*h??g~Dd1x1lT+<=Jd)-LeTCt)d= zU2=rraHRyPp|Uzr;H1jgatD&6L0maLxWRz%!CQR>3`ZLWP5wOkJp>*8?pe-*e5==M zKo!9fl*Jmd5ls^W+?^^YkDmZwXll}gC%@gyM-~|RyLO6$y|NWulRhM%2WiZw02``K zAYar7>JyS6obo3_n2amDiUocSr8X2ykzNfRX!nhOk6tgnKyXF?023mt;7g8nD}l!k z$#(34?PEvf?nmyRu{3$fqGDIT@^4A6@yZo`ZUQi<=0sjp12Bd8H5BmUEe2{s)s?2a zq9zJx_lp5w0sS2QhAzBpp>_SUtz1)SaMpnwD;|XJv(8F1rqY-j4j|y%m?Xt};_N{M z^oo4r&AAu;;5ZK3WM?UO7cJEQ$Q5fUx%jzm@h|OwCQaqV!>A!4S3$-{c9`6>awb#H z_jiThv~}jMzG)ez>J&1)O3z?k^$bS2QTY&k{3Z7^mP`Fds0O0Es9n94>9gSQE1{B3 zQ6f`ovqI_X^17|6?-Oc@R4JaVKHqKrU3!bv=$3{k-kG9)x!+`{&nm6q{V&5*2^a9l zU^Q8x?{ebGjS(~9u7)RxaUmQ*xt6E*+4Af;bu{E~4v_a9iKH``2O>R%-JR*4yup;` zv*?+hF1}nNn-_Xlqvf!d*HzH@2zAEI%^I`PuWQd(@FIzYPjkT~+eh%jgp0z{wZkPD zBAjynmvJb8dFQ8mtke1s<ENNw!uKnWB}uM(y9kRsDBbw--V)jOYP>9)VDae(^Vveq zgb{@`d;S0+N0Dy-f{zNx19Guv!=WX*ORIX7iWeJ>jvNk~PIW7mRI4L*Jm*A#)IG)a zDS$OQ=}+ie8e67-qptMAyYrNiJCDdfoGoY(^RGf}9P9x}rka}1_?<&=78at16>h(i zAr9=qufYS1dX%2KLX7)5Wf2%C0H;;ZT$mbOi$HKd{$}X85;%Er4Uf`2apYj@fNGp@ z(tnHbhp!4ac-Q^@C=BKC^EGp<$^uGup?#)RnoKvb1ZmLNa)iX<eU+Q|$c3vQ!t@7Q z(_6XEoA$fup8$iyWfDa0LW&fgpOL8>HVUc)Cplb+>aRD}-+~vY=t?>O5IegpTPjz% zLeD>B=`gspw>*=q8G9UT9Poi5eesPnB_c#a3Cz~)V0O>1vAZ$!{BZ^rRJ%<FBtJBL zXc|`5{=n?cv0APM5=2Xn?t|Qn>SjYv!DqH4jld*fEX=dd+wUtb3>Cki?oKVdeT&nJ z2LdIXb5e~QEgY7dJhTQ}lPMa|v?hOBs8NvOa1|Rl2#kLFX`UyxECHdc0NQFX%2=mD zZQZX1Af4!nFm_&a)s#Q^mjuvyN9N)TyeZiSm*G^{L)uC$KqjphzYL!YZ5?GAucQG6 z2mo_@b!?|fBgD|72lc1_e;L|8o%}8y0&}J9O|4ND-+Pe2DQR^TA&I$8l)eT*<#-Rq zg+JwQ-2=9itT?aT_);2EfsmKS(5{oz7XeAW6jxMU2UZ&UI<R$;ps_c#^?!UO{sIJG zf;xA(GL4PYf+5)ro9e&h4(tP0ViF`%f=}!{aI}8gYXo+;FVm{5JZ8uc2O&}TMZ|4I z-B^H>&>IE{u*Cjz#ZT-E%Kg`sKY)aVi@HjG;^wqUWI(|G!5@J0lYvE2x6(w0W(~n{ zNG9SApw(`*@H%f=hF(Yo;p~|bA+JYIjxh3uQd1F!FTsQoUDb;j4+6x2thp`&hR`~b zPpCi{09~`D>2+{g5+DR~A1Ce#<%Mw)B5s0C%pI|Vhv>1EPHesS_TkhVw!Q^GdoVHq zebZpB#th@bU-^JQ%~;BviGePrLO5qJtHpu}FvY+TO3S75tsp*gv}XcPK3F1t&9ifh zVY(f{gu1(c4{GdMunwH1txswsYie;Yi`5_`?<*H5*@`!Ri7xd`#H$P4`8Zv=_4asO z&A!Mv?}PiNYh_|Zlx8&V+V{ipwkb$lw-XqAr@k`2@&58=N=xlq`hm5AsdeV^H`T<x zR*X<fn>6rj*?NCIm2;9>=_1oWtO<~%RYB@SC#B)g0&G$KHH}y<zR5Wwxri!3JIj#f z0WsH~Xvom~ZUJ1~?b+sW-t#U?UX4ucBA140#Z+;vVGCLn-?Uf!HU)m-JWPb$PmaFH z_e~ZF_Z99rlV5TH2gTi-sLM<|t*y1@<>)5q+dm`NPCkuVrGAXde7GCp;pyr6WzXN> zy8Fj`a|{4dKg%(4va5lNMSi@#r!ySg8@j1LNiBf?PQ`PmxN{=GU>2xAC}6Rwn_31X zBef~S8WRb^29Ad!!!sepm>Fre%f5=va=ag!<QlLn{@so)4*JqXUcjLdUrws8kNq@< z0jcx4i0F&B`t-aPT?|15k~Kt#B~hMh$s!ut6#!sML-G`On1jUWIJViGQVhF@s|?I( z^IHaxFE^Aa`{vq)>MojN0KlhhUqCFs97w4}9W-OCtKj%^L9-Sp0Cr1fv!I#$IQ~A6 zF_YC=!p7ClUI57->IJS5UNu8@qV%E(&7VzyLtu9*06-X6MO|ElTYo*gTyHpU_W)FY z&P?#ftz+*w8$zf7fkzWoEAT(_{xdo#jXp?QqEzx4b$CArC$S~QSpV?Dmr(U3?Ub>( z3y73Z^vVw}dcFfVjH-(aAc16PT^Mk&#G{gT#3C=i6ac6+R`jnt9uOd0u#w}|w<M^8 zoDHVpaF?HBf=wU0e%cB<yb93K4fuTv?Q8;+CxYwymU+8inJYuv1iM1<4j+0zVoj}) zgId1auRe(GYI%6yVZa>>wWfhX#JV)Ojvu}c3Ga+15Y&u5!?h+BXlH?}(W3z=TEqu* z@r1t9L0b)S6;K3VY64hi-X63#L{2bA>!sj!Nx+gQmJAugq7nz%p?NE7u5-#igAYvE zfh#j#q`lYKhQ|&g;>jhw0>{9`keVi-l{EsBu-swLd)>%u10*K`gjU5JGyG&F-_O}v zXw-*L@*YsI2MFEHd;%!!=w}+@m6Y`tQrsT!E9DuKrxF23Z_i<W3FQeTaqe>%3ad{3 zt@`aiz@FMdF0{J+=BB@mVHab#0^EK_q=HtPegMvtToqB1JZ8$2(>|`1BIPcZ%&>DM zc@C%Nt4T$B&&PEV69<e_-qtcpM&eJmN3cEgziWKIxL;&Y>MeQlE8#Wiq9|RmqrNca zHv|;36CqVBg+Hg?BRr9yagAYI-f{V1JWpED6nhrtEs>##9*LM&yWjX)Ss7WB?)NEm z-H3Nq&8JRf+9?-S0**)x{Iu1pzWFh<`0w%ARV`(B9?;pt&C+o^SM52o?t3JT7g*#L z(+?Br_-Vvq`~L<8GEO#^y{Q~tUoG|RD97Fm2=hDE9>Zj<!|gR$#19&LU*A(<@h=1^ zE{@_(jMvzR^|Fp(P2@tDXL+(~iNc?rXiTIT3(9v$^y5(B(nO?}`bhxir~T61U<^Oz z&n-Q8g;-;3`fMm3UN_3x*Iu#!OWM+|*{6);l-z7fRw&|<d8DBqs0#*v1^md_tcNsb zM%4nhWf7SnIc}xD$Bj654s34UJxOvF^BK;0*+QOtcZ*v-<Tb-vJ&DCr5N=bj3#=;i zh|1{xm<Z!*q`5&(_kc}Xd7(wsR?pLi>nV{S&^{7Kkb9n;dcviImUUa_fitwG5Rcza zcfr3c-8&K7kUM+@V7UOtkYSqaSLx@;Tg#SU&1bq`A`Rc`sJ0qX2bt*&g05ggZ*kT# z5H$Ay#3QbZ-NsJXDgnL~LGgF9KoUr;v*{{xhJ78FN5I=Ofk%<u8;oH63JxP8<k$ai zX8$i>4GbWPa3{Ff9u#XFbUQ0_01yBE$(wwohp25zI4D)OwwlV~lb<bvx?D{D$vF}O zRjs6OzP4wFWk#MuTyVk-`R@W3)<TlbKXaz15rA-h0}B<h{)`W5&XNHfEX^~UtvRC) zFmx5cnB-_%?Vv`0;KM}uca++AnGzwCmQ*^}>`HtauYUpwF0CwRZt_{}NiEb$_)QTg zLq?8C5aP)O;v&c2)BdYKLL+u|21!6pL6qwz31wC&M?!RC(HM4A>3q>?A6Pi(F;#%c zzs6T2JqPvYbO%Hd7$*|bZ>wu3m#qDO9p;%N!sS^iP#wU;-$34LKs@@=1%|c&#pqeX zMQwI@e!lOyS#wkUv;;t(xXbl`T<XgUNy3nscVchd5cmBn0-k6oq;UBjcU>3q1v8rC z`wsSEn833IPJ%@Pd+AJHb`E-SLLiwBJW}Z+SKw)%yI*L^Gz9ST`InqQ0Y{^TFPgS* z?WiF8#$T-MGH^*mvnJO4CMI_teHH8Z1V%zy;8yf~;p+~KbcdafLCwoJHOy?cvJ34{ zex%nGixR(ER*RJJsg}YeVmU5bp7AM3^GKU=t3-qLH#Rtp-wCU=F2TS_qEHJxNG2gz ztW&LH_S7@OSA1*}R8q|X;zlerC>sOuZp3H~n4j`?M*H#v8W?<i%N#VU_Q3ImPR_-a z`U5piL7Vm;-$KXY;f*8g8M$>j%syi(FZ5{X^=)&K1uUe`dlT%GY+TJ^WrR0HmGw%# zsiLIXpq}}Xe|j)5trnA9FggM10kPqQa%w~enK3?cU;D`&b%T^uB(Liwut4YSQtoKC zzq1R9Qs-?=&tzRbpoGLi`A=+SSgsj;G6B5NCy->Uxbe#FUN!~_tXRU20RAz-uv3j@ zyRtI5Y+zDN0|#&+(OEpK_M55P(#KJPomGEqLukr>A?|_+8wJ<+!5K7$yv=*{(nKQC zWE(`%BdZTTVj^`SK8BpRclKyb1DR#e00Ht;@!#EJGj)*2sXnW*p0QwO*%UJB3DZrR z&+u{9*VRdNf_YoRLz2j?*J|2oU!K$n)+A8wPLV~H?k-IX#dj@q!vIc^sm;m$2dXsq ztQpq!(nOD{dnDF)ZAeh}$qUt2X&R%M$GjYh21)k6)Ju%mnDoOK40lQe;ws!7dK+0g zc-I}|^*KZA!h~JLBh*EieszuBWjVCf+srHe<eI_x5kj!sQ3TbPft+aU^bcUs+(1im z=Pq5?oHEeEe!`2eSMIo69ReeG-dRs7Tn0u{F32BP-Gni=&b_{7=GX<eQKnEDAZ>s} z?Jo?XBgXWMeXU)sy1>lNj~rZxNuUis<ayHFzopqO$p$L>OdNr&!{(IRm|YVD2+BV< zAf#z!$0xy(khjEPt<*vFSJNKbSk4XklTn&oYE@FD|BE7A-~njtJtyvas|wHXeyFWP z=vWy9jSRQ5Q6W4cEogy2eRc($jv4a|8F+~-i+&HF?fFM^3H@Cv!$E-X1giXvF!1-d z1Of0n<+ih6>gZ4j?2e&BUqBNAH4s_Qj+$>oyz(UQ79mHJ+9~(%ws35QY`FD=0kK<> z44BA`4o7F#J&V<B6g|iQx+u4Dhm#2S^L7mkOA%?Z^aqT<=@JMM`<?-jKeyPIk7)q! z5ZW>lJn0|^8t>7d4f`)(1Q=yKmM;KH5eN0<9&#djkMQJsMZR&>RNGD9T~}B3Xr@u0 zz_A_B7bEO43!*Y2t(F0!YK}B#-5>5+1s#G#f8#veLS;8KI2c`efKKnj;sAQ#&Cw$C zzK_4;%laW$4zim7QH`a3JZ}LAJd<S10pMG%^BB%k-WGd)9!qu|^iO6p8j#Srt0@nV zNJb92F1zyVnd2gsYJn;Cy&=mb@}Jc9w=^-<f%TA;J;mn<*a&uhPem4&TG+Jl<OKaf zib8Yy*sHCr>+H2FzWc_pHeTJHuRgiZrhV@ZO?)x3OB_#isT<Lg=h0}0C=3$ye?lQk zLp&yL`yz#1+Z1GGUXUa{wtVC<5yEU~1+)RuR15a44tQ<ZKnIrU6&h4hH-X@XSE;a0 z*+<DXGtFf-9o=KbLfQ-N4@_Mf3R5%1VB}1k$oAq|!1^srZYlLcn>ajWh`(+n@k=0` zJPTujcugZ!!!N`8@lxP2KU=HZR|`@(hmiVdS}M|yn&z&7x~!`4A*oLYe?Zod7Trdc zSb(1a)c>xxT@5`=%&(ls$-PJ;VZL9PM(KQ7_;RXoXhg?LiBY+nwiPCRp(3m{`@}Z| zcd~hDoaV?sC-t39x|q4$7^eu<n)!2~wOa$K@*VI%uL3b{q9-A{6R9eU6)}|j9S#a$ zEJpyw{2q0}QX9=@4<GflRmlt^zk^AT<BU|$eR07$S(e{M_{idTO%fy!dcWna1(`yJ zdcejo=!VftiN&EpNg(J34I7xKOKXcL4Wi$^IVGZpO*#FJh})GQAoCtUzAv^%1)7ZS zkLOkATdaca9@wCxtr}_|A(yUTe!BOV&yMlLV;~>k(l?9?6KdK4zhJHeQFE>W?eHcU zY!qGa5&*0}`M}mG(a;!}o&Se>Ply15uhz?>%50FfiBoHQf1qTjYaaM!iN^S7r^k>6 z^K5b)bOAmdIFdQNVvVIhFAa265gm#WbTSTDP9g8^0yg&2VFUOgcGOC3ioRXHahKUK z-67vg7ib&asl32e`X0@}2i*t|kbph}*ur*R*5AUa{{gl^IaE9FzSt{?&cHzdK%Vv& zySPZBFJJ)p*^04xtGltFyByvMS`#@&kaME`{2JwCM@-)It0(<8|7++8b`K`fp#K`$ z^wr|Q=Laj}b`NOo;t1vJgZX{Ac<F6@akDWv?V8Wl54w{TP)=btE$U{i!}E7^Ve4Q< z8A08Mt3i>aLSlkGNBUuh%Um5&9DkxYPkT5gu@G0*>c^`Ce=yd+B7a_lXOyjwI0BT! z7_F-%1(E0)nEUxN_!s2M=q>_0n;H3QA6|7yTJmyD-Ub8Z;w<VPjLU{h1z)$cDA3NE zctMYG!MJ9rVbgIb>t}ZFSgIv?PCJ5w$WV3cbvMWOYV@pGtD2xE8?4q?&5isuhMfT3 z8o#V(ki57GG4xxZ{pfl*8A0^L`$&6yPiQk?OnIDDnaul-d8Bs!Cw%Niq3)pjckpif z2C1Nht5(ZLY)$vmNmJTF1v7QUf~9ruzOf<xRF?djeldnDKBHcEfl*8ETY77Wrq#i| zn<^_yr2gZc@sXlB$Hc&ItQhNwUrO_CrBL{X2+7t)zaU}4@>5vuXSeXtxT&PlOj9oB zZhOA~<cPt_KbspVY)lsiEG?b%+T%}}>In?=j^oYV@pwfR(;h2T-1>g5@iO;fCe$n6 zbhg~Jws%c@ip)xfMQ8M*2}4uSGYJJH-&e4Hj%A1F_viY24i6O+@@8M<=R6L{39*;Q zRxVF*E{sWt47fIW>r%(GRKUmgM{ill9Sl27=BYI?_7*k@Cwk%O3D>e~JWO>;88Udb zbs`K;#)zG)+cV-D{8DO`%R!Lr<EAp>arGidvp>_82P!XE1@p3kO*azznJ2VzjDV>E zWa@<zI++6_j~5YU+0^KowfSC<v%>53ke=4<UOKyHw*f!Lw}mZ;?SZ|@)ez%@nO%ky zZ5KSWA{U)O2ts{|L>JF@qA3PJ0n8Jmsb|p{EJjZkPtc%pKnI3SBx0ZCas^WY@wl*( z@ss!16VS&$x)TLg4_ZyVOMtAK`-`~U1?kvr0B09AvY%bJG!LX0=9w^reOkeQrc#ju zbg%H2ttw7H+o<_k@(WC+?jobEc=0@vB>yi_803CBT_?1@9<&pB7kmdC#LbskV7HSZ z|2XR=W`9_5u?15F;1C=y(?h8VHm1*)7=hXG^COy-Y34bqXADqzfH6DG0q_R6J5CVy zXasfP@nLbtSd<l@2^PPt1O=94s|2?)f@cAmK&K=6KRjp*bTT7I;Y#C9%v4cSO1kJJ z?*Q$q=*@EVY5MJ?oCz7qLm+YLFYo|(yL*^%fc7{1@3?5jb~A+d@RsQ+F1$9#t8}`y zZ3@U6RkXd`A%6*9Dd42V5P^-<vrj5NiX78EO&5D(3EJj30L>CtV%LvHE{yUw5CD5c zyXHV4t&Oe4Y-5oKXn+V*n?UgPdtew!wOkt){pP(k{NFPIG<o7s4rZ6$Qtp@$C_{1m zYL*~e>2=-%i$~NGjNsX9yGW?1eeokbkz0F0{IO3)9}on6%)aND2yKv|KeS|Y&H#ov zCj!7$KsPS!tOi?Gf>3|2b6Y?v2nle7w)2iUYo9Lh(Ynyu_M-E4&fL)IRC9WSk`=db zjqVnga7ht6NQ#9t*2{+OCcb9wNsjIf4%r(94bUTC-Ml_>eeB2jTXPvvhjo{&=)7Tb zAr$Z&B6)W1{pK^CNGb`3l;&JmIH5~Ua@AdzXl<sw+0kYH<Db_b&D|5Q2#oHk|9n`( zP*`2g{K8;tLpgQH25wY^|2@N=Bx7NSoWDn{EsdHR^J)GZ=~J?kJ_r1-b2I&?z3{sH zuE&A%6IUFRQnCxC1W2Q8PGg(XNo(Vj32U~YS=DA5Z+hXnVKq^r1`u4Hnzz9#hR|(N z(+L_l^U1z<t1MMZaKXNqsb@IRu18IZa-p)ba|%h$zoph?xEfaUEct`r_J=c>NUC&Y zV{th@7Sk58VS0y5kD`LNW(>RcUx~tNDZ5uliZ9=J2d{eG+?!C)YsO8oYt%8g?V=o0 z;vhn&P$DQspey(?nWHB1CZpH9>*Ixo2^e;_cL&}K;gi^O+%Ch4?f=L;iv2Kl&Oeop z2BIqjem{P*5)dN2+9G*r$nK#Ad9kywnbJ0V)X^3~@!YcoCd~UKIhaW#-&>MBfqz1w z&=Le^^Y{eBBx(Y9$iVu#z8o|3o&|`pODxz`K-z;56e~chCtmMDH~mFL{{g^-YOVo> zh8eJMr>3Sh6iU*a=HUA92OHJ6*+7acZvY0(Vt#w~oWne5x32%zG1sRdepdvnl$_DD zp?|?qfB)mVz-N&fk&p+>nrTHE@1{nhCK=9j7>;?ka08`DfC!@6gq{lb@uA-0Sr!Hg z7`~U7<RouL(e2w=7Y`A~xz_*lzp;Z({O>6PJ~-1iwyGB4M~gTGpJukz`OvfaZR5Kn zLRoD$A}K%0&{lT8c-0E7)S(&BkW+fzZ7lvt?~T#S*RO{qeO0~|{0rTMgL|CqKg=U; zU>DpDdMYP(V42`ozs4)1c#5L#FS}OHNt~{Ru^zdQfgknaW(QB>mneR}9C}f=d%(d0 zunX35j@xHgk31qDy^#gSFFnGA8oeDaFxK_l02GJ*%yZ!Uwb2bfRC-}7GC<?IrSNP; zq5U?HIHBF#fDv;hhEBkTt9Weh7srRfsbQpbQJ!G~W0Thq(;#xG_Q)WAlN>QT2&O~U zDL(^<gs$g$IK;)sNKhNp90aO`$|QK@Dg9RQckwO}8e{sD;DBF`VLn;X#d+=1eOyhV z$0az3v{3eL+YzQ9vZ4aqLnQsYrcqa$@P;?#?DV(sh4uTHgJiXI8%gjNU1Qh#vB$kL z;^SDZo&T&EJmI!a3$7Z>mWK&h4PC0SWi+^&_z^|k)6$^1EQ#Xvoj>DlziqB+o=TmQ zK*hpX_%zW5M49&Zzs5HgyB%@|)1|06(@KW#C4+V$P9c*?6^mCkRZVw&WM(^Sjz#lZ zpGzAy35`^*b7-$x`8;Qjp8Ur0>8=gM9G-A^>#!=)k3$wJ$7E8ZU(>6->Hcxwux@aY zd(k_9^0LG#yS@0?&BJTw32|0O4$#gQ@exZM$yKQ-a-+01A%U(U<9M3_MFUV9s}Zut zq*wMb9MlosT)X=rpkc^&$!@XESbsp(&$-rgn{*%r{@YE~@wPq+F(@Qung(M_Z9Bbn z>5V~<`x<1ZO{apbkn!pv)zc9{kfIukxIMq|^La1eHvleI!|4PdeH~gTjd^CN)?vv@ zKD1R5V{cx{L0^A>h_wS9`oCMd!a-#skN#P`06_x%eZZ2)PO4uskHZ9Km_BmmUegT% zVDXhriAXSn6Dm@Y%Fa6#kXO55`2=h<0FO7nc+d-x7cmCKa{t`||CEkkjoI~M7^7EP zJw(Upy<bqp>j@JdHgqMiF?5?%92Y2E%-`gOnsI}?rG_H8g%)x9y@LO_=lp>=5l*Me zS81)UtkG(Aqc4XJgg{n^b>-P<qB_QU!1+wTy-mJ3uuE=3K&Nhsw%^A_0^6jaJqIJx z;_4(#<qdEHo&h@~wFndwd3@?Oxs0psqhE)8UNv0w*t>X2wa_7u?bX$w4}pKxx;GKx zeh<;a*%W8jhNSC;8+u=gHM9ee3<Kp3{mi-Ue~Ve6`CQB-U-jbLk>9U$vy1-O{Xid1 z(z1R>^TN!qWj5)i=Sob4di_Z}AQQ}-y1_i9<$bOiGO>>t9h=JrFFF`Fp^JI+Xzwro ztp%UjsbEAoicROI#8Am6AE^AreV`-R62wAnrUIHl(|wzdi0<PnpC8YZI2$tC;O`E? z2~9teQYv(8(&|~>ESSy3Wa_fGQ(v!8;<O(7UBjTRZ>QwaDKJ7WbOVla%I!dunPL6H zsXUy{C$GDT$GDoS%wSva!r#zs2Zg^l-g;TLl+O0^?gs0?AJ@d<%a`+mp?$HfT-@?7 zsq;NKj3)_!{%?e=t0bxR_7k+Es@3-RgKXay#p@K<4Ti#FHkCgF98mnw=FYpRl%iBC z+u}zNZ0M9YA`<y+a^(2Yl|`x-j<w-XYFOsMD7%jEfZNCi<I~7Pq4IpZSnAdHvQOoA zhhMa^m2DmZL$)`Gs|O8Hh1Xx7ebCDBk1O0)m`E7%_({6;_T($P#Oxc!c`4qD_r$RC zv^SnDpS)Qwdts3gvZDIKFZx{Ud2<?H2HfAMe62dmtni#MtiT>~;zcpFfq`z|`(fGk zO(}ok;cOg^E&9|bQLB%(nKGiCx({=P@^de~_PC|h{PH*(K366=*^Dq7OHV_dF=Kr^ zKek_4C}DXlP_^2zXv2-eb2F0+y|L`p#=Opj*OC>EZZKA?o8^b^TSAf>*U_~KIO}I~ zEXo&o9tce?JZ5}50c$~@r0e3c;C`sYL|QExCz%Ub@A&K5&$9Y2mWls^xEd28=VCll zZNG`S;`ctAp}v7#5Q1CTebfio7K%jwV-AL1u$rLp@c_nYn?sW~cx$Wawwu1@;g_hz zR^TE{oIwi-hBeM>O1Lmm%hbaus;v4Hci)I>^IXsc@Q2+&0b~yYRfvPq`5qNjmnL;v z#K>{3R;`nl>Qlxit)GK#S5~lfAeoyo8HZ4GX22V0`z!_i!FiW8*Fbx3=O={s849GA zwqK4Kmw%lS2HIV^OZtlk$+=CK$PIcWh!|ZT|IZ~0FiLyqd@`ZUZs>QHK@qnw3Ar+X zONlXwOP<@bb^@5*zz{ySx`7JqCf5g2<Wb>+m?5oK0l$|^-bWrNwr%BU%^E8`gwAN8 z=2udn7{CFT+TW`39b|kvEQm*(EnpyK?dmjoF~IBT)Z}lMXumCmjR%?oO=u7fxE{qg zzZBdi)i}y^W8Z(s{Srg3(TsQGy*Jm^b2^==b7Guz>q8aSZ46Yb3}Dw^uJ8pK{rd|5 zC=^b>i-Y8Magf5KORbIJZ=JuNaVSPDAX_Un^#h|Ht8{g;#`Z4jNE@iGxq~$S9A^R( z$Yif3X`Y%~9mesAx`GnAo+*YD52`_?)&OB%2sO0-&kH?F`go88JEX(;*W&{GqD;Y= zi@N23O6BMg-~G1>qno6~%}K__18rPrvQJH1Cdg9H2bKeU&q4ZleE0iVP@~QsMaX!f zsw+TF7NKO{NT`8iM^?9a9pR+38~1i7>JjogS^f)qW*OgAe*C0h>1%9t6A$~C&)Z3k zOTOI8mOr9Uo7QsOb?<cRZkN{Mi=2{U2U=DPnfrGFFXWe(;-tH8F3<M<2{>X^&nqZ< z9eMv5|L!Y~w);Owfj7%ru}luVd^!&m{|psSy<UODQY@{nj-hdEc{zUMnIuKOEfrOd zP@Zp3@4puMCiJpzi#g+DqB?2(H;=_w!+kvZ+xdGJI5sw$OHbLz4``Sj1&(?9xlVP+ zn%@>S@Nuk1oRfX#EvY;`UCUl_n=*JRM-n<w{L}DW;;k}f5(Hz?c~XesAHNKSXHpvG zf6{Z?23{418x%!O<hF3i-tN9pq?%4}cl7no$DC6IJ1at&0a<I)#r|ELZbbAYcmn;e z`#$GE#yyNXxv7{&k2O8uzq?ZTjo+Lt7H584I>r?hT{WLdsInkHm;(oW%p^F;keX^{ zu1dCDC$+<=jER`cKbK~JHFQzAd-dh=6I;*?i+^>S;3%*FkrbsP8BuKd4uT3xx6<T? z&fLN^8Te@Rj?;!#6bmgS+dj3JL;YRmz^H_1YY2vlO8Kwr2)#=|`4w>4v-%DL#R$cy zE@^-&FJyrK6|dR1I1iC$hg~^q)R|@L2KnBO|0YI&mIqVvp!MHP@85f#1QH5V$bV-$ zMd?L)iy}8c$AL;AW)CqH8QyVIv<POP?5^=KX1{+eC(<Z^Y_sCoc?|uci@QU(tv$?+ z${x^TzX7*2-oSrdlmGmro5YAM-U=`??^Xjr)O6V|5{-yy>AKTYFao*hx`%aKro41M z+-({vOM^Pf@!R^{<i<HRcRx1!{`1VF1cRL0i`>qDVc5>yW(*YI(ez~gpD%w82URAg zpGJ-2qgb=}axBJ;+WBZee3wJJ{>>JhtJJqkM6_TlnYftgWUb(|WNvAOV)W{kYtxgT zvWmAKo8&P$AB9UKG$A5H%;kC5>+R`2zGXC-3#-f~QCC{qAnkak;bhZ76%yLQnbZEB zbLgSlSOXzZ`6hFn3SJeh!({(1t!h-G<;uEs1li!LUyi>T@Gz$WDC7q{Ej*Y2N4hK7 zJODo~4A+ROD{%yh_bT90Xt3x^<Xlx_x<iO8?`wFu)(XVp4z=dpENmY~R0Ic3?76pO z%-)3SM^)!}apkGBRcA<PGP&nv6u<jyPW}1))bPm=x_@JclhDBAPEhUH6h6K4C7Jo^ zn04Qf$f?cwvgG1z=5@E6%&NO^_=Cr<Zawi~G-7bJZ*m;t!R6ydRcLfL^;A$$W^Pz# zPTA{gY!2(b)Tt>Zi93cmZl!!=eX$eGHl0@TAaI2~A2u^NC`M>UU_L;@@0rrQWthO( z5<fsvq*!{-!EvRA|D(sb>o>mM0qtcy&(gP=1au$LJcw=O6xBNPe!9%Wq(xCSYSv{a z0@taUfd7CKhhpf#yLq_GmCVom1ka}ws+Sju=Szu)_`iU4)ExEOn4FgG)8u;3vxkK^ ze^opHvD5^n@}MPqg1P<{b8jA+N-Oy94h_s+o^X@^$O9M2zk!TGJz#|TwXHxSHZTX$ zoRz%(rbODqJP8tcLB^cSWN>~qBg5~daL=bZ+1@Kj_2(M|&x*NSylmWuwwFtc#;p_9 z(P--W9|&bKYkSde_=Bmu=s~GHH<2b$wOZ#T<sXxuITf!H)K-@`(la7vDF4(1Tt(+7 z{`3O5MMNcAjK$;rX|X;Z9Qo=NjO&xr%mK{_19@F!A1EfW(UJH6)m?)2bod@%FL#Tf zS3QvSDxD+A**RizD2MXsG3@vFJ1Mn1WM!$c#l}PkuevBR2G^^sJhT6NYZzhOIhl9E zACC)u)mA}u{o-QmjnwUYr}8$GbZ=hW*i&APX)?ssM;>e>OVEwwf#m->cAi7C@0&AD zljzKNO1bMku<?|8N~!f1+sWpO=n1{C?3c$Z8nvw@754(sVw)z|V;o$cu4kATregJO zz8;n~>`A#4yYt)=I=|S74h|2Oi(QsbR=~puyS#QPJR^}2qDy{zOOJN=y3ggN$7upP zNL`%Y9XETfk#KX0dtS;jq`@?rk%E0MX_ygzQ;<8}XQ$Cw4;A!^|1zm0`J+=z>}&5? zTdnW+s;G9~SH5YryKY&eSGMAIlhtxS1>onJliqCRM$)Hy`LqHCPU7Dg3^*^UO#KMd zigMY);+DH2mHz-`RUpUWUJlFA>SL?7I_iq@v?>|Q^<X9tl!CFY6_U4)v?6+_ke_jT z7_W<tCdKwW2{m)zwhHaN(<iCgpGq#ZLdbjKm^n2xS>$U<^O9>@$`B6%{KXwGy&Hs} z%z;1Ee-!i`D6H<KSIJzD6cZM$`?^?&f!z!If(6WDe$9Y9ICF6AGQKB84i5@42>ir{ zzu#LFS!Xa+$Q*WDnpaqP^f1A$rrD9p`uC%w_Y1YpJ?lTFR<#1p0*c(ndMq&n+D8Uh zsF9+Q$40UPOPp_W*v9#8%M)c_pD7Lrf+iD-s$X+0S4?!hPiG)}gWX^t&+WCYtJX#B zMpon`tfqc8W{hx%M@+aRj5OcgDaqwH9CO8vs<v{2V1(4NQ_c#RkB6k*+KRwc$e9{G zWRY>C8)p#J7#6U)^%0x+1b=Wv$%n!u6A)ylevKRVWQJVxuU_|7NEd6=FD9kFC>YUE zy~uS#UvgakR9OMQG^XOGeD-e~)HihTI1K>;)PI$DeE7(C3=V9Rx}-T+{<Ro(VL|`y zCP9-4L5zmcb7Y8)s&_}hf4GAb-_HRq^iJRuDPkCo)&u=(#{m0Gn%p(QyWrMC|7#$~ zR>A@F;zp|gK<u^#_N9AZ$|BeKKMVyhnShXD<IqoFUUc`xe~uxr1)E`qzB_&}@Hu^P zLI9m#oapSzc30!Mi+HSuw3*KGJ7u>U@-HcD`fG~X-#F<|@Wj)Vy}0JJJu%cQ(^6o; za+d<DK>%Z2!))dr%zfb&U$Eaxs)3M;c`<|0=I1fbx0_2{U8}C1{2Vo%H9azEE<yir zDY_tUqO&RxcT<V}671;I*8jeUK`X2P1~TDlkkBTOWMwcKLuq4=u}~i$qZyPtCvKpJ zB}6hxnE?OYl)w76Ow4tSA@In*{xeeAM!O24Z^;&JpsaqcKk-H4E^k=0TsCj@4OQ&l zefhSm2L?Y%I>*G`M!ks-AWOt`g87GB&iAIJ42Yz?c|_>%o`E-3mg@Il?I|;NoP+q( zP%owvyYFf?2NNa1zS{$O{gT?~A*V6bN8?ZRI!7BaOVi2>AKxon_4~=XmztT^0A~?1 z5c(QEMk2d|oJ}oC^R4(2)SJuLo=Dc)tuIZ0e92}m{&I{0M`*;NtkIL!=d^NWi}H6C z&gVM?F1EiiZyn2LB#DL>sw_utCVq@B<HVAeJD<muel&2;(v1?hhNI+k70f`gF#lCb ziH5`v);D&PJ1Z%<2?Nh%JSkWmmWMCQLg~H6Rz=T0t9UBMH3?_-9tBI>KBl77l^syE z4;J>`Ok6Fs8;@QkQ0p=tEwTEc@K&rDdvLTTPqA25VD8p$E;hELRcv7eCbgABGGDtz z4w0m>-odwBTUwN(&&-VGdaAzdO&-YzJ!3gT%37;V#ZUH6?t6vDsNnq(N%3MPk<Ta; zf-&}R$2y*|g=5~bH4$*542Cje#rob*k#Uz+xX-LASL~*wQt`%;mej^KmAYbl|06&t zr%qtIXl7jV{ejonu`wknSJ0SPG8-Hwv}&imGG;wL^z_?+XRo@Wa&$7{e!}7#?dkX` zhX<!8dU_n`br3_`)G9Z(KXIE-99!BBX$eMB+Xe>?T-2;_{b{f-syJp9F3A6Dk+=QU zRIKpNj4%uoJy=pQ|7w%kVTYw_Ann=ZMOI}RddQvqZw9{^IpX))>b)D(Hgeg1`ksAW zTT>%@XEV7uN5w}4Hm-%WboskB?L#@8HhRuUIrVtl?3w1N<l?3`)6!Ij3f#O~Up|iU z!95te(?EZHo#U4ql53=K6y!)9UP8vtv|;OR|7}F}cj3aIayGbgZ=4lFkO)&yeGE1d z3{?vn-d^DI*hIKb*(^$2OdNfTzV`fK!_9P)!bb#JuTb~-K38~-@xZr;>mI%v!FShO ziKHBHQyb3u;U4xcz{m}1=KR|go+)jGzc6D&^e|abtYsPxc)mWfU@MNz_Y$s9-sip0 zvdO(orI8csG*bOGqd$>OYarA;T>p$@X3`**zMiNIy<IEG5mu*vo8+=K^zY*!<dx?e z>C62%Kz#sZ?+N;t14m3W@Dp}{-wE>0njM20cZn6UzceUpUiUiBUFXQZkpS1Q->ap% z7x!p!5c|~ebtTSqEYv=KpwJzAo*2ya2de;0#zOkc4;c0%Z_+b4Yqp5rniFI9Cpb^C z`OX)3)6D15R<_Sdgww{u8tirPzQ&`6<)1!G{Y9K^1Mh;Tf8hop@PN~RGXq|jkDJ&A zvQc}$VXf<RKV9+U>5sk8>+jxt=6>R@d%|B3K-?R1cr`3Ka>hK#Pxv8#HMSy@ygt77 z@sxsb`&QH2m!s@G1kRr1IprD+U7HWTbzFPp678jL9XHG)5p4$MO=3Oy9zvhe-$oFh z>5)_Lcb58JUHle~bqaNB9M`e`GKV!J+7z`-_Iy05Q$XIe_|2mIj!kso4gD+0=3~a- zM`qd!!duy4L(QFubapBFi6%d27DD{EC}XAJfz?|IWsVf)KMKk8%ulb96V9hwFH9cd zlF{H6NmAxIJ_&PW+0rn-(fOe7N+;CdkUsuPTAjc!YLF_6!pEM-Zd6Nk#9{RGu<GQy z!f#{yp{1hpl1+xUIy(173|8%!OE>{NYwQ_=^r-4W_aP<xnqrvMt^HDxBU&*hs<6$e zj}E#13@%1on}so>`VyLFLk(3i#*fV+4zO)s3u(gHZ^h7)t#RHf-e)XVyg3&1WxmkO zHzuL1rP#o)Ou8zROi}#c8j7r|0>sST{>v8Lht=jj27Gr4gq&3R*EPED82vnnLe%OX zelZ`~f9;w6HQVsL!8B0eCuyU5ebN%Ac<x^$zLE$qWe?5O6VYof8FO9cpcFa;Hw4iX zPeUda(yb}jSR(myRj&i)!81^zeK)2AC+qQ>n^Chm{#@Q<cRb(E$v2`D;V~RIARK&y z6?oM6t3henW&bWnU4Tr^@g6Xx*{_F$>OGu+r|OK27oo|x=Fslz+6;$L)Lqxq(9tTU zq;Ap_hDV)gFj@s&4-#Um8e)gy$4qZz|36R)Terekk4CO>|8tDYaRzDrE#R?GJ9@)g zAQKms@S&iQYpQL0=Da*Jz8ZU`u$N$dVz~VplPF=2HcVR+K6s`=LtP0RsAv^{eaA2m zDeyUgup1!sAA*G3wEo@AqJN|$39{OUE2x0l-x})ow$M~~B89R3<(=+Y7$vv<hn1ub z0*!4g5}V9Csk>GG?jX-rVTU#i2SB(-4k~~%QOMVUDi#A(ik46VzkfnxF>6UEJS^{B zS#9@6!@_6IBa{5y9C>+i1eMn=rU!z==n?4;v4h4iA!NBTIG|_&Tkb^i|A@iSWr`LC zib%G1&xnNo6X(lGnv8je2X7d}9Ye>lP|E{A>j;eFyrDFUxzV=yYsOi-8LVcZ353K) zDdoHx7D@^l=I(j);8nk+)Q5capiJFy^t=BJL*dE{j-x**`uqC>ZJNM3I90c+H0Mqo zOr$P~ipmS7N1Z*$_UgjdsfucXH-YR@4Q5v|Yz$2q`+-0&9MeBHlP%R2T3Ejwx~ODm z{Ji`6@ZOwX!XQaqZA@q@5Gsh2D@ThF3H#*{Nbc1J?x#i7Kcm?!_ttXOf89?WvXMpQ zk(YZ9i2ZSut-lYwl2{ZYKXxm)u2U4xrts1$C->&J*Powcy)hnSNEr5Wv%i1O_e<W> zs7<`jiR~B1tjbHrz?%A;jZ(pj9D|E*6<dZV9y8{HW;7#H!9XEg3L%7lW4E-9N+yd$ zbw5#P&CF3gA+e@#CWAtc5Ke|a^e!ZqI6h`zC|<lUQ+7K-Ix7?aeGbNH!tmhd2`9f0 zl>6iif`s{86bZNvX+5pdUv~u-u#HYj^2-)}haj~U?iuK(7w7(nsyF!Qrp;xhT^F2$ zG<@7+Z5ShVLpYtogw?<Nvy2?>vgm3NMqwLw<00Ivp%!bWjssUKwx~EFsm0NQlfdh{ zp$>-TLWnDljvyx>OB0S=LTQsS)tSyn3U8rO11b}&mk*vbQPYQn)I|#1S*;GT2>CQ4 z5wzMDAPpqoqF<?}+A(v`Z}$7IzZ={T7o{ZkuQ4IuTW*)-+lh#Y7bjVW+?a=I(_hd0 z`g;30`kkAB^uUhD*nIqRGfC_py9cD$JCnnt*j_iJ=e??gG3*X{*kE?666nM&UqbW% z1ifnhSuD+%K_W(Y$ZFH=YiayZ?{rG}n)WcRy$m7!OdI>wBGhd&3td3Z{t7bI)b<R6 z|Ij{^%-q@}@s9g>teAo)>DZpSzV??K;R^Yy@A$?1Q+MVQ`FcU+$4XCd@`-Xb538Qm z`2>3smD#Z>JOM;f5HpBjhmBZwE2CtXuZZLL?&sP#qYWJi&L)TK#ZsAo?Y2?D9fXr@ z&<6+d+1JxBJI|>9d}MzY;5fU1{`i1+MK%&HLaZ7+{cb}K^G0j&4U}s)*AR!r{du9w zZVHHzu@(dM8@RJ;4o8xXx)*0yQA?IdDLF3`10KVm$TDcZ<%pb#5I1j1n$v*ksed{I zucOX6UwQog-20!dBFLMAr$mV%LhQ4ssZD0BY%JXAuTPM^?AgLAo4%isqPi@1O5=aO zOehi@#2X038xYb@p2jcL?2xOWNEG&1)T4d(E`jNlX3?ds1E((isDI2yqb1t+5_hh) zm}kDUWGhmtvXJ--Qodz36(4>fz{U{m*>pRH`9#loMJi3l+0FxNC?#0zdo4(<izgcY zQ-NoZV-`vjOVdeRHIc0yH~WzLExhelDe<-P_z_w?mI&%M0~^&ONvRYyx~X~+<utF> z3SN{yGw1P!^Y4%SEa$Y;)M)v#wH<r4rE+=FBdy3h7nnOJ6O@G1QZisV*C>rnLJFl$ z9lcO~MRq~TT;_1&?V^2QC`yj9r!0`0!l+?W!lf`W_2M?MVSh*27UxGF4aM@RPo0|m zv6Y)c&n62(@NpTuY!_+sCF48NNNQ%j>FD%ai9Y2zSi#O6%nwtM^blUFQm`6#=d*gS zCD)bWa>f;(K(*lnuLCU6j~Tdm6=dEIKGY|FC5_Z0U!Uw0aX+&v-H5vuR3FiJ52Pa# zU$2#RlZjPk7^}MH+y0c%02Eh;`>?~wpwvLAI|nBZ*2ZGZX@Y*>BFxD_h1X1l;Il?O z0SEioBq^EOTQ;A>mO6=NJPdzHs*;#?f?Im?`7A1p6kNaFKW$1Ax4+*Qf@vqP9s;Vh zZ(Y6|A7fpOR5BJ$7S2Q`xKgutuCYBaZUSP0@yVNrExo@7F8zP>=K!^VknNe}8A8(9 z?xpJL1@+`_3;*O~M_2BTod2>HhnyZy$UvTlNvkls3-{X<$x%8lS-x0_>EV=UYQWY( zbY=C_?sY`rv--?hzhf8mL_T$z@w0I}WF?8DIe7>Gw?2@ZEQ*~v8n(<ONlp3{ax*IY zlcaa32u*p{nQ3pVkEHn;xoj>xDYf51jW&SJ@4Yk#HW2)5XBtA3eGnFb(eo!i0wY?U zGFl58bx71e^|v~$fzD=q=Kia}2GypR&4gmbuXHTr_F@7MRM-o<JBnLgwiO|kK4-KI zzats#{2YSJz(yK^w0Db9>kD@_Uu&V-ht@SCJb>Q(0BXj<0;dxpqSO=eWS{WFm1!DH zl5%;K<kviNng$&jk-hCTSzG=|{jZ{29okm?VKHp~TI!1$GrUgXPf?MLHzs7P)c}Xe zDJ3*q6JKoS?BA63rXZd#sz?)rgA?-MykpK&LtqQPBMUhVux7w+?VgZi7jJu6vFjJ% zlXq~ZqMqyYyH&J!WawUT(d|UhGnmQ5<%(?D%8_^GVJZ`eIeoTWU@5(QcCJ#pNxPZ$ zVMkO!Q`B=kvNHxNm~K}<^OHAJ%<w!R)-bfS(**gL*Kd1J;c}H#;&&_MLPOwhpTG#$ zW;&i^8mz7kL(AnjM?!2#$3*kTpFNBevIpda-`+}*>zz)`<K>5i-uO!4UMV{f5V}R{ z4)4EP7W9g%r*L@V)w`z+hR=EVzVH-KU#+kLv()|aAWaqi!vih(la$aZ>1zuQ74Q5Z zBoBW+MvLPASmQ7r7)WuW@+my{(Rb^^TjvE)n@OfW?e*M8pE)eeMOL-i-SX14FTou& z@XF6rSy6FPrpcP_`WYJ%t{A!V=Yu{eaeSY}_A_z^7A1wS`<ci-htCT4E4ne2+>zEk zthO%_Rrk#Jdj-wT8hvuun((rjGpA0P>>mUwPVQ(`8dFSk<Ta)UFa+WFWC7}M1&C*R z4{~=cY~Bxn=S-{pq(2qrU;@}9lnAY(pc#GfMHssG0GE#*<d3<2YW#0~7b!8)BxS<? z(PH-npHEljpL``y&lx~=n}O;{L2%C?OtoXrBjy21FVkxXD=<@-x;?kl?#&|p#=f_& zOTm7Uv5#DMxBB1pD&YSRBkNkx_mw0mf@S}f6VD>PqEGFo`QT&ikDP1$A&{LD$VxMo zuFa|LToQg)t%mW{d%+QSUwMTYYoZjPGZQB_Uh8kv?mx88)nWIHu@Oo?pLzkMKk&)Y zz*sjy&tzSQ5x>#JtJiLd)SoUe^;8^E-t2?h7KYX=fuRZrE(sqWf;`s_494ictujCt zu_krDHKAI?*l@$Rt?7+M$D8-wGu!jK-X}nAr(mGI!D?ecSdR}TiVc0?m}3WtB=JHZ z?+X|7lBJk--3zHOWOZ<8M;E<I6AZ*O^BPA;yVlX;pq$k`kf}E)!_8x@hCYDpHg+Kf zSWj6xhj9-_WNax*Digzva<|ZaJ%`w^!)>><C;x!H=G;M-7ABYQFL44d*}E+}(V~Bm zpfSrltzMP}!zX+L?SPWBx}HWEhB>bd`z>*xJzp}JU2xZR!qqJ%9p);5iC~GcBtW_) zgOE}%?E0@VAALy!Ce`Ee3;Y^b+)EC#-e>zJPHOKZ?yvS^+Bq*MEJg(JXT#KFa{-;A z4s(3~dqFQ?|b?$$=c7Zc3&Fu+_s9D~m4(I6JMx-pQ$yEQp^UCMfgd0xLd_(9q% zJCrt>pOigN=@5;o8z#^?@B{`XL}dNu)(Y-}*sWa*tRAEA$31vK;h%xdJb+f59<f9V zR7hXD2CLV?NKelX26G+puH(NLRFNgti6mp>qW0$Ip{<tEL)kGpXmu)3DS8Bq5b91F zIVyCdxkou@k<AN8Eff^{v<q}%g|m4&8wv7ZRhQ@qkQC192a|r^55DE+cf2Ch#h^sm zHxR3yADNIFYMChH!c@%rB8`pd{B$soME(R6xX=M-$r2}4U?89DV_d4psQm0fTf-x( z3rd<xW=aw&_+bOq!wSpOpS|j0Re61}PK7lRUYw6d1ufd2l824&o7N3r+)2u!pccor z=I2lQ?)T&KjXf=9IveWG5mEDI{WoqDBz;wVB)Bo`=8BAR2zk@zu+x&Vqg59jp}^|& zi&Q2uPbd3CgL;(vfU4xfri3p{co-geOq2C_N?DM=VOq!FyVhl<m(#4Y*SubgC7&|x z&60aP+<kVmJ)&h6v95AA#micHV_stEQEHYm#(vj-WG2tUedAgoPA22YEjR`lyvK;B zo%>css}$R3!tUf;E<ZEIUeRXD`nquMucZ4ak-z#@tE6=ljzbd0C7^P?k$c#vsCkXO z69-fYaq*A#SqwX2qLe<C?Y#X94fO#d=qw!E>mwd+qG!HfcT_SW<}iJwq|k+02n7F; z9~Kf=m5Sc)jQxBy-=vR=im(d`w@i&kQx<{o7dgTsJ~>8#PHl?nN0X1~b%)Od?HxIq zBp65?LEmU9M8{Um(td~(z9xGT4*C3hrNlXyU4@<$FxTDs2Q>D@54ya%(R=mm&6V16 zYu0k0^w(^G(@N&6Zz`8-3Fj`%{}j<6SX@N>1sRzlqb)!2isNTTN>H#WxEuf>95HUf zMx7EiT*ao1=&2xdMjQ{0AO6~q^b+@>6rUD~vfjVt>9B{%Qy+%JuEKN}vX$S|8A8la z`~3Z$AY?*>@Fb!p&mg?jPOTK^Za@o(jq)!ob$LE?9?Y=^=KR1PWipqBm^v(cIQCuy zg9$@Jiz3ud6%0HixmPz?FFITPb3y_nSQjb}0nrrEfWHWA$fuY@yX!fg1nj(fNE6h} z`o+8O6ia7GZ}uh;V0irjC>5-3CVK?)FS3t~yl%&lRLkeN{!p!*+4dtd<o^N8#twBr zY0xZ{wUf|)vu>qw8a>kjdw6Pldl2EQ_)}{Qpc9bY^X^ENrPnKESL@J2@t}g~0w%@< zDt~<}XZnYD8S9Xc9(e@`(oG!;^|ZU^X5hITX_(>N)7M`jv}9v+hs7*E+A(~(Th~ds ziO{XohWdAktRE)neZtHzIT{vyQ-u53L)wkPz}{Iue6jnP>yMA25jW2_<(d=m?Xk<h zKLxCnwDNN(GC){dSVqtn#+qpWQdFNyzrkNf4hWDZeHepl7E$(ke%Iyd*d_4l&m1QC zB`N!9$IZ*VY)y=)-*HzbagRK-@4f|$CJ9biRUnl58K=!hAsMrD-iRk0N}3Zwn=T$M zCbE#^WmcfOPsMopj6ghWlXf)gDBIZF7^j}(Pp&NQaOu@=9i6oEIn7^J8S-)GzZ1^2 zn3o6Q<<sSN$`n8XHJ7!%>^7ssPg~|PviqMa<%^iGdaiQ61WJ9C&RX_im$`LkJ<loP zt**Vsi{d_%lb*Y{KzPL%$roPAIj5BHs)pf#iH$Gb?RNi<tM`tly8r*jU+366vbU5y zLuNXeDP(8Mh+|cDW+x=ORLaajc8aVbl-V$j9T_2elpUh)!}b2X$M5sUb-Tvxx-Jf{ z*Yo*!+^6lL13lM?-=uNDMLC=|-!%0^CU@8GF-s-h7_t2ma_>h^Lf&=F=M-e)hsQc! zK5teQ*Xlx3o>jDaK1*YF)0@3_e?7)rr3!VyyH7_-={~z-LZ7IhwSKrjS(c&9pxZVC z$vj091l(GMJ%?h_wd8sk;Cah-rGl!P+uXQB>7|KKp|#-AuhIdegreKNnsC3Kw9<dD zci!u5$pDn#pb0V%I+>~2XXko}>{K0+PKDac%$?(xnQxz+oHj*#|Kh^hSNpno{9qj5 z0?)&FJ7SFTv@ng+tVdCo=mD_*2sU~CbkWv!Ij=k^UXRe?`}ezw`^6JV??)Oy%VgGF z&BBY=&KIa|39sID`SLiZ4uwrn{*OrKU+*o<E^BKv7`iz*b8_?C1h&61g3sRb#=H%K zrf2C23EZrp>JPE)bgDT&FQwIBA|#F9C?jdw@`5ed<ts=K#P)OL%rm!ssYT->zoF*m zFHW4qJ*zbGfutG>hejFPGZWGSatfoCT{mR&dEW9t&9Mi8<pW1+E6_gNsX0@+$9Pm! zp>CNAk)11*UB>BqSnigl4Aqd~S6-VKs*G(2-s$^js_2$r10fSk_CWiHUB44|HMN4` z>DB4ig;0_{5_WV@g%Ts4;CEF<Ry15>6VLVECK>#D`13EV$)+*=xV$reKVarZU$#LE zXBNRsorX){5gfL8(Q1W^h}E+p>^qq#ykVY#&E;%G)G3p(H>Z%&(32!AqpT4l!o`=y za-PV;3_*hLyR2z^Y&r3-(StEyl`^l>VQQj3&=Ac#bPhG)dD7`G&HVmX7{G)GE^)HW z#Nkn^<CL5v5Y7<|>Ij!zOpRDXzgq9{8&H%@hvELg{IjottTUT*>UBGmH95G(`jaPq zcw1<+kGkz4f;$6Jl1`Q^G?x8M+U2PJ%QD+iQrFVdqjns4zpz?rcPiI0Dt|0F!LG!1 zKYy}yOG)Vdws9|K!tWxVv$4g46;!E<l^1A+6{zzkE|f>Ie@T8G)pL$%LaN$zZ|{Lj zoPW95L(*kEAH`qcKc7Wj*r{neSowLmX+ix)W)SVNHK#<s{`Xc2+hi6Qsh4fzryBY9 z3|Y0UFLV_qg$K@T`egCAsIgw88KUJLYwTC((ViV=tr<C)W)%DJZPNQI_jQY|XGQr; zedm4g_(9qyakFK3d$SG~vJ6Vt+uy3^bdNj`<LfrH?Z9<W_hsZP$`TPz;=}HC<}lE> ze<)1-(FG87ap9skPh`Qo<7@sh_vc*NQ0vX1jQ7*B&9F(f%$z0SVLR??{=PKxKE8H@ z=T)If(cf-E>8jMgly6h<oK?|Nf*onBxVzaGg>Z>Q=M@|mHJXRDJF8U#@PY4RB;{6K zR0`d1n3>xAOmU^0O3b!SlLs?>AaUe|GC@4iE%9d6ZW=Gc=QLlmuH-{n$*pGlsduhI z6~S39bN+~LNOushu$NnWug2>LKt=>5zB`KP@H0-s%nI4#Mtu2zs(>!Q&?7FD2PwUr zwmwxkcAMd3eK6<*5p0^p>iPZz*BLdB&_{lB2zwZp-mk9#qraLO${-mnqLvsF5%m7V zeTolq5j@nP@HXt^BbLV7!x1-iPN#j%FdZF>^;&_AdovGm<^KoDg0IGhBkib~c++6P z&Pw4L4@tYu(4IMR5>)fgq79R1B1O#uWnF*uAeAFoNeb%L0d-^uO}5rq!H3R|%;*Y{ z%`QY~Hu&ene0TWsyP(6DMQm>FvL8+RXu{l#WbMQ8a=)TY9SC|kjtO}2vH_fcjjJ@6 zX6x_vJw16MucH=*xF|6`^w5mEIXZ8pv=y;WL!(HA_x#C>ux}qMy=qL<x-)@w`#yE0 z1NpyIjqo!gg)~{VSlQqdMYatA9<tjaIIYnF0CHcjJmzsMYWV2V`Bjsa7O(d`yp{gh z*pusNawX{b3t2ZHkFNGy5gGI#P9bUQ2huv-dNOCnIdIRkvmDtdh5o@P;Lr{$VlF$3 z6Yj13sCrb?4B=SEFLNH8+b?_*0eR$DW36c&ac5P5&bt7~Z*CgwE;`D@yelb$^9kZ_ zIvrWJ7;11-E{B4;puhUpkphPgtmmawXo4_q_DL`iA>}OeOmcQWM#~0q)B1S|)NM)7 zx}<Z^+<W-u#<8{MEGUBS2U1j}zq(ua>=Qi0>l@rC%zcIP0JP7e{4#j8W8sHOgHd)p zyZrRDE8jvLnsE2w4IDT(8l-TCI#x>e|LUvfzg|WYpl+d@qgKM-KTQlNT}@>-5Arg@ zJAawn%sK<uH`YbySGa*pkRBbk3W3_01uC}D{5Z2_L%uCua1{%{AFB|UMk*>3d~f?= zP-u%$<_)Th(l(!}I8Z)DOMJ|!UB9)LC7?@qY+0hDAap(IxxiKHts82g(W$R}orfeo zX%C_vXs=gjEXffk#b;f>=iah(VPkk1ogquXcd50xl8bB7p|*N6Pg36{NZ#SYj%L_i zUsjXM5H~T6^eHDl*S?J{BDeQZ+MbW?o)Pb;)&274B=+Uxch{fOTRk<^FW^|ZC|thi zTXyY0ia*EFZ1b}(rE_OXl)={zP4nZ}puGD<7O24Mx}60tBE@qkSc`&3*T;i@9>8e2 zoAsBCrQb?>H3RKC7|$G4+V?5PL#=CHnSRPObmINX&+G0!#x8|7l=LcoDxZ4JJte<W zJU+5Oa51_t5GZork8+cCMRNXpY-@5;1%38aR|a~>8Xc0Rx|Zfun-wWFpjAxPE=q%r zV=r4v$d5~Vyw}7)hV5&4_0#YBHJiNXd;EcJKfRc-*IMpkU)rqBX!cXi=ynS83rMv< zqj!>3p&HN0S(1Ssjy}#PGZ|$0wn^Orx3O<NL`cigVVaAj`&tj>H+1Y439_}kxTu90 z4~kG9-O@TSobz9HU_?W8i`9~LZ0K?RBv!O|u2!Fx;q&$ZH&OG`MA(m4@-GxbfeSQ_ z7oHex$mHpu?TnYX4iwoHGPsB!ET<$vK~`BUw3>sP6GN9~w**eK&V|nxJ%w$G<cS~` zS3jX36D2FlvosbK_V7&uU4SAjq|=dR(OgfDsUl}yQJSrj!)ZmkDR-=5@7<xt1Y0~L z$7e1bSylfzC;s(fs6vAh4>6%k{>7{pb9hX)hr#bth-CuXSMC%eSN2vZ@;?tQh)2R< z=yp2Cv7*(>ox4I1XEu{cb3`<GIK2|ai6UcrXH3q~t!N1AuC$>ELukApQ`_@gL=-)b zZm(&_zhXL~<qzU^gnhJOgQvhHx=Nd<9u~IHGPr{=ega*=P7p3->b9IaqbV+r;0N~Z z(;^|r@A}yX@P<`<8m+my5Sy(78kw8mW!m=)wzq{YlGJS?F`Oa;Om6J=U;XbV8mGay z&#>UmoM*mvyo6IlPTl3|kO??8dw6k!f|`0ce}vkALM#cU0w4CB$2Q$G#$LLxhm`J^ z8hlAI9%HMx`cFai+<+G2mx~ZlLIjoBZx-jL)ni#EL?TovA>fp%!C$|jC;4A1k$0ko zo(>UuoEs!EaNW=p7YaPBYtR?BB!U6S%bau5fne%#zytl{v!9;sT3wSz5+?lP*Nwl0 zpEKOReG$f0pJT#&%X;HTg?Z#9Q_RortcLv~J$@p@QgFo7LeUpjRcw(bY!Kb`Zc%*r z-uCCq85;M*Y#+=F*)kIuE!kebziFUZu<t7+_$g1QE5Cy5igm79y2080(SXR0ou}V% z?bJ32S^GEDUzAZq^>F;%dUczNXiUWCM@5Lranh`7Vq@q2Ow#>bIGK2m?Xu>-ygy>( z#ontm88I)$=H;R^m(LO}{dg-Am98uIB*0!B>pJ|}b?LcA-MKFTBl>seM8u-+WS8#$ z;St;&x_vN2{$V<~N{V`zv-xa64xQ$;X!?3RRfQPRs9C?SC$c_9njYMNErH_am*Des zEBDY?ky2r)<kWY<reUIVLE4|^i{{RBmY?nmppM|OAo^Y_Z?56ZxDyr^Td?t%YR7{v z=Z2)h>%5s5M@P|a*1L|9<zeibk1Aw#M9RL4;c3q6eWzZ}ArHPD;<$K0qs3H=V^$;d zTQ;d@#@Uq%`u1Y)x|*bbREJ={Na)DoeNBX4d-4=XD<Z!`venb!JIsa=Ei%CsVh?$d zG?svx!3VT&)@dNE(USX^Wgru>qA<pcDD5TJq2`~2oc?%WwE-S>ay->>7TmVO$VMh= z!T8IKEO6xlk5j5T(RtEOg!D@zn1`tM&LEW)wQZiStVjrnpIxg6f8(DFOQR}>Jtg`T zSnsJ{+9$#`Y(%#`LB9}3Wc8)n-&cP(TAYUPl2d?KD&eYC|6}gELWws${*naKr;i!2 zI%(=SnH4BxF3>^ub`XSOj#2^y?2q2%DyR!c7Du?sUp%}>=m3Z6)GXQg4DH*Okf70n z^X-sRM}fIdn3R_(Zxe^OJJlN~d>rirMMT(gf^JvS#L=Y*ag;u5n>u}aa2-=%+Ea}L z)1Txe>x+9`Y_LZ<OY%%ht6J7M*)Y>5WO)p$UG$q?W%I$On5*C$kz?WNiyR@xd<)%O zjz8X6GHHa<gDi5*TIdBFZ2BJ%4(`kmpI0oHzB6r%)Sq8uS&0)9KGwslcqxU6YtgAz z5O>B4FvQ_>Zk1bQL^$W+HdN*D?YoaPCRlN*ODILbk8D?gFTw6kz`M7;plj&_Ih*96 ztH^wK6Ohda!R2W50=Mi05l%I|spr#k2n)3Z=Y7m5o4K2#pI9ld80^srg2nYYq=Qum zwojdVn$uZ{Rpq-8RJ!YbyW|+^L5aT;o6^BG)L!8TO$~&8NRbJEejG~eA7*BxEQbS1 zchTp&F2;5!6luQ0stLxL8<S~qZ_A(9{H3#V(^wYumg7>MF?a3^1IwY-$xQq(@e9)g ze$KVZGd#(UieD<dPY9~3iFp1->TcPMfKySyXYBnnAGkGPnpJEI1h@J9^!|R+Ih?UO zB<U=TqVdBqr7%ZzmjpYu*bkhwO{L3mrj}g4ME@+kc5p2jH`pN=QHBuI=bc)n1p1v+ zqZd^g6r}Bk2wFdE9As}E_s5j7xqGpY+a^D_S8mbwbHix*40}ebd(4(+{`+^i8~m4& zM;2vM6gd~lwBiz}ZW&LGM;G)ZXMaY&xpJP)H2j7&wr6-lYca_|AoH10Wvjq>c5(XG z=?3<<>;}cBdAo@S5<gfd)%%y8_+~)oo`kNiZX7?7wjs<;Z*{dBU%O345cttFuhAbU z@f0BU0^1NWOfHK;jgXxFbtX(*t@q;G&El7>sf<VvY-VOt2~fMW@b;C<!=QQb?{yif zJjXCBv<>P<(>nBh+aHM@4ukTNgxDZ}4UL~hg?3NAL?Cx1uC#{WZVO4&aiXpv%4B#V zyq-TosMKDOXQ6#`#XFe*n9p@e8GTQ){S7f(TPVmGdHte2owm=JcBMSl8FL;iEw(=Q z%X(42rJKFd@+;K^%6{?e$yMz7g%<A6W1X7Ag1pD7w){ffTh3-Q`d)CMX$)ep(Z95s z>nL{lvf%4YKQS_%hr(6=137PcL#gs=!3JdAcCJ{T|1%XQIr6;m1g?$CUQH^Bb+rnb zmOt@%;hZ@dpyoY{#y5qFW_AzALiZD5G5K`Y0^S57D-H~8A0x{PAn^-il)Hyz){;00 z;(yq|JBV!OXu!8#5%suhz$mg~>gW}1Pl`-}%94E6WYfs98#pqXRqx|&FGSiPuA7Tt zhwaq{Pc<n)TIb_jxB`-JthWLsyXx+8hyQAw%>&W8qdok8Y!NUH7fZ<?l`&lJhdD#o z{J+E^>~-eOZ9)1A8?^|#okez-xp*a~1Y|?11~JT;6_$iC9r>r$)zk@VKglq4vWjWN zW2Zds>zkqGnIKcUggVQEd}#w9xbHWlVQUd3nlDP-JA4hg?;SEI9!<O@YspQ5|8$(s zt;+Xe*Z|PoQI0;kXo3^ukjRF_GvoZFITba&F%e7$_=edr>aq{QsSc$$FyDSMLRFcU z_Wtn#nQ(1lg26tTK#RG596C+^y$XPCh8JP4@Fyn3OVb1+-@JasA|st;ZdOfBBaE1( zw?Z7g@l0V}2#tM!GtcC2o)|YCOo9LJ>qj7?t2FFU+Wrg7-kPkCrU>CuLay_Rfk<r% zWPqUwF;`z6ELHm|Ecfe%x*Y9ecagp26Pv!AjS!9>6O?auWn!CMwlR?!pG%+buTC6T zfvT)+r$Whoj#6^r=n>V@T%o}CN$M_?^|)9;HMZZcf;068F?AY9CsSVp!XA>^VnC(S zo-!V;AHER6Se1F0y{(!stVY=pn=|WpDmYF+6l-P|SM@mYOuQUV#DTQGf%~{is@!w$ zIdOcL%5x4254muiK%?TWJDDjuf&tenIa(<)*?t%>{9%i*6JETSZ9ZDEG1Ptg(8oY= z+d$s^Dy`A6Pd=$P^iaNkZeA2L6G-A`>+kSxiECt-jCk-|sKUAEcS<pz^o?hO)FqZ= zrsH=Dp35k^%st*JXqq&!7y9xyU6&khAv3a>p*k-+^7HTh$=k4B5F}-P@|2vNUG9~q z6qcN|FXCeA@lSI%WQx&#UFxUr#Q(a)%`i~eR*{6zv3enI;54DZDAPszeZq?f>}`AZ ze0HXteAJSG;QWyP&5^Zo`9zN54o+JmYmR#YTo3jgZG2Doe*F<W!tU*gaflw2_;f$h z!dZ@9k?N-Hg%7@qx4qEbikArR&-7i`4Me+egSzxj)=*n94(sXyn#8=#9@o2HAHxv+ zS#Y~%(z*ydP7W29tY6C@lBS0!A3rdhAaJ5E#ttvv%`4eZ;kdnSe@Bgp;}Sn4=9VyV zf!z*ZzmHZl!kgCALC60I0Y>8$9~|ICCzd{|AY(4@B(k8f)-s-t&A&w$8dMWOm<9}p z%8n&ByvIm!)$3Tje4R5!{L52_<x}k1g+-As)q*%@cFyn4wJw>*?v)@|mXED`3ye^_ z2d2&A-&*VXeAGXX<5&KXc^<vHW&w#C5Ce4d&_ipM9+Y-=^nSN=HfMA}$r>3P!|+p- z!GCzNRc?dYnaP;s2+}^GYq!m4Zs0!wu$io?E1%UVIB*N3*h%V)fU^U^Po*F(vAL-g z<$G!BYKh%s<x!A6fS~l_4umT(wl{?>WrVyF{YUCeHY8UtB!+OUq-@eOj+poKj<8`Q zE8knrURknkeJs|ELRA_g#gwFzzY~6`LN57BrAs2|Xlx~kL?ZeD<0}$;_TM+rV>Zo! zphKAXkL}W(j1ctCbOO+vW6phqo$uM(q`_7Zg#Gwg0qwA>WM4wWVYFwhIebSh@$58S z4<$=HtymRa>Zmo8ja2%xRn_W!#ayAmPm6FKFqkxwC2a1hqI@@*O;1<@KS7J9S_U$h z0+U7JrhixrpX5FrUO6t!>NL0c^fQ$2NJN)JAdF<Cr!Mn57ovi65k0*NE6;!Lb)rCq z0q{pj;xxj^@WcrsfKAUU4tNbzsll&G<#foUmg`Ys#E{2PuJZ0xaZpKxdST=OcA8cz zxA3t22G{1`h}JQ`X+>JXi~BUCZ;P3neBwA78g>hXh%Qcl^+qn=!;b5#pR4$~u=n`4 zDN5q5RXg%ZfY@!p_6b2Vrq$NJSw9~|!_@inmae&Tsr;GLIF%)Ionu(!U~8c9-09bi z6Ink(>BFy(5RxqZiahf5E^yA5O-(N1u%Kf<_0Ew$k0WpfAhpYy4sYfrVs7$(C|Q&; zP0U>?(3pQzz^-q-U!iMWymQo)zM16MC#09}ov(WGUbHO!%)YXy-PQw<Vj2y-{2+HF zV-bX|?{F$7OqnA+sEhY!Q7LQg`}8t&pVZndNaxT~cvsdji!~5cko79-MLo)!GA}4) zTdNg$#&N}!M@?zkhqGBa*U)@6MRB+#l-jB3w+V5y5>MXs@6Q!!n{*!S47i@vubamW zGXLr7Mq$;)A)Q&Nf0T(9h|{m1;9j6nd#df^jwFzM_~u@{-i26R;V>YRW!(cHO-YV2 z{A~~S94W9}7v@#OUKRj(y}n{^=nOKg+6ULA=P4jq=EFczMJS}hF`?!^Ot<H{Su-C+ zu3(Xog^giuUm`?FRc*0^6KX$+o#eT-9Nljt2kW_N>Vu|ZAchQ+yh2^h3X8h+y@b07 zDd_LnUUGm_f(`Q5YKMd9e;px57ZJSgj&7v5d_@fooSm2=LL(Il+5!G^*P6FhUb~~P z^^%R@;k)HrIIT{fkKSxCa4R0uD;o3mG}^xnSS5!YLl5nYb#gk2ATG<O4iZ*?3@!$- zTzR-eLb&S%<QqZ|{swVV^`Htk6g)ojO5k%SdY<frao^Q(R-At4t3<8}P}`7>krB?k z37tQAG0zq0d65BJoC(MYjvKvq$&V-}!bQEM5Tscw$fg4YiyLlg(5-L_CA+PKc-Fo7 zPEIRwLyx5#f^{yxIVx)W|4j@)yri_3-dk59CY<yIy=Wva!zueokb$aTrt7~8pMiKW z&QD#v4I#qF*icS0dj9;5iwb%YMxLiUOe_=XLs0(($k&CqjpuZ?yx?aC65<tPzJeMQ zu)YO<WK#T&Gz^|@YzvDKC<|J^OjOZ0|EMeN+qKMyCr4E;R%GG3KV0JO+yyOn9ORKs zR(1j2#+#S0*I$z3*;F5{MW;TI>YXFU8#=l`nsP&}RMuu7<WAiG*Py_|i7{3;>W5HD z{MQgA?tFIcw-v=fKUxLokGt<W(k#7|*7RXFNH@(~^bC4QB};7|F#WagSVr*lMR^kv zEg4NqMl<xii<zclR=16Dvg8VHZ`MAYeCWr9;&~)%u`AhZx^#?@XxKg2EBZTgX3ArY z=5fN>nbX%-6zDPTlKF32V@|g%4Xvfh6j8WnF<%zXQ`jgj4R37{2+?ZIls2lk*xuDs zbC@K@|AQoQ$Eb;^jxV#J2uYibG|koOtUd=k=F@j5Dw`p2p8Pf@dQ<RZ+XPw3*#LNS z_b$H()3=Magpty2rZHl-Eql~v^uA9p!oJ>{yFSBf7Ijo6QhQ2#4BR>_HUAVF5s+H` z(qKrCCBeAI%Lo=(jzbgOlk=jB!+t2NwRR?3UP8tY{BA$v3(#0w@hHPwI#}2SEw9~e z-XZXUTo{t$i11q_rb>!kG^7!#RQS%aL}Wz8Xf)jFS1uiXn3)!1g}O;qhgM3|lc-(q zx%+KayWyDGt&4dU=VH@$tqPvcPnOVb_*)uo){NbpT+9d+6gYGyn*2?UuL}4TuB6&B z>gCGN2#JGh*j&+oSw}6kmLJ3dO5?8=eRuhe4+<0CFYGFx{n#jUa%{o2Lm6vqZLsu! z=&{5|LKnAe<o9lxAZeWloelw)rsT#2c6%d38-C86#kU#e7B`f>txILrId)<EJboMW zr!r#dlFR<TX>x)NcZR6hZG00l&qZQ^qWWkwr@+bwmgbTzl&^dCD$EXg_tC$G=TP&5 zSK)$t+R)9G1t4$FxtueL@gYvg*(ubR2+qG(Cj_<{PR#9cz8kX7-}oGj#81JG_obl^ znj}Qg*eiEjA9l$0Y@daiY9oV!9{@bC<$O>S5eUiza8535>qJQ5S(NOfW3Ox9hy_5; zc6WFkRDPN60GD>@>4!|y?@9V-LK?}(uriBOU)YNOH5-7AM;XYrcMzxt;{aqr6Rr)S zf5D+usv~*RLROm$V|=#@4m7*TF;MNbynQqGDGEVwh>pg2lV8i)Fy{y{S!D>0$Voy5 zzF7K*6zmyRS$9M%>pc;@7?o^f6QX498$A9eOb8P51PQ@^Uqc55(fo(jSyvKxj8-+| zFFjSU<HB9HaFnPU1Ic09riGQKIG~D@y(sJw`3o8)*Q@!URLFSwoz>0t_Dd*0=8d?d zd)phH!4-YFivNC=fA|9^e`kw#J>Er1IEG*yCQK1oH_WtHu6H#;SkyIq1p?z|0N<+T z5H--_%se5Ozt+$&qL#FsjBxOHc|JV=jpuK_bpl`<N_<>5Ge|g~n=dkIV)3&nWT8aB zZgu$@Va>PVXJ3eN<3}fzkx#Wp9ECE`JhLlTQo>O$GAN}6D$eK?JOGAwfk?~goghv? zJ5EuihaM)q+2%Lnk&b}Y1j$87FCg>34b6!O<P#ofyZ*5EY)eE~_abuq!Y7}#XaSzS z{_)7_exb21QTeY5g+2^Oo%FXFTM7{m==^Fo>b;eCKT_K#_H*G)$=I@|!pCET8^it- zzOgWpX3H{}CK#40zH&8^>{8X}P+6|u8COSHQ`+elxl&BeDWtViXGUX&+31`?GEVtT zforT$bS1Ta_-d)zjmgIHyb~d^F~cjH3r5bLePXoz_5@;PR~U`8UW~frvy-WapS!F6 z$dYUMVZ3NwW;o3nN7CP04|nRCT!xBb>!0oD^}HKTbW&^^J7Zt^x>ok{nVq)UUUvOl zM`MQ>(fGlH5FvkQPXRLlGE`y~L0$e{{)DRg3)_p8t}6jqVxnM0aeAto;G}xDL2T0A zlH!cQ)mOqYZ8WWYO7AfJ@15&matO@wTh&sL=WctjDR45I)6wty%*t2Uy($CF-T}AX zmZ&vN;WbggolR@i+%q&g-b%*LzSK)QqGq)P?%n*bmU{3t@*rsewJc8^Q3TYq6n*$5 z2WcWq$!+=xW=UegvV&53Iu{59oewE$#bNUmCoemJGaCZ3SKt0+@dr5anC1j~dmDI= zgKXZ?hLCSaZ5b%)zL5c()zF{JQVS%vA9B!K{YUnZG8uuZuJPJgYhj$Kdl&#*;-vM* zFpida9J%*LPb@1V*e#Uxm+Lh6UGknKD;CVRzt@wd8IXjkS^-^Oq5!G{RZxYc`Rc9s z!@G8c?!PN6NLMlemG4o38tYM??hods#wdi{|2yFMf9=nu;J;Sq(cu;OVYOErl9r47 zV+qXJe7LWYHU|nDOO<BNy!8wjDUy|Z>AXUZ99;kq>RVkCd&w#QRO_Gboi0B@P$bx` zsP{xb+Qfu+3GRaON=TmL!kyWfEuh(*WCX=-X@72C16Xe|V+gP76Djb1Ee4{gpyF+d zS^L&DPvn8ZSB-GpwdTU4@3L~8>HlSkuwOsvIUI<j#SgrU5&arNi&?7a0QKOTwWlPo z_Wuv$05U4TF@EM9OONw!RlsR|Ktf!5zwd1zm1-{BH<>YYObu|(zMizsOo!L%SaDw5 z5jAmrHxyX<Ogan%nbt`YP8#9&i6IYWVgEH!%j+RMpNq^Vb<;rb1t%u`PY&NX_mA-D z6(Yt_7;Vi2+1sQ?Xe~LI(8#PgG50kl305Vayg|0mN}%h@34=4Giwqi5exLl+=^!-e zhpODruhL{jW9zzn=tvUf9giF5qp=mO<xhDSL>$3}WDxe9wDwIg-vsqTZ(Gx=W~#@Z z){%cH<P?c1CYCH*X`N5q^pM-E2zQltb{jGdNc-F|o=u-KL7Q`&xIDMvFkaf!ujP9L zwu#f&wUVFctY)m9$&V(QM~~cE>=P(BPMucvqx(wc_xdW4eSWp^X7&^=Ur$S0zx{YM zyN}D{WfSsmiFXa3ZI$pUvG_QCexYbKPoiko{^paw3wxFg_NIhlB16y0!!12XXOAi= z{HoiiC`kMPOee22bL4XRN~T1jPcPYB>*ebaSZi3&G`XQ{7%{LN%{SyHX=Rp`SRr`N zEHmHn)J>|*2f^8S>=r32np^sUGyUF}W#{9}w)^aUwvD}Ux6ZDN{Aet8T{DecO;|QJ zWt@IUW5D@hQ+iipf$Z)}3ptZYReH@_6(8Bz-!F6%sy-W@rQOHW7n5q#r)d0UWS2?% zkT@*MekDzYr9h@?Dd+B^9M9OUQjJe3w>?j^@%{oR4Q{sWbKJ-NI#$7tKjd8d(7;#d zl8*>23W)ifMT6J7X@_^&ehjb^MP(eV<l!=KxU?WnQ!$)tp+aN1x7m_%QS%k&$pumK zi9^-rp!zMN<%(SZE#B&fizZ^TTy?lYjBkAS>B5i*QqO@)bTpU)qK+QZIQ(QEMd%`5 zYK#UREioz0FLj{yi13GY>WbVlR(QM3_?OsfoWq`7(SJ>eGaGBx^qt&LgLe}87wSH$ zAT(dnp9!9On@NMumg<Q6k7XRxyF{1*_g%Q2>EV4Y?+J^j(nAxZxYnNIdi<9Hkr544 z<&pzHc91rce73a~N$dQf>O0PeQJ)IAc=$#Jr>{=CuAF|9D(Zq47@~!yzP$@VM|dE! zOWZq1ZlZcS*qF)YON-Y&(m0<&Ml?e`b(W6DqY1~%5uVN;ozicOU|>woGaG@C{5OBW z(Z_-jz?!{jbkpZSC{oE`IGhh>$zqDP&b3Y|C;{uHExeKfHKIS*h&7s(wZH)ZaoENT zw|KWXhMs#xO~Z!)T!OTo5;xe(jDs2Q-%XTol)+iFJ@UBoewH(WHIh>OO^qZhef_|` z7AOwAKU@~)VywXUDpz1dge~BfZIY{)=z<@C_@r;xId+`B&m>kW1J<4h_dEQC5Rll} zeOgG<a_Okj2E@mE3yoLA5Lj~xdlj(x7S}+8P?yo=`sWptnN<Az%P-<*A(x2YDNfJ- zz&?o|Lu7+%Hc<1V9%T5w54WN4=B@5MJ>#7YB0{(7zL<ku6FRD-8^;05X4AE%8Qk;; zl!xy88(VCk1SIu`bcbjGlbrBwN(c9o5r!m95!@`o8X+evGC*jq%u>AJcH91ii=~); zRasJoCE1<m06wh6_z4=lt~e}HtEgy&bLnda-wr{ltD@LC{4eQS^3|g6)bAF~yx)I) zk%_p@?B<%&@G)5m-&g4ut(lb*uZB=ot^HPTiz#=`(a9M3)FpN&=+~)s6(qr_=}oww zeb{NuK0_ZO;H~YRXW##tpqpjSA%-Fpo_KtG_!}HvEIBlbl_WU-BH?-S6$CFlno`Re zjGiB~F(~FIn(rUTsqvEmm)c11g>_%ZBw=+wsN;o$dJH<vBmM?jQ9@;0B~6jI-^J8J zJv6r1!h}J72h`!*(v1?dc$@kK)aSGS=pdK(sT`)o$f(ob54h#42vO4xkwW(3a3g;0 z>NoFJeawcWN#l1l#W&<=&{&U}B?UxJjMX@d-_x-DLn8gKtR|n#(87g}lc%aao|9yV z2q+n8IcfNr|Ba?FsWFREAJ2@gde@!zwI7){$GPsJn(z-Ro;+UO82q8CM6*>+zwmJN zTD#ZVG0qc1+0UF(g$r^xj;*EoUp{UYE)W?XssF8Ml7kGdd_7qwRzXqnuTdoCQSvXk z6HfWWZ-ieBX*+-T>g2}oCNE!t;(0{WYOav2V(XHMF8zjN#JsSyY3@rE152`9%*j&w z>pxbE9>x0|e$h3Gh-G>h=CCXTB33j(o(|vHHTe^YNz?iu%6ZV0g)IVnp?dTlS8^>; zvL4T%Qa;BR88?RQ)NksH+&CH|^PR|-Uuh^EJ+Bb;EBQSM%6H;G@iZ=9;mK$J##6}3 z$);0vBOp$nD&7LfVjOC=@(VY4V3x=KF;#zpfE<yB5~D3U9JJ!agp9D+b{#>_+bF`H zQnHY<kGPOZHvgdZ3&b!OYt+k1xRS$HHmw5|k_db7?kUf8Ko&;^*;nXQE5_6w9b@Rq zxoWn|h&g^%CIgZ%6l%asLq^z(3H|pXaWs6NCBl5Wk%Dr5txrNI<FJ3Eu#`3c`SWY% zsRc+%&cfN8DocT>K*Xd5O<$n#+2cZGG8OQDSq|vo`ijCR?^`4+#u3dY{`3if5-t0? zfqfiA1b%N_#73j)kn7%gyR*13Dd+%!1jt7AN6IJy=aTkvlsk&h^TViQ$pFw9KlaY6 z@`&e7LOGY~*HT)%Vqq`e^Tw8T3wn$(U2>k%N*Wn{vf92!WAhwrsx<Q1Z=--z977LW zlW(d3TxUt>$cFHr<%k7$9fhS7*waDS&zakp83F@B;lcf41;<xTjN#X>p<q`!hz;Pw z`8({4fc4ZUezPCOG@F`|)%#WJYRC%bS2m=!@lc?5jtGs7u1jP7y^U1re15t)1uq!7 z=;+rLh;$O|k=!cNUFF2=46i8!HLxLE^;8!*m%y!GcPVt%(1HuoZHxZ3<#RMwi5JRP zeuA$d2s2Xv{hzm#xG2H+^y2O_On?P9$A+$Ehpa!!3Ykujw|+NGk0jh8uxHPJB1PW5 z<!02$S)u370hGD9VQyqz=Tl4d`!D_2HrWldJNW&yR+~vL_`yrpi%juNIYtA?UcV$h zFBkq=VElCYdBr)&hXU%xv3k2+0`w=`F)qDMN_?X^_Aj;=YYe`eW!$NK{7nD1<rm+F zvUl`@Yo}sD*-R(fPE^}a-gGp%#+2}o^YU(R(#N=g!f1`JCrO{{rwdyO2pG;(er@^u zE*kwoc16Q!Mya%&{EM*d+}hr<iu~P=!b>iOfmEe6Vc!h-9A9{5#=kkWwIUZHs2!}o z=}I1~AGiFFpnl{hI(Z48$0a2O|Hy`?AFj{j)YX<Z`I)Y~8!W1liwOwCP`)y@@$(vI zI=-||!A0>2?Hg(>h{~N>FzZK;O8YZ&Rq`tjPRfqh#FD#;l|S=KjEnr3_vSsng3lMd zkTv6Kq5MZdcKUC0sWFo89}oK8fF{=Oa^f$$cfk_y{JpF`K^x!A8EcFr)D(vzG|i+; z4aYEbx|+XzG=Z@D{Pqe7{GtTcltPirG-hLztcLpH<dh7u8DF{Kg7T$So1Z#nOM;8i zaOs@+8Kb0##v9kdys4)%MDv^%D}s{<v;0f@1rI?q-H^Hs50mM#&hpVi#746~O&{TE z&4uH(jtCJ#GV|{xPCN$kC^@uXbq^d!;vCES2wcnDKVQ_|Mbad{O>%7DhLN<FEG28; z93U1Zr}pINal2`j`k;&ipPEcgDodo3TRCfxT5KNruNc+;ya*7KofSCCW-OEP8t8*3 z&J`!)SqY$C-lfOzJIhXF=JvRNTGDC3_Z%H2m(@hZ#;cJM=RC$BXDJH&d6iGmO1U5| zYM%Ff&n>65&S!{{URxN5t-}JR9lAV-@y3`+D7C$1!h<Qvuz6!K|Mt*^D&iR(zPoKz z7^#=Q`SZM~`az4@yp$Tk_i+o2-6jwC0|64Rkr6i?PYuuWXCYR<^ax<$dLpO8V)yE( z@S;My9YefUw`Gb{HdB_3-?|Gw16v8sir)$LWDxlZ4W8@YHEi}}$nnAo)XY+QhrGBm zADF}DzVLt!n1=YsxdGqdztcqE?;atR_vO#Z+st@CSyoDs1%(VEn;!pY1nePa7${u_ z8aOe^?xPY7AjfW^&75MRzR3@Pr`m-b`~MthoCr<ew4r@XEuhX1C89@pF!v>I1DsZJ z%DA%f&<0ACE8l}d!4lb<_T1H1U!}y<QJmHyYV=3AA|_l%G08BYKH2pfB>x6E9VjoG zU+^o|9QewJNxu{kTV<wowI!PA34$FwnORbSq|x643Sx+A6h)FwhA(|~C!MVbm^Ak2 zW)xQF+=T8iOog2WLQ~~6{_{FwIe@z*RMk2hB2D$K30p6G?{mXsNlN-D4>nSz&9!N} zjJyn`@l#5V*srEh#r2}JB|kD~iIse~E4PcPJ6V8m&D^q3^{ySvmmAF<@e`U&GAWi- z-51mk*PnF2R7hF!MS5Ly<|mkl?3M6R-c$_9>v)=@kzVlpPKw2VSaIS>l~dx>H`?p> zgw6LBSTD!080vforLOx^eL+R{E=&J<#aGvv_U(&ViAp^D<V)H+Bm53h?gK^)_A9NN zK82C*$TyEEeX3U)eao-cd+JWC^7QFX{Rd{5_cc;7pZX<NJBKV?ZQ}i6c|#)n4n=`Y zV(@l~Fn`>1#OeUOZbGw}fm{NLOPxJGH$dZ_+x0wAt!e711|x4_6uA%6<pRiVE}>m* z>Cn$+Yhxv(BxQweTOim+w7BZw315ziw|YzPHn@E%zv}L*97>FFd}6{ee%R8w#vTSP zH8X-M7HTciA7mxLJ!CxlMi}QGoUE~f+Wc|?L@Q7BePrR0I5a$8WzCOE%qbY9#!2W~ z{(TvJ{@fYmCN0=U!2h?uhqYQ|!yI=HQ+gzS`mGjnFqp!545QrqW!M(><!xoTw}8%F zBT%7yE9o|i;3`F4nE!EadiI(b7bVj+a#OY21LS7Q%NvNSDDnL$e_tfc$_Vki@?OuA zKM`VEehmF7d#ppg)oe>Sbth$$Ynj}wYO$B`?!RybxcvV02K*$&CwDO8z(CZtqa)CL z?(aJbZAkC0A#5`FQz2M(O>rdQlJr!nX+I3^K5x1GDR6D}1e(1VfWp}SE;qp$$h5sz z3JVy|ifIzW%Orm3TPK$w!3*1|2!ddcFX_y$@8EQI$UV9eUxGe5;u#HoBI6WDZT`OC zdv(n_7}+ab@D@f^RF!;=K>iUjOn}GZF{E;!_xn8?VA-}%y5_q8l-f+cX!nJh)c3+r z_T9&ZSZ<-(z+0$SLug5(qf>ys%D(?2frO#mGkE3pkEAy0aTMWqR-yjNCy4hEJ-NI9 z+lc%!f9eLPHXcasy&V@p((;A5DQB_71nJL%Cy`98xv$4DOIoBV7E~C?KYPcO{GAZ4 z37$6{ivWb08vTOr*v16jZ^?-9V;D)7Bbe~RJ}8L;ST{jVKr$u-qIKb;UY6AtzsmrE zTs7heHi5Bu%YCo`j?QU|mQC2PL`?rMOQNyA9gX42U|I?HfNkVY-@+U<q8ISx@V?eA zFRnWF^-2dPe7rua)~Wv?ViFKpZ9x~wVSA+$nhbi<rgM%AXNvAN&uJ#4x;`DLfAJ}R zCwAjcpRU6@8@HG|@uqsH!4Q%BI4RNOUQfb*v1EXeXEd@vC6pm^&2eeTpshY~EGU3k zGSS4f1=m02_lv#hX}j#L{!sh`G0r_P{oouLzjE8Q<q)D=*(uojt^vy>xn-e!OJgPt zg;(s!Rkb&P-D6pglXwuEIiraWL3@^KpjbmnV9azf-f@wKo6O#2GX*wRuenvYffxhK z$S{8^`9hW7UBw=N9+L#@-@48dJKRX+hI!X#5a`K@8j2RJf}T$KHx8<#6&L50De!@~ zL6@LG5O#1suo08622Lxt{%h&H94s8qnXdoIBE#E{<e1qP)50uUdCRGvbn#x-WipI= zmuQLlC|5*9SY!z#)Ib6e=PeC<)P#GJz4bkXT2BS8nYmkX^N;EVy=2=@IyW1?Te2pY z(FWC%@R86NxB3&sIZK*UmU4|MMw-81%+&GAa4^{NEq#=D$Lpj{u#iVk`d;#dHkOwu zv`Fbx#k7u>^15VuL2vT4KMwD&t@iTXk6(FNO3m&tW$X8D-C$m*!JEO8{E3v_z=d;y zo$2xyyl)Gt+5Wjh9_UVqcSJYOX`CoI8yCZ`H)wJvwD?Q)^b^@myp`Zm^gAQh)fp0| z&UPbL``^n&*BD-9j9jHxa%au+{W__U3x2B%FNODNOQVY>nFhD)ifa-TcM!baPf(<b zy-`)bk#fnL1#F!4LiPhn{8|o7`>t*d`dRST{e|XrNy(gNKt=00_4+XYrcj+$Pyjf) zsT%zvKm?~85?;&U61%ppp?pQz_LES)f{$mah_Dwv%d$oW5o1`0N^i?I<6m)L8vBw1 z>bz@^k;(5r<((99K*GY=@I*~(Xb)n<NzN8|`JacV*>e4I7`BQ9_uc`6ViQ_4u?U;W zBrN1EEkEFXXKvQNqJ0fy6LD81k@8Q}NavLF))ahq-@K^Q9zZ2f&U(Z@s)7G%nl|lG zvbwy#4I+@V?Dq=0i3s*9wF-%Lu`0xpcb{U*Aj9|AN;PF(hxZIWDL`F>l5qw7=ldM0 z+wx49r9#$hpV|<3RL9ms{YeQ2?rv-#=;4ztsFCpk*s)-0`Kwyi(Lu(I)Fyxb0$tBS zujHOraqmKY5o=|-Fd5T24oUM@CvyW8iSkB?;~iML$5>nz3S6uZtOx~{<<9P3$Va-4 zqo{#lCbd3IV2lBwiN+kXYr={2+ES?!;D@Iw5Yc1etpKHu|N3B|8;~tO{tsUVdehF4 zuZ7fmVz^nlj-hEJEj35_Iz$vcQA1<Rx#%$wn!PzN8Vr}R8pk1N393vO?JqE~mU0`b zINKnl>>nu}XHSA?u4nDMcAWz5OyGebpPuSzoc~m;7ZFm6cR8rjA%%V$e@DB&o0m|~ zRnh?RYU!munz#1Ifw$E&I`5kRZoRj-v|3RF0TqcWRp)U2c#9HuccgSCJ~~hney<x1 z98$D+3#PC79M{j_4rg<l5`_QpQ>l==mp-WRLJ}OH&i-WxGp2%_p7tR<A1YB<6u)xs z_3Q=H==iNpJrm1Pr4!E8NiWs21qx?Y8r~16(kg@}2*1z6exv`R_<EW=dOWW??rjnm zp99PBl~!w#*-H8;^yJ&~DJ;6F!aNr%5;V<9?sp_es3z|}lyAMfyuNTNne<bhMA6Lq zg`cgD3g<e$l^34-q)~(=e#4%k5N;xVuKQXkn4lA`>2_TFH8MA*v~|pL<Fl}yS<KEr z-7h8S?V6b2n&Rnd{f2{^-NiQL&Xt9utVBBLEu?xoZEv;Ke4j@O(4U<TX<xf2E={YU zPf>L5cW1p@wc(@beI_nKZ(v4pR^ruV+-S*x>^63V<lTk6S>8l$u8r=Q1II~6GP28& z&z-G2&eL3bVrlHfcu`v_aYe~JpouX>>NfAshXPfD?LSmB?@s#WdngG==^E3w^t<gn zNi;4?_2CH=+V+K!g?Ny$;HN6C&BfkL9~AZe5}7U_fmE6<T!H=I=5PYVC0KJ4=b~Zs zPIS@KcGg7nCZ~mtF!C%LAD{CGjaP7~C>LnrPGy4vm}UOOZ4&%FWV7b9;=bA|h{>FP zQ?`>(Jqiv><1b&DVSQhzJnPK2bQDnq=>e})ML;P0w4j6}tp<SrZO&t(XiSOz`gfRH zpJ8|~GD>_`_CPGN=wCbF3D5Z;`%)?F>KSTSWpaEVeVv$%0b>yzUZ<q=;`tmZjPj!4 z|8DFz$ndbNqOneUud}DOhU|Dygpa494Qx`}VNiP4=4?xeaavZQ!b{gpN|kg2W7}#F zmqUcNF|#MbPY3M+g&u)udpsRY*P4a9L)>m4`vw)F_m&rTz4Z$S49vX7m%I_K)ZRrv z#3XQaU~6o#_`7=Nd=~ILjQgcNMo5~2*858|yGB+J*VD|WyYT+XX+>3>|9M9xR3-%O zG2K&a0nLLa-2gi$ykNhT9!_QC0h8dKTlffcfN2BqYQajDk?<?nAj|ls2p4+qOf9${ z*j*-3lgoM}gv#?|C|Q|fIo1C?&H%5-MENRZj6?Agn-3o@YT7Zl9bk>ed45RRCkige zzi3-yo!m##l<?04UOKj>pzvN)-|j})k^`424eAN5^Rrpt*O<R|I;dL<I^S5wcxZl9 z(Lo8-cd47ZAo(I=vw^?|9cgr$A3tK_RB<>)2Xb)^s^^Goq+>fvt@k}-&m|Ss(Zue7 zSj(_uNG5Zy>oh2EE_>0z|Hq&CnShWT7smLqlJqj{Df@Q@&W?6DlRy>BDrDGTU$)$N zHA6aAgjk-H`0WgPGCyx$9|sxX);I0TuYt$%=xyvJ??DJ@@4);9H+`^i3Tg0+dh28y zCid{8<8QYh)4fM;s8Vwi?|39_PD`~t8t{KkdH%BQm2><KK5T`Q=TgJ{KM*-->+?Cs zGkP%G$v@qvz`FQ0ewtIANz}%4yOW9mQ&5<;@hY*G`ebKwrIhQ`E!7J_tUr4%qjjw` zgR$`?CHGU!1myDxDo+g9gkELjcvg$O%4jgt>ATl5|3gW)d`vERiApeV`y}TK{vM<k zw0<aSDf~qJ`W368VtBd(Ba_$DZMi{eG9fNc>?6GDN=>5U*PPTxRqKw}TU-=@7bCl( zH)wr7&J7r?ec(S;&hKd8de>MYF3sI+)$~gSUDJMX%uELZ$$>ydppKfK_uR_VH}vtu zxjzk$+#YB}>rZRvzBfZwjXI?T$$i#DU%gxZ@#r!d<5;PSs_Y!gSRGrMW5i4+^~m}o z&<}o!9wU>^*?(08=RD#x;|1^82(5%vwIqsA>GSK|U}6a}|M4vB6Veqt`yWBul+)Z# zj^pk~mj@4#OaGdVBndv#O5^PbWGo59uQ+Fz%xsVmz@&zMR?R?0o!yxqBk*O&4HNo~ zE)f4f*U`mfxG0{`S99Q^%=*;a*aAW2r0Owp48GJnsTdhS<aswl5vX_r2ggGPl#Wn` zG2OLe828YTUkYfvXWT*CP0FF6Hh57Dx$B&t_j;9Pt>)c+sfbJ|;6L+7)69vL1P-Pr zQgpCgxZBU&?xOQ_qrfJLB|hG?U3BG3&)KVfsmHb+wlV0qhrjkU`&R_;KS*Df0zho; z_Q3HrdjNRoP;rj=J3j~D1RKo)TBF`b+JZC%zG~osKo1JrAZm)N2u*@OBH^y9F9gzY z<YnCew9_px=ZqPMq-7$1mJrRSJQ;So>W*aYsRDicpj%aB&>XY?*J<wQ>%v~ZxA0cF z%G9gl+wYx)A@1*XM`Dj$WbYo$g0;Wjk+2;EBDWPa!R67;(01w$tOyJ8v(nOghfv>U z*M<HDQ|jFkvm3<tX{us4IV4P^v$?8|VXQPiOv9L4B1|o4FM?|ea`97uWBvEy#h2Ph zWzh8wTUPMR%GO_#2x-eg2!s6K#e#n=#q8h5r#v-&;8{Gf=W_zYC8-q6v_44M<}k_F z)af|@68ROg0T3<~`lieTL~?pWAgrg4Td?qTMW0s2+CX$t;#;q);D73wybjq<qgnJ5 zf?GinXuRp;Uz~tuJe6>Lo?n6x9*0-UM?L%b0MufukmM?JV1H%yXnughHBsUB6Qt5? zA@&G(Swhd7*;}61-vKuF>0kKXrjr&}7$9JnHnDjG7&IYDDGAr5`$SmMc|5yvw>|tS z)*!0t$_N~lWWRvj`@{GYVW$;WS38d3r?dYrN(}=0wkPKSFdFJ?lIW<3t8XJeCoyVp zjwG5^`^VS|TY0qlE#=IysSziZ^^dLZ%re^NuI(7+CMCBS$|q#DTHSmm7bEhxjV-RS zC-T15MJ5-Y17gZO(!0AYI<|^2GRAk(Ar-=lgfL4B3`TjNb+cz4!cKy}2H&&JMU-ru z9wWK?`3ME&i{u;0NLrHa<2#8&*qv+Ktee!xO20E7&N)Sa8w3Z=uKU@%EO41JjyUlg zJxZXc8?jwv<OJ8L;l|Gtn8H@{yyq;5L$#4TkF~vyO*7QyefIT=C^&@=%>~LYf;TSd zyte1hlQM9_LKYA)!SWN=!6+lf{jc7Y&%n*+mM3$+1-NoRhwD-h18!D?kG%P}1d8yh z!CVla?ub%2h_6UY<GhfA&A!XZS3#i|vGbvE1zdO^7Vj>Vg#KWn59*?xL1mfcCf+PJ zZ9jKEEtU2n{V{ySw8R3d<|dvurQTFq(4Tn5tTz6o9JgDG`pR^O(rZWYz)ilG2)P-{ zSjXOXwkN;5vteJeL-|_YE4)+fINlh&(1+5<tzG)w=28$fe~DbJo-UKPa;BMX#`wH1 zt1i8Hhi)MgLrnE);~XP~9}_Xphe-nMt{a}vjrv%uFUhL&lH%;yQzP^`?z_XI9$fWT ziQAQm+pVzmc_|8mWoX~=r&f%ZcFf{Pw2IhSd3J`8Rt56sb`FLvs(fmz%a0!fMNf?G z8`8UZ@AXv1>3<)M{d)hz;y`V01f+M<;STBOT4f0)m2`No(7I_}oHNgdxJQf_tC^C_ zSu=HbB4v3zPQJL40!@ZDE#l7s^g?{O97xaYJfBKt+~DcHKfvvj>^#=u9i_z-G;{;6 zbBUH5??`##qbA~e{@b_Nt}609Ef@d>XFma>rhm`Q^`j?(t-N}190bW$8&e>Xq7IxD zD=kIIE=w_6-Kdnqt%|YRKwH^zqJ1Xl@P5s_N%S}amXet{6!vMqs)P&Bt>qFr<;%Rd zHe1Hog?rE_N)08vVyyS#;;10SVD2*t%i&`ix@G!e;r}XCk7K?$(X4jx{5BItV_8l9 z?EL@$S(szvH@rzKD)EOZv@n;ADN|qy-ra!OcYX<CLM`Ur<y!c#k3X91!}FE}v`f{r z&&gpj%#KePgk&`C7HS9r#iwM`Pi_iNCreHJ@l|W;JxWCOUV6oqH|oe)R^KVOLF&{- z!iOLYy(>-`hQ?J38C6hjxR=YL30{a!<BAO}-jL4nAsFbDw_sy>$#w2707p#6z_o7v z`h(oj=94H&$AKc8xsF$3Eq_jjXA@v>)CXo5O<;dn|6itO0?cNu#z<#!7d^nkxhkN- z#Id`i02L{p4to|>+e5noj`=QT8#I0(Lk32sRN=_SAe!-PGG-kJ<wrcd0W)&A=xu>; zrC;tW%|&68XOLRLO8rqAoi>Uvp)9yVfp=_s_q5;(D9P4Dc{nlcQL3~!XOu%Zxb2d6 z0zuCvQUkYRLa;vqUm&;iQ;<3QDZK{d`d6hRXJ<VSJwXxh0iOj{e5ij3zOVRXT}N1{ zWrFy-JW*Iq$8%Sub6-LL_09llUhvti@IN!<k5nYqTXYy($|hXdPf<?)6`{qCl&Q_< zqeZf(jju3ic+=PT+uE{S_{gniTAv$B`D!4Lw`qREEVS^#Szo8<<7|JNXx7PV9$kx@ zjPS!H^b2h1_uUD9VMc?Scb&h*%H_fJDo6cgqP!mlB^xZuM4?35yOZ?DfG+D;;NnT8 z>J9%FK3q2Z1Ey)ZKiY9!U>gx$SQkB$(`!#_?bOo994Hw*HMW^vOdej9XMXsmHIn7I z+d^M?N7DE7ve-@kBn|gnNMr~--Yi=1LM620V_Nc=wpZ1DlI@fv1QWG~*hIg7XdqQV zH9Y}>Ne;c;m$%&=T)zno%)vR^#)EEd)Me8JA$DXmqnFxsL^v8>c;`NnVW_Mq(K(i$ z-{?%xT#z$VHsJG)jpr&;|B~Z+OTx;onc$;8`8JIt$xP_+=dOe(=5gPgEx*BOlaHSa zU33#2O{&{96iA59sw*MvL-)8ek<R6CT3|k_FtB7$I}}Q!U?}m*26QV5VAS4g_fTNM zv<IkwT0>d+u+qhv7B4r0|B?=Z5P$35cZWd4Dyaseu}ndoEM)Ll4@u2KW`LJ(LV%cW zaQFOMRw#V4EP~8&Mof*?+}t<sdSqmG8;qcRPE#-&c-;_d1}sr7=_fVb?*O(IuwB($ zx}qpfMqsq5hT}bbquIkyffo&#{i+~D)H>CT5F|9BhzQ82ICz|_;993;xrsi?L(umy z0l3&)_aZ{mrS_f$1+f(%h#-Jx9j<$>{uQLsrtH7(4CHC>sNBM_5(HAJAfttp^G{g} zNK2&WPJe1SiF6MAy1wGWgUP+V#?4j33f{jr3emgNNa-K;H8NNM$ko|^1J0yxP{QRC zUdb{6fm)E*{S0BBLd(~At)D>BrdGquky4}i>Nh^u_%n#`e*OFFxKVN3;dLve+zn|I zNY1rCk0!xTA?>Uws`m%*rZ2W{8FAN#Z9#c6W#YL6=%;<5+Se+G0*Nc*#5De%ii<by z$m;|VnU$9m5yt(_rydA-V4@I4$^HBT(mATO2Wx;qusm)!wU(6$OwTrl@6V%nB?$Zb zFBx>C(}BDntPG=cdgI<=Nhs3E6KyyM)3P{O1zQbLS$$e+4RYP?=2n4uwodp4H*VI) zUVH=K<BcXuNX#P+Vg{(1lB`e<v^7)d(0&lx2)m(P4n&%S!#%HgBTjkf#Jnp~s~H9% zn{`r2`g=m#Wk}HCiTR)UN$OyFeOehVV8@JU7j1DHhLDe2mHX6gR7e7!X2N|I4Um_z zJE?oVf^$)lTYUy}Ypaj6h%ta`IWD*UKd#<95bCyVAOFnQ_he0$P=t^zjBQlXhNP@n zN-+r8ccv&IRFo}zQjt9wOV)}gg^?|L5yqY@F~aY3KhOQX@AvmlclU0txvq0Lj^jMe zJxJ=_k`QU)odJhiVi4f6pE77co4l*jce4{i;5zEa<#ptn?v7pF&LH7h&V0Ukm6s+f zvwg_m2_j7T9(>YL`cm4-Zq!?OLVR0{>!|q^iw~U<^)0UUm9BJTx&3Z3`}~=0PQ5S@ zmxMh;HWuNECSm6MA-jZ|Mx9!3xC?~huJtI$y)qOlxcGWYIax*I5|3h&kHJ`miIMl| zSPyFh#)oRMp2|uGlrKgYp4a0!Rw-YnB2af81`$3mbo@AAdBx*4tw666R>pQRuxO$4 za%`_?={Z9oTge97SJ_=MrTzss+8*N1@JBxzdO6iA<|5(NV{G<WP>LhR=eG%0&)-SC zOT+dWHcWgA@0+l`k&Vga9e<w2^>r(A^Rv7iow}~~{>-&bzP%iVzhN0?-R~9|A%sn+ ze7)_$@*yx1JjVnWO2!A~J8?>o3w#0B_OSz~RN$Ta5#pUbrgvg@Ku&ewi7h+Y9es{c zg9F3KN7Ii$b`+-aamVQwt|KWyP1Fta#lyUQAexBR9RYHv^P&r5wE|3AbA|b3&9b7l zAs49fP4X<LM$RQ>yx&*1Sp*eo>=3;MEyC&BRWLhxZ0cw^;Gbn?pV@Z2LUvU3IbwN+ z3EN;N=*-PJ0$>Iw&l@xdc7|Un0zVJ(N#A0X9t_#x;F7Z=W?89Sljil=1vBd_tMY+u zdB(Ha%T=&F!kY0w=>vznJLGM%4-U$wY|hPO@?G8Y?cjAaxvg90?CrCp6W9ffr3>G; zeU5n*y(>U)vdK?VV)hZ<{|4XKm(df#_mrjtTlv#*?61VDRm$I5c~r(p#ER=j3^|#C zJ;Z;|$_xx@(mSS&Aw>n87ulrfFLq>rd(RJN>FI(v80z^1Ic*^P*?nK3WFu;Z3LSYc zf1f|3IkUsVIc+rL>)Ii%Pr!mtg9&x2dTVM6iW%nYT+l-JlHYtdARZzNo<5*8sur9D z^0i%4`udL6i<fE+^9*lgq09hUK}^9uEdj>yU0yJ2G7>|TKIW%9@BGvT)0!60vZZ5z zL9iA~i-iUD(UzaGyPLsUb|~viPXox=g@yF*0Z=ya+CClHW{w60sFI^f%NIb@bL~CM zXiAFx*lQTSLmu21EV?HOGTcJDiRvud9Sf}gqwwQkK@G0I{>R>hcJQsZAEFE!0X_NQ zA#P4HE?F|*m2?@84#LFiE(s18%PE_i9SlGOvaCZziASQ=ADdywQjJhRcFv?c`0KEn zX!?U(D@Kgl1OqG+b%;HU_UE5`#gaeVV9|o1_cl~y=IzKBES07VGD0t~%#H|@Z{715 zflR~dI`OmhERas(OahHPpf)01*u)mFpbW9EKr;F0xXUrubhxsccI{tXptN%`cBCO_ zy-oQHAO4xw>)jxz4>ihrZ~~f4Yc~7TrbzG+T0F#Dy@3eqvM_VZ1e$X1?f*Fc{?l!P zz+Ng>kCR5mZ+Fm3*;onR*>9~|Zl7}c69jfKNlsf=_O_O@t1c-#5`1&+!leclr#<)O z=)DEbKS5I2*yi5PnM*Td5Q^}GB<GVd^pzDOPz&9<`u?sjDEyKaos3EFl@M2V<2zSx zAeP2;>F|X;$c4w!_`FPu5w#{x?SWaOxm!05Ko0mcc^vd_s^W(agRs+bGpQ%C{4>Ve zI~cN)qgXjiJMS$k=m55m2MOds(oKURwIRoLDmLfH-LV>kybO&{Qq0&eqMQ?{Dgc~^ zjTS3O>G=~uE__(6EHv>7dPeydVD?D?$lSn(bmh#%?858=7JT^pdCurUNPY>gplu(2 z<ur(a!we;a0P1mR=-3}mL41R&l5T4}Lf~yGYH)-TeV15*OhfdMO)1So`q|GRvE=sY z&GX+vDD-MNvMW`_hCTxJl~-?<E6{s;o2X}54o!cb(hTOpx^VHH)xZuI>hru1W)>ej z%oSNrT+oLkPpNTZywV9>549y7juRp-3^%%m=8J~c1j{VYfK<KR2T9Qx@rrfe6J zfqjOHABFGSd~oWA4d)L6{^C?UQ%~&iC&%+s<!&Xb7#uyh9t(ujw0dc@zlLkI`Oy#6 zoG~tU-YWOn?(YDa>i65stMA8r#=u)Rmt88@H*T+`(gMRNjCbHT|M81|vSqH?&+Dd# z)$eH(x-*iicX~(9bFabT&XDPx$gmvUu8#5xh)__;s)uiINGB}6Jq@ZBM5g2HK3JSq zxT8`t6g&g<M`KZZv;c-o{d#RT@r2AV9zZ~Yw7>(_>#6FOwmwAQy@!K3@y@HCsr4c7 z#~UBPU(ydkhe@*|15%h(84!k~$4yEAPILcC<%e`wrqH&dyBQI<KR{2u>MY{&8Mv{e zD(M!OT}|_;)7}RvtX{EsmIBbi2CeHfVAGhvoxaSn-V_G6n{WRN0f+&&L(X?}Suvtc zrg@T3a47wW6Pxfr4B9^1gYK*-WFj&jhR;si7RHb-HMyvG@#1O5^Y;#7$mZ@_&~g_8 z&*lHmR11vp?bIKz>LN@DW>X?zmgm@L2B>bM7VpRS1EtSb;Ybou7KVz{s^9{I1zs`Y z36A$oK!5!uC948tTsnJY47f3h9CY?Dp-n^Jd+N^v$bJPk;BZ{p*p_l3V(1U!4!xFe zgu0>+$lDAfO~<(ipscyMpk?E0+6kRhDza?l@=+E;N$P(s1}hFJFd6QQf>BRc&{;5e zc#!wp#Pf@Mi5$_;KGPL!lV5{=hb{4hVhRHq(7G18s)-nc$H&7OiY0&H!&o$G|8@B~ zlcpwkm4$Lph2WcB5ug$c_aq2L@e-S^O<i5ZD2oDc_&=Eg3{Vnwpl@)H7&u9|v+KQE za!*RAA}zSdP-qg2)DX6LRsivgn)h{tz_B#*{JIPd#w9GUtm3Zs+@uAlntuU|E>Uz6 z;&#M}&R)FC%<)qodYrqrBia(Ou7Pqab=v`kEO$4E!Gkwgr6ucm#%RF*GEr9^OLlja zH^ZPS*)SfAK=%pb27%&!Z!-|fPPgR*_X02ndC{H?v!oU^yf9j2UJReLnpFpot7ZlU z!Dje0^4Q<-(A9+JA8$mwqCumQJ$^zbJ*0xW4DNPyzAz7z%FI-xX6(;^A2T{JdgsPH zYS$@k(f2E}ne7put-SAazc{bJesAM(kCS$qIS;Yr@g1j$knVu7lfoK_&XvBj>;{WU zR%~Y>McSO(5K_f`pW(ms#o~B*TnA4x2)Um!@sG5Ju9o^4WyOCfQH4dPs`B)kUAk$w zw|1k^b5|q+Sv%Aore@o69KS~H6dyLw8AHnw=v7Py1&`^;NMEyGtaGCL^siwW+vipM z+WzrrQN=&mmkZR`^-~MLLenqTLDS5o={8H`FK)Mv0bmvNVuNj28Xk|!o-Y-pztJn# zgoR$_z<$iSrNr~SYTrT|gH0v!KGnRA3zG8^N?3UlmzkQ_A@?=3rOhQ4JKmu!j3G^s z?%F51>E0HvtI2+M?)b~v;gI2<2<ZsUsDr;RxJvE&%#!oH&=)@ZU)GbI0*}R6KW}gr zJ>J@Z$)vLznEKwd;VF6px9Q>8wI?BbucT?ZtNOb3(ibJWR!)4{L6F$<;KixDfQd*B z8e^32mSPE^X}9TtC+fSK%w>fLC~<oo-M1<J=mr!al~0C3go#b!=I-eXsCD!M@XMkZ zF9bj7&>m?7hmA16ki1%aX~-RViohGiWjyO%-;G%BuOP!z-)9<_V4V*|NHGKCH&ZHD z%7XIGH6+#Kx+Mqnenpy#CrToK12+6(xMR-IA3j**1Kdjk^m0`SMIS+3Z!ZEa+bPek zGZA}uZZHQx(p}oqgi#(m!lm~m1c}W%r<zTJ7Si9?f8&M-zSQ%a8KlRtdjaKk2mhss z|6789$9O_cM&R_ja0bvV+CzJI=s}av9!Y`ymN32+57U4_H@HJ-@h07K5D+Y_O6gD` zl3u_|^=UTf85o_rr(MByCqO@mhTzBqbY0bh&=vr0soG#Mn)qXu9u?i(3vxuOB7z8> z?-PU$B+!U{)0{!dMuRx7M4<$htzAfT0dRNME`1nP4$mISEhgKx|9p+$Qis_0&e5YA zUQ5|vSi}g?)2Dj14+IA7SA^tX$SMwavck*dU7AR1ws)o-WXYA+5KZqSKr{^jg;19k z3#vkQA4^DJL^%=6fC=Kdou<z$*)zQ-VjQ%S|9UYN)1fNUdjAP6JGSQcFaU6NUIIf; zl^`k@ga{Xa`SKV7ci|ZQfjt;<Wj2c$sF@8aFWJ)*O-sE%<#pGlAOWT^=)UiaSG~+B zl_Hw5)`Ig4%Tov%P6hWqV=3MSPd6<NSM1DmZthtQ!4QVJIqYC8+wxdBThl%OfZ}G- z$5bzYoJ*(`WP#0Zd_|BUCZ(_I_w0Z{<@N_UzQCg05{qhNcLVL<hF_+o$0$FMYjp&* zPqmql35Fy#0o*CK+KK4180FCKm)k+p-};OW^$@DQ#dZji1_#*1fyEgcJutcskD8YA zoYux{qwljXT`DZ%e`+pC_mIM9V{p<ZfQ7D7^Q`LcL=nf`BB$G9+cUC@s558%-Ec{I z+HSjJPq0-8?WyhA>+`7MoIslib!2_<Qdx0^8dF1zOh)$a90fGj{(=)*|7RH)*Qu+s z<iU=^#%BZgNBbfee$_3e1)6SYEYvilR(RPv$f}S=trC>+Ueni5>w?m1{G{8#GZ^pV z?zx2@YMo7-er^&%OFPszr)-YovvUj9=I$MQWGK>NzMhtPOey@+<{IwFr`>0}m^Ux% z`tp8P|Iutqu$W@_X5pVc2&#ywQlx*&yVIK)Rq0g_OM3ydc4igkI*?Z?9oPmG0GmGj zdcOUx-p0Bo!0bW;P*T062igFrEp~T7DX1^a9pr-uT{A)Eo=7-%xFNU|JTP7?6FdDH z4C)#nL(y%5<AK1eZQ440Uc`9k89Kd<g<+!FuDcG<*$rWfdM;JNo~5Mi%>xLi;8qnw z?gI?buK@4GJVLyr29n&I`XoKn_s83J7AmD$DX*-8_YWVa@=T?##ONZej9`CFy7*vS z&wmwwn;h7U-q_@PJ&NrzgMOsN26xEy*q+Go3ljdjWG**qP1of;<iZ?OK_w0|J&l%7 zdj9I@H?Og`MN_Xx;>}ObO7<*2vY{o%bxX(l=1zZAZArfnIh~u`sqAt`o!($LU{Xjf zDt1iTD5@?$ePeaN-CoV-ObKpG)B4hG+y`H3^sS@6nq{XMnndMd(=u_<{|1wgSft-! zQZh3bhI$t-b9o&lK^M^KJsb+N$JxeBgKs0cfy50y+bj-McYY3JKiWtbWcs+q0QJE7 zJeQ9m)MwQ=6QH{{Xs^m5bDp-Y7&Lw0Ww0IW{|PJu(Dwt`xzLpXjoI1WLm%QnA5sX) z;aiC<peRb)7`grtz|`fj*2g$7AI?mF1)N79(WIsj<1MgpT?2`2AVmWhLata=`U!E` zEIjWD*i=zV=5}O}#kH%cG+-zMryTkd;OmAmQ|2RBw8ZVB;qhER@~m%q^1^sx0>sss z22c{m;{Hz?vvUFf;ie(@Fv?SMzB7hEJFdopGKs)^q>C;_S(qVrn~J20MD|&TBdH^; z_z`%up$%fG&`1WSr>1vkz^c`!>JAV-2jm&ZZAP{%_!$F_XR?U*m#|XMPsz=J$*a~i zo}JY3AI#11>QCMZ4C=}nQYH%(h>DHtbdew}J}1(87rwc#O9)(PeJ9Hwx);!)WoeYl zz~^6Bd`v@m`3p`r=9}7Hd^r0-QCPUvk@(B;QsO6WeCg!0TvZSJcmdcw>LncTH_&!C z3~O4BIIK6K{DTozQ6U03)qD|<oLW#wHunGR-~V|9K-6|T?p%3vJyqGzjAYn-c<ct> zF@}AnxzqfL)pmTJl9=>EWi_4K_g}fj)ixF^I=8kjqA;73+IbwuYy5I|@)|7sy772_ z%T;~_o-$+gNa(l>8^OTEh&kMu8Fg*xIV1q7Nr}cd1R`47(97WTSLcz|PXax_VmM6d z{gsLI-T<%4A^@~1B<=u7ou|SG8beT|xv77ITr}*)f)p-Q1{J^JB=%HXxxWd%Q;pnX zFv0{vvn%AtD`Y-;GK;$h2)#d?PlPcNTi4HOJ0dh7Rd?6&azcfv5r06j2QE`hZ#Ggj zVgL+p73D;4Kjgc6#cZdlzwAc}IfT={eS~EasToA3skdrGiT3UTCm~~oe1tl`A~K)| zZjuJ4&4D!V8}vXfy@PFf15EKRInW>Dzn8i31HOUva*F4@lc&-a#oGQf`IzT*1@%67 zEUsk5ApAP(=GuGWuu$r;Y9%Y$i1(Tpp<9)`*L>{5`~n6-|Bi`x$#>h_RQzE^wK>eD z&yOLob1Qr^oZa$`j<dXamY+JC>+^EIbS%;pkt{FgaIfyA{rT$>A-KAfH4e#uvp+v2 zXo~L)4{NQQGj9;m@2ExW+D`{)S*_2Vz56Rv_I+&4Ns%q-ir7D!_=t<GB^MSx_jKI5 zTd%=1a3)tyB*Ne9jcc&)wYrkORBr{dr$;=fbRIfsVyX{IXG#;c^c_-hzxo?z*SgM+ z9}>Zx>cU?<+9VUX<Kp_;zx!(5AIIb7dWVQbMcr+}L3=U}N_^__b&RRhE|N&_VlY>7 z3T*hN%>iHBw=uEcv_FU;>~?fG0-hkV?>|3eCuTq30udi4mLT>Sc9}4V!tKP-L9<Pp zn36E7M$GOz)!v06lsmBCt6z`-d(XS8<)=<GH9M2w0HV6|u~JCW#Vt@}b$Iw5z6`V6 z4f{-4eXhq0{Iex22chO$TZG1d?7j^bCj(|CKk9ILpjaO2y(J9@ZDC&s=>KlEh5y^# za~|OUGH)3mUNc`NVQ8<$FBwW;D9NWo!5o>{pKJUL{G(fbCzY`j{#)TLndt+aFhODH z?aRLjo#N+wxZ)c(UjzWO$gAD?8OWTXWAgtC7r_fQHHNm518l7S8A{6A1K>QtL|yKp z1W`f&?mq8P7QB}!og17_zwE0-xOA4urYBvnLm2>+nJ834(T0;EZ9<(C<x&PZ8#;$c zO=OP#EtFLew=KX>uGvu>nd5!4K!aXXj{Vz)2%K*$=l52ifZM$f;vLyNyq`G#5n5pV z`3rIMsFO!iwe2pv-^5r5xH?QUoj|HOF=n)6DRCHTsQ&u`aFjF8vauB2BLWQM>3UtL zQL9;p!gWC&Zi0gp?MvrhbK?wDSy`DUe8G@TSg;TNB5~6JX#s1uIB<#kx8d6fHPnv? z^#h+RDPa3Wl8rNl(rX(wG~sc53S3SSvmo>2q(h`GeW<_(-tu40@QZ%C)(fV#KR@=I z7=z+GxD{BEGBUhXrdlvYiJd$q;tVvqjkaUeKR2N>s~rUNi6MycZK6K|VvYXeR*{A! zKcL1UeWl-je*_39ZBzh5QaWJubABI!vrO5!1A)yCuHFH)2mfH6$nuUs=%J~$-NXYR zK~8bOP%dD2v6RQLD(vXxk5vzRg^71QM>GKsYMlh7WRX5pt<{Q}MwOMIqql-@>+h$U zRd0VW;skR#J8`0y$6*n&f_z4VO~l4Q^Tm=VcJE-DLT5HoUK#DvwpRu#mz=XDPJ>E# zdTqeRG0r$W_r9$|Be(hY-YJ$2Wxa=0>4o@6k7R=ovrU`E1B{+Gq8~MweC#ps=ky7Q zdP~{f{<~kGDd}R4cZMvFae8=1Vv=p>p6BvH(@{z<gEG0F&M&?qajG-NHY*xF+pnLT zpLoAw>~ge4)FUP?l~v_2wfZEc_HO<j*kg!E2ikPfpgwJ0quuGbgZ2eWeqS%Qj+_|1 z&D)GFk5p260&t7Q&0<l$0*p6>NBuMpbzhaPxnk<T-+9_jGAram)$5*n#-@8lQ>+Jk zz>deh=<vYaK9A`TQZU1xYnQ8%vhJ#%_|Z!)DM@g4IP$)dVB<V;^_bF~M^O!7$=9+( zTP;qwMkU+fC&k;YWrkchyy$Ug^ygX@<A~#p+0iJZxw1=N`!}aa9xw4o$$AwBdh<~s z2_e7QBS_4C(FLs3Jv(1s{8FdFggX2;V4mi!<qlVM{T5`Ei@@HvxP1cdYfkWXJ>Vuw zZBR^5=>x%A)t<wR7Jb$XbAXvXabi+Ezu_u@U&v04qQ^=tF+6yu^vfb_h4HKMyb5kf zmX8APpcz^@ApsYs=<Q-0FjPsM@~wiEIO6=|h&e<l?qgHZIep+DUn}#_3X2Zy-GDz~ z5wTr?r#mwyqRwQZ38m9~JGdT=|LDJ5@wJ==U4JL_r4Pa%%}EA)gZgnzVE85!Wwv|~ zfm`yvg-w746-kLd`Q}667|1LLwl1*zSM2kj0&bWcZ!+>Lj2V@JHgS7Q&r<}i-&k-b zdLUonwg!^g)D1v#E)Clrc*67mSuEoU^FWH}_~ZHVI&23XVOz$KaC|}wtmW^(gDp$a z?ZMwW>+ayj(DtcYUUVn4UKYfVZ)faSL)F>rbbqD8yNQNTzb?`cZoIqzei1wc&trY0 zkj*ko9~-{Hlj=%~cE8&ieFmtJDGmGIYk<cHZQVvJ6RzYad<LZX=RP0$MX+zyu+h2+ ztL>Ugr9k53coim)qfFI;S}YLPoW`zOFpZ)(2HrKD8{G@R;>4!R<uk_iAjkMJ_TF&< zsy@sAUvzl|;Nc}n4d5<a`2vb)$c(IP9A~)nz8f*1PV7(t>F4o8eBaHEr%}!KxSii8 zWCB0Hxs}Kt@o*T)0T5zb+u*jWpivAtSc-Bxc>K*BbY;QkaQfqr{s%MA!e3GYhtIg1 z-vJizh_z!zSw8-AQ{s`p2wh<D!ir_UU`7{Np6vHDM+|}%+XY~9L@U=4&Qiz#ro5_S zwkgItQCj@E=#FXEv<U=QOLZm0Td)o!;VObKfQO4#3l+rY_k#ju%^ml=wD&m(ScRr( z2oWFcK52mEX-+)I;2W!jkj;LVV$oMl|2YL{NQ8?ICr+McT4~vzN1I#EdAV{Dw!)bV z^F;-%a1Zy=4cu<D>v8g)<+l0La3Y88ombz8J=rD!jHqX7Z1oh9%T|T7<@NUq9qqHx z6h1wkt=?vm$@wG1!oN@~Bj32U?`#)sp;uB=|9&A&mEBqg9?Dm&wZ(>Z1R8IB?#GMc zXio51{uUEFVP{-<u$wa`jdC!0v=2(PkGb6$m)G}<rx<)Xw_BosHnx)Tl}={q{O;C~ zn$%QYkPOkJ#_EMl@;sO{+AV%O?OgG78<<$~X6yXHOO)6LiLk9h;1-O$h5Uq9p^7rT ziJ6AHIyVaiuRQ-@A_rg`<sX2kJ{<D$D`dpjJ^7K)%lC1>)MShbs8@WCHG_Xs@s3QF zyMhwRfV4jUBk|$#KeySJKI9RIRj1Q1<YLvI9}(Q`HfccorvfKq5JE^(y_zJH-!DD) zf=QV;fHf1Nao>tLU=n&@4;31Afsr;}cp2v5C&Ju!6CFO|$`)t{u^b?CeDlh({@ry9 z;Wfv(dr&EU_l3KheY3s`Lst7<774=Uz4>!t<#*ZrmJ>4ho@y9~SVg{0jyUHLf9y*% zYu9@G;!LZp!AOIYE^7O3Ktb=Rp`#m*WK`7Wy$Nx~QXh|H9NWcpH;(l}`PyR^em$Ru zoeDTJoNlwbPj|^vVd*EMmpz0s+q7{8&9`4xJxr47_*#<m=Ng@KxqVV^N7Q%uqh}@l zDqmhC{Z-)1Vn1Dj?hPIKyW1j}DQS5+3l>@ZC#cu}zhTo?bKT@f9DI;Fy>}6TJ&Y+l z&uGxg+EZOlVONq$vy+|PaG(aWk?D$HJV^!gQ^scPJ2b)WBL?uwyYiMc;14Qh&>bb^ zg}?@zco0oM$%Z5PzJ1=Xv&FHaVu%~h7g`ur#t2;e1iT|w8zG`$(%HJ<$1rao|0DsR zm*oI?7^r<;NdtBmtw5gwqjd^N4LRJe4D}#uWmgYiX)ABc^B{n-rp{`IhN>~5twUl_ z8O*44U<!yHv)%`F$zO&@IRCO~YX%lkRqwP%BOmTSFRp%41V13f$P9JMgj+2r3vN6F z(~hNE@bxN!E$08AOyGGzy@d2*2)v+;ry=jGtz`!fnZ($55sb3!b>RJOR|6H1qa+M) zMS#VnxkJP|^kPmwAoQYb&@hj~wx47MRK;xtMq08uJFkP6J!qXQ4HDshViizI2TN>- zN9f3c=?6hci!EL$=G7h99bTtN-0D{Zf$nB(Ip{At@2$P(h8UZ+2Y2#u1wC1a9kv5Z zVA6kv0{ZWG^vw=P;obZaV5U7Zx@?twP|hVmXjNeto4&`1Y&IVI!ABiK1PpIkr9i30 z6|*Y|h&?%C6Ts;`itrgcIr=$vd^;Z;XUuSf$U6m98lQ0Vo3a}fMc}Es@#f##0gFy) z@m@WKIxRnY-JkSX`-@3R5wjtY?Db(P_An@8VnQu63uF1~)MJ~DoxvxGAJ@Je^+jFk z$#-RX?<XhJt?Tw3wTcVHbPFf=(2|d^q_Goqxu&Fv66fIUXUC9FLX;e{J4}HhN=~Kd zuoM`GVl(bmm&QWts2kq&%K|)up2pvxzgoP5^Jzc?SFxPH5Da1z_u^-Mdwn|!uitAC zhSL;&edk5`*$lvQMCixZ*dL7dyB?}p47C02p!Gi#GzXP`^Og_?Ohz3Dek}^e7XxOj z6sV)t?Nh$clcyd4k8=G+GO!7gY!FDO1x#fij6Ev3GciRFi0~68x?SuCy^W<o>pNX! zXpt7GKre?&iBX)0fxE8O6Ha9AmYN?zV#)Xh%SbMHxPe=?pFJzQsaEngELkuJIIlr_ zjeCoz)CF~)j49)s{EDv9+m&Za%_AQL(j7;pi608)B@`Z$zB14oNDzBU=njP+cH4EE zFn>rALY2*93oV()<ib|RM#tWG@8hGdQUcSSm}Kx`J{}Ihak<z|hNj)%4w>AKyTp~^ zQDFCl;x`hKRB&YT%WeC(z<wZ{1t%{Y<EN%1pOCZ_ek^ePLG<*w6p7K8bs7~>;RMWY zF{zYm2M%T(P}=;yAFlSeHgSGoQ%^#HSoZ#1a-&fvYm;mhdQtWK-oCR=vulouJJR`! z+|-1H(!)+)-0BXK&9EgF7cp5Gc#bHSA=>ocCXbhfB5%dvS0+LpnY^+pk#I#WFB}Ua zIiJ!v6zMVaF;3)WlI5C5T=qMY9gFAwt>!_npixu&cps>cpPsMAAPYtWFan<6#L6#& zQNH4RkVwB^8VLg+PI>A`Y{~}=Va1sN##FVJ0)Ky!Y=*6wPvAZG`vX}#0Q(s=B;C}B zzQO=>_aCqu!Qz{*TxUa{F$iJ2FaL8l+>>>SL8;96yVlE77NHK<?+m{nDG6ZFmlkT% z_EQWA+@A?^RhA2$zEPXt2~IV?47DVt1=gEiobp7{ZzV$^K}w?k1Gb^_BY$Xtk3Hzf zj81(6AFn%mY02hZ5ekmG@W+q`K(Buo%gcf}U#r_O0M<y~j04=!)vjZI1Sei+rOV`B zi0;35KL`>xp4y7Tr$oOTmWIGuoqZ-Ah{oh<A!7EU50y814*o-hOynG1BUHi`EuVLw zW%#{z42r*9lPB3BSsJv50v;yFm*W}70|%lc3#6H<2XK_4Zf`+BpZ2n&j)rK;CRJs* z?aT>WzY=+UWAf)T;w_`O4et6%ZI)#oyI`K3@fh^c&vq0RVIF?)FX}5pV0T-o8%J=3 z-{6;rw{sDJ9?=+Z6Uh-d3hL;kmmRiZ<Fg21JY!nmfi8rbV`m{^xW+3Sfa+z%AHG(- zCxCr>a-?z-fl9R#V}Ob^{y)21|8X&ZRRhTvr#>RgokjlhZzg9Gfm<AVOEiWNMnt)7 z4k6U_Lk8yRI(*a@c+VUMTCxPe;!7`d<En8qlxCPtdKV7*PN!I?vlw$q_aK&%EvFEi zgtl?712leunV^(ldH#lzc;b(7A0wX6Y$q{M4f&Vtm&Ald5Tf=O(RwX2@LoAmUEgtk z3?Y1<I0&6%;-Q?#4;%B~?y#B!pwqxibOkR_c$NrgsRD(w6lw#*8O?E900?eB_W=N} z)E4HofPsC<fKk>rY(3@Ai<e;m$;h+=B@$-mB<{d44fhGrf}$Bwn8uR@9-wTG&u(Ce zk3{lT_F)K>&ETVWZD(661IrVgCgG=>F`6d>7~=N}UY>R0%92}6N;H#JjL|jYIZ&;Z z?51EiO(;>c@3I`d&ShFQ(e(6lW4@H6&&?>zF_pJ+!b{J@W)I!F%$9n`<+Xzvp_;TH z_r5HuTi83?^-sacC-2It2uB+$+ofyF1ZXUU&Kx-?Isq2LT=|W6Kh^IR6}@)I9-Ix& zNw>26=6;cXUBc!k4X5y9*a;Gr=dN&=)DsX<FF;7{cs%ksB2r4s@xshV=J8|JrHZ+` zabhJyeJ7~NH9{Pniuv?M(KBm8^~z=j*-=Mjj~;j?e>h4+BW88q`;hW|sROlohgIwc zN)ERaNX@RDer!RnEg$)yYwJ|_3(r@e$In-#KV^orGIyymoTVq|U+KEo5Puz4H-G+f zXUKXIeNcDKjbdq0=Pxpuo~Ian;x_(1dw-y5m!;bN&(6P=u6;3)G-i#J+FL9pNSsKU zfc7!@(^XZtPxK3b2pi}?<lf~{4QvE$8E{K}vtPlS{tHBuPmzXD`Me1o{NM<$n)wzG z5R=5`?mMxkG#gMxLsPhcZoM!~tM&dUVtuG=t6Pjx4b1?rFKp+WDZOg6Gbdu#nhVna zIehi|h+C&6z*1)IyrT;;lvD;AtJ~_Lg__!XK*~~D_>4o73BS}rRfAV+(zP>Wbrb5K zQ{PlJ0q^u3VJ%0LH_ay<o+CIpA^5Qc>Ojy~)Q=$tUu{N(z|W!zWC+h|K?mm@lDYe7 zW<fZQmUH<t-0=6$hFwnaDh-m|w1KCMvX0lCL#XEwf!Gf`>HiyjKsw{fkOLOowL{9V z72>gLBL*;DfNsoH3hu*!p=|~asIZ&sIF=A`Kd!ATv|JI~(ia96q1-r<)7PB<)Ig=H zG}xHh9U+>|gP?UL*`fV)^w?P42I!*FmFD+F@!HIQ6kDhk>_e@&%eHvJ>)Q3ms&o*E z*H-8}IT0b6jK3CEasVz+;(I;-*JsQ6T8S7}Ywv;xX-x4#p4MCj+(tkPn8m@*lgAxs zDE`$DiP_DAP2i{5$iPEM!|-+po*fV1d8Rt$bf^XWAXtt>ed_uJHshPaP;V&yVuwAf zebs!~RuA)Qma6tK<ysxBcwEVJm=$~PO-s{0{^Nf62SoSYoJ)Qsq{O+jS^uGcBH0!u zTv(<klkYpXIsfO0rAOA-Tu82UQbEBN+iQi~yW$bc+L7YWm3%(DEfRuRrX&C7HzZa5 z3<h-N@k56T#Ga@gEJ>S-C8`}v)pm)m5Y((BkwUG4!7Ez@yOB8yIVT4rpdzd>6h;Y( z75r++7lRb4(UXOPFu2$|+Vo_nPpVkuAM;`2_?#5?Hag0w`jvM`$d4(n)AMxXBwd|} zk$hUprwccs!jticQ*^6W!*91)YVJk{p6utKr=)8A9Y%&E7Ar;YMiW14giy)Yj9R4i zcWqDrKPsg;*Di}yj%?Skn?YLD5?eFySVB9sik(cwOaI~`_Dq$-ZwHLFIq@3@XJOz` zeL2*fjzT&6+D8^YBcWTPjV1U5!s0{se-1z#)6Yi5Qohv|s*Dx7dOE(ZKR>eBm}MQ7 z^_#>Hl-=4sU{fp=OL^#GZ!j`TM|||dnt}41WTP#<#-Fz8%93is9Y0d>k`7OO{JP2{ zeEs(CH1}I0o<u{2p#|RK1bdyWHG7*y=?_tl?HI}rq;O?UdJ3ADpB#5;XB}AenAUY) zz<vLaL6eHgQ7<#e+i&rB;)4pUlpfkIx+*>NtyV3Z!5gm{wXi*sxcTe0n$}F!LXsx4 zxzOzB!tUJdtV9bY^x4{}6f01MNEc1W;=^;eh^u8Qg*S+C<PmoA;!S39mE3hKNiJ;a z>tO~$^b9k8#%y%|5SR^p8fGC6XW|gDHaGP!K4_4UoLlV;{^YIde5lq}`C%-1+mUHH zD<&{g@P<6G4uM0`Nk7Z87L5cdNj1V~UErqQYU3tSwbe6*sS-|NKuDJNmkxccpi$QG z1I?U!IvsgxMiuM*wZtAtKXOAJUz#_i`;mue_$-1KgNt)dWg&2(eQ$Y)t3AI2(b~x) z41{=2eDhI~YL~b(2B%%%1450hBx_3yj{5SMuvC+^#@8*kY5$<@!Hqd55s9Eelam2| zqzw2`f=o2-SZb-B-cOKLNBY!UO_e|MZvETuXz?M!c~d$O7p`3$Dy|!kXAdkKGS2rh z@ZisDuoNoqk6OD?60ftR##YXg8P$CbegMt+G~NOoM?z}lS-ltYV)6A0S)nh6y5}Cs ztm|E1UBT4Mp7phx`LI1^p!R$;M|<rLmcoLnV*35I=*S?{c3<nndS802Qf2EGoZ@bQ z6b@P}mhhrH9f{7EezP@R;>67%b$q_Zj4GcbVo>S@=0JbxS0(T=-i{$c=q6>Bjv!L& zfuJtX9U@xOQ-U;<{zY}Do>-SAv7|^FO-@vPE=1NXXwULB@&YryT?clJ1SZ~FW5V=n z5lDaeKrDf+-Yg8F@pcu_M9|L4(tcl%`{_G21OBt#Ba5Wlh>Y*Iz)(^TQ~B||52C6O z-0ETXIXVi5_8MYq!$48y^#n)cl(T!)Fog4(?pWojDkk!xwaPOH0mH?-idaG&=u9X9 zZJ5-MAaQ(<``?`-$P`33Kd_+xy(f<J1T9`u4DM(tXB=V~)@UUT6P+Qh7dd7Mf9A>J z^B>F(G0S_hldFn8FdV`3H#f;)m1m%(6RC;%COd=7S$~Arp1gP$w34fwz8K}1Ju+de zsH9d>DNOjd7&1_n=M{)`Z~yps%<aUldRL@&{r(n!<T`0hr5JAwuaAIa{T}sYZ(=~a zH^0EjwdFOh&6YVt3ughtI;X^Ed5Lamwvm{swyt0VwKsYlyiLX7^X(gihv~>=lCQAj z{i!cG#@aEKl5ol!=f?GjzSgc70f%lsSg!Zlyc{WX)c9+~gr-E?pe1YW^ZegHx~#!M zb~Ddd`>2{gO-Yq4OVac*tJ#P@aHaU`<6kYEMq#yE9M-SSXf3JuDC#{p{?&#lXXUJV z`aTD_>fzO;Gs&lK+a56SO4mm}dOx-Mbv;d|zxXNs1`C-}oY>=K=h3K-v@W4=p11W8 zgV8#5yo*^g-y~wdX^kPUk1*pCG6RLs+SWJh<j}5Ftg>s`+6F&9$aeNHo@-dApN^cc zXWNjL!f2b{iAg=#?Z84#TCKBrQOinIq$JT&c*5Q4SHiUxe<DL$6eSvO68#CYq$E0u zI<F2ZIwK5`{Sg5?8;8HB38B44kKtY4L0~tN&*Kbe9)GmQkJ%6ngEkO+XW*TCy_mpK z$#WQ-SnG*OP#sT-;q{HAUaX&SyuT2(;PV9|ke5ND>`0+Srx*<o%NZRk;h}B?VqN`C z`}t>$_C>D#l$wXsAGtE~HnZsgVm=X9IMj@Cn4Wzli&CZiBVw-JviA|a@s(EtfB(p5 zCC3QfM^8Rz82Th8)LY5CSjA2{9{7C9=s-@Jw8+wmyGYH8X~NREGp(WEW{0NqJ4Gj2 z;@+nS-`o0>wl-xH)>3YwzV_?W!QCyAHVb<yHG1ESUAUPe+yABag3gqVSu4rMYW1Fp z6c-})e%s+4YtVMmhx$jq=th&j<>v@&>oGA<QtwwiTK3H>jp^UunhU0R#Bqr<8Bj4} ze!<Mg_q|}NMe0J9bWNyg?-}&y__;8XlWR2#V$rH}!|m7++`dQO`8}dvlvG5go*u@; z$^L$9K47{SMeA~<7DlGcm#mn`RSR1$<U?{HkjE^3;6+!0FDfIj*{u4rIB}v*@lU)A z-mBD$ovc<iGWKUQvEMAvkDY8+G_xd#cGo=Z`}C6+ZclTfM-beN(sDjDijRSUoB32^ z)Bdx=sQ#j_27be^jsef*q+|PiqyO6KKTlc!eU`oPu60op(fZV~`~=x7)UAO$edmK1 zuZ}vtnDtgsNJcZ_Jy5I8iB6s(v(qfU%uuH%Q)@Ur<5<Z!sebAWPIQ3wPYg0QcCH5k zdhS%4zZ^uD7bV(FzU*Y}=iXfC%F12H2%S9T$eiRXExIY%$4s84YsI88(F>sg>4tD+ z|4*fo$w=;};lqm{l)IH@n`d~?6$UOLSR>O!>`}*%MxOVM`_qz@vrZs$Q(F>9;c1(~ zY;}Bd#RZ!C^nn1A?DZRlyRS94IxZg;z=`tQ-^AfJ60BwrYsYXMdh)P*H66+$s|!)L z>+<#7p9o%ZypjR0e`#W)hd6r;3YU6K{PvuhjX2&UvrP!x9jMjTaQ(%@ZJs--NQK(( zil?QFY>xZ$<KsQc2WimGz6XzenejQ$kYOp**}t)fwTQVD13{Hw%hh(*8Znp@9T&2s zCA6LEe+{R^q2G=X2wydBmqA*;r{7KNL?JA;_ri-`FeRGWek?spVd~+;&$v$<xeh7k z0t;E-yC#;f`GbDbmxe?b!yv6x64F}zKL-{M8_#-KP+OS%?(V~+y38}8V}-n^c-GwW z!D~F|CNq>mdu(U(dC?TA5#Kx$UY}C2{DTRv^!FMaIuqgPMKo>HwqPI_ot~i9Fp-_E zWLP6}G{iWJ_vs6sEchVT8_f6$)({Q6{u<A=FR||1AK7EycCr8v2Nm{DCLxY!g$@5a zjBjV7o*){Y*_c;b#V!x)l4sU7#E^8~u7$^ys(5z^HXTTD4D%SWE7vbyqM<>_0H(_I zhY$^6WN$N)I=rviLmuC21uIVqy=o?eG7wVrBs0EwVq*^pQd7z@<1{0>{!I{lHx71O zEUFBIUm@(|tKVKCg_e|07)$z1O(gyB2jfp#AJ(IM9NgE&qjsAw*=o>~+5Q;(6T0uu z>iNy=&c`bE43N(siDy52ZPPrVHSw|;Ymr+2Idth*lW}&?LQ+O0RdUyL`8}@3irVaY ze6J0pbTY~p73fg@dc{<w*hud>ue=^+{<d>V%=fR(NQAheh)aOLBZn2uj>9e|e>fEr zpPliVCRI=tK2^$G-Kd^Dd!#kxq37`YMc!|r6~lXfjTr3WS{&e=-D63Rj&y!-UR#Qk z>xybM;5IDY=Dtf^t1jEW(bp{XY3r&}N$sI?B0ZemJwNz!Lx0g9`yd}zY^EFP)>G{7 z+Rj(|dc2(B(f-JX&v-R3agGh@i8i^vA5|&WuY3^xWy<Vo2P-k}U8N?nx##zOq8T{F zxJQ5X+Ot*8ehc2OT`kdsrQnT$ks{cdSR?n02Q51dMRUwYCpv<4&kAcF>=LjuL@dif zg4KGif@ih%D@#P^0fG}7m&-(y8IC%gf_$EqzLUfIp@VuSRnLbGG@t*2^*(Lp$&Z>8 zJHnu;EI!A{^9Uwz>&YL&Yql~jUJUihNJX-3ar%ut%R-nyrB6+e%X!(LsF38l1KpP@ ze*0Yp+?0*pfm&}JV$s-;C9#M;gca5A%!ZKQWVpnI!MQHXAw$FFI|XgPnf|@-sP$j8 zLUE5{zAAkZ{!D`=4KXO*_hu4!){*xUIZ7|#buDbBFyVtHOR*%It2VmbSx`L}h0+n| z&&MK`8<*M1Ei0EWIO*XvjTOC4;&Om&DsDK}aXw*JdBUFas)3WujtUP;s^XuIC0}(_ zWK_Vm-H=)T)xbd~lISH;<o|C`usMnp&ZX0kM4k;``uARdhZn<#&txInZYpP$Jdan$ zmqsv?mG4(};qWd7S2|B1t=-O8GU<yX(rUh;j-TQGu<eFbUdk^9$!du#mQ<nMi^1JG zrR$6Fc6}m`^`3sTKt~v{zTOcF$DRR4QFaWfoV#6G1xQHAf|XHG?{MW#`Ceb(#eKbM z&IGfZZ2%pYeE*_NIHYvV_kE$8MaW!ddVnT9DoF`o!Anx0(wqz+vqN~tYtoaaL)NE- z5X!-mE4dXu#G<)=J+LC&>K$&x;bkzRVt6m=%aPYi<a<dYw3JiZP+E{>pc?LJ%=~G9 z7_^tuQC|9nE+sW!EVnOy*eM$6{^xA|+k$3d$;RxD@XxTM(3qLmZt5<g_x#+TfJ|C} z$!XdW?_?JbEWx7m_nCW$rJnJzhx%aV)LabJ>DUuf*siLx_C0*%h@`kMG#0mhd$FPe zeJrY&D&Jf10cdr+p$)yPnuCx=YmLS(5#xT@v>&KnxJ$ALnoy+paigjot4<i|+wT;8 z?6RzHFbA<G#&%{DgKXv;m}e#@I5b8fb8}tgb3XiN=Pu#^1{VVLW6>K$c7)WD%=i4r zT)#CYmHjU>-sONFh9p7dx&&WW-;Czv&x~luCCI@c6f#7pr@;QJd=xp45wLK>qzb(V zb%5B7IriT+yq$@>z0tYPRe52{EG9Lmzf`j~CA0SUW<f+)()q<|>vIA^w_Mu1<5Q3H z8!2cvO|Mt;6o-78{hR9E|M{%JpMnUQD6EfG7WV9^pjz(BGEY=w@14hP3SQ1B;i)rK zi8>clFGyT{*^1cyc7Ob<VOp;$TXGcpV7IE&n!4-0ZihTsolq{F*JxJ>w&asag<8z} zQE~Fs)lzX!=P!-(znvqiNCx_E4X(MFk@jRc?OogU%ugm=2ptG7inUbZ+$uPKA)E&l z?_#~LtATH3xN@d`DSd&22%RBcu_9(0D*!EWQW|gHn)lOZPbw_dGEP;M#V_47AZBOX zr6EBeIlWNFNakF*Sqj&yc10b}wHyfFT{`m>KD@sF3}g?t%#9kz&Qk$1dok39BYx-1 zimkmd%U0~<W<^UF%UQ5|0o~6!KD?QR#1hkNk5sk%&h+(=Bo>Wta}y2cXB8AEdc=(O z_a4wmhzzihx2TtihM!hevEJ#|JcQ68wH}Os*yRJN7@XGfD<-ndrAegqq=Lw17gl*4 zt(C*klS>{_gJ{Y9C$ub$F{$fJ`bgn(L0P=MUy^1Ar!ytU=!-_Xw@JOD!gOTLq4q<K zDZ?6nGgLHQ<o(g+$k8F6lOOd6){Wj7PrR3wPd8jb!|Wk~G5D)|RXOv^Oaq6`vSr+` z(8gd?{ixxgSfB6QYprs5=M|)E)A<f+d5^nyThs{V4HoPvIr%EzYR0H6i=CnV;qI7* zFli@23wPwzv0seEmHs6Uy{+ok?|#QEqU~BASE)TW>w||imhS#C8i{CEy(>{oD8)|< zZjA8$w@9d_C);jQd+QgSE)Z8cTB?Xxvi6V5bcFFc(0o5`581Rw*c1(sRMAy0VozB{ z`Jf=0vSbf^Ya(M?<dJqvY9q9e{d*5XAIX-ej*wNxMlr<IN>0?|36^}8=jAsRGT&BR z>C3>mBA3bf1BkWBuD^YzpxE*X2mFDnHwZ-O*<b%Odz_}9v}RdvkQ1gSuT=k`r>wK4 z09>9Pdx}$wmF$G2m>@Wzvb~t9Ied1>ml?2i<g=xv;8p=v=sm0EMKnym$wQ0_<xVTd zlAk=yt%M{cRH%+uQVfI-)Z&9B52yV$OFnKq({RL;7{~t5*P4YqTfs~=7Mc=%`~TFK zw#X*v;wK+N>3rhr3)}oe@E2B3MsT-CyJHZ8>BH`q*6k*l$-A8`Yh>{WvSbV{3#&X= z0#|vll#wj;sYwDF+*2HWLZ~?5@hsR2U!DG5Ohc-e<e(w_x#-S7aE}14lj)Bn60*K< zEw|UOdiAdi4dsa5+nok>DB2OB*orit!7Tqdt;vt7n*H`BW(<<lI8pTj+w)0dFpu85 z>PyTJEUQK4O4s!S=_w<x)e!Pr>`gsl_DT&OI+=cxmdt6p-eRV`z24qA1)X8stOP!R z9?ESgCF)afq)>-bnGO%|%f~98Qnw_U@|`&YYR@!JEJ5g&2F6<jI{N>%@=!hUqUm4N zZWROv_i`~yX_tQwY$+Q^6DeQ{+Q;4*f93{lAL$^|Pem~WQs(Cj<x@Y{9ww62M`w6* zG4~~0m-6ok@Pu+#j#e13OaJV0JEfjJ6&O5lOK2^Wj|Y8o@vZyRZb7s2t<=L1A^utt z9S#64@-V*v2<+-B>s&;K)MZY5jvSFS5O~p80J3)CfgnO*lzv-_4Ed7$Fv>r;!WZZ$ zq@Q~s?_Hc{fa_)x5y*C{&UZ@&p_~$)oMfQrXmQ6gP)4K{uOpkaauCzo7Gq=rH1M6Q z{emiCu%A6u$O{SzE$7f~`C)c)g6}sBRH1Jhkhz^^wpsV`5Idr*Q_F&?n`rxUK^YMj z*B&MigQT-VMO`)!BAmyG56Vgd$C5-c7cuT)IzrNZJ7s~fOuuRj(BroResB17pk&gD z=oa)|P<%ntB&po#8Bd9#TehHhob^z`th0~B%u1UHvdDwJ^EznK?*E2P{yVGDE>^Ma z&5`ZeHpO=&tg@39-HpW}ZpQ-~<W`~1Q-jYk9a?Ln$p_94qQ9s)uV44>?s`1ObF;R^ zf=m9j<2nD#%lAfBq`Ic<4(d$3)$Jko>M)nK{H&;c$rZ33)!tq<r=UHdX5LClr}D@x zi^m;Wsvaq^Q(8}Ek++#uM;{QL^ylm;klxg(CO)@T7o~UmyXJJuVw=R`YaFy)_8|s0 zkYU@GpX2Xzb<#`4Ny(+uba;N;Zy<O?CF)J4$1K|sgYm=Gqf(@{QN(+kqdlwbsHRCx z&K0w@Yxzek`z3ZsRyt-HwLjPQUs}OZ;A=9UJ9x9?479R5-=FvJh}zsMM#zCMT*29E z#e?<@L+HI>?P~>lluo6NZ~-5`LW|Zu8qYl>gHKovphKrx02b~6<l`?W39_qxSt#>j z`dvEgkvTRZz!TM)6*Q!yJnt=b-rbqa4eEw%CI9kHryE2pYPh=9X{xyw?{0|y!-}LA zU9MNU>&J%n{qogZOGm2OoI)juJ!VJJgd#D4Kifb+?;J72NcQm)qM<BDOks#|D$AB` zeE6K~AJ9>*ZTb)$ym&EHTAU{k0}&rCbl~jFBZIQGDbYditPi2S09D~apt)<v0^pWl z1Q;2AKi0d^ii1r2{r|)w=(F`3vp!bdR&lYcG54n<+<c9b#~th4DI=NC+id{5yZweh zHJXZe3$c;0%A6a{T<E4$B!H?pb?_7T-sHpdPkKS9J$`7KAHUJ(!GhmNP8-0ao*P+5 z@V2yn&(D9UkI{ve&5t#Zk^HQ${SS6ITX%#5E&Cg$1N<aKovof5pYULg4ui9NJa=b= z2bIx+pc9>^qHjR`8wLKGIeQOR(0EVliO>)%?faXIizXq7Z@9|ia}GrYVfrJL3TV6o zor5^hklpWjh&@?fWnaL18GdU(j7u=yOi{-txLm=KsadaIO4>fw)qnSF?-4A)Ao?T2 zZoJE*!xUO_#)D_r<>Jl$Vm%*7`Ty?;$>LphdD9WD-FCxRmW_h};cHin<+wqBD1<fD zPWMSOqN%<eJ2|5>0ICejj}mx&0u2534?KY;yC5DKl{a0!F!IFy4$_w3wPqM+^jha7 zuIlR;VF<TFudtK(F!hxhI`z7?7HUQ5VSL1`G!K}>%s8~&hXl&A>CmI~s&}Dq?5&0d zML++A*4;k{Av69K1nhy*1qjsb?;jw6*AC&GZH4Ix6I|~0Lg;{#uPLOnTeXOF=N&^N zuxn2;LdwJPsxT0`ACpWZk@V>o5KK-*veS?_rkyaUb&Ie|!wm`!twF5!?AvbxsSLld zlx7<5)6#PmdAT$eGR3%WxVC*pU#vGmL$5iCZmpTMDh-%M336W)qRLIBVHn#+{L{03 z0}iRwXKgdrygPIwX-va<t&>N^<cP@9jLKAah)UjZ4Zoh_wL0^++QZ(km^LMy)%9$? zD!H#?yA}IrD{Q23+kUZrxUs&LY5PrkeUyA1Q@cp3k=<aO&um3%qx!8oDN6>e)#Gfv zscr*L6Kdb(&Ru)tz?%7oML|b*YK1zTd72cEukLZ-?{bAvOU|#U1;)@Ar%^F}vAm1X z6@N=UGan3H?fyGkr>d6z<|;{6%<u)rp_eE6aX06#DG8yvOY${Q2Q4#$xNu;_A3Q7R zF2=0+$L`=yY3r%uXF6}MCkhWM|90a}BFg(1^L=d-ct74GPhIJd3rkvfsHhgJV*INp z{!WKuo%7Rs?bK+u-7~+Rx<T){RY6BN=<j?kmue8pb^d4$CplE7n2zA;e!VWRjGfF` z#hm|?$Gr@ZJ$R2pU-Sv0Y;vL<S`&i;1EPe}h8TWE*@Bj^FrUs&9<F%NCE6B*Nlp3L z?F)@4^GK6DG8AV8CJMDIV=QmD*K#TA0<_TcXj~&_uBSO^isH@G(&V@4FjS+{!C``c zA4$L8NmcTT{KTTTU@*DmKmUY<ytF(MiRst9;Uz$U2c&D1Gps=L4TRp!=UbN?u_(b? z7VBLY44u#tffLnPN@)*X?Yyh~4Rl(feY6yc*>mMSS-i$WD2i0x0@Z?Z#iS;<(UQHT ztcX2o1-$6R7X%Rr;#P}UU6!%g+2Ef-_A1ocrL*z<`6^WmHCCA^E1Xw{Yya3^aBOvL z_ZxQYxLNi)#PCfai<9KDgnK7X;kiUwsh=b>@0uZe^}a0Eb_$PhmC@b`9#nzSfXHsd zjQaiia5v*<l*N0vAh5lt!FmVp4k|<nQ`KRhTwr<#TqIpR=_rgse)16CHn*sPXxYIs zX9>h0#*Yh)f(p;Bu|W)PUs;V*Wemw6YzLqiAk>EeJ5bx}C62Ffdd5MstTMf>KD3Ud zeBME#l<`KafeBwggZC!%?<X}IT2zLvjuBsNytTCt5T~hKgFL7UMuQI(QdXVZ9t7*f zkFbe3P??Jac%~F!r86c=48V4-EM0+zn~W$I9t%^m=fn4UIkS^H-fVtJ`$kI;k*{YW zTi&JeKw9z`15jRVcl?VAq)@Jh7M-!qgb8eRg~ys00^5&VL}=qkIo!D7nyCL%Wc^cZ zUBg&Lo=TukP}Bngu}3q4lLsB+xU&pWtKJn;I>P2-)+#zerp_xmf_qdMVqgzptpGs^ zRZby=yHtUzkoTN}pM@^q%cV>!Vup7e9NR1%<*st(Dmd?+lTAeWjbhdD8@!OYB9=bO z5$pD?!8s{H2At86=i$STu%O#l1dSNUZLKOcyy(ne2#lwX1aoZ{#rP22*q~-~y1B9o zuH%$a4vlxgDe7O4>v7!(I<|Tkzu+9*im6I}5(xFU6c@C?UhQ&3iJ{Xi?8*$3#Gxy6 zXxK_8>Scwo3{7oYPJH!(j-uweV$~%rPK+}|<F=ql_U{lx=?b`rZXy~8x<}>$24`p< z<;6k{oIa9;B_*q^eqzCr9Npd^RAGdzxCTDcS92E8ck3InEbM+?1?k4;IFiE8oG@S? zdsl5sx%FuAKu|-J>ks9t_3KXWJFbex=?eZyymay%?v-iifkIcB;@e-*dgC?rr|Ml< zRt7_3<E`qaelR@n)OL3^tu~gnGFlspENjimrX^pQ5A@2qecfi!$TMs67~ibdkVe$d zXfHLD+?Rg~_o2vfH0vbEk6qKp(>3Uv?xOXGSYDlN2-gUSP?BNSur52YS2?9J<!1`& z9Nt%)bK#93o#JWzS1G~6XRdEtaka~7&zbNr5TECI`&=e>w0Afn^+1W9ph>K^AyP;c z&8uW4FGil9bjOlj>*eR7`p<UbXC}RYGc~6p$SDJ`&)&NYCB#VVSQ~2uH5g0Kp@kxJ z6LlGdbxj1~5;I=rN*N!finkCDxk!I`yooG48oHrKd&GJVP`?|>tZ7Jy?ysflr5$qK z%n!I;iSVL>PlSJL$2bAxUx8oW51M*iXh+JJMrKEck-3DiZgbc{3p0E}hJXCz@Hr~L z8k?j|oFEp_VAyHAgX*9rFBh+cCsOWE0l#mgK&@hJ5FSd0eyXfsB%ex@K!mJXoirE- z?_RvJ$C7PIff&64#eUIA_{!gdyQF}sDuz&Xo(JuAd0~|XhAQjK<c^`0ThHZOXg9AG zM-K>>NuK!Qaek^wY5H65OXcr;#mWmQfl^3>PHu~Kaaqw`hF?F_nI{Ri3Q1X~-_f`T z7OzKhV6WY@;pt-d|46#>cqrSpeb3mEtrAM4R1`^tY++Q|Q3++OkddtzWS{m$s3b+0 z$R3hG_NPT!$jBB#D8@2Lmh8U6`~C6u{vPkrnESr2^E{93JnmFA;iD<=Bq5+>_qBh! zdPl_jpAIb&J~Kew(jwOPB+l}go#1vmi_#^_@&+e!x(&8ea;!pZqP83yoq4Kw&^*RI zP0MSKf5<E--L`3xsv5RNx5OL{=cbNMk_c(}CL5$xPwb&L3KfEj9ZZ1swR}|(nPn>G zJo0FCIb^@1g*?=T6=Do8y}#NWlSVvLx&1q_)=ZS1+_UxojZEcLGlu*B4Zv>Me03pF zBf?M&|NG_L=<M3j--d;A$ka2+6z#s%n1+VJ!CCBxsoX{%zuDnMFWWqk_i6+T@pek~ zgWCcOh)n~2=($y3-$SXaE{tVO<vYUgxr+J2N!0k+@7+d3wd1+h+5(Kydq<n>g)y9G zY3(Gj?OE&SaX<9|mT+EFW8BP^L2F}qR+%yoo^Pm0Vz;~n-q*775f^Pn;zc_*wKo#a zF!=L_X3+TVX)@bMRNfKP9P91zcJfa}OfLwqayF(j7PIbXWfPeS$JfPT*@dDQ!+}+P zHb<Cc!5P1=+SjT~W(sPNn1Z-&meP7G>F+HA<DT4>JLSW@F1p+OL!UVP?4>cA<Dc$c z6rj{C&BPGg@EPHKS~q<_X3z{Peng6-xN0lPDIbfRt-l-~DRc6L+5A=^GdXEFp6;&s z8x`|GqJkd(c=9EjC3&sx2bcyA%bmEHQajP4{#vn&Gq`ful^JD$#`v1~?+H_VdfuIz zB)`qqH(&>N``<gK%tx}K?9Y7&?oSY3-Epbpgi6N6nLvpH@k87!t)`im{_^y3Edb+X z>S*0M61w+<@Z=NKjVR9p&bY1TXNl;)0qZEvA;7$gJ7(REU#UHKtDvhSi;!OGkjBHF zI3Ezm&6+U-JoU(chq}E8c<1!iIc<EC9@Qj^njl~QS3FdXr`uCdWIMpAih?&P6m23! ze?|lA##fce#njt&eg$JTd5}Y7zS5Xb`-)RN^gw?|0XMt|$#3*h3J-fS(Oy}YH7dJz z@yu5G+?>U8uF(&S4BdTP!{G<Ni!kOdO39O%63<$`EGReMrlbIg<DCL$UinCG1;ccQ z#wI||nZGe#n2}=$&f_|B!on`Tf`!TW3^2XDPkM1f1cVV<8y)~w5LuH>NXvL{HN<VE z{~1sIUeoYF9;%mHw@UghI}t8c|2dCG7KrN=WNiwZ;b!dP)q(W-H;wKcBuS!eNB{rV zOnF3!V#oUVfHl9%2*|SdH(kMd>4r&PAUf&~$tObfRcs=!uqSl+*x$H!eu;3u1H8tS zl<7ud$DaV$<V9i2QQj6S^RUV|A+VPj^Rag%x&Z;|*QCs+hD-@w8lu<)=+lkl_wOk( znoOK33wdCw*;dc@VP~Ih=GMuq_-9s)r8;IAb@~7H80dSpv^seiPYwSn%67bvaM(}r z8keEyo0#vXHV!;a7oO$*(60OMqmqrg%uCUUTa#}^gNFagU2r9NwEgtxGe7oqV~%BN zLS%j1Ar<v2>l8qqJrE(7%U9WYqtLJ0OGpPJp+et>E|)p7h|zYh!S4X1B8JAtnFPl$ zjh`~j?$M;wxwmjr_wL+G9$kNEViDuOSucVS`xLK1!mox8S``1+x&Y1k$4ZI7lYa)h zdIcCAJoK`pQ&z-meCg4bo9YowkhyODqv~pYR`8B6KEP8B<>m5V4YVS@T9f<|zRHtn zhjwD6m{tsaSdYeou`kVKoXm9pOTsdui_MR?n5#zF&0&W0aqT5QLX4^m=|+#$394WV zNoy|SwAJCS8YH%I@Z{%BC!t=@t^Bcwq0_Jz#%o>PB_LO>+#2n~EzzMwnYQZ|WAx>j z(a(Np;AUv<?f;zST*=C8NeoMsH{ir2`Q7^Z#%K2NN%00VHBPtght0p9<a}KE#AIfV zl=E#q#qPn11A7`cV!GwK)W7P4#CLE189#bhQY~q3EB|xfC!&k%5A7@#&N-)@@nm8w z?vi;^``Yy~%!23Nigxfne^Z%I)HFX)sn<9dASSymwQK+JUqp3C*we%RnqIC;wcu>O zY?xJ-=KE==@j1zg`pq}`+C+}stmbddlef#)>mC07b)r{&SXtaf`;fC!+#et31Ky8+ zDF!|2H)!riT9RKQ`I4*dL7UTdN>G#e`<j2W-v8PPOT}LM=xti+@N#ZT<Dg#Wii2BM z+LiA1)S?tv({GTNWif=L1n9S-(P6^+#ywqm%4f!`&8C6~HA81IHL2K%WFZQjg!I!w zS-d*$cGW)v7c5jnR?R+4L>qN+GYX&JYS@&fPKr*<<!8l>yYess6`~FBoX!^$(Qmv7 zh9w6Yw)+3H1zEax&_hb_m3#Y?2~N4Hv2zbr6!WlROcvp<9T}UX^hA-_9ZC=+$@2pJ zO4RvRtq)aE;8<B*MIoW%>+xp~eKr439hrHsC3Phe(4%3_KKz4*WsU$O0Y-a?*x&vj ztc-4te|I5ieHpHqfr8yaM=DSUOVE7=KkiK@(b20YeeKgEQA-m<4ihboo1YW0UpL`( zI5#2Au)DVMJC^3~=>mQ^p@8Yz%oteicD5E7jb;ji`Clxe)K$0K<W&6y{jhAmAt8B1 zmtg(qlVW%sq7c<LOm_5Y!z=t7ZH`SQA(XQrJ{r4bRaeQ<AL3h#y>1-0i1mC#g-{h6 zLUoKO8m)j(3l+|vNz8VuUyucJ6sRWZBfxSB`(;hU#t9u9iJn?Fo-N6k<Ud^QT4_YI zDC;N^v2wMpmUQ%DY7aV#FfL@E4RZ(%Yl7ZFe?|OrJT6xklH}~Dw+os2zn(TuF3)bZ zP-^vv2fe3o+ZIPv<z6CFbC>K6lEuEY(GL^}Y5m<G;U6zMFU{EG1c=?z%84?}MYPzK zW0*|rB?52#vF!c=@slAD7=C%!n@mgUEVsA`VaH?>_UZ)tNQrQ<A6}8+Wx2Q)`-Ko~ zlB0_l=KH6->8qXoqHoV#9>>EvaM7KcZEcu?TP0tLi<&&Ku94Jor~+wQK5sBhF3o!) zjXT}(6cQjFv$3=|a7hjqjkaSMWqRpKk}4Y$jYk|>Pm|7V`)qlr^$SyT@w=Vl=K<fy z){|*7=1ww-6h&Yiz)^J1dIN=j?1M{Ak+Sc+30T302Nm}l1Yf_s0p)&*yGJ9LAn3$_ zJ^II2Py~#nZ7hMwT01T;5v4dc;VtSt0GNC5Hip3S5?5v>9w`IB%KZ<&@VwjbZ7kYA zKQOHy;6b0eATeC@$q{iC&j1#_H7B$}vjcVkmc`UNq(w>T?jj7Wix#nVM&Kh#4H(ef zMEi7CGwednNfxvu9R&NjlSDf%DaKHHf*vjKB@Z?8BW~n_=^9RY8#geC=y!&A(B0dI z%OS%$*q}-Aue*R=MPVnts^^4i5)H}{X4TMQR$oH703%R*7zm_w+$~*bW@~I^XT}TB znPs;zhO8CZSJUI_{)m!C?O&isi!nsY!``n0^tP|nUynY{JJ9urZAX+Qd<5vII`%G< zh<)h2j?#3AsKjdky-Hd{t^lLkOSe#f(a_+Mkql9`B_6aluN+ZrjB!DDgE7!03&ppN z7WDB_gva^mqrKe8Br+q-<qOG721GbjXNHhbW-=G$a^D9e@>l3(<BbXFZ7`f`=a~!{ zp^g?M0h>Hc4_gzQ<FB6faCYg+qGnEBBrk8p+k4Rw|J;io9iEaLe$6LCoo&@lb2<Cw zU47)($vejkV&fbpJJ%c&c8He{j&zg0D;*LL*mOCuJI1QC*m}E+XGzxX!q!un0qy0{ z#*-bJC-`lJQ@*)-Um{-Koo`L}A~Ru&pMCn);r05o*W+J4mgn8&xt<HSi2CN129<dZ zAC!NdAQyg4binjWT*|n2oLfO^d+GiI2`2pR5%~p5E903f<<9Qb*wD(W#M7RVl_|7! z^!t@UzGnX*opiZ|@kLaR3Gs%KajCqCw)ojWM}^erh^=oF&zG~<ejEu2vv9do8S;*+ zmH9Ip*G#+Gg!x_jE2kfOmUYEPvoHuBPyIt@440~@Rjl7p_4{aKhm*hAMK4>4d&RjW z23U0ss6qC6SCW=mA<h8QNN=0SOj}X3O3GhIT3fobq|iF4gt>r!yyq^=S{z-C2T=am z1G}T$FQB<sURz8|?dmLui35t^Ma+J<e1SCDM$$4Y+<F_5JU^d*4kRt>J2HZ-4uxTY z9%nCs5llU#QjTJNC2RTi_~{7;QjzX;?-h)F@_kSi=s2GNENqmx8gQr0vvmcS<^ypu z#hQRI*Q6U=0p`kaGy?9J>m*8-JB>=B`C1-%B&k(+VczTnS8ZtfnWUu^Q6`K#S4ELh z5NLrUlLoVOTlO4($`RV-=cjw3s`6$-2BkEqbEmcP?!<bEn!s9~);^UDy|-qE-X9&9 zWG9R${)sS2<YETBxfc>Yl5t;TES(Ta+CUdC$a&mfl|s3(k5IY-6=u4%G-EQ-!rVC- z5(sDIq_kEeZhR*TwB_s;V)R+{xGcf(Z5YCmjBBVf=Tf+cHk+sEy5{t-q19Y$T6NOx zkZbQu)kvyM&7i|PK-m@jMt80W%snjpBLm3SH3I)QOuP1#dL35ii}E=<)RtYIbh&M9 zQVgd6aQNZh@f=ob094_<4+`&}8@{?-9XbRnVxOIez4Q}e^xB&tvW_k9tb*WF(!mNI zmOR&}2=DN5!n${32M<ehL0(}i^X@ItA~Bb_1#lCm2_Jamt)Dg}`_3&Cs)(mkd_+-l z3N#iW@+ew?k;262#-Ua`L~dIWRVD!Ul<W2~bV_pF2V;n8mmvJ{^D1hlsRgVzKmY6} zl)i?d$&NalwH#{-XL8O!ucLpoc~AALF6$0%R;_b7VK_9poNnf*tdlt?vT0$wDk@zT z>QU!TrtKlKZ{qR4nEO*_3~403h38zVvm9>LSLR}tZrLM#LX;xFgGoI{0@an0GVC^H z^z_yFGc0~aMSuha;CE~1h*UFZ*)6PYak|muY&<u^xf#y)*+Fd{Myp*l*KU+Do*uNe zL&uIZM<`KD{%s+vrWqaIZANz+vTfA-^#yPJ0>dn54eh?EX_QkbS>3tuH8;y@0VLcS zCr6?cSq?&FwCpna-kpH?<<ou}qUvxI)h>QDJXyZ7W<@MMIXj@4n|kfKmTONy-F695 z^a*aN#UMH!Fwo3iG}t}|+#Zk1?ZRfavLh4!6F8C>@lVkb2SU5drT6H)0GesQg9GPF zD!E37!n=cr(!XOSM3Jj2G)8JSs<16G$stbh>{7<;<gg{7b!l!JJ!{=dU|lAE5roFo zdi2{my3uqn4}+xqRjrEDk}}=OP4%vqV(6$X)J|o{TxIGcp&c$;Y<F9cGH}nd=p`UN zE<vqB#O&PkQ1EM65_9SaKjXm51Li2iqN2)V)xP^W68rF&5Q+El{GFNav^XO|=kXs$ zRn7ib-0cTE9Gkl~0cphLArFO#{FR>GmeqZ*#9SB3{)zMZG|I_uuZZ{ALqSTS-G=|T z*x{SSNzr*Ili268qA%@Fe79Yh6zghTU4}%^waqnpoXe3udwS$IS^x|^)pmb_SF((A z&wyu@gK2AqLdBh9KTpyJnjgrG9@4CA<r;qLRDZQQPPU{i<3Cj&;S)DSPPtS{Hsvx( zKerqGt1MoAF<aC3UdV&^nACzA_BCNoQhHi~&N)Bl^6q0X-c@V%dFd-WV_JR?;;5~S z5-~cLopvse&Dqdi(HOWxTH$KT;@gaec55=tW4ylpnB4O!Gp_Dh=ivC~mFk~Qx)hz; zoq8M4s`(2tv;Qsi>O_Qbj(o$4MA8qUx|-MU_#>jlKba|5>O0s5?y#@%kN`^x^Hap| z;BtEM>q36kQmqqU^d(&IKvy?lXo`XAYQ!a;4_u+<4bs%hA3n_s2=X#|(EU}*Bq&2% z?COcvX3$7w%#>+B#XqUt4bEqNE)HBz>C(c9G3cScPtxdFfsqL4t+&_247TRK)AZG9 z6_}T;ZvcKXob=udKrUBKjM2srrG%$P^HWS(z|m=Qp@|$n4N=(K->7Cg90f<VcNh_U zSP}qf4SQrAecUJr_=yZV;yB&RwUJDFo-Xi`i>Z|)#t5E{;`+dncdjg!er$liIycMG zBLcp>_f;Rt2Q__Ow&&2(v5^GM_>uc3U&c?5ZQ?H9a-=`t&n9PVmkPZXcP?sa)5GiW z+WS{N=vL`&h_057Z|Et`JmGtd@vd&E)P-`P|47mfJqHR?0;y}C_cS&NS9`xOIpzEN z%Uv0TDO;r<yLNEYH!J+uOT3)9DykA>vG%KcW4E>5@5q$Ek6zDuAvdepY(%0e|K~14 zF}c`7wEZpsi1qpREh6^)I}Mqpvi~q~zO=-qV~Y+lO;uqTWuJA5fC-t(^H^PVyG5rS zfDCT~0oGKlIHNfORrO*W#vKRfuw<Q*1tAS;ymT|Pjhou?1b1WG@J2i6L~k0}@KJ-8 zUj(iw+~)m{toq};Aj3Sl@L*|S2pwR%;1rM0R5NQ*Nrmkr!Kmx5as_~9=fvpjkpu_x zt`a7sj^ABYbT<=M;N7BsN_iL=k6@9ht&iDxD_?+N9(^W;$SmJC0HsixPmutlRpE>% zqru>bxf&cfnnp*hNNj~#QM!>q0S|TMsQ*yuzhCOx_^7jBG!i2co7_p%p>k8uj7t?M zmG=X6DSYfy!RDHNS1jdmubuXwpZ$6K`C%URi4koQvuUd^E7dLV5tGcko@#!@jU>4i zu$S&j0Y+Xv>p;4y6r(d7&WJaa_rbuf1a>%P0Tt7)xbe!?dul#O-c)ZMcDU{o^p4%1 z{zo)SlC-MVqJ9cxfV4U~GKg0Bbvv$|b*&H=+JC!^jK~2aT+2>=TPU9caEW|g!Yf31 z%MxY@H{!&IW`Vakbl@nu%3~I!=w}-P_EzsG6La_75(OQjE@X?FS&$C1wKVvsTQ({Z zhUXY!P!it&Jdr&_rUpwoEoBVc>_J;B&CFN#=^R>Mbjz1h^a{06+~@U5#uZ>}u25dY ziacV=&B)u{A^8s8jqU6LeulhL7)F-*a91He(Cu-p+>D5MGy3XK4lGSb7ZG5&THG<9 zujVk(H0bonesT9n%Ab&>m`q>{m|GQ+X;46BmQA#$;8~1~PK=2&K2`yzc(+@Ok;s)8 z*Sd%yy+(ne^7<4HHN6sWv)vu9KU(7SWcPSN%kPE72*hPYqXWR3rXxrww4+cwMYDk0 z-Aqpn%j9Qxoo{`z0vs}L^`}2$2K2C0R8BH0ZtAUK>cjSy&Q2u^^P>2d?P5ltgN+(x z`ub+5%Mxpl3Hl``JXtv9dO>gxVSQ^HL1uP;bfR#nEAx*n|5K{}*gbpVxWto#HjW-| zUX}`*rY*khQ~KW@v4&+imNRkO=B|T}#N^bCuI|`zJEFIwXPno$D^#fezoJmrPfN>> z9r@efax){v-P-VPx0$eLijRp{`c0wilNTCJ)p;y?H*LRcy}r>$zKw4?E{X;@{4}t( zugiTp=DX(Co`ZyvSsWKLn&emC=NUh31>8<X0jZ*W5_Q}x1tmDnUaX^=xdW_?3&r)R zb>5!q5RRYpc0THTLszn@^Gh;o@seQJQAAKUOQQe`XukeOW_H1H*7$njw?kQ!KKdtF z-dPLQr0aGz(q!U!q0@=I=(eQ-M^W$FZ9Za@y7O--sVHmGnk0D;rogwSM|{U251g9e z5FF==;*{{@X-htK?WPhk%T*3KsIzM$V$Dd=ncY5Ux4RvV9VR4ySOQdxMvE|Zd7?{- zvFRhOSU@H%d>Y{C+OmWX3$QkIdt)V8co4?X?Uyc&u`#u;w&S4=l`Uqhn?Nr$ygSc) z@J3wp!GW#)XZ<5T5INqLoV0YO%=yVBEolxl<u(v))}5zaxpDGE!0e_3Q@g-DFaAwk zjH(`eTU~XQ@rbgIb|P2Mzv1=Afj27--4)8Y9#<T&{pGR642ez4Y~CJO^=w(pUwwbE zXtOz)V9j$z_VNFQdN)Who*pynDcDTm3%>W)#7X0F2hXuqADvv4qqp*tI9g2!+R4gG zmY)4pdew7qqGaCcm)E>z*=NQ1bFTw#m2};DdQ$Ofy|ImOgv=gc9mS5GFJ~`>#XO<S zTn$c=4U4iDpD=dr)DAvI4jgD%C8kg_uW^$Ld8R(%6z2{o<<8lQGEAS~q{sMX8TIKl z?(7|d6hUMN!9<;W=Aq(@)_g^YL~hoB8!}uh!NddR=eN<YWGuNdC<F5Ewllx_4tATv z!nNrL({iSBg=8pZX73~Ayf~hEte?r+PN!Z6~jFl#$iy$j}ss|j^Fd{hIM9{7ch zDB*Z)@RXorJHK7TnB8f?#}4uP-wifQ%pPo;RDz2oeB6^vi+S*4B{3y3Ua3Q9&7$4* z^PH^#RZ6raTGxQ(s=4RL%g(<?gNI3#RY?>{PnQTUm{nU^i;J;$uG6vr<_20noEmAT zdf-*Wi`>2)Z~c%KA63wzjeo~EZr0&rS|n-*2T)}>xYr?E>*J<44BH`Z^*Ly4`u*^h zFmBetidU#6i`Z~dFa>_z=qKVAv(kMbYvZ@!$$8=@Idzm_E=ZX^9;!%inv-VvuY)z{ z60ThM<%8?3gD-M0q_2cl?B-(D7JUY&dh3QsS!Xe<9R&`)nDw*k1Rr&LQjX&J{a$nY ziQ|jhI(|h$+9Wi^;ibMG%l$jgs*t5jn}b}~SBIt~FbDRa5-O>sE)6nq?asn>9bT5! zwc1`ooRD5J&1Gm2qs}$g`_2gF!&XQW&r;DXdwD;>yphE!?Zn8$mZzIt4_(ZfD$+HP zVcdy_sUo8{d*)L%ld#TJsioQno1tre8>>oU8tXq-bAm9UPy<hN$9+x8NC*&-CVw8r zfy-e09zYdzR>+4$YgMt}W>^2YX8XaPG&;b;ZlbcXrDHoJugu-C^jw8idzq1Xh-wI$ zlfg0p!s40Q)U9a}O?8iV=6onI>%Rg1zxp#85{$_{QBqNLA@sZr7sqVjJc<y9;$b=g zT0NyEYr@*x3%e^0K{sIcukl6~L^WDmD9A~;s^;w3c%2IN5{BlEkc*n3ZJ#Z`bq0fQ zljwJng-+FCR!)QtS00zD=5A4nirgWu&tPsGkWZ&X@sHc1TmS%Q*Rg$yq<;_`MS0WT zGr~#CcMq#p%|+tT|M;>?9nNmpnbuj*uLA?DJJEB~5dWot2z!e`Y>mhxv^B!5q$DVS zgx)e2vD^}+d~CpL@1@&3b@cshLmyvI4u#d2Ylu@aBp(w@$H>QAOo?03AA1RkiAXk= zYSf*4HOSF*^sjO;BT`3_dNar81fup6EkkK3mGrJ~Oi$qol!zz<Xvp*`+D?LR39P!I zH}c2qlOqqsc`a%eJ2l4wGlrBoJ(;uvc7X{y*rs8`HGQ~)6dm_jjxs`PgMeff;ub9) z=%jFSr=3G6&QPD#?*QLlYKx|l-s_@XZzg67EQc?{x%V7dxWTHSH;_`t3q)crbeRti zTkGfKYDoB=XWqb+IQ0V_jpRTuJr}m5JbsBXXjujsZ%efeH}x#Dm51d7{dG(4P2AN7 z|H@IC9t7jjbOC!9`;HG)jkjw`C7l}-N$bYjK=W3E`gkm<OJd5i_CrLH3D^4bO^c-& zX)nQRSh!5H*;<qV24v_*wJns4r|;T)iNzw|5gA_gBHoRCZ(Bs_cN_`p-t2d+ShE&- z%z^WV-20E**Od5fHL)UF<Hs3USJ5QHRn^7zX>KF>-9CD=ea1(PdR|XQsSn$3{;|t@ zDBJP~XTsoNOJbY*L`$Xh3o{w7ZN@K$eXNfQdU5egXjGIOH>qzeX-zC#vNz2<K;?qt zcy6nrcBh2<o6tE&>-y?ZMXv^XJ=v1|oK8m**Z0$n4HAJL$Ied-r*8nzv~ujb(eui{ zMAbd2oSFRM*Gosge!ecBanRTO)tP*UMAM6I0{Z=I&pj1>*LUrEVJ}11ynV4L#wM@D zeO1kq`u6)zzc{T@89QyL7Z|Yla?QKD=QRzT9(^x-*+!!G436gk4_~59@ifNSmE;m* zbOg`OE+hkpG3-S4MV=s8)Cq1K{RUMX4vW`mXj+%mG6|(KXXQOF{EG{znZ4U1+sLOO z3oL?_dm#pj?EfBPS<1@iSlPTl1`jQL4)xkK^x^I_X@Xi|Q1m~^xkCV&?_0!FcI9vv zVV!LQPOk3;9#?sem=Bpf9#P&@L88C^at!iu&bNNNGjcjWyz2@BRxm_%-g!twCxyNb z&n9TvU!2LTyoXRB)M|vlvgQEuYm<Eds=8G$q<ufndeR@}e7)yPYMIAfEmMD3=LeD5 zohn+wL;V6pML!Glqyk^H>j~0S>A&`n_Om?H>jv_4BU5oAQ)X&pS<tZ~d0!L9-F5`J zXUh+$<OW%o-WfmYbU^V*dg+O&;(i1F8D9zAXHgBOVs&awq$B$Vj5|+rpIlWYqKN<& z2i6_RVM0m%S4Ff<GpVI|p<Mitqxe5<699YhutFNTC{4;02T0tf(HzNmcY64&U<9r% z0n5%e6+{@$4WP8%S~A4P$_wRKn%nM_W;7?{8^1OY2-@;Qn58zXwd>!0dRRx`3Q9_! z5WFsC(>F*(fpJwNtqtd2Ni%c|PN?2}SIN&v`iNLWCh~GtU-E#7aGh>E5uFyO7UB-L zujs*vw?l*PEoWkh=xKZ0X-S~2X}i$y&&P79hSs2i%>&OE*MEXUm2-m;khcwYk6{`* zvTKF^>)Vd80~T~$hF2!C3%Xttv8&zAbz|vNS8XN1?47i@)dT^NGFTLMxqkrfM^37v z^;4cfD9tRaL%9XB53F#R8-b3}I)*w?XTNCyEsA`Im;z7CLd>%o$MGHv766qlctSAu z3K<g?3rh7JuWK~+i7H+CEwl1*1J4GTg_%de&Jm=M3Xs^>AyCYS=Y5i;1aq8iGkB$2 zGlb9AH>BmKRPL83s1PU*?21iV%nG_LM>pc-Bo>NNA~x=JzK^!uupn3zTo-_q8)ams z9*-?a>kX+$lID6>gQBv!?%y9MYMxn8A?;7UWe%jbd@ubv$Bmo%H?<^?;9M(5k*)r* ziD>)cdr^;mwhjjDkLN`Q+Gb7CDElZ^&C2^kOG+5npx}#QOktK^)Rer!$5l9C)xc{S zn!+xeeMN2PjpCu+r$VP?|Hf)K@!PwaJR);^H<`U?)*X$3azLj5L?hCty{oy=HAvna zO(s!ed5ZROv39P1mjxYZ?>@MT)`7+xT%)S{Skyt3Q8<II^0H7o7gKieTP@0!iUD}o ztDh`lN&K)`$N*9KpH@VcQWG-`RlvITz@3!f@{k)OT3$CqB2zzOiK%Hz2#5Vu95xh> z%2Je#-jzW7Jow)>di#?QyWCBUary(`sPpnoFn2l#oCKFQupd3u)CwMmpA#QsajC{a z7w}%E7nJ5VbNbnWDw2h^BRA`JlNh6pNB~S(Y{%^eq9w(6|0{l06%8*bO^Tn<maItW z&R+)}NC{maQX-{uLQimJj2d>HtmFoQVzT!hH*5W;o0zj+vvS4gt5-5>vVTOp2_>Ry zAMi6iI@f;r+mwGyis8VQMz-Q+pJUnR`v%<yQR4Yb>O%2%2wT+P6)o%dEyNo3)MNgL zDCvsyHEj7Yrjm3|?2k`#Rb$V@it>RQSA<S~oIi8)R%5t?%*b-7lFvS~R(2}B75`f8 zm$-39idg<!nc$rJJ^QJPHczrn;{vDIr8>HI)4sd=R?iv<D!yHOQ9ys}{BdQMYmSy# zPA^M&Gjbh{+ZZQ4y7lp`XioYAZky2!O=6To>&_|Go9NXh|9Vy5ylCb^YJT-&55)~? ziMO-Xb0n_O3J-*5=Qw$c)UT)VP5qILtWj6GOWjh<pI4WA9c~naD8SGGxO>=b=HKkU z4j;NvpitnUe<$sFQ)>}0DU^S)mSo}e>eI9LL*{g&h$YY#YNq;Lr)oQW^OCB2@S>Q9 zsuvDp`Au6i935-$%CH0Ax~f$`MFuTsR<tZR%!->DJ-Yys?U!i7`(tP@v2)=TXcb`v z=c?E&Vf2R0fQ|^SDpjYf+q_O&SDK-BQIsQ(A$PpyUlTM-=A(tujFXScTW*7UQ)z{r zBhm{Pd!RFoHxoE5r;%h)I=aIS@_rMOi#&|ZT--yM$*<hVG>+h5V#?VaYVr0S_>(p^ z`y9dtu7G$Xsa6}AA>z}D@q2-i@s&+fDCc8-)3G8&-v(SUb8iZ=k#pc>yw0l<)&k}6 z*EbjT1cp)NU)rtBtD?T#SEHQPdED!Xg=NFm^J!la2Z(!934PY(Rxj<#qgj_y@`pb? zo|+LUW?Y=^Gd9jPbP!l^G%(L|DsZCn#`zP!*1PxDE7beP9DV$uBEVz)3&F|1yDHLN z_XbksO&>0EjVLk~lZf)*H-BDorKcu%&hws3x9hC+gS$e*pH=zZi1>_kc|Y0iTH<}t zU3<*Rz`o$@{;q9=VO{|G*>~Zd^d7rxfRtrlq)-GjDJiZrdf2=)iTNeXpP(5gUeJS$ z&Y2YLIkJZyrWbJcuM%NBl2Tjr=hF<p$ixaoib^aO2xVO%j=J@`#Els1ZuT6+*YsyG z>-%BIZ|}7ri-U56gI?cM&df|Z6B68NyJj+ThY1JVu%|t;CRjbsb(YU2jAJNqQphG$ zPs%{@w7#I3hsCUhsry<!>cJI8JS$fD3P!&vcek*nMbMG0p3L^SYj$imYF6S$L6oyv zxoJiSK6aZP)Fst-E{Ic_A`20%)K+^qu9)x}+BoQIa_1YsoO*<jd^@%;)qrkf9Sh=$ zOB1bOfuAU&TXkjV-UEcRBPzcCJ{p<j@e|sUloMpOMy!_^2+t7wN-_;b6K_&FiE1;9 zs_p^ZtESeCx${&Ls=F%Rmh|<t`ExO&5*B)Lb3g!;Ns8T^+jPR*$5KLC8T>?n2oy{l zp{kqxpDQ_k)#?7)3xqVIvmWI0pHXtX#o=-GA)^K7vjuM;MA~~`pUoxP;1(KRjqo>Z z$cxl3#1u{#5G^BjH-q-`Sw`{idcF@YBJd!KR=`LK-*SnfvpQ#vLbg`^5@$fGb#cV% zef*Q3Qt<x@S^DLadr}PFn>TI=VLO2MK_aut1zr2A0z!$p8tW+j-Us40;$TY8iaj#) z<6=3w_o6zekXsgP&d#vIh+TMrgH--%5lc7K7vVDYkGV!2^3a3fDT&7d*RCL}YdJ76 z1Q`ZyrOY3=1yb>zKBx{`rQw4lzqsg0UqY+YA5yYQpCAMAel{7fMAcGKKFYlhn)hP0 zz)p;(zn}qom;?6Zajz<FjG*I=9biyAUnyacAZk$%PHLP<0uNOQ6Lj2XSrTn?NBjtc zV6hRa$L>lxZ}!HWZx4v2pNj>EH16RfdK&9eepI%a-GKyS3>16MTRw<7&`_?V39x=9 zp7*^PD#f_qILCVnsD#UBMMCMS7wUNFB34|~mHygRYqStKn5kHhVdO!#bn>R9${7vF zBJSSwS;+{r_`*-oZhC1DCj>modD)7ZYq5k@er@a8`a@Q2Gxlo*NH-G21@&ZuEHA$~ zDSE(v`<AkSkY9H8zT-Y=hrgN6Wz{79ZZ4?1Xgp5WTe-KP^7UVurIg0_-so6^TH*In z4V`I1yB*qh1ohJi;|%MO6?es=do=^B&IKxL*<!l6T0Qg-whwnOqdhF5?D*KP((m`R zlcFmh5mY5~51VoFCeBMGFJ>)0`Y16DTDi}(fahe|)vO^x)&FqE*919`o=gSGz*iL# z)xrdIhT#I;kG~ku=$qlVJ;@jFP3?_`<0dxeJP+eEb!g0L59Vx)Yo@P8S{JjjzcADZ zi}0DMZqUcoVn@1PBmKg=2pL<v)_uO0^Z9u7vtOwkn(JSK{LtXxcA`{M{l^yi_}3u7 zBS&j+iw6H&L2=i;lh4nJuxbT|E#IU?sSKa80U_x=i%?plelfI0``$)(>7cpmmBP!q zMh}aNL>L%Cug9mRoS1paktV55N&y&obYg+j=)ZZ2L>pA~yT#9F*o4!odw5h&k+Qo6 zJyI$7@zTbSm1F5OFWzZnKh!wwFjpY`sLrOXe`EPg3$xkc#1>`iHzjwQwhu+Ep1SK2 zqI}n)MOn+Vp|ptbn~__o9~$lPIr-fu8>b)C!x`+Msm-qE=GiJvrzB(!DMXvSzrxk8 zwn|=m@?6Qxk?_vQ`E$b~PL#JcE&<oKT$|oRo2YS57;|g)dhm`iK%CgnZFXEG^pWv~ zuhCwCwbBu1`O62!b|yu?8R|VGcD{oj-&|Zuk$0k_`-E<9?}_~}*#W};#0COqZ+YvU z_KsGsN|pKMH19I(?w+7@@qzK;%mNC)k^}$!=pi`05(RtVSd(BAnMZ5*8Fc}-AdVXi zSL;^NK8@a()q_j0c^oa&(80#{;pSrvA^Q;afx#<%YBB3VCcfvQo_-H0^SdaQ5~7rl zNa$vA$Y`){YS;&@QuB5SIEsqc7{W#4Ubh-&C*PTe+E%)nq{?@Jn{{!Rn{j{_nNN~W zP;NT&4e32S=)x7xNP{h0>?qA})`yR@;#w}Qc_L7jqUW)2g+LN|?Oz&El=q@qtwe@0 zKfDI^-Ey6q#pF@yNBE$EHxI8SbXsy?5Bqw%6)G0@P7-}}pbro|$KB4PDP>+<hr?QV zjd;OEmxd718Jq!#*0lCMsmJdn*$gwlG$vCM;~;L9)B{u^J_kgO!&Se}6eiv~epYCO z=g#RJrza2CkSum5JStgDPcC?j-F#19sRZva-$A0el*K&*lo$6Cv^~f0vTCh^wh<(8 zv&9iwFUYh{e7I~{q-=ix-g*5YtO7k$$Q6q>eA~4thx9J|??s*_gNBA+ey=KiacxS| z=igeCh;@%P__sLR-+_BOx_J`TI0u>`p`(0BjM2L3a1&|j#)j1d%gI=d?q+_L%u=}2 zKJ}G1i(qzxrML{2OQlTCZUu^B%tJ2Kn)TaqHyHP)9!8Xc+HKxF+LR2DWit3HAqGF^ zW=a=#&L@O60;9ej8fWfIDhli0Pqd9|OELORR*|B4d!-obPE6pB<EvijVoPi$kd%X8 z(6MiCUa*(wRxoVOUCY*IDI;Fsf+F_h_Hyl#;b)C>W{D7N)sP>+N*#7#Q~lKca5X&( zfWOwmG_YOz{>^SN;Q&i@)L@a<UOBpj?k2y=ikli7h+@(?WldC{!(lgzvqK0=t?IlI zhH!sJ$O)(H`#;*T1Ya0hHj!0z8er+k08Ep{vY<DTOeK=Y%w4v|MCRmgHSSF$)dM0Q z1aKb*p8Eg-Yi_`o--0g3b3?osh$tIBG4$z+-Pn-<Ue6~`w@PxXI8MY5@;CqIicN(? zHN$S%nTeI5tinYRA#X|1BJ1hi=EzyQ_CW1$vnCkFm7~f*!yynP8mpiR2Fxvx{vh5= zfo8?Nv{1?E1m(CWU-J{_S4+S3=|%<f015AF16(*5wiB?$UO)u;maRM)3LL&7kJXjT z>S{xt6*2Gg?u$03G0!GHY~f-p&3VGjI>)u1ZkCt<Jp~U{jem3!D;xtd5dl#E;g7?< zJqYi@Kl4!Y?oI5Ba(BN|aS+7ruD@I9VHfA?(D=T${NJNnkaIWP_-_ZPr94vH>*(M@ z;1F^#YF<F)2b}F0p>uN3j%YE7ZUhDLIc)xvBP4q*(H#R_PNWt`2dCjtU;(dq7`;3f zQQ16Qr5O?W1rb7D{yp`7hliIUp$#PR$Zt(b)9DhB%2b&fF4J6oe;>eqsx|8_z#1+J zg7#eZ(lG&6zmDIvhlGXpY3x4w1!8d5F;etOvLYoz?<7g<AtTG0OjVMHR)Oi!3sM{N zea4latRwzM$|zZT@?<L3KlCSAWaHEQO;~ba5bNf1#|=_-j~d*5cR_smu(OSP{Y?Is zYx`x6G<+HQbSbr+Gj?Tqjb5ek1i9J$lp=k)Zp(Ml{I5Fn@IjYGC##%ZB-*OI`f#j4 zLwfGnRY%3FWgNx#LvzmrXpyl$CU3S@4qdz#o>#EGb$Ps+accb1<2*rOOU8a16dO=q zmY=9@F}4wB-{`Y#-_vFu*Zh6x)e_F;Xzq`U$wwW_epn@vdLB*ZI@SN|-s7^!XH&mK z>3=Wc+86!2`GRlmX^6Kh%}8}TvMGt_s-gJUee2~I?wP9+JJNN>pOt?$|CXStosi%< ze_pd&?z_9iA6cI1CZ&?OdQm-y{mQKTDeYUc617Xk-U(Yl%M;Q<9*y@wbJr9m&e+$u z@~O^UEGOJ;JKfSmP}_cXdkhho;u1}A8|qjt@4ucVEIt+o=yLTavGi+Sqy1BUFIJ9s z=sSj;i7tt94Kh`dACGZO?GXVM?Ks}tgB38N=f@DzYi$v8brb0_kZ_(Im!%Yx{xzhR zy>zvj-$K{@%!qegxDbZ$bM+di$38OTyJH~}RT|WVG+4U~SC8d0!{2zQDx^`wo9oY1 zXdv;a<wgvz&c2`44oKJ<tMXexaaRAD2Yrh=^(^Uct*0W<cE66B(aPV9FuE#|pYGZ_ zT&e<3U=uriuodwrTks#Q98w`uV_OysA34``A8KMZ^4EYG#CNsF_I?K5o%dDvFp-(_ zRgmgIPZsGTGMC@AzXblb1;lDxqsiOw%_sgii!V`%{o{8qe;H>*n^9e_a^pVLb73CW zf2M4T+`BvJYu+up&YI_^4ve;&3XVpOpOzFBYBKD&8vXf=;<5UVw;<@$g-v=v&AhIJ zeBl43W=n;m(KFVPRkb_G>>EJjW~8~PJFfoKOz4F&UOwjQ(NiBZi`iE6x#@-QfOI=! zZfZF<IDbKxpz=QzB#WpXjND?31OJ&qlR#o_IUvTkmJ2;HZF0fa5e)rY4U;gu1F*k^ ztST|ZPx+jNn1gsYLaO{wf0pL-=uRU^0RG0Tw@1E^*&%V+!A-}n7I2NKBu?_M-1R8o z+$b_F${$CruKLGC&8idqR?0__UtXq2DYxyS(R)tMX!bz$=G)T61)I)yVV0L^IB9gI z3ad$?UwOm0c<&CLkZ=@2-lh{;0vd%`THYZ<=}G4td!tKGfa#wZ1M#(9m84qt7oRih z?;=LUD-gSt&v~e0sSU-42*ZEbWL5uHWTrv{lGHkYpqiM{_a4U(*gok_vhY2w@c`V| zKD3}OU&C>+0+5`LSmnZaC8G%`+>+c@=l(DZXS{~}cewCY&A$jisS%nYDAQsbGA{dQ zO|E!x#(d7zny8D5Df5RU_!+@kAi^$)A4W!HYba5D^kNL5m2SmHE!*W63a8k^k3a}K zdc_$gJK8b0$?T3NQQZW!VVi4-;p1nR{&(i1Fe^<YNiShZdi4)H3GJOWr>D*k(cO>+ zMLec1-+`Z%e?_PS#8ppVO3(~Ld06d_fEt0FV6A)+OmmxkD2q_7aK~3zt74uXI?#bm zdheB>p2!kj{qkypvqIG;YZb|_j$v7u7WEU{hm3I79=Ihf40A+yw|)8n+}i1INk_#d z$a~)3BHA7<@F0?(01{eEYEg`hm{8`+*MrO+OxmLvf?iw-&+L;>4AHg)GZVAVobdBF zEDB}sIyBXl1O1Dtk))@|M{Nuyvv$tneF{w1$X2AJ+|wshZ)YsNFCIfgTOTE91%3Fp zm8iaR)5hyr%n4!E!D3uIvrphd6O3*%9gyXtdbem%Mj{tlbr{Wn%IvGR|0GHm-)3iO zb+a_6TTv!(^eCCSA*2ZdG0m9;L&$bEKDuyx05ARhlG%+W@grGHGcHFBbENej#zZ&E zUB2H;R@EC02dzPCm>rIxicOT4^LMyQy^H3SOK6{?#r61THqLnt+Sm*qI@eaCls&S| zwpS*b=TM#CrNw4*5yrZ;l{4Sd(z4KPh6!|-=UmddHd#_YImhdryybZNDw67Y&bn81 z?3LwFcN-6u4;;$M)OS}wZp~hI&hmij%MxjaHPUp-Jq`bT*PZIieKe7)7E$j>@z(m> zVs$LYV5Ii7s)qF`5_QKz%jHY048LuOFTeNWuMovKTaKPQ3)R^3>$qv|kr_H&1_Z{l z{B7sFS~TBKU2lq~df&70fwB}ag~d5&Ypx;7NfTVd{1?y%#&)6%FL8IWs^$RX21|p( ziK4*eF47F^1ZAhvIcs9}_Y9=GVqBxaaqpAYbnr8rWx5T(LJt8abCaJc#+IbS-p|$$ z8gcCJAf_s~X9YC8aUxwX-YM)t?`#+aAF_#PfHGxT3yCt~zqHSbGGZkqP>b)%iN|o! z$YoIQx5K}8EyXVofj6t||9{+O3R>i^!spR4+AwrXj&8>10{*KckEnhD%6_rw8vMFt z$a|iu<3WNxZ(R+v>>MFVrB7eeaF+ZYqtflh|CZKzhkku(EU%oBE3q?6nzJM~`h9Ki zm)b%}KTFSJ^10XBIZb1-JDT})P4>5FCpvx2{8{m0yQ|>2T6SLYDu1Ux9wE*rR34p3 zks7U^beo+z8b4p{EZ;uXvqX9@|F0w0$(4%+<LCO~Q_rt>npU&E?}|WaSl5Hm0bRl{ zwp+Bz)Y_}Ir}tt7C$hs;>80=+R}}@^E<w=*Ys@>0i`IG@-`;$IdS}vb9>FXxmSB{g zc=<QL1-a5=X5hYq^bv>bcaq-2eUijZZ9oiTtv&Amk!f|J$m};(a(<F#TzkgPQ2Pgf zed6d!RiavH9IUq)ATrPlQ{})h6aX$SO+m(VN5MHSSVp1;(zdcIzP(qqcteWLAK-?R z1QS#A0&M*Z4$a%{fdiJH_c`%m^s+l+Q$8z4L+Kd69auix)GaFWzH2ce1vgf7ll<<p zCr=ZzZTdjs)$Wbz5JeST&<&2}EQFPqB1V~C=q40}Q>V~`2d1K(vs{n_$LH8fGc-32 z5YpMXS1}Q;+>g=m?IGY**#Om5dhv(OL)sw3y3HdBl)4(Mq*44xqgh~Jin~?TKxTTo z2(Yxyv2vkg62*YYUO`xhd`-X6M@X+qeaz3p8a_>;jlNu<kn4Ah4*ce3%^lRq7R3b< z7j)R1h%RGeR^$7K)b9?v<IXpbew5c^@INtW4-qPn^8Ma#IWl!quD}B>+L;UHPS-tB z?todsw@KSheZ|Ts<Kt2-_a_*w+Ib`5eGy!${%`r3U@FWQtRhW`hDdO;X|2ggHa06s z%=R{JwqMYN{>g8_dX^?TB9~GMPC7tC-M$=Dkh%{#o|b}$j|JV<*PS7v*WoLCc=Qci zPZ{aRB3Z=l${Nrnq-}2%5L6+@)3(r?G~VE54azFT3pf-#0xyhAnRRD!hVgG>kb!yK z!rz!RxQ?FuEEI5496{StpVa;%V94-AfYDt|if7V7bf{Vh4miN2<sX((Y?*$uIM&OV zrMwFxu_UGD(nJzbRQg}ZB1(3R>O>1^$|o7{W_YqViiw0CRD(`;<PJfBVLSf|ZF*hd zd3+70$)MH?B@vM57YM<|;xd#2Ph^v}F8>BG!cRTuK5Kt_(!*>>mZ~`UNC@%TBu{V@ zzmu6$f?({P=-FGs8+<*&n&4bHiEM|@974M75C>Dq(iX^Gm-ag#K`;bi3O9`SsO7wq zotPmdX*xQAqh^N1!x!m2t0BLXyb`96#6$JH5L@!WM^10S{ZX3ub^X6olQZZB95oau z#fuPHRduAYW|HYOBb8lpg|POih37e>5_rP&2cC?|G7nY9V|yMxx2-2T-=kUz#LX0W ztDf-Ht35$dxFLRTtn<}(|4&OFRuz}Um%6G*<_>Yh-ESOO{`&jEfq7t~yVu~L^O5Fw zG1IfHWxN|^=3o5qQTHs~pd9wuj3e8y?MqDerG6bRxwAJX-p5QNUt?~Y`xAEv!R>mu z#4Z3S3wsZMs^nwYT4V)56ze5rNgp44PtdL^uO%^Un;UjOY_v+3M2&n1$*o*34%T0Q zi&{9hOD%3d5EBc{`0$*?+=ld~a%Y7%o==g2`<Wp^X4X~NDnnB=rObz~t6jV92jT#; z^$13=qp=h(Rc&2Rb_i7BYWG$l{C?w30Y<qEs%g_^Rp5{O#o;8?&!Cy^_+)M4W3zWp zxn~kIO9ON?WiLUsIlI|D?=!Q2{Nxh)8G}56vm06~Zw4Y?q#Ka*B5njFio(aZGcnT} zHoqf9$1)Dz6k`lLQvM?0r7TLxb%PUw31OPsOs9*qe)VMa7PcO;eA!+yuT(#257|7~ z-udk6_0dD}z8({rv$9Rn*(-btgpZA@ZgwfQy^xwc<3#nA@J}xNIlN8J)ueSz-rg2I zxkrLa1U&>1LLJgX8&Z=$9esZDocXIpqbu(hPe^)5oisHT43#q}-6}0x{;Qrn_aQxB z{rYfP$4i2-X}?j`5=zL2$diE%e>9fVaUy+ulMDws8aX3U&MwKed7B<P6)Ev#GIms} zXND-O<6OT;c{nz*bbef}<hfb&zrXLl*gHJA<s5gR>Ad%vhRe2FPVPR@9AzR97bV&b z{HCF~^v*pUJDiTN_n`=b1=|$@i*UN<vA5TG8zAHVi?HI@Wxi=%QAPXvY}%|z7Qq*5 zu5D8!Xfx7c7+MX;)NFaDRnICnC{mp3s8$!0Mv^5g%}LRaHJwTJh6cd;og!sgdVrhd zvd(<5>n<K@9H3R&)$vK#Vc>?(%GFp1Ap-`Hi=ervB%ApxeU{Ig=7p#c8!}twPB(OD z$^{6IEcHo#ElP@}WvJl_{Za|xy?Z1iStpbH7P;YgG2QssRF_yt7%suOTj!J~!5H(g zfauNN3s(3zkD~y_^1i}l>)a$qkv|#7MXT0pCo@z2J|adxyp(3xIZ0N*74Be<fB@mw zix@mIxG7{&yLXj@o0GH}mslGToQn_QG~kzL*hQw==zl~Lj;k>p;i1tD#Ld#gR+}pu zkE)4HE1|wk11Z}Rc=%anggP#Rvz6dLG^3D|K0--ZFDml4>Z<<{u+j(jP3*jJN0x61 zG_2P|2-OVKyQ#i@`kZXWR3ibFLqn?s!cS$um#q0IITR*|;wB!J!d-qwcQI76i}XY& zm2n5&#=``2yf6gLaV_|wnkD539Vd^Hy>zpNULvzl>eZ(Kt|IP~&B2>=q6AQ_icGTR zL-m*uc}uc-<`~BUp#SL<@*m5Gl==^(DaKg{M7eKDH(TY7)+hA*rxj^MM~&TJmoEml zo2M%SqU;mm`P?vs$IVHRMh#M%V9Xm@{1UhdZz+idjj0bNkBf>(kIQ=->`ou&mt9ER zDVfOJ;>OMPjx^$CTQD&L_iL?&j_}VA5BsB29&%^jmmtGg=!F1dR<p|sNeLV$QjxTq zCLjA#H8O4|Pwyo-#(RtiNxNt+Rc9pU*TiASTo?zr(zC94<Km<-&)wr?^eLOt8}naf zky*>WEoM0_Q6-eH25ih$=iz78S;E5j?0R}*FD8@B1BMOTKWU3>DDb@0zUcoEvK=f0 z99OqPWh3a9<hurhmZou97qYMPY%yecYOSMzVfXyUt%!iV%zkJpnfP&Ty40&&Vyb(~ zi5ojCKk%?nf<`9^dh!#%oZsQg%uliw;3&eY{R?=|3})u+4e7cWZ3$;U`_JXzo>N;r zWA)>K)2fSkvE8mI4}Pr)txDBXe>|#f_FtW4?&F_@<Ids*TCdtS(B*P?iA?7RE@lSp z(?rv6_1{9%>#weWh+x1D$zAU2>B)r|;z$>c=2N10a@UUMmnYUsLF2z@VL~25I>@;( zjHl;gU{!nvHJWZyN7NG>y3JA|yTAP}-^Ye-GZP6xip)?rjvMn?BBJRB?*7y!jXLU0 zH+$zel9<7NF_7`C$3_c1sY)AqoW$J6A5=bee&{P<R-ZgPU2{gJuaRVZYcqx|l?x^D zO-lZl20!abGd@-#PI@hjSqBbpBT;Lp-^sL=C$tYc&7GjlPu8+P1NC4Sqvi%PoW3Z? zMv&^Za;+3YZ59f0om9+X_ewnJXWt<QXdT@1U&<D<9wfc}A7u8K(W>=W=k139zyS=2 zA>--3_;fSA<kXEPCQ|znjJv2dEB_`4*j317uhQGxnfNH}6HBN3SiRWDFXG<(FT<Jd z2?kmoFRz$6?K6Z)-S@7JrdMoDwQtdV+dck|QwxY$1<Gk7m#1`t)YiayN5eC}LvQ;< zj!K^>_&_T9%`Gw><9=4nR%FG48viXle*fN>N9w%oZH??Km}wi|x-`ItX&+fLUhJZr zdvYr7>aAAGHByq}dk<ATS!1L3;)~4>XIYmoqxnB0_Qe#O+HO2MXc4=YdtddB26xxi zx;;K;vL?UJdQ=r#{Yd}QzKZd2pAW&vBSXs<^$d#pp+Ta07Rxp^bYM-1p6c-7uDOef zBvqfh!WUnq*F27VxTfUnr+q^j>^Bl(z$K@i9mF8ok~G!F%?b)crB76WT=Cmcj9($> zjBa*BbJ6zr%}~+oSd=1@>st3>itSl6XT17)D{TH}_JH2(TQ&mOCx6Sxgsvh@bwt9r zGjMEnZVirh&7245GG|uaFUjJZwnOS<+EgR}@f!leTj^PraK7y;hlu^a%0|HL1E9KY zz)li_Z56{elp)=UNMAQ5CcQ_F;G~RjGfvinoDlXw2tu@xlK|`1V8walZ0rPbDttWn zC7Ib+PF9`u^;Sa?^=6W)af}w_5CY`WmFi5E3$xrB$<#n~ouI7L1HFM6eJv!upj9se zg|A%MFOsX%Jn-(yYS(+t?&ZU7#n%TnoU4rvYP!)~!M9>G)Ia%cr;3IF(<$3o`}KSr zp(;u!z(`(Sj7VL<yyV;G%baklLogxex4p;{afCVVA-fCs2Z_OS3J<j%?v~c2ED!?T z@iipBvhBz>EVlpTI4djiY2sV(z8So*!9c}J7R1d<;L5N2enr;|DNNES92>g#8SkZL zky#2pD2m&WpB1cn6C$>#7N`R{@YK~6@Opc--O6TN{whr+ifp!ZN1oVF)da{o90adz z-T_$kZyk3`Au~I^+zA}W+?-cNU6;i7tOsOO1`;sDa&|+gd&QH?vU-lLEe<Xprkt2m zUoIET^7<wviOB!eVC8F>|3k^&5P{v<(2OMx>8@bRw`o8u+`;ZzP0U_XA8y`)qFb~I zLKL;Qmhs_DMCln8l4d`eJ%^mI?gy09E?3dfyBB>!X4;0ood)zQ`5|OX-a_{Mrdb$b z1Ld(kX^rJH7a!u5x`GucBaIMH_pHZTJgQ{&AIV}ODR%eCu8}hSoptGLE0EfsJU^Hr zpOw^dydk|*!ZM|Q8#Wwg38pNAgQCY%JneIOR&scQjsU|FMs1~snJH@nJ@iCP_Ws50 zqVOy(rm@ANp5T#Bx8G<&t#<-jCdU2RjUauFl`P%P9k$>kN!ws`e&^ClTugB_9E$%@ zK1&%o%?3Q|9b(v~X<d3N@}D%)YlDDs&83ENF;nKyRK!z}g3|oS(mocXZ3Dk)ysZEw z;*S!ES@WS(f>HP!;%=Ew3wBB*`$#tp10K8f1gmQ|#@^c!Rn_=G%tTwh@$vZi=Lp?z z*o;Jq8bMSrqp(c0*uOi-OcgNoEd?N_Z<-=)p&zh<XAYKqL=9?E6kEz5n-6|Dx$Nuz zptOohV+h1sIf_@6nbgw}_!*G(Yj?q}&Gfll67sMky{X}0-`0h)c(^!)7_~oFjVLll zNtANi4=`P7F);VcenYVHvpRU9zT-(*?2nyKF_U)MRk#$ZHJ`Bp6B6*od|F|PT#2xY z_+Cz9fmeCf>gC$+U?shXY?3b<Nz6uwhr@7ZdkI4=!~Yb*?|@|#6ZeT1o4jfu4qNaG zdrSP8$KN5sN&hkFxjsmA%dAyN89%FU5(#$;8Td)1P^?4`vav1rBbK6_w?dLcm2=Aj z{wC4_zE-SnPWOg+D>`=$xdrK7J9d5Dw1;W3+>Gx1qPxQP_73F+vGN&@-LJc?-35=7 zY`PRD7qfTKA?H;&9Iq7N7FSUr{}&;1lZF~S9w!D65A)u&^y6!nubkoZ1E*SkcB`$V zac`c>-SXk{TH$fp2G@`A9Y6ngoeJ5wN-P_Mo%OM6%q!0|qg}_y+fr0y4I{<l>n(f- zLRzl(M+v<4*}O4`X&2mfxhN_;&*{O<slhc|p(Yc79a9GyPs%Sf7q7Ye%c#vejd?IJ zz^8t{?!0F4#x{w6cVx@_ie7QC$^a{x`ax%kaRiQOA>YQxqc3IV72A`Vj*y~t;GL2c zU*^A{P>JQID2kaD&6bl{ej9;r{xrm`1d&LU9mb>jV0Xl~OZuZ}i@=T{fxX$m@EG%_ z|4*b?N?0_GtS5Aq6#$`k*IBj@yIDt?5)incO(|&g(57fFLpLpEgFb1#?JZHQ7_1cv z+d%PMU?fH~J-U&zE+19zCTQjUtB{ihw<4+jpzajc;e&`C8QYSos(@hBu6I#si;*9y zvmp>-g)!tNB#TB8(Niq{r&DWPr3t0H(WBP<jIpgy&#ulNYqkC)u*m`5W(jG=WBv9B zry}XP;H(H?1J*B3ZECi}=DVkDZ7j~65mIhfd#dt%@NHL%qQKPQhk`ziZ<^w*e|~=Y z>e$+h!M=z`YOyxGk>jeJ&$@e#WcZJ~-(9_W)xAZ7-QjxPPh3^z|88;q6;-cQlq>nL z+x`D|dh>89*Z%$gUgjYrQ^`<lDMDqcB`m2_rp!gCRHh^uGp^EvB1uYNMG`_~%3KOb zSmqFlWQvk`{+*uB@A&@n>}T)e*t<2{>$={<dA`oXcN|v<@t*@95=ShG!~0*ZOh5i> zt#3_^J#F-({FrnM{JiEOkxCYwr>M&l>wsAwlOskg5}HV{OVcN*nQOn*<sO=SohkK- zc`#O?vpx=Dtk}gJq#Un~<3#NvtBs0*e^y2r9fp5&Vv5|0onlK;++D)bJ5rR^XMJHu zcG#j7!)faceLO_0e~6RiNAnRoOWAq+;9?yVckr;Ho2XLC^hO6B;EG!ZC>!-Bz7qVJ zqHlRAP3tkl<+A_-#s#qlDU~?hhg#thQ!uBN9-5r@KKsK*<<S4ai1-L!Chb*ic<6!; zRjkC*f-1&!8QY7X>Fk81@_3wu|I;c(>w`ci>>+nZxu^mf+Is0FxF<5vLG2p!+S)Ep zjeq$CKq*E6^c6B^g(wlNkbifS!fI=545jo`4=QxNatLVt?I1aLZidnQF+5tB!}yu` zpvzEz%iMV^$%hy;757zWuF?V9K5;SCh7b<)q?${eAb~NC?)z}*i%pNKAWG`wBUuKR zD(pb#uT_hc(vP{UPLG3Cs~jwdPhsH}uJA`P+VL6@n&@wz8LU1|x`;azGtk#)!OdV6 zAVZxV29Y?QhnA#gKoo8<3ET!&K`xLU>cEM`)WZw9&H={q29*Pahkx(cxsDR`t$O2* z)Wdr**SsbRL7ngEU0}U|uESKXNumogaZ%Lb06ox&AqJZt5H!z(B8Z6$kNze`)sT77 za}`bE5+t;tF9ad_3{Zx`gNb(eH2NsztOhokq|d|i3KZK930OyM8njPB9v~zI40N~1 z*~iyWK{ef3oC!wS&BAGEaV(dm3*rIR`dF31IO*q#JJ-4fUHX#vbCgg~PtZ9vFn&S~ zht|MO!aC(0I+iSB?7B7a_M;cEeA;pujkahOK**L@?nH6oR2cT5Uw=X9_f#sH&I?wA z4PVfQEEvsXfI%?_ea*LU7ZOc5a8KQ&rFdG?3!Kdvf#@WbR7p9N<jCPj14-_FBBQ~W zo4(f(*Nf$+0%Fu2&@Y>_kO#Zj@E7Q#>$?4KXe8>kbKqV~+_zjeu+j!h>|?+gE#~O2 zb)=5$V`B`f6uh;Q)x8At1k7-c#j1R0Vo+i?!`a{;kFB|cxLtK1`6!|B`>MCq{tG6W zZTqaUPgXIMjc@ttXTvbZQ8rR(Z4y3P^jqn{@0J*Qo}&SczapkPyM1g&`<nIiKPx3W zi$p)I7cs~p-SwnSH@k2sjG9F)d5;v0e%w4tz3prEZ~GZf25s?|+G9gm(VL#S7yau# z^ju}r%=H<e#mFtzn9fe@B*^<V<WGeaz8HdFrX`TB9!OXUO*Wrxl8!DytOgytmrM`z zSVP{_Ux|N$S&XGpQ?7dmJ%iLU*BAwsGYTx;A^%jO_BF63{Z7nSX@HHe<QK!Lr8!ZC zUMskp7;Fu<6{Ja5d%^4%Re^<Lh!%Xi`D6a_6!<o9e1y5Q1IgA9JIBL`0mje?IDLkm zezJq?dr1Sn`R!PKbj~HAw9~y%oy9!pwI6C-$Kf(|2*}J?4e>By4z@6ShaiVD2iy~+ z9S5Pm!-*UPN`l<z4?$WBa=^*U7WTerYmSd{(4XW%<NXtQsSP(}C}9uzDCxd#z;`GS zqAM-~JJX|P3)q_Fy+5yvm5h)x&dM3hy2d>S6<RtYR4bdNthl?Qwj)c~zfHkv`^SZq zYsNPBrgoKkvz4ipA$6r@+u=m7EQwhTDY`{;Nck)%G!4(^AKBNPWiIZn{5Sm7P<;7# zl$OqSH_tJx0ZpCiAekQm+aE8+$@`17rTtwzQDlDJuWMtxYHF9Y(u!sL!NjF6X?L_0 zWTIab6HOfd9@XAbY2$leBydq(O@+DAo58tXGOT?-?w2{+a!7@a)Z(!Zx%51Rg6=(k zePlp9MDH||h6I6>d#<EdV^z}NR(Sgiq>uz);5l1@l^|}^RCcYf8a16AW8gQ%SkzsR zSM9c?*)yR^#3$3TnfmK<vQ-U$#=hsUxj1*Dl!2o7VU+;llMkC#YH<FS=&FK}`_Air zaUe~A-16G@_L^W81c;4?wK36}tnv9rZ$vx89}f=4k#9^6acn{%HqaFOFB{T=pg;Cn zJV{;7)<TY_Pz)Z4g%?kdzxUV$nJbyv@rF!;Di@drm012Bq(0XI$fzpzStG_?P2@k! zgSGnwQ7(Qy^<T{ZgOc@U{0zi9;0v3MLy`Xo^|i%p13RUSv`v5(@Cr`d*ISx%Rwpdi zacOTcg&2AsF1tA_r8WNH*Pru(+2M{uCc!1|C&A6-o=NEIw2>@zVbhC)G3G;k2%+C` zp==&TB@1lrO{(A%T<U^o4jUiCA`db}2h?0Pjpvs+Vd_g7mczg#2r6#~O`YTQ<W~tP zX8o9aOZx_-5QTA8Z*YxL`wvpZq#O(gYcsS#O@zxz26AgyF%%fhAeNHkL2UggjEx4O zEaIDx!*ZK7jJUHsJ#BG1zYJy*&o+>4H6Y$~jQxh($K!J#qpL^Z$_*E#wGgzP{plaz ztF)*-rX9=mb2OF65HV+`N%kHE(|G?s601Xk%9CGF^6gIM4Gym0tsj=6o|D;^;4MTw z_(%s`lyuZVB2ET-^7eOFgW!BDtYZXAXzI@{47efJPG%|LqRX-ba8lA!#_g@#ET|fJ zKXLghr$Oy7xuUb-ks)c&s~Xo!hcsNH0c=YIWn|kcepUo*SA&6K_-54(oaiM)@$0{6 zL2d2nPM^F0l*K3y4%!O?TPP8~Bwb7{{{75EbDY7lS>3sv!Gm8qqY};2u$x{>n-iZl zBij7H*9<v@G)VBM3=_clQ(({8ro32c^m5Gvn+t=-rBgvWR7gsqiiD+P+GH6PrNHVI zb^88BShoF#Gsk+MXc36DP(Im@jFN0OzEurdKzWg5C7BtD6XW6oSarj`r2Ihy)S9nY zwP$$oxx>E8V9Vr?H6u?A<fWQlnOw7ZQBZezwl5<0?zD#w)`vH9aQDhQ5TrSWSTi}? zn?88=R8NhfA!iF&v;W5FUagCJ;>(xSSgC1N|^Yli4oQ7LK1v$e)_UYbjv%QCqw z+?5SFS<98FI?ORH>_ZW8CA{r8f0=;uW1>UxQ&eSWNO%%E>EejPK{FF5NHT-nXtI=S zU09g}ylr|`l=7h-?^{cq-YKudyZVJjm+{ghRZuJYEdn?#eULx{HHGhB^?EKP3Q2=1 z)!%~=q2?IJhH$zY>pL(Lv-+V9BZj@3Jf&^uc>G#gQ$D<$u?{zp5#Wl+RLoyAQVD3Q z*7#1?<;I5yfAAi{yp0nfzp+9NNN3U*(aIvaTK5Rhs=4>F4sI0?d5-fq>nKQ@UHcCc z)&)(t%a0?>lOjcJP3>Y(3U*sZ>HE%3+rSk^bTEG=kxSPF{U_AwDn*_CVH(ebJi0#c zA#BSb;-6V=Ct`WdLziQXTsyY1n&iBaROrua9ubzdKmUC;yqhX{b!d5aRw~DdH6>@u z1KnE=+%d|Y|E|j<Ce(9}p3JFL$gWzZ=TkQr>qM(Kn!l&c*Xg0_F;njgS0YBIS~B;K z$eKuZc@{fo6mJQhwv6LSwbx>*Wi+<-dtm=AE@JNbo6NG63tin_&-SJdI9GW8u<q#| zUdZg+PS+BgK6~u7keGqsy2E~#hAX({ekf@SpWfAUiD{st$NRng*Nw4XkG`)6=Tq!o zclg6}$%Z8HDfiE=E3YWidv%`tT+jQY+4JC8jULNv&7AjP{AI^>U7vXDy6=E#3ji3F z{Xv*%jf;{dUo_pX+>cyCFZadeOfp;H){(-#<GXj?Vy8umK->7+3c|`~^0G>D$FRi| zR)unGA6GO7eKB-nI-Gh+gk@RX&P$m7qD|eNNp#&{%n^QqFtd<U$g$j!eaP#9K};Jk zgVfSxYZjQkz@V$6{Xt7+u$Yp8T5hF!H~L(d^(?5rWd8@;SSoOXkf^MsVw4z_`wp*l zpfk9LtPm$i3j<x1v`%A1An5b1fJ?lznZPg3z;2kUe&vEd*FzGpjcJ~K1X4zkt4Nk| ze^Bc$Q#k3lwoj#xwZnGNT7+%IhI(1(9WNfI?ZtUrYhp_h7Ms#|C1W=F6XFFQOwbxu zWuTbEt%7nn>3SE3vC$azwX)ay_xVxZV9WPs7Cl=$9TlWf86UL1*Zk5kA9q8E(3E1? zOtGJ4(XNr)T4;0Hjq<W7q2}p_>Xy7(t%M8r8m6ZB5doeD&#T54k01eBiHZX$_VuIf z|6To-`xtt#Orfh-G#6;iaxmhyOpnS&d(xv0hUQrt5n51FFF!T2x(Emom2HY;<qQZr zF~s}&R!1s4_i;HD$liKSn~6#cpvs&Pdet@nP83H9qteVM=5aMf(eWLjSnIZSEup&a z|GQjwiaPClq51EdJ~k|8{YTiKSGB!;L;)C3DcEYm#s!v+p1&&n8&E>#4*Un&20aN& zi=VT$tb=Uap*QX>T-Q*}hG6dn!%M`%-hw{__fGn3MY#^4{~EsWa43VD_B1jmJxWp~ zS&lYx(pFn)+tu%1jf?IQ8wS$V{%@<_drzpQaMh|dyB{*QZ<e6pxLQJ&(2;C*$5w=9 z@&mZRWxjlH*RJ6J@19yIk)^1$0xB@P4_OEr-_<Y)Ed{!yOJnab5}E5Owk$6+DdLiK zaYkkP1P|YYkksK4MlBZhFgW;g(mA3(fGH44cEs}?Spb|&d^cc58gOgvEas*^!E<Rl z-x%}o$x)(~@hL64_#_q)#2uNgKfLhQctGE}N>3V@h@UFIS(vhB$M!pp>{y3t0}<zW zLX|}R{}~Frrfe7xA3-a>AxHbai4^Q!_xnj-Vgi_L%kipUlJJlkK`%`=Bsom4B0wK| z!Q*)DXAFab${8U_IwgE?1GRNnU5wVWVW6xC{L^?uG39J{(v4n83ITd1%L84I2s(^b zPEM}VIZB8M#m#n-ERPqgqj0|Aqg36fl7<BTRpgs%dnhKgWJ=gGK1x%}dFTZlT}>hH zw!DK;>IpV(y6FO>c3_eGVS>&(7!YH!qdq6yANoKKd--7eU{_t5XX*8>bZNpPCw=*n zEY#(EQpKv2pdfqvMrCbbsGFJ}n1-oVhi~+;^*7ivW3VE!F-67IP=E~;pE|0n`7Rvt ze=v~GEqBbpqtQ1t|8|~@7H0%=J#@$d1}n#`2Hp;!_0-@!97FAQAH()Pyb9#r1}%(3 zj37J^`zdOmVS-J1BZEit8a?)hge7>98RWH~@xO>>GREt;IX_HzcnFtGI_{>p?<X9x zBEkP)!HrO?h80*a0(!)jqwjmQ+uvF}uu?Z817~Gr2PJ6{Kn|`#W(NW@2U!_P%KNfU zLdS0}DXol01ffZ6HVsthaSz6Q)0;}fetwi(aq6^v9#{E;6z5$IS#x{5Jj-*~>KH<k z6XJ_MwGSjmdXu(mx*eNyiV0NjJ^#<!xz%o_DWN39>)6h+5rx(@(t(1_%;cT!O6?`3 zyOebbggPw$sXHw@D@bp@EAY43KiA>%d+lz=OF1d)q*GI-w`j3$zGXP$IyjUQ?D+P~ z#hp{4Hqx@w{~h4pF&5;1QcLZT_ajd#XY#omlV+KYk;UnqFI5Vn3>A+lNa&e<)!_J0 zzK66_9`l^z#fE*x5^PSJdz22T*Tz1Se_QB}mHnJ7HT*iB3H*d*V1DiURD5gR$i>dL zLs{b}$#NP+V#rfwdUwo!I!J<$e-G`7zsPt9@Qj8;$3Ot42R4n!%J9RpAK;9BK5Tzh z(5gWj&rK&%LL}b9!POyf8N(c#r4nQvT40+Qu(S%UC|jt3NTtciai$(W|FZ_LX&ZT{ z)?bIEt{6HU>HZ+7#*1Jt%77XTr>8o;isgBD?MtCpoeR;YntN*ffFLKPkeAZNehQK! zDU4eSH$YqA$?DK;R%OPjlmY8|ib*BO()yzyt*<O?1LogBsJ!I$AuDYpS@s-(db4RB zOtqCE!rJ*isr{Mn4_8%>tkVkW<dL;~x^E)V+ws3$bK(IOv-NYE=w70q`c7ngtI{b_ zYinq7xqiDRpp!xMhd`P9MYF{73(QyJzB?b|(@y6&V!~~#oSULDkZb7M`dsw;c9yh` zXB7Y6Nf8>SUu>Jw)7My=E3$3>r@jVmWtRlz)V?$7!+#FGN)y?V-xm7GM$t6rd<yye zs$MDee2+2)&yqjAmnyIqNGKyL32Vi#Ur2=py0d$UT6fa{h8)$~Ch}SjzO;j_>14TZ zzSEs*@E0ueH65%W$jDtB&RUk)dRtjhVW-8;3@~yx<bdBs#l>E5EKmf%!+CRXb9J)R z-UsqLEU~~bVV7G4h=)iL&dhggv?;(wOqA7P7xzAZ`D^O*>Vl-c9*szR0Wm-SzkC%W z6dMPx>JZLXK(La<3JOO&k8BYuMNJ!6_o0wGzh{9<n-9tlgT~DM4GQB<qnk*U2^;%0 zgavWv%qePSQ%?q?hp-QJqmCo6Bl&#-QnnPj85Rw!fRtKGxbbBh9)eTI^Q5sUb;}ka z!}#Mq3=mZ9nCPRXuEXg^Ls4l&PGSDlBX#&Rg3s)RA4*Z5&pafA{b2n=uEA)*>;NI^ zYBW>GfHnIzF&=u7N6W5TX#EF=JmMg~joQ_<5jFd&@$Z63PaR2kqbD9!X?R#Uc>no4 z<NqH@0?KLr5F||%Y-xoF@tp|~oBbVr*Lg^z5*!pTnc--QGXb8teTK!M4b4mKT4WZt zamo{-MQ9S&U4|~|0INf02sb@8cDKfZaG;)CP@q4BCo%Uk8q5COTt~m}m<x*?)qbmY zPQdkAiX&uiw~jsHrA%C0r}^waa;gU2JtASGG0+PzpFoE?r;B!Y^}Jr46=iLt@!c%h z1VF<Lu{HEqnjL=%W6rzeJMO^Ngg{^4Hl@i)Q$PG|8&O+zfz?4-+j#@Pr}Gq<?jqPc z{)l4ixZFna^>9MWA{nYb=fr9VG;M0o9gZf}!EX5{0fUper~aU4MqymmO$H~ZGwbh5 zW{*Sgcct3NQ2auJIp`j4Bis5!by*$c%>A~LaxN)@_H$+Ob%}hxh-tYN(UA~^m5@v( z6WvsK`C8WUf(#-2^k^CCjgmn@d<#WLaG2-C6ahXNE?)(T`=3(^_`A-bw%w7uP#^U+ zfJA^?qVS7ly6$fednT~b(kBlz`}$xJzsA#5mC~lP4P&!@i1hj`rWJKwZ4sAteN)zZ z^Lg!>4@IL*QOl=0<ak{e+^%vBFpb|d9X9yB)u-ZC+QM<ei;wfhtP-s532(_|H1qs$ z(Kcr`T6O%9>Ugreaa`)Vm#G3z&9*d6JUP^THTe?DMQ1Vlve>t#Z=~CmvL>7r?`ary z7GJrr)Rk4j?i84RE-+vIzpGp`9k(9?d-v@Y=s<aQX0?UrsE$#Fw8>%%ge_#IGgxqO z=sjnGbBpj8tO18$C*Vt;^`OXN!g@=IXBg4ca!l0BdN*@bRF9K%07rK7)Ze`vIk?(X zueM=<mch$<vUOnC1u5UEA|`F`qsC4d&&HCq;XYNBA;<D=(iFfZc5xV-ouXdQ^jbr6 z78{1%Qv<R<om)^^<Q@h!>9O=IHjvy%aZ-AMXt#j3?OP}dUbUpcE={mhiC;uU_9YBB zPhdf)Jg>uO)%$_WrG6Y*@WLJxnj%H(J<dB0x3>CABFfoXj-s2eL7j<`!n8@l)tK4g zlByb|MiMD&u5f-&A*EOhL7V#v38f7$Bo{Agud&Ug@mXcGn=qR7O{a%g1lzEU9JVf7 zX0?7bTDr^Qcgck;#o~f3Nq#4&mi}|MD+YR)u1+Y2g>EX{rE&at+~!CBY*Ri>XuS>R z9`e%l?{eNTZG1pIrakYugwRbzXZ^8;)_tBYQfowI>7_N?lOIge9c)Kqx2BqvPv2t| zosXaETo+i9#PVycpL-7X!1<aC!)EiU#APR;`;?FLu&piI<d|&j>mqTVt6ljptjKYx zsl3dX_jBimDTh{(sz6TUn7GKl^zyv{bzb2j5*_DXwjkhrgzH8dH@!JDg5+R${|7PZ zEst|$<CyLXVzdp2lTkrd2PS02Ic?lcan8y8<wuwHltVs><+$8)?dIQ~3x$VI>x4VP zRoU!ws3<*tp*!|p<;EbjwT$#HBHd_V!BQzTbn@aTWjB<8@g=gEkD4j>Q;-H7nRSXo z;a;pcR*@+&TAB)!m8$D+0fOE4&%z2xwc!~HVUAEKteh0d;-qPA#l4*3St?2!i1HX^ zcCg%owY*w-CH5PaH@70}QUNTj&r04Ph1bJ~H{%F<{LMSSe%oL)=ZZOtr6_R(>rKa% zlmWgCJi1{)_d6mYkHVyJ2uTuMw>juJ3rJ4%hAIJhR1V2&&^Df<J@^Xgb40<1#CJZ| zoE0|wG;4F*YU06J5+CCEF8kr>t;;X$LalFllax|nAk0~NnTeje?^v<eoY+G~C2gIg zWm|+kpozhUd-(!zCD@Gq&_jKr<70(tR_R)|GId(EB8*YV<p!p^hE=s3bj>^m>A+%S zQ#F3|yo89KQeRw~(uWoYj}!VXE9<Ghx?t~)$bNAmnPs!y5K;SFeLXGC7dqUSa|F4A zN5T=y?S10NpxMvh&=|5CKiInv?6v;43M2z-&AVyr^qcq1H)g*4Vn@8quWhF>IFXpv zL#I~$<Qyyb1<y=Su(Tr0D}D;iYq975n~YHd&jkk}RpriXBoUW~2mx`G!6F7F(N_=` zu{J@%i_uJnClJq`Uhl1lLh>KP?*w*WAl8p2E8-Z07ERJPzt56^O3XM8*4GuFNv*Bk zfkI|@ZZ+z_0h(iSlm~&tZ$eO_V~L%%2ji~=J#Tc!;dnddH0HtPv6;_znxk?RQ_Ey2 ze&OFa=(*au3NY%V6sx^leU~YDOf<UzXETyRBXu{WsS87@Kc1)x?Gz~K^#DjTWnt$m z7Pwk&$dmBrbIltNaYQ}?rf2OeD%j9LTe$cKJ^m#fD>ULN&#oWnM!(xRw+?u&rFpBS zUq}t<CF1HnLI!XU4a%i{#t+a7`03sgpk<6Chlep_bMK~PKMK^o9$Xi8Uob0wWK%CP z1pmwnx(TO^@;2C<b_zUG)_S+6TG4^`$<dd8{}=}MNTlZ68@_m;_3S5-<pQ*N0t`gP zPooo4N(`1<R9MW+=WVF12nR}Un>cAA{34U_N9`Y#7-3i3+Qqlh5evrq`imefNk&pV zj?;%>aO)1tk2gi2SCL#l=#CLvchQdj_e(1q!5S*BH<M8BDa3ETXXD2ZV(I-QjCp5t z(LSYCe;osyE`B%C0V3uRwoqtL1=^WTDxhP9d82|P%Pw73nm#pi2bR?2r%h;_TvsrU zt}5?5GwHeF(_4W5f9kYS6KG`8YgeWOHFJ*(v!RL~-wsU5N{si&6J0rq;$Ey^cqZJC zFz*TKfmf}SF^Sye-gvrY$$;Rxj+Y!!Sr^gAK#|R6BJOA)YDskvt!TZHS=mT{V`1y6 z{|9jM?=ovQLbF^=bA{1&Q*xWEgv{ODte(AoE+^b-2lOV|pYWG{ot*T&*2d#s;a=M| zH&d)^?7nlwMaZRaxUfV_xvSmPvbmwD^o-5<?7b<E5+(Oq?ff#FzrMZ2b4tPqAbh5> znhihlEk>ePJz475Li;VYFKbSZT|0j78M#e4k+*B|kfJVI9j^m}+kaQCef)a$0)=cb zv%FH~9y4V>)nVZ*H}m(_?QbU6JM-RH7br^F{r&rceWw3RhwpJoGtDWPhxxhAgOR)I z6D)gAT+aKM74LW0v$<d;SA+fH(g5YHNW5X%k(EpKPLdG|J_GY>o?C}MG#Soyk4}Yh zY+vAae+AnH?)L@}`O$B+JE`ZD(^{4YcoU(-UMYbNl;uC_wCD?O1SoAYoh%?Sj%=Ws zHwsg?OQZVq{v{-)`usqhNoR1yos!08sN!21(@}`t64eDqbfXi^cle|^)qL*@L7F4E zaczGo-KJqTEQ$Qy`X}D{$~FK#9vkSph+_D_A-Hayy=4O2_9mk2YG_#rxb=gv38@yI zEFpY_)+TV%tNX-QXl*Wt+_-Ra5rwY*l<Leg0qVK>o<EH{;ruBEh)#tEL%(ax@KN-C z^`y35cvb{?bKjF^wJ=@rvvp@#A$`XgMu?u`cq~g-AH8cAAEEMBXuU47^s#YrV3$5Y z&h2yT_mkc$a2%1!T$qc9-TpIWq=+?OoC6pSU$EqLZg=BrsTdKVMaxjqvwCGe6{$%F zWU9XDKKz@T)ghpjB<!e<y7*eUlS$~p6Qa;MGQ!|er+X#m-gl~sNqer85}O9HtrPE_ zrd!w?G3w~sx8NUcX*%EH$P=n@hT~_({>^$TJ>ECI4DDPxy!H0X%{iOt9dd6%(^8_> z=NbbVt7o47LxLiU*J>PnBtKB_kY1}^&in@;ZvH8eIyirF(p15(nfgX5{MD$^QOOLc zwL$O<#%#hBy#&SG0VNp&M6^9H_?R#cx4bBgRiO%<b`&*Yb;xDK^kTHBg1!-BnV=~x z@@@<@$pW+uF{6fAmlvU15`_NQ`gun%t^c6WQBsEqE<3301?`;P{=-V5Y2SM}ifje@ zBiKg%!N{?6;{V2@u7Z@6^RnneR@`DC;jUuQ5oa81cuU0~bZHnRMb`w}a9zJnQM*mQ zdxAi04*ONQR(=iRJt#^OR{a>v<zQ+pWCGBwcnBwY{0hLG`|x6gz;MuhZc07(8LIMj zpW*eh>+Tmypkem2q8f~V$z*W3niRWyhLbMl(HLU#7CM7CEJ7zg!_OQ3nlZ=qig7vX zP7<A|Y4X#$?Ry`tE2$Esm82B1)4K=s+;?Nrxbzbk%75EL@hPUX@f=wVaCyWOum;7v z04?$xV9a8fe7m0f<tCIC0I*)K)Q5~{`v<y!au_Uyxg8;_`+R(Qv+@b0jeB5xWEof@ z=GC$qaTPlMP!*x+90!S7^Tg#?qDu@wN72jwyr||!`|xpOq}rmjS9q<QxUWg<=tgZK z!-n1N^zOS#l?Mp@B^+D7Zzmefg+{`%u?w0=>jnl7YxAxwqtNA-HttSgPFcGrA_eSX zpvp)+_yXo)7x1uuMnN@(j%o?p=+&-Dp_&%K=n*P3{g+U;6dMJsH(wdPt~2z#`Qq*4 z(7e1iC$rFV3NY2{pg_#IamV--Qeo&jGNn!912&`AKd|9*7=48ATkY>0KlMTQ9Q$}l z8aO6UJ{R7`I5)}MPi`I=Dn_?4R>!>QY#9^1de<UtYp+wjik#|CB4Yv9r;QLv(OF<K zSf;arQwAn;eT-pD^w%h8=F?%V!r<OIaYz<M|2lAG`4}$oVPxr?ine*fBoj^j^5}=x zXs4f9!7qq5t*`8MQ38S=wyyO~6w=^V{yB&Bp*Zj;DoV(}j_h#Q*per)G~ZUnf|tJk z`Guw-LjT8*)vt=YmTR;E^`+O4)wZA9Xd3IkU}){M(NTF{j>Rc~vSPVwJePuUZQJB4 z--U@JwP`$|$op<&?BEOP=TFYH3Asf3X={=D$@{Uh_3^#e_gnm1RPlZA#C+k&O@8}Z zZt8MkE|0A0Cj?UR<BATBS6uPyq_`z?3SQMb;n*oHa;x6;&_v~;)~!DR2gG?312Ru> z$^R5Q9I3l=#N{{t&$I_Wj<_VGo2yP}h^l=jMQ$DF{2bO~tZ-DsGE}{M|G}H**o?D^ z0#c+dy4lNhZ=$vyb;$T{jjDEIabor`k&y<WPMYVuv#$~7fq#o;&9bDnmKkm#V$|Pu zVVhXh?OzY<%O>wqurP`}(F~+_jY2?N4`eX0#&?eQT?7d5R0vdFA~-YRVpACDm(s(| zV)YRSw}uc!oN16<Tys4o;^AxsF}Wg^!bh6#4E9i?tei9iVz_L$5l@j@3`S(5H%5_D z`T^}4&uNewl}}DCftPg7(k8^PKnDUM&nXCtxDr=!{R^u(LqZow<hVjRLfu#Jlgo>u z8y5~DQ|C1YeYx#^%&TAg%2%(L3eZAAj4-r$agc$g%z^pQjgX7f);a(rE>XkFWC}48 z65I~Ezd@e}Z6Jc(D*6Jay~e%7J;_6zHqT!xGTocL`r0_onQh5F({$r<cUFyU%+I8E zGFKPo1|+uzSCwUQ@NLUD{n73=|KHG^T{dUjvQB-pIe)KZn{lJDUE@v#tGCC8&t7Gb z*tx#lFiFR?ZM5(DsiOT((P|2NFJH&Mz<u$dzwSaC`Poim(Vz})?z1zCJF2UJ_xmyZ z64_8g2jHb7Q&viK;b<WrEK;8v0cm&P38Rvu0;Q@pa6QeW6H^!iU3I7xONco0>oBS> zl)QpyXiEgigS^qkd(}u*jOD})i{P>$fjTFKL5CykS$mQldG`ezQA;2!2U5VvO0@6h zrl<8eSsbuOtQ613C!wj6(pkmEHAgGrO2Yzuk?L{4B&tPseaBr$+<H;>4XL99Z1y@h zEV4gfk(Z17w58$=W}uo_c#J_W<ncpAayP=2Opc{P@#ai-*?(0H`oO^EA!12c7klln zZTZM}S>wt&DDIjJ1p;?Hwlj+U1kJ<?-+hz-r-{mHGiLG$#<I-c@C#Tk3DN>avk-yz z78F!3XIOC}NE=8VRxAi}v&SZ&06dLCovj9Zl>EL0<H2C;kO|gTUv+*XBt8HKXMjq= zjWv`eL%{VC^vl)ELdldSPY=l2Au$ZQF+MC*u8kLbRu=CI>}sh``0LLY@MLUAu<-ss z;h+?*A@vf!6yY82)C+wjyVg9~O+cscKdE<zZr&aW-{*Fttb=-}OCB*y+CQ+Q{>pli zNY0z&#oSWCL3&RdGyNTO#xac5syOKLuH>&Z_IcEyG0q5)!NKMv2yO+#>QhdT24_D# z(}sv&ARJ!jM{H75gVzr|Rh*(fKRwVj`u+{!AjtLH*Z7P*>!6R6Mm!S1-T+DCW^Oj~ z8mdpz&)jsUQ9ycnaPd`XEwn=>e5VrI<I_Ey^p7b{AiL|=+LmzbB@G@r(GLcAHqrxr zfG-s()&`s$Ui^H)n)!7DF4X0@P3i<VkSn_mtrSPE?lx??*lA^&hXxS9&N9T0LQAFx zZNLBU2gJAa=cK-KwCvwWZGF(R0eZ7SRaT;K^e)a_wV(EUG-vM%e6%^ZE;}6_!}qBK zR4iAaHFr8g&WZ+UP-z}x*CX}I92uhx?a$Xfe+|HpdI>MZaG!<yCKL>IXrgP9TYY$k zO3hP@0`jn+x|`>f2TgW6A2!<2MlHjuh|>f^R+=PUqvXy^e+GJ?QW9O_$m9UPO&-4( zi41=z?oO8>&?BmH)Duithq}!=qYF_4xe<Pm%hi<@dRGUYe`3K;?Xu6eLW$le=0VFT zO+kv^<PS&<S<4@^(-Lg{?dc0z%F4aq5>lW+@@&WyN)K@OEbH=$JE+x4)*<|Lz}_#d zdjk(~b&uZsMLM`QPme73JEX1P#C1XUZEN@5KIkjBF{E-rb$i2PMQX|Ur}q-0#}1U} za82*FAY}U}CN8~Ko(AOIHRh0dxnevE1N0F)(S0t8e)=Rze#T7RmJAuu6xoc{yF~1I zTbQW-Sd`71u?`;EfBkv9@fkTplJ^m{BiwYiE0d!}MI`z>f;}28yL_Ex8xgKU>CA7L zanJx3Ei!0VCc*en=}&wIHO^pR_>mEZ1hyK^S0-)|B_ZZQH8w1(Rlw4gFn5;01che_ z+i`#T8r0+CvFz-EFY?$8Kjd?N&AQWs1AN}xmje%hcB<L;h8GXO1J5rOq6L{Yk|`Fa zZI}khm;51%mPe7%waiVy1Gn<cHi1x5{|oZfJ4j?sL&HAxCNHH<PLfN;$i2*fb=)N5 zwajN}tm;%FI-5cs-Q8|>%(xjw`qHnK3=R<vaJ9%BW~U8l1FC7ME<jU%n?2%QEJspO zH#=yWs``+Kr8X3UHc=G|R2P@}4^E}=(3nTnqQ*3Kjgc%1>hzIk1_6KL4*R^<8&&%L zBEw|(uad-m=XR-N%Oh1ROEyU-6D%ay$2>he%_L5{?N2*P^EN4PK3MZ)UdCO9v{kx5 z!p8r#)@NA-67{@BFSDI!+wV8uSl(qU4zL;vjs8u1dE?3S-VdkpO!S<PqDza@Ow08B zQORp2D6JCkU-z$FX2*M~*0i2&_pdo)$uz2F?Ic@OK)w6x#pi9F&dbkqX-?K&IElSs zQCn`iiR8bR(?8c!(#0@ywyXw^U_=AE2>0J?w33THy#O%R<m~!^ZB7C&@InH!BSfuj zpU2#A5cx`nh9s?TwfOm8CP_{Q=12yPzahC-d<~t8i54N6%8=tU3^_sGcpz)Txtz7I zVa81Wv-Fp95aC^R&3hYiC|7&9QB&W5Fd#!qjgrEm?IM%ietEp6cJ?n(5^f$-4b?bG z`K2346Mc-6dpjzvQLWEn?|z`soitw*>>)@A3NW;68`zzQd3=Af9due+9Uzc%bb^je zM-11shXaIqNK63It>s6yP^z96H<cpUmuLWzW)frAHX~Q)DO<Mm>n(kM_7TEn(OEk} zUk|Dbm#+bY<rwx5Jf?1dF1%z=x^BiW=#%Yx;p)k~ZITCY%!6z5nqVEAjhkZh9C1vo zWTIPMq5DNoo*OzdAL<Xr%k%zj9$LWjX(*(>qE9@8yJ<E4eKqd}73-5%O!Uab?DKc) zF|PahC#&y%8%dZALolvuCD3e)HKIT~0E<=k^f6-8a||1XZ2|3s^<y*aSQ$NzY9B}w zPleg|*8rd}YZ3?#Yfg~mgZieL8I;6-a0dWQrRp;gtVpR2lB7&T;;gZ6B*hk5Vebvs ziF=tz!^QH;O6gK`?6<Rg$eFHalAl{J5BdbNh^kTij&8Sox>@cYtl-q<yY}^ofgQ3~ z7<kq-*rWgZ_7KDOlrJpnNs|t14|04{B{_8EfuOMMI}>f_l^Uf7_5JGA?OOLQB4#@p zvXBWA(%@8udp+}@(WW%q*>}3UprURoQ!~Kos%&ILtw|(Ky^EVZbqODoxExySOy`gA zA=noIh9g&IO{jAm)nIiP8$+Asd0dAWeM}aj*{zg0IdaoSbDUlM+YapRymW8?2lSL- z?lnD8pG*dKffjLmr9~jAa0lg#ITveo2dha_w+vt-uH4_ud{*fwhE8$KR#r?7H#Ff+ z3A3Wk)T4>LCEg(`p4mUYc!G%4{k>C3#^$XSTtfkVc@xJ7QO8wib6J}V#l#rB@V%Hl zMfhJ$8z)k1Z^L_MQB?PaXcShhf<bURPR)JBVyOmwn0GJGNofaGWFKYJ9$1_bBjOSd zWKU~9HcG8p;w^_j<I97$y;Y!%o*C9^z9?V1R-!%Y;F;-tEw1X8n-*IhCwZo>SMaO; zS-myj`1hQ`O(6_-<lJ}1k1lyNUGa0&<E@SH{qW`nmCkqCjISlAWX|+vdCpE6e2m<} z)GgQeiHt0FYHR$_tcrqvv!=JpLdZ33iS#F8tPcD3R^{)eR8{ujv5(AAR4$IT%dzFY zBur#{`^u2Ra-^vk*cARAZi)^AZG*Nuim5c&D*7!^xVB4?&bb9|P_kmYn~~<aKb`Y> z&x?L>g%g4AS@5Mtu?$w6Wr0)Ja|SX*&EI&W)sNVdCePe-B@I@`BkCwTGobtLRziIP zC$=TqbWo}r^|=C!65mED?EVdc&W+h8j5)q_VaV%%9B^qLr1KHbvbpVXI1DCA#{EWM z3iq?yTEzH4VAI@%xY?OzUVImWcc3#(o?@bJk1)Y<R0~-_MR!dI^1P!=92`$sNlBcP z>;Trm-Fg^|X7pVp=#5B^U=*b(k5!W_MY}lYHlNj%k&7{Xv>B6~b)AR_dMW5BNlBkj zpl0rTxh=^l!90U);1&PY4L|=SzP%wf&9yEpc;BwjxNE^ObmNNyhf*ENnGQJSZuljj zU*wfum6;JzW_)7zT{q>qbj_B&TeCJ<0lQmlrp-4`+5PYx_jF-4V%)SlE1OZS(CDkL zdi1Yb`<*(^yNuRvbF!E@Ytfm0G%F^-W--Ubv)+PjU~m3>L}p$DpU>j~35|b$ter-j zd6Lbl)E0UlXfUbSJX4wRexvo~N?V_)jYysU!!TQ|?moA#hd*YH-;|h|*MM(9148Z+ z72MAvin%ffe0tN8nu;Sw*$sg7k|Zg4h~<@t45uzq>{B}7ai0+uS%J!fghLN&i<VO; z1id3KW*F&_XL=io+^DT%X4L76A{_J2oZs^+)!!vo|8t1=R&l+_58Mf@k&UUrK5M}< z&o=D%Ac^aKa~g41Y6}r(nIb@o9)P~h*TWk%V(p2A@q7KwYbT}Z6sZPR81R%tE3>Tf zsV2^&U+!}18X`(03i64`({DkbD%m%HL9bXBc5i*F!aEgPoEW)ZoyO46bHu`%z5*(J z_2Lb7%8JvI4tZY>lM?q;WzK1g^OoD>TXIwUMZmi4OfHPtl|MR*$gFrq6YodeBPE*% z@)XynPDsnXc~Q^(#;95bUfgtlFa~xWfs#G(1?3|3c^elcd#f#jg9i>)pGYES8AO+r zb#o0<?IcTH0omy1|MpHj**3peEpBnMEbnYM4?{BXbjNu{iHX3JwHmz(w&EFcwj&Zz zqY_N#+c_`mxOe|;NdG7+_T#^dZ|kd9EO|b+gSF`GeEDl%0|DRTp>Mo(S=(M}T{;%+ zYNNDsYc8UtisG?M^uc}D5!S29MeCe*;HD>(9>HPk0(EVVkaC)y8q)$nX?r@4oyCu4 zpAzQ54&ObTv=I|^nOn0<+o=YAZ`kN!{e7!>Ria1}o$|);>j{Lk&D&WW3Sfw3e}aMb z7BeL*q|G(!SWoMs`-|-L13^D^Ckuryos2bPtCRtev7<_WCQxuo;I=4D;H7p7EP3D% zrk1B2cr8E9Mr*e(3vRp}`l$u4Ba8zPihxeKrD4t5^lfh2lWE-tXzoAGg%c%jD!<1O zg-+i~K&mo?@Ij$63m$|&Wh=`(Ue6EswobQIU2tWXw8}E}^T1umJg|e}`YRnCF}XZ^ zg|}nEeR*lQ^+T%_;PfI6pKu|-CmC+Y66&#?=m6|-zKrbu2cfz4MLbzWxFSZx$u6+5 zj~Gm|Aai=1?=F(k^WP(FiVeG>JB!=1k1{y$`2VS(&HEu&qi0gO_6wH27M@0?+%J+i zqok-TTRlHb@*rg9&}UNY3IqKJHx}x4=-~qAiMXE<_q_kDJpXS6s8-vDJ4?HCT#!S$ zF=r+EVH#vq;#e_B=4wT4I#)Q3U>f%C_}8X4zf;c4WH`H<qT^(z4ED580IrmgG4(Z+ z{Ca)-S^_~#a##69j9O_RQ-ZboSHa+ZEajHp5nY)B&@2Y%x|HO!&D4?{B=-0$-eE^O zhC=I@Rpg5^lDYNDsmJyl%QD*|$4$RIakiZWxpk-dg1PC5hcSt@5}^rvl<a<#_K%6a z4h5U(7?Gp0aibmvb&l-{I=c|Wx?euj-%8T+s5@3ZSe26HlH-X&FUsU-{7oJ2wL)%4 zrTwUlQ8^Tn^ScJ^Z`Q$h1Y}{PR@tMOe;24W$L;<a5KBBw9;g65MYxa=N^_!(aVx~n z*NTBCV;<`y&1c->X7nf?buB_7xipU*L@YNinYw&q8oWR51r0lVz44Qa(ukJkswWlR zsa%ELegrnL^GVhiGo@_la_?{G)+c~*5SGtoP)cq+l+d*#>q18bpHnD^k?Ql`1lNcu z_17`zD{e!$`R8TY+oP^`dx5uJJRI;0xQ{dCI;xVa4(6iGe$6})wyP6aBsU!upibKw z|G<>$(5lpJo}W5xmIi75-}0NjXy|RNpmE7%6jNCRJf#BweDS>frZHtro>du4>-RTI z(Bgx`w1Z!O#_j~OfY`aG53Ii}$Wij|Ji+?$!GVnR^L2kEJ`YV;e7&TWS^WI-hRCm% z>+^H1e<~}?2#<0pcy4>&!TQznX~CRRrHi`pXv<vmot)Vb>1z|;G7}e5EK*xemBw(i zU7v}_T30?|rpWrQ^WNePBiDZu;@izG&wM%f;QRWy@Ae4+m9_=FXU^Mxexp7&_4=l` zWxy+7uWhuB@ZLQ6agyzB=sV4YvGo0MgI?1a7O8S#>bn9*w@|)J9e(C*HXP;oC$eF0 z=2Td|Zt4;Ln%qXLU{f1k&cCF50T1z5qQR-xTBIDoP_O~+6R{6X@oD+D-jr$E-1$0{ ziN3}QXT|U?Qcl*#!Kq83siSSOZ^$3+0^65>Tjk>`lnPEC)NpN>Eazj(eOLIP|FxRb zY~Wl&zhNdG$_YhW|NjA1Ka%DPlVXUD7~#jyP*qAj_G9!YFIs?v#%~WVEs1M#c~ci? z=#QVHHHfwt%8<trKB!ZUDA~0UnA=oFw3D9Y&XpM6lwLrT6Sw`Pg_IvBVKBY18*T+I zGx$pLkTU9O1rIcjCi2o%0|Tr?qw$Y3Yv6o1{P%3qr*03qb(EU#jkI&;^oLC&h>o3I zkomgrTzpjOFua)&ur?U0_qTD-#k4mx=>-e2kG$+oWmIB-RpSpNRGp^M;?#4z<)4!v zz?=5;>9F-qm5&w-In|~?O%KnQz85uC!gEG)T!OPVSKx$aw^w*JpW=bggtg0`k7c_a zD{l|TBP9o@Um2UyXfFu#oZ_~9^eRL2Ti)A{Pk*1h`?xc8TW`OZY3-2bv1eb#H;TNP zsAyeZb>x`M^02nf<vI)1-cMia_HQ;a_04=y;=2Np2vSlR95jmXE8YORP=Nw)zDWiI zc}z4uyBjr?$Vd{SN6|)EVl<5Q{9u@>9cHY)pF0^mGG?*7sR%_SQIh5RpHuQIJ_cRM z-4xxMd{C`dTSmPjk?#pBa??8wF*vm9>Jg)5Y7}Swi!l1E!M(bYN5r+Vk!WUR;B2;N zd(!0{>%LGA6CXgPmpK0kT+}a>U}Gs`x4$v0ZdDk$^lZ(1VVnhI6wBi4X`PvU)}(py zl%f4pgGwANUfVQ;Xk~d1T1oS=*5oyGr<vw_l$V9;yGU3sLLzy15#kFay{5JdVsfw* z@~I&3REr)$;^g71nXQDC+Q<AoaB>!zk~&xu@d<bqT2eDz+$t@eSF!L>mn%j>#z>5N zq=^hQdFE&q+6Jv(EY>wHJL3KZk%8_Cui&OL^g<yqTm@zBEj(=xTQ)Yg>k@aqIL(}X zJkA*$A@U5>dAkZJN8zLNIsLF%SUpxnSkvwr*z`{ZlX48|LWtTk_G`%Cf-kg^VmohY z)v^N#3>|`r=#Y2W0^Um{O>=3oX%B^y0qC1%t$H-?!^On>cIt)nUmF4Se4PHLh7DSR zP6FeMq&%Xw>&TXN*stDW;caaaJeT)d_i!K<D;LVo%udJ=aT5DsHYJZ;!P(A5NoP9B z&n>1h(wFv-|MCY^H3vj!cB+H}v%%)SYy$}t5pH^<#{3`#C>^&Ll`Py*6CmoQpJb*s zDEG6%gCMBH;r&{sHuPO$^SJfcx*6T@?Ox`lNPkBF!qq;^&o=YI|8f=bx1x|@fc75W z_`hHFEh3<+CY?}sUFz9LlUA=>z>Y}a4+lL;D;y2PR*lM0G&Hjv@i{|vO09;Z!Ts=* z7qXm&so`3o8VmhT@e%CpClHEP6oujF@?-8(+;jopjP&!p_-H13YcW^7h`FZnx_xMQ z?R8HMxj24y^8K`v{j2r3#E@bDV>caR9xo`0cn^ruj0yy4dn^!U6IOEb<%0V7>EBk9 zP0gtjf9Va%iMo$ej)fhMa3BHFhUKnd2U~!qeg$-~Iu_pY&IygyAHzVK{npy`V?Q-B ze+5%#qj+dvBHuuar=5G7K->dnW~!S;ujIL&a6$CuHycuiQKk0C7brWXEitV<OMhd@ z3U<)L@~(K06VHheH0wPZ#sdgi`@kMblp$(BcbVQ9-*t<6br$9h(qoI6&*tXuj&7II z7@0D7JZ`Kq{avxSrtG(I(IrMTTHNFuDe}ebPb^}+&$;c#_nr_h&mB4Ttm2SoLweHX zIUc^K_ZqL1Y`^{MyI1UykuzHFQQ+dd=)e=IAH-xhBjqw2*DoqNeJ$lzpxE#Z?y@eK z`$09vqryIIspkGJJO@SuM))0<tccjnl|ISS?@5+_FhOxa4Jpbvc*rRjFL=1`8klI` zo}4!M?**nNyPko#16T8Z6-zh>I&{3vnFr^-%ejjCCdKScibse{)OLtg@RM{IU>H<w zibJKiX8t{X{b3QrWZC&-ECU37`Y}#wMxaX&ZJ9fB`88Cd(s>E+by)jgDP$G{1K90f ze^$$hp>3ipgT4$i_?;VdUsi9?h3@X`^8Eyqi=y>Kz=XhJFqyg1H-$g%{T*)|O+WQL zlzdKdE|%-8foS=sVj=d~yjpiW8gv=Iyw)AJkZYULV?yaY3_7xkDN-4YZMjg}P#Klf z53)MMAwlvVjE!zr*4p@X?SnOD810j}$9IT8yJP&c&TAbAWy~q<!ZCxlIeOh*wqPY) z_u=)JJB!hmO6A7<oA+2GXdE-H;MXN*D5u@$;Icle!EkW4VO&B_ZxinjwNWQay6d*f zk1rZWPhCFD=F%4Zc5klEfVS|+(a*vejY7Bkvzgq&KkBR{MOYFdYCq;e-DTnejg0v( zc=Br6Zpu{d*>k+r^XKA@f>_5?St)~Z*TUwpHRLa{HoMxar*<V|eV{B+-hMoxCEigj z;Ml3yvo%%p{=23AJ$ZGef7RT&zoggnTuzdBYW&O|8B79bmo;j*XM-OBXj*_)ya_4C z%G+r&qwa`O|9*f$DdiB6A&iX12m{jKYM4>|u07Sw&A)Ff3yZr^pPzd7*F9DV<8~xo z)kWV-FyP#V!Rj-_Q{}7?rW)|P13mlWKLYy|T){eP^!u({Ke$z9M6v{tP`~g;b}6CU zKp3&(p#T4N&B{8~L<tW~m3dA)AN%j+fm{zz2D$&L6Z3x7kWUZTJxE}qtW=B)?SNt7 znIyo!u`eqQYpkJnAHYGmZ6b@&;|)?{e(3^uQ&okhV{y#nUeh;_8HWWHR4|Jw0$^&q zANu%rwS4gTmcm}0%=KZ=c)KQ<<!CqqB_Cnt$B+u4nvQ+LeJQFSy_r{@KiETv<WLBM z)sq1%o%0JRfDGg%<?o>={#j3LJqO#Unm$pRzrc?sR*4~B@EH#eef{L>;u~t-u1_Vz zD2w{)J%LR7Sq;rXrHki<C=<soe0gg!%TFDQbcb7rWhqP^I#cUw7Y!bKn?l>1RW$jI zs70q`LmJHaX8Y^__4yHNR)_k8v@~2V^~Obah>lv>x>0cWa&R!Q-t|4X)74EXAW#sj znTynEPjkoyk9XB;-#P6qNs$gfQo)1#WR{stHG1^Jq_>IHB+7&}Q$Qm!$Rcx?B^C!M zNCKBaYE=cWeJc3tXf;|2B}bzZ41@3(23>9-kuUINuo;81vf*jSm|OSWb(4GVOU(!u zg+eLye2@C777?-;@-zU`(#sRazWc1&Xxid{V+|n9C(NW^OO)S-NpMs0O82HN271{0 zSaDw3%I}FuA!|z}cp>>~PYO}mqKY|b{WaqE5!LCrzD|N-IO#67zRP`K3njZ2yiW9@ zj>jHs^ngXC5&pa2<-BBeO3@ZzfDL-4xi`kK^30rwN?3tk9s8puaWCqP;oi8zNw^Ic zb^w#jDvZ_CS_}rf-2ITUNWRw5$wYTE!fhZK+H$uwRhs;aQOO7vPWD!I3g2-Cs<{Zy z{Ng-xst5SN=usVHWpogQcwKd{gvdBq1U3;1-uWRY-jy9R$%*#m{z#-w@MQfNd_F_U z(zbRR$>YBjfUHuEZ&FxCYckG(db!2_B=v$_*It4$fe_S`{$(g$=A(Gt7?`>Hx4|z< zn!@Yzj?jPkb0D;ESH`#WsLG#D^KK>@)!V4~T{bRav|(#w7w`UW%YDAW;o7wM-ybL3 z13r!R)cjeDu6$^}<D9Zv<F_L98^)okqNxYt$9>Z(i>JH#Mx5Hmex&Vvo86ObTDonn z9jLU&!}3FY$gy!r7TC0ovXI8OY|9lJ{;~HOR!H2ix`mntpriI1?W47eixct}vxqnr zEw%6F)Gabf7h$>S*!Xe;*6D3sT`vF4AFg`Jpro@Czv)7eZA>>AJ^mBB1W`vS10Dmz zqbGsEZ>u+98LYV_E{<T{c{ft*_3ZFuNOwxYq4At4@{pjc{E2hqi(Aq~nSjGwl*OTB zH%|%*+;437$<6(fr?$Qi7o5c8-O|>LmnQuPhEBJTB@@S~XB>1-t#Wos{=`*06!~$C zIR+KDYVA-Aaz*20J6>{lSlVJUN$ItDKXbS0(V0z`hS+GAt(YBFLJ>bZaoE1`5EutX zPa@lJ56o?A@V-y8`swkM+(W)eb7Z5Xp<}<)k`Mr~XBZr)>#65lnduz0kSN{{x~Jtg zv%pW?(wqIbLY=UbhHGD}>X9*K8`gKBc5aK^m}mVb=EJ1W$i+0Tt%(Xf`~R&K8LGU! zf97HKkA(hGXU0uOzg=z)ukO@XnluUhD6F?<U9LdUfSO4`lkP^FXY^?~_f7Kr(axP) z_0H(Je)-FLL)$mt{pOV)X8&Rn4|+PwD%cLZ>+?<_xJ&Dm?@p@9%}H)eR`FPulAJ;7 z4EU8bdiQe2*T8?NYpt#ixF~;^m3Z`|+pzHCLI8{LlJn=#c``%Lf^WI<W&exa)fN|T zcMpHh97x0UsV?sn(=(YWhS03ot2~T!vPiw$lLxGfgUy1ljc_qu-4<qh8JQ^RPnch4 zn+B)Q>t9YH_cIJ25R<qE5}VF5kBL}E&r0R3Ez?PoGO#nX$6YaGh+*cM@hhDm7+I$Q zUzNj{d9&{?sX^@27E+G)DX^4{xY=o{_J+ne;bN13*bn?Cn#<_nRD!}{-4w%M%Ft@v zsfjs@0)OB+B13iWUP?-`CwkE!%|p_NQJY<IoA2JOE=b9@^<7UZ`zy0_{IDO1T;j8a z*3>c1O3cS;f%@+83KL0|Uy%HHnT;R-QVIv{Gr*-URN3Ewgxv*Dt%;6ns15DBvA8(V z<)O21E1Jyg(|9Xu#Jq)hJs&$Dm=VzMiW{%CwI`uv*<a!@a3Vp}Ci*oWWffvj>LXes za1ip647f`MyI-A+P8hyQrYPPG)p%vYN(<SUVLHIMu-@K)St>7q!^VSmOZMxP<+j50 zv^M_YQMCvBQ@hqBM`>Ri<?y{+UUxD0S-;oF!^!#GRkBrNmE!RD@Q-|w32%|bRqEDj z3oZJE&{g9I@DmDHOWhv4#-Q$m;Krru6Zd^w`6+(-0i+y@Tkg~?YB+ooEMo}|*&0BN zZCX~lEq=yW_h^YcC?Gc61ivNvDD)%4(Z3l6`Dc<Ut3c(p|Bk^Gvmb<BX4gx7U!hXx zq*Qh0sB9xL3XxlTC0>-4qycN$HqzwHgcK~yuy(n9`+>yd5tAv4w2b@ku%_QjgLUHu z+#P#x?5%~><B_c5hKlm=mPZG_>0`~WPsB>a05yH2kCT=_%UNA27C$=PJHLmGKE=gD z&{tISv3@QSPq70gqKzw_Z8gWN8|A@>6$CLsPoHUyG@@uv@c;lURE%-ZI}fY<T)(N4 z7DOS}7i44(0Th%W5-&dvPSFS88sg+@nP}3HvN-!%5{R694?Gv;j#6mC6re9&IV*RE zAlDrnRzx7_X?|*WQ^l@eM+4P&KZK)+!djKm8xXc%bp_DQ<41GQ>Q)>3=Qz}nJ)}R+ zpO-XVcc+HGM2Z5Y&7(IddevBv{ZLyvzjr;pC9Grq^W>xx@;!hR#Choq++0ofV0Fkd zTy$pHp7KU%%DT%XGW9{u*IUjoI#-=d<e*&<6Fc?4t(7=*lyUV8w2|LTWo}T}5!N9v zQ7qr@M?{p+X8%*fs8pu}#eFyGJGqGQZcM5*9^F<etb8~ASysR3@Whqfnl3$86zK;w zm}sdqGo7lkG(7!ZuQKM?Dg-sY{3AimW>l&bAm(*fze%z#Oj{rOv|h9%(vO5VZrdk% z2^;vIaKms~k}Q*vcHMtdkQP$;oWwCgbnWsO)<}6FoGQJG<dAE)h0uR4F}X)Kq&0py z%2M@@{=oq(4W=e;9q+x@W6wf=JY;~u(Y+WFJvH5(OewP;0*h`w9$64U%a`ZNH=&mB z+B63(q#Zv9@;5GFcaY;(L<oyvdA#T?N;A3919y1o0F<StgZUs9xFkjf8Alx(Nb!R| zh&Y3{9UtAPnQdE1lUvkNg7N&dL!~?KC-!EOukgoGy>@J=^#3DyNNi*kn!1K$hrxP; zVhRm499Xt6{7Q=T90vC`duFWY&lc)ACr}X2d}=Of3*)8>zr&J*>cAs4bo2YjHvFJ2 z&@sh#y~se19PDa2x*o4(Gsu}n*AOi{^c9`)l)yIOqAg0#7LcJ>p1P4Fd?M3`*Z5Gs zC)Fzhrw-4xvb>nLb@>i`SA2)GjNT=W&*`1XP@xOz^JktbG9ZcuZWt@K&x9^q7x~KI z;rC;9yV{=(S@O<%ZD$Lu6JH(d_1fI~rm*qf>4hD+cihdiFD^E$Yj+eAw;RtI**K?v zc(k>dn4N4gERbCEX)<|mzq)`vF{SBzapKVVYk7BL3MURx&uso|<towmMbgmM?yGhS zB1<FICp~fPEZp|(s8d?QAKI9gc#3sLX1za#5c8*nkQxsUrH=(63IXkdV4iU-V0g>- zP^xTE5yN3EDvi`4F+z<p;;5P~?&q2MP+EZISP%a##qQkjEMFEAT}%d_{eJ?Ra6FHD zk7_7JTvXzR<SO#M1%@>rBU|6i7xtiTFg$9yswW(am69J02qZ>DGj1{s28m;kIC)0@ z72K6vh4C=@&6jBTIuT0)QYaiE>iyt9Oa^VkW7Il}ak7jXC&L0M6W`!$PO3i4x3lb& zln?Orkv}Aq#6twz^;_j`#S6-Ml9F{ShL;m<!M@mAR>RAoVBaC3q|OdYZn(l311`^} zD@e8Z2>bl08@V-4?SMLD$xqC$gUaIf;|tf2uN#z3WYonIWO<Pi1P3>;KjnnwD+Nu7 z{aQ}i6nsyu3jgMcA)R`Z;M>NYRMMmSzHWo_f#}!O8dX=9Qv9aR>i#J`VmoF$!gk14 zN}%Vp)3?aoUYg{S4KW;ge6RZsd{!0OAfr$@Siorh@9+N0{Rd3Ab~HZl;on|*MqHMu z_5Wk(yyL0<|M&ko_J~4KW~GvZ3T1@TB0Cfz)Vt(ZiR^hwB^4@3DV&Ui&@f6yWmh<M znTa?^_K5Jie16}58s63Ijo0h>e2nY5U(;-o?>4zxxg9c&ocqzJx;95{80rf4_uU?0 z{H2|FZNn?GL(Ns>RA-E8uOC6vcIL;3DP%h}>8pSiD0~{@PIrNCv^NW41bM%}r+zC6 zE>mm~5&{WoMBq_k<ZQv>COalZPQ<5e<cwI%)a>+2bfiS7Eo~u|lIGHX{!Ha4lN3(~ z5@Mrx64ZsTu&`N63$a_(ByP&hLX9|{(8}NOf+;6<3fsyF?D;o0kz%DY1!*US(U5cX z-~!2k;v;qGXy=WtU8t~gnx!%<l;N#KI+vm#>VV;aj-77b|GZ&g@Qq?iy1Zbf%13K_ zz5*lebB56*w{l65WNFZ@DUn=+e3v!(LNrPF=3+V$6&}4q6=0i>%c1e0;w_M|VY_yk zngnU-Hu@xq4s?kcfK84pit`-vdwEwmJV+VY6bSD2ka@#P9~X~9Ympzd3ys)Qu&09; z+Plwl4;D~s1!;?~zQbyo(sv}~g#|{&{weKJ*i+~&^H5tpC07!{b>O!4HL3M3xl_;Y z$EM%hr0h2KVdL8)z>A${B^3GZetMY$=>lp<FErjM@K)&O%(`boj1t@B6Gy*;^+bO> z1k_L6H~juLEXTK_Knb)2c`DG3`8TVbgJ0f1Xy1Wkyn*e|-&Jga@FcoPl=d#TNa)VG zQl!~sv5lXCUny8!j-20U2Q#nP+u~;lv-cD)b5bL=P`5paxGv62f1zJ>$KJrloyw;5 z{d^(z?uG{FV9`IZKE;83Ykg{q9uwu@qK}|fH-y|i*ZeCnGCps+mD*qJ#7$3+0oPqP z1lNzrlPJ7qO<k#~V`VGPoWcI0#EYji_x0c8zLc<)Y()QijWo4o^W-HGqeM8loz$k% zzm{s)=f_PRE-x_0;${-&jR>}yeR`;`3XWAk3_CWB&ai72dhNAdn7B1=j4+@s1wzIi zXSNSDO`N%$pV`E&8_l&?1HVEzY~I_8(D?7^c|F?2L9^KR3|F?AT5*}%pyBavT#?za zS-0$+D;bKeA;m@V2@Ir_U{1Z%9HvXix}%)QE-R@&0Xaqy97fT%2#PH$AJy<sRx<Pb zN3m=f@fb#Dt1~_x!q5u+?TA$n7csJ1$D5S13sBW8wwlXmfY?Tkbgv8p3g0q8k8&Zy z0N$d?a0r(EW!XVAQ)6RH{(Jd2eX8OFH~sjA)vM?MuGZPu7-x45>5K)qqkI27Hk#>{ zADEz`XlwnT%;9gUoNtBc#Pgj^Yi;t)*3SH^X7knbZ~nZedinDv5QF~o*?85ZvNok` z-0%8^Z$hj6!-WM7rB#0I2PjrcxoLyt8os4rkAygb4_EfVqcA$fiH5}<o_wZ(_= ziPpENQ-WO+hp$#Ui&tDtHEmj0Dr)8_Ig{4HXCvJD`Ie@y+D*%ivP`gg)D;}ZG*~I9 zsK5=nC?fMfBQO15z8J~i8bql&5a?aI`R;{ljGa?{(YSs_8k0wI(<$>mCsd+{Hmgs( zbp1$_m0?m=*u{tKJ!9$ca;C~rE8W_aosv=n3Dv|#O9)LxDD>6>#F1+%QH!S#5+TJy z?>hNJo^#FvDG-dSylA{TYY|T%?=mt?kW+<LV;OmJ(xlxLD#zJ4Bt0q4-TMm&N4p@* zAePGp8N473hJ3vMFN8BLYuWEPMBIh3zFJv!eOMdEKOT@JM}CUFeZ>i6o*np*>?xe% z<1BNZHeW3>z@vYbO@LfV$HBDmo`zY*R=q_e*-L@vIi*6%i2<emfP%?~N)|d@b~z<g z+amRCHLxPkokkiwIX`DcZQ;!!YP51z2iaC$xFb?@F@t|3HAdESX307xz$|-q{;g>h zarjQ3;`~Ns-MtZ=Us#H>!Y^8%P0~*9i7)!MW!62b@LuAFaRHOaB3aqM-zO~jj+dTo zJblJ!MBx42_&rWn-Mjx1MmN4&uP*PsnIrSMWh+<UIT;aWQfz0&YLUX}6Su@%{r<8^ zzkjPZa_Cf7OO}TADGuAgh?^k~ZfD1QxJIe`*OHP|xGg<W;NP>P%lFNm8MxI|7saOx zDAhKC^@`1SNikmQy;Ze<d#O!UFnPGF0+*oW5f?_M0cg2X1vg^bZLwHSYRkse;D0ll zp1z(?yv4;t7oPsAZdeBgVjT>t(So3A0Fd_k5>g`QB+3pYb;h)Iy-hrw-n_Qpet3~X zs^)H^gR%)Mbp6#6d%X(SAq1~<h0`dF&g4<hi&Wm{IAA4SG;%cT;B7k;h_KHU*v{f_ zV*Y0vH_aPyMeXkpSLAaCRBEo1c$8M_VusjUD&aB!GKYK-A5BIb<>b`Q-B4Sw&LX(- zOppm2n{AC;<oC}oJhXI1C%-)Hi)L|#E!%o3=QW*!rUUoEUBF%xKQ>Zy^JotiS!fvs zjQy2-Y4RVJxKIA|iOq@s`2Y`<t`G0Wg-06BX4Z5r`io<ugxJEf5C9Z@m0GzLT{}2W zY~6N^K0STyH;M8c@k89RyYuSJ`ObB~b=EFgo)7TP2F0W>C~EeA3$UB=N36C_6t0#q zlfc!~mUjj05N1njgs^chOg;qF%E|u~-l|P=i1kV%YCh-7`N^-R1qSTXHfI*l_ER9W zoz45F9fPfy+fm$FUk;oYHb6?b!BPh|y=#@J_>DMUAF83-4p7R1|ATd@R|en2N{rZ5 zxgyVfa_G75&W24!V8LzXoIfuRJ^GN95Z0LCy5V%-hdc_nHs<a?_3`H8X9~0|^XX8# z&xX18ez9G0M@sk+^!b$`$4+B+^a4u#DB1mUS_@RTGxPZc$TFe0>!fX*L5DrO|D1tZ zL;2&)qNA`El#fCN(V{Hk>Tpoa7kflr`U(?u{L<gwtaNSY%2%OLZM;ffAWf~-gT8S1 z_%H%YIR{6G#V%zu+k5*fusfU!#G}eu4L^Z{!&`($*fJcLJf7^6c!+)elN>?nQg&-2 zD0u>Coo$s}mjFA`Y~Ujc*m$wfT|{+8z0xn9WTE7TDYuU|PZje+n#o1)dSrxDxv~49 zSkdhaVOBiXONga}YuRUG>m1U2e#2BB&VNzxJ8XyB22FYCL)RLL><2e_210jR90=+> zeMc9Jb}h6(2?l%1f%m7zj|Pm&;X;7KE3jk!9i)bzl~r5udY0Wi{#zfH{k9+1FX(s| zt)p47V(ukE@qtoN(kA#s#>7~x5V;%Vg2aFbV#FW~Tf$eEUwh4|+Kh9u{1)u~#Vy=w zpBNwhon+(ie%G|c>zMT;`W(esd#4+{rha^HH<sRRx;B38U>DOrEuF5J=jypLJp$P| zHAfEaT4;KZ!*+U0H~XJOufSO0<2SP@hqjO1)c$Cg6L%Z8bPPupA$x!gco~=tzG5<z z2n9J6EPS@bo=^!cnj{wKUqS25vB5xCNsL4hR6}Lgh&{oow#RWz8W=in7Qtr4{^PA~ z4=1o8vud%Vm*J$TS3w}P;_%!q+FG|2gC1;Sg7c$mfhG6$W@0?g2~sx9XP(+}lL6Rm zi<N7j-5p*4aJe1CXxhU(2vT7i`8&1?g9*oH*u&XcxyqB@Bv#o_x5c!)cR*l?(MlR| zAztp^E~*Y#4JV~wwWBb|1Xxm}n6W*bneJu@AM#${<}(Jr;<S#l(IGN3sxP1$Dw+p= zSUeDZVo!<{HA^}AdH}3X=D<uDpdLGS$lfT$fQj)odTr#lTO4;ynJ5XKUpDTM(AuKW zQcR*3-<QcC9MliNsQgKsfer1r#PkTDadN*llN(heNQ&H>(YAPUw?F5D`nYAKRh`3( zS*$fHP~WOlUHiWrv6Khh^)Q{b{=9>I;=NGMtm)VC3oTl{&kRX(0g4t!&Sk4L{B*vj zF_oE~5bRYO6P>!4?WuIo$i?8JMam-m`r%%|65DSZmWHC4D!Vj7`dmb-ybBJCFXU}~ z?QQq#sM2jKk=u4b?76oh=1SuWI=t0IY|gqjRE>09*d+CD@Wg~dHRp>K(XjmHOy8f2 z2|H8wRz714{MPq-%$y@{{Jdlvb>`S!2)L>TUVWCMdTHqCsY8FZW4{bpJE#~o4TT9< zMphJevz@T*hrF0hS*6)}2+Eyx2{#nJO8T}Ds~orOU5T<hfeh*Y;z)FfVhFVAt8|Ew zaGvb6-Z8jsbuo2QL#~6^O~_NO7-k+$#g^{w+OhDhmq?VY1=VSfZCih4=_R3cGjWD$ z?A%LEa%4pXtT#A7{^uGl`#bNeNHq+fU?&*9O;-e<O4tbPS(Fj<C$1K_BD#GC;$~-( zRmgR%B8XUUTXM?7PlGO)^=AyFp!i&B#^^9hq6oqZZg~9b+C^#K+o1*^XqVt&LR_T% zsVhRMCsLLD9oD(*VHi)YtfSKPA-%F#)a_B`L@ij~l3n^axlY3tS=;mAn``H@&~*|Q z^BPV*?xT8a+)(jY6l#N6<L1U2rMDNGI#FE}pF*7KpAPImXAb|v?^)S^uW=m`K+@o& zUc#C)=)TY6m;q1nFI(@y_tuHS7&^Uuu=eq{oxGLB%Y9vW75XxrGRC@htQV_!)OD8H z<cyEH{&OwJ;Ra~d7kOl=6*ju`hbt+quvTr``uyZV-SWS>m0}f#n@G;BE?i9S_>^J? zObLqDGggN1<G0r-K7diyX<5~%+ftWChQs0<;tF`*&Xfere76@iu|AuIzPI0*R4~%| zl~mBui7!@uQogzcwZ)+4?jrUJIz9w#aknE%0QGhuY}zxqiCDpqX7L|eGXA?c3q;ir zJ1y{LwD{ejhKr9BugQ?6-j5bzU?$=LH3f(_0n!h)=nw{_Hg|Nl>DMPXTuQgXZr^1d zK_+b(>u8ck#5RSjI}@dTa{VO$8pw|ck0Gom&o@6PA_9-}yd~xlhY&V7J^7WGPwn-P zq8je@9c8Br?9|{!h8+Iix`knSY5O||6)I*?tPGE(NJtvY=2Xf4u8#8L{BC#@My}F9 zD-dYdNAjCkgL&|S85`s!ID;Q!k>}4#=S`A(7r#5e#73mzZeQa+Z6ecb0!r2{>A;W` z#Dj-Lk^;@#V@{Cf^udgslKO##9{r7=#AR_IBD!v~H+vrpfRzbDq9!OKJ*Hme!s>q0 z_a3l-2u1noz)BN)YO)%(d)EYwr{CI0s$Ce%H8FX7`c=8Iab#xBu`l$bnuQkP`xVmV z-Tv-fIu?`7`=IN}Gw}CDyw)nq2$;Wu)aoE%@M_9<x*FwDg6E(L7X3k>jFaR5H}Y-~ zTI5aNw36?!_n}Vs{y#lC*OC185Wxbp;Pw>g2P%Mht$tzz)z9%Qm3Sb7E|3Z|OlO%2 zT{u(@%#ZaPwR!SPSk`g#^&_c1$86gDHcCr;=`j2}zLm@5hjTXTw~eC!E#I`6dO@qh zfL7YV5&uX;*_F$%E^|(qlRV%usDSJ~oQwXod9r`=_jXe3$1l9}b2#HS<kZ@8L**KR z`SD;m&VrxotuWN~Jr-d}+Zu?tfOx=JY>_9#b>`>Q|8q6RDBEh*Aycm4fguaSmKS38 z#i(3GiO#+34CVx^B4=;BS=kami)8yv7xRHHq7rNrp{}zK%(R(8viuk2S%DnW8zy?x zjprDlZ>qE3q>PpH50KjsT8!_Ps5T~_l|e{<(ZAR6uHq3;Tr~~4_^Q}+v~BkeF^t-v zPRqO%eWhYY2(}HX8{@v#udh4mahjiOdejU=mOB^H_p6f>-FAu6&e$Rp$r%0zlPQD> zj%IPwQtB|IIlWDiwzvby$_5}tDG_bGKIm39OeGN>pK|dXp(s2i47wV*qHg`q2hmJZ zNf5tuR){Pmm9E~bvLe}Acfdi|1({-1miNQKLGcgRGKl&tqIx`U_q9by&-y$szJvFK znxaoFzB#9tWiFEO^iNo-SJB~!xa>JP|E$K%*6Y0kL;f0RPnQ?JIU&qvPw;eI!?*tE znd$=~73pl=Gr|w%e%R!<91lrYGq;(4z$+)HbX51J<lO54#}W(2{}N=9-Y4hxSj^e% z3EMaD_M&*~Y5tDyU+%P(IZ9MC?MdZ{*6N?S7iGr&s;Vd=Lp^5iL5?)ppYS1`izvRx zG#Y%AYBn-Bo_iyv90bc(cJTK=xRlNIbno>pY@uceditjoe>~yQ^u=bi-xh}O)c2&b z!>=1&U?Z~=I~yUjw9<|1NU@@VkK0zBprf!mtqpxJqiaP|5eo)E+U(>bthu6*KD+H^ z@f2(5<>G{S>yQ=l1n!V`5UY3u&%eK>*g9Z)Aq5YNlv*S5u69~N#*#1YCP@~M=v|9* zBOdCMQE^c=MwPXv;|QithD$b7v)b-|$Uas2uZ@cwH4DJd9;(Cy7g^>INE97zU4LQm z4Mx(^o(K_A>?Gn661G4r90#MNwfXTzmCBb@r%_L#JjskO*ki}|9>V*#?2^`)j?GCs z88KnPKm+F^mjIbt0%z)qWTiF$d(B@2WweS!k3EW@ufR3bZ4=iCVd*R)uAs3?DzaqH z@ZKZ$4LkeSHlO>{SRB_To9&;-Di~eWF83)a#XC%6@W*g}yWBNhV{*|CJ60$Ef@t%@ zS)0n0&U_cLbMGJfSijVt+(7gCMDZ%VE_}=CD|fY}*xS`+pC%7x^R9Jiy~Z3{G?igF zz_TS%G|_`J^@gBKG$VkI4J9^{M-I{X9|%U>vQlf`S|^S%G4KTMT*(osS2+GaoM2cc zFK0UdG{ANLfI<2Um1$oFn-Sj=(^VALiB}t0e(ns3Sk_JS6<O&ebnpX4ZV)=lrDT*I zU;ITFM7UFD3Wr`Lx1Cw=*xd9%j}T*rGjKMLA3c;Ht-g<ouKU{x2joT>*>Tw66q8C! zA0~mno_IU(ObAVaAYu4Sz!Ez=5I|iTtQjQ8Mu{#@pc6a*YgAU$HDnx}_|Pqu%8cn6 zmk&3&vGP6qz0DiZQx4>uCB#OeZ+^K&#JMklc(WxCqP8x`SS{W0X0i`|2T-i*H;j>) zp8a^{Je)*vzS}(=1%-qKGV@mY800f*seZ3pKI7c>LY+A9l$8>Q^!dT&?a6HF-}Vlv zA2|K!U_{{>(LxBNLho5}Ed`9phgM8LD1O)tg02S_sb($dgsd*Y@2)s@o7^!_FAd2A z)UcF9`RPg@T@2C*qE=rqO?Z;^d-i?Vmj7l=4S&E*s{os}wX`=2nih5<cCiFF_b(@? zhG!G;Pz`(4l7u&J@w;BBN`ZRifAW_9<uwGjlcq|U6<Zl@*gcsCAxR{97dCe;)J}}Y zA~kVmN4Z-H;S+ne6AZ`J$aE)ya^ert4LMq*4<n>b-^0?AjwqCvb|(4`K!6?k2)g4I zDQe5pt+)b;o;6+q-%0#;Jw~sBxdMD8;L#^@Y~iG(jY81%YI&H*R7i?LMtj~w;%g?w zRn{Nd)GV-uGb$peK|TV77(TKEz8ajqButK6XZcQmY~(Yn!sKzS<P8C8g)|{Mvp9J` zm7q&JfCoHI9<~;*fJMBsGoJxSTIaa(*48}jfGph!U5kg}Qp1`#?2bQX5mQ1XbLCAZ zf#Pk?PDSQvEkrp+O5JKq46~KB(k~tGq;T%Iq<@55WbTK#EvP6-I}nE4X=0VM{U~8D z5YFuCDko;{zGl8aT)$&-OXt(%2jc%-i6#O!eXP371;dKpdber)<1f)St)`P=-@*_S zB}a^WZNsx%s$_Zd$mR8#(Ji;#sV%$Bc(aHaOiT<9rK^NOgrs)Km1<Vv_WC#tF^J{h z^Dm4J+hW^V{}UCfNcyj*R)nyV*VZk5T3mVUOgV*~xJL`iGS0(<9=P@-&&duXDS95x zB1Ht6J0&ciK`;n6Isc1kYe_BhA%BtA6~UKCeQR?)v$Cy?>$aqFWKHWF8B@&m>E9&B zZc(LaCF!ip(t7<4yGPcr=;!;n3cugz?=Q}<K7S|Nr<CftNhC+_fO|%sI!D&6{6s0! zm{UIOZn2Z)PfY)@$o~xJG20{cE7_i3SD`LTAbRGj*%wFo9nu*N`}__&bpJiR7LK~a z3yx>mOn&(DRBioHW3#Wm?B}91TyZ1OX{|r}BAN3)kuhmXVP~g=DU6!0;QdWd9OW=8 zE{uksbJ3MJJ|c=d69apsI|?OYCGj410H#2|fA{v@qHJfPb3IAPcW|=7VuI&TBoRy4 zLdH;TUM7x)$6dLBgLdL7#-M*Yj3j8@I*eZa9)#BOurR*pWGC3KqI>M^f3uLlO_u7| zFNBFq4PwH+&uUSZF2;J1rffZMm^8K_#Y5FNH|!0Jbuw6UT4KWqG!IY*xewQoRQ<dM zPfHPtNAyr#w197t>V6&r3i+J)6Tydu_POtE`_+ob14+Pajb2nhkgS0Ove*evu__k& z6P`RRV_NZH5EWh@fzfyM58c8)i{Em7+ObkDxDb{KX9N($WI@cYFj`;oLvwrQw6Oj= z17=#GOh!H@ZCLmE?PF{pz%_?>YR}wzGVAl;$MYfxjk;w9<=;1Dt+8Ui=Brr!z+&-l zl!>)WLuGdJ+o+_EwMt)eS}vGuKAby0qAOij$vGRM%UHE9wTa*N=9+spTYNoxzm)Fq z-BfxpeQ%-=@6ir>i63EU@8-|6+@6|pd+&KHJtHAfs#&X$Vz=C$rz<x2UG8?h87*LM z=Be0??aP+!o;F|Zj9VVJ3mLI@A}%c3%sle@oUPQYm)pGOCxQu9D|Mfv&aA3SicvH{ zsW|EwvjHw}E&~PJp$Vl>uX8~&=yJdhS^+m!bD~W`B7!K`@vqO~2Q)+XR`OE!?e}NH zxl0&$iY}+~uQh7)Id;RIosxKQyH8G&4>pvEl`P~-7vRWs!UP0vh?%|D?WK@JXnAM> zU22H*aQehn0#5Z5F8ZYOz3~wo8E?wy_HBL89e$`u=GeLnIm`aw)zqLW>^E6>;I2AE z%)hQ59#BDeH{${Ka-a+vrTD|yz+f~6#k0~!K-DCsLY*AS;||;b>0Hi_$F`W8);Km+ zL>N?EVa7!+bBnOv?ZHYbv4)es)7Ffzd}I#;RETY^B8icAHLMX3v>rqaE%Lau?yg53 z)L*S|Ta?HnUv;{;p>@q+mBbgP!UI;BRv@)2wC!%azNw0v&h0_Ns{aP2;f$ygrbd{i zs}yq5ILomtkwe_ryz5<w^-`GPYp43u5IOx_EAVYGngvCi+Tys^b54O6$>5zIv)3~5 z-(V;@V1RQRH=~H+d(afULW)^wk^)Th^&Vo=nj}gJYV7!bh?FqUBr&F%USjR#CqOH& zObDFWfVKV~I&9W1eXXboXzl#DTJ1Nc?hu`Zm;EjgmMT)=N@nS=lrgzXz%cl(h||SO z5-)8bNc06PrFJY2tc$Ccf*e<Gws`{Ub`&yY#bbI^m~yg1p*UQe#TqVmXavznn!XdM z^)_n>dfSOX1wB3{`te`zBEf@o7ZOQbG12AhytGc_oUEr1mh#)EUa4#})?7|n*mi3i zEY6u=@FpPQyb&toK}3pSFQ<FN?COPKBtMA{p9iQ6%P|=hvgYD;Q6qsh7<9=u(BxMY z1;ry4;G#^YAZ;JdJfYrto)Jc<x7AgzDHo((FrQRgMfY0{^>4VT)(u^GIoi;L(UR`# z6@V+`<bt;#cp7Mphn$zFOEb#Iurj=aQ1y;`@xJ{;4IA{Ot{GD=l0QUnS&d4q3`K4u zBj7~840+9?i1TikStaF$;sO1*u!C&GRl&$;&E2iStUm_KeT9?U1iK(FJ*O9Ds6YFN zk@4MPwCG%Za^uHK)Mo=|obIm3FP-F>a%Qx<hY#$Ed;F2U_F5?%SFy^qD|D1%K3cOy z;5z*3nSZc3HEUCPoImU*Hh)yfhi<NnLLxknSij{qGtKjH>M`c=pn*bR<5>eX%JuLP zXKI#3eVw3G4+;96s827p2|0GPRK)lDS62iTe*RkD;;3zOsj#qHPfsqi8^9mm_j3yJ zCTnu}659{c&b^jUsc~Wvu3p<VIiD!j*vl>1O5U(GENw$?bAIU2n~Js?MeDwZiwjeq zy-azs{8mrVxXrFzM<X|)uAz23+lxB$s_yuGza!CahXR#PhATS$8$J26Z`bihXTIF^ z*vL!&bP5B;w^v-79*EJxntI^Y7sYX~JEUOkrrk94<45{X-@oWg{cJwHM+J<X<hh1* zv}sUbWsr6&&HHFqjmy#JO$~;TR`_bD1M@u7$H|nV#}Jq;gF@yD!O+vh{jr+<I4M3s zjNDrB3lzoPYaRq`+4;`4bqEES>PL|*(5%Zq*Jd678MP~9(XAhwFl1Rh5VUet<flT6 zRacpYv%Z=SwXWY|*RhOjDRxS*mAidpu1O`FJYuPz6c7vLBC~h8V-EVUR3#&bp?<m} zeLM4S&O?*Wr=O4ljd3_EquCg%(a_fjANGJ8$BLU4W_VNwc0Ri=pt1A{Qd?>O-S~vD zdzYAmxxPIiJi|)cEnOVDsd^}B$8WYp^7rT3J!3uAxIAT<a^w?zKriz9Ok}2P(>bSC zdt0dX@W>d?ykDfJ=#$Ejtjb!g`<j6kyCS`;dkwXi3JXvEU?g5V+w;BP_{LQOx2g`D zZITZD*DK+s`l)}9at_a%_KMH!c2)a>!h)^u1wVMx)>1Xn*j>;Ol`0(5sCTxj;?G}O zr;wN7pF6ewzDR0P*K7SZcuj%TF!$Y2=R4+Y8{0-M?l(Mb?L%)B*KbbXe|KZn{}K88 z<nQB$E|QC6H!pXaSEmVWyTCrt8ojFh={%NK!1!+a`EKdU<>dNC>C(x&r~{P>B*?8j z)tD>)2w4r9@ebj9tRqW`q#3nOIOv0<9#L9YQ4ntM@uqZ^#(8$=<h_~b`!}}wfB5hB z$peXZJ<Ku*TJKwavP?kep}g4bs1F(KvmHW~Qzt}^%coW(KWM-t;nWCWa7gCnThPxC zqL~8P?R|WY&D2~;meI~bIw|arFq8QH5W_B!JhwVe`Tb(lAgxc3V=J&SZmDG_q;k;x zdHfVwCd1H9`n*RGEF80sX)4nDnJ4ubtM58;WEVh8!(o0qsS*9H3)X%F5}i#jG(QI| zd)$@MEHHh3x+2bb29Irt3o>`b7hPl>%TlJUAQ!lUDnN~2l{D73m5j`>dKW|YDY>a7 zBxR)3DrK4qtB4@1up+sRlXkXujSUmURuhPTa8Yx6YEPZR-vbo^u&0wI2*vr|gsdsX zREJ<eIMFLc8yp?qd?*>6@Qh4Y;|&acJf}&N`G%p0`5&j|pYzf$=7lDOnT{kC-ESMZ zxAQ>4zYOb%_6ONcF&oY$3@cwy%_&w*aD6AX^Avkjo^f(NDeW&;?e&&~<ltfqQ@WDk zhm((R2$59P`3iAh>4x#2UorE@;;q@)ITNb+uZM}Tx2nR1YB)J=yPh1i6|wTmLD8bL zSG~d~OD}<@arVnjh3$T3Otio*0;}%#$}FQ;LGLvoS>Bq}kf)yC<;=to-rl>5yf9f_ zi96!&I-2j+=8)JK7V@O>hI|a^woqI-A&%M;!om(|b}&InL$=x=1dgzX^Q)1g3J?7G zm|J)X^aNW|p%a}f387C_Vvye55Yn@y(9IrpuJ-i*Jr0uP2|4*1YGpFttM!Ewtj#61 zS7@6wTJL+yrE@|QSgR?<8Crt0vW>BFe0g<Yz~sE|CSuW>dqsNJyir}Ax-?#|2;D?5 zTG{NY&Ni(BI)%T%pjp)>@)k4j4HN6hb%!{ikyPjd+k77+Bo)aTe6+!JS%l&pRYa@Y z2ZXs-5#5InEbj4_(er%{)t740nR({L%6Mx)NyBbEdL2#dVc~*s*jy9Pnd9*2cNjV; zG#DM#<DRhaG{Z?6q9N7FuC%~G+4cm(Ks|);WQvWNT8Pm$Sm=)$icB4-yy|iE%>?I- zr-B2dQ!#4Oi&NZ0W)?=j>!(C%8yfT~r@b(|)`T_zzCa#7ETHXq$RV}T+nzDGL4&Dn zvMK3(G(8`$@{z5W2donIFkOF@kG#AzTT(*I*OTU#^-Y1H^Yht)f<bX~_B}4|w<DX$ zYSUdzbmw<+4s*M(%rD&BfBz3FBZm?i`V5+sDnpG-ZJzTbU*@`mxhh%@X4}Py$XOKe zJUv8WNM$|{=^o~HO&b64bk}zB_M(zAVFO!>?-rQtT^MY%W1OO&``N+Y{U{n=Yzx^; zK8$I$)UdM9OyBNO(nR2d0xwp{JuCB#oS9RjtzGFgQADh@!3y208j5{kYg|IA5h>}o z@1=k7+??MY3=V)XgeDEoeXFzb2m|gnKpbCmF}DvlRb^tBuA0|*I>}0Roxo;9F*_lK zncj8f9jXw=P3nPo2sWhsGIv>)XG4oJsw?xSqaqI5V(~A(@umCH>$)Pysd0wCR#*!% z9rJPvc18}ors|e!-ID9-{j3lLT^PR&CMhJyaa`ktm#_EV?JK3Ytc*BBX~Tjqh|G7F z1tGru9nk&O07K?iTi|-gFx9?W>td-0=~G-dWE5{gdy=vrzZNBURPkzj*oxPF(qz=K z6Oc%cY6N?>h~2_i;x-#$ApfP(41dIibMSs{PWw>L`;N4B)OC>Ee9H<6-A1?81ZMeY zi~I_glXrK}E#EB+v<4?jS89}P0SddJoBl%cZTa&bx~F?WB?rm-4#-=oM2SC)XX(iu zuVLi-m-p#;JiFGm+4s~^f#@k0)%huo+AY~WA9=65G>?~c`es*R^SkSx#kSCvh(_n6 zpLbG*Uz!@NxhKKLZc@L6-}P+5;&-C;#^`kPaFtJCO~UStpUz2TCslinG+cQ;l~6FH zqch0U=FT%K>R+zC-etsK=aX3V@%GThPdby_l_zMNt=F@3o9!%n-ibBWGBGQyFS4&y ze66J97D-ZcdJ28ajN1Gw#M_Z>DOP-EhOQUmOm&p<p(cLmuwbqio*!kG2%w$$t)XnG z;E%`Y1qfn3<)m1<J7S<Pcs3n;@&ICAY_@aFyzpNR^%Zc@PkJ#?IxnEuCmSg!sdG2U z;gnfSyO!5|K@zn)ir_FjNCmgcn3<=zZ%z7>rUX<HVouv=%5%}Q{d}Zwpu~Hur%jJQ zwk?qm>sa{^;75r!g9aWb`-gMk?d_Vt4@2)V`|7wN1gW40%%WO%{c}B`Z>>H!S4AaI zZU2jJDMu8g;c36m$Oq;gip4;*wvL77x$*NZhq4V&`JU#cE8c>fyR9)NJ=feJr3JNi zdjXT8K4`8*tfR)2Sq+@Y@3A=Yh2(IcsL3fs29WLZwW_AiNYPnQgyK`2Ql9=;>ue*@ zdTBTMNo1M)-r6lA`~gqaZSB3m=xIC~23|y0O$$YLe(xy*`Avgy^FPL67k1idPJflg z7Lq04Ie0nsPUF<TJFeSZH}9X?7{30$5INr8ULto2YWvSimRW`kiwMn!+#55Mx;;dd zEfzRdt}XqnN`X^jE~7iIL-^~^v|dH;WiKDsbd3&@B;PG&%47=AZFjVH@*2@+qF5Pz z=?S<8DjmHh%Gxcd7u+UM7gzkGklHXBf@K&pJ98rvO}(rIL*=bQy?s!4h+*?lHj+m2 z@YjaerP@*&3?u_{6KhE)!)Vq6iQnru$&z1+-7yzR_U`gUewh7gOw=k6X?9!{5e=`# zj)??iss{tq{6vxDAxtSRJziw+G-1PijM&%L2w&+XGGDV&pNZ<#%n4t7bm*v2AjQ$} z!agml_ZkR7%sg@mLf&luqtu|Xt^MGE!UHA$x-iIQEjc4`J~VU1@-sw%mV3G#z^VHG z-11X(jt!nA0vCQT1ijId`n@Vz2cGyFImDz4T^(hmBnael)1n?i{?Xp-jN_%gaW5%W ziOs15DI*Ewwxoi<LdmOY?<EncJ{k*Td42We9Mkx~L~vlI!86HH;3`rdkwqt)(}@eJ zx4$rnQRG$(V9|+Z&@5ESkSibK<9fD!r+T^QI#R!?8cqO6G>%1rE%uet$stTMPY+)D z3jq%D!rZTKDc@daw@IOgHrwaQLQfl3gHjbdu~`nb!w^WZjl6xyLBIM0pUB<yT$xVT z7_YkA%>rD{bS<8>JD>4aEJ-wJmTfB-HV>GX#DhPO3WODz6I)5K*<gpf|A9CX$3OL? zf;g`+0(7xOS;D~Td8Ug58`ic0>TrPPkt8f2-jBj=Y+X9E3cGL+SCj&wrlboXmrZ07 z<l0d>z{SkK)qEXK0mcdQwI$O#UKQWSRzE8H^{D+%Q$Vwf({rMX+1--$Z-R{)2auFd zQou!AplYCW%(Nr03m!)W_ehT9!NXl^jU~^q(xm52G!HUMuCUX=qrzP?d|a~mcmyAp z4#u)Aa=stq+rH-PO7pT<|Ag0&oBs8^BQB<yJE-X5(!&}{$(pLF5cA%{OjgTx1vt!$ zhanICzDZZin%hr?rqbSc*Mc@220lAOLM|0es}K&m(fw@nBtdy0(mZ>1swdU(>A`iR z0(B`&GCiH~X?AMkSG{d4lw3Ouw?+;nNX@fV$64ixbROWOId~Wne(p^5_RB-aU5(x0 zust+1ULQs6)h%FzUy%7y9%fMbk+I9k9H*yEX!avsvbliHCV5lW#_r!=4{u>%XP8NC zDF2PVNu89V4>7~5r|^c(^3wh6nJDuKZ8Fo$fhh+@r=?G_ulNHz-?YCnkK~}=VL6}z zSWm%sPNA2*pz5={K2XwuS8)Tjv7C>X0w7no*ShD#D)sHUH-+^zefen9=jGdjmnIWd z(B?GhJMvK1cm(R!{CTBhEBVI>n8Fib9mAu27k)a=&6<VH^kzyp^frwzc^8z$&poJi z_WW3Sv`=-SLSpA)aCXD;<c`Idl<w%{)@X<2(Tu6(V%_4xO%j{({gbXtmR|N(GSFG@ zifL04cWRp0QNJ{nR{YZ_*)b<2+iJ6XO~S>oploWoP=45a`I`%I^Zohyv7BqGE3Y(3 zMfeoddGy?9BaWTZ^cr1waO_9&Kv^&tK+aDrt7EvvK6hf2?@je$?dR(UWE0+i;q)eg zanv~N@A*J2^VsBHL|pu};f|r*>C8Duiz<3js>os4_IO3S0g=aL<sD?FzR=YY_1{>J z{6l+F44li_7bRW<P8GJl9JJ`;VGvaM*9x;NCU^X0VhpHp%pa^ChW8v!-KiM(Dwp>d z*uR^!Ak=TZb6Z98oDP1gkb7CTEg%<MB{g6r-v9gsbLK<JFcIhTA0KUBoz8Tl;x*hn ze`k&$T(lfq<GBn-L?yhd>s=CWJzs=lp!T-+5RTuo`xXRWgj>6gHs~V=c2FfV5Kxr; zy(BM8Q8tGT#d&J%$#@HhLX0FRdg~6JVI-Bpj&8h$4|XZzhXU$ORTx7bMwE}C*t1n+ z8OsROd{wyzs~l0R3R7o%%BDh*?<QaLYmS3CQGJS~UaDCz+4bLplmgJ$`*Xid36#gb z|9VB<VWXGH!MzPyU&pkSPV1h?I~tJ3d+t`*t&Oj{cWUgov!;E^-k(WAO1a;oMsJ5I zWw+GXa^6i4-;{b%bg8vv_wa<@QtJ-eEIsEt8;u>*3clPZ@3~dTxBXDxtmg8h=JI0q zGS9%%hBfg*Lgx<tobVs)^xLOoEut0Dn|b-z=H`OxH{RCk(*yf-3}+m#sa=`%ujrMj z8Vi~jXiNs{pw;YSDWNzGqtmzX%{VYA?2P5V`!gXOHLBguM>7rIPofNIFV6Om{Bp#< zmJ%L*%JWS`!G%*ww|3YOZI#*!FXHB|J-7YpxrSwdNze^xg7bit$gV-W5+5X$_L8KW zE1p2&L6wV{TE=X$@aGs`n(Hqq19NP{lADB&n}$AL>)B<)4ISm$qVQ}dw0PeQFvxG^ zx;C@S0Ue%V^qX~$u_CINd_({Cg=Sj_ig9ZlE4_}HW+jcjrfBk_96969zdtL&!my1v ziuN*#GE=($Vxe__84BaRCwXcJ4=V9d&jivq76Fe+uE13XF2I{D4iJ*!{AncIL|$N0 zJi8miN&9C&^)=>7ro-t-5{kb|-XM`}4C{CJ%j>P!rP*KKz3mulNFFL;rLyL<OPP~p z0THVIzMF5<Z;XOB?m_b83anm3-6DfSbxlUpGeekN?_sSoqOml0cK+tnuLcf^ZC5Ij zqGUi|;T!l{3j9I}a*zI*wKd8IGr2H`pw1j<Jk1q*aUHtb|2u>1=wN+i6t<ich1`Md z|HJEF<1Q1g*$92-W~dw9)b^|>YymXcG53m?54OQ%`|f2hh9}Sc290E-*-iNHC}B`B zQ=+k+?0@)L3=7?%p2=1v@ALcFjhI9?ZznQi?*{w&h?bP;T%>N}V7si1HjN}pZFxx9 zkhN>}e~s=s8N}DzL{gGdaST#bWyi%=XZ(zVDroDRC{4w+>xBJ-Fq{+);0w%DDGctt z{U1W4>HwdqQC<<tg^e@~?i}icoy6n{f9Wj)n?eb)rriqEc*QR=@B4}vQSe&<9Jc9V z;89mGh(zzWNmB?|x}`xdtimE@q;?cKA2&$3RY2+V7tOK80{7F+$50>YbWsoxhCoWO zVBOgt9JJmK?St^B_)B0R;Gq5o^W|YJjN*?PK^`uck5J*j61gn%oM;pjRdCdAe)3hu zz~33o((1@$aqB5(PpM}?@}1FB>#27nU%vy|b}ugghnYl8+ND)nS1A$($2i#k^E?GN zRlP2;I9@3M<}33~zvLrW=%McN9OyZ{`a55?6EH8UeIW;;r)r;ENg0&DLH8R>n`?0I zu&Kl0qri+EE*xnaYvHzjr3?k|f}0pkdR+j+?%MBlwBY51ZqSgD#`)=`k2j-yF&tgl z<rZ9DJIjp+yD%6Nl3yz1OHAMG>ux$<-Pzaiul?Ts+Ep7~T-d^2sb@36;h=Ob%KTY? zneNhe`-I$amns!$aXBYiF6SFPM#p(;UBSAbvcjK&!4+B+@$648^!{z>56!<)Rp-L- zv7ql+OhvA4;_K%j)`^=hjPhO?Y5GI9e6_bnx=7Dfw?5&PX>8H#j=wu)2+I>HL}qB& z;m;^g*0M8^GkgiM!UKy;-lm5l`_o}%I-qc?TkEDd#`M_uKM2!QvM0(|XwmFLD(7My z)J_3wWO9xm<(%&|{*_CN7?oHmnHiv;4%@wfllD$v_*q$_B=!9B8V=g8TJb1df5THd z)t#Xh82rDm=b)?vduIBG>7qZ8qtJqsNWq4>XM^j>%OlESYz(hoP(l@0i;S%&U)qH6 zkh021IR*l;x4<>hv@v>*q^c=7YCQQLl&<IU1*!1~`NomzmQSFV?12K=(4A`m%J%s= ztY`2Tb=u5(cs9&~VBffL7%@agAZXYuB$VY9>GT~DvuCC;rTx%%{BYD=QJRI*-J`5i z;nO36v|kiNAtdx{+OuVR-}-ZXgzRU1qK1c+toDhCzVjf1+ZFcX4k+e=OtS?oo>|?h z_<V6tVR+GR66@`1eLjq`?dTw&2A=+JH=<^7KdJB7SnmpPmff>$AcA@>%GqjU$TgQI z8r3!iZR}fCblzp)x;fO<Y<JedG^fn07Xg_(*A7&VEy}qSR2A89NP6FA`%_M~dcR}m zE*9N+T9cRW$-GnAegzNmc71;LU&O(i&*ML-`}>}Zxpa}^Jf&~{J^5^9)v=!p3)hB= z-FwQ-MJ~sg+&AA}dhC#|M%sGy1Vi)4dPzGsR?Xb9JAFe<cO9+jzeIts(d3UzpEGjk z?nDE3@%N@dbo%)64rJH1hknN1^xnVq<km+qGQ@~HxI81tPw=wt?FI{N=IQ!VEDX(j z7V;an6XVBgzMkMG--?Gy?{3v``xjS{zlp8S!bXbw>ll$85V!?yWwY(iVWo%<N{ftb zmy6TNI%wGh?tw2=SfNvlla_Q5{!&l;!S)+NK?-P_CSHxD8IN4<r|f9GTxT=$T2K1u zk9TZ~Y+5}&593N!fwmsh1%!Xy-%%d=^6nLogqYEM8L4e61LC2X7180$K~X5vRR9$k zGH&{p$3%}_Z$|jpZSkpjwe*>b9GRyHj$q4fI~=$_;l{U6l!viRTfzt=a9Ce2jZ+@- z?~>!+=MJ!c{4OR&{hd3A#rb^+Gb@-Ai(mT0YP<+Hr#?_VPMvwEa?D{fl0+YzZAb_J zSdHT6hkO@0J}vqCgsN9_>UYO&&IeCg;9407U_0hC(AaSXfk1nq&kzx%UHd(hAXCO3 zYSjHr?dvHIkBzd?X?-`oc22cg|9o?M(!KZjwRb|g4xOJ6<`cHsZSnEF!j8vR{l$wA zP5!zPAn0|^NxuAKqg9B|Zo3iFHB?p$o@)$d+dsqoR8EnEe@7%M*E4BY#K(kxSkwC& zj*v*`O0`mgBZ$RDIcyb%&ulICM6?S|?}Wf&Y$SU|`yfA2OmHEoW_|`pA~zFjzqJTT zKcNcT3eTcBdk~TjKG)5%G2Ut=9ld>v$n@Jp%2^$ZwVmT%Wkh{XD@{GweE17Z1qcwH zEBNq(%`XTssEl-KR=dBBKMhl)u_>O5rWs7N9P~kgexbUXlv4|9xV)Fimv?&&76+Xn zN6q)s#O*pLsc{zaq?`TqT3t5`EB{ZGoSiT{07rzkGM)kBGyf{h3IMmz)6+yOtO&-@ zMbf^K<U08>%+90+J_2jx47Q7ky%0G+;{_C)Nfk)G$xo;~IsY4vT~!F$9|7Qi{d6Bo zL|#uS>0<IItZa`PdB}l#sq*iO%R^6cC|qbbF2ll?psPQ7Z*_~yHX_|=d%b8j7JNL) zSCwr>FYS4#CzL4brTl=4-eAQ}Q4N)jKg7gv4Vrx1hAU+R_4?8fQFD60lNyn);z%hR zW1;!R@ya6BaI}{x=VIfdUI$>gauJWWVG5xD)^xUO*{_trTK3K?l7X|N8Tws2y3N{r zSoz<WJzaW?`=+v!g<^9qAwiP7km9RKj0_GEIi~V1hBK3J?DYKQrHhseurQ1--O~K4 z+TcJgu+^>Ga^JA<=a==zT5|KPcx)Sa57TZ;Ru<*{m_B)^<CuOd$)@OJR&Je;?0Bp2 zlr(?v*7ZUn_1aUOJ|33p+rx)WOKPxQ=J8u2PN)v45wWLj%N8M)QWmr3JMw}F?uIMp zyJ&Cgz|=M5rJqKYDS*S1S1}7v>lIOt@Dhc=X@P@z^|5s#X^r=reWmoCAH033ikF%0 zym#8dBL-rrP8&PD&sM5xI#GcmcV^DRh{cKE@X3qVljs5%p!xIWC%2V=!q&R!$vI*% z<N%C4sp~mr3C51=U|D24ftO>n7vzd|Pj2jdBU>7niJZ1z&`>;QfY+>1fv!v=7d|$} zucX+Dc?_qofl$UKCfn&+6pxrw^QYC74$67Ep?@!|^j~s0j-?Td8ZYjDx;D8eQKJJ{ zM7Z7H?m4Zbbc?%b(7@$IC(5&a%OsIa=rf9AhjrcoW3tJx;O*U{?Px~?|9vF2X%7tQ zHLnKjx%k>e38+p)tP{|vBvw)%>=`Z*UIc2lpgx>1*ckz(h1uJi3*&IzC^2BE{?Go& zW2h~(|A5G)L`mqtY{Zfi9;<51UbSz!zg6Y6dtpyl>h8F6mi^SK@9G!S<$bKy|H}Sd zm~dyFP-6X}OS<(h`|Sy}(^2d0%j;^TU+ZJpX!86{@Z)V7dcPX7%0B!WoBlP#<?eE= z`IEPp-f;I9haSO_i<4&0?T>67aM*j0b5y(R+O|@k^GWM_up8o)X|4$9ys=MExu{Rn zTkADxATPy*H#5Ay!%$=L=xg2hq@h)*>uAGDaQ^l^fKwnmvWtb1<(jFC&eAv<t!FDr zelH*7mw#raN$(%0IDUIehERZo?k6YS?ndqR{_b|ll%2w==1#r-^lSp>@o2QR2p)cg z5++$dFN-z@xz;qi9(4D3Er#O6DI6!|4y=@TwQbaAzDQJzdV|>V$tqQ`%Maai{nwXF z_FFDh8ephbkpye$AoT0dvH$ND5of0bzl^SBV%SDBS`eLomMw_5;;Eeo%kqQTMK!Br zeKHK*9sji18Id+d{$QxN0JAW1@B|jdLN8%*^EqVl153=pDnV+{@(NQ;;ufa0QXw;O zFC@&{-S&8beLt=-5Mb?W>+xk4tEQPtxN@3-6dZiRNfYyKu(l29Xm$(Wr1c63`U%oZ z`_U`UMih1$DMHn5_~gd*m})F0M}hs=0g>dZ*<7sk!a{yWT?$hbTR!nslu+gOKjOoK z8UGkT*>BwGS}PLgRl+_vQ>XMU<&oE>1G*3QHu>`$9Vs+i-BJ1cwHW=o_jRU6vkOb9 z(^8!p`+awpUp|(;p!WT>oOd6)qW1dC!#%cV)fb9->AwXxgw?rk3NX$6;o|UEM1j@J z@K&bEPbbcrqn^8q-~sy7NK$RM#X@mxM{dm3tGGnoq!Kx;lCHw!I_;?a0RO1YpQ3Kd zKON)7kFlda<_FVvrC8}U!-Kdli~ej49(jQcX#hQD6Dv({RFBAvUS&yr#`7VOo0q;S zphaH%Zpc9tpgUdwAqK{IFz?eVopp~L9R))$l|n$JWsJU2E(TT?eIO4Y<@m`U#E?kj z(KRJm=Ie0No7Un@GlhEK@6m{YELRcRdXc*O4{}l<O=UaqzaTZuNKU%u$)gD2YNC~N ztn@bl%dnc&uSC-)U95u@POKGun!hLZ?okXdNH#jINZCDFF;<JH*-TCyh4MYP6mF#F z)@WL}u;6v*V4%yH#`bfyj*m8c7MOf?<(Kf$EY6@4-&whjiO~cn*hpX#7hUl^kS6^; z(Xn2STvJp{MW`+EV30QNge*I89qkcm2y%3Srt~J4$>W~xNaO^Ph_-v7v|>1rrp${c z1SKriNraU?O_id0ne`(odcFDbi49CRG(vMTJjSNPTcr6TDl154s+Wz{;NpP)u519C zbPreRwk>+XB!iyr>vq|MdV2kw4->^DoLHNgZ~;rb*s$sqkx3<N*appJtzMV@zvRfN z>^4%|mf-ejzq1xqQu929=aZ;>yBCrHxcm(aH)-yFd{x7P+;q=uI4AiM2f%)uK$4L5 zRMEZt`Ey<m<xFL`)3=O@n0TjN_XsH8Cu=O_emngd>k5`eoXDiq-q=+`<g$QbAF!1x zG<zR1*-)-a)^9U@bJ&z0$Eh&{W87a5;t)3+joc0ORBx)8tQi7(3LwCA*+Ev=uOj%L zqaIj;f`^N+B#TInAhS|BE$|xUr%ohTg*;n=5O`;k`@;XfN3N{gBkqK1{g67*CK8v* zJjIm<TchoVzO~eN(N=I&W?@?~55vxdcMUt?x4Y{<Zu*D+3@(KjHts;C7Vo=a&^O)O zizoeJnWwh%I&jm2|M~%`%dn9CcmY^!RaYkZ?PHJ@@RVU@@#z>o6p;;9>z*@+yw`@k zwdMjlgYVC-he*$eE5(=iEcOKD7YWM2i_fio8r?Q={YX-^J4#qC;xl{&L*;lL02%L0 zUNMswDAL5dOakO7ViC-Wk`J5gd%bOgpat$4C1g|VLVJ0xzNAG8XKx?6Mztbj&!%iI zmLUs#J;MiAtnC)^SqPH0oo)5YW2M}@hS2aLEV@~!2<*WA38+&8od%@S8Ts<kqwdtK z=A?U`sICtw*qhs%q>?z}wk=`$nK93*5tq&#KSmz-J~qGjWFWy%!2j2y%<Gd&aVZ5{ ziTU43jPE7b@15w*ZrIKedT*3pf)pWUG(0<RbE0`dzji$D(qqTx8GlVaxI8XXxLv2H zEAsRPXc)TF9eLly%OB_Oa{585FWA|kJ)%grY`vI$gfnE!q@TWLiXY>H;*WVPXW`F% zHls6N$Voq528!D82xC)a@^H`Y@T(NVW8DsAkOK$-!&lsjp(;TBNrCK?^6vx<Dg;3S z)*r|>b+((%=wAMH2v6KOUBX~_vuE*7IzKtXejwaNzNfdP_rQyr2Ju%@9!NDGhKl?p zdVo7RvJ5RkeaOa`rQ8s-t*!r9>E>%A^oW(B^ayF{s+kcBBd^nI9eMOq3#RRXCGdZ? zU&Jw^riIr;MlF~B6)#=F3l2>1lECgTTyaOecR}9Ib0Jc!DezQC;N+lrW<oapX@XtP z!A(=*zXyKx@SL2^f;n&9Cec7RZgpb6$tb?Fp<S&?n|?y5vMQw~h=t3&7`MXQCmc%D zs<nagaXfpj6RJl(8B7Yo%)gs<B$1Q${k6A7?r(o4if0yNgIQnJoL_7vS$@abWM3qB z8_fs!#1Gruc)*NA3^~l2j!747vN1M@!CkZOhWEpg)~y$03}0V*>OC0UR&d*`W@HDG zc=gpEP1GB!FZT^Qu5rv#JFuVQWOX5X%HOZ4IeAjwolP>y>uqSp+{Yv@c1qqI-oMsg zwxIoWr$j~0=O=99T0i46<JXsSt3H|kRxq1ZSZs6elHg^fr7yVlZ4-9!+YU^b8eM5E zQQ{A@ipulpyznxsS9^gz$|QG6<h!$Y{lY6E_Jt1#e8X_+dHbI=pI;#yKm*NR(zXu3 zyuRi?PA5$vbHkc<+;C-v5zj%cv>zTD0FE#$dFARQ=Ha}4y(F`OWDpa<Ur~4CE3y`I zy%edH2<k6jj^3{xZc1p-Iq%nkEwC4OkH1{NKE3J_!tCK!oWUj6td_=wQ#}dk02v1s zI`0x~12i8!<(l09>D4dFk_7~lp)=tm%lL+(ejWeGe!#ZRd-0T}yZ~)ENCq}a{h|$+ zh0JSf!_2<y`2>LY_Bu^A`lQZhjM*y&G`P@<zk^i2-&nl|<B#V9)<oQ?^VkThBrs3S zLbc{m&;li6cnYqjGlxe`o^>^?B^9jW(|Gc|QX6xLptM6`Mb2lKFoRnx*h2L(aYeG9 z>xI-uaOt`o`FoUSYg*?~KF#X&JBCf1y`L@O6tI#f<z#I<>rSHZ1Z08EbB|eZc$uL4 z8DVP^M0kh-iY%r=#MY>4sgY$?Z6y|gd;*e~uW~lMk3?%mc)U{ZUqd2%21LOINhZZ? zM50XJ93X0rc@u3>m6qe|JBrsqiWlkFwT|Xi(ITKt$f|*1pSXDob*V97NpZ!FXG5Jy z3<8<vHd5GJcI{+Rv~}YqFHb6p5flxWa!R&hIrlvyuSWmD7*!CLk%$96uODMCH}#!# z+4LF{^vXa)CFj=eiVk9B_zGlg?f2`)+j(ClYW4(mDbx+uS<xrhWQq?gXR*+2E~y~l z=}m2`1q<Wb9x!p!1tnSN>DkSFH_Xanil?AYt}B!wmjZ=q79dW{kJLqd2FUBtG%MMu z{xpUFn?0yzlW;2g!sDO3-4kHB988k}BAVWqO6FN}AOX1U>-3+avM0E@bgM^NQ|we6 zVE8b*hCO@x)34yE#Uw(OxSv{ldlXX+IjRN+opS;nLPh?uoz(a`e|3Vc`cFqQScvR& zwg3G6ui&^;Z&cqxZgqaiOPAi*uS%AxLn(6ii$39ZPZKklIE-p?MDf)2>ILJ5LSUZ0 zszLL&(;~I*iZ@j*Y?l}Pr=GN?&P4@6?;zJV+k;(5u@M=;uvc-u_I_j9v6`LHw=JiZ zl{{jpbyL5S$>V;*s`QD4*d*ZZ|0G-}VxhC-VU?SOBH!$ZH}x4iNQO(B2%c{wx;Vq4 zWbS;lXHqZ+S?1y!=Bf7yQiSDY$=yF0@PMZOKvP(9H6FPG^NAQYT^KNBqb#mqYRM@p z8ZzA1xkrC(A>vlG4G$loYH13PZwb$0L192`F<hF-FUdr<rfLK7R@rC+vg>9(S1z|4 zt6%c`7afjXW&D`DcCy)nVWO`<DxPEYh;DhDRh`QgFKQB{SGm<xIE~F?CZN3i-j%yL z9hrrl$OF^fKA_H~sC}Sf>`Uc4N9Jn^!m*c>ZrU9`+u^%L*49Qjr9`^=W9;n%)uZoH z<kYQ`0_N6!n|UR3g45R6Un1y~jmo?UPaEmVu{6Wu%4;hmndv)OrE#5-GqhT~lE1D< zg=wZPzy#jZ=OGWD+xEXLvA>X!Qf%!ZR?5286DO*)VaM6*3vI}s6r+#O`dp`QulThg zTzrL#=Pc4j_~ZnP1TVmMPx=&<4!2bnl+YWwDzEvWhPgzVG9c6)uOu+hGp}M`m%A7! z30fB_&!Skoiovg=u~B%h$Q4z@NzXl70u}s_A{47^VhNe?R&^ixueGx<YW_VUR7Wrn zYrHs!wk8Ju%)N~`wfryYTzC%Y<Zl*Qpem3+fq_U<Qk50J#MqCOVjc-KtC>@B-Jfm0 z$wNC{y7sm6F>j^L=-0;G+KFv@mog3y92!!)2+NP_#AuIh41wZAFjmA9ALZtqKV%r$ zHIEHoytsy-czz%#;V*$nFm+2LC}#Kh$xbaVp|n8w$sY!a*Y$MNvf8<_Ru^Q1j@M7_ z+Q)P)Bw?R~qy;I4XTqYSvc2byNA0^CK~gP_U-q4}Ysp`AwmElnv+)oU$>y8MM#`&? zO>(+2Tzfd0xI-0to<$s=W-4rnx3M#Qn4>q-Z2ZKgJo%;J-9qU-k<C^@HcnzQ3D3f^ z$I_p&mCPuV?y~9{wNL6gV6$vy<;-l-tUg}V_Aj@l$dl3C2m>>{LBRK$d<{}LeGeX= zf<1XH_X%J8RMm#eK1mru3_Rv<D&*FCV|Zh#((C~tIcB^K01DpIl}%xmItOPRng*fl zJ}hP+bFfVR&?liyFTU{K3+-Kmp^c5O+)~qUW9NUrr4-6PH~uBjJo%cnvHjxV&u>Gz zQw7xKBIg8X(cAw8ZgvR26Q2$<%U#O9)brG2f1GS$FAa2ewEcx&Y_)IM+%wXYo)}A@ zbl3Ey6&ZmHS&CT|)ySDxpdsW}2K14<%j?PcS`f7czkad}SI~dh@hB>}%ai?=9fimX zTF@|tx2Pk7WbBLpErSZHKASn{z^gw$X7&(U4Sr8I6h`BGm6VdFT8)xe&2197YlWWz zaZQ%)1q_0DU)!3D+)@k9XKdXd(MuTpHOLIMv;3r5`ODOvxlnKSzN)^Ccf7%vBb<>q zBTJpZv0`nW(P-;gqK0${0LNr^kN$XG{2gJX9X3TO#h*x)y-x{>3KO_7*mAU)+h$G= zo089k{_qHq+WBxSC;J7%>N#KHVoQXaH!Gjlb@Tm+5h3nZT#ZIPnfWctQTxBCn?T^3 z`NWnK`~F4Tbz7{c?STdL$s|UsyYU1Td6r~w7reHsd;zL*;xyO{LcK+-G$)0AJLdmK z)0IF&xxfGKJ7ZrfOO{e1Yh;-SVM-`M5sD;b88j3_S)0nzCP@fk5VBK)Y^jt=ma&(m zQev`XmnHf??(h81x#ymHIcdD_cX^)A^H~Uy0o=scF+N1ddV^7A6u-cWr{$GrsYaij zzK6^(W)8vSzMy*`B(!?gf<BXe_6@k`K=c>t<-YY{%FX-C;_DhAT0p~=1gTL9N-~}t z@<rNu&w(?%S*Z6*J8*h$o<j8Q{Qq)CsvL?TSlWhUI}4X%;}S4~A@_Rzef-*6z*QFx zM{Q3yo3tB8$;$=l0dR`m^xfcilQI?r#!Lfm%{NRBgITB^(eeCx39^}(hG#%F0xRQ- zu>NM6))N6N(DxWv-RP=)2a2uzlx&bCd0X_gs|9$<saImj-f*H+08OxOC$A=^{q&u4 z<$K`3(-RGi1u|f4S9_Nbw|CEK-^oF#^*GeZzeRXL8hGCtg0E_2_Lp~{fw(lW)g2a& z=5|QfYpQ<db{_mBI<1mFNkSE)vprln|N2v|Cwq@*i@#5?`|EzcTI2P>NC@n);8)pt z7z`3AT_c|gs<HuPmzRN#@g^vl#q}<G05Qn^P*0EX4305ph>?EZ*z3?1-KEDt6S}^M z+CA7wg?L(Xwh%62N3sy{BP|--;{taRqt}sh?FDua`hNDwgfaW(j|rORVF(C*AwqaM zEAx=~WqD;lWfGJ?fk~@{oXEtX{Jwi{;M&RUfl+qtme8mcNKu|Shf&CSS(?nt@ROsh zkBq<v(q8Bd%Qp>~I?+3M)OK9(g@#fqapODpxtaLQgAQLY@AI7!`@2+kOLT0F;fp<G zXP_VS%fY~YF|l~tQnK>JuA2R(;`be9R#FsP^?t-=JiPxde_!5;Fr+X53*HW()q3Bz zYk0=#);x1t_ajGjE{zbxv`xId-Q~21&w>JvkvYv+XFr=lD2c#sL%&Th<IDSx39EK< zM7S{K(8@a)S8+2A#^<M){BdcmfP7O)5Yq3D2MK8cP+#?nigcOOFF3-Vc~%A}^>*h} z!#IzdW`SpJw1eeBo~wnJd5O*_NTFQ(`y8dPEQt_{cSXWzqVC!{SXKlmYiwIJG?{6z zcF4i4*zz-5_l-0^w=Cs1?}~Fa>RO;GBc~$R)@5FpU4qopM`;T{a*i=ZTcb?tvQzCz zkF~WIlLwPEE=<UgQnVu{%<QZ)_=FCV&u;&Kx0+Fc;ncDX)_a(bx^R;(rUOI({3~%8 zro?~E#%)!4fQtZwwM(_b$QibgcipQ0xW;rQpmxz<9@W3X6$TgBtD|jJT{>+e%ol)W zaNM7(WF?Vdc<aS*gS<>T>Nt?kk3ue^mne{-?+QW}oEiQeHWU~(o9S0JY=(ZKUO`v6 zB$917(E8$yAs6{H7l53653c#`+G#95db_iWnHak1`ES9uWD&EO!+j)ox65a=gAJ=) zy$erBmA*<d6L6yy*^B?`ameuhLBIUl<&9!x%a4hB754Xj26+;M{(0)O<=AK{k!>~n zriaL<uXg_&sCm_3>|vfi=5}YTF+E@<zQ2W!ZmL7SsNk{E{4YtYeeKZ;vQSB14jz&x zYPXQ1&wy8B!d1z7sHtvWVr3pL*WX9<9Q=OCF^jYhF-lnh=@|gvr`Oh6lKJeujjS;A zD<E2XeF}_<yM7E@%-jhIHt7Fa4(IV5pM2xx>)N>$3@tt5=}UkYwBLT<z3;E5;?H9} zJ`en?ZYccDeXguT%<qef&<MJjQ|~<@dF%>!(5%G1dr3aGa%w%_VqF;y1+ERIed`<S zy#vDL?Eth*Ec#;F{^xy80a#!5-kXIq84O6=70pA{C@@6p4LC^JUV!oBZzdQ<@`I$J zSzQtQh?ixER~7<+y;k>316v;Z@c;$VdCr)GCIaZVZdf@c=ZcbkRS}epL7Zib9Ly9j ziidEHT$XkQC;-LA^mgwJfwYB?#68g>M8}OK`H+Jr16B}M_G0wYN6^--N|OluwJabu zcZWWBS-N)L-b{R#6O0)&o2K9?bNG3-Qnk!mM{Pq`sIEyD#-0D}5C*cQqUmHz%jr?u z*{ZMe{gt6(F|#2Vs&!V6FAUxo|J65mT<7YlUxH;=)S=KHRvcCzEA};?UWy+P*xT#E zrX}f4emN%{@#u$6riRftr~%nuO9bAu)BI#qGuSt#V$W~z>t^)I>It`P(MP~ZkN+H4 z`U=LrWA`rS=1c`?lIH}(IqCd+i5w)KuR^8~w8IcZIy(YqREk`8ITtXk^r_vAvGYf~ zz>dx|Izk`PL|$zC*HI645a#1?yYg{3Myc(#;3*848#tO2XYda>LG@)3qUQzznz&B0 zPJNdHov?ge8=NYeSXS(=l~&xcz_oc);@C;v&?R~#X9Z`BWk`J=|7B>mIS5Od2<qO6 z4+>-c&z;TsHozW9Oc*MLgSP8~y_jDwgOw3|xijI715k;QIT#ATU@P-w93t{6@Q2Nz zoG5*UdjE|0Q@z|S>cRVe<pM`ciy_Ds%XUMD*T)ZnVy`~1yRYcE4T|29m-9;<7W(t~ zlLk|IOZ&2PJXsiiy9Oa?X__D!?6VncmU937T6NpzHrV{Nw`=YvSoDw&dYk%wP$c%; zyqYW7veBCARsHlsUX9tlU%{gn`aA!2-|n$`Z|5hNsb1d&diftO!j5e*<pzgrZLOLU zKRANesrz-mq&de0fQYmMj9-CKAzFOj#gXrZ`F1qXVQ0k>y*uQW>9ik@QMb=5A46Ix zQsfG(+erx^zMcg?EeA1nrU#>y8!!Yg5Q?TkQ&oP_8)&NX{sLFFV)XKR5*%5^CISLS zU;+p%$Fv#~`eD6N&}tOFmq!i`Yev*mefJ`;ZsngkfgIR%00mtE-CM6Vzz`L{2d-xO z2Hx{mvSTL+0GVZm3;b;W`MsRwXJu+ctH;<hV7Pt$Fi0JR&3>!@!#9`Hj}P^jdz2o$ zMVV14UNkZ?FtV(Tx6!icyP5K5v_R(Wjjaof1EtpTTozbq1muB1kf9zboJYC5pk_@t zVNrbZbtxdYg0Hj+wJ_-SSl)ks)=vu5#VC&;Mk+~v2rMtR>YYs*j%;=6Vxi65*x|n& zqwhEipVjVEx=oq<=?#}o0<cHt9evaBrg@J7ee4-K_m1rrP+RtNT0^&OE%fg+T1Cbo zZGG#tto|j8c||<O3I#r{%|VpvbAY;4>qC4Jxdv8^g{vl1MIp0b0G{(516ubnN6^ep zz%^pfrMEOB0GRF8U2~Auy6t2VID3DFCg>zMOl(;Jg*2YFiP+O(k0Z4{IbUNv4h@j) z>@g9)_i^~S;9b_YoEw8=)HxN}vqBF52jD*F;on)IcTkk5T)b{j8e$1t*V?bFR+;$# zH1b0I&kk_g-5no{H>t8UV!bIzZ+|Y`c)>^Q-U)-fO2GkJZBwy1=pNq%@z8QTHxaqX zkc$9Aj`khU8;cqL6-3%yTmQhCEe{=lAvbq$X}+J)HGD;D?Gu@Y$WCDz_I}UMbC`~d z^G3_vYPl@ste2DbVsDz@PcoiQz;mrIOAO!p=hlt~+<%lz582q`Tf|?ETlcx93e0}z zQQ<#k_<bSg%(Tv3UZ2-}rML;JzQA`&cT{JDY`^}|H+*9PKH0&7tqNKGsWy9lYpl3u z9Fcx{m48R}L65Y8&hw0?d%u2C-gju@E9=?eMqrD+-2{f7^I#BRMW_SnNt7Hra}sEI zlNVKh+KMPOEtwY;)DCp%5T6N3jva<EUCs`S&K3E5S+DG^{%=$mjTm%EztH23W7?Zm zZ%#!(AVMuh>`|TZkcDyn3pq1QAo15&=Xum_Dt0*oor*KKgz3ptnIABLY$Y6NC)Wqy z-ko09&aC!n4{urTmsj`Uh%3RfkgP{wjPwSH&@$tbCO=_RbKS%~ERf*!9T6)wN-W^! zq_;HgAlCf}@c0VU7MATgh~X~Mwu3mv^tjUrh1ThJJBT0sFS@no6z335EXMY9fa{3% zU*<d^V}!13vjx)K6bTh6Rfl)8Qj1J?L4`F7G{;}BWb^=3(*Wz=<?&!Kn#LX+X%Emd zjGnhYj9FAPa4@QXRqDDW3Qq_*5ORCB{vm!9RvE9&X_BM#({rJMf5M|B{azgphjGuk zh5mCq@g0CXA*W_xxFPKEGi|YFB`tU>w<g9=NI^_~{l7<r3%uRl3$@8w;a=owuVQYj ztdmW%<qDOly<B3?{H;*P<z&+hr*LV_c!P@F+LoP{8Se7Ef>;Cl>a@<E2MMKuHUzEy zkiGueU0z$rWajTv#;Q3Ns}H|e^whbOr+j1NoX=<8h0o6%t4qjx^c>4_v;B8$ZdD5r z`mBxXRgBT_GH{r_In+~o%ZZ!uD2$s1lE9o?4Ja$e>T@(!F17;=FcLyl`2(RBoOtx6 zEO*Kq3*7YLbJ~qb9LewvIQyi0wo3L7UAT)8UX|HVyZ5@tm}3mbrAFJM=SFwEK8qMF z&B`qYmzT{GZuATWiTs1+<&LZ4%Mu(t{=}5V<L`+O*9VY$2rD1I_fs6>RKK0A4K@37 zqKELnW+56-;5h`2V|JH}!BY6E5G|1#2qBHL8^QM}sFe1{@z~xL?a_}tMF8<HS4t5p zFbjYYJ4Y&6;jj+kA5np+?^^R1up=duV4Or7k&FPg{l8t{iC6b05X_Q74+g=iiuQw? zXC`QN>O5fx<F79d4igsJBrt;5m~N{U@!!v}5B%WozE!u=zb+-!`1a|%wo`5`;F?h^ zGGAZY(+T_#suxyuH{E>q(_GL#R7u8MoxHL`p&MU7AL@_*V?_aYegaw;(>nwb9**7* z9jpSbZ;k>GFo55+bPx4T|NiGT>G04+>(+U*BI0+Bunidjdng9i=d05PUz4u}2D+~O zD;Cr2e&k~68F1OqwJY>dCPlH&rdmN!U2TWj>s4<4OAi^}-m}r%=VLhP!_-k!4s2Mw zC+P$aj%4YsZK6nRh&W}}GjGIsCd3r+>cpd@7|pz)Ta}j(;qcEfc3>|=Lo68sK+h~z zMi&<wE&r1u_%b;#yC!@JwDpoV`?B3VfiayKiinr3`TpO7VY>H9_j=)&S7B}&$m;Bd zQYwWl5c3XNyMPKW&6yxNd9bk|a3jp{&zK_eSIFz`Q1hsdcoG;N$XDFOw+3P=k5j^* z5Z$#}mz`!+ro%!bizl|^;HhhE(V+*CgYO$I;xqQ|vqDr2*5@)}hOKjzY}5vE9P@q^ z9Y^|m3L_8{aik|ZpI;o6<OqrQL;92F?9XWg9su3F*~*2-dU%PxwXc${PlN}M_dL6h zaUP>9_bX79ox;5Ej3mMrMB(HWZGQiH#D$e6S;$VQp7@1h^o#{M6pzirbi%uPMh>ke zg!l8)Y%fZ$lkj^EnB$q{3oT%$b9?R>TJ4i+j~}Y$hKSm#;#oPWjg$w1=V;HLnT(S1 znq;UAvJL+1DC&#Xv?91^n2ByUiIL<Oc&g0xmZ{rHR4>hMveXu08Yj)lrD?+_QSUd1 zz$bzzY#TjtDcrQ_$8@Bf|DNf~O(WN5;z-X}0A{>)pU&xYUXJQ|>JTeq?tb@6)*4S% zhHF?S|5#X9@8j62V&SyR6;Z0|oLd;R^8)zUanY3C?)%|=ujspgU5|>HUlJgU!&Zpb zf*c&aJ=z!}?5etiBNm@{7OICQmCxWYx+>|x77^B3LyYi8{+VsX%2mof_tnfxh_1@4 z*_~o_zZOhnRpFObgbsyd&a3TtLF7E1LKmHtQ>V5B23dod_EZyaNE^*~Z9bmw2%9hB z`Pqp(*{q$MlEb_6&9AtxYX_vQO;+Re2M-_5{8mA3pF9s2aqxjM^`XMD)-xWR<h?KM z&@-(Y(|>s%+?(Mea=t_SX?kC{{}+(DJld<)OylBz)^z#a<9h8gGX~}xw7D;6TDI7b zXUmo)%--^x%)a#a*iE&wdoO!&21jAEG0`{8HV*q&c2Hd-!-i>2s?2Y9YR!Nza&63K zLX;;7iFv4-SR0v{S#Z%zJ!Zf?`79FKkfs>(aFT~uFK&kso?aB84hz!2E>jJW)JP%4 zh3>bvY1YPEK<pW#qb!VjnMmxlT7KNsk&CRf=?QQ^3;6cQ2V;);)fV;42O6SfO>rN7 zYRgmsKX6T)^jL_=n$0OFsbeB<fe$0$MMn@NsUO~jb$kcX#&fsuRQd5~vjB)*1l^S9 zFZ^|zxf*_2Sw$=AJ+lnjd4e+=gWUO=g`wHz`!qrbF#am}vfl1|YR|p^_l$kpF~XfD zja#~fxfs#bY4N=XRm1k;vVrJkK&*r^hACsWGMJwc!DteGRPKlnvBPjHvg3S?BiR?c zjxp&L!6&ttQMWQ9xoBMhq86fer9+I4@USvGo{q*K##EdPRYsnTDiZ;TEe+DUG*9Hb zAM)iRR>c3~hPbJIh^ezFum!(a*&!#odf!nI^4TgD3o&*X1O2hr*LCGJQXki){^oG+ z37ctC`FKhx_#;olOvTr7J!-)be~GQNv8dcvo8R-Q!^fH@Pw3OrzK*slN>}ppj(zbK z|CHy~lU2NP^8IVK¨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û<ip((B5aJ=OvTX-E;8QaCK)9hJ)<BX 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 X5;%klD^I&Xz#n}bW9{-APS5`jZ3@Zz literal 0 HcmV?d00001 From cf2ce410a67980795734c3c1e92184db8e85cbb2 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 09:13:53 +0200 Subject: [PATCH 041/266] check setup permission on config reload --- .../minigamesapi/commands/CommandHandler.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index f587ca28..dcc7fb0f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -220,6 +220,11 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_LIST)) } else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) { + if (!sender.hasPermission(uber_permission + ".setup")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } plugin.reloadConfig(); pli.getMessagesConfig().reloadConfig(); pli.getArenasConfig().reloadConfig(); From fe169e5d7bb59eab5339ae65b72ca6951903371d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 09:48:07 +0200 Subject: [PATCH 042/266] permission fixes and removed some debug code from list output --- .../minigamesapi/CommandStrings.java | 3 ++ .../minigamesapi/commands/CommandHandler.java | 28 +++++++++++++------ changelog.md | 4 +++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java index 04c7752c..35b1228b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java @@ -76,6 +76,7 @@ public interface CommandStrings /** * Command action: "/minigame <save> ... */ + @Deprecated String GAME_SAVE = "save"; //$NON-NLS-1$ /** @@ -96,6 +97,7 @@ public interface CommandStrings /** * Command action: "/minigame <setvip> ... */ + @Deprecated String GAME_SET_VIP = "setvip"; //$NON-NLS-1$ /** @@ -191,6 +193,7 @@ public interface CommandStrings /** * Command action: "/minigame <top> ... */ + @Deprecated String GAME_TOP = "top"; //$NON-NLS-1$ /** diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index dcc7fb0f..1eddee32 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -208,19 +208,12 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_LIST)) sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Arenas" + ChatColor.DARK_GRAY + " -------"); for (final Arena a : pli.getArenas()) { - if (args.length > 1) - { - sender.sendMessage(ChatColor.GREEN + a.getInternalName() + "[" + a.getClass().getSimpleName().toString() + "]"); - } - else - { - sender.sendMessage(ChatColor.GREEN + a.getInternalName()); - } + sender.sendMessage(ChatColor.GREEN + a.getInternalName()); } } else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) { - if (!sender.hasPermission(uber_permission + ".setup")) + if (!sender.hasPermission(uber_permission + ".reload")) { sender.sendMessage(pli.getMessagesConfig().no_perm); return true; @@ -647,6 +640,11 @@ public boolean joinArena(final PluginInstance pli, final CommandSender sender, f String playername = p.getName(); if (args.length > 2) { + if (!sender.hasPermission(uber_permission + ".adminjoin")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } if (Validator.isPlayerOnline(args[2])) { playername = args[2]; @@ -1046,11 +1044,17 @@ public boolean setArenaDisplayName(final PluginInstance pli, final CommandSender public boolean spectate(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) { + // TODO args > 1 and else leave current player arena if (args.length > 0) { String playername = p.getName(); if (args.length > 2) { + if (!sender.hasPermission(uber_permission + ".adminspectate")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } if (Validator.isPlayerOnline(args[2])) { playername = args[2]; @@ -1078,6 +1082,7 @@ public boolean spectate(final PluginInstance pli, final CommandSender sender, fi sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); } } + // TODO else error } else { @@ -1099,6 +1104,11 @@ public boolean setKit(final PluginInstance pli, final CommandSender sender, fina } if (args.length > 2) { + if (!sender.hasPermission(uber_permission + ".adminkit")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + return true; + } p = Bukkit.getPlayer(args[2]); if (p == null) { diff --git a/changelog.md b/changelog.md index 3286cff7..496ccdc1 100644 --- a/changelog.md +++ b/changelog.md @@ -19,6 +19,10 @@ * Upgraded dependencies to vault and crackshot * Fix for some race conditions while stopping arena * Fixed some UTF-8 encoding +* sub command "join" with given player name now is protected by permission "adminjoin" +* sub command "reload" is now protected by permission "reload" +* sub command "setkit" with given player name is now protected by permission "adminkit" +* sub command "spectate" with given player name is now protected by permission "adminspectate" ###### Minigames-API-Bungee * removed everything (now part of Minigames-API) From 66213da680f75826e7a9aa1b2128628c0e1a8e88 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 11:38:53 +0200 Subject: [PATCH 043/266] temporary remove setskull command --- .../comze_instancelabs/minigamesapi/commands/CommandHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 1eddee32..454136ce 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -866,6 +866,7 @@ public boolean setSkull(final PluginInstance pli, final CommandSender sender, fi return true; } sender.sendMessage(ChatColor.GRAY + "This feature is not implemented yet."); + if (true) return true; // TODO will be reimplemented in future versions, work is under progress if (args.length > 1) { if (Util.isNumeric(args[1])) From f3a3cb38a9abba8bd887c563ea1e2e5aecda96c9 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 11:39:43 +0200 Subject: [PATCH 044/266] map reset fix; possibility to override the entites that get removed on map reset (bedwars does not want to remove npcs) --- .../minigamesapi/Arena.java | 28 +++++++++++++++++-- changelog.md | 9 ++++++ 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 7caab042..4cefa056 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.UUID; import java.util.logging.Level; @@ -1825,6 +1826,29 @@ public synchronized void stopArena() this.stop(); } + /** + * Returns the possible entites to be removed for reset + * @param player + * @return entites + */ + protected List<Entity> getResetEntities(String player) + { + return Bukkit.getPlayer(player).getNearbyEntities(50, 50, 50); + } + + /** + * Checks if given entity is removed for resetting the map + * @param player + * @param e + * @return {@code true} for removing the entity + */ + protected boolean isEntityReset(String player, Entity e) + { + return e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.ENDERMAN || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE + || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER + || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.ARROW; + } + /** * Stops the arena and teleports all players to the mainlobby */ @@ -1880,9 +1904,7 @@ protected void stop() { for (final Entity e : Bukkit.getPlayer(p_).getNearbyEntities(50, 50, 50)) { - if (e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.ENDERMAN || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE - || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER - || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.ARROW) + if (this.isEntityReset(p_, e)) { e.remove(); } diff --git a/changelog.md b/changelog.md index 496ccdc1..bf56f6aa 100644 --- a/changelog.md +++ b/changelog.md @@ -23,7 +23,16 @@ * sub command "reload" is now protected by permission "reload" * sub command "setkit" with given player name is now protected by permission "adminkit" * sub command "spectate" with given player name is now protected by permission "adminspectate" +* sub command "setskull" deactivated. Will be reimplemented later on (https://github.com/MysticCity/MinigamesAPI/issues/59) ###### Minigames-API-Bungee * removed everything (now part of Minigames-API) +###### Snake +* wool is back again (see wiki) +* fixed problems with sheeps yaw +* fixed problems with "nervous" sheeps +* added tickCount (see wiki) + +###### BedWars +* do never remove NPCs on map reset From cace5b73acce7ceb350cc139b6f1b32eaf0efb6a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 12:00:59 +0200 Subject: [PATCH 045/266] fixes https://github.com/MysticCity/MinigamesAPI/issues/57 --- .../com/comze_instancelabs/minigamesapi/Classes.java | 11 ++++++++--- changelog.md | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java index bccda11e..0d1f0c5e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java @@ -316,9 +316,14 @@ public void setClass(String iname, final String player, final boolean money) } if (continue_) { - this.pli.setPClass(player, this.getClassByInternalname(internalname)); - Bukkit.getPlayer(player) - .sendMessage(this.pli.getMessagesConfig().set_kit.replaceAll("<kit>", ChatColor.translateAlternateColorCodes('&', this.getClassByInternalname(internalname).getName()))); + final AClass classByInternalname = this.getClassByInternalname(internalname); + this.pli.setPClass(player, classByInternalname); + if (classByInternalname != null) + { + final String set_kit_msg = this.pli.getMessagesConfig().set_kit; + Bukkit.getPlayer(player) + .sendMessage(set_kit_msg.replaceAll("<kit>", ChatColor.translateAlternateColorCodes('&', classByInternalname.getName()))); + } } } diff --git a/changelog.md b/changelog.md index bf56f6aa..736ba1e3 100644 --- a/changelog.md +++ b/changelog.md @@ -24,6 +24,7 @@ * sub command "setkit" with given player name is now protected by permission "adminkit" * sub command "spectate" with given player name is now protected by permission "adminspectate" * sub command "setskull" deactivated. Will be reimplemented later on (https://github.com/MysticCity/MinigamesAPI/issues/59) +* NPE fix (https://github.com/MysticCity/MinigamesAPI/issues/57) ###### Minigames-API-Bungee * removed everything (now part of Minigames-API) @@ -36,3 +37,5 @@ ###### BedWars * do never remove NPCs on map reset +* removed maxuses of trades/ set to 999999 because of some bugs (see https://github.com/MysticCity/MinigamesAPI/issues/61) + From 741e0c75724c019186cbafd70ea31c68cbd7ca07 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 13:01:31 +0200 Subject: [PATCH 046/266] do not remove bedwars villagers upon leave --- .../minigamesapi/Arena.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 4cefa056..ac5aa71a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -1218,11 +1218,9 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) } } - for (final Entity e : p.getNearbyEntities(50D, 50D, 50D)) + for (final Entity e : this.getResetEntitiesOnPlayerLeave(playername)) { - if (e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER - || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.PIG_ZOMBIE - || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.BOAT || e.getType() == EntityType.HORSE || e.getType() == EntityType.ARROW) + if (this.isEntityResetOnPlayerLeave(playername, e)) { e.remove(); } @@ -1826,6 +1824,27 @@ public synchronized void stopArena() this.stop(); } + /** + * Returns the possible entites to be removed for reset + * @param player + * @return entites + */ + protected List<Entity> getResetEntitiesOnPlayerLeave(String player) + { + return this.getResetEntities(player); + } + + /** + * Checks if given entity is removed for resetting the map + * @param player + * @param e + * @return {@code true} for removing the entity + */ + protected boolean isEntityResetOnPlayerLeave(String player, Entity e) + { + return this.isEntityReset(player, e); + } + /** * Returns the possible entites to be removed for reset * @param player From 0327e425e8fa41bc328723f54eed402b8548169f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 13:02:16 +0200 Subject: [PATCH 047/266] fixes https://github.com/MysticCity/MinigamesAPI/issues/37 --- .../minigamesapi/util/Util.java | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 61a2fd74..7669f0b3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -18,7 +18,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; -import java.io.PrintWriter; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -29,6 +30,7 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.Chunk; import org.bukkit.Color; import org.bukkit.FireworkEffect; import org.bukkit.FireworkEffect.Type; @@ -74,7 +76,6 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; import com.comze_instancelabs.minigamesapi.config.ArenasConfig; -import com.comze_instancelabs.minigamesapi.config.MessagesConfig; public class Util { @@ -119,7 +120,39 @@ public static void teleportPlayerFixed(final Player p, final Location l) p.teleport(l, TeleportCause.PLUGIN); p.setFallDistance(-1F); p.setVelocity(new Vector(0D, 0D, 0D)); - l.getWorld().refreshChunk(l.getChunk().getX(), l.getChunk().getZ()); + + final Chunk chunk = l.getChunk(); + try + { + final Method getChunkHandle = chunk.getClass().getMethod("getHandle"); + final Method getPlayerHandle = p.getClass().getMethod("getHandle"); + final Object handle = getPlayerHandle.invoke(p); + final Field playerConnection = handle.getClass().getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + final Class<?> chunkClazz = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Chunk"); + final Object packet; + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_9_R2)) + { + final Constructor<?> constr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutMapChunk").getConstructor(chunkClazz, int.class); + packet = constr.newInstance(getChunkHandle.invoke(chunk), 20); + } + else + { + final Constructor<?> constr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutMapChunk").getConstructor(chunkClazz, boolean.class, int.class); + packet = constr.newInstance(getChunkHandle.invoke(chunk), true, 20); + } + sendPacket.invoke(playerConnection.get(handle), packet); + + // ((CraftPlayer)p).getHandle().playerConnection.sendPacket(new PacketPlayOutMapChunk(((CraftChunk)chunk).getHandle(), true, 65535)); + chunk.unload(true); + chunk.load(); + } + catch (Exception ex) + { + // TODO logging + ex.printStackTrace(); + } } else { From ac8cd5d229fdbee4d94f241bd2638a244f491d88 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 31 Jul 2016 20:29:17 +0200 Subject: [PATCH 048/266] smart reset for block state (from black change events) and smart reset debug --- .../minigamesapi/SmartReset.java | 71 +++++++++++++++++-- .../minigamesapi/util/SmartArenaBlock.java | 52 +++++++++++++- changelog.md | 2 + 3 files changed, 118 insertions(+), 7 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 2e144c92..164d6526 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -31,6 +31,7 @@ import org.bukkit.Material; import org.bukkit.SkullType; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; import org.bukkit.block.BrewingStand; import org.bukkit.block.Chest; import org.bukkit.block.Dispenser; @@ -72,29 +73,60 @@ public SmartArenaBlock addChanged(final Block b) { if (!this.changed.containsKey(b.getLocation())) { + if (MinigamesAPI.debug) + { + System.out.println("(1) adding changed block for location " + b.getLocation()); + } final SmartArenaBlock sablock = new SmartArenaBlock(b, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.put(b.getLocation(), sablock); return sablock; } return null; } + + /** + * @param b + * @param blockReplacedState + */ + public SmartArenaBlock addChanged(Block b, BlockState blockReplacedState) + { + if (!this.changed.containsKey(b.getLocation())) + { + if (MinigamesAPI.debug) + { + System.out.println("(1.1) adding changed block for location " + b.getLocation()); + } + final SmartArenaBlock sablock = new SmartArenaBlock(blockReplacedState, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); + this.changed.put(b.getLocation(), sablock); + return sablock; + } + return null; + } - public SmartArenaBlock addChanged(final Block b, final boolean c) + public SmartArenaBlock addChanged(final Block b, final boolean isChest) { if (!this.changed.containsKey(b.getLocation())) { - final SmartArenaBlock sablock = new SmartArenaBlock(b, c, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); + if (MinigamesAPI.debug) + { + System.out.println("(2) adding changed block for location " + b.getLocation()); + } + final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.put(b.getLocation(), sablock); return sablock; } return null; } - public SmartArenaBlock addChanged(final Block b, final boolean c, final ChangeCause cause) + public SmartArenaBlock addChanged(final Block b, final boolean isChest, final ChangeCause cause) { if (!this.changed.containsKey(b.getLocation())) { - final SmartArenaBlock sablock = new SmartArenaBlock(b, c, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); + if (MinigamesAPI.debug) + { + System.out.println("(3) adding changed block for location " + b.getLocation()); + } + final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.put(b.getLocation(), sablock); return sablock; } @@ -106,6 +138,10 @@ public void addChanged(final Location l) { if (!this.changed.containsKey(l)) { + if (MinigamesAPI.debug) + { + System.out.println("(4) adding changed block for location " + l); + } this.changed.put(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); } } @@ -114,6 +150,10 @@ public void addChanged(final Location l, final Material m, final byte data) { if (!this.changed.containsKey(l)) { + if (MinigamesAPI.debug) + { + System.out.println("(5) adding changed block for location " + l); + } this.changed.put(l, new SmartArenaBlock(l, m, data)); } } @@ -131,11 +171,17 @@ public void run() try { + System.out.println("resetting block " + ablock.getBlock().getLocation()); this.resetSmartResetBlock(ablock); it.remove(); } catch (final Exception e) { + if (MinigamesAPI.debug) + { + System.out.println("failed block " + ablock.getBlock().getLocation()); + e.printStackTrace(); + } this.failedblocks.add(ablock); } @@ -157,6 +203,7 @@ public void run() SmartReset.this.changed.clear(); for (final SmartArenaBlock ablock : SmartReset.this.failedblocks) { + System.out.println("retrying failed block " + ablock.getBlock().getLocation()); final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) { @@ -214,36 +261,47 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); if (b_.getType() == Material.FURNACE) { + if (MinigamesAPI.debug) System.out.println("Rolling back furnace inventory"); ((Furnace) b_.getState()).getInventory().clear(); ((Furnace) b_.getState()).update(); } if (b_.getType() == Material.CHEST) { + if (MinigamesAPI.debug) System.out.println("Rolling back chest inventory"); ((Chest) b_.getState()).getBlockInventory().clear(); ((Chest) b_.getState()).update(); } if (b_.getType() == Material.DISPENSER) { + if (MinigamesAPI.debug) System.out.println("Rolling back dispenser inventory"); ((Dispenser) b_.getState()).getInventory().clear(); ((Dispenser) b_.getState()).update(); } if (b_.getType() == Material.DROPPER) { + if (MinigamesAPI.debug) System.out.println("Rolling back dropper inventory"); ((Dropper) b_.getState()).getInventory().clear(); ((Dropper) b_.getState()).update(); } if (b_.getType() == Material.BREWING_STAND) { + if (MinigamesAPI.debug) System.out.println("Rolling back brewing stand inventory"); ((BrewingStand) b_.getState()).getInventory().clear(); ((BrewingStand) b_.getState()).update(); } if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) { + if (MinigamesAPI.debug) System.out.println("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); b_.setType(ablock.getMaterial()); b_.setData(ablock.getData()); } + else if (MinigamesAPI.debug) + { + System.out.println("Skipping block rollback from " + b_.getType() + "/" + b_.getData() + " to " + ablock.getMaterial() + "/" + ablock.getData()); + } if (b_.getType() == Material.CHEST) { + if (MinigamesAPI.debug) System.out.println("Rolling back chest"); if (ablock.isDoubleChest()) { final DoubleChest dc = ablock.getDoubleChest(); @@ -277,6 +335,7 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) } if (b_.getType() == Material.DISPENSER) { + if (MinigamesAPI.debug) System.out.println("Rolling back dispenser"); final Dispenser d = (Dispenser) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -296,6 +355,7 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) } if (b_.getType() == Material.DROPPER) { + if (MinigamesAPI.debug) System.out.println("Rolling back dropper"); final Dropper d = (Dropper) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -314,6 +374,7 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) } if (b_.getType() == Material.WALL_SIGN || b_.getType() == Material.SIGN_POST) { + if (MinigamesAPI.debug) System.out.println("Rolling back sign"); final Sign sign = (Sign) b_.getState(); if (sign != null) { @@ -332,6 +393,7 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) } if (b_.getType() == Material.SKULL) { + if (MinigamesAPI.debug) System.out.println("Rolling back skull"); b_.setData((byte) 0x1); b_.getState().setType(Material.SKULL); if (b_.getState() instanceof Skull) @@ -456,4 +518,5 @@ public void loadSmartBlocksFromFile() f.delete(); } } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java index 5df8a96b..11188f3a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java @@ -25,6 +25,7 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.block.BlockState; import org.bukkit.block.Chest; import org.bukkit.block.Dispenser; import org.bukkit.block.DoubleChest; @@ -72,7 +73,7 @@ public class SmartArenaBlock implements Serializable boolean isDoubleChest = false; DoubleChest doubleChest = null; - public SmartArenaBlock(final Block b, final boolean c, final boolean s) + public SmartArenaBlock(final Block b, final boolean isChest, final boolean isSign) { this.m = b.getType(); this.x = b.getX(); @@ -102,7 +103,7 @@ public SmartArenaBlock(final Block b, final boolean c, final boolean s) this.setInventory(((Dispenser) b.getState()).getInventory()); } } - if (s) + if (isSign) { final Sign sign = (Sign) b.getState(); if (sign != null) @@ -110,13 +111,58 @@ public SmartArenaBlock(final Block b, final boolean c, final boolean s) this.sign_lines.addAll(Arrays.asList(sign.getLines())); } } - else if (c) + else if (isChest) { final Chest chest = (Chest) b.getState(); this.setInventory(chest.getInventory()); } } + public SmartArenaBlock(final BlockState b, final boolean isChest, final boolean isSign) + { + this.m = b.getType(); + this.x = b.getX(); + this.y = b.getY(); + this.z = b.getZ(); + this.data = b.getData().getData(); + this.world = b.getWorld().getName(); + if (this.m.equals(Material.SKULL)) + { + if (b instanceof Skull) + { + this.skull_owner = ((Skull) b).getOwner(); + this.skull_rotation = ((Skull) b).getRotation(); + } + } + if (this.m.equals(Material.DROPPER)) + { + if (b instanceof Dropper) + { + this.setInventory(((Dropper) b).getInventory()); + } + } + if (this.m.equals(Material.DISPENSER)) + { + if (b instanceof Dispenser) + { + this.setInventory(((Dispenser) b).getInventory()); + } + } + if (isSign) + { + final Sign sign = (Sign) b; + if (sign != null) + { + this.sign_lines.addAll(Arrays.asList(sign.getLines())); + } + } + else if (isChest) + { + final Chest chest = (Chest) b; + this.setInventory(chest.getInventory()); + } + } + public SmartArenaBlock(final Location l, final Material m, final byte data) { this.m = m; diff --git a/changelog.md b/changelog.md index 736ba1e3..5ed77253 100644 --- a/changelog.md +++ b/changelog.md @@ -25,6 +25,7 @@ * sub command "spectate" with given player name is now protected by permission "adminspectate" * sub command "setskull" deactivated. Will be reimplemented later on (https://github.com/MysticCity/MinigamesAPI/issues/59) * NPE fix (https://github.com/MysticCity/MinigamesAPI/issues/57) +* Fixed disappearing objects (villagers, npc etx.) after teleports (https://github.com/MysticCity/MinigamesAPI/issues/37) ###### Minigames-API-Bungee * removed everything (now part of Minigames-API) @@ -38,4 +39,5 @@ ###### BedWars * do never remove NPCs on map reset * removed maxuses of trades/ set to 999999 because of some bugs (see https://github.com/MysticCity/MinigamesAPI/issues/61) +* fixed arena reset, now respects all playerblock events From cfaf40400f9093dcdcde932199b3254fe96aa5ff Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 2 Aug 2016 08:07:29 +0200 Subject: [PATCH 049/266] rework of smart reset; sorting the reset blocks by level - will reset arenas built on sand etc. correctly. --- .../minigamesapi/ArenaListener.java | 2 + .../minigamesapi/SmartReset.java | 240 +++++++++++++++--- 2 files changed, 200 insertions(+), 42 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 7da7a78c..c7b9977b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1341,6 +1341,8 @@ public void onBlockPlace(final BlockPlaceEvent event) event.setCancelled(true); return; } + // TODO Is this clever? We should add every block change to smart reset. + // currently BedWars has its own onBlockPlace if (event.getBlockReplacedState().getType() != Material.AIR) { a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlockReplacedState().getType(), event.getBlockReplacedState().getData().getData()); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 164d6526..53356c6a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -24,7 +24,9 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import java.util.Map.Entry; +import java.util.TreeMap; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -56,106 +58,159 @@ public class SmartReset implements Runnable { - // will only reset broken/placed blocks + /** the changed blocks. */ + private final SmartBlockMap changed = new SmartBlockMap(); - HashMap<Location, SmartArenaBlock> changed = new HashMap<>(); + /** the underlying arena. */ + private Arena a; - Arena a; + /** the blocks that failed while resetting. */ private final ArrayList<SmartArenaBlock> failedblocks = new ArrayList<>(); - long time = 0L; + /** time for reset progress. */ + private long time = 0L; + + /** + * Constructor. + * + * @param a + * arena owner of this smart reset. + */ public SmartReset(final Arena a) { this.a = a; } + /** + * Adds changed block. + * + * @param b + * block to be added + * @return the smart arena block or {@code null} if the block already was added before + */ public SmartArenaBlock addChanged(final Block b) { - if (!this.changed.containsKey(b.getLocation())) + if (!this.changed.hasBlock(b.getLocation())) { if (MinigamesAPI.debug) { System.out.println("(1) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - this.changed.put(b.getLocation(), sablock); + this.changed.putBlock(b.getLocation(), sablock); return sablock; } return null; } - + /** + * Adds changed block. + * * @param b + * block to be added * @param blockReplacedState + * state of the block + * @return the smart arena block or {@code null} if the block already was added before */ public SmartArenaBlock addChanged(Block b, BlockState blockReplacedState) { - if (!this.changed.containsKey(b.getLocation())) - { - if (MinigamesAPI.debug) - { - System.out.println("(1.1) adding changed block for location " + b.getLocation()); - } - final SmartArenaBlock sablock = new SmartArenaBlock(blockReplacedState, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - this.changed.put(b.getLocation(), sablock); - return sablock; - } - return null; + return this.addChanged(b.getLocation(), blockReplacedState.getType(), blockReplacedState.getData().getData()); } + /** + * Adds changed block. + * + * @param b + * block to be added + * @param isChest + * true if block is a chest + * @return the smart arena block or {@code null} if the block already was added before + */ public SmartArenaBlock addChanged(final Block b, final boolean isChest) { - if (!this.changed.containsKey(b.getLocation())) + if (!this.changed.hasBlock(b.getLocation())) { if (MinigamesAPI.debug) { System.out.println("(2) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - this.changed.put(b.getLocation(), sablock); + this.changed.putBlock(b.getLocation(), sablock); return sablock; } return null; } + /** + * Adds changed block. + * + * @param b + * block to be added + * @param isChest + * true if block is a chest + * @param cause + * the cause for adding the change (currently ignore) + * @return the smart arena block or {@code null} if the block already was added before + */ public SmartArenaBlock addChanged(final Block b, final boolean isChest, final ChangeCause cause) { - if (!this.changed.containsKey(b.getLocation())) + if (!this.changed.hasBlock(b.getLocation())) { if (MinigamesAPI.debug) { System.out.println("(3) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - this.changed.put(b.getLocation(), sablock); + this.changed.putBlock(b.getLocation(), sablock); return sablock; } return null; } + /** + * Adds changed block + * + * @param l + * location of the block + * @deprecated will be removed in future versions. + */ @Deprecated public void addChanged(final Location l) { - if (!this.changed.containsKey(l)) + if (!this.changed.hasBlock(l)) { if (MinigamesAPI.debug) { System.out.println("(4) adding changed block for location " + l); } - this.changed.put(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); + this.changed.putBlock(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); } } - public void addChanged(final Location l, final Material m, final byte data) + /** + * Adds changed block + * + * @param l + * location of the block. + * @param m + * original material. + * @param data + * original data value. + * @return the smart arena block or {@code null} if the block already was added before + */ + public SmartArenaBlock addChanged(final Location l, final Material m, final byte data) { - if (!this.changed.containsKey(l)) + if (!this.changed.hasBlock(l)) { if (MinigamesAPI.debug) { System.out.println("(5) adding changed block for location " + l); } - this.changed.put(l, new SmartArenaBlock(l, m, data)); + final SmartArenaBlock sab = new SmartArenaBlock(l, m, data); + this.changed.putBlock(l, sab); + return sab; } + return null; } @Override @@ -164,10 +219,10 @@ public void run() int rolledBack = 0; // Rollback 70 blocks at a time - final Iterator<Entry<Location, SmartArenaBlock>> it = this.changed.entrySet().iterator(); + final Iterator<SmartArenaBlock> it = this.changed.getBlocks().iterator(); while (it.hasNext() && rolledBack <= 70) { - final SmartArenaBlock ablock = it.next().getValue(); + final SmartArenaBlock ablock = it.next(); try { @@ -238,7 +293,7 @@ public void reset() */ public void resetRaw() { - for (final SmartArenaBlock ablock : this.changed.values()) + for (final SmartArenaBlock ablock : this.changed.getBlocks()) { try { @@ -261,37 +316,43 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); if (b_.getType() == Material.FURNACE) { - if (MinigamesAPI.debug) System.out.println("Rolling back furnace inventory"); + if (MinigamesAPI.debug) + System.out.println("Rolling back furnace inventory"); ((Furnace) b_.getState()).getInventory().clear(); ((Furnace) b_.getState()).update(); } if (b_.getType() == Material.CHEST) { - if (MinigamesAPI.debug) System.out.println("Rolling back chest inventory"); + if (MinigamesAPI.debug) + System.out.println("Rolling back chest inventory"); ((Chest) b_.getState()).getBlockInventory().clear(); ((Chest) b_.getState()).update(); } if (b_.getType() == Material.DISPENSER) { - if (MinigamesAPI.debug) System.out.println("Rolling back dispenser inventory"); + if (MinigamesAPI.debug) + System.out.println("Rolling back dispenser inventory"); ((Dispenser) b_.getState()).getInventory().clear(); ((Dispenser) b_.getState()).update(); } if (b_.getType() == Material.DROPPER) { - if (MinigamesAPI.debug) System.out.println("Rolling back dropper inventory"); + if (MinigamesAPI.debug) + System.out.println("Rolling back dropper inventory"); ((Dropper) b_.getState()).getInventory().clear(); ((Dropper) b_.getState()).update(); } if (b_.getType() == Material.BREWING_STAND) { - if (MinigamesAPI.debug) System.out.println("Rolling back brewing stand inventory"); + if (MinigamesAPI.debug) + System.out.println("Rolling back brewing stand inventory"); ((BrewingStand) b_.getState()).getInventory().clear(); ((BrewingStand) b_.getState()).update(); } if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) { - if (MinigamesAPI.debug) System.out.println("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); + if (MinigamesAPI.debug) + System.out.println("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); b_.setType(ablock.getMaterial()); b_.setData(ablock.getData()); } @@ -301,7 +362,8 @@ else if (MinigamesAPI.debug) } if (b_.getType() == Material.CHEST) { - if (MinigamesAPI.debug) System.out.println("Rolling back chest"); + if (MinigamesAPI.debug) + System.out.println("Rolling back chest"); if (ablock.isDoubleChest()) { final DoubleChest dc = ablock.getDoubleChest(); @@ -335,7 +397,8 @@ else if (MinigamesAPI.debug) } if (b_.getType() == Material.DISPENSER) { - if (MinigamesAPI.debug) System.out.println("Rolling back dispenser"); + if (MinigamesAPI.debug) + System.out.println("Rolling back dispenser"); final Dispenser d = (Dispenser) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -355,7 +418,8 @@ else if (MinigamesAPI.debug) } if (b_.getType() == Material.DROPPER) { - if (MinigamesAPI.debug) System.out.println("Rolling back dropper"); + if (MinigamesAPI.debug) + System.out.println("Rolling back dropper"); final Dropper d = (Dropper) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -374,7 +438,8 @@ else if (MinigamesAPI.debug) } if (b_.getType() == Material.WALL_SIGN || b_.getType() == Material.SIGN_POST) { - if (MinigamesAPI.debug) System.out.println("Rolling back sign"); + if (MinigamesAPI.debug) + System.out.println("Rolling back sign"); final Sign sign = (Sign) b_.getState(); if (sign != null) { @@ -393,7 +458,8 @@ else if (MinigamesAPI.debug) } if (b_.getType() == Material.SKULL) { - if (MinigamesAPI.debug) System.out.println("Rolling back skull"); + if (MinigamesAPI.debug) + System.out.println("Rolling back skull"); b_.setData((byte) 0x1); b_.getState().setType(Material.SKULL); if (b_.getState() instanceof Skull) @@ -423,7 +489,7 @@ public void saveSmartBlocksToFile() e.printStackTrace(); } - for (final SmartArenaBlock bl : this.changed.values()) + for (final SmartArenaBlock bl : this.changed.getBlocks()) { try { @@ -519,4 +585,94 @@ public void loadSmartBlocksFromFile() } } + /** + * A map holding smart reset blocks per Y coordinate (level). + */ + private static final class SmartBlockMap extends TreeMap<Integer, Map<Location, SmartArenaBlock>> + { + + /** + * serial version uid. + */ + private static final long serialVersionUID = 8336943154139693760L; + + /** + * Puts a block into map. + * + * @param l + * location + * @param block + * smart reset block + */ + public void putBlock(Location l, SmartArenaBlock block) + { + this.computeIfAbsent(l.getBlockY(), (key) -> new HashMap<>()).put(l, block); + } + + /** + * Checks if given location is already present within map. + * + * @param l + * location to check + * @return {@code true} if location is known + */ + public boolean hasBlock(Location l) + { + final Map<Location, SmartArenaBlock> map = this.get(l.getBlockZ()); + if (map != null) + { + return map.containsKey(l); + } + return false; + } + + /** + * Returns an iterable over all blocks within this map. + * + * @return iterable over all blocks. + */ + public Iterable<SmartArenaBlock> getBlocks() + { + return new Iterable<SmartArenaBlock>() { + + @Override + public Iterator<SmartArenaBlock> iterator() + { + final Iterator<Map<Location, SmartArenaBlock>> iter = SmartBlockMap.this.values().iterator(); + return new Iterator<SmartArenaBlock>() { + private Iterator<SmartArenaBlock> iter2 = null; + + @Override + public boolean hasNext() + { + return (this.iter2 != null && this.iter2.hasNext()) || iter.hasNext(); + } + + @Override + public SmartArenaBlock next() + { + if (this.iter2 == null || !this.iter2.hasNext()) + { + this.iter2 = iter.next().values().iterator(); + } + return this.iter2.next(); + } + + @Override + public void remove() + { + if (this.iter2 == null) + { + throw new IllegalStateException("next not called"); //$NON-NLS-1$ + } + this.iter2.remove(); + } + }; + } + + }; + } + + } + } From 3aa6b9c985f618daa9debbaab41b58ea00394907 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 09:00:28 +0200 Subject: [PATCH 050/266] Rework of updater, querying nexus and using dependecies/server versions --- .../minigamesapi/MinecraftVersionsType.java | 50 ++++--- .../minigamesapi/MinigamesAPI.java | 8 +- .../util/{Updater.java => UpdaterBukkit.java} | 56 ++++---- .../minigamesapi/util/UpdaterNexus.java | 135 ++++++++++++++++++ changelog.md | 1 + 5 files changed, 202 insertions(+), 48 deletions(-) rename API/src/main/java/com/comze_instancelabs/minigamesapi/util/{Updater.java => UpdaterBukkit.java} (91%) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterNexus.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 450f937a..7f14b352 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -22,61 +22,67 @@ public enum MinecraftVersionsType { /** an unknown version/ not supported. */ - Unknown(false), + Unknown(false, "invalid"), //$NON-NLS-1$ /** any 1.7 version. */ - V1_7(true), + V1_7(true, "v1_7_R1"), //$NON-NLS-1$ /** V1.7 R1 */ - V1_7_R1(true), + V1_7_R1(true, "v1_7_R1"), //$NON-NLS-1$ /** V1.7 R2 */ - V1_7_R2(true), + V1_7_R2(true, "v1_7_R2"), //$NON-NLS-1$ /** V1.7 R3 */ - V1_7_R3(true), + V1_7_R3(true, "v1_7_R3"), //$NON-NLS-1$ /** V1.7 R4 */ - V1_7_R4(true), + V1_7_R4(true, "v1_7_R4"), //$NON-NLS-1$ /** any 1.8 version. */ - V1_8(true), + V1_8(true, "v1_8_R1"), //$NON-NLS-1$ /** V1.8 R1 */ - V1_8_R1(true), + V1_8_R1(true, "v1_8_R1"), //$NON-NLS-1$ /** V1.8 R2 */ - V1_8_R2(true), + V1_8_R2(true, "v1_8_R2"), //$NON-NLS-1$ /** any 1.9 version. */ - V1_9(true), + V1_9(true, "v1_9_R1"), //$NON-NLS-1$ /** V1.9 R1 */ - V1_9_R1(true), + V1_9_R1(true, "v1_9_R1"), //$NON-NLS-1$ /** V1.9 R2 */ - V1_9_R2(true), + V1_9_R2(true, "v1_9_R2"), //$NON-NLS-1$ /** any 1.10 version. */ - V1_10(true), + V1_10(true, "v1_10_R1"), //$NON-NLS-1$ /** V1.10 R1 */ - V1_10_R1(true); + V1_10_R1(true, "v1_10_R1"); //$NON-NLS-1$ /** * {@code true} if this version is still supported. */ private final boolean isSupported; + /** the maven version string for update requests. */ + private final String mavenVersion; + /** * Constructor to create a version. * * @param supported * true for support. + * @param mavenVersion + * the maven version string for update queries. */ - private MinecraftVersionsType(final boolean supported) + private MinecraftVersionsType(final boolean supported, final String mavenVersion) { this.isSupported = supported; + this.mavenVersion = mavenVersion; } /** @@ -112,7 +118,7 @@ public boolean isEqual(final MinecraftVersionsType type) return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; case V1_9: return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; - //$CASES-OMITTED$ + // $CASES-OMITTED$ default: switch (type) { @@ -124,7 +130,7 @@ public boolean isEqual(final MinecraftVersionsType type) return this == V1_8 || this == V1_8_R1 || this == V1_8_R2; case V1_9: return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; - //$CASES-OMITTED$ + // $CASES-OMITTED$ default: return type == this; } @@ -194,4 +200,14 @@ public boolean isAtLeast(final MinecraftVersionsType type) return this.ordinal() > type.ordinal(); } + /** + * Returns the maven version string for update queries. + * + * @return maven version string. + */ + public String mavenVersionString() + { + return this.mavenVersion; + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index ea723120..0bffd12b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -60,7 +60,8 @@ import com.comze_instancelabs.minigamesapi.util.Metrics.Graph; import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Signs; -import com.comze_instancelabs.minigamesapi.util.Updater; +import com.comze_instancelabs.minigamesapi.util.UpdaterBukkit; +import com.comze_instancelabs.minigamesapi.util.UpdaterNexus; import com.comze_instancelabs.minigamesapi.util.Util; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; @@ -198,7 +199,7 @@ public void onEnable() } this.getConfig().options().header("Want bugfree versions? Set this to true for automatic updates:"); //$NON-NLS-1$ - this.getConfig().addDefault(PluginConfigStrings.AUTO_UPDATING, false); + this.getConfig().addDefault(PluginConfigStrings.AUTO_UPDATING, true); this.getConfig().addDefault(PluginConfigStrings.SIGNS_UPDATE_TIME, 20); this.getConfig().addDefault(PluginConfigStrings.PARTY_COMMAND_ENABLED, true); this.getConfig().addDefault(PluginConfigStrings.DEBUG, false); @@ -250,7 +251,8 @@ public int getValue() if (this.getConfig().getBoolean(PluginConfigStrings.AUTO_UPDATING)) { - new Updater(this, 83025, this.getFile(), Updater.UpdateType.DEFAULT, false); + // new UpdaterBukkit(this, 83025, this.getFile(), UpdaterBukkit.UpdateType.DEFAULT, false); + new UpdaterNexus(this, this.getFile()); } if (this.getServer().getPluginManager().getPlugin("CrackShot") != null) //$NON-NLS-1$ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java similarity index 91% rename from API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java rename to API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java index 57bc855d..13a3b6f0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Updater.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java @@ -55,7 +55,7 @@ * @version 2.0 */ -public class Updater +public class UpdaterBukkit { private Plugin plugin; @@ -84,7 +84,7 @@ public class Updater private static final int BYTE_SIZE = 1024; // Used for downloading files private YamlConfiguration config; // Config file private String updateFolder; // The folder that downloads will be placed in - private Updater.UpdateResult result = Updater.UpdateResult.SUCCESS; // Used for determining the outcome of the update process + private UpdaterBukkit.UpdateResult result = UpdaterBukkit.UpdateResult.SUCCESS; // Used for determining the outcome of the update process /** * Gives the dev the result of the update process. Can be obtained by called getResult(). @@ -162,7 +162,7 @@ public enum UpdateType * @param announce * True if the program should announce the progress of new updates in console */ - public Updater(final Plugin plugin, final int id, final File file, final UpdateType type, final boolean announce) + public UpdaterBukkit(final Plugin plugin, final int id, final File file, final UpdateType type, final boolean announce) { this.plugin = plugin; this.type = type; @@ -230,7 +230,7 @@ public Updater(final Plugin plugin, final int id, final File file, final UpdateT try { - this.url = new URL(Updater.HOST + Updater.QUERY + id); + this.url = new URL(UpdaterBukkit.HOST + UpdaterBukkit.QUERY + id); } catch (final MalformedURLException e) { @@ -246,7 +246,7 @@ public Updater(final Plugin plugin, final int id, final File file, final UpdateT /** * Get the result of the update process. */ - public Updater.UpdateResult getResult() + public UpdaterBukkit.UpdateResult getResult() { this.waitForThread(); return this.result; @@ -325,14 +325,14 @@ private void saveFile(final File folder, final String file, final String u) in = new BufferedInputStream(url.openStream()); fout = new FileOutputStream(folder.getAbsolutePath() + "/" + file); - final byte[] data = new byte[Updater.BYTE_SIZE]; + final byte[] data = new byte[UpdaterBukkit.BYTE_SIZE]; int count; if (this.announce) { this.plugin.getLogger().info("About to download a new update: " + this.versionName); } long downloaded = 0; - while ((count = in.read(data, 0, Updater.BYTE_SIZE)) != -1) + while ((count = in.read(data, 0, UpdaterBukkit.BYTE_SIZE)) != -1) { downloaded += count; fout.write(data, 0, count); @@ -365,7 +365,7 @@ private void saveFile(final File folder, final String file, final String u) catch (final Exception ex) { this.plugin.getLogger().warning("The auto-updater tried to download a new update, but was unsuccessful."); - this.result = Updater.UpdateResult.FAIL_DOWNLOAD; + this.result = UpdaterBukkit.UpdateResult.FAIL_DOWNLOAD; } finally { @@ -411,10 +411,10 @@ private void unzip(final String file) { final BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry)); int b; - final byte buffer[] = new byte[Updater.BYTE_SIZE]; + final byte buffer[] = new byte[UpdaterBukkit.BYTE_SIZE]; final FileOutputStream fos = new FileOutputStream(destinationFilePath); - final BufferedOutputStream bos = new BufferedOutputStream(fos, Updater.BYTE_SIZE); - while ((b = bis.read(buffer, 0, Updater.BYTE_SIZE)) != -1) + final BufferedOutputStream bos = new BufferedOutputStream(fos, UpdaterBukkit.BYTE_SIZE); + while ((b = bis.read(buffer, 0, UpdaterBukkit.BYTE_SIZE)) != -1) { bos.write(buffer, 0, b); } @@ -475,7 +475,7 @@ private void unzip(final String file) catch (final IOException ex) { this.plugin.getLogger().warning("The auto-updater tried to unzip a new update file, but was unsuccessful."); - this.result = Updater.UpdateResult.FAIL_DOWNLOAD; + this.result = UpdaterBukkit.UpdateResult.FAIL_DOWNLOAD; ex.printStackTrace(); } new File(file).delete(); @@ -520,7 +520,7 @@ private boolean versionCheck(final String title) if (this.hasTag(version) || version.equalsIgnoreCase(remoteVersion) || (curVer >= remVer)) { // We already have the latest version, or this build is tagged for no-update - this.result = Updater.UpdateResult.NO_UPDATE; + this.result = UpdaterBukkit.UpdateResult.NO_UPDATE; return false; } } @@ -531,7 +531,7 @@ private boolean versionCheck(final String title) this.plugin.getLogger().warning("The author of this plugin" + authorInfo + " has misconfigured their Auto Update system"); this.plugin.getLogger().warning("Files uploaded to BukkitDev should contain the version number, seperated from the name by a 'v', such as PluginName v1.0"); this.plugin.getLogger().warning("Please notify the author of this error."); - this.result = Updater.UpdateResult.FAIL_NOVERSION; + this.result = UpdaterBukkit.UpdateResult.FAIL_NOVERSION; return false; } } @@ -564,7 +564,7 @@ private Integer calVer(final String s) throws NumberFormatException */ private boolean hasTag(final String version) { - for (final String string : Updater.NO_UPDATE_TAG) + for (final String string : UpdaterBukkit.NO_UPDATE_TAG) { if (version.contains(string)) { @@ -601,10 +601,10 @@ private boolean read() return false; } - this.versionName = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.TITLE_VALUE); - this.versionLink = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.LINK_VALUE); - this.versionType = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.TYPE_VALUE); - this.versionGameVersion = (String) ((JSONObject) array.get(array.size() - 1)).get(Updater.VERSION_VALUE); + this.versionName = (String) ((JSONObject) array.get(array.size() - 1)).get(UpdaterBukkit.TITLE_VALUE); + this.versionLink = (String) ((JSONObject) array.get(array.size() - 1)).get(UpdaterBukkit.LINK_VALUE); + this.versionType = (String) ((JSONObject) array.get(array.size() - 1)).get(UpdaterBukkit.TYPE_VALUE); + this.versionGameVersion = (String) ((JSONObject) array.get(array.size() - 1)).get(UpdaterBukkit.VERSION_VALUE); return true; } @@ -634,27 +634,27 @@ private class UpdateRunnable implements Runnable @Override public void run() { - if (Updater.this.url != null) + if (UpdaterBukkit.this.url != null) { // Obtain the results of the project's file feed - if (Updater.this.read()) + if (UpdaterBukkit.this.read()) { - if (Updater.this.versionCheck(Updater.this.versionName)) + if (UpdaterBukkit.this.versionCheck(UpdaterBukkit.this.versionName)) { - if ((Updater.this.versionLink != null) && (Updater.this.type != UpdateType.NO_DOWNLOAD)) + if ((UpdaterBukkit.this.versionLink != null) && (UpdaterBukkit.this.type != UpdateType.NO_DOWNLOAD)) { - String name = Updater.this.file.getName(); + String name = UpdaterBukkit.this.file.getName(); // If it's a zip file, it shouldn't be downloaded as the plugin's name - if (Updater.this.versionLink.endsWith(".zip")) + if (UpdaterBukkit.this.versionLink.endsWith(".zip")) { - final String[] split = Updater.this.versionLink.split("/"); + final String[] split = UpdaterBukkit.this.versionLink.split("/"); name = split[split.length - 1]; } - Updater.this.saveFile(new File(Updater.this.plugin.getDataFolder().getParent(), Updater.this.updateFolder), name, Updater.this.versionLink); + UpdaterBukkit.this.saveFile(new File(UpdaterBukkit.this.plugin.getDataFolder().getParent(), UpdaterBukkit.this.updateFolder), name, UpdaterBukkit.this.versionLink); } else { - Updater.this.result = UpdateResult.UPDATE_AVAILABLE; + UpdaterBukkit.this.result = UpdateResult.UPDATE_AVAILABLE; } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterNexus.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterNexus.java new file mode 100644 index 00000000..f39d6f83 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterNexus.java @@ -0,0 +1,135 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.util; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.logging.Level; + +import org.bukkit.plugin.Plugin; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; + +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + +/** + * Checks for updates by querying a nexus updater. + * + * @author mepeisen + */ +public class UpdaterNexus implements Runnable +{ + + /** the plugin to be checked. */ + private final Plugin plugin; + + /** the file to be checked. */ + private final File file; + + /** the asynchronous update thread. */ + private final Thread thread; + + /** the url to be queried for updates. */ + private final String queryUrl; + + /** the queried group id. */ + private final String groupId; + + /** + * Constructor + * + * @param plugin + * the plugin that will be checked. + * @param file + * The file that the plugin is running from, get this by doing this.getFile() from within your main class. + */ + public UpdaterNexus(final Plugin plugin, final File file) + { + this(plugin, file, "http://nexus.xworlds.eu/minigames/query", "com.github.MCE-Plugins"); //$NON-NLS-1$//$NON-NLS-2$ + } + + /** + * Constructor + * + * @param plugin + * the plugin that will be checked. + * @param file + * The file that the plugin is running from, get this by doing this.getFile() from within your main class. + * @param queryUrl + * the url to be queried + * @param groupId + * the queried group id + */ + private UpdaterNexus(final Plugin plugin, final File file, final String queryUrl, String groupId) + { + this.plugin = plugin; + this.file = file; + this.queryUrl = queryUrl; + this.groupId = groupId; + + this.thread = new Thread(this); + this.thread.start(); + } + + @Override + public void run() + { + final String version = this.plugin.getDescription().getVersion().split("-")[0]; //$NON-NLS-1$ + + try + { + final URL url = new URL( + this.queryUrl + "?group=" + this.groupId + "&artifact=" + this.plugin.getName() + "&version=" + version + "&server=" + MinigamesAPI.SERVER_VERSION.mavenVersionString()); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$ + final URLConnection conn = url.openConnection(); + conn.setConnectTimeout(5000); + + final BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); + final String response = reader.readLine(); + + final JSONObject array = (JSONObject) JSONValue.parse(response); + if (array.size() == 0) + { + this.plugin.getLogger().log(Level.WARNING, "Invalid response while checking plugin version"); //$NON-NLS-1$ + } + if ((Boolean)array.get("success")) //$NON-NLS-1$ + { + final JSONObject data = (JSONObject) array.get("data"); //$NON-NLS-1$ + if (! ((Boolean) data.get("upToDate"))) //$NON-NLS-1$ + { + final JSONObject vobj = (JSONObject) data.get("version"); //$NON-NLS-1$ + final String newversion = (String) vobj.get("version"); //$NON-NLS-1$ + final String downloadurl = (String) vobj.get("url"); //$NON-NLS-1$ + + this.plugin.getLogger().log(Level.WARNING, "We found a new version #" + newversion + ". You can download the new version at " + downloadurl); //$NON-NLS-1$ //$NON-NLS-2$ + // TODO Auto-Updating + } + } + else + { + this.plugin.getLogger().log(Level.WARNING, "Error while checking plugin version " + array.get("msg")); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + catch (final IOException e) + { + this.plugin.getLogger().log(Level.WARNING, "Unable to check plugin version", e); //$NON-NLS-1$ + } + } + +} diff --git a/changelog.md b/changelog.md index 5ed77253..47dbc284 100644 --- a/changelog.md +++ b/changelog.md @@ -26,6 +26,7 @@ * sub command "setskull" deactivated. Will be reimplemented later on (https://github.com/MysticCity/MinigamesAPI/issues/59) * NPE fix (https://github.com/MysticCity/MinigamesAPI/issues/57) * Fixed disappearing objects (villagers, npc etx.) after teleports (https://github.com/MysticCity/MinigamesAPI/issues/37) +* New updater using a nexus query script (https://github.com/MysticCity/MinigamesAPI/issues/23), NOTICE: It does currently only query newer versions with WARNING log level. It does not yet update automatically. ###### Minigames-API-Bungee * removed everything (now part of Minigames-API) From 8a2106600a7277cfeb067d64fc4aeb4e3d4670e1 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 09:09:09 +0200 Subject: [PATCH 051/266] Added metrics config --- .../minigamesapi/MinigamesAPI.java | 50 ++++++++++--------- .../minigamesapi/PluginConfigStrings.java | 5 ++ 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 0bffd12b..6bbb1806 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -200,6 +200,7 @@ public void onEnable() this.getConfig().options().header("Want bugfree versions? Set this to true for automatic updates:"); //$NON-NLS-1$ this.getConfig().addDefault(PluginConfigStrings.AUTO_UPDATING, true); + this.getConfig().addDefault(PluginConfigStrings.POST_METRICS, true); this.getConfig().addDefault(PluginConfigStrings.SIGNS_UPDATE_TIME, 20); this.getConfig().addDefault(PluginConfigStrings.PARTY_COMMAND_ENABLED, true); this.getConfig().addDefault(PluginConfigStrings.DEBUG, false); @@ -220,34 +221,37 @@ public void onEnable() MinigamesAPI.debug = this.getConfig().getBoolean(PluginConfigStrings.DEBUG); - Bukkit.getScheduler().runTaskLater(this, () -> { - try - { - MinigamesAPI.this.metrics = new Metrics(MinigamesAPI.instance); - - final Graph components = MinigamesAPI.this.metrics.createGraph("Minigames"); //$NON-NLS-1$ - for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + if (this.getConfig().getBoolean(PluginConfigStrings.POST_METRICS, true)) + { + Bukkit.getScheduler().runTaskLater(this, () -> { + try { - components.addPlotter(new Metrics.Plotter(pli.getPlugin().getName()) { - @Override - public int getValue() + MinigamesAPI.this.metrics = new Metrics(MinigamesAPI.instance); + + final Graph components = MinigamesAPI.this.metrics.createGraph("Minigames"); //$NON-NLS-1$ + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + components.addPlotter(new Metrics.Plotter(pli.getPlugin().getName()) { + @Override + public int getValue() + { + return 1; + } + }); + if (MinigamesAPI.debug) { - return 1; + this.getLogger().fine("Loaded Graph for: " + pli.getPlugin().getName()); //$NON-NLS-1$ } - }); - if (MinigamesAPI.debug) - { - this.getLogger().fine("Loaded Graph for: " + pli.getPlugin().getName()); //$NON-NLS-1$ } + + MinigamesAPI.this.metrics.start(); } - - MinigamesAPI.this.metrics.start(); - } - catch (final IOException e) - { - this.getLogger().log(Level.WARNING, "Exception while updating metrics", e); //$NON-NLS-1$ - } - }, 60L); + catch (final IOException e) + { + this.getLogger().log(Level.WARNING, "Exception while updating metrics", e); //$NON-NLS-1$ + } + }, 60L); + } if (this.getConfig().getBoolean(PluginConfigStrings.AUTO_UPDATING)) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java index 831dc596..02088c1c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java @@ -43,4 +43,9 @@ public interface PluginConfigStrings */ String AUTO_UPDATING = "config.auto_updating"; //$NON-NLS-1$ + /** + * flag for controlling metrics. + */ + String POST_METRICS = "config.post_metrics"; //$NON-NLS-1$ + } From 55513a288d71a8d74feda71ed2b28e9cbc9bcc01 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 09:09:09 +0200 Subject: [PATCH 052/266] Added metrics config --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 47dbc284..99437300 100644 --- a/changelog.md +++ b/changelog.md @@ -27,6 +27,7 @@ * NPE fix (https://github.com/MysticCity/MinigamesAPI/issues/57) * Fixed disappearing objects (villagers, npc etx.) after teleports (https://github.com/MysticCity/MinigamesAPI/issues/37) * New updater using a nexus query script (https://github.com/MysticCity/MinigamesAPI/issues/23), NOTICE: It does currently only query newer versions with WARNING log level. It does not yet update automatically. +* added config option to disable metrics updates (https://github.com/MysticCity/MinigamesAPI/issues/10) ###### Minigames-API-Bungee * removed everything (now part of Minigames-API) From 4e154f0514d10e88f938b541532acb162b885aa9 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 09:23:15 +0200 Subject: [PATCH 053/266] disabled jumper scoreboard --- changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog.md b/changelog.md index 99437300..af1eaf8c 100644 --- a/changelog.md +++ b/changelog.md @@ -43,3 +43,6 @@ * removed maxuses of trades/ set to 999999 because of some bugs (see https://github.com/MysticCity/MinigamesAPI/issues/61) * fixed arena reset, now respects all playerblock events +###### Jumper +* disabled the jumper scoreboard + From 2562988d45caef62a5d80b0f27f7bb4840bf162a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 17:41:07 +0200 Subject: [PATCH 054/266] fixed smart reset and added new method to add multiple blocks --- .../minigamesapi/ArenaListener.java | 37 ++- .../minigamesapi/SmartReset.java | 147 ++++++++--- .../minigamesapi/test/NestedIteratorTest.java | 231 ++++++++++++++++++ 3 files changed, 379 insertions(+), 36 deletions(-) create mode 100644 API/src/test/java/com/comze_instancelabs/minigamesapi/test/NestedIteratorTest.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index c7b9977b..daabf61a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -45,6 +45,7 @@ import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFadeEvent; import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockPhysicsEvent; @@ -151,7 +152,7 @@ public ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, fi // ************************* /** - * Player explode event. + * entity explode event. * * <p> * Registers the block changes for smart resets. @@ -187,6 +188,40 @@ public void onExplode(final EntityExplodeEvent event) } } + /** + * block explode event. + * + * <p> + * Registers the block changes for smart resets. + * At the end of the game the blocks will reset to original state. + * Only available by REGENERATION arena types and for blocks within the arena boundaries. + * </p> + * + * @param event + * event object + */ + @EventHandler(priority = EventPriority.HIGH) + public void onExplode2(final BlockExplodeEvent event) + { + for (final Arena a : this.pli.getArenas()) + { + if (a.getArenaType() == ArenaType.REGENERATION) + { + final Cuboid c = a.getBoundaries(); + if (c != null) + { + for (final Block b : event.blockList()) + { + if (c.containsLocWithoutY(b.getLocation())) + { + a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + } + } + } + } + } + } + /** * Block from/to event. * diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 53356c6a..e0c2bede 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -25,7 +25,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.util.Map.Entry; +import java.util.NoSuchElementException; import java.util.TreeMap; import org.bukkit.Bukkit; @@ -92,7 +92,7 @@ public SmartArenaBlock addChanged(final Block b) { if (!this.changed.hasBlock(b.getLocation())) { - if (MinigamesAPI.debug) + if (MinigamesAPI.debug && b.getLocation().getBlockY() == 12) { System.out.println("(1) adding changed block for location " + b.getLocation()); } @@ -102,7 +102,22 @@ public SmartArenaBlock addChanged(final Block b) } return null; } - + + /** + * Adds changed blocks + * @param loc + */ + public void addChanged(Block[] loc) + { + if (loc != null) + { + for (final Block b : loc) + { + this.addChanged(b); + } + } + } + /** * Adds changed block. * @@ -618,7 +633,7 @@ public void putBlock(Location l, SmartArenaBlock block) */ public boolean hasBlock(Location l) { - final Map<Location, SmartArenaBlock> map = this.get(l.getBlockZ()); + final Map<Location, SmartArenaBlock> map = this.get(l.getBlockY()); if (map != null) { return map.containsKey(l); @@ -638,41 +653,103 @@ public Iterable<SmartArenaBlock> getBlocks() @Override public Iterator<SmartArenaBlock> iterator() { - final Iterator<Map<Location, SmartArenaBlock>> iter = SmartBlockMap.this.values().iterator(); - return new Iterator<SmartArenaBlock>() { - private Iterator<SmartArenaBlock> iter2 = null; - - @Override - public boolean hasNext() - { - return (this.iter2 != null && this.iter2.hasNext()) || iter.hasNext(); - } - - @Override - public SmartArenaBlock next() - { - if (this.iter2 == null || !this.iter2.hasNext()) - { - this.iter2 = iter.next().values().iterator(); - } - return this.iter2.next(); - } - - @Override - public void remove() - { - if (this.iter2 == null) - { - throw new IllegalStateException("next not called"); //$NON-NLS-1$ - } - this.iter2.remove(); - } - }; + return new NestedIterator<>(SmartBlockMap.this.values().iterator()); } - }; } } + /** + * Helper class for nesting iterators. + * @author mepeisen + * + * @param <K> + * @param <T> + */ + public static final class NestedIterator<K, T> implements Iterator<T> + { + + /** outer iterator. */ + private Iterator<Map<K, T>> outer = null; + + /** inner iterator. */ + private Iterator<T> inner = null; + + /** prev iterator for remove. */ + private Iterator<T> prev = null; + + /** + * Constructor. + * @param iter + */ + public NestedIterator(Iterator<Map<K, T>> iter) + { + this.outer = iter; + moveNext(); + } + + @Override + public boolean hasNext() + { + // inner iterator existing and has an element? + if (this.inner != null) + { + return this.inner.hasNext(); + } + + // no more elements + return false; + } + + @Override + public T next() + { + if (this.inner == null) + { + throw new NoSuchElementException(); + } + final T result = this.inner.next(); + this.prev = this.inner; + if (!this.inner.hasNext()) + { + this.inner = null; + moveNext(); + } + return result; + } + + /** + * Moves to next element + */ + private void moveNext() + { + while (this.inner == null) + { + if (!this.outer.hasNext()) + { + // no elements found + break; + } + this.inner = this.outer.next().values().iterator(); + if (!this.inner.hasNext()) + { + this.inner = null; + } + } + } + + @Override + public void remove() + { + if (this.prev == null) + { + throw new IllegalStateException("no next called"); //$NON-NLS-1$ + } + this.prev.remove(); + } + + + } + } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/NestedIteratorTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/NestedIteratorTest.java new file mode 100644 index 00000000..1ed3ecb7 --- /dev/null +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/NestedIteratorTest.java @@ -0,0 +1,231 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.TreeMap; + +import org.junit.Test; + +import com.comze_instancelabs.minigamesapi.SmartReset; + +/** + * Test case for smart resets nested iterator + * + * @author mepeisen + */ +public class NestedIteratorTest +{ + + /** + * Tests an empty nested map. + */ + @Test + public void testEmpty() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + assertFalse(iter.hasNext()); + } + + /** + * Tests an empty nested map. + */ + @Test(expected=NoSuchElementException.class) + public void testEmpty2() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.next(); + } + + /** + * Tests an empty nested map. + */ + @Test(expected=IllegalStateException.class) + public void testEmpty3() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.remove(); + } + + /** + * Tests a simple map. + */ + @Test + public void testSimple() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + map1.put(Integer.valueOf(10), Integer.valueOf(10)); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + assertTrue(iter.hasNext()); + assertEquals(Integer.valueOf(10), iter.next()); + assertFalse(iter.hasNext()); + } + + /** + * Tests a simple map. + */ + @Test(expected=NoSuchElementException.class) + public void testSimple2() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + map1.put(Integer.valueOf(10), Integer.valueOf(10)); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.next(); + iter.next(); + } + + /** + * Tests a simple map. + */ + @Test(expected=NoSuchElementException.class) + public void testSimple3() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + map1.put(Integer.valueOf(10), Integer.valueOf(10)); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.next(); + iter.remove(); + assertEquals(0, map1.size()); + iter.next(); + } + + /** + * Tests a simple map. + */ + @Test(expected=IllegalStateException.class) + public void testSimple4() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + map1.put(Integer.valueOf(10), Integer.valueOf(10)); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.remove(); + } + + /** + * Tests a simple map. + */ + @Test(expected=IllegalStateException.class) + public void testSimple5() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + map1.put(Integer.valueOf(10), Integer.valueOf(10)); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.next(); + iter.remove(); + iter.remove(); + } + + /** + * Tests a empty nested map. + */ + @Test + public void testNestEmpty() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + assertFalse(iter.hasNext()); + } + + /** + * Tests a empty nested map. + */ + @Test(expected=NoSuchElementException.class) + public void testNestEmpty2() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.next(); + } + + /** + * Tests a empty nested map. + */ + @Test(expected=IllegalStateException.class) + public void testNestEmpty3() + { + final Map<Integer, Map<Integer, Integer>> map = new HashMap<>(); + final Map<Integer, Integer> map1 = new HashMap<>(); + map.put(Integer.valueOf(10), map1); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + iter.remove(); + } + + /** + * Tests a complex nested map. + */ + @Test + public void testNestComplex() + { + final Map<Integer, Map<Integer, Integer>> map = new TreeMap<>(); + final Map<Integer, Integer> map1 = new TreeMap<>(); + final Map<Integer, Integer> map2 = new TreeMap<>(); + final Map<Integer, Integer> map3 = new TreeMap<>(); + map.put(Integer.valueOf(10), map1); + map.put(Integer.valueOf(20), map2); + map.put(Integer.valueOf(30), map3); + map1.put(Integer.valueOf(10), Integer.valueOf(10)); + map1.put(Integer.valueOf(11), Integer.valueOf(11)); + map1.put(Integer.valueOf(12), Integer.valueOf(12)); + map3.put(Integer.valueOf(30), Integer.valueOf(30)); + map3.put(Integer.valueOf(31), Integer.valueOf(31)); + + final Iterator<Integer> iter = new SmartReset.NestedIterator<>(map.values().iterator()); + assertTrue(iter.hasNext()); + assertEquals(Integer.valueOf(10), iter.next()); + assertTrue(iter.hasNext()); + assertEquals(Integer.valueOf(11), iter.next()); + assertTrue(iter.hasNext()); + assertEquals(Integer.valueOf(12), iter.next()); + assertTrue(iter.hasNext()); + assertEquals(Integer.valueOf(30), iter.next()); + assertTrue(iter.hasNext()); + assertEquals(Integer.valueOf(31), iter.next()); + assertFalse(iter.hasNext()); + } + +} From c00fa458970aaa7e409349ef7983a85c3fc8d95a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 17:42:48 +0200 Subject: [PATCH 055/266] fixed https://github.com/MysticCity/MinigamesAPI/issues/68 --- changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog.md b/changelog.md index af1eaf8c..7596f348 100644 --- a/changelog.md +++ b/changelog.md @@ -43,6 +43,9 @@ * removed maxuses of trades/ set to 999999 because of some bugs (see https://github.com/MysticCity/MinigamesAPI/issues/61) * fixed arena reset, now respects all playerblock events +###### MobEscape +* fixed arena reset, now resetting lower Y levels first (https://github.com/MysticCity/MinigamesAPI/issues/68) + ###### Jumper * disabled the jumper scoreboard From 4187f6224fdebb1ded5534ea91d433da43f9325a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 17:49:28 +0200 Subject: [PATCH 056/266] removed personal debug code :-) --- .../java/com/comze_instancelabs/minigamesapi/SmartReset.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index e0c2bede..4c3217a7 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -92,7 +92,7 @@ public SmartArenaBlock addChanged(final Block b) { if (!this.changed.hasBlock(b.getLocation())) { - if (MinigamesAPI.debug && b.getLocation().getBlockY() == 12) + if (MinigamesAPI.debug) { System.out.println("(1) adding changed block for location " + b.getLocation()); } From 448b8db848ebdad9ce0a83de1c0208393350dc33 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 17:56:19 +0200 Subject: [PATCH 057/266] changelog: added jumpfactor config value --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 7596f348..0e20661a 100644 --- a/changelog.md +++ b/changelog.md @@ -45,6 +45,7 @@ ###### MobEscape * fixed arena reset, now resetting lower Y levels first (https://github.com/MysticCity/MinigamesAPI/issues/68) +* added jumpFactor configuration value, see wiki for details. ###### Jumper * disabled the jumper scoreboard From 7b5d84e1d531c3c5cbda58b55f90a0f32be31560 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 Aug 2016 21:26:36 +0200 Subject: [PATCH 058/266] Conquer: added permission for setcheckpoint command --- changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.md b/changelog.md index 0e20661a..b56d99d0 100644 --- a/changelog.md +++ b/changelog.md @@ -50,3 +50,5 @@ ###### Jumper * disabled the jumper scoreboard +###### Conquer +* Command "setcheckpoint" is now protected by permission "setup" From ab93de1671b4806c741912149a5c1ff87f552d6f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 7 Aug 2016 07:54:30 +0200 Subject: [PATCH 059/266] NPE fix --- changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog.md b/changelog.md index b56d99d0..097a43c1 100644 --- a/changelog.md +++ b/changelog.md @@ -52,3 +52,6 @@ ###### Conquer * Command "setcheckpoint" is now protected by permission "setup" + +###### FlyingCars +* NPW fix while leaving minecart \ No newline at end of file From 0bb9c52aab86bf1cc75352644d7b2a58554a6afd Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 7 Aug 2016 11:23:07 +0200 Subject: [PATCH 060/266] sudoku fixes --- changelog.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 097a43c1..4f3153ac 100644 --- a/changelog.md +++ b/changelog.md @@ -54,4 +54,8 @@ * Command "setcheckpoint" is now protected by permission "setup" ###### FlyingCars -* NPW fix while leaving minecart \ No newline at end of file +* NPE fix while leaving minecart + +###### Sudoku +* Sudoku join sign now uses "sudoku.sign" permission instead of "horseracingplus.sign" permission. +* Fixed join sign From dcbcc10cf82bf8aca913a3f670332ed20fec4a5f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 8 Aug 2016 07:01:42 +0200 Subject: [PATCH 061/266] bedwars: removed xp on trade --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 4f3153ac..ef9127c3 100644 --- a/changelog.md +++ b/changelog.md @@ -42,6 +42,7 @@ * do never remove NPCs on map reset * removed maxuses of trades/ set to 999999 because of some bugs (see https://github.com/MysticCity/MinigamesAPI/issues/61) * fixed arena reset, now respects all playerblock events +* removed experience on trade (https://github.com/MysticCity/MinigamesAPI/issues/66) ###### MobEscape * fixed arena reset, now resetting lower Y levels first (https://github.com/MysticCity/MinigamesAPI/issues/68) From 476d057d9784dd7e3ce655d7f6d8134b6ec86811 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 9 Aug 2016 06:46:41 +0200 Subject: [PATCH 062/266] Rework of permission strings --- .../minigamesapi/Arena.java | 8 +-- .../minigamesapi/ArenaListener.java | 2 +- .../minigamesapi/ArenaPermissionStrings.java | 4 +- .../minigamesapi/MinigamesAPI.java | 62 ++++++++++++++++--- .../minigamesapi/PermissionStrings.java | 4 +- .../minigamesapi/PluginConfigStrings.java | 25 ++++++++ .../minigamesapi/config/ClassesConfig.java | 4 +- .../minigamesapi/config/GunsConfig.java | 10 +-- .../minigamesapi/config/ShopConfig.java | 10 +-- 9 files changed, 103 insertions(+), 26 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index ac5aa71a..319d8fe5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -775,7 +775,7 @@ public void joinPlayerLobby(final UUID playerUuid) { if (Validator.isPlayerOnline(playername)) { - if (!player.hasPermission(ArenaPermissionStrings.PREFIX + this.getInternalName()) && !player.hasPermission(ArenaPermissionStrings.VIP)) + if (!player.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)) { Util.sendMessage(this.plugin, player, this.pli.getMessagesConfig().no_perm_to_join_arena.replaceAll(ArenaMessageStrings.ARENA, this.getInternalName())); return; @@ -787,8 +787,8 @@ public void joinPlayerLobby(final UUID playerUuid) // arena full // if player vip -> kick someone and continue - this.logger.fine(playername + " is vip: " + player.hasPermission(ArenaPermissionStrings.VIP)); //$NON-NLS-1$ - if (!player.hasPermission(ArenaPermissionStrings.PREFIX + this.getInternalName()) && !player.hasPermission(ArenaPermissionStrings.VIP)) + this.logger.fine(playername + " is vip: " + player.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)); //$NON-NLS-1$ + if (!player.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)) { // no VIP. return; @@ -802,7 +802,7 @@ public void joinPlayerLobby(final UUID playerUuid) if (Validator.isPlayerOnline(p_)) { final Player player_ = Bukkit.getPlayer(p_); - if (!player_.hasPermission(ArenaPermissionStrings.PREFIX + this.getInternalName()) && !player_.hasPermission(ArenaPermissionStrings.VIP)) + if (!player_.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)) { this.leavePlayer(p_, false, true); player_.sendMessage(this.pli.getMessagesConfig().you_got_kicked_because_vip_joined); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index daabf61a..677270a4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1657,7 +1657,7 @@ public void onSignChange(final SignChangeEvent event) final Player p = event.getPlayer(); if (event.getLine(0).toLowerCase().equalsIgnoreCase(this.getName())) { - if (event.getPlayer().hasPermission("mgapi.sign") || event.getPlayer().isOp()) + if (event.getPlayer().hasPermission(MinigamesAPI.getAPI().getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) { if (!event.getLine(1).equalsIgnoreCase("")) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java index 52937c66..2fee7cad 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaPermissionStrings.java @@ -24,9 +24,9 @@ public interface ArenaPermissionStrings { /** arenas vip permission. */ - String VIP = "arenas.*"; //$NON-NLS-1$ + String VIP = ".vip"; //$NON-NLS-1$ /** arena prefix for permission. */ - String PREFIX = "arenas."; //$NON-NLS-1$ + String PREFIX = ".arenas."; //$NON-NLS-1$ } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 6bbb1806..d0b0a572 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -324,6 +324,52 @@ public boolean economyAvailable() return this.economy; } + /** + * Returns the permission prefix for minigames lib itself. + * @return permission prefix minigames lib. + */ + public String getPermissionPrefix() + { + return this.getConfig().getString(PluginConfigStrings.PERMISSION_PREFIX, "minigames.core"); //$NON-NLS-1$ + } + + /** + * Returns the permission prefix for minigames lib itself. + * @return permission prefix minigames lib. + */ + public String getPermissionKitPrefix() + { + return this.getConfig().getString(PluginConfigStrings.PERMISSION_KITS_PREFIX, "minigames.core.kits"); //$NON-NLS-1$ + } + + /** + * Returns the permission prefix for minigames lib itself. + * @return permission prefix minigames lib. + */ + public String getPermissionGunPrefix() + { + return this.getConfig().getString(PluginConfigStrings.PERMISSION_GUN_PREFIX, "minigames.core.guns"); //$NON-NLS-1$ + } + + /** + * Returns the permission prefix for minigames lib itself. + * @return permission prefix minigames lib. + */ + public String getPermissionShopPrefix() + { + return this.getConfig().getString(PluginConfigStrings.PERMISSION_SHOP_PREFIX, "minigames.core.shopitems"); //$NON-NLS-1$ + } + + /** + * Returns the permission prefix for a minigame. + * @param game the minigame name. + * @return permission prefix + */ + public String getPermissionGamePrefix(String game) + { + return this.getConfig().getString(PluginConfigStrings.PERMISSION_GAME_PREFIX, "minigames.") + game; //$NON-NLS-1$ + } + /** * Calculates the minecraft server version. * @@ -650,7 +696,7 @@ public boolean onCommand(final CommandSender sender, final Command cmd, final St sender.sendMessage(Messages.getString("MinigamesAPI.ExecuteIngame", LOCALE)); //$NON-NLS-1$ return true; } - if (!sender.hasPermission(PermissionStrings.MINIGAMES_START)) + if (!sender.hasPermission(getPermissionPrefix() + PermissionStrings.MINIGAMES_START)) { sender.sendMessage(Messages.getString("MinigamesAPI.NoPermissionForStart", LOCALE)); //$NON-NLS-1$ return true; @@ -694,27 +740,27 @@ public boolean onCommand(final CommandSender sender, final Command cmd, final St final String action = args[0]; if (action.equalsIgnoreCase(CommandStrings.PARTY_INVITE)) { - cmdhandler.partyInvite(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ + cmdhandler.partyInvite(sender, args, getPermissionPrefix() + PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else if (action.equalsIgnoreCase(CommandStrings.PARTY_ACCEPT)) { - cmdhandler.partyAccept(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ + cmdhandler.partyAccept(sender, args, getPermissionPrefix() + PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else if (action.equalsIgnoreCase(CommandStrings.PARTY_KICK)) { - cmdhandler.partyKick(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ + cmdhandler.partyKick(sender, args, getPermissionPrefix() + PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else if (action.equalsIgnoreCase(CommandStrings.PARTY_LIST)) { - cmdhandler.partyList(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ + cmdhandler.partyList(sender, args, getPermissionPrefix() + PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else if (action.equalsIgnoreCase(CommandStrings.PARTY_DISBAND)) { - cmdhandler.partyDisband(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ + cmdhandler.partyDisband(sender, args, getPermissionPrefix() + PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else if (action.equalsIgnoreCase(CommandStrings.PARTY_LEAVE)) { - cmdhandler.partyLeave(sender, args, PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ + cmdhandler.partyLeave(sender, args, getPermissionPrefix() + PermissionStrings.MINIGAMES_PARTY, "/" + cmd.getName(), action, this, p); //$NON-NLS-1$ } else { @@ -1367,7 +1413,7 @@ public void onSignChange(SignChangeEvent event) Player p = event.getPlayer(); if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglib")) { - if (event.getPlayer().hasPermission("mgapi.sign") || event.getPlayer().isOp()) + if (event.getPlayer().hasPermission(getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) { if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java index 76d477d3..2afd1aaf 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PermissionStrings.java @@ -24,9 +24,9 @@ public interface PermissionStrings { /** permission prefix for minigames party. */ - String MINIGAMES_PARTY = "minigamesapi.party"; //$NON-NLS-1$ + String MINIGAMES_PARTY = ".party"; //$NON-NLS-1$ /** permission for start command. */ - String MINIGAMES_START = "minigamesapi.start"; //$NON-NLS-1$ + String MINIGAMES_START = ".start"; //$NON-NLS-1$ } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java index 02088c1c..cb5a0be9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java @@ -48,4 +48,29 @@ public interface PluginConfigStrings */ String POST_METRICS = "config.post_metrics"; //$NON-NLS-1$ + /** + * Prefix for core permissions. + */ + String PERMISSION_PREFIX = "config.permissions_prefix"; //$NON-NLS-1$ + + /** + * Prefix for core permissions. + */ + String PERMISSION_KITS_PREFIX = "config.permissions_kits_prefix"; //$NON-NLS-1$ + + /** + * Prefix for gun permissions. + */ + String PERMISSION_GUN_PREFIX = "config.permissions_gun_prefix"; //$NON-NLS-1$ + + /** + * Prefix for shop-item permissions. + */ + String PERMISSION_SHOP_PREFIX = "config.permissions_shop_prefix"; //$NON-NLS-1$ + + /** + * Prefix for game permissions. + */ + String PERMISSION_GAME_PREFIX = "config.permissions_game_prefix"; //$NON-NLS-1$ + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java index f86c2bd9..febfd2fe 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java @@ -22,6 +22,8 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + public class ClassesConfig { @@ -43,7 +45,7 @@ public ClassesConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.kits.default.requires_money", false); this.getConfig().addDefault("config.kits.default.requires_permission", false); this.getConfig().addDefault("config.kits.default.money_amount", 100); - this.getConfig().addDefault("config.kits.default.permission_node", "minigames.kits.default"); + this.getConfig().addDefault("config.kits.default.permission_node", MinigamesAPI.getAPI().getPermissionKitPrefix() + ".default"); } this.getConfig().options().copyDefaults(true); this.saveConfig(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java index 4407aa31..2931c527 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java @@ -22,6 +22,8 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + public class GunsConfig { @@ -45,7 +47,7 @@ public GunsConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.guns.pistol.durability", 50); this.getConfig().addDefault("config.guns.pistol.shoot_amount", 1); this.getConfig().addDefault("config.guns.pistol.knockback_multiplier", 1.1D); - this.getConfig().addDefault("config.guns.pistol.permission_node", "minigames.guns.pistol"); + this.getConfig().addDefault("config.guns.pistol.permission_node", MinigamesAPI.getAPI().getPermissionGunPrefix() + ".pistol"); this.getConfig().addDefault("config.guns.sniper.name", "Sniper"); this.getConfig().addDefault("config.guns.sniper.items", "292#DAMAGE_ALL:1#KNOCKBACK*1"); @@ -55,7 +57,7 @@ public GunsConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.guns.sniper.durability", 10); this.getConfig().addDefault("config.guns.sniper.shoot_amount", 1); this.getConfig().addDefault("config.guns.sniper.knockback_multiplier", 3D); - this.getConfig().addDefault("config.guns.sniper.permission_node", "minigames.guns.sniper"); + this.getConfig().addDefault("config.guns.sniper.permission_node", MinigamesAPI.getAPI().getPermissionGunPrefix() + ".sniper"); this.getConfig().addDefault("config.guns.grenade.name", "Grenade Launcher"); this.getConfig().addDefault("config.guns.grenade.items", "257#DAMAGE_ALL:1#KNOCKBACK*1"); @@ -65,7 +67,7 @@ public GunsConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.guns.grenade.durability", 10); this.getConfig().addDefault("config.guns.grenade.shoot_amount", 1); this.getConfig().addDefault("config.guns.grenade.knockback_multiplier", 2.5D); - this.getConfig().addDefault("config.guns.grenade.permission_node", "minigames.guns.grenade"); + this.getConfig().addDefault("config.guns.grenade.permission_node", MinigamesAPI.getAPI().getPermissionGunPrefix() + ".grenade"); this.getConfig().addDefault("config.guns.freeze.name", "Freeze Gun"); this.getConfig().addDefault("config.guns.freeze.items", "258#DAMAGE_ALL:1#KNOCKBACK*1"); @@ -75,7 +77,7 @@ public GunsConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.guns.freeze.durability", 5); this.getConfig().addDefault("config.guns.freeze.shoot_amount", 1); this.getConfig().addDefault("config.guns.freeze.knockback_multiplier", 0.5D); - this.getConfig().addDefault("config.guns.freeze.permission_node", "minigames.guns.freeze"); + this.getConfig().addDefault("config.guns.freeze.permission_node", MinigamesAPI.getAPI().getPermissionGunPrefix() + ".freeze"); } this.getConfig().options().copyDefaults(true); this.saveConfig(); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java index 70b5244b..eb2e007b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java @@ -22,6 +22,8 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + public class ShopConfig { @@ -44,7 +46,7 @@ public ShopConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.shop_items.coin_boost2.requires_money", true); this.getConfig().addDefault("config.shop_items.coin_boost2.requires_permission", false); this.getConfig().addDefault("config.shop_items.coin_boost2.money_amount", 1500); - this.getConfig().addDefault("config.shop_items.coin_boost2.permission_node", "minigames.shop_item.coin_boost2"); + this.getConfig().addDefault("config.shop_items.coin_boost2.permission_node", MinigamesAPI.getAPI().getPermissionShopPrefix() + ".coin_boost2"); this.getConfig().addDefault("config.shop_items.coin_boost3.name", "Coin boost * 3"); this.getConfig().addDefault("config.shop_items.coin_boost3.enabled", true); @@ -55,7 +57,7 @@ public ShopConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.shop_items.coin_boost3.requires_money", true); this.getConfig().addDefault("config.shop_items.coin_boost3.requires_permission", false); this.getConfig().addDefault("config.shop_items.coin_boost3.money_amount", 3000); - this.getConfig().addDefault("config.shop_items.coin_boost3.permission_node", "minigames.shop_item.coin_boost3"); + this.getConfig().addDefault("config.shop_items.coin_boost3.permission_node", MinigamesAPI.getAPI().getPermissionShopPrefix() + ".coin_boost3"); this.getConfig().addDefault("config.shop_items.coin_boost2_solo.name", "Coin boost * 2 Solo"); this.getConfig().addDefault("config.shop_items.coin_boost2_solo.enabled", true); @@ -66,7 +68,7 @@ public ShopConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.shop_items.coin_boost2_solo.requires_money", true); this.getConfig().addDefault("config.shop_items.coin_boost2_solo.requires_permission", false); this.getConfig().addDefault("config.shop_items.coin_boost2_solo.money_amount", 1000); - this.getConfig().addDefault("config.shop_items.coin_boost2_solo.permission_node", "minigames.shop_item.coin_boost2_solo"); + this.getConfig().addDefault("config.shop_items.coin_boost2_solo.permission_node", MinigamesAPI.getAPI().getPermissionShopPrefix() + ".coin_boost2_solo"); this.getConfig().addDefault("config.shop_items.coin_boost3_solo.name", "Coin boost * 3 Solo"); this.getConfig().addDefault("config.shop_items.coin_boost3_solo.enabled", true); @@ -77,7 +79,7 @@ public ShopConfig(final JavaPlugin plugin, final boolean custom) this.getConfig().addDefault("config.shop_items.coin_boost3_solo.requires_money", true); this.getConfig().addDefault("config.shop_items.coin_boost3_solo.requires_permission", false); this.getConfig().addDefault("config.shop_items.coin_boost3_solo.money_amount", 2000); - this.getConfig().addDefault("config.shop_items.coin_boost3_solo.permission_node", "minigames.shop_item.coin_boost3_solo"); + this.getConfig().addDefault("config.shop_items.coin_boost3_solo.permission_node", MinigamesAPI.getAPI().getPermissionShopPrefix() + ".coin_boost3_solo"); } this.getConfig().options().copyDefaults(true); this.saveConfig(); From 6a40e611ffe7302741fcfeacae87877cfe2d5c4f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 9 Aug 2016 06:58:15 +0200 Subject: [PATCH 063/266] Rework of permission strings --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index ef9127c3..6d4149d2 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ * Using same version numbers (Games and minigamesAPI share same version number to make dependencies more intuitive) * Support for Spigot 1.10 +* Incompatible change: Reworking the permissions, see https://github.com/MysticCity/MinigamesAPI/wiki/Permissions for details ###### Minigames-API * various JUnit-Tests From c9f99474888e496832d6c9c711becba9d2c79c27 Mon Sep 17 00:00:00 2001 From: BuildTools <unconfigured@null.spigotmc.org> Date: Tue, 9 Aug 2016 08:57:09 +0200 Subject: [PATCH 064/266] preparing 1.14.9-SNAPSHOT --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 9fc2bb1f..308b51ea 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.9</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.9</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index ba6a139a..798f9541 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.9</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.9</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 7f886bbb..bd11c264 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.9</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.9</version> <scope>provided</scope> </dependency> <dependency> From a40c67249b8c3cb54ca6c386c57cac12262e8fd7 Mon Sep 17 00:00:00 2001 From: BuildTools <unconfigured@null.spigotmc.org> Date: Tue, 9 Aug 2016 08:57:10 +0200 Subject: [PATCH 065/266] switching to 1.14.9-SNAPSHOT --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 308b51ea..67c8dceb 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.9</version> + <version>1.14.10-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9</version> + <version>1.14.10-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 798f9541..58f174f6 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.9</version> + <version>1.14.10-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9</version> + <version>1.14.10-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index bd11c264..a24dfaba 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9</version> + <version>1.14.10-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.9</minigames.releaseversion> + <minigames.releaseversion>1.14.10</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.9</version> + <version>1.14.10-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From 94fca8cfab271bbc7a1be0017458c5f6d6b3e0b9 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 12 Aug 2016 21:53:25 +0200 Subject: [PATCH 066/266] starting minigames lib v2 (showcase) --- APIv2/pom.xml | 111 +++ .../mce/minigames/api/CommonErrors.java | 64 ++ .../github/mce/minigames/api/LibState.java | 35 + .../mce/minigames/api/MglibInterface.java | 201 ++++ .../minigames/api/MinecraftVersionsType.java | 197 ++++ .../mce/minigames/api/MinigameErrorCode.java | 38 + .../mce/minigames/api/MinigameException.java | 115 +++ .../mce/minigames/api/MinigameInterface.java | 70 ++ .../api/MinigamePluginInterface.java | 60 ++ .../api/PluginProviderInterface.java | 68 ++ .../minigames/api/arena/ArenaInterface.java | 26 + .../mce/minigames/api/arena/ArenaType.java | 41 + .../api/arena/ArenaTypeBuilderInterface.java | 41 + .../api/arena/ArenaTypeInterface.java | 44 + .../mce/minigames/api/arena/ArenaTypes.java | 41 + .../mce/minigames/api/arena/WaitQueue.java | 26 + .../api/arena/rules/ArenaRuleSet.java | 25 + .../api/cmd/CommandHandlerInterface.java | 39 + .../minigames/api/cmd/CommandInterface.java | 89 ++ .../api/locale/LocalizedMessage.java | 62 ++ .../api/locale/LocalizedMessageInterface.java | 123 +++ .../api/locale/LocalizedMessages.java | 61 ++ .../api/locale/MessageSeverityType.java | 44 + .../api/locale/MessagesConfigInterface.java | 54 + .../api/player/ArenaPlayerInterface.java | 76 ++ .../api/util/function/MgBiConsumer.java | 67 ++ .../api/util/function/MgBiFunction.java | 68 ++ .../api/util/function/MgBiPredicate.java | 98 ++ .../api/util/function/MgBinaryOperator.java | 65 ++ .../api/util/function/MgBooleanSupplier.java | 39 + .../api/util/function/MgComparator.java | 547 ++++++++++ .../api/util/function/MgConsumer.java | 62 ++ .../util/function/MgDoubleBinaryOperator.java | 43 + .../api/util/function/MgDoubleConsumer.java | 61 ++ .../api/util/function/MgDoubleFunction.java | 43 + .../api/util/function/MgDoublePredicate.java | 93 ++ .../api/util/function/MgDoubleSupplier.java | 39 + .../util/function/MgDoubleToIntFunction.java | 40 + .../util/function/MgDoubleToLongFunction.java | 40 + .../util/function/MgDoubleUnaryOperator.java | 89 ++ .../api/util/function/MgFunction.java | 98 ++ .../api/util/function/MgFunctionUtils.java | 942 ++++++++++++++++++ .../util/function/MgIntBinaryOperator.java | 43 + .../api/util/function/MgIntConsumer.java | 61 ++ .../api/util/function/MgIntFunction.java | 43 + .../api/util/function/MgIntPredicate.java | 93 ++ .../api/util/function/MgIntSupplier.java | 39 + .../util/function/MgIntToDoubleFunction.java | 40 + .../util/function/MgIntToLongFunction.java | 40 + .../api/util/function/MgIntUnaryOperator.java | 89 ++ .../util/function/MgLongBinaryOperator.java | 43 + .../api/util/function/MgLongConsumer.java | 61 ++ .../api/util/function/MgLongFunction.java | 43 + .../api/util/function/MgLongPredicate.java | 93 ++ .../api/util/function/MgLongSupplier.java | 39 + .../util/function/MgLongToDoubleFunction.java | 40 + .../util/function/MgLongToIntFunction.java | 40 + .../util/function/MgLongUnaryOperator.java | 89 ++ .../util/function/MgObjBooleanConsumer.java | 44 + .../util/function/MgObjDoubleConsumer.java | 44 + .../api/util/function/MgObjIntConsumer.java | 44 + .../api/util/function/MgObjLongConsumer.java | 44 + .../api/util/function/MgOutgoingStubbing.java | 99 ++ .../api/util/function/MgPredicate.java | 109 ++ .../api/util/function/MgSupplier.java | 40 + .../util/function/MgToDoubleBiFunction.java | 44 + .../api/util/function/MgToDoubleFunction.java | 44 + .../api/util/function/MgToIntBiFunction.java | 47 + .../api/util/function/MgToIntFunction.java | 43 + .../api/util/function/MgToLongBiFunction.java | 43 + .../api/util/function/MgToLongFunction.java | 43 + .../api/util/function/MgUnaryOperator.java | 42 + .../minigames/api/zones/ZoneInterface.java | 25 + APIv2/src/site/markdown/features.md | 169 ++++ APIv2/src/site/markdown/gamerules.md | 48 + APIv2/src/site/markdown/index.md | 45 + APIv2/src/site/markdown/roadmap.md | 50 + APIv2/src/site/site.xml | 29 + .../minigames/api/test/VersionTypeTest.java | 336 +++++++ LIBv2/pom.xml | 125 +++ .../minigames/impl/MinigamePluginImpl.java | 113 +++ .../mce/minigames/impl/MinigameWrapper.java | 78 ++ .../mce/minigames/impl/MinigamesPlugin.java | 299 ++++++ .../impl/cmd/StartCommandHandler.java | 44 + LIBv2/src/main/resources/config.yml | 6 + LIBv2/src/main/resources/plugin.yml | 17 + 86 files changed, 7195 insertions(+) create mode 100644 APIv2/pom.xml create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/LibState.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java create mode 100644 APIv2/src/site/markdown/features.md create mode 100644 APIv2/src/site/markdown/gamerules.md create mode 100644 APIv2/src/site/markdown/index.md create mode 100644 APIv2/src/site/markdown/roadmap.md create mode 100644 APIv2/src/site/site.xml create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java create mode 100644 LIBv2/pom.xml create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java create mode 100644 LIBv2/src/main/resources/config.yml create mode 100644 LIBv2/src/main/resources/plugin.yml diff --git a/APIv2/pom.xml b/APIv2/pom.xml new file mode 100644 index 00000000..dc3cb214 --- /dev/null +++ b/APIv2/pom.xml @@ -0,0 +1,111 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI</name> + <description>Rich Minigames API V2</description> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.9-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java new file mode 100644 index 00000000..bde48cde --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -0,0 +1,64 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.locale.LocalizedMessage; +import com.github.mce.minigames.api.locale.LocalizedMessages; +import com.github.mce.minigames.api.locale.MessageSeverityType; + +/** + * Common errors within minigames lib. + * + * @author mepeisen + */ +@LocalizedMessages(minigame = "core", path = "errors") +public enum CommonErrors implements MinigameErrorCode +{ + + /** + * Game cannot be initialized because minigames-lib has wrong state. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * <li>String: current plugin lib state</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create minigame %0$s because of wrong MinigamesLib plugin state: %1$s.", severity = MessageSeverityType.Error) + Cannot_Create_Game_Wrong_State, + + /** + * Game cannot be initialized because it already exists. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create minigame %0$s because it already exists.", severity = MessageSeverityType.Error) + DuplicateMinigame, + + /** + * Command must be executed in game. + * + * <p>No Arguments</p> + */ + @LocalizedMessage(defaultMessage = "Invoke this command in-game.", severity = MessageSeverityType.Error) + InvokeIngame, + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/LibState.java b/APIv2/src/main/java/com/github/mce/minigames/api/LibState.java new file mode 100644 index 00000000..af377b39 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/LibState.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +/** + * State of the library. + * + * @author mepeisen + */ +public enum LibState +{ + + /** Library is initializing. */ + Initializing, + /** Library is running. */ + Running, + /** Library is terminating. */ + Terminating, + /** Library is sleeping/ inactive. */ + Sleeping + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java new file mode 100644 index 00000000..a7fb1499 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -0,0 +1,201 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.zones.ZoneInterface; + +/** + * Base interface to access the minigames API. + * + * @author mepeisen + */ +public interface MglibInterface +{ + + /** + * A pseudo minigame representing the library itself. + * + * <p> + * The core minigame is referred in various situations, for example in common error messages. + * </p> + */ + String CORE_MINIGAME = "core"; //$NON-NLS-1$ + + /** + * Returns the current library state. + * + * @return library state. + */ + LibState getState(); + + /** + * Returns the minecraft version we are running on. + * + * @return minecraft server version. + */ + MinecraftVersionsType getMinecraftVersion(); + + /** + * Registers a new minigame; should be called in {@link JavaPlugin#onEnable()}. + * + * <p> + * It is possible to let a plugin register multiple minigames at once. Simply call this method with multiple instances of providers. + * </p> + * + * @param provider + * the plugin provider class. + * @return The minigame plugin interface, some kind of administrational interface. + * + * @throws MinigameException + * thrown if the minigame with given name is already registered. + */ + MinigamePluginInterface register(PluginProviderInterface provider) throws MinigameException; + + /** + * Returns the minigame with given name. + * + * @param minigame + * the minigames name + * + * @return the minigame or {@code null} if is not available. + */ + MinigameInterface getMinigame(String minigame); + + /** + * Finds a zone by location. + * + * <p> + * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. + * </p> + * + * <p> + * The method will return the first zone it finds. + * </p> + * + * @param location + * + * @return Zone or {@code null} if no zone was found. + */ + ZoneInterface findZone(Location location); + + /** + * Finds all zones by location. + * + * <p> + * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. + * </p> + * + * <p> + * The method will return every zone that contains given location. Even if multiple zones are overlapping. + * </p> + * + * @param location + * + * @return Zone or {@code null} if no zone was found. + */ + Iterable<ZoneInterface> findZones(Location location); + + /** + * Returns the player for given bukkit player. + * + * @param player + * @return arena player. + */ + ArenaPlayerInterface getPlayer(Player player); + + /** + * Returns the player for given bukkit player. + * + * @param player + * @return arena player. + */ + ArenaPlayerInterface getPlayer(OfflinePlayer player); + + /** + * Returns the player for given bukkit player uuid. + * + * @param uuid + * @return arena player. + */ + ArenaPlayerInterface getPlayer(UUID uuid); + + /** + * Returns all known arena types. + * + * @return known arena types. + */ + Iterable<ArenaTypeInterface> getArenaTypes(); + + /** + * Returns all declared arenas. + * + * @return declared arenas. + */ + Iterable<ArenaInterface> getArenas(); + + /** + * Returns all arenas of given type. + * + * @param type + * arena type. + * @return the arenas of given type. + */ + Iterable<ArenaInterface> getArenas(ArenaTypeInterface type); + + /** + * Singleton access. + */ + public final class INSTANCE + { + + /** + * hidden constructor. + */ + private INSTANCE() + { + // hidden constructor + } + + /** + * Returns the minigames lib plugin. + * + * @return minigames lib plugin. + */ + public static MglibInterface get() + { + final Plugin mgplugin = Bukkit.getServer().getPluginManager().getPlugin("MinigamesLib2"); //$NON-NLS-1$ + if (!(mgplugin instanceof MglibInterface)) + { + throw new IllegalStateException("Invalid minigames lib or inactive plugin."); //$NON-NLS-1$ + } + final MglibInterface mglib = (MglibInterface) mgplugin; + return mglib; + } + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java new file mode 100644 index 00000000..a8c4e0d9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java @@ -0,0 +1,197 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.github.mce.minigames.api; + +/** + * Supported versions of minecraft. + * + * @author mepeisen + */ +public enum MinecraftVersionsType +{ + /** an unknown version/ not supported. */ + Unknown(false), + + /** any 1.7 version. */ + V1_7(true), + + /** V1.7 R1 */ + V1_7_R1(true), + + /** V1.7 R2 */ + V1_7_R2(true), + + /** V1.7 R3 */ + V1_7_R3(true), + + /** V1.7 R4 */ + V1_7_R4(true), + + /** any 1.8 version. */ + V1_8(true), + + /** V1.8 R1 */ + V1_8_R1(true), + + /** V1.8 R2 */ + V1_8_R2(true), + + /** any 1.9 version. */ + V1_9(true), + + /** V1.9 R1 */ + V1_9_R1(true), + + /** V1.9 R2 */ + V1_9_R2(true), + + /** any 1.10 version. */ + V1_10(true), + + /** V1.10 R1 */ + V1_10_R1(true); + + /** + * {@code true} if this version is still supported. + */ + private final boolean isSupported; + + /** + * Constructor to create a version. + * + * @param supported + * true for support. + */ + private MinecraftVersionsType(final boolean supported) + { + this.isSupported = supported; + } + + /** + * {@code true} if this version is still supported. + * + * @return {@code true} if this version is still supported. + */ + public boolean isSupported() + { + return this.isSupported; + } + + /** + * Checks if this version equals given version. + * + * <p> + * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. + * </p> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isEqual(final MinecraftVersionsType type) + { + switch (this) + { + case V1_10: + return type == V1_10 || type == V1_10_R1; + case V1_7: + return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; + case V1_8: + return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; + case V1_9: + return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; + //$CASES-OMITTED$ + default: + switch (type) + { + case V1_10: + return this == V1_10 || this == V1_10_R1; + case V1_7: + return this == V1_7 || this == V1_7_R1 || this == V1_7_R2 || this == V1_7_R3 || this == V1_7_R4; + case V1_8: + return this == V1_8 || this == V1_8_R1 || this == V1_8_R2; + case V1_9: + return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; + //$CASES-OMITTED$ + default: + return type == this; + } + } + } + + /** + * Checks if this version is below given version. + * + * <ul> + * <li>V1_7 will be below V1_8*.</li> + * <li>V1_7_R3 will be below V1_7_R4.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isBelow(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return false; + } + return this.ordinal() < type.ordinal(); + } + + /** + * Checks if this version is after given version. + * + * <ul> + * <li>V1_8 will be after V1_7*.</li> + * <li>V1_7_R4 will be after V1_7_R3.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAfter(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return false; + } + return this.ordinal() > type.ordinal(); + } + + /** + * Checks if this version is at least given version. + * + * <ul> + * <li>V1_7_R4 will be at least V1_7.</li> + * <li>V1_7_R3 will be after V1_7_R2.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAtLeast(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return true; + } + return this.ordinal() > type.ordinal(); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java new file mode 100644 index 00000000..43a426ea --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * An interface for enumerations that represent minigame error codes. + * + * @author mepeisen + */ +public interface MinigameErrorCode extends LocalizedMessageInterface +{ + + /** + * Returns a technical string to identify the error; usually class name and constant name. + * + * @return message string. + */ + default String toName() + { + return this.getClass().getName() + "." + ((Enum<?>)this).name(); //$NON-NLS-1$ + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java new file mode 100644 index 00000000..64cb2f05 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java @@ -0,0 +1,115 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import java.io.Serializable; + +/** + * A minigame exception. + * + * @author mepeisen + */ +public class MinigameException extends Exception +{ + + /** + * serial version uid. + */ + private static final long serialVersionUID = 4482601783924644721L; + + /** the error code. */ + private final MinigameErrorCode code; + + /** the message arguments. */ + private final Serializable[] args; + + /** + * Constructor. + * + * @param code + * the error code + * @param args + * the arguments for building the message. + */ + public MinigameException(MinigameErrorCode code, Serializable... args) + { + super(toString(code, args)); + this.code = code; + this.args = args; + } + + /** + * Constructor. + * + * @param code + * the error code + * @param cause + * the underlying exception (cause) + * @param args + * the arguments for building the message. + */ + public MinigameException(MinigameErrorCode code, Throwable cause, Serializable... args) + { + super(toString(code, args), cause); + this.code = code; + this.args = args; + } + + /** + * The error code + * + * @return the code + */ + public MinigameErrorCode getCode() + { + return this.code; + } + + /** + * the arguments to build a human readable string + * + * @return the args + */ + public Serializable[] getArgs() + { + return this.args; + } + + /** + * Converts given code and args to a loggable text. + * + * @param code2 + * @param args2 + * @return exception string for logging. + */ + private static String toString(MinigameErrorCode code2, Serializable[] args2) + { + final StringBuilder builder = new StringBuilder(); + builder.append(code2.toName()); + builder.append(", args: ["); //$NON-NLS-1$ + if (args2 != null) + { + for (final Serializable arg : args2) + { + builder.append("\n "); //$NON-NLS-1$ + builder.append(arg); + } + } + builder.append("]"); //$NON-NLS-1$ + return builder.toString(); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java new file mode 100644 index 00000000..27e1bd7f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; + +/** + * The plugin to access minigames. + * + * @author mepeisen + */ +public interface MinigameInterface +{ + + /** + * Returns the technical name of the minigame. + * + * <p> + * Will be the name returned by {@link PluginProviderInterface#getName()}. + * </p> + * + * @return minigame name. + */ + String getName(); + + /** + * Returns the file configuration for the messages. + * + * @return file configuration for messages. + */ + MessagesConfigInterface getMessages(); + + /** + * Returns the type of arenas declared for this minigame + * + * @return arena types. + */ + Iterable<ArenaTypeInterface> getDeclaredTypes(); + + /** + * Returns all declared arenas within this minigame. + * + * @return all minigame arenas. + */ + Iterable<ArenaInterface> getArenas(); + + /** + * Returns the minigame arena with given internal name. + * + * @param name + * @return arena or {@code null} if the arena does not exist. + */ + ArenaInterface getArenas(String name); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java new file mode 100644 index 00000000..68690033 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -0,0 +1,60 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; + +/** + * The minigame plugin interface; administrational backend for the given minigame. + * + * <p> + * This interface is returned upon minigame initialization. + * </p> + * + * @author mepeisen + */ +public interface MinigamePluginInterface extends MinigameInterface +{ + + // initialization. + + /** + * Creates a new arena type. + * + * @param type + * arena type. + * @param isDefault + * {@code true} if this is the default arena type for this minigame. + * @return the type builder. + * @throws MinigameException + * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. + */ + ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolean isDefault) throws MinigameException; + + /** + * Initialize this minigame. + * + * <p> + * This method must be called at the end of the initialization process. + * </p> + * + * @throws MinigameException + * thrown if the minigame declarations are not valid. + */ + void init() throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java new file mode 100644 index 00000000..055db3b4 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java @@ -0,0 +1,68 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import java.util.Map; + +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; + +/** + * An interface that should be implemented by the {@link JavaPlugin} of a specific minigame. + * + * @author mepeisen + */ +public interface PluginProviderInterface +{ + + /** + * Returns the java plugin that creates this minigame. + * + * @return java plugin. + */ + JavaPlugin getJavaPlugin(); + + /** + * Returns the technical name of the minigame. + * + * @return minigame name. + */ + String getName(); + + /** + * Returns the messages classes for predefined messages. + * + * <p> + * Simple return {@code null} if you only use the default messages from minigames library. + * </p> + * + * @return message classes for predefined messages. + */ + Iterable<Class<? extends Enum<?>>> getMessageClasses(); + + /** + * Returns the bukkit (main) commands registered by this minigame. + * + * <p> + * Simply return {@code null} if there are no additional bukkit commands to register. + * </p> + * + * @return bukkit (main) commands. + */ + Map<String, CommandHandlerInterface> getBukkitCommands(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java new file mode 100644 index 00000000..bfff556d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -0,0 +1,26 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * A arena inside the gaming world. + * + * @author mepeisen + */ +public interface ArenaInterface +{ + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java new file mode 100644 index 00000000..bdc848eb --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java @@ -0,0 +1,41 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single arena type. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ArenaType +{ + + /** + * Unique name of the arena type. + * + * @return Unique name of the arena type. + */ + String name(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java new file mode 100644 index 00000000..0f9b96ff --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java @@ -0,0 +1,41 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +import com.github.mce.minigames.api.MinigamePluginInterface; +import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; + +/** + * A builder to create arena types. + * + * <p> + * Get an instance of this object via {@link MinigamePluginInterface#createArenaType(ArenaTypeInterface, boolean)}. + * </p> + * + * @author mepeisen + */ +public interface ArenaTypeBuilderInterface +{ + + /** + * Applies rule sets to this arena type. + * + * @param set + * the arena rule sets. + */ + void applyRulesets(ArenaRuleSet... set); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java new file mode 100644 index 00000000..fbe65a4f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * An interface for enumerations that represent arena types. + * + * @author mepeisen + */ +public interface ArenaTypeInterface +{ + + /** + * Returns the minigame name declaring the arena type. + * + * @return minigame name. + */ + default String getMinigame() + { + try + { + final ArenaTypes types = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ArenaTypes.class); + return types.minigame(); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java new file mode 100644 index 00000000..81c8c405 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java @@ -0,0 +1,41 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation for enumerations declaring arena types. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(TYPE) +public @interface ArenaTypes +{ + + /** + * Returns the minigame declaring the arena types. + * + * @return the minigame declaring the arena types. + */ + String minigame(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java new file mode 100644 index 00000000..159e191b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java @@ -0,0 +1,26 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * A waiting queue for one or multiple arenas. + * + * @author mepeisen + */ +public interface WaitQueue +{ + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java new file mode 100644 index 00000000..8fdc25a9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java @@ -0,0 +1,25 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +/** + * @author mepeisen + * + */ +public interface ArenaRuleSet +{ + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java new file mode 100644 index 00000000..dc8d20f6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.cmd; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Interface for command handling. + * + * @author mepeisen + */ +public interface CommandHandlerInterface +{ + + /** + * Handles given command. + * + * @param command + * the command to handle. + * + * @throws MinigameException + * thrown if there are any problems during command handling. + */ + void handle(CommandInterface command) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java new file mode 100644 index 00000000..bfa0c798 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java @@ -0,0 +1,89 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.cmd; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; + +/** + * Interface for commands passed to command handler. + * + * @author mepeisen + */ +public interface CommandInterface +{ + + /** + * Returns the bukkit command sender. + * + * @return bukkit command sender. + */ + CommandSender getSender(); + + /** + * Returns the command. + * + * @return command + */ + Command getCommand(); + + /** + * Returns the label + * + * @return label + */ + String getLabel(); + + /** + * Returns the command arguments + * + * @return arguments. + */ + String[] getArgs(); + + /** + * Checks this command for given criteria and invokes wither then or else statements. + * + * <p> + * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. + * </p> + * + * @param test + * test functions for testing the command matching any criteria. + * + * @return the outgoing stub to apply then or else consumers. + * + * @throws MinigameException + * will be thrown if either the test function or then/else consumers throw the exception. + */ + MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException; + + /** + * Returns a test function to check if the command sender is a player. + * + * @return true if the command sender is a player. + */ + default MgPredicate<CommandInterface> isPlayer() + { + return (cmd) -> cmd.getSender() instanceof Player; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java new file mode 100644 index 00000000..ff67ea5a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java @@ -0,0 +1,62 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single localized message. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface LocalizedMessage +{ + + /** + * Returns the default user message used as fallback; must be in locale returned by {@link LocalizedMessages#defaultLocale()}. + * + * <p> + * Uses {@link String#format(String, Object...)} to build the message with arguments. + * </p> + * + * @return default message. + */ + String defaultMessage(); + + /** + * Returns the default administration message used as fallback; must be in locale returned by {@link LocalizedMessages#defaultLocale()}. + * + * <p> + * Uses {@link String#format(String, Object...)} to build the message with arguments. + * </p> + * + * @return default message; empty string if it should default to the user message + */ + String defaultAdminMessage() default ""; + + /** + * Returns the message severity. + * @return message severity. + */ + MessageSeverityType severity() default MessageSeverityType.Information; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java new file mode 100644 index 00000000..0e96ed26 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java @@ -0,0 +1,123 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import java.io.Serializable; +import java.util.Locale; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; + +/** + * An interface for enumerations that represent localized messages. + * + * @author mepeisen + */ +public interface LocalizedMessageInterface +{ + + /** + * Returns the message severity type. + * @return severity type. + */ + default MessageSeverityType getSeverity() + { + try + { + final LocalizedMessage msg = this.getClass().getField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + return msg.severity(); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns a human readable message for this message; this message will be displayed to common users. + * + * @param locale + * locale to be used. + * @param args + * object arguments that can be used to build the message. + * @return message string. + */ + default String toUserMessage(Locale locale, Serializable... args) + { + try + { + final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); + final LocalizedMessage msg = this.getClass().getField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + if (msgs == null || msg == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + final MglibInterface mglib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = mglib.getMinigame(msgs.minigame()); + if (minigame == null) + { + throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ + } + + final String smsg = minigame.getMessages().getString(locale, msgs.path() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ + return String.format(smsg, (Object[])args); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns a human readable message for this message; the message will be displayed to administrators only. + * + * @param locale + * locale to be used. + * @param args + * object arguments that can be used to build the message. + * @return message string. + */ + default String toAdminMessage(Locale locale, Serializable... args) + { + try + { + final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); + final LocalizedMessage msg = this.getClass().getField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + if (msgs == null || msg == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + final MglibInterface mglib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = mglib.getMinigame(msgs.minigame()); + if (minigame == null) + { + throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ + } + + String smsg = minigame.getMessages().getAdminString(locale, msgs.path() + "." + ((Enum<?>)this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ + if (smsg.length() == 0) + { + smsg = minigame.getMessages().getString(locale, msgs.path() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ + } + return String.format(smsg, (Object[])args); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java new file mode 100644 index 00000000..1b0a42d9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java @@ -0,0 +1,61 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import com.github.mce.minigames.api.PluginProviderInterface; + +/** + * A localized message class used within messages.yml of a plugin; should be used by enumerations that implement the {@link LocalizedMessageInterface}. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(TYPE) +public @interface LocalizedMessages +{ + + /** + * Returns the minigame name used by this localized messages. + * + * <p> + * Thats the string used to register the minigame and returned by {@link PluginProviderInterface#getName()}. + * </p> + * + * @return minigame name + */ + String minigame(); + + /** + * The default locale this plugin uses. + * + * @return default/fallback locale. + */ + String defaultLocale() default "en"; + + /** + * The default path used within messages.yml. + * + * @return default path for this message. + */ + String path(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java new file mode 100644 index 00000000..d3730e02 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +/** + * Message severity enumeration + * + * @author mepeisen + */ +public enum MessageSeverityType +{ + + /** a success message (command succeeded). */ + Success, + + /** an information message. */ + Information, + + /** a warning message. */ + Warning, + + /** an error message. */ + Error, + + /** A winning message (happy mood). */ + Winner, + + /** A losing message (sad mood). */ + Loser + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java new file mode 100644 index 00000000..0b158fb5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import java.util.Locale; + +/** + * Helper interface for accessing messages configuration files. + * + * @author mepeisen + */ +public interface MessagesConfigInterface +{ + + /** + * Returns a string configuration for given option path. + * + * @param locale + * the locale to be used + * @param path + * configuration option path + * @param defaultValue + * default value to return + * @return option value. + */ + String getString(Locale locale, String path, String defaultValue); + + /** + * Returns a string configuration for given option path. + * + * @param locale + * the locale to be used + * @param path + * configuration option path + * @param defaultValue + * default value to return + * @return option value. + */ + String getAdminString(Locale locale, String path, String defaultValue); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java new file mode 100644 index 00000000..0255ad22 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java @@ -0,0 +1,76 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.player; + +import java.util.UUID; + +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.WaitQueue; + +/** + * Interface representing players, maybe inside arenas. + * + * @author mepeisen + */ +public interface ArenaPlayerInterface +{ + + /** + * Returns the bukkit player (if this player is online). + * + * @return bukkit player. + */ + Player getBukkitPlayer(); + + /** + * Returns the name of the player. + * + * @return name of the player. + */ + String getName(); + + /** + * Returns the bukkit offline player. + * + * @return bukkit offline player. + */ + OfflinePlayer getOfflinePlayer(); + + /** + * Returns the players uuid. + * + * @return uuid. + */ + UUID getPlayerUUID(); + + /** + * Returns the arena this player is currently in; within a match. + * + * @return arena or {@code null} if this player is currently not within any arena. + */ + ArenaInterface getArena(); + + /** + * Get the waiting queues this player joined. + * + * @return waiting queues. + */ + Iterable<WaitQueue> getWaitingQueues(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java new file mode 100644 index 00000000..b41a6b80 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java @@ -0,0 +1,67 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.BiConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * the type of the first argument to the operation + * @param <U> + * the type of the second argument to the operation + */ +@FunctionalInterface +public interface MgBiConsumer<T, U> +{ + + /** + * Performs this operation on the given arguments. + * + * @param arg1 + * the first input argument + * @param arg2 + * the second input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(T arg1, U arg2) throws MinigameException; + + /** + * Returns a composed {@code BiConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to + * the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. + * + * @param after + * the operation to perform after this operation + * @return a composed {@code BiConsumer} that performs in sequence this operation followed by the {@code after} operation + * @throws NullPointerException + * if {@code after} is null + */ + default MgBiConsumer<T, U> andThen(MgBiConsumer<? super T, ? super U> after) + { + Objects.requireNonNull(after); + + return (arg1, arg2) -> { + accept(arg1, arg2); + after.accept(arg1, arg2); + }; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java new file mode 100644 index 00000000..ea121f99 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java @@ -0,0 +1,68 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.BiFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * the type of the first argument to the function + * @param <U> + * the type of the second argument to the function + * @param <R> + * the type of the result of the function + */ +@FunctionalInterface +public interface MgBiFunction<T, U, R> +{ + + /** + * Applies this function to the given arguments. + * + * @param arg1 + * the first function argument + * @param arg2 + * the second function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + R apply(T arg1, U arg2) throws MinigameException; + + /** + * Returns a composed function that first applies this function to its input, and then applies the {@code after} function to the result. If evaluation of either function throws an exception, it is + * relayed to the caller of the composed function. + * + * @param <V> + * the type of output of the {@code after} function, and of the composed function + * @param after + * the function to apply after this function is applied + * @return a composed function that first applies this function and then applies the {@code after} function + * @throws NullPointerException + * if after is null + */ + default <V> MgBiFunction<T, U, V> andThen(MgFunction<? super R, ? extends V> after) + { + Objects.requireNonNull(after); + return (T arg1, U arg2) -> after.apply(apply(arg1, arg2)); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java new file mode 100644 index 00000000..9e2814b9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java @@ -0,0 +1,98 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.BiPredicate} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the first argument to the predicate + * @param <U> + * the type of the second argument the predicate + */ +@FunctionalInterface +public interface MgBiPredicate<T, U> +{ + + /** + * Evaluates this predicate on the given arguments. + * + * @param arg1 + * the first input argument + * @param arg2 + * the second input argument + * @return {@code true} if the input arguments match the predicate, otherwise {@code false} + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + boolean test(T arg1, U arg2) throws MinigameException; + + /** + * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ANDed with this predicate + * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgBiPredicate<T, U> and(MgBiPredicate<? super T, ? super U> other) + { + Objects.requireNonNull(other); + return (T arg1, U arg2) -> test(arg1, arg2) && other.test(arg1, arg2); + } + + /** + * Returns a predicate that represents the logical negation of this predicate. + * + * @return a predicate that represents the logical negation of this predicate + */ + default MgBiPredicate<T, U> negate() + { + return (T arg1, U arg2) -> !test(arg1, arg2); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ORed with this predicate + * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgBiPredicate<T, U> or(MgBiPredicate<? super T, ? super U> other) + { + Objects.requireNonNull(other); + return (T arg1, U arg2) -> test(arg1, arg2) || other.test(arg1, arg2); + } +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java new file mode 100644 index 00000000..18d9cb2e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java @@ -0,0 +1,65 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +/** + * Similar to {@link java.util.function.BinaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * the type of the operands and result of the operator + */ +@FunctionalInterface +public interface MgBinaryOperator<T> extends MgBiFunction<T, T, T> +{ + + /** + * Returns a {@link MgBinaryOperator} which returns the lesser of two elements according to the specified {@code Comparator}. + * + * @param <T> + * the type of the input arguments of the comparator + * @param comparator + * a {@code Comparator} for comparing the two values + * @return a {@code MgBinaryOperator} which returns the lesser of its operands, according to the supplied {@code Comparator} + * @throws NullPointerException + * if the argument is null + */ + public static <T> MgBinaryOperator<T> minBy(MgComparator<? super T> comparator) + { + Objects.requireNonNull(comparator); + return (arg1, arg2) -> comparator.compare(arg1, arg2) <= 0 ? arg1 : arg2; + } + + /** + * Returns a {@link MgBinaryOperator} which returns the greater of two elements according to the specified {@code Comparator}. + * + * @param <T> + * the type of the input arguments of the comparator + * @param comparator + * a {@code Comparator} for comparing the two values + * @return a {@code MgBinaryOperator} which returns the greater of its operands, according to the supplied {@code Comparator} + * @throws NullPointerException + * if the argument is null + */ + public static <T> MgBinaryOperator<T> maxBy(MgComparator<? super T> comparator) + { + Objects.requireNonNull(comparator); + return (arg1, arg2) -> comparator.compare(arg1, arg2) >= 0 ? arg1 : arg2; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java new file mode 100644 index 00000000..62a23dd7 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.BooleanSupplier} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgBooleanSupplier +{ + + /** + * Gets a result. + * + * @return a result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + boolean getAsBoolean() throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java new file mode 100644 index 00000000..d296005c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java @@ -0,0 +1,547 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.Comparator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * the type of objects that may be compared by this comparator + */ +@FunctionalInterface +public interface MgComparator<T> +{ + + /** + * Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. + * + * <p> + * In the foregoing description, the notation <tt>sgn(</tt><i>expression</i><tt>)</tt> designates the mathematical <i>signum</i> function, which is defined to return one of <tt>-1</tt>, + * <tt>0</tt>, or <tt>1</tt> according to whether the value of <i>expression</i> is negative, zero or positive. + * </p> + * + * <p> + * The implementor must ensure that <tt>sgn(compare(x, y)) == + * -sgn(compare(y, x))</tt> for all <tt>x</tt> and <tt>y</tt>. (This implies that <tt>compare(x, y)</tt> must throw an exception if and only if <tt>compare(y, x)</tt> throws an exception.) + * </p> + * + * <p> + * The implementor must also ensure that the relation is transitive: <tt>((compare(x, y)>0) && (compare(y, z)>0))</tt> implies <tt>compare(x, z)>0</tt>. + * </p> + * + * <p> + * Finally, the implementor must ensure that <tt>compare(x, y)==0</tt> implies that <tt>sgn(compare(x, z))==sgn(compare(y, z))</tt> for all <tt>z</tt>. + * </p> + * + * <p> + * It is generally the case, but <i>not</i> strictly required that <tt>(compare(x, y)==0) == (x.equals(y))</tt>. Generally speaking, any comparator that violates this condition should clearly + * indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals." + * </p> + * + * @param o1 + * the first object to be compared. + * @param o2 + * the second object to be compared. + * @return a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. + * @throws NullPointerException + * if an argument is null and this comparator does not permit null arguments + * @throws ClassCastException + * if the arguments' types prevent them from being compared by this comparator. + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int compare(T o1, T o2) throws MinigameException; + + /** + * Returns a comparator that imposes the reverse ordering of this comparator. + * + * @return a comparator that imposes the reverse ordering of this comparator. + * @since 1.8 + */ + default MgComparator<T> reversed() + { + return new MgReverseComparator<>(this); + } + + /** + * Reverse comparator. + * + * @param <T> + * the type of objects that may be compared by this comparator + */ + public static final class MgReverseComparator<T> implements MgComparator<T> + { + + /** + * The comparator specified in the static factory. This will never be null, as the static factory returns a ReverseComparator instance if its argument is null. + */ + final MgComparator<T> cmp; + + /** + * Constructor. + * + * @param cmp + * comparator + */ + MgReverseComparator(MgComparator<T> cmp) + { + // assert cmp != null; + this.cmp = cmp; + } + + @Override + public int compare(T t1, T t2) throws MinigameException + { + return this.cmp.compare(t2, t1); + } + + @Override + public MgComparator<T> reversed() + { + return this.cmp; + } + } + + /** + * Returns a lexicographic-order comparator with another comparator. + * + * <p> + * If this {@code Comparator} considers two elements equal, i.e. {@code compare(a, b) == 0}, {@code other} is used to determine the order. + * </p> + * + * <p> + * The returned comparator is serializable if the specified comparator is also serializable. + * </p> + * + * @param other + * the other comparator to be used when this comparator compares two objects that are equal. + * @return a lexicographic-order comparator composed of this and then the other comparator + * @throws NullPointerException + * if the argument is null. + * @since 1.8 + */ + default MgComparator<T> thenComparing(MgComparator<? super T> other) + { + Objects.requireNonNull(other); + return (MgComparator<T>) (c1, c2) -> { + int res = compare(c1, c2); + return (res != 0) ? res : other.compare(c1, c2); + }; + } + + /** + * Returns a lexicographic-order comparator with a function that extracts a key to be compared with the given {@code Comparator}. + * + * @param <U> + * the type of the sort key + * @param keyExtractor + * the function used to extract the sort key + * @param keyComparator + * the {@code Comparator} used to compare the sort key + * @return a lexicographic-order comparator composed of this comparator and then comparing on the key extracted by the keyExtractor function + * @throws NullPointerException + * if either argument is null. + * @see #comparing(MgFunction, MgComparator) + * @see #thenComparing(MgComparator) + * @since 1.8 + */ + default <U> MgComparator<T> thenComparing(MgFunction<? super T, ? extends U> keyExtractor, MgComparator<? super U> keyComparator) + { + return thenComparing(comparing(keyExtractor, keyComparator)); + } + + /** + * Returns a lexicographic-order comparator with a function that extracts a {@code Comparable} sort key. + * + * @param <U> + * the type of the {@link Comparable} sort key + * @param keyExtractor + * the function used to extract the {@link Comparable} sort key + * @return a lexicographic-order comparator composed of this and then the {@link Comparable} sort key. + * @throws NullPointerException + * if the argument is null. + * @see #comparing(MgFunction) + * @see #thenComparing(MgComparator) + * @since 1.8 + */ + default <U extends Comparable<? super U>> MgComparator<T> thenComparing(MgFunction<? super T, ? extends U> keyExtractor) + { + return thenComparing(comparing(keyExtractor)); + } + + /** + * Returns a lexicographic-order comparator with a function that extracts a {@code int} sort key. + * + * @param keyExtractor + * the function used to extract the integer sort key + * @return a lexicographic-order comparator composed of this and then the {@code int} sort key + * @throws NullPointerException + * if the argument is null. + * @see #comparingInt(MgToIntFunction) + * @see #thenComparing(MgComparator) + * @since 1.8 + */ + default MgComparator<T> thenComparingInt(MgToIntFunction<? super T> keyExtractor) + { + return thenComparing(comparingInt(keyExtractor)); + } + + /** + * Returns a lexicographic-order comparator with a function that extracts a {@code long} sort key. + * + * @param keyExtractor + * the function used to extract the long sort key + * @return a lexicographic-order comparator composed of this and then the {@code long} sort key + * @throws NullPointerException + * if the argument is null. + * @see #comparingLong(MgToLongFunction) + * @see #thenComparing(MgComparator) + * @since 1.8 + */ + default MgComparator<T> thenComparingLong(MgToLongFunction<? super T> keyExtractor) + { + return thenComparing(comparingLong(keyExtractor)); + } + + /** + * Returns a lexicographic-order comparator with a function that extracts a {@code double} sort key. + * + * @param keyExtractor + * the function used to extract the double sort key + * @return a lexicographic-order comparator composed of this and then the {@code double} sort key + * @throws NullPointerException + * if the argument is null. + * @see #comparingDouble(MgToDoubleFunction) + * @see #thenComparing(MgComparator) + * @since 1.8 + */ + default MgComparator<T> thenComparingDouble(MgToDoubleFunction<? super T> keyExtractor) + { + return thenComparing(comparingDouble(keyExtractor)); + } + + /** + * Returns a comparator that imposes the reverse of the <em>natural ordering</em>. + * + * <p> + * The returned comparator is serializable and throws {@link NullPointerException} when comparing {@code null}. + * </p> + * + * @param <T> + * the {@link Comparable} type of element to be compared + * @return a comparator that imposes the reverse of the <i>natural ordering</i> on {@code Comparable} objects. + * @see Comparable + * @since 1.8 + */ + @SuppressWarnings("unchecked") + public static <T extends Comparable<? super T>> MgComparator<T> reverseOrder() + { + return (MgComparator<T>) ReverseComparator.INSTANCE; + } + + /** + * The reverse comparator. + */ + enum ReverseComparator implements MgComparator<Comparable<Object>> + { + + /** instance. */ + INSTANCE; + + @Override + public int compare(Comparable<Object> c1, Comparable<Object> c2) + { + return c2.compareTo(c1); + } + + @Override + public MgComparator<Comparable<Object>> reversed() + { + return NaturalOrderComparator.INSTANCE; + } + } + + /** + * Compares {@link Comparable} objects in natural order. + * + * @see Comparable + */ + enum NaturalOrderComparator implements MgComparator<Comparable<Object>> + { + /** instance. */ + INSTANCE; + + @Override + public int compare(Comparable<Object> c1, Comparable<Object> c2) + { + return c1.compareTo(c2); + } + + @Override + public MgComparator<Comparable<Object>> reversed() + { + return ReverseComparator.INSTANCE; + } + } + + /** + * Null-friendly comparators. + * + * @param <T> + * type + */ + public static final class NullComparator<T> implements MgComparator<T> + { + + /** flag nullFirst. */ + private final boolean nullFirst; + + /** real comparator. */ + private final MgComparator<T> real; + + /** + * Constructor. + * + * @param nullFirst + * flag nullFirst. + * @param real + * real cmoparator. + */ + @SuppressWarnings("unchecked") + NullComparator(boolean nullFirst, MgComparator<? super T> real) + { + this.nullFirst = nullFirst; + this.real = (MgComparator<T>) real; + } + + @Override + public int compare(T arg1, T arg2) throws MinigameException + { + if (arg1 == null) + { + return (arg2 == null) ? 0 : (this.nullFirst ? -1 : 1); + } + else if (arg2 == null) + { + return this.nullFirst ? 1 : -1; + } + else + { + return (this.real == null) ? 0 : this.real.compare(arg1, arg2); + } + } + + @Override + public MgComparator<T> thenComparing(MgComparator<? super T> other) + { + Objects.requireNonNull(other); + return new NullComparator<>(this.nullFirst, this.real == null ? other : this.real.thenComparing(other)); + } + + @Override + public MgComparator<T> reversed() + { + return new NullComparator<>(!this.nullFirst, this.real == null ? null : this.real.reversed()); + } + } + + /** + * Returns a comparator that compares {@link Comparable} objects in natural order. + * + * <p> + * The returned comparator is serializable and throws {@link NullPointerException} when comparing {@code null}. + * </p> + * + * @param <T> + * the {@link Comparable} type of element to be compared + * @return a comparator that imposes the <i>natural ordering</i> on {@code + * Comparable} objects. + * @see Comparable + * @since 1.8 + */ + @SuppressWarnings("unchecked") + public static <T extends Comparable<? super T>> MgComparator<T> naturalOrder() + { + return (MgComparator<T>) NaturalOrderComparator.INSTANCE; + } + + /** + * Returns a null-friendly comparator that considers {@code null} to be less than non-null. When both are {@code null}, they are considered equal. If both are non-null, the specified + * {@code Comparator} is used to determine the order. If the specified comparator is {@code null}, then the returned comparator considers all non-null values to be equal. + * + * <p> + * The returned comparator is serializable if the specified comparator is serializable. + * </p> + * + * @param <T> + * the type of the elements to be compared + * @param comparator + * a {@code Comparator} for comparing non-null values + * @return a comparator that considers {@code null} to be less than non-null, and compares non-null objects with the supplied {@code Comparator}. + * @since 1.8 + */ + public static <T> MgComparator<T> nullsFirst(MgComparator<? super T> comparator) + { + return new NullComparator<>(true, comparator); + } + + /** + * Returns a null-friendly comparator that considers {@code null} to be greater than non-null. When both are {@code null}, they are considered equal. If both are non-null, the specified + * {@code Comparator} is used to determine the order. If the specified comparator is {@code null}, then the returned comparator considers all non-null values to be equal. + * + * <p> + * The returned comparator is serializable if the specified comparator is serializable. + * </p> + * + * @param <T> + * the type of the elements to be compared + * @param comparator + * a {@code Comparator} for comparing non-null values + * @return a comparator that considers {@code null} to be greater than non-null, and compares non-null objects with the supplied {@code Comparator}. + * @since 1.8 + */ + public static <T> MgComparator<T> nullsLast(MgComparator<? super T> comparator) + { + return new NullComparator<>(false, comparator); + } + + /** + * Accepts a function that extracts a sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key using the specified {@link MgComparator}. + * + * <p> + * The returned comparator is serializable if the specified function and comparator are both serializable. + * </p> + * + * @param <T> + * the type of element to be compared + * @param <U> + * the type of the sort key + * @param keyExtractor + * the function used to extract the sort key + * @param keyComparator + * the {@code Comparator} used to compare the sort key + * @return a comparator that compares by an extracted key using the specified {@code Comparator} + * @throws NullPointerException + * if either argument is null + * @since 1.8 + */ + public static <T, U> MgComparator<T> comparing(MgFunction<? super T, ? extends U> keyExtractor, MgComparator<? super U> keyComparator) + { + Objects.requireNonNull(keyExtractor); + Objects.requireNonNull(keyComparator); + return (MgComparator<T>) (c1, c2) -> keyComparator.compare(keyExtractor.apply(c1), keyExtractor.apply(c2)); + } + + /** + * Accepts a function that extracts a {@link java.lang.Comparable Comparable} sort key from a type {@code T}, and returns a {@code + * Comparator<T>} that compares by that sort key. + * + * <p> + * The returned comparator is serializable if the specified function is also serializable. + * </p> + * + * @param <T> + * the type of element to be compared + * @param <U> + * the type of the {@code Comparable} sort key + * @param keyExtractor + * the function used to extract the {@link Comparable} sort key + * @return a comparator that compares by an extracted key + * @throws NullPointerException + * if the argument is null + * @since 1.8 + */ + public static <T, U extends Comparable<? super U>> MgComparator<T> comparing(MgFunction<? super T, ? extends U> keyExtractor) + { + Objects.requireNonNull(keyExtractor); + return (MgComparator<T>) (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2)); + } + + /** + * Accepts a function that extracts an {@code int} sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key. + * + * <p> + * The returned comparator is serializable if the specified function is also serializable. + * </p> + * + * @param <T> + * the type of element to be compared + * @param keyExtractor + * the function used to extract the integer sort key + * @return a comparator that compares by an extracted key + * @see #comparing(MgFunction) + * @throws NullPointerException + * if the argument is null + * @since 1.8 + */ + public static <T> MgComparator<T> comparingInt(MgToIntFunction<? super T> keyExtractor) + { + Objects.requireNonNull(keyExtractor); + return (MgComparator<T>) (c1, c2) -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2)); + } + + /** + * Accepts a function that extracts a {@code long} sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key. + * + * <p> + * The returned comparator is serializable if the specified function is also serializable. + * </p> + * + * @param <T> + * the type of element to be compared + * @param keyExtractor + * the function used to extract the long sort key + * @return a comparator that compares by an extracted key + * @see #comparing(MgFunction) + * @throws NullPointerException + * if the argument is null + * @since 1.8 + */ + public static <T> MgComparator<T> comparingLong(MgToLongFunction<? super T> keyExtractor) + { + Objects.requireNonNull(keyExtractor); + return (MgComparator<T>) (c1, c2) -> Long.compare(keyExtractor.applyAsLong(c1), keyExtractor.applyAsLong(c2)); + } + + /** + * Accepts a function that extracts a {@code double} sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key. + * + * <p> + * The returned comparator is serializable if the specified function is also serializable. + * </p> + * + * @param <T> + * the type of element to be compared + * @param keyExtractor + * the function used to extract the double sort key + * @return a comparator that compares by an extracted key + * @see #comparing(MgFunction) + * @throws NullPointerException + * if the argument is null + * @since 1.8 + */ + public static <T> MgComparator<T> comparingDouble(MgToDoubleFunction<? super T> keyExtractor) + { + Objects.requireNonNull(keyExtractor); + return (MgComparator<T>) (c1, c2) -> Double.compare(keyExtractor.applyAsDouble(c1), keyExtractor.applyAsDouble(c2)); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java new file mode 100644 index 00000000..f676a30a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java @@ -0,0 +1,62 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.Consumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * type of the consumed items + */ +@FunctionalInterface +public interface MgConsumer<T> +{ + + /** + * Performs this operation on the given argument. + * + * @param obj + * the input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(T obj) throws MinigameException; + + /** + * Returns a composed {@code Consumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to the + * caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. + * + * @param after + * the operation to perform after this operation + * @return a composed {@code Consumer} that performs in sequence this operation followed by the {@code after} operation + * @throws NullPointerException + * if {@code after} is null + */ + default MgConsumer<T> andThen(MgConsumer<? super T> after) + { + Objects.requireNonNull(after); + return (T obj) -> { + accept(obj); + after.accept(obj); + }; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java new file mode 100644 index 00000000..75da1d5d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleBinaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoubleBinaryOperator +{ + + /** + * Applies this operator to the given operands. + * + * @param left + * the first operand + * @param right + * the second operand + * @return the operator result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + double applyAsDouble(double left, double right) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java new file mode 100644 index 00000000..aad36407 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java @@ -0,0 +1,61 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoubleConsumer +{ + + /** + * Performs this operation on the given argument. + * + * @param value + * the input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(double value) throws MinigameException; + + /** + * Returns a composed {@code DoubleConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed + * to the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. + * + * @param after + * the operation to perform after this operation + * @return a composed {@code DoubleConsumer} that performs in sequence this operation followed by the {@code after} operation + * @throws NullPointerException + * if {@code after} is null + */ + default MgDoubleConsumer andThen(MgDoubleConsumer after) + { + Objects.requireNonNull(after); + return (double value) -> { + accept(value); + after.accept(value); + }; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java new file mode 100644 index 00000000..65ec90cc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <R> + * the type of the result of the function + */ +@FunctionalInterface +public interface MgDoubleFunction<R> +{ + + /** + * Applies this function to the given argument. + * + * @param value + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + R apply(double value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java new file mode 100644 index 00000000..cd5b48f1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java @@ -0,0 +1,93 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoublePredicate} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoublePredicate +{ + + /** + * Evaluates this predicate on the given argument. + * + * @param value + * the input argument + * @return {@code true} if the input argument matches the predicate, otherwise {@code false} + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + boolean test(double value) throws MinigameException; + + /** + * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ANDed with this predicate + * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgDoublePredicate and(MgDoublePredicate other) + { + Objects.requireNonNull(other); + return (value) -> test(value) && other.test(value); + } + + /** + * Returns a predicate that represents the logical negation of this predicate. + * + * @return a predicate that represents the logical negation of this predicate + */ + default MgDoublePredicate negate() + { + return (value) -> !test(value); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ORed with this predicate + * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgDoublePredicate or(MgDoublePredicate other) + { + Objects.requireNonNull(other); + return (value) -> test(value) || other.test(value); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java new file mode 100644 index 00000000..fb364e9f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleSupplier} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoubleSupplier +{ + + /** + * Gets a result. + * + * @return a result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + double getAsDouble() throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java new file mode 100644 index 00000000..8ce06bfc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleToIntFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoubleToIntFunction +{ + + /** + * Applies this function to the given argument. + * + * @param value the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsInt(double value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java new file mode 100644 index 00000000..aa7690d9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleToLongFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoubleToLongFunction +{ + + /** + * Applies this function to the given argument. + * + * @param value the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long applyAsLong(double value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java new file mode 100644 index 00000000..91a9783a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java @@ -0,0 +1,89 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.DoubleUnaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgDoubleUnaryOperator +{ + + /** + * Applies this operator to the given operand. + * + * @param operand + * the operand + * @return the operator result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + double applyAsDouble(double operand) throws MinigameException; + + /** + * Returns a composed operator that first applies the {@code before} operator to its input, and then applies this operator to the result. If evaluation of either operator throws an exception, it + * is relayed to the caller of the composed operator. + * + * @param before + * the operator to apply before this operator is applied + * @return a composed operator that first applies the {@code before} operator and then applies this operator + * @throws NullPointerException + * if before is null + * + * @see #andThen(MgDoubleUnaryOperator) + */ + default MgDoubleUnaryOperator compose(MgDoubleUnaryOperator before) + { + Objects.requireNonNull(before); + return (double value) -> applyAsDouble(before.applyAsDouble(value)); + } + + /** + * Returns a composed operator that first applies this operator to its input, and then applies the {@code after} operator to the result. If evaluation of either operator throws an exception, it is + * relayed to the caller of the composed operator. + * + * @param after + * the operator to apply after this operator is applied + * @return a composed operator that first applies this operator and then applies the {@code after} operator + * @throws NullPointerException + * if after is null + * + * @see #compose(MgDoubleUnaryOperator) + */ + default MgDoubleUnaryOperator andThen(MgDoubleUnaryOperator after) + { + Objects.requireNonNull(after); + return (double value) -> after.applyAsDouble(applyAsDouble(value)); + } + + /** + * Returns a unary operator that always returns its input argument. + * + * @return a unary operator that always returns its input argument + */ + static MgDoubleUnaryOperator identity() + { + return t -> t; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java new file mode 100644 index 00000000..25c83f0d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java @@ -0,0 +1,98 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.Function} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * the type of the input to the function + * @param <R> + * the type of the result of the function + */ +@FunctionalInterface +public interface MgFunction<T, R> +{ + + /** + * Applies this function to the given argument. + * + * @param arg + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + R apply(T arg) throws MinigameException; + + /** + * Returns a composed function that first applies the {@code before} function to its input, and then applies this function to the result. If evaluation of either function throws an exception, it + * is relayed to the caller of the composed function. + * + * @param <V> + * the type of input to the {@code before} function, and to the composed function + * @param before + * the function to apply before this function is applied + * @return a composed function that first applies the {@code before} function and then applies this function + * @throws NullPointerException + * if before is null + * + * @see #andThen(MgFunction) + */ + default <V> MgFunction<V, R> compose(MgFunction<? super V, ? extends T> before) + { + Objects.requireNonNull(before); + return (V arg) -> apply(before.apply(arg)); + } + + /** + * Returns a composed function that first applies this function to its input, and then applies the {@code after} function to the result. If evaluation of either function throws an exception, it is + * relayed to the caller of the composed function. + * + * @param <V> + * the type of output of the {@code after} function, and of the composed function + * @param after + * the function to apply after this function is applied + * @return a composed function that first applies this function and then applies the {@code after} function + * @throws NullPointerException + * if after is null + * + * @see #compose(MgFunction) + */ + default <V> MgFunction<T, V> andThen(MgFunction<? super R, ? extends V> after) + { + Objects.requireNonNull(after); + return (T arg) -> after.apply(apply(arg)); + } + + /** + * Returns a function that always returns its input argument. + * + * @param <T> + * the type of the input and output objects to the function + * @return a function that always returns its input argument + */ + static <T> MgFunction<T, T> identity() + { + return t -> t; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java new file mode 100644 index 00000000..658c9ada --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java @@ -0,0 +1,942 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Comparator; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.BiPredicate; +import java.util.function.BooleanSupplier; +import java.util.function.Consumer; +import java.util.function.DoubleBinaryOperator; +import java.util.function.DoubleConsumer; +import java.util.function.DoubleFunction; +import java.util.function.DoublePredicate; +import java.util.function.DoubleSupplier; +import java.util.function.DoubleToIntFunction; +import java.util.function.DoubleToLongFunction; +import java.util.function.DoubleUnaryOperator; +import java.util.function.Function; +import java.util.function.IntBinaryOperator; +import java.util.function.IntConsumer; +import java.util.function.IntFunction; +import java.util.function.IntPredicate; +import java.util.function.IntSupplier; +import java.util.function.IntToDoubleFunction; +import java.util.function.IntToLongFunction; +import java.util.function.IntUnaryOperator; +import java.util.function.LongBinaryOperator; +import java.util.function.LongConsumer; +import java.util.function.LongFunction; +import java.util.function.LongPredicate; +import java.util.function.LongSupplier; +import java.util.function.LongToDoubleFunction; +import java.util.function.LongToIntFunction; +import java.util.function.LongUnaryOperator; +import java.util.function.ObjDoubleConsumer; +import java.util.function.ObjIntConsumer; +import java.util.function.ObjLongConsumer; +import java.util.function.Predicate; +import java.util.function.Supplier; +import java.util.function.ToDoubleBiFunction; +import java.util.function.ToDoubleFunction; +import java.util.function.ToIntBiFunction; +import java.util.function.ToIntFunction; +import java.util.function.ToLongBiFunction; +import java.util.function.ToLongFunction; +import java.util.function.UnaryOperator; + +import com.github.mce.minigames.api.MinigameException; + +/** + * A helper for mg functions. + * + * @author mepeisen + */ +public class MgFunctionUtils +{ + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, U> BiConsumer<T, U> wrap(MgBiConsumer<T, U> orig) + { + return (T arg1, U arg2) -> { + try + { + orig.accept(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, U, R> BiFunction<T, U, R> wrap(MgBiFunction<T, U, R> orig) + { + return (T arg1, U arg2) -> { + try + { + return orig.apply(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> MgBinaryOperator<T> wrap(MgBinaryOperator<T> orig) + { + return (T arg1, T arg2) -> { + try + { + return orig.apply(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, U> BiPredicate<T, U> wrap(MgBiPredicate<T, U> orig) + { + return (T arg1, U arg2) -> { + try + { + return orig.test(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static BooleanSupplier wrap(MgBooleanSupplier orig) + { + return () -> { + try + { + return orig.getAsBoolean(); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> Comparator<T> wrap(MgComparator<T> orig) + { + return (T arg1, T arg2) -> { + try + { + return orig.compare(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> Consumer<T> wrap(MgConsumer<T> orig) + { + return (T arg) -> { + try + { + orig.accept(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoubleConsumer wrap(MgDoubleConsumer orig) + { + return (double arg) -> { + try + { + orig.accept(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntConsumer wrap(MgIntConsumer orig) + { + return (int arg) -> { + try + { + orig.accept(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongConsumer wrap(MgLongConsumer orig) + { + return (long arg) -> { + try + { + orig.accept(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> DoubleFunction<T> wrap(MgDoubleFunction<T> orig) + { + return (double arg) -> { + try + { + return orig.apply(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoubleSupplier wrap(MgDoubleSupplier orig) + { + return () -> { + try + { + return orig.getAsDouble(); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoublePredicate wrap(MgDoublePredicate orig) + { + return (double arg) -> { + try + { + return orig.test(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoubleToIntFunction wrap(MgDoubleToIntFunction orig) + { + return (double arg) -> { + try + { + return orig.applyAsInt(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoubleToLongFunction wrap(MgDoubleToLongFunction orig) + { + return (double arg) -> { + try + { + return orig.applyAsLong(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoubleUnaryOperator wrap(MgDoubleUnaryOperator orig) + { + return (double arg) -> { + try + { + return orig.applyAsDouble(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static DoubleBinaryOperator wrap(MgDoubleBinaryOperator orig) + { + return (double arg1, double arg2) -> { + try + { + return orig.applyAsDouble(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, R> Function<T, R> wrap(MgFunction<T, R> orig) + { + return (T arg) -> { + try + { + return orig.apply(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> IntFunction<T> wrap(MgIntFunction<T> orig) + { + return (int arg) -> { + try + { + return orig.apply(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntSupplier wrap(MgIntSupplier orig) + { + return () -> { + try + { + return orig.getAsInt(); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntPredicate wrap(MgIntPredicate orig) + { + return (int arg) -> { + try + { + return orig.test(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntToDoubleFunction wrap(MgIntToDoubleFunction orig) + { + return (int arg) -> { + try + { + return orig.applyAsDouble(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntToLongFunction wrap(MgIntToLongFunction orig) + { + return (int arg) -> { + try + { + return orig.applyAsLong(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntUnaryOperator wrap(MgIntUnaryOperator orig) + { + return (int arg) -> { + try + { + return orig.applyAsInt(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static IntBinaryOperator wrap(MgIntBinaryOperator orig) + { + return (int arg1, int arg2) -> { + try + { + return orig.applyAsInt(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> LongFunction<T> wrap(MgLongFunction<T> orig) + { + return (long arg) -> { + try + { + return orig.apply(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongSupplier wrap(MgLongSupplier orig) + { + return () -> { + try + { + return orig.getAsLong(); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongPredicate wrap(MgLongPredicate orig) + { + return (long arg) -> { + try + { + return orig.test(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongToIntFunction wrap(MgLongToIntFunction orig) + { + return (long arg) -> { + try + { + return orig.applyAsInt(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongToDoubleFunction wrap(MgLongToDoubleFunction orig) + { + return (long arg) -> { + try + { + return orig.applyAsDouble(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongUnaryOperator wrap(MgLongUnaryOperator orig) + { + return (long arg) -> { + try + { + return orig.applyAsLong(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static LongBinaryOperator wrap(MgLongBinaryOperator orig) + { + return (long arg1, long arg2) -> { + try + { + return orig.applyAsLong(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> ObjDoubleConsumer<T> wrap(MgObjDoubleConsumer<T> orig) + { + return (T arg1, double arg2) -> { + try + { + orig.accept(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> ObjIntConsumer<T> wrap(MgObjIntConsumer<T> orig) + { + return (T arg1, int arg2) -> { + try + { + orig.accept(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> ObjLongConsumer<T> wrap(MgObjLongConsumer<T> orig) + { + return (T arg1, long arg2) -> { + try + { + orig.accept(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> Predicate<T> wrap(MgPredicate<T> orig) + { + return (T arg) -> { + try + { + return orig.test(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> Supplier<T> wrap(MgSupplier<T> orig) + { + return () -> { + try + { + return orig.get(); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, U> ToDoubleBiFunction<T, U> wrap(MgToDoubleBiFunction<T, U> orig) + { + return (T arg1, U arg2) -> { + try + { + return orig.applyAsDouble(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> ToDoubleFunction<T> wrap(MgToDoubleFunction<T> orig) + { + return (T arg) -> { + try + { + return orig.applyAsDouble(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, U> ToIntBiFunction<T, U> wrap(MgToIntBiFunction<T, U> orig) + { + return (T arg1, U arg2) -> { + try + { + return orig.applyAsInt(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> ToIntFunction<T> wrap(MgToIntFunction<T> orig) + { + return (T arg) -> { + try + { + return orig.applyAsInt(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T, U> ToLongBiFunction<T, U> wrap(MgToLongBiFunction<T, U> orig) + { + return (T arg1, U arg2) -> { + try + { + return orig.applyAsLong(arg1, arg2); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> ToLongFunction<T> wrap(MgToLongFunction<T> orig) + { + return (T arg) -> { + try + { + return orig.applyAsLong(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + /** + * Creates a wrapper to use a mg lambda as a java util lambda. + * @param orig original. + * @return java util variant. + */ + public static <T> UnaryOperator<T> wrap(MgUnaryOperator<T> orig) + { + return (T arg) -> { + try + { + return orig.apply(arg); + } + catch (MinigameException ex) + { + throw new WrappedException(ex); + } + }; + } + + + /** + * Exception wrapping. + * @author mepeisen + */ + public static final class WrappedException extends RuntimeException + { + + /** + * serial version uid. + */ + private static final long serialVersionUID = -809099844875692391L; + + /** + * Constructor for wrapping. + * @param cause mg exception. + */ + public WrappedException(MinigameException cause) + { + super(cause); + } + + /** + * Unraps this exception. + * @return nested mg exception. + */ + public MinigameException unwrap() + { + return (MinigameException) this.getCause(); + } + + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java new file mode 100644 index 00000000..fd1abf13 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntBinaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntBinaryOperator +{ + + /** + * Applies this operator to the given operands. + * + * @param left + * the first operand + * @param right + * the second operand + * @return the operator result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsInt(int left, int right) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java new file mode 100644 index 00000000..68d1c78b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java @@ -0,0 +1,61 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntConsumer +{ + + /** + * Performs this operation on the given argument. + * + * @param value + * the input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(int value) throws MinigameException; + + /** + * Returns a composed {@code IntConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to + * the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. + * + * @param after + * the operation to perform after this operation + * @return a composed {@code IntConsumer} that performs in sequence this operation followed by the {@code after} operation + * @throws NullPointerException + * if {@code after} is null + */ + default MgIntConsumer andThen(MgIntConsumer after) + { + Objects.requireNonNull(after); + return (int value) -> { + accept(value); + after.accept(value); + }; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java new file mode 100644 index 00000000..46bd867a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <R> + * the type of the result of the function + */ +@FunctionalInterface +public interface MgIntFunction<R> +{ + + /** + * Applies this function to the given argument. + * + * @param value + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + R apply(int value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java new file mode 100644 index 00000000..0919ad95 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java @@ -0,0 +1,93 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntPredicate} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntPredicate +{ + + /** + * Evaluates this predicate on the given argument. + * + * @param value + * the input argument + * @return {@code true} if the input argument matches the predicate, otherwise {@code false} + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + boolean test(int value) throws MinigameException; + + /** + * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ANDed with this predicate + * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgIntPredicate and(MgIntPredicate other) + { + Objects.requireNonNull(other); + return (value) -> test(value) && other.test(value); + } + + /** + * Returns a predicate that represents the logical negation of this predicate. + * + * @return a predicate that represents the logical negation of this predicate + */ + default MgIntPredicate negate() + { + return (value) -> !test(value); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ORed with this predicate + * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgIntPredicate or(MgIntPredicate other) + { + Objects.requireNonNull(other); + return (value) -> test(value) || other.test(value); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java new file mode 100644 index 00000000..b3f256ab --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntSupplier} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntSupplier +{ + + /** + * Gets a result. + * + * @return a result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int getAsInt() throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java new file mode 100644 index 00000000..599615a8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntToDoubleFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntToDoubleFunction +{ + + /** + * Applies this function to the given argument. + * + * @param value the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + double applyAsDouble(int value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java new file mode 100644 index 00000000..da669223 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntToLongFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntToLongFunction +{ + + /** + * Applies this function to the given argument. + * + * @param value the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long applyAsLong(int value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java new file mode 100644 index 00000000..a6687638 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java @@ -0,0 +1,89 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.IntUnaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgIntUnaryOperator +{ + + /** + * Applies this operator to the given operand. + * + * @param operand + * the operand + * @return the operator result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsInt(int operand) throws MinigameException; + + /** + * Returns a composed operator that first applies the {@code before} operator to its input, and then applies this operator to the result. If evaluation of either operator throws an exception, it + * is relayed to the caller of the composed operator. + * + * @param before + * the operator to apply before this operator is applied + * @return a composed operator that first applies the {@code before} operator and then applies this operator + * @throws NullPointerException + * if before is null + * + * @see #andThen(MgIntUnaryOperator) + */ + default MgIntUnaryOperator compose(MgIntUnaryOperator before) + { + Objects.requireNonNull(before); + return (int value) -> applyAsInt(before.applyAsInt(value)); + } + + /** + * Returns a composed operator that first applies this operator to its input, and then applies the {@code after} operator to the result. If evaluation of either operator throws an exception, it is + * relayed to the caller of the composed operator. + * + * @param after + * the operator to apply after this operator is applied + * @return a composed operator that first applies this operator and then applies the {@code after} operator + * @throws NullPointerException + * if after is null + * + * @see #compose(MgIntUnaryOperator) + */ + default MgIntUnaryOperator andThen(MgIntUnaryOperator after) + { + Objects.requireNonNull(after); + return (int value) -> after.applyAsInt(applyAsInt(value)); + } + + /** + * Returns a unary operator that always returns its input argument. + * + * @return a unary operator that always returns its input argument + */ + static MgIntUnaryOperator identity() + { + return t -> t; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java new file mode 100644 index 00000000..66f0359c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongBinaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongBinaryOperator +{ + + /** + * Applies this operator to the given operands. + * + * @param left + * the first operand + * @param right + * the second operand + * @return the operator result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long applyAsLong(long left, long right) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java new file mode 100644 index 00000000..0c3d8e0d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java @@ -0,0 +1,61 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongConsumer +{ + + /** + * Performs this operation on the given argument. + * + * @param value + * the input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(long value) throws MinigameException; + + /** + * Returns a composed {@code LongConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to + * the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. + * + * @param after + * the operation to perform after this operation + * @return a composed {@code LongConsumer} that performs in sequence this operation followed by the {@code after} operation + * @throws NullPointerException + * if {@code after} is null + */ + default MgLongConsumer andThen(MgLongConsumer after) + { + Objects.requireNonNull(after); + return (long value) -> { + accept(value); + after.accept(value); + }; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java new file mode 100644 index 00000000..e8242e13 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <R> + * the type of the result of the function + */ +@FunctionalInterface +public interface MgLongFunction<R> +{ + + /** + * Applies this function to the given argument. + * + * @param value + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + R apply(long value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java new file mode 100644 index 00000000..9ec0977f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java @@ -0,0 +1,93 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongPredicate} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongPredicate +{ + + /** + * Evaluates this predicate on the given argument. + * + * @param value + * the input argument + * @return {@code true} if the input argument matches the predicate, otherwise {@code false} + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + boolean test(long value) throws MinigameException; + + /** + * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ANDed with this predicate + * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgLongPredicate and(MgLongPredicate other) + { + Objects.requireNonNull(other); + return (value) -> test(value) && other.test(value); + } + + /** + * Returns a predicate that represents the logical negation of this predicate. + * + * @return a predicate that represents the logical negation of this predicate + */ + default MgLongPredicate negate() + { + return (value) -> !test(value); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ORed with this predicate + * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgLongPredicate or(MgLongPredicate other) + { + Objects.requireNonNull(other); + return (value) -> test(value) || other.test(value); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java new file mode 100644 index 00000000..e5015f1f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongSupplier} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongSupplier +{ + + /** + * Gets a result. + * + * @return a result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long getAsLong() throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java new file mode 100644 index 00000000..aa1da742 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongToDoubleFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongToDoubleFunction +{ + + /** + * Applies this function to the given argument. + * + * @param value the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsDouble(long value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java new file mode 100644 index 00000000..848a465e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongToIntFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongToIntFunction +{ + + /** + * Applies this function to the given argument. + * + * @param value the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsInt(long value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java new file mode 100644 index 00000000..3c5a81dd --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java @@ -0,0 +1,89 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.LongUnaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + */ +@FunctionalInterface +public interface MgLongUnaryOperator +{ + + /** + * Applies this operator to the given operand. + * + * @param operand + * the operand + * @return the operator result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long applyAsLong(long operand) throws MinigameException; + + /** + * Returns a composed operator that first applies the {@code before} operator to its input, and then applies this operator to the result. If evaluation of either operator throws an exception, it + * is relayed to the caller of the composed operator. + * + * @param before + * the operator to apply before this operator is applied + * @return a composed operator that first applies the {@code before} operator and then applies this operator + * @throws NullPointerException + * if before is null + * + * @see #andThen(MgLongUnaryOperator) + */ + default MgLongUnaryOperator compose(MgLongUnaryOperator before) + { + Objects.requireNonNull(before); + return (long value) -> applyAsLong(before.applyAsLong(value)); + } + + /** + * Returns a composed operator that first applies this operator to its input, and then applies the {@code after} operator to the result. If evaluation of either operator throws an exception, it is + * relayed to the caller of the composed operator. + * + * @param after + * the operator to apply after this operator is applied + * @return a composed operator that first applies this operator and then applies the {@code after} operator + * @throws NullPointerException + * if after is null + * + * @see #compose(MgLongUnaryOperator) + */ + default MgLongUnaryOperator andThen(MgLongUnaryOperator after) + { + Objects.requireNonNull(after); + return (long value) -> after.applyAsLong(applyAsLong(value)); + } + + /** + * Returns a unary operator that always returns its input argument. + * + * @return a unary operator that always returns its input argument + */ + static MgLongUnaryOperator identity() + { + return t -> t; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java new file mode 100644 index 00000000..c2fe7fc5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ObjDoubleConsumer} but is able to throw MinigameExceptions, takes a boolean as second argument. + * + * @author mepeisen + * + * @param <T> + * the type of the object argument to the operation + */ +@FunctionalInterface +public interface MgObjBooleanConsumer<T> +{ + + /** + * Performs this operation on the given arguments. + * + * @param obj + * the first input argument + * @param value + * the second input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(T obj, boolean value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java new file mode 100644 index 00000000..9a6e69a1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ObjDoubleConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the object argument to the operation + */ +@FunctionalInterface +public interface MgObjDoubleConsumer<T> +{ + + /** + * Performs this operation on the given arguments. + * + * @param obj + * the first input argument + * @param value + * the second input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(T obj, double value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java new file mode 100644 index 00000000..cbffbd88 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ObjIntConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the object argument to the operation + */ +@FunctionalInterface +public interface MgObjIntConsumer<T> +{ + + /** + * Performs this operation on the given arguments. + * + * @param obj + * the first input argument + * @param value + * the second input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(T obj, int value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java new file mode 100644 index 00000000..e10c9e93 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ObjLongConsumer} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the object argument to the operation + */ +@FunctionalInterface +public interface MgObjLongConsumer<T> +{ + + /** + * Performs this operation on the given arguments. + * + * @param obj + * the first input argument + * @param value + * the second input argument + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + void accept(T obj, long value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java new file mode 100644 index 00000000..88702ca9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java @@ -0,0 +1,99 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.io.Serializable; + +import com.github.mce.minigames.api.MinigameErrorCode; +import com.github.mce.minigames.api.MinigameException; + +/** + * A stubbing interface for outgoing answers. + * + * @author mepeisen + * @param <T> + * consumed object class + */ +public interface MgOutgoingStubbing<T> +{ + + /** + * Let the given consumer be invoked if the condition meets the criteria. + * + * @param consumer + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> then(MgConsumer<T> consumer); + + /** + * Let us throw an exception if the condition meets the criteria. + * + * @param consumer + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer); + + /** + * Let us throw an exception if the condition meets the criteria. + * + * @param code + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code); + + /** + * Let the given consumer be invoked if the condition does not meet the criteria. + * + * @param consumer + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> _else(MgConsumer<T> consumer); + + /** + * Let the given consumer be invoked if the condition does not meet the criteria. + * + * @param consumer + * @param args + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> _else(MgConsumer<T> consumer, MgFunction<T, Serializable[]> args); + + /** + * Let us throw an exception if the condition does not meet the criteria. + * + * @param consumer + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer); + + /** + * Let us throw an exception if the condition does not meet the criteria. + * + * @param code + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code); + + /** + * Let us throw an exception if the condition does not meet the criteria. + * + * @param code + * @param args + * @return this object for chaining additional then or else consumers. + */ + MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java new file mode 100644 index 00000000..944ad522 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java @@ -0,0 +1,109 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import java.util.Objects; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.Predicate} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the input to the predicate + */ +@FunctionalInterface +public interface MgPredicate<T> +{ + + /** + * Evaluates this predicate on the given argument. + * + * @param arg + * the input argument + * @return {@code true} if the input argument matches the predicate, otherwise {@code false} + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + boolean test(T arg) throws MinigameException; + + /** + * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ANDed with this predicate + * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgPredicate<T> and(MgPredicate<? super T> other) + { + Objects.requireNonNull(other); + return (arg) -> test(arg) && other.test(arg); + } + + /** + * Returns a predicate that represents the logical negation of this predicate. + * + * @return a predicate that represents the logical negation of this predicate + */ + default MgPredicate<T> negate() + { + return (arg) -> !test(arg); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the + * {@code other} predicate is not evaluated. + * + * <p> + * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. + * </p> + * + * @param other + * a predicate that will be logically-ORed with this predicate + * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate + * @throws NullPointerException + * if other is null + */ + default MgPredicate<T> or(MgPredicate<? super T> other) + { + Objects.requireNonNull(other); + return (arg) -> test(arg) || other.test(arg); + } + + /** + * Returns a predicate that tests if two arguments are equal according to {@link Objects#equals(Object, Object)}. + * + * @param <T> + * the type of arguments to the predicate + * @param targetRef + * the object reference with which to compare for equality, which may be {@code null} + * @return a predicate that tests if two arguments are equal according to {@link Objects#equals(Object, Object)} + */ + static <T> MgPredicate<T> isEqual(Object targetRef) + { + return (null == targetRef) ? Objects::isNull : object -> targetRef.equals(object); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java new file mode 100644 index 00000000..068b3305 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.Supplier} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * object type + */ +@FunctionalInterface +public interface MgSupplier<T> +{ + + /** + * Gets a result. + * + * @return a result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + T get() throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java new file mode 100644 index 00000000..55276eb4 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ToDoubleBiFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> the type of the first argument to the function + * @param <U> the type of the second argument to the function + * + */ +@FunctionalInterface +public interface MgToDoubleBiFunction<T, U> +{ + + /** + * Applies this function to the given arguments. + * + * @param arg1 the first function argument + * @param arg2 the second function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + double applyAsDouble(T arg1, U arg2) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java new file mode 100644 index 00000000..d2ba9d92 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ToDoubleFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the input to the function + * + */ +@FunctionalInterface +public interface MgToDoubleFunction<T> +{ + + /** + * Applies this function to the given argument. + * + * @param value + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + double applyAsDouble(T value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java new file mode 100644 index 00000000..73d6e0ae --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java @@ -0,0 +1,47 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ToIntBiFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the first argument to the function + * @param <U> + * the type of the second argument to the function + */ +@FunctionalInterface +public interface MgToIntBiFunction<T, U> +{ + + /** + * Applies this function to the given arguments. + * + * @param arg1 + * the first function argument + * @param arg2 + * the second function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsInt(T arg1, U arg2) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java new file mode 100644 index 00000000..d0ed0c8d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ToIntFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * @param <T> + * the type of the input to the function + * + */ +@FunctionalInterface +public interface MgToIntFunction<T> +{ + + /** + * Applies this function to the given argument. + * + * @param value + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + int applyAsInt(T value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java new file mode 100644 index 00000000..72d94a4e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ToLongBiFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> the type of the first argument to the function + * @param <U> the type of the second argument to the function + */ +@FunctionalInterface +public interface MgToLongBiFunction<T, U> +{ + + /** + * Applies this function to the given arguments. + * + * @param arg1 the first function argument + * @param arg2 the second function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long applyAsLong(T arg1, U arg2) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java new file mode 100644 index 00000000..81227852 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * Similar to {@link java.util.function.ToLongFunction} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the input to the function + */ +@FunctionalInterface +public interface MgToLongFunction<T> +{ + + /** + * Applies this function to the given argument. + * + * @param value + * the function argument + * @return the function result + * @throws MinigameException + * thrown on problems, f.e. networking errors. + */ + long applyAsLong(T value) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java new file mode 100644 index 00000000..124c6a93 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java @@ -0,0 +1,42 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +/** + * Similar to {@link java.util.function.UnaryOperator} but is able to throw MinigameExceptions. + * + * @author mepeisen + * + * @param <T> + * the type of the operand and result of the operator + */ +@FunctionalInterface +public interface MgUnaryOperator<T> extends MgFunction<T, T> +{ + + /** + * Returns a unary operator that always returns its input argument. + * + * @param <T> + * the type of the input and output of the operator + * @return a unary operator that always returns its input argument + */ + static <T> MgUnaryOperator<T> identity() + { + return t -> t; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java new file mode 100644 index 00000000..572b6e53 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java @@ -0,0 +1,25 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.zones; + +/** + * @author mepeisen + * + */ +public interface ZoneInterface +{ + +} diff --git a/APIv2/src/site/markdown/features.md b/APIv2/src/site/markdown/features.md new file mode 100644 index 00000000..81f5c180 --- /dev/null +++ b/APIv2/src/site/markdown/features.md @@ -0,0 +1,169 @@ +# Minigames-Lib 2.0 - Features (user/admin view) + +## Existing/ old features + +### Easy Minigame installation + +The original Minigames-Lib V1 already introduces a smart way: Plug & Play. + +The library itself and the minigames can be used without any additional configuration. All features that +require additional configuration are optional. For example a missing mysql configuration means "we do not +need mysql". + +The games are Plug & Play too. After putting the jar into your server start it, go to the game world, +build up an arena and let the games begin. + +### Arenasystem + +The arena system provides a way to declare zones (with or without bounds) for a minigame. Within this +zones a minigame match is talking part. + +In 2.0 this won't change. However it is changed under the hood. We will divide the arena from +zones and gaming rules. Old arenas from v1 can be migrated to the new semantic (backward compatibility). +But new arenas can contain more than one zone combining different gaming rules. + +Arenas are identified by internal names. The following names are preserved by the library itself: + +* core +* join +* leave +* random +* mglib* (Everything starting with mglib). + +Creating arenas with these keywords will fail in 2.0. + +### Customizable arena system + +InstanceLabs already created a highly configurable arena system. Most aspects of arenas can be changed. + +However the customization options will be increased in v2.0. A minigame developer can make gaming rules static, +customizable or optional. + +Customizable gaming rules can be changed by administrators or during player votes. + +Optional gaming rules can be removed completly by administrators or during player votes. + +### Different minigame types + +InstanceLabs already introduces the following gaming types: + +* Arcade +* Jump&Run +* Default/ Regeneration + +We will follow this principle but internally the code is refactored. In 2.0 the arcade system will be completly +isolated from the arena system. The arcade represents a way how the players join the arena and what is happening +after the game ends/ they leave. It is not meant to be a minigame type at all. + +In 2.0 we will add two new features beside the arcade: + +* Arena groups: Grouping arenas will result in additional features. For example you can group arenas of multiple + minigames to let the player join a random game of this group. An arena group can be created so that the players + can stay within this group after match completes and vote for a new game or map within a special group lobby. +* Map rotation: Map rotation was already part of v1.0. However this feature was very simple. Within 2.0 we will + add more options to customize map rotation. + +### VIP arenas + +Arenas can be marked as VIP-Arenas. A VIP-Arena requires a special permission to join. VIPs can join a waiting +lobby even if there are too many players. A non-vip is kicked. + +We do not change this behavior in version 2.0 + +### Economy, command and item rewards + +The reward system allows to configure economy, command or item rewards upon game events. + +In 1.0 one gets rewards on following events: +* win +* participating (lose) +* kills + +There are boost items you can buy inside the shop. Those ensure the rewards are multiplied by 2 oder 3. + +In version 2 we do not change this feature. We extend it a little bit to give the administrator more control +over the rewards. + +The rewards itself are using a new API in version 2.0. A minigame writer can introduce more reward types if needed. +For example the developer may decide to create rewards for reaching achievements. + +### Overall Customization/Attributes like player counts, countdowns, spawns, boundaries etc. + +The Minigames Lib already has a huge set of configuration properties. There will be no changes at this point. + +Each configuration property is migrated to the new game rules. There will be some more configuration options +on the gaming rules in version 2.0. + +### Signs and corresponding Arena states + +TODO + +### Fast map regeneration mechanism + +TODO + +### Kits/Classes and Classes Gui + +TODO + +### Arcade system + +TODO + +### MySQL/SQLite support + +TODO + +### Guns API (unfinished and only in use in Warlock Tactical right now) + +TODO + +### Bungee support including signs + +TODO + +### Party (/party) + +TODO + +### Achievements + +TODO + +### Additional shops with Gui + +TODO + +### Included effects like blood or dead bodies lying around + +TODO + +### Holograms and Scoreboards + +TODO + +## New features of the library in version 2.0: + +### Multi-language support + +TODO + +### Declarative arena and game types, use game rules instead of writing code + +TODO + +### Multiple arena zones/locations with individual rules + +TODO + +### Smart administration Gui + +TODO + +### Persistent game states + +TODO + +### Better support for Bungee-Clusters and Multi-World systems + +TODO diff --git a/APIv2/src/site/markdown/gamerules.md b/APIv2/src/site/markdown/gamerules.md new file mode 100644 index 00000000..3204d588 --- /dev/null +++ b/APIv2/src/site/markdown/gamerules.md @@ -0,0 +1,48 @@ +# Minigames-Lib 2.0 - Game rules + +## Existing rules from v1.0 + +TODO + +## Existing features from v1.0 + +TODO + +* Sign updates + +## Existing commands from v1.0 + +### /start + +#### isSenderPlayer: + if (!(sender instanceof Player)) + { + sender.sendMessage(Messages.getString("MinigamesAPI.ExecuteIngame", LOCALE)); //$NON-NLS-1$ + return true; + } + +#### hasPermission + if (!sender.hasPermission(PermissionStrings.MINIGAMES_START)) + { + sender.sendMessage(Messages.getString("MinigamesAPI.NoPermissionForStart", LOCALE)); //$NON-NLS-1$ + return true; + } + +#### ifNotInArena + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + if (pli.containsGlobalPlayer(p.getName())) + { + .... (return) + } + } + sender.sendMessage(Messages.getString("MinigamesAPI.StartNotWithinArena", LOCALE)); //$NON-NLS-1$ + +#### ifInArena + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + if (pli.containsGlobalPlayer(p.getName())) + { + .... (return) + } + } \ No newline at end of file diff --git a/APIv2/src/site/markdown/index.md b/APIv2/src/site/markdown/index.md new file mode 100644 index 00000000..755f927b --- /dev/null +++ b/APIv2/src/site/markdown/index.md @@ -0,0 +1,45 @@ +# Minigames-Lib 2.0 - Introduction + +The old Minigames-Lib from InstanceLabs was already great. But it was hard to maintain and fix bugs. +Realizing new features and games that behave different from standard was difficult. + +InstanceLabs was already dreaming of doing automated testing. However this is very difficult in +minecraft servers. + +So I decided to completely rewrite the library using modern patterns and java 1.8 features. + +Main features of the library: + +* Arenasystem +* Customizable messages +* Different minigame types +* VIP arenas +* Economy, command and item rewards +* Overall Customization/Attributes like player counts, countdowns, spawns, boundaries etc. +* Signs and corresponding Arena states +* Fast map regeneration mechanism +* Kits/Classes and Classes Gui +* Arcade system +* MySQL/SQLite support +* Guns API (unfinished and only in use in Warlock Tactical right now) +* Bungee support including signs +* Party (/party) +* Achievements +* Additional shops with Gui +* Included effects like blood or dead bodies lying around +* Holograms and Scoreboards + +New features of the library in version 2.0: + +* Multi-language support +* Declarative arena and game types, use game rules instead of writing code +* Multiple arena zones/locations with individual rules +* Smart administration Gui +* Persistent game states +* Better support for Bungee-Clusters and Multi-World systems +* Gaming votes +* Arena groups +* Map rotation +* Highscores + + diff --git a/APIv2/src/site/markdown/roadmap.md b/APIv2/src/site/markdown/roadmap.md new file mode 100644 index 00000000..a55e430b --- /dev/null +++ b/APIv2/src/site/markdown/roadmap.md @@ -0,0 +1,50 @@ +# Minigames-Lib 2.0 - Roadmap + +## Milestone 1 - Showcase + +Create a simple show case including a small minigame. Following features should be realized: + +* Multi-Language Support +* Registering Minigames +* Chat command backend +* Creating a minigame arena via chat commands +* Creating a join sign +* Click a join sign +* Smart reset + +The game itself should be very simple. + +It should use a new declarative language to define the gaming rules. + +## Milestone 2 - Shop and GUI + +* Add multiple configurable shop systems +* GUI commands for the administrators +* GUI commands for users + +## Milestone 3 - Classes, Guns and game rules + +* Add classes and alolow them to influence the gaming rules. +* At the most game rules to build every (existing) game. +* Add the guns system. +* Skulls +* Team arenas/ Team support +* Persistent game states + +## Milestone 4 - Arcade, Map rotation and bungee + +* Bungee support +* More signs +* Arcade system +* Party system + +## Milestone 5 - Achievements, Rewards etc. + +* Achievements +* Rewards +* Effects +* NPCs, Monsters +* Clickable blocks (Chests etc.) +* Statistics +* Holograms +* Scoreboards diff --git a/APIv2/src/site/site.xml b/APIv2/src/site/site.xml new file mode 100644 index 00000000..d3d20748 --- /dev/null +++ b/APIv2/src/site/site.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<project name="Maven"> + <bannerLeft> + <name>Maven</name> + <src>http://maven.apache.org/images/apache-maven-project.png</src> + <href>http://maven.apache.org/</href> + </bannerLeft> + <bannerRight> + <src>http://maven.apache.org/images/maven-small.gif</src> + </bannerRight> + <body> + <links> + <item name="Apache" href="http://www.apache.org/" /> + <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x/"/> + <item name="Maven 2" href="http://maven.apache.org/"/> + </links> + + <menu name="Minigames-Lib 2.0"> + <item name="Introduction" href="index.html"/> + <item name="Features" href="features.html" /> + <item name="Road Map" href="roadmap.html" /> + <item name="Development" href="development.html" /> + <item name="Game rules" href="gamerules.html" /> + </menu> + + <menu ref="reports"/> + + </body> +</project> \ No newline at end of file diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java new file mode 100644 index 00000000..9ef10a07 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java @@ -0,0 +1,336 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinecraftVersionsType; + + +/** + * Test for the version types. + * + * @author mepeisen + * @see MinecraftVersionsType + */ +public class VersionTypeTest +{ + + /** + * tests the ordinal values. + */ + @Test + public void testOrdinals() + { + assertEquals(0, MinecraftVersionsType.Unknown.ordinal()); + assertEquals(1, MinecraftVersionsType.V1_7.ordinal()); + assertEquals(2, MinecraftVersionsType.V1_7_R1.ordinal()); + assertEquals(3, MinecraftVersionsType.V1_7_R2.ordinal()); + assertEquals(4, MinecraftVersionsType.V1_7_R3.ordinal()); + assertEquals(5, MinecraftVersionsType.V1_7_R4.ordinal()); + assertEquals(6, MinecraftVersionsType.V1_8.ordinal()); + assertEquals(7, MinecraftVersionsType.V1_8_R1.ordinal()); + assertEquals(8, MinecraftVersionsType.V1_8_R2.ordinal()); + assertEquals(9, MinecraftVersionsType.V1_9.ordinal()); + assertEquals(10, MinecraftVersionsType.V1_9_R1.ordinal()); + assertEquals(11, MinecraftVersionsType.V1_9_R2.ordinal()); + assertEquals(12, MinecraftVersionsType.V1_10.ordinal()); + assertEquals(13, MinecraftVersionsType.V1_10_R1.ordinal()); + } + + /** + * Tests the supported flags. + */ + @Test + public void testSupported() + { + assertFalse(MinecraftVersionsType.Unknown.isSupported()); + assertTrue(MinecraftVersionsType.V1_7.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R1.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R2.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R3.isSupported()); + assertTrue(MinecraftVersionsType.V1_7_R4.isSupported()); + assertTrue(MinecraftVersionsType.V1_8.isSupported()); + assertTrue(MinecraftVersionsType.V1_8_R1.isSupported()); + assertTrue(MinecraftVersionsType.V1_8_R2.isSupported()); + assertTrue(MinecraftVersionsType.V1_9.isSupported()); + assertTrue(MinecraftVersionsType.V1_9_R1.isSupported()); + assertTrue(MinecraftVersionsType.V1_9_R2.isSupported()); + assertTrue(MinecraftVersionsType.V1_10.isSupported()); + assertTrue(MinecraftVersionsType.V1_10_R1.isSupported()); + } + + /** + * tests the isEqual method + */ + @Test + public void testEquals() + { + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R2.isEqual(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7_R2.isEqual(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R3.isEqual(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7_R3.isEqual(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_7)); + + assertTrue(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R1.isEqual(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8_R1.isEqual(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.V1_8)); + + assertTrue(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.V1_9)); + assertTrue(MinecraftVersionsType.V1_9_R2.isEqual(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R2.isEqual(MinecraftVersionsType.V1_9)); + + assertTrue(MinecraftVersionsType.V1_10.isEqual(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_10)); + + assertTrue(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.Unknown)); + + assertFalse(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_10_R1)); + + assertFalse(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_9_R2)); + } + + /** + * tests the isBelow method + */ + @Test + public void testIsBelow() + { + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R2.isBelow(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R2.isBelow(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R3.isBelow(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7_R3.isBelow(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_7)); + + assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R1.isBelow(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8_R1.isBelow(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.V1_8)); + + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.V1_9_R2.isBelow(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R2.isBelow(MinecraftVersionsType.V1_9)); + + assertFalse(MinecraftVersionsType.V1_10.isBelow(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_10)); + + assertFalse(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.Unknown)); + + assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_9)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_10)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_10_R1)); + + assertTrue(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_10)); + assertTrue(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_9_R2)); + } + + /** + * tests the isAfter method + */ + @Test + public void testIsAfter() + { + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7_R1)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R2.isAfter(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R2.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R3.isAfter(MinecraftVersionsType.V1_7_R3)); + assertFalse(MinecraftVersionsType.V1_7_R3.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_7)); + + assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R1.isAfter(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.V1_8_R1.isAfter(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.V1_8_R2)); + assertFalse(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.V1_8)); + + assertFalse(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.V1_9_R1)); + assertFalse(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.V1_9_R2.isAfter(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.V1_9_R2.isAfter(MinecraftVersionsType.V1_9)); + + assertFalse(MinecraftVersionsType.V1_10.isAfter(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_10_R1)); + assertFalse(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_10)); + + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.Unknown)); + + assertTrue(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_10_R1)); + + assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_9_R2)); + } + + /** + * tests the isAtLeast method + */ + @Test + public void testIsAtLeast() + { + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7_R1)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R2.isAtLeast(MinecraftVersionsType.V1_7_R2)); + assertTrue(MinecraftVersionsType.V1_7_R2.isAtLeast(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R3.isAtLeast(MinecraftVersionsType.V1_7_R3)); + assertTrue(MinecraftVersionsType.V1_7_R3.isAtLeast(MinecraftVersionsType.V1_7)); + assertTrue(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_7_R4)); + assertTrue(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_7)); + + assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R1.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_8_R1.isAtLeast(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.V1_8_R2)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.V1_8)); + + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.V1_9_R1)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.V1_9)); + assertTrue(MinecraftVersionsType.V1_9_R2.isAtLeast(MinecraftVersionsType.V1_9_R2)); + assertTrue(MinecraftVersionsType.V1_9_R2.isAtLeast(MinecraftVersionsType.V1_9)); + + assertTrue(MinecraftVersionsType.V1_10.isAtLeast(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_10_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_10)); + + assertTrue(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.Unknown)); + + assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.Unknown)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.Unknown)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_7)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_9)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_7_R4)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_9_R2)); + assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_10_R1)); + + assertFalse(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_8)); + assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_8)); + assertFalse(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_10)); + assertFalse(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7_R2)); + assertFalse(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_8_R1)); + assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_9_R2)); + } + +} diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml new file mode 100644 index 00000000..3913c958 --- /dev/null +++ b/LIBv2/pom.xml @@ -0,0 +1,125 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.9-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib</artifactId> + <version>1.14.9-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java new file mode 100644 index 00000000..c910cb56 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -0,0 +1,113 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigamePluginInterface; +import com.github.mce.minigames.api.PluginProviderInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; + +/** + * The minigames plugin impl. + * + * @author mepeisen + */ +class MinigamePluginImpl implements MinigamePluginInterface +{ + + /** + * @param name + * @param provider + */ + public MinigamePluginImpl(String name, PluginProviderInterface provider) + { + // TODO Auto-generated constructor stub + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getName() + */ + @Override + public String getName() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getMessages() + */ + @Override + public MessagesConfigInterface getMessages() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigamePluginInterface#init() + */ + @Override + public void init() + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getDeclaredTypes() + */ + @Override + public Iterable<ArenaTypeInterface> getDeclaredTypes() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getArenas() + */ + @Override + public Iterable<ArenaInterface> getArenas() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getArenas(java.lang.String) + */ + @Override + public ArenaInterface getArenas(String name) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigamePluginInterface#createArenaType(com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) + */ + @Override + public ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolean isDefault) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java new file mode 100644 index 00000000..3aa5dc2d --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -0,0 +1,78 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; + +/** + * A read-only wrapper around minigame plugin impl + * + * @author mepeisen + * + */ +class MinigameWrapper implements MinigameInterface +{ + + /** + * The underlying minigame plugin impl. + */ + private MinigamePluginImpl delegate; + + /** + * @param delegate The underlying minigame plugin impl. + */ + public MinigameWrapper(MinigamePluginImpl delegate) + { + this.delegate = delegate; + } + + @Override + public String getName() + { + return this.delegate.getName(); + } + + @Override + public MessagesConfigInterface getMessages() + { + return this.delegate.getMessages(); + } + + @Override + public Iterable<ArenaTypeInterface> getDeclaredTypes() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterable<ArenaInterface> getArenas() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public ArenaInterface getArenas(String name) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java new file mode 100644 index 00000000..2566a7d8 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -0,0 +1,299 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +import com.comze_instancelabs.minigamesapi.MinigamesAPI; +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.LibState; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinecraftVersionsType; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.MinigamePluginInterface; +import com.github.mce.minigames.api.PluginProviderInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.zones.ZoneInterface; + +/** + * A plugin for minigames. + * + * @author mepeisen + * + */ +public class MinigamesPlugin extends JavaPlugin implements MglibInterface +{ + + /** the well known minigames. */ + private final Map<String, MinigamePluginImpl> minigames = new ConcurrentHashMap<>(); + + /** Current library state. */ + private LibState state = LibState.Initializing; + + /** known command handlers by name. */ + private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); + + /** + * Constructor to create the plugin. + */ + public MinigamesPlugin() + { + // registers the core minigame. + try + { + this.register(new PluginProviderInterface() { + + @Override + public String getName() + { + return MglibInterface.CORE_MINIGAME; + } + + @Override + public Iterable<Class<? extends Enum<?>>> getMessageClasses() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(CommonErrors.class); + return result; + } + + @Override + public JavaPlugin getJavaPlugin() + { + return MinigamesPlugin.this; + } + + @Override + public Map<String, CommandHandlerInterface> getBukkitCommands() + { + final Map<String, CommandHandlerInterface> result = new HashMap<>(); + result.put("start", new StartCommandHandler()); + // TODO + return result; + } + }).init(); + } + catch (MinigameException ex) + { + // log it, although this should never happen + // because in constructor we neither are in wrong state + // nor do we already know the 'core' minigame + ex.printStackTrace(); + } + } + + // event handlers + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) + { + final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); + if (handler != null) + { + try + { + final CommandInterface cmd = null; // TODO + handler.handle(cmd); + } + catch (MinigameException ex) + { + // TODO Logging + final Locale locale = Locale.ENGLISH; // TODO + final boolean isAdmin = true; // TODO + final String msg = isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())); + switch (ex.getCode().getSeverity()) + { + default: + case Error: + sender.sendMessage(ChatColor.DARK_RED + msg); + break; + case Information: + sender.sendMessage(ChatColor.WHITE + msg); + break; + case Loser: + sender.sendMessage(ChatColor.RED + msg); + break; + case Success: + sender.sendMessage(ChatColor.GREEN + msg); + break; + case Warning: + sender.sendMessage(ChatColor.YELLOW + msg); + break; + case Winner: + sender.sendMessage(ChatColor.GOLD + msg); + break; + } + } + return true; + } + return false; + } + + @Override + public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) + { + // TODO Auto-generated method stub + return super.onTabComplete(sender, command, alias, args); + } + + // api methods + + @Override + public LibState getState() + { + return this.state; + } + + @Override + public MinecraftVersionsType getMinecraftVersion() + { + return MinecraftVersionsType.valueOf(MinigamesAPI.SERVER_VERSION.name()); + } + + @Override + public MinigamePluginInterface register(PluginProviderInterface provider) throws MinigameException + { + final String name = provider.getName(); + + MinigamePluginImpl impl; + + synchronized (this.minigames) + { + if (this.state != LibState.Initializing || this.state != LibState.Sleeping) + { + throw new MinigameException(CommonErrors.Cannot_Create_Game_Wrong_State, name, this.state.name()); + } + if (this.minigames.containsKey(name)) + { + throw new MinigameException(CommonErrors.DuplicateMinigame, name); + } + + impl = new MinigamePluginImpl(name, provider); + this.minigames.put(name, impl); + } + + return impl; + } + + @Override + public MinigameInterface getMinigame(String minigame) + { + final MinigamePluginImpl impl = this.minigames.get(minigame); + return impl == null ? null : new MinigameWrapper(impl); + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#findZone(org.bukkit.Location) + */ + @Override + public ZoneInterface findZone(Location location) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#findZones(org.bukkit.Location) + */ + @Override + public Iterable<ZoneInterface> findZones(Location location) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getPlayer(org.bukkit.entity.Player) + */ + @Override + public ArenaPlayerInterface getPlayer(Player player) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getPlayer(org.bukkit.OfflinePlayer) + */ + @Override + public ArenaPlayerInterface getPlayer(OfflinePlayer player) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getPlayer(java.util.UUID) + */ + @Override + public ArenaPlayerInterface getPlayer(UUID uuid) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getArenaTypes() + */ + @Override + public Iterable<ArenaTypeInterface> getArenaTypes() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getArenas() + */ + @Override + public Iterable<ArenaInterface> getArenas() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getArenas(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) + { + // TODO Auto-generated method stub + return null; + } + + + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java new file mode 100644 index 00000000..5dae39d5 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import org.bukkit.entity.Player; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * A handler for the /start command. + * + * @author mepeisen + */ +public class StartCommandHandler implements CommandHandlerInterface +{ + + @Override + public void handle(CommandInterface command) throws MinigameException + { + // only in-game + command.when(command.isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); + + // we are a player + final Player player = (Player) command.getSender(); + + } + +} diff --git a/LIBv2/src/main/resources/config.yml b/LIBv2/src/main/resources/config.yml new file mode 100644 index 00000000..cf602714 --- /dev/null +++ b/LIBv2/src/main/resources/config.yml @@ -0,0 +1,6 @@ +# MinigamesAPI Config # +# If you want bugfree versions, turn this to true: +# NO USE TRUE MODE! +config: + auto_updating: false +signs_updating_time: 20 diff --git a/LIBv2/src/main/resources/plugin.yml b/LIBv2/src/main/resources/plugin.yml new file mode 100644 index 00000000..7548b472 --- /dev/null +++ b/LIBv2/src/main/resources/plugin.yml @@ -0,0 +1,17 @@ +name: MinigamesLib2 +main: com.github.mce.minigames.impl.MinigamesPlugin +version: ${minigames.releaseversion}-${minigames.timestamp} +author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] +softdepend: [Vault] +commands: + mapi: + description: Main command + usage: /mapi [action] + aliases: [mgapi, mglib] + party: + description: Main Party command + usage: /party [action] + start: + description: Start shortcut + usage: /start [action] + aliases: [startmg, startminigame] From e653a1ca90cdbcc5ba565766113fcea60000b555 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 12 Aug 2016 22:56:05 +0200 Subject: [PATCH 067/266] finished example of start command --- .../mce/minigames/api/CommonErrors.java | 24 ++++++ .../mce/minigames/api/CommonMessages.java | 45 +++++++++++ .../mce/minigames/api/MglibInterface.java | 53 +++++++++++++ .../mce/minigames/api/MinigameInterface.java | 9 +++ .../api/PluginProviderInterface.java | 11 +++ .../minigames/api/arena/ArenaInterface.java | 49 ++++++++++++ .../minigames/api/cmd/CommandInterface.java | 14 +++- .../api/perms/CommonPermissions.java | 33 ++++++++ .../mce/minigames/api/perms/Permission.java | 45 +++++++++++ .../mce/minigames/api/perms/Permissions.java | 51 +++++++++++++ .../api/perms/PermissionsInterface.java | 49 ++++++++++++ .../api/player/ArenaPlayerInterface.java | 75 +++++++++++++++++++ .../mce/minigames/impl/MinigamesPlugin.java | 3 +- .../impl/cmd/StartCommandHandler.java | 27 ++++++- 14 files changed, 480 insertions(+), 8 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java index bde48cde..d027adda 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -61,4 +61,28 @@ public enum CommonErrors implements MinigameErrorCode @LocalizedMessage(defaultMessage = "Invoke this command in-game.", severity = MessageSeverityType.Error) InvokeIngame, + /** + * No permissions for start command. + * + * <p>No Arguments</p> + */ + @LocalizedMessage(defaultMessage = "No permission for /start command.", severity = MessageSeverityType.Error) + NoPermissionForStart, + + /** + * Start command outside arena. + * + * <p>No Arguments</p> + */ + @LocalizedMessage(defaultMessage = "You are not inside an arena.", severity = MessageSeverityType.Error) + StartNotWithinArena, + + /** + * Arena cannot be started. + * + * <p>No Arguments</p> + */ + @LocalizedMessage(defaultMessage = "Arena cannot be started directly.", severity = MessageSeverityType.Error) + CannotStart, + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java new file mode 100644 index 00000000..f34c77fd --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.locale.LocalizedMessage; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.LocalizedMessages; +import com.github.mce.minigames.api.locale.MessageSeverityType; + +/** + * Common messages within minigames lib. + * + * @author mepeisen + */ +@LocalizedMessages(minigame = "core", path = "messages") +public enum CommonMessages implements LocalizedMessageInterface +{ + + /** + * Game was started by command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * <li>String: player name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Arena %0$s was started by player: %1$s.", severity = MessageSeverityType.Success) + ArenaStartedByCommand, + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index a7fb1499..f2f9d01d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api; import java.util.UUID; +import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -46,6 +47,8 @@ public interface MglibInterface */ String CORE_MINIGAME = "core"; //$NON-NLS-1$ + // common methods + /** * Returns the current library state. * @@ -60,6 +63,15 @@ public interface MglibInterface */ MinecraftVersionsType getMinecraftVersion(); + /** + * Returns a logger for the library. + * + * @return logger instance. + */ + Logger getLogger(); + + // initialization + /** * Registers a new minigame; should be called in {@link JavaPlugin#onEnable()}. * @@ -76,6 +88,8 @@ public interface MglibInterface */ MinigamePluginInterface register(PluginProviderInterface provider) throws MinigameException; + // main api + /** * Returns the minigame with given name. * @@ -86,6 +100,8 @@ public interface MglibInterface */ MinigameInterface getMinigame(String minigame); + // zone api + /** * Finds a zone by location. * @@ -120,6 +136,8 @@ public interface MglibInterface */ Iterable<ZoneInterface> findZones(Location location); + // player api + /** * Returns the player for given bukkit player. * @@ -144,6 +162,8 @@ public interface MglibInterface */ ArenaPlayerInterface getPlayer(UUID uuid); + // arena api + /** * Returns all known arena types. * @@ -167,6 +187,39 @@ public interface MglibInterface */ Iterable<ArenaInterface> getArenas(ArenaTypeInterface type); + // context + + /** + * Returns a session variable. + * + * @param clazz + * the class of the variable to be returned. + * @return Context variable or {@code null} if the variable was not set. + */ + <T> T getContext(Class<T> clazz); + + /** + * Returns the current player. + * + * @return current player. + */ + default ArenaPlayerInterface getCurrentPlayer() + { + return this.getContext(ArenaPlayerInterface.class); + } + + /** + * Returns the current arena. + * + * @return current arena. + */ + default ArenaInterface getCurrentArena() + { + return this.getContext(ArenaInterface.class); + } + + // common singleton getter + /** * Singleton access. */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 27e1bd7f..966bcb55 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api; +import java.util.logging.Logger; + import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; @@ -67,4 +69,11 @@ public interface MinigameInterface */ ArenaInterface getArenas(String name); + /** + * Returns a logger for the library. + * + * @return logger instance. + */ + Logger getLogger(); + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java index 055db3b4..7154ce71 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java @@ -54,6 +54,17 @@ public interface PluginProviderInterface */ Iterable<Class<? extends Enum<?>>> getMessageClasses(); + /** + * Returns the permission classes. + * + * <p> + * Simple return {@code null} if you only use the default permissions from minigames library. + * </p> + * + * @return permission classes for predefined permissions. + */ + Iterable<Class<? extends Enum<?>>> getPermissions(); + /** * Returns the bukkit (main) commands registered by this minigame. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index bfff556d..e161f338 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -15,6 +15,12 @@ package com.github.mce.minigames.api.arena; +import java.io.Serializable; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; + /** * A arena inside the gaming world. * @@ -23,4 +29,47 @@ public interface ArenaInterface { + /** + * Returns the internal name of this arena. + * + * @return internal name. + */ + String getInternalName(); + + /** + * Returns the display name of this arena. + * + * @return arena display name; defaults to internal name. + */ + Serializable getDisplayName(); + + /** + * Checks this arena for given criteria and invokes either then or else statements. + * + * <p> + * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. + * </p> + * + * @param test + * test functions for testing the arena matching any criteria. + * + * @return the outgoing stub to apply then or else consumers. + * + * @throws MinigameException + * will be thrown if either the test function or then/else consumers throw the exception. + */ + MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws MinigameException; + + /** + * Returns a test function to check if the arena can be started by command; checks the gaming rules. + * + * @return predicate to return {@code true} if the arena can be started. + */ + MgPredicate<ArenaInterface> canStart(); + + /** + * Starts the arena (forces the start if needed). + */ + void start(); + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java index bfa0c798..58298eeb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java @@ -20,6 +20,7 @@ import org.bukkit.entity.Player; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; @@ -38,6 +39,13 @@ public interface CommandInterface */ CommandSender getSender(); + /** + * Returns the arena player for this command/ the command sender. + * + * @return the arena player or {@code null} if the sender is not a regular bukkit player. + */ + ArenaPlayerInterface getPlayer(); + /** * Returns the command. * @@ -60,7 +68,7 @@ public interface CommandInterface String[] getArgs(); /** - * Checks this command for given criteria and invokes wither then or else statements. + * Checks this command for given criteria and invokes either then or else statements. * * <p> * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. @@ -79,9 +87,9 @@ public interface CommandInterface /** * Returns a test function to check if the command sender is a player. * - * @return true if the command sender is a player. + * @return predicate to return {@code true} if the command sender is a player. */ - default MgPredicate<CommandInterface> isPlayer() + static MgPredicate<CommandInterface> isPlayer() { return (cmd) -> cmd.getSender() instanceof Player; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java new file mode 100644 index 00000000..3a203af0 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java @@ -0,0 +1,33 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.perms; + +/** + * Common permissions within minigames lib. + * + * @author mepeisen + */ +@Permissions("$MGLIB$.core") +public enum CommonPermissions implements PermissionsInterface +{ + + /** + * Permission to perform the start command. + */ + @Permission + start, + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java new file mode 100644 index 00000000..4e43caab --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.perms; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single permission to test. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface Permission +{ + + /** + * The name of the permission. + * + * <p> + * The name is appended to the path of the {@link Permissions} annotation on the num class. + * </p> + * + * @return Name of permission; empty string to use the constant name. + */ + String value() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java new file mode 100644 index 00000000..0daaedbd --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.perms; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A list of permissions; should be used by enumerations that implement the {@link PermissionsInterface}. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(TYPE) +public @interface Permissions +{ + + /** + * The default path used as a prefix for the permissions. + * + * <p> + * Within path the following variables can be used: + * </p> + * + * <ul> + * <li>"$MGLIB$" : will be replaced with minigame libs permission prefix.</li> + * <li>"$MINIGAME$" : will be replaced by the current minigame name.</li> + * <li>"$ARENA$" : will be replaces by the current arena name.</li> + * </ul> + * + * @return default path used as a prefix. + */ + String value(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java new file mode 100644 index 00000000..ba814454 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java @@ -0,0 +1,49 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.perms; + +/** + * An interface for enumerations that represent list of permissions. + * + * @author mepeisen + */ +public interface PermissionsInterface +{ + + /** + * Returns the full permission name. + * + * @return full permission name. + */ + default String fullPath() + { + try + { + final Permissions permissions = this.getClass().getAnnotation(Permissions.class); + final Permission perm = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(Permission.class); + if (permissions == null || perm == null) + { + throw new IllegalStateException("Invalid permission class."); //$NON-NLS-1$ + } + return permissions.value() + '.' + (perm.value().length() == 0 ? ((Enum<?>) this).name() : perm.value()); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java index 0255ad22..f537d9b3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java @@ -15,13 +15,19 @@ package com.github.mce.minigames.api.player; +import java.io.Serializable; import java.util.UUID; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; /** * Interface representing players, maybe inside arenas. @@ -59,6 +65,16 @@ public interface ArenaPlayerInterface */ UUID getPlayerUUID(); + /** + * Sends a message to given player. + * + * @param msg + * message to send. + * @param args + * arguments to use for this message. + */ + void sendMessage(LocalizedMessageInterface msg, Serializable... args); + /** * Returns the arena this player is currently in; within a match. * @@ -73,4 +89,63 @@ public interface ArenaPlayerInterface */ Iterable<WaitQueue> getWaitingQueues(); + /** + * Checks if the user has a permission. + * + * @param perm + * permission to check. + * @return {@code true} if the user has a permission. + */ + boolean checkPermission(PermissionsInterface perm); + + /** + * Checks this player for given criteria and invokes either then or else statements. + * + * <p> + * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. + * </p> + * + * @param test + * test functions for testing the player matching any criteria. + * + * @return the outgoing stub to apply then or else consumers. + * + * @throws MinigameException + * will be thrown if either the test function or then/else consumers throw the exception. + */ + MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInterface> test) throws MinigameException; + + /** + * Returns a test function to check if the user is online on the current server. + * + * @return predicate to return {@code true} if the arena player is online. + */ + static MgPredicate<ArenaPlayerInterface> isOnline() + { + return (pl) -> pl.getBukkitPlayer() != null; + } + + /** + * Returns a test function to check if the user is inside any arena on the current server. + * + * @return predicate to return {@code true} if the player is inside any arena on the current server. + */ + static MgPredicate<ArenaPlayerInterface> isInArena() + { + return (pl) -> pl.getArena() != null; + } + + /** + * Returns a test function to check if the user has a given permission. + * + * @param perm + * the permission to check. + * + * @return predicate to return {@code true} if the player has given permission. + */ + static MgPredicate<ArenaPlayerInterface> hasPerm(PermissionsInterface perm) + { + return (pl) -> pl.checkPermission(perm); + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 2566a7d8..b38b7562 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -46,6 +46,7 @@ import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.zones.ZoneInterface; +import com.github.mce.minigames.impl.cmd.StartCommandHandler; /** * A plugin for minigames. @@ -99,7 +100,7 @@ public JavaPlugin getJavaPlugin() public Map<String, CommandHandlerInterface> getBukkitCommands() { final Map<String, CommandHandlerInterface> result = new HashMap<>(); - result.put("start", new StartCommandHandler()); + result.put("start", new StartCommandHandler()); //$NON-NLS-1$ // TODO return result; } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index 5dae39d5..573937ad 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -15,12 +15,19 @@ package com.github.mce.minigames.impl.cmd; -import org.bukkit.entity.Player; +import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; +import static com.github.mce.minigames.api.player.ArenaPlayerInterface.hasPerm; +import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** * A handler for the /start command. @@ -34,11 +41,23 @@ public class StartCommandHandler implements CommandHandlerInterface public void handle(CommandInterface command) throws MinigameException { // only in-game - command.when(command.isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); + command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); + + // check permission + final ArenaPlayerInterface player = command.getPlayer(); + player.when(hasPerm(CommonPermissions.start).negate()).thenThrow(CommonErrors.NoPermissionForStart); + + // only inside arena + player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); - // we are a player - final Player player = (Player) command.getSender(); + // check if the arena can be started directly + final ArenaInterface arena = player.getArena(); + arena.when(arena.canStart().negate()).thenThrow(CommonErrors.CannotStart); + // start it, log and send success message + MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ + arena.start(); + player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); } } From 67751018773721269bfc7809e91ce3179cee564f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 14 Aug 2016 06:38:44 +0200 Subject: [PATCH 068/266] v2 showcase --- .../mce/minigames/api/CommonErrors.java | 10 +- .../mce/minigames/api/CommonMessages.java | 2 +- .../mce/minigames/api/MglibInterface.java | 40 + .../mce/minigames/api/MinigameInterface.java | 11 + .../api/PluginProviderInterface.java | 11 + .../mce/minigames/api/arena/WaitQueue.java | 2 + .../api/arena/rules/ArenaRuleSet.java | 2 + .../api/cmd/AbstractSubCommandHandler.java | 135 +++ .../minigames/api/config/CommonConfig.java | 33 + .../api/config/ConfigurationBool.java | 52 + .../api/config/ConfigurationBoolList.java | 52 + .../api/config/ConfigurationByteList.java | 52 + .../config/ConfigurationCharacterList.java | 52 + .../api/config/ConfigurationDouble.java | 52 + .../api/config/ConfigurationDoubleList.java | 52 + .../api/config/ConfigurationFloatList.java | 52 + .../api/config/ConfigurationInt.java | 52 + .../api/config/ConfigurationIntList.java | 52 + .../api/config/ConfigurationLong.java | 52 + .../api/config/ConfigurationLongList.java | 52 + .../api/config/ConfigurationSection.java | 45 + .../api/config/ConfigurationShortList.java | 52 + .../api/config/ConfigurationString.java | 52 + .../api/config/ConfigurationStringList.java | 52 + .../config/ConfigurationValueInterface.java | 1001 +++++++++++++++++ .../api/config/ConfigurationValues.java | 57 + .../api/locale/LocalizedMessageInterface.java | 10 +- .../api/locale/LocalizedMessages.java | 15 +- .../mce/minigames/api/perms/Permission.java | 2 +- .../minigames/api/zones/ZoneInterface.java | 2 + APIv2/src/site/markdown/migrationList.md | 639 +++++++++++ APIv2/src/site/site.xml | 1 + .../minigames/impl/MinigamePluginImpl.java | 24 + .../mce/minigames/impl/MinigameWrapper.java | 24 + .../mce/minigames/impl/MinigamesPlugin.java | 69 ++ .../impl/cmd/PartyAcceptCommandHandler.java | 39 + .../impl/cmd/PartyCommandHandler.java | 64 ++ .../impl/cmd/PartyDisbandCommandHandler.java | 39 + .../impl/cmd/PartyInviteCommandHandler.java | 39 + .../impl/cmd/PartyKickCommandHandler.java | 39 + .../impl/cmd/PartyLeaveCommandHandler.java | 39 + .../impl/cmd/PartyListCommandHandler.java | 39 + 42 files changed, 3139 insertions(+), 22 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java create mode 100644 APIv2/src/site/markdown/migrationList.md create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java index d027adda..986ef264 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -@LocalizedMessages(minigame = "core", path = "errors") +@LocalizedMessages("errors") public enum CommonErrors implements MinigameErrorCode { @@ -85,4 +85,12 @@ public enum CommonErrors implements MinigameErrorCode @LocalizedMessage(defaultMessage = "Arena cannot be started directly.", severity = MessageSeverityType.Error) CannotStart, + /** + * The party command is disabled. + * + * <p>No Arguments</p> + */ + @LocalizedMessage(defaultMessage = "Party command disabled.", severity = MessageSeverityType.Error) + PartyCommandDisabled, + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index f34c77fd..b70c861c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -@LocalizedMessages(minigame = "core", path = "messages") +@LocalizedMessages("messages") public enum CommonMessages implements LocalizedMessageInterface { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index f2f9d01d..1b8d66e5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -27,6 +27,9 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.zones.ZoneInterface; @@ -100,6 +103,36 @@ public interface MglibInterface */ MinigameInterface getMinigame(String minigame); + /** + * Returns the minigame declaring the given enumeration class. + * + * @param item + * the enumeration value; only works on classes that are returned by a plugin provider during initialization. + * + * @return minigame or {@code null} if the class was not declared by any minigame. + */ + MinigameInterface getMinigameFromMsg(LocalizedMessageInterface item); + + /** + * Returns the minigame declaring the given enumeration class. + * + * @param item + * the enumeration value; only works on classes that are returned by a plugin provider during initialization. + * + * @return minigame or {@code null} if the class was not declared by any minigame. + */ + MinigameInterface getMinigameFromPerm(PermissionsInterface item); + + /** + * Returns the minigame declaring the given configuration value. + * + * @param item + * the configuration value; only works on classes that are returned by a plugin provider during initialization. + * + * @return minigame or {@code null} if the class was not declared by any minigame. + */ + MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item); + // zone api /** @@ -217,6 +250,13 @@ default ArenaInterface getCurrentArena() { return this.getContext(ArenaInterface.class); } + + /** + * Resolves a context variable. + * @param src + * @return result + */ + String resolveContextVar(String src); // common singleton getter diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 966bcb55..94d775cb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -17,6 +17,8 @@ import java.util.logging.Logger; +import org.bukkit.configuration.ConfigurationSection; + import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; @@ -76,4 +78,13 @@ public interface MinigameInterface */ Logger getLogger(); + /** + * Returns the bukkit configuration for given file. + * + * @param file + * configuration file name. + * @return the configuration file. + */ + ConfigurationSection getConfig(String file); + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java index 7154ce71..25d187a1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java @@ -76,4 +76,15 @@ public interface PluginProviderInterface */ Map<String, CommandHandlerInterface> getBukkitCommands(); + /** + * Returns the configuration classes. + * + * <p> + * Simple return {@code null} if you only use the default configuration options from minigames library. + * </p> + * + * @return configuration classes for predefined configurations. + */ + Iterable<Class<? extends Enum<?>>> getConfigurations(); + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java index 159e191b..9d014622 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java @@ -22,5 +22,7 @@ */ public interface WaitQueue { + + // TODO } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java index 8fdc25a9..ddb4286d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java @@ -22,4 +22,6 @@ public interface ArenaRuleSet { + // TODO + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java new file mode 100644 index 00000000..223584c3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java @@ -0,0 +1,135 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.cmd; + +import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; + +/** + * A handler for enabling sub commands. + * + * @author mepeisen + */ +public abstract class AbstractSubCommandHandler implements CommandHandlerInterface +{ + + /** + * the configured sub commands. + */ + protected Map<String, CommandHandlerInterface> subCommands = new HashMap<>(); + + /** + * pre parse the command. + * + * @param command + * command + * @return {@code true} if the execution can proceed. + * @throws MinigameException + * thrown if there are problems. + */ + protected boolean pre(CommandInterface command) throws MinigameException + { + // only in-game + command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); + + return true; + } + + @Override + public void handle(CommandInterface command) throws MinigameException + { + if (!pre(command)) + { + return; + } + + // check for sub command + if (command.getArgs().length == 0) + { + sendUsage(command.getPlayer()); + return; + } + + final String name = command.getArgs()[0].toLowerCase(); + final CommandHandlerInterface handler = this.subCommands.get(name); + if (handler == null) + { + sendUsage(command.getPlayer()); + return; + } + + handler.handle(new CommandInterface() { + + @Override + public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + @Override + public CommandSender getSender() + { + return command.getSender(); + } + + @Override + public ArenaPlayerInterface getPlayer() + { + return command.getPlayer(); + } + + @Override + public String getLabel() + { + return command.getLabel(); + } + + @Override + public Command getCommand() + { + return command.getCommand(); + } + + @Override + public String[] getArgs() + { + // TODO Auto-generated method stub + return null; + } + }); + } + + /** + * Sends usage information. + * + * @param player + * the player to send the usage strings to + */ + protected abstract void sendUsage(ArenaPlayerInterface player); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java new file mode 100644 index 00000000..1b87f7a8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java @@ -0,0 +1,33 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +/** + * Common permissions within minigames lib. + * + * @author mepeisen + */ +@ConfigurationValues(path = "config") +public enum CommonConfig implements ConfigurationValueInterface +{ + + /** + * Permission to perform the start command. + */ + @ConfigurationBool(name = "party_command_enabled", defaultValue = true) + PartyCommandEnabled, + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java new file mode 100644 index 00000000..0017ce3e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationBool +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + boolean defaultValue() default false; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java new file mode 100644 index 00000000..4b509023 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationBoolList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + boolean[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java new file mode 100644 index 00000000..95e7365d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationByteList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + byte[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java new file mode 100644 index 00000000..142b8e2e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationCharacterList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + char[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java new file mode 100644 index 00000000..c73052e6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationDouble +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + double defaultValue() default 0; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java new file mode 100644 index 00000000..7300957e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationDoubleList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + double[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java new file mode 100644 index 00000000..4b6f323c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationFloatList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + float[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java new file mode 100644 index 00000000..7bb920d8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationInt +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + int defaultValue() default 0; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java new file mode 100644 index 00000000..461b3009 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationIntList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + int[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java new file mode 100644 index 00000000..632dff29 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationLong +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + long defaultValue() default 0; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java new file mode 100644 index 00000000..a9a613ae --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationLongList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + long[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java new file mode 100644 index 00000000..738e0907 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationSection +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String value() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java new file mode 100644 index 00000000..98ad7a01 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationShortList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + short[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java new file mode 100644 index 00000000..c6fb8010 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationString +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + String defaultValue() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java new file mode 100644 index 00000000..a5fe0d93 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationStringList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + String[] defaultValue() default {}; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java new file mode 100644 index 00000000..1b613402 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -0,0 +1,1001 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import java.util.List; +import java.util.Set; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; + +/** + * An interface for enumerations that represent entries in configuration files. + * + * @author mepeisen + */ +public interface ConfigurationValueInterface +{ + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default boolean getBoolean() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationBool config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationBool.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).getBoolean(path, config.defaultValue()); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default boolean[] getBooleanList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationBoolList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationBoolList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Boolean> result = minigame.getConfig(configs.file()).getBooleanList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final boolean[] res = new boolean[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).booleanValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default byte[] getByteList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationByteList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationByteList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Byte> result = minigame.getConfig(configs.file()).getByteList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final byte[] res = new byte[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).byteValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default char[] getCharacterList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationCharacterList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationCharacterList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Character> result = minigame.getConfig(configs.file()).getCharacterList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final char[] res = new char[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).charValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default double getDouble() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationDouble config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationDouble.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).getDouble(path, config.defaultValue()); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default double[] getDoubleList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationDoubleList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationDoubleList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Double> result = minigame.getConfig(configs.file()).getDoubleList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final double[] res = new double[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).doubleValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default float[] getFloatList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationFloatList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationFloatList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Float> result = minigame.getConfig(configs.file()).getFloatList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final float[] res = new float[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).floatValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default int getInt() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationInt config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationInt.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).getInt(path, config.defaultValue()); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default int[] getIntList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationIntList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationIntList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Integer> result = minigame.getConfig(configs.file()).getIntegerList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final int[] res = new int[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).intValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default long getLong() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationLong config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationLong.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).getLong(path, config.defaultValue()); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default long[] getLongList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationLongList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationLongList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Long> result = minigame.getConfig(configs.file()).getLongList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final long[] res = new long[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).longValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default short[] getShortList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationShortList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationShortList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<Short> result = minigame.getConfig(configs.file()).getShortList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + final short[] res = new short[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).shortValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default String getString() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationString config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationString.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).getString(path, config.defaultValue()); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default String[] getStringList() + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationStringList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationStringList.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + final List<String> result = minigame.getConfig(configs.file()).getStringList(path); + if (result.size() == 0) + { + return config.defaultValue(); + } + return result.toArray(new String[result.size()]); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the keys of given configuration section. + * + * @param deep + * + * @return value. + */ + default String[] getKeys(boolean deep) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final Set<String> result = minigame.getConfig(configs.file()).getConfigurationSection(path).getKeys(deep); + return result.toArray(new String[result.size()]); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default boolean getBoolean(String path, boolean defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getBoolean(path, defaultValue); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default boolean[] getBooleanList(String path, boolean[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Boolean> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getBooleanList(path); + if (result.size() == 0) + { + return defaultValue; + } + final boolean[] res = new boolean[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).booleanValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default byte[] getByteList(String path, byte[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Byte> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getByteList(path); + if (result.size() == 0) + { + return defaultValue; + } + final byte[] res = new byte[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).byteValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default char[] getCharacterList(String path, char[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Character> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getCharacterList(path); + if (result.size() == 0) + { + return defaultValue; + } + final char[] res = new char[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).charValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default double getDouble(String path, double defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getDouble(path, defaultValue); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default double[] getDoubleList(String path, double[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Double> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getDoubleList(path); + if (result.size() == 0) + { + return defaultValue; + } + final double[] res = new double[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).doubleValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default float[] getFloatList(String path, float[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Float> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getFloatList(path); + if (result.size() == 0) + { + return defaultValue; + } + final float[] res = new float[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).floatValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default int getInt(String path, int defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getInt(path, defaultValue); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default int[] getIntList(String path, int[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Integer> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getIntegerList(path); + if (result.size() == 0) + { + return defaultValue; + } + final int[] res = new int[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).intValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default long getLong(String path, long defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getLong(path, defaultValue); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default long[] getLongList(String path, long[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Long> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getLongList(path); + if (result.size() == 0) + { + return defaultValue; + } + final long[] res = new long[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).longValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default short[] getShortList(String path, short[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<Short> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getShortList(path); + if (result.size() == 0) + { + return defaultValue; + } + final short[] res = new short[result.size()]; + for (int i = 0; i < res.length; i++) + { + res[i] = result.get(i).shortValue(); + } + return res; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default String getString(String path, String defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getString(path, defaultValue); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param path sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default String[] getStringList(String path, String[] defaultValue) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final List<String> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getStringList(path); + if (result.size() == 0) + { + return defaultValue; + } + return result.toArray(new String[result.size()]); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java new file mode 100644 index 00000000..001b3618 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A list of permissions; should be used by enumerations that implement the {@link ConfigurationValueInterface}. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(TYPE) +public @interface ConfigurationValues +{ + + /** + * The default path used as a prefix for the configuration values. + * + * <p> + * Within path the following variables can be used: + * </p> + * + * <ul> + * <li>"$MINIGAME$" : will be replaced by the current minigame name.</li> + * <li>"$ARENA$" : will be replaced by the current arena name.</li> + * </ul> + * + * @return default path used as a prefix. + */ + String path(); + + /** + * Returns the name of the configuration file. + * + * @return configuration file name. + */ + String file() default "config.yml"; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java index 0e96ed26..9991d73b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java @@ -66,13 +66,13 @@ default String toUserMessage(Locale locale, Serializable... args) throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = mglib.getMinigame(msgs.minigame()); + final MinigameInterface minigame = mglib.getMinigameFromMsg(this); if (minigame == null) { throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - final String smsg = minigame.getMessages().getString(locale, msgs.path() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ + final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ return String.format(smsg, (Object[])args); } catch (NoSuchFieldException ex) @@ -101,16 +101,16 @@ default String toAdminMessage(Locale locale, Serializable... args) throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = mglib.getMinigame(msgs.minigame()); + final MinigameInterface minigame = mglib.getMinigameFromMsg(this); if (minigame == null) { throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - String smsg = minigame.getMessages().getAdminString(locale, msgs.path() + "." + ((Enum<?>)this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ + String smsg = minigame.getMessages().getAdminString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ if (smsg.length() == 0) { - smsg = minigame.getMessages().getString(locale, msgs.path() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ + smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ } return String.format(smsg, (Object[])args); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java index 1b0a42d9..15351791 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java @@ -21,8 +21,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.Target; -import com.github.mce.minigames.api.PluginProviderInterface; - /** * A localized message class used within messages.yml of a plugin; should be used by enumerations that implement the {@link LocalizedMessageInterface}. * @@ -33,17 +31,6 @@ public @interface LocalizedMessages { - /** - * Returns the minigame name used by this localized messages. - * - * <p> - * Thats the string used to register the minigame and returned by {@link PluginProviderInterface#getName()}. - * </p> - * - * @return minigame name - */ - String minigame(); - /** * The default locale this plugin uses. * @@ -56,6 +43,6 @@ * * @return default path for this message. */ - String path(); + String value(); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java index 4e43caab..e5f6017a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java @@ -35,7 +35,7 @@ * The name of the permission. * * <p> - * The name is appended to the path of the {@link Permissions} annotation on the num class. + * The name is appended to the path of the {@link Permissions} annotation on the enum class. * </p> * * @return Name of permission; empty string to use the constant name. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java index 572b6e53..79f373e6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java @@ -22,4 +22,6 @@ public interface ZoneInterface { + // TODO + } diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md new file mode 100644 index 00000000..38554da2 --- /dev/null +++ b/APIv2/src/site/markdown/migrationList.md @@ -0,0 +1,639 @@ +# Minigames-Lib 2.0 - MigrationList + +## Arena.java + +- [ ] ArcadeInstance ai +- [ ] boolean isArcadeMain +- [ ] boolean isSuccessfullyInitialized +- [ ] ArrayList<Location> spawns +- [ ] HashMap<String, Location> pspawnloc +- [ ] HashMap<String, String> lastdamager +- [ ] HashMap<String, Integer> temp_kill_count +- [ ] HashMap<String, Integer> temp_death_count +- [ ] Location mainlobby +- [ ] Location waitinglobby +- [ ] Location specspawn +- [ ] Location signloc +- [ ] int max_players +- [ ] int min_players +- [ ] boolean viparena +- [ ] ArrayList<String> players +- [ ] ArrayList<String> temp_players +- [ ] ArenaType type +- [ ] ArenaState currentstate +- [ ] String name +- [ ] String displayname +- [ ] boolean started +- [ ] boolean startedIngameCountdown +- [ ] boolean showArenascoreboard +- [ ] boolean alwaysPvP +- [ ] SmartReset sr +- [ ] Cuboid boundaries +- [ ] Cuboid lobby_boundaries +- [ ] Cuboid spec_boundaries +- [ ] boolean temp_countdown +- [ ] boolean skip_join_lobby +- [ ] int currentspawn +- [ ] int global_coin_multiplier +- [ ] BukkitTask maximum_game_time +- [ ] ArrayList<ItemStack> global_drops +- [ ] int currentlobbycount +- [ ] int currentingamecount +- [ ] int currenttaskid +- [ ] boolean temp_delay_stopped +- [ ] ArenaLogger logger +- [ ] Arena(final JavaPlugin plugin, final String name) +- [ ] Arena(final JavaPlugin plugin, final String name, final ArenaType type) +- [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max_players, final int min_players, final boolean viparena) +- [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max_players, final int min_players, final boolean viparena) +- [ ] Arena getArena() +- [ ] SmartReset getSmartReset() +- [ ] boolean getShowScoreboard() +- [ ] boolean getAlwaysPvP() +- [ ] void setAlwaysPvP(final boolean t) +- [ ] Location getSignLocation() +- [ ] void setSignLocation(final Location l) +- [ ] ArrayList<Location> getSpawns() +- [ ] Cuboid getBoundaries() +- [ ] Cuboid getLobbyBoundaries() +- [ ] Cuboid getSpecBoundaries() +- [ ] String getInternalName() +- [ ] String getDisplayName() +- [ ] String getName() +- [ ] int getMaxPlayers() +- [ ] int getMinPlayers() +- [ ] void setMinPlayers(final int i) +- [ ] void setMaxPlayers(final int i) +- [ ] boolean isVIPArena() +- [ ] void setVIPArena(final boolean t) +- [ ] ArrayList<String> getAllPlayers() +- [ ] boolean containsPlayer(final String playername) +- [ ] boolean addPlayer(final String playername) +- [ ] boolean removePlayer(final String playername) +- [ ] void joinPlayerLobby(final String playername) +- [ ] void joinPlayerLobby(final UUID playerUuid) +- [ ] void joinPlayerLobby(final String playername, final boolean countdown) +- [ ] void joinPlayerLobby(final String playername, final ArcadeInstance arcade, final boolean countdown, final boolean skip_lobby) +- [ ] ArenaState getArenaState() +- [ ] void setArenaState(final ArenaState s) +- [ ] ArenaType getArenaType() +- [ ] void leavePlayer(final String playername, final boolean fullLeave) +- [ ] void leavePlayer(final String playername, final boolean fullLeave, final boolean endofGame) +- [ ] void leavePlayerRaw(final String playername, final boolean fullLeave) +- [ ] void playLeaveCommand(final Player p) +- [ ] boolean hasLeaveCommand() +- [ ] spectateGame(final String playername) +- [ ] void spectate(final String playername) +- [ ] void spectateRaw(final Player p) +- [ ] void spectateArcade(final String playername) +- [ ] void setTaskId(final int id) +- [ ] int getTaskId() +- [ ] void startLobby(final boolean countdown) +- [ ] void start(final boolean tp) +- [ ] void startRaw() +- [ ] void stopArena() +- [ ] List<Entity> getResetEntitiesOnPlayerLeave(String player) +- [ ] boolean isEntityResetOnPlayerLeave(String player, Entity e) +- [ ] List<Entity> getResetEntities(String player) +- [ ] boolean isEntityReset(String player, Entity e) +- [ ] void stop() +- [ ] void reset() +- [ ] void onEliminated(final String playername) +- [ ] void nextArenaOnMapRotation(final ArrayList<String> players) +- [ ] String getPlayerCount() +- [ ] int getPlayerAlive() +- [ ] Location getWaitingLobbyTemp() +- [ ] Location getWaitingLobby() +- [ ] Location getMainLobbyTemp() +- [ ] Location getMainLobby() +- [ ] ArcadeInstance getArcadeInstance() +- [ ] boolean isArcadeMain() +- [ ] void setArcadeMain(final boolean t) +- [ ] HashMap<String, Location> getPSpawnLocs() +- [ ] JavaPlugin getPlugin() +- [ ] PluginInstance getPluginInstance() +- [ ] int getCurrentIngameCountdownTime() +- [ ] int getCurrentLobbyCountdownTime() +- [ ] boolean getIngameCountdownStarted() +- [ ] boolean isSuccessfullyInit() +- [ ] void setLastDamager(final String targetPlayer, final String damager) + +## ArenaConfigStrings.java + +- [ ] String BOUNDS_LOW +- [ ] String BOUNDS_HIGH +- [ ] String LOBBY_BOUNDS_LOW +- [ ] String LOBBY_BOUNDS_HIGH +- [ ] String SPEC_BOUNDS_LOW +- [ ] String SPEC_BOUNDS_HIGH +- [ ] String SPEC_SPAWN +- [ ] String ARENAS_PREFIX +- [ ] String DISPLAYNAME_SUFFIX +- [ ] String AUTHOR_SUFFIX +- [ ] String DESCRIPTION_SUFFIX +- [ ] String CONFIG_CLASS_SELECTION_ITEM +- [ ] String CONFIG_EXIT_ITEM +- [ ] String CONFIG_ACHIEVEMENT_ITEMS +- [ ] String CONFIG_SPECTATOR_ITEM +- [ ] String CONFIG_SHOP_SELECTION_ITEM +- [ ] String CONFIG_CLASSES_GUI_ROWS +- [ ] String CONFIG_SHOP_GUI_ROWS +- [ ] String CONFIG_SPECTATOR_AFTER_FALL_OR_DEATH +- [ ] String CONFIG_SPECTATOR_MOVE_Y_LOCK +- [ ] String CONFIG_DEFAULT_MAX_PLAYERS +- [ ] String CONFIG_DEFAULT_MIN_PLAYERS +- [ ] String CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES +- [ ] String CONFIG_LOBBY_COUNTDOWN +- [ ] String CONFIG_INGAME_COUNTDOWN +- [ ] String CONFIG_INGAME_COUNTDOWN_ENABLED +- [ ] String CONFIG_SKIP_LOBBY +- [ ] String CONFIG_CLEANINV_WHILE_INGAMECOUNTDOWN +- [ ] String CONFIG_CLASSES_ENABLED +- [ ] String CONFIG_SHOP_ENABLED +- [ ] String CONFIG_USE_CREADITS_INSTEAD_MONEY_FOR_KITS +- [ ] String CONFIG_RESET_INV_WHEN_LEAVING_SERVER +- [ ] String CONFIG_COLOR_BACKGROUND_WOOL +- [ ] String CONFIG_SHOW_CLASSES_WITHOUT_PERM +- [ ] String CONFIG_REWARDS_ECONOMY +- [ ] String CONFIG_REWARDS_ECONOMY_REWARD +- [ ] String CONFIG_REWARDS_ITEM_REWARD +- [ ] String CONFIG_REWARDS_ITEM_REWARD_IDS +- [ ] String CONFIG_REWARDS_COMMAND_REWARD +- [ ] String CONFIG_REWARDS_COMMAND +- [ ] String CONFIG_REWARDS_ECONOMY_FOR_KILLS +- [ ] String CONFIG_REWARDS_ECONOMY_REWARD_FOR_KILLS +- [ ] String CONFIG_REWARDS_COMMAND_REWARD_FOR_KILLS +- [ ] String CONFIG_REWARDS_COMMAND_FOR_KILLS +- [ ] String CONFIG_REWARDS_ECONOMY_FOR_PARTICIPATION +- [ ] String CONFIG_REWARDS_ECONOMY_REWARD_FOR_PARTICIPATION +- [ ] String CONFIG_REWARDS_COMMAND_REWARD_FOR_PARTICIPATION +- [ ] String CONFIG_REWARDS_COMMAND_FOR_PARTICIPATION +- [ ] String CONFIG_STATS_POINTS_FOR_KILL +- [ ] String CONFIG_STATS_POINTS_FOR_WIN +- [ ] String CONFIG_ARCADE_ENABLED +- [ ] String CONFIG_ARCADE_MIN_PLAYERS +- [ ] String CONFIG_ARCADE_MAX_PLAYERS +- [ ] String CONFIG_ARCADE_ARENA_TO_PREFER_ENABLED +- [ ] String CONFIG_ARCADE_ARENA_TO_PREFER_ARENA +- [ ] String CONFIG_ARCADE_LOBBY_COUNTDOWN +- [ ] String CONFIG_ARCADE_SHOW_EACH_LOBBY_COUNTDOWN +- [ ] String CONFIG_ARCADE_INFINITE_ENABLED +- [ ] String CONFIG_ARCADE_INFINITE_SECONDS_TO_NEW_ROUND +- [ ] String CONFIG_BUNGEE_GAME_ON_JOIN +- [ ] String CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP +- [ ] String CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_SERVER +- [ ] String CONFIG_BUNGEE_WHITELIST_WHILE_GAME_RUNNING +- [ ] String CONFIG_EXECUTE_CMDS_ON_STOP +- [ ] String CONFIG_CMDS +- [ ] String CONFIG_CMDS_AFTER +- [ ] String CONFIG_MAP_ROTATION +- [ ] String CONFIG_BROADCAST_WIN +- [ ] String CONFIG_BUY_CLASSES_FOREVER +- [ ] String CONFIG_DISABLE_COMMANDS_IN_ARENA +- [ ] String CONFIG_COMMAND_WHITELIST +- [ ] String CONFIG_LEAVE_COMMAND +- [ ] String CONFIG_SPAWN_FIREWORKS_FOR_WINNERS +- [ ] String CONFIG_POWERUP_BROADCAST +- [ ] String CONFIG_POWERUP_FIREWORKS +- [ ] String CONFIG_USE_CUSTOM_SCOREBOARD +- [ ] String CONFIG_DELAY_ENABLED +- [ ] String CONFIG_DELAY_AMOUNT_SECONDS +- [ ] String CONFIG_SEND_GAME_STARTED_MSG +- [ ] String CONFIG_AUTO_ADD_DEFAULT_KIT +- [ ] String CONFIG_LAST_MAN_STANDING_WINS +- [ ] String CONFIG_EFFECTS_BLOOD +- [ ] String CONFIG_EFFECTS_DMG_IDENTIFIER_HOLO +- [ ] String CONFIG_EFFECTS_DEAD_IN_FAKE_BED +- [ ] String CONFIG_EFFECTS_1_8_TITLES +- [ ] String CONFIG_EFFECTS_1_8_SPECTATOR_MODE +- [ ] String CONFIG_SOUNDS_LOBBY_COUNTDOWN +- [ ] String CONFIG_SOUNDS_INGAME_COUNTDOWN +- [ ] String CONFIG_CHAT_PER_ARENA_ONLY +- [ ] String CONFIG_CHAT_SHOW_SCORE_IN_ARENA +- [ ] String CONFIG_COMPASS_TRACKING_ENABLED +- [ ] String CONFIG_ALLOW_CLASSES_SELECTION_OUT_OF_ARENAS +- [ ] String CONFIG_SEND_STATS_ON_STOP +- [ ] String CONFIG_USE_XP_BAR_LEVEL +- [ ] String CONFIG_USE_OLD_RESET_METHOD +- [ ] String CONFIG_CHAT_ENABLED +- [ ] String CONFIG_EXTRA_LOBBY_ITEM_PREFIX +- [ ] String CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX +- [ ] String CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX +- [ ] String CONFIG_EXTRA_LOBBY_ITEM_NAME_SUFFIX +- [ ] String CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX +- [ ] String CONFIG_MYSQL_ENABLED +- [ ] String CONFIG_MYSQL_HOST +- [ ] String CONFIG_MYSQL_USER +- [ ] String CONFIG_MYSQL_PW +- [ ] String CONFIG_MYSQL_DATABASE + +## ArenaListener.java + +- [ ] ArrayList<String> cmds +- [ ] String leave_cmd +- [ ] int loseY +- [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame) +- [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) +- [ ] void onExplode(final EntityExplodeEvent event) +- [ ] void onExplode2(final BlockExplodeEvent event) +- [ ] void onBlockFromTo(final BlockFromToEvent event) +- [ ] void onBlockFade(final BlockFadeEvent event) +- [ ] void onBlockPhysics(final BlockPhysicsEvent event) +- [ ] void onBlockRedstone(final BlockRedstoneEvent event) +- [ ] void onBlockSpread(final BlockSpreadEvent event) +- [ ] void onEntityChangeBlock(final EntityChangeBlockEvent event) +- [ ] void onLeavesDecay(final LeavesDecayEvent event) +- [ ] void onBlockBurn(final BlockBurnEvent event) +- [ ] void onStructureGrow(final StructureGrowEvent event) +- [ ] void onBlockBreak2(final BlockBreakEvent event) +- [ ] void onPlayerDrop(final PlayerDropItemEvent event) +- [ ] void onPlayerPickupItem(final PlayerPickupItemEvent event) +- [ ] void onInventoryClick(final InventoryClickEvent event) +- [ ] void onHunger(final FoodLevelChangeEvent event) +- [ ] void NoDamageEntityInLobby(final EntityDamageByEntityEvent event) +- [ ] void NoClickEntityInLobby(final PlayerInteractEntityEvent event) throws IOException +- [ ] void onPaintingBreak(final HangingBreakByEntityEvent event) +- [ ] void Space(final PlayerMoveEvent event) +- [ ] void onMove(final PlayerMoveEvent event) +- [ ] void onPlayerDeath(final PlayerDeathEvent event) +- [ ] void onEntityDamage(final EntityDamageEvent event) +- [ ] void onEntityDamageByEntity(final EntityDamageByEntityEvent event) +- [ ] void onBlockBreak(final BlockBreakEvent event) +- [ ] void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) +- [ ] void onBlockPlace(final BlockPlaceEvent event) +- [ ] void onSignUse(final PlayerInteractEvent event) +- [ ] void onSignChange(final SignChangeEvent event) +- [ ] void onPlayerJoin(final PlayerJoinEvent event) +- [ ] void onPlayerLeave(final PlayerQuitEvent event) +- [ ] void onChat(final AsyncPlayerChatEvent event) +- [ ] void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent event) +- [ ] void onPlayerTeleport(final PlayerTeleportEvent event) +- [ ] boolean isSpectating(final Player p) +- [ ] List<Entity> getEntitiesByLocation(final Location loc, final double d) +- [ ] boolean checkLocationMatchesSign(final Location l, final Sign s) +- [ ] void updateEntities(final List<Player> players, final boolean visible) +- [ ] List<Player> getPlayersWithin(final Player player, final int distance) +- [ ] String getName() +- [ ] void setName(final String minigame) + +## ArenaLogger.java + +- [ ] logging methods + +## ArenaMessageStrings.java + +- [ ] String ARENA +- [ ] String ACTION +- [ ] String AUTHOR +- [ ] String DESCRIPTION +- [ ] String PLAYER +- [ ] String KILLER +- [ ] String COUNT +- [ ] String MAXCOUNT + +## ArenaPermissionStrings.java + +- [ ] String VIP +- [ ] String PREFIX + +## ArenaPlayer.java + +- [ ] String playername +- [ ] ItemStack[] inv +- [ ] ItemStack[] armor_inv +- [ ] GameMode original_gamemode +- [ ] int original_xplvl +- [ ] boolean noreward +- [ ] Arena currentArena +- [ ] AClass currentClass +- [ ] HashMap<String, ArenaPlayer> players +- [ ] ArenaPlayer getPlayerInstance(final String playername) +- [ ] ArenaPlayer(final String playername) +- [ ] Player getPlayer() +- [ ] void setInventories(final ItemStack[] inv, final ItemStack[] armor_inv) +- [ ] ItemStack[] getInventory() +- [ ] ItemStack[] getArmorInventory() +- [ ] GameMode getOriginalGamemode() +- [ ] void setOriginalGamemode(final GameMode original_gamemode) +- [ ] int getOriginalXplvl() +- [ ] void setOriginalXplvl(final int original_xplvl) +- [ ] boolean isNoReward() +- [ ] void setNoReward(final boolean noreward) +- [ ] Arena getCurrentArena() +- [ ] void setCurrentArena(final Arena currentArena) +- [ ] AClass getCurrentClass() +- [ ] void setCurrentClass(final AClass currentClass) + +## ArenaSetup.java + +- [ ] void setSpawn(final JavaPlugin plugin, final String arenaname, final Location l) +- [ ] int autoSetSpawn(final JavaPlugin plugin, final String arenaname, final Location l) +- [ ] void setSpawn(final JavaPlugin plugin, final String arenaname, final Location l, final int count) +- [ ] boolean removeSpawn(final JavaPlugin plugin, final String arenaname, final int count) +- [ ] void setLobby(final JavaPlugin plugin, final String arenaname, final Location l) +- [ ] void setMainLobby(final JavaPlugin plugin, final Location l) +- [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low) +- [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low, final String extra_component) +- [ ] Arena saveArena(final JavaPlugin plugin, final String arenaname) +- [ ] void setPlayerCount(final JavaPlugin plugin, final String arena, final int count, final boolean max) +- [ ] int getPlayerCount(final JavaPlugin plugin, final String arena, final boolean max) +- [ ] void setArenaVIP(final JavaPlugin plugin, final String arena, final boolean vip) +- [ ] boolean getArenaVIP(final JavaPlugin plugin, final String arena) +- [ ] void setArenaEnabled(final JavaPlugin plugin, final String arena, final boolean enabled) +- [ ] boolean getArenaEnabled(final JavaPlugin plugin, final String arena) +- [ ] void setShowScoreboard(final JavaPlugin plugin, final String arena, final boolean enabled) +- [ ] boolean getShowScoreboard(final JavaPlugin plugin, final String arena) + +## ArenaState.java + +- [ ] JOIN +- [ ] STARTING +- [ ] INGAME +- [ ] RESTARTING + +## ArenaType.java + +- [ ] DEFAULT +- [ ] JUMPNRUN +- [ ] REGENERATION + +## ChannelStrings.java + +- [ ] CHANNEL_BUNGEE_CORD +- [ ] SUBCHANNEL_MINIGAMESLIB_BACK +- [ ] SUBCHANNEL_MINIGAMESLIB_REQUEST +- [ ] SUBCHANNEL_MINIGAMESLIB_SIGN + +## Classes.java + +- [ ] public HashMap<String, IconMenu> lasticonm = new HashMap<>(); +- [ ] Classes(final JavaPlugin plugin) +- [ ] public Classes(final PluginInstance pli, final JavaPlugin plugin) +- [ ] public void openGUI(final String p) +- [ ] void getClass(final String player) +- [ ] void setClass(String iname, final String player, final boolean money) +- [ ] String getInternalNameByName(final String name) +- [ ] AClass getClassByInternalname(final String internalname) +- [ ] boolean hasClass(final String player) +- [ ] String getSelectedClass(final String player) +- [ ] void loadClasses() +- [ ] void loadClasses(final JavaPlugin plugin) +- [ ] boolean kitRequiresMoney(final String kit) +- [ ] boolean kitTakeMoney(final Player p, final String kit) +- [ ] boolean kitPlayerHasPermission(final String kit, final Player p) + +## CommandStrings.java + +TODO + +## Effects.java + +TODO + +## Messages.java + +TODO + +## MinecraftVersionsType.java + +TODO + +## MinigamesAPI.java + +TODO + +## Party.java + +TODO + +## PermissionStrings.java + +TODO + +## PluginConfigStrings.java + +TODO + +## PluginInstance.java + +TODO + +## PrivateUtil.java + +TODO + +## Rewards.java + +TODO + +## Shop.java + +TODO + +## SmartReset.java + +TODO + +## SpectatorManager.java + +TODO + +## Stats.java + +TODO + +## AAchievement.java + +TODO + +## ArenaAchievements.java + +TODO + +## ArcadeInstance.java + +TODO + +## CommandHandler.java + +TODO + +## AchievementsConfig.java + +TODO + +## ArenasConfig.java + +TODO + +## ClassesConfig.java + +TODO + +## DefaultConfig.java + +TODO + +## GunsConfig.java + +TODO + +## HologramsConfig.java + +TODO + +## MessagesConfig.java + +TODO + +## PartyMessagesConfig.java + +TODO + +## ShopConfig.java + +TODO + +## StatsConfig.java + +TODO + +## StatsGlobalConfig.java + +TODO + +## ArenaEvent.java + +TODO + +## ArenaStartedEvent.java + +TODO + +## ArenaStartEvent.java + +TODO + +## ArenaStopEvent.java + +TODO + +## PlayerEvent.java + +TODO + +## PlayerJoinLobbyEvent.java + +TODO + +## PlayerLeaveArenaEvent.java + +TODO + +## Gun.java + +TODO + +## Guns.java + +TODO + +## Database.java + +TODO + +## MainSQL.java + +TODO + +## MySQL.java + +TODO + +## SQLite.java + +TODO + +## Hologram.java + +TODO + +## Holograms.java + +TODO + +## AClass.java + +TODO + +## ArenaBlock.java + +TODO + +## ArenaLobbyScoreboard.java + +TODO + +## ArenaScoreboard.java + +TODO + +## BungeeUtil.java + +TODO + +## ChangeCause.java + +TODO + +## Cuboid.java + +TODO + +## IconMenu.java + +TODO + +## InventoryManager.java + +TODO + +## Leaderboard.java + +TODO + +## Metrics.java + +TODO + +## ParticleEffectNew.java + +TODO + +## ShopItem.java + +TODO + +## Signs.java + +TODO + +## SmartArenaBlock.java + +TODO + +## UpdaterBukkit.java + +TODO + +## UpdaterNexus.java + +TODO + +## Util.java + +TODO + +## Validator.java + +TODO \ No newline at end of file diff --git a/APIv2/src/site/site.xml b/APIv2/src/site/site.xml index d3d20748..686e43f4 100644 --- a/APIv2/src/site/site.xml +++ b/APIv2/src/site/site.xml @@ -21,6 +21,7 @@ <item name="Road Map" href="roadmap.html" /> <item name="Development" href="development.html" /> <item name="Game rules" href="gamerules.html" /> + <item name="Migration List" href="migrationList.html" /> </menu> <menu ref="reports"/> diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index c910cb56..6bbeb07b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -15,6 +15,10 @@ package com.github.mce.minigames.impl; +import java.util.logging.Logger; + +import org.bukkit.configuration.ConfigurationSection; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; @@ -109,5 +113,25 @@ public ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolea // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getLogger() + */ + @Override + public Logger getLogger() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getConfig(java.lang.String) + */ + @Override + public ConfigurationSection getConfig(String file) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index 3aa5dc2d..7b8fa759 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -15,6 +15,10 @@ package com.github.mce.minigames.impl; +import java.util.logging.Logger; + +import org.bukkit.configuration.ConfigurationSection; + import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; @@ -74,5 +78,25 @@ public ArenaInterface getArenas(String name) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getLogger() + */ + @Override + public Logger getLogger() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#getConfig(java.lang.String) + */ + @Override + public ConfigurationSection getConfig(String file) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index b38b7562..7240b81a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -44,8 +44,12 @@ import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.zones.ZoneInterface; +import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; /** @@ -101,9 +105,24 @@ public Map<String, CommandHandlerInterface> getBukkitCommands() { final Map<String, CommandHandlerInterface> result = new HashMap<>(); result.put("start", new StartCommandHandler()); //$NON-NLS-1$ + result.put("party", new PartyCommandHandler()); //$NON-NLS-1$ // TODO return result; } + + @Override + public Iterable<Class<? extends Enum<?>>> getPermissions() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterable<Class<? extends Enum<?>>> getConfigurations() + { + // TODO Auto-generated method stub + return null; + } }).init(); } catch (MinigameException ex) @@ -294,6 +313,56 @@ public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromMsg(com.github.mce.minigames.api.locale.LocalizedMessageInterface) + */ + @Override + public MinigameInterface getMinigameFromMsg(LocalizedMessageInterface item) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromPerm(com.github.mce.minigames.api.perms.PermissionsInterface) + */ + @Override + public MinigameInterface getMinigameFromPerm(PermissionsInterface item) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromCfg(com.github.mce.minigames.api.config.ConfigurationValueInterface) + */ + @Override + public MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getContext(java.lang.Class) + */ + @Override + public <T> T getContext(Class<T> clazz) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#resolveContextVar(java.lang.String) + */ + @Override + public String resolveContextVar(String src) + { + // TODO Auto-generated method stub + return null; + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java new file mode 100644 index 00000000..b1f6202a --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * @author mepeisen + * + */ +public class PartyAcceptCommandHandler implements CommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java new file mode 100644 index 00000000..dd1bac92 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java @@ -0,0 +1,64 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.AbstractSubCommandHandler; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.config.CommonConfig; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * A handler for the /party command. + * + * @author mepeisen + */ +public class PartyCommandHandler extends AbstractSubCommandHandler +{ + + /** + * Constructor + */ + public PartyCommandHandler() + { + this.subCommands.put("invite", new PartyInviteCommandHandler()); //$NON-NLS-1$ + this.subCommands.put("accept", new PartyAcceptCommandHandler()); //$NON-NLS-1$ + this.subCommands.put("kick", new PartyKickCommandHandler()); //$NON-NLS-1$ + this.subCommands.put("list", new PartyListCommandHandler()); //$NON-NLS-1$ + this.subCommands.put("disband", new PartyDisbandCommandHandler()); //$NON-NLS-1$ + this.subCommands.put("leave", new PartyLeaveCommandHandler()); //$NON-NLS-1$ + } + + @Override + protected boolean pre(CommandInterface command) throws MinigameException + { + if (!CommonConfig.PartyCommandEnabled.getBoolean()) + { + throw new MinigameException(CommonErrors.PartyCommandDisabled); + } + + return super.pre(command); + } + + @Override + protected void sendUsage(ArenaPlayerInterface player) + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java new file mode 100644 index 00000000..3b82503b --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * @author mepeisen + * + */ +public class PartyDisbandCommandHandler implements CommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java new file mode 100644 index 00000000..15bd8492 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * @author mepeisen + * + */ +public class PartyInviteCommandHandler implements CommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java new file mode 100644 index 00000000..e0cc0847 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * @author mepeisen + * + */ +public class PartyKickCommandHandler implements CommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java new file mode 100644 index 00000000..c98edfd7 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * @author mepeisen + * + */ +public class PartyLeaveCommandHandler implements CommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java new file mode 100644 index 00000000..71a3cc89 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * @author mepeisen + * + */ +public class PartyListCommandHandler implements CommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + +} From dd4b308f2639db62c6b77e690c4218bf14f33d07 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 14 Aug 2016 06:39:04 +0200 Subject: [PATCH 069/266] fixed smart reset on big arenas --- .../com/comze_instancelabs/minigamesapi/SmartReset.java | 2 +- .../minigamesapi/util/SmartArenaBlock.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 4c3217a7..8919d725 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -258,7 +258,7 @@ public void run() rolledBack++; } - if (this.changed.size() != 0) + if (it.hasNext()) { Bukkit.getScheduler().runTaskLater(this.a.getPlugin(), this, 2L); return; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java index 11188f3a..7d82d969 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java @@ -39,6 +39,8 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.potion.Potion; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + public class SmartArenaBlock implements Serializable { private static final long serialVersionUID = -1894759842709524780L; @@ -116,6 +118,10 @@ else if (isChest) final Chest chest = (Chest) b.getState(); this.setInventory(chest.getInventory()); } + if (MinigamesAPI.debug) + { + System.out.println("Added smart arena block @ " + this.x + "/" + this.y + "/" + this.z + " with material " + this.m); + } } public SmartArenaBlock(final BlockState b, final boolean isChest, final boolean isSign) From 13b3a7f64f7ce2268549621594591a70f73e7c2e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 14 Aug 2016 06:55:28 +0200 Subject: [PATCH 070/266] changed permissions prefix defaults to "ancient" --- .../minigamesapi/MinigamesAPI.java | 7 ++++++- changelog.md | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index d0b0a572..055ddf37 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -60,7 +60,6 @@ import com.comze_instancelabs.minigamesapi.util.Metrics.Graph; import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Signs; -import com.comze_instancelabs.minigamesapi.util.UpdaterBukkit; import com.comze_instancelabs.minigamesapi.util.UpdaterNexus; import com.comze_instancelabs.minigamesapi.util.Util; import com.google.common.io.ByteArrayDataInput; @@ -205,6 +204,12 @@ public void onEnable() this.getConfig().addDefault(PluginConfigStrings.PARTY_COMMAND_ENABLED, true); this.getConfig().addDefault(PluginConfigStrings.DEBUG, false); + this.getConfig().addDefault(PluginConfigStrings.PERMISSION_PREFIX, "ancient.core"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.PERMISSION_KITS_PREFIX, "ancient.core.kits"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.PERMISSION_GUN_PREFIX, "ancient.core.guns"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.PERMISSION_SHOP_PREFIX, "ancient.core.shopitems"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.PERMISSION_GAME_PREFIX, "ancient."); //$NON-NLS-1$ + for (final ArenaState state : ArenaState.values()) { this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".0", state.getColorCode() + "<minigame>"); diff --git a/changelog.md b/changelog.md index 6d4149d2..3fa57202 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,19 @@ # Changelog +#### 1.14.10 + +###### All + +* Changed permissions prefix to "ancient." +* Fixed smart + +###### Minigames-API + +* Fixed smart reset on big arenas/ hundreds of blocks + +###### DeathRun + +* Fixed falling blocks animation #### 1.14.9 From f10ca913237f87b1e51069a28928f9e09e36466b Mon Sep 17 00:00:00 2001 From: BuildTools <mep_eisen@web.de> Date: Sun, 14 Aug 2016 08:37:01 +0200 Subject: [PATCH 071/266] preparing 1.14.10 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 67c8dceb..9c4e3415 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.10-SNAPSHOT</version> + <version>1.14.10</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.10-SNAPSHOT</version> + <version>1.14.10</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 58f174f6..c10975a6 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.10-SNAPSHOT</version> + <version>1.14.10</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.10-SNAPSHOT</version> + <version>1.14.10</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index a24dfaba..9ed27c00 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.10-SNAPSHOT</version> + <version>1.14.10</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.10-SNAPSHOT</version> + <version>1.14.10</version> <scope>provided</scope> </dependency> <dependency> From 7f4657dada0c96f087ac45d060094ec3f77955f0 Mon Sep 17 00:00:00 2001 From: BuildTools <mep_eisen@web.de> Date: Sun, 14 Aug 2016 08:37:01 +0200 Subject: [PATCH 072/266] switching to 1.14.11 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 9c4e3415..229b7983 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.10</version> + <version>1.14.11-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.10</version> + <version>1.14.11-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index c10975a6..b7dc12f0 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.10</version> + <version>1.14.11-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.10</version> + <version>1.14.11-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 9ed27c00..6f1f02f3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.10</version> + <version>1.14.11-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.10</minigames.releaseversion> + <minigames.releaseversion>1.14.11</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.10</version> + <version>1.14.11-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From eb643875dac3af6791dd7986fdd03a2173341844 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 15 Aug 2016 08:52:06 +0200 Subject: [PATCH 073/266] migration list and complete configuration default methods --- .../minigames/api/config/Configurable.java | 44 + .../api/config/ConfigurationByte.java | 52 + .../api/config/ConfigurationCharacter.java | 52 + .../api/config/ConfigurationColor.java | 52 + .../api/config/ConfigurationColorList.java | 45 + .../api/config/ConfigurationFloat.java | 52 + .../api/config/ConfigurationItemStack.java | 45 + .../config/ConfigurationItemStackList.java | 45 + .../api/config/ConfigurationObject.java | 52 + .../api/config/ConfigurationObjectList.java | 52 + .../api/config/ConfigurationPlayer.java | 45 + .../api/config/ConfigurationPlayerList.java | 45 + .../api/config/ConfigurationShort.java | 52 + .../api/config/ConfigurationTool.java | 748 +++++ .../config/ConfigurationValueInterface.java | 2771 ++++++++++++----- .../api/config/ConfigurationVector.java | 45 + .../api/config/ConfigurationVectorList.java | 45 + APIv2/src/site/markdown/migrationList.md | 1088 +++++-- 18 files changed, 4433 insertions(+), 897 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java new file mode 100644 index 00000000..11cc8f64 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java @@ -0,0 +1,44 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import org.bukkit.configuration.ConfigurationSection; + +/** + * An object that can be configured through configuration options. + * + * @author mepeisen + */ +public interface Configurable +{ + + /** + * Reads given object from config. + * + * @param section + * configuration section to read from. + */ + void readFromConfig(ConfigurationSection section); + + /** + * Writes given object to config. + * + * @param section + * configuration section to write to. + */ + void writeToConfig(ConfigurationSection section); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java new file mode 100644 index 00000000..690b79dc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationByte +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + byte defaultValue() default 0; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java new file mode 100644 index 00000000..bf0f4918 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationCharacter +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + char defaultValue() default ' '; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java new file mode 100644 index 00000000..b50c2e2a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationColor +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + int defaultRgb() default 0x000000; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java new file mode 100644 index 00000000..2491129e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationColorList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java new file mode 100644 index 00000000..922f47c8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationFloat +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + float defaultValue() default 0; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java new file mode 100644 index 00000000..5557b6e9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationItemStack +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java new file mode 100644 index 00000000..5988f389 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationItemStackList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java new file mode 100644 index 00000000..ca54309f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationObject +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The configuration class. + * + * @return class of the configurable object. + */ + Class<? extends Configurable> clazz(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java new file mode 100644 index 00000000..287d93fd --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationObjectList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The configuration class. + * + * @return class of the configurable object. + */ + Class<? extends Configurable> clazz(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java new file mode 100644 index 00000000..3cb028d8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationPlayer +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java new file mode 100644 index 00000000..cde57f1f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationPlayerList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java new file mode 100644 index 00000000..425eba1e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationShort +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + + /** + * The default value of this configuration option. + * + * @return default value. + */ + short defaultValue() default 0; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java new file mode 100644 index 00000000..847f4624 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java @@ -0,0 +1,748 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Array; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; + +/** + * Helper class for configuration variables. + * + * @author mepeisen + */ +class ConfigurationTool +{ + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param clazz + * @param calculator + * @return calculator func. + */ + static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface val, Class<Annot> clazz, Calculator<Ret, Annot> calculator) + { + try + { + final ConfigurationValues configs = val.getClass().getAnnotation(ConfigurationValues.class); + final Annot config = val.getClass().getField(((Enum<?>) val).name()).getAnnotation(clazz); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(val); + return calculator.supply(val, configs, config, lib, minigame); + } + catch (Exception ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param clazz + * @param path + * @param calculator + * @return calculator func. + */ + static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, ValueCalculator<Ret, Annot> calculator) + { + final Calculator<Ret, Annot> calc = (val2, configs, config, lib, minigame) -> calculator.supply(val, configs, config, lib, minigame, path.supply(val, configs, config, lib)); + return calculate(val, clazz, calc); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param subpath + * @param calculator + * @return calculator func. + */ + static <Ret> Ret calculate(ConfigurationValueInterface val, String subpath, ValueCalculator<Ret, ConfigurationSection> calculator) + { + final Calculator<Ret, ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> calculator.supply(val, configs, config, lib, minigame, sectionPath().supply(val, configs, config, lib) + '.' + subpath); + return calculate(val, ConfigurationSection.class, calc); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param retClazz + * @param clazz + * @param path + * @param calculator + * @return calculator func. + */ + static <Ret, Annot extends Annotation> Ret[] calculateList(ConfigurationValueInterface val, Class<Annot> clazz, Class<Ret> retClazz, PathCalculator<Annot> path, ArrayValueCalculator<Ret, Annot> calculator) + { + @SuppressWarnings("unchecked") + final Calculator<Ret[], Annot> calc = (val2, configs, config, lib, minigame) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path.supply(val, configs, config, lib)); + final List<Ret> list = new ArrayList<>(); + for (final String key : section.getKeys(false)) + { + list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); + } + return list.toArray((Ret[]) Array.newInstance(retClazz, list.size())); + }; + return calculate(val, clazz, calc); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param retClazz + * @param subpath + * @param calculator + * @return calculator func. + */ + static <Ret> Ret[] calculateList(ConfigurationValueInterface val, String subpath, Class<Ret> retClazz, ArrayValueCalculator<Ret, ConfigurationSection> calculator) + { + @SuppressWarnings("unchecked") + final Calculator<Ret[], ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(sectionPath().supply(val, configs, config, lib) + '.' + subpath); + final List<Ret> list = new ArrayList<>(); + for (final String key : section.getKeys(false)) + { + list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); + } + return list.toArray((Ret[]) Array.newInstance(retClazz, list.size())); + }; + return calculate(val, ConfigurationSection.class, calc); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param clazz + * @param consumer + */ + static <Annot extends Annotation> void consume(ConfigurationValueInterface val, Class<Annot> clazz, Consumer<Annot> consumer) + { + try + { + final ConfigurationValues configs = val.getClass().getAnnotation(ConfigurationValues.class); + final Annot config = val.getClass().getField(((Enum<?>) val).name()).getAnnotation(clazz); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(val); + consumer.apply(val, configs, config, lib, minigame); + } + catch (Exception ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param clazz + * @param path + * @param consumer + */ + static <Annot extends Annotation> void consume(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, ValueConsumer<Annot> consumer) + { + final Consumer<Annot> calc = (val2, configs, config, lib, minigame) -> consumer.apply(val, configs, config, lib, minigame, path.supply(val, configs, config, lib)); + consume(val, clazz, calc); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param subpath + * @param consumer + */ + static void consume(ConfigurationValueInterface val, String subpath, ValueConsumer<ConfigurationSection> consumer) + { + final Class<ConfigurationSection> clazz = ConfigurationSection.class; + final Consumer<ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> consumer.apply(val, configs, config, lib, minigame, sectionPath().supply(val, configs, config, lib) + '.' + subpath); + consume(val, clazz, calc); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param clazz + * @param path + * @param value + * @param consumer + */ + static <T, Annot extends Annotation> void consumeList(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, T[] value, ArrayValueConsumer<T, Annot> consumer) + { + final ValueConsumer<Annot> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, String spath) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + for (final String key : section.getKeys(false)) + { + section.set(key, null); + } + int i = 0; + for (T v : value) + { + consumer.apply(val, configs, config, lib, minigame, section, "e" + i, v); //$NON-NLS-1$ + i++; + } + }; + + consume(val, clazz, path, vconsumer); + } + + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param subpath + * @param value + * @param consumer + */ + static <T> void consumeList(ConfigurationValueInterface val, String subpath, T[] value, ArrayValueConsumer<T, ConfigurationSection> consumer) + { + final ValueConsumer<ConfigurationSection> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, ConfigurationSection config, MglibInterface lib, MinigameInterface minigame, String spath) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + for (final String key : section.getKeys(false)) + { + section.set(key, null); + } + int i = 0; + for (T v : value) + { + consumer.apply(val, configs, config, lib, minigame, section, "e" + i, v); //$NON-NLS-1$ + i++; + } + }; + + consume(val, subpath, vconsumer); + } + + /** + * Checks if the given config value has given annotation. + * + * @param val + * @param clazz + * @return {qcode true} if the config value has diven annotation + */ + static boolean isType(ConfigurationValueInterface val, Class<? extends Annotation> clazz) + { + try + { + final Field field = val.getClass().getField(((Enum<?>) val).name()); + return field.getAnnotation(clazz) != null; + } + catch (Exception ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationSection> sectionPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) val).name() : config.value())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationBool> boolPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationBoolList> boolListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationByte> bytePath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationByteList> byteListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationCharacter> charPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationCharacterList> charListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationColor> colorPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationColorList> colorListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationDouble> doublePath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationDoubleList> doubleListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationFloat> floatPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationFloatList> floatListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationInt> intPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationIntList> intListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationItemStack> itemStackPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationItemStackList> itemStackListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationLong> longPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationLongList> longListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationObject> objectPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationObjectList> objectListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationPlayer> playerPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationPlayerList> playerListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationString> stringPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationStringList> stringListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationShort> shortPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationShortList> shortListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationVector> vectorPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Returns the path calculator for given type + * + * @return path calculator + */ + static PathCalculator<ConfigurationVectorList> vectorListPath() + { + return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); + } + + /** + * Calculator to fetch data. + * + * @param <Ret> + * return clazz + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface Calculator<Ret, Annot extends Annotation> + { + + /** + * Calculates the value from config. + * + * @param val + * @param configs + * @param config + * @param lib + * @param minigame + * @return return value + * @throws Exception + */ + Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame) throws Exception; + + } + + /** + * Calculator to fetch data. + * + * @param <Ret> + * return clazz + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface ValueCalculator<Ret, Annot extends Annotation> + { + + /** + * Calculates the value from config. + * + * @param val + * @param configs + * @param config + * @param lib + * @param minigame + * @param path + * @return return value + * @throws Exception + */ + Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, String path) throws Exception; + + } + + /** + * Calculator to fetch data. + * + * @param <Ret> + * return clazz + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface ArrayValueCalculator<Ret, Annot extends Annotation> + { + + /** + * Calculates the value from config. + * + * @param val + * @param configs + * @param config + * @param lib + * @param minigame + * @param section + * @param key + * @return return value + * @throws Exception + */ + Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, org.bukkit.configuration.ConfigurationSection section, String key) throws Exception; + + } + + /** + * Calculator for config path calculation. + * + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface PathCalculator<Annot extends Annotation> + { + + /** + * Calculates the path from config annotation. + * + * @param val + * @param configs + * @param config + * @param lib + * @return return value + * @throws Exception + */ + String supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib) throws Exception; + + } + + /** + * Calculator to parse data. + * + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface Consumer<Annot extends Annotation> + { + + /** + * Consume config. + * + * @param val + * @param configs + * @param config + * @param lib + * @param minigame + * @throws Exception + */ + void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame) throws Exception; + + } + + /** + * Calculator to parse data. + * + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface ValueConsumer<Annot extends Annotation> + { + + /** + * Consume config. + * + * @param val + * @param configs + * @param config + * @param lib + * @param minigame + * @param path + * @throws Exception + */ + void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, String path) throws Exception; + + } + + /** + * Calculator to parse data. + * + * @param <T> + * array element clazz + * @param <Annot> + * annotation clazz + */ + @FunctionalInterface + interface ArrayValueConsumer<T, Annot extends Annotation> + { + + /** + * Consume config. + * + * @param val + * @param configs + * @param config + * @param lib + * @param minigame + * @param section + * @param path + * @param element + * @throws Exception + */ + void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, org.bukkit.configuration.ConfigurationSection section, String path, T element) + throws Exception; + + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index 1b613402..7a47a8e8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -15,11 +15,18 @@ package com.github.mce.minigames.api.config; +import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.List; import java.util.Set; +import org.bukkit.Color; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; + import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** * An interface for enumerations that represent entries in configuration files. @@ -30,96 +37,513 @@ public interface ConfigurationValueInterface { /** - * Returns the value of given configuration value. - * - * @return value. + * Checks if this configuration variable is a boolean. + * @return {@code true} if this is a boolean */ - default boolean getBoolean() + default boolean isBoolean() { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationBool config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationBool.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).getBoolean(path, config.defaultValue()); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.isType(this, ConfigurationBool.class); } /** - * Returns the value of given configuration value. + * Checks if this configuration variable is a boolean list. + * @return {@code true} if this is a boolean list + */ + default boolean isBooleanList() + { + return ConfigurationTool.isType(this, ConfigurationBoolList.class); + } + + /** + * Checks if this configuration variable is a byte. + * @return {@code true} if this is a byte + */ + default boolean isByte() + { + return ConfigurationTool.isType(this, ConfigurationByte.class); + } + + /** + * Checks if this configuration variable is a byte list. + * @return {@code true} if this is a byte list + */ + default boolean isByteList() + { + return ConfigurationTool.isType(this, ConfigurationByteList.class); + } + + /** + * Checks if this configuration variable is a character. + * @return {@code true} if this is a character + */ + default boolean isCharacter() + { + return ConfigurationTool.isType(this, ConfigurationCharacter.class); + } + + /** + * Checks if this configuration variable is a character list. + * @return {@code true} if this is a character list + */ + default boolean isCharacterList() + { + return ConfigurationTool.isType(this, ConfigurationCharacterList.class); + } + + /** + * Checks if this configuration variable is a color list. + * @return {@code true} if this is a color list + */ + default boolean isColorList() + { + return ConfigurationTool.isType(this, ConfigurationColorList.class); + } + + /** + * Checks if this configuration variable is a color. + * @return {@code true} if this is a color + */ + default boolean isColor() + { + return ConfigurationTool.isType(this, ConfigurationColor.class); + } + + /** + * Checks if this configuration variable is a double list. + * @return {@code true} if this is a double list + */ + default boolean isDoubleList() + { + return ConfigurationTool.isType(this, ConfigurationDoubleList.class); + } + + /** + * Checks if this configuration variable is a double. + * @return {@code true} if this is a double + */ + default boolean isDouble() + { + return ConfigurationTool.isType(this, ConfigurationDouble.class); + } + + /** + * Checks if this configuration variable is a float list. + * @return {@code true} if this is a float list + */ + default boolean isFloatList() + { + return ConfigurationTool.isType(this, ConfigurationFloatList.class); + } + + /** + * Checks if this configuration variable is a float. + * @return {@code true} if this is a float + */ + default boolean isFloat() + { + return ConfigurationTool.isType(this, ConfigurationFloat.class); + } + + /** + * Checks if this configuration variable is a int list. + * @return {@code true} if this is a int list + */ + default boolean isIntList() + { + return ConfigurationTool.isType(this, ConfigurationIntList.class); + } + + /** + * Checks if this configuration variable is a int. + * @return {@code true} if this is a int + */ + default boolean isInt() + { + return ConfigurationTool.isType(this, ConfigurationInt.class); + } + + /** + * Checks if this configuration variable is an item stack list. + * @return {@code true} if this is an item stack list + */ + default boolean isItemStackList() + { + return ConfigurationTool.isType(this, ConfigurationItemStackList.class); + } + + /** + * Checks if this configuration variable is an item stack. + * @return {@code true} if this is an item stack + */ + default boolean isItemStack() + { + return ConfigurationTool.isType(this, ConfigurationItemStack.class); + } + + /** + * Checks if this configuration variable is a section. + * @return {@code true} if this is a section + */ + default boolean isSection() + { + return ConfigurationTool.isType(this, ConfigurationSection.class); + } + + /** + * Checks if this configuration variable is a long list. + * @return {@code true} if this is a long list + */ + default boolean isLongList() + { + return ConfigurationTool.isType(this, ConfigurationLongList.class); + } + + /** + * Checks if this configuration variable is a long. + * @return {@code true} if this is a long + */ + default boolean isLong() + { + return ConfigurationTool.isType(this, ConfigurationLong.class); + } + + /** + * Checks if this configuration variable is an object list. + * @return {@code true} if this is an object list + */ + default boolean isObjectList() + { + return ConfigurationTool.isType(this, ConfigurationObjectList.class); + } + + /** + * Checks if this configuration variable is an object. + * @return {@code true} if this is an object + */ + default boolean isObject() + { + return ConfigurationTool.isType(this, ConfigurationObject.class); + } + + /** + * Checks if this configuration variable is a player list. + * @return {@code true} if this is a player list + */ + default boolean isPlayerList() + { + return ConfigurationTool.isType(this, ConfigurationPlayerList.class); + } + + /** + * Checks if this configuration variable is a player. + * @return {@code true} if this is a player + */ + default boolean isPlayer() + { + return ConfigurationTool.isType(this, ConfigurationPlayer.class); + } + + /** + * Checks if this configuration variable is a short list. + * @return {@code true} if this is a short list + */ + default boolean isShortList() + { + return ConfigurationTool.isType(this, ConfigurationShortList.class); + } + + /** + * Checks if this configuration variable is a short. + * @return {@code true} if this is a short + */ + default boolean isShort() + { + return ConfigurationTool.isType(this, ConfigurationShort.class); + } + + /** + * Checks if this configuration variable is a string list. + * @return {@code true} if this is a string list + */ + default boolean isStringList() + { + return ConfigurationTool.isType(this, ConfigurationStringList.class); + } + + /** + * Checks if this configuration variable is a string. + * @return {@code true} if this is a string + */ + default boolean isString() + { + return ConfigurationTool.isType(this, ConfigurationString.class); + } + + /** + * Checks if this configuration variable is a vector list. + * @return {@code true} if this is a vector list + */ + default boolean isVectorList() + { + return ConfigurationTool.isType(this, ConfigurationVectorList.class); + } + + /** + * Checks if this configuration variable is a vector. + * @return {@code true} if this is a vector + */ + default boolean isVector() + { + return ConfigurationTool.isType(this, ConfigurationVector.class); + } + + /** + * Checks if this configuration value is set. * - * @return value. + * @return {@code true} if this configuraiton value is set. */ - default boolean[] getBooleanList() + default boolean isset() { try { + final Field field = this.getClass().getField(((Enum<?>) this).name()); final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationBoolList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationBoolList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } final MglibInterface lib = MglibInterface.INSTANCE.get(); final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Boolean> result = minigame.getConfig(configs.file()).getBooleanList(path); - if (result.size() == 0) + { - return config.defaultValue(); + final ConfigurationBool config = field.getAnnotation(ConfigurationBool.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } } - final boolean[] res = new boolean[result.size()]; - for (int i = 0; i < res.length; i++) { - res[i] = result.get(i).booleanValue(); + final ConfigurationBoolList config = field.getAnnotation(ConfigurationBoolList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default byte[] getByteList() - { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationByteList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationByteList.class); - if (configs == null || config == null) { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + final ConfigurationByte config = field.getAnnotation(ConfigurationByte.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationByteList config = field.getAnnotation(ConfigurationByteList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationCharacter config = field.getAnnotation(ConfigurationCharacter.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationCharacterList config = field.getAnnotation(ConfigurationCharacterList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationColor config = field.getAnnotation(ConfigurationColor.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationColorList config = field.getAnnotation(ConfigurationColorList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationDouble config = field.getAnnotation(ConfigurationDouble.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationDoubleList config = field.getAnnotation(ConfigurationDoubleList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationFloat config = field.getAnnotation(ConfigurationFloat.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationFloatList config = field.getAnnotation(ConfigurationFloatList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationInt config = field.getAnnotation(ConfigurationInt.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationIntList config = field.getAnnotation(ConfigurationIntList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationItemStack config = field.getAnnotation(ConfigurationItemStack.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationItemStackList config = field.getAnnotation(ConfigurationItemStackList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationLong config = field.getAnnotation(ConfigurationLong.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationLongList config = field.getAnnotation(ConfigurationLongList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationObject config = field.getAnnotation(ConfigurationObject.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationObjectList config = field.getAnnotation(ConfigurationObjectList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationPlayer config = field.getAnnotation(ConfigurationPlayer.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationPlayerList config = field.getAnnotation(ConfigurationPlayerList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationSection config = field.getAnnotation(ConfigurationSection.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationShort config = field.getAnnotation(ConfigurationShort.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationShortList config = field.getAnnotation(ConfigurationShortList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationString config = field.getAnnotation(ConfigurationString.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } + } + { + final ConfigurationStringList config = field.getAnnotation(ConfigurationStringList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Byte> result = minigame.getConfig(configs.file()).getByteList(path); - if (result.size() == 0) { - return config.defaultValue(); + final ConfigurationVector config = field.getAnnotation(ConfigurationVector.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } } - final byte[] res = new byte[result.size()]; - for (int i = 0; i < res.length; i++) { - res[i] = result.get(i).byteValue(); + final ConfigurationVectorList config = field.getAnnotation(ConfigurationVectorList.class); + if (config != null) + { + final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); + return minigame.getConfig(configs.file()).isSet(path); + } } - return res; + throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ } catch (NoSuchFieldException ex) { @@ -128,34 +552,27 @@ default byte[] getByteList() } /** - * Returns the value of given configuration value. + * Checks if this configuration value is set. * - * @return value. + * @param path + * sub path of configuration section + * @return {@code true} if this configuraiton value is set. */ - default char[] getCharacterList() + default boolean isset(String path) { try { + final Field field = this.getClass().getField(((Enum<?>) this).name()); final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationCharacterList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationCharacterList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } final MglibInterface lib = MglibInterface.INSTANCE.get(); final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Character> result = minigame.getConfig(configs.file()).getCharacterList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - final char[] res = new char[result.size()]; - for (int i = 0; i < res.length; i++) + final ConfigurationSection config = field.getAnnotation(ConfigurationSection.class); + if (config != null) { - res[i] = result.get(i).charValue(); + final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())) + '.' + path; + return minigame.getConfig(configs.file()).isSet(mpath); } - return res; + throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ } catch (NoSuchFieldException ex) { @@ -163,839 +580,1795 @@ default char[] getCharacterList() } } + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setObject(Configurable value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + value.writeToConfig(section); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setObjectList(Configurable[] value, String subpath) + { + ConfigurationTool.consumeList( + this, subpath, value, + (val, configs, config, lib, minigame, section, path, element) -> { + element.writeToConfig(section.getConfigurationSection(path)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setBoolean(boolean value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setBooleanList(boolean[] value, String subpath) + { + final List<Boolean> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setByte(byte value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setByteList(byte[] value, String subpath) + { + final List<Byte> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setCharacter(char value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, String.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setCharacterList(char[] value, String subpath) + { + final List<Character> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setColor(Color value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setColorList(Color[] value, String subpath) + { + ConfigurationTool.consumeList( + this, subpath, value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setDouble(double value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); + }); + } + + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setDoubleList(double[] value, String subpath) + { + final List<Double> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setFloat(float value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setFloatList(float[] value, String subpath) + { + final List<Float> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setInt(int value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setIntList(int[] value, String subpath) + { + final List<Integer> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setItemStack(ItemStack value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setItemStackList(ItemStack[] value, String subpath) + { + ConfigurationTool.consumeList( + this, subpath, value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setLong(long value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setLongList(long[] value, String subpath) + { + final List<Long> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setPlayer(ArenaPlayerInterface value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setPlayerList(ArenaPlayerInterface[] value, String subpath) + { + ConfigurationTool.consumeList( + this, subpath, value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.getOfflinePlayer()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setShort(short value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setShortList(short[] value, String subpath) + { + final List<Integer> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(Integer.valueOf(value[i])); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setString(String value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setStringList(String[] value, String subpath) + { + final List<String> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setVector(Vector value, String subpath) + { + ConfigurationTool.consume( + this, subpath, + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + * @param subpath + */ + default void setVectorList(Vector[] value, String subpath) + { + ConfigurationTool.consumeList( + this, subpath, value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setObject(Configurable value) + { + ConfigurationTool.consume( + this, ConfigurationObject.class, ConfigurationTool.objectPath(), + (val, configs, config, lib, minigame, path) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + value.writeToConfig(section); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setObjectList(Configurable[] value) + { + ConfigurationTool.consumeList( + this, ConfigurationObjectList.class, ConfigurationTool.objectListPath(), value, + (val, configs, config, lib, minigame, section, path, element) -> { + element.writeToConfig(section.getConfigurationSection(path)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setBoolean(boolean value) + { + ConfigurationTool.consume( + this, ConfigurationBool.class, ConfigurationTool.boolPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setBooleanList(boolean[] value) + { + final List<Boolean> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setByte(byte value) + { + ConfigurationTool.consume( + this, ConfigurationByte.class, ConfigurationTool.bytePath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setByteList(byte[] value) + { + final List<Byte> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setCharacter(char value) + { + ConfigurationTool.consume( + this, ConfigurationCharacter.class, ConfigurationTool.charPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, String.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setCharacterList(char[] value) + { + final List<Character> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setColor(Color value) + { + ConfigurationTool.consume( + this, ConfigurationColor.class, ConfigurationTool.colorPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setColorList(Color[] value) + { + ConfigurationTool.consumeList( + this, ConfigurationColorList.class, ConfigurationTool.colorListPath(), value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setDouble(double value) + { + ConfigurationTool.consume( + this, ConfigurationDouble.class, ConfigurationTool.doublePath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); + }); + } + + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setDoubleList(double[] value) + { + final List<Double> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setFloat(float value) + { + ConfigurationTool.consume( + this, ConfigurationFloat.class, ConfigurationTool.floatPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setFloatList(float[] value) + { + final List<Float> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setInt(int value) + { + ConfigurationTool.consume( + this, ConfigurationInt.class, ConfigurationTool.intPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setIntList(int[] value) + { + final List<Integer> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationIntList.class, ConfigurationTool.intListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setItemStack(ItemStack value) + { + ConfigurationTool.consume( + this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setItemStackList(ItemStack[] value) + { + ConfigurationTool.consumeList( + this, ConfigurationItemStackList.class, ConfigurationTool.itemStackListPath(), value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setLong(long value) + { + ConfigurationTool.consume( + this, ConfigurationLong.class, ConfigurationTool.longPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setLongList(long[] value) + { + final List<Long> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationLongList.class, ConfigurationTool.longListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setPlayer(ArenaPlayerInterface value) + { + ConfigurationTool.consume( + this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setPlayerList(ArenaPlayerInterface[] value) + { + ConfigurationTool.consumeList( + this, ConfigurationPlayerList.class, ConfigurationTool.playerListPath(), value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.getOfflinePlayer()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setShort(short value) + { + ConfigurationTool.consume( + this, ConfigurationShort.class, ConfigurationTool.shortPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setShortList(short[] value) + { + final List<Integer> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(Integer.valueOf(value[i])); + ConfigurationTool.consume( + this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setString(String value) + { + ConfigurationTool.consume( + this, ConfigurationString.class, ConfigurationTool.stringPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setStringList(String[] value) + { + final List<String> list = new ArrayList<>(); + for (int i = 0; i < value.length; i++) list.add(value[i]); + ConfigurationTool.consume( + this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setVector(Vector value) + { + ConfigurationTool.consume( + this, ConfigurationVector.class, ConfigurationTool.vectorPath(), + (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); + } + + /** + * Sets the value to this configuration variable. + * + * @param value + * value to set. + */ + default void setVectorList(Vector[] value) + { + ConfigurationTool.consumeList( + this, ConfigurationVector.class, ConfigurationTool.vectorPath(), value, + (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + @SuppressWarnings("unchecked") + default <T extends Configurable> T getObject() + { + return (T) ConfigurationTool.calculate( + this, ConfigurationObject.class, ConfigurationTool.objectPath(), + (val, configs, config, lib, minigame, path) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + final Configurable result = config.clazz().newInstance(); + result.readFromConfig(section); + return result; + }); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default byte getByte() + { + return ConfigurationTool.calculate( + this, ConfigurationByte.class, ConfigurationTool.bytePath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())).byteValue(); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default Color getColor() + { + return ConfigurationTool.calculate( + this, ConfigurationColor.class, ConfigurationTool.colorPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getColor(path, Color.fromRGB(config.defaultRgb()))); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default ItemStack getItemStack() + { + return ConfigurationTool.calculate( + this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getItemStack(path).clone()); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default Vector getVector() + { + return ConfigurationTool.calculate( + this, ConfigurationVector.class, ConfigurationTool.vectorPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getVector(path).clone()); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default ArenaPlayerInterface getPlayer() + { + return ConfigurationTool.calculate( + this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), + (val, configs, config, lib, minigame, path) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(path))); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default char getCharacter() + { + return ConfigurationTool.calculate( + this, ConfigurationCharacter.class, ConfigurationTool.charPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getString(path, "" + config.defaultValue())).charAt(0); //$NON-NLS-1$ + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default boolean getBoolean() + { + return ConfigurationTool.calculate( + this, ConfigurationBool.class, ConfigurationTool.boolPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBoolean(path, config.defaultValue())); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default boolean[] getBooleanList() + { + final List<Boolean> list = ConfigurationTool.calculate( + this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBooleanList(path)); + final boolean[] result = new boolean[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default byte[] getByteList() + { + final List<Byte> list = ConfigurationTool.calculate( + this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getByteList(path)); + final byte[] result = new byte[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default char[] getCharacterList() + { + final List<Character> list = ConfigurationTool.calculate( + this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getCharacterList(path)); + final char[] result = new char[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default double getDouble() + { + return ConfigurationTool.calculate( + this, ConfigurationDouble.class, ConfigurationTool.doublePath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDouble(path, config.defaultValue())); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default float getFloat() + { + return ConfigurationTool.calculate( + this, ConfigurationFloat.class, ConfigurationTool.floatPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDouble(path, config.defaultValue())).floatValue(); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default double[] getDoubleList() + { + final List<Double> list = ConfigurationTool.calculate( + this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDoubleList(path)); + final double[] result = new double[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default float[] getFloatList() + { + final List<Float> list = ConfigurationTool.calculate( + this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getFloatList(path)); + final float[] result = new float[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default int getInt() + { + return ConfigurationTool.calculate( + this, ConfigurationInt.class, ConfigurationTool.intPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default short getShort() + { + return ConfigurationTool.calculate( + this, ConfigurationShort.class, ConfigurationTool.shortPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())).shortValue(); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default int[] getIntList() + { + final List<Integer> list = ConfigurationTool.calculate( + this, ConfigurationIntList.class, ConfigurationTool.intListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getIntegerList(path)); + final int[] result = new int[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default long getLong() + { + return ConfigurationTool.calculate( + this, ConfigurationLong.class, ConfigurationTool.longPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLong(path, config.defaultValue())); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default long[] getLongList() + { + final List<Long> list = ConfigurationTool.calculate( + this, ConfigurationLongList.class, ConfigurationTool.longListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLongList(path)); + final long[] result = new long[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default short[] getShortList() + { + final List<Short> list = ConfigurationTool.calculate( + this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getShortList(path)); + final short[] result = new short[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default String getString() + { + return ConfigurationTool.calculate( + this, ConfigurationString.class, ConfigurationTool.stringPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getString(path, config.defaultValue())); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default String[] getStringList() + { + final List<String> list = ConfigurationTool.calculate( + this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getStringList(path)); + return list.toArray(new String[list.size()]); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default Vector[] getVectorList() + { + return ConfigurationTool.calculateList( + this, ConfigurationVectorList.class, Vector.class, ConfigurationTool.vectorListPath(), + (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default ItemStack[] getItemStackList() + { + return ConfigurationTool.calculateList( + this, ConfigurationItemStackList.class, ItemStack.class, ConfigurationTool.itemStackListPath(), + (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); + } + + /** + * Returns the value of given configuration value. + * + * @param clazz + * @return value. + */ + default <T extends Configurable> T[] getObjectList(Class<T> clazz) + { + return ConfigurationTool.calculateList( + this, ConfigurationObjectList.class, clazz, ConfigurationTool.objectListPath(), + (val, configs, config, lib, minigame, section, key) -> { + final T ret = clazz.newInstance(); + ret.readFromConfig(section.getConfigurationSection(key)); + return ret; + }); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default Color[] getColorList() + { + return ConfigurationTool.calculateList( + this, ConfigurationColorList.class, Color.class, ConfigurationTool.colorListPath(), + (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); + } + + /** + * Returns the value of given configuration value. + * + * @return value. + */ + default ArenaPlayerInterface[] getPlayerList() + { + return ConfigurationTool.calculateList( + this, ConfigurationPlayerList.class, ArenaPlayerInterface.class, ConfigurationTool.playerListPath(), + (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); + } + + /** + * Returns the keys of given configuration section. + * + * @param deep + * + * @return value. + */ + default String[] getKeys(boolean deep) + { + try + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + if (configs == null || config == null) + { + throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ + } + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); + final Set<String> result = minigame.getConfig(configs.file()).getConfigurationSection(path).getKeys(deep); + return result.toArray(new String[result.size()]); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns the value of given configuration value. + * + * @param clazz + * @param path + * sub path of configuration section + * @return value. + */ + @SuppressWarnings("unchecked") + default <T extends Configurable> T getObject(Class<T> clazz, String path) + { + return (T) ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + final Configurable result = clazz.newInstance(); + result.readFromConfig(section); + return result; + }); + } + + /** + * Returns the value of given configuration value. + * + * @param path + * sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default byte getByte(String path, byte defaultValue) + { + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).byteValue(); + } + /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default double getDouble() + default boolean getBoolean(String path, boolean defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationDouble config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationDouble.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).getDouble(path, config.defaultValue()); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBoolean(spath, defaultValue)); } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default double[] getDoubleList() + default boolean[] getBooleanList(String path, boolean[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationDoubleList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationDoubleList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Double> result = minigame.getConfig(configs.file()).getDoubleList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - final double[] res = new double[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).doubleValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Boolean> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBooleanList(spath)); + if (list.size() == 0) return defaultValue; + final boolean[] result = new boolean[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default float[] getFloatList() + default byte[] getByteList(String path, byte[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationFloatList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationFloatList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Float> result = minigame.getConfig(configs.file()).getFloatList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - final float[] res = new float[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).floatValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Byte> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getByteList(spath)); + if (list.size() == 0) return defaultValue; + final byte[] result = new byte[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default int getInt() + default char[] getCharacterList(String path, char[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationInt config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationInt.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).getInt(path, config.defaultValue()); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Character> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getCharacterList(spath)); + if (list.size() == 0) return defaultValue; + final char[] result = new char[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default int[] getIntList() + default double getDouble(String path, double defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationIntList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationIntList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Integer> result = minigame.getConfig(configs.file()).getIntegerList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - final int[] res = new int[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).intValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)); } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default long getLong() + default float getFloat(String path, float defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationLong config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationLong.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).getLong(path, config.defaultValue()); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)).floatValue(); } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default long[] getLongList() + default double[] getDoubleList(String path, double[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationLongList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationLongList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Long> result = minigame.getConfig(configs.file()).getLongList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - final long[] res = new long[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).longValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Double> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDoubleList(spath)); + if (list.size() == 0) return defaultValue; + final double[] result = new double[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default short[] getShortList() + default float[] getFloatList(String path, float[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationShortList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationShortList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<Short> result = minigame.getConfig(configs.file()).getShortList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - final short[] res = new short[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).shortValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Float> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getFloatList(spath)); + if (list.size() == 0) return defaultValue; + final float[] result = new float[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default String getString() + default int getInt(String path, int defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationString config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationString.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).getString(path, config.defaultValue()); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)); } /** * Returns the value of given configuration value. * + * @param path + * sub path of configuration section + * @param defaultValue + * * @return value. */ - default String[] getStringList() + default int[] getIntList(String path, int[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationStringList config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationStringList.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - final List<String> result = minigame.getConfig(configs.file()).getStringList(path); - if (result.size() == 0) - { - return config.defaultValue(); - } - return result.toArray(new String[result.size()]); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Integer> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getIntegerList(spath)); + if (list.size() == 0) return defaultValue; + final int[] result = new int[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** - * Returns the keys of given configuration section. + * Returns the value of given configuration value. * - * @param deep + * @param path + * sub path of configuration section + * @param defaultValue * * @return value. */ - default String[] getKeys(boolean deep) + default long getLong(String path, long defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final Set<String> result = minigame.getConfig(configs.file()).getConfigurationSection(path).getKeys(deep); - return result.toArray(new String[result.size()]); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLong(spath, defaultValue)); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section + * @param path + * sub path of configuration section * @param defaultValue * * @return value. */ - default boolean getBoolean(String path, boolean defaultValue) + default short getShort(String path, short defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getBoolean(path, defaultValue); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).shortValue(); + } + + /** + * Returns the value of given configuration value. + * + * @param path + * sub path of configuration section + * @param defaultValue + * + * @return value. + */ + default long[] getLongList(String path, long[] defaultValue) + { + final List<Long> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLongList(spath)); + if (list.size() == 0) return defaultValue; + final long[] result = new long[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section + * @param path + * sub path of configuration section * @param defaultValue * * @return value. */ - default boolean[] getBooleanList(String path, boolean[] defaultValue) + default short[] getShortList(String path, short[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Boolean> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getBooleanList(path); - if (result.size() == 0) - { - return defaultValue; - } - final boolean[] res = new boolean[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).booleanValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<Short> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getShortList(spath)); + if (list.size() == 0) return defaultValue; + final short[] result = new short[list.size()]; + for (int i = 0; i < result.length; i++) result[i] = list.get(i); + return result; } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section + * @param path + * sub path of configuration section * @param defaultValue * * @return value. */ - default byte[] getByteList(String path, byte[] defaultValue) + default String getString(String path, String defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Byte> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getByteList(path); - if (result.size() == 0) - { - return defaultValue; - } - final byte[] res = new byte[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).byteValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, defaultValue)); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section + * @param path + * sub path of configuration section * @param defaultValue * * @return value. */ - default char[] getCharacterList(String path, char[] defaultValue) + default char getCharacter(String path, char defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Character> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getCharacterList(path); - if (result.size() == 0) - { - return defaultValue; - } - final char[] res = new char[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).charValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, "" + defaultValue)).charAt(0); //$NON-NLS-1$ } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section + * @param path + * sub path of configuration section * @param defaultValue * * @return value. */ - default double getDouble(String path, double defaultValue) + default Color getColor(String path, Color defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getDouble(path, defaultValue); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getColor(spath)); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default double[] getDoubleList(String path, double[] defaultValue) + default ItemStack getItemStack(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Double> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getDoubleList(path); - if (result.size() == 0) - { - return defaultValue; - } - final double[] res = new double[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).doubleValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getItemStack(spath).clone()); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default float[] getFloatList(String path, float[] defaultValue) + default Vector getVector(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Float> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getFloatList(path); - if (result.size() == 0) - { - return defaultValue; - } - final float[] res = new float[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).floatValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getVector(spath).clone()); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default int getInt(String path, int defaultValue) + default Vector[] getVectorList(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getInt(path, defaultValue); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculateList( + this, path, Vector.class, + (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default int[] getIntList(String path, int[] defaultValue) + default ItemStack[] getItemStackList(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Integer> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getIntegerList(path); - if (result.size() == 0) - { - return defaultValue; - } - final int[] res = new int[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).intValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculateList( + this, path, ItemStack.class, + (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param clazz + * @param path + * sub path of configuration section * * @return value. */ - default long getLong(String path, long defaultValue) + default <T extends Configurable> T[] getObjectList(Class<T> clazz, String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getLong(path, defaultValue); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculateList( + this, path, clazz, + (val, configs, config, lib, minigame, section, key) -> { + final T result = clazz.newInstance(); + result.readFromConfig(section.getConfigurationSection(key)); + return result; + }); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default long[] getLongList(String path, long[] defaultValue) + default Color[] getColorList(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Long> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getLongList(path); - if (result.size() == 0) - { - return defaultValue; - } - final long[] res = new long[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).longValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculateList( + this, path, Color.class, + (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default short[] getShortList(String path, short[] defaultValue) + default ArenaPlayerInterface[] getPlayerList(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<Short> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getShortList(path); - if (result.size() == 0) - { - return defaultValue; - } - final short[] res = new short[result.size()]; - for (int i = 0; i < res.length; i++) - { - res[i] = result.get(i).shortValue(); - } - return res; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculateList( + this, path, ArenaPlayerInterface.class, + (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section - * @param defaultValue + * @param path + * sub path of configuration section * * @return value. */ - default String getString(String path, String defaultValue) + default ArenaPlayerInterface getPlayer(String path) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return minigame.getConfig(configs.file()).getConfigurationSection(mpath).getString(path, defaultValue); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(spath))); } /** * Returns the value of given configuration value. * - * @param path sub path of configuration section + * @param path + * sub path of configuration section * @param defaultValue * * @return value. */ default String[] getStringList(String path, String[] defaultValue) { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final List<String> result = minigame.getConfig(configs.file()).getConfigurationSection(mpath).getStringList(path); - if (result.size() == 0) - { - return defaultValue; - } - return result.toArray(new String[result.size()]); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + final List<String> list = ConfigurationTool.calculate( + this, path, + (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getStringList(spath)); + if (list.size() == 0) return defaultValue; + return list.toArray(new String[list.size()]); } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java new file mode 100644 index 00000000..9a959dd2 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationVector +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java new file mode 100644 index 00000000..ea657c0b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A single configuration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ConfigurationVectorList +{ + + /** + * The name of the configuration value. + * + * <p> + * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. + * </p> + * + * @return Name of configuration value; empty string to use the constant name. + */ + String name() default ""; + +} diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md index 38554da2..84e43f3b 100644 --- a/APIv2/src/site/markdown/migrationList.md +++ b/APIv2/src/site/markdown/migrationList.md @@ -8,17 +8,17 @@ - [ ] ArrayList<Location> spawns - [ ] HashMap<String, Location> pspawnloc - [ ] HashMap<String, String> lastdamager -- [ ] HashMap<String, Integer> temp_kill_count -- [ ] HashMap<String, Integer> temp_death_count +- [ ] HashMap<String, Integer> temp\_kill\_count +- [ ] HashMap<String, Integer> temp\_death\_count - [ ] Location mainlobby - [ ] Location waitinglobby - [ ] Location specspawn - [ ] Location signloc -- [ ] int max_players -- [ ] int min_players +- [ ] int max\_players +- [ ] int min\_players - [ ] boolean viparena - [ ] ArrayList<String> players -- [ ] ArrayList<String> temp_players +- [ ] ArrayList<String> temp\_players - [ ] ArenaType type - [ ] ArenaState currentstate - [ ] String name @@ -29,23 +29,23 @@ - [ ] boolean alwaysPvP - [ ] SmartReset sr - [ ] Cuboid boundaries -- [ ] Cuboid lobby_boundaries -- [ ] Cuboid spec_boundaries -- [ ] boolean temp_countdown -- [ ] boolean skip_join_lobby +- [ ] Cuboid lobby\_boundaries +- [ ] Cuboid spec\_boundaries +- [ ] boolean temp\_countdown +- [ ] boolean skip\_join\_lobby - [ ] int currentspawn -- [ ] int global_coin_multiplier -- [ ] BukkitTask maximum_game_time -- [ ] ArrayList<ItemStack> global_drops +- [ ] int global\_coin\_multiplier +- [ ] BukkitTask maximum\_game\_time +- [ ] ArrayList<ItemStack> global\_drops - [ ] int currentlobbycount - [ ] int currentingamecount - [ ] int currenttaskid -- [ ] boolean temp_delay_stopped +- [ ] boolean temp\_delay\_stopped - [ ] ArenaLogger logger - [ ] Arena(final JavaPlugin plugin, final String name) - [ ] Arena(final JavaPlugin plugin, final String name, final ArenaType type) -- [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max_players, final int min_players, final boolean viparena) -- [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max_players, final int min_players, final boolean viparena) +- [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) +- [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) - [ ] Arena getArena() - [ ] SmartReset getSmartReset() - [ ] boolean getShowScoreboard() @@ -73,7 +73,7 @@ - [ ] void joinPlayerLobby(final String playername) - [ ] void joinPlayerLobby(final UUID playerUuid) - [ ] void joinPlayerLobby(final String playername, final boolean countdown) -- [ ] void joinPlayerLobby(final String playername, final ArcadeInstance arcade, final boolean countdown, final boolean skip_lobby) +- [ ] void joinPlayerLobby(final String playername, final ArcadeInstance arcade, final boolean countdown, final boolean skip\_lobby) - [ ] ArenaState getArenaState() - [ ] void setArenaState(final ArenaState s) - [ ] ArenaType getArenaType() @@ -120,117 +120,117 @@ ## ArenaConfigStrings.java -- [ ] String BOUNDS_LOW -- [ ] String BOUNDS_HIGH -- [ ] String LOBBY_BOUNDS_LOW -- [ ] String LOBBY_BOUNDS_HIGH -- [ ] String SPEC_BOUNDS_LOW -- [ ] String SPEC_BOUNDS_HIGH -- [ ] String SPEC_SPAWN -- [ ] String ARENAS_PREFIX -- [ ] String DISPLAYNAME_SUFFIX -- [ ] String AUTHOR_SUFFIX -- [ ] String DESCRIPTION_SUFFIX -- [ ] String CONFIG_CLASS_SELECTION_ITEM -- [ ] String CONFIG_EXIT_ITEM -- [ ] String CONFIG_ACHIEVEMENT_ITEMS -- [ ] String CONFIG_SPECTATOR_ITEM -- [ ] String CONFIG_SHOP_SELECTION_ITEM -- [ ] String CONFIG_CLASSES_GUI_ROWS -- [ ] String CONFIG_SHOP_GUI_ROWS -- [ ] String CONFIG_SPECTATOR_AFTER_FALL_OR_DEATH -- [ ] String CONFIG_SPECTATOR_MOVE_Y_LOCK -- [ ] String CONFIG_DEFAULT_MAX_PLAYERS -- [ ] String CONFIG_DEFAULT_MIN_PLAYERS -- [ ] String CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES -- [ ] String CONFIG_LOBBY_COUNTDOWN -- [ ] String CONFIG_INGAME_COUNTDOWN -- [ ] String CONFIG_INGAME_COUNTDOWN_ENABLED -- [ ] String CONFIG_SKIP_LOBBY -- [ ] String CONFIG_CLEANINV_WHILE_INGAMECOUNTDOWN -- [ ] String CONFIG_CLASSES_ENABLED -- [ ] String CONFIG_SHOP_ENABLED -- [ ] String CONFIG_USE_CREADITS_INSTEAD_MONEY_FOR_KITS -- [ ] String CONFIG_RESET_INV_WHEN_LEAVING_SERVER -- [ ] String CONFIG_COLOR_BACKGROUND_WOOL -- [ ] String CONFIG_SHOW_CLASSES_WITHOUT_PERM -- [ ] String CONFIG_REWARDS_ECONOMY -- [ ] String CONFIG_REWARDS_ECONOMY_REWARD -- [ ] String CONFIG_REWARDS_ITEM_REWARD -- [ ] String CONFIG_REWARDS_ITEM_REWARD_IDS -- [ ] String CONFIG_REWARDS_COMMAND_REWARD -- [ ] String CONFIG_REWARDS_COMMAND -- [ ] String CONFIG_REWARDS_ECONOMY_FOR_KILLS -- [ ] String CONFIG_REWARDS_ECONOMY_REWARD_FOR_KILLS -- [ ] String CONFIG_REWARDS_COMMAND_REWARD_FOR_KILLS -- [ ] String CONFIG_REWARDS_COMMAND_FOR_KILLS -- [ ] String CONFIG_REWARDS_ECONOMY_FOR_PARTICIPATION -- [ ] String CONFIG_REWARDS_ECONOMY_REWARD_FOR_PARTICIPATION -- [ ] String CONFIG_REWARDS_COMMAND_REWARD_FOR_PARTICIPATION -- [ ] String CONFIG_REWARDS_COMMAND_FOR_PARTICIPATION -- [ ] String CONFIG_STATS_POINTS_FOR_KILL -- [ ] String CONFIG_STATS_POINTS_FOR_WIN -- [ ] String CONFIG_ARCADE_ENABLED -- [ ] String CONFIG_ARCADE_MIN_PLAYERS -- [ ] String CONFIG_ARCADE_MAX_PLAYERS -- [ ] String CONFIG_ARCADE_ARENA_TO_PREFER_ENABLED -- [ ] String CONFIG_ARCADE_ARENA_TO_PREFER_ARENA -- [ ] String CONFIG_ARCADE_LOBBY_COUNTDOWN -- [ ] String CONFIG_ARCADE_SHOW_EACH_LOBBY_COUNTDOWN -- [ ] String CONFIG_ARCADE_INFINITE_ENABLED -- [ ] String CONFIG_ARCADE_INFINITE_SECONDS_TO_NEW_ROUND -- [ ] String CONFIG_BUNGEE_GAME_ON_JOIN -- [ ] String CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_TP -- [ ] String CONFIG_BUNGEE_TELEPORT_ALL_TO_SERVER_ON_STOP_SERVER -- [ ] String CONFIG_BUNGEE_WHITELIST_WHILE_GAME_RUNNING -- [ ] String CONFIG_EXECUTE_CMDS_ON_STOP -- [ ] String CONFIG_CMDS -- [ ] String CONFIG_CMDS_AFTER -- [ ] String CONFIG_MAP_ROTATION -- [ ] String CONFIG_BROADCAST_WIN -- [ ] String CONFIG_BUY_CLASSES_FOREVER -- [ ] String CONFIG_DISABLE_COMMANDS_IN_ARENA -- [ ] String CONFIG_COMMAND_WHITELIST -- [ ] String CONFIG_LEAVE_COMMAND -- [ ] String CONFIG_SPAWN_FIREWORKS_FOR_WINNERS -- [ ] String CONFIG_POWERUP_BROADCAST -- [ ] String CONFIG_POWERUP_FIREWORKS -- [ ] String CONFIG_USE_CUSTOM_SCOREBOARD -- [ ] String CONFIG_DELAY_ENABLED -- [ ] String CONFIG_DELAY_AMOUNT_SECONDS -- [ ] String CONFIG_SEND_GAME_STARTED_MSG -- [ ] String CONFIG_AUTO_ADD_DEFAULT_KIT -- [ ] String CONFIG_LAST_MAN_STANDING_WINS -- [ ] String CONFIG_EFFECTS_BLOOD -- [ ] String CONFIG_EFFECTS_DMG_IDENTIFIER_HOLO -- [ ] String CONFIG_EFFECTS_DEAD_IN_FAKE_BED -- [ ] String CONFIG_EFFECTS_1_8_TITLES -- [ ] String CONFIG_EFFECTS_1_8_SPECTATOR_MODE -- [ ] String CONFIG_SOUNDS_LOBBY_COUNTDOWN -- [ ] String CONFIG_SOUNDS_INGAME_COUNTDOWN -- [ ] String CONFIG_CHAT_PER_ARENA_ONLY -- [ ] String CONFIG_CHAT_SHOW_SCORE_IN_ARENA -- [ ] String CONFIG_COMPASS_TRACKING_ENABLED -- [ ] String CONFIG_ALLOW_CLASSES_SELECTION_OUT_OF_ARENAS -- [ ] String CONFIG_SEND_STATS_ON_STOP -- [ ] String CONFIG_USE_XP_BAR_LEVEL -- [ ] String CONFIG_USE_OLD_RESET_METHOD -- [ ] String CONFIG_CHAT_ENABLED -- [ ] String CONFIG_EXTRA_LOBBY_ITEM_PREFIX -- [ ] String CONFIG_EXTRA_LOBBY_ITEM_ENABLED_SUFFIX -- [ ] String CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX -- [ ] String CONFIG_EXTRA_LOBBY_ITEM_NAME_SUFFIX -- [ ] String CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX -- [ ] String CONFIG_MYSQL_ENABLED -- [ ] String CONFIG_MYSQL_HOST -- [ ] String CONFIG_MYSQL_USER -- [ ] String CONFIG_MYSQL_PW -- [ ] String CONFIG_MYSQL_DATABASE +- [ ] String BOUNDS\_LOW +- [ ] String BOUNDS\_HIGH +- [ ] String LOBBY\_BOUNDS\_LOW +- [ ] String LOBBY\_BOUNDS\_HIGH +- [ ] String SPEC\_BOUNDS\_LOW +- [ ] String SPEC\_BOUNDS\_HIGH +- [ ] String SPEC\_SPAWN +- [ ] String ARENAS\_PREFIX +- [ ] String DISPLAYNAME\_SUFFIX +- [ ] String AUTHOR\_SUFFIX +- [ ] String DESCRIPTION\_SUFFIX +- [ ] String CONFIG\_CLASS\_SELECTION\_ITEM +- [ ] String CONFIG\_EXIT\_ITEM +- [ ] String CONFIG\_ACHIEVEMENT\_ITEMS +- [ ] String CONFIG\_SPECTATOR\_ITEM +- [ ] String CONFIG\_SHOP\_SELECTION\_ITEM +- [ ] String CONFIG\_CLASSES\_GUI\_ROWS +- [ ] String CONFIG\_SHOP\_GUI\_ROWS +- [ ] String CONFIG\_SPECTATOR\_AFTER\_FALL\_OR\_DEATH +- [ ] String CONFIG\_SPECTATOR\_MOVE\_Y\_LOCK +- [ ] String CONFIG\_DEFAULT\_MAX\_PLAYERS +- [ ] String CONFIG\_DEFAULT\_MIN\_PLAYERS +- [ ] String CONFIG\_DEFAULT\_MAX\_GAME\_TIME\_IN\_MINUTES +- [ ] String CONFIG\_LOBBY\_COUNTDOWN +- [ ] String CONFIG\_INGAME\_COUNTDOWN +- [ ] String CONFIG\_INGAME\_COUNTDOWN\_ENABLED +- [ ] String CONFIG\_SKIP\_LOBBY +- [ ] String CONFIG\_CLEANINV\_WHILE\_INGAMECOUNTDOWN +- [ ] String CONFIG\_CLASSES\_ENABLED +- [ ] String CONFIG\_SHOP\_ENABLED +- [ ] String CONFIG\_USE\_CREADITS\_INSTEAD\_MONEY\_FOR\_KITS +- [ ] String CONFIG\_RESET\_INV\_WHEN\_LEAVING\_SERVER +- [ ] String CONFIG\_COLOR\_BACKGROUND\_WOOL +- [ ] String CONFIG\_SHOW\_CLASSES\_WITHOUT\_PERM +- [ ] String CONFIG\_REWARDS\_ECONOMY +- [ ] String CONFIG\_REWARDS\_ECONOMY\_REWARD +- [ ] String CONFIG\_REWARDS\_ITEM\_REWARD +- [ ] String CONFIG\_REWARDS\_ITEM\_REWARD\_IDS +- [ ] String CONFIG\_REWARDS\_COMMAND\_REWARD +- [ ] String CONFIG\_REWARDS\_COMMAND +- [ ] String CONFIG\_REWARDS\_ECONOMY\_FOR\_KILLS +- [ ] String CONFIG\_REWARDS\_ECONOMY\_REWARD\_FOR\_KILLS +- [ ] String CONFIG\_REWARDS\_COMMAND\_REWARD\_FOR\_KILLS +- [ ] String CONFIG\_REWARDS\_COMMAND\_FOR\_KILLS +- [ ] String CONFIG\_REWARDS\_ECONOMY\_FOR\_PARTICIPATION +- [ ] String CONFIG\_REWARDS\_ECONOMY\_REWARD\_FOR\_PARTICIPATION +- [ ] String CONFIG\_REWARDS\_COMMAND\_REWARD\_FOR\_PARTICIPATION +- [ ] String CONFIG\_REWARDS\_COMMAND\_FOR\_PARTICIPATION +- [ ] String CONFIG\_STATS\_POINTS\_FOR\_KILL +- [ ] String CONFIG\_STATS\_POINTS\_FOR\_WIN +- [ ] String CONFIG\_ARCADE\_ENABLED +- [ ] String CONFIG\_ARCADE\_MIN\_PLAYERS +- [ ] String CONFIG\_ARCADE\_MAX\_PLAYERS +- [ ] String CONFIG\_ARCADE\_ARENA\_TO\_PREFER\_ENABLED +- [ ] String CONFIG\_ARCADE\_ARENA\_TO\_PREFER\_ARENA +- [ ] String CONFIG\_ARCADE\_LOBBY\_COUNTDOWN +- [ ] String CONFIG\_ARCADE\_SHOW\_EACH\_LOBBY\_COUNTDOWN +- [ ] String CONFIG\_ARCADE\_INFINITE\_ENABLED +- [ ] String CONFIG\_ARCADE\_INFINITE\_SECONDS\_TO\_NEW\_ROUND +- [ ] String CONFIG\_BUNGEE\_GAME\_ON\_JOIN +- [ ] String CONFIG\_BUNGEE\_TELEPORT\_ALL\_TO\_SERVER\_ON\_STOP\_TP +- [ ] String CONFIG\_BUNGEE\_TELEPORT\_ALL\_TO\_SERVER\_ON\_STOP\_SERVER +- [ ] String CONFIG\_BUNGEE\_WHITELIST\_WHILE\_GAME\_RUNNING +- [ ] String CONFIG\_EXECUTE\_CMDS\_ON\_STOP +- [ ] String CONFIG\_CMDS +- [ ] String CONFIG\_CMDS\_AFTER +- [ ] String CONFIG\_MAP\_ROTATION +- [ ] String CONFIG\_BROADCAST\_WIN +- [ ] String CONFIG\_BUY\_CLASSES\_FOREVER +- [ ] String CONFIG\_DISABLE\_COMMANDS\_IN\_ARENA +- [ ] String CONFIG\_COMMAND\_WHITELIST +- [ ] String CONFIG\_LEAVE\_COMMAND +- [ ] String CONFIG\_SPAWN\_FIREWORKS\_FOR\_WINNERS +- [ ] String CONFIG\_POWERUP\_BROADCAST +- [ ] String CONFIG\_POWERUP\_FIREWORKS +- [ ] String CONFIG\_USE\_CUSTOM\_SCOREBOARD +- [ ] String CONFIG\_DELAY\_ENABLED +- [ ] String CONFIG\_DELAY\_AMOUNT\_SECONDS +- [ ] String CONFIG\_SEND\_GAME\_STARTED\_MSG +- [ ] String CONFIG\_AUTO\_ADD\_DEFAULT\_KIT +- [ ] String CONFIG\_LAST\_MAN\_STANDING\_WINS +- [ ] String CONFIG\_EFFECTS\_BLOOD +- [ ] String CONFIG\_EFFECTS\_DMG\_IDENTIFIER\_HOLO +- [ ] String CONFIG\_EFFECTS\_DEAD\_IN\_FAKE\_BED +- [ ] String CONFIG\_EFFECTS\_1\_8\_TITLES +- [ ] String CONFIG\_EFFECTS\_1\_8\_SPECTATOR\_MODE +- [ ] String CONFIG\_SOUNDS\_LOBBY\_COUNTDOWN +- [ ] String CONFIG\_SOUNDS\_INGAME\_COUNTDOWN +- [ ] String CONFIG\_CHAT\_PER\_ARENA\_ONLY +- [ ] String CONFIG\_CHAT\_SHOW\_SCORE\_IN\_ARENA +- [ ] String CONFIG\_COMPASS\_TRACKING\_ENABLED +- [ ] String CONFIG\_ALLOW\_CLASSES\_SELECTION\_OUT\_OF\_ARENAS +- [ ] String CONFIG\_SEND\_STATS\_ON\_STOP +- [ ] String CONFIG\_USE\_XP\_BAR\_LEVEL +- [ ] String CONFIG\_USE\_OLD\_RESET\_METHOD +- [ ] String CONFIG\_CHAT\_ENABLED +- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_PREFIX +- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_ENABLED\_SUFFIX +- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_ITEM\_SUFFIX +- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_NAME\_SUFFIX +- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_COMMAND\_SUFFIX +- [ ] String CONFIG\_MYSQL\_ENABLED +- [ ] String CONFIG\_MYSQL\_HOST +- [ ] String CONFIG\_MYSQL\_USER +- [ ] String CONFIG\_MYSQL\_PW +- [ ] String CONFIG\_MYSQL\_DATABASE ## ArenaListener.java - [ ] ArrayList<String> cmds -- [ ] String leave_cmd +- [ ] String leave\_cmd - [ ] int loseY - [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame) - [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) @@ -300,9 +300,9 @@ - [ ] String playername - [ ] ItemStack[] inv -- [ ] ItemStack[] armor_inv -- [ ] GameMode original_gamemode -- [ ] int original_xplvl +- [ ] ItemStack[] armor\_inv +- [ ] GameMode original\_gamemode +- [ ] int original\_xplvl - [ ] boolean noreward - [ ] Arena currentArena - [ ] AClass currentClass @@ -310,13 +310,13 @@ - [ ] ArenaPlayer getPlayerInstance(final String playername) - [ ] ArenaPlayer(final String playername) - [ ] Player getPlayer() -- [ ] void setInventories(final ItemStack[] inv, final ItemStack[] armor_inv) +- [ ] void setInventories(final ItemStack[] inv, final ItemStack[] armor\_inv) - [ ] ItemStack[] getInventory() - [ ] ItemStack[] getArmorInventory() - [ ] GameMode getOriginalGamemode() -- [ ] void setOriginalGamemode(final GameMode original_gamemode) +- [ ] void setOriginalGamemode(final GameMode original\_gamemode) - [ ] int getOriginalXplvl() -- [ ] void setOriginalXplvl(final int original_xplvl) +- [ ] void setOriginalXplvl(final int original\_xplvl) - [ ] boolean isNoReward() - [ ] void setNoReward(final boolean noreward) - [ ] Arena getCurrentArena() @@ -333,7 +333,7 @@ - [ ] void setLobby(final JavaPlugin plugin, final String arenaname, final Location l) - [ ] void setMainLobby(final JavaPlugin plugin, final Location l) - [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low) -- [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low, final String extra_component) +- [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low, final String extra\_component) - [ ] Arena saveArena(final JavaPlugin plugin, final String arenaname) - [ ] void setPlayerCount(final JavaPlugin plugin, final String arena, final int count, final boolean max) - [ ] int getPlayerCount(final JavaPlugin plugin, final String arena, final boolean max) @@ -359,10 +359,10 @@ ## ChannelStrings.java -- [ ] CHANNEL_BUNGEE_CORD -- [ ] SUBCHANNEL_MINIGAMESLIB_BACK -- [ ] SUBCHANNEL_MINIGAMESLIB_REQUEST -- [ ] SUBCHANNEL_MINIGAMESLIB_SIGN +- [ ] CHANNEL\_BUNGEE\_CORD +- [ ] SUBCHANNEL\_MINIGAMESLIB\_BACK +- [ ] SUBCHANNEL\_MINIGAMESLIB\_REQUEST +- [ ] SUBCHANNEL\_MINIGAMESLIB\_SIGN ## Classes.java @@ -384,256 +384,948 @@ ## CommandStrings.java -TODO +- [ ] String START +- [ ] String GAME\_START +- [ ] String GAME\_SET\_SPAWN +- [ ] String GAME\_SET\_SPEC\_SPAWN +- [ ] String GAME\_SET\_LOBBY +- [ ] String GAME\_SET\_MAINLOBBY +- [ ] String GAME\_SET\_BOUNDS +- [ ] String GAME\_SET\_LOBBY\_BOUNDS +- [ ] String GAME\_SET\_SPEC\_BOUNDS +- [ ] String GAME\_SAVE\_ARENA +- [ ] String GAME\_SAVE +- [ ] String GAME\_SET\_MAX\_PLAYERS +- [ ] String GAME\_SET\_MIN\_PLAYERS +- [ ] String GAME\_SET\_ARENA\_VIP +- [ ] String GAME\_SET\_VIP +- [ ] String GAME\_JOIN +- [ ] String GAME\_LEAVE +- [ ] String GAME\_STOP +- [ ] String GAME\_STOP\_ALL +- [ ] String GAME\_REMOVE\_ARENA +- [ ] String GAME\_REMOVE\_SPAWN +- [ ] String GAME\_SET\_SKULL +- [ ] String GAME\_SET\_ENABLED +- [ ] String GAME\_SET\_SHOW\_SCOREBOARD +- [ ] String GAME\_RESET +- [ ] String GAME\_SET\_AUTHOR +- [ ] String GAME\_SET\_DESCRIPTION +- [ ] String GAME\_SET\_DISPLAYNAME +- [ ] String GAME\_KIT +- [ ] String GAME\_SPECTATE +- [ ] String GAME\_SHOP +- [ ] String GAME\_LEADER\_BOARDS +- [ ] String GAME\_LB +- [ ] String GAME\_TOP +- [ ] String GAME\_STATS +- [ ] String GAME\_SET\_HOLOGRAM +- [ ] String GAME\_LIST\_HOLOGRAMS +- [ ] String GAME\_REMOVE\_HOLOGRAM +- [ ] String GAME\_HELP +- [ ] String GAME\_LIST +- [ ] String GAME\_RELOAD +- [ ] String GAME\_CREATE\_ARENA +- [ ] String GAME\_END\_ALL +- [ ] String PARTY +- [ ] String PARTY\_INVITE +- [ ] String PARTY\_ACCEPT +- [ ] String PARTY\_KICK +- [ ] String PARTY\_LIST +- [ ] String PARTY\_DISBAND +- [ ] String PARTY\_LEAVE +- [ ] String MAPI +- [ ] String MGAPI +- [ ] String MGLIB +- [ ] String MGLIB\_INFO +- [ ] String MGLIB\_DEBUG +- [ ] String MGLIB\_LIST +- [ ] String MGLIB\_TITLE +- [ ] String MGLIB\_SUBTITLE +- [ ] String MGLIB\_SIGNS +- [ ] String MGLIB\_HOLOGRAM +- [ ] String MGLIB\_STATS\_HOLOGRAM +- [ ] String MGLIB\_GAMEMODE\_TEST +- [ ] String MGLIB\_BUNGEE\_TEST +- [ ] String MGLIB\_JOIN ## Effects.java -TODO +- [ ] void playBloodEffect(final Player p) +- [ ] void playEffect(final Arena a, final Location l, final String effectname) +- [ ] BukkitTask playFakeBed(final Arena a, final Player p) +- [ ] BukkitTask playFakeBed(final Arena a, final Player p, final int x, final int y, final int z) +- [ ] void setValue(final Object instance, final String fieldName, final Object value) throws Exception +- [ ] void playRespawn(final Player p, final JavaPlugin plugin) +- [ ] void playTitle(final Player player, final String title, int eindex) +- [ ] HashMap<Integer, Integer> effectlocd +- [ ] HashMap<Integer, Integer> effectlocd\_taskid +- [ ] ArrayList<Integer> playHologram(final Player p, final Location l, final String text, final boolean moveDown, final boolean removeAfterCooldown) +- [ ] void sendGameModeChange(final Player p, final int gamemode) ## Messages.java -TODO +- [ ] migrate nls messages ## MinecraftVersionsType.java -TODO +- [ ] migrate version types ## MinigamesAPI.java -TODO +- [ ] MinecraftVersionsType SERVER\_VERSION +- [ ] Locale LOCALE +- [ ] MinigamesAPI instance +- [ ] Economy econ +- [ ] boolean economy +- [ ] boolean crackshot +- [ ] boolean debug +- [ ] int updatetime +- [ ] HashMap<String, Party> global\_party +- [ ] HashMap<String, ArrayList<Party>> global\_party\_invites +- [ ] HashMap<JavaPlugin, PluginInstance> pinstances +- [ ] PartyMessagesConfig partymessages +- [ ] StatsGlobalConfig statsglobal +- [ ] String internalServerVersion = ""; +- [ ] boolean below1710 +- [ ] Metrics metrics +- [ ] void onEnable() +- [ ] boolean crackshotAvailable() +- [ ] boolean economyAvailable() +- [ ] String getPermissionPrefix() +- [ ] String getPermissionKitPrefix() +- [ ] String getPermissionGunPrefix() +- [ ] String getPermissionShopPrefix() +- [ ] String getPermissionGamePrefix(String game) +- [ ] MinecraftVersionsType getServerVersion() +- [ ] void onDisable() +- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) +- [ ] void registerArenaListenerLater(final JavaPlugin plugin\_, final ArenaListener arenalistener) +- [ ] void registerArenaSetup(final JavaPlugin plugin\_, final ArenaSetup arenasetup) +- [ ] void registerScoreboard(final JavaPlugin plugin\_, final ArenaScoreboard board) +- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass) +- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame) +- [ ] PluginInstance setupRaw(final JavaPlugin plugin\_, final String minigame) +- [ ] MinigamesAPI getAPI() +- [ ] CommandHandler getCommandHandler() +- [ ] boolean setupEconomy() +- [ ] boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) +- [ ] void connectToServer(JavaPlugin plugin, String player, String server) +- [ ] void onPluginMessageReceived(final String channel, final Player player, final byte[] message) +- [ ] PluginInstance getPluginInstance(final JavaPlugin plugin) +- [ ] UUID playerToUUID(String playername) +- [ ] UUID playerToUUID(Player player) +- [ ] Player uuidToPlayer(UUID uuid) +- [ ] onBreak(BlockBreakEvent event) +- [ ] onSignUse(PlayerInteractEvent event) +- [ ] onSignChange(SignChangeEvent event) +- [ ] requestServerSign(String mg\_key, String arena\_key) +- [ ] getSignFromArena(String mg, String arena) +- [ ] void updateSign(String mg, String arenaname, String arenastate, int count, int maxcount) +- [ ] void sendSignUpdate(final PluginInstance pli, final Arena a) +- [ ] void updateSign(String mg, String arenaname, String arenastate, SignChangeEvent event) +- [ ] String getServerBySignLocation(Location sign) +- [ ] String getInfoBySignLocation(Location sign) ## Party.java -TODO +- [ ] String owner; +- [ ] ArrayList<String> players = new ArrayList<>(); +- [ ] Party(final String owner) +- [ ] String getOwner() +- [ ] ArrayList<String> getPlayers() +- [ ] void addPlayer(final String p) +- [ ] boolean removePlayer(final String p) +- [ ] containsPlayer(final String p) +- [ ] disband() +- [ ] tellAll(final String msg) ## PermissionStrings.java -TODO +- [ ] String MINIGAMES\_PARTY +- [ ] String MINIGAMES\_START ## PluginConfigStrings.java -TODO +- [ ] String DEBUG +- [ ] String PARTY\_COMMAND\_ENABLED +- [ ] String SIGNS\_UPDATE\_TIME +- [ ] String AUTO\_UPDATING +- [ ] String POST\_METRICS +- [ ] String PERMISSION\_PREFIX +- [ ] String PERMISSION\_KITS\_PREFIX +- [ ] String PERMISSION\_GUN\_PREFIX +- [ ] String PERMISSION\_SHOP\_PREFIX +- [ ] String PERMISSION\_GAME\_PREFIX ## PluginInstance.java -TODO +- [ ] HashMap<String, Arena> global\_players +- [ ] HashMap<String, Arena> global\_lost +- [ ] HashMap<String, Arena> global\_arcade\_spectator +- [ ] ArenaListener arenalistener +- [ ] ArenasConfig arenasconfig +- [ ] ClassesConfig classesconfig +- [ ] MessagesConfig messagesconfig +- [ ] StatsConfig statsconfig +- [ ] GunsConfig gunsconfig +- [ ] AchievementsConfig achievementsconfig +- [ ] ShopConfig shopconfig +- [ ] HologramsConfig hologramsconfig +- [ ] JavaPlugin plugin +- [ ] ArrayList<Arena> arenas +- [ ] HashMap<String, AClass> pclass +- [ ] LinkedHashMap<String, AClass> aclasses +- [ ] HashMap<String, Gun> guns +- [ ] Rewards rew +- [ ] MainSQL sql +- [ ] Stats stats +- [ ] Classes classes +- [ ] Shop shop +- [ ] SpectatorManager spectatormanager +- [ ] ArenaAchievements achievements +- [ ] Holograms holograms +- [ ] boolean achievement\_gui\_enabled +- [ ] ArenaScoreboard scoreboardManager +- [ ] ArenaLobbyScoreboard scoreboardLobbyManager +- [ ] ArenaSetup arenaSetup +- [ ] int lobby\_countdown +- [ ] int ingame\_countdown +- [ ] boolean spectator\_move\_y\_lock +- [ ] boolean use\_xp\_bar\_level +- [ ] boolean blood\_effects +- [ ] boolean dead\_in\_fake\_bed\_effects +- [ ] boolean spectator\_mode\_1\_8 +- [ ] boolean damage\_identifier\_effects +- [ ] boolean color\_background\_wool\_of\_signs; +- [ ] boolean last\_man\_standing +- [ ] boolean old\_reset +- [ ] boolean show\_classes\_without\_usage\_permission +- [ ] boolean chat\_enabled +- [ ] HashMap<String, ArrayList<String>> cached\_sign\_states +- [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final ArrayList<Arena> arenas) +- [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) +- [ ] void reloadVariables() +- [ ] JavaPlugin getPlugin() +- [ ] HashMap<String, AClass> getAClasses() +- [ ] HashMap<String, AClass> getPClasses() +- [ ] addAClass(final String name, final AClass a) +- [ ] setPClass(final String player, final AClass a) +- [ ] HashMap<String, Gun> getAllGuns() +- [ ] void addGun(final String name, final Gun g) +- [ ] ArenasConfig getArenasConfig() +- [ ] MessagesConfig getMessagesConfig() +- [ ] ClassesConfig getClassesConfig() +- [ ] StatsConfig getStatsConfig() +- [ ] GunsConfig getGunsConfig() +- [ ] AchievementsConfig getAchievementsConfig() +- [ ] ShopConfig getShopConfig() +- [ ] void setShopConfig(final ShopConfig shopconfig) +- [ ] HologramsConfig getHologramsConfig() +- [ ] Rewards getRewardsInstance() +- [ ] void setRewardsInstance(final Rewards r) +- [ ] MainSQL getSQLInstance() +- [ ] Stats getStatsInstance() +- [ ] ArenaListener getArenaListener() +- [ ] void setArenaListener(final ArenaListener al) +- [ ] Classes getClassesHandler() +- [ ] void setClassesHandler(final Classes c) +- [ ] Shop getShopHandler() +- [ ] SpectatorManager getSpectatorManager() +- [ ] void setSpectatorManager(final SpectatorManager s) +- [ ] ArenaAchievements getArenaAchievements() +- [ ] Holograms getHologramsHandler() +- [ ] int getIngameCountdown() +- [ ] int getLobbyCountdown() +- [ ] ArrayList<Arena> getArenas() +- [ ] void clearArenas() +- [ ] ArrayList<Arena> addArena(final Arena arena) +- [ ] Arena getArenaByName(final String arenaname) +- [ ] Arena removeArenaByName(final String arenaname) +- [ ] boolean removeArena(final Arena arena) +- [ ] void addLoadedArenas(final ArrayList<Arena> arenas) +- [ ] void addArenas(final Iterable<Arena> arenaList) +- [ ] void addArenas(final Arena... arenaList) +- [ ] void setArenas(final Iterable<Arena> arenaList) +- [ ] void setArenas(final Arena... arenaList) +- [ ] boolean isAchievementGuiEnabled() +- [ ] void setAchievementGuiEnabled(final boolean achievement\_gui\_enabled) +- [ ] void reloadAllArenas() +- [ ] void reloadArena(final String arenaname) +- [ ] boolean containsGlobalPlayer(final String playername) +- [ ] boolean containsGlobalLost(final String playername) +- [ ] Arena getArenaByGlobalPlayer(final String playername) ## PrivateUtil.java -TODO +- [ ] void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena arena) ## Rewards.java -TODO +- [ ] JavaPlugin plugin +- [ ] boolean economyrewards +- [ ] boolean itemrewards +- [ ] boolean commandrewards +- [ ] boolean kill_economyrewards +- [ ] boolean kill_commandrewards +- [ ] boolean participation_economyrewards +- [ ] boolean participation_commandrewards +- [ ] int econ_reward +- [ ] int kill_econ_reward +- [ ] int participation_econ_reward +- [ ] String command +- [ ] String kill_command +- [ ] String participation_command +- [ ] ItemStack[] items +- [ ] Rewards(final JavaPlugin plugin) +- [ ] void reloadVariables() +- [ ] void giveRewardsToWinners(final Arena arena) +- [ ] void giveReward(final String p\_) +- [ ] void giveKillReward(final String p\_) +- [ ] void giveKillReward(final String p\_, final int reward) +- [ ] void giveAchievementReward(final String p\_, final boolean econ, final boolean isCommand, final int money\_reward, final String cmd) +- [ ] void giveWinReward(final String p\_, final Arena a) +- [ ] void giveWinReward(final String p\_, final Arena a, final int global\_multiplier) +- [ ] void giveWinReward(final String p\_, final Arena a, final ArrayList<String> players, final int global\_multiplier) ## Shop.java -TODO +- [ ] JavaPlugin plugin +- [ ] PluginInstance pli +- [ ] HashMap<String, IconMenu> lasticonm +- [ ] LinkedHashMap<String, ShopItem> shopitems +- [ ] Shop(final PluginInstance pli, final JavaPlugin plugin) +- [ ] void openGUI(final String p) +- [ ] void loadShopItems() +- [ ] boolean buy(final Player p, final String item_displayname) +- [ ] boolean buyByInternalName(final Player p, final String item\_name) +- [ ] boolean hasItemBought(final String p, final String item) +- [ ] boolean requiresMoney(final String item) +- [ ] boolean takeMoney(final Player p, final String item) +- [ ] void giveShopItems(final Player p) ## SmartReset.java -TODO +- [ ] SmartBlockMap changed +- [ ] Arena a +- [ ] ArrayList<SmartArenaBlock> failedblocks +- [ ] long time +- [ ] SmartReset(final Arena a) +- [ ] SmartArenaBlock addChanged(final Block b) +- [ ] void addChanged(Block[] loc) +- [ ] SmartArenaBlock addChanged(Block b, BlockState blockReplacedState) +- [ ] SmartArenaBlock addChanged(final Block b, final boolean isChest) +- [ ] SmartArenaBlock addChanged(final Block b, final boolean isChest, final ChangeCause cause) +- [ ] void addChanged(final Location l) +- [ ] SmartArenaBlock addChanged(final Location l, final Material m, final byte data) +- [ ] void run() +- [ ] void reset() +- [ ] void resetRaw() +- [ ] void resetSmartResetBlock(final SmartArenaBlock ablock) +- [ ] void saveSmartBlocksToFile() +- [ ] void loadSmartBlocksFromFile() +- [ ] final class SmartBlockMap extends TreeMap<Integer, Map<Location, SmartArenaBlock>> +- [ ] void putBlock(Location l, SmartArenaBlock block) +- [ ] boolean hasBlock(Location l) +- [ ] Iterable<SmartArenaBlock> getBlocks() +- [ ] NestedIterator<K, T> ## SpectatorManager.java -TODO +- [ ] JavaPlugin plugin +- [ ] HashMap<String, IconMenu> lasticonm +- [ ] SpectatorManager(final JavaPlugin plugin) +- [ ] void setup() +- [ ] void setSpectate(final Player p, final boolean spectate) +- [ ] boolean isSpectating(final Player p) +- [ ] void clear() +- [ ] void openSpectatorGUI(final Player p, final Arena a) +- [ ] HashMap<String, ArrayList<String>> pspecs +- [ ] HashMap<String, ArrayList<String>> splayers +- [ ] void hideSpectator(final Player spec, final ArrayList<String> players) +- [ ] void showSpectator(final Player spec) +- [ ] void showSpectators(final Player p) ## Stats.java -TODO +- [ ] JavaPlugin plugin +- [ ] PluginInstance pli +- [ ] ArrayList<String> skullsetup +- [ ] int stats\_kill\_points +- [ ] int stats\_win\_points +- [ ] Stats(final PluginInstance pli, final JavaPlugin plugin) +- [ ] void reloadVariables() +- [ ] void win(final String playername, final int count) +- [ ] void lose(final String playername) +- [ ] void update(final String playername) +- [ ] void updateSQLKillsDeathsAfter(final Player p, final Arena a) +- [ ] void setWins(final String playername, final int count) +- [ ] void setPoints(final String playername, final int count) +- [ ] void addWin(final String playername) +- [ ] void addLose(final String playername) +- [ ] void addKill(final String playername) +- [ ] void addDeath(final String playername) +- [ ] void addPoints(final String playername, final int count) +- [ ] int getPoints(final String playername) +- [ ] int getWins(final String playername) +- [ ] int getLoses(final String playername) +- [ ] int getKills(final String playername) +- [ ] int getDeaths(final String playername) +- [ ] TreeMap<String, Double> getTop(final int count, final boolean wins) +- [ ] TreeMap<String, Double> getTop() +- [ ] ItemStack giveSkull(final String name) +- [ ] void saveSkull(final Location t, final int count) +- [ ] void updateSkulls() ## AAchievement.java -TODO +- [ ] String name +- [ ] boolean done +- [ ] String playername +- [ ] AAchievement(final String name, final String playername, final boolean done) +- [ ] boolean isDone() +- [ ] setDone(final boolean t) +- [ ] getAchievementNameRaw() ## ArenaAchievements.java -TODO +- [ ] JavaPlugin plugin +- [ ] PluginInstance pli +- [ ] HashMap<String, IconMenu> lasticonm +- [ ] ArenaAchievements(final PluginInstance pli, final JavaPlugin plugin) +- [ ] void openGUI(final String p, final boolean sql) +- [ ] ArrayList<AAchievement> loadPlayerAchievements(final String playername, final boolean sql) +- [ ] void setAchievementDone(final String playername, final String achievement, final boolean sql) +- [ ] void addDefaultAchievement(final String internalname, final String name, final int default\_money\_reward) +- [ ] isEnabled() +- [ ] setEnabled(final boolean t) ## ArcadeInstance.java -TODO +- [ ] ArrayList<PluginInstance> minigames +- [ ] int currentindex +- [ ] ArrayList<String> players +- [ ] Arena arena +- [ ] JavaPlugin plugin +- [ ] boolean in\_a\_game +- [ ] Arena currentarena +- [ ] boolean started +- [ ] ArcadeInstance(final JavaPlugin plugin, final ArrayList<PluginInstance> minigames, final Arena arena) +- [ ] void joinArcade(final String playername) +- [ ] void leaveArcade(final String playername) +- [ ] void leaveArcade(final String playername, final boolean endOfGame) +- [ ] int currentlobbycount +- [ ] int currenttaskid +- [ ] void startArcade() +- [ ] void stopArcade(final boolean stopOfGame) +- [ ] void stopArcade() +- [ ] void stopCurrentMinigame() +- [ ] void nextMinigame() +- [ ] void nextMinigame(final long delay) +- [ ] void clean() ## CommandHandler.java -TODO +- [ ] boolean handleArgs(final JavaPlugin plugin, final String uber_permission, final String cmd, final CommandSender sender, final String args[]) +- [ ] LinkedHashMap<String, String> cmddesc +- [ ] void sendHelp(final String cmd, final CommandSender sender) +- [ ] LinkedHashMap<String, String> cmdpartydesc +- [ ] void sendPartyHelp(final String cmd, final CommandSender sender) +- [ ] boolean setSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setSpecSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setLobby(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setMainLobby(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setLobbyBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setSpecBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean saveArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setMaxPlayers(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setMinPlayers(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setArenaVIP(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean joinArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean leaveArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean startArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean stopArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean stopAllArenas(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean removeArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean removeSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setSkull(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setEnabled(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setShowScoreboard(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean resetArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setAuthor(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setDescription(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setArenaDisplayName(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean spectate(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean setKit(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, Player player) +- [ ] boolean openShop(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean getStats(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean getLeaderboards(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] void sendLeaderboards(final PluginInstance pli, final CommandSender sender, final int count, final boolean wins) +- [ ] boolean setHologram(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean listHolograms(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean removeHologram(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean partyInvite(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean partyAccept(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean partyKick(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean partyList(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean partyDisband(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) +- [ ] boolean partyLeave(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) ## AchievementsConfig.java -TODO +- [ ] migrate ## ArenasConfig.java -TODO +- [ ] migrate ## ClassesConfig.java -TODO +- [ ] migrate ## DefaultConfig.java -TODO +- [ ] migrate ## GunsConfig.java -TODO +- [ ] migrate ## HologramsConfig.java -TODO +- [ ] migrate ## MessagesConfig.java -TODO +- [ ] migrate +- [ ] String no\_perm +- [ ] String successfully\_reloaded +- [ ] String successfully\_set +- [ ] String successfully\_saved\_arena +- [ ] String failed\_saving\_arena +- [ ] String failed\_removing\_arena +- [ ] String arena\_invalid +- [ ] String broadcast\_players\_left +- [ ] String broadcast\_player\_joined +- [ ] String player\_died +- [ ] String arena\_action +- [ ] String you\_joined\_arena +- [ ] String you\_already\_are\_in\_arena +- [ ] String arena\_not\_initialized +- [ ] String not\_in\_arena +- [ ] String teleporting\_to\_arena\_in +- [ ] String starting\_in +- [ ] String successfully\_removed +- [ ] String failed\_removing\_component +- [ ] String joined\_arena +- [ ] String you\_won +- [ ] String you\_lost +- [ ] String you\_got\_a\_kill +- [ ] String player\_was\_killed\_by +- [ ] String attributelevel\_increased +- [ ] String not\_enough\_credits +- [ ] String too\_many\_main\_guns +- [ ] String successfully\_set\_main\_gun +- [ ] String arcade\_next\_minigame +- [ ] String arena\_disabled +- [ ] String all\_guns +- [ ] String you\_can\_leave\_with +- [ ] String arcade\_joined\_spectator +- [ ] String arcade\_joined\_waiting +- [ ] String arcade\_new\_round +- [ ] String no\_perm\_to\_join\_arena +- [ ] String set\_kit +- [ ] String classes\_item +- [ ] String achievement\_item +- [ ] String shop\_item +- [ ] String spectator\_item +- [ ] String server\_broadcast\_winner +- [ ] String exit\_item +- [ ] String successfully\_bought\_kit +- [ ] String scoreboard\_title +- [ ] String scoreboard\_lobby\_title +- [ ] String you\_got\_kicked\_because\_vip\_joined +- [ ] String powerup\_spawned +- [ ] String you\_got\_the\_achievement +- [ ] String game\_started +- [ ] String author\_of\_the\_map +- [ ] String description\_of\_the\_map +- [ ] String not\_enough\_money +- [ ] String possible\_kits +- [ ] String possible\_shopitems +- [ ] String cancelled\_starting +- [ ] String minigame\_description +- [ ] String successfully\_bought\_shopitem +- [ ] String already\_bought\_shopitem +- [ ] String you\_received\_rewards +- [ ] String you\_received\_rewards\_2 +- [ ] String you\_received\_rewards\_3 +- [ ] String already\_in\_arena +- [ ] String stop\_cause\_maximum\_game\_time +- [ ] String compass\_no\_player\_found +- [ ] String compass\_player\_found +- [ ] String you\_got\_a\_participation\_reward +- [ ] String kit\_warning ## PartyMessagesConfig.java -TODO +- [ ] migrate +- [ ] String cannot\_invite\_yourself +- [ ] String player\_not\_online +- [ ] String you\_invited +- [ ] String you\_were\_invited +- [ ] String not\_invited\_to\_any\_party +- [ ] String not\_invited\_to\_players\_party +- [ ] String player\_not\_in\_party +- [ ] String you\_joined\_party +- [ ] String player\_joined\_party +- [ ] String you\_left\_party +- [ ] String player\_left\_party +- [ ] String party\_disbanded +- [ ] String party\_too\_big\_to\_join ## ShopConfig.java -TODO +- [ ] migrate ## StatsConfig.java -TODO +- [ ] migrate ## StatsGlobalConfig.java -TODO +- [ ] migrate ## ArenaEvent.java -TODO +- [ ] migrate ## ArenaStartedEvent.java -TODO +- [ ] migrate ## ArenaStartEvent.java -TODO +- [ ] migrate ## ArenaStopEvent.java -TODO +- [ ] migrate ## PlayerEvent.java -TODO +- [ ] migrate ## PlayerJoinLobbyEvent.java -TODO +- [ ] migrate ## PlayerLeaveArenaEvent.java -TODO +- [ ] migrate ## Gun.java -TODO +- [ ] double speed +- [ ] int shoot\_amount +- [ ] int max\_durability +- [ ] int durability +- [ ] Class<? extends Projectile> bullet +- [ ] JavaPlugin plugin +- [ ] double knockback\_multiplier +- [ ] String name +- [ ] boolean canshoot +- [ ] HashMap<String, Boolean> canshoot\_ +- [ ] ArrayList<ItemStack> items +- [ ] ArrayList<ItemStack> icon +- [ ] Gun(final JavaPlugin plugin, final String name, final double speed, final int shoot\_amount, final int durability, final double knockback\_multiplier, final Class<? extends Projectile> bullet, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) +- [ ] Gun(final JavaPlugin plugin, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) +- [ ] void shoot(final Player p) +- [ ] void shoot(final Player p, final int shoot\_amount, final int durability, final int speed) +- [ ] void onHit(final Entity ent, final int knockback\_multiplier) +- [ ] void reloadGun() ## Guns.java -TODO + +- [ ] double level\_multiplier +- [ ] int speed\_cost +- [ ] int durability\_cost +- [ ] int shoot\_amount\_cost +- [ ] int knockback\_multiplier\_cost +- [ ] HashMap<String, IconMenu> lastmainiconm +- [ ] HashMap<String, IconMenu> lastmainediticonm +- [ ] HashMap<String, IconMenu> lastupgradeiconm +- [ ] HashMap<String, HashMap<Gun, int[]>> pgunattributes +- [ ] JavaPlugin plugin +- [ ] Guns(final JavaPlugin plugin) +- [ ] void openGUI(final String p) +- [ ] int[] getPlayerGunAttributeLevels(final JavaPlugin plugin, final String p, final Gun g) +- [ ] void setPlayerGunLevel(final JavaPlugin plugin, final String p, final String g, final String attribute, final int level, final double cost) +- [ ] void setPlayerGunMain(final JavaPlugin plugin, final String p, final String g, final boolean val) +- [ ] int getPlayerAllMainGunsCount(final JavaPlugin plugin, final String p) +- [ ] void openGunMainEditGUI(final String p, final String g) +- [ ] void openUpgradeGUI(final String p, final String g, final String attribute, final int level, final double cost) +- [ ] void loadGuns(final JavaPlugin plugin) +- [ ] ArrayList<String> getAllMainGuns(final Player p) +- [ ] void giveMainGuns(final Player p) ## Database.java -TODO +- [ ] migrate ## MainSQL.java -TODO +- [ ] migrate ## MySQL.java -TODO +- [ ] migrate ## SQLite.java -TODO +- [ ] migrate ## Hologram.java -TODO +- [ ] migrate ## Holograms.java -TODO +- [ ] PluginInstance pli +- [ ] HashMap<Location, Hologram> holo = new HashMap<>() +- [ ] Holograms(final PluginInstance pli) +- [ ] void loadHolograms() +- [ ] void sendAllHolograms(final Player p) +- [ ] void addHologram(final Location l) +- [ ] boolean removeHologram(final Location ploc) +- [ ] void destroyHologram(final Player p, final Hologram h) +- [ ] int[] convertIntegers(final ArrayList<Integer> integers) ## AClass.java -TODO +- [ ] JavaPlugin plugin +- [ ] String name +- [ ] String internalname +- [ ] ArrayList<ItemStack> items +- [ ] ItemStack icon +- [ ] boolean enabled +- [ ] AClass(final JavaPlugin plugin, final String name, final ArrayList<ItemStack> items) +- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final ArrayList<ItemStack> items) +- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items) +- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items, final ItemStack icon) +- [ ] ItemStack[] getItems() +- [ ] ItemStack getIcon() +- [ ] String getName() +- [ ] String getInternalName() +- [ ] boolean isEnabled() ## ArenaBlock.java -TODO +- [ ] int x, y, z +- [ ] String world +- [ ] Material m +- [ ] byte data +- [ ] ArrayList<Material> item_mats +- [ ] ArrayList<Byte> item_data +- [ ] ArrayList<Integer> item_amounts +- [ ] ArrayList<String> item_displaynames +- [ ] ArrayList<Boolean> item_splash +- [ ] ItemStack[] inv +- [ ] ArenaBlock(final Block b, final boolean c) +- [ ] ArenaBlock(final Location l) +- [ ] Block getBlock() +- [ ] Material getMaterial() +- [ ] Byte getData() +- [ ] ItemStack[] getInventory() +- [ ] ArrayList<ItemStack> getNewInventory() +- [ ] ItemStack getEnchantmentBook(final Map<Enchantment, Integer> t) ## ArenaLobbyScoreboard.java -TODO +- [ ] HashMap<String, Scoreboard> ascore +- [ ] HashMap<String, Objective> aobjective +- [ ] int initialized +- [ ] boolean custom +- [ ] PluginInstance pli +- [ ] ArrayList<String> loaded\_custom\_strings +- [ ] ArenaLobbyScoreboard(final PluginInstance pli, final JavaPlugin plugin) +- [ ] void updateScoreboard(final JavaPlugin plugin, final Arena arena) +- [ ] void removeScoreboard(final String arena, final Player p) +- [ ] void clearScoreboard(final String arenaname) ## ArenaScoreboard.java -TODO +- [ ] HashMap<String, Scoreboard> ascore +- [ ] HashMap<String, Objective> aobjective +- [ ] HashMap<String, Integer> currentscore +- [ ] int initialized +- [ ] boolean custom +- [ ] PluginInstance pli +- [ ] ArrayList<String> loaded\_custom\_strings +- [ ] ArenaScoreboard() +- [ ] ArenaScoreboard(final PluginInstance pli, final JavaPlugin plugin) +- [ ] void updateScoreboard(final JavaPlugin plugin, final Arena arena) +- [ ] void removeScoreboard(final String arena, final Player p) +- [ ] void clearScoreboard(final String arenaname) +- [ ] void setCurrentScoreMap(final HashMap<String, Integer> newcurrentscore) ## BungeeUtil.java -TODO +- [ ] void connectToServer(final JavaPlugin plugin, final String player, final String server) +- [ ] void sendSignUpdateRequest(final JavaPlugin plugin, final String minigame, final Arena arena) ## ChangeCause.java -TODO +- [ ] migrate ## Cuboid.java -TODO +- [ ] Location highPoints +- [ ] Location lowPoints +- [ ] Cuboid(final Location startLoc, final Location endLoc) +- [ ] boolean isAreaWithinArea(final Cuboid area) +- [ ] boolean containsLoc(final Location loc) +- [ ] boolean containsLocWithoutY(final Location loc) +- [ ] boolean containsLocWithoutYD(final Location loc) +- [ ] long getSize() +- [ ] Location getRandomLocation() +- [ ] Location getRandomLocationForMobs() +- [ ] int getXSize() +- [ ] int getYSize() +- [ ] int getZSize() +- [ ] Location getHighLoc() +- [ ] Location getLowLoc() +- [ ] World getWorld() +- [ ] Map<String, Object> save() +- [ ] Cuboid load(final Map<String, Object> root) throws IllegalArgumentException +- [ ] String toString() +- [ ] String toRaw() ## IconMenu.java -TODO +- [ ] String name +- [ ] int size +- [ ] OptionClickEventHandler handler +- [ ] Plugin plugin +- [ ] Player player +- [ ] String[] optionNames +- [ ] ItemStack[] optionIcons +- [ ] IconMenu(final String name, final int size, final OptionClickEventHandler handler, final Plugin plugin) +- [ ] IconMenu setOption(int pos, final ItemStack icon, final String name, final String... info) +- [ ] void setSpecificTo(final Player player) +- [ ] boolean isSpecific() +- [ ] int getSize() +- [ ] void open(final Player player) +- [ ] void destroy() +- [ ] void clear() +- [ ] onInventoryClick(final InventoryClickEvent event) +- [ ] interface OptionClickEventHandler +- [ ] class OptionClickEvent +- [ ] ItemStack setItemNameAndLore(final ItemStack item, final String name, final String[] lore) + ## InventoryManager.java -TODO +- [ ] HashMap<String, ItemStack[]> armourContents +- [ ] HashMap<String, ItemStack[]> inventoryContents +- [ ] HashMap<String, Location> locations +- [ ] HashMap<String, Integer> xplevel +- [ ] HashMap<String, GameMode> gamemode +- [ ] void saveInventory(final Player player) +- [ ] void restoreInventory(final Player player) ## Leaderboard.java -TODO +- [ ] Object convertUUID(final String s) +- [ ] Map<Integer, String> sortByComparator(final Map<String, Integer> unsortMap, final boolean order) +- [ ] Leaderboard(final Location firstPlace, final Location secondPlace, final Location thirdPlace, final Material firstBlockType, final Material secondBlockType, final Material thirdBlockType, final BlockFace direction, final FileConfiguration configurationFile, final String configurationFormat) ## Metrics.java -TODO +- [ ] migrate ## ParticleEffectNew.java -TODO +- [ ] migrate ## ShopItem.java -TODO +- [ ] migrate ## Signs.java -TODO +- [ ] migrate ## SmartArenaBlock.java -TODO +- [ ] migrate ## UpdaterBukkit.java -TODO +- [ ] migrate ## UpdaterNexus.java -TODO +- [ ] migrate ## Util.java -TODO +- [ ] HashMap<String, ItemStack[]> armourContents +- [ ] HashMap<String, ItemStack[]> inventoryContents +- [ ] HashMap<String, Location> locations +- [ ] HashMap<String, Integer> xplevel +- [ ] HashMap<String, GameMode> gamemode +- [ ] void clearInv(final Player p) +- [ ] void teleportPlayerFixed(final Player p, final Location l) +- [ ] void teleportAllPlayers(final ArrayList<String> players, final Location l) +- [ ] HashMap<String, Location> teleportAllPlayers(final ArrayList<String> players, final ArrayList<Location> locs) +- [ ] Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final String count) +- [ ] Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component) +- [ ] Location getComponentForArenaRaw(final JavaPlugin plugin, final String arenaname, final String component) +- [ ] boolean isComponentForArenaValid(final JavaPlugin plugin, final String arenaname, final String component) +- [ ] boolean isComponentForArenaValidRaw(final JavaPlugin plugin, final String arenaname, final String component) +- [ ] void saveComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final Location comploc) +- [ ] void saveMainLobby(final JavaPlugin plugin, final Location comploc) +- [ ] Location getMainLobby(final JavaPlugin plugin) +- [ ] ArrayList<Location> getAllSpawns(final JavaPlugin plugin, final String arena) +- [ ] saveArenaToFile(final JavaPlugin plugin, final String arena) +- [ ] Sign getSignFromArena(final JavaPlugin plugin, final String arena) +- [ ] Location getSignLocationFromArena(final JavaPlugin plugin, final String arena) +- [ ] Arena getArenaBySignLocation(final JavaPlugin plugin, final Location sign) +- [ ] void updateSign(final JavaPlugin plugin, final Arena arena) +- [ ] void updateSign(final JavaPlugin plugin, final Arena arena, final SignChangeEvent event) +- [ ] void updateSign(final JavaPlugin plugin, final SignChangeEvent event, final String arenastate) +- [ ] ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasConfig cf) +- [ ] Arena initArena(final JavaPlugin plugin, final String arena) +- [ ] boolean isNumeric(final String s) +- [ ] ArrayList<ItemStack> parseItems(final String rawitems) +- [ ] void giveLobbyItems(final JavaPlugin plugin, final Player p) +- [ ] void giveSpectatorItems(final JavaPlugin plugin, final Player p) +- [ ] void sendMessage(final Player p, final String arenaname, final String msgraw) +- [ ] void sendMessage(final JavaPlugin plugin, final Player p, final String msgraw) +- [ ] ItemStack getCustomHead(final String name) +- [ ] void spawnPowerup(final JavaPlugin plugin, final Arena a, final Location l, final ItemStack item) +- [ ] Random r +- [ ] void spawnFirework(final Player p) +- [ ] void spawnFirework(final Location l) +- [ ] Color hexToRgb(final String colorStr) +- [ ] class ValueComparator +- [ ] class CompassPlayer +- [ ] CompassPlayer getNearestPlayer(final Player p, final Arena a) +- [ ] void sendStatsMessage(final PluginInstance pli, final Player p) +- [ ] void pushBack(final Location l, final Player p) +- [ ] Score getScore(final Objective obj, final String text) +- [ ] void resetScores(final Scoreboard obj, final String text) +- [ ] void saveInventory(final Player player) +- [ ] void restoreInventory(final Player player) ## Validator.java -TODO \ No newline at end of file +- [ ] boolean isPlayerOnline(final String player) +- [ ] boolean isPlayerValid(final JavaPlugin plugin, final String player, final Arena arena) +- [ ] boolean isPlayerValid(final JavaPlugin plugin, final String player, final String arena) +- [ ] boolean isArenaValid(final JavaPlugin plugin, final Arena arena) +- [ ] boolean isArenaValid(final JavaPlugin plugin, final String arena) +- [ ] boolean isArenaValid(final JavaPlugin plugin, final String arena, final FileConfiguration cf) From 686eff72c0d6a92a2db8246719f8e86bc94bab33 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 15 Aug 2016 17:30:50 +0200 Subject: [PATCH 074/266] v2 update --- APIv2/pom.xml | 2 +- .../mce/minigames/api/MglibInterface.java | 59 +++++++++++++- .../minigames/api/arena/ArenaInterface.java | 49 ++++++++++-- .../api/arena/ArenaSessionTypeInterface.java | 28 +++++++ .../api/player/ArenaPlayerInterface.java | 35 +++++++++ .../mce/minigames/api/sign/SignInterface.java | 35 +++++++++ APIv2/src/site/markdown/dev_theory_arenas.md | 4 + .../src/site/markdown/dev_theory_minigame.md | 78 +++++++++++++++++++ APIv2/src/site/markdown/development.md | 7 ++ APIv2/src/site/markdown/migrationList.md | 77 ++++++++++++------ LIBv2/pom.xml | 2 +- .../mce/minigames/impl/MinigamesPlugin.java | 61 +++++++++++++++ 12 files changed, 404 insertions(+), 33 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java create mode 100644 APIv2/src/site/markdown/dev_theory_arenas.md create mode 100644 APIv2/src/site/markdown/dev_theory_minigame.md create mode 100644 APIv2/src/site/markdown/development.md diff --git a/APIv2/pom.xml b/APIv2/pom.xml index dc3cb214..40179ebe 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.11-SNAPSHOT</version> </parent> <dependencies> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 1b8d66e5..a7d9189d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -31,6 +31,7 @@ import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.zones.ZoneInterface; /** @@ -52,6 +53,13 @@ public interface MglibInterface // common methods + /** + * Checks for debug flag. + * + * @return {@code true} if the library debugging is enabled. + */ + boolean debug(); + /** * Returns the current library state. * @@ -195,6 +203,54 @@ public interface MglibInterface */ ArenaPlayerInterface getPlayer(UUID uuid); + // sign api + + /** + * Returns all declared arena/join signs + * + * @return arena signs. + */ + Iterable<SignInterface> getSigns(); + + /** + * Returns the sign on given location. + * + * @param l + * bukkit location + * @return sign or {@code null} if there is no sign. + */ + SignInterface getSignForLocation(Location l); + + /** + * Returns all declared arena/join signs for given arena type. + * + * @param type + * arena type. + * + * @return arena signs. + */ + Iterable<SignInterface> getSigns(ArenaTypeInterface type); + + /** + * Returns all declared arena/join signs for given arena + * + * @param arena + * the arena. + * + * @return arena signs. + */ + Iterable<SignInterface> getSigns(ArenaInterface arena); + + /** + * Returns all declared arena/join signs for given minigame + * + * @param minigame + * the minigame. + * + * @return arena signs. + */ + Iterable<SignInterface> getSigns(MinigameInterface minigame); + // arena api /** @@ -250,9 +306,10 @@ default ArenaInterface getCurrentArena() { return this.getContext(ArenaInterface.class); } - + /** * Resolves a context variable. + * * @param src * @return result */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index e161f338..7eb69580 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -15,7 +15,8 @@ package com.github.mce.minigames.api.arena; -import java.io.Serializable; +import java.util.Locale; +import java.util.logging.Logger; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; @@ -29,6 +30,8 @@ public interface ArenaInterface { + // arena information + /** * Returns the internal name of this arena. * @@ -41,7 +44,44 @@ public interface ArenaInterface * * @return arena display name; defaults to internal name. */ - Serializable getDisplayName(); + String getDisplayName(); + + /** + * Returns the display name for given locale. + * + * @param locale + * @return arena display name; defaults to {@link #getDisplayName()} + */ + String getDisplayName(Locale locale); + + /** + * Changes the display name + * + * @param name + * @param locale + * the locale to be used or {@code null} to change the default display name. + * @throws MinigameException + * thrown if save failed. + */ + void setDisplayName(String name, Locale locale) throws MinigameException; + + // states + + /** + * Starts the arena (forces the start if needed). + */ + void start(); + + // common methods + + /** + * Returns a logger for the library. + * + * @return logger instance. + */ + Logger getLogger(); + + // stubbing /** * Checks this arena for given criteria and invokes either then or else statements. @@ -67,9 +107,4 @@ public interface ArenaInterface */ MgPredicate<ArenaInterface> canStart(); - /** - * Starts the arena (forces the start if needed). - */ - void start(); - } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java new file mode 100644 index 00000000..0bab6bb7 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * An interface for enumerations that represent arena session types. + * + * @author mepeisen + */ +public interface ArenaSessionTypeInterface +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java index f537d9b3..5b6512d0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api.player; import java.io.Serializable; +import java.util.Locale; import java.util.UUID; import org.bukkit.OfflinePlayer; @@ -37,6 +38,8 @@ public interface ArenaPlayerInterface { + // common methods (player info) + /** * Returns the bukkit player (if this player is online). * @@ -65,6 +68,8 @@ public interface ArenaPlayerInterface */ UUID getPlayerUUID(); + // localization + /** * Sends a message to given player. * @@ -75,6 +80,25 @@ public interface ArenaPlayerInterface */ void sendMessage(LocalizedMessageInterface msg, Serializable... args); + /** + * Returns the preferred locale + * + * @return preferred user locale or {@code null} if the player uses server default locale. + */ + Locale getPreferredLocale(); + + /** + * Sets the preferred locale for this user. + * + * @param locale + * preferred locale + * @throws MinigameException + * thrown if there are problems saving the data. + */ + void setPreferredLocale(Locale locale) throws MinigameException; + + // arena data + /** * Returns the arena this player is currently in; within a match. * @@ -89,6 +113,15 @@ public interface ArenaPlayerInterface */ Iterable<WaitQueue> getWaitingQueues(); + /** + * Joins a waiting queue for the next match. + * + * @param queue + */ + void join(WaitQueue queue); + + // permissions check + /** * Checks if the user has a permission. * @@ -98,6 +131,8 @@ public interface ArenaPlayerInterface */ boolean checkPermission(PermissionsInterface perm); + // stubbing + /** * Checks this player for given criteria and invokes either then or else statements. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java new file mode 100644 index 00000000..9361c995 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.sign; + +import org.bukkit.Location; + +/** + * Common interface for signs. + * + * @author mepeisen + */ +public interface SignInterface +{ + + /** + * Returns the sign location. + * + * @return sign location. + */ + Location getLocation(); + +} diff --git a/APIv2/src/site/markdown/dev_theory_arenas.md b/APIv2/src/site/markdown/dev_theory_arenas.md new file mode 100644 index 00000000..7a4c623a --- /dev/null +++ b/APIv2/src/site/markdown/dev_theory_arenas.md @@ -0,0 +1,4 @@ +# Minigames-Lib 2.0 - Development + +## About the arena + diff --git a/APIv2/src/site/markdown/dev_theory_minigame.md b/APIv2/src/site/markdown/dev_theory_minigame.md new file mode 100644 index 00000000..8b25f999 --- /dev/null +++ b/APIv2/src/site/markdown/dev_theory_minigame.md @@ -0,0 +1,78 @@ +# Minigames-Lib 2.0 - Development + +## What is a minigame? + +A 'minigame' is a unique game definition including rules and behavior definitions. + +## Obtaining your minigame name + +Each minigame has an internal technical name that identifies the game. You cannot register minigames of the same name twice. +To ensure a minigame name is not taken please contact the minigame lib authors. + +They provide a package called 'minigames-all'. It includes the library and the minigames built on the library. You can share +your minigame through this package and from this point of view ensure that no other guy takes your minigame name. + +## An example + +To clear the term 'minigame' we will investigate a common 'last man standing' arena. So let us call the minigame 'lms'. + +A minigame has an unique name (='lms') to identify it internally in the minecraft server. It is declared by a call to the method: + + com.github.mce.minigames.api.MglibInterface.register(PluginProviderInterface) + +A plugin may create multiple minigames if it likes to. + +Having a look at the PluginProviderInterface you will see that a minigame is made of several helpers. + +### The rules + +Most important to our minigame are the gaming rules. In our 'lms' example you can sum up the rules in word: + +* No PvP in lobbs +* No PvP during warmup +* Player spawn at fixed spawn locations +* PvP during game +* You lose after being killed +* Last surrender wins the game +* Game stops if someone wins +* leaving arena let you lose + +However there are more game rules under the hood, maybe related to ingame shop, to guns etc. + +### Game variant: Deathmatch + +Now let us think of a second game, the 'deathmatch' or 'dm' + +We can re-use the rules from 'lms' except some differences: + +* Team ends after 10 minutes +* After death the last damager gets a score point +* After death the player respawns but is invulnerable for some seconds +* The player with most points wins the game + +### Game variant: Team deathmatch + +The third game variant, we call it 'tdm', has the following difference compared to 'dm': + +* Players are in balanced teams (red, blue etc.) +* Not only a single player gets a score point but the team gets it too +* The team with most poins wins +* The player with most points gets a special reward + +### One minigame with three game variants + +As a new feature the minigames library v2 allows you to create multiple arenas and configurations within the +same minigame. + +The new features (arena types and configurable/ votable rules) are explained in additional chapters. + +We can have a single minigame called 'pvparena'. This minigame allows the administrator to choose from three +arena types 'last-man-standing', 'deathmatch' or 'team-deathmatch'. It is even possible to allow the players +to choose there favorite game mode by voting. + +## Summary + +* Normally you have one minigame per plugin but you are allowed to create multiple minigames within the same plugin. +* A minigame has an internal/ technical name and is registered using a plugin provider. +* Minigames and arenas are build on different game rules. +* You may use the arena type feature or the rule customization feature to create different variants of the same minigame. diff --git a/APIv2/src/site/markdown/development.md b/APIv2/src/site/markdown/development.md new file mode 100644 index 00000000..80c4b0d5 --- /dev/null +++ b/APIv2/src/site/markdown/development.md @@ -0,0 +1,7 @@ +# Minigames-Lib 2.0 - Development + +## Background + +* [What is a minigame](dev_theory_minigame.html) +* [About the arena](dev_theory_arenas.html) +TODO diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md index 84e43f3b..ccc78fb7 100644 --- a/APIv2/src/site/markdown/migrationList.md +++ b/APIv2/src/site/markdown/migrationList.md @@ -21,8 +21,11 @@ - [ ] ArrayList<String> temp\_players - [ ] ArenaType type - [ ] ArenaState currentstate -- [ ] String name -- [ ] String displayname +- [X] String name + > com.github.mce.minigames.api.arena.ArenaInterface.getInternalName() +- [X] String displayname + > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName() + > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName(Locale) - [ ] boolean started - [ ] boolean startedIngameCountdown - [ ] boolean showArenascoreboard @@ -46,7 +49,8 @@ - [ ] Arena(final JavaPlugin plugin, final String name, final ArenaType type) - [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) - [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) -- [ ] Arena getArena() +- [X] Arena getArena() + > removed (does not make sense) - [ ] SmartReset getSmartReset() - [ ] boolean getShowScoreboard() - [ ] boolean getAlwaysPvP() @@ -57,9 +61,13 @@ - [ ] Cuboid getBoundaries() - [ ] Cuboid getLobbyBoundaries() - [ ] Cuboid getSpecBoundaries() -- [ ] String getInternalName() -- [ ] String getDisplayName() -- [ ] String getName() +- [X] String getInternalName() + > com.github.mce.minigames.api.arena.ArenaInterface.getInternalName() +- [X] String getDisplayName() + > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName() + > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName(Locale) +- [X] String getName() + > com.github.mce.minigames.api.arena.ArenaInterface.getInternalName() - [ ] int getMaxPlayers() - [ ] int getMinPlayers() - [ ] void setMinPlayers(final int i) @@ -90,6 +98,7 @@ - [ ] int getTaskId() - [ ] void startLobby(final boolean countdown) - [ ] void start(final boolean tp) + > com.github.mce.minigames.api.arena.ArenaInterface.start() - [ ] void startRaw() - [ ] void stopArena() - [ ] List<Entity> getResetEntitiesOnPlayerLeave(String player) @@ -278,7 +287,8 @@ ## ArenaLogger.java -- [ ] logging methods +- [X] logging methods + > com.github.mce.minigames.api.arena.ArenaInterface.getLogger() ## ArenaMessageStrings.java @@ -298,7 +308,8 @@ ## ArenaPlayer.java -- [ ] String playername +- [X] String playername + > com.github.mce.minigames.api.player.ArenaPlayerInterface.getName() - [ ] ItemStack[] inv - [ ] ItemStack[] armor\_inv - [ ] GameMode original\_gamemode @@ -306,10 +317,15 @@ - [ ] boolean noreward - [ ] Arena currentArena - [ ] AClass currentClass -- [ ] HashMap<String, ArenaPlayer> players -- [ ] ArenaPlayer getPlayerInstance(final String playername) -- [ ] ArenaPlayer(final String playername) -- [ ] Player getPlayer() +- [X] HashMap<String, ArenaPlayer> players + > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) +- [X] ArenaPlayer getPlayerInstance(final String playername) + > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) +- [X] ArenaPlayer(final String playername) + > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) +- [X] Player getPlayer() + > com.github.mce.minigames.api.player.ArenaPlayerInterface.getOfflinePlayer() + > com.github.mce.minigames.api.player.ArenaPlayerInterface.getBukkitPlayer() - [ ] void setInventories(final ItemStack[] inv, final ItemStack[] armor\_inv) - [ ] ItemStack[] getInventory() - [ ] ItemStack[] getArmorInventory() @@ -469,17 +485,21 @@ ## MinecraftVersionsType.java -- [ ] migrate version types +- [X] migrate version types + > com.github.mce.minigames.api.MinecraftVersionsType ## MinigamesAPI.java -- [ ] MinecraftVersionsType SERVER\_VERSION +- [X] MinecraftVersionsType SERVER\_VERSION + > com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() - [ ] Locale LOCALE -- [ ] MinigamesAPI instance +- [X] MinigamesAPI instance + > com.github.mce.minigames.api.MglibInterface.INSTANCE.get() - [ ] Economy econ - [ ] boolean economy - [ ] boolean crackshot -- [ ] boolean debug +- [X] boolean debug + > com.github.mce.minigames.api.MglibInterface.debug() - [ ] int updatetime - [ ] HashMap<String, Party> global\_party - [ ] HashMap<String, ArrayList<Party>> global\_party\_invites @@ -487,7 +507,8 @@ - [ ] PartyMessagesConfig partymessages - [ ] StatsGlobalConfig statsglobal - [ ] String internalServerVersion = ""; -- [ ] boolean below1710 +- [X] boolean below1710 + > no replacement, check com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() against 1.7.10 - [ ] Metrics metrics - [ ] void onEnable() - [ ] boolean crackshotAvailable() @@ -497,7 +518,8 @@ - [ ] String getPermissionGunPrefix() - [ ] String getPermissionShopPrefix() - [ ] String getPermissionGamePrefix(String game) -- [ ] MinecraftVersionsType getServerVersion() +- [X] MinecraftVersionsType getServerVersion() + > com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() - [ ] void onDisable() - [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) - [ ] void registerArenaListenerLater(final JavaPlugin plugin\_, final ArenaListener arenalistener) @@ -506,16 +528,24 @@ - [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass) - [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame) - [ ] PluginInstance setupRaw(final JavaPlugin plugin\_, final String minigame) -- [ ] MinigamesAPI getAPI() +- [X] MinigamesAPI getAPI() + > com.github.mce.minigames.api.MglibInterface.INSTANCE.get() - [ ] CommandHandler getCommandHandler() - [ ] boolean setupEconomy() - [ ] boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) - [ ] void connectToServer(JavaPlugin plugin, String player, String server) - [ ] void onPluginMessageReceived(final String channel, final Player player, final byte[] message) - [ ] PluginInstance getPluginInstance(final JavaPlugin plugin) -- [ ] UUID playerToUUID(String playername) -- [ ] UUID playerToUUID(Player player) -- [ ] Player uuidToPlayer(UUID uuid) +- [X] UUID playerToUUID(String playername) + > no direct replacement, we do not use player names any more + > com.github.mce.minigames.api.MglibInterface.getPlayer(Player) + > com.github.mce.minigames.api.player.ArenaPlayerInterface.getPlayerUUID() +- [X] UUID playerToUUID(Player player) + > no direct replacement, we do not use player names any more + > com.github.mce.minigames.api.MglibInterface.getPlayer(Player) + > com.github.mce.minigames.api.player.ArenaPlayerInterface.getPlayerUUID() +- [X] Player uuidToPlayer(UUID uuid) + > com.github.mce.minigames.api.MglibInterface.getPlayer(UUID) - [ ] onBreak(BlockBreakEvent event) - [ ] onSignUse(PlayerInteractEvent event) - [ ] onSignChange(SignChangeEvent event) @@ -606,7 +636,8 @@ - [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final ArrayList<Arena> arenas) - [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) - [ ] void reloadVariables() -- [ ] JavaPlugin getPlugin() +- [X] JavaPlugin getPlugin() + > com.github.mce.minigames.api.PluginProviderInterface.getJavaPlugin() - [ ] HashMap<String, AClass> getAClasses() - [ ] HashMap<String, AClass> getPClasses() - [ ] addAClass(final String name, final AClass a) diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 3913c958..4a9cc6dd 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.11-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 7240b81a..88f71db7 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -48,6 +48,7 @@ import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.zones.ZoneInterface; import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; @@ -363,6 +364,66 @@ public String resolveContextVar(String src) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#debug() + */ + @Override + public boolean debug() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getSigns() + */ + @Override + public Iterable<SignInterface> getSigns() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getSignForLocation(org.bukkit.Location) + */ + @Override + public SignInterface getSignForLocation(Location l) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public Iterable<SignInterface> getSigns(ArenaTypeInterface type) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.arena.ArenaInterface) + */ + @Override + public Iterable<SignInterface> getSigns(ArenaInterface arena) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.MinigameInterface) + */ + @Override + public Iterable<SignInterface> getSigns(MinigameInterface minigame) + { + // TODO Auto-generated method stub + return null; + } From d55219a2891c4d9f09a2d96859584b756555ccd0 Mon Sep 17 00:00:00 2001 From: Mystic-City <mastertp@gmx.de> Date: Mon, 15 Aug 2016 19:22:37 +0200 Subject: [PATCH 075/266] Update planned.md --- planned.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/planned.md b/planned.md index 596a02fb..873fa09e 100644 --- a/planned.md +++ b/planned.md @@ -2,7 +2,6 @@ * Dropping some deprecated methods * Dropping support for Spigot 1.7 * More JUnit Tests and refactorings -* New Game: Variants of Capture The Flag * Minigame tutorials (using/playing the existing games, creating your own game) * Rework of auto-updater * Rework of reflection use in Minigames-API @@ -10,9 +9,29 @@ * Migrate Jumper/Sudoku/Destroyer/ColorMatch/HorseRacingPlus to Minigames-API * Add some kind of "load-balancing"/ server hopping (improve support for bungee) * Add more sign options +* #### known issues... * https://github.com/MysticCity/MinigamesAPI/issues/37 * https://github.com/MysticCity/MinigamesAPI/issues/5 * https://github.com/MysticCity/MinigamesAPI/issues/4 +* + +#### Game Requests +* Tetris +* 4 Gewinnt +* Schiffe versenken +* Master Builder +* Jump Down +* Hunger Games +* Cake Klicker +* Minesweeper +* Hide & Seek +* Lucky Blocks +* Capture The Flag +* Paintball +* Mariokart +* Death Cube +* TicTacToe +* From 9da09410066dbcf439614b426a567e58aecbb521 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 16 Aug 2016 21:20:45 +0200 Subject: [PATCH 076/266] removed system.out.println and printstacktrace --- .../minigamesapi/Arena.java | 10 ---- .../minigamesapi/ArenaListener.java | 15 ++--- .../minigamesapi/ArenaSetup.java | 5 +- .../minigamesapi/Effects.java | 21 +++---- .../minigamesapi/MinigamesAPI.java | 27 ++++----- .../minigamesapi/PrivateUtil.java | 6 +- .../minigamesapi/Rewards.java | 3 +- .../minigamesapi/SmartReset.java | 58 +++++++++---------- .../minigamesapi/Stats.java | 15 ++--- .../minigamesapi/arcade/ArcadeInstance.java | 2 - .../minigamesapi/commands/CommandHandler.java | 3 +- .../minigamesapi/guns/Guns.java | 1 - .../minigamesapi/sql/MainSQL.java | 32 +++++----- .../minigamesapi/sql/MySQL.java | 7 ++- .../minigamesapi/sql/SQLite.java | 7 ++- .../statsholograms/Holograms.java | 3 +- .../util/ArenaLobbyScoreboard.java | 6 +- .../minigamesapi/util/ArenaScoreboard.java | 8 +-- .../minigamesapi/util/BungeeUtil.java | 24 +------- .../minigamesapi/util/Metrics.java | 6 +- .../minigamesapi/util/ParticleEffectNew.java | 9 +-- .../minigamesapi/util/SmartArenaBlock.java | 5 +- .../minigamesapi/util/UpdaterBukkit.java | 19 +++--- .../minigamesapi/util/Util.java | 28 ++++----- 24 files changed, 143 insertions(+), 177 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 319d8fe5..ee93e9c9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -887,11 +887,6 @@ public void joinPlayerLobby(final UUID playerUuid) catch (final Exception e) { this.logger.log(Level.WARNING, "Failed playing hologram: ", e); //$NON-NLS-1$ - MinigamesAPI.getAPI(); - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } } }, 15L); @@ -1247,11 +1242,6 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) catch (final Exception e) { this.logger.log(Level.WARNING, "Failed playing hologram:", e); //$NON-NLS-1$ - MinigamesAPI.getAPI(); - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } } }, 10L); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 677270a4..5a5e72d7 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -17,6 +17,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -896,7 +897,7 @@ else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaS } catch (final Exception e) { - System.out.println("Waiting lobby for arena " + a.getInternalName() + " missing, please fix by setting it. " + e.getMessage()); + this.plugin.getLogger().warning("Waiting lobby for arena " + a.getInternalName() + " missing, please fix by setting it. " + e.getMessage()); } } if (a.getLobbyBoundaries() != null && !a.skip_join_lobby) @@ -956,7 +957,7 @@ else if (a.getArenaState() == ArenaState.STARTING || a.getArenaState() == ArenaS { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -1076,7 +1077,6 @@ public void onEntityDamage(final EntityDamageEvent event) final Arena a = this.pli.global_players.get(p.getName()); if (a.getArenaState() != ArenaState.INGAME && a.getArcadeInstance() == null && !a.getAlwaysPvP()) { - // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); event.setCancelled(true); } if (this.pli.blood_effects && (a.getArenaState() == ArenaState.INGAME || a.getAlwaysPvP()) && !a.isArcadeMain()) @@ -1087,7 +1087,6 @@ public void onEntityDamage(final EntityDamageEvent event) this.pli.getSpectatorManager(); if (this.pli.containsGlobalLost(p.getName()) || SpectatorManager.isSpectating(p)) { - // System.out.println(pli.getPlugin().getName() + " disallowed a pvp action."); event.setCancelled(true); } } @@ -1773,7 +1772,7 @@ public void onPlayerJoin(final PlayerJoinEvent event) } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); Util.sendMessage(ArenaListener.this.plugin, p, ChatColor.RED + "Failed restoring your stuff. Did the server restart/reload while you were offline?"); } ArenaListener.this.plugin.getConfig().set("temp.left_players." + p.getName(), null); @@ -1844,11 +1843,7 @@ public void onPlayerLeave(final PlayerQuitEvent event) } catch (final Exception e) { - MinigamesAPI.getAPI().getLogger().warning("Error occurred while refreshing sign. " + e.getMessage()); - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Error occurred while refreshing sign. ", e); } } if (MinigamesAPI.getAPI().global_party.containsKey(event.getPlayer().getName())) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java index d365b480..8db99d07 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaSetup.java @@ -16,6 +16,7 @@ import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -211,15 +212,13 @@ public Arena saveArena(final JavaPlugin plugin, final String arenaname) { method.setAccessible(true); final Object ret = method.invoke(this, plugin, pli.getArenasConfig()); - System.out.println(ret); pli.clearArenas(); pli.addLoadedArenas((ArrayList<Arena>) ret); } } catch (final Exception e) { - System.out.println("Failed to update Arena list, please reload the server."); - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed to update Arena list, please reload the server.", e); } final String path = ArenaConfigStrings.ARENAS_PREFIX + arenaname + ArenaConfigStrings.DISPLAYNAME_SUFFIX; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 8d8c7b79..622cf3a8 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Effect; @@ -161,13 +162,13 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } }, 20L * 4); } catch (final Exception e) { - System.out.println("Failed playing fakebed effect: " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed playing fakebed effect", e); } return null; } @@ -216,7 +217,7 @@ public static void playRespawn(final Player p, final JavaPlugin plugin) } catch (final Exception e) { - System.out.println("Failed additional respawn packet: " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed additional respawn packet", e); } }, 1L); } @@ -256,7 +257,7 @@ public static void playTitle(final Player player, final String title, int eindex } catch (final Exception e) { - System.out.println("Failed sending title packet: " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed sending title packet", e); } } @@ -347,7 +348,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } }, 2L, 2L).getTaskId()); @@ -366,7 +367,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } }, 20L * 2); @@ -379,7 +380,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } return ret; @@ -509,7 +510,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } }, 2L, 2L).getTaskId()); @@ -528,7 +529,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } }, 20L * 2); @@ -542,7 +543,7 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } return ret; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 055ddf37..8061c936 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -977,7 +977,7 @@ else if (args[0].equalsIgnoreCase(CommandStrings.MGLIB_JOIN)) } catch (Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } connectToServer(this, p.getName(), server); } @@ -1084,7 +1084,7 @@ private void connectToServer(JavaPlugin plugin, String player, String server) } catch (IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } Bukkit.getPlayer(player).sendPluginMessage(plugin, ChannelStrings.CHANNEL_BUNGEE_CORD, stream.toByteArray()); } @@ -1098,7 +1098,6 @@ public void onPluginMessageReceived(final String channel, final Player player, f } final ByteArrayDataInput in = ByteStreams.newDataInput(message); final String subchannel = in.readUTF(); - System.out.println(subchannel); if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK)) { final short len = in.readShort(); @@ -1151,7 +1150,7 @@ public void onPluginMessageReceived(final String channel, final Player player, f } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST)) @@ -1193,7 +1192,7 @@ else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST)) } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN)) @@ -1223,7 +1222,7 @@ public void run() { } }, 10L); } catch (IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } } @@ -1336,7 +1335,6 @@ public void onBreak(BlockBreakEvent event) getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); - // TODO debug System.out.println(l); if (l.distance(event.getBlock().getLocation()) < 1) { // getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server", null); @@ -1386,7 +1384,6 @@ public void onSignUse(PlayerInteractEvent event) ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); DataOutputStream msgout = new DataOutputStream(msgbytes); String info = getInfoBySignLocation(s.getLocation()) + ":" + event.getPlayer().getName(); - System.out.println(info); msgout.writeUTF(info); out.writeShort(msgbytes.toByteArray().length); @@ -1396,14 +1393,12 @@ public void onSignUse(PlayerInteractEvent event) } catch (Exception e) { - // TODO logging - e.printStackTrace(); + this.getLogger().log(Level.WARNING, "error sending message", e); } } catch (Exception e) { - // TODO Logging - System.out.println("Error occurred while sending first sign request: " + e.getMessage() + " - Invalid server/minigame/arena?"); + this.getLogger().log(Level.WARNING, "Error occurred while sending first sign request - Invalid server/minigame/arena?", e); } connectToServer(this, event.getPlayer().getName(), server); } @@ -1469,12 +1464,12 @@ public void requestServerSign(String mg_key, String arena_key) } catch (Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } catch (Exception e) { - System.out.println("Error occurred while sending extra sign request: " + e.getMessage()); + this.getLogger().log(Level.WARNING,"Error occurred while sending extra sign request: ", e); } } @@ -1543,12 +1538,12 @@ public void sendSignUpdate(final PluginInstance pli, final Arena a) } catch (Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } catch (Exception e) { - System.out.println("Error occurred while sending extra sign request: " + e.getMessage()); + this.getLogger().log(Level.WARNING,"Error occurred while sending extra sign request: ", e); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java index 8a9c92c2..a3d17c25 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PrivateUtil.java @@ -101,7 +101,7 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); arena.setArenaState(ArenaState.JOIN); Bukkit.getScheduler().runTask(plugin, () -> Util.updateSign(plugin, arena)); } @@ -138,7 +138,7 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } try @@ -147,7 +147,7 @@ public static void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena ar } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(MinigamesAPI.getAPI(), () -> { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index af93d391..b06c4c58 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -15,6 +15,7 @@ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -347,7 +348,7 @@ public void giveWinReward(final String p_, final Arena a, final ArrayList<String } catch (final Exception e) { - System.out.println("Could not find arena for broadcast. " + e.getMessage()); + this.plugin.getLogger().log(Level.WARNING, "Could not find arena for broadcast. ", e); } Util.sendMessage(this.plugin, p, pli.getMessagesConfig().you_won); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 8919d725..a1ce7c53 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.TreeMap; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -94,7 +95,7 @@ public SmartArenaBlock addChanged(final Block b) { if (MinigamesAPI.debug) { - System.out.println("(1) adding changed block for location " + b.getLocation()); + MinigamesAPI.getAPI().getLogger().fine("(1) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.putBlock(b.getLocation(), sablock); @@ -147,7 +148,7 @@ public SmartArenaBlock addChanged(final Block b, final boolean isChest) { if (MinigamesAPI.debug) { - System.out.println("(2) adding changed block for location " + b.getLocation()); + MinigamesAPI.getAPI().getLogger().fine("(2) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.putBlock(b.getLocation(), sablock); @@ -173,7 +174,7 @@ public SmartArenaBlock addChanged(final Block b, final boolean isChest, final Ch { if (MinigamesAPI.debug) { - System.out.println("(3) adding changed block for location " + b.getLocation()); + MinigamesAPI.getAPI().getLogger().fine("(3) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.putBlock(b.getLocation(), sablock); @@ -196,7 +197,7 @@ public void addChanged(final Location l) { if (MinigamesAPI.debug) { - System.out.println("(4) adding changed block for location " + l); + MinigamesAPI.getAPI().getLogger().fine("(4) adding changed block for location " + l); } this.changed.putBlock(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); } @@ -219,7 +220,7 @@ public SmartArenaBlock addChanged(final Location l, final Material m, final byte { if (MinigamesAPI.debug) { - System.out.println("(5) adding changed block for location " + l); + MinigamesAPI.getAPI().getLogger().fine("(5) adding changed block for location " + l); } final SmartArenaBlock sab = new SmartArenaBlock(l, m, data); this.changed.putBlock(l, sab); @@ -241,7 +242,7 @@ public void run() try { - System.out.println("resetting block " + ablock.getBlock().getLocation()); + MinigamesAPI.getAPI().getLogger().fine("resetting block " + ablock.getBlock().getLocation()); this.resetSmartResetBlock(ablock); it.remove(); } @@ -249,8 +250,7 @@ public void run() { if (MinigamesAPI.debug) { - System.out.println("failed block " + ablock.getBlock().getLocation()); - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.FINE, "failed block " + ablock.getBlock().getLocation(), e); } this.failedblocks.add(ablock); } @@ -273,7 +273,7 @@ public void run() SmartReset.this.changed.clear(); for (final SmartArenaBlock ablock : SmartReset.this.failedblocks) { - System.out.println("retrying failed block " + ablock.getBlock().getLocation()); + MinigamesAPI.getAPI().getLogger().fine("retrying failed block " + ablock.getBlock().getLocation()); final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) { @@ -332,53 +332,53 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) if (b_.getType() == Material.FURNACE) { if (MinigamesAPI.debug) - System.out.println("Rolling back furnace inventory"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back furnace inventory"); ((Furnace) b_.getState()).getInventory().clear(); ((Furnace) b_.getState()).update(); } if (b_.getType() == Material.CHEST) { if (MinigamesAPI.debug) - System.out.println("Rolling back chest inventory"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back chest inventory"); ((Chest) b_.getState()).getBlockInventory().clear(); ((Chest) b_.getState()).update(); } if (b_.getType() == Material.DISPENSER) { if (MinigamesAPI.debug) - System.out.println("Rolling back dispenser inventory"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back dispenser inventory"); ((Dispenser) b_.getState()).getInventory().clear(); ((Dispenser) b_.getState()).update(); } if (b_.getType() == Material.DROPPER) { if (MinigamesAPI.debug) - System.out.println("Rolling back dropper inventory"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back dropper inventory"); ((Dropper) b_.getState()).getInventory().clear(); ((Dropper) b_.getState()).update(); } if (b_.getType() == Material.BREWING_STAND) { if (MinigamesAPI.debug) - System.out.println("Rolling back brewing stand inventory"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back brewing stand inventory"); ((BrewingStand) b_.getState()).getInventory().clear(); ((BrewingStand) b_.getState()).update(); } if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) { if (MinigamesAPI.debug) - System.out.println("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); + MinigamesAPI.getAPI().getLogger().fine("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); b_.setType(ablock.getMaterial()); b_.setData(ablock.getData()); } else if (MinigamesAPI.debug) { - System.out.println("Skipping block rollback from " + b_.getType() + "/" + b_.getData() + " to " + ablock.getMaterial() + "/" + ablock.getData()); + MinigamesAPI.getAPI().getLogger().fine("Skipping block rollback from " + b_.getType() + "/" + b_.getData() + " to " + ablock.getMaterial() + "/" + ablock.getData()); } if (b_.getType() == Material.CHEST) { if (MinigamesAPI.debug) - System.out.println("Rolling back chest"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back chest"); if (ablock.isDoubleChest()) { final DoubleChest dc = ablock.getDoubleChest(); @@ -413,7 +413,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.DISPENSER) { if (MinigamesAPI.debug) - System.out.println("Rolling back dispenser"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back dispenser"); final Dispenser d = (Dispenser) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -434,7 +434,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.DROPPER) { if (MinigamesAPI.debug) - System.out.println("Rolling back dropper"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back dropper"); final Dropper d = (Dropper) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -454,7 +454,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.WALL_SIGN || b_.getType() == Material.SIGN_POST) { if (MinigamesAPI.debug) - System.out.println("Rolling back sign"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back sign"); final Sign sign = (Sign) b_.getState(); if (sign != null) { @@ -474,7 +474,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.SKULL) { if (MinigamesAPI.debug) - System.out.println("Rolling back skull"); + MinigamesAPI.getAPI().getLogger().fine("Rolling back skull"); b_.setData((byte) 0x1); b_.getState().setType(Material.SKULL); if (b_.getState() instanceof Skull) @@ -501,7 +501,7 @@ public void saveSmartBlocksToFile() } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } for (final SmartArenaBlock bl : this.changed.getBlocks()) @@ -512,7 +512,7 @@ public void saveSmartBlocksToFile() } catch (final IOException e) { - System.out.println(e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "io exception", e); } } @@ -522,7 +522,7 @@ public void saveSmartBlocksToFile() } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } MinigamesAPI.getAPI().getLogger().info("Saved SmartBlocks of " + this.a.getInternalName()); @@ -544,7 +544,7 @@ public void loadSmartBlocksFromFile() } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } try @@ -562,7 +562,7 @@ public void loadSmartBlocksFromFile() } catch (final ClosedChannelException e) { - System.out.println("Something is wrong with your SmartReset file and the reset might not be successful."); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Something is wrong with your SmartReset file and the reset might not be successful.", e); } if (b != null) @@ -578,11 +578,11 @@ public void loadSmartBlocksFromFile() } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } catch (final ClassNotFoundException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } try @@ -591,7 +591,7 @@ public void loadSmartBlocksFromFile() } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } if (f.exists()) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java index e1658714..4fc36d8f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java @@ -18,6 +18,7 @@ import java.util.HashMap; import java.util.TreeMap; import java.util.UUID; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -80,7 +81,7 @@ public void win(final String playername, final int count) { if (MinigamesAPI.debug) { - System.out.println("Failed updating SQL Stats as the player is not online anymore!"); + this.plugin.getLogger().fine("Failed updating SQL Stats as the player is not online anymore!"); } } } @@ -97,7 +98,7 @@ public void lose(final String playername) { if (MinigamesAPI.debug) { - System.out.println("Failed updating SQL Stats as the player is not online anymore!"); + this.plugin.getLogger().fine("Failed updating SQL Stats as the player is not online anymore!"); } } } @@ -132,7 +133,7 @@ public void updateSQLKillsDeathsAfter(final Player p, final Arena a) { if (!a.getPlugin().isEnabled()) { - System.out.println("Couldn't save Death/Kill SQL stats as the server stopped/restarted."); + this.plugin.getLogger().fine("Couldn't save Death/Kill SQL stats as the server stopped/restarted."); return; } // Update sql server with kills stats at the end @@ -140,7 +141,7 @@ public void updateSQLKillsDeathsAfter(final Player p, final Arena a) { if (MinigamesAPI.debug) { - System.out.println(a.temp_kill_count.get(p.getName())); + this.plugin.getLogger().fine("" + a.temp_kill_count.get(p.getName())); //$NON-NLS-1$ } this.pli.getSQLInstance().updateKillerStats(p, a.temp_kill_count.get(p.getName())); a.temp_kill_count.remove(p.getName()); @@ -150,7 +151,7 @@ public void updateSQLKillsDeathsAfter(final Player p, final Arena a) { if (MinigamesAPI.debug) { - System.out.println(a.temp_death_count.get(p.getName())); + this.plugin.getLogger().fine("" + a.temp_death_count.get(p.getName())); //$NON-NLS-1$ } this.pli.getSQLInstance().updateDeathStats(p, a.temp_death_count.get(p.getName())); a.temp_death_count.remove(p.getName()); @@ -430,12 +431,12 @@ public void updateSkulls() final Skull skull_ = (Skull) state; skull_.setRotation(BlockFace.valueOf(dir)); skull_.setSkullType(SkullType.PLAYER); - System.out.println(pos + " " + sorted_wins.keySet().size()); + this.plugin.getLogger().fine(pos + " " + sorted_wins.keySet().size()); if (pos <= sorted_wins.keySet().size()) { final String name = (String) sorted_wins.keySet().toArray()[pos - 1]; skull_.setOwner(name); - System.out.println(name); + this.plugin.getLogger().fine(name); } skull_.update(); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java index 8febb42e..25e2d7fa 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/arcade/ArcadeInstance.java @@ -82,7 +82,6 @@ public void joinArcade(final String playername) if (p != null) { final PluginInstance pli_ = this.minigames.get(this.currentindex); - System.out.println(pli_.getPlugin().getName() + " " + this.currentarena.getInternalName() + " " + p.getName()); if (this.currentarena.getArenaState() != ArenaState.INGAME && this.currentarena.getArenaState() != ArenaState.RESTARTING) { this.currentarena.joinPlayerLobby(playername, this, false, true); @@ -333,7 +332,6 @@ public void nextMinigame(final long delay) // stopArcade(); return; } - // System.out.println(delay + " " + currentindex); final ArcadeInstance ai = this; Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { final ArrayList<String> temp = new ArrayList<>(ArcadeInstance.this.players); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 454136ce..91ee4da9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -18,6 +18,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -237,7 +238,7 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) } catch (final Exception e) { - System.out.println("Looks like one arena is invalid, but most arenas should be reloaded just fine. " + e.getMessage()); + pli.getPlugin().getLogger().log(Level.WARNING, "Looks like one arena is invalid, but most arenas should be reloaded just fine.", e); } sender.sendMessage(pli.getMessagesConfig().successfully_reloaded); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java index a3dcae61..4fbd7508 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/guns/Guns.java @@ -382,7 +382,6 @@ public void giveMainGuns(final Player p) final ItemStack temp = i; final ItemMeta itemm = temp.getItemMeta(); itemm.setDisplayName(gun); - // System.out.println(itemm.getDisplayName()); temp.setItemMeta(itemm); p.getInventory().addItem(temp); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java index f6f38ebc..8331845c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java @@ -17,11 +17,13 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.logging.Level; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; public class MainSQL { @@ -59,14 +61,14 @@ public MainSQL(final JavaPlugin plugin, final boolean mysql) } catch (final Exception e) { - System.out.println("Failed initializing MySQL. Disabling!"); + plugin.getLogger().log(Level.SEVERE, "Failed initializing MySQL. Disabling!", e); plugin.getConfig().set(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); plugin.saveConfig(); } } else if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED) && this.MySQL == null) { - System.out.println("Failed initializing MySQL. Disabling!"); + plugin.getLogger().severe("Failed initializing MySQL. Disabling!"); plugin.getConfig().set(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); plugin.saveConfig(); } @@ -111,7 +113,7 @@ public void createTables() } catch (final SQLException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -153,7 +155,7 @@ public void updateWinnerStats(final Player p, final int reward, final boolean ad } catch (final SQLException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -191,7 +193,7 @@ public void updateLoserStats(final Player p) } catch (final SQLException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -229,7 +231,7 @@ public void updateKillerStats(final Player p, final int kills_) } catch (final SQLException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -267,7 +269,7 @@ public void updateDeathStats(final Player p, final int deaths_) } catch (final SQLException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -298,10 +300,10 @@ public int getPoints(final Player p) final int credits = res3.getInt("points"); return credits; } - else - { - // System.out.println("New User detected."); - } +// else +// { +// // log("New User detected."); +// } } catch (final SQLException e) { @@ -337,10 +339,10 @@ public int getWins(final Player p) final int wins = res3.getInt("wins"); return wins; } - else - { - // System.out.println("New User detected."); - } +// else +// { +// // log("New User detected."); +// } } catch (final SQLException e) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java index f4215388..def9c43f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java @@ -17,6 +17,7 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.logging.Level; import com.comze_instancelabs.minigamesapi.MinigamesAPI; @@ -48,11 +49,11 @@ public Connection open() } catch (final SQLException e) { - System.out.println("Could not connect to MySQL server! Cause: " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.SEVERE, "Could not connect to MySQL server!", e); } catch (final ClassNotFoundException e) { - System.out.println("JDBC Driver not found!"); + MinigamesAPI.getAPI().getLogger().severe("JDBC Driver not found!"); } return this.c; } @@ -81,7 +82,7 @@ public void closeConnection(Connection c) { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } this.c = null; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java index 437b1938..f5ea638c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java @@ -17,6 +17,9 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.logging.Level; + +import com.comze_instancelabs.minigamesapi.MinigamesAPI; public class SQLite extends Database { @@ -42,11 +45,11 @@ public Connection open() } catch (final SQLException e) { - System.out.println("Could not connect to SQLite database! Cause: " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.SEVERE, "Could not connect to SQLite database!", e); } catch (final ClassNotFoundException e) { - System.out.println("JDBC Driver not found!"); + MinigamesAPI.getAPI().getLogger().log(Level.SEVERE, "JDBC Driver not found!"); } return this.c; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java index a89e4aac..6f64c85e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java @@ -19,6 +19,7 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -138,7 +139,7 @@ public void destroyHologram(final Player p, final Hologram h) } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java index 959feafc..d3b776f6 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -147,8 +148,7 @@ else if (score_identifier.equalsIgnoreCase("<kills>")) } catch (final Exception e) { - System.out.println("Failed to set custom scoreboard: "); - e.printStackTrace(); + pli.getPlugin().getLogger().log(Level.SEVERE, "Failed to set custom scoreboard", e); } } }); @@ -165,7 +165,7 @@ public void removeScoreboard(final String arena, final Player p) } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java index 8a487e63..cfa82605 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java @@ -16,6 +16,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -172,8 +173,7 @@ else if (score_identifier.equalsIgnoreCase("<money>")) } catch (final Exception e1) { - System.out.println("Failed to set custom scoreboard: "); - e1.printStackTrace(); + pli.getPlugin().getLogger().log(Level.SEVERE, "Failed to set custom scoreboard", e1); } } else @@ -267,7 +267,7 @@ public void removeScoreboard(final String arena, final Player p) } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -287,7 +287,7 @@ public void clearScoreboard(final String arenaname) { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } this.ascore.remove(arenaname); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java index 61a8a9ca..55f03624 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/BungeeUtil.java @@ -17,6 +17,7 @@ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; @@ -42,7 +43,7 @@ public static void connectToServer(final JavaPlugin plugin, final String player, } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } Bukkit.getPlayer(player).sendPluginMessage(plugin, ChannelStrings.CHANNEL_BUNGEE_CORD, stream.toByteArray()); } @@ -51,27 +52,6 @@ public static void sendSignUpdateRequest(final JavaPlugin plugin, final String m { final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); MinigamesAPI.getAPI().sendSignUpdate(pli, arena); -// final ByteArrayDataOutput out = ByteStreams.newDataOutput(); -// try -// { -// out.writeUTF("Forward"); -// out.writeUTF("ALL"); -// out.writeUTF("MinigamesLib"); -// -// final ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); -// final DataOutputStream msgout = new DataOutputStream(msgbytes); -// msgout.writeUTF(minigame + ":" + arena.getInternalName() + ":" + arena.getArenaState().toString() + ":" + Integer.toString(arena.getAllPlayers().size()) + ":" -// + Integer.toString(arena.getMaxPlayers())); -// -// out.writeShort(msgbytes.toByteArray().length); -// out.write(msgbytes.toByteArray()); -// -// Bukkit.getServer().sendPluginMessage(MinigamesAPI.getAPI(), ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); -// } -// catch (final Exception e) -// { -// e.printStackTrace(); -// } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java index 54db3aa8..7d8469f3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Metrics.java @@ -54,6 +54,8 @@ import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.scheduler.BukkitTask; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + public class Metrics { @@ -492,7 +494,7 @@ private void postPlugin(final boolean isPing) throws IOException if (this.debug) { - System.out.println("[Metrics] Prepared request for " + pluginName + " uncompressed=" + uncompressed.length + " compressed=" + compressed.length); + plugin.getLogger().fine("[Metrics] Prepared request for " + pluginName + " uncompressed=" + uncompressed.length + " compressed=" + compressed.length); } // Write the data @@ -562,7 +564,7 @@ public static byte[] gzip(final String input) } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } finally { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java index 7184bd1a..bd1cecd7 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ParticleEffectNew.java @@ -17,6 +17,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.util.logging.Level; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -112,7 +113,7 @@ public void setData(final int data) * * CraftPlayer craftPlayer = (CraftPlayer) player; * - * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(player.getLocation(), xStack, yStack, zStack, speed, count)); } catch (Exception e) { e.printStackTrace(); } } + * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(player.getLocation(), xStack, yStack, zStack, speed, count)); } catch (Exception e) { logtrace } } */ // added @@ -128,7 +129,7 @@ public void setData(final int data) * * CraftPlayer craftPlayer = (CraftPlayer) player; * - * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(loc, xStack, yStack, zStack, speed, count)); } catch (Exception e) { e.printStackTrace(); } } + * try { craftPlayer.getHandle().playerConnection.sendPacket(getParticle(loc, xStack, yStack, zStack, speed, count)); } catch (Exception e) { logtrace } } */ /** @@ -143,7 +144,7 @@ public void setData(final int data) * * try { for (Entity entity : location.getWorld().getEntities()) { if (entity instanceof CraftPlayer) { if (entity.getLocation().distance(location) < 333) { // Not sure what max render distance is * for particles, so made up 333 CraftPlayer craftPlayer = (CraftPlayer) entity; craftPlayer.getHandle().playerConnection.sendPacket(getParticle(location, xStack, yStack, zStack, speed, count)); } - * } } } catch (Exception e) { e.printStackTrace(); } } + * } } } catch (Exception e) { logtrace } } */ /** @@ -230,7 +231,7 @@ public void animateReflected(final Player p, final Location location, final floa } catch (final Exception e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java index 7d82d969..3f84b584 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/SmartArenaBlock.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -120,7 +121,7 @@ else if (isChest) } if (MinigamesAPI.debug) { - System.out.println("Added smart arena block @ " + this.x + "/" + this.y + "/" + this.z + " with material " + this.m); + MinigamesAPI.getAPI().getLogger().fine("Added smart arena block @ " + this.x + "/" + this.y + "/" + this.z + " with material " + this.m); } } @@ -254,7 +255,7 @@ else if (item.getType() == Material.ENCHANTED_BOOK) } catch (final Exception e) { - System.out.println("Failed applying enchantment to enchantment book at reset."); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed applying enchantment to enchantment book at reset.", e); } c_++; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java index 13a3b6f0..86250b9b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java @@ -31,6 +31,7 @@ import java.net.URL; import java.net.URLConnection; import java.util.Enumeration; +import java.util.logging.Level; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -40,6 +41,8 @@ import org.json.simple.JSONObject; import org.json.simple.JSONValue; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + /** * Check dev.bukkit.org to find updates for a given plugin, and download the updates if needed. * <p/> @@ -187,8 +190,7 @@ public UpdaterBukkit(final Plugin plugin, final int id, final File file, final U } catch (final IOException e) { - plugin.getLogger().severe("The updater could not create a configuration in " + updaterFile.getAbsolutePath()); - e.printStackTrace(); + plugin.getLogger().log(Level.SEVERE, "The updater could not create a configuration in " + updaterFile.getAbsolutePath(), e); } } this.config = YamlConfiguration.loadConfiguration(updaterConfigFile); @@ -209,8 +211,7 @@ public UpdaterBukkit(final Plugin plugin, final int id, final File file, final U } catch (final IOException e) { - plugin.getLogger().severe("The updater could not save the configuration in " + updaterFile.getAbsolutePath()); - e.printStackTrace(); + plugin.getLogger().log(Level.SEVERE, "The updater could not save the configuration in " + updaterFile.getAbsolutePath(), e); } } @@ -234,9 +235,8 @@ public UpdaterBukkit(final Plugin plugin, final int id, final File file, final U } catch (final MalformedURLException e) { - plugin.getLogger().severe("The project ID provided for updating, " + id + " is invalid."); + plugin.getLogger().log(Level.SEVERE, "The project ID provided for updating, " + id + " is invalid.", e); this.result = UpdateResult.FAIL_BADID; - e.printStackTrace(); } this.thread = new Thread(new UpdateRunnable()); @@ -301,7 +301,7 @@ private void waitForThread() } catch (final InterruptedException e) { - e.printStackTrace(); + // silently ignore } } } @@ -474,9 +474,8 @@ private void unzip(final String file) } catch (final IOException ex) { - this.plugin.getLogger().warning("The auto-updater tried to unzip a new update file, but was unsuccessful."); + this.plugin.getLogger().log(Level.WARNING, "The auto-updater tried to unzip a new update file, but was unsuccessful.", ex); this.result = UpdaterBukkit.UpdateResult.FAIL_DOWNLOAD; - ex.printStackTrace(); } new File(file).delete(); } @@ -623,7 +622,7 @@ private boolean read() .warning("If you have not recently modified your configuration and this is the first time you are seeing this message, the site may be experiencing temporary downtime."); this.result = UpdateResult.FAIL_DBO; } - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); return false; } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 7669f0b3..d203858f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Random; +import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -150,13 +151,12 @@ public static void teleportPlayerFixed(final Player p, final Location l) } catch (Exception ex) { - // TODO logging - ex.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", ex); } } else { - System.out.println("Couldn't teleport Player " + p.getName() + ", the location was not valid. Probably forgot to set a spawn/lobby?"); + MinigamesAPI.getAPI().getLogger().warning("Couldn't teleport Player " + p.getName() + ", the location was not valid. Probably forgot to set a spawn/lobby?"); } p.setFireTicks(0); p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 2, 30)); @@ -332,7 +332,7 @@ public static void saveArenaToFile(final JavaPlugin plugin, final String arena) } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } for (int i = 0; i <= width; i++) @@ -351,7 +351,7 @@ public static void saveArenaToFile(final JavaPlugin plugin, final String arena) } catch (final IOException e) { - System.out.println(e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "io error", e); } } } @@ -363,7 +363,7 @@ public static void saveArenaToFile(final JavaPlugin plugin, final String arena) } catch (final IOException e) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } MinigamesAPI.getAPI().getLogger().info("saved"); @@ -501,7 +501,7 @@ else if (arena.getArenaState() == ArenaState.RESTARTING) } catch (final Exception e) { - System.out.println("Failed sending bungee sign update: " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed sending bungee sign update: ", e); } } @@ -682,7 +682,7 @@ public static ArrayList<ItemStack> parseItems(final String rawitems) final int itemid_int = Util.isNumeric(itemid) ? Integer.parseInt(itemid) : 0; if (itemid_int < 1) { - System.out.println("Invalid item id: " + itemid); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Invalid item id: " + itemid); continue; } final int itemamount_int = Util.isNumeric(itemamount) ? Integer.parseInt(itemamount) : 1; @@ -756,7 +756,7 @@ public static ArrayList<ItemStack> parseItems(final String rawitems) } catch (final Exception e) { - System.out.println("Failed parsing enchanted book. " + e.getMessage()); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed parsing enchanted book. ", e); } } ret.add(nitem); @@ -769,11 +769,7 @@ public static ArrayList<ItemStack> parseItems(final String rawitems) catch (final Exception e) { ret.add(new ItemStack(Material.STAINED_GLASS_PANE)); - System.out.println("Failed to load class items: " + e.getMessage() + " at [1] " + e.getStackTrace()[1].getLineNumber() + " [0] " + e.getStackTrace()[0].getLineNumber()); - if (MinigamesAPI.debug) - { - e.printStackTrace(); - } + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed to load class items", e); final ItemStack rose = new ItemStack(Material.RED_ROSE); final ItemMeta im = rose.getItemMeta(); im.setDisplayName(ChatColor.RED + "Sowwy, failed to load class."); @@ -1082,7 +1078,7 @@ public static Score getScore(final Objective obj, final String text) { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } return s; @@ -1110,7 +1106,7 @@ public static void resetScores(final Scoreboard obj, final String text) { if (MinigamesAPI.debug) { - e.printStackTrace(); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } } From 493879eb36d9674798179943c6d69c2cfb1bb237 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 16 Aug 2016 21:23:03 +0200 Subject: [PATCH 077/266] removed system.out.println and printstacktrace --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index 3fa57202..ceeac19c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +#### 1.14.11 + +###### All + +* removed system.out.println and printstacktrace + #### 1.14.10 ###### All From 9327a90f3e08df73ee629fe57c6b1a92dda064d1 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 16 Aug 2016 21:25:08 +0200 Subject: [PATCH 078/266] added mobarena --- planned.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/planned.md b/planned.md index 873fa09e..359cdc7c 100644 --- a/planned.md +++ b/planned.md @@ -33,5 +33,5 @@ * Mariokart * Death Cube * TicTacToe -* +* Mobarena From 431c420163e2a225375c271113cd3b5b5de6d333 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 17 Aug 2016 07:11:10 +0200 Subject: [PATCH 079/266] fixed chunks after teleport for 1.8 and 1.7 --- .../minigamesapi/util/Util.java | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index d203858f..fbc9607f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -123,35 +123,42 @@ public static void teleportPlayerFixed(final Player p, final Location l) p.setVelocity(new Vector(0D, 0D, 0D)); final Chunk chunk = l.getChunk(); - try + if (MinigamesAPI.SERVER_VERSION.isBelow(MinecraftVersionsType.V1_8)) { - final Method getChunkHandle = chunk.getClass().getMethod("getHandle"); - final Method getPlayerHandle = p.getClass().getMethod("getHandle"); - final Object handle = getPlayerHandle.invoke(p); - final Field playerConnection = handle.getClass().getField("playerConnection"); - playerConnection.setAccessible(true); - final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - final Class<?> chunkClazz = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Chunk"); - final Object packet; - if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_9_R2)) + l.getWorld().refreshChunk(chunk.getX(), chunk.getZ()); + } + else + { + try { - final Constructor<?> constr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutMapChunk").getConstructor(chunkClazz, int.class); - packet = constr.newInstance(getChunkHandle.invoke(chunk), 20); + final Method getChunkHandle = chunk.getClass().getMethod("getHandle"); + final Method getPlayerHandle = p.getClass().getMethod("getHandle"); + final Object handle = getPlayerHandle.invoke(p); + final Field playerConnection = handle.getClass().getField("playerConnection"); + playerConnection.setAccessible(true); + final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); + final Class<?> chunkClazz = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Chunk"); + final Object packet; + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_9_R2)) + { + final Constructor<?> constr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutMapChunk").getConstructor(chunkClazz, int.class); + packet = constr.newInstance(getChunkHandle.invoke(chunk), 20); + } + else + { + final Constructor<?> constr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutMapChunk").getConstructor(chunkClazz, boolean.class, int.class); + packet = constr.newInstance(getChunkHandle.invoke(chunk), false, 20); + } + sendPacket.invoke(playerConnection.get(handle), packet); + + // ((CraftPlayer)p).getHandle().playerConnection.sendPacket(new PacketPlayOutMapChunk(((CraftChunk)chunk).getHandle(), true, 65535)); + chunk.unload(true); + chunk.load(); } - else + catch (Exception ex) { - final Constructor<?> constr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutMapChunk").getConstructor(chunkClazz, boolean.class, int.class); - packet = constr.newInstance(getChunkHandle.invoke(chunk), true, 20); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", ex); } - sendPacket.invoke(playerConnection.get(handle), packet); - - // ((CraftPlayer)p).getHandle().playerConnection.sendPacket(new PacketPlayOutMapChunk(((CraftChunk)chunk).getHandle(), true, 65535)); - chunk.unload(true); - chunk.load(); - } - catch (Exception ex) - { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", ex); } } else From 50d44aff71521646097bfc3d73a3e02837503df7 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 17 Aug 2016 09:03:46 +0200 Subject: [PATCH 080/266] support for 1.8.8 --- .../minigamesapi/MinecraftVersionsType.java | 7 ++- .../minigamesapi/MinigamesAPI.java | 4 ++ maven-setup/nms-server-poms/v1_8_R3/pom.xml | 48 +++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 maven-setup/nms-server-poms/v1_8_R3/pom.xml diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 7f14b352..66c37115 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -48,6 +48,9 @@ public enum MinecraftVersionsType /** V1.8 R2 */ V1_8_R2(true, "v1_8_R2"), //$NON-NLS-1$ + /** V1.8 R3 */ + V1_8_R3(true, "v1_8_R3"), //$NON-NLS-1$ + /** any 1.9 version. */ V1_9(true, "v1_9_R1"), //$NON-NLS-1$ @@ -115,7 +118,7 @@ public boolean isEqual(final MinecraftVersionsType type) case V1_7: return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; case V1_8: - return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; + return type == V1_8 || type == V1_8_R1 || type == V1_8_R2 || type == V1_8_R3; case V1_9: return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; // $CASES-OMITTED$ @@ -127,7 +130,7 @@ public boolean isEqual(final MinecraftVersionsType type) case V1_7: return this == V1_7 || this == V1_7_R1 || this == V1_7_R2 || this == V1_7_R3 || this == V1_7_R4; case V1_8: - return this == V1_8 || this == V1_8_R1 || this == V1_8_R2; + return this == V1_8 || this == V1_8_R1 || this == V1_8_R2 || this == V1_8_R3; case V1_9: return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; // $CASES-OMITTED$ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 8061c936..f7ef5a2c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -409,6 +409,10 @@ private static MinecraftVersionsType getServerVersion() { return MinecraftVersionsType.V1_8_R2; } + if (v.startsWith("v1_8_R3")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_8_R3; + } if (v.startsWith("v1_9_R1")) //$NON-NLS-1$ { return MinecraftVersionsType.V1_9_R1; diff --git a/maven-setup/nms-server-poms/v1_8_R3/pom.xml b/maven-setup/nms-server-poms/v1_8_R3/pom.xml new file mode 100644 index 00000000..72b2e0f9 --- /dev/null +++ b/maven-setup/nms-server-poms/v1_8_R3/pom.xml @@ -0,0 +1,48 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>net.minecraft.server</groupId> + <artifactId>v1_8_R3</artifactId> + <version>1.8</version> + + <dependencies> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.8.8-R0.1-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>1.4</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <artifactSet> + <includes> + <include>org.spigotmc:spigot</include> + </includes> + </artifactSet> + <filters> + <filter> + <artifact>org.spigotmc:spigot</artifact> + <includes> + <include>net/minecraft/server/**</include> + <include>org/bukkit/craftbukkit/v1_8_R3/**</include> + </includes> + </filter> + </filters> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file From 5c18882350b054e3fd4004c9b3b5e11fec85e96e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 17 Aug 2016 09:09:18 +0200 Subject: [PATCH 081/266] support for 1.8.8 --- .../minigamesapi/test/VersionTypeTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java index 46507535..8a233dbf 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/VersionTypeTest.java @@ -47,11 +47,12 @@ public void testOrdinals() assertEquals(6, MinecraftVersionsType.V1_8.ordinal()); assertEquals(7, MinecraftVersionsType.V1_8_R1.ordinal()); assertEquals(8, MinecraftVersionsType.V1_8_R2.ordinal()); - assertEquals(9, MinecraftVersionsType.V1_9.ordinal()); - assertEquals(10, MinecraftVersionsType.V1_9_R1.ordinal()); - assertEquals(11, MinecraftVersionsType.V1_9_R2.ordinal()); - assertEquals(12, MinecraftVersionsType.V1_10.ordinal()); - assertEquals(13, MinecraftVersionsType.V1_10_R1.ordinal()); + assertEquals(9, MinecraftVersionsType.V1_8_R3.ordinal()); + assertEquals(10, MinecraftVersionsType.V1_9.ordinal()); + assertEquals(11, MinecraftVersionsType.V1_9_R1.ordinal()); + assertEquals(12, MinecraftVersionsType.V1_9_R2.ordinal()); + assertEquals(13, MinecraftVersionsType.V1_10.ordinal()); + assertEquals(14, MinecraftVersionsType.V1_10_R1.ordinal()); } /** From 6e1708b43817650b822a85222bb457d5ad057460 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 05:48:08 +0200 Subject: [PATCH 082/266] eclipse project files and local deployment --- .gitignore | 3 - .project | 17 + .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.m2e.core.prefs | 4 + API/.classpath | 31 ++ .../deploy-minigameslib.launch | 14 + API/.project | 33 ++ .../org.eclipse.core.resources.prefs | 6 + API/.settings/org.eclipse.jdt.core.prefs | 433 ++++++++++++++++++ API/.settings/org.eclipse.jdt.ui.prefs | 67 +++ API/.settings/org.eclipse.m2e.core.prefs | 4 + API/src/build/build.xml | 29 ++ APIv2/.classpath | 26 ++ APIv2/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + APIv2/.settings/org.eclipse.jdt.core.prefs | 433 ++++++++++++++++++ APIv2/.settings/org.eclipse.jdt.ui.prefs | 67 +++ APIv2/.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/.classpath | 31 ++ LIBv2/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + LIBv2/.settings/org.eclipse.jdt.core.prefs | 433 ++++++++++++++++++ LIBv2/.settings/org.eclipse.jdt.ui.prefs | 67 +++ LIBv2/.settings/org.eclipse.m2e.core.prefs | 4 + Spigot-Test/.classpath | 26 ++ Spigot-Test/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++++++++++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 +++ .../.settings/org.eclipse.m2e.core.prefs | 4 + 30 files changed, 2322 insertions(+), 3 deletions(-) create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 API/.classpath create mode 100644 API/.externalToolBuilders/deploy-minigameslib.launch create mode 100644 API/.project create mode 100644 API/.settings/org.eclipse.core.resources.prefs create mode 100644 API/.settings/org.eclipse.jdt.core.prefs create mode 100644 API/.settings/org.eclipse.jdt.ui.prefs create mode 100644 API/.settings/org.eclipse.m2e.core.prefs create mode 100644 API/src/build/build.xml create mode 100644 APIv2/.classpath create mode 100644 APIv2/.project create mode 100644 APIv2/.settings/org.eclipse.core.resources.prefs create mode 100644 APIv2/.settings/org.eclipse.jdt.core.prefs create mode 100644 APIv2/.settings/org.eclipse.jdt.ui.prefs create mode 100644 APIv2/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/.classpath create mode 100644 LIBv2/.project create mode 100644 LIBv2/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/.settings/org.eclipse.m2e.core.prefs create mode 100644 Spigot-Test/.classpath create mode 100644 Spigot-Test/.project create mode 100644 Spigot-Test/.settings/org.eclipse.core.resources.prefs create mode 100644 Spigot-Test/.settings/org.eclipse.jdt.core.prefs create mode 100644 Spigot-Test/.settings/org.eclipse.jdt.ui.prefs create mode 100644 Spigot-Test/.settings/org.eclipse.m2e.core.prefs diff --git a/.gitignore b/.gitignore index 7e6aa541..c99880a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,4 @@ -.settings bin -.classpath -.project *.bak *.rar *.zip diff --git a/.project b/.project new file mode 100644 index 00000000..05b4ed7c --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesLib-parent</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/API/.classpath b/API/.classpath new file mode 100644 index 00000000..9107fba7 --- /dev/null +++ b/API/.classpath @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/API/.externalToolBuilders/deploy-minigameslib.launch b/API/.externalToolBuilders/deploy-minigameslib.launch new file mode 100644 index 00000000..030aefd6 --- /dev/null +++ b/API/.externalToolBuilders/deploy-minigameslib.launch @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType"> +<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/> +<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> +<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> +<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> +<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="MinigamesLib"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/MinigamesLib/src/main/java" type="2"/> <item path="/MinigamesLib/src/main/resources" type="2"/> </resources>}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/MinigamesLib/src/build/build.xml}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/> +<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/MinigamesLib/src/build}"/> +</launchConfiguration> diff --git a/API/.project b/API/.project new file mode 100644 index 00000000..b6e7de7d --- /dev/null +++ b/API/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesLib</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> + <triggers>auto,full,incremental,</triggers> + <arguments> + <dictionary> + <key>LaunchConfigHandle</key> + <value><project>/.externalToolBuilders/deploy-minigameslib.launch</value> + </dictionary> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/API/.settings/org.eclipse.core.resources.prefs b/API/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/API/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/API/.settings/org.eclipse.jdt.core.prefs b/API/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/API/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/API/.settings/org.eclipse.jdt.ui.prefs b/API/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/API/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/API/.settings/org.eclipse.m2e.core.prefs b/API/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/API/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/API/src/build/build.xml b/API/src/build/build.xml new file mode 100644 index 00000000..72505b18 --- /dev/null +++ b/API/src/build/build.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<project default="deploy.local" basedir="." name="Deploy jar file to local servers"> + + <property name="jar.file" value="../../target/MinigamesLib.jar"></property> + + <target name="calc.deploy"> + <condition property="minecraft.install" else="false"> + <isset property="minecraft.install.servers"/> + </condition> + </target> + + <target name="deploy.local" if="minecraft.install" depends="calc.deploy"> + <jar destfile="${jar.file}"> + <fileset dir="${basedir}/../../target/classes"></fileset> + <!--<fileset dir="${basedir}/../../../BedWars-1.10/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.7.10/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.7.2/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.7.5/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.7.9/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.8/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.8.5/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.8.8/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.9/target/classes"></fileset> + <fileset dir="${basedir}/../../../BedWars-1.9.4/target/classes"></fileset>--> + </jar> + <ant antfile="${minecraft.install.servers}" inheritAll="true" /> + </target> + +</project> \ No newline at end of file diff --git a/APIv2/.classpath b/APIv2/.classpath new file mode 100644 index 00000000..1945bc02 --- /dev/null +++ b/APIv2/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/APIv2/.project b/APIv2/.project new file mode 100644 index 00000000..eaef9635 --- /dev/null +++ b/APIv2/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesAPI</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/APIv2/.settings/org.eclipse.core.resources.prefs b/APIv2/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/APIv2/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/APIv2/.settings/org.eclipse.jdt.core.prefs b/APIv2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/APIv2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/APIv2/.settings/org.eclipse.jdt.ui.prefs b/APIv2/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/APIv2/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/APIv2/.settings/org.eclipse.m2e.core.prefs b/APIv2/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/APIv2/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/.classpath b/LIBv2/.classpath new file mode 100644 index 00000000..17efa844 --- /dev/null +++ b/LIBv2/.classpath @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/.project b/LIBv2/.project new file mode 100644 index 00000000..6b780a32 --- /dev/null +++ b/LIBv2/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/.settings/org.eclipse.core.resources.prefs b/LIBv2/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/.settings/org.eclipse.jdt.core.prefs b/LIBv2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/.settings/org.eclipse.m2e.core.prefs b/LIBv2/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/Spigot-Test/.classpath b/Spigot-Test/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/Spigot-Test/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/Spigot-Test/.project b/Spigot-Test/.project new file mode 100644 index 00000000..02437c30 --- /dev/null +++ b/Spigot-Test/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesLib-Spigot-Test</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/Spigot-Test/.settings/org.eclipse.core.resources.prefs b/Spigot-Test/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/Spigot-Test/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/Spigot-Test/.settings/org.eclipse.jdt.core.prefs b/Spigot-Test/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/Spigot-Test/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/Spigot-Test/.settings/org.eclipse.jdt.ui.prefs b/Spigot-Test/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/Spigot-Test/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/Spigot-Test/.settings/org.eclipse.m2e.core.prefs b/Spigot-Test/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/Spigot-Test/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 From 3fc91bf14f14add11da11bf4bdb6ec5d3b10305c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 05:50:23 +0200 Subject: [PATCH 083/266] v2 --- .../minigames/api/MinecraftVersionsType.java | 413 +++++++++--------- APIv2/src/site/markdown/dev_theory_arenas.md | 150 +++++++ APIv2/src/site/markdown/dev_theory_match.md | 10 + APIv2/src/site/markdown/dev_theory_rules.md | 85 ++++ APIv2/src/site/markdown/development.md | 2 + .../minigames/api/test/VersionTypeTest.java | 12 +- .../mce/minigames/impl/MinigamesPlugin.java | 1 + 7 files changed, 470 insertions(+), 203 deletions(-) create mode 100644 APIv2/src/site/markdown/dev_theory_match.md create mode 100644 APIv2/src/site/markdown/dev_theory_rules.md diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java index a8c4e0d9..a51fdee3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java @@ -1,197 +1,216 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -package com.github.mce.minigames.api; - -/** - * Supported versions of minecraft. - * - * @author mepeisen - */ -public enum MinecraftVersionsType -{ - /** an unknown version/ not supported. */ - Unknown(false), - - /** any 1.7 version. */ - V1_7(true), - - /** V1.7 R1 */ - V1_7_R1(true), - - /** V1.7 R2 */ - V1_7_R2(true), - - /** V1.7 R3 */ - V1_7_R3(true), - - /** V1.7 R4 */ - V1_7_R4(true), - - /** any 1.8 version. */ - V1_8(true), - - /** V1.8 R1 */ - V1_8_R1(true), - - /** V1.8 R2 */ - V1_8_R2(true), - - /** any 1.9 version. */ - V1_9(true), - - /** V1.9 R1 */ - V1_9_R1(true), - - /** V1.9 R2 */ - V1_9_R2(true), - - /** any 1.10 version. */ - V1_10(true), - - /** V1.10 R1 */ - V1_10_R1(true); - - /** - * {@code true} if this version is still supported. - */ - private final boolean isSupported; - - /** - * Constructor to create a version. - * - * @param supported - * true for support. - */ - private MinecraftVersionsType(final boolean supported) - { - this.isSupported = supported; - } - - /** - * {@code true} if this version is still supported. - * - * @return {@code true} if this version is still supported. - */ - public boolean isSupported() - { - return this.isSupported; - } - - /** - * Checks if this version equals given version. - * - * <p> - * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. - * </p> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isEqual(final MinecraftVersionsType type) - { - switch (this) - { - case V1_10: - return type == V1_10 || type == V1_10_R1; - case V1_7: - return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; - case V1_8: - return type == V1_8 || type == V1_8_R1 || type == V1_8_R2; - case V1_9: - return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; - //$CASES-OMITTED$ - default: - switch (type) - { - case V1_10: - return this == V1_10 || this == V1_10_R1; - case V1_7: - return this == V1_7 || this == V1_7_R1 || this == V1_7_R2 || this == V1_7_R3 || this == V1_7_R4; - case V1_8: - return this == V1_8 || this == V1_8_R1 || this == V1_8_R2; - case V1_9: - return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; - //$CASES-OMITTED$ - default: - return type == this; - } - } - } - - /** - * Checks if this version is below given version. - * - * <ul> - * <li>V1_7 will be below V1_8*.</li> - * <li>V1_7_R3 will be below V1_7_R4.</li> - * </ul> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isBelow(final MinecraftVersionsType type) - { - if (this.isEqual(type)) - { - return false; - } - return this.ordinal() < type.ordinal(); - } - - /** - * Checks if this version is after given version. - * - * <ul> - * <li>V1_8 will be after V1_7*.</li> - * <li>V1_7_R4 will be after V1_7_R3.</li> - * </ul> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isAfter(final MinecraftVersionsType type) - { - if (this.isEqual(type)) - { - return false; - } - return this.ordinal() > type.ordinal(); - } - - /** - * Checks if this version is at least given version. - * - * <ul> - * <li>V1_7_R4 will be at least V1_7.</li> - * <li>V1_7_R3 will be after V1_7_R2.</li> - * </ul> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isAtLeast(final MinecraftVersionsType type) - { - if (this.isEqual(type)) - { - return true; - } - return this.ordinal() > type.ordinal(); - } - -} +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.github.mce.minigames.api; + +/** + * Supported versions of minecraft. + * + * @author mepeisen + */ +public enum MinecraftVersionsType +{ + /** an unknown version/ not supported. */ + Unknown(false, "invalid"), //$NON-NLS-1$ + + /** any 1.7 version. */ + V1_7(true, "v1_7_R1"), //$NON-NLS-1$ + + /** V1.7 R1 */ + V1_7_R1(true, "v1_7_R1"), //$NON-NLS-1$ + + /** V1.7 R2 */ + V1_7_R2(true, "v1_7_R2"), //$NON-NLS-1$ + + /** V1.7 R3 */ + V1_7_R3(true, "v1_7_R3"), //$NON-NLS-1$ + + /** V1.7 R4 */ + V1_7_R4(true, "v1_7_R4"), //$NON-NLS-1$ + + /** any 1.8 version. */ + V1_8(true, "v1_8_R1"), //$NON-NLS-1$ + + /** V1.8 R1 */ + V1_8_R1(true, "v1_8_R1"), //$NON-NLS-1$ + + /** V1.8 R2 */ + V1_8_R2(true, "v1_8_R2"), //$NON-NLS-1$ + + /** V1.8 R3 */ + V1_8_R3(true, "v1_8_R3"), //$NON-NLS-1$ + + /** any 1.9 version. */ + V1_9(true, "v1_9_R1"), //$NON-NLS-1$ + + /** V1.9 R1 */ + V1_9_R1(true, "v1_9_R1"), //$NON-NLS-1$ + + /** V1.9 R2 */ + V1_9_R2(true, "v1_9_R2"), //$NON-NLS-1$ + + /** any 1.10 version. */ + V1_10(true, "v1_10_R1"), //$NON-NLS-1$ + + /** V1.10 R1 */ + V1_10_R1(true, "v1_10_R1"); //$NON-NLS-1$ + + /** + * {@code true} if this version is still supported. + */ + private final boolean isSupported; + + /** the maven version string for update requests. */ + private final String mavenVersion; + + /** + * Constructor to create a version. + * + * @param supported + * true for support. + * @param mavenVersion + * the maven version string for update queries. + */ + private MinecraftVersionsType(final boolean supported, final String mavenVersion) + { + this.isSupported = supported; + this.mavenVersion = mavenVersion; + } + + /** + * {@code true} if this version is still supported. + * + * @return {@code true} if this version is still supported. + */ + public boolean isSupported() + { + return this.isSupported; + } + + /** + * Checks if this version equals given version. + * + * <p> + * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. + * </p> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isEqual(final MinecraftVersionsType type) + { + switch (this) + { + case V1_10: + return type == V1_10 || type == V1_10_R1; + case V1_7: + return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; + case V1_8: + return type == V1_8 || type == V1_8_R1 || type == V1_8_R2 || type == V1_8_R3; + case V1_9: + return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; + // $CASES-OMITTED$ + default: + switch (type) + { + case V1_10: + return this == V1_10 || this == V1_10_R1; + case V1_7: + return this == V1_7 || this == V1_7_R1 || this == V1_7_R2 || this == V1_7_R3 || this == V1_7_R4; + case V1_8: + return this == V1_8 || this == V1_8_R1 || this == V1_8_R2 || this == V1_8_R3; + case V1_9: + return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; + // $CASES-OMITTED$ + default: + return type == this; + } + } + } + + /** + * Checks if this version is below given version. + * + * <ul> + * <li>V1_7 will be below V1_8*.</li> + * <li>V1_7_R3 will be below V1_7_R4.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isBelow(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return false; + } + return this.ordinal() < type.ordinal(); + } + + /** + * Checks if this version is after given version. + * + * <ul> + * <li>V1_8 will be after V1_7*.</li> + * <li>V1_7_R4 will be after V1_7_R3.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAfter(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return false; + } + return this.ordinal() > type.ordinal(); + } + + /** + * Checks if this version is at least given version. + * + * <ul> + * <li>V1_7_R4 will be at least V1_7.</li> + * <li>V1_7_R3 will be after V1_7_R2.</li> + * </ul> + * + * @param type + * version to compare to. + * @return {@code true} if this version matches given version. + */ + public boolean isAtLeast(final MinecraftVersionsType type) + { + if (this.isEqual(type)) + { + return true; + } + return this.ordinal() > type.ordinal(); + } + + /** + * Returns the maven version string for update queries. + * + * @return maven version string. + */ + public String mavenVersionString() + { + return this.mavenVersion; + } + +} diff --git a/APIv2/src/site/markdown/dev_theory_arenas.md b/APIv2/src/site/markdown/dev_theory_arenas.md index 7a4c623a..12d2d18c 100644 --- a/APIv2/src/site/markdown/dev_theory_arenas.md +++ b/APIv2/src/site/markdown/dev_theory_arenas.md @@ -2,3 +2,153 @@ ## About the arena +The Minigame-API itself handles everything by so called arenas. [Wikipedia](https://en.wikipedia.org/wiki/Arena) quotes that an arena is an enclosed area where the action goes on. + +And that is excatly what an arena is for Minigames-API. + +It is up to the administrator to build some nice building or similar things for the arena. For example he can create a colosseum. + +The library will identify the arena by name. There are some arena names that are preserved. You will find them in the following class: + + TODO + +Beside this preserved names you can choose any name. The name must be unique per minigame. It is possible to use the same name (f.e. "default") for different game. +However this is not recommended. The minigames lib won't be confused if the same name is used twiced across multiple minigames. + +## The display name and some additional information + +Arenas have a display name. That's a human readable name used within messages or on signs. You may not want to let users see the technical name 'pvp1'. +Bu8t you may want to display the name 'Ice-Battlefield'. The display name is localized so you can even display a different name for different player +languages. + +There is some additional data, such as authors and descriptions. You may fill them or simply let them empty. + +## The arena state + +The arena can have some core states influencing their common behavior. Except the new maintenance state those states match the behavior in version 1 of the lib. + +### Join + +The arena is free for play. Players can join and matches can be started. Notice: Due to the new waiting queues players are still able to join even if the arena has a +different state. They are placed into a waiting queue and once the arena allows new player to join the waiting list is emptied in FIFO order till the next match is full. + +### Starting + +A match will be started soon. The arena is about to "start". This takes part if enough players joined the waiting queue to let a match start. + +### InGame + +A match is being played. The players are fighting till the match ends/ someone wins. + +### Resetting + +The arena is resetting after a match. Blocks are restored etc. + +### Maintenance + +The arena is under maintenance. No players are allowed to join (except administrators). The players even cannot join the waiting queue. +Every change an administrator makes to the arena needs to be done in maintenance state. This ensures no one enters the arena as long as an +administrator works on it. + +There will be a special test mode of the arena. This test mode lets administrators start a match and invite players to the match. This +switches to the 'Starting', 'InGame', 'Resetting' state but does never lead to 'Join' state. Instead after the match ends the 'Maintenance' +state is set to let the administrator continue the work. + +## The arena type + +A minigame supports one or more arena types. + +The arena types contains rule sets used for the arena. They are declared by java code. So the basic rule set a game is using cannot be changed. +Rules are explained in another document in details. + +A minigame can declare multiple arena types. They are identified by a java enumeration internally and by unique name for administration. + +## Arena contents + +An arena contains multiple elements based on the gaming rules. + +### Main lobby + +In Minigames Lib v1 there was a location called "main lobby". It was one location per game. However we decided to allow one main lobby per arena. + +But there may always be a default main lobby for the whole minigame. So it does not break compatibility. + +The main lobby is the location a player is ported once the match ends or he leaves the arena. + +In v2 there is a new feature allowing an administrator to create lobbys on other bungee servers. + +### Waiting lobby + +The waiting lobby is a location the players are teleported once they joined an arena. + +Originally there was only one waiting lobby per arena. It was meant to be a small room where the player does not +run away and where he can wait for other players to join. + +In v2 the join concept is different. It allows you to declare waiting queues and arena groups. The player may join a waiting queue even if a match +is being processed. The administrator may choose to port them into "lobby #1" to represent the waiting queue. And he may choose to port payers +waiting for a new match to "lobby #2" right before the game starts. + +In v2 the game can have multiple waiting lobbies for different situations based on game rules. A game developer may decide that the match +has multiple rounds. Between each round the user is taken into a new waiting lobby (that will be the third one based on our example). + +### Spawns + +The spawns are associated with players or teams. Nothing changed on this concept. + +However v1 did not have support for team spawns or shared/ random spawns. In v2 it is up to a game rule to choose the correct spawn for players. +The classic rule says "associate the spawn to a player during startup". + +### Teams + +In v2 we add a complete team support in the API. + +An arena type can declare teams and handle them in a clean way. + +However there is team support for the arena components too. Spawns and other arena components can be associated with teams. + +### Arena bounds + +The minigames lib needs to know in which area your minigame is located. This influences the arena resetting as well as the gaming rules. + +For example a gaming rule may refer the arena bounds by defining "If the player leaves the arena he loses the game". + +The smart reset features trys to detect which blocks are changed during a match. It remembers those blocks so that it can reset the original state +after a match ends. Every change during the match will be replayed so that the next match starts with the same arena and environment. + +### Objects + +Some minigames require special objects within the arena. For example BedWars requires a bed per team, an merchant npc and resource spawns +represented by clay, iron and gold blocks. + +Minigames lib v2 will support those objects directly in API. + +### Mobs, random spawns etc. + +Minigames may require to spawn additional mobs during the match. In Version 2 we will support a clean API so that it is not required +to depend on any miniecraft/spigot NMS class. + +We support +* merchant NPCs +* chests +* sheeps +* fallen blocks +* wither +* enderdragon + +### Arena zones + +A very new feature is the arena zone. A classical arena in version 1 of the library only has one zone: The arena bounds. + +However the most games will be happy to manage only the arena bounds as a zone. But let us think of a pvp game where we want to +have a hospital to heal your wounds. To represent the hospital you can create a "hospital zone" within the arena bounds. The +hospital will heal wounds and there is no pvp allowed. Leaving the hospital zone will allow pvp. Within hospital a timer will be +running and being too long in the hospital will kick you out of the hospital. + +A game developer may decide to create zone types and zone rules within the java code since this feature is related to the +minigame mechanic itself. + +### Spectating + +A spceial optional component is the spectating spawn and the spectating bound. After a player loses the match he can stay within +a special are of the arena. He can visit the remaining match till it ends. + diff --git a/APIv2/src/site/markdown/dev_theory_match.md b/APIv2/src/site/markdown/dev_theory_match.md new file mode 100644 index 00000000..8eb931de --- /dev/null +++ b/APIv2/src/site/markdown/dev_theory_match.md @@ -0,0 +1,10 @@ +# Minigames-Lib 2.0 - Development + +## About the match internals + +A minigame match is a gaming session within an arena. + +There can only be one match in a single arena at the same time. The next match can only be started if the current one ends and the arena +was reseted. A player can only be present in one arena match at the same time. He cannot be in multiple matches. + +TODO diff --git a/APIv2/src/site/markdown/dev_theory_rules.md b/APIv2/src/site/markdown/dev_theory_rules.md new file mode 100644 index 00000000..c0bb80c1 --- /dev/null +++ b/APIv2/src/site/markdown/dev_theory_rules.md @@ -0,0 +1,85 @@ +# Minigames-Lib 2.0 - Development + +## The gaming rules + +A minigame is built on top of small gaming rules. Those gaming rules influence the behavior of the minigame as well as +the mechanic. + +Under the hood the gaming rules are divided into two pieces: +* predicates listening on spigot events +* action handlers to do something + +The predicates are helper functions (java 8 lamdas) that are queried once an event is detected. + +### Execution order of events + +The predicates of a rule are typically executed in following order: + +* global/core predicate +* arena related predicate (inherited from arena types) +* arena state related predicate +* match state related predicate +* player state related predicate +* player related predicate + +This is the default ordering of predicates. However if you add predicates to a rule you can set a numeric value (priority). +The lower this value is the later the predicate will be invoked. + +In boolean logic this seems to be senseless. Let us look at the following sample: + + if (predicateA && predicateB) action; + + if (predicateB && predicateA) action; + +If you think of predicates for boolean values it is senseless to order them. But predicates in minigames lib are more than +just boolean values or lambdas returning booleans. + +Minigame predicates can return the following states: + +* TRUE (-> test the next predicate of this rule in order) +* FALSE (-> abort the execution) +* CHAIN (-> invoke a special predicate chain) + +#### Predicate chains + +Predicate chains are a way to have more than one path within predicates and actions to be invoked. As soon as a predicate +returns to invoke a chain the execution will continue with this chain and not with the normal execution path. + +Another word for chains can be "sub rules". A rule may not only be something that can be tested for true and then an action +gets executed. Rules may be more complex. + +Some example: + +TODO + +### Type of fetched events + +TODO + +### Common predicates + +TODO + +### Common actions + +TODO + +### Common rules + +TODO + +### Common rule sets + +TODO + +### Common arena types + +TODO + +## Configurable rules + +TODO + +## Votable rules + +TODO diff --git a/APIv2/src/site/markdown/development.md b/APIv2/src/site/markdown/development.md index 80c4b0d5..3aa08d6b 100644 --- a/APIv2/src/site/markdown/development.md +++ b/APIv2/src/site/markdown/development.md @@ -4,4 +4,6 @@ * [What is a minigame](dev_theory_minigame.html) * [About the arena](dev_theory_arenas.html) +* [About the match internals](dev_theory_match.html) +* [The gaming rules](dev_theory_rules.html) TODO diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java index 9ef10a07..6aeb3eea 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java @@ -23,7 +23,6 @@ import com.github.mce.minigames.api.MinecraftVersionsType; - /** * Test for the version types. * @@ -48,11 +47,12 @@ public void testOrdinals() assertEquals(6, MinecraftVersionsType.V1_8.ordinal()); assertEquals(7, MinecraftVersionsType.V1_8_R1.ordinal()); assertEquals(8, MinecraftVersionsType.V1_8_R2.ordinal()); - assertEquals(9, MinecraftVersionsType.V1_9.ordinal()); - assertEquals(10, MinecraftVersionsType.V1_9_R1.ordinal()); - assertEquals(11, MinecraftVersionsType.V1_9_R2.ordinal()); - assertEquals(12, MinecraftVersionsType.V1_10.ordinal()); - assertEquals(13, MinecraftVersionsType.V1_10_R1.ordinal()); + assertEquals(9, MinecraftVersionsType.V1_8_R3.ordinal()); + assertEquals(10, MinecraftVersionsType.V1_9.ordinal()); + assertEquals(11, MinecraftVersionsType.V1_9_R1.ordinal()); + assertEquals(12, MinecraftVersionsType.V1_9_R2.ordinal()); + assertEquals(13, MinecraftVersionsType.V1_10.ordinal()); + assertEquals(14, MinecraftVersionsType.V1_10_R1.ordinal()); } /** diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 88f71db7..121f4ff1 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -132,6 +132,7 @@ public Iterable<Class<? extends Enum<?>>> getConfigurations() // because in constructor we neither are in wrong state // nor do we already know the 'core' minigame ex.printStackTrace(); + // TODO } } From 5c58a45144b92350b013b5d847844f11021659e8 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 06:11:25 +0200 Subject: [PATCH 084/266] removed unneeded code (got exceptions in 1.9 and above) --- .../java/com/comze_instancelabs/minigamesapi/Effects.java | 4 ++-- changelog.md | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 622cf3a8..25612c87 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -296,10 +296,10 @@ public static ArrayList<Integer> playHologram(final Player p, final Location l, final Class<?> entity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Entity"); final Method getWorldHandle = craftw.getDeclaredMethod("getHandle"); final Object worldServer = getWorldHandle.invoke(craftw.cast(l.getWorld())); - Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); +// Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntity").getConstructor(entity, int.class); final Constructor<?> packetPlayOutSpawnEntityLivingConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutSpawnEntityLiving") .getConstructor(Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityLiving")); - Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); +// Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutAttachEntity").getConstructor(int.class, entity, entity); final Constructor<?> packetPlayOutEntityDestroyConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityDestroy") .getConstructor(int[].class); final Constructor<?> packetPlayOutEntityVelocity = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutEntityVelocity") diff --git a/changelog.md b/changelog.md index ceeac19c..8a491aec 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,10 @@ * removed system.out.println and printstacktrace +###### Minigames-API + +* NoSuchMethodError in Effects.playHologram for 1.9 and 1.10 + #### 1.14.10 ###### All From ff17d8ddd8dad27ce039705afe7e12868cef0c7f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 10:34:32 +0200 Subject: [PATCH 085/266] v2 --- .../minigames/api/arena/rules/ArenaRule.java | 35 ++++++++++ .../api/arena/rules/ArenaRuleSet.java | 3 +- .../api/arena/rules/MinigameEvent.java | 67 +++++++++++++++++++ .../MinigameAreaEffectCloudApplyEvent.java | 32 +++++++++ .../bevents/MinigameAsyncPlayerChatEvent.java | 32 +++++++++ .../bevents/MinigameBlockBreakEvent.java | 32 +++++++++ .../rules/bevents/MinigameBlockBurnEvent.java | 32 +++++++++ .../bevents/MinigameBlockCanBuildEvent.java | 32 +++++++++ .../bevents/MinigameBlockDamageEvent.java | 32 +++++++++ .../bevents/MinigameBlockDispenseEvent.java | 32 +++++++++ .../rules/bevents/MinigameBlockEvent.java | 32 +++++++++ .../rules/bevents/MinigameBlockExpEvent.java | 32 +++++++++ .../bevents/MinigameBlockExplodeEvent.java | 32 +++++++++ .../rules/bevents/MinigameBlockFadeEvent.java | 32 +++++++++ .../rules/bevents/MinigameBlockFormEvent.java | 32 +++++++++ .../bevents/MinigameBlockFromToEvent.java | 32 +++++++++ .../rules/bevents/MinigameBlockGrowEvent.java | 32 +++++++++ .../bevents/MinigameBlockIgniteEvent.java | 32 +++++++++ .../bevents/MinigameBlockMultiPlaceEvent.java | 32 +++++++++ .../bevents/MinigameBlockPhysicsEvent.java | 32 +++++++++ .../bevents/MinigameBlockPistonEvent.java | 32 +++++++++ .../MinigameBlockPistonExtendEvent.java | 32 +++++++++ .../MinigameBlockPistonRetractEvent.java | 32 +++++++++ .../bevents/MinigameBlockPlaceEvent.java | 32 +++++++++ .../bevents/MinigameBlockRedstoneEvent.java | 32 +++++++++ .../bevents/MinigameBlockSpreadEvent.java | 32 +++++++++ .../rules/bevents/MinigameBrewEvent.java | 32 +++++++++ .../MinigameCauldronLevelChangeEvent.java | 32 +++++++++ .../rules/bevents/MinigameCraftItemEvent.java | 32 +++++++++ .../bevents/MinigameCreatureSpawnEvent.java | 32 +++++++++ .../bevents/MinigameCreeperPowerEvent.java | 32 +++++++++ .../bevents/MinigameEnchantItemEvent.java | 32 +++++++++ .../MinigameEnderDragonChangePhaseEvent.java | 32 +++++++++ .../bevents/MinigameEntityBlockFormEvent.java | 32 +++++++++ .../bevents/MinigameEntityBreakDoorEvent.java | 32 +++++++++ .../bevents/MinigameEntityBreedEvent.java | 32 +++++++++ .../MinigameEntityChangeBlockEvent.java | 32 +++++++++ .../MinigameEntityCombustByBlockEvent.java | 32 +++++++++ .../MinigameEntityCombustByEntityEvent.java | 32 +++++++++ .../bevents/MinigameEntityCombustEvent.java | 32 +++++++++ .../MinigameEntityCreatePortalEvent.java | 32 +++++++++ .../MinigameEntityDamageByBlockEvent.java | 32 +++++++++ .../MinigameEntityDamageByEntityEvent.java | 32 +++++++++ .../bevents/MinigameEntityDamageEvent.java | 32 +++++++++ .../bevents/MinigameEntityDeathEvent.java | 32 +++++++++ .../rules/bevents/MinigameEntityEvent.java | 32 +++++++++ .../bevents/MinigameEntityExplodeEvent.java | 32 +++++++++ .../bevents/MinigameEntityInteractEvent.java | 32 +++++++++ .../MinigameEntityPortalEnterEvent.java | 32 +++++++++ .../bevents/MinigameEntityPortalEvent.java | 32 +++++++++ .../MinigameEntityPortalExitEvent.java | 32 +++++++++ .../MinigameEntityRegainHealthEvent.java | 32 +++++++++ .../bevents/MinigameEntityShootBowEvent.java | 32 +++++++++ .../bevents/MinigameEntitySpawnEvent.java | 32 +++++++++ .../bevents/MinigameEntityTameEvent.java | 32 +++++++++ .../bevents/MinigameEntityTargetEvent.java | 32 +++++++++ ...MinigameEntityTargetLivingEntityEvent.java | 32 +++++++++ .../bevents/MinigameEntityTeleportEvent.java | 32 +++++++++ .../MinigameEntityToggleGlideEvent.java | 32 +++++++++ .../bevents/MinigameEntityUnleasEvent.java | 32 +++++++++ .../bevents/MinigameEntityUnleashEvent.java | 32 +++++++++ .../rules/bevents/MinigameExpBottleEvent.java | 32 +++++++++ .../bevents/MinigameExplosionPrimeEvent.java | 32 +++++++++ .../bevents/MinigameFireworkExplodeEvent.java | 32 +++++++++ .../MinigameFloodLevelChangedEvent.java | 32 +++++++++ .../bevents/MinigameFurnaceBurnEvent.java | 32 +++++++++ .../bevents/MinigameFurnaceSmeltEvent.java | 32 +++++++++ .../MinigameHangingBreakByEntityEvent.java | 32 +++++++++ .../bevents/MinigameHangingBreakEvent.java | 32 +++++++++ .../rules/bevents/MinigameHangingEvent.java | 32 +++++++++ .../bevents/MinigameHangingPlaceEvent.java | 32 +++++++++ .../rules/bevents/MinigameHorseJumpEvent.java | 32 +++++++++ .../bevents/MinigameInventoryClickEvent.java | 32 +++++++++ .../bevents/MinigameInventoryCloseEvent.java | 32 +++++++++ .../MinigameInventoryCreativeEvent.java | 32 +++++++++ .../bevents/MinigameInventoryDragEvent.java | 32 +++++++++ .../rules/bevents/MinigameInventoryEvent.java | 32 +++++++++ .../MinigameInventoryInteractEvent.java | 32 +++++++++ .../MinigameInventoryMoveItemEvent.java | 32 +++++++++ .../bevents/MinigameInventoryOpenEvent.java | 32 +++++++++ .../MinigameInventoryPickupItemEvent.java | 32 +++++++++ .../bevents/MinigameItemDespawnEvent.java | 32 +++++++++ .../rules/bevents/MinigameItemMergeEvent.java | 32 +++++++++ .../rules/bevents/MinigameItemSpawnEvent.java | 32 +++++++++ .../bevents/MinigameLeavesDecayEvent.java | 32 +++++++++ .../MinigameLingeringPotionSplashEvent.java | 32 +++++++++ .../rules/bevents/MinigameNotePlayEvent.java | 32 +++++++++ .../rules/bevents/MinigamePigZapEvent.java | 32 +++++++++ ...MinigamePlayerAchievementAwardedEvent.java | 32 +++++++++ .../bevents/MinigamePlayerAnimationEvent.java | 32 +++++++++ ...nigamePlayerArmorStandManipulateEvent.java | 32 +++++++++ .../bevents/MinigamePlayerBedEnterEvent.java | 32 +++++++++ .../bevents/MinigamePlayerBedLeaveEvent.java | 32 +++++++++ .../MinigamePlayerBucketEmptyEvent.java | 32 +++++++++ .../bevents/MinigamePlayerBucketEvent.java | 32 +++++++++ .../MinigamePlayerBucketFillEvent.java | 32 +++++++++ .../MinigamePlayerChangedMainHandEvent.java | 32 +++++++++ .../MinigamePlayerChangedWorldEvent.java | 32 +++++++++ .../bevents/MinigamePlayerChannelEvent.java | 32 +++++++++ .../bevents/MinigamePlayerChatEvent.java | 32 +++++++++ .../MinigamePlayerChatTabCompleteEvent.java | 32 +++++++++ .../MinigamePlayerCommandPreprocessEvent.java | 32 +++++++++ .../bevents/MinigamePlayerDeathEvent.java | 32 +++++++++ .../bevents/MinigamePlayerDropItemEvent.java | 32 +++++++++ .../bevents/MinigamePlayerEditBookEvent.java | 32 +++++++++ .../bevents/MinigamePlayerEggThrowEvent.java | 32 +++++++++ .../rules/bevents/MinigamePlayerEvent.java | 32 +++++++++ .../bevents/MinigamePlayerExpChangeEvent.java | 32 +++++++++ .../bevents/MinigamePlayerFishEvent.java | 32 +++++++++ .../MinigamePlayerGameModeChangeEvent.java | 32 +++++++++ .../MinigamePlayerInteractAtEntityEvent.java | 32 +++++++++ .../MinigamePlayerInteractEntityEvent.java | 32 +++++++++ .../bevents/MinigamePlayerInteractEvent.java | 32 +++++++++ .../bevents/MinigamePlayerInventoryEvent.java | 32 +++++++++ .../bevents/MinigamePlayerItemBreakEvent.java | 32 +++++++++ .../MinigamePlayerItemConsumeEvent.java | 32 +++++++++ .../MinigamePlayerItemDamageEvent.java | 32 +++++++++ .../bevents/MinigamePlayerItemHeldEvent.java | 32 +++++++++ .../bevents/MinigamePlayerJoinEvent.java | 32 +++++++++ .../bevents/MinigamePlayerKickEvent.java | 32 +++++++++ .../MinigamePlayerLeashEntityEvent.java | 32 +++++++++ .../MinigamePlayerLevelChangeEvent.java | 32 +++++++++ .../bevents/MinigamePlayerLoginEvent.java | 32 +++++++++ .../bevents/MinigamePlayerMoveEvent.java | 32 +++++++++ .../MinigamePlayerPickupArrowEvent.java | 32 +++++++++ .../MinigamePlayerPickupItemEvent.java | 32 +++++++++ .../bevents/MinigamePlayerPortalEvent.java | 32 +++++++++ .../bevents/MinigamePlayerQuitEvent.java | 32 +++++++++ .../MinigamePlayerRegisterChannelEvent.java | 32 +++++++++ ...MinigamePlayerResourcePackStatusEvent.java | 32 +++++++++ .../bevents/MinigamePlayerRespawnEvent.java | 32 +++++++++ .../MinigamePlayerShearEntityEvent.java | 32 +++++++++ .../MinigamePlayerSpawnLocationEvent.java | 32 +++++++++ ...MinigamePlayerStatisticIncrementEvent.java | 32 +++++++++ .../MinigamePlayerSwapHandItemsEvent.java | 32 +++++++++ .../bevents/MinigamePlayerTeleportEvent.java | 32 +++++++++ .../MinigamePlayerToggleFlightEvent.java | 32 +++++++++ .../MinigamePlayerToggleSneakEvent.java | 32 +++++++++ .../MinigamePlayerToggleSprintEvent.java | 32 +++++++++ .../MinigamePlayerUnregisterChannelEvent.java | 32 +++++++++ .../bevents/MinigamePlayerVelocityEvent.java | 32 +++++++++ .../bevents/MinigamePotionSplashEvent.java | 32 +++++++++ .../bevents/MinigamePrepareAnvilEvent.java | 32 +++++++++ .../MinigamePrepareItemCraftEvent.java | 32 +++++++++ .../MinigamePrepareItemEnchantEvent.java | 32 +++++++++ .../bevents/MinigameProjectileHitEvent.java | 32 +++++++++ .../MinigameProjectileLaunchEvent.java | 32 +++++++++ .../bevents/MinigameSheepDyeWoolEvent.java | 32 +++++++++ .../bevents/MinigameSheepRegrowWoolEvent.java | 32 +++++++++ .../bevents/MinigameSignChangeEvent.java | 32 +++++++++ .../bevents/MinigameSlimeSplitEvent.java | 32 +++++++++ .../bevents/MinigameSpawnerSpawnEvent.java | 32 +++++++++ .../MinigameVehicleBlockCollisionEvent.java | 32 +++++++++ .../MinigameVehicleCollisionEvent.java | 32 +++++++++ .../bevents/MinigameVehicleCreateEvent.java | 32 +++++++++ .../bevents/MinigameVehicleDamageEvent.java | 32 +++++++++ .../bevents/MinigameVehicleDestroyEvent.java | 32 +++++++++ .../bevents/MinigameVehicleEnterEvent.java | 32 +++++++++ .../MinigameVehicleEntityCollisionEvent.java | 32 +++++++++ .../rules/bevents/MinigameVehicleEvent.java | 32 +++++++++ .../bevents/MinigameVehicleExitEvent.java | 32 +++++++++ .../bevents/MinigameVehicleMoveEvent.java | 32 +++++++++ .../bevents/MinigameVehicleUpdateEvent.java | 32 +++++++++ .../MinigameVillagerAcquireTradeEvent.java | 32 +++++++++ .../MinigameVillagerReplenishTradeEvent.java | 32 +++++++++ 165 files changed, 5288 insertions(+), 1 deletion(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java new file mode 100644 index 00000000..7ff60648 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +import org.bukkit.event.Event; + +import com.github.mce.minigames.api.MinigameException; + +/** + * A single arena rule. + * + * @author mepeisen + * + * @param <Evt> Bukkit Event class + * @param <MgEvt> Minigame event class + */ +public interface ArenaRule<Evt extends Event, MgEvt extends MinigameEvent<Evt>> +{ + + void passEvent(MgEvt event) throws MinigameException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java index ddb4286d..5761d298 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java @@ -16,8 +16,9 @@ package com.github.mce.minigames.api.arena.rules; /** + * Base interface for arena rule sets. + * * @author mepeisen - * */ public interface ArenaRuleSet { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java new file mode 100644 index 00000000..543cae59 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java @@ -0,0 +1,67 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +import org.bukkit.event.Event; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * Minigame event helper. + * + * @author mepeisen + * + * @param <Evt> Event class + */ +public interface MinigameEvent<Evt extends Event> +{ + + /** + * Returns the original event + * @return original event this rule + */ + Evt getBukkitEvent(); + + /** + * Returns the library API. + * @return fast access to library API. + */ + MglibInterface getLib(); + + /** + * Returns the minigame (if any) associated with this event. + * @return minigame interface or {@code null} if this event was outside any minigame. + */ + MinigameInterface getMinigame(); + + /** + * Returns the arena causing this event. + * @return arena causing this event or {@code null} if this event was outside any arena. + */ + ArenaInterface getArena(); + + /** + * Returns the player causing this event. + * @return player causing this event or {@code null} if this event was not caused by any player. + */ + ArenaPlayerInterface getPlayer(); + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java new file mode 100644 index 00000000..1d2319fe --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.AreaEffectCloudApplyEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameAreaEffectCloudApplyEvent extends MinigameEvent<AreaEffectCloudApplyEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java new file mode 100644 index 00000000..c015dae5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.AsyncPlayerChatEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameAsyncPlayerChatEvent extends MinigameEvent<AsyncPlayerChatEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java new file mode 100644 index 00000000..6a3f4c50 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockBreakEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockBreakEvent extends MinigameEvent<BlockBreakEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java new file mode 100644 index 00000000..a0377827 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockBurnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockBurnEvent extends MinigameEvent<BlockBurnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java new file mode 100644 index 00000000..80acfaa3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockCanBuildEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockCanBuildEvent extends MinigameEvent<BlockCanBuildEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java new file mode 100644 index 00000000..81510937 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockDamageEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockDamageEvent extends MinigameEvent<BlockDamageEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java new file mode 100644 index 00000000..16a69602 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockDispenseEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockDispenseEvent extends MinigameEvent<BlockDispenseEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java new file mode 100644 index 00000000..b0402a84 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockEvent extends MinigameEvent<BlockEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java new file mode 100644 index 00000000..5fcb9371 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockExpEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockExpEvent extends MinigameEvent<BlockExpEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java new file mode 100644 index 00000000..dd508602 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockExplodeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockExplodeEvent extends MinigameEvent<BlockExplodeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java new file mode 100644 index 00000000..0b455abe --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockFadeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockFadeEvent extends MinigameEvent<BlockFadeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java new file mode 100644 index 00000000..862de2e5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockFormEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockFormEvent extends MinigameEvent<BlockFormEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java new file mode 100644 index 00000000..eb075b0b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockFromToEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockFromToEvent extends MinigameEvent<BlockFromToEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java new file mode 100644 index 00000000..cacdbe0c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockGrowEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockGrowEvent extends MinigameEvent<BlockGrowEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java new file mode 100644 index 00000000..c8272672 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockIgniteEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockIgniteEvent extends MinigameEvent<BlockIgniteEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java new file mode 100644 index 00000000..a9c924ba --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockMultiPlaceEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockMultiPlaceEvent extends MinigameEvent<BlockMultiPlaceEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java new file mode 100644 index 00000000..1b1237ce --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockPhysicsEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockPhysicsEvent extends MinigameEvent<BlockPhysicsEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java new file mode 100644 index 00000000..08297a40 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockPistonEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockPistonEvent extends MinigameEvent<BlockPistonEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java new file mode 100644 index 00000000..032c1783 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockPistonExtendEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockPistonExtendEvent extends MinigameEvent<BlockPistonExtendEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java new file mode 100644 index 00000000..c838d012 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockPistonRetractEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockPistonRetractEvent extends MinigameEvent<BlockPistonRetractEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java new file mode 100644 index 00000000..d504b3c3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockPlaceEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockPlaceEvent extends MinigameEvent<BlockPlaceEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java new file mode 100644 index 00000000..57c2b75c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockRedstoneEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockRedstoneEvent extends MinigameEvent<BlockRedstoneEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java new file mode 100644 index 00000000..d0b46db9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.BlockSpreadEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBlockSpreadEvent extends MinigameEvent<BlockSpreadEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java new file mode 100644 index 00000000..d1de9d80 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.BrewEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameBrewEvent extends MinigameEvent<BrewEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java new file mode 100644 index 00000000..965f8b26 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.CauldronLevelChangeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameCauldronLevelChangeEvent extends MinigameEvent<CauldronLevelChangeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java new file mode 100644 index 00000000..2f9a97a7 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.CraftItemEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameCraftItemEvent extends MinigameEvent<CraftItemEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java new file mode 100644 index 00000000..1e641f62 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameCreatureSpawnEvent extends MinigameEvent<CreatureSpawnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java new file mode 100644 index 00000000..5d93db39 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.CreeperPowerEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameCreeperPowerEvent extends MinigameEvent<CreeperPowerEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java new file mode 100644 index 00000000..02c23dfb --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.enchantment.EnchantItemEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEnchantItemEvent extends MinigameEvent<EnchantItemEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java new file mode 100644 index 00000000..9c32d523 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EnderDragonChangePhaseEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEnderDragonChangePhaseEvent extends MinigameEvent<EnderDragonChangePhaseEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java new file mode 100644 index 00000000..8dda7f81 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.EntityBlockFormEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityBlockFormEvent extends MinigameEvent<EntityBlockFormEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java new file mode 100644 index 00000000..7fce2bf8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityBreakDoorEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityBreakDoorEvent extends MinigameEvent<EntityBreakDoorEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java new file mode 100644 index 00000000..7095c257 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityBreedEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityBreedEvent extends MinigameEvent<EntityBreedEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java new file mode 100644 index 00000000..29b59478 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityChangeBlockEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityChangeBlockEvent extends MinigameEvent<EntityChangeBlockEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java new file mode 100644 index 00000000..967779cc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityCombustByBlockEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityCombustByBlockEvent extends MinigameEvent<EntityCombustByBlockEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java new file mode 100644 index 00000000..30c57813 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityCombustByEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityCombustByEntityEvent extends MinigameEvent<EntityCombustByEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java new file mode 100644 index 00000000..e3a1196b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityCombustEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityCombustEvent extends MinigameEvent<EntityCombustEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java new file mode 100644 index 00000000..e4b6c90b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityCreatePortalEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityCreatePortalEvent extends MinigameEvent<EntityCreatePortalEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java new file mode 100644 index 00000000..a435acd1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityDamageByBlockEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityDamageByBlockEvent extends MinigameEvent<EntityDamageByBlockEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java new file mode 100644 index 00000000..d9c42a0f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityDamageByEntityEvent extends MinigameEvent<EntityDamageByEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java new file mode 100644 index 00000000..45d442c9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityDamageEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityDamageEvent extends MinigameEvent<EntityDamageEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java new file mode 100644 index 00000000..5c97043d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityDeathEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityDeathEvent extends MinigameEvent<EntityDeathEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java new file mode 100644 index 00000000..8536b42f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityEvent extends MinigameEvent<EntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java new file mode 100644 index 00000000..d497ae3b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityExplodeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityExplodeEvent extends MinigameEvent<EntityExplodeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java new file mode 100644 index 00000000..d3e65379 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityInteractEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityInteractEvent extends MinigameEvent<EntityInteractEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java new file mode 100644 index 00000000..712b6897 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityPortalEnterEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityPortalEnterEvent extends MinigameEvent<EntityPortalEnterEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java new file mode 100644 index 00000000..1190839a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityPortalEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityPortalEvent extends MinigameEvent<EntityPortalEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java new file mode 100644 index 00000000..33b1c1b3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityPortalExitEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityPortalExitEvent extends MinigameEvent<EntityPortalExitEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java new file mode 100644 index 00000000..58440792 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityRegainHealthEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityRegainHealthEvent extends MinigameEvent<EntityRegainHealthEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java new file mode 100644 index 00000000..a17cc728 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityShootBowEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityShootBowEvent extends MinigameEvent<EntityShootBowEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java new file mode 100644 index 00000000..2751b1ce --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntitySpawnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntitySpawnEvent extends MinigameEvent<EntitySpawnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java new file mode 100644 index 00000000..468e084c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityTameEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityTameEvent extends MinigameEvent<EntityTameEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java new file mode 100644 index 00000000..7fb9d02b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityTargetEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityTargetEvent extends MinigameEvent<EntityTargetEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java new file mode 100644 index 00000000..580b2dfe --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityTargetLivingEntityEvent extends MinigameEvent<EntityTargetLivingEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java new file mode 100644 index 00000000..73bf6876 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityTeleportEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityTeleportEvent extends MinigameEvent<EntityTeleportEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java new file mode 100644 index 00000000..e490296f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityToggleGlideEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityToggleGlideEvent extends MinigameEvent<EntityToggleGlideEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java new file mode 100644 index 00000000..062133cb --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityUnleashEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityUnleasEvent extends MinigameEvent<EntityUnleashEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java new file mode 100644 index 00000000..c8a6d9db --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.EntityUnleashEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameEntityUnleashEvent extends MinigameEvent<EntityUnleashEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java new file mode 100644 index 00000000..561f6858 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ExpBottleEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameExpBottleEvent extends MinigameEvent<ExpBottleEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java new file mode 100644 index 00000000..2b1d336e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ExplosionPrimeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameExplosionPrimeEvent extends MinigameEvent<ExplosionPrimeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java new file mode 100644 index 00000000..02921c25 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.FireworkExplodeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameFireworkExplodeEvent extends MinigameEvent<FireworkExplodeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java new file mode 100644 index 00000000..50217c7d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.FoodLevelChangeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameFloodLevelChangedEvent extends MinigameEvent<FoodLevelChangeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java new file mode 100644 index 00000000..69a9853c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.FurnaceBurnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameFurnaceBurnEvent extends MinigameEvent<FurnaceBurnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java new file mode 100644 index 00000000..00037804 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.FurnaceSmeltEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameFurnaceSmeltEvent extends MinigameEvent<FurnaceSmeltEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java new file mode 100644 index 00000000..8985e967 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.hanging.HangingBreakByEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameHangingBreakByEntityEvent extends MinigameEvent<HangingBreakByEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java new file mode 100644 index 00000000..78721e59 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.hanging.HangingBreakEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameHangingBreakEvent extends MinigameEvent<HangingBreakEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java new file mode 100644 index 00000000..c5c360d5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.hanging.HangingEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameHangingEvent extends MinigameEvent<HangingEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java new file mode 100644 index 00000000..9130647b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.hanging.HangingPlaceEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameHangingPlaceEvent extends MinigameEvent<HangingPlaceEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java new file mode 100644 index 00000000..12358a62 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.HorseJumpEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameHorseJumpEvent extends MinigameEvent<HorseJumpEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java new file mode 100644 index 00000000..7c3f84bb --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryClickEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryClickEvent extends MinigameEvent<InventoryClickEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java new file mode 100644 index 00000000..1d026e86 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryCloseEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryCloseEvent extends MinigameEvent<InventoryCloseEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java new file mode 100644 index 00000000..163c163d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryCreativeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryCreativeEvent extends MinigameEvent<InventoryCreativeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java new file mode 100644 index 00000000..9e6e7254 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryDragEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryDragEvent extends MinigameEvent<InventoryDragEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java new file mode 100644 index 00000000..e5ac95a0 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryEvent extends MinigameEvent<InventoryEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java new file mode 100644 index 00000000..b681bef4 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryInteractEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryInteractEvent extends MinigameEvent<InventoryInteractEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java new file mode 100644 index 00000000..7d508ede --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryMoveItemEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryMoveItemEvent extends MinigameEvent<InventoryMoveItemEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java new file mode 100644 index 00000000..d7a68b0c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryOpenEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryOpenEvent extends MinigameEvent<InventoryOpenEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java new file mode 100644 index 00000000..61630413 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.InventoryPickupItemEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameInventoryPickupItemEvent extends MinigameEvent<InventoryPickupItemEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java new file mode 100644 index 00000000..b002f55e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ItemDespawnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameItemDespawnEvent extends MinigameEvent<ItemDespawnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java new file mode 100644 index 00000000..fe905ca8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ItemMergeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameItemMergeEvent extends MinigameEvent<ItemMergeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java new file mode 100644 index 00000000..c2529104 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ItemSpawnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameItemSpawnEvent extends MinigameEvent<ItemSpawnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java new file mode 100644 index 00000000..f39b3aaa --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.LeavesDecayEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameLeavesDecayEvent extends MinigameEvent<LeavesDecayEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java new file mode 100644 index 00000000..d7faf799 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.LingeringPotionSplashEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameLingeringPotionSplashEvent extends MinigameEvent<LingeringPotionSplashEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java new file mode 100644 index 00000000..d9ee8893 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.NotePlayEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameNotePlayEvent extends MinigameEvent<NotePlayEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java new file mode 100644 index 00000000..f4fbf3c9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.PigZapEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePigZapEvent extends MinigameEvent<PigZapEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java new file mode 100644 index 00000000..7c0e104f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerAchievementAwardedEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerAchievementAwardedEvent extends MinigameEvent<PlayerAchievementAwardedEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java new file mode 100644 index 00000000..a3bb99ad --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerAnimationEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerAnimationEvent extends MinigameEvent<PlayerAnimationEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java new file mode 100644 index 00000000..bb42f1bb --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerArmorStandManipulateEvent extends MinigameEvent<PlayerArmorStandManipulateEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java new file mode 100644 index 00000000..93d73afd --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerBedEnterEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerBedEnterEvent extends MinigameEvent<PlayerBedEnterEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java new file mode 100644 index 00000000..ef188589 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerBedLeaveEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerBedLeaveEvent extends MinigameEvent<PlayerBedLeaveEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java new file mode 100644 index 00000000..55d5b264 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerBucketEmptyEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerBucketEmptyEvent extends MinigameEvent<PlayerBucketEmptyEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java new file mode 100644 index 00000000..4ec9427b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerBucketEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerBucketEvent extends MinigameEvent<PlayerBucketEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java new file mode 100644 index 00000000..a13e3bf9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerBucketFillEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerBucketFillEvent extends MinigameEvent<PlayerBucketFillEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java new file mode 100644 index 00000000..1347818e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerChangedMainHandEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerChangedMainHandEvent extends MinigameEvent<PlayerChangedMainHandEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java new file mode 100644 index 00000000..82f11137 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerChangedWorldEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerChangedWorldEvent extends MinigameEvent<PlayerChangedWorldEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java new file mode 100644 index 00000000..ac28dacc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerChannelEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerChannelEvent extends MinigameEvent<PlayerChannelEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java new file mode 100644 index 00000000..85f79f1b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerChatEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerChatEvent extends MinigameEvent<PlayerChatEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java new file mode 100644 index 00000000..5275824c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerChatTabCompleteEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerChatTabCompleteEvent extends MinigameEvent<PlayerChatTabCompleteEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java new file mode 100644 index 00000000..763634ea --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerCommandPreprocessEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerCommandPreprocessEvent extends MinigameEvent<PlayerCommandPreprocessEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java new file mode 100644 index 00000000..137478a3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.PlayerDeathEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerDeathEvent extends MinigameEvent<PlayerDeathEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java new file mode 100644 index 00000000..932707e8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerDropItemEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerDropItemEvent extends MinigameEvent<PlayerDropItemEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java new file mode 100644 index 00000000..6b9cc0ec --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerEditBookEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerEditBookEvent extends MinigameEvent<PlayerEditBookEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java new file mode 100644 index 00000000..ddb426ee --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerEggThrowEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerEggThrowEvent extends MinigameEvent<PlayerEggThrowEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java new file mode 100644 index 00000000..bc8f276d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerEvent extends MinigameEvent<PlayerEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java new file mode 100644 index 00000000..bc2440d1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerExpChangeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerExpChangeEvent extends MinigameEvent<PlayerExpChangeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java new file mode 100644 index 00000000..7df0b109 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerFishEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerFishEvent extends MinigameEvent<PlayerFishEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java new file mode 100644 index 00000000..85afabab --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerGameModeChangeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerGameModeChangeEvent extends MinigameEvent<PlayerGameModeChangeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java new file mode 100644 index 00000000..c5cfa4b1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerInteractAtEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerInteractAtEntityEvent extends MinigameEvent<PlayerInteractAtEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java new file mode 100644 index 00000000..17c6beea --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerInteractEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerInteractEntityEvent extends MinigameEvent<PlayerInteractEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java new file mode 100644 index 00000000..ab160e6f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerInteractEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerInteractEvent extends MinigameEvent<PlayerInteractEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java new file mode 100644 index 00000000..e4cd0c3e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerInventoryEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerInventoryEvent extends MinigameEvent<PlayerInventoryEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java new file mode 100644 index 00000000..f1725f81 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerItemBreakEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerItemBreakEvent extends MinigameEvent<PlayerItemBreakEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java new file mode 100644 index 00000000..f76831cc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerItemConsumeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerItemConsumeEvent extends MinigameEvent<PlayerItemConsumeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java new file mode 100644 index 00000000..b7276263 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerItemDamageEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerItemDamageEvent extends MinigameEvent<PlayerItemDamageEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java new file mode 100644 index 00000000..5f606314 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerItemHeldEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerItemHeldEvent extends MinigameEvent<PlayerItemHeldEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java new file mode 100644 index 00000000..94af9ffa --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerJoinEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerJoinEvent extends MinigameEvent<PlayerJoinEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java new file mode 100644 index 00000000..3fcd05a6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerKickEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerKickEvent extends MinigameEvent<PlayerKickEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java new file mode 100644 index 00000000..35a99629 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.PlayerLeashEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerLeashEntityEvent extends MinigameEvent<PlayerLeashEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java new file mode 100644 index 00000000..4a18dc45 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerLevelChangeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerLevelChangeEvent extends MinigameEvent<PlayerLevelChangeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java new file mode 100644 index 00000000..68e193f0 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerLoginEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerLoginEvent extends MinigameEvent<PlayerLoginEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java new file mode 100644 index 00000000..778d2811 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerMoveEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerMoveEvent extends MinigameEvent<PlayerMoveEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java new file mode 100644 index 00000000..04ceb21c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerPickupArrowEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerPickupArrowEvent extends MinigameEvent<PlayerPickupArrowEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java new file mode 100644 index 00000000..bf2af042 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerPickupItemEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerPickupItemEvent extends MinigameEvent<PlayerPickupItemEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java new file mode 100644 index 00000000..28a422a0 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerPortalEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerPortalEvent extends MinigameEvent<PlayerPortalEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java new file mode 100644 index 00000000..93706241 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerQuitEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerQuitEvent extends MinigameEvent<PlayerQuitEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java new file mode 100644 index 00000000..6290a1b2 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerRegisterChannelEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerRegisterChannelEvent extends MinigameEvent<PlayerRegisterChannelEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java new file mode 100644 index 00000000..901d5b6b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerResourcePackStatusEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerResourcePackStatusEvent extends MinigameEvent<PlayerResourcePackStatusEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java new file mode 100644 index 00000000..48913bb2 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerRespawnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerRespawnEvent extends MinigameEvent<PlayerRespawnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java new file mode 100644 index 00000000..604b455b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerShearEntityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerShearEntityEvent extends MinigameEvent<PlayerShearEntityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java new file mode 100644 index 00000000..99ff71f6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerSpawnLocationEvent extends MinigameEvent<PlayerSpawnLocationEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java new file mode 100644 index 00000000..a25390d9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerStatisticIncrementEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerStatisticIncrementEvent extends MinigameEvent<PlayerStatisticIncrementEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java new file mode 100644 index 00000000..d1cbcb3c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerSwapHandItemsEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerSwapHandItemsEvent extends MinigameEvent<PlayerSwapHandItemsEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java new file mode 100644 index 00000000..8d3e8890 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerTeleportEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerTeleportEvent extends MinigameEvent<PlayerTeleportEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java new file mode 100644 index 00000000..df318047 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerToggleFlightEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerToggleFlightEvent extends MinigameEvent<PlayerToggleFlightEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java new file mode 100644 index 00000000..b4e9cfe0 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerToggleSneakEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerToggleSneakEvent extends MinigameEvent<PlayerToggleSneakEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java new file mode 100644 index 00000000..26849dd3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerToggleSprintEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerToggleSprintEvent extends MinigameEvent<PlayerToggleSprintEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java new file mode 100644 index 00000000..40c0d5a1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerUnregisterChannelEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerUnregisterChannelEvent extends MinigameEvent<PlayerUnregisterChannelEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java new file mode 100644 index 00000000..a62763da --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.player.PlayerVelocityEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePlayerVelocityEvent extends MinigameEvent<PlayerVelocityEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java new file mode 100644 index 00000000..5280646e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.PotionSplashEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePotionSplashEvent extends MinigameEvent<PotionSplashEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java new file mode 100644 index 00000000..62653550 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.PrepareAnvilEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePrepareAnvilEvent extends MinigameEvent<PrepareAnvilEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java new file mode 100644 index 00000000..ac935eeb --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.inventory.PrepareItemCraftEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePrepareItemCraftEvent extends MinigameEvent<PrepareItemCraftEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java new file mode 100644 index 00000000..42a831e5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigamePrepareItemEnchantEvent extends MinigameEvent<PrepareItemEnchantEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java new file mode 100644 index 00000000..d0b1d238 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ProjectileHitEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameProjectileHitEvent extends MinigameEvent<ProjectileHitEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java new file mode 100644 index 00000000..c9d58b34 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.ProjectileLaunchEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameProjectileLaunchEvent extends MinigameEvent<ProjectileLaunchEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java new file mode 100644 index 00000000..3d4841e3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.SheepDyeWoolEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameSheepDyeWoolEvent extends MinigameEvent<SheepDyeWoolEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java new file mode 100644 index 00000000..4e94e088 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.SheepRegrowWoolEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameSheepRegrowWoolEvent extends MinigameEvent<SheepRegrowWoolEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java new file mode 100644 index 00000000..1ce55824 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.block.SignChangeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameSignChangeEvent extends MinigameEvent<SignChangeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java new file mode 100644 index 00000000..ca034bd9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.SlimeSplitEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameSlimeSplitEvent extends MinigameEvent<SlimeSplitEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java new file mode 100644 index 00000000..efe5020b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.SpawnerSpawnEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameSpawnerSpawnEvent extends MinigameEvent<SpawnerSpawnEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java new file mode 100644 index 00000000..a3e97a0d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleBlockCollisionEvent extends MinigameEvent<VehicleBlockCollisionEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java new file mode 100644 index 00000000..2e448ff5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleCollisionEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleCollisionEvent extends MinigameEvent<VehicleCollisionEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java new file mode 100644 index 00000000..3eef3505 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleCreateEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleCreateEvent extends MinigameEvent<VehicleCreateEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java new file mode 100644 index 00000000..88148f0b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleDamageEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleDamageEvent extends MinigameEvent<VehicleDamageEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java new file mode 100644 index 00000000..761c7bf9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleDestroyEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleDestroyEvent extends MinigameEvent<VehicleDestroyEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java new file mode 100644 index 00000000..b76df595 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleEnterEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleEnterEvent extends MinigameEvent<VehicleEnterEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java new file mode 100644 index 00000000..6a6d9980 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleEntityCollisionEvent extends MinigameEvent<VehicleEntityCollisionEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java new file mode 100644 index 00000000..4d437eb8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleEvent extends MinigameEvent<VehicleEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java new file mode 100644 index 00000000..4a265c16 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleExitEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleExitEvent extends MinigameEvent<VehicleExitEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java new file mode 100644 index 00000000..a1ea8999 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleMoveEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleMoveEvent extends MinigameEvent<VehicleMoveEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java new file mode 100644 index 00000000..5d27d792 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.vehicle.VehicleUpdateEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVehicleUpdateEvent extends MinigameEvent<VehicleUpdateEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java new file mode 100644 index 00000000..85b3a971 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.VillagerAcquireTradeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVillagerAcquireTradeEvent extends MinigameEvent<VillagerAcquireTradeEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java new file mode 100644 index 00000000..d676e404 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import org.bukkit.event.entity.VillagerReplenishTradeEvent; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Block break event. + * + * @author mepeisen + */ +public interface MinigameVillagerReplenishTradeEvent extends MinigameEvent<VillagerReplenishTradeEvent> +{ + + // TODO default stubbings + +} From c6c56a5fd82b72aca4b87597c690694e51c6920b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 10:36:11 +0200 Subject: [PATCH 086/266] removed arena points, fixes https://github.com/MysticCity/MinigamesAPI/issues/81 --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 8a491aec..579cfff3 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,10 @@ * NoSuchMethodError in Effects.playHologram for 1.9 and 1.10 +###### Splegg + +removed arena points, fixes https://github.com/MysticCity/MinigamesAPI/issues/81 + #### 1.14.10 ###### All From 5508a084a41cdb5b2a2c53b16c51e48d0feb4a5b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 10:45:26 +0200 Subject: [PATCH 087/266] new game idea due to bug in SeaBattle --- planned.md | 1 + 1 file changed, 1 insertion(+) diff --git a/planned.md b/planned.md index 359cdc7c..905e3ec3 100644 --- a/planned.md +++ b/planned.md @@ -34,4 +34,5 @@ * Death Cube * TicTacToe * Mobarena +* Undersea battle (Uboot-Kampf) From e3abafc64c6de43bf910fbfdc3bd492212ce6b31 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 11:34:37 +0200 Subject: [PATCH 088/266] bugfixes for sea battle --- changelog.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 579cfff3..f55b8529 100644 --- a/changelog.md +++ b/changelog.md @@ -12,7 +12,12 @@ ###### Splegg -removed arena points, fixes https://github.com/MysticCity/MinigamesAPI/issues/81 +* removed arena points, fixes https://github.com/MysticCity/MinigamesAPI/issues/81 + +###### SeaBattle + +* Workaround for boat under water https://github.com/MysticCity/MinigamesAPI/issues/95 +* Workaround for deny boat movement on startup count down https://github.com/MysticCity/MinigamesAPI/issues/107 #### 1.14.10 From c1fb0434ee4d26d39b6bbfe3c67a5be51fa4a8b8 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 13:47:31 +0200 Subject: [PATCH 089/266] fixed non-generated arena on startup --- changelog.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/changelog.md b/changelog.md index f55b8529..27ac49c2 100644 --- a/changelog.md +++ b/changelog.md @@ -19,6 +19,18 @@ * Workaround for boat under water https://github.com/MysticCity/MinigamesAPI/issues/95 * Workaround for deny boat movement on startup count down https://github.com/MysticCity/MinigamesAPI/issues/107 +##### Warlock + +* fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) + +##### Warlock-Tactical + +* fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) + +##### TrapdoorSpleef + +* fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) + #### 1.14.10 ###### All From 9348caf7fe50c67be48c8ef3f1a7f438c920a196 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 14:00:40 +0200 Subject: [PATCH 090/266] fixed powerup task --- changelog.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 27ac49c2..3dad8a53 100644 --- a/changelog.md +++ b/changelog.md @@ -10,15 +10,29 @@ * NoSuchMethodError in Effects.playHologram for 1.9 and 1.10 +###### BowBash + +* fixed console spams of "Cancelled powerup task" +* fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) + +###### Snake + +* fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) + ###### Splegg * removed arena points, fixes https://github.com/MysticCity/MinigamesAPI/issues/81 +* fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) ###### SeaBattle * Workaround for boat under water https://github.com/MysticCity/MinigamesAPI/issues/95 * Workaround for deny boat movement on startup count down https://github.com/MysticCity/MinigamesAPI/issues/107 +##### TrapdoorSpleef + +* fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) + ##### Warlock * fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) @@ -27,9 +41,7 @@ * fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) -##### TrapdoorSpleef -* fixed non-generated arena on first arena start (https://github.com/MysticCity/MinigamesAPI/issues/83) #### 1.14.10 @@ -46,6 +58,8 @@ * Fixed falling blocks animation + + #### 1.14.9 ###### All From fcd22db9d1f37fa60b56d993a1d6268b23564837 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 17:58:37 +0200 Subject: [PATCH 091/266] Spawns of living entites inside arenas is now forbidden --- .../minigamesapi/ArenaListener.java | 18 ++++++++++++++++++ changelog.md | 14 ++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 5a5e72d7..18aedabe 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -55,6 +55,7 @@ import org.bukkit.event.block.BlockSpreadEvent; import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; @@ -1995,6 +1996,23 @@ public void onPlayerTeleport(final PlayerTeleportEvent event) } } + /** + * Deny mob spawn inside arena. + * @param evt create spawn event. + */ + @EventHandler + public void onMobSpawn(CreatureSpawnEvent evt) + { + for (final Arena arena : this.pli.getArenas()) + { + final Cuboid c = arena.getBoundaries(); + if (c != null && c.containsLoc(evt.getLocation())) + { + evt.setCancelled(true); + } + } + } + // ************************* // ***** helpers / utilities // ************************* diff --git a/changelog.md b/changelog.md index 3dad8a53..de62e086 100644 --- a/changelog.md +++ b/changelog.md @@ -9,12 +9,25 @@ ###### Minigames-API * NoSuchMethodError in Effects.playHologram for 1.9 and 1.10 +* Spawns of living entites inside arenas is now forbidden. No more need of worldguard etc (https://github.com/MysticCity/MinigamesAPI/issues/79) + +###### BedWars + +* Spawning villagers inside BedWars arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) ###### BowBash * fixed console spams of "Cancelled powerup task" * fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) +###### HorseRacingPlus + +* Spawning horses inside HroseRacingPlus arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) + +###### MobEscape + +* Spawning witches and dragons inside MobEscape arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) + ###### Snake * fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) @@ -23,6 +36,7 @@ * removed arena points, fixes https://github.com/MysticCity/MinigamesAPI/issues/81 * fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) +* Spawning slime and sheeps inside Snake arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) ###### SeaBattle From ff3eef7ec17aa795ac31de6f9c52b672185c084b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 18:33:43 +0200 Subject: [PATCH 092/266] removed sysout --- .../minigamesapi/ArenaListener.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 18aedabe..6728b000 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -61,6 +61,7 @@ import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; @@ -2005,8 +2006,38 @@ public void onMobSpawn(CreatureSpawnEvent evt) { for (final Arena arena : this.pli.getArenas()) { - final Cuboid c = arena.getBoundaries(); + Cuboid c = arena.getBoundaries(); if (c != null && c.containsLoc(evt.getLocation())) + { + evt.setCancelled(true); + return; + } + c = arena.getLobbyBoundaries(); + if (c != null && c.containsLoc(evt.getLocation())) + { + evt.setCancelled(true); + return; + } + c = arena.getSpecBoundaries(); + if (c != null && c.containsLoc(evt.getLocation())) + { + evt.setCancelled(true); + return; + } + } + } + + /** + * Deny mob movement inside arena. + * @param evt create spawn event. + */ + @EventHandler + public void onMobTarget(EntityTargetEvent evt) + { + if (!(evt.getEntity() instanceof Player) && evt.getTarget() instanceof Player) + { + final Player target = (Player) evt.getTarget(); + if (this.pli.containsGlobalPlayer(target.getName())) { evt.setCancelled(true); } From e71bb93e323dd229754dff372264031b27781113 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 19 Aug 2016 18:35:17 +0200 Subject: [PATCH 093/266] Players being inside arenas or waiting lobby can no longer be attacked by mobs --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index de62e086..16966c35 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,7 @@ * NoSuchMethodError in Effects.playHologram for 1.9 and 1.10 * Spawns of living entites inside arenas is now forbidden. No more need of worldguard etc (https://github.com/MysticCity/MinigamesAPI/issues/79) +* Players being inside arenas or waiting lobby can no longer be attacked by mobs. ###### BedWars From cecf20ef78eb795b8eaec861b31e12ed4023f58e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 20 Aug 2016 07:48:52 +0200 Subject: [PATCH 094/266] fixed playOutTitle --- .../minigamesapi/Effects.java | 22 +++++++++++++++---- changelog.md | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 25612c87..d48c7675 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -34,6 +34,9 @@ import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Validator; +import net.minecraft.server.v1_10_R1.ChatComponentText; +import net.minecraft.server.v1_10_R1.IChatBaseComponent.ChatSerializer; + /** * Particle/Animation helper. * @@ -245,13 +248,24 @@ public static void playTitle(final Player player, final String title, int eindex final Field playerConnection = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EntityPlayer").getField("playerConnection"); playerConnection.setAccessible(true); final Method sendPacket = playerConnection.getType().getMethod("sendPacket", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".Packet")); - final Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".ChatSerializer").getMethod("a", String.class); + Class<?> enumClass = null; + Object chatComp = null; + if (MinigamesAPI.SERVER_VERSION.isBelow(MinecraftVersionsType.V1_8_R2)) + { + Method a = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".ChatSerializer").getMethod("a", String.class); + enumClass = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EnumTitleAction"); + chatComp = a.invoke(null, "{text:\"" + title + "\"}"); + } + else + { + enumClass = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutTitle$EnumTitleAction"); + chatComp = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".ChatComponentText").getConstructor(String.class).newInstance(title); + } final Constructor<?> packetPlayOutTitleConstr = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".PacketPlayOutTitle").getConstructor(); - final Object packet = packetPlayOutTitleConstr.newInstance(); - Effects.setValue(packet, "a", Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".EnumTitleAction").getEnumConstants()[enumindex]); - Effects.setValue(packet, "b", a.invoke(null, "{text:\"" + title + "\"}")); + Effects.setValue(packet, "a", enumClass.getEnumConstants()[enumindex]); + Effects.setValue(packet, "b", chatComp); sendPacket.invoke(playerConnection.get(getHandle.invoke(player)), packet); } diff --git a/changelog.md b/changelog.md index 16966c35..de91fe67 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ * NoSuchMethodError in Effects.playHologram for 1.9 and 1.10 * Spawns of living entites inside arenas is now forbidden. No more need of worldguard etc (https://github.com/MysticCity/MinigamesAPI/issues/79) * Players being inside arenas or waiting lobby can no longer be attacked by mobs. +* Effects.playOutTitle fixed (https://github.com/MysticCity/MinigamesAPI/issues/112) ###### BedWars From 6c8bdcc292802fac14439526aabd205b5739094c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 20 Aug 2016 08:54:17 +0200 Subject: [PATCH 095/266] server motd arena rotation --- .../minigamesapi/MinigamesAPI.java | 94 +++++++++++++++++++ .../minigamesapi/PluginConfigStrings.java | 40 ++++++++ APIv2/src/site/markdown/migrationList.md | 13 +++ changelog.md | 1 + 4 files changed, 148 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index f7ef5a2c..8e90d8eb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -20,9 +20,13 @@ import java.io.DataOutputStream; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; +import java.util.List; import java.util.Locale; import java.util.UUID; +import java.util.function.Supplier; import java.util.logging.Level; import org.bukkit.Bukkit; @@ -41,6 +45,7 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.messaging.PluginMessageListener; @@ -179,6 +184,12 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener, L */ Metrics metrics; + /** the current motd */ + private String motd; + + /** suppliers or the motd strings. */ + private Iterator<Supplier<String>> motdStrings = Collections.emptyIterator(); + @Override public void onEnable() { @@ -210,6 +221,15 @@ public void onEnable() this.getConfig().addDefault(PluginConfigStrings.PERMISSION_SHOP_PREFIX, "ancient.core.shopitems"); //$NON-NLS-1$ this.getConfig().addDefault(PluginConfigStrings.PERMISSION_GAME_PREFIX, "ancient."); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.MOTD_ENABLED, false); + this.getConfig().addDefault(PluginConfigStrings.MOTD_ROTATION_SECONDS, 15); + this.getConfig().addDefault(PluginConfigStrings.MOTD_TEXT, "<minigame> arena <arena> <state>: <players>/<maxplayers>"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.MOTD_STATE_JOIN, "JOIN"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.MOTD_STATE_STARTING, "STARTING"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.MOTD_STATE_INGAME, "INGAME"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.MOTD_STATE_RESTARTING, "RESTARTING"); //$NON-NLS-1$ + this.getConfig().addDefault(PluginConfigStrings.MOTD_STATE_DISABLED, "DISABLED"); //$NON-NLS-1$ + for (final ArenaState state : ArenaState.values()) { this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".0", state.getColorCode() + "<minigame>"); @@ -306,6 +326,71 @@ public int getValue() } }, 0, 20 * this.getConfig().getInt(PluginConfigStrings.SIGNS_UPDATE_TIME)); + if (this.getConfig().getBoolean(PluginConfigStrings.MOTD_ENABLED)) + { + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> { + if (this.motdStrings.hasNext()) + { + this.motd = this.motdStrings.next().get(); + } + else + { + final List<Supplier<String>> suppliers = new ArrayList<>(); + for (final PluginInstance pli : MinigamesAPI.pinstances.values()) + { + for (final Arena arena : pli.getArenas()) + { + suppliers.add(() -> { + String motdString = getConfig().getString(PluginConfigStrings.MOTD_TEXT); + String stateString = null; + if (arena.isSuccessfullyInit() && pli.arenaSetup.getArenaEnabled(pli.getPlugin(), arena.getInternalName())) + { + switch (arena.getArenaState()) + { + case INGAME: + stateString = getConfig().getString(PluginConfigStrings.MOTD_STATE_INGAME); + break; + case JOIN: + stateString = getConfig().getString(PluginConfigStrings.MOTD_STATE_JOIN); + break; + case RESTARTING: + stateString = getConfig().getString(PluginConfigStrings.MOTD_STATE_RESTARTING); + break; + case STARTING: + stateString = getConfig().getString(PluginConfigStrings.MOTD_STATE_STARTING); + break; + default: + stateString = getConfig().getString(PluginConfigStrings.MOTD_STATE_DISABLED); + break; + } + } + else + { + stateString = getConfig().getString(PluginConfigStrings.MOTD_STATE_DISABLED); + } + motdString = motdString.replace("<minigame>", arena.getPluginInstance().getPlugin().getDescription().getName()); + motdString = motdString.replace("<arena>", arena.getDisplayName()); + motdString = motdString.replace("<state>", stateString); + motdString = motdString.replace("<players>", String.valueOf(arena.getAllPlayers().size())); + motdString = motdString.replace("<minplayers>", String.valueOf(arena.getMinPlayers())); + motdString = motdString.replace("<maxplayers>", String.valueOf(arena.getMaxPlayers())); + return motdString; + }); + } + } + this.motdStrings = suppliers.iterator(); + if (this.motdStrings.hasNext()) + { + this.motd = this.motdStrings.next().get(); + } + else + { + this.motd = null; + } + } + }, 0, 20 * this.getConfig().getInt(PluginConfigStrings.MOTD_ROTATION_SECONDS)); + } + Bukkit.getPluginManager().registerEvents(this, this); } @@ -1613,4 +1698,13 @@ public String getInfoBySignLocation(Location sign) return ""; } + @EventHandler + public void onServerPing(ServerListPingEvent evt) + { + if (this.motd != null) + { + evt.setMotd(this.motd); + } + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java index cb5a0be9..2ff9c380 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginConfigStrings.java @@ -48,6 +48,46 @@ public interface PluginConfigStrings */ String POST_METRICS = "config.post_metrics"; //$NON-NLS-1$ + /** + * flag for enabling motd manipulation. + */ + String MOTD_ENABLED = "config.motd.enabled"; //$NON-NLS-1$ + + /** + * seconds to rotate from arena to arena. + */ + String MOTD_ROTATION_SECONDS = "config.motd.rotation"; //$NON-NLS-1$ + + /** + * string to set for motd + */ + String MOTD_TEXT = "config.motd.text"; //$NON-NLS-1$ + + /** + * string for motd state text + */ + String MOTD_STATE_JOIN = "config.motd.state.join"; //$NON-NLS-1$ + + /** + * string for motd state text + */ + String MOTD_STATE_STARTING = "config.motd.state.starting"; //$NON-NLS-1$ + + /** + * string for motd state text + */ + String MOTD_STATE_INGAME = "config.motd.state.ingame"; //$NON-NLS-1$ + + /** + * string for motd state text + */ + String MOTD_STATE_RESTARTING = "config.motd.state.restarting"; //$NON-NLS-1$ + + /** + * string for motd state text + */ + String MOTD_STATE_DISABLED = "config.motd.state.disabled"; //$NON-NLS-1$ + /** * Prefix for core permissions. */ diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md index ccc78fb7..4481b517 100644 --- a/APIv2/src/site/markdown/migrationList.md +++ b/APIv2/src/site/markdown/migrationList.md @@ -277,6 +277,8 @@ - [ ] void onChat(final AsyncPlayerChatEvent event) - [ ] void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent event) - [ ] void onPlayerTeleport(final PlayerTeleportEvent event) +- [ ] void onMobSpawn(CreatureSpawnEvent evt) +- [ ] void onMobTarget(EntityTargetEvent evt) - [ ] boolean isSpectating(final Player p) - [ ] List<Entity> getEntitiesByLocation(final Location loc, final double d) - [ ] boolean checkLocationMatchesSign(final Location l, final Sign s) @@ -510,6 +512,8 @@ - [X] boolean below1710 > no replacement, check com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() against 1.7.10 - [ ] Metrics metrics +- [ ] String motd +- [ ] Iterator motdStrings - [ ] void onEnable() - [ ] boolean crackshotAvailable() - [ ] boolean economyAvailable() @@ -556,6 +560,7 @@ - [ ] void updateSign(String mg, String arenaname, String arenastate, SignChangeEvent event) - [ ] String getServerBySignLocation(Location sign) - [ ] String getInfoBySignLocation(Location sign) +- [ ] void onServerPing(ServerListPingEvent evt) ## Party.java @@ -587,6 +592,14 @@ - [ ] String PERMISSION\_GUN\_PREFIX - [ ] String PERMISSION\_SHOP\_PREFIX - [ ] String PERMISSION\_GAME\_PREFIX +- [ ] String MOTD\_ENABLED +- [ ] String MOTD\_ROTATION\_SECONDS +- [ ] String MOTD\_TEXT\_SECONDS +- [ ] String MOTD\_STATE\_JOIN +- [ ] String MOTD\_STATE\_STARTING +- [ ] String MOTD\_STATE\_INGAME +- [ ] String MOTD\_STATE\_RESETTING +- [ ] String MOTD\_STATE\_DISABLED ## PluginInstance.java diff --git a/changelog.md b/changelog.md index de91fe67..2011da7a 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,7 @@ * Spawns of living entites inside arenas is now forbidden. No more need of worldguard etc (https://github.com/MysticCity/MinigamesAPI/issues/79) * Players being inside arenas or waiting lobby can no longer be attacked by mobs. * Effects.playOutTitle fixed (https://github.com/MysticCity/MinigamesAPI/issues/112) +* Feature for displaying arena states in MOTD. See config.yml of Minigames-LIB, enable at config.motd.enabled (https://github.com/MysticCity/MinigamesAPI/issues/54) ###### BedWars From d08b8221638fc231c4857bcc74ac4c776cf5ef9f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 20 Aug 2016 11:19:51 +0200 Subject: [PATCH 096/266] Players in vehicles can not longer leave arena bounds --- .../minigamesapi/ArenaListener.java | 67 +++++++++++++++++++ APIv2/src/site/markdown/migrationList.md | 1 + changelog.md | 6 ++ 3 files changed, 74 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 6728b000..22be5ecd 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -78,6 +78,7 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; +import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; @@ -842,6 +843,64 @@ public void Space(final PlayerMoveEvent event) } } + /** + * Fetches player move event. + * + * <p> + * TODO describe what this event is doing. + * </p> + * + * @param event + * the player move event. + */ + @EventHandler(priority = EventPriority.HIGHEST) + public void onVMove(final VehicleMoveEvent event) + { + if (event.getVehicle().getPassenger() instanceof Player) + { + final Player p = (Player) event.getVehicle().getPassenger(); + if (this.pli.containsGlobalPlayer(p.getName())) + { + final Arena a = this.pli.global_players.get(p.getName()); + if (!this.pli.containsGlobalLost(p.getName()) && !this.pli.global_arcade_spectator.containsKey(p.getName())) + { + if (a.getArenaState() == ArenaState.INGAME) + { + if (MinigamesAPI.debug) + { + plugin.getLogger().log(Level.INFO, "Player " + p + " moved ingame to " + event.getTo()); + } + if (event.getTo().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) + { +// if (a.getArenaType() == ArenaType.JUMPNRUN) +// { +// Util.teleportPlayerFixed(p, a.getSpawns().get(0)); +// } +// else +// { +// a.spectate(p.getName()); +// } + a.spectate(p.getName()); + return; + } + if (a.getBoundaries() != null) + { + if (!a.getBoundaries().containsLocWithoutY(event.getTo())) + { + if (MinigamesAPI.debug) + { + plugin.getLogger().log(Level.INFO, "Player " + p + " left arena bounds."); + } + a.spectate(p.getName()); + return; + } + } + } + } + } + } + } + /** * Fetches player move event. * @@ -865,6 +924,10 @@ public void onMove(final PlayerMoveEvent event) { if (a.getArenaState() == ArenaState.INGAME) { + if (MinigamesAPI.debug) + { + plugin.getLogger().log(Level.INFO, "Player " + p + " moved ingame to " + p.getLocation()); + } if (p.getLocation().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) { if (a.getArenaType() == ArenaType.JUMPNRUN) @@ -881,6 +944,10 @@ public void onMove(final PlayerMoveEvent event) { if (!a.getBoundaries().containsLocWithoutY(p.getLocation())) { + if (MinigamesAPI.debug) + { + plugin.getLogger().log(Level.INFO, "Player " + p + " left arena bounds."); + } Util.pushBack(a.getSpawns().get(0), p); } } diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md index 4481b517..375db5cf 100644 --- a/APIv2/src/site/markdown/migrationList.md +++ b/APIv2/src/site/markdown/migrationList.md @@ -264,6 +264,7 @@ - [ ] void onPaintingBreak(final HangingBreakByEntityEvent event) - [ ] void Space(final PlayerMoveEvent event) - [ ] void onMove(final PlayerMoveEvent event) +- [ ] void onVMove(final VehicleMoveEvent event) - [ ] void onPlayerDeath(final PlayerDeathEvent event) - [ ] void onEntityDamage(final EntityDamageEvent event) - [ ] void onEntityDamageByEntity(final EntityDamageByEntityEvent event) diff --git a/changelog.md b/changelog.md index 2011da7a..7a05f2b6 100644 --- a/changelog.md +++ b/changelog.md @@ -13,6 +13,7 @@ * Players being inside arenas or waiting lobby can no longer be attacked by mobs. * Effects.playOutTitle fixed (https://github.com/MysticCity/MinigamesAPI/issues/112) * Feature for displaying arena states in MOTD. See config.yml of Minigames-LIB, enable at config.motd.enabled (https://github.com/MysticCity/MinigamesAPI/issues/54) +* Players in vehicles can not longer leave arena bounds (https://github.com/MysticCity/MinigamesAPI/issues/78) ###### BedWars @@ -31,6 +32,10 @@ * Spawning witches and dragons inside MobEscape arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) +###### SkyWars + +* Players in vehicles can not longer leave arena bounds (https://github.com/MysticCity/MinigamesAPI/issues/78) + ###### Snake * fixed powerup task error (https://github.com/MysticCity/MinigamesAPI/issues/104) @@ -45,6 +50,7 @@ * Workaround for boat under water https://github.com/MysticCity/MinigamesAPI/issues/95 * Workaround for deny boat movement on startup count down https://github.com/MysticCity/MinigamesAPI/issues/107 +* Players in vehicles can not longer leave arena bounds (https://github.com/MysticCity/MinigamesAPI/issues/78) ##### TrapdoorSpleef From 13e3a5c1f67ab2f5087c57d18bde18aba384da0b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 20 Aug 2016 13:25:21 +0200 Subject: [PATCH 097/266] MobEscape: falling-block-ratio --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 7a05f2b6..ed0a1902 100644 --- a/changelog.md +++ b/changelog.md @@ -31,6 +31,7 @@ ###### MobEscape * Spawning witches and dragons inside MobEscape arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) +* Added new arena config option for falling-block-ratio, see https://github.com/MysticCity/MinigamesAPI/wiki/MGMobEscape for details (https://github.com/MysticCity/MinigamesAPI/issues/64) ###### SkyWars From 23cf62759a0112a5258a877b6a1e72ac90205b5b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 21 Aug 2016 22:51:42 +0200 Subject: [PATCH 098/266] v2 --- .../mce/minigames/api/MinigameInterface.java | 8 + .../api/arena/ArenaTypeInterface.java | 2 +- .../api/config/ConfigurationTool.java | 6 +- .../config/ConfigurationValueInterface.java | 97 ++++-- .../api/locale/LocalizedMessageInterface.java | 30 +- .../api/perms/PermissionsInterface.java | 2 +- .../api/util/function/MgOutgoingStubbing.java | 30 +- .../src/site/markdown/dev_minigame_config.md | 116 +++++++ .../site/markdown/dev_minigame_messages.md | 145 ++++++++ .../site/markdown/dev_minigame_permissions.md | 68 ++++ .../site/markdown/dev_minigame_pluginmain.md | 5 + .../site/markdown/dev_minigame_pluginyml.md | 5 + APIv2/src/site/markdown/dev_setup_eclipse.md | 5 + APIv2/src/site/markdown/dev_setup_maven.md | 5 + APIv2/src/site/markdown/dev_setup_project.md | 5 + .../src/site/markdown/dev_theory_minigame.md | 2 +- APIv2/src/site/markdown/development.md | 13 + .../deploy-mglib2.launch | 14 + LIBv2/.project | 10 + LIBv2/src/build/build.xml | 20 ++ .../mce/minigames/impl/CommandImpl.java | 130 ++++++++ .../minigames/impl/MinigamePluginImpl.java | 315 ++++++++++++++++-- .../mce/minigames/impl/MinigameWrapper.java | 10 + .../mce/minigames/impl/MinigamesPlugin.java | 226 +++++++++---- .../minigames/impl/cmd/Mg2CommandHandler.java | 64 ++++ .../minigames/impl/msg/MessagesConfig.java | 179 ++++++++++ .../mce/minigames/impl/stubs/FalseStub.java | 101 ++++++ .../mce/minigames/impl/stubs/TrueStub.java | 101 ++++++ LIBv2/src/main/resources/plugin.yml | 26 +- changelog.md | 3 +- 30 files changed, 1566 insertions(+), 177 deletions(-) create mode 100644 APIv2/src/site/markdown/dev_minigame_config.md create mode 100644 APIv2/src/site/markdown/dev_minigame_messages.md create mode 100644 APIv2/src/site/markdown/dev_minigame_permissions.md create mode 100644 APIv2/src/site/markdown/dev_minigame_pluginmain.md create mode 100644 APIv2/src/site/markdown/dev_minigame_pluginyml.md create mode 100644 APIv2/src/site/markdown/dev_setup_eclipse.md create mode 100644 APIv2/src/site/markdown/dev_setup_maven.md create mode 100644 APIv2/src/site/markdown/dev_setup_project.md create mode 100644 LIBv2/.externalToolBuilders/deploy-mglib2.launch create mode 100644 LIBv2/src/build/build.xml create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 94d775cb..83493498 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -87,4 +87,12 @@ public interface MinigameInterface */ ConfigurationSection getConfig(String file); + /** + * Saves the configuration for given file. + * + * @param file + * configuration file name. + */ + void saveConfig(String file); + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java index fbe65a4f..ce530528 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java @@ -32,7 +32,7 @@ default String getMinigame() { try { - final ArenaTypes types = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ArenaTypes.class); + final ArenaTypes types = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(ArenaTypes.class); return types.minigame(); } catch (NoSuchFieldException ex) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java index 847f4624..2e430b72 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java @@ -45,7 +45,7 @@ static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface try { final ConfigurationValues configs = val.getClass().getAnnotation(ConfigurationValues.class); - final Annot config = val.getClass().getField(((Enum<?>) val).name()).getAnnotation(clazz); + final Annot config = val.getClass().getDeclaredField(((Enum<?>) val).name()).getAnnotation(clazz); if (configs == null || config == null) { throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ @@ -150,7 +150,7 @@ static <Annot extends Annotation> void consume(ConfigurationValueInterface val, try { final ConfigurationValues configs = val.getClass().getAnnotation(ConfigurationValues.class); - final Annot config = val.getClass().getField(((Enum<?>) val).name()).getAnnotation(clazz); + final Annot config = val.getClass().getDeclaredField(((Enum<?>) val).name()).getAnnotation(clazz); if (configs == null || config == null) { throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ @@ -259,7 +259,7 @@ static boolean isType(ConfigurationValueInterface val, Class<? extends Annotatio { try { - final Field field = val.getClass().getField(((Enum<?>) val).name()); + final Field field = val.getClass().getDeclaredField(((Enum<?>) val).name()); return field.getAnnotation(clazz) != null; } catch (Exception ex) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index 7a47a8e8..b2a5f069 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -298,25 +298,23 @@ default boolean isVector() } /** - * Checks if this configuration value is set. - * - * @return {@code true} if this configuraiton value is set. + * Returns the configuration path of this option + * @return configuration path */ - default boolean isset() + default String path() { try { - final Field field = this.getClass().getField(((Enum<?>) this).name()); + final Field field = this.getClass().getDeclaredField(((Enum<?>) this).name()); final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); { final ConfigurationBool config = field.getAnnotation(ConfigurationBool.class); if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -324,7 +322,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -332,7 +330,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -340,7 +338,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -348,7 +346,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -356,7 +354,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -364,7 +362,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -372,7 +370,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -380,7 +378,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -388,7 +386,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -396,7 +394,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -404,7 +402,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -412,7 +410,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -420,7 +418,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -428,7 +426,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -436,7 +434,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -444,7 +442,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -452,7 +450,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -460,7 +458,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -468,7 +466,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -476,7 +474,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -484,7 +482,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -492,7 +490,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -500,7 +498,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -508,7 +506,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -516,7 +514,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -524,7 +522,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -532,7 +530,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } { @@ -540,7 +538,7 @@ default boolean isset() if (config != null) { final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return minigame.getConfig(configs.file()).isSet(path); + return path; } } throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ @@ -551,6 +549,20 @@ default boolean isset() } } + /** + * Checks if this configuration value is set. + * + * @return {@code true} if this configuraiton value is set. + */ + default boolean isset() + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + + return minigame.getConfig(configs.file()).isSet(this.path()); + } + /** * Checks if this configuration value is set. * @@ -562,7 +574,7 @@ default boolean isset(String path) { try { - final Field field = this.getClass().getField(((Enum<?>) this).name()); + final Field field = this.getClass().getDeclaredField(((Enum<?>) this).name()); final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); final MglibInterface lib = MglibInterface.INSTANCE.get(); final MinigameInterface minigame = lib.getMinigameFromCfg(this); @@ -1870,7 +1882,7 @@ default String[] getKeys(boolean deep) try { final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); + final ConfigurationSection config = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); if (configs == null || config == null) { throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ @@ -2371,4 +2383,15 @@ default String[] getStringList(String path, String[] defaultValue) return list.toArray(new String[list.size()]); } + /** + * Saves the configuration file this option belongs to + */ + default void saveConfig() + { + final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigameFromCfg(this); + minigame.saveConfig(configs.file()); + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java index 9991d73b..4e847b53 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java @@ -17,6 +17,7 @@ import java.io.Serializable; import java.util.Locale; +import java.util.function.BiFunction; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameInterface; @@ -26,7 +27,7 @@ * * @author mepeisen */ -public interface LocalizedMessageInterface +public interface LocalizedMessageInterface extends Serializable { /** @@ -37,7 +38,7 @@ default MessageSeverityType getSeverity() { try { - final LocalizedMessage msg = this.getClass().getField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); return msg.severity(); } catch (NoSuchFieldException ex) @@ -60,7 +61,7 @@ default String toUserMessage(Locale locale, Serializable... args) try { final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); if (msgs == null || msg == null) { throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ @@ -73,6 +74,7 @@ default String toUserMessage(Locale locale, Serializable... args) } final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ + // TODO Convert DynamicArg, see toArg() return String.format(smsg, (Object[])args); } catch (NoSuchFieldException ex) @@ -95,7 +97,7 @@ default String toAdminMessage(Locale locale, Serializable... args) try { final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); if (msgs == null || msg == null) { throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ @@ -112,6 +114,7 @@ default String toAdminMessage(Locale locale, Serializable... args) { smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ } + // TODO Convert DynamicArg, see toArg() return String.format(smsg, (Object[])args); } catch (NoSuchFieldException ex) @@ -120,4 +123,23 @@ default String toAdminMessage(Locale locale, Serializable... args) } } + /** + * Converts this message to a string function + * @param args arguments to use. + * @return ths string function + */ + default DynamicArg toArg(Serializable... args) + { + return (loc, isAdmin) -> isAdmin ? this.toAdminMessage(loc, args) : this.toUserMessage(loc, args); + } + + /** + * Helper interface for dynamic arguments. + */ + @FunctionalInterface + interface DynamicArg extends BiFunction<Locale, Boolean, String>, Serializable + { + // marker only + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java index ba814454..d47dfdf5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java @@ -33,7 +33,7 @@ default String fullPath() try { final Permissions permissions = this.getClass().getAnnotation(Permissions.class); - final Permission perm = this.getClass().getField(((Enum<?>) this).name()).getAnnotation(Permission.class); + final Permission perm = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(Permission.class); if (permissions == null || perm == null) { throw new IllegalStateException("Invalid permission class."); //$NON-NLS-1$ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java index 88702ca9..63d9b51a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java @@ -35,57 +35,64 @@ public interface MgOutgoingStubbing<T> * * @param consumer * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> then(MgConsumer<T> consumer); + MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException; /** * Let us throw an exception if the condition meets the criteria. * * @param consumer * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer); + MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException; /** * Let us throw an exception if the condition meets the criteria. * * @param code * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code); + MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException; /** - * Let the given consumer be invoked if the condition does not meet the criteria. + * Let us throw an exception if the condition meets the criteria. * - * @param consumer + * @param code + * @param args * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> _else(MgConsumer<T> consumer); + MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args) throws MinigameException; /** * Let the given consumer be invoked if the condition does not meet the criteria. * * @param consumer - * @param args * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> _else(MgConsumer<T> consumer, MgFunction<T, Serializable[]> args); + MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException; /** * Let us throw an exception if the condition does not meet the criteria. * * @param consumer * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer); + MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException; /** * Let us throw an exception if the condition does not meet the criteria. * * @param code * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code); + MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException; /** * Let us throw an exception if the condition does not meet the criteria. @@ -93,7 +100,8 @@ public interface MgOutgoingStubbing<T> * @param code * @param args * @return this object for chaining additional then or else consumers. + * @throws MinigameException */ - MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args); + MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args) throws MinigameException; } diff --git a/APIv2/src/site/markdown/dev_minigame_config.md b/APIv2/src/site/markdown/dev_minigame_config.md new file mode 100644 index 00000000..3bf659a8 --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_config.md @@ -0,0 +1,116 @@ +# Minigames-Lib 2.0 - Development + +## Configuration options + +Every configuration option in minigames lib is declared within enumerations. + +## Declaring a configuration option + +To declare an option simply create an enumeration. + + /** + * My plugin configuration options. + * + * @author mepeisen + */ + @ConfigurationValues(path = "myplugin.config") + public enum MyConfig implements ConfigurationValueInterface + { + + /** + * True if special animations are activated. + */ + @ConfigurationBool(defaultValue = true) + SpecialAnimationsEnabled, + + } + +Your plugin provider now simply needs to return this class that minigames lib will do the rest. + + @Override + public Iterable<Class<? extends Enum<?>>> getConfigurations() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(MyConfig.class); + return result; + } + +Hint: The string "myplugin.config" in the @ConfigurationValues annotation is the path name in config.yml. +If you are using multiple enumerations you should always ensure that they do not share the same path. + +The path "core" is always preserved for minigames lib itself. + +The path "config" comes from configuration sets (explained later on). You should not use this path because +on newer versions of the minigames lib some configuration option may be added and you will get into trouble. + +## Configuration option name + +The configuration option name is built from @ConfigurationValues path at enum class level. +The name of the enum constant is appended. Thus the above example will result in path +"myplugin.config.SpecialAnimationEnabled". + +You can override the configuration options name in annotation: + + @ConfigurationBool(name = "special_animations.enabled", defaultValue = true) + +This will result in path "myplugin.config.special_animations.enabled". + +## Changing the file name + +Per default all configuration options come from config.yml. + +You can override this behavior by declaring another configuration file in @ConfigurationValues annotation at enum class level: + + @ConfigurationValues(path = "myplugin.config", file="otherconfig.yml") + +Hint: That is the correct way other files are used in minigames lib. For example the shop configuration (shop.yml) actually +is a configuration enumeration pointing to this file. + +## Using the configuration option + +Using the option is fairly simple: + + MyConfig.SpecialAnimationsEnabled.getBool() + +Setting a new value is similar: + + MyConfig.SpecialAnimationsEnabled.setBool(true); + MyConfig.SpecialAnimationsEnabled.saveConfig(); + +Although invoked on a single configuration option the saveConfig will always save the whole configuration file. +So it is ok, to invoke setters on multiple configuration options and call save only once. This will persist all +as long as they are not spread over multiple configuration files. + +## Option types + +We support all java primitives and lists of java primitves. + +We support following objects: + +* Vector +* ArenaPlayerInterface (minigames player representation) +* Color +* ItemStack + +As a special variant we support "objects". Those are classes implementing the Configurable interface of the minigames api. + +To declare an configuration option of a specific type simply use the matching @Configurationxxx annotation, f.e. @ConfigurationPlayer. + +## Using sections/ sub configuration values + +TODO + +## Special option type: Config sets + +The configuration sets are predefined configuration options used within typical minigames. + +TODO + +## Administrator hints in config.yml + +The minigames lib can add comments to your config.yml. + +This helps administrators to manipulate your configuration options. + +TODO + diff --git a/APIv2/src/site/markdown/dev_minigame_messages.md b/APIv2/src/site/markdown/dev_minigame_messages.md new file mode 100644 index 00000000..e62bd075 --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_messages.md @@ -0,0 +1,145 @@ +# Minigames-Lib 2.0 - Development + +## Messages and Localization + +Every message or name in minigames lib is localized. Users can choose their preferred localization. Language packs +can be used to add a language to your plugins. + +Except messages passed to the java logger all messages sent to console/ players should always be using the message API. + +## Declaring a message + +To declare a message simply create an enumeration. + + /** + * My own messages. + * + * @author mepeisen + */ + @LocalizedMessages("myplugin.ingame") + public enum IngameMessages implements LocalizedMessageInterface + { + /** + * Player has made something special. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: player name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Player %0$s did a looping", severity = MessageSeverityType.Success) + PlayerDidLooping, + + /** + * Player does not know hoe to play. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: player name</li> + * <li>String: some cause</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Player %0$s seems to be a noob", defaultAdminMessage = "Player %0$s seems to be a noob. Cause: %1$s", severity = MessageSeverityType.Warning) + PlayerIsNoob, + } + +Your plugin provider now simply needs to return this class that minigames lib will do the rest. + + @Override + public Iterable<Class<? extends Enum<?>>> getMessageClasses() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(IngameMessages.class); + return result; + } + +Hint: The string "myplugin.ingame" in the @LocalizedMessages annotation is the path name in messages.yml. +If you are using multiple enumeration you should always ensure that they do not share the same path. + +The path "core" is always preserved for minigames lib itself. + +## Using parameters + +The messages are parsed through javas System.format. + +If a message can be individualized by parameters you can add those parameter tags. "%0$s" will display the first argument and assume it is a string. +Read the oracle javadoc of the java language for details. + +## Editing the messages.yml + +The above example will result in the following messages.yml + + myplugin: + ingame: + PlayerDidLooping: + default_locale: en + user: + en: 'Player %0$s did a looping' + PlayerIsNoob: + default_locale: en + user: + en: 'Player %0$s seems to be a noob' + admin: + en: 'Player %0$s seems to be a noob. Cause: %1$s' + +The user section holds all messages per locale display to a common user. The admin section holds the administrator message per locale. + +To add a new locale simply create a new line on level of "en" and add the message. + +## Overriding default locale + +The messages use "en" for default locale. You can override this in @LocalizedMessages annotation at enum class level. +But it is recommended that you choose "en" for your favorite locale in open-source/ public available plugins. Mixing locales +can confuse the players. + +You should always prefer to provide language packs for your plugin or let the user create the language packs. + +## User vs admin + +The minigames lib provides special behavior for messages. Usually administrators (=minecraft operators) like additional +information for analyzing problems. In our example above we do not like to display the noob cause to normal users. +But an administrator can see it. + +To solve this problem you can declare a special administrator message. + +## Using the messages in code. + +Using the message is fairly simple. + +Typically you will send the message to a given player. So you can invoke the sendMessage method on the ArenaPlayerInterface. + + otherPlayer.sendMessage(IngameMessages.PlayerIsNoob, someNoob.getName(), "Fell out of arena"); + +In this example we are not consequent. The constant String "Fell out of Arena" should be localized too. However the minigames lib +provides a solution for this too. We can convert a message to a nested argument: + + otherPlayer.sendMessage(IngameMessages.PlayerIsNoob, someNoob.getName(), IngameMessages.NoobCauseOutOfArena.toArg()); + +## Special message type: Error codes + +There is a special variant of localized messages. The error codes behave exactly the same. The only difference is that +they implement interface MinigameErrorCode instead of LocalizedMessageInterface. + +The error codes are mainly meant to be used in MinigameExceptions. Typically the represent messages or errors in command +handlers. + +## Special message type: Message sets + +The message sets are predefined messages used within typical minigames. + +TODO + +## Language packs + +TODO + +## Administrator hints in messages.yml + +The minigames lib can add comments to your messages.yml. + +This helps administrators to manipulate your messages and provide language packs. + +TODO + diff --git a/APIv2/src/site/markdown/dev_minigame_permissions.md b/APIv2/src/site/markdown/dev_minigame_permissions.md new file mode 100644 index 00000000..3ee5e449 --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_permissions.md @@ -0,0 +1,68 @@ +# Minigames-Lib 2.0 - Development + +## Permissions + +Every permission in minigames lib is declared within enumerations. + +## Declaring a permission + +To declare a permission simply create an enumeration. + + /** + * My plugin permissions. + * + * @author mepeisen + */ + @Permissions("$MINIGAME:myplugin$.common") + public enum MyPermissions implements PermissionsInterface + { + + /** + * Some permission. + */ + @Permission + Something, + + } + +Your plugin provider now simply needs to return this class that minigames lib will do the rest. + + @Override + public Iterable<Class<? extends Enum<?>>> getPermissions() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(MyPermissions.class); + return result; + } + +Hint: The string "$MINIGAME:myplugin$.common" contains a variable substitution. Permissions in minigames lib +should always use this substitution because administrators can individually configure the path of minigame +permissions. + +The sub paths "core" is always preserved for minigames lib itself or for arenas configurations. It comes +from permission sets (explained later on). You should not use this path because on newer versions of the +minigames lib some configuration option may be added and you will get into trouble. + +## String substitution + +TODO + +## Permission name + +The permission name is built from @Permissions annotation and the enumeration name. +You can override the enumeration name by giving the @Permission annotation a value. + +After calculating the permission name the strings will be substituted. + +## Using the permission + +Using the permission is fairly simple: + + somePlayer.checkPermission(MyPermissions.Something) + +## Special permissions type: Permission sets + +The configuration sets are predefined configuration options used within typical minigames. + +TODO + diff --git a/APIv2/src/site/markdown/dev_minigame_pluginmain.md b/APIv2/src/site/markdown/dev_minigame_pluginmain.md new file mode 100644 index 00000000..621cf0aa --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_pluginmain.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Plugin Main + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_pluginyml.md b/APIv2/src/site/markdown/dev_minigame_pluginyml.md new file mode 100644 index 00000000..3f76420f --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_pluginyml.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## plugin.yml + +TODO diff --git a/APIv2/src/site/markdown/dev_setup_eclipse.md b/APIv2/src/site/markdown/dev_setup_eclipse.md new file mode 100644 index 00000000..b3337da3 --- /dev/null +++ b/APIv2/src/site/markdown/dev_setup_eclipse.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Eclipse setup + +TODO diff --git a/APIv2/src/site/markdown/dev_setup_maven.md b/APIv2/src/site/markdown/dev_setup_maven.md new file mode 100644 index 00000000..c4ff81f5 --- /dev/null +++ b/APIv2/src/site/markdown/dev_setup_maven.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Maven setup + +TODO diff --git a/APIv2/src/site/markdown/dev_setup_project.md b/APIv2/src/site/markdown/dev_setup_project.md new file mode 100644 index 00000000..d63b97a9 --- /dev/null +++ b/APIv2/src/site/markdown/dev_setup_project.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Project setup + +TODO diff --git a/APIv2/src/site/markdown/dev_theory_minigame.md b/APIv2/src/site/markdown/dev_theory_minigame.md index 8b25f999..1f68e5d9 100644 --- a/APIv2/src/site/markdown/dev_theory_minigame.md +++ b/APIv2/src/site/markdown/dev_theory_minigame.md @@ -20,7 +20,7 @@ A minigame has an unique name (='lms') to identify it internally in the minecraf com.github.mce.minigames.api.MglibInterface.register(PluginProviderInterface) -A plugin may create multiple minigames if it likes to. +A plugin must not create multiple minigames. Having a look at the PluginProviderInterface you will see that a minigame is made of several helpers. diff --git a/APIv2/src/site/markdown/development.md b/APIv2/src/site/markdown/development.md index 3aa08d6b..d7c837c2 100644 --- a/APIv2/src/site/markdown/development.md +++ b/APIv2/src/site/markdown/development.md @@ -7,3 +7,16 @@ * [About the match internals](dev_theory_match.html) * [The gaming rules](dev_theory_rules.html) TODO + +## Writing your first minigame + +* [Maven setup](dev_setup_maven.html) +* [Eclipse setup](dev_setup_eclipse.html) +* [Project setup](dev_setup_project.html) +* [plugin.yml](dev_minigame_pluginyml.html) +* [Plugin Main](dev_minigame_pluginmain.html) +* [Messages and localization](dev_minigame_messages.html) +* [Configuration options](dev_minigame_config.html) +* [Permissions](dev_minigame_permissions.html) + +TODO diff --git a/LIBv2/.externalToolBuilders/deploy-mglib2.launch b/LIBv2/.externalToolBuilders/deploy-mglib2.launch new file mode 100644 index 00000000..a1c5079c --- /dev/null +++ b/LIBv2/.externalToolBuilders/deploy-mglib2.launch @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType"> +<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/> +<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> +<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> +<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> +<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="MinigamesPlugin"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/MinigamesAPI/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/resources" type="2"/> </resources>}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/MinigamesPlugin/src/build/build.xml}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/> +<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/MinigamesPlugin/src/build}"/> +</launchConfiguration> diff --git a/LIBv2/.project b/LIBv2/.project index 6b780a32..78ea0cf3 100644 --- a/LIBv2/.project +++ b/LIBv2/.project @@ -15,6 +15,16 @@ <arguments> </arguments> </buildCommand> + <buildCommand> + <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> + <triggers>auto,full,incremental,</triggers> + <arguments> + <dictionary> + <key>LaunchConfigHandle</key> + <value><project>/.externalToolBuilders/deploy-mglib2.launch</value> + </dictionary> + </arguments> + </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> diff --git a/LIBv2/src/build/build.xml b/LIBv2/src/build/build.xml new file mode 100644 index 00000000..39b465aa --- /dev/null +++ b/LIBv2/src/build/build.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<project default="deploy.local" basedir="." name="Deploy jar file to local servers"> + + <property name="jar.file" value="../../target/MinigamesPlugin.jar"></property> + + <target name="calc.deploy"> + <condition property="minecraft.install" else="false"> + <isset property="minecraft.install.servers"/> + </condition> + </target> + + <target name="deploy.local" if="minecraft.install" depends="calc.deploy"> + <jar destfile="${jar.file}"> + <fileset dir="${basedir}/../../target/classes"></fileset> + <fileset dir="${basedir}/../../../APIv2/target/classes"></fileset> + </jar> + <ant antfile="${minecraft.install.servers}" inheritAll="true" /> + </target> + +</project> \ No newline at end of file diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java new file mode 100644 index 00000000..6cf42343 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java @@ -0,0 +1,130 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.impl.stubs.FalseStub; +import com.github.mce.minigames.impl.stubs.TrueStub; + +/** + * Implementation of command interface. + * + * @author mepeisen + */ +public class CommandImpl implements CommandInterface +{ + + /** + * the command sender. + */ + private final CommandSender sender; + + /** + * The main minigames plugin. + */ + private final MinigamesPlugin plugin; + + /** + * The original command. + */ + private final Command command; + + /** + * The original label. + */ + private final String label; + + /** + * The original command line arguments. + */ + private final String[] args; + + /** + * Constructor to create the command. + * + * @param sender + * the command sender. + * @param plugin + * The main minigames plugin. + * @param command + * the original command + * @param label + * the command label + * @param args + * the command arguments + */ + public CommandImpl(CommandSender sender, MinigamesPlugin plugin, Command command, String label, String[] args) + { + this.sender = sender; + this.plugin = plugin; + this.command = command; + this.label = label; + this.args = args; + } + + @Override + public CommandSender getSender() + { + return this.sender; + } + + @Override + public ArenaPlayerInterface getPlayer() + { + if (this.getSender() instanceof Player) + { + return this.plugin.getPlayer((Player) this.getSender()); + } + return null; + } + + @Override + public Command getCommand() + { + return this.command; + } + + @Override + public String getLabel() + { + return this.label; + } + + @Override + public String[] getArgs() + { + return this.args; + } + + @Override + public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 6bbeb07b..1df1e8f8 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -15,9 +15,19 @@ package com.github.mce.minigames.impl; +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.logging.Logger; -import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.Color; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; @@ -25,7 +35,30 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.config.ConfigurationBool; +import com.github.mce.minigames.api.config.ConfigurationBoolList; +import com.github.mce.minigames.api.config.ConfigurationByte; +import com.github.mce.minigames.api.config.ConfigurationByteList; +import com.github.mce.minigames.api.config.ConfigurationCharacter; +import com.github.mce.minigames.api.config.ConfigurationCharacterList; +import com.github.mce.minigames.api.config.ConfigurationColor; +import com.github.mce.minigames.api.config.ConfigurationDouble; +import com.github.mce.minigames.api.config.ConfigurationDoubleList; +import com.github.mce.minigames.api.config.ConfigurationFloat; +import com.github.mce.minigames.api.config.ConfigurationFloatList; +import com.github.mce.minigames.api.config.ConfigurationInt; +import com.github.mce.minigames.api.config.ConfigurationIntList; +import com.github.mce.minigames.api.config.ConfigurationLong; +import com.github.mce.minigames.api.config.ConfigurationLongList; +import com.github.mce.minigames.api.config.ConfigurationShort; +import com.github.mce.minigames.api.config.ConfigurationShortList; +import com.github.mce.minigames.api.config.ConfigurationString; +import com.github.mce.minigames.api.config.ConfigurationStringList; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.config.ConfigurationValues; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import com.github.mce.minigames.impl.msg.MessagesConfig; /** * The minigames plugin impl. @@ -34,37 +67,62 @@ */ class MinigamePluginImpl implements MinigamePluginInterface { - + + /** + * the messages configuration. + */ + private final MessagesConfig messages; + + /** + * The minigame name. + */ + private final String name; + + /** + * The declaring java plugin. + */ + private final JavaPlugin plugin; + + /** + * The configuration files. + */ + private final Map<String, FileConfiguration> configurations = new HashMap<>(); + + /** + * The default configurations. + */ + private Map<String, List<ConfigurationValueInterface>> defaultConfigs; + /** + * Constructor to create a minigame. + * * @param name + * internal name of the minigame. * @param provider + * the provider. */ public MinigamePluginImpl(String name, PluginProviderInterface provider) { - // TODO Auto-generated constructor stub + this.plugin = provider.getJavaPlugin(); + this.messages = new MessagesConfig(this.plugin); + this.name = name; } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getName() - */ + @Override public String getName() { - // TODO Auto-generated method stub - return null; + return this.name; } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getMessages() - */ + @Override public MessagesConfigInterface getMessages() { - // TODO Auto-generated method stub - return null; + return this.messages; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MinigamePluginInterface#init() */ @Override @@ -73,8 +131,10 @@ public void init() // TODO Auto-generated method stub } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MinigameInterface#getDeclaredTypes() */ @Override @@ -83,8 +143,10 @@ public Iterable<ArenaTypeInterface> getDeclaredTypes() // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MinigameInterface#getArenas() */ @Override @@ -93,8 +155,10 @@ public Iterable<ArenaInterface> getArenas() // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MinigameInterface#getArenas(java.lang.String) */ @Override @@ -103,8 +167,10 @@ public ArenaInterface getArenas(String name) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MinigamePluginInterface#createArenaType(com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) */ @Override @@ -113,25 +179,200 @@ public ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolea // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getLogger() - */ + @Override public Logger getLogger() { - // TODO Auto-generated method stub - return null; + return this.plugin.getLogger(); + } + + @Override + public FileConfiguration getConfig(String file) + { + if (file.contains("/") || file.contains("..") || file.contains(":") || file.contains("\\")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + { + throw new IllegalArgumentException("Invalid character in file name."); //$NON-NLS-1$ + } + if (file.equals("messages.yml")) //$NON-NLS-1$ + { + throw new IllegalArgumentException("Invalid file name."); //$NON-NLS-1$ + } + return this.configurations.computeIfAbsent(file, (f) -> { + FileConfiguration fileConfig = null; + final File fobj = new File(this.plugin.getDataFolder(), file); + if (file.equals("config.yml")) //$NON-NLS-1$ + { + fileConfig = this.plugin.getConfig(); + } + else + { + fileConfig = YamlConfiguration.loadConfiguration(fobj); + } + + final List<ConfigurationValueInterface> list = this.defaultConfigs.get(file); + if (list != null) + { + for (final ConfigurationValueInterface cfg : list) + { + try + { + final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); + final Field field = cfg.getClass().getDeclaredField(((Enum<?>)cfg).name()); + // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); + if (clazzDef == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + + if (field.getAnnotation(ConfigurationBool.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationBool.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationBoolList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationBoolList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationByte.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationByte.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationByteList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationByteList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationCharacter.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationCharacter.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationCharacterList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationCharacterList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationDouble.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationDouble.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationDoubleList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationDoubleList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationFloat.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationFloat.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationFloatList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationFloatList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationInt.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationInt.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationIntList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationIntList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationLong.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationLong.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationLongList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationLongList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationShort.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationShort.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationShortList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationShortList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationString.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationString.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationStringList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationStringList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationColor.class) != null) + { + fileConfig.addDefault(cfg.path(), Color.fromRGB((field.getAnnotation(ConfigurationColor.class).defaultRgb()))); + } + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + fileConfig.options().copyDefaults(true); + try + { + fileConfig.save(fobj); + } + catch (IOException e) + { + // TODO logging + e.printStackTrace(); + } + } + + return fileConfig; + }); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getConfig(java.lang.String) - */ @Override - public ConfigurationSection getConfig(String file) + public void saveConfig(String file) { - // TODO Auto-generated method stub - return null; + final File fobj = new File(this.plugin.getDataFolder(), file); + try + { + this.getConfig(file).save(fobj); + } + catch (IOException e) + { + // TODO logging + e.printStackTrace(); + } + } + + /** + * Initializes the messages with given localized messages. + * + * @param msgs + */ + void initMessage(List<LocalizedMessageInterface> msgs) + { + this.messages.initMessage(msgs); + } + + /** + * Initializes the configuration files. + * + * @param configs + */ + void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) + { + this.defaultConfigs = configs; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index 7b8fa759..5acc4c0a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -98,5 +98,15 @@ public ConfigurationSection getConfig(String file) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameInterface#saveConfig(java.lang.String) + */ + @Override + public void saveConfig(String file) + { + // TODO Auto-generated method stub + + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 121f4ff1..dae0c6ed 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -33,6 +33,7 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.LibState; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinecraftVersionsType; @@ -44,12 +45,16 @@ import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.config.CommonConfig; import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.config.ConfigurationValues; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.zones.ZoneInterface; +import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; @@ -63,13 +68,19 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface { /** the well known minigames. */ - private final Map<String, MinigamePluginImpl> minigames = new ConcurrentHashMap<>(); + private final Map<String, MinigamePluginImpl> minigames = new ConcurrentHashMap<>(); /** Current library state. */ - private LibState state = LibState.Initializing; + private LibState state = LibState.Initializing; /** known command handlers by name. */ - private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); + private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); + + /** messages to minigames. */ + private final Map<LocalizedMessageInterface, String> messagesToMinigame = new HashMap<>(); + + /** options to minigames. */ + private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); /** * Constructor to create the plugin. @@ -92,6 +103,7 @@ public Iterable<Class<? extends Enum<?>>> getMessageClasses() { final List<Class<? extends Enum<?>>> result = new ArrayList<>(); result.add(CommonErrors.class); + result.add(CommonMessages.class); return result; } @@ -100,29 +112,31 @@ public JavaPlugin getJavaPlugin() { return MinigamesPlugin.this; } - + @Override public Map<String, CommandHandlerInterface> getBukkitCommands() { final Map<String, CommandHandlerInterface> result = new HashMap<>(); result.put("start", new StartCommandHandler()); //$NON-NLS-1$ result.put("party", new PartyCommandHandler()); //$NON-NLS-1$ - // TODO + result.put("mg2", new Mg2CommandHandler()); //$NON-NLS-1$ return result; } - + @Override public Iterable<Class<? extends Enum<?>>> getPermissions() { - // TODO Auto-generated method stub - return null; + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(CommonPermissions.class); + return result; } - + @Override public Iterable<Class<? extends Enum<?>>> getConfigurations() { - // TODO Auto-generated method stub - return null; + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(CommonConfig.class); + return result; } }).init(); } @@ -136,7 +150,7 @@ public Iterable<Class<? extends Enum<?>>> getConfigurations() } } - // event handlers + // event handlersEventHandler @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) @@ -146,14 +160,14 @@ public boolean onCommand(CommandSender sender, Command command, String label, St { try { - final CommandInterface cmd = null; // TODO + final CommandInterface cmd = new CommandImpl(sender, this, command, label, args); handler.handle(cmd); } catch (MinigameException ex) { // TODO Logging final Locale locale = Locale.ENGLISH; // TODO - final boolean isAdmin = true; // TODO + final boolean isAdmin = sender.isOp(); final String msg = isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())); switch (ex.getCode().getSeverity()) { @@ -182,7 +196,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } return false; } - + @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { @@ -191,13 +205,13 @@ public List<String> onTabComplete(CommandSender sender, Command command, String } // api methods - + @Override public LibState getState() { return this.state; } - + @Override public MinecraftVersionsType getMinecraftVersion() { @@ -213,7 +227,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws synchronized (this.minigames) { - if (this.state != LibState.Initializing || this.state != LibState.Sleeping) + if (this.state != LibState.Initializing && this.state != LibState.Sleeping) { throw new MinigameException(CommonErrors.Cannot_Create_Game_Wrong_State, name, this.state.name()); } @@ -223,20 +237,75 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws } impl = new MinigamePluginImpl(name, provider); + + // register commands + final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); + if (mgCommands != null) + { + this.commands.putAll(mgCommands); + // TODO warn for conflicts. + } + + // register messages + final List<LocalizedMessageInterface> messages = new ArrayList<>(); + final Iterable<Class<? extends Enum<?>>> messageClasses = provider.getMessageClasses(); + if (messageClasses != null) + { + for (final Class<? extends Enum<?>> msgClazz : messageClasses) + { + for (final Enum<?> value : msgClazz.getEnumConstants()) + { + if (!(value instanceof LocalizedMessageInterface)) + { + // TODO log and warn + break; // TODO throw exception, invalid messages + } + final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; + this.messagesToMinigame.put(msg, name); + messages.add(msg); + } + } + } + impl.initMessage(messages); + + // register configurations + final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); + final Iterable<Class<? extends Enum<?>>> configClasses = provider.getConfigurations(); + if (configClasses != null) + { + for (final Class<? extends Enum<?>> cfgClazz : configClasses) + { + for (final Enum<?> value : cfgClazz.getEnumConstants()) + { + if (!(value instanceof ConfigurationValueInterface)) + { + // TODO log and warn + break; // TODO throw exception, invalid options + } + final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; + this.optionsToMinigame.put(cfg, name); + configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); + } + } + } + impl.initConfgurations(configs); + this.minigames.put(name, impl); } return impl; } - + @Override public MinigameInterface getMinigame(String minigame) { final MinigamePluginImpl impl = this.minigames.get(minigame); return impl == null ? null : new MinigameWrapper(impl); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#findZone(org.bukkit.Location) */ @Override @@ -245,8 +314,10 @@ public ZoneInterface findZone(Location location) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#findZones(org.bukkit.Location) */ @Override @@ -255,8 +326,10 @@ public Iterable<ZoneInterface> findZones(Location location) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getPlayer(org.bukkit.entity.Player) */ @Override @@ -265,8 +338,10 @@ public ArenaPlayerInterface getPlayer(Player player) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getPlayer(org.bukkit.OfflinePlayer) */ @Override @@ -275,8 +350,10 @@ public ArenaPlayerInterface getPlayer(OfflinePlayer player) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getPlayer(java.util.UUID) */ @Override @@ -285,8 +362,10 @@ public ArenaPlayerInterface getPlayer(UUID uuid) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getArenaTypes() */ @Override @@ -295,8 +374,10 @@ public Iterable<ArenaTypeInterface> getArenaTypes() // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getArenas() */ @Override @@ -305,8 +386,10 @@ public Iterable<ArenaInterface> getArenas() // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getArenas(com.github.mce.minigames.api.arena.ArenaTypeInterface) */ @Override @@ -315,18 +398,17 @@ public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromMsg(com.github.mce.minigames.api.locale.LocalizedMessageInterface) - */ + @Override public MinigameInterface getMinigameFromMsg(LocalizedMessageInterface item) { - // TODO Auto-generated method stub - return null; + final String name = this.messagesToMinigame.get(item); + return name == null ? null : this.minigames.get(name); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromPerm(com.github.mce.minigames.api.perms.PermissionsInterface) */ @Override @@ -335,8 +417,10 @@ public MinigameInterface getMinigameFromPerm(PermissionsInterface item) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromCfg(com.github.mce.minigames.api.config.ConfigurationValueInterface) */ @Override @@ -345,8 +429,10 @@ public MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getContext(java.lang.Class) */ @Override @@ -355,8 +441,10 @@ public <T> T getContext(Class<T> clazz) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#resolveContextVar(java.lang.String) */ @Override @@ -365,18 +453,22 @@ public String resolveContextVar(String src) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#debug() */ @Override public boolean debug() { // TODO Auto-generated method stub - return false; + return true; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getSigns() */ @Override @@ -385,8 +477,10 @@ public Iterable<SignInterface> getSigns() // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getSignForLocation(org.bukkit.Location) */ @Override @@ -395,8 +489,10 @@ public SignInterface getSignForLocation(Location l) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.arena.ArenaTypeInterface) */ @Override @@ -405,8 +501,10 @@ public Iterable<SignInterface> getSigns(ArenaTypeInterface type) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.arena.ArenaInterface) */ @Override @@ -415,8 +513,10 @@ public Iterable<SignInterface> getSigns(ArenaInterface arena) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.MinigameInterface) */ @Override @@ -426,6 +526,4 @@ public Iterable<SignInterface> getSigns(MinigameInterface minigame) return null; } - - } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java new file mode 100644 index 00000000..b6aee5a5 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -0,0 +1,64 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; +import static com.github.mce.minigames.api.player.ArenaPlayerInterface.hasPerm; +import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * A handler for the /start command. + * + * @author mepeisen + */ +public class Mg2CommandHandler implements CommandHandlerInterface +{ + + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO + // only in-game + command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); + + // check permission + final ArenaPlayerInterface player = command.getPlayer(); + player.when(hasPerm(CommonPermissions.start).negate()).thenThrow(CommonErrors.NoPermissionForStart); + + // only inside arena + player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); + + // check if the arena can be started directly + final ArenaInterface arena = player.getArena(); + arena.when(arena.canStart().negate()).thenThrow(CommonErrors.CannotStart); + + // start it, log and send success message + MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ + arena.start(); + player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java new file mode 100644 index 00000000..c5dd4205 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java @@ -0,0 +1,179 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.msg; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.Locale; +import java.util.logging.Level; + +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.locale.LocalizedMessage; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.LocalizedMessages; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; + +/** + * Implementation of messages configuration + * + * @author mepeisen + */ +public class MessagesConfig implements MessagesConfigInterface +{ + + // TODO check if there are messages that are not needed any more. + // TODO user defined messages for scripting, shops, classes etc. + + /** the file configuration. */ + private FileConfiguration config = null; + /** the yml file. */ + private File file = null; + /** the java plugin. */ + private JavaPlugin plugin = null; + + /** the defaults for this messages. */ + private List<LocalizedMessageInterface> defaults; + + /** + * Constructor to create the messages config. + * + * @param plugin + * java plugin + */ + public MessagesConfig(JavaPlugin plugin) + { + this.plugin = plugin; + } + + /** + * Initializes the messages with given localized messages. + * @param msgs + */ + public void initMessage(List<LocalizedMessageInterface> msgs) + { + this.defaults = msgs; + } + + @Override + public String getString(Locale locale, String path, String defaultValue) + { + final FileConfiguration config1 = this.getConfig(); + String result = config1.getString(path + ".user." + locale.toString()); //$NON-NLS-1$ + if (result == null) + { + final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ + if (defaultLocale != null) + { + result = config1.getString(path + ".user." + defaultLocale); //$NON-NLS-1$ + } + } + return result == null ? defaultValue : result; + } + + @Override + public String getAdminString(Locale locale, String path, String defaultValue) + { + final FileConfiguration config1 = this.getConfig(); + String result = config1.getString(path + ".admin." + locale.toString()); //$NON-NLS-1$ + if (result == null) + { + final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ + if (defaultLocale != null) + { + result = config1.getString(path + ".admin." + defaultLocale); //$NON-NLS-1$ + } + } + return result == null ? defaultValue : result; + } + + /** + * Returns the file configuration. + * + * @return file configuration. + */ + public FileConfiguration getConfig() + { + if (this.config == null) + { + this.reloadConfig(); + } + return this.config; + } + + /** + * Saves the configuration. + */ + public void saveConfig() + { + if (this.config == null || this.file == null) + { + return; + } + try + { + this.getConfig().save(this.file); + } + catch (final IOException ex) + { + this.plugin.getLogger().log(Level.WARNING, "Cannot save messages configuration", ex); //$NON-NLS-1$ + } + } + + /** + * Reloads the configuration file. + */ + public void reloadConfig() + { + if (this.file == null) + { + this.file = new File(this.plugin.getDataFolder(), "messages.yml"); //$NON-NLS-1$ + } + this.config = YamlConfiguration.loadConfiguration(this.file); + + // add the defaults. + for (final LocalizedMessageInterface msg : this.defaults) + { + try + { + final LocalizedMessages clazzDef = msg.getClass().getAnnotation(LocalizedMessages.class); + final LocalizedMessage valueDef = msg.getClass().getDeclaredField(((Enum<?>)msg).name()).getAnnotation(LocalizedMessage.class); + if (clazzDef == null || valueDef == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + final String path = clazzDef.value() + "." + ((Enum<?>)msg).name(); //$NON-NLS-1$ + this.config.addDefault(path + ".default_locale", clazzDef.defaultLocale()); //$NON-NLS-1$ + this.config.addDefault(path + ".user." + clazzDef.defaultLocale(), valueDef.defaultMessage()); //$NON-NLS-1$ + if (valueDef.defaultAdminMessage().length() > 0) + { + this.config.addDefault(path + ".admin." + clazzDef.defaultLocale(), valueDef.defaultAdminMessage()); //$NON-NLS-1$ + } + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + this.config.options().copyDefaults(true); + this.saveConfig(); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java new file mode 100644 index 00000000..6357627e --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java @@ -0,0 +1,101 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.stubs; + +import java.io.Serializable; + +import com.github.mce.minigames.api.MinigameErrorCode; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgConsumer; +import com.github.mce.minigames.api.util.function.MgFunction; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; + +/** + * Outgoing stub for false checks of minigames predicates. + * @author mepeisen + * @param <T> argument class + */ +public final class FalseStub<T> implements MgOutgoingStubbing<T> +{ + + /** + * stubbed element. + */ + private final T elm; + + /** + * Constructor to create the stub. + * @param elm stubbed element + */ + public FalseStub(T elm) + { + this.elm = elm; + } + + @Override + public MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException + { + consumer.accept(this.elm); + return this; + } + + @Override + public MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException + { + throw consumer.apply(this.elm); + } + + @Override + public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException + { + throw new MinigameException(code); + } + + @Override + public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException + { + throw new MinigameException(code, args2.apply(this.elm)); + } + + @Override + public MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException + { + // does nothing + return this; + } + + @Override + public MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException + { + // does nothing + return this; + } + + @Override + public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException + { + // does nothing + return this; + } + + @Override + public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException + { + // does nothing + return this; + } + +} \ No newline at end of file diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java new file mode 100644 index 00000000..4d8ed13e --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java @@ -0,0 +1,101 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.stubs; + +import java.io.Serializable; + +import com.github.mce.minigames.api.MinigameErrorCode; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgConsumer; +import com.github.mce.minigames.api.util.function.MgFunction; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; + +/** + * Outgoing stub for true checks of minigames predicates. + * @author mepeisen + * @param <T> argument class + */ +public final class TrueStub<T> implements MgOutgoingStubbing<T> +{ + + /** + * stubbed element. + */ + private final T elm; + + /** + * Constructor to create the stub. + * @param elm stubbed element. + */ + public TrueStub(T elm) + { + this.elm = elm; + } + + @Override + public MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException + { + consumer.accept(this.elm); + return this; + } + + @Override + public MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException + { + throw consumer.apply(this.elm); + } + + @Override + public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException + { + throw new MinigameException(code); + } + + @Override + public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException + { + throw new MinigameException(code, args2.apply(this.elm)); + } + + @Override + public MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException + { + // does nothing + return this; + } + + @Override + public MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException + { + // does nothing + return this; + } + + @Override + public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException + { + // does nothing + return this; + } + + @Override + public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException + { + // does nothing + return this; + } + +} \ No newline at end of file diff --git a/LIBv2/src/main/resources/plugin.yml b/LIBv2/src/main/resources/plugin.yml index 7548b472..babf64ee 100644 --- a/LIBv2/src/main/resources/plugin.yml +++ b/LIBv2/src/main/resources/plugin.yml @@ -1,17 +1,9 @@ -name: MinigamesLib2 -main: com.github.mce.minigames.impl.MinigamesPlugin -version: ${minigames.releaseversion}-${minigames.timestamp} -author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] -softdepend: [Vault] -commands: - mapi: - description: Main command - usage: /mapi [action] - aliases: [mgapi, mglib] - party: - description: Main Party command - usage: /party [action] - start: - description: Start shortcut - usage: /start [action] - aliases: [startmg, startminigame] +name: MinigamesLib2 +main: com.github.mce.minigames.impl.MinigamesPlugin +version: ${minigames.releaseversion}-${minigames.timestamp} +author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] +softdepend: [Vault] +commands: + mg2: + description: Main command for minigames lib version 2 + usage: /mg2 [action] diff --git a/changelog.md b/changelog.md index ed0a1902..44aea27a 100644 --- a/changelog.md +++ b/changelog.md @@ -26,7 +26,8 @@ ###### HorseRacingPlus -* Spawning horses inside HroseRacingPlus arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) +* Spawning horses inside HorseRacingPlus arena is allowed (https://github.com/MysticCity/MinigamesAPI/issues/79) +* Started migration to MinigamesLib (https://github.com/MysticCity/MinigamesAPI/issues/12) ###### MobEscape From 9da24f649c3d14426a76eb92368090c3a109c145 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 22 Aug 2016 09:24:28 +0200 Subject: [PATCH 099/266] v2 --- .../mce/minigames/api/CommonMessages.java | 8 ++ .../mce/minigames/api/MinigameInterface.java | 4 +- .../arena/ArenaTypeDeclarationInterface.java | 30 ++++++ ...a => AbstractCompositeCommandHandler.java} | 80 ++++++--------- .../minigames/api/cmd/CommandInterface.java | 9 ++ .../minigames/api/cmd/HelpCommandHandler.java | 98 +++++++++++++++++++ .../api/cmd/SubCommandHandlerInterface.java | 55 +++++++++++ .../mce/minigames/impl/CommandImpl.java | 9 ++ .../minigames/impl/MinigamePluginImpl.java | 32 ++++-- .../mce/minigames/impl/MinigameWrapper.java | 4 +- .../impl/arena/ArenaTypeDeclarationImpl.java | 65 ++++++++++++ .../minigames/impl/cmd/Mg2CommandHandler.java | 48 +++------ .../impl/cmd/PartyAcceptCommandHandler.java | 35 ++++++- .../impl/cmd/PartyCommandHandler.java | 38 ++++++- .../impl/cmd/PartyDisbandCommandHandler.java | 35 ++++++- .../impl/cmd/PartyInviteCommandHandler.java | 35 ++++++- .../impl/cmd/PartyKickCommandHandler.java | 35 ++++++- .../impl/cmd/PartyLeaveCommandHandler.java | 35 ++++++- .../impl/cmd/PartyListCommandHandler.java | 35 ++++++- .../impl/cmd/StartCommandHandler.java | 35 ++++++- 20 files changed, 612 insertions(+), 113 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java rename APIv2/src/main/java/com/github/mce/minigames/api/cmd/{AbstractSubCommandHandler.java => AbstractCompositeCommandHandler.java} (56%) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index b70c861c..1449c345 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -42,4 +42,12 @@ public enum CommonMessages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "Arena %0$s was started by player: %1$s.", severity = MessageSeverityType.Success) ArenaStartedByCommand, + /** + * Mg2 command usage. + * + * <p>No arguments.</p> + */ + @LocalizedMessage(defaultMessage = "&7Type &9/mg2 help &7for detailed help", severity = MessageSeverityType.Success) + Mg2CommandUsage, + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 83493498..24c0b5c6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -20,7 +20,7 @@ import org.bukkit.configuration.ConfigurationSection; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; /** @@ -54,7 +54,7 @@ public interface MinigameInterface * * @return arena types. */ - Iterable<ArenaTypeInterface> getDeclaredTypes(); + Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); /** * Returns all declared arenas within this minigame. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java new file mode 100644 index 00000000..18a10b66 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java @@ -0,0 +1,30 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * Interface for arena type declarations. + * + * @author mepeisen + */ +public interface ArenaTypeDeclarationInterface +{ + + ArenaTypeInterface getType(); + + boolean isDefault(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java similarity index 56% rename from APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java rename to APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index 223584c3..9742de1f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractSubCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -17,30 +17,25 @@ import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; -import java.util.HashMap; import java.util.Map; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; +import java.util.TreeMap; import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; /** * A handler for enabling sub commands. * * @author mepeisen */ -public abstract class AbstractSubCommandHandler implements CommandHandlerInterface +public abstract class AbstractCompositeCommandHandler implements CommandHandlerInterface { /** - * the configured sub commands. + * the configured sub commands (ordered). */ - protected Map<String, CommandHandlerInterface> subCommands = new HashMap<>(); + protected Map<String, SubCommandHandlerInterface> subCommands = new TreeMap<>(); /** * pre parse the command. @@ -70,7 +65,7 @@ public void handle(CommandInterface command) throws MinigameException // check for sub command if (command.getArgs().length == 0) { - sendUsage(command.getPlayer()); + sendUsage(command, command.getPlayer()); return; } @@ -78,58 +73,39 @@ public void handle(CommandInterface command) throws MinigameException final CommandHandlerInterface handler = this.subCommands.get(name); if (handler == null) { - sendUsage(command.getPlayer()); + sendUsage(command, command.getPlayer()); return; } - handler.handle(new CommandInterface() { - - @Override - public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - @Override - public CommandSender getSender() - { - return command.getSender(); - } - - @Override - public ArenaPlayerInterface getPlayer() - { - return command.getPlayer(); - } - - @Override - public String getLabel() - { - return command.getLabel(); - } - - @Override - public Command getCommand() - { - return command.getCommand(); - } - - @Override - public String[] getArgs() - { - // TODO Auto-generated method stub - return null; - } - }); + handler.handle(command.consumeArgs(1)); + } + + /** + * Injects a new sub command. + * + * @param name sub command name + * @param handler handler + * @return {@code true} if the sub command was added, {@code false} if it already exists. + */ + public boolean injectSubCommand(String name, SubCommandHandlerInterface handler) + { + if (this.subCommands.containsKey(name.toLowerCase())) + { + // TODO logging + return false; + } + this.subCommands.put(name.toLowerCase(), handler); + return true; } /** * Sends usage information. * + * @param command + * the command to be used. * @param player * the player to send the usage strings to */ - protected abstract void sendUsage(ArenaPlayerInterface player); + protected abstract void sendUsage(CommandInterface command, ArenaPlayerInterface player); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java index 58298eeb..3115b107 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java @@ -67,6 +67,15 @@ public interface CommandInterface */ String[] getArgs(); + /** + * Returns a new command interface consuming given amount of arguments. + * + * @param count + * number of arguments to consume + * @return new command interface containing remaining arguments. + */ + CommandInterface consumeArgs(int count); + /** * Checks this command for given criteria and invokes either then or else statements. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java new file mode 100644 index 00000000..c9731215 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -0,0 +1,98 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.cmd; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Prints help based on single sub command handlers. + * + * @author mepeisen + * + */ +public class HelpCommandHandler implements SubCommandHandlerInterface +{ + + /** + * Constructor. + * + * @param command + * the underlying command for the help. + */ + public HelpCommandHandler(SubCommandHandlerInterface command) + { + // TODO Auto-generated constructor stub + } + + /** + * Constructor. + * + * @param command + * the underlying command for the help. + */ + public HelpCommandHandler(AbstractCompositeCommandHandler command) + { + // TODO Auto-generated constructor stub + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java new file mode 100644 index 00000000..0f354c99 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.cmd; + +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Extends the command handler interface to be placed as a sub command in {@link AbstractCompositeCommandHandler} + * + * @author mepeisen + */ +public interface SubCommandHandlerInterface extends CommandHandlerInterface +{ + + /** + * Returns a short description line. + * + * @param command + * the command to be used. + * @return short description line for command help. + */ + LocalizedMessageInterface getShortDescription(CommandInterface command); + + /** + * Returns a usage information. + * + * @param command + * the command to be used. + * @return short usage information for command help. + */ + LocalizedMessageInterface getUsage(CommandInterface command); + + /** + * Returns a long description. + * + * @param command + * the command to be used. + * @return long description line for command details. + */ + LocalizedMessageInterface[] getDescription(CommandInterface command); + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java index 6cf42343..2c533636 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl; +import java.util.Arrays; + import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -110,6 +112,13 @@ public String getLabel() { return this.label; } + + @Override + public CommandInterface consumeArgs(int count) + { + final String[] args2 = Arrays.copyOfRange(this.args, count, this.args.length); + return new CommandImpl(this.sender, this.plugin, this.command, this.label, args2); + } @Override public String[] getArgs() diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 1df1e8f8..be05a3a8 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -34,6 +34,7 @@ import com.github.mce.minigames.api.PluginProviderInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.config.ConfigurationBool; import com.github.mce.minigames.api.config.ConfigurationBoolList; @@ -71,27 +72,42 @@ class MinigamePluginImpl implements MinigamePluginInterface /** * the messages configuration. */ - private final MessagesConfig messages; + private final MessagesConfig messages; /** * The minigame name. */ - private final String name; + private final String name; /** * The declaring java plugin. */ - private final JavaPlugin plugin; + private final JavaPlugin plugin; /** * The configuration files. */ - private final Map<String, FileConfiguration> configurations = new HashMap<>(); + private final Map<String, FileConfiguration> configurations = new HashMap<>(); /** * The default configurations. */ - private Map<String, List<ConfigurationValueInterface>> defaultConfigs; + private Map<String, List<ConfigurationValueInterface>> defaultConfigs; + + /** + * the known arena types of this minigame. + */ + private final Map<ArenaTypeInterface, ArenaTypeDeclarationInterface> arenaTypes = new HashMap<>(); + + /** + * the known arena types of this minigame. + */ + private final Map<String, ArenaTypeInterface> arenaTypesByName = new HashMap<>(); + + /** + * the default arena type to use. + */ + private ArenaTypeDeclarationInterface defaultType; /** * Constructor to create a minigame. @@ -138,7 +154,7 @@ public void init() * @see com.github.mce.minigames.api.MinigameInterface#getDeclaredTypes() */ @Override - public Iterable<ArenaTypeInterface> getDeclaredTypes() + public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() { // TODO Auto-generated method stub return null; @@ -217,7 +233,7 @@ public FileConfiguration getConfig(String file) try { final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); - final Field field = cfg.getClass().getDeclaredField(((Enum<?>)cfg).name()); + final Field field = cfg.getClass().getDeclaredField(((Enum<?>) cfg).name()); // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); if (clazzDef == null) { @@ -339,7 +355,7 @@ public FileConfiguration getConfig(String file) return fileConfig; }); } - + @Override public void saveConfig(String file) { diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index 5acc4c0a..91d6856d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; /** @@ -59,7 +59,7 @@ public MessagesConfigInterface getMessages() } @Override - public Iterable<ArenaTypeInterface> getDeclaredTypes() + public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java new file mode 100644 index 00000000..6bb0f600 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java @@ -0,0 +1,65 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.arena; + +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; + +/** + * Internal representation of an arena type. + * + * @author mepeisen + */ +public class ArenaTypeDeclarationImpl implements ArenaTypeDeclarationInterface +{ + + /** + * Underlying arena type (enum) + */ + private ArenaTypeInterface enumType; + + /** + * {@code true} for default arena type. + */ + private boolean isDefault; + + /** + * Constructor to create arena type. + * + * @param enumType + * Underlying arena type (enum) + * @param isDefault + * {@code true} for default arena type. + */ + public ArenaTypeDeclarationImpl(ArenaTypeInterface enumType, boolean isDefault) + { + this.enumType = enumType; + this.isDefault = isDefault; + } + + @Override + public ArenaTypeInterface getType() + { + return this.enumType; + } + + @Override + public boolean isDefault() + { + return this.isDefault; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index b6aee5a5..2066a2f3 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -15,50 +15,34 @@ package com.github.mce.minigames.impl.cmd; -import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; -import static com.github.mce.minigames.api.player.ArenaPlayerInterface.hasPerm; -import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; - -import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.cmd.HelpCommandHandler; import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** - * A handler for the /start command. + * A handler for the /mg2 command. * * @author mepeisen */ -public class Mg2CommandHandler implements CommandHandlerInterface +public class Mg2CommandHandler extends AbstractCompositeCommandHandler { + /** + * Constructor to create the mg2 command handler. + */ + public Mg2CommandHandler() + { + this.injectSubCommand("party", new PartyCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("help", new HelpCommandHandler(this)); //$NON-NLS-1$ + // TODO additional commands + } + @Override - public void handle(CommandInterface command) throws MinigameException + protected void sendUsage(CommandInterface command, ArenaPlayerInterface player) { - // TODO - // only in-game - command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); - - // check permission - final ArenaPlayerInterface player = command.getPlayer(); - player.when(hasPerm(CommonPermissions.start).negate()).thenThrow(CommonErrors.NoPermissionForStart); - - // only inside arena - player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); - - // check if the arena can be started directly - final ArenaInterface arena = player.getArena(); - arena.when(arena.canStart().negate()).thenThrow(CommonErrors.CannotStart); - - // start it, log and send success message - MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ - arena.start(); - player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); + player.sendMessage(CommonMessages.Mg2CommandUsage); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java index b1f6202a..ec857a8b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java @@ -16,14 +16,15 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * @author mepeisen * */ -public class PartyAcceptCommandHandler implements CommandHandlerInterface +public class PartyAcceptCommandHandler implements SubCommandHandlerInterface { /* (non-Javadoc) @@ -35,5 +36,35 @@ public void handle(CommandInterface command) throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java index dd1bac92..5bc33073 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java @@ -17,9 +17,11 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.AbstractSubCommandHandler; +import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** @@ -27,7 +29,7 @@ * * @author mepeisen */ -public class PartyCommandHandler extends AbstractSubCommandHandler +public class PartyCommandHandler extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface { /** @@ -55,10 +57,40 @@ protected boolean pre(CommandInterface command) throws MinigameException } @Override - protected void sendUsage(ArenaPlayerInterface player) + protected void sendUsage(CommandInterface command, ArenaPlayerInterface player) { // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java index 3b82503b..d74ded9a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java @@ -16,14 +16,15 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * @author mepeisen * */ -public class PartyDisbandCommandHandler implements CommandHandlerInterface +public class PartyDisbandCommandHandler implements SubCommandHandlerInterface { /* (non-Javadoc) @@ -35,5 +36,35 @@ public void handle(CommandInterface command) throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java index 15bd8492..83e8375f 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java @@ -16,14 +16,15 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * @author mepeisen * */ -public class PartyInviteCommandHandler implements CommandHandlerInterface +public class PartyInviteCommandHandler implements SubCommandHandlerInterface { /* (non-Javadoc) @@ -35,5 +36,35 @@ public void handle(CommandInterface command) throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java index e0cc0847..84bc54b8 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java @@ -16,14 +16,15 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * @author mepeisen * */ -public class PartyKickCommandHandler implements CommandHandlerInterface +public class PartyKickCommandHandler implements SubCommandHandlerInterface { /* (non-Javadoc) @@ -35,5 +36,35 @@ public void handle(CommandInterface command) throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java index c98edfd7..b6aaef91 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java @@ -16,14 +16,15 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * @author mepeisen * */ -public class PartyLeaveCommandHandler implements CommandHandlerInterface +public class PartyLeaveCommandHandler implements SubCommandHandlerInterface { /* (non-Javadoc) @@ -35,5 +36,35 @@ public void handle(CommandInterface command) throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java index 71a3cc89..f8a852cc 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java @@ -16,14 +16,15 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * @author mepeisen * */ -public class PartyListCommandHandler implements CommandHandlerInterface +public class PartyListCommandHandler implements SubCommandHandlerInterface { /* (non-Javadoc) @@ -35,5 +36,35 @@ public void handle(CommandInterface command) throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index 573937ad..6a17528c 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -24,8 +24,9 @@ import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.CommonPermissions; import com.github.mce.minigames.api.player.ArenaPlayerInterface; @@ -34,7 +35,7 @@ * * @author mepeisen */ -public class StartCommandHandler implements CommandHandlerInterface +public class StartCommandHandler implements SubCommandHandlerInterface { @Override @@ -59,5 +60,35 @@ public void handle(CommandInterface command) throws MinigameException arena.start(); player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() + */ + @Override + public LocalizedMessageInterface[] getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() + */ + @Override + public LocalizedMessageInterface getUsage(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } } From 1cdbbe737b677beec99b3895ba0678e9401e3e8a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 22 Aug 2016 21:22:00 +0200 Subject: [PATCH 100/266] v2 --- API/.project | 10 +- .../mce/minigames/api/CommonMessages.java | 63 ++++++++ .../cmd/AbstractCompositeCommandHandler.java | 15 +- .../cmd/AbstractPagableCommandHandler.java | 152 ++++++++++++++++++ .../minigames/api/cmd/CommandInterface.java | 53 ++++++ .../mce/minigames/impl/CommandImpl.java | 26 ++- .../mce/minigames/impl/MinigamesPlugin.java | 2 +- .../minigames/impl/cmd/Mg2CommandHandler.java | 5 +- .../impl/cmd/PartyCommandHandler.java | 3 +- Spigot-Test/.classpath | 2 +- 10 files changed, 308 insertions(+), 23 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java diff --git a/API/.project b/API/.project index b6e7de7d..2e4ccd8f 100644 --- a/API/.project +++ b/API/.project @@ -10,11 +10,6 @@ <arguments> </arguments> </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> <buildCommand> <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> <triggers>auto,full,incremental,</triggers> @@ -25,6 +20,11 @@ </dictionary> </arguments> </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index 1449c345..b4c92b4e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -42,6 +42,8 @@ public enum CommonMessages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "Arena %0$s was started by player: %1$s.", severity = MessageSeverityType.Success) ArenaStartedByCommand, + // ***** commands, usages etc. + /** * Mg2 command usage. * @@ -50,4 +52,65 @@ public enum CommonMessages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "&7Type &9/mg2 help &7for detailed help", severity = MessageSeverityType.Success) Mg2CommandUsage, + /** + * Paged output; header. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: info text</li> + * <li>Integer: current page</li> + * <li>Integer: total pages</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "&7=====&9%0$s&7====&9Page &1%1$d &9 from &1%2$d&7=====") + PagedHeader, + + /** + * Paged output; line. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: line text</li> + * <li>Integer: line number</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = " &7") + PagedLine, + + /** + * Paged output; wrong page number. + * + * <p>Arguments:</p> + * + * <ol> + * <li>Integer: Page number that was entered by user</li> + * <li>Integer: Total page count being available</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Page %0$d out of range. Only values from 1 to %1$d allowed.", severity = MessageSeverityType.Error) + PagedWrongPageNum, + + + /** + * Paged output; invalid page number (not numeric). + * + * <p>No arguments.</p> + */ + @LocalizedMessage(defaultMessage = "Invalid page number/ number format error.", severity = MessageSeverityType.Error) + PagedInvalidNumber, + + /** + * Paged output; usage information + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "&7Usage: &9%0$s [page] &7Display the given page.") + PageUsage, + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index 9742de1f..b99d69d8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -22,7 +22,6 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** * A handler for enabling sub commands. @@ -65,7 +64,7 @@ public void handle(CommandInterface command) throws MinigameException // check for sub command if (command.getArgs().length == 0) { - sendUsage(command, command.getPlayer()); + sendUsage(command); return; } @@ -73,7 +72,7 @@ public void handle(CommandInterface command) throws MinigameException final CommandHandlerInterface handler = this.subCommands.get(name); if (handler == null) { - sendUsage(command, command.getPlayer()); + sendUsage(command); return; } @@ -83,8 +82,10 @@ public void handle(CommandInterface command) throws MinigameException /** * Injects a new sub command. * - * @param name sub command name - * @param handler handler + * @param name + * sub command name + * @param handler + * handler * @return {@code true} if the sub command was added, {@code false} if it already exists. */ public boolean injectSubCommand(String name, SubCommandHandlerInterface handler) @@ -103,9 +104,7 @@ public boolean injectSubCommand(String name, SubCommandHandlerInterface handler) * * @param command * the command to be used. - * @param player - * the player to send the usage strings to */ - protected abstract void sendUsage(CommandInterface command, ArenaPlayerInterface player); + protected abstract void sendUsage(CommandInterface command); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java new file mode 100644 index 00000000..bc2e18af --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java @@ -0,0 +1,152 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.cmd; + +import java.io.Serializable; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MinigameException; + +/** + * A handler for pageable command output. + * + * @author mepeisen + */ +public abstract class AbstractPagableCommandHandler implements CommandHandlerInterface +{ + + /** + * Counts the lines this command will return. + * + * @param command + * command to proceed + * @return number of returned lines. + */ + protected abstract int getLineCount(CommandInterface command); + + /** + * Returns the localized header line + * + * @param command + * command to proceed + * @return A header line, for example "help for command /mg2"; use the toArgs method of the localizedMessage. + */ + protected abstract Serializable getHeader(CommandInterface command); + + /** + * Returns the lines + * + * @param command + * command to proceed + * @param start + * starting index (first line starts with 0) + * @param count + * number of lines to be returned. + * @return lines + */ + protected abstract Serializable[] getLines(CommandInterface command, int start, int count); + + @Override + public void handle(CommandInterface command) throws MinigameException + { + int start = 0; + int page = 1; + int pageLimit = 10; + int lineCount = this.getLineCount(command); + int pageCount = (int) Math.ceil(lineCount / pageLimit); + if (pageCount == 0) + { + pageCount++; + } + + if (command.getArgs().length > 1) + { + sendUsage(command); + return; + } + + if (command.getArgs().length == 1) + { + try + { + page = Integer.parseInt(command.getArgs()[0]); + if (page < 1) + { + sendWrongPage(command, page, pageCount); + return; + } + if (page > pageCount && page != 1) + { + sendWrongPage(command, page, pageCount); + return; + } + start = (page - 1) * pageCount; + } + catch (@SuppressWarnings("unused") NumberFormatException ex) + { + sendNFE(command); + sendUsage(command); + return; + } + } + + command.send(CommonMessages.PagedHeader, page, pageCount); + int i = 1; + for (Serializable line : this.getLines(command, start, lineCount)) + { + command.send(CommonMessages.PagedLine, line, i); + i++; + } + } + + /** + * Sends a wrong page number error. + * + * @param command + * the command + * @param page + * the page number that was given by arguments + * @param pageCount + * the total page count. + */ + private void sendWrongPage(CommandInterface command, int page, int pageCount) + { + command.send(CommonMessages.PagedWrongPageNum, page, pageCount); + } + + /** + * Sends a number format error. + * + * @param command + * the command + */ + private void sendNFE(CommandInterface command) + { + command.send(CommonMessages.PagedInvalidNumber); + } + + /** + * sends a usage info. + * + * @param command + * the command. + */ + private void sendUsage(CommandInterface command) + { + command.send(CommonMessages.PageUsage, command.getCommandPath()); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java index 3115b107..af811dd9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java @@ -15,11 +15,16 @@ package com.github.mce.minigames.api.cmd; +import java.io.Serializable; +import java.util.Locale; + +import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; @@ -75,6 +80,54 @@ public interface CommandInterface * @return new command interface containing remaining arguments. */ CommandInterface consumeArgs(int count); + + /** + * Returns the command path being used before the arguments. + * @return current command path. + */ + String getCommandPath(); + + /** + * Sends a message to command sender + * @param msg message to send + * @param args message arguments + */ + default void send(LocalizedMessageInterface msg, Serializable... args) + { + if (this.getPlayer() != null) + { + this.getPlayer().sendMessage(msg, args); + } + else + { + final Locale locale = Locale.ENGLISH; + final boolean isAdmin = this.getSender().isOp(); + final String msg2 = msg.toArg(args).apply(locale, isAdmin); + switch (msg.getSeverity()) + { + default: + case Error: + this.getSender().sendMessage(ChatColor.DARK_RED + msg2); + break; + case Information: + this.getSender().sendMessage(ChatColor.WHITE + msg2); + break; + case Loser: + this.getSender().sendMessage(ChatColor.RED + msg2); + break; + case Success: + this.getSender().sendMessage(ChatColor.GREEN + msg2); + break; + case Warning: + this.getSender().sendMessage(ChatColor.YELLOW + msg2); + break; + case Winner: + this.getSender().sendMessage(ChatColor.GOLD + msg2); + break; + } + + } + } /** * Checks this command for given criteria and invokes either then or else statements. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java index 2c533636..297693bf 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java @@ -62,6 +62,11 @@ public class CommandImpl implements CommandInterface */ private final String[] args; + /** + * current command path. + */ + private final String commandPath; + /** * Constructor to create the command. * @@ -75,14 +80,17 @@ public class CommandImpl implements CommandInterface * the command label * @param args * the command arguments + * @param commandPath + * the current command path */ - public CommandImpl(CommandSender sender, MinigamesPlugin plugin, Command command, String label, String[] args) + public CommandImpl(CommandSender sender, MinigamesPlugin plugin, Command command, String label, String[] args, String commandPath) { this.sender = sender; this.plugin = plugin; this.command = command; this.label = label; this.args = args; + this.commandPath = commandPath; } @Override @@ -112,12 +120,18 @@ public String getLabel() { return this.label; } - + @Override public CommandInterface consumeArgs(int count) { final String[] args2 = Arrays.copyOfRange(this.args, count, this.args.length); - return new CommandImpl(this.sender, this.plugin, this.command, this.label, args2); + StringBuilder newPath = new StringBuilder(this.commandPath); + for (int i = 0; i < count; i++) + { + newPath.append(' '); + newPath.append(this.args[i]); + } + return new CommandImpl(this.sender, this.plugin, this.command, this.label, args2, newPath.toString()); } @Override @@ -136,4 +150,10 @@ public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> t return new FalseStub<>(this); } + @Override + public String getCommandPath() + { + return this.commandPath; + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index dae0c6ed..72038895 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -160,7 +160,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St { try { - final CommandInterface cmd = new CommandImpl(sender, this, command, label, args); + final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); handler.handle(cmd); } catch (MinigameException ex) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index 2066a2f3..9b54d8a3 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -19,7 +19,6 @@ import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.HelpCommandHandler; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** * A handler for the /mg2 command. @@ -40,9 +39,9 @@ public Mg2CommandHandler() } @Override - protected void sendUsage(CommandInterface command, ArenaPlayerInterface player) + protected void sendUsage(CommandInterface command) { - player.sendMessage(CommonMessages.Mg2CommandUsage); + command.send(CommonMessages.Mg2CommandUsage); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java index 5bc33073..8b14065b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java @@ -22,7 +22,6 @@ import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** * A handler for the /party command. @@ -57,7 +56,7 @@ protected boolean pre(CommandInterface command) throws MinigameException } @Override - protected void sendUsage(CommandInterface command, ArenaPlayerInterface player) + protected void sendUsage(CommandInterface command) { // TODO Auto-generated method stub diff --git a/Spigot-Test/.classpath b/Spigot-Test/.classpath index af1430be..1945bc02 100644 --- a/Spigot-Test/.classpath +++ b/Spigot-Test/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> From 4a990d2f682642339bac6e38ee19d24581a0ac8c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 23 Aug 2016 07:35:22 +0200 Subject: [PATCH 101/266] v2 --- .../mce/minigames/api/CommonErrors.java | 4 +- .../mce/minigames/api/CommonMessages.java | 25 +++++++-- .../cmd/AbstractCompositeCommandHandler.java | 2 + .../minigames/api/cmd/HelpCommandHandler.java | 56 ++++++++++++++----- .../api/cmd/SubCommandHandlerInterface.java | 11 ++-- 5 files changed, 71 insertions(+), 27 deletions(-) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java index 986ef264..9bf98ec9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -38,7 +38,7 @@ public enum CommonErrors implements MinigameErrorCode * <li>String: current plugin lib state</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Unable to create minigame %0$s because of wrong MinigamesLib plugin state: %1$s.", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because of wrong MinigamesLib plugin state: %2$s.", severity = MessageSeverityType.Error) Cannot_Create_Game_Wrong_State, /** @@ -50,7 +50,7 @@ public enum CommonErrors implements MinigameErrorCode * <li>String: minigame name</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Unable to create minigame %0$s because it already exists.", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because it already exists.", severity = MessageSeverityType.Error) DuplicateMinigame, /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index b4c92b4e..a693f100 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -39,7 +39,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: player name</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Arena %0$s was started by player: %1$s.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena %1$s was started by player: %2$s.", severity = MessageSeverityType.Success) ArenaStartedByCommand, // ***** commands, usages etc. @@ -49,9 +49,22 @@ public enum CommonMessages implements LocalizedMessageInterface * * <p>No arguments.</p> */ - @LocalizedMessage(defaultMessage = "&7Type &9/mg2 help &7for detailed help", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "§7Type §9/mg2 help §7for detailed help", severity = MessageSeverityType.Success) Mg2CommandUsage, + /** + * Invalid sub command in composite command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * <li>String: current sub command</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unknown command §9%1$s %2$s", severity = MessageSeverityType.Error) + CompositeUnknownSubCommand, + /** * Paged output; header. * @@ -63,7 +76,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: total pages</li> * </ol> */ - @LocalizedMessage(defaultMessage = "&7=====&9%0$s&7====&9Page &1%1$d &9 from &1%2$d&7=====") + @LocalizedMessage(defaultMessage = "§7=====§9%1$s§7====§9Page §1%2$d §9 from §1%2$d§7=====") PagedHeader, /** @@ -76,7 +89,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: line number</li> * </ol> */ - @LocalizedMessage(defaultMessage = " &7") + @LocalizedMessage(defaultMessage = " §7") PagedLine, /** @@ -89,7 +102,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: Total page count being available</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Page %0$d out of range. Only values from 1 to %1$d allowed.", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Page %1$d out of range. Only values from 1 to %2$d allowed.", severity = MessageSeverityType.Error) PagedWrongPageNum, @@ -110,7 +123,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: The command that was entered</li> * </ol> */ - @LocalizedMessage(defaultMessage = "&7Usage: &9%0$s [page] &7Display the given page.") + @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [page] §7Display the given page.") PageUsage, } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index b99d69d8..e92d1cd5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -21,6 +21,7 @@ import java.util.TreeMap; import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MinigameException; /** @@ -72,6 +73,7 @@ public void handle(CommandInterface command) throws MinigameException final CommandHandlerInterface handler = this.subCommands.get(name); if (handler == null) { + command.send(CommonMessages.CompositeUnknownSubCommand, command.getCommandPath(), command.getArgs()[0]); sendUsage(command); return; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java index c9731215..82862c80 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.cmd; +import java.io.Serializable; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; @@ -24,9 +26,14 @@ * @author mepeisen * */ -public class HelpCommandHandler implements SubCommandHandlerInterface +public class HelpCommandHandler extends AbstractPagableCommandHandler implements SubCommandHandlerInterface { + /** help on sub command. */ + private SubCommandHandlerInterface subCommand; + /** help on composite command. */ + private AbstractCompositeCommandHandler compositeCommand; + /** * Constructor. * @@ -35,7 +42,7 @@ public class HelpCommandHandler implements SubCommandHandlerInterface */ public HelpCommandHandler(SubCommandHandlerInterface command) { - // TODO Auto-generated constructor stub + this.subCommand = command; } /** @@ -46,19 +53,7 @@ public HelpCommandHandler(SubCommandHandlerInterface command) */ public HelpCommandHandler(AbstractCompositeCommandHandler command) { - // TODO Auto-generated constructor stub - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws MinigameException - { - // TODO Auto-generated method stub - + this.compositeCommand = command; } /* @@ -94,5 +89,36 @@ public LocalizedMessageInterface getUsage(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc)+, + * 3 + * @see com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler#getLineCount(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + protected int getLineCount(CommandInterface command) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler#getHeader(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + protected Serializable getHeader(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler#getLines(com.github.mce.minigames.api.cmd.CommandInterface, int, int) + */ + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java index 0f354c99..5d12a612 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java @@ -15,7 +15,8 @@ package com.github.mce.minigames.api.cmd; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import java.io.Serializable; + /** * Extends the command handler interface to be placed as a sub command in {@link AbstractCompositeCommandHandler} @@ -32,7 +33,7 @@ public interface SubCommandHandlerInterface extends CommandHandlerInterface * the command to be used. * @return short description line for command help. */ - LocalizedMessageInterface getShortDescription(CommandInterface command); + Serializable getShortDescription(CommandInterface command); /** * Returns a usage information. @@ -41,7 +42,7 @@ public interface SubCommandHandlerInterface extends CommandHandlerInterface * the command to be used. * @return short usage information for command help. */ - LocalizedMessageInterface getUsage(CommandInterface command); + Serializable getUsage(CommandInterface command); /** * Returns a long description. @@ -50,6 +51,8 @@ public interface SubCommandHandlerInterface extends CommandHandlerInterface * the command to be used. * @return long description line for command details. */ - LocalizedMessageInterface[] getDescription(CommandInterface command); + Serializable + + [] getDescription(CommandInterface command); } From 9590e4e8ea4593086acba312eebee288404961f8 Mon Sep 17 00:00:00 2001 From: Mystic-City <mastertp@gmx.de> Date: Tue, 23 Aug 2016 17:20:50 +0200 Subject: [PATCH 102/266] Update planned.md --- planned.md | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/planned.md b/planned.md index 905e3ec3..32aecc51 100644 --- a/planned.md +++ b/planned.md @@ -18,21 +18,6 @@ * #### Game Requests -* Tetris -* 4 Gewinnt -* Schiffe versenken -* Master Builder -* Jump Down -* Hunger Games -* Cake Klicker -* Minesweeper -* Hide & Seek -* Lucky Blocks -* Capture The Flag -* Paintball -* Mariokart -* Death Cube -* TicTacToe -* Mobarena * Undersea battle (Uboot-Kampf) +* From 1c4affbc0032b02f7c12ba7fe80802748438b722 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 23 Aug 2016 20:10:46 +0200 Subject: [PATCH 103/266] v2 --- .../mce/minigames/api/CommonMessages.java | 51 +++++++ .../minigames/api/cmd/HelpCommandHandler.java | 34 ++--- .../api/cmd/SubCommandHandlerInterface.java | 4 +- .../api/locale/LocalizedMessageInterface.java | 134 ++++++++++++++++-- .../api/locale/LocalizedMessageList.java | 41 ++++++ .../mce/minigames/api/locale/MessageTool.java | 69 +++++++++ .../site/markdown/dev_minigame_messages.md | 73 +++++++++- 7 files changed, 363 insertions(+), 43 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index a693f100..24ee40f2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -17,6 +17,7 @@ import com.github.mce.minigames.api.locale.LocalizedMessage; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageList; import com.github.mce.minigames.api.locale.LocalizedMessages; import com.github.mce.minigames.api.locale.MessageSeverityType; @@ -126,4 +127,54 @@ public enum CommonMessages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [page] §7Display the given page.") PageUsage, + /** + * Help command usage. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "§9%1$s help [page] Display help with given page number.") + HelpPagedUsage, + + /** + * Help command usage. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "§9%1$s help [page] Display the help with given page number.") + HelpCommandUsage, + + /** + * Help command short description. + * + * <p>No arguments.</p> + */ + @LocalizedMessage(defaultMessage = "§7Display command help") + HelpShortDescription, + + /** + * Help command long description. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * <li>String: The usage of this command</li> + * </ol> + */ + @LocalizedMessageList({ + @LocalizedMessage(defaultMessage = "§7Displays command help for command §9%1$s"), + @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [page] §7Display the given help page."), + @LocalizedMessage(defaultMessage = "§7The argument §9page is optional. If not entered it"), + @LocalizedMessage(defaultMessage = "§7will always display the first help page."), + }) + HelpLongDescription, + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java index 82862c80..6c1e7065 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -17,8 +17,7 @@ import java.io.Serializable; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.CommonMessages; /** * Prints help based on single sub command handlers. @@ -56,38 +55,27 @@ public HelpCommandHandler(AbstractCompositeCommandHandler command) this.compositeCommand = command; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) + @Override + public Serializable getShortDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.HelpShortDescription.toArg(); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) + public Serializable[] getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public Serializable getUsage(CommandInterface command) { - // TODO Auto-generated method stub - return null; + if (this.compositeCommand != null) + { + return CommonMessages.HelpPagedUsage.toArg(command.getCommandPath()); + } + return CommonMessages.HelpCommandUsage.toArg(command.getCommandPath()); } /* (non-Javadoc)+, diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java index 5d12a612..3df5640f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java @@ -51,8 +51,6 @@ public interface SubCommandHandlerInterface extends CommandHandlerInterface * the command to be used. * @return long description line for command details. */ - Serializable - - [] getDescription(CommandInterface command); + Serializable[] getDescription(CommandInterface command); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java index 4e847b53..b48d400e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java @@ -32,13 +32,14 @@ public interface LocalizedMessageInterface extends Serializable /** * Returns the message severity type. + * * @return severity type. */ default MessageSeverityType getSeverity() { try { - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); return msg.severity(); } catch (NoSuchFieldException ex) @@ -61,7 +62,7 @@ default String toUserMessage(Locale locale, Serializable... args) try { final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); if (msgs == null || msg == null) { throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ @@ -73,9 +74,43 @@ default String toUserMessage(Locale locale, Serializable... args) throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ - // TODO Convert DynamicArg, see toArg() - return String.format(smsg, (Object[])args); + final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ + return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns a human readable message for this message; this message will be displayed to common users. + * + * @param locale + * locale to be used. + * @param args + * object arguments that can be used to build the message. + * @return message string. + */ + default String[] toUserMessageLine(Locale locale, Serializable... args) + { + try + { + final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); + final LocalizedMessageList msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessageList.class); + if (msgs == null || msg == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + final MglibInterface mglib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = mglib.getMinigameFromMsg(this); + if (minigame == null) + { + throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ + } + + final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ + return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); } catch (NoSuchFieldException ex) { @@ -97,7 +132,46 @@ default String toAdminMessage(Locale locale, Serializable... args) try { final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>)this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); + if (msgs == null || msg == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + final MglibInterface mglib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = mglib.getMinigameFromMsg(this); + if (minigame == null) + { + throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ + } + + String smsg = minigame.getMessages().getAdminString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ + if (smsg.length() == 0) + { + smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ + } + return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Returns a human readable message for this message; the message will be displayed to administrators only. + * + * @param locale + * locale to be used. + * @param args + * object arguments that can be used to build the message. + * @return message string. + */ + default String[] toAdminMessageLine(Locale locale, Serializable... args) + { + try + { + final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); if (msgs == null || msg == null) { throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ @@ -109,13 +183,12 @@ default String toAdminMessage(Locale locale, Serializable... args) throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - String smsg = minigame.getMessages().getAdminString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ + String smsg = minigame.getMessages().getAdminString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ if (smsg.length() == 0) { - smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>)this).name(), msg.defaultMessage()); //$NON-NLS-1$ + smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ } - // TODO Convert DynamicArg, see toArg() - return String.format(smsg, (Object[])args); + return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); } catch (NoSuchFieldException ex) { @@ -125,7 +198,9 @@ default String toAdminMessage(Locale locale, Serializable... args) /** * Converts this message to a string function - * @param args arguments to use. + * + * @param args + * arguments to use. * @return ths string function */ default DynamicArg toArg(Serializable... args) @@ -133,6 +208,34 @@ default DynamicArg toArg(Serializable... args) return (loc, isAdmin) -> isAdmin ? this.toAdminMessage(loc, args) : this.toUserMessage(loc, args); } + /** + * Converts this message to a string function + * + * @param startLine + * starting line + * @param lineLimit + * limit of lines + * @param args + * arguments to use. + * @return ths string function + */ + default DynamicListArg toListArg(int startLine, int lineLimit, Serializable... args) + { + return (loc, isAdmin) -> isAdmin ? this.toAdminMessageLine(loc, args) : this.toUserMessageLine(loc, args); + } + + /** + * Converts this message to a string function + * + * @param args + * arguments to use. + * @return ths string function + */ + default DynamicListArg toListArg(Serializable... args) + { + return (loc, isAdmin) -> isAdmin ? this.toAdminMessageLine(loc, args) : this.toUserMessageLine(loc, args); + } + /** * Helper interface for dynamic arguments. */ @@ -142,4 +245,13 @@ interface DynamicArg extends BiFunction<Locale, Boolean, String>, Serializable // marker only } + /** + * Helper interface for dynamic arguments. + */ + @FunctionalInterface + interface DynamicListArg extends BiFunction<Locale, Boolean, String[]>, Serializable + { + // marker only + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java new file mode 100644 index 00000000..609d8c2f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java @@ -0,0 +1,41 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * A flexible list of localized messages. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface LocalizedMessageList +{ + + /** + * The array of localized messages (lines) inside this list. + * + * @return predefined list of messages. + */ + LocalizedMessage[] value(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java new file mode 100644 index 00000000..d2d329df --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import java.io.Serializable; +import java.util.Locale; + +/** + * Utility class for messages. + * + * @author mepeisen + */ +class MessageTool +{ + + /** + * Converts the given source array to serialized target array that can be passed to String.format + * + * @param locale + * @param isAdmin + * @param src + * @return converted array + */ + public static Serializable[] convertArgs(Locale locale, boolean isAdmin, Serializable[] src) + { + final Serializable[] result = new Serializable[src.length]; + for (int i = 0; i < src.length; i++) + { + final Serializable srcelm = src[i]; + if (srcelm instanceof LocalizedMessageInterface.DynamicArg) + { + result[i] = ((LocalizedMessageInterface.DynamicArg) srcelm).apply(locale, isAdmin); + } + else if (srcelm instanceof LocalizedMessageInterface.DynamicListArg) + { + final StringBuilder builder = new StringBuilder(); + for (final String line : ((LocalizedMessageInterface.DynamicListArg) srcelm).apply(locale, isAdmin)) + { + if (builder.length() > 0) + { + builder.append("\n"); //$NON-NLS-1$ + } + builder.append(line); + } + builder.append("\n"); //$NON-NLS-1$ + result[i] = builder.toString(); + } + else + { + result[i] = src[i]; + } + } + return result; + } + +} diff --git a/APIv2/src/site/markdown/dev_minigame_messages.md b/APIv2/src/site/markdown/dev_minigame_messages.md index e62bd075..955e65b4 100644 --- a/APIv2/src/site/markdown/dev_minigame_messages.md +++ b/APIv2/src/site/markdown/dev_minigame_messages.md @@ -28,7 +28,7 @@ To declare a message simply create an enumeration. * <li>String: player name</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Player %0$s did a looping", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Player %1$s did a looping", severity = MessageSeverityType.Success) PlayerDidLooping, /** @@ -41,7 +41,7 @@ To declare a message simply create an enumeration. * <li>String: some cause</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Player %0$s seems to be a noob", defaultAdminMessage = "Player %0$s seems to be a noob. Cause: %1$s", severity = MessageSeverityType.Warning) + @LocalizedMessage(defaultMessage = "Player %1$s seems to be a noob", defaultAdminMessage = "Player %1$s seems to be a noob. Cause: %2$s", severity = MessageSeverityType.Warning) PlayerIsNoob, } @@ -64,7 +64,7 @@ The path "core" is always preserved for minigames lib itself. The messages are parsed through javas System.format. -If a message can be individualized by parameters you can add those parameter tags. "%0$s" will display the first argument and assume it is a string. +If a message can be individualized by parameters you can add those parameter tags. "%1$s" will display the first argument and assume it is a string. Read the oracle javadoc of the java language for details. ## Editing the messages.yml @@ -76,13 +76,13 @@ The above example will result in the following messages.yml PlayerDidLooping: default_locale: en user: - en: 'Player %0$s did a looping' + en: 'Player %1$s did a looping' PlayerIsNoob: default_locale: en user: - en: 'Player %0$s seems to be a noob' + en: 'Player %1$s seems to be a noob' admin: - en: 'Player %0$s seems to be a noob. Cause: %1$s' + en: 'Player %1$s seems to be a noob. Cause: %2$s' The user section holds all messages per locale display to a common user. The admin section holds the administrator message per locale. @@ -125,6 +125,63 @@ they implement interface MinigameErrorCode instead of LocalizedMessageInterface. The error codes are mainly meant to be used in MinigameExceptions. Typically the represent messages or errors in command handlers. +## Special message type: Message lists + +A message list is a collection of multiple messages. It represents individual lines. +For example a help text in a command may be made of 4 lines in English and of 5 lines +in German. That the code does not get confused with these lines we support +this special message type. + +To declare the localized message list first use the LocalizedMessageList annotation inside your enumeration. + + /** + * Some multi-line message. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: player name</li> + * </ol> + */ + @LocalizedMessageList({ + @LocalizedMessage(defaultMessage = "Welcome to this adventure, player %1$s!"), + @LocalizedMessage(defaultMessage = "Can you find the Yeti?"), + @LocalizedMessage(defaultMessage = "Sam and Max are absent."), + @LocalizedMessage(defaultMessage = "HELP!") + }) + MultiLineMessage, + +This will result in following entries in messages.yml + + myplugin: + ingame: + MultiLineMessage: + default_locale: en + user: + en: + 0: 'Welcome to this adventure, player %1$s!' + 1: 'Can you find the Yeti?' + 2: 'Sam and Max are absent.' + 3: 'HELP!' + +As you see the lines are enumerated. If you have a language only containing three lines this can be done by changing +it to the following: + + myplugin: + ingame: + MultiLineMessage: + default_locale: en + user: + en: + 0: 'Welcome to this adventure, player %1$s!' + 1: 'Can you find the Yeti?' + 2: 'Sam and Max are absent.' + 3: 'HELP!' + de: + 0: 'Willkommen bei deinem Abenteuer, Spieler %1$s!' + 1: 'Findest du den Yeti?' + 2: 'Sam und Max sind verschwunden. HILFE!' + ## Special message type: Message sets The message sets are predefined messages used within typical minigames. @@ -143,3 +200,7 @@ This helps administrators to manipulate your messages and provide language packs TODO +## Referencing user defined messages + +TODO for example the arena description + From b9afbbcab5d64f912ef623d93ad2cb8ed297bfff Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 24 Aug 2016 09:17:47 +0200 Subject: [PATCH 104/266] v2 --- .../mce/minigames/api/CommonMessages.java | 126 +++++++++++++- .../cmd/AbstractPagableCommandHandler.java | 2 +- .../minigames/api/cmd/CommandInterface.java | 17 +- .../minigames/api/cmd/HelpCommandHandler.java | 62 +++---- .../api/cmd/SubCommandHandlerInterface.java | 19 +-- .../api/locale/LocalizedMessageInterface.java | 38 +++-- .../api/locale/LocalizedMessageList.java | 9 +- .../api/locale/MessagesConfigInterface.java | 26 +++ .../site/markdown/dev_minigame_messages.md | 8 +- .../mce/minigames/impl/CommandImpl.java | 11 ++ .../mce/minigames/impl/MinigamesPlugin.java | 32 ++-- .../minigames/impl/cmd/Mg2CommandHandler.java | 1 + .../impl/cmd/PartyAcceptCommandHandler.java | 12 +- .../impl/cmd/PartyCommandHandler.java | 28 +-- .../impl/cmd/PartyDisbandCommandHandler.java | 12 +- .../impl/cmd/PartyInviteCommandHandler.java | 12 +- .../impl/cmd/PartyKickCommandHandler.java | 12 +- .../impl/cmd/PartyLeaveCommandHandler.java | 12 +- .../impl/cmd/PartyListCommandHandler.java | 12 +- .../impl/cmd/StartCommandHandler.java | 31 ++-- .../minigames/impl/msg/MessagesConfig.java | 61 ++++++- .../impl/player/ArenaPlayerImpl.java | 159 ++++++++++++++++++ .../minigames/impl/player/PlayerRegistry.java | 71 ++++++++ 23 files changed, 567 insertions(+), 206 deletions(-) create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index 24ee40f2..a057033c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -44,6 +44,95 @@ public enum CommonMessages implements LocalizedMessageInterface ArenaStartedByCommand, // ***** commands, usages etc. + + /** + * Usage of party command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [subcommand] §7Call party sub commands.") + PartyCommandUsage, + + /** + * Short description of party command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Control your party and invites.") + PartyCommandShortDescription, + + /** + * Long description of party command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessageList({ + "Build a party with your friends.", + "One player can create a party by starting invites.", + "As soon as all friends are invited and accepted the invite", + "the party owner can join an arena with the entire party." + }) + PartyCommandDescription, + + /** + * Usage of start command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s §7Force the current arena to start.") + StartCommandUsage, + + /** + * Short description of start command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Force the current arena to start.") + StartCommandShortDescription, + + /** + * Long description of start command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessageList({ + "Forces the arena you are part of to start.", + "The arena can only be started while you are in the waiting lobby.", + "This command requires a start permission." + }) + StartCommandDescription, + + /** + * Error message for invalid commands (too many arguments) + * + * <p>No arguments.</p> + */ + @LocalizedMessage(defaultMessage = "Too many arguments", severity = MessageSeverityType.Error) + TooManyArguments, /** * Mg2 command usage. @@ -77,7 +166,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: total pages</li> * </ol> */ - @LocalizedMessage(defaultMessage = "§7=====§9%1$s§7====§9Page §1%2$d §9 from §1%2$d§7=====") + @LocalizedMessage(defaultMessage = "§7=====§9%1$s§7====§9Page §1%2$d §9 from §1%3$d§7=====") PagedHeader, /** @@ -90,7 +179,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: line number</li> * </ol> */ - @LocalizedMessage(defaultMessage = " §7") + @LocalizedMessage(defaultMessage = " §7%1$s") PagedLine, /** @@ -151,6 +240,31 @@ public enum CommonMessages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "§9%1$s help [page] Display the help with given page number.") HelpCommandUsage, + /** + * Help command header. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "help") + HelpHeader, + + /** + * Help line. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command line</li> + * <li>String: The short description</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "§9%1$s §7%2$s") + HelpLineUsage, + /** * Help command short description. * @@ -170,10 +284,10 @@ public enum CommonMessages implements LocalizedMessageInterface * </ol> */ @LocalizedMessageList({ - @LocalizedMessage(defaultMessage = "§7Displays command help for command §9%1$s"), - @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [page] §7Display the given help page."), - @LocalizedMessage(defaultMessage = "§7The argument §9page is optional. If not entered it"), - @LocalizedMessage(defaultMessage = "§7will always display the first help page."), + "§7Displays command help for command §9%1$s", + "§7Usage: §9%1$s [page] §7Display the given help page.", + "§7The argument §9page is optional. If not entered it", + "§7will always display the first help page.", }) HelpLongDescription, diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java index bc2e18af..72e6416a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java @@ -103,7 +103,7 @@ public void handle(CommandInterface command) throws MinigameException } } - command.send(CommonMessages.PagedHeader, page, pageCount); + command.send(CommonMessages.PagedHeader, this.getHeader(command), page, pageCount); int i = 1; for (Serializable line : this.getLines(command, start, lineCount)) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java index af811dd9..14aa25ef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java @@ -87,6 +87,21 @@ public interface CommandInterface */ String getCommandPath(); + /** + * Returns the locale of the sender. + * @return senders locale + */ + Locale getLocale(); + + /** + * Checks if the sender is an operator + * @return {@code true} for operators. + */ + default boolean isOp() + { + return this.getSender().isOp(); + } + /** * Sends a message to command sender * @param msg message to send @@ -100,7 +115,7 @@ default void send(LocalizedMessageInterface msg, Serializable... args) } else { - final Locale locale = Locale.ENGLISH; + final Locale locale = this.getLocale(); final boolean isAdmin = this.getSender().isOp(); final String msg2 = msg.toArg(args).apply(locale, isAdmin); switch (msg.getSeverity()) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java index 6c1e7065..1bfa0041 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -16,8 +16,11 @@ package com.github.mce.minigames.api.cmd; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * Prints help based on single sub command handlers. @@ -30,6 +33,7 @@ public class HelpCommandHandler extends AbstractPagableCommandHandler implements /** help on sub command. */ private SubCommandHandlerInterface subCommand; + /** help on composite command. */ private AbstractCompositeCommandHandler compositeCommand; @@ -56,57 +60,57 @@ public HelpCommandHandler(AbstractCompositeCommandHandler command) } @Override - public Serializable getShortDescription(CommandInterface command) + public LocalizedMessageInterface getShortDescription(CommandInterface command) { - return CommonMessages.HelpShortDescription.toArg(); + return CommonMessages.HelpShortDescription; } @Override - public Serializable[] getDescription(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.HelpLongDescription; } +// @Override +// public LocalizedMessageInterface getUsage(CommandInterface command) +// { +// if (this.compositeCommand != null) +// { +// return CommonMessages.HelpPagedUsage; +// } +// return CommonMessages.HelpCommandUsage; +// } + @Override - public Serializable getUsage(CommandInterface command) + protected int getLineCount(CommandInterface command) { if (this.compositeCommand != null) { - return CommonMessages.HelpPagedUsage.toArg(command.getCommandPath()); + return this.compositeCommand.subCommands.size(); } - return CommonMessages.HelpCommandUsage.toArg(command.getCommandPath()); - } - - /* (non-Javadoc)+, - * 3 - * @see com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler#getLineCount(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - protected int getLineCount(CommandInterface command) - { - // TODO Auto-generated method stub - return 0; + return this.subCommand.getDescription(command).toListArg(command.getCommandPath()).apply(command.getLocale(), command.isOp()).length; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler#getHeader(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override protected Serializable getHeader(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.HelpHeader.toArg(command.getCommandPath()); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler#getLines(com.github.mce.minigames.api.cmd.CommandInterface, int, int) - */ @Override protected Serializable[] getLines(CommandInterface command, int start, int count) { - // TODO Auto-generated method stub - return null; + if (this.compositeCommand != null) + { + final List<String> keys = new ArrayList<>(this.compositeCommand.subCommands.keySet()); + final List<Serializable> result = new ArrayList<>(); + for (final String key : keys.subList(start, start + count)) + { + result.add(CommonMessages.HelpLineUsage.toArg(key, this.compositeCommand.subCommands.get(key).getShortDescription(command).toArg(command.getCommandPath()))); + } + return result.toArray(new Serializable[result.size()]); + } + return this.subCommand.getDescription(command).toListArg(start, count, new Serializable[]{command.getCommandPath()}).apply(command.getLocale(), command.isOp()); } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java index 3df5640f..3ebc2e98 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java @@ -15,7 +15,7 @@ package com.github.mce.minigames.api.cmd; -import java.io.Serializable; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** @@ -31,26 +31,17 @@ public interface SubCommandHandlerInterface extends CommandHandlerInterface * * @param command * the command to be used. - * @return short description line for command help. + * @return short description line for command help. Single line message. */ - Serializable getShortDescription(CommandInterface command); - - /** - * Returns a usage information. - * - * @param command - * the command to be used. - * @return short usage information for command help. - */ - Serializable getUsage(CommandInterface command); + LocalizedMessageInterface getShortDescription(CommandInterface command); /** * Returns a long description. * * @param command * the command to be used. - * @return long description line for command details. + * @return long description line for command details. Single line message. */ - Serializable[] getDescription(CommandInterface command); + LocalizedMessageInterface getDescription(CommandInterface command); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java index b48d400e..38fdb7de 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java @@ -49,7 +49,7 @@ default MessageSeverityType getSeverity() } /** - * Returns a human readable message for this message; this message will be displayed to common users. + * Returns a human readable text for this message; this message will be displayed to common users. * * @param locale * locale to be used. @@ -84,13 +84,13 @@ default String toUserMessage(Locale locale, Serializable... args) } /** - * Returns a human readable message for this message; this message will be displayed to common users. + * Returns an array of human readable texts for this message; this message will be displayed to common users. * * @param locale * locale to be used. * @param args * object arguments that can be used to build the message. - * @return message string. + * @return message string array. */ default String[] toUserMessageLine(Locale locale, Serializable... args) { @@ -109,8 +109,15 @@ default String[] toUserMessageLine(Locale locale, Serializable... args) throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ - return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + final String[] smsg = minigame.getMessages().getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ + final String[] result = new String[smsg.length]; + int i = 0; + for (final String lmsg : smsg) + { + result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + i++; + } + return result; } catch (NoSuchFieldException ex) { @@ -119,7 +126,7 @@ default String[] toUserMessageLine(Locale locale, Serializable... args) } /** - * Returns a human readable message for this message; the message will be displayed to administrators only. + * Returns an array of human readable texts for this message; the message will be displayed to administrators only. * * @param locale * locale to be used. @@ -158,7 +165,7 @@ default String toAdminMessage(Locale locale, Serializable... args) } /** - * Returns a human readable message for this message; the message will be displayed to administrators only. + * Returns an array of human readable texts for this message; the message will be displayed to administrators only. * * @param locale * locale to be used. @@ -171,7 +178,7 @@ default String[] toAdminMessageLine(Locale locale, Serializable... args) try { final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); + final LocalizedMessageList msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessageList.class); if (msgs == null || msg == null) { throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ @@ -183,12 +190,19 @@ default String[] toAdminMessageLine(Locale locale, Serializable... args) throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - String smsg = minigame.getMessages().getAdminString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ - if (smsg.length() == 0) + String[] smsg = minigame.getMessages().getAdminStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.adminMessages().length == 0 ? null : msg.adminMessages()); //$NON-NLS-1$ + if (smsg == null) { - smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ + smsg = minigame.getMessages().getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ } - return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + final String[] result = new String[smsg.length]; + int i = 0; + for (final String lmsg : smsg) + { + result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + i++; + } + return result; } catch (NoSuchFieldException ex) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java index 609d8c2f..3f8b069c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java @@ -36,6 +36,13 @@ * * @return predefined list of messages. */ - LocalizedMessage[] value(); + String[] value(); + + /** + * The array of localized messages (lines) inside this list. + * + * @return predefined list of messages. + */ + String[] adminMessages() default {}; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java index 0b158fb5..9702e26c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java @@ -51,4 +51,30 @@ public interface MessagesConfigInterface */ String getAdminString(Locale locale, String path, String defaultValue); + /** + * Returns an array of Strings for given option path, + * + * @param locale + * the locale to be used + * @param path + * configuration option path + * @param defaultValue + * default value to return + * @return array of strings + */ + String[] getStringList(Locale locale, String path, String[] defaultValue); + + /** + * Returns an array of Strings for given option path, + * + * @param locale + * the locale to be used + * @param path + * configuration option path + * @param defaultValue + * default value to return + * @return array of strings + */ + String[] getAdminStringList(Locale locale, String path, String[] defaultValue); + } diff --git a/APIv2/src/site/markdown/dev_minigame_messages.md b/APIv2/src/site/markdown/dev_minigame_messages.md index 955e65b4..cda28d53 100644 --- a/APIv2/src/site/markdown/dev_minigame_messages.md +++ b/APIv2/src/site/markdown/dev_minigame_messages.md @@ -144,10 +144,10 @@ To declare the localized message list first use the LocalizedMessageList annotat * </ol> */ @LocalizedMessageList({ - @LocalizedMessage(defaultMessage = "Welcome to this adventure, player %1$s!"), - @LocalizedMessage(defaultMessage = "Can you find the Yeti?"), - @LocalizedMessage(defaultMessage = "Sam and Max are absent."), - @LocalizedMessage(defaultMessage = "HELP!") + "Welcome to this adventure, player %1$s!", + "Can you find the Yeti?", + "Sam and Max are absent.", + "HELP!" }) MultiLineMessage, diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java index 297693bf..be761c1f 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.impl; import java.util.Arrays; +import java.util.Locale; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -155,5 +156,15 @@ public String getCommandPath() { return this.commandPath; } + + @Override + public Locale getLocale() + { + if (this.getPlayer() != null) + { + return this.getPlayer().getPreferredLocale(); + } + return Locale.ENGLISH; // TODO override by config? + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 72038895..2ab3cc68 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -57,6 +57,7 @@ import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; +import com.github.mce.minigames.impl.player.PlayerRegistry; /** * A plugin for minigames. @@ -82,6 +83,11 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface /** options to minigames. */ private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); + /** + * the players registry. + */ + private final PlayerRegistry players = new PlayerRegistry(); + /** * Constructor to create the plugin. */ @@ -327,40 +333,22 @@ public Iterable<ZoneInterface> findZones(Location location) return null; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getPlayer(org.bukkit.entity.Player) - */ - @Override + @Override public ArenaPlayerInterface getPlayer(Player player) { - // TODO Auto-generated method stub - return null; + return this.players.getPlayer(player); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getPlayer(org.bukkit.OfflinePlayer) - */ @Override public ArenaPlayerInterface getPlayer(OfflinePlayer player) { - // TODO Auto-generated method stub - return null; + return this.players.getPlayer(player); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getPlayer(java.util.UUID) - */ @Override public ArenaPlayerInterface getPlayer(UUID uuid) { - // TODO Auto-generated method stub - return null; + return this.players.getPlayer(uuid); } /* diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index 9b54d8a3..79e8a75a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -34,6 +34,7 @@ public class Mg2CommandHandler extends AbstractCompositeCommandHandler public Mg2CommandHandler() { this.injectSubCommand("party", new PartyCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("start", new StartCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("help", new HelpCommandHandler(this)); //$NON-NLS-1$ // TODO additional commands } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java index ec857a8b..aa4e64d4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java @@ -51,17 +51,7 @@ public LocalizedMessageInterface getShortDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ - @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java index 8b14065b..882366f4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; @@ -58,38 +59,19 @@ protected boolean pre(CommandInterface command) throws MinigameException @Override protected void sendUsage(CommandInterface command) { - // TODO Auto-generated method stub - + command.send(CommonMessages.PartyCommandUsage, command.getCommandPath()); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ @Override public LocalizedMessageInterface getShortDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; + return CommonMessages.PartyCommandShortDescription; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.PartyCommandDescription; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java index d74ded9a..77a20f54 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java @@ -51,17 +51,7 @@ public LocalizedMessageInterface getShortDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ - @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java index 83e8375f..2d59e158 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java @@ -51,17 +51,7 @@ public LocalizedMessageInterface getShortDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ - @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java index 84bc54b8..88ee1efb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java @@ -51,17 +51,7 @@ public LocalizedMessageInterface getShortDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ - @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java index b6aaef91..25599382 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java @@ -51,17 +51,7 @@ public LocalizedMessageInterface getShortDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ - @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java index f8a852cc..784a0a66 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java @@ -51,17 +51,7 @@ public LocalizedMessageInterface getShortDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() */ @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ - @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index 6a17528c..c33c53c4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -41,6 +41,13 @@ public class StartCommandHandler implements SubCommandHandlerInterface @Override public void handle(CommandInterface command) throws MinigameException { + if (command.getArgs().length > 0) + { + command.send(CommonMessages.TooManyArguments); + command.send(CommonMessages.StartCommandUsage, command.getCommandPath()); + return; + } + // only in-game command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); @@ -61,34 +68,16 @@ public void handle(CommandInterface command) throws MinigameException player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ @Override public LocalizedMessageInterface getShortDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface[] getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; + return CommonMessages.StartCommandShortDescription; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getUsage() - */ @Override - public LocalizedMessageInterface getUsage(CommandInterface command) + public LocalizedMessageInterface getDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.StartCommandDescription; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java index c5dd4205..3e8cb694 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.logging.Level; @@ -27,6 +28,7 @@ import com.github.mce.minigames.api.locale.LocalizedMessage; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageList; import com.github.mce.minigames.api.locale.LocalizedMessages; import com.github.mce.minigames.api.locale.MessagesConfigInterface; @@ -102,6 +104,38 @@ public String getAdminString(Locale locale, String path, String defaultValue) } return result == null ? defaultValue : result; } + + @Override + public String[] getStringList(Locale locale, String path, String[] defaultValue) + { + final FileConfiguration config1 = this.getConfig(); + List<String> result = config1.getStringList(path + ".user." + locale.toString()); //$NON-NLS-1$ + if (result == null) + { + final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ + if (defaultLocale != null) + { + result = config1.getStringList(path + ".user." + defaultLocale); //$NON-NLS-1$ + } + } + return result == null ? defaultValue : result.toArray(new String[result.size()]); + } + + @Override + public String[] getAdminStringList(Locale locale, String path, String[] defaultValue) + { + final FileConfiguration config1 = this.getConfig(); + List<String> result = config1.getStringList(path + ".admin." + locale.toString()); //$NON-NLS-1$ + if (result == null) + { + final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ + if (defaultLocale != null) + { + result = config1.getStringList(path + ".admin." + defaultLocale); //$NON-NLS-1$ + } + } + return result == null ? defaultValue : result.toArray(new String[result.size()]); + } /** * Returns the file configuration. @@ -154,16 +188,31 @@ public void reloadConfig() { final LocalizedMessages clazzDef = msg.getClass().getAnnotation(LocalizedMessages.class); final LocalizedMessage valueDef = msg.getClass().getDeclaredField(((Enum<?>)msg).name()).getAnnotation(LocalizedMessage.class); - if (clazzDef == null || valueDef == null) + final LocalizedMessageList listDef = msg.getClass().getDeclaredField(((Enum<?>)msg).name()).getAnnotation(LocalizedMessageList.class); + if (clazzDef == null || (listDef == null && valueDef == null)) { throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } - final String path = clazzDef.value() + "." + ((Enum<?>)msg).name(); //$NON-NLS-1$ - this.config.addDefault(path + ".default_locale", clazzDef.defaultLocale()); //$NON-NLS-1$ - this.config.addDefault(path + ".user." + clazzDef.defaultLocale(), valueDef.defaultMessage()); //$NON-NLS-1$ - if (valueDef.defaultAdminMessage().length() > 0) + + if (valueDef == null && listDef != null) + { + final String path = clazzDef.value() + "." + ((Enum<?>)msg).name(); //$NON-NLS-1$ + this.config.addDefault(path + ".default_locale", clazzDef.defaultLocale()); //$NON-NLS-1$ + this.config.addDefault(path + ".user." + clazzDef.defaultLocale(), Arrays.asList(listDef.value())); //$NON-NLS-1$ + if (listDef.adminMessages().length > 0) + { + this.config.addDefault(path + ".admin." + clazzDef.defaultLocale(), Arrays.asList(listDef.adminMessages())); //$NON-NLS-1$ + } + } + else if (valueDef != null) { - this.config.addDefault(path + ".admin." + clazzDef.defaultLocale(), valueDef.defaultAdminMessage()); //$NON-NLS-1$ + final String path = clazzDef.value() + "." + ((Enum<?>)msg).name(); //$NON-NLS-1$ + this.config.addDefault(path + ".default_locale", clazzDef.defaultLocale()); //$NON-NLS-1$ + this.config.addDefault(path + ".user." + clazzDef.defaultLocale(), valueDef.defaultMessage()); //$NON-NLS-1$ + if (valueDef.defaultAdminMessage().length() > 0) + { + this.config.addDefault(path + ".admin." + clazzDef.defaultLocale(), valueDef.defaultAdminMessage()); //$NON-NLS-1$ + } } } catch (NoSuchFieldException ex) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java new file mode 100644 index 00000000..ec8e09df --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -0,0 +1,159 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.player; + +import java.io.Serializable; +import java.util.Locale; +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.impl.stubs.FalseStub; +import com.github.mce.minigames.impl.stubs.TrueStub; + +/** + * Implementation of arena players. + * + * @author mepeisen + * + */ +public class ArenaPlayerImpl implements ArenaPlayerInterface +{ + + /** players uuid. */ + private UUID uuid; + + /** the players name. */ + private String name; + + /** + * Constructor + * @param uuid players uuid + */ + public ArenaPlayerImpl(UUID uuid) + { + this.uuid = uuid; + final OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); + if (player != null) + { + this.name = player.getName(); + } + } + + @Override + public Player getBukkitPlayer() + { + return Bukkit.getPlayer(this.uuid); + } + + @Override + public String getName() + { + return this.name; + } + + @Override + public OfflinePlayer getOfflinePlayer() + { + return Bukkit.getOfflinePlayer(this.uuid); + } + + @Override + public UUID getPlayerUUID() + { + return this.uuid; + } + + @Override + public void sendMessage(LocalizedMessageInterface msg, Serializable... args) + { + final Player player = this.getBukkitPlayer(); + if (player != null) + { + if (player.isOp()) + { + player.sendMessage(msg.toAdminMessage(this.getPreferredLocale(), args)); + } + else + { + player.sendMessage(msg.toUserMessage(this.getPreferredLocale(), args)); + } + } + } + + @Override + public Locale getPreferredLocale() + { + // TODO Auto-generated method stub + return Locale.ENGLISH; + } + + @Override + public void setPreferredLocale(Locale locale) throws MinigameException + { + // TODO Auto-generated method stub + + } + + @Override + public ArenaInterface getArena() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterable<WaitQueue> getWaitingQueues() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public void join(WaitQueue queue) + { + // TODO Auto-generated method stub + + } + + @Override + public boolean checkPermission(PermissionsInterface perm) + { + // TODO Auto-generated method stub + return true; + } + + @Override + public MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInterface> test) throws MinigameException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java new file mode 100644 index 00000000..4ab7012a --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java @@ -0,0 +1,71 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.player; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +/** + * A helper class to register player interfaces. + * + * @author mepeisen + */ +public class PlayerRegistry +{ + + /** the well known players. */ + private final Map<UUID, ArenaPlayerImpl> players = new HashMap<>(); + + /** + * Returns the player for given bukkit player. + * + * @param player + * @return arena player. + */ + public ArenaPlayerImpl getPlayer(Player player) + { + final UUID uuid = player.getUniqueId(); + return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); + } + + /** + * Returns the player for given bukkit player. + * + * @param player + * @return arena player. + */ + public ArenaPlayerImpl getPlayer(OfflinePlayer player) + { + final UUID uuid = player.getUniqueId(); + return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); + } + + /** + * Returns the player for given bukkit player uuid. + * + * @param uuid + * @return arena player. + */ + public ArenaPlayerImpl getPlayer(UUID uuid) + { + return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); + } + +} From a72de38f6d2e69345b715d4013e3b5eaecd3d726 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 24 Aug 2016 19:56:58 +0200 Subject: [PATCH 105/266] v2 --- .../api/ContextHandlerInterface.java | 53 +++++ .../mce/minigames/api/MglibInterface.java | 41 +--- .../mce/minigames/api/MinigameContext.java | 73 +++++++ .../api/MinigamePluginInterface.java | 14 ++ .../minigames/impl/MinigamePluginImpl.java | 15 +- .../mce/minigames/impl/MinigamesPlugin.java | 43 ++-- .../context/ArenaPlayerInterfaceProvider.java | 51 +++++ .../impl/context/MinigameContextImpl.java | 197 ++++++++++++++++++ 8 files changed, 429 insertions(+), 58 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java new file mode 100644 index 00000000..b26c24e6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java @@ -0,0 +1,53 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * An interface to calculate context variables. + * + * @author mepeisen + * @param <T> + * context class + */ +public interface ContextHandlerInterface<T> +{ + + /** + * Calculates the context object from command. + * + * @param command + * command to process + * @param context + * current minigame context + * @return context object or {@code null} if it cannot be calculated + */ + T calculateFromCommand(CommandInterface command, MinigameContext context); + + /** + * Calculates the context object from minigame event. + * + * @param event + * event to process + * @param context + * current minigame context + * @return context object or {@code null} if it cannot be calculated + */ + T calculateFromEvent(MinigameEvent<?> event, MinigameContext context); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index a7d9189d..6fede330 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -39,7 +39,7 @@ * * @author mepeisen */ -public interface MglibInterface +public interface MglibInterface extends MinigameContext { /** @@ -276,45 +276,6 @@ public interface MglibInterface */ Iterable<ArenaInterface> getArenas(ArenaTypeInterface type); - // context - - /** - * Returns a session variable. - * - * @param clazz - * the class of the variable to be returned. - * @return Context variable or {@code null} if the variable was not set. - */ - <T> T getContext(Class<T> clazz); - - /** - * Returns the current player. - * - * @return current player. - */ - default ArenaPlayerInterface getCurrentPlayer() - { - return this.getContext(ArenaPlayerInterface.class); - } - - /** - * Returns the current arena. - * - * @return current arena. - */ - default ArenaInterface getCurrentArena() - { - return this.getContext(ArenaInterface.class); - } - - /** - * Resolves a context variable. - * - * @param src - * @return result - */ - String resolveContextVar(String src); - // common singleton getter /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java new file mode 100644 index 00000000..f66d1fec --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * The minigame execution context. + * + * <p> + * The execution context is some kind of thread local session storage. Once a command or + * event is being processed the context is responsible for providing common minigame objects. + * For example the default implementation can return the current player being responsible for + * a command call or event and to return the arena this player is located in. + * </p> + * + * @author mepeisen + */ +public interface MinigameContext +{ + + /** + * Returns a session variable. + * + * @param clazz + * the class of the variable to be returned. + * @return Context variable or {@code null} if the variable was not set. + */ + <T> T getContext(Class<T> clazz); + + /** + * Resolves a context variable and performs variable substitution. + * + * @param src + * @return result + */ + String resolveContextVar(String src); + + /** + * Returns the current player. + * + * @return current player. + */ + default ArenaPlayerInterface getCurrentPlayer() + { + return this.getContext(ArenaPlayerInterface.class); + } + + /** + * Returns the current arena. + * + * @return current arena. + */ + default ArenaInterface getCurrentArena() + { + return this.getContext(ArenaInterface.class); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java index 68690033..97eb7130 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -45,6 +45,20 @@ public interface MinigamePluginInterface extends MinigameInterface */ ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolean isDefault) throws MinigameException; + /** + * Registers a context handler to calculate context variables. + * + * @param clazz + * context class. + * @param handler + * the context handler. + * @throws MinigameException + * thrown if the class to register is already registered. + * @param <T> + * context class to register + */ + <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException; + /** * Initialize this minigame. * diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index be05a3a8..0d17ee0b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -29,6 +29,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import com.github.mce.minigames.api.ContextHandlerInterface; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; @@ -109,19 +110,25 @@ class MinigamePluginImpl implements MinigamePluginInterface */ private ArenaTypeDeclarationInterface defaultType; + /** the minigames plugin. */ + private final MinigamesPlugin mgplugin; + /** * Constructor to create a minigame. * + * @param mgplugin + * minigames plugin * @param name * internal name of the minigame. * @param provider * the provider. */ - public MinigamePluginImpl(String name, PluginProviderInterface provider) + public MinigamePluginImpl(MinigamesPlugin mgplugin, String name, PluginProviderInterface provider) { this.plugin = provider.getJavaPlugin(); this.messages = new MessagesConfig(this.plugin); this.name = name; + this.mgplugin = mgplugin; } @Override @@ -391,4 +398,10 @@ void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) this.defaultConfigs = configs; } + @Override + public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException + { + this.mgplugin.getApiContext().registerContextHandler(clazz, handler); + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 2ab3cc68..46560a85 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -57,6 +57,8 @@ import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; +import com.github.mce.minigames.impl.context.ArenaPlayerInterfaceProvider; +import com.github.mce.minigames.impl.context.MinigameContextImpl; import com.github.mce.minigames.impl.player.PlayerRegistry; /** @@ -88,6 +90,11 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface */ private final PlayerRegistry players = new PlayerRegistry(); + /** + * the minigame context implementation. + */ + private MinigameContextImpl contextImpl = new MinigameContextImpl(); + /** * Constructor to create the plugin. */ @@ -96,7 +103,7 @@ public MinigamesPlugin() // registers the core minigame. try { - this.register(new PluginProviderInterface() { + final MinigamePluginInterface mg2 = this.register(new PluginProviderInterface() { @Override public String getName() @@ -144,7 +151,12 @@ public Iterable<Class<? extends Enum<?>>> getConfigurations() result.add(CommonConfig.class); return result; } - }).init(); + }); + + // context provider + mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); + + mg2.init(); } catch (MinigameException ex) { @@ -242,7 +254,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws throw new MinigameException(CommonErrors.DuplicateMinigame, name); } - impl = new MinigamePluginImpl(name, provider); + impl = new MinigamePluginImpl(this, name, provider); // register commands final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); @@ -333,7 +345,7 @@ public Iterable<ZoneInterface> findZones(Location location) return null; } - @Override + @Override public ArenaPlayerInterface getPlayer(Player player) { return this.players.getPlayer(player); @@ -418,28 +430,25 @@ public MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item) return null; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getContext(java.lang.Class) + /** + * Returns the global context implementation. + * @return global context implementation. */ + public MinigameContextImpl getApiContext() + { + return this.contextImpl; + } + @Override public <T> T getContext(Class<T> clazz) { - // TODO Auto-generated method stub - return null; + return this.contextImpl.getContext(clazz); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#resolveContextVar(java.lang.String) - */ @Override public String resolveContextVar(String src) { - // TODO Auto-generated method stub - return null; + return this.contextImpl.resolveContextVar(src); } /* diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java new file mode 100644 index 00000000..f0dec207 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.context; + +import com.github.mce.minigames.api.ContextHandlerInterface; +import com.github.mce.minigames.api.MinigameContext; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * @author mepeisen + * + */ +public class ArenaPlayerInterfaceProvider implements ContextHandlerInterface<ArenaPlayerInterface> +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromCommand(com.github.mce.minigames.api.cmd.CommandInterface, com.github.mce.minigames.api.MinigameContext) + */ + @Override + public ArenaPlayerInterface calculateFromCommand(CommandInterface command, MinigameContext context) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromEvent(com.github.mce.minigames.api.arena.rules.MinigameEvent, com.github.mce.minigames.api.MinigameContext) + */ + @Override + public ArenaPlayerInterface calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java new file mode 100644 index 00000000..81ae70ca --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java @@ -0,0 +1,197 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.context; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.github.mce.minigames.api.ContextHandlerInterface; +import com.github.mce.minigames.api.MinigameContext; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * Implementation of minigame context. + * + * @author mepeisen + */ +public class MinigameContextImpl implements MinigameContext +{ + + /** the registered context handlers. */ + private final Map<Class<?>, List<ContextHandlerInterface<?>>> handlers = new HashMap<>(); + + /** the thread local storage. */ + private final ThreadLocal<TLD> tls = ThreadLocal.withInitial(() -> new TLD()); + + /** + * Registers a context handler to calculate context variables. + * + * @param clazz + * context class. + * @param handler + * the context handler. + * @throws MinigameException + * thrown if the class to register is already registered. + * @param <T> + * context class to register + */ + public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException + { + this.handlers.computeIfAbsent(clazz, (key) -> new ArrayList<>()).add(handler); + } + + /** + * Runs given runnable with clean context. + * @param command + * @param runnable + */ + public void runInContext(CommandInterface command, Runnable runnable) + { + final TLD old = this.tls.get(); + final TLD tld = new TLD(); + this.tls.set(tld); + try + { + tld.clear(); + tld.command = command; + tld.event = null; + runnable.run(); + } + finally + { + this.tls.set(old); + tld.clear(); + tld.command = null; + tld.event = null; + } + } + + /** + * Runs given runnable with clean context. + * @param event + * @param runnable + */ + public void runInContext(MinigameEvent<?> event, Runnable runnable) + { + final TLD old = this.tls.get(); + final TLD tld = new TLD(); + this.tls.set(tld); + try + { + tld.clear(); + tld.command = null; + tld.event = event; + runnable.run(); + } + finally + { + this.tls.set(old); + tld.clear(); + tld.command = null; + tld.event = null; + } + } + + @SuppressWarnings("unchecked") + @Override + public <T> T getContext(Class<T> clazz) + { + final TLD data = this.tls.get(); + if (data.containsKey(clazz)) + { + return (T) data.get(clazz); + } + if (data.computeStack.contains(clazz)) + { + return null; + } + data.computeStack.add(clazz); + try + { + if (this.handlers.containsKey(clazz)) + { + for (final ContextHandlerInterface<?> handler : this.handlers.get(clazz)) + { + Object result = null; + if (data.command != null) + { + result = handler.calculateFromCommand(data.command, this); + } + else if (data.event != null) + { + result = handler.calculateFromEvent(data.event, this); + } + if (result != null) + { + data.put(clazz, result); + return (T) result; + } + } + } + data.put(clazz, null); + return null; + } + finally + { + data.computeStack.remove(clazz); + } + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigameContext#resolveContextVar(java.lang.String) + */ + @Override + public String resolveContextVar(String src) + { + // TODO Auto-generated method stub + return null; + } + + /** + * thread local data + */ + private static final class TLD extends HashMap<Class<?>, Object> + { + + /** + * serial version uid. + */ + private static final long serialVersionUID = 8827911884838600137L; + + /** the underlying command being executed. */ + public CommandInterface command; + /** the underlying event being executed. */ + public MinigameEvent<?> event; + + /** stack of computes to detect endless loops. */ + public Set<Class<?>> computeStack = new HashSet<>(); + + /** + * Constructor. + */ + public TLD() + { + // empty + } + } + +} From 0ea04eae4530cd67048f0e5637d973acf812c1cf Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 25 Aug 2016 19:23:48 +0200 Subject: [PATCH 106/266] v2 --- .../mce/minigames/api/MglibInterface.java | 8 ++++ .../cmd/AbstractCompositeCommandHandler.java | 18 +++++++++ .../cmd/AbstractPagableCommandHandler.java | 7 ++++ .../api/cmd/CommandHandlerInterface.java | 14 +++++++ .../minigames/api/cmd/HelpCommandHandler.java | 7 ++++ .../mce/minigames/impl/MinigamesPlugin.java | 37 ++++++++++++++----- .../minigames/impl/cmd/Mg2CommandHandler.java | 4 ++ .../impl/cmd/PartyAcceptCommandHandler.java | 12 ++++++ .../impl/cmd/PartyDisbandCommandHandler.java | 12 ++++++ .../impl/cmd/PartyInviteCommandHandler.java | 12 ++++++ .../impl/cmd/PartyKickCommandHandler.java | 12 ++++++ .../impl/cmd/PartyLeaveCommandHandler.java | 12 ++++++ .../impl/cmd/PartyListCommandHandler.java | 12 ++++++ .../impl/cmd/StartCommandHandler.java | 8 ++++ 14 files changed, 165 insertions(+), 10 deletions(-) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 6fede330..edc5a53e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -15,6 +15,7 @@ package com.github.mce.minigames.api; +import java.util.Locale; import java.util.UUID; import java.util.logging.Logger; @@ -81,6 +82,13 @@ public interface MglibInterface extends MinigameContext */ Logger getLogger(); + /** + * Returns the default locale used in minigame lib. + * + * @return default locale + */ + Locale getDefaultLocale(); + // initialization /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index e92d1cd5..d3c88ec4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -17,6 +17,8 @@ import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -108,5 +110,21 @@ public boolean injectSubCommand(String name, SubCommandHandlerInterface handler) * the command to be used. */ protected abstract void sendUsage(CommandInterface command); + + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + if (command.getArgs().length > 0) + { + final String name = command.getArgs()[0].toLowerCase(); + final CommandHandlerInterface handler = this.subCommands.get(name); + if (handler == null) + { + return null; + } + return handler.onTabComplete(command.consumeArgs(1)); + } + return new ArrayList<>(this.subCommands.keySet()); + } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java index 72e6416a..412cb999 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api.cmd; import java.io.Serializable; +import java.util.List; import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MinigameException; @@ -148,5 +149,11 @@ private void sendUsage(CommandInterface command) { command.send(CommonMessages.PageUsage, command.getCommandPath()); } + + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + return null; + } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java index dc8d20f6..a93f5b83 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; /** @@ -36,4 +38,16 @@ public interface CommandHandlerInterface */ void handle(CommandInterface command) throws MinigameException; + /** + * On Tab complete handler. + * + * @param command + * the command to handle. + * @return list of possible command completions. + * + * @throws MinigameException + * thrown if there are any problems during command handling. + */ + List<String> onTabComplete(CommandInterface command) throws MinigameException; + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java index 1bfa0041..4dbf35c2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -20,6 +20,7 @@ import java.util.List; import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** @@ -112,5 +113,11 @@ protected Serializable[] getLines(CommandInterface command, int start, int count } return this.subCommand.getDescription(command).toListArg(start, count, new Serializable[]{command.getCommandPath()}).apply(command.getLocale(), command.isOp()); } + + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 46560a85..2cf68875 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -184,7 +184,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St catch (MinigameException ex) { // TODO Logging - final Locale locale = Locale.ENGLISH; // TODO + final Locale locale = this.getDefaultLocale(); final boolean isAdmin = sender.isOp(); final String msg = isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())); switch (ex.getCode().getSeverity()) @@ -218,8 +218,20 @@ public boolean onCommand(CommandSender sender, Command command, String label, St @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - // TODO Auto-generated method stub - return super.onTabComplete(sender, command, alias, args); + final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); + if (handler != null) + { + try + { + final CommandInterface cmd = new CommandImpl(sender, this, command, null, args, '/' + command.getName()); + return handler.onTabComplete(cmd); + } + catch (MinigameException ex) + { + // TODO Logging + } + } + return null; } // api methods @@ -418,16 +430,11 @@ public MinigameInterface getMinigameFromPerm(PermissionsInterface item) return null; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromCfg(com.github.mce.minigames.api.config.ConfigurationValueInterface) - */ @Override public MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item) { - // TODO Auto-generated method stub - return null; + final String name = this.optionsToMinigame.get(item); + return name == null ? null : this.minigames.get(name); } /** @@ -522,5 +529,15 @@ public Iterable<SignInterface> getSigns(MinigameInterface minigame) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getDefaultLocale() + */ + @Override + public Locale getDefaultLocale() + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index 79e8a75a..11e353f4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -36,6 +36,10 @@ public Mg2CommandHandler() this.injectSubCommand("party", new PartyCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("start", new StartCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("help", new HelpCommandHandler(this)); //$NON-NLS-1$ +// info +// debug +// list +// test // TODO additional commands } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java index aa4e64d4..23030481 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; @@ -56,5 +58,15 @@ public LocalizedMessageInterface getDescription(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java index 77a20f54..35b77050 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; @@ -56,5 +58,15 @@ public LocalizedMessageInterface getDescription(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java index 2d59e158..155fe858 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; @@ -56,5 +58,15 @@ public LocalizedMessageInterface getDescription(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java index 88ee1efb..f51ed18d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; @@ -56,5 +58,15 @@ public LocalizedMessageInterface getDescription(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java index 25599382..7c056515 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; @@ -56,5 +58,15 @@ public LocalizedMessageInterface getDescription(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java index 784a0a66..a09a4fcb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.cmd; +import java.util.List; + import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; @@ -56,5 +58,15 @@ public LocalizedMessageInterface getDescription(CommandInterface command) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index c33c53c4..d96eff0f 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -19,6 +19,8 @@ import static com.github.mce.minigames.api.player.ArenaPlayerInterface.hasPerm; import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; +import java.util.List; + import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; @@ -79,5 +81,11 @@ public LocalizedMessageInterface getDescription(CommandInterface command) { return CommonMessages.StartCommandDescription; } + + @Override + public List<String> onTabComplete(CommandInterface command) throws MinigameException + { + return null; + } } From 11e151d042d73055b29b686ae82e57269cea8c08 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 25 Aug 2016 22:17:04 +0200 Subject: [PATCH 107/266] fixes https://github.com/MysticCity/MinigamesAPI/issues/97 --- .../comze_instancelabs/minigamesapi/Arena.java | 13 ++++++++----- .../minigamesapi/ArenaConfigStrings.java | 15 +++++++++++++++ .../minigamesapi/config/DefaultConfig.java | 4 ++++ APIv2/src/site/markdown/migrationList.md | 3 +++ changelog.md | 1 + 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index ee93e9c9..4a24d811 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -1169,11 +1169,14 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) { p.setAllowFlight(false); } - p.setGameMode(ap.getOriginalGamemode()); - p.setLevel(ap.getOriginalXplvl()); - p.getInventory().setContents(ap.getInventory()); - p.getInventory().setArmorContents(ap.getArmorInventory()); - p.updateInventory(); + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_GAMEMMODE)) p.setGameMode(ap.getOriginalGamemode()); + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_XP)) p.setLevel(ap.getOriginalXplvl()); + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_INVENTORY)) + { + p.getInventory().setContents(ap.getInventory()); + p.getInventory().setArmorContents(ap.getArmorInventory()); + p.updateInventory(); + } p.setWalkSpeed(0.2F); p.addPotionEffect(new PotionEffect(PotionEffectType.SATURATION, 20 * 2, 50)); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java index f48725cd..32f8cd0b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -265,4 +265,19 @@ public interface ArenaConfigStrings /** TODO: describe config option. */ String CONFIG_MYSQL_DATABASE = "mysql.database"; //$NON-NLS-1$ + /** + * Activation of inventory reset on leave. + */ + String RESET_INVENTORY = "config.reset_on_leave.inventory"; //$NON-NLS-1$ + + /** + * Activation of xp reset on leave. + */ + String RESET_XP = "config.reset_on_leave.xp"; //$NON-NLS-1$ + + /** + * Activation of gamemode reset on leave. + */ + String RESET_GAMEMMODE = "config.reset_on_leave.gamemode"; //$NON-NLS-1$ + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index ceb78fcb..c9151987 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -141,6 +141,10 @@ public static void init(final JavaPlugin plugin, final boolean custom) config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_USER, "root"); config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_PW, "root"); config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_DATABASE, "mcminigames"); + + config.addDefault(ArenaConfigStrings.RESET_GAMEMMODE, true); + config.addDefault(ArenaConfigStrings.RESET_INVENTORY, true); + config.addDefault(ArenaConfigStrings.RESET_XP, true); } config.options().copyDefaults(true); plugin.saveConfig(); diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md index 375db5cf..c2aba4b0 100644 --- a/APIv2/src/site/markdown/migrationList.md +++ b/APIv2/src/site/markdown/migrationList.md @@ -235,6 +235,9 @@ - [ ] String CONFIG\_MYSQL\_USER - [ ] String CONFIG\_MYSQL\_PW - [ ] String CONFIG\_MYSQL\_DATABASE +- [ ] String RESET\_INVENTORY +- [ ] String RESET\_XP +- [ ] String RESET\_GAMEMODE ## ArenaListener.java diff --git a/changelog.md b/changelog.md index 44aea27a..0e09c43c 100644 --- a/changelog.md +++ b/changelog.md @@ -14,6 +14,7 @@ * Effects.playOutTitle fixed (https://github.com/MysticCity/MinigamesAPI/issues/112) * Feature for displaying arena states in MOTD. See config.yml of Minigames-LIB, enable at config.motd.enabled (https://github.com/MysticCity/MinigamesAPI/issues/54) * Players in vehicles can not longer leave arena bounds (https://github.com/MysticCity/MinigamesAPI/issues/78) +* Config options to disable xp/inventory/gamemode reset on leave (https://github.com/MysticCity/MinigamesAPI/issues/97) ###### BedWars From de5c34991dc4ca1f216ef93d422d9d65d7677b90 Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Thu, 25 Aug 2016 22:56:13 +0200 Subject: [PATCH 108/266] preparing 1.14.11 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 229b7983..dd9d463d 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 40179ebe..6b63ad1c 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 4a9cc6dd..d440a199 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index b7dc12f0..a37794e5 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 6f1f02f3..b0d42608 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.11-SNAPSHOT</version> + <version>1.14.11</version> <scope>provided</scope> </dependency> <dependency> From 886d38adf16c87084aadcaad7578b32787c5489e Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Thu, 25 Aug 2016 22:56:13 +0200 Subject: [PATCH 109/266] switching to 1.14.12 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index dd9d463d..0fb100f7 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 6b63ad1c..dc543160 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index d440a199..394f379b 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index a37794e5..9f385cc4 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index b0d42608..4934c270 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.11</minigames.releaseversion> + <minigames.releaseversion>1.14.12</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From ce7054637e32c52ad9540c6e55f9d1411f0d2b5a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 25 Aug 2016 23:01:17 +0200 Subject: [PATCH 110/266] release 1.14.11 --- API/pom.xml | 4 +- APIv2/pom.xml | 220 +++++++++++++++++++-------------------- LIBv2/pom.xml | 248 ++++++++++++++++++++++---------------------- Spigot-Test/pom.xml | 4 +- pom.xml | 4 +- 5 files changed, 240 insertions(+), 240 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 0fb100f7..dd9d463d 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.11</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.11</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index dc543160..9f4c6299 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -1,111 +1,111 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI</name> - <description>Rich Minigames API V2</description> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI</name> + <description>Rich Minigames API V2</description> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.11</version> + </parent> + + <dependencies> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + </project> \ No newline at end of file diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 394f379b..0b0d51d7 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -1,125 +1,125 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib</artifactId> - <version>1.14.9-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.11</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib</artifactId> + <version>1.14.9-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + </project> \ No newline at end of file diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 9f385cc4..a37794e5 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.11</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.11</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 4934c270..011f03fd 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.11</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.11</version> <scope>provided</scope> </dependency> <dependency> From 55ad5e77b074d104c890809d9b85a6703c916d0d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 25 Aug 2016 23:03:38 +0200 Subject: [PATCH 111/266] switching to 1.14.12 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index dd9d463d..0fb100f7 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 9f4c6299..f126dd90 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 0b0d51d7..ff6512f6 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index a37794e5..9f385cc4 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 011f03fd..4934c270 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.11</version> + <version>1.14.12-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From 57a7827ec10c69aaa579d86b649119bdd745fe93 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 26 Aug 2016 09:01:24 +0200 Subject: [PATCH 112/266] v2 --- .../cmd/AbstractCompositeCommandHandler.java | 7 +- .../cmd/AbstractPagableCommandHandler.java | 5 +- .../api/cmd/CommandHandlerInterface.java | 4 +- .../minigames/api/cmd/HelpCommandHandler.java | 5 +- .../mce/minigames/impl/MinigamesPlugin.java | 12 ++- .../minigames/impl/cmd/AddCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/AdminCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/CreateCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/DebugCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/EditCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/GetOptCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/InfoCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/JoinCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/LeaveCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/ListCommandHandler.java | 73 +++++++++++++++++++ .../minigames/impl/cmd/Mg2CommandHandler.java | 22 ++++-- .../impl/cmd/PartyAcceptCommandHandler.java | 2 +- .../impl/cmd/PartyCommandHandler.java | 2 + .../impl/cmd/PartyDisbandCommandHandler.java | 2 +- .../impl/cmd/PartyInviteCommandHandler.java | 2 +- .../impl/cmd/PartyKickCommandHandler.java | 2 +- .../impl/cmd/PartyLeaveCommandHandler.java | 2 +- .../impl/cmd/PartyListCommandHandler.java | 2 +- .../impl/cmd/RemoveCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/SaveCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/SetOptCommandHandler.java | 73 +++++++++++++++++++ .../impl/cmd/StartCommandHandler.java | 5 +- .../impl/cmd/TestCommandHandler.java | 73 +++++++++++++++++++ .../impl/context/MinigameContextImpl.java | 2 +- 29 files changed, 1074 insertions(+), 24 deletions(-) create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index d3c88ec4..914dda19 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; +import java.util.stream.Collectors; import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonMessages; @@ -112,7 +113,7 @@ public boolean injectSubCommand(String name, SubCommandHandlerInterface handler) protected abstract void sendUsage(CommandInterface command); @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { if (command.getArgs().length > 0) { @@ -122,9 +123,9 @@ public List<String> onTabComplete(CommandInterface command) throws MinigameExcep { return null; } - return handler.onTabComplete(command.consumeArgs(1)); + return handler.onTabComplete(command.consumeArgs(1), lastArg); } - return new ArrayList<>(this.subCommands.keySet()); + return new ArrayList<>(this.subCommands.keySet()).stream().filter(elm -> elm.startsWith(lastArg)).collect(Collectors.toList()); } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java index 412cb999..cff5ec0f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api.cmd; import java.io.Serializable; +import java.util.Collections; import java.util.List; import com.github.mce.minigames.api.CommonMessages; @@ -151,9 +152,9 @@ private void sendUsage(CommandInterface command) } @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { - return null; + return Collections.emptyList(); } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java index a93f5b83..60e105c0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java @@ -43,11 +43,13 @@ public interface CommandHandlerInterface * * @param command * the command to handle. + * @param lastArg + * the last argument to be completed. * @return list of possible command completions. * * @throws MinigameException * thrown if there are any problems during command handling. */ - List<String> onTabComplete(CommandInterface command) throws MinigameException; + List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java index 4dbf35c2..42665b44 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -17,6 +17,7 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import com.github.mce.minigames.api.CommonMessages; @@ -115,9 +116,9 @@ protected Serializable[] getLines(CommandInterface command, int start, int count } @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { - return null; + return Collections.emptyList(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 2cf68875..0d931f09 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.impl; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -218,13 +219,20 @@ public boolean onCommand(CommandSender sender, Command command, String label, St @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + String lastArg = null; + String[] newArgs = null; + if (args.length > 0) + { + lastArg = args[args.length - 1].toLowerCase(); + newArgs = Arrays.copyOf(args, args.length - 1); + } final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); if (handler != null) { try { - final CommandInterface cmd = new CommandImpl(sender, this, command, null, args, '/' + command.getName()); - return handler.onTabComplete(cmd); + final CommandInterface cmd = new CommandImpl(sender, this, command, null, newArgs, '/' + command.getName()); + return handler.onTabComplete(cmd, lastArg); } catch (MinigameException ex) { diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java new file mode 100644 index 00000000..ccac5de9 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class AddCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java new file mode 100644 index 00000000..228ff06f --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class AdminCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java new file mode 100644 index 00000000..0928ab34 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class CreateCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java new file mode 100644 index 00000000..7297896e --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class DebugCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java new file mode 100644 index 00000000..298e00c1 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class EditCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java new file mode 100644 index 00000000..9d1d48e1 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class GetOptCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java new file mode 100644 index 00000000..341f12f6 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class InfoCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java new file mode 100644 index 00000000..bbe3cde5 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class JoinCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java new file mode 100644 index 00000000..cf4b278a --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class LeaveCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java new file mode 100644 index 00000000..565ceba2 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class ListCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index 11e353f4..23be9b4d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -33,14 +33,26 @@ public class Mg2CommandHandler extends AbstractCompositeCommandHandler */ public Mg2CommandHandler() { + // user commands this.injectSubCommand("party", new PartyCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("start", new StartCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("help", new HelpCommandHandler(this)); //$NON-NLS-1$ -// info -// debug -// list -// test - // TODO additional commands + this.injectSubCommand("info", new InfoCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("list", new ListCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("debug", new DebugCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("join", new JoinCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("leave", new LeaveCommandHandler()); //$NON-NLS-1$ + + // admin commands + this.injectSubCommand("test", new TestCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("admin", new AdminCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("create", new CreateCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("add", new AddCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("edit", new EditCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("remove", new RemoveCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("setopt", new SetOptCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("getopt", new GetOptCommandHandler()); //$NON-NLS-1$ + this.injectSubCommand("save", new SaveCommandHandler()); //$NON-NLS-1$ } @Override diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java index 23030481..17e49dbd 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java index 882366f4..ecaa15b5 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java @@ -20,6 +20,7 @@ import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.HelpCommandHandler; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; @@ -43,6 +44,7 @@ public PartyCommandHandler() this.subCommands.put("list", new PartyListCommandHandler()); //$NON-NLS-1$ this.subCommands.put("disband", new PartyDisbandCommandHandler()); //$NON-NLS-1$ this.subCommands.put("leave", new PartyLeaveCommandHandler()); //$NON-NLS-1$ + this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ } @Override diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java index 35b77050..b4b2b6cc 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java index 155fe858..b41b0998 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java index f51ed18d..f0fccf6a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java index 7c056515..c31402f5 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java index a09a4fcb..a8344b19 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java new file mode 100644 index 00000000..24be0ee0 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class RemoveCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java new file mode 100644 index 00000000..eb94cff4 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class SaveCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java new file mode 100644 index 00000000..a86e8ee9 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class SetOptCommandHandler implements SubCommandHandlerInterface +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index d96eff0f..3c5c4d0a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -19,6 +19,7 @@ import static com.github.mce.minigames.api.player.ArenaPlayerInterface.hasPerm; import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; +import java.util.Collections; import java.util.List; import com.github.mce.minigames.api.CommonErrors; @@ -83,9 +84,9 @@ public LocalizedMessageInterface getDescription(CommandInterface command) } @Override - public List<String> onTabComplete(CommandInterface command) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { - return null; + return Collections.emptyList(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java new file mode 100644 index 00000000..fe7b72f4 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.util.List; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class TestCommandHandler implements SubCommandHandlerInterface +{ + + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public void handle(CommandInterface command) throws MinigameException + { + // TODO Auto-generated method stub + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) + */ + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) + */ + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java index 81ae70ca..2a953106 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java @@ -163,7 +163,7 @@ else if (data.event != null) public String resolveContextVar(String src) { // TODO Auto-generated method stub - return null; + return src; } /** From eed822dc6a6009f67c57f52cfcbaa0b486150000 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 26 Aug 2016 19:27:08 +0200 Subject: [PATCH 113/266] v2 --- .../mce/minigames/api/CommonErrors.java | 49 ++ .../mce/minigames/api/CommonMessages.java | 290 ++++++++-- .../api/CommonProviderInterface.java | 83 +++ .../mce/minigames/api/MglibInterface.java | 88 ++- .../mce/minigames/api/MinigameInterface.java | 21 +- .../api/PluginProviderInterface.java | 59 +- .../minigames/api/arena/ArenaInterface.java | 34 ++ .../mce/minigames/api/arena/ArenaState.java | 56 ++ .../minigames/api/cmd/HelpCommandHandler.java | 68 ++- .../minigames/api/config/CommonConfig.java | 14 +- .../minigames/api/config/ConfigInterface.java | 45 ++ .../api/config/ConfigurationTool.java | 21 +- .../config/ConfigurationValueInterface.java | 9 +- .../api/locale/LocalizedMessage.java | 110 ++++ .../api/locale/LocalizedMessageInterface.java | 69 ++- .../api/locale/LocalizedMessageList.java | 110 ++++ .../services/MinigameExtensionInterface.java | 54 ++ .../MinigameExtensionProviderInterface.java | 54 ++ .../site/markdown/dev_minigame_messages.md | 46 +- LIBv2/pom.xml | 5 - .../github/mce/minigames/impl/BaseImpl.java | 302 ++++++++++ .../mce/minigames/impl/CoreMinigame.java | 114 ++++ .../mce/minigames/impl/ExtensionImpl.java | 62 +++ .../minigames/impl/MinigamePluginImpl.java | 275 +--------- .../mce/minigames/impl/MinigameWrapper.java | 31 +- .../mce/minigames/impl/MinigamesPlugin.java | 519 ++++++++++++------ .../impl/cmd/InfoArenasCommandHandler.java | 99 ++++ .../impl/cmd/InfoCommandHandler.java | 57 +- .../cmd/InfoExtensionsCommandHandler.java | 70 +++ .../impl/cmd/InfoMinigamesCommandHandler.java | 71 +++ .../minigames/impl/cmd/Mg2CommandHandler.java | 2 +- .../impl/player/ArenaPlayerImpl.java | 35 +- .../PremiumServiceProviderInterface.java | 31 ++ LIBv2/src/main/resources/config.yml | 6 - 34 files changed, 2329 insertions(+), 630 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java index 9bf98ec9..2fda4a9d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -41,6 +41,43 @@ public enum CommonErrors implements MinigameErrorCode @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because of wrong MinigamesLib plugin state: %2$s.", severity = MessageSeverityType.Error) Cannot_Create_Game_Wrong_State, + /** + * Extension cannot be initialized because minigames-lib has wrong state. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: extension name</li> + * <li>String: current plugin lib state</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because of wrong MinigamesLib plugin state: %2$s.", severity = MessageSeverityType.Error) + Cannot_Create_Extension_Wrong_State, + + /** + * Game cannot be initialized because of internal errors. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because of internal errors, see previous log output.", severity = MessageSeverityType.Error) + MinigameRegistrationError, + + /** + * Extension cannot be initialized because of internal errors. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: extension name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because of internal errors, see previous log output.", severity = MessageSeverityType.Error) + ExtensionRegistrationError, + /** * Game cannot be initialized because it already exists. * @@ -53,6 +90,18 @@ public enum CommonErrors implements MinigameErrorCode @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because it already exists.", severity = MessageSeverityType.Error) DuplicateMinigame, + /** + * Extension cannot be initialized because it already exists. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: extension name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because it already exists.", severity = MessageSeverityType.Error) + DuplicateExtension, + /** * Command must be executed in game. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index a057033c..94ee7d53 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -42,6 +42,74 @@ public enum CommonMessages implements LocalizedMessageInterface */ @LocalizedMessage(defaultMessage = "Arena %1$s was started by player: %2$s.", severity = MessageSeverityType.Success) ArenaStartedByCommand, + + /** + * arena join state + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.GREEN + "Join") + AraneStateJoin, + + /** + * arena join state + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.YELLOW + "Starting") + AraneStateStarting, + + /** + * arena ingame state + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.YELLOW + "InGame") + AraneStateInGame, + + /** + * arena restarting state + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.YELLOW + "Restarting") + AraneStateRestarting, + + /** + * arena disabled state + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.RED + "Disabled") + AraneStateDisabled, + + /** + * arena meintenance state + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.RED + "Maintenance") + AraneStateMeintenance, + + /** + * The core minigame description + * + * <p>no arguments.</p> + */ + @LocalizedMessage(defaultMessage = "CORE (MinigamesLib)") + CoreMinigameDescription, + + /** + * The core minigame description + * + * <p>no arguments.</p> + */ + @LocalizedMessageList({ + "The CORE minigame does not provide any game.", + "It is part of the library itself.", + "You cannot create arenas for minigame CORE." + }) + CoreMinigameLongDescription, // ***** commands, usages etc. @@ -54,7 +122,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: current command path</li> * </ol> */ - @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [subcommand] §7Call party sub commands.") + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s [subcommand] " + LocalizedMessage.GRAY + "Call party sub commands.") PartyCommandUsage, /** @@ -86,6 +154,163 @@ public enum CommonMessages implements LocalizedMessageInterface }) PartyCommandDescription, + /** + * The command output of /mg2 info. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * <li>String: spigot version</li> + * <li>String: minigames version</li> + * <li>String: mode</li> + * <li>String: debug</li> + * </ol> + */ + @LocalizedMessageList({ + "minigames lib version %3$s (%4$s)", + "running on minecraft %2$s", + "debugging: %5$s", + "----------", + "Run for additional information:", + " " + LocalizedMessage.BLUE + "%1$s extensions " + LocalizedMessage.GRAY + " to list the extensions.", + " " + LocalizedMessage.BLUE + "%1$s minigames " + LocalizedMessage.GRAY + " to list the minigames.", + " " + LocalizedMessage.BLUE + "%1$s arenas " + LocalizedMessage.GRAY + " to list the arenas." + }) + InfoCommandOutput, + + /** + * Usage of info command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "Information on minigames lib.") + InfoCommandUsage, + + /** + * Short description of info command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Information on minigames lib.") + InfoCommandShortDescription, + + /** + * Long description of info command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessageList({ + "Display some useful information on the minigames library.", + "Version information, important options etc.", + "This command requires an administrator permission.", + " " + LocalizedMessage.BLUE + "%1$s extensions " + LocalizedMessage.GRAY + " to list the extensions.", + " " + LocalizedMessage.BLUE + "%1$s minigames " + LocalizedMessage.GRAY + " to list the minigames.", + " " + LocalizedMessage.BLUE + "%1$s arenas " + LocalizedMessage.GRAY + " to list the arenas." + }) + InfoCommandDescription, + + /** + * Info with unknown sub command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command line</li> + * <li>String: The sub command</li> + */ + @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) + InfoUnknownSubCommand, + + /** + * Info minigames command header. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "minigames") + InfoMinigamesHeader, + + /** + * Info minigames line. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The minigame name</li> + * <li>String: The short description</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "%2$s") + InfoMinigamesLine, + + /** + * Info extensions command header. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "extensions") + InfoExtensionsHeader, + + /** + * Info extensions line. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The extension name</li> + * <li>String: The short description</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "%2$s") + InfoExtensionLine, + + /** + * Info arenas command header. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command that was entered</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "arenas") + InfoArenasHeader, + + /** + * Info arenas line. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The minigame name</li> + * <li>String: The internal name</li> + * <li>String: The arena state</li> + * <li>String: The display name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s %2$s " + LocalizedMessage.GRAY + "[%3$s" + LocalizedMessage.GRAY + "] %4$s") + InfoArenaLine, + /** * Usage of start command. * @@ -95,7 +320,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: current command path</li> * </ol> */ - @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s §7Force the current arena to start.") + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "Force the current arena to start.") StartCommandUsage, /** @@ -139,7 +364,7 @@ public enum CommonMessages implements LocalizedMessageInterface * * <p>No arguments.</p> */ - @LocalizedMessage(defaultMessage = "§7Type §9/mg2 help §7for detailed help", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Type " + LocalizedMessage.BLUE + "/mg2 help " + LocalizedMessage.GRAY + "for detailed help", severity = MessageSeverityType.Success) Mg2CommandUsage, /** @@ -152,7 +377,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: current sub command</li> * </ol> */ - @LocalizedMessage(defaultMessage = "Unknown command §9%1$s %2$s", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) CompositeUnknownSubCommand, /** @@ -166,7 +391,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: total pages</li> * </ol> */ - @LocalizedMessage(defaultMessage = "§7=====§9%1$s§7====§9Page §1%2$d §9 from §1%3$d§7=====") + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "=====" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.GRAY + "====" + LocalizedMessage.BLUE + "Page " + LocalizedMessage.DARK_BLUE + "%2$d " + LocalizedMessage.BLUE + " from " + LocalizedMessage.DARK_BLUE + "%3$d" + LocalizedMessage.GRAY + "=====") PagedHeader, /** @@ -179,7 +404,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>Integer: line number</li> * </ol> */ - @LocalizedMessage(defaultMessage = " §7%1$s") + @LocalizedMessage(defaultMessage = " " + LocalizedMessage.GRAY + "%1$s") PagedLine, /** @@ -213,33 +438,9 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: The command that was entered</li> * </ol> */ - @LocalizedMessage(defaultMessage = "§7Usage: §9%1$s [page] §7Display the given page.") + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s [page] " + LocalizedMessage.GRAY + "Display the given page.") PageUsage, - /** - * Help command usage. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "§9%1$s help [page] Display help with given page number.") - HelpPagedUsage, - - /** - * Help command usage. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "§9%1$s help [page] Display the help with given page number.") - HelpCommandUsage, - /** * Help command header. * @@ -262,7 +463,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <li>String: The short description</li> * </ol> */ - @LocalizedMessage(defaultMessage = "§9%1$s §7%2$s") + @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "%2$s") HelpLineUsage, /** @@ -270,9 +471,21 @@ public enum CommonMessages implements LocalizedMessageInterface * * <p>No arguments.</p> */ - @LocalizedMessage(defaultMessage = "§7Display command help") + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Display command help") HelpShortDescription, + /** + * Help on unknown sub command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: The command line</li> + * <li>String: The sub command</li> + */ + @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) + HelpUnknownSubCommand, + /** * Help command long description. * @@ -284,11 +497,12 @@ public enum CommonMessages implements LocalizedMessageInterface * </ol> */ @LocalizedMessageList({ - "§7Displays command help for command §9%1$s", - "§7Usage: §9%1$s [page] §7Display the given help page.", - "§7The argument §9page is optional. If not entered it", - "§7will always display the first help page.", + LocalizedMessageList.GRAY + "Displays command help for command " + LocalizedMessageList.BLUE + "%1$s", + LocalizedMessageList.GRAY + "Usage: " + LocalizedMessageList.BLUE + "%1$s [command] [page] " + LocalizedMessageList.GRAY + "Display the given help page.", + LocalizedMessageList.GRAY + "The argument " + LocalizedMessageList.BLUE + "page is optional. If not entered it", + LocalizedMessageList.GRAY + "will always display the first help page.", + LocalizedMessageList.GRAY + "If a command name is given it will display help on that command.", }) - HelpLongDescription, + HelpLongDescription; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java new file mode 100644 index 00000000..49e0cd50 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java @@ -0,0 +1,83 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +import java.util.Map; + +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; + +/** + * Basic interface for providers, either minigame plugins or extensions. + * + * @author mepeisen + */ +public interface CommonProviderInterface +{ + + /** + * Returns the java plugin that creates the component. + * + * @return java plugin. + */ + JavaPlugin getJavaPlugin(); + + /** + * Returns the messages classes for predefined messages. + * + * <p> + * Simple return {@code null} if you only use the default messages from minigames library. + * </p> + * + * @return message classes for predefined messages. + */ + Iterable<Class<? extends Enum<?>>> getMessageClasses(); + + /** + * Returns the permission classes. + * + * <p> + * Simple return {@code null} if you only use the default permissions from minigames library. + * </p> + * + * @return permission classes for predefined permissions. + */ + Iterable<Class<? extends Enum<?>>> getPermissions(); + + /** + * Returns the bukkit (main) commands registered by this minigame. + * + * <p> + * Simply return {@code null} if there are no additional bukkit commands to register. + * </p> + * + * @return bukkit (main) commands. + */ + Map<String, CommandHandlerInterface> getBukkitCommands(); + + /** + * Returns the configuration classes. + * + * <p> + * Simple return {@code null} if you only use the default configuration options from minigames library. + * </p> + * + * @return configuration classes for predefined configurations. + */ + Iterable<Class<? extends Enum<?>>> getConfigurations(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index edc5a53e..c0467c41 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -15,6 +15,7 @@ package com.github.mce.minigames.api; +import java.io.Serializable; import java.util.Locale; import java.util.UUID; import java.util.logging.Logger; @@ -28,10 +29,14 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationValueInterface; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.services.MinigameExtensionInterface; +import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.zones.ZoneInterface; @@ -75,6 +80,13 @@ public interface MglibInterface extends MinigameContext */ MinecraftVersionsType getMinecraftVersion(); + /** + * Returns the library version string. + * + * @return library version string. + */ + Serializable getLibVersionString(); + /** * Returns a logger for the library. * @@ -91,6 +103,17 @@ public interface MglibInterface extends MinigameContext // initialization + /** + * Registers a new extension. + * + * @param extension + * minigame extension to register. + * @return the minigame extension + * @throws MinigameException + * thrown if the minigame with given name is already registered. + */ + MinigameExtensionInterface register(MinigameExtensionProviderInterface extension) throws MinigameException; + /** * Registers a new minigame; should be called in {@link JavaPlugin#onEnable()}. * @@ -110,14 +133,14 @@ public interface MglibInterface extends MinigameContext // main api /** - * Returns the minigame with given name. + * Returns the message api declaring the given message. * - * @param minigame - * the minigames name + * @param item + * the enumeration value; only works on classes that are returned by a plugin or extension provider during initialization. * - * @return the minigame or {@code null} if is not available. + * @return message api or {@code null} if the class was not declared by any minigame or extension. */ - MinigameInterface getMinigame(String minigame); + MessagesConfigInterface getMessagesFromMsg(LocalizedMessageInterface item); /** * Returns the minigame declaring the given enumeration class. @@ -127,27 +150,55 @@ public interface MglibInterface extends MinigameContext * * @return minigame or {@code null} if the class was not declared by any minigame. */ - MinigameInterface getMinigameFromMsg(LocalizedMessageInterface item); + MinigameInterface getMinigameFromPerm(PermissionsInterface item); /** - * Returns the minigame declaring the given enumeration class. + * Returns the configuration declaring the given configuration value. * * @param item - * the enumeration value; only works on classes that are returned by a plugin provider during initialization. + * the configuration value; only works on classes that are returned by a plugin or extension provider during initialization. * - * @return minigame or {@code null} if the class was not declared by any minigame. + * @return config provider or {@code null} if the class was not declared by any minigame or extension. */ - MinigameInterface getMinigameFromPerm(PermissionsInterface item); + ConfigInterface getConfigFromCfg(ConfigurationValueInterface item); /** - * Returns the minigame declaring the given configuration value. + * Return the amount of installed extensions. * - * @param item - * the configuration value; only works on classes that are returned by a plugin provider during initialization. + * @return extensions count. + */ + int getExtensionsCount(); + + /** + * Return the installed extensions. * - * @return minigame or {@code null} if the class was not declared by any minigame. + * @return extensions. + */ + Iterable<MinigameExtensionInterface> getExtensions(); + + /** + * Return the amount of installed minigames. + * + * @return minigames count. + */ + int getMinigamesCount(); + + /** + * Return the installed minigames. + * + * @return minigames. + */ + Iterable<MinigameInterface> getMinigames(); + + /** + * Returns the minigame with given name. + * + * @param minigame + * the minigames name + * + * @return the minigame or {@code null} if is not available. */ - MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item); + MinigameInterface getMinigame(String minigame); // zone api @@ -275,6 +326,13 @@ public interface MglibInterface extends MinigameContext */ Iterable<ArenaInterface> getArenas(); + /** + * Return the amount of arenas. + * + * @return amount of arenas. + */ + int getArenaCount(); + /** * Returns all arenas of given type. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 24c0b5c6..a4689f97 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -15,12 +15,12 @@ package com.github.mce.minigames.api; +import java.io.Serializable; import java.util.logging.Logger; -import org.bukkit.configuration.ConfigurationSection; - import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; /** @@ -28,7 +28,7 @@ * * @author mepeisen */ -public interface MinigameInterface +public interface MinigameInterface extends ConfigInterface { /** @@ -79,20 +79,17 @@ public interface MinigameInterface Logger getLogger(); /** - * Returns the bukkit configuration for given file. + * Returns the short description of the minigame * - * @param file - * configuration file name. - * @return the configuration file. + * @return minigame short description */ - ConfigurationSection getConfig(String file); + Serializable getShortDescription(); /** - * Saves the configuration for given file. + * Returns the long description of the minigame * - * @param file - * configuration file name. + * @return minigame long description (multi line) */ - void saveConfig(String file); + Serializable getLongDescription(); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java index 25d187a1..5a8a65b6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java @@ -15,76 +15,39 @@ package com.github.mce.minigames.api; -import java.util.Map; +import java.io.Serializable; import org.bukkit.plugin.java.JavaPlugin; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; /** * An interface that should be implemented by the {@link JavaPlugin} of a specific minigame. * * @author mepeisen */ -public interface PluginProviderInterface +public interface PluginProviderInterface extends CommonProviderInterface { - /** - * Returns the java plugin that creates this minigame. - * - * @return java plugin. - */ - JavaPlugin getJavaPlugin(); - /** * Returns the technical name of the minigame. * * @return minigame name. */ String getName(); - - /** - * Returns the messages classes for predefined messages. - * - * <p> - * Simple return {@code null} if you only use the default messages from minigames library. - * </p> - * - * @return message classes for predefined messages. - */ - Iterable<Class<? extends Enum<?>>> getMessageClasses(); - - /** - * Returns the permission classes. - * - * <p> - * Simple return {@code null} if you only use the default permissions from minigames library. - * </p> - * - * @return permission classes for predefined permissions. - */ - Iterable<Class<? extends Enum<?>>> getPermissions(); - + /** - * Returns the bukkit (main) commands registered by this minigame. - * - * <p> - * Simply return {@code null} if there are no additional bukkit commands to register. - * </p> + * Returns the short description of the minigame. * - * @return bukkit (main) commands. + * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. */ - Map<String, CommandHandlerInterface> getBukkitCommands(); - + Serializable getShortDescription(); + /** - * Returns the configuration classes. - * - * <p> - * Simple return {@code null} if you only use the default configuration options from minigames library. - * </p> + * Returns the long multi line description of the minigame. * - * @return configuration classes for predefined configurations. + * @return A long multi line description; use method {@link LocalizedMessageInterface#toListArg(Serializable...)} on the message. */ - Iterable<Class<? extends Enum<?>>> getConfigurations(); + Serializable getDescription(); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index 7eb69580..2b7641dd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -19,6 +19,7 @@ import java.util.logging.Logger; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; @@ -80,6 +81,39 @@ public interface ArenaInterface * @return logger instance. */ Logger getLogger(); + + /** + * Returns the declaring minigame + * @return minigame + */ + MinigameInterface getMinigame(); + + /** + * Returns the arena state. + * + * <p> + * WARNING: You should not use this method to query the arena state. + * Instead either use the predicates or use the {@link #getRealState()} method. + * </p> + * + * @return arena state + */ + ArenaState getState(); + + /** + * Returns the real arena state. + * + * <p> + * While {@link #getState()} will return the public visible state this method + * returns the real state for gaming rules etc. While the arena state being MAINTENANCE + * the administrator is still able to start a single match to test the arena. + * Thus the real state may be {@link ArenaState#InGame} during tests while + * the arena state still shows up {@link ArenaState#Maintenance}. + * </p> + * + * @return arena state + */ + ArenaState getRealState(); // stubbing diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java new file mode 100644 index 00000000..06d813be --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java @@ -0,0 +1,56 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * Common arena states. + * + * @author mepeisen + */ +public enum ArenaState +{ + + /** + * Players can join the arena. + */ + Join, + + /** + * Arena is starting a match. + */ + Starting, + + /** + * A match is running. + */ + InGame, + + /** + * The arena is restarting. + */ + Restarting, + + /** + * The arena is disabled. + */ + Disabled, + + /** + * The arena is under maintenance. + */ + Maintenance + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java index 42665b44..5035f36c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java @@ -19,10 +19,14 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.logging.Level; +import java.util.stream.Collectors; import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface.DynamicArg; /** * Prints help based on single sub command handlers. @@ -38,6 +42,42 @@ public class HelpCommandHandler extends AbstractPagableCommandHandler implements /** help on composite command. */ private AbstractCompositeCommandHandler compositeCommand; + + @Override + public void handle(CommandInterface command) throws MinigameException + { + if (command.getArgs().length >= 1 && this.compositeCommand != null) + { + try + { + Integer.parseInt(command.getArgs()[0]); + } + catch (@SuppressWarnings("unused") NumberFormatException ex) + { + // assume we have a command name given to us. + final String name = command.getArgs()[0].toLowerCase(); + final SubCommandHandlerInterface sub = this.compositeCommand.subCommands.get(name); + if (sub == null) + { + command.send(CommonMessages.HelpUnknownSubCommand, command.getCommandPath(), name); + return; + } + new HelpCommandHandler(sub).handle(command.consumeArgs(1)); + } + } + super.handle(command); + return; + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + { + if (command.getArgs().length > 0 || this.compositeCommand == null) + { + return Collections.emptyList(); + } + return new ArrayList<>(this.compositeCommand.subCommands.keySet()).stream().filter(elm -> elm.startsWith(lastArg)).collect(Collectors.toList()); + } /** * Constructor. @@ -73,16 +113,6 @@ public LocalizedMessageInterface getDescription(CommandInterface command) return CommonMessages.HelpLongDescription; } -// @Override -// public LocalizedMessageInterface getUsage(CommandInterface command) -// { -// if (this.compositeCommand != null) -// { -// return CommonMessages.HelpPagedUsage; -// } -// return CommonMessages.HelpCommandUsage; -// } - @Override protected int getLineCount(CommandInterface command) { @@ -108,17 +138,21 @@ protected Serializable[] getLines(CommandInterface command, int start, int count final List<Serializable> result = new ArrayList<>(); for (final String key : keys.subList(start, start + count)) { - result.add(CommonMessages.HelpLineUsage.toArg(key, this.compositeCommand.subCommands.get(key).getShortDescription(command).toArg(command.getCommandPath()))); + DynamicArg shortDesc = null; + final SubCommandHandlerInterface sch = this.compositeCommand.subCommands.get(key); + try + { + shortDesc = sch.getShortDescription(command).toArg(command.getCommandPath()); + } + catch (Throwable t) + { + MglibInterface.INSTANCE.get().getLogger().log(Level.WARNING, "Exception fetching short description on command " + sch, t); //$NON-NLS-1$ + } + result.add(CommonMessages.HelpLineUsage.toArg(key, shortDesc)); } return result.toArray(new Serializable[result.size()]); } return this.subCommand.getDescription(command).toListArg(start, count, new Serializable[]{command.getCommandPath()}).apply(command.getLocale(), command.isOp()); } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException - { - return Collections.emptyList(); - } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java index 1b87f7a8..91e57b29 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java @@ -25,9 +25,21 @@ public enum CommonConfig implements ConfigurationValueInterface { /** - * Permission to perform the start command. + * Is party command enabled? */ @ConfigurationBool(name = "party_command_enabled", defaultValue = true) PartyCommandEnabled, + /** + * Is debug mode enabled? + */ + @ConfigurationBool(name = "debug", defaultValue = false) + DebugEnabled, + + /** + * Default locale + */ + @ConfigurationString(name = "locale", defaultValue = "en") + DefaultLocale, + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java new file mode 100644 index 00000000..2c9a5cf9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java @@ -0,0 +1,45 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.config; + +import org.bukkit.configuration.ConfigurationSection; + +/** + * Common configuration interface. + * + * @author mepeisen + */ +public interface ConfigInterface +{ + + /** + * Returns the bukkit configuration for given file. + * + * @param file + * configuration file name. + * @return the configuration file. + */ + ConfigurationSection getConfig(String file); + + /** + * Saves the configuration for given file. + * + * @param file + * configuration file name. + */ + void saveConfig(String file); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java index 2e430b72..4dc7c5f2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java @@ -22,7 +22,6 @@ import java.util.List; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; /** * Helper class for configuration variables. @@ -51,7 +50,7 @@ static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ } final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(val); + final ConfigInterface minigame = lib.getConfigFromCfg(val); return calculator.supply(val, configs, config, lib, minigame); } catch (Exception ex) @@ -156,7 +155,7 @@ static <Annot extends Annotation> void consume(ConfigurationValueInterface val, throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ } final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(val); + final ConfigInterface minigame = lib.getConfigFromCfg(val); consumer.apply(val, configs, config, lib, minigame); } catch (Exception ex) @@ -204,7 +203,7 @@ static void consume(ConfigurationValueInterface val, String subpath, ValueConsum */ static <T, Annot extends Annotation> void consumeList(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, T[] value, ArrayValueConsumer<T, Annot> consumer) { - final ValueConsumer<Annot> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, String spath) -> { + final ValueConsumer<Annot> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String spath) -> { final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); for (final String key : section.getKeys(false)) { @@ -231,7 +230,7 @@ static <T, Annot extends Annotation> void consumeList(ConfigurationValueInterfac */ static <T> void consumeList(ConfigurationValueInterface val, String subpath, T[] value, ArrayValueConsumer<T, ConfigurationSection> consumer) { - final ValueConsumer<ConfigurationSection> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, ConfigurationSection config, MglibInterface lib, MinigameInterface minigame, String spath) -> { + final ValueConsumer<ConfigurationSection> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, ConfigurationSection config, MglibInterface lib, ConfigInterface minigame, String spath) -> { final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); for (final String key : section.getKeys(false)) { @@ -581,7 +580,7 @@ interface Calculator<Ret, Annot extends Annotation> * @return return value * @throws Exception */ - Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame) throws Exception; + Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame) throws Exception; } @@ -609,7 +608,7 @@ interface ValueCalculator<Ret, Annot extends Annotation> * @return return value * @throws Exception */ - Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, String path) throws Exception; + Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String path) throws Exception; } @@ -638,7 +637,7 @@ interface ArrayValueCalculator<Ret, Annot extends Annotation> * @return return value * @throws Exception */ - Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, org.bukkit.configuration.ConfigurationSection section, String key) throws Exception; + Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, org.bukkit.configuration.ConfigurationSection section, String key) throws Exception; } @@ -686,7 +685,7 @@ interface Consumer<Annot extends Annotation> * @param minigame * @throws Exception */ - void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame) throws Exception; + void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame) throws Exception; } @@ -711,7 +710,7 @@ interface ValueConsumer<Annot extends Annotation> * @param path * @throws Exception */ - void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, String path) throws Exception; + void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String path) throws Exception; } @@ -740,7 +739,7 @@ interface ArrayValueConsumer<T, Annot extends Annotation> * @param element * @throws Exception */ - void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, MinigameInterface minigame, org.bukkit.configuration.ConfigurationSection section, String path, T element) + void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, org.bukkit.configuration.ConfigurationSection section, String path, T element) throws Exception; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index b2a5f069..877460cd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -25,7 +25,6 @@ import org.bukkit.util.Vector; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** @@ -558,7 +557,7 @@ default boolean isset() { final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final ConfigInterface minigame = lib.getConfigFromCfg(this); return minigame.getConfig(configs.file()).isSet(this.path()); } @@ -577,7 +576,7 @@ default boolean isset(String path) final Field field = this.getClass().getDeclaredField(((Enum<?>) this).name()); final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final ConfigInterface minigame = lib.getConfigFromCfg(this); final ConfigurationSection config = field.getAnnotation(ConfigurationSection.class); if (config != null) { @@ -1888,7 +1887,7 @@ default String[] getKeys(boolean deep) throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ } final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final ConfigInterface minigame = lib.getConfigFromCfg(this); final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); final Set<String> result = minigame.getConfig(configs.file()).getConfigurationSection(path).getKeys(deep); return result.toArray(new String[result.size()]); @@ -2390,7 +2389,7 @@ default void saveConfig() { final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigameFromCfg(this); + final ConfigInterface minigame = lib.getConfigFromCfg(this); minigame.saveConfig(configs.file()); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java index ff67ea5a..7901bf9e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java @@ -30,6 +30,116 @@ @Target(FIELD) public @interface LocalizedMessage { + + /** + * Represents black + */ + String BLACK = "§0"; //$NON-NLS-1$ + + /** + * Represents dark blue + */ + String DARK_BLUE = "§1"; //$NON-NLS-1$ + + /** + * Represents dark green + */ + String DARK_GREEN = "§2"; //$NON-NLS-1$ + + /** + * Represents dark blue (aqua) + */ + String DARK_AQUA = "§3"; //$NON-NLS-1$ + + /** + * Represents dark red + */ + String DARK_RED = "§4"; //$NON-NLS-1$ + + /** + * Represents dark purple + */ + String DARK_PURPLE = "§5"; //$NON-NLS-1$ + + /** + * Represents gold + */ + String GOLD = "§6"; //$NON-NLS-1$ + + /** + * Represents gray + */ + String GRAY = "§7"; //$NON-NLS-1$ + + /** + * Represents dark gray + */ + String DARK_GRAY = "§8"; //$NON-NLS-1$ + + /** + * Represents blue + */ + String BLUE = "§9"; //$NON-NLS-1$ + + /** + * Represents green + */ + String GREEN = "§a"; //$NON-NLS-1$ + + /** + * Represents aqua + */ + String AQUA = "§b"; //$NON-NLS-1$ + + /** + * Represents red + */ + String RED = "§c"; //$NON-NLS-1$ + + /** + * Represents light purple + */ + String LIGHT_PURPLE = "§d"; //$NON-NLS-1$ + + /** + * Represents yellow + */ + String YELLOW = "§e"; //$NON-NLS-1$ + + /** + * Represents white + */ + String WHITE = "§f"; //$NON-NLS-1$ + + /** + * Represents magical characters that change around randomly + */ + String MAGIC = "§k"; //$NON-NLS-1$ + + /** + * Makes the text bold. + */ + String BOLD = "§l"; //$NON-NLS-1$ + + /** + * Makes a line appear through the text. + */ + String STRIKETHROUGH = "§m"; //$NON-NLS-1$ + + /** + * Makes the text appear underlined. + */ + String UNDERLINE = "§n"; //$NON-NLS-1$ + + /** + * Makes the text italic. + */ + String ITALIC = "§o"; //$NON-NLS-1$ + + /** + * Resets all previous chat colors or formats. + */ + String RESET = "§r"; //$NON-NLS-1$ /** * Returns the default user message used as fallback; must be in locale returned by {@link LocalizedMessages#defaultLocale()}. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java index 38fdb7de..1ec59067 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java @@ -20,7 +20,6 @@ import java.util.function.BiFunction; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; /** * An interface for enumerations that represent localized messages. @@ -30,6 +29,42 @@ public interface LocalizedMessageInterface extends Serializable { + /** + * Checks if this is a single line message. + * + * @return {@code true} for single line messages. + */ + default boolean isSingleLine() + { + try + { + final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); + return msg != null; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + + /** + * Checks if this is a multi line message. + * + * @return {@code true} for multi line messages. + */ + default boolean isMultiLine() + { + try + { + final LocalizedMessageList msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessageList.class); + return msg != null; + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + /** * Returns the message severity type. * @@ -40,7 +75,7 @@ default MessageSeverityType getSeverity() try { final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); - return msg.severity(); + return msg == null ? MessageSeverityType.Information : msg.severity(); } catch (NoSuchFieldException ex) { @@ -68,13 +103,13 @@ default String toUserMessage(Locale locale, Serializable... args) throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = mglib.getMinigameFromMsg(this); - if (minigame == null) + final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); + if (messages == null) { throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - final String smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ + final String smsg = messages.getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); } catch (NoSuchFieldException ex) @@ -103,13 +138,13 @@ default String[] toUserMessageLine(Locale locale, Serializable... args) throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = mglib.getMinigameFromMsg(this); - if (minigame == null) + final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); + if (messages == null) { throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - final String[] smsg = minigame.getMessages().getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ + final String[] smsg = messages.getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ final String[] result = new String[smsg.length]; int i = 0; for (final String lmsg : smsg) @@ -145,16 +180,16 @@ default String toAdminMessage(Locale locale, Serializable... args) throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = mglib.getMinigameFromMsg(this); - if (minigame == null) + final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); + if (messages == null) { throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - String smsg = minigame.getMessages().getAdminString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ + String smsg = messages.getAdminString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ if (smsg.length() == 0) { - smsg = minigame.getMessages().getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ + smsg = messages.getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ } return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); } @@ -184,16 +219,16 @@ default String[] toAdminMessageLine(Locale locale, Serializable... args) throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ } final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = mglib.getMinigameFromMsg(this); - if (minigame == null) + final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); + if (messages == null) { throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ } - String[] smsg = minigame.getMessages().getAdminStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.adminMessages().length == 0 ? null : msg.adminMessages()); //$NON-NLS-1$ - if (smsg == null) + String[] smsg = messages.getAdminStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.adminMessages().length == 0 ? null : msg.adminMessages()); //$NON-NLS-1$ + if (smsg == null || smsg.length == 0) { - smsg = minigame.getMessages().getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ + smsg = messages.getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ } final String[] result = new String[smsg.length]; int i = 0; diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java index 3f8b069c..b1d3370e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java @@ -30,6 +30,116 @@ @Target(FIELD) public @interface LocalizedMessageList { + + /** + * Represents black + */ + String BLACK = "§0"; //$NON-NLS-1$ + + /** + * Represents dark blue + */ + String DARK_BLUE = "§1"; //$NON-NLS-1$ + + /** + * Represents dark green + */ + String DARK_GREEN = "§2"; //$NON-NLS-1$ + + /** + * Represents dark blue (aqua) + */ + String DARK_AQUA = "§3"; //$NON-NLS-1$ + + /** + * Represents dark red + */ + String DARK_RED = "§4"; //$NON-NLS-1$ + + /** + * Represents dark purple + */ + String DARK_PURPLE = "§5"; //$NON-NLS-1$ + + /** + * Represents gold + */ + String GOLD = "§6"; //$NON-NLS-1$ + + /** + * Represents gray + */ + String GRAY = "§7"; //$NON-NLS-1$ + + /** + * Represents dark gray + */ + String DARK_GRAY = "§8"; //$NON-NLS-1$ + + /** + * Represents blue + */ + String BLUE = "§9"; //$NON-NLS-1$ + + /** + * Represents green + */ + String GREEN = "§a"; //$NON-NLS-1$ + + /** + * Represents aqua + */ + String AQUA = "§b"; //$NON-NLS-1$ + + /** + * Represents red + */ + String RED = "§c"; //$NON-NLS-1$ + + /** + * Represents light purple + */ + String LIGHT_PURPLE = "§d"; //$NON-NLS-1$ + + /** + * Represents yellow + */ + String YELLOW = "§e"; //$NON-NLS-1$ + + /** + * Represents white + */ + String WHITE = "§f"; //$NON-NLS-1$ + + /** + * Represents magical characters that change around randomly + */ + String MAGIC = "§k"; //$NON-NLS-1$ + + /** + * Makes the text bold. + */ + String BOLD = "§l"; //$NON-NLS-1$ + + /** + * Makes a line appear through the text. + */ + String STRIKETHROUGH = "§m"; //$NON-NLS-1$ + + /** + * Makes the text appear underlined. + */ + String UNDERLINE = "§n"; //$NON-NLS-1$ + + /** + * Makes the text italic. + */ + String ITALIC = "§o"; //$NON-NLS-1$ + + /** + * Resets all previous chat colors or formats. + */ + String RESET = "§r"; //$NON-NLS-1$ /** * The array of localized messages (lines) inside this list. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java new file mode 100644 index 00000000..0b2e460c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.services; + +import java.io.Serializable; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.config.ConfigInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * A special extension for the minigames library. + * + * <p> + * Extensions can be installed through {@link MglibInterface#register(MinigameExtensionProviderInterface)}. + * They behave different from minigames. Mainly they are responsible to add additional features to + * the library. They do not install any arena type nor do they provide any game. + * </p> + * + * @author mepeisen + */ +public interface MinigameExtensionInterface extends ConfigInterface +{ + + /** + * Returns the name of the extension. + * + * @return extension name. + */ + String getName(); + + /** + * Returns the short description of the extension. + * + * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. + */ + Serializable getShortDescription(); + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java new file mode 100644 index 00000000..a3e3b955 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.services; + +import java.io.Serializable; + +import com.github.mce.minigames.api.CommonProviderInterface; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * A special extension for the minigames library. + * + * <p> + * Extensions can be installed through {@link MglibInterface#register(MinigameExtensionProviderInterface)}. + * They behave different from minigames. Mainly they are responsible to add additional features to + * the library. They do not install any arena type nor do they provide any game. + * </p> + * + * @author mepeisen + */ +public interface MinigameExtensionProviderInterface extends CommonProviderInterface +{ + + /** + * Returns the name of the extension. + * + * @return extension name. + */ + String getName(); + + /** + * Returns the short description of the extension. + * + * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. + */ + Serializable getShortDescription(); + + // TODO + +} diff --git a/APIv2/src/site/markdown/dev_minigame_messages.md b/APIv2/src/site/markdown/dev_minigame_messages.md index cda28d53..45bfcc14 100644 --- a/APIv2/src/site/markdown/dev_minigame_messages.md +++ b/APIv2/src/site/markdown/dev_minigame_messages.md @@ -159,12 +159,12 @@ This will result in following entries in messages.yml default_locale: en user: en: - 0: 'Welcome to this adventure, player %1$s!' - 1: 'Can you find the Yeti?' - 2: 'Sam and Max are absent.' - 3: 'HELP!' + - 'Welcome to this adventure, player %1$s!' + - 'Can you find the Yeti?' + - 'Sam and Max are absent.' + - 'HELP!' -As you see the lines are enumerated. If you have a language only containing three lines this can be done by changing +As you see the lines are a yaml list. If you have a language only containing three lines this can be done by changing it to the following: myplugin: @@ -173,14 +173,36 @@ it to the following: default_locale: en user: en: - 0: 'Welcome to this adventure, player %1$s!' - 1: 'Can you find the Yeti?' - 2: 'Sam and Max are absent.' - 3: 'HELP!' + - 'Welcome to this adventure, player %1$s!' + - 'Can you find the Yeti?' + - 'Sam and Max are absent.' + - 'HELP!' de: - 0: 'Willkommen bei deinem Abenteuer, Spieler %1$s!' - 1: 'Findest du den Yeti?' - 2: 'Sam und Max sind verschwunden. HILFE!' + - 'Willkommen bei deinem Abenteuer, Spieler %1$s!' + - 'Findest du den Yeti?' + - 'Sam und Max sind verschwunden. HILFE!' + +## Text format and colors + +Minigames lib uss some default colors based on message severity. + +* error: Dark red +* information: white +* loser: red +* success: green +* warning: yellow +* winner: gold + +You can override it by using either the literals (f.e. "§7" for gray) or by using the string constants in the +LocalizedMessage and LocalizedMessageList annotations. + +Example: + + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "some gray text") + +### formatting conventions + +TODO ## Special message type: Message sets diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index ff6512f6..8443346a 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -24,11 +24,6 @@ <artifactId>MinigamesAPI</artifactId> <version>2.0.0-SNAPSHOT</version> </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib</artifactId> - <version>1.14.9-SNAPSHOT</version> - </dependency> <dependency> <groupId>org.spigotmc</groupId> <artifactId>spigot</artifactId> diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java new file mode 100644 index 00000000..cf2c05e2 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java @@ -0,0 +1,302 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.bukkit.Color; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.config.ConfigInterface; +import com.github.mce.minigames.api.config.ConfigurationBool; +import com.github.mce.minigames.api.config.ConfigurationBoolList; +import com.github.mce.minigames.api.config.ConfigurationByte; +import com.github.mce.minigames.api.config.ConfigurationByteList; +import com.github.mce.minigames.api.config.ConfigurationCharacter; +import com.github.mce.minigames.api.config.ConfigurationCharacterList; +import com.github.mce.minigames.api.config.ConfigurationColor; +import com.github.mce.minigames.api.config.ConfigurationDouble; +import com.github.mce.minigames.api.config.ConfigurationDoubleList; +import com.github.mce.minigames.api.config.ConfigurationFloat; +import com.github.mce.minigames.api.config.ConfigurationFloatList; +import com.github.mce.minigames.api.config.ConfigurationInt; +import com.github.mce.minigames.api.config.ConfigurationIntList; +import com.github.mce.minigames.api.config.ConfigurationLong; +import com.github.mce.minigames.api.config.ConfigurationLongList; +import com.github.mce.minigames.api.config.ConfigurationShort; +import com.github.mce.minigames.api.config.ConfigurationShortList; +import com.github.mce.minigames.api.config.ConfigurationString; +import com.github.mce.minigames.api.config.ConfigurationStringList; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.config.ConfigurationValues; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import com.github.mce.minigames.impl.msg.MessagesConfig; + +/** + * Basic support for extensions and minigames. + * + * @author mepeisen + */ +class BaseImpl implements ConfigInterface +{ + + /** + * the messages configuration. + */ + private final MessagesConfig messages; + + /** + * The declaring java plugin. + */ + protected final JavaPlugin plugin; + + /** + * The configuration files. + */ + private final Map<String, FileConfiguration> configurations = new HashMap<>(); + + /** + * The default configurations. + */ + private Map<String, List<ConfigurationValueInterface>> defaultConfigs; + + /** the minigames plugin. */ + protected final MinigamesPlugin mgplugin; + + /** + * Constructor to create the component. + * + * @param mgplugin + * minigames plugin + * @param plugin + * the java plugin. + */ + public BaseImpl(MinigamesPlugin mgplugin, JavaPlugin plugin) + { + this.plugin = plugin; + this.messages = new MessagesConfig(this.plugin); + this.mgplugin = mgplugin; + } + + /** + * Returns the messages config interface + * + * @return messages config + */ + public MessagesConfigInterface getMessages() + { + return this.messages; + } + + @Override + public FileConfiguration getConfig(String file) + { + if (file.contains("/") || file.contains("..") || file.contains(":") || file.contains("\\")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + { + throw new IllegalArgumentException("Invalid character in file name."); //$NON-NLS-1$ + } + if (file.equals("messages.yml")) //$NON-NLS-1$ + { + throw new IllegalArgumentException("Invalid file name."); //$NON-NLS-1$ + } + return this.configurations.computeIfAbsent(file, (f) -> { + FileConfiguration fileConfig = null; + final File fobj = new File(this.plugin.getDataFolder(), file); + if (file.equals("config.yml")) //$NON-NLS-1$ + { + fileConfig = this.plugin.getConfig(); + } + else + { + fileConfig = YamlConfiguration.loadConfiguration(fobj); + } + + final List<ConfigurationValueInterface> list = this.defaultConfigs.get(file); + if (list != null) + { + for (final ConfigurationValueInterface cfg : list) + { + try + { + final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); + final Field field = cfg.getClass().getDeclaredField(((Enum<?>) cfg).name()); + // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); + if (clazzDef == null) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + + if (field.getAnnotation(ConfigurationBool.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationBool.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationBoolList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationBoolList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationByte.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationByte.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationByteList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationByteList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationCharacter.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationCharacter.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationCharacterList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationCharacterList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationDouble.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationDouble.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationDoubleList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationDoubleList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationFloat.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationFloat.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationFloatList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationFloatList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationInt.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationInt.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationIntList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationIntList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationLong.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationLong.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationLongList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationLongList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationShort.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationShort.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationShortList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationShortList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationString.class) != null) + { + fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationString.class).defaultValue()); + } + + if (field.getAnnotation(ConfigurationStringList.class) != null) + { + fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationStringList.class).defaultValue())); + } + + if (field.getAnnotation(ConfigurationColor.class) != null) + { + fileConfig.addDefault(cfg.path(), Color.fromRGB((field.getAnnotation(ConfigurationColor.class).defaultRgb()))); + } + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + fileConfig.options().copyDefaults(true); + try + { + fileConfig.save(fobj); + } + catch (IOException e) + { + // TODO logging + e.printStackTrace(); + } + } + + return fileConfig; + }); + } + + @Override + public void saveConfig(String file) + { + final File fobj = new File(this.plugin.getDataFolder(), file); + try + { + this.getConfig(file).save(fobj); + } + catch (IOException e) + { + // TODO logging + e.printStackTrace(); + } + } + + /** + * Initializes the messages with given localized messages. + * + * @param msgs + */ + void initMessage(List<LocalizedMessageInterface> msgs) + { + this.messages.initMessage(msgs); + } + + /** + * Initializes the configuration files. + * + * @param configs + */ + void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) + { + this.defaultConfigs = configs; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java new file mode 100644 index 00000000..9faff74c --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java @@ -0,0 +1,114 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.PluginProviderInterface; +import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.config.CommonConfig; +import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; +import com.github.mce.minigames.impl.cmd.PartyCommandHandler; +import com.github.mce.minigames.impl.cmd.StartCommandHandler; + +/** + * @author mepeisen + * + */ +final class CoreMinigame implements PluginProviderInterface +{ + + /** the core plugin. */ + private final MinigamesPlugin plugin; + + /** + * Constructor. + * @param plugin + */ + public CoreMinigame(MinigamesPlugin plugin) + { + this.plugin = plugin; + } + + @Override + public String getName() + { + return MglibInterface.CORE_MINIGAME; + } + + @Override + public Iterable<Class<? extends Enum<?>>> getMessageClasses() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(CommonErrors.class); + result.add(CommonMessages.class); + return result; + } + + @Override + public JavaPlugin getJavaPlugin() + { + return this.plugin; + } + + @Override + public Map<String, CommandHandlerInterface> getBukkitCommands() + { + final Map<String, CommandHandlerInterface> result = new HashMap<>(); + result.put("start", new StartCommandHandler()); //$NON-NLS-1$ + result.put("party", new PartyCommandHandler()); //$NON-NLS-1$ + result.put("mg2", new Mg2CommandHandler()); //$NON-NLS-1$ + return result; + } + + @Override + public Iterable<Class<? extends Enum<?>>> getPermissions() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(CommonPermissions.class); + return result; + } + + @Override + public Iterable<Class<? extends Enum<?>>> getConfigurations() + { + final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + result.add(CommonConfig.class); + return result; + } + + @Override + public Serializable getShortDescription() + { + return CommonMessages.CoreMinigameDescription.toArg(); + } + + @Override + public Serializable getDescription() + { + return CommonMessages.CoreMinigameLongDescription.toListArg(); + } +} \ No newline at end of file diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java new file mode 100644 index 00000000..a98ee301 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java @@ -0,0 +1,62 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl; + +import java.io.Serializable; + +import com.github.mce.minigames.api.services.MinigameExtensionInterface; +import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; + +/** + * @author mepeisen + * + */ +class ExtensionImpl extends BaseImpl implements MinigameExtensionInterface +{ + + /** the extension name. */ + private final String name; + + /** the extension description. */ + private Serializable description; + + /** + * Constructor. + * + * @param name + * @param mgplugin + * @param provider + */ + public ExtensionImpl(MinigamesPlugin mgplugin, String name, MinigameExtensionProviderInterface provider) + { + super(mgplugin, provider.getJavaPlugin()); + this.name = name; + this.description = provider.getShortDescription(); + } + + @Override + public String getName() + { + return this.name; + } + + @Override + public Serializable getShortDescription() + { + return this.description; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 0d17ee0b..7d3b7545 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -15,20 +15,11 @@ package com.github.mce.minigames.impl; -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.Arrays; +import java.io.Serializable; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.logging.Logger; -import org.bukkit.Color; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; - import com.github.mce.minigames.api.ContextHandlerInterface; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; @@ -37,64 +28,20 @@ import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.config.ConfigurationBool; -import com.github.mce.minigames.api.config.ConfigurationBoolList; -import com.github.mce.minigames.api.config.ConfigurationByte; -import com.github.mce.minigames.api.config.ConfigurationByteList; -import com.github.mce.minigames.api.config.ConfigurationCharacter; -import com.github.mce.minigames.api.config.ConfigurationCharacterList; -import com.github.mce.minigames.api.config.ConfigurationColor; -import com.github.mce.minigames.api.config.ConfigurationDouble; -import com.github.mce.minigames.api.config.ConfigurationDoubleList; -import com.github.mce.minigames.api.config.ConfigurationFloat; -import com.github.mce.minigames.api.config.ConfigurationFloatList; -import com.github.mce.minigames.api.config.ConfigurationInt; -import com.github.mce.minigames.api.config.ConfigurationIntList; -import com.github.mce.minigames.api.config.ConfigurationLong; -import com.github.mce.minigames.api.config.ConfigurationLongList; -import com.github.mce.minigames.api.config.ConfigurationShort; -import com.github.mce.minigames.api.config.ConfigurationShortList; -import com.github.mce.minigames.api.config.ConfigurationString; -import com.github.mce.minigames.api.config.ConfigurationStringList; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.config.ConfigurationValues; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; -import com.github.mce.minigames.impl.msg.MessagesConfig; /** * The minigames plugin impl. * * @author mepeisen */ -class MinigamePluginImpl implements MinigamePluginInterface +class MinigamePluginImpl extends BaseImpl implements MinigamePluginInterface { - /** - * the messages configuration. - */ - private final MessagesConfig messages; - /** * The minigame name. */ private final String name; - /** - * The declaring java plugin. - */ - private final JavaPlugin plugin; - - /** - * The configuration files. - */ - private final Map<String, FileConfiguration> configurations = new HashMap<>(); - - /** - * The default configurations. - */ - private Map<String, List<ConfigurationValueInterface>> defaultConfigs; - /** * the known arena types of this minigame. */ @@ -109,9 +56,16 @@ class MinigamePluginImpl implements MinigamePluginInterface * the default arena type to use. */ private ArenaTypeDeclarationInterface defaultType; - - /** the minigames plugin. */ - private final MinigamesPlugin mgplugin; + + /** + * Short description + */ + private Serializable shortDescription; + + /** + * Long multi line description + */ + private Serializable longDescription; /** * Constructor to create a minigame. @@ -125,10 +79,10 @@ class MinigamePluginImpl implements MinigamePluginInterface */ public MinigamePluginImpl(MinigamesPlugin mgplugin, String name, PluginProviderInterface provider) { - this.plugin = provider.getJavaPlugin(); - this.messages = new MessagesConfig(this.plugin); + super(mgplugin, provider.getJavaPlugin()); this.name = name; - this.mgplugin = mgplugin; + this.shortDescription = provider.getShortDescription(); + this.longDescription = provider.getDescription(); } @Override @@ -137,12 +91,6 @@ public String getName() return this.name; } - @Override - public MessagesConfigInterface getMessages() - { - return this.messages; - } - /* * (non-Javadoc) * @@ -210,198 +158,21 @@ public Logger getLogger() } @Override - public FileConfiguration getConfig(String file) + public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException { - if (file.contains("/") || file.contains("..") || file.contains(":") || file.contains("\\")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - { - throw new IllegalArgumentException("Invalid character in file name."); //$NON-NLS-1$ - } - if (file.equals("messages.yml")) //$NON-NLS-1$ - { - throw new IllegalArgumentException("Invalid file name."); //$NON-NLS-1$ - } - return this.configurations.computeIfAbsent(file, (f) -> { - FileConfiguration fileConfig = null; - final File fobj = new File(this.plugin.getDataFolder(), file); - if (file.equals("config.yml")) //$NON-NLS-1$ - { - fileConfig = this.plugin.getConfig(); - } - else - { - fileConfig = YamlConfiguration.loadConfiguration(fobj); - } - - final List<ConfigurationValueInterface> list = this.defaultConfigs.get(file); - if (list != null) - { - for (final ConfigurationValueInterface cfg : list) - { - try - { - final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); - final Field field = cfg.getClass().getDeclaredField(((Enum<?>) cfg).name()); - // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); - if (clazzDef == null) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - - if (field.getAnnotation(ConfigurationBool.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationBool.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationBoolList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationBoolList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationByte.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationByte.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationByteList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationByteList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationCharacter.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationCharacter.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationCharacterList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationCharacterList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationDouble.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationDouble.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationDoubleList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationDoubleList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationFloat.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationFloat.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationFloatList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationFloatList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationInt.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationInt.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationIntList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationIntList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationLong.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationLong.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationLongList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationLongList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationShort.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationShort.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationShortList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationShortList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationString.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationString.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationStringList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationStringList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationColor.class) != null) - { - fileConfig.addDefault(cfg.path(), Color.fromRGB((field.getAnnotation(ConfigurationColor.class).defaultRgb()))); - } - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - fileConfig.options().copyDefaults(true); - try - { - fileConfig.save(fobj); - } - catch (IOException e) - { - // TODO logging - e.printStackTrace(); - } - } - - return fileConfig; - }); + this.mgplugin.getApiContext().registerContextHandler(clazz, handler); } - + @Override - public void saveConfig(String file) - { - final File fobj = new File(this.plugin.getDataFolder(), file); - try - { - this.getConfig(file).save(fobj); - } - catch (IOException e) - { - // TODO logging - e.printStackTrace(); - } - } - - /** - * Initializes the messages with given localized messages. - * - * @param msgs - */ - void initMessage(List<LocalizedMessageInterface> msgs) + public Serializable getShortDescription() { - this.messages.initMessage(msgs); + return this.shortDescription; } - - /** - * Initializes the configuration files. - * - * @param configs - */ - void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) - { - this.defaultConfigs = configs; - } - + @Override - public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException + public Serializable getLongDescription() { - this.mgplugin.getApiContext().registerContextHandler(clazz, handler); + return this.longDescription; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index 91d6856d..b4422b30 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -15,6 +15,7 @@ package com.github.mce.minigames.impl; +import java.io.Serializable; import java.util.logging.Logger; import org.bukkit.configuration.ConfigurationSection; @@ -79,34 +80,34 @@ public ArenaInterface getArenas(String name) return null; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getLogger() - */ @Override public Logger getLogger() { - // TODO Auto-generated method stub - return null; + return this.delegate.getLogger(); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getConfig(java.lang.String) - */ @Override public ConfigurationSection getConfig(String file) { - // TODO Auto-generated method stub - return null; + return this.delegate.getConfig(file); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#saveConfig(java.lang.String) - */ @Override public void saveConfig(String file) { - // TODO Auto-generated method stub - + this.delegate.saveConfig(file); + } + + @Override + public Serializable getShortDescription() + { + return this.delegate.getShortDescription(); + } + + @Override + public Serializable getLongDescription() + { + return this.delegate.getLongDescription(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 0d931f09..ae44441a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -15,15 +15,19 @@ package com.github.mce.minigames.impl; +import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.TreeMap; import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Level; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.OfflinePlayer; @@ -32,9 +36,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; -import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.LibState; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinecraftVersionsType; @@ -47,20 +49,21 @@ import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.config.CommonConfig; +import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationValueInterface; import com.github.mce.minigames.api.config.ConfigurationValues; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.services.MinigameExtensionInterface; +import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.zones.ZoneInterface; -import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; -import com.github.mce.minigames.impl.cmd.PartyCommandHandler; -import com.github.mce.minigames.impl.cmd.StartCommandHandler; import com.github.mce.minigames.impl.context.ArenaPlayerInterfaceProvider; import com.github.mce.minigames.impl.context.MinigameContextImpl; import com.github.mce.minigames.impl.player.PlayerRegistry; +import com.github.mce.minigames.impl.services.PremiumServiceProviderInterface; /** * A plugin for minigames. @@ -71,30 +74,47 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface { + /** the overall minecraft server versioon. */ + public static final MinecraftVersionsType SERVER_VERSION = MinigamesPlugin.getServerVersion(); + /** the well known minigames. */ - private final Map<String, MinigamePluginImpl> minigames = new ConcurrentHashMap<>(); + private final Map<String, MinigamePluginImpl> minigames = new TreeMap<>(); + + /** the well known extensions. */ + private final Map<String, ExtensionImpl> extensions = new TreeMap<>(); /** Current library state. */ - private LibState state = LibState.Initializing; + private LibState state = LibState.Initializing; /** known command handlers by name. */ - private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); + private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); /** messages to minigames. */ - private final Map<LocalizedMessageInterface, String> messagesToMinigame = new HashMap<>(); + private final Map<LocalizedMessageInterface, String> messagesToMinigame = new HashMap<>(); /** options to minigames. */ - private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); + private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); + + /** messages to extensions. */ + private final Map<LocalizedMessageInterface, String> messagesToExtension = new HashMap<>(); + + /** options to extensions. */ + private final Map<ConfigurationValueInterface, String> optionsToExtension = new HashMap<>(); /** * the players registry. */ - private final PlayerRegistry players = new PlayerRegistry(); + private final PlayerRegistry players = new PlayerRegistry(); /** * the minigame context implementation. */ - private MinigameContextImpl contextImpl = new MinigameContextImpl(); + private MinigameContextImpl contextImpl = new MinigameContextImpl(); + + /** + * the premium extension (if available) + */ + private PremiumServiceProviderInterface premium; /** * Constructor to create the plugin. @@ -104,69 +124,80 @@ public MinigamesPlugin() // registers the core minigame. try { - final MinigamePluginInterface mg2 = this.register(new PluginProviderInterface() { - - @Override - public String getName() - { - return MglibInterface.CORE_MINIGAME; - } - - @Override - public Iterable<Class<? extends Enum<?>>> getMessageClasses() - { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); - result.add(CommonErrors.class); - result.add(CommonMessages.class); - return result; - } - - @Override - public JavaPlugin getJavaPlugin() - { - return MinigamesPlugin.this; - } - - @Override - public Map<String, CommandHandlerInterface> getBukkitCommands() - { - final Map<String, CommandHandlerInterface> result = new HashMap<>(); - result.put("start", new StartCommandHandler()); //$NON-NLS-1$ - result.put("party", new PartyCommandHandler()); //$NON-NLS-1$ - result.put("mg2", new Mg2CommandHandler()); //$NON-NLS-1$ - return result; - } - - @Override - public Iterable<Class<? extends Enum<?>>> getPermissions() - { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); - result.add(CommonPermissions.class); - return result; - } - - @Override - public Iterable<Class<? extends Enum<?>>> getConfigurations() - { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); - result.add(CommonConfig.class); - return result; - } - }); + final MinigamePluginInterface mg2 = this.register(new CoreMinigame(this)); // context provider mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); mg2.init(); + + this.getLogger().log(Level.INFO, "MinigamesLib2 finihes initialization. Minecraft version: " + this.getMinecraftVersion()); //$NON-NLS-1$ } catch (MinigameException ex) { // log it, although this should never happen // because in constructor we neither are in wrong state // nor do we already know the 'core' minigame - ex.printStackTrace(); - // TODO + this.getLogger().log(Level.SEVERE, "Error registering core minigame", ex); //$NON-NLS-1$ + } + } + + /** + * Calculates the minecraft server version. + * + * @return Minecraft server version. + */ + private static MinecraftVersionsType getServerVersion() + { + try + { + final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); //$NON-NLS-1$ + if (v.startsWith("v1_7_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R1; + } + if (v.startsWith("v1_7_R2")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R2; + } + if (v.startsWith("v1_7_R3")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R3; + } + if (v.startsWith("v1_7_R4")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_7_R4; + } + if (v.startsWith("v1_8_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_8_R1; + } + if (v.startsWith("v1_8_R2")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_8_R2; + } + if (v.startsWith("v1_8_R3")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_8_R3; + } + if (v.startsWith("v1_9_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_9_R1; + } + if (v.startsWith("v1_9_R2")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_9_R2; + } + if (v.startsWith("v1_10_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_10_R1; + } + } + catch (@SuppressWarnings("unused") Exception ex) + { + // silently ignore } + return MinecraftVersionsType.Unknown; } // event handlersEventHandler @@ -179,36 +210,54 @@ public boolean onCommand(CommandSender sender, Command command, String label, St { try { + if (this.debug()) + { + this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ + } final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); handler.handle(cmd); } catch (MinigameException ex) { - // TODO Logging + if (this.debug()) + { + this.getLogger().log(Level.FINE, "Caught minigame exception during command execution: " + command.getName() + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$ + } final Locale locale = this.getDefaultLocale(); final boolean isAdmin = sender.isOp(); - final String msg = isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())); - switch (ex.getCode().getSeverity()) + String[] msgs = null; + if (ex.getCode().isSingleLine()) { - default: - case Error: - sender.sendMessage(ChatColor.DARK_RED + msg); - break; - case Information: - sender.sendMessage(ChatColor.WHITE + msg); - break; - case Loser: - sender.sendMessage(ChatColor.RED + msg); - break; - case Success: - sender.sendMessage(ChatColor.GREEN + msg); - break; - case Warning: - sender.sendMessage(ChatColor.YELLOW + msg); - break; - case Winner: - sender.sendMessage(ChatColor.GOLD + msg); - break; + msgs = new String[]{isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs()))}; + } + else + { + msgs = isAdmin ? (ex.getCode().toAdminMessageLine(locale, ex.getArgs())) : (ex.getCode().toUserMessageLine(locale, ex.getArgs())); + } + for (final String msg : msgs) + { + switch (ex.getCode().getSeverity()) + { + default: + case Error: + sender.sendMessage(ChatColor.DARK_RED + msg); + break; + case Information: + sender.sendMessage(ChatColor.WHITE + msg); + break; + case Loser: + sender.sendMessage(ChatColor.RED + msg); + break; + case Success: + sender.sendMessage(ChatColor.GREEN + msg); + break; + case Warning: + sender.sendMessage(ChatColor.YELLOW + msg); + break; + case Winner: + sender.sendMessage(ChatColor.GOLD + msg); + break; + } } } return true; @@ -236,7 +285,10 @@ public List<String> onTabComplete(CommandSender sender, Command command, String } catch (MinigameException ex) { - // TODO Logging + if (this.debug()) + { + this.getLogger().log(Level.FINE, "Caught minigame exception during tab completion: " + command.getName() + " " + lastArg + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + } } } return null; @@ -253,7 +305,7 @@ public LibState getState() @Override public MinecraftVersionsType getMinecraftVersion() { - return MinecraftVersionsType.valueOf(MinigamesAPI.SERVER_VERSION.name()); + return SERVER_VERSION; } @Override @@ -280,8 +332,17 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); if (mgCommands != null) { - this.commands.putAll(mgCommands); - // TODO warn for conflicts. + for (final Map.Entry<String, CommandHandlerInterface> entry : mgCommands.entrySet()) + { + if (this.commands.containsKey(entry.getKey())) + { + this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from minigame \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + } + else + { + this.commands.put(entry.getKey(), entry.getValue()); + } + } } // register messages @@ -295,8 +356,8 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { if (!(value instanceof LocalizedMessageInterface)) { - // TODO log and warn - break; // TODO throw exception, invalid messages + this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ + throw new MinigameException(CommonErrors.MinigameRegistrationError, name); } final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; this.messagesToMinigame.put(msg, name); @@ -317,8 +378,8 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { if (!(value instanceof ConfigurationValueInterface)) { - // TODO log and warn - break; // TODO throw exception, invalid options + this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ + throw new MinigameException(CommonErrors.MinigameRegistrationError, name); } final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; this.optionsToMinigame.put(cfg, name); @@ -328,6 +389,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws } impl.initConfgurations(configs); + // finally register it this.minigames.put(name, impl); } @@ -341,28 +403,21 @@ public MinigameInterface getMinigame(String minigame) return impl == null ? null : new MinigameWrapper(impl); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#findZone(org.bukkit.Location) - */ @Override - public ZoneInterface findZone(Location location) + public int getMinigamesCount() { - // TODO Auto-generated method stub - return null; + return this.minigames.size(); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#findZones(org.bukkit.Location) - */ @Override - public Iterable<ZoneInterface> findZones(Location location) + public Iterable<MinigameInterface> getMinigames() { - // TODO Auto-generated method stub - return null; + final List<MinigameInterface> result = new ArrayList<>(); + for (final MinigamePluginImpl plugin : this.minigames.values()) + { + result.add(new MinigameWrapper(plugin)); + } + return result; } @Override @@ -383,99 +438,255 @@ public ArenaPlayerInterface getPlayer(UUID uuid) return this.players.getPlayer(uuid); } + @Override + public MessagesConfigInterface getMessagesFromMsg(LocalizedMessageInterface item) + { + String name = this.messagesToMinigame.get(item); + if (name != null) + { + return this.minigames.get(name).getMessages(); + } + name = this.messagesToExtension.get(item); + return name == null ? null : this.extensions.get(name).getMessages(); + } + /* * (non-Javadoc) * - * @see com.github.mce.minigames.api.MglibInterface#getArenaTypes() + * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromPerm(com.github.mce.minigames.api.perms.PermissionsInterface) */ @Override - public Iterable<ArenaTypeInterface> getArenaTypes() + public MinigameInterface getMinigameFromPerm(PermissionsInterface item) { // TODO Auto-generated method stub return null; } - /* - * (non-Javadoc) + @Override + public ConfigInterface getConfigFromCfg(ConfigurationValueInterface item) + { + String name = this.optionsToMinigame.get(item); + if (name != null) + { + return this.minigames.get(name); + } + name = this.optionsToExtension.get(item); + return name == null ? null : this.extensions.get(name); + } + + /** + * Returns the global context implementation. * - * @see com.github.mce.minigames.api.MglibInterface#getArenas() + * @return global context implementation. */ + public MinigameContextImpl getApiContext() + { + return this.contextImpl; + } + @Override - public Iterable<ArenaInterface> getArenas() + public <T> T getContext(Class<T> clazz) { - // TODO Auto-generated method stub - return null; + return this.contextImpl.getContext(clazz); } - /* - * (non-Javadoc) + @Override + public String resolveContextVar(String src) + { + return this.contextImpl.resolveContextVar(src); + } + + @Override + public Serializable getLibVersionString() + { + return this.getDescription().getVersion(); + } + + @Override + public boolean debug() + { + return CommonConfig.DebugEnabled.getBoolean(); + } + + @Override + public Locale getDefaultLocale() + { + return new Locale(CommonConfig.DefaultLocale.getString(), ""); //$NON-NLS-1$ + } + + /** + * Returns the mode as string * - * @see com.github.mce.minigames.api.MglibInterface#getArenas(com.github.mce.minigames.api.arena.ArenaTypeInterface) + * @return either "OS" or "PREMIUM" */ + public String getModeString() + { + return this.premium == null ? "OS" : "PREMIUM"; //$NON-NLS-1$ //$NON-NLS-2$ + } + @Override - public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) + public int getExtensionsCount() { - // TODO Auto-generated method stub - return null; + return this.extensions.size(); + } + + @Override + public Iterable<MinigameExtensionInterface> getExtensions() + { + return new ArrayList<>(this.extensions.values()); } @Override - public MinigameInterface getMinigameFromMsg(LocalizedMessageInterface item) + public MinigameExtensionInterface register(MinigameExtensionProviderInterface provider) throws MinigameException { - final String name = this.messagesToMinigame.get(item); - return name == null ? null : this.minigames.get(name); + final String name = provider.getName(); + + ExtensionImpl impl; + + synchronized (this.extensions) + { + if (this.state != LibState.Initializing && this.state != LibState.Sleeping) + { + throw new MinigameException(CommonErrors.Cannot_Create_Extension_Wrong_State, name, this.state.name()); + } + if (this.extensions.containsKey(name)) + { + throw new MinigameException(CommonErrors.DuplicateExtension, name); + } + + impl = new ExtensionImpl(this, name, provider); + + // register commands + final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); + if (mgCommands != null) + { + for (final Map.Entry<String, CommandHandlerInterface> entry : mgCommands.entrySet()) + { + if (this.commands.containsKey(entry.getKey())) + { + this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from extension \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + } + else + { + this.commands.put(entry.getKey(), entry.getValue()); + } + } + } + + // register messages + final List<LocalizedMessageInterface> messages = new ArrayList<>(); + final Iterable<Class<? extends Enum<?>>> messageClasses = provider.getMessageClasses(); + if (messageClasses != null) + { + for (final Class<? extends Enum<?>> msgClazz : messageClasses) + { + for (final Enum<?> value : msgClazz.getEnumConstants()) + { + if (!(value instanceof LocalizedMessageInterface)) + { + this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ + throw new MinigameException(CommonErrors.ExtensionRegistrationError, name); + } + final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; + this.messagesToExtension.put(msg, name); + messages.add(msg); + } + } + } + impl.initMessage(messages); + + // register configurations + final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); + final Iterable<Class<? extends Enum<?>>> configClasses = provider.getConfigurations(); + if (configClasses != null) + { + for (final Class<? extends Enum<?>> cfgClazz : configClasses) + { + for (final Enum<?> value : cfgClazz.getEnumConstants()) + { + if (!(value instanceof ConfigurationValueInterface)) + { + this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ + throw new MinigameException(CommonErrors.ExtensionRegistrationError, name); + } + final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; + this.optionsToExtension.put(cfg, name); + configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); + } + } + } + impl.initConfgurations(configs); + + if (provider instanceof PremiumServiceProviderInterface) + { + this.premium = (PremiumServiceProviderInterface) provider; + } + + // finally register it + this.extensions.put(name, impl); + } + + return impl; } /* * (non-Javadoc) * - * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromPerm(com.github.mce.minigames.api.perms.PermissionsInterface) + * @see com.github.mce.minigames.api.MglibInterface#findZone(org.bukkit.Location) */ @Override - public MinigameInterface getMinigameFromPerm(PermissionsInterface item) + public ZoneInterface findZone(Location location) { // TODO Auto-generated method stub return null; } + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.MglibInterface#findZones(org.bukkit.Location) + */ @Override - public MinigameInterface getMinigameFromCfg(ConfigurationValueInterface item) + public Iterable<ZoneInterface> findZones(Location location) { - final String name = this.optionsToMinigame.get(item); - return name == null ? null : this.minigames.get(name); + // TODO Auto-generated method stub + return null; } - /** - * Returns the global context implementation. - * @return global context implementation. + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.MglibInterface#getArenaTypes() */ - public MinigameContextImpl getApiContext() - { - return this.contextImpl; - } - @Override - public <T> T getContext(Class<T> clazz) + public Iterable<ArenaTypeInterface> getArenaTypes() { - return this.contextImpl.getContext(clazz); + // TODO Auto-generated method stub + return null; } + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.MglibInterface#getArenas() + */ @Override - public String resolveContextVar(String src) + public Iterable<ArenaInterface> getArenas() { - return this.contextImpl.resolveContextVar(src); + // TODO Auto-generated method stub + return Collections.emptyList(); } /* * (non-Javadoc) * - * @see com.github.mce.minigames.api.MglibInterface#debug() + * @see com.github.mce.minigames.api.MglibInterface#getArenas(com.github.mce.minigames.api.arena.ArenaTypeInterface) */ @Override - public boolean debug() + public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) { // TODO Auto-generated method stub - return true; + return null; } /* @@ -537,15 +748,17 @@ public Iterable<SignInterface> getSigns(MinigameInterface minigame) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MglibInterface#getDefaultLocale() + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.MglibInterface#getArenaCount() */ @Override - public Locale getDefaultLocale() + public int getArenaCount() { // TODO Auto-generated method stub - return null; + return 0; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java new file mode 100644 index 00000000..cafa5695 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java @@ -0,0 +1,99 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class InfoArenasCommandHandler extends AbstractPagableCommandHandler +{ + + @Override + protected int getLineCount(CommandInterface command) + { + return MglibInterface.INSTANCE.get().getArenaCount(); + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + return CommonMessages.InfoArenasHeader.toArg(command.getCommandPath()); + } + + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final Iterator<ArenaInterface> arenas = MglibInterface.INSTANCE.get().getArenas().iterator(); + int i = 0; + while (i < start && arenas.hasNext()) + { + arenas.next(); + i++; + } + final List<Serializable> result = new ArrayList<>(); + for (i = 0; i < count; i++) + { + if (arenas.hasNext()) + { + final ArenaInterface arena = arenas.next(); + Serializable state = null; + switch (arena.getState()) + { + case Disabled: + default: + state = CommonMessages.AraneStateDisabled.toArg(); + break; + case InGame: + state = CommonMessages.AraneStateInGame.toArg(); + break; + case Join: + state = CommonMessages.AraneStateJoin.toArg(); + break; + case Maintenance: + state = CommonMessages.AraneStateMeintenance.toArg(); + break; + case Restarting: + state = CommonMessages.AraneStateRestarting.toArg(); + break; + case Starting: + state = CommonMessages.AraneStateStarting.toArg(); + break; + } + result.add(CommonMessages.InfoArenaLine.toArg( + arena.getMinigame().getName(), + arena.getInternalName(), + state, + arena.getDisplayName() + )); + } + } + return result.toArray(new Serializable[result.size()]); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java index 341f12f6..8657917d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java @@ -15,12 +15,16 @@ package com.github.mce.minigames.impl.cmd; +import java.util.Collections; import java.util.List; +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.impl.MinigamesPlugin; /** * Command to display useful information. @@ -30,44 +34,59 @@ public class InfoCommandHandler implements SubCommandHandlerInterface { - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override public void handle(CommandInterface command) throws MinigameException { - // TODO Auto-generated method stub + // TODO Check permission + if (command.getArgs().length > 0) + { + final String name = command.getArgs()[0].toLowerCase(); + switch (name) + { + case "extensions": //$NON-NLS-1$ + new InfoExtensionsCommandHandler().handle(command.consumeArgs(1)); + return; + case "minigames": //$NON-NLS-1$ + new InfoMinigamesCommandHandler().handle(command.consumeArgs(1)); + return; + case "arenas": //$NON-NLS-1$ + new InfoArenasCommandHandler().handle(command.consumeArgs(1)); + return; + default: + command.send(CommonMessages.InfoUnknownSubCommand, command.getCommandPath(), name); + return; + } + } + + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final String mode = ((MinigamesPlugin)lib).getModeString(); + final String debug = lib.debug() ? "TRUE" : "FALSE"; //$NON-NLS-1$ //$NON-NLS-2$ + command.send(CommonMessages.InfoCommandOutput, + command.getCommandPath(), + lib.getMinecraftVersion().name(), + lib.getLibVersionString(), + mode, + debug + ); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ @Override public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { - // TODO Auto-generated method stub - return null; + return Collections.emptyList(); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override public LocalizedMessageInterface getShortDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.InfoCommandShortDescription; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override public LocalizedMessageInterface getDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.InfoCommandDescription; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java new file mode 100644 index 00000000..5c04a6db --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.services.MinigameExtensionInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class InfoExtensionsCommandHandler extends AbstractPagableCommandHandler +{ + @Override + protected int getLineCount(CommandInterface command) + { + return MglibInterface.INSTANCE.get().getExtensionsCount(); + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + return CommonMessages.InfoExtensionsHeader.toArg(command.getCommandPath()); + } + + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final Iterator<MinigameExtensionInterface> extensions = MglibInterface.INSTANCE.get().getExtensions().iterator(); + int i = 0; + while (i < start && extensions.hasNext()) + { + extensions.next(); + i++; + } + final List<Serializable> result = new ArrayList<>(); + for (i = 0; i < count; i++) + { + if (extensions.hasNext()) + { + final MinigameExtensionInterface extension = extensions.next(); + result.add(CommonMessages.InfoExtensionLine.toArg(extension.getName(), extension.getShortDescription())); + } + } + return result.toArray(new Serializable[result.size()]); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java new file mode 100644 index 00000000..4ec67509 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java @@ -0,0 +1,71 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.cmd; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; +import com.github.mce.minigames.api.cmd.CommandInterface; + +/** + * Command to display useful information. + * + * @author mepeisen + */ +public class InfoMinigamesCommandHandler extends AbstractPagableCommandHandler +{ + + @Override + protected int getLineCount(CommandInterface command) + { + return MglibInterface.INSTANCE.get().getMinigamesCount(); + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + return CommonMessages.InfoMinigamesHeader.toArg(command.getCommandPath()); + } + + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final Iterator<MinigameInterface> minigames = MglibInterface.INSTANCE.get().getMinigames().iterator(); + int i = 0; + while (i < start && minigames.hasNext()) + { + minigames.next(); + i++; + } + final List<Serializable> result = new ArrayList<>(); + for (i = 0; i < count; i++) + { + if (minigames.hasNext()) + { + final MinigameInterface minigame = minigames.next(); + result.add(CommonMessages.InfoMinigamesLine.toArg(minigame.getName(), minigame.getShortDescription())); + } + } + return result.toArray(new Serializable[result.size()]); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index 23be9b4d..93f2a905 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -39,11 +39,11 @@ public Mg2CommandHandler() this.injectSubCommand("help", new HelpCommandHandler(this)); //$NON-NLS-1$ this.injectSubCommand("info", new InfoCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("list", new ListCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("debug", new DebugCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("join", new JoinCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("leave", new LeaveCommandHandler()); //$NON-NLS-1$ // admin commands + this.injectSubCommand("debug", new DebugCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("test", new TestCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("admin", new AdminCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("create", new CreateCommandHandler()); //$NON-NLS-1$ diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index ec8e09df..29aeea65 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -20,6 +20,7 @@ import java.util.UUID; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -93,13 +94,41 @@ public void sendMessage(LocalizedMessageInterface msg, Serializable... args) final Player player = this.getBukkitPlayer(); if (player != null) { - if (player.isOp()) + + String[] msgs = null; + if (msg.isSingleLine()) { - player.sendMessage(msg.toAdminMessage(this.getPreferredLocale(), args)); + msgs = new String[]{player.isOp() ? (msg.toAdminMessage(this.getPreferredLocale(), args)) : (msg.toUserMessage(this.getPreferredLocale(), args))}; } else { - player.sendMessage(msg.toUserMessage(this.getPreferredLocale(), args)); + msgs = player.isOp() ? (msg.toAdminMessageLine(this.getPreferredLocale(), args)) : (msg.toUserMessageLine(this.getPreferredLocale(), args)); + } + + for (final String smsg : msgs) + { + switch (msg.getSeverity()) + { + default: + case Error: + player.sendMessage(ChatColor.DARK_RED + smsg); + break; + case Information: + player.sendMessage(ChatColor.WHITE + smsg); + break; + case Loser: + player.sendMessage(ChatColor.RED + smsg); + break; + case Success: + player.sendMessage(ChatColor.GREEN + smsg); + break; + case Warning: + player.sendMessage(ChatColor.YELLOW + smsg); + break; + case Winner: + player.sendMessage(ChatColor.GOLD + smsg); + break; + } } } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java new file mode 100644 index 00000000..311eaf4b --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.services; + +import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; + +/** + * A special extension to provide premium services. + * + * @author mepeisen + */ +public interface PremiumServiceProviderInterface extends MinigameExtensionProviderInterface +{ + + // marker interface for the premium support + // there can only be one premium extension + +} diff --git a/LIBv2/src/main/resources/config.yml b/LIBv2/src/main/resources/config.yml index cf602714..e69de29b 100644 --- a/LIBv2/src/main/resources/config.yml +++ b/LIBv2/src/main/resources/config.yml @@ -1,6 +0,0 @@ -# MinigamesAPI Config # -# If you want bugfree versions, turn this to true: -# NO USE TRUE MODE! -config: - auto_updating: false -signs_updating_time: 20 From 300d1ddd1a6f5d8edc38ba08b33cc47386a27637 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 27 Aug 2016 19:32:26 +0200 Subject: [PATCH 114/266] v2 --- .../mce/minigames/api/CommonErrors.java | 72 ++++- .../mce/minigames/api/CommonMessages.java | 81 +++++ .../mce/minigames/api/MglibInterface.java | 12 +- .../mce/minigames/api/MinigameContext.java | 73 ----- .../mce/minigames/api/MinigameInterface.java | 25 +- .../api/MinigamePluginInterface.java | 14 +- .../minigames/api/arena/ArenaInterface.java | 65 ++-- .../arena/ArenaTypeDeclarationInterface.java | 14 + .../mce/minigames/api/arena/ArenasConfig.java | 56 ++++ .../minigames/api/cmd/CommandInterface.java | 13 + .../minigames/api/config/CommonConfig.java | 38 ++- .../api/config/ConfigurationValues.java | 15 +- .../ContextHandlerInterface.java | 2 +- .../api/context/ContextResolverInterface.java | 39 +++ .../api/context/MinigameContext.java | 126 ++++++++ .../api/locale/LocalizedConfigLine.java | 171 ++++++++++ .../api/locale/LocalizedConfigString.java | 156 ++++++++++ .../api/perms/CommonPermissions.java | 36 ++- .../api/perms/PermissionsInterface.java | 13 + .../api/util/function/MgRunnable.java | 36 +++ .../src/site/markdown/dev_minigame_config.md | 4 + .../site/markdown/dev_minigame_permissions.md | 2 +- .../minigames/impl/MinigamePluginImpl.java | 173 ++++++++--- .../mce/minigames/impl/MinigameWrapper.java | 36 ++- .../mce/minigames/impl/MinigamesPlugin.java | 292 +++++++++++------- .../mce/minigames/impl/arena/ArenaImpl.java | 240 ++++++++++++++ .../impl/arena/ArenaTypeBuilderImpl.java | 91 ++++++ .../impl/arena/ArenaTypeDeclarationImpl.java | 56 +++- .../impl/cmd/CreateCommandHandler.java | 107 +++++-- .../impl/cmd/InfoArenasCommandHandler.java | 9 + .../impl/cmd/InfoCommandHandler.java | 8 +- .../cmd/InfoExtensionsCommandHandler.java | 10 + .../impl/cmd/InfoMinigamesCommandHandler.java | 9 + .../minigames/impl/cmd/Mg2CommandHandler.java | 1 + .../impl/cmd/StartCommandHandler.java | 8 +- .../impl/component/AbstractComponent.java | 68 ++++ .../impl/component/ComponentRegistry.java | 84 +++++ .../minigames/impl/component/WorldChunk.java | 130 ++++++++ .../impl/context/ArenaInterfaceProvider.java | 52 ++++ .../context/ArenaPlayerInterfaceProvider.java | 14 +- .../impl/context/DefaultResolver.java | 209 +++++++++++++ .../impl/context/MinigameContextImpl.java | 149 ++++++++- .../context/MinigameInterfaceProvider.java | 52 ++++ .../impl/player/ArenaPlayerImpl.java | 4 +- 44 files changed, 2513 insertions(+), 352 deletions(-) delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java rename APIv2/src/main/java/com/github/mce/minigames/api/{ => context}/ContextHandlerInterface.java (97%) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java index 2fda4a9d..c417ebe0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -54,6 +54,41 @@ public enum CommonErrors implements MinigameErrorCode @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because of wrong MinigamesLib plugin state: %2$s.", severity = MessageSeverityType.Error) Cannot_Create_Extension_Wrong_State, + /** + * Arena type cannot be initialized because minigames has wrong state. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: arena type name</li> + * <li>String: minigame name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create arena type %1$s for minigame %2$s because of wrong state.", severity = MessageSeverityType.Error) + Cannot_Create_ArenaType_Wrong_State, + + /** + * Arena cannot be creeated because of invalid characters. + * + * <p>No arguments.</p> + */ + @LocalizedMessage(defaultMessage = "Unable to create arena because name contains invalid characters.", severity = MessageSeverityType.Error) + Cannot_Create_Arena_Invalid_Name, + + /** + * Arena cannot be loaded because of invalid arena type. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: arena type name</li> + * <li>String: minigame name</li> + * <li>String: arena name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to load arena %3$s for minigame %2$s because of missing arena type %1$s.", severity = MessageSeverityType.Error) + Cannot_Load_Arena_Unknown_Type, + /** * Game cannot be initialized because of internal errors. * @@ -102,6 +137,31 @@ public enum CommonErrors implements MinigameErrorCode @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because it already exists.", severity = MessageSeverityType.Error) DuplicateExtension, + /** + * Arena cannot be created because it already exists. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: arena name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create arena %1$s because it already exists.", severity = MessageSeverityType.Error) + DuplicateArena, + + /** + * Arena type cannot be initialized because it already exists. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: type name</li> + * <li>String: minigame name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Unable to create arena type %1$s for minigame %2$s because it already exists.", severity = MessageSeverityType.Error) + DuplicateArenaType, + /** * Command must be executed in game. * @@ -111,12 +171,16 @@ public enum CommonErrors implements MinigameErrorCode InvokeIngame, /** - * No permissions for start command. + * No permissions for a command. * - * <p>No Arguments</p> + * <p>Arguments:</p> + * + * <ol> + * <li>String: command name</li> + * </ol> */ - @LocalizedMessage(defaultMessage = "No permission for /start command.", severity = MessageSeverityType.Error) - NoPermissionForStart, + @LocalizedMessage(defaultMessage = "No permission for %1$s command.", severity = MessageSeverityType.Error) + NoPermissionForCommand, /** * Start command outside arena. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index 94ee7d53..fe1ac30d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -154,6 +154,87 @@ public enum CommonMessages implements LocalizedMessageInterface }) PartyCommandDescription, + /** + * Minigame was not found. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Minigame %1$s not found.", severity = MessageSeverityType.Error) + MinigameNotFound, + + /** + * Default arena type was not found. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Minigame %1$s does not declare a default arena type.", severity = MessageSeverityType.Error) + DefaultArenaTypeNotFound, + + /** + * Default arena type was not found. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: minigame name</li> + * <li>String: arena type name</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Minigame %1$s does not declare arena type %2$s.", severity = MessageSeverityType.Error) + ArenaTypeNotFound, + + /** + * Usage of create command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s [minigame] [type] [name] " + LocalizedMessage.GRAY + "Create a new arena.") + CreateCommandUsage, + + /** + * Short description of create command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessage(defaultMessage = "Create a new arena.") + CreateCommandShortDescription, + + /** + * Long description of create command. + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * </ol> + */ + @LocalizedMessageList({ + "Creates a new arena.", + "As first argument give the internal name of the minigame.", + "As second argument give the arena type name.", + "As third argument give the unique name of the arena.", + "The arena type is optional. If it is missing the default type is used.", + " Example: " + LocalizedMessage.BLUE + "%1$s Snake Sheeps Snake1", + "The new arena will automatically be in maintenance mode." + }) + CreateCommandDescription, + /** * The command output of /mg2 info. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index c0467c41..35860530 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -31,9 +31,9 @@ import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.context.MinigameContext; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; @@ -142,16 +142,6 @@ public interface MglibInterface extends MinigameContext */ MessagesConfigInterface getMessagesFromMsg(LocalizedMessageInterface item); - /** - * Returns the minigame declaring the given enumeration class. - * - * @param item - * the enumeration value; only works on classes that are returned by a plugin provider during initialization. - * - * @return minigame or {@code null} if the class was not declared by any minigame. - */ - MinigameInterface getMinigameFromPerm(PermissionsInterface item); - /** * Returns the configuration declaring the given configuration value. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java deleted file mode 100644 index f66d1fec..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameContext.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * The minigame execution context. - * - * <p> - * The execution context is some kind of thread local session storage. Once a command or - * event is being processed the context is responsible for providing common minigame objects. - * For example the default implementation can return the current player being responsible for - * a command call or event and to return the arena this player is located in. - * </p> - * - * @author mepeisen - */ -public interface MinigameContext -{ - - /** - * Returns a session variable. - * - * @param clazz - * the class of the variable to be returned. - * @return Context variable or {@code null} if the variable was not set. - */ - <T> T getContext(Class<T> clazz); - - /** - * Resolves a context variable and performs variable substitution. - * - * @param src - * @return result - */ - String resolveContextVar(String src); - - /** - * Returns the current player. - * - * @return current player. - */ - default ArenaPlayerInterface getCurrentPlayer() - { - return this.getContext(ArenaPlayerInterface.class); - } - - /** - * Returns the current arena. - * - * @return current arena. - */ - default ArenaInterface getCurrentArena() - { - return this.getContext(ArenaInterface.class); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index a4689f97..c520cb49 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -56,6 +56,22 @@ public interface MinigameInterface extends ConfigInterface */ Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); + /** + * Returns the default arena type. + * + * @return default arena type or {@code null} if it was not found. + */ + ArenaTypeDeclarationInterface getDefaultType(); + + /** + * Returns the arena type with given name. + * + * @param name + * arena type name. + * @return arena type or {@code null} if it was not found. + */ + ArenaTypeDeclarationInterface getType(String name); + /** * Returns all declared arenas within this minigame. * @@ -63,13 +79,20 @@ public interface MinigameInterface extends ConfigInterface */ Iterable<ArenaInterface> getArenas(); + /** + * Return the amount of arenas. + * + * @return amount of arenas. + */ + int getArenaCount(); + /** * Returns the minigame arena with given internal name. * * @param name * @return arena or {@code null} if the arena does not exist. */ - ArenaInterface getArenas(String name); + ArenaInterface getArena(String name); /** * Returns a logger for the library. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java index 97eb7130..02d238be 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -17,6 +17,8 @@ import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.ContextResolverInterface; /** * The minigame plugin interface; administrational backend for the given minigame. @@ -35,6 +37,8 @@ public interface MinigamePluginInterface extends MinigameInterface /** * Creates a new arena type. * + * @param name + * internal name of the arena type. * @param type * arena type. * @param isDefault @@ -43,7 +47,7 @@ public interface MinigamePluginInterface extends MinigameInterface * @throws MinigameException * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. */ - ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolean isDefault) throws MinigameException; + ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws MinigameException; /** * Registers a context handler to calculate context variables. @@ -59,6 +63,14 @@ public interface MinigamePluginInterface extends MinigameInterface */ <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException; + /** + * Registers a helper to resolve context variables. + * + * @param resolver + * @throws MinigameException + */ + void registerContextResolver(ContextResolverInterface resolver) throws MinigameException; + /** * Initialize this minigame. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index 2b7641dd..a7807a50 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -15,7 +15,6 @@ package com.github.mce.minigames.api.arena; -import java.util.Locale; import java.util.logging.Logger; import com.github.mce.minigames.api.MinigameException; @@ -47,24 +46,14 @@ public interface ArenaInterface */ String getDisplayName(); - /** - * Returns the display name for given locale. - * - * @param locale - * @return arena display name; defaults to {@link #getDisplayName()} - */ - String getDisplayName(Locale locale); - /** * Changes the display name * * @param name - * @param locale - * the locale to be used or {@code null} to change the default display name. * @throws MinigameException * thrown if save failed. */ - void setDisplayName(String name, Locale locale) throws MinigameException; + void setDisplayName(String name) throws MinigameException; // states @@ -81,40 +70,65 @@ public interface ArenaInterface * @return logger instance. */ Logger getLogger(); - + /** * Returns the declaring minigame + * * @return minigame */ MinigameInterface getMinigame(); - + /** * Returns the arena state. * * <p> - * WARNING: You should not use this method to query the arena state. - * Instead either use the predicates or use the {@link #getRealState()} method. + * WARNING: You should not use this method to query the arena state. Instead either use the predicates or use the {@link #getRealState()} method. * </p> * * @return arena state */ ArenaState getState(); - + /** * Returns the real arena state. * * <p> - * While {@link #getState()} will return the public visible state this method - * returns the real state for gaming rules etc. While the arena state being MAINTENANCE - * the administrator is still able to start a single match to test the arena. - * Thus the real state may be {@link ArenaState#InGame} during tests while - * the arena state still shows up {@link ArenaState#Maintenance}. + * While {@link #getState()} will return the public visible state this method returns the real state for gaming rules etc. While the arena state being MAINTENANCE the administrator is still able + * to start a single match to test the arena. Thus the real state may be {@link ArenaState#InGame} during tests while the arena state still shows up {@link ArenaState#Maintenance}. * </p> * * @return arena state */ ArenaState getRealState(); + /** + * Returns the arena type for this arena. + * + * @return arena type. + */ + ArenaTypeInterface getArenaType(); + + /** + * Checks if the arena is enabled. + * + * @return {@code true} if the arena is enabled. + */ + boolean isEnabled(); + + /** + * Checks if the arena is in maintenance mode. + * + * @return {@code true} if the arena is under maintenance. + */ + boolean isMaintenance(); + + /** + * Checks if the arena can be started by command; checks the gaming rules. + * + * @return {@code true} if the arena can be started. + */ + boolean canStart(); + // stubbing /** @@ -134,11 +148,4 @@ public interface ArenaInterface */ MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws MinigameException; - /** - * Returns a test function to check if the arena can be started by command; checks the gaming rules. - * - * @return predicate to return {@code true} if the arena can be started. - */ - MgPredicate<ArenaInterface> canStart(); - } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java index 18a10b66..81ed79d3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.arena; +import com.github.mce.minigames.api.MinigameException; + /** * Interface for arena type declarations. * @@ -26,5 +28,17 @@ public interface ArenaTypeDeclarationInterface ArenaTypeInterface getType(); boolean isDefault(); + + /** + * Creates a new arena + * @param arenaName + * @return + */ + ArenaInterface createArena(String arenaName) throws MinigameException; + + /** + * @return + */ + String getName(); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java new file mode 100644 index 00000000..2532a4a7 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java @@ -0,0 +1,56 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +import com.github.mce.minigames.api.config.ConfigurationBool; +import com.github.mce.minigames.api.config.ConfigurationString; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.config.ConfigurationValues; + +/** + * The common arenas config file. + * + * @author mepeisen + */ +@ConfigurationValues(path = "arenas.$CTX:ARENA:internalName$", file = "arenas.yml") +public enum ArenasConfig implements ConfigurationValueInterface +{ + + /** + * The arena display name. + */ + @ConfigurationString(defaultValue = "") + DisplayName, + + /** + * The arena type. + */ + @ConfigurationString(defaultValue = "") + ArenaType, + + /** + * Is the arena enabled? + */ + @ConfigurationBool(defaultValue = false) + Enabled, + + /** + * Is the arena in maintenance? + */ + @ConfigurationBool(defaultValue = false) + Maintenance, + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java index 14aa25ef..8b5f7047 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java @@ -23,8 +23,10 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; @@ -171,4 +173,15 @@ static MgPredicate<CommandInterface> isPlayer() return (cmd) -> cmd.getSender() instanceof Player; } + /** + * Checks for given permission and if player does not have permission throws a MinigameException. + * @param perm + * @param command + * @throws MinigameException + */ + default void permThrowException(PermissionsInterface perm, String command) throws MinigameException + { + getPlayer().when(ArenaPlayerInterface.hasPerm(perm).negate()).thenThrow(CommonErrors.NoPermissionForCommand, (e) -> new Serializable[]{command}); + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java index 91e57b29..43feb1f8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java @@ -20,16 +20,52 @@ * * @author mepeisen */ -@ConfigurationValues(path = "config") +@ConfigurationValues(path = "config", fixed = true) public enum CommonConfig implements ConfigurationValueInterface { + // command options + /** * Is party command enabled? */ @ConfigurationBool(name = "party_command_enabled", defaultValue = true) PartyCommandEnabled, + // permission prefix + + /** + * Prefix for core permissions. + */ + @ConfigurationString(name = "permissions_prefix", defaultValue = "ancient.core") + PermissionPrefix, + + /** + * Prefix for core permissions. + */ + @ConfigurationString(name = "permissions_kits_prefix", defaultValue = "ancient.core.kits") + PermissionKitsPrefix, + + /** + * Prefix for core permissions. + */ + @ConfigurationString(name = "permissions_gun_prefix", defaultValue = "ancient.core.guns") + PermissionGunsPrefix, + + /** + * Prefix for core permissions. + */ + @ConfigurationString(name = "permissions_shop_prefix", defaultValue = "ancient.core.shop") + PermissionShopsPrefix, + + /** + * Prefix for core permissions. + */ + @ConfigurationString(name = "permissions_game_prefix", defaultValue = "ancient") + PermissionGamesPrefix, + + // common options + /** * Is debug mode enabled? */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java index 001b3618..31492eef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java @@ -34,15 +34,6 @@ /** * The default path used as a prefix for the configuration values. * - * <p> - * Within path the following variables can be used: - * </p> - * - * <ul> - * <li>"$MINIGAME$" : will be replaced by the current minigame name.</li> - * <li>"$ARENA$" : will be replaced by the current arena name.</li> - * </ul> - * * @return default path used as a prefix. */ String path(); @@ -54,4 +45,10 @@ */ String file() default "config.yml"; + /** + * {@code true} for fixed configuration variable calculated from declaring plugin; {@code false} for fetching minigame from context + * @return fixed configuration flag + */ + boolean fixed() default false; + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java similarity index 97% rename from APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java rename to APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java index b26c24e6..59de2321 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/ContextHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java @@ -13,7 +13,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.api; +package com.github.mce.minigames.api.context; import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.cmd.CommandInterface; diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java new file mode 100644 index 00000000..bd65a32d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.context; + +/** + * An interface being able to resolve variables with contexts. + * + * @author mepeisen + */ +public interface ContextResolverInterface +{ + + /** + * Tries to resolve given variable name. + * + * @param varName + * variable name to resolve. + * @param args + * arguments for resolve + * @param context + * the context + * @return the resolved string or {@code null} if the variable cannot be resolved. + */ + String resolve(String varName, String[] args, MinigameContext context); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java new file mode 100644 index 00000000..9c7038fc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java @@ -0,0 +1,126 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.context; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgRunnable; +import com.github.mce.minigames.api.util.function.MgSupplier; + +/** + * The minigame execution context. + * + * <p> + * The execution context is some kind of thread local session storage. Once a command or event is being processed the context is responsible for providing common minigame objects. For example the + * default implementation can return the current player being responsible for a command call or event and to return the arena this player is located in. + * </p> + * + * @author mepeisen + */ +public interface MinigameContext +{ + + /** + * Returns a session variable. + * + * @param clazz + * the class of the variable to be returned. + * @return Context variable or {@code null} if the variable was not set. + */ + <T> T getContext(Class<T> clazz); + + /** + * Sets a context variable. + * + * @param clazz + * the class of the variable + * @param value + * the new value + */ + <T> void setContext(Class<T> clazz, T value); + + /** + * Resolves a context variable and performs variable substitution. + * + * @param src + * @return result + */ + String resolveContextVar(String src); + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws MinigameException + * rethrown from runnable. + */ + void runInNewContext(MgRunnable runnable) throws MinigameException; + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws MinigameException + * rethrown from runnable. + */ + void runInCopiedContext(MgRunnable runnable) throws MinigameException; + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws MinigameException + * rethrown from runnable. + */ + <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException; + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws MinigameException + * rethrown from runnable. + */ + <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException; + + /** + * Returns the current player. + * + * @return current player. + */ + default ArenaPlayerInterface getCurrentPlayer() + { + return this.getContext(ArenaPlayerInterface.class); + } + + /** + * Returns the current arena. + * + * @return current arena. + */ + default ArenaInterface getCurrentArena() + { + return this.getContext(ArenaInterface.class); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java new file mode 100644 index 00000000..df770f2f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java @@ -0,0 +1,171 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.bukkit.configuration.ConfigurationSection; + +import com.github.mce.minigames.api.config.Configurable; + +/** + * A localized string placed within configuration files (not from messages.yml). + * + * @author mepeisen + */ +public class LocalizedConfigLine implements Configurable, LocalizedMessageInterface +{ + + /** + * serial version uid. + */ + private static final long serialVersionUID = -2121306517414707420L; + + /** + * The default locale. + */ + private Locale defaultLocale = Locale.ENGLISH; + + /** + * The user strings per locale. + */ + private Map<Locale, List<String>> userStrings = new HashMap<>(); + + /** + * The admin strings per locale. + */ + private Map<Locale, List<String>> adminStrings = new HashMap<>(); + + @Override + public void readFromConfig(ConfigurationSection section) + { + if (section.contains("default_locale")) //$NON-NLS-1$ + { + this.defaultLocale = new Locale(section.getString("default_locale"), ""); //$NON-NLS-1$ //$NON-NLS-2$ + } + this.userStrings.clear(); + if (section.contains("user")) //$NON-NLS-1$ + { + for (final String key : section.getConfigurationSection("user").getKeys(false)) //$NON-NLS-1$ + { + final Locale locale = new Locale(key, ""); //$NON-NLS-1$ + this.userStrings.put(locale, section.getStringList("user." + key)); //$NON-NLS-1$ + } + } + this.adminStrings.clear(); + if (section.contains("admin")) //$NON-NLS-1$ + { + for (final String key : section.getConfigurationSection("admin").getKeys(false)) //$NON-NLS-1$ + { + final Locale locale = new Locale(key, ""); //$NON-NLS-1$ + this.adminStrings.put(locale, section.getStringList("admin." + key)); //$NON-NLS-1$ + } + } + } + + @Override + public void writeToConfig(ConfigurationSection section) + { + section.set("default_locale", this.defaultLocale.toString()); //$NON-NLS-1$ + for (final Map.Entry<Locale, List<String>> userStr : this.userStrings.entrySet()) + { + section.set("user." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ + } + for (final Map.Entry<Locale, List<String>> userStr : this.adminStrings.entrySet()) + { + section.set("admin." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ + } + } + + @Override + public boolean isSingleLine() + { + return false; + } + + @Override + public boolean isMultiLine() + { + return true; + } + + @Override + public MessageSeverityType getSeverity() + { + return MessageSeverityType.Information; + } + + @Override + public String toUserMessage(Locale locale, Serializable... args) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + + @Override + public String[] toUserMessageLine(Locale locale, Serializable... args) + { + List<String> smsg = this.userStrings.get(locale); + if (smsg == null) + { + smsg = this.userStrings.get(this.defaultLocale); + } + final String[] result = new String[smsg.size()]; + int i = 0; + for (final String lmsg : smsg) + { + result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + i++; + } + return result; + } + + @Override + public String toAdminMessage(Locale locale, Serializable... args) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + + @Override + public String[] toAdminMessageLine(Locale locale, Serializable... args) + { + List<String> smsg = this.adminStrings.get(locale); + if (smsg == null || smsg.size() == 0) + { + smsg = this.userStrings.get(locale); + } + if (smsg == null) + { + smsg = this.adminStrings.get(this.defaultLocale); + } + if (smsg == null || smsg.size() == 0) + { + smsg = this.userStrings.get(this.defaultLocale); + } + final String[] result = new String[smsg.size()]; + int i = 0; + for (final String lmsg : smsg) + { + result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, true, args)); + i++; + } + return result; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java new file mode 100644 index 00000000..9ced271f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java @@ -0,0 +1,156 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.locale; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +import org.bukkit.configuration.ConfigurationSection; + +import com.github.mce.minigames.api.config.Configurable; + +/** + * A localized string placed within configuration files (not from messages.yml). + * + * @author mepeisen + */ +public class LocalizedConfigString implements Configurable, LocalizedMessageInterface +{ + + /** + * serial version uid. + */ + private static final long serialVersionUID = -2121306517414707420L; + + /** + * The default locale. + */ + private Locale defaultLocale = Locale.ENGLISH; + + /** + * The user strings per locale. + */ + private Map<Locale, String> userStrings = new HashMap<>(); + + /** + * The admin strings per locale. + */ + private Map<Locale, String> adminStrings = new HashMap<>(); + + @Override + public void readFromConfig(ConfigurationSection section) + { + if (section.contains("default_locale")) //$NON-NLS-1$ + { + this.defaultLocale = new Locale(section.getString("default_locale"), ""); //$NON-NLS-1$ //$NON-NLS-2$ + } + this.userStrings.clear(); + if (section.contains("user")) //$NON-NLS-1$ + { + for (final String key : section.getConfigurationSection("user").getKeys(false)) //$NON-NLS-1$ + { + final Locale locale = new Locale(key, ""); //$NON-NLS-1$ + this.userStrings.put(locale, section.getString("user." + key)); //$NON-NLS-1$ + } + } + this.adminStrings.clear(); + if (section.contains("admin")) //$NON-NLS-1$ + { + for (final String key : section.getConfigurationSection("admin").getKeys(false)) //$NON-NLS-1$ + { + final Locale locale = new Locale(key, ""); //$NON-NLS-1$ + this.adminStrings.put(locale, section.getString("admin." + key)); //$NON-NLS-1$ + } + } + } + + @Override + public void writeToConfig(ConfigurationSection section) + { + section.set("default_locale", this.defaultLocale.toString()); //$NON-NLS-1$ + for (final Map.Entry<Locale, String> userStr : this.userStrings.entrySet()) + { + section.set("user." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ + } + for (final Map.Entry<Locale, String> userStr : this.adminStrings.entrySet()) + { + section.set("admin." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ + } + } + + @Override + public boolean isSingleLine() + { + return true; + } + + @Override + public boolean isMultiLine() + { + return false; + } + + @Override + public MessageSeverityType getSeverity() + { + return MessageSeverityType.Information; + } + + @Override + public String toUserMessage(Locale locale, Serializable... args) + { + String smsg = this.userStrings.get(locale); + if (smsg == null) + { + smsg = this.userStrings.get(this.defaultLocale); + } + return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); + } + + @Override + public String[] toUserMessageLine(Locale locale, Serializable... args) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + + @Override + public String toAdminMessage(Locale locale, Serializable... args) + { + String smsg = this.adminStrings.get(locale); + if (smsg == null || smsg.length() == 0) + { + smsg = this.userStrings.get(locale); + } + if (smsg == null) + { + smsg = this.adminStrings.get(this.defaultLocale); + } + if (smsg == null || smsg.length() == 0) + { + smsg = this.userStrings.get(this.defaultLocale); + } + return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, true, args)); + } + + @Override + public String[] toAdminMessageLine(Locale locale, Serializable... args) + { + throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java index 3a203af0..454c125e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java @@ -20,14 +20,44 @@ * * @author mepeisen */ -@Permissions("$MGLIB$.core") +@Permissions("$PERM:MGLIB$") public enum CommonPermissions implements PermissionsInterface { /** * Permission to perform the start command. */ - @Permission - start, + @Permission("command.start") + Start, + + /** + * Permission to perform the info command. + */ + @Permission("command.info.common") + Info, + + /** + * Permission to perform the info command. + */ + @Permission("command.info.extensions") + InfoExtensions, + + /** + * Permission to perform the info command. + */ + @Permission("command.info.minigames") + InfoMinigames, + + /** + * Permission to perform the info command. + */ + @Permission("command.info.arenas") + InfoArenas, + + /** + * Permission to perform the create command. + */ + @Permission("command.create") + Create, } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java index d47dfdf5..c187a2e2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.perms; +import com.github.mce.minigames.api.MglibInterface; + /** * An interface for enumerations that represent list of permissions. * @@ -46,4 +48,15 @@ default String fullPath() } } + /** + * Returns the resolved permission name. + * + * @return resolved permission name. + */ + default String resolveName() + { + final String srcName = this.fullPath(); + return MglibInterface.INSTANCE.get().resolveContextVar(srcName); + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java new file mode 100644 index 00000000..a281c091 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java @@ -0,0 +1,36 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.util.function; + +import com.github.mce.minigames.api.MinigameException; + +/** + * A {@link Runnable} that is aware of throwing minigame exceptions. + * + * @author mepeisen + */ +@FunctionalInterface +public interface MgRunnable +{ + + /** + * method to execute. + * + * @throws MinigameException thrown on errors. + */ + void run() throws MinigameException; + +} diff --git a/APIv2/src/site/markdown/dev_minigame_config.md b/APIv2/src/site/markdown/dev_minigame_config.md index 3bf659a8..0bb6e6bd 100644 --- a/APIv2/src/site/markdown/dev_minigame_config.md +++ b/APIv2/src/site/markdown/dev_minigame_config.md @@ -114,3 +114,7 @@ This helps administrators to manipulate your configuration options. TODO +## fixed config vs. non-fixed config + +TODO + diff --git a/APIv2/src/site/markdown/dev_minigame_permissions.md b/APIv2/src/site/markdown/dev_minigame_permissions.md index 3ee5e449..efd62c02 100644 --- a/APIv2/src/site/markdown/dev_minigame_permissions.md +++ b/APIv2/src/site/markdown/dev_minigame_permissions.md @@ -13,7 +13,7 @@ To declare a permission simply create an enumeration. * * @author mepeisen */ - @Permissions("$MINIGAME:myplugin$.common") + @Permissions("$PERM:MINIGAME:myplugin$.common") public enum MyPermissions implements PermissionsInterface { diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 7d3b7545..477d3acc 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -16,11 +16,17 @@ package com.github.mce.minigames.impl; import java.io.Serializable; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import java.util.TreeMap; +import java.util.logging.Level; import java.util.logging.Logger; -import com.github.mce.minigames.api.ContextHandlerInterface; +import org.bukkit.Bukkit; +import org.bukkit.configuration.ConfigurationSection; + +import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; @@ -28,13 +34,18 @@ import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.ContextResolverInterface; +import com.github.mce.minigames.impl.arena.ArenaImpl; +import com.github.mce.minigames.impl.arena.ArenaTypeBuilderImpl; +import com.github.mce.minigames.impl.component.ComponentRegistry; /** * The minigames plugin impl. * * @author mepeisen */ -class MinigamePluginImpl extends BaseImpl implements MinigamePluginInterface +public class MinigamePluginImpl extends BaseImpl implements MinigamePluginInterface { /** @@ -45,27 +56,48 @@ class MinigamePluginImpl extends BaseImpl implements MinigamePluginInterface /** * the known arena types of this minigame. */ - private final Map<ArenaTypeInterface, ArenaTypeDeclarationInterface> arenaTypes = new HashMap<>(); + private final Map<ArenaTypeInterface, ArenaTypeDeclarationInterface> arenaTypes = new HashMap<>(); /** * the known arena types of this minigame. */ - private final Map<String, ArenaTypeInterface> arenaTypesByName = new HashMap<>(); + private final Map<String, ArenaTypeInterface> arenaTypesByName = new HashMap<>(); + + /** + * the known arena types of this minigame. + */ + private final Map<String, ArenaTypeBuilderImpl> arenaTypeBuildersByName = new HashMap<>(); /** * the default arena type to use. */ private ArenaTypeDeclarationInterface defaultType; - + /** * Short description */ - private Serializable shortDescription; - + private Serializable shortDescription; + /** * Long multi line description */ - private Serializable longDescription; + private Serializable longDescription; + + /** + * The component registry to be used for registering components + */ + private final ComponentRegistry components; + + /** + * {@code true} if this plugin is already initialized. + */ + private boolean initialized; + + /** the arenas. */ + private final Map<String, ArenaImpl> arenas = new TreeMap<>(); + + /** a counter used for arena restart after booting. */ + private static int restartArenaTaskCount = 1; /** * Constructor to create a minigame. @@ -76,13 +108,16 @@ class MinigamePluginImpl extends BaseImpl implements MinigamePluginInterface * internal name of the minigame. * @param provider * the provider. + * @param components + * the component registry to use for registering components */ - public MinigamePluginImpl(MinigamesPlugin mgplugin, String name, PluginProviderInterface provider) + public MinigamePluginImpl(MinigamesPlugin mgplugin, String name, PluginProviderInterface provider, ComponentRegistry components) { super(mgplugin, provider.getJavaPlugin()); this.name = name; this.shortDescription = provider.getShortDescription(); this.longDescription = provider.getDescription(); + this.components = components; } @Override @@ -91,64 +126,89 @@ public String getName() return this.name; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MinigamePluginInterface#init() - */ @Override public void init() { - // TODO Auto-generated method stub + for (final Map.Entry<String, ArenaTypeBuilderImpl> entry : this.arenaTypeBuildersByName.entrySet()) + { + final ArenaTypeDeclarationInterface type = entry.getValue().build(); + if (type.isDefault()) + { + this.defaultType = type; + } + this.arenaTypesByName.put(entry.getKey(), type.getType()); + this.arenaTypes.put(type.getType(), type); + } + this.arenaTypesByName.clear(); + // load arenas from config. + final ConfigurationSection arenasSection = this.getConfig("arenas.yml").getConfigurationSection("arenas"); //$NON-NLS-1$ //$NON-NLS-2$ + for (final String key : arenasSection.getKeys(false)) + { + this.plugin.getLogger().log(Level.INFO, "Reloading arena " + key + " from config."); //$NON-NLS-1$ //$NON-NLS-2$ + try + { + final ArenaImpl arena = new ArenaImpl(key, this, this.components); + this.arenas.put(key.toLowerCase(), arena); + if (arena.isEnabled()) + { + synchronized (this) + { + Bukkit.getScheduler().runTaskLaterAsynchronously(this.plugin, () -> { + arena.tryRestart(); + }, 10L * restartArenaTaskCount); + restartArenaTaskCount++; + } + } + } + catch (Exception ex) + { + this.plugin.getLogger().log(Level.SEVERE, "Failed loading arena " + key + " from config.", ex); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + this.initialized = true; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MinigameInterface#getDeclaredTypes() - */ @Override public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() { - // TODO Auto-generated method stub - return null; + return new ArrayList<>(this.arenaTypes.values()); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MinigameInterface#getArenas() - */ @Override public Iterable<ArenaInterface> getArenas() { - // TODO Auto-generated method stub - return null; + return new ArrayList<>(this.arenas.values()); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MinigameInterface#getArenas(java.lang.String) - */ @Override - public ArenaInterface getArenas(String name) + public ArenaInterface getArena(String arenaName) { - // TODO Auto-generated method stub - return null; + return this.arenas.get(arenaName); + } + + @Override + public int getArenaCount() + { + return this.arenas.size(); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MinigamePluginInterface#createArenaType(com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) - */ @Override - public ArenaTypeBuilderInterface createArenaType(ArenaTypeInterface type, boolean isDefault) throws MinigameException + public ArenaTypeBuilderInterface createArenaType(String typename, ArenaTypeInterface type, boolean isDefault) throws MinigameException { - // TODO Auto-generated method stub - return null; + if (this.initialized) + { + throw new MinigameException(CommonErrors.Cannot_Create_ArenaType_Wrong_State, typename, this.name); + } + if (this.arenaTypeBuildersByName.containsKey(typename.toLowerCase())) + { + throw new MinigameException(CommonErrors.DuplicateArenaType, typename, this.name); + } + + final ArenaTypeBuilderImpl builder = new ArenaTypeBuilderImpl(typename, type, isDefault, this.components, this.arenas, this); + this.arenaTypeBuildersByName.put(typename.toLowerCase(), builder); + return builder; } @Override @@ -162,17 +222,36 @@ public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T { this.mgplugin.getApiContext().registerContextHandler(clazz, handler); } - + + @Override + public void registerContextResolver(ContextResolverInterface resolver) throws MinigameException + { + this.mgplugin.getApiContext().registerContextResolver(resolver); + } + @Override public Serializable getShortDescription() { return this.shortDescription; } - + @Override public Serializable getLongDescription() { return this.longDescription; } + @Override + public ArenaTypeDeclarationInterface getDefaultType() + { + return this.defaultType; + } + + @Override + public ArenaTypeDeclarationInterface getType(String typename) + { + final ArenaTypeInterface type = this.arenaTypesByName.get(typename.toLowerCase()); + return type == null ? null : this.arenaTypes.get(type); + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index b4422b30..2cc08f05 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -21,6 +21,7 @@ import org.bukkit.configuration.ConfigurationSection; import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; @@ -31,18 +32,18 @@ * @author mepeisen * */ -class MinigameWrapper implements MinigameInterface +public class MinigameWrapper implements MinigameInterface { /** * The underlying minigame plugin impl. */ - private MinigamePluginImpl delegate; + private MinigamePluginInterface delegate; /** * @param delegate The underlying minigame plugin impl. */ - public MinigameWrapper(MinigamePluginImpl delegate) + public MinigameWrapper(MinigamePluginInterface delegate) { this.delegate = delegate; } @@ -62,22 +63,19 @@ public MessagesConfigInterface getMessages() @Override public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() { - // TODO Auto-generated method stub - return null; + return this.delegate.getDeclaredTypes(); } @Override public Iterable<ArenaInterface> getArenas() { - // TODO Auto-generated method stub - return null; + return this.delegate.getArenas(); } @Override - public ArenaInterface getArenas(String name) + public ArenaInterface getArena(String name) { - // TODO Auto-generated method stub - return null; + return this.delegate.getArena(name); } @Override @@ -109,5 +107,23 @@ public Serializable getLongDescription() { return this.delegate.getLongDescription(); } + + @Override + public int getArenaCount() + { + return this.delegate.getArenaCount(); + } + + @Override + public ArenaTypeDeclarationInterface getDefaultType() + { + return this.delegate.getDefaultType(); + } + + @Override + public ArenaTypeDeclarationInterface getType(String name) + { + return this.delegate.getType(name); + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index ae44441a..818728b4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -25,6 +25,7 @@ import java.util.Map; import java.util.TreeMap; import java.util.UUID; +import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; import org.bukkit.Bukkit; @@ -45,6 +46,7 @@ import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; @@ -54,14 +56,19 @@ import com.github.mce.minigames.api.config.ConfigurationValues; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; +import com.github.mce.minigames.api.util.function.MgRunnable; +import com.github.mce.minigames.api.util.function.MgSupplier; import com.github.mce.minigames.api.zones.ZoneInterface; +import com.github.mce.minigames.impl.component.ComponentRegistry; +import com.github.mce.minigames.impl.context.ArenaInterfaceProvider; import com.github.mce.minigames.impl.context.ArenaPlayerInterfaceProvider; +import com.github.mce.minigames.impl.context.DefaultResolver; import com.github.mce.minigames.impl.context.MinigameContextImpl; +import com.github.mce.minigames.impl.context.MinigameInterfaceProvider; import com.github.mce.minigames.impl.player.PlayerRegistry; import com.github.mce.minigames.impl.services.PremiumServiceProviderInterface; @@ -75,7 +82,7 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface { /** the overall minecraft server versioon. */ - public static final MinecraftVersionsType SERVER_VERSION = MinigamesPlugin.getServerVersion(); + public static final MinecraftVersionsType SERVER_VERSION = MinigamesPlugin.getServerVersion(); /** the well known minigames. */ private final Map<String, MinigamePluginImpl> minigames = new TreeMap<>(); @@ -116,6 +123,11 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface */ private PremiumServiceProviderInterface premium; + /** + * The component registry. + */ + private final ComponentRegistry components = new ComponentRegistry(); + /** * Constructor to create the plugin. */ @@ -128,6 +140,11 @@ public MinigamesPlugin() // context provider mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); + mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); + mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); + + // resolver + mg2.registerContextResolver(new DefaultResolver()); mg2.init(); @@ -208,58 +225,61 @@ public boolean onCommand(CommandSender sender, Command command, String label, St final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); if (handler != null) { - try + if (this.debug()) { - if (this.debug()) - { - this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ - } - final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); - handler.handle(cmd); + this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ } - catch (MinigameException ex) - { - if (this.debug()) - { - this.getLogger().log(Level.FINE, "Caught minigame exception during command execution: " + command.getName() + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$ - } - final Locale locale = this.getDefaultLocale(); - final boolean isAdmin = sender.isOp(); - String[] msgs = null; - if (ex.getCode().isSingleLine()) - { - msgs = new String[]{isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs()))}; - } - else + final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); + + this.contextImpl.runInContext(cmd, () -> { + try { - msgs = isAdmin ? (ex.getCode().toAdminMessageLine(locale, ex.getArgs())) : (ex.getCode().toUserMessageLine(locale, ex.getArgs())); + handler.handle(cmd); } - for (final String msg : msgs) + catch (MinigameException ex) { - switch (ex.getCode().getSeverity()) + if (this.debug()) + { + this.getLogger().log(Level.FINE, "Caught minigame exception during command execution: " + command.getName() + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$ + } + final Locale locale = this.getDefaultLocale(); + final boolean isAdmin = sender.isOp(); + String[] msgs = null; + if (ex.getCode().isSingleLine()) + { + msgs = new String[] { isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())) }; + } + else + { + msgs = isAdmin ? (ex.getCode().toAdminMessageLine(locale, ex.getArgs())) : (ex.getCode().toUserMessageLine(locale, ex.getArgs())); + } + for (final String msg : msgs) { - default: - case Error: - sender.sendMessage(ChatColor.DARK_RED + msg); - break; - case Information: - sender.sendMessage(ChatColor.WHITE + msg); - break; - case Loser: - sender.sendMessage(ChatColor.RED + msg); - break; - case Success: - sender.sendMessage(ChatColor.GREEN + msg); - break; - case Warning: - sender.sendMessage(ChatColor.YELLOW + msg); - break; - case Winner: - sender.sendMessage(ChatColor.GOLD + msg); - break; + switch (ex.getCode().getSeverity()) + { + default: + case Error: + sender.sendMessage(ChatColor.DARK_RED + msg); + break; + case Information: + sender.sendMessage(ChatColor.WHITE + msg); + break; + case Loser: + sender.sendMessage(ChatColor.RED + msg); + break; + case Success: + sender.sendMessage(ChatColor.GREEN + msg); + break; + case Warning: + sender.sendMessage(ChatColor.YELLOW + msg); + break; + case Winner: + sender.sendMessage(ChatColor.GOLD + msg); + break; + } } } - } + }); return true; } return false; @@ -278,18 +298,23 @@ public List<String> onTabComplete(CommandSender sender, Command command, String final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); if (handler != null) { - try - { - final CommandInterface cmd = new CommandImpl(sender, this, command, null, newArgs, '/' + command.getName()); - return handler.onTabComplete(cmd, lastArg); - } - catch (MinigameException ex) - { - if (this.debug()) + final CommandInterface cmd = new CommandImpl(sender, this, command, null, newArgs, '/' + command.getName()); + final AtomicReference<List<String>> ref = new AtomicReference<>(); + final String la = lastArg; + this.contextImpl.runInContext(cmd, () -> { + try { - this.getLogger().log(Level.FINE, "Caught minigame exception during tab completion: " + command.getName() + " " + lastArg + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + ref.set(handler.onTabComplete(cmd, la)); } - } + catch (MinigameException ex) + { + if (this.debug()) + { + this.getLogger().log(Level.FINE, "Caught minigame exception during tab completion: " + command.getName() + " " + la + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + } + } + }); + return ref.get(); } return null; } @@ -321,12 +346,12 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { throw new MinigameException(CommonErrors.Cannot_Create_Game_Wrong_State, name, this.state.name()); } - if (this.minigames.containsKey(name)) + if (this.minigames.containsKey(name.toLowerCase())) { throw new MinigameException(CommonErrors.DuplicateMinigame, name); } - impl = new MinigamePluginImpl(this, name, provider); + impl = new MinigamePluginImpl(this, name, provider, this.components); // register commands final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); @@ -336,7 +361,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { if (this.commands.containsKey(entry.getKey())) { - this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from minigame \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from minigame \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ } else { @@ -356,7 +381,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { if (!(value instanceof LocalizedMessageInterface)) { - this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ + this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ throw new MinigameException(CommonErrors.MinigameRegistrationError, name); } final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; @@ -378,7 +403,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { if (!(value instanceof ConfigurationValueInterface)) { - this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ + this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ throw new MinigameException(CommonErrors.MinigameRegistrationError, name); } final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; @@ -390,7 +415,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws impl.initConfgurations(configs); // finally register it - this.minigames.put(name, impl); + this.minigames.put(name.toLowerCase(), impl); } return impl; @@ -399,7 +424,7 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws @Override public MinigameInterface getMinigame(String minigame) { - final MinigamePluginImpl impl = this.minigames.get(minigame); + final MinigamePluginImpl impl = this.minigames.get(minigame.toLowerCase()); return impl == null ? null : new MinigameWrapper(impl); } @@ -450,28 +475,22 @@ public MessagesConfigInterface getMessagesFromMsg(LocalizedMessageInterface item return name == null ? null : this.extensions.get(name).getMessages(); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getMinigameFromPerm(com.github.mce.minigames.api.perms.PermissionsInterface) - */ - @Override - public MinigameInterface getMinigameFromPerm(PermissionsInterface item) - { - // TODO Auto-generated method stub - return null; - } - @Override public ConfigInterface getConfigFromCfg(ConfigurationValueInterface item) { - String name = this.optionsToMinigame.get(item); - if (name != null) + final ConfigurationValues values = item.getClass().getAnnotation(ConfigurationValues.class); + if (values.fixed()) { - return this.minigames.get(name); + String name = this.optionsToMinigame.get(item); + if (name != null) + { + return this.minigames.get(name); + } + name = this.optionsToExtension.get(item); + return name == null ? null : this.extensions.get(name); } - name = this.optionsToExtension.get(item); - return name == null ? null : this.extensions.get(name); + final MinigameInterface minigame = this.getContext(MinigameInterface.class); + return minigame; } /** @@ -495,6 +514,36 @@ public String resolveContextVar(String src) { return this.contextImpl.resolveContextVar(src); } + + @Override + public <T> void setContext(Class<T> clazz, T value) + { + this.contextImpl.setContext(clazz, value); + } + + @Override + public void runInNewContext(MgRunnable runnable) throws MinigameException + { + this.contextImpl.runInNewContext(runnable); + } + + @Override + public void runInCopiedContext(MgRunnable runnable) throws MinigameException + { + this.contextImpl.runInCopiedContext(runnable); + } + + @Override + public <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException + { + return this.contextImpl.calculateInNewContext(runnable); + } + + @Override + public <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException + { + return this.contextImpl.calculateInCopiedContext(runnable); + } @Override public Serializable getLibVersionString() @@ -564,7 +613,7 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr { if (this.commands.containsKey(entry.getKey())) { - this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from extension \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from extension \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ } else { @@ -584,7 +633,7 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr { if (!(value instanceof LocalizedMessageInterface)) { - this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ + this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ throw new MinigameException(CommonErrors.ExtensionRegistrationError, name); } final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; @@ -606,7 +655,7 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr { if (!(value instanceof ConfigurationValueInterface)) { - this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ + this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ throw new MinigameException(CommonErrors.ExtensionRegistrationError, name); } final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; @@ -653,40 +702,63 @@ public Iterable<ZoneInterface> findZones(Location location) return null; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getArenaTypes() - */ @Override public Iterable<ArenaTypeInterface> getArenaTypes() { - // TODO Auto-generated method stub - return null; + final List<ArenaTypeInterface> result = new ArrayList<>(); + for (final MinigamePluginImpl mg : this.minigames.values()) + { + for (final ArenaTypeDeclarationInterface atdi : mg.getDeclaredTypes()) + { + result.add(atdi.getType()); + } + } + return result; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getArenas() - */ @Override public Iterable<ArenaInterface> getArenas() { - // TODO Auto-generated method stub - return Collections.emptyList(); + final List<ArenaInterface> result = new ArrayList<>(); + for (final MinigamePluginImpl mg : this.minigames.values()) + { + for (final ArenaInterface arena : mg.getArenas()) + { + result.add(arena); + } + } + return result; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getArenas(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ @Override public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) { - // TODO Auto-generated method stub - return null; + final String minigame = type.getMinigame(); + final MinigamePluginImpl impl = this.minigames.get(minigame); + if (impl != null) + { + final List<ArenaInterface> arenas = new ArrayList<>(); + for (final ArenaInterface arena : impl.getArenas()) + { + if (arena.getArenaType() == type) + { + arenas.add(arena); + } + } + return arenas; + } + return Collections.emptyList(); + } + + @Override + public int getArenaCount() + { + int count = 0; + for (final MinigamePluginImpl mg : this.minigames.values()) + { + count += mg.getArenaCount(); + } + return count; } /* @@ -749,16 +821,4 @@ public Iterable<SignInterface> getSigns(MinigameInterface minigame) return null; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getArenaCount() - */ - @Override - public int getArenaCount() - { - // TODO Auto-generated method stub - return 0; - } - } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java new file mode 100644 index 00000000..b998b1a0 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java @@ -0,0 +1,240 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.arena; + +import java.util.logging.Logger; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.MinigamePluginInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaState; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.ArenasConfig; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.impl.MinigameWrapper; +import com.github.mce.minigames.impl.component.ComponentRegistry; +import com.github.mce.minigames.impl.stubs.FalseStub; +import com.github.mce.minigames.impl.stubs.TrueStub; + +/** + * Implementation of arena interface. + * + * @author mepeisen + */ +public class ArenaImpl implements ArenaInterface +{ + + /** the internal name. */ + private String internalName; + + /** the display name. */ + private String displayName; + + /** the plugin. */ + private MinigamePluginInterface plugin; + + /** the component registry. */ + private ComponentRegistry registry; + + /** the used arena declaration. */ + private ArenaTypeDeclarationInterface arenaType; + + /** {@code true} if the arena is enabled. */ + private boolean enabled; + + /** {@code true} if the arena is in maintenance mode. */ + private boolean maintenance; + + /** current arena state. */ + private ArenaState state; + + /** + * Constructor for a new arena. + * + * @param arenaName + * @param plugin + * @param registry + * @param type + * @throws MinigameException + */ + public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry, ArenaTypeDeclarationInterface type) throws MinigameException + { + this.internalName = arenaName; + this.plugin = plugin; + this.registry = registry; + this.arenaType = type; + + final MglibInterface lib = MglibInterface.INSTANCE.get(); + lib.runInCopiedContext(() -> { + lib.setContext(ArenaInterface.class, this); + + // init minimal values. + ArenasConfig.Enabled.setBoolean(false); + ArenasConfig.ArenaType.setString(this.arenaType.getName()); + ArenasConfig.Maintenance.setBoolean(true); + + // save the config. + ArenasConfig.Maintenance.saveConfig(); + }); + this.maintenance = true; + } + + /** + * Constructor for an existing arena. + * + * @param arenaName + * @param plugin + * @param registry + * @throws MinigameException + */ + public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry) throws MinigameException + { + this.internalName = arenaName; + this.plugin = plugin; + this.registry = registry; + + final MglibInterface lib = MglibInterface.INSTANCE.get(); + lib.runInCopiedContext(() -> { + lib.setContext(ArenaInterface.class, this); + + this.enabled = ArenasConfig.Enabled.getBoolean(); + this.maintenance = ArenasConfig.Maintenance.getBoolean(); + this.displayName = ArenasConfig.DisplayName.getString(); + + final String typename = ArenasConfig.ArenaType.getString(); + this.arenaType = this.plugin.getType(typename); + if (this.arenaType == null) + { + throw new MinigameException(CommonErrors.Cannot_Load_Arena_Unknown_Type, typename, this.plugin.getName(), arenaName); + } + + // TODO Load components, options and rules + }); + } + + @Override + public String getInternalName() + { + return this.internalName; + } + + @Override + public String getDisplayName() + { + return this.displayName == null ? this.internalName : this.displayName; + } + + @Override + public void setDisplayName(String name) throws MinigameException + { + final MglibInterface lib = MglibInterface.INSTANCE.get(); + lib.runInCopiedContext(() -> { + lib.setContext(ArenaInterface.class, this); + ArenasConfig.DisplayName.setString(name); + ArenasConfig.DisplayName.saveConfig(); + }); + this.displayName = name; + } + + @Override + public Logger getLogger() + { + // TODO Arena Logger + return this.plugin.getLogger(); + } + + @Override + public MinigameInterface getMinigame() + { + return new MinigameWrapper(this.plugin); + } + + @Override + public ArenaState getState() + { + return this.maintenance ? ArenaState.Maintenance : this.state; + } + + @Override + public ArenaState getRealState() + { + return this.state; + } + + @Override + public boolean isEnabled() + { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isMaintenance() + { + // TODO Auto-generated method stub + return false; + } + + @Override + public MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws MinigameException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + + @Override + public boolean canStart() + { + // TODO Auto-generated method stub + return false; + } + + @Override + public ArenaTypeInterface getArenaType() + { + return this.arenaType.getType(); + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.arena.ArenaInterface#start() + */ + @Override + public void start() + { + // TODO Auto-generated method stub + + } + + /** + * Try to restart the arena asynchronous (safe restart) + */ + public void tryRestart() + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java new file mode 100644 index 00000000..bd166e7e --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java @@ -0,0 +1,91 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.arena; + +import java.util.Map; + +import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; +import com.github.mce.minigames.impl.MinigamePluginImpl; +import com.github.mce.minigames.impl.component.ComponentRegistry; + +/** + * Implementation of an arena type builder. + * + * @author mepeisen + */ +public class ArenaTypeBuilderImpl implements ArenaTypeBuilderInterface +{ + + /** name of the type. */ + private String typename; + /** the enum type. */ + private ArenaTypeInterface type; + /** {@code true} if this the default */ + private boolean isDefault; + + /** the arenas. */ + private Map<String, ArenaImpl> arenas; + + /** the registry. */ + private ComponentRegistry registry; + + /** the minigames plugin that declared this arena type. */ + private MinigamePluginImpl plugin; + + /** + * @param typename + * @param type + * @param isDefault + * @param registry + * @param arenas + * @param plugin + */ + public ArenaTypeBuilderImpl(String typename, ArenaTypeInterface type, boolean isDefault, ComponentRegistry registry, Map<String, ArenaImpl> arenas, MinigamePluginImpl plugin) + { + this.typename = typename; + this.type = type; + this.isDefault = isDefault; + this.registry = registry; + this.plugin = plugin; + this.arenas = arenas; + } + + /** + * Creates the arena type declaration. + * + * @return arena type declaration. + */ + public ArenaTypeDeclarationInterface build() + { + return new ArenaTypeDeclarationImpl(this.typename, this.type, this.isDefault, this.arenas, this.registry, this.plugin); + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.ArenaRuleSet[]) + */ + @Override + public void applyRulesets(ArenaRuleSet... set) + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java index 6bb0f600..4e5dde3e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java @@ -15,8 +15,15 @@ package com.github.mce.minigames.impl.arena; +import java.util.Map; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.impl.MinigamePluginImpl; +import com.github.mce.minigames.impl.component.ComponentRegistry; /** * Internal representation of an arena type. @@ -36,30 +43,73 @@ public class ArenaTypeDeclarationImpl implements ArenaTypeDeclarationInterface */ private boolean isDefault; + /** + * The name of the arena type. + */ + private String typename; + + /** the arenas. */ + private Map<String, ArenaImpl> arenas; + + /** the registry. */ + private ComponentRegistry registry; + + /** the minigames plugin. */ + private MinigamePluginImpl plugin; + /** * Constructor to create arena type. * + * @param typename + * name of the type. * @param enumType * Underlying arena type (enum) * @param isDefault * {@code true} for default arena type. + * @param arenas + * the minigame arenas + * @param registry + * the component registry + * @param plugin */ - public ArenaTypeDeclarationImpl(ArenaTypeInterface enumType, boolean isDefault) + public ArenaTypeDeclarationImpl(String typename, ArenaTypeInterface enumType, boolean isDefault, Map<String, ArenaImpl> arenas, ComponentRegistry registry, MinigamePluginImpl plugin) { + this.typename = typename; this.enumType = enumType; this.isDefault = isDefault; + this.arenas = arenas; + this.registry = registry; + this.plugin = plugin; } - + @Override public ArenaTypeInterface getType() { return this.enumType; } - + @Override public boolean isDefault() { return this.isDefault; } + @Override + public String getName() + { + return this.typename; + } + + @Override + public ArenaInterface createArena(String arenaName) throws MinigameException + { + if (this.arenas.containsKey(arenaName.toLowerCase())) + { + throw new MinigameException(CommonErrors.DuplicateArena, arenaName); + } + final ArenaImpl arena = new ArenaImpl(arenaName, this.plugin, this.registry); + this.arenas.put(arenaName.toLowerCase(), arena); + return arena; + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java index 0928ab34..46098d79 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java @@ -15,59 +15,128 @@ package com.github.mce.minigames.impl.cmd; +import java.util.ArrayList; import java.util.List; +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; /** - * Command to display useful information. + * Command to create a new arena. * * @author mepeisen */ public class CreateCommandHandler implements SubCommandHandlerInterface { - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override public void handle(CommandInterface command) throws MinigameException { - // TODO Auto-generated method stub + command.permThrowException(CommonPermissions.Create, command.getCommandPath()); + if (command.getArgs().length < 2) + { + command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); + return; + } + + final MglibInterface lib = MglibInterface.INSTANCE.get(); + final MinigameInterface minigame = lib.getMinigame(command.getArgs()[0]); + if (minigame == null) + { + command.send(CommonMessages.MinigameNotFound, command.getArgs()[0]); + command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); + return; + } + + ArenaTypeDeclarationInterface type = null; + String arenaName = null; + if (command.getArgs().length == 2) + { + type = minigame.getDefaultType(); + if (type == null) + { + command.send(CommonMessages.DefaultArenaTypeNotFound, command.getArgs()[0]); + command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); + return; + } + arenaName = command.getArgs()[1]; + } + else + { + type = minigame.getType(command.getArgs()[1]); + if (type == null) + { + command.send(CommonMessages.ArenaTypeNotFound, command.getArgs()[0], command.getArgs()[1]); + command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); + return; + } + arenaName = command.getArgs()[2]; + } + + type.createArena(arenaName); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ @Override public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException { - // TODO Auto-generated method stub + final MglibInterface lib = MglibInterface.INSTANCE.get(); + if (command.getArgs().length == 0) + { + final List<String> result = new ArrayList<>(); + for (final MinigameInterface mg : lib.getMinigames()) + { + if (lastArg == null) + { + result.add(mg.getName()); + } + else if (mg.getName().startsWith(lastArg)) + { + result.add(mg.getName()); + } + } + return result; + } + else if (command.getArgs().length == 1) + { + final List<String> result = new ArrayList<>(); + final MinigameInterface mg = lib.getMinigame(command.getArgs()[0]); + if (mg != null) + { + for (final ArenaTypeDeclarationInterface type : mg.getDeclaredTypes()) + { + if (lastArg == null) + { + result.add(type.getName()); + } + else if (type.getName().startsWith(lastArg)) + { + result.add(type.getName()); + } + } + } + return result; + } return null; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override public LocalizedMessageInterface getShortDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.InfoCommandShortDescription; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ @Override public LocalizedMessageInterface getDescription(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return CommonMessages.InfoCommandDescription; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java index cafa5695..cb291da8 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java @@ -22,9 +22,11 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; /** * Command to display useful information. @@ -34,6 +36,13 @@ public class InfoArenasCommandHandler extends AbstractPagableCommandHandler { + @Override + public void handle(CommandInterface command) throws MinigameException + { + command.permThrowException(CommonPermissions.InfoArenas, command.getCommandPath() + " arenas"); //$NON-NLS-1$ + super.handle(command); + } + @Override protected int getLineCount(CommandInterface command) { diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java index 8657917d..46ff10cb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java @@ -24,6 +24,7 @@ import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; import com.github.mce.minigames.impl.MinigamesPlugin; /** @@ -37,8 +38,6 @@ public class InfoCommandHandler implements SubCommandHandlerInterface @Override public void handle(CommandInterface command) throws MinigameException { - // TODO Check permission - if (command.getArgs().length > 0) { final String name = command.getArgs()[0].toLowerCase(); @@ -59,6 +58,8 @@ public void handle(CommandInterface command) throws MinigameException } } + command.permThrowException(CommonPermissions.Info, command.getCommandPath()); + final MglibInterface lib = MglibInterface.INSTANCE.get(); final String mode = ((MinigamesPlugin)lib).getModeString(); final String debug = lib.debug() ? "TRUE" : "FALSE"; //$NON-NLS-1$ //$NON-NLS-2$ @@ -69,6 +70,9 @@ public void handle(CommandInterface command) throws MinigameException mode, debug ); + // TODO Info: Where Am I (which arena) + // TODO Info: Which waiting queues + // TODO Info on partys } @Override diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java index 5c04a6db..5a6b2c33 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java @@ -22,8 +22,10 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; import com.github.mce.minigames.api.services.MinigameExtensionInterface; /** @@ -33,6 +35,14 @@ */ public class InfoExtensionsCommandHandler extends AbstractPagableCommandHandler { + + @Override + public void handle(CommandInterface command) throws MinigameException + { + command.permThrowException(CommonPermissions.InfoExtensions, command.getCommandPath() + " extensions"); //$NON-NLS-1$ + super.handle(command); + } + @Override protected int getLineCount(CommandInterface command) { diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java index 4ec67509..b7b3a442 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java @@ -22,9 +22,11 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; /** * Command to display useful information. @@ -33,6 +35,13 @@ */ public class InfoMinigamesCommandHandler extends AbstractPagableCommandHandler { + + @Override + public void handle(CommandInterface command) throws MinigameException + { + command.permThrowException(CommonPermissions.InfoMinigames, command.getCommandPath() + " minigames"); //$NON-NLS-1$ + super.handle(command); + } @Override protected int getLineCount(CommandInterface command) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index 93f2a905..cd1034c1 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -41,6 +41,7 @@ public Mg2CommandHandler() this.injectSubCommand("list", new ListCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("join", new JoinCommandHandler()); //$NON-NLS-1$ this.injectSubCommand("leave", new LeaveCommandHandler()); //$NON-NLS-1$ + // TODO preferred locale command // admin commands this.injectSubCommand("debug", new DebugCommandHandler()); //$NON-NLS-1$ diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index 3c5c4d0a..31b6cc34 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -16,7 +16,6 @@ package com.github.mce.minigames.impl.cmd; import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; -import static com.github.mce.minigames.api.player.ArenaPlayerInterface.hasPerm; import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; import java.util.Collections; @@ -54,16 +53,17 @@ public void handle(CommandInterface command) throws MinigameException // only in-game command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); - // check permission final ArenaPlayerInterface player = command.getPlayer(); - player.when(hasPerm(CommonPermissions.start).negate()).thenThrow(CommonErrors.NoPermissionForStart); + + // check permission + command.permThrowException(CommonPermissions.Start, command.getCommandPath()); // only inside arena player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); // check if the arena can be started directly final ArenaInterface arena = player.getArena(); - arena.when(arena.canStart().negate()).thenThrow(CommonErrors.CannotStart); + arena.when(ArenaInterface::canStart).thenThrow(CommonErrors.CannotStart); // start it, log and send success message MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java new file mode 100644 index 00000000..7666fc9c --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java @@ -0,0 +1,68 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.component; + +import java.util.HashSet; +import java.util.Set; + +/** + * Base class for all minigame components. + * + * @author mepeisen + */ +public abstract class AbstractComponent +{ + + /** the underlying component registry owning this component. */ + private final ComponentRegistry registry; + + /** the current world chunks this component is located in. */ + private final Set<WorldChunk> currentChunks = new HashSet<>(); + + /** + * Constructor to create the component. + * + * @param registry + * the owning registry. + */ + public AbstractComponent(ComponentRegistry registry) + { + this.registry = registry; + } + + /** + * Sets/Changes the world chunks this component is located in. + * @param chunks + */ + public void setWorldChunks(Set<WorldChunk> chunks) + { + final Set<WorldChunk> removed = new HashSet<>(this.currentChunks); + removed.removeAll(chunks); + final Set<WorldChunk> added = new HashSet<>(chunks); + added.removeAll(this.currentChunks); + if (removed.size() > 0) + { + this.registry.unregister(removed, this); + } + if (added.size() > 0) + { + this.registry.register(added, this); + } + this.currentChunks.clear(); + this.currentChunks.addAll(chunks); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java new file mode 100644 index 00000000..5e8e3e9d --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java @@ -0,0 +1,84 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.component; + +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +/** + * A registry for locating and managing components. + * + * @author mepeisen + */ +public class ComponentRegistry +{ + + /** the registered components per chunk. */ + private final Map<WorldChunk, Set<AbstractComponent>> components = new HashMap<>(); + + /** + * Registers a component in a world chunk. + * + * @param chunks + * Chunks to register + * @param component + * component to register. + */ + public void register(Set<WorldChunk> chunks, AbstractComponent component) + { + for (final WorldChunk chunk : chunks) + { + this.components.computeIfAbsent(chunk, (c) -> new HashSet<>()).add(component); + } + } + + /** + * Removes a component from world chunks. + * + * @param chunks + * Chunks to unregister + * @param component + * component to unregister + */ + public void unregister(Set<WorldChunk> chunks, AbstractComponent component) + { + for (final WorldChunk chunk : chunks) + { + final Set<AbstractComponent> set = this.components.get(chunk); + if (set != null) + { + set.remove(component); + } + } + } + + /** + * Fetches components within a world chunk. + * + * @param chunk + * world chunk + * @return components being in this world chunk. + */ + public Set<AbstractComponent> fetch(WorldChunk chunk) + { + final Set<AbstractComponent> result = this.components.get(chunk); + return result == null ? Collections.emptySet() : result; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java new file mode 100644 index 00000000..16545623 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java @@ -0,0 +1,130 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.component; + +import org.bukkit.Chunk; +import org.bukkit.Location; + +/** + * Helper class for minecraft chunks of different servers and worlds. + * + * @author mepeisen + * + */ +public class WorldChunk +{ + + /** the absolute server name; {@code null} for current/local server. */ + private final String serverName; + + /** the world name. */ + private final String worldName; + + /** x coordinate of the chunk. */ + private final int x; + + /** z coordinate of the chunk. */ + private final int z; + + /** pre calculated hash. */ + private final int hash; + + /** + * Constructor to create the world chunk. + * + * @param serverName + * @param worldName + * @param x + * @param z + */ + public WorldChunk(String serverName, String worldName, int x, int z) + { + this.serverName = serverName; + this.worldName = worldName; + this.x = x; + this.z = z; + + final int prime = 31; + int result = 1; + result = prime * result + ((this.serverName == null) ? 0 : this.serverName.hashCode()); + result = prime * result + ((this.worldName == null) ? 0 : this.worldName.hashCode()); + result = prime * result + this.x; + result = prime * result + this.z; + this.hash = result; + } + + /** + * Constructor to create the world chunk. + * + * @param chunk + * world chunk. + */ + public WorldChunk(Chunk chunk) + { + this(null, chunk.getWorld().getName(), chunk.getX(), chunk.getZ()); + } + + /** + * Constructor to create the world chunk. + * + * @param location + * world location. + */ + public WorldChunk(Location location) + { + this(location.getChunk()); + } + + @Override + public int hashCode() + { + return this.hash; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + WorldChunk other = (WorldChunk) obj; + if (this.hash != other.hash) + return false; + if (this.serverName == null) + { + if (other.serverName != null) + return false; + } + else if (!this.serverName.equals(other.serverName)) + return false; + if (this.worldName == null) + { + if (other.worldName != null) + return false; + } + else if (!this.worldName.equals(other.worldName)) + return false; + if (this.x != other.x) + return false; + if (this.z != other.z) + return false; + return true; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java new file mode 100644 index 00000000..d64c00d8 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.context; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.MinigameContext; + +/** + * Provider to calculate arena for context. + * + * @author mepeisen + */ +public class ArenaInterfaceProvider implements ContextHandlerInterface<ArenaInterface> +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromCommand(com.github.mce.minigames.api.cmd.CommandInterface, com.github.mce.minigames.api.MinigameContext) + */ + @Override + public ArenaInterface calculateFromCommand(CommandInterface command, MinigameContext context) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromEvent(com.github.mce.minigames.api.arena.rules.MinigameEvent, com.github.mce.minigames.api.MinigameContext) + */ + @Override + public ArenaInterface calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java index f0dec207..f8b47684 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java @@ -15,27 +15,25 @@ package com.github.mce.minigames.impl.context; -import com.github.mce.minigames.api.ContextHandlerInterface; -import com.github.mce.minigames.api.MinigameContext; import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.MinigameContext; import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** + * Provider to calculate arena players for context. + * * @author mepeisen - * */ public class ArenaPlayerInterfaceProvider implements ContextHandlerInterface<ArenaPlayerInterface> { - /* (non-Javadoc) - * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromCommand(com.github.mce.minigames.api.cmd.CommandInterface, com.github.mce.minigames.api.MinigameContext) - */ @Override public ArenaPlayerInterface calculateFromCommand(CommandInterface command, MinigameContext context) { - // TODO Auto-generated method stub - return null; + // simply return the command sender + return command.getPlayer(); } /* (non-Javadoc) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java new file mode 100644 index 00000000..644ba1b8 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java @@ -0,0 +1,209 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.context; + +import java.lang.reflect.Method; +import java.util.logging.Level; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.config.CommonConfig; +import com.github.mce.minigames.api.context.ContextResolverInterface; +import com.github.mce.minigames.api.context.MinigameContext; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * Default implementation of context resolve. + * + * <p> + * Resolves the following variables: + * </p> + * + * <ul> + * <li><b>PERM:MGLIB</b> to {@link CommonConfig#PermissionPrefix}</li> + * <li><b>PERM:MGLIB:KITS</b> to {@link CommonConfig#PermissionKitsPrefix}</li> + * <li><b>PERM:MGLIB:GUNS</b> to {@link CommonConfig#PermissionGunsPrefix}</li> + * <li><b>PERM:MGLIB:SHOPS</b> to {@link CommonConfig#PermissionShopsPrefix}</li> + * <li><b>PERM:MINIGAME</b> to {@link CommonConfig#PermissionGamesPrefix} and current context minigame</li> + * <li><b>PERM:MINIGAME:name</b> to {@link CommonConfig#PermissionGamesPrefix} and name string</li> + * <li><b>OPT:path</b> to config.yml variable of given name and for current context minigame</li> + * <li><b>OPT:name:path</b> to config.yml variable of given name and for minigame of given name</li> + * <li><b>CTX:type:name</b> to a common context variable of given type and variable name.</li> + * </ul> + * + * <p> + * Available context variable types are: + * </p> + * + * <ul> + * <li><b>PLAYER</b> maps to the current {@link ArenaPlayerInterface}.</li> + * <li><b>MINIGAME</b> maps to the current {@link MinigameInterface}.</li> + * <li><b>ARENA</b> maps to the current {@link ArenaInterface}.</li> + * </ul> + * + * @author mepeisen + */ +public class DefaultResolver implements ContextResolverInterface +{ + + @Override + public String resolve(String varName, String[] args, MinigameContext context) + { + switch (varName) + { + case "PERM": //$NON-NLS-1$ + if (args.length > 0) + { + switch (args[0]) + { + case "MGLIB": //$NON-NLS-1$ + if (args.length > 2) + { + // failed + return null; + } + if (args.length > 1) + { + switch (args[1]) + { + case "KITS": //$NON-NLS-1$ + return CommonConfig.PermissionKitsPrefix.getString(); + case "GUNS": //$NON-NLS-1$ + return CommonConfig.PermissionGunsPrefix.getString(); + case "SHOPS": //$NON-NLS-1$ + return CommonConfig.PermissionShopsPrefix.getString(); + default: + // failed + return null; + } + } + return CommonConfig.PermissionPrefix.getString(); + case "MINIGAME": //$NON-NLS-1$ + if (args.length > 2) + { + // failed + return null; + } + if (args.length > 1) + { + return CommonConfig.PermissionGamesPrefix.getString() + '.' + args[1]; + } + final MinigameInterface minigame = context.getContext(MinigameInterface.class); + if (minigame == null) + { + // failed + return null; + } + return CommonConfig.PermissionGamesPrefix.getString() + '.' + minigame.getName(); + default: + // failed + return null; + } + } + // failed + return null; + case "OPT": //$NON-NLS-1$ + if (args.length == 1) + { + final MinigameInterface minigame = context.getContext(MinigameInterface.class); + if (minigame == null) + { + // failed + return null; + } + final String value = minigame.getConfig("config.yml").getString(args[0]); //$NON-NLS-1$ + return value; + } + if (args.length == 2) + { + final MinigameInterface minigame = MglibInterface.INSTANCE.get().getMinigame(args[0]); + if (minigame == null) + { + // failed + return null; + } + final String value = minigame.getConfig("config.yml").getString(args[1]); //$NON-NLS-1$ + return value; + } + // failed + return null; + case "CTX": //$NON-NLS-1$ + if (args.length == 2) + { + switch (args[0]) + { + case "PLAYER": //$NON-NLS-1$ + return resolveVar(context.getContext(ArenaPlayerInterface.class), args[1]); + case "MINIGAME": //$NON-NLS-1$ + return resolveVar(context.getContext(MinigameInterface.class), args[1]); + case "ARENA": //$NON-NLS-1$ + return resolveVar(context.getContext(ArenaInterface.class), args[1]); + default: + // failed + return null; + } + } + // failed + return null; + default: + // failed + return null; + } + } + + /** + * Resolves a variable by invoking getters. + * + * @param object + * the object to resolve the getter path against. + * @param path + * getter path + * @return resolved variable + */ + private String resolveVar(Object object, String path) + { + Object cur = object; + final String[] splitted = path.split("\\."); //$NON-NLS-1$ + int i = 0; + cur = object; + while (cur != null && i < splitted.length) + { + final String getterName = "get" + splitted[i].substring(0, 1).toUpperCase() + splitted[i].substring(1); //$NON-NLS-1$ + try + { + final Method mth = cur.getClass().getMethod(getterName); + if (mth != null) + { + cur = mth.invoke(cur); + } + } + catch (Exception ex) + { + final MglibInterface lib = MglibInterface.INSTANCE.get(); + if (lib.debug()) + { + lib.getLogger().log(Level.FINE, "Problems invoking " + getterName + " on " + cur, ex); //$NON-NLS-1$ //$NON-NLS-2$ + } + cur = null; + } + i++; + } + + return cur == null ? "NULL" : cur.toString(); //$NON-NLS-1$ + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java index 2a953106..9063d0ed 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java @@ -16,17 +16,21 @@ package com.github.mce.minigames.impl.context; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import com.github.mce.minigames.api.ContextHandlerInterface; -import com.github.mce.minigames.api.MinigameContext; import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.ContextResolverInterface; +import com.github.mce.minigames.api.context.MinigameContext; +import com.github.mce.minigames.api.util.function.MgRunnable; +import com.github.mce.minigames.api.util.function.MgSupplier; /** * Implementation of minigame context. @@ -42,6 +46,9 @@ public class MinigameContextImpl implements MinigameContext /** the thread local storage. */ private final ThreadLocal<TLD> tls = ThreadLocal.withInitial(() -> new TLD()); + /** context resolve helper. */ + private final List<ContextResolverInterface> resolvers = new ArrayList<>(); + /** * Registers a context handler to calculate context variables. * @@ -58,6 +65,15 @@ public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T { this.handlers.computeIfAbsent(clazz, (key) -> new ArrayList<>()).add(handler); } + + /** + * + * @param resolver + */ + public void registerContextResolver(ContextResolverInterface resolver) + { + this.resolvers.add(resolver); + } /** * Runs given runnable with clean context. @@ -155,15 +171,134 @@ else if (data.event != null) data.computeStack.remove(clazz); } } + + @Override + public <T> void setContext(Class<T> clazz, T value) + { + final TLD data = this.tls.get(); + data.put(clazz, value); + } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameContext#resolveContextVar(java.lang.String) - */ @Override public String resolveContextVar(String src) { - // TODO Auto-generated method stub - return src; + if (!src.contains("$")) return src; //$NON-NLS-1$ + final StringBuilder builder = new StringBuilder(); + int start = src.indexOf('$'); + if (start > 0) builder.append(src, 0, start); + int end = src.indexOf('$', start + 1); + final String varWithArgs = src.substring(start + 1, end - 1); + final String[] splitted = varWithArgs.split(":"); //$NON-NLS-1$ + builder.append(resolve(splitted)); + builder.append(this.resolveContextVar(src.substring(end + 1))); + return builder.toString(); + } + + /** + * Resolve context var + * @param splitted + * @return resolved var + */ + private String resolve(String[] splitted) + { + final String varName = splitted[0]; + final String[] args = splitted.length == 1 ? new String[0] : Arrays.copyOfRange(splitted, 1, splitted.length); + for (final ContextResolverInterface resolver : this.resolvers) + { + final String result = resolver.resolve(varName, args, this); + if (result != null) return result; + } + return "?"; //$NON-NLS-1$ + } + + @Override + public void runInNewContext(MgRunnable runnable) throws MinigameException + { + final TLD old = this.tls.get(); + final TLD tld = new TLD(); + this.tls.set(tld); + try + { + tld.clear(); + tld.command = old.command; + tld.event = old.event; + runnable.run(); + } + finally + { + this.tls.set(old); + tld.clear(); + tld.command = null; + tld.event = null; + } + } + + @Override + public void runInCopiedContext(MgRunnable runnable) throws MinigameException + { + final TLD old = this.tls.get(); + final TLD tld = new TLD(); + this.tls.set(tld); + try + { + tld.clear(); + tld.putAll(old); + tld.command = old.command; + tld.event = old.event; + runnable.run(); + } + finally + { + this.tls.set(old); + tld.clear(); + tld.command = null; + tld.event = null; + } + } + + @Override + public <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException + { + final TLD old = this.tls.get(); + final TLD tld = new TLD(); + this.tls.set(tld); + try + { + tld.clear(); + tld.command = old.command; + tld.event = old.event; + return runnable.get(); + } + finally + { + this.tls.set(old); + tld.clear(); + tld.command = null; + tld.event = null; + } + } + + @Override + public <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException + { + final TLD old = this.tls.get(); + final TLD tld = new TLD(); + this.tls.set(tld); + try + { + tld.clear(); + tld.putAll(old); + tld.command = old.command; + tld.event = old.event; + return runnable.get(); + } + finally + { + this.tls.set(old); + tld.clear(); + tld.command = null; + tld.event = null; + } } /** diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java new file mode 100644 index 00000000..4a53c496 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.context; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.MinigameContext; + +/** + * Provider to calculate minigame for context. + * + * @author mepeisen + */ +public class MinigameInterfaceProvider implements ContextHandlerInterface<MinigameInterface> +{ + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromCommand(com.github.mce.minigames.api.cmd.CommandInterface, com.github.mce.minigames.api.MinigameContext) + */ + @Override + public MinigameInterface calculateFromCommand(CommandInterface command, MinigameContext context) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromEvent(com.github.mce.minigames.api.arena.rules.MinigameEvent, com.github.mce.minigames.api.MinigameContext) + */ + @Override + public MinigameInterface calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 29aeea65..81b900eb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -171,8 +171,8 @@ public void join(WaitQueue queue) @Override public boolean checkPermission(PermissionsInterface perm) { - // TODO Auto-generated method stub - return true; + final Player player = this.getBukkitPlayer(); + return player == null ? false : player.hasPermission(perm.resolveName()); } @Override From fb6cd08cafe5b149056131d11b6f9bca37f78ff5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 29 Aug 2016 08:06:29 +0200 Subject: [PATCH 115/266] v2 --- .../api/CommonProviderInterface.java | 34 +- .../mce/minigames/api/MglibInterface.java | 3 +- .../api/MinigamePluginInterface.java | 8 + .../rules/bevents/MinecraftVersionRange.java | 47 + .../MinigameAreaEffectCloudApplyEvent.java | 2 + .../bevents/MinigameBlockExplodeEvent.java | 2 + .../MinigameCauldronLevelChangeEvent.java | 2 + .../MinigameEnderDragonChangePhaseEvent.java | 2 + .../bevents/MinigameEntityBreedEvent.java | 2 + .../MinigameEntityToggleGlideEvent.java | 2 + .../bevents/MinigameFireworkExplodeEvent.java | 2 + ...java => MinigameFoodLevelChangeEvent.java} | 2 +- .../rules/bevents/MinigameItemMergeEvent.java | 2 + .../MinigameLingeringPotionSplashEvent.java | 2 + ...nigamePlayerArmorStandManipulateEvent.java | 2 + .../MinigamePlayerChangedMainHandEvent.java | 2 + .../MinigamePlayerPickupArrowEvent.java | 2 + ...MinigamePlayerResourcePackStatusEvent.java | 2 + .../MinigamePlayerSwapHandItemsEvent.java | 2 + .../bevents/MinigamePrepareAnvilEvent.java | 2 + .../MinigameVillagerAcquireTradeEvent.java | 2 + .../MinigameVillagerReplenishTradeEvent.java | 2 + .../cmd/AbstractCompositeCommandHandler.java | 10 + .../api/context/MinigameContext.java | 11 + .../api/context/MinigameStorage.java | 47 + .../mce/minigames/api/gui/ClickGuiId.java | 37 + .../minigames/api/gui/ClickGuiInterface.java | 46 + .../mce/minigames/api/gui/ClickGuiItem.java | 110 + .../api/gui/ClickGuiPageInterface.java | 40 + .../api/gui/GuiSessionInterface.java | 77 + .../api/player/ArenaPlayerInterface.java | 58 + .../api/services/ExtensionInterface.java | 54 + .../services/MinigameExtensionInterface.java | 21 +- LIBv2/nms/api/.classpath | 26 + LIBv2/nms/api/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../api/.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../api/.settings/org.eclipse.jdt.ui.prefs | 67 + .../api/.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/api/pom.xml | 120 + .../impl/nms/EventSystemInterface.java | 12 +- .../mce/minigames/impl/nms/NmsFactory.java | 34 + LIBv2/nms/v1_10_r1/.classpath | 26 + LIBv2/nms/v1_10_r1/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 + .../.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/v1_10_r1/pom.xml | 138 ++ .../impl/nms/v1_10_1/EventSystem1_10_1.java | 1960 +++++++++++++++++ .../impl/nms/v1_10_1/NmsFactory1_10_1.java | 55 + LIBv2/nms/v1_8_r1/.classpath | 26 + LIBv2/nms/v1_8_r1/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 + .../.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/v1_8_r1/pom.xml | 138 ++ .../impl/nms/v1_8_1/NmsFactory1_8_1.java | 35 + LIBv2/nms/v1_8_r2/.classpath | 26 + LIBv2/nms/v1_8_r2/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 + .../.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/v1_8_r2/pom.xml | 138 ++ .../impl/nms/v1_8_2/NmsFactory1_8_2.java | 35 + LIBv2/nms/v1_8_r3/.classpath | 26 + LIBv2/nms/v1_8_r3/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 + .../.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/v1_8_r3/pom.xml | 138 ++ .../impl/nms/v1_8_3/NmsFactory1_8_3.java | 35 + LIBv2/nms/v1_9_r1/.classpath | 26 + LIBv2/nms/v1_9_r1/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 + .../.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/v1_9_r1/pom.xml | 138 ++ .../impl/nms/v1_9_1/NmsFactory1_9_1.java | 35 + LIBv2/nms/v1_9_r2/.classpath | 26 + LIBv2/nms/v1_9_r2/.project | 23 + .../org.eclipse.core.resources.prefs | 6 + .../.settings/org.eclipse.jdt.core.prefs | 433 ++++ .../.settings/org.eclipse.jdt.ui.prefs | 67 + .../.settings/org.eclipse.m2e.core.prefs | 4 + LIBv2/nms/v1_9_r2/pom.xml | 138 ++ .../impl/nms/v1_9_2/NmsFactory1_9_2.java | 35 + LIBv2/pom.xml | 80 +- .../mce/minigames/impl/CoreMinigame.java | 15 +- .../mce/minigames/impl/ExtensionImpl.java | 11 + .../minigames/impl/MinigamePluginImpl.java | 10 + .../mce/minigames/impl/MinigamesPlugin.java | 176 +- .../cmd/InfoExtensionsCommandHandler.java | 6 +- .../impl/player/ArenaPlayerImpl.java | 147 +- .../minigames/impl/player/PlayerRegistry.java | 20 + .../PremiumServiceProviderInterface.java | 12 +- 100 files changed, 8127 insertions(+), 86 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java rename APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/{MinigameFloodLevelChangedEvent.java => MinigameFoodLevelChangeEvent.java} (91%) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java create mode 100644 LIBv2/nms/api/.classpath create mode 100644 LIBv2/nms/api/.project create mode 100644 LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/api/pom.xml rename APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java => LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java (69%) create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java create mode 100644 LIBv2/nms/v1_10_r1/.classpath create mode 100644 LIBv2/nms/v1_10_r1/.project create mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/v1_10_r1/pom.xml create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java create mode 100644 LIBv2/nms/v1_8_r1/.classpath create mode 100644 LIBv2/nms/v1_8_r1/.project create mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/v1_8_r1/pom.xml create mode 100644 LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java create mode 100644 LIBv2/nms/v1_8_r2/.classpath create mode 100644 LIBv2/nms/v1_8_r2/.project create mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/v1_8_r2/pom.xml create mode 100644 LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java create mode 100644 LIBv2/nms/v1_8_r3/.classpath create mode 100644 LIBv2/nms/v1_8_r3/.project create mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/v1_8_r3/pom.xml create mode 100644 LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java create mode 100644 LIBv2/nms/v1_9_r1/.classpath create mode 100644 LIBv2/nms/v1_9_r1/.project create mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/v1_9_r1/pom.xml create mode 100644 LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java create mode 100644 LIBv2/nms/v1_9_r2/.classpath create mode 100644 LIBv2/nms/v1_9_r2/.project create mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs create mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs create mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs create mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs create mode 100644 LIBv2/nms/v1_9_r2/pom.xml create mode 100644 LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java index 49e0cd50..7f80a323 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java @@ -20,6 +20,10 @@ import org.bukkit.plugin.java.JavaPlugin; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.gui.ClickGuiId; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; /** * Basic interface for providers, either minigame plugins or extensions. @@ -45,7 +49,10 @@ public interface CommonProviderInterface * * @return message classes for predefined messages. */ - Iterable<Class<? extends Enum<?>>> getMessageClasses(); + default Iterable<Class<? extends LocalizedMessageInterface>> getMessageClasses() + { + return null; + } /** * Returns the permission classes. @@ -56,7 +63,10 @@ public interface CommonProviderInterface * * @return permission classes for predefined permissions. */ - Iterable<Class<? extends Enum<?>>> getPermissions(); + default Iterable<Class<? extends PermissionsInterface>> getPermissions() + { + return null; + } /** * Returns the bukkit (main) commands registered by this minigame. @@ -67,7 +77,10 @@ public interface CommonProviderInterface * * @return bukkit (main) commands. */ - Map<String, CommandHandlerInterface> getBukkitCommands(); + default Map<String, CommandHandlerInterface> getBukkitCommands() + { + return null; + } /** * Returns the configuration classes. @@ -78,6 +91,19 @@ public interface CommonProviderInterface * * @return configuration classes for predefined configurations. */ - Iterable<Class<? extends Enum<?>>> getConfigurations(); + default Iterable<Class<? extends ConfigurationValueInterface>> getConfigurations() + { + return null; + } + + /** + * Returns the additional gui ids for this provider. + * + * @return additional gui ids. + */ + default Iterable<Class<? extends ClickGuiId>> getGuiIds() + { + return null; + } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 35860530..7dcad94f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -35,6 +35,7 @@ import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.services.ExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; @@ -164,7 +165,7 @@ public interface MglibInterface extends MinigameContext * * @return extensions. */ - Iterable<MinigameExtensionInterface> getExtensions(); + Iterable<ExtensionInterface> getExtensions(); /** * Return the amount of installed minigames. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java index 02d238be..35852310 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -83,4 +83,12 @@ public interface MinigamePluginInterface extends MinigameInterface */ void init() throws MinigameException; + /** + * Will be called from plugin as soon as the plugin is disabled. + * + * @throws MinigameException + * thrown if there are problems disabling the plugin. + */ + void disable() throws MinigameException; + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java new file mode 100644 index 00000000..16bdb00d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java @@ -0,0 +1,47 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.bevents; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import com.github.mce.minigames.api.MinecraftVersionsType; + +/** + * Annotation to indicate a version range for minecraft events. + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(TYPE) +public @interface MinecraftVersionRange +{ + + /** + * Minimum version for minecraft servers. + * @return minimum versions. + */ + MinecraftVersionsType min() default MinecraftVersionsType.Unknown; + + /** + * maximum version for minecraft servers. + * @return maximum version. + */ + MinecraftVersionsType max() default MinecraftVersionsType.Unknown; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java index 1d2319fe..54b6c924 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.AreaEffectCloudApplyEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameAreaEffectCloudApplyEvent extends MinigameEvent<AreaEffectCloudApplyEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java index dd508602..e43dfacf 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.block.BlockExplodeEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) public interface MinigameBlockExplodeEvent extends MinigameEvent<BlockExplodeEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java index 965f8b26..5d12d14b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.block.CauldronLevelChangeEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameCauldronLevelChangeEvent extends MinigameEvent<CauldronLevelChangeEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java index 9c32d523..61ff8a56 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.EnderDragonChangePhaseEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameEnderDragonChangePhaseEvent extends MinigameEvent<EnderDragonChangePhaseEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java index 7095c257..88a47ab6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.EntityBreedEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) public interface MinigameEntityBreedEvent extends MinigameEvent<EntityBreedEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java index e490296f..c7fe68df 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.EntityToggleGlideEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameEntityToggleGlideEvent extends MinigameEvent<EntityToggleGlideEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java index 02921c25..4dff3843 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.FireworkExplodeEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) public interface MinigameFireworkExplodeEvent extends MinigameEvent<FireworkExplodeEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java similarity index 91% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java rename to APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java index 50217c7d..c8ca11fb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFloodLevelChangedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameFloodLevelChangedEvent extends MinigameEvent<FoodLevelChangeEvent> +public interface MinigameFoodLevelChangeEvent extends MinigameEvent<FoodLevelChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java index fe905ca8..c3d1cd0a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.ItemMergeEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) public interface MinigameItemMergeEvent extends MinigameEvent<ItemMergeEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java index d7faf799..ecbf5e85 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.LingeringPotionSplashEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameLingeringPotionSplashEvent extends MinigameEvent<LingeringPotionSplashEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java index bb42f1bb..1455eb77 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) public interface MinigamePlayerArmorStandManipulateEvent extends MinigameEvent<PlayerArmorStandManipulateEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java index 1347818e..ad61ae60 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerChangedMainHandEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) public interface MinigamePlayerChangedMainHandEvent extends MinigameEvent<PlayerChangedMainHandEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java index 04ceb21c..5571953c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerPickupArrowEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigamePlayerPickupArrowEvent extends MinigameEvent<PlayerPickupArrowEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java index 901d5b6b..1a534b46 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) public interface MinigamePlayerResourcePackStatusEvent extends MinigameEvent<PlayerResourcePackStatusEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java index d1cbcb3c..e1211fc7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerSwapHandItemsEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigamePlayerSwapHandItemsEvent extends MinigameEvent<PlayerSwapHandItemsEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java index 62653550..7bc189fe 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.inventory.PrepareAnvilEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigamePrepareAnvilEvent extends MinigameEvent<PrepareAnvilEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java index 85b3a971..925eb28a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.VillagerAcquireTradeEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameVillagerAcquireTradeEvent extends MinigameEvent<VillagerAcquireTradeEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java index d676e404..2e02d7a7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; +import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** @@ -24,6 +25,7 @@ * * @author mepeisen */ +@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) public interface MinigameVillagerReplenishTradeEvent extends MinigameEvent<VillagerReplenishTradeEvent> { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index 914dda19..deef631f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -127,5 +127,15 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro } return new ArrayList<>(this.subCommands.keySet()).stream().filter(elm -> elm.startsWith(lastArg)).collect(Collectors.toList()); } + + /** + * Returns the sub command by name. + * @param key name of the sub command + * @return the sub command. + */ + public SubCommandHandlerInterface getSubCommand(String key) + { + return this.subCommands.get(key); + } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java index 9c7038fc..b4a7b060 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api.context; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgRunnable; @@ -123,4 +124,14 @@ default ArenaInterface getCurrentArena() return this.getContext(ArenaInterface.class); } + /** + * Returns the current minigame. + * + * @return current minigame. + */ + default MinigameInterface getCurrentMinigame() + { + return this.getContext(MinigameInterface.class); + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java new file mode 100644 index 00000000..bb145912 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java @@ -0,0 +1,47 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.context; + +import com.github.mce.minigames.api.config.Configurable; + +/** + * The minigame storage can be used on various objects (for example players) to store temporary or persistent data. + * + * @author mepeisen + */ +public interface MinigameStorage +{ + + /** + * Returns a storage variable. + * + * @param clazz + * the class of the variable to be returned. + * @return Storage variable or {@code null} if the variable was not set. + */ + <T extends Configurable> T getContext(Class<T> clazz); + + /** + * Sets a storage variable. + * + * @param clazz + * the class of the variable + * @param value + * the new value + */ + <T extends Configurable> void setContext(Class<T> clazz, T value); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java new file mode 100644 index 00000000..6f641f1e --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java @@ -0,0 +1,37 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.gui; + +/** + * An interface used in enumerations to identify the gui. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + */ +public interface ClickGuiId +{ + + /** + * Enumeration value name. + * + * @return enumeration value name. + */ + String name(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java new file mode 100644 index 00000000..968e45a8 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java @@ -0,0 +1,46 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.gui; + +/** + * An interface to build a smart gui. + * + * @author mepeisen + */ +public interface ClickGuiInterface +{ + + /** + * Returns an internal unique id that is used to identify this gui. + * + * @return internal id to identify this gui. + */ + ClickGuiId getUniqueId(); + + /** + * Returns the initial page for the gui. + * + * @return initial page. + */ + ClickGuiPageInterface getInitialPage(); + + /** + * Returns the line count of this gui. + * @return line count; must be a value between 1 and (TODO) + */ + int getLineCount(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java new file mode 100644 index 00000000..14e8ee05 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java @@ -0,0 +1,110 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.gui; + +import org.bukkit.inventory.ItemStack; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * A clickable gui item. + * + * @author mepeisen + */ +public class ClickGuiItem +{ + + /** the item stack used to display the gui item */ + private final ItemStack itemStack; + + /** the items name/ title. */ + private final LocalizedMessageInterface displayName; + + /** the click handler. */ + private GuiItemHandler handler; + + /** + * Constructor to create a click item. + * + * @param itemStack + * @param displayName + * @param handler + */ + public ClickGuiItem(ItemStack itemStack, LocalizedMessageInterface displayName, GuiItemHandler handler) + { + this.itemStack = itemStack.clone(); + this.displayName = displayName; + this.handler = handler; + } + + /** + * @return the itemStack + */ + public ItemStack getItemStack() + { + return this.itemStack.clone(); + } + + /** + * @return the displayName + */ + public LocalizedMessageInterface getDisplayName() + { + return this.displayName; + } + + /** + * Handle gui event. + * + * @param player + * player that clicked the item + * @param session + * gui session. + * @param guiInterface + * gui interface. + * @throws MinigameException + * thrown if there are errors. + */ + public void handle(ArenaPlayerInterface player, GuiSessionInterface session, ClickGuiInterface guiInterface) throws MinigameException + { + this.handler.handle(player, session, guiInterface); + } + + /** + * Gui item handler. + * @author mepeisen + */ + @FunctionalInterface + public interface GuiItemHandler + { + /** + * Handle gui event. + * + * @param player + * player that clicked the item + * @param session + * gui session. + * @param guiInterface + * gui interface. + * @throws MinigameException + * thrown if there are errors. + */ + void handle(ArenaPlayerInterface player, GuiSessionInterface session, ClickGuiInterface guiInterface) throws MinigameException; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java new file mode 100644 index 00000000..5d6798a5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.gui; + +/** + * A single gui page. + * + * @author mepeisen + * + */ +public interface ClickGuiPageInterface +{ + + /** + * Returns the name of the inventory. + * + * @return inventory name. + */ + String getPageName(); + + /** + * Returns the click items. + * @return click items; first array dimension is the line; second the column. + */ + ClickGuiItem[][] getItems(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java new file mode 100644 index 00000000..a3f7f6ae --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java @@ -0,0 +1,77 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.gui; + +import com.github.mce.minigames.api.config.Configurable; +import com.github.mce.minigames.api.context.MinigameStorage; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * An interface for a gui session. + * + * @author mepeisen + */ +public interface GuiSessionInterface extends Configurable +{ + + /** + * Returns the player that owns this gui session. + * + * @return player owning the session. + */ + ArenaPlayerInterface getPlayer(); + + /** + * Returns the current click gui reference. + * + * @return current click gui. + */ + ClickGuiInterface getGui(); + + /** + * Sets a new gui page or updates the client after changing the gui items of a page. + * + * @param page new gui page. + */ + void setNewPage(ClickGuiPageInterface page); + + /** + * Closes the gui session. + */ + void close(); + + /** + * Returns a gui storage for storing data while the gui is open. + * + * @return a gui storage. + */ + MinigameStorage getGuiStorage(); + + /** + * Returns a gui storage for storing data while the player is logged in. + * + * @return gui storage. + */ + MinigameStorage getPlayerSessionStorage(); + + /** + * Returns a gui storage for persistent data stored on disk + * + * @return gui storage. + */ + MinigameStorage getPlayerPersistentStorage(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java index 5b6512d0..a25e3ce3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java @@ -25,6 +25,9 @@ import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.context.MinigameStorage; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.GuiSessionInterface; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; @@ -131,6 +134,61 @@ public interface ArenaPlayerInterface */ boolean checkPermission(PermissionsInterface perm); + // storage + + /** + * Returns a storage only available within the current execution context. + * + * <p> + * This storage can be useful to temporary add data, for example across multiple events. + * </p> + * + * @return context storage. + */ + MinigameStorage getContextStorage(); + + /** + * Returns a session storage only hold in memory. + * + * <p> + * This storage can be useful to temporary add data till the server stops or the user logs out. + * </p> + * + * @return session storage. + */ + MinigameStorage getSessionStorage(); + + /** + * Returns a persistent storage written to disc. + * + * <p> + * This storage can be useful to persistent data on the disc. + * </p> + * + * @return context storage. + */ + MinigameStorage getPersistentStorage(); + + // gui + + /** + * Returns the current gui session (if any) + * + * @return gui session or {@code null} if the user has no opened gui. + */ + GuiSessionInterface getGuiSession(); + + /** + * Lets the player opening a new gui session. + * + * @param gui + * gui to display + * @return gui session + * @throws MinigameException + * thrown if the player is not online. + */ + GuiSessionInterface openGui(ClickGuiInterface gui) throws MinigameException; + // stubbing /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java new file mode 100644 index 00000000..b2794087 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.services; + +import java.io.Serializable; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.config.ConfigInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * A special extension for the minigames library. + * + * <p> + * Extensions can be installed through {@link MglibInterface#register(MinigameExtensionProviderInterface)}. + * They behave different from minigames. Mainly they are responsible to add additional features to + * the library. They do not install any arena type nor do they provide any game. + * </p> + * + * @author mepeisen + */ +public interface ExtensionInterface extends ConfigInterface +{ + + /** + * Returns the name of the extension. + * + * @return extension name. + */ + String getName(); + + /** + * Returns the short description of the extension. + * + * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. + */ + Serializable getShortDescription(); + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java index 0b2e460c..db5e575e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java @@ -15,11 +15,8 @@ package com.github.mce.minigames.api.services; -import java.io.Serializable; - import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.MinigameException; /** * A special extension for the minigames library. @@ -32,22 +29,16 @@ * * @author mepeisen */ -public interface MinigameExtensionInterface extends ConfigInterface +public interface MinigameExtensionInterface extends ExtensionInterface { /** - * Returns the name of the extension. - * - * @return extension name. - */ - String getName(); - - /** - * Returns the short description of the extension. + * Will be called from plugin as soon as the plugin is disabled. * - * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. + * @throws MinigameException + * thrown if there are problems disabling the extension. */ - Serializable getShortDescription(); + void disable() throws MinigameException; // TODO diff --git a/LIBv2/nms/api/.classpath b/LIBv2/nms/api/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/api/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/api/.project b/LIBv2/nms/api/.project new file mode 100644 index 00000000..2139b665 --- /dev/null +++ b/LIBv2/nms/api/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nmsapi</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml new file mode 100644 index 00000000..1d3aa0e1 --- /dev/null +++ b/LIBv2/nms/api/pom.xml @@ -0,0 +1,120 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS-API</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java similarity index 69% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java rename to LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java index 062133cb..ead74d30 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleasEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java @@ -13,20 +13,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.api.arena.rules.bevents; +package com.github.mce.minigames.impl.nms; -import org.bukkit.event.entity.EntityUnleashEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import org.bukkit.event.Listener; /** - * Block break event. + * Generic event system. * * @author mepeisen */ -public interface MinigameEntityUnleasEvent extends MinigameEvent<EntityUnleashEvent> +public interface EventSystemInterface extends Listener { - // TODO default stubbings + // marker only } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java new file mode 100644 index 00000000..5caec921 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java @@ -0,0 +1,34 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +/** + * Nms Factory for generating nms interfaces. + * + * @author mepeisen + */ +public interface NmsFactory +{ + + /** + * Creates an nms implementation of the given class. + * + * @param clazz + * @return nms impl. + */ + <T> T create(Class<T> clazz); + +} diff --git a/LIBv2/nms/v1_10_r1/.classpath b/LIBv2/nms/v1_10_r1/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/v1_10_r1/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/v1_10_r1/.project b/LIBv2/nms/v1_10_r1/.project new file mode 100644 index 00000000..d2536f08 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nms1_10_r1</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml new file mode 100644 index 00000000..f0995c53 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -0,0 +1,138 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_10_r1</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS V1.10-R1</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.10-R0.1-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java new file mode 100644 index 00000000..c51bc728 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java @@ -0,0 +1,1960 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockEvent; +import org.bukkit.event.block.BlockExpEvent; +import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.CauldronLevelChangeEvent; +import org.bukkit.event.block.EntityBlockFormEvent; +import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.NotePlayEvent; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import org.bukkit.event.entity.AreaEffectCloudApplyEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreeperPowerEvent; +import org.bukkit.event.entity.EnderDragonChangePhaseEvent; +import org.bukkit.event.entity.EntityBreakDoorEvent; +import org.bukkit.event.entity.EntityBreedEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityCombustByBlockEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityInteractEvent; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTameEvent; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.entity.EntityToggleGlideEvent; +import org.bukkit.event.entity.EntityUnleashEvent; +import org.bukkit.event.entity.ExpBottleEvent; +import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.event.entity.FireworkExplodeEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.entity.ItemDespawnEvent; +import org.bukkit.event.entity.ItemMergeEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.entity.LingeringPotionSplashEvent; +import org.bukkit.event.entity.PigZapEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.SheepDyeWoolEvent; +import org.bukkit.event.entity.SheepRegrowWoolEvent; +import org.bukkit.event.entity.SlimeSplitEvent; +import org.bukkit.event.entity.SpawnerSpawnEvent; +import org.bukkit.event.entity.VillagerAcquireTradeEvent; +import org.bukkit.event.entity.VillagerReplenishTradeEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import org.bukkit.event.hanging.HangingBreakEvent; +import org.bukkit.event.hanging.HangingEvent; +import org.bukkit.event.hanging.HangingPlaceEvent; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryCreativeEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryPickupItemEvent; +import org.bukkit.event.inventory.PrepareAnvilEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import org.bukkit.event.player.PlayerAnimationEvent; +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerChangedMainHandEvent; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerChannelEvent; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerGameModeChangeEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerInventoryEvent; +import org.bukkit.event.player.PlayerItemBreakEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.event.player.PlayerItemDamageEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupArrowEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; +import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import org.bukkit.event.player.PlayerSwapHandItemsEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerToggleFlightEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.player.PlayerToggleSprintEvent; +import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import org.bukkit.event.player.PlayerVelocityEvent; +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import org.bukkit.event.vehicle.VehicleCollisionEvent; +import org.bukkit.event.vehicle.VehicleCreateEvent; +import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import org.bukkit.event.vehicle.VehicleEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; +import org.bukkit.event.vehicle.VehicleMoveEvent; +import org.bukkit.event.vehicle.VehicleUpdateEvent; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; + +/** + * The event system implementation. + * + * @author mepeisen + */ +public class EventSystem1_10_1 implements EventSystemInterface +{ + + /** + * Event handler for AreaEffectCloudApplyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) + { + // TODO + } + + /** + * Event handler for MinigameAsyncPlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBreakEvent(BlockBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBurnEvent(BlockBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockCanBuildEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockCanBuildEvent(BlockCanBuildEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDamageEvent(BlockDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDispenseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDispenseEvent(BlockDispenseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockEvent(BlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExpEvent(BlockExpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExplodeEvent(BlockExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFadeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFadeEvent(BlockFadeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFormEvent(BlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFromToEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFromToEvent(BlockFromToEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockGrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockGrowEvent(BlockGrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockIgniteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockIgniteEvent(BlockIgniteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockMultiPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPhysicsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPhysicsEvent(BlockPhysicsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonEvent(BlockPistonEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonExtendEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonRetractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPlaceEvent(BlockPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockRedstoneEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockRedstoneEvent(BlockRedstoneEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockSpreadEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockSpreadEvent(BlockSpreadEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBrewEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBrewEvent(BrewEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCauldronLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCraftItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCraftItemEvent(CraftItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreatureSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreatureSpawnEvent(CreatureSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreeperPowerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreeperPowerEvent(CreeperPowerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnchantItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnchantItemEvent(EnchantItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnderDragonChangePhaseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBlockFormEvent(EntityBlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreakDoorEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreedEvent(EntityBreedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityChangeBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustEvent(EntityCombustEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCreatePortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageEvent(EntityDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDeathEvent(EntityDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityEvent(EntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityExplodeEvent(EntityExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityInteractEvent(EntityInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEvent(EntityPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalExitEvent(EntityPortalExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityRegainHealthEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityShootBowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityShootBowEvent(EntityShootBowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntitySpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntitySpawnEvent(EntitySpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTameEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTameEvent(EntityTameEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetEvent(EntityTargetEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetLivingEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTeleportEvent(EntityTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityToggleGlideEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityUnleashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityUnleashEvent(EntityUnleashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExpBottleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExpBottleEvent(ExpBottleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExplosionPrimeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFireworkExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFireworkExplodeEvent(FireworkExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFoodLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceBurnEvent(FurnaceBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceSmeltEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakEvent(HangingBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingEvent(HangingEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingPlaceEvent(HangingPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHorseJumpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHorseJumpEvent(HorseJumpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryClickEvent(InventoryClickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCloseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCreativeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCreativeEvent(InventoryCreativeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryDragEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryDragEvent(InventoryDragEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryEvent(InventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryInteractEvent(InventoryInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryMoveItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryOpenEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryOpenEvent(InventoryOpenEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemDespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemDespawnEvent(ItemDespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemMergeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemMergeEvent(ItemMergeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemSpawnEvent(ItemSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLeavesDecayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLeavesDecayEvent(LeavesDecayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLingeringPotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameNotePlayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onNotePlayEvent(NotePlayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePigZapEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPigZapEvent(PigZapEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAchievementAwardedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAnimationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAnimationEvent(PlayerAnimationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerArmorStandManipulateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedLeaveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEmptyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEvent(PlayerBucketEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketFillEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedMainHandEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedMainHandEvent(PlayerChangedMainHandEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedWorldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChannelEvent(PlayerChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatEvent(PlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatTabCompleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerCommandPreprocessEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDeathEvent(PlayerDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDropItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDropItemEvent(PlayerDropItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEditBookEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEditBookEvent(PlayerEditBookEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEggThrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEvent(PlayerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerExpChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerFishEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerFishEvent(PlayerFishEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerGameModeChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractAtEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInventoryEvent(PlayerInventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemConsumeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemHeldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerJoinEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerJoinEvent(PlayerJoinEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerKickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerKickEvent(PlayerKickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLeashEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLoginEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerMoveEvent(PlayerMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupArrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPortalEvent(PlayerPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerQuitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerQuitEvent(PlayerQuitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRegisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerResourcePackStatusEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRespawnEvent(PlayerRespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerShearEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSpawnLocationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerStatisticIncrementEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSwapHandItemsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerTeleportEvent(PlayerTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleFlightEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSneakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSprintEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerUnregisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerVelocityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerVelocityEvent(PlayerVelocityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPotionSplashEvent(PotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareAnvilEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareAnvilEvent(PrepareAnvilEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemCraftEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemEnchantEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileHitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileHitEvent(ProjectileHitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileLaunchEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepDyeWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepRegrowWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSignChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSignChangeEvent(SignChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSlimeSplitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSlimeSplitEvent(SlimeSplitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSpawnerSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleBlockCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCollisionEvent(VehicleCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCreateEvent(VehicleCreateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDamageEvent(VehicleDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDestroyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDestroyEvent(VehicleDestroyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEnterEvent(VehicleEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEntityCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEvent(VehicleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleExitEvent(VehicleExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleMoveEvent(VehicleMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleUpdateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleUpdateEvent(VehicleUpdateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVillagerAcquireTradeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVillagerReplenishTradeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) + { + // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java new file mode 100644 index 00000000..f1cfeca8 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.NmsFactory; + +/** + * Factory to create NMS relevant classes. + * + * @author mepeisen + */ +public class NmsFactory1_10_1 implements NmsFactory +{ + + /** the implementation classes. */ + private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); + + /** + * Constructor. + */ + public NmsFactory1_10_1() + { + this.impls.put(EventSystemInterface.class, () -> new EventSystem1_10_1()); + } + + @Override + public <T> T create(Class<T> clazz) + { + final Supplier<?> supplier = this.impls.get(clazz); + if (supplier != null) + { + return clazz.cast(supplier.get()); + } + return null; + } + +} diff --git a/LIBv2/nms/v1_8_r1/.classpath b/LIBv2/nms/v1_8_r1/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/v1_8_r1/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/v1_8_r1/.project b/LIBv2/nms/v1_8_r1/.project new file mode 100644 index 00000000..4534f11d --- /dev/null +++ b/LIBv2/nms/v1_8_r1/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nms1_8_r1</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml new file mode 100644 index 00000000..658849c5 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -0,0 +1,138 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_8_r1</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS V1.8-R1</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.8-R0.1-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java new file mode 100644 index 00000000..c8d4c009 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_8_1; + +import com.github.mce.minigames.impl.nms.NmsFactory; + +/** + * Factory to create NMS relevant classes. + * + * @author mepeisen + */ +public class NmsFactory1_8_1 implements NmsFactory +{ + + @Override + public <T> T create(Class<T> clazz) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/nms/v1_8_r2/.classpath b/LIBv2/nms/v1_8_r2/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/v1_8_r2/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/v1_8_r2/.project b/LIBv2/nms/v1_8_r2/.project new file mode 100644 index 00000000..9c718585 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nms1_8_r2</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml new file mode 100644 index 00000000..7edc842c --- /dev/null +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -0,0 +1,138 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_8_r2</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS V1.8-R2</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.8.3-R0.1-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java new file mode 100644 index 00000000..f86ddb27 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_8_2; + +import com.github.mce.minigames.impl.nms.NmsFactory; + +/** + * Factory to create NMS relevant classes. + * + * @author mepeisen + */ +public class NmsFactory1_8_2 implements NmsFactory +{ + + @Override + public <T> T create(Class<T> clazz) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/nms/v1_8_r3/.classpath b/LIBv2/nms/v1_8_r3/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/v1_8_r3/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/v1_8_r3/.project b/LIBv2/nms/v1_8_r3/.project new file mode 100644 index 00000000..492a9ccb --- /dev/null +++ b/LIBv2/nms/v1_8_r3/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nms1_8_r3</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml new file mode 100644 index 00000000..c28154b8 --- /dev/null +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -0,0 +1,138 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_8_r3</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS V1.8-R3</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.8.8-R0.1-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java new file mode 100644 index 00000000..051bc9e1 --- /dev/null +++ b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_8_3; + +import com.github.mce.minigames.impl.nms.NmsFactory; + +/** + * Factory to create NMS relevant classes. + * + * @author mepeisen + */ +public class NmsFactory1_8_3 implements NmsFactory +{ + + @Override + public <T> T create(Class<T> clazz) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/nms/v1_9_r1/.classpath b/LIBv2/nms/v1_9_r1/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/v1_9_r1/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/v1_9_r1/.project b/LIBv2/nms/v1_9_r1/.project new file mode 100644 index 00000000..2cbff0f5 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nms1_9_r1</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml new file mode 100644 index 00000000..02b625ab --- /dev/null +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -0,0 +1,138 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_9_r1</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS V1.9-R1</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.9-R0.1-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java new file mode 100644 index 00000000..a9280e00 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_9_1; + +import com.github.mce.minigames.impl.nms.NmsFactory; + +/** + * Factory to create NMS relevant classes. + * + * @author mepeisen + */ +public class NmsFactory1_9_1 implements NmsFactory +{ + + @Override + public <T> T create(Class<T> clazz) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/nms/v1_9_r2/.classpath b/LIBv2/nms/v1_9_r2/.classpath new file mode 100644 index 00000000..af1430be --- /dev/null +++ b/LIBv2/nms/v1_9_r2/.classpath @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/LIBv2/nms/v1_9_r2/.project b/LIBv2/nms/v1_9_r2/.project new file mode 100644 index 00000000..83025218 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesPlugin_nms1_9_r2</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..ed7df2b3 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding/<project>=UTF-8 +encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..597b1ac6 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,433 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullable.secondary= +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=enabled +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=warning +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=error +org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning +org.eclipse.jdt.core.compiler.problem.unusedParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=true +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 +org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 +org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 +org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=200 +org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true +org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true +org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off +org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=200 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines +org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_on_off_tags=true +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true +org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true +org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..51307816 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,67 @@ +cleanup.add_default_serial_version_id=false +cleanup.add_generated_serial_version_id=true +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=true +cleanup.always_use_this_for_non_static_method_access=true +cleanup.convert_functional_interfaces=true +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=true +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=false +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=false +cleanup_profile=_Minigames +cleanup_settings_version=2 +eclipse.preferences.version=1 +formatter_profile=_Minigames +formatter_settings_version=12 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=true +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000..f897a7f1 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml new file mode 100644 index 00000000..dbcfd334 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -0,0 +1,138 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_9_r2</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>MinigamesAPI NMS V1.9-R2</name> + <description>Rich Minigames API V2</description> + + <properties> + <minigames.releaseversion>2.0.0</minigames.releaseversion> + </properties> + + <parent> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesLib-parent</artifactId> + <version>1.14.12-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>2.0.0-SNAPSHOT</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot</artifactId> + <version>1.9.2-R0.1-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + <plugins> + <plugin> + <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <version>2.10.3</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + +</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java new file mode 100644 index 00000000..2612676b --- /dev/null +++ b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_9_2; + +import com.github.mce.minigames.impl.nms.NmsFactory; + +/** + * Factory to create NMS relevant classes. + * + * @author mepeisen + */ +public class NmsFactory1_9_2 implements NmsFactory +{ + + @Override + public <T> T create(Class<T> clazz) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 8443346a..47d583fc 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -5,7 +5,7 @@ <artifactId>MinigamesPlugin</artifactId> <version>2.0.0-SNAPSHOT</version> <packaging>jar</packaging> - <name>MinigamesAPI</name> + <name>MinigamesAPI Plugin</name> <description>Rich Minigames API V2</description> <properties> @@ -41,6 +41,84 @@ <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> </dependency> + + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nmsapi</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_10_r1</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_9_r2</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_9_r1</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_8_r3</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_8_r2</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>com.github.MCE-Plugins</groupId> + <artifactId>MinigamesPlugin_nms1_8_r1</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.spigotmc</groupId> + <artifactId>spigotmc</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <build> diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java index 9faff74c..3f9d0813 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java @@ -29,7 +29,10 @@ import com.github.mce.minigames.api.PluginProviderInterface; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; @@ -60,9 +63,9 @@ public String getName() } @Override - public Iterable<Class<? extends Enum<?>>> getMessageClasses() + public Iterable<Class<? extends LocalizedMessageInterface>> getMessageClasses() { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + final List<Class<? extends LocalizedMessageInterface>> result = new ArrayList<>(); result.add(CommonErrors.class); result.add(CommonMessages.class); return result; @@ -85,17 +88,17 @@ public Map<String, CommandHandlerInterface> getBukkitCommands() } @Override - public Iterable<Class<? extends Enum<?>>> getPermissions() + public Iterable<Class<? extends PermissionsInterface>> getPermissions() { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + final List<Class<? extends PermissionsInterface>> result = new ArrayList<>(); result.add(CommonPermissions.class); return result; } @Override - public Iterable<Class<? extends Enum<?>>> getConfigurations() + public Iterable<Class<? extends ConfigurationValueInterface>> getConfigurations() { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); + final List<Class<? extends ConfigurationValueInterface>> result = new ArrayList<>(); result.add(CommonConfig.class); return result; } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java index a98ee301..87014d44 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java @@ -17,6 +17,7 @@ import java.io.Serializable; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; @@ -58,5 +59,15 @@ public Serializable getShortDescription() { return this.description; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#disable() + */ + @Override + public void disable() throws MinigameException + { + // TODO Auto-generated method stub + + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 477d3acc..1f052f7b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -253,5 +253,15 @@ public ArenaTypeDeclarationInterface getType(String typename) final ArenaTypeInterface type = this.arenaTypesByName.get(typename.toLowerCase()); return type == null ? null : this.arenaTypes.get(type); } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigamePluginInterface#disable() + */ + @Override + public void disable() throws MinigameException + { + // TODO Auto-generated method stub + + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 818728b4..2a0aef7c 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -35,6 +35,10 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; import com.github.mce.minigames.api.CommonErrors; @@ -48,8 +52,10 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationValueInterface; @@ -57,6 +63,7 @@ import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.services.ExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; @@ -69,6 +76,15 @@ import com.github.mce.minigames.impl.context.DefaultResolver; import com.github.mce.minigames.impl.context.MinigameContextImpl; import com.github.mce.minigames.impl.context.MinigameInterfaceProvider; +import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.NmsFactory; +import com.github.mce.minigames.impl.nms.v1_10_1.NmsFactory1_10_1; +import com.github.mce.minigames.impl.nms.v1_8_1.NmsFactory1_8_1; +import com.github.mce.minigames.impl.nms.v1_8_2.NmsFactory1_8_2; +import com.github.mce.minigames.impl.nms.v1_8_3.NmsFactory1_8_3; +import com.github.mce.minigames.impl.nms.v1_9_1.NmsFactory1_9_1; +import com.github.mce.minigames.impl.nms.v1_9_2.NmsFactory1_9_2; +import com.github.mce.minigames.impl.player.ArenaPlayerImpl; import com.github.mce.minigames.impl.player.PlayerRegistry; import com.github.mce.minigames.impl.services.PremiumServiceProviderInterface; @@ -78,7 +94,7 @@ * @author mepeisen * */ -public class MinigamesPlugin extends JavaPlugin implements MglibInterface +public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Listener { /** the overall minecraft server versioon. */ @@ -128,6 +144,10 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface */ private final ComponentRegistry components = new ComponentRegistry(); + private final EventSystemInterface events; + + private final NmsFactory nmsFactory; + /** * Constructor to create the plugin. */ @@ -142,6 +162,7 @@ public MinigamesPlugin() mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); + ArenaPlayerImpl.registerProvider(mg2); // resolver mg2.registerContextResolver(new DefaultResolver()); @@ -157,8 +178,69 @@ public MinigamesPlugin() // nor do we already know the 'core' minigame this.getLogger().log(Level.SEVERE, "Error registering core minigame", ex); //$NON-NLS-1$ } + + switch (SERVER_VERSION) + { + case V1_10: + case V1_10_R1: + this.nmsFactory = new NmsFactory1_10_1(); + break; + case V1_8: + case V1_8_R1: + this.nmsFactory = new NmsFactory1_8_1(); + break; + case V1_8_R2: + this.nmsFactory = new NmsFactory1_8_2(); + break; + case V1_8_R3: + this.nmsFactory = new NmsFactory1_8_3(); + break; + case V1_9: + case V1_9_R1: + this.nmsFactory = new NmsFactory1_9_1(); + break; + case V1_9_R2: + this.nmsFactory = new NmsFactory1_9_2(); + break; + case Unknown: + case V1_7: + case V1_7_R1: + case V1_7_R2: + case V1_7_R3: + case V1_7_R4: + default: + // no initialization. + this.nmsFactory = null; + break; + } + + this.events = this.nmsFactory == null ? null : this.nmsFactory.create(EventSystemInterface.class); } + @Override + public void onDisable() + { + this.state = LibState.Terminating; + // TODO Auto-generated method stub + } + + @Override + public void onEnable() + { + if (this.nmsFactory == null) + { + this.getLogger().severe("Running on non-supported minecraft version. Disabling minigames."); //$NON-NLS-1$ + } + else + { + getServer().getPluginManager().registerEvents(this, this); + getServer().getPluginManager().registerEvents(this.events, this); + Bukkit.getScheduler().runTaskLaterAsynchronously(this, () -> { + this.state = LibState.Running; + }, 1L); + } + } + /** * Calculates the minecraft server version. * @@ -222,6 +304,11 @@ private static MinecraftVersionsType getServerVersion() @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (this.getState() != LibState.Running) + { + sender.sendMessage("MinigamesLib is disabled!"); //$NON-NLS-1$ + return false; + } final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); if (handler != null) { @@ -288,6 +375,10 @@ public boolean onCommand(CommandSender sender, Command command, String label, St @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + if (this.getState() != LibState.Running) + { + return null; + } String lastArg = null; String[] newArgs = null; if (args.length > 0) @@ -372,19 +463,13 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws // register messages final List<LocalizedMessageInterface> messages = new ArrayList<>(); - final Iterable<Class<? extends Enum<?>>> messageClasses = provider.getMessageClasses(); + final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); if (messageClasses != null) { - for (final Class<? extends Enum<?>> msgClazz : messageClasses) + for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) { - for (final Enum<?> value : msgClazz.getEnumConstants()) + for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) { - if (!(value instanceof LocalizedMessageInterface)) - { - this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ - throw new MinigameException(CommonErrors.MinigameRegistrationError, name); - } - final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; this.messagesToMinigame.put(msg, name); messages.add(msg); } @@ -394,19 +479,13 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws // register configurations final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); - final Iterable<Class<? extends Enum<?>>> configClasses = provider.getConfigurations(); + final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); if (configClasses != null) { - for (final Class<? extends Enum<?>> cfgClazz : configClasses) + for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) { - for (final Enum<?> value : cfgClazz.getEnumConstants()) + for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) { - if (!(value instanceof ConfigurationValueInterface)) - { - this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ - throw new MinigameException(CommonErrors.MinigameRegistrationError, name); - } - final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; this.optionsToMinigame.put(cfg, name); configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); } @@ -580,7 +659,7 @@ public int getExtensionsCount() } @Override - public Iterable<MinigameExtensionInterface> getExtensions() + public Iterable<ExtensionInterface> getExtensions() { return new ArrayList<>(this.extensions.values()); } @@ -624,19 +703,13 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr // register messages final List<LocalizedMessageInterface> messages = new ArrayList<>(); - final Iterable<Class<? extends Enum<?>>> messageClasses = provider.getMessageClasses(); + final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); if (messageClasses != null) { - for (final Class<? extends Enum<?>> msgClazz : messageClasses) + for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) { - for (final Enum<?> value : msgClazz.getEnumConstants()) + for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) { - if (!(value instanceof LocalizedMessageInterface)) - { - this.getLogger().warning("Message class \"" + msgClazz.getName() + "\" does not implement LocalizedMessageInterface"); //$NON-NLS-1$//$NON-NLS-2$ - throw new MinigameException(CommonErrors.ExtensionRegistrationError, name); - } - final LocalizedMessageInterface msg = (LocalizedMessageInterface) value; this.messagesToExtension.put(msg, name); messages.add(msg); } @@ -646,19 +719,13 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr // register configurations final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); - final Iterable<Class<? extends Enum<?>>> configClasses = provider.getConfigurations(); + final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); if (configClasses != null) { - for (final Class<? extends Enum<?>> cfgClazz : configClasses) + for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) { - for (final Enum<?> value : cfgClazz.getEnumConstants()) + for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) { - if (!(value instanceof ConfigurationValueInterface)) - { - this.getLogger().warning("Configuration class \"" + cfgClazz.getName() + "\" does not implement ConfigurationValueInterface"); //$NON-NLS-1$//$NON-NLS-2$ - throw new MinigameException(CommonErrors.ExtensionRegistrationError, name); - } - final ConfigurationValueInterface cfg = (ConfigurationValueInterface) value; this.optionsToExtension.put(cfg, name); configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); } @@ -669,6 +736,17 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr if (provider instanceof PremiumServiceProviderInterface) { this.premium = (PremiumServiceProviderInterface) provider; + + for (final Map.Entry<String, SubCommandHandlerInterface> entry : this.premium.getAdditionalCommands().entrySet()) + { + final String[] path = entry.getKey().split("\\."); //$NON-NLS-1$ + AbstractCompositeCommandHandler cur = (AbstractCompositeCommandHandler) this.commands.get("mg2"); //$NON-NLS-1$ + for (int i = 0; i < path.length - 1; i++) + { + cur = (AbstractCompositeCommandHandler) cur.getSubCommand(path[i]); + } + cur.injectSubCommand(path[path.length - 1], entry.getValue()); + } } // finally register it @@ -821,4 +899,26 @@ public Iterable<SignInterface> getSigns(MinigameInterface minigame) return null; } + // events + + /** + * Player online event. + * @param evt player online event. + */ + @EventHandler + public void onPlayerJoin(PlayerJoinEvent evt) + { + this.players.onPlayerJoin(evt); + } + + /** + * Player online event. + * @param evt player online event. + */ + @EventHandler + public void onPlayerQuit(PlayerQuitEvent evt) + { + this.players.onPlayerQuit(evt); + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java index 5a6b2c33..7e3751ff 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java @@ -26,7 +26,7 @@ import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.api.services.MinigameExtensionInterface; +import com.github.mce.minigames.api.services.ExtensionInterface; /** * Command to display useful information. @@ -58,7 +58,7 @@ protected Serializable getHeader(CommandInterface command) @Override protected Serializable[] getLines(CommandInterface command, int start, int count) { - final Iterator<MinigameExtensionInterface> extensions = MglibInterface.INSTANCE.get().getExtensions().iterator(); + final Iterator<ExtensionInterface> extensions = MglibInterface.INSTANCE.get().getExtensions().iterator(); int i = 0; while (i < start && extensions.hasNext()) { @@ -70,7 +70,7 @@ protected Serializable[] getLines(CommandInterface command, int start, int count { if (extensions.hasNext()) { - final MinigameExtensionInterface extension = extensions.next(); + final ExtensionInterface extension = extensions.next(); result.add(CommonMessages.InfoExtensionLine.toArg(extension.getName(), extension.getShortDescription())); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 81b900eb..e40ceadb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -16,7 +16,9 @@ package com.github.mce.minigames.impl.player; import java.io.Serializable; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; import java.util.UUID; import org.bukkit.Bukkit; @@ -24,9 +26,19 @@ import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.config.Configurable; +import com.github.mce.minigames.api.context.ContextHandlerInterface; +import com.github.mce.minigames.api.context.MinigameContext; +import com.github.mce.minigames.api.context.MinigameStorage; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.GuiSessionInterface; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; @@ -45,14 +57,19 @@ public class ArenaPlayerImpl implements ArenaPlayerInterface { /** players uuid. */ - private UUID uuid; + private UUID uuid; /** the players name. */ private String name; - + + /** the session storage. */ + private StorageImpl sessionStorage = new StorageImpl(); + /** * Constructor - * @param uuid players uuid + * + * @param uuid + * players uuid */ public ArenaPlayerImpl(UUID uuid) { @@ -63,7 +80,7 @@ public ArenaPlayerImpl(UUID uuid) this.name = player.getName(); } } - + @Override public Player getBukkitPlayer() { @@ -94,17 +111,17 @@ public void sendMessage(LocalizedMessageInterface msg, Serializable... args) final Player player = this.getBukkitPlayer(); if (player != null) { - + String[] msgs = null; if (msg.isSingleLine()) { - msgs = new String[]{player.isOp() ? (msg.toAdminMessage(this.getPreferredLocale(), args)) : (msg.toUserMessage(this.getPreferredLocale(), args))}; + msgs = new String[] { player.isOp() ? (msg.toAdminMessage(this.getPreferredLocale(), args)) : (msg.toUserMessage(this.getPreferredLocale(), args)) }; } else { msgs = player.isOp() ? (msg.toAdminMessageLine(this.getPreferredLocale(), args)) : (msg.toUserMessageLine(this.getPreferredLocale(), args)); } - + for (final String smsg : msgs) { switch (msg.getSeverity()) @@ -185,4 +202,120 @@ public MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInte return new FalseStub<>(this); } + @Override + public MinigameStorage getContextStorage() + { + return MglibInterface.INSTANCE.get().getContext(ContextStorage.class).computeIfAbsent(this.uuid, (key) -> new StorageImpl()); + } + + @Override + public MinigameStorage getSessionStorage() + { + // TODO Clear on offline/online events + return this.sessionStorage; + } + + @Override + public MinigameStorage getPersistentStorage() + { + // TODO Auto-generated method stub + return null; + } + + /** + * Helper for context storage. + * + * @author mepeisen + */ + private static final class ContextStorage extends HashMap<UUID, StorageImpl> + { + + /** + * serial version uid + */ + private static final long serialVersionUID = 3803764167708189047L; + + /** + * Constructor + */ + public ContextStorage() + { + // empty + } + + } + + /** + * Simple implementation of storage map. + * + * @author mepeisen + */ + private static final class StorageImpl implements MinigameStorage + { + + /** the underlying data map. */ + private final Map<Class<?>, Configurable> data = new HashMap<>(); + + /** + * Constructor. + */ + public StorageImpl() + { + // empty + } + + @Override + public <T extends Configurable> T getContext(Class<T> clazz) + { + return clazz.cast(this.data.get(clazz)); + } + + @Override + public <T extends Configurable> void setContext(Class<T> clazz, T value) + { + this.data.put(clazz, value); + } + + } + + /** + * Registers the storage context provider. + * + * @param mg2 + * @throws MinigameException + */ + public static void registerProvider(MinigamePluginInterface mg2) throws MinigameException + { + mg2.registerContextHandler(ContextStorage.class, new ContextHandlerInterface<ContextStorage>() { + + @Override + public ContextStorage calculateFromCommand(CommandInterface command, MinigameContext context) + { + return new ContextStorage(); + } + + @Override + public ContextStorage calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + { + return new ContextStorage(); + } + }); + } + + @Override + public GuiSessionInterface getGuiSession() + { + return this.getSessionStorage().getContext(GuiSessionInterface.class); + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.player.ArenaPlayerInterface#openGui(com.github.mce.minigames.api.gui.ClickGuiInterface) + */ + @Override + public GuiSessionInterface openGui(ClickGuiInterface gui) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java index 4ab7012a..ab1af914 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java @@ -21,6 +21,8 @@ import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; /** * A helper class to register player interfaces. @@ -67,5 +69,23 @@ public ArenaPlayerImpl getPlayer(UUID uuid) { return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); } + + /** + * @param evt + */ + public void onPlayerJoin(PlayerJoinEvent evt) + { + // TODO Auto-generated method stub + + } + + /** + * @param evt + */ + public void onPlayerQuit(PlayerQuitEvent evt) + { + // TODO Auto-generated method stub + + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java index 311eaf4b..1ac60225 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java @@ -15,17 +15,23 @@ package com.github.mce.minigames.impl.services; +import java.util.Map; + +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; /** - * A special extension to provide premium services. + * A special extension to provide premium services; there can only be one premium extension. * * @author mepeisen */ public interface PremiumServiceProviderInterface extends MinigameExtensionProviderInterface { - // marker interface for the premium support - // there can only be one premium extension + /** + * Returns additional commands being present in the mg2 commands. + * @return map containing additional mg2 commands; key is the command path and value is the sub command handler. + */ + Map<String, SubCommandHandlerInterface> getAdditionalCommands(); } From 73b8542722dca6e40a85d45da589fffbff98cfff Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 29 Aug 2016 08:11:02 +0200 Subject: [PATCH 116/266] v2 --- .../mce/minigames/impl/MinigamesPlugin.java | 63 ++++++++++++++++--- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 2a0aef7c..e8f02624 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -37,6 +37,9 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; @@ -146,7 +149,7 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Liste private final EventSystemInterface events; - private final NmsFactory nmsFactory; + private final NmsFactory nmsFactory; /** * Constructor to create the plugin. @@ -223,7 +226,7 @@ public void onDisable() this.state = LibState.Terminating; // TODO Auto-generated method stub } - + @Override public void onEnable() { @@ -240,7 +243,7 @@ public void onEnable() }, 1L); } } - + /** * Calculates the minecraft server version. * @@ -317,7 +320,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ } final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); - + this.contextImpl.runInContext(cmd, () -> { try { @@ -593,7 +596,7 @@ public String resolveContextVar(String src) { return this.contextImpl.resolveContextVar(src); } - + @Override public <T> void setContext(Class<T> clazz, T value) { @@ -605,19 +608,19 @@ public void runInNewContext(MgRunnable runnable) throws MinigameException { this.contextImpl.runInNewContext(runnable); } - + @Override public void runInCopiedContext(MgRunnable runnable) throws MinigameException { this.contextImpl.runInCopiedContext(runnable); } - + @Override public <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException { return this.contextImpl.calculateInNewContext(runnable); } - + @Override public <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException { @@ -903,7 +906,9 @@ public Iterable<SignInterface> getSigns(MinigameInterface minigame) /** * Player online event. - * @param evt player online event. + * + * @param evt + * player online event. */ @EventHandler public void onPlayerJoin(PlayerJoinEvent evt) @@ -913,12 +918,50 @@ public void onPlayerJoin(PlayerJoinEvent evt) /** * Player online event. - * @param evt player online event. + * + * @param evt + * player online event. */ @EventHandler public void onPlayerQuit(PlayerQuitEvent evt) { this.players.onPlayerQuit(evt); + // TODO hard close gui + } + + /** + * Inventory close event + * + * @param evt + * inventory close event + */ + public void onInventoryClose(InventoryCloseEvent evt) + { + // TODO + } + + /** + * Inventory click event + * + * @param evt + * inventory click event + */ + @EventHandler + public void onInventoryClick(InventoryClickEvent evt) + { + // TODO + } + + /** + * Inventory drag event + * + * @param evt + * inventory drag event + */ + @EventHandler + public void onInventoryDrag(InventoryDragEvent evt) + { + // TODO } } From d7e3850b7566bbd730c8977cd684dd417064d959 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 30 Aug 2016 05:49:34 +0200 Subject: [PATCH 117/266] v2 --- .../minigames/api/arena/ArenaInterface.java | 21 + .../mce/minigames/api/arena/ArenasConfig.java | 21 + .../api/context/MinigameContext.java | 22 + .../api/context/MinigameStorage.java | 4 +- .../minigames/api/event/ArenaCreateEvent.java | 43 + .../api/event/ArenaCreatedEvent.java | 43 + .../minigames/api/event/ArenaDeleteEvent.java | 43 + .../api/event/ArenaDeletedEvent.java | 43 + .../api/event/ArenaMaintenanceEvent.java | 43 + .../api/event/ArenaPlayerJoinedEvent.java | 43 + .../event/ArenaPlayerJoinedQueueEvent.java | 43 + .../event/ArenaPlayerLeavesQueueEvent.java | 43 + .../minigames/api/event/ArenaStateEvent.java | 43 + .../api/event/PlayerCloseGuiEvent.java | 43 + .../api/event/PlayerDisplayGuiPageEvent.java | 43 + .../api/event/PlayerGuiClickEvent.java | 43 + .../api/event/PlayerOpenGuiEvent.java | 43 + .../api/gui/ClickGuiPageInterface.java | 4 +- .../site/markdown/dev_advanced_achievement.md | 5 + .../src/site/markdown/dev_advanced_arcade.md | 5 + .../markdown/dev_advanced_bungee_basics.md | 5 + .../dev_advanced_custom_components.md | 5 + .../markdown/dev_advanced_custom_signs.md | 5 + .../site/markdown/dev_advanced_extensions.md | 5 + .../markdown/dev_advanced_guns_animations.md | 5 + .../site/markdown/dev_advanced_holograms.md | 5 + APIv2/src/site/markdown/dev_advanced_kits.md | 5 + .../markdown/dev_advanced_leader_boards.md | 5 + .../site/markdown/dev_advanced_mob_control.md | 5 + .../site/markdown/dev_advanced_power_up.md | 5 + .../markdown/dev_advanced_score_boards.md | 5 + APIv2/src/site/markdown/dev_advanced_shop.md | 5 + .../site/markdown/dev_advanced_smart_gui.md | 50 + .../site/markdown/dev_advanced_smart_reset.md | 5 + APIv2/src/site/markdown/dev_advanced_stats.md | 5 + APIv2/src/site/markdown/dev_advanced_tasks.md | 5 + APIv2/src/site/markdown/dev_advanced_teams.md | 5 + .../src/site/markdown/dev_advanced_trading.md | 5 + .../dev_advanced_variable_substitution.md | 5 + .../markdown/dev_advanced_waiting_queues.md | 5 + .../site/markdown/dev_minigame_arena_types.md | 5 + .../src/site/markdown/dev_minigame_config.md | 36 +- .../src/site/markdown/dev_minigame_context.md | 135 ++ .../site/markdown/dev_minigame_messages.md | 22 +- .../site/markdown/dev_minigame_own_rules.md | 5 + .../site/markdown/dev_minigame_permissions.md | 11 +- .../site/markdown/dev_minigame_using_rules.md | 5 + APIv2/src/site/markdown/development.md | 29 + .../impl/nms/v1_8_1/EventSystem1_8_1.java | 1757 +++++++++++++++ .../impl/nms/v1_8_1/NmsFactory1_8_1.java | 22 +- .../impl/nms/v1_8_2/EventSystem1_8_2.java | 1781 +++++++++++++++ .../impl/nms/v1_8_2/NmsFactory1_8_2.java | 22 +- .../impl/nms/v1_8_3/EventSystem1_8_3.java | 1817 ++++++++++++++++ .../impl/nms/v1_8_3/NmsFactory1_8_3.java | 22 +- .../impl/nms/v1_9_1/EventSystem1_9_1.java | 1936 +++++++++++++++++ .../impl/nms/v1_9_1/NmsFactory1_9_1.java | 22 +- .../impl/nms/v1_9_2/EventSystem1_9_2.java | 1936 +++++++++++++++++ .../impl/nms/v1_9_2/NmsFactory1_9_2.java | 22 +- .../mce/minigames/impl/arena/ArenaImpl.java | 41 + .../impl/player/ArenaPlayerImpl.java | 6 +- 60 files changed, 10403 insertions(+), 15 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java create mode 100644 APIv2/src/site/markdown/dev_advanced_achievement.md create mode 100644 APIv2/src/site/markdown/dev_advanced_arcade.md create mode 100644 APIv2/src/site/markdown/dev_advanced_bungee_basics.md create mode 100644 APIv2/src/site/markdown/dev_advanced_custom_components.md create mode 100644 APIv2/src/site/markdown/dev_advanced_custom_signs.md create mode 100644 APIv2/src/site/markdown/dev_advanced_extensions.md create mode 100644 APIv2/src/site/markdown/dev_advanced_guns_animations.md create mode 100644 APIv2/src/site/markdown/dev_advanced_holograms.md create mode 100644 APIv2/src/site/markdown/dev_advanced_kits.md create mode 100644 APIv2/src/site/markdown/dev_advanced_leader_boards.md create mode 100644 APIv2/src/site/markdown/dev_advanced_mob_control.md create mode 100644 APIv2/src/site/markdown/dev_advanced_power_up.md create mode 100644 APIv2/src/site/markdown/dev_advanced_score_boards.md create mode 100644 APIv2/src/site/markdown/dev_advanced_shop.md create mode 100644 APIv2/src/site/markdown/dev_advanced_smart_gui.md create mode 100644 APIv2/src/site/markdown/dev_advanced_smart_reset.md create mode 100644 APIv2/src/site/markdown/dev_advanced_stats.md create mode 100644 APIv2/src/site/markdown/dev_advanced_tasks.md create mode 100644 APIv2/src/site/markdown/dev_advanced_teams.md create mode 100644 APIv2/src/site/markdown/dev_advanced_trading.md create mode 100644 APIv2/src/site/markdown/dev_advanced_variable_substitution.md create mode 100644 APIv2/src/site/markdown/dev_advanced_waiting_queues.md create mode 100644 APIv2/src/site/markdown/dev_minigame_arena_types.md create mode 100644 APIv2/src/site/markdown/dev_minigame_context.md create mode 100644 APIv2/src/site/markdown/dev_minigame_own_rules.md create mode 100644 APIv2/src/site/markdown/dev_minigame_using_rules.md create mode 100644 LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java create mode 100644 LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java create mode 100644 LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java create mode 100644 LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java create mode 100644 LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index a7807a50..2b9e957c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -19,6 +19,7 @@ import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; @@ -46,6 +47,24 @@ public interface ArenaInterface */ String getDisplayName(); + /** + * Returns the author of this arena. + * @return author or {@code null} if no author was set. + */ + String getAuthor(); + + /** + * Returns a short description (single line) of the arena. + * @return short description or {@code null} if no short description was set. + */ + LocalizedMessageInterface getShortDescription(); + + /** + * Returns a description (multi line) of the arena. + * @return multi line description or {@code null} if no description was set. + */ + LocalizedMessageInterface getDescription(); + /** * Changes the display name * @@ -129,6 +148,8 @@ public interface ArenaInterface */ boolean canStart(); + void delete() throws MinigameException; + // stubbing /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java index 2532a4a7..10165c2e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java @@ -16,9 +16,12 @@ package com.github.mce.minigames.api.arena; import com.github.mce.minigames.api.config.ConfigurationBool; +import com.github.mce.minigames.api.config.ConfigurationObject; import com.github.mce.minigames.api.config.ConfigurationString; import com.github.mce.minigames.api.config.ConfigurationValueInterface; import com.github.mce.minigames.api.config.ConfigurationValues; +import com.github.mce.minigames.api.locale.LocalizedConfigLine; +import com.github.mce.minigames.api.locale.LocalizedConfigString; /** * The common arenas config file. @@ -53,4 +56,22 @@ public enum ArenasConfig implements ConfigurationValueInterface @ConfigurationBool(defaultValue = false) Maintenance, + /** + * Author information of this arena. + */ + @ConfigurationString(defaultValue = "") + Author, + + /** + * Short description of this arena. + */ + @ConfigurationObject(clazz = LocalizedConfigString.class) + ShortDescription, + + /** + * Long (multi line) description of this arena. + */ + @ConfigurationObject(clazz = LocalizedConfigLine.class) + Description + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java index b4a7b060..804a11d1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java @@ -21,6 +21,7 @@ import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgRunnable; import com.github.mce.minigames.api.util.function.MgSupplier; +import com.github.mce.minigames.api.zones.ZoneInterface; /** * The minigame execution context. @@ -134,4 +135,25 @@ default MinigameInterface getCurrentMinigame() return this.getContext(MinigameInterface.class); } + /** + * Returns the current zone. + * + * @return current zone. + */ + default ZoneInterface getCurrentZone() + { + return this.getContext(ZoneInterface.class); + } + + /** + * Returns the current component. + * + * @return current component. + */ + default MinigameInterface getCurrentComponent() + { + // TODO + return this.getContext(MinigameInterface.class); + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java index bb145912..98d782b5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java @@ -32,7 +32,7 @@ public interface MinigameStorage * the class of the variable to be returned. * @return Storage variable or {@code null} if the variable was not set. */ - <T extends Configurable> T getContext(Class<T> clazz); + <T extends Configurable> T get(Class<T> clazz); /** * Sets a storage variable. @@ -42,6 +42,6 @@ public interface MinigameStorage * @param value * the new value */ - <T extends Configurable> void setContext(Class<T> clazz, T value); + <T extends Configurable> void set(Class<T> clazz, T value); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java new file mode 100644 index 00000000..19a23b9c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaCreateEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaCreateEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java new file mode 100644 index 00000000..f8c8b00d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaCreatedEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaCreatedEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java new file mode 100644 index 00000000..83c54a1d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaDeleteEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaDeleteEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java new file mode 100644 index 00000000..82537180 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaDeletedEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaDeletedEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java new file mode 100644 index 00000000..0e923311 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaMaintenanceEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaMaintenanceEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java new file mode 100644 index 00000000..e87f2024 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaPlayerJoinedEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaPlayerJoinedEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java new file mode 100644 index 00000000..0d57791a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaPlayerJoinedQueueEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaPlayerJoinedQueueEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java new file mode 100644 index 00000000..e565644b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaPlayerLeavesQueueEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaPlayerLeavesQueueEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java new file mode 100644 index 00000000..0fce4f0d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class ArenaStateEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public ArenaStateEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java new file mode 100644 index 00000000..2eed2b98 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class PlayerCloseGuiEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public PlayerCloseGuiEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java new file mode 100644 index 00000000..72e200f6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class PlayerDisplayGuiPageEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public PlayerDisplayGuiPageEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java new file mode 100644 index 00000000..bae3d47a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class PlayerGuiClickEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public PlayerGuiClickEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java new file mode 100644 index 00000000..58131995 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java @@ -0,0 +1,43 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * @author mepeisen + * + */ +public class PlayerOpenGuiEvent extends Event +{ + + private static final HandlerList handlers = new HandlerList(); + + public PlayerOpenGuiEvent() { + super(); + // TODO + } + + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java index 5d6798a5..57dfbea2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.gui; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + /** * A single gui page. * @@ -29,7 +31,7 @@ public interface ClickGuiPageInterface * * @return inventory name. */ - String getPageName(); + LocalizedMessageInterface getPageName(); /** * Returns the click items. diff --git a/APIv2/src/site/markdown/dev_advanced_achievement.md b/APIv2/src/site/markdown/dev_advanced_achievement.md new file mode 100644 index 00000000..b706acbe --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_achievement.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Achievements + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_arcade.md b/APIv2/src/site/markdown/dev_advanced_arcade.md new file mode 100644 index 00000000..98d4667e --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_arcade.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Arcade and arena groups + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_bungee_basics.md b/APIv2/src/site/markdown/dev_advanced_bungee_basics.md new file mode 100644 index 00000000..3e4df4e8 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_bungee_basics.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Bungee basics + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_custom_components.md b/APIv2/src/site/markdown/dev_advanced_custom_components.md new file mode 100644 index 00000000..6048e1d9 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_custom_components.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Custom components + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_custom_signs.md b/APIv2/src/site/markdown/dev_advanced_custom_signs.md new file mode 100644 index 00000000..2db50487 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_custom_signs.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Custom signs + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_extensions.md b/APIv2/src/site/markdown/dev_advanced_extensions.md new file mode 100644 index 00000000..a73d8ef6 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_extensions.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Writing libraries/ extensions + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_guns_animations.md b/APIv2/src/site/markdown/dev_advanced_guns_animations.md new file mode 100644 index 00000000..13903a1e --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_guns_animations.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Guns and animations + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_holograms.md b/APIv2/src/site/markdown/dev_advanced_holograms.md new file mode 100644 index 00000000..26798d21 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_holograms.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Holograms + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_kits.md b/APIv2/src/site/markdown/dev_advanced_kits.md new file mode 100644 index 00000000..8979c9a7 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_kits.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Kits + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_leader_boards.md b/APIv2/src/site/markdown/dev_advanced_leader_boards.md new file mode 100644 index 00000000..e2146f9f --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_leader_boards.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Leader boards + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_mob_control.md b/APIv2/src/site/markdown/dev_advanced_mob_control.md new file mode 100644 index 00000000..d34f4661 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_mob_control.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Mob control + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_power_up.md b/APIv2/src/site/markdown/dev_advanced_power_up.md new file mode 100644 index 00000000..78444bac --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_power_up.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Power up + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_score_boards.md b/APIv2/src/site/markdown/dev_advanced_score_boards.md new file mode 100644 index 00000000..4e5bad61 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_score_boards.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Score boards + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_shop.md b/APIv2/src/site/markdown/dev_advanced_shop.md new file mode 100644 index 00000000..65e6ccd7 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_shop.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Advanced shop + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_smart_gui.md b/APIv2/src/site/markdown/dev_advanced_smart_gui.md new file mode 100644 index 00000000..2f914bea --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_smart_gui.md @@ -0,0 +1,50 @@ +# Minigames-Lib 2.0 - Development + +## Smart GUI + +Minigames lib allowes you to create an easy inventory GUI and open it. + +To use a GUI first create an enumeration that implements `ClickGuiId`. + +Within your provider you will have to return that enumeration: + + Iterable<Class<? extends ClickGuiId>> getGuiIds() + { + final List<Class<? extends ClickGuiId>> result = new ArrayList<>(); + result.add(MyGuiIds.class); + return result; + } + +### Implementing ClickGuiInterface + +At second step create a class that implements the ClickGuiInterface. It is a simple wrapper to +return the GuiID, the line count you need and the first initial page to be displayed for +users. + +### Implementing ClickGuiPageInterface + +Pages are made of a localized name and an array of clickable gui items. That's it. +The minigames lib will simply display the items and invoke the action handler +on the clickable items. + +### Opening the GUI + +Opening the GUI is very easy. + + ArenaPlayerInterface.openGui(yourGuiInterface); + +### Closing the GUI. + +Fetch the gui session and invoke close. + + ArenaPlayerInterface.getGuiSession().close(); + +### Changing GUI items. + +Do not close or re-open the GUI. Instead you can use the method setNewPage in the GuiSession. + +You can even invoke the setNewPage with the same page object. It will re-load the items. + +### Advanced topics + +TODO Query text etc. diff --git a/APIv2/src/site/markdown/dev_advanced_smart_reset.md b/APIv2/src/site/markdown/dev_advanced_smart_reset.md new file mode 100644 index 00000000..ba0c801c --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_smart_reset.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Smart reset + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_stats.md b/APIv2/src/site/markdown/dev_advanced_stats.md new file mode 100644 index 00000000..46723888 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_stats.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Statistics + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_tasks.md b/APIv2/src/site/markdown/dev_advanced_tasks.md new file mode 100644 index 00000000..c706a341 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_tasks.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Tasks + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_teams.md b/APIv2/src/site/markdown/dev_advanced_teams.md new file mode 100644 index 00000000..029fe6d5 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_teams.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Team support + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_trading.md b/APIv2/src/site/markdown/dev_advanced_trading.md new file mode 100644 index 00000000..27290aef --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_trading.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Trading InGame + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_variable_substitution.md b/APIv2/src/site/markdown/dev_advanced_variable_substitution.md new file mode 100644 index 00000000..0d2a3ab5 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_variable_substitution.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Variable Substitution + +TODO diff --git a/APIv2/src/site/markdown/dev_advanced_waiting_queues.md b/APIv2/src/site/markdown/dev_advanced_waiting_queues.md new file mode 100644 index 00000000..e9376674 --- /dev/null +++ b/APIv2/src/site/markdown/dev_advanced_waiting_queues.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Waiting queues + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_arena_types.md b/APIv2/src/site/markdown/dev_minigame_arena_types.md new file mode 100644 index 00000000..e8025485 --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_arena_types.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Arena types + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_config.md b/APIv2/src/site/markdown/dev_minigame_config.md index 0bb6e6bd..0680ada8 100644 --- a/APIv2/src/site/markdown/dev_minigame_config.md +++ b/APIv2/src/site/markdown/dev_minigame_config.md @@ -13,7 +13,7 @@ To declare an option simply create an enumeration. * * @author mepeisen */ - @ConfigurationValues(path = "myplugin.config") + @ConfigurationValues(path = "myplugin.config", fixed = true) public enum MyConfig implements ConfigurationValueInterface { @@ -116,5 +116,37 @@ TODO ## fixed config vs. non-fixed config -TODO +In @ConfigurationValues annotation there is a boolean, called `fixed`. We did not explain it but in our example above we simply set it to true. +So all of our configuration variables became "FIXED". But what does it mean? + +A fixed configuration option will always be connected to the minigame/ plugin that declared this option. + +While a non-fixed configuration option will be resolved against the CONTEXT. The context is able to resolve the player, minigame or arena depending +on the original call. For example during a command call the context will contain the player that typed the command in their clients chat console +and the context will contain the arena the player is located in. Querying a non-fixed arena option will always be read from the minigames arena.yml and +from the arenas section of the current arena. + +In other words: A non-fixed option value can be present in any minigame. + +### When to use fixed configuration options + +You will always use fixed configuration options when reading options from your (and only your) minigame. + +### When to use non-fixed configuration options + +You will always use non-fixed configuration options when reading options from any minigame. Typically when writing some kind of library or tool +that provides rule sets and other things so that other plugins can use them for their minigame. +## path variable substitution + +The ArenasConfig enumeration in the API uses the following annotation: + + @ConfigurationValues(path = "arenas.$CTX:ARENA:internalName$", file = "arenas.yml") + +As you can see, the path is somehow cryptic. It contains a so called variable substitution. + +Details on variable substitution are explained in chapter [Variable substitution](dev_advanced_variable_substitution.html). + +## Revisions and migration + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_context.md b/APIv2/src/site/markdown/dev_minigame_context.md new file mode 100644 index 00000000..6cad9b5b --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_context.md @@ -0,0 +1,135 @@ +# Minigames-Lib 2.0 - Development + +## Context + +About 99% of methods in a minigame need to answer the following queries: + +* What happened? +* Who (=player/team) is involved? +* Which minigame is involved? +* Which arena is involved? +* Which component inside the arena is involved? + +Analyzing the existing minigames code of version 1 showed up that it is very difficult to hack a new feature as +this may influence many methods and code fragments. Hundreds of code lines need to be analyzed before adding a new +feature. + +In Minigames lib v2 we use a plain but good design. We provide a simple method to store and receive objects +associated with the current method invocation. + +There are five methods you will like: + + MglibInterface.INSTANCE.get().getCurrentPlayer() + MglibInterface.INSTANCE.get().getCurrentMinigame() + MglibInterface.INSTANCE.get().getCurrentArena() + MglibInterface.INSTANCE.get().getCurrentZone() + MglibInterface.INSTANCE.get().getCurrentComponent() + +These methods are meant to return the corresponding objects. No more need to wonder where you get the player +that caused an event. + +### Theory behind context and storage: Aspect oriented programming + +While creating the concepts of version 2 we had to decide what to do. What we describe here is already a +well known concept for experienced java developers: aspect oriented programming or java beans. + +At runtime you do not know where to get the information from. The framework (=minigames lib) will decide where +to get the instances from. + +Typically aspect oriented programming heavily manipulates the byte code and class structure of your application. +In aspect oriented programming you will define injection points (private variables), for example: + + @Inject + @CommandSender + ArenaPlayerInterface commandSender; + +The APO-Framework now does some magic. + +That's really nice and a clean way of programming. There are only some points why we did not use AOP for the minigames +lib. + +#### Performance + +Having a very generic minigames library already costs us some performance. Lightwight games like simple pvp shooters have +some overhead using the minigames library. + +Adding a complete AOP framework is too much. Maybe we will have performance issues in future and although AOP framweworks +like weld already are good it is better to not depend on them. + +#### Light library + +The minigames library itself should be light. No unneeded features and no code that is behaving too complex. We decided to +have some clear basic rules what is part of the context and what should not be stored within contexts. + +#### Too many magic + +We are fans of aspect oriented programming. But it is really too many magic. In minecraft servers we have a very clean +system. There are three main calls from the server into any plugin: + +* Console/chat commands +* Events +* Tasks + +We do not expect there will be ever more. Nor do we expect that there is need to support even more. + +AOP is very flexible in the way it is used. You do not care where the call is from or what the callee wants to do. +Many design aspects are goging around the question: Where do we get an object from, which context is the object living +and where is the factory to get it? + +In minecraft servers we never ask this questions. All we need to have is a clean API to get the objects we are interested +in. We always know who is generating the object and we never plan to influence the library. No plugin should really +be interested in creating their own ArenaPlayer object... + +#### Enterprise architecture + +Although AOP can be used in other situations the main goal is tu use it in java enterprise architecture. It is designed +to work best in (web) application servers with service oriented architecture and several business layers. + +We do not say this is sad. But it is simple: That is not the way minecraft servers are working. So why should we try to +build on a framework that is used in other situations? + +### Lifetime of the context + +The context lives within the current invocation point. As we said above we have three main invocation points: + +* Console/chat commands +* Events +* Tasks + +Every time the minigames library is invoked on one of the three invocation points it creates a new context. After +the invocation point is left (=the method returns) the context will be cleared. + +You can manually create a new context by invoking one of the following methods on the minigames lib: + + runInNewContext(...) + runInCopiedContext(...) + calculateInNewContext(...) + calculateInCopiedContext(...) + +### Storing your own objects + +You can store and receive your own objects within the context. Simply invoke `setContext` with any object you like. + +The objects are identified by class. Invoking the setContext twice with same class will overwrite the object. + +## Storage + +At multiple points in the API you will see methods returning `MinigameStorage` objects. + +The behave similar to the context. You can store objects by class name inside them and receive them. The objects +must implement `Configurable` interface. + +The storages are meant to hold long-lifed objects. The most simple example is the following storage: + + ArenaPlayerInterface.getSessionStorage() + +This methods introduces a storage that lives as long as the user itself is online. Once the server stops or the +player goes offline this storage is removed. NOTICE: If the user switches to another server in a bungee coord +network he goes offline and looses it's session storage too. + +Another example: + + ArenaPlayerInterface.getPersistentStorage() + +This values will be stored in files or databases. It is meant to be available even if the player is offline and +once the player is visiting the server once again you can read the values and do something. diff --git a/APIv2/src/site/markdown/dev_minigame_messages.md b/APIv2/src/site/markdown/dev_minigame_messages.md index 45bfcc14..95d4feb8 100644 --- a/APIv2/src/site/markdown/dev_minigame_messages.md +++ b/APIv2/src/site/markdown/dev_minigame_messages.md @@ -224,5 +224,25 @@ TODO ## Referencing user defined messages -TODO for example the arena description +Messages may be defined outside the messages.yml within regular configuration variables. +We explain it on the `ArenasConfig.Description` option value. This represents an optional +description that administrators can set for users. This text is localized thus the users may +get a translation in their preferred language. + +We declare this configuration option to be a localized message by using ConfigurationObject annotation. + + @ConfigurationObject(clazz = LocalizedConfigLine.class) + Description + +Using is it fairly simple: + + final LocalizedConfigLine description = ArenasConfig.Description.getObject() + +If you want to use a single line message use the class `LocalizedConfigString`. + +Details on how to declare and use configuration values are explained in the article [Configuration options](dev_minigame_config.html). + +## Revisions and migration + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_own_rules.md b/APIv2/src/site/markdown/dev_minigame_own_rules.md new file mode 100644 index 00000000..1ca46359 --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_own_rules.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Creating custom rules + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_permissions.md b/APIv2/src/site/markdown/dev_minigame_permissions.md index efd62c02..1ed8b909 100644 --- a/APIv2/src/site/markdown/dev_minigame_permissions.md +++ b/APIv2/src/site/markdown/dev_minigame_permissions.md @@ -45,7 +45,13 @@ minigames lib some configuration option may be added and you will get into troub ## String substitution -TODO +The CommonPermissions enumeration in the API uses the following annotation: + + @Permissions("$PERM:MGLIB$") + +As you can see, the path is somehow cryptic. It contains a so called variable substitution. + +Details on variable substitution are explained in chapter [Variable substitution](dev_advanced_variable_substitution.html). ## Permission name @@ -66,3 +72,6 @@ The configuration sets are predefined configuration options used within typical TODO +## Revisions and migration + +TODO diff --git a/APIv2/src/site/markdown/dev_minigame_using_rules.md b/APIv2/src/site/markdown/dev_minigame_using_rules.md new file mode 100644 index 00000000..e3692dc0 --- /dev/null +++ b/APIv2/src/site/markdown/dev_minigame_using_rules.md @@ -0,0 +1,5 @@ +# Minigames-Lib 2.0 - Development + +## Using rules + +TODO diff --git a/APIv2/src/site/markdown/development.md b/APIv2/src/site/markdown/development.md index d7c837c2..8cc8ceec 100644 --- a/APIv2/src/site/markdown/development.md +++ b/APIv2/src/site/markdown/development.md @@ -18,5 +18,34 @@ TODO * [Messages and localization](dev_minigame_messages.html) * [Configuration options](dev_minigame_config.html) * [Permissions](dev_minigame_permissions.html) +* [Context](dev_minigame_context.html) +* [Arena types](dev_minigame_arena_types.html) +* [Using rules](dev_minigame_using_rules.html) +* [Own rules](dev_minigame_own_rules.html) + +## Advanced topics + +* [Writing Libraries/Extensions](dev_advanced_extensions.html) +* [Variable substitution](dev_advanced_variable_substitution.html) +* [Smart clickable GUI](dev_advanced_smart_gui.html) +* [Waiting queues](dev_advanced_waiting_queues.html) +* [Custom components](dev_advanced_custom_components.html) +* [Custom signs](dev_advanced_custom_signs.html) +* [Basic bungee support](dev_advanced_bungee_basics.html) +* [Team arena](dev_advanced_teams.html) +* [Smart arena reset](dev_advanced_smart_reset.html) +* [Scoreboards](dev_advanced_score_boards.html) +* [Ingame Shop](dev_advanced_shop.html) +* [Kits](dev_advanced_kits.html) +* [Achievements](dev_advanced_achievement.html) +* [Statistics](dev_advanced_stats.html) +* [Arcade and arena groups](dev_advanced_arcade.html) +* [Holograms](dev_advanced_holograms.html) +* [Leader boards](dev_advanced_leader_boards.html) +* [Guns and animations](dev_advanced_guns_animations.html) +* [Trading](dev_advanced_trading.html) +* [Power ups](dev_advanced_power_up.html) +* [Mob control](dev_advanced_mob_control.html) +* [Tasks](dev_advanced_tasks.html) TODO diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java new file mode 100644 index 00000000..07d19f54 --- /dev/null +++ b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java @@ -0,0 +1,1757 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_8_1; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockEvent; +import org.bukkit.event.block.BlockExpEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.EntityBlockFormEvent; +import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.NotePlayEvent; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreeperPowerEvent; +import org.bukkit.event.entity.EntityBreakDoorEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityCombustByBlockEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityInteractEvent; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTameEvent; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.entity.EntityUnleashEvent; +import org.bukkit.event.entity.ExpBottleEvent; +import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.entity.ItemDespawnEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.entity.PigZapEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.SheepDyeWoolEvent; +import org.bukkit.event.entity.SheepRegrowWoolEvent; +import org.bukkit.event.entity.SlimeSplitEvent; +import org.bukkit.event.entity.SpawnerSpawnEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import org.bukkit.event.hanging.HangingBreakEvent; +import org.bukkit.event.hanging.HangingEvent; +import org.bukkit.event.hanging.HangingPlaceEvent; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryCreativeEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryPickupItemEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import org.bukkit.event.player.PlayerAnimationEvent; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerChannelEvent; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerGameModeChangeEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerInventoryEvent; +import org.bukkit.event.player.PlayerItemBreakEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.event.player.PlayerItemDamageEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerToggleFlightEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.player.PlayerToggleSprintEvent; +import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import org.bukkit.event.player.PlayerVelocityEvent; +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import org.bukkit.event.vehicle.VehicleCollisionEvent; +import org.bukkit.event.vehicle.VehicleCreateEvent; +import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import org.bukkit.event.vehicle.VehicleEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; +import org.bukkit.event.vehicle.VehicleMoveEvent; +import org.bukkit.event.vehicle.VehicleUpdateEvent; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; + +/** + * The event system implementation. + * + * @author mepeisen + */ +public class EventSystem1_8_1 implements EventSystemInterface +{ + + /** + * Event handler for MinigameAsyncPlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBreakEvent(BlockBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBurnEvent(BlockBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockCanBuildEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockCanBuildEvent(BlockCanBuildEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDamageEvent(BlockDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDispenseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDispenseEvent(BlockDispenseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockEvent(BlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExpEvent(BlockExpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFadeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFadeEvent(BlockFadeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFormEvent(BlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFromToEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFromToEvent(BlockFromToEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockGrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockGrowEvent(BlockGrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockIgniteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockIgniteEvent(BlockIgniteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockMultiPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPhysicsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPhysicsEvent(BlockPhysicsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonEvent(BlockPistonEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonExtendEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonRetractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPlaceEvent(BlockPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockRedstoneEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockRedstoneEvent(BlockRedstoneEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockSpreadEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockSpreadEvent(BlockSpreadEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBrewEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBrewEvent(BrewEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCraftItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCraftItemEvent(CraftItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreatureSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreatureSpawnEvent(CreatureSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreeperPowerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreeperPowerEvent(CreeperPowerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnchantItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnchantItemEvent(EnchantItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBlockFormEvent(EntityBlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreakDoorEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityChangeBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustEvent(EntityCombustEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCreatePortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageEvent(EntityDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDeathEvent(EntityDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityEvent(EntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityExplodeEvent(EntityExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityInteractEvent(EntityInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEvent(EntityPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalExitEvent(EntityPortalExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityRegainHealthEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityShootBowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityShootBowEvent(EntityShootBowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntitySpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntitySpawnEvent(EntitySpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTameEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTameEvent(EntityTameEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetEvent(EntityTargetEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetLivingEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTeleportEvent(EntityTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityUnleashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityUnleashEvent(EntityUnleashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExpBottleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExpBottleEvent(ExpBottleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExplosionPrimeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFoodLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceBurnEvent(FurnaceBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceSmeltEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakEvent(HangingBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingEvent(HangingEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingPlaceEvent(HangingPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHorseJumpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHorseJumpEvent(HorseJumpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryClickEvent(InventoryClickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCloseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCreativeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCreativeEvent(InventoryCreativeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryDragEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryDragEvent(InventoryDragEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryEvent(InventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryInteractEvent(InventoryInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryMoveItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryOpenEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryOpenEvent(InventoryOpenEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemDespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemDespawnEvent(ItemDespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemSpawnEvent(ItemSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLeavesDecayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLeavesDecayEvent(LeavesDecayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameNotePlayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onNotePlayEvent(NotePlayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePigZapEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPigZapEvent(PigZapEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAchievementAwardedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAnimationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAnimationEvent(PlayerAnimationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedLeaveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEmptyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEvent(PlayerBucketEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketFillEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedWorldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChannelEvent(PlayerChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatEvent(PlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatTabCompleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerCommandPreprocessEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDeathEvent(PlayerDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDropItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDropItemEvent(PlayerDropItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEditBookEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEditBookEvent(PlayerEditBookEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEggThrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEvent(PlayerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerExpChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerFishEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerFishEvent(PlayerFishEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerGameModeChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractAtEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInventoryEvent(PlayerInventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemConsumeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemHeldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerJoinEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerJoinEvent(PlayerJoinEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerKickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerKickEvent(PlayerKickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLeashEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLoginEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerMoveEvent(PlayerMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPortalEvent(PlayerPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerQuitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerQuitEvent(PlayerQuitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRegisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRespawnEvent(PlayerRespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerShearEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSpawnLocationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerStatisticIncrementEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerTeleportEvent(PlayerTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleFlightEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSneakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSprintEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerUnregisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerVelocityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerVelocityEvent(PlayerVelocityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPotionSplashEvent(PotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemCraftEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemEnchantEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileHitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileHitEvent(ProjectileHitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileLaunchEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepDyeWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepRegrowWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSignChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSignChangeEvent(SignChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSlimeSplitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSlimeSplitEvent(SlimeSplitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSpawnerSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleBlockCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCollisionEvent(VehicleCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCreateEvent(VehicleCreateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDamageEvent(VehicleDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDestroyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDestroyEvent(VehicleDestroyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEnterEvent(VehicleEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEntityCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEvent(VehicleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleExitEvent(VehicleExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleMoveEvent(VehicleMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleUpdateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleUpdateEvent(VehicleUpdateEvent evt) + { + // TODO + } + +} diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java index c8d4c009..94fde13b 100644 --- a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java +++ b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java @@ -15,6 +15,11 @@ package com.github.mce.minigames.impl.nms.v1_8_1; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; /** @@ -25,10 +30,25 @@ public class NmsFactory1_8_1 implements NmsFactory { + /** the implementation classes. */ + private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); + + /** + * Constructor. + */ + public NmsFactory1_8_1() + { + this.impls.put(EventSystemInterface.class, () -> new EventSystem1_8_1()); + } + @Override public <T> T create(Class<T> clazz) { - // TODO Auto-generated method stub + final Supplier<?> supplier = this.impls.get(clazz); + if (supplier != null) + { + return clazz.cast(supplier.get()); + } return null; } diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java new file mode 100644 index 00000000..df07ee20 --- /dev/null +++ b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java @@ -0,0 +1,1781 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_8_2; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockEvent; +import org.bukkit.event.block.BlockExpEvent; +import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.EntityBlockFormEvent; +import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.NotePlayEvent; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreeperPowerEvent; +import org.bukkit.event.entity.EntityBreakDoorEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityCombustByBlockEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityInteractEvent; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTameEvent; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.entity.EntityUnleashEvent; +import org.bukkit.event.entity.ExpBottleEvent; +import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.entity.ItemDespawnEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.entity.PigZapEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.SheepDyeWoolEvent; +import org.bukkit.event.entity.SheepRegrowWoolEvent; +import org.bukkit.event.entity.SlimeSplitEvent; +import org.bukkit.event.entity.SpawnerSpawnEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import org.bukkit.event.hanging.HangingBreakEvent; +import org.bukkit.event.hanging.HangingEvent; +import org.bukkit.event.hanging.HangingPlaceEvent; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryCreativeEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryPickupItemEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import org.bukkit.event.player.PlayerAnimationEvent; +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerChannelEvent; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerGameModeChangeEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerInventoryEvent; +import org.bukkit.event.player.PlayerItemBreakEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.event.player.PlayerItemDamageEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerToggleFlightEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.player.PlayerToggleSprintEvent; +import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import org.bukkit.event.player.PlayerVelocityEvent; +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import org.bukkit.event.vehicle.VehicleCollisionEvent; +import org.bukkit.event.vehicle.VehicleCreateEvent; +import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import org.bukkit.event.vehicle.VehicleEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; +import org.bukkit.event.vehicle.VehicleMoveEvent; +import org.bukkit.event.vehicle.VehicleUpdateEvent; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; + +/** + * The event system implementation. + * + * @author mepeisen + */ +public class EventSystem1_8_2 implements EventSystemInterface +{ + + /** + * Event handler for MinigameAsyncPlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBreakEvent(BlockBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBurnEvent(BlockBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockCanBuildEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockCanBuildEvent(BlockCanBuildEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDamageEvent(BlockDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDispenseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDispenseEvent(BlockDispenseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockEvent(BlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExpEvent(BlockExpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExplodeEvent(BlockExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFadeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFadeEvent(BlockFadeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFormEvent(BlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFromToEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFromToEvent(BlockFromToEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockGrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockGrowEvent(BlockGrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockIgniteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockIgniteEvent(BlockIgniteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockMultiPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPhysicsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPhysicsEvent(BlockPhysicsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonEvent(BlockPistonEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonExtendEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonRetractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPlaceEvent(BlockPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockRedstoneEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockRedstoneEvent(BlockRedstoneEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockSpreadEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockSpreadEvent(BlockSpreadEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBrewEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBrewEvent(BrewEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCraftItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCraftItemEvent(CraftItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreatureSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreatureSpawnEvent(CreatureSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreeperPowerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreeperPowerEvent(CreeperPowerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnchantItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnchantItemEvent(EnchantItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBlockFormEvent(EntityBlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreakDoorEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityChangeBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustEvent(EntityCombustEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCreatePortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageEvent(EntityDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDeathEvent(EntityDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityEvent(EntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityExplodeEvent(EntityExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityInteractEvent(EntityInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEvent(EntityPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalExitEvent(EntityPortalExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityRegainHealthEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityShootBowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityShootBowEvent(EntityShootBowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntitySpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntitySpawnEvent(EntitySpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTameEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTameEvent(EntityTameEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetEvent(EntityTargetEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetLivingEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTeleportEvent(EntityTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityUnleashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityUnleashEvent(EntityUnleashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExpBottleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExpBottleEvent(ExpBottleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExplosionPrimeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFoodLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceBurnEvent(FurnaceBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceSmeltEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakEvent(HangingBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingEvent(HangingEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingPlaceEvent(HangingPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHorseJumpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHorseJumpEvent(HorseJumpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryClickEvent(InventoryClickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCloseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCreativeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCreativeEvent(InventoryCreativeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryDragEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryDragEvent(InventoryDragEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryEvent(InventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryInteractEvent(InventoryInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryMoveItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryOpenEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryOpenEvent(InventoryOpenEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemDespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemDespawnEvent(ItemDespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemSpawnEvent(ItemSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLeavesDecayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLeavesDecayEvent(LeavesDecayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameNotePlayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onNotePlayEvent(NotePlayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePigZapEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPigZapEvent(PigZapEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAchievementAwardedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAnimationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAnimationEvent(PlayerAnimationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerArmorStandManipulateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedLeaveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEmptyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEvent(PlayerBucketEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketFillEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedWorldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChannelEvent(PlayerChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatEvent(PlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatTabCompleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerCommandPreprocessEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDeathEvent(PlayerDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDropItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDropItemEvent(PlayerDropItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEditBookEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEditBookEvent(PlayerEditBookEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEggThrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEvent(PlayerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerExpChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerFishEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerFishEvent(PlayerFishEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerGameModeChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractAtEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInventoryEvent(PlayerInventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemConsumeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemHeldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerJoinEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerJoinEvent(PlayerJoinEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerKickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerKickEvent(PlayerKickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLeashEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLoginEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerMoveEvent(PlayerMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPortalEvent(PlayerPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerQuitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerQuitEvent(PlayerQuitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRegisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRespawnEvent(PlayerRespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerShearEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSpawnLocationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerStatisticIncrementEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerTeleportEvent(PlayerTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleFlightEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSneakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSprintEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerUnregisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerVelocityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerVelocityEvent(PlayerVelocityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPotionSplashEvent(PotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemCraftEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemEnchantEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileHitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileHitEvent(ProjectileHitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileLaunchEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepDyeWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepRegrowWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSignChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSignChangeEvent(SignChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSlimeSplitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSlimeSplitEvent(SlimeSplitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSpawnerSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleBlockCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCollisionEvent(VehicleCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCreateEvent(VehicleCreateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDamageEvent(VehicleDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDestroyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDestroyEvent(VehicleDestroyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEnterEvent(VehicleEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEntityCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEvent(VehicleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleExitEvent(VehicleExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleMoveEvent(VehicleMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleUpdateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleUpdateEvent(VehicleUpdateEvent evt) + { + // TODO + } + +} diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java index f86ddb27..bc07e9ee 100644 --- a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java +++ b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java @@ -15,6 +15,11 @@ package com.github.mce.minigames.impl.nms.v1_8_2; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; /** @@ -25,10 +30,25 @@ public class NmsFactory1_8_2 implements NmsFactory { + /** the implementation classes. */ + private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); + + /** + * Constructor. + */ + public NmsFactory1_8_2() + { + this.impls.put(EventSystemInterface.class, () -> new EventSystem1_8_2()); + } + @Override public <T> T create(Class<T> clazz) { - // TODO Auto-generated method stub + final Supplier<?> supplier = this.impls.get(clazz); + if (supplier != null) + { + return clazz.cast(supplier.get()); + } return null; } diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java new file mode 100644 index 00000000..452baf2c --- /dev/null +++ b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java @@ -0,0 +1,1817 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_8_3; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockEvent; +import org.bukkit.event.block.BlockExpEvent; +import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.EntityBlockFormEvent; +import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.NotePlayEvent; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreeperPowerEvent; +import org.bukkit.event.entity.EntityBreakDoorEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityCombustByBlockEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityInteractEvent; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTameEvent; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.entity.EntityUnleashEvent; +import org.bukkit.event.entity.ExpBottleEvent; +import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.event.entity.FireworkExplodeEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.entity.ItemDespawnEvent; +import org.bukkit.event.entity.ItemMergeEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.entity.PigZapEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.SheepDyeWoolEvent; +import org.bukkit.event.entity.SheepRegrowWoolEvent; +import org.bukkit.event.entity.SlimeSplitEvent; +import org.bukkit.event.entity.SpawnerSpawnEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import org.bukkit.event.hanging.HangingBreakEvent; +import org.bukkit.event.hanging.HangingEvent; +import org.bukkit.event.hanging.HangingPlaceEvent; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryCreativeEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryPickupItemEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import org.bukkit.event.player.PlayerAnimationEvent; +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerChannelEvent; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerGameModeChangeEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerInventoryEvent; +import org.bukkit.event.player.PlayerItemBreakEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.event.player.PlayerItemDamageEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; +import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerToggleFlightEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.player.PlayerToggleSprintEvent; +import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import org.bukkit.event.player.PlayerVelocityEvent; +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import org.bukkit.event.vehicle.VehicleCollisionEvent; +import org.bukkit.event.vehicle.VehicleCreateEvent; +import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import org.bukkit.event.vehicle.VehicleEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; +import org.bukkit.event.vehicle.VehicleMoveEvent; +import org.bukkit.event.vehicle.VehicleUpdateEvent; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; + +/** + * The event system implementation. + * + * @author mepeisen + */ +public class EventSystem1_8_3 implements EventSystemInterface +{ + + /** + * Event handler for MinigameAsyncPlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBreakEvent(BlockBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBurnEvent(BlockBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockCanBuildEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockCanBuildEvent(BlockCanBuildEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDamageEvent(BlockDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDispenseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDispenseEvent(BlockDispenseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockEvent(BlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExpEvent(BlockExpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExplodeEvent(BlockExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFadeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFadeEvent(BlockFadeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFormEvent(BlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFromToEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFromToEvent(BlockFromToEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockGrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockGrowEvent(BlockGrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockIgniteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockIgniteEvent(BlockIgniteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockMultiPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPhysicsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPhysicsEvent(BlockPhysicsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonEvent(BlockPistonEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonExtendEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonRetractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPlaceEvent(BlockPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockRedstoneEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockRedstoneEvent(BlockRedstoneEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockSpreadEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockSpreadEvent(BlockSpreadEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBrewEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBrewEvent(BrewEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCraftItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCraftItemEvent(CraftItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreatureSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreatureSpawnEvent(CreatureSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreeperPowerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreeperPowerEvent(CreeperPowerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnchantItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnchantItemEvent(EnchantItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBlockFormEvent(EntityBlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreakDoorEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityChangeBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustEvent(EntityCombustEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCreatePortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageEvent(EntityDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDeathEvent(EntityDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityEvent(EntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityExplodeEvent(EntityExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityInteractEvent(EntityInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEvent(EntityPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalExitEvent(EntityPortalExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityRegainHealthEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityShootBowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityShootBowEvent(EntityShootBowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntitySpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntitySpawnEvent(EntitySpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTameEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTameEvent(EntityTameEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetEvent(EntityTargetEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetLivingEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTeleportEvent(EntityTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityUnleashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityUnleashEvent(EntityUnleashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExpBottleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExpBottleEvent(ExpBottleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExplosionPrimeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFireworkExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFireworkExplodeEvent(FireworkExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFoodLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceBurnEvent(FurnaceBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceSmeltEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakEvent(HangingBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingEvent(HangingEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingPlaceEvent(HangingPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHorseJumpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHorseJumpEvent(HorseJumpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryClickEvent(InventoryClickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCloseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCreativeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCreativeEvent(InventoryCreativeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryDragEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryDragEvent(InventoryDragEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryEvent(InventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryInteractEvent(InventoryInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryMoveItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryOpenEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryOpenEvent(InventoryOpenEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemDespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemDespawnEvent(ItemDespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemMergeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemMergeEvent(ItemMergeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemSpawnEvent(ItemSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLeavesDecayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLeavesDecayEvent(LeavesDecayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameNotePlayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onNotePlayEvent(NotePlayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePigZapEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPigZapEvent(PigZapEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAchievementAwardedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAnimationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAnimationEvent(PlayerAnimationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerArmorStandManipulateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedLeaveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEmptyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEvent(PlayerBucketEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketFillEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedWorldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChannelEvent(PlayerChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatEvent(PlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatTabCompleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerCommandPreprocessEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDeathEvent(PlayerDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDropItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDropItemEvent(PlayerDropItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEditBookEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEditBookEvent(PlayerEditBookEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEggThrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEvent(PlayerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerExpChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerFishEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerFishEvent(PlayerFishEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerGameModeChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractAtEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInventoryEvent(PlayerInventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemConsumeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemHeldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerJoinEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerJoinEvent(PlayerJoinEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerKickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerKickEvent(PlayerKickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLeashEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLoginEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerMoveEvent(PlayerMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPortalEvent(PlayerPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerQuitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerQuitEvent(PlayerQuitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRegisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerResourcePackStatusEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRespawnEvent(PlayerRespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerShearEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSpawnLocationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerStatisticIncrementEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerTeleportEvent(PlayerTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleFlightEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSneakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSprintEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerUnregisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerVelocityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerVelocityEvent(PlayerVelocityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPotionSplashEvent(PotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemCraftEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemEnchantEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileHitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileHitEvent(ProjectileHitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileLaunchEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepDyeWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepRegrowWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSignChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSignChangeEvent(SignChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSlimeSplitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSlimeSplitEvent(SlimeSplitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSpawnerSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleBlockCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCollisionEvent(VehicleCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCreateEvent(VehicleCreateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDamageEvent(VehicleDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDestroyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDestroyEvent(VehicleDestroyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEnterEvent(VehicleEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEntityCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEvent(VehicleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleExitEvent(VehicleExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleMoveEvent(VehicleMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleUpdateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleUpdateEvent(VehicleUpdateEvent evt) + { + // TODO + } + +} diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java index 051bc9e1..f28c173b 100644 --- a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java +++ b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java @@ -15,6 +15,11 @@ package com.github.mce.minigames.impl.nms.v1_8_3; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; /** @@ -25,10 +30,25 @@ public class NmsFactory1_8_3 implements NmsFactory { + /** the implementation classes. */ + private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); + + /** + * Constructor. + */ + public NmsFactory1_8_3() + { + this.impls.put(EventSystemInterface.class, () -> new EventSystem1_8_3()); + } + @Override public <T> T create(Class<T> clazz) { - // TODO Auto-generated method stub + final Supplier<?> supplier = this.impls.get(clazz); + if (supplier != null) + { + return clazz.cast(supplier.get()); + } return null; } diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java new file mode 100644 index 00000000..c5068657 --- /dev/null +++ b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java @@ -0,0 +1,1936 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_9_1; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockEvent; +import org.bukkit.event.block.BlockExpEvent; +import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.CauldronLevelChangeEvent; +import org.bukkit.event.block.EntityBlockFormEvent; +import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.NotePlayEvent; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import org.bukkit.event.entity.AreaEffectCloudApplyEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreeperPowerEvent; +import org.bukkit.event.entity.EnderDragonChangePhaseEvent; +import org.bukkit.event.entity.EntityBreakDoorEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityCombustByBlockEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityInteractEvent; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTameEvent; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.entity.EntityToggleGlideEvent; +import org.bukkit.event.entity.EntityUnleashEvent; +import org.bukkit.event.entity.ExpBottleEvent; +import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.event.entity.FireworkExplodeEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.entity.ItemDespawnEvent; +import org.bukkit.event.entity.ItemMergeEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.entity.LingeringPotionSplashEvent; +import org.bukkit.event.entity.PigZapEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.SheepDyeWoolEvent; +import org.bukkit.event.entity.SheepRegrowWoolEvent; +import org.bukkit.event.entity.SlimeSplitEvent; +import org.bukkit.event.entity.SpawnerSpawnEvent; +import org.bukkit.event.entity.VillagerAcquireTradeEvent; +import org.bukkit.event.entity.VillagerReplenishTradeEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import org.bukkit.event.hanging.HangingBreakEvent; +import org.bukkit.event.hanging.HangingEvent; +import org.bukkit.event.hanging.HangingPlaceEvent; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryCreativeEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryPickupItemEvent; +import org.bukkit.event.inventory.PrepareAnvilEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import org.bukkit.event.player.PlayerAnimationEvent; +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerChannelEvent; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerGameModeChangeEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerInventoryEvent; +import org.bukkit.event.player.PlayerItemBreakEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.event.player.PlayerItemDamageEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupArrowEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; +import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import org.bukkit.event.player.PlayerSwapHandItemsEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerToggleFlightEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.player.PlayerToggleSprintEvent; +import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import org.bukkit.event.player.PlayerVelocityEvent; +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import org.bukkit.event.vehicle.VehicleCollisionEvent; +import org.bukkit.event.vehicle.VehicleCreateEvent; +import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import org.bukkit.event.vehicle.VehicleEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; +import org.bukkit.event.vehicle.VehicleMoveEvent; +import org.bukkit.event.vehicle.VehicleUpdateEvent; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; + +/** + * The event system implementation. + * + * @author mepeisen + */ +public class EventSystem1_9_1 implements EventSystemInterface +{ + + /** + * Event handler for AreaEffectCloudApplyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) + { + // TODO + } + + /** + * Event handler for MinigameAsyncPlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBreakEvent(BlockBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBurnEvent(BlockBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockCanBuildEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockCanBuildEvent(BlockCanBuildEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDamageEvent(BlockDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDispenseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDispenseEvent(BlockDispenseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockEvent(BlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExpEvent(BlockExpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExplodeEvent(BlockExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFadeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFadeEvent(BlockFadeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFormEvent(BlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFromToEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFromToEvent(BlockFromToEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockGrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockGrowEvent(BlockGrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockIgniteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockIgniteEvent(BlockIgniteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockMultiPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPhysicsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPhysicsEvent(BlockPhysicsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonEvent(BlockPistonEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonExtendEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonRetractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPlaceEvent(BlockPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockRedstoneEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockRedstoneEvent(BlockRedstoneEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockSpreadEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockSpreadEvent(BlockSpreadEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBrewEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBrewEvent(BrewEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCauldronLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCraftItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCraftItemEvent(CraftItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreatureSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreatureSpawnEvent(CreatureSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreeperPowerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreeperPowerEvent(CreeperPowerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnchantItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnchantItemEvent(EnchantItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnderDragonChangePhaseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBlockFormEvent(EntityBlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreakDoorEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityChangeBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustEvent(EntityCombustEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCreatePortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageEvent(EntityDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDeathEvent(EntityDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityEvent(EntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityExplodeEvent(EntityExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityInteractEvent(EntityInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEvent(EntityPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalExitEvent(EntityPortalExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityRegainHealthEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityShootBowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityShootBowEvent(EntityShootBowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntitySpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntitySpawnEvent(EntitySpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTameEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTameEvent(EntityTameEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetEvent(EntityTargetEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetLivingEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTeleportEvent(EntityTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityToggleGlideEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityUnleashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityUnleashEvent(EntityUnleashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExpBottleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExpBottleEvent(ExpBottleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExplosionPrimeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFireworkExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFireworkExplodeEvent(FireworkExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFoodLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceBurnEvent(FurnaceBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceSmeltEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakEvent(HangingBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingEvent(HangingEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingPlaceEvent(HangingPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHorseJumpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHorseJumpEvent(HorseJumpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryClickEvent(InventoryClickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCloseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCreativeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCreativeEvent(InventoryCreativeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryDragEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryDragEvent(InventoryDragEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryEvent(InventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryInteractEvent(InventoryInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryMoveItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryOpenEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryOpenEvent(InventoryOpenEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemDespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemDespawnEvent(ItemDespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemMergeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemMergeEvent(ItemMergeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemSpawnEvent(ItemSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLeavesDecayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLeavesDecayEvent(LeavesDecayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLingeringPotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameNotePlayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onNotePlayEvent(NotePlayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePigZapEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPigZapEvent(PigZapEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAchievementAwardedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAnimationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAnimationEvent(PlayerAnimationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerArmorStandManipulateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedLeaveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEmptyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEvent(PlayerBucketEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketFillEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedWorldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChannelEvent(PlayerChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatEvent(PlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatTabCompleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerCommandPreprocessEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDeathEvent(PlayerDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDropItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDropItemEvent(PlayerDropItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEditBookEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEditBookEvent(PlayerEditBookEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEggThrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEvent(PlayerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerExpChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerFishEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerFishEvent(PlayerFishEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerGameModeChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractAtEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInventoryEvent(PlayerInventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemConsumeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemHeldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerJoinEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerJoinEvent(PlayerJoinEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerKickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerKickEvent(PlayerKickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLeashEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLoginEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerMoveEvent(PlayerMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupArrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPortalEvent(PlayerPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerQuitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerQuitEvent(PlayerQuitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRegisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerResourcePackStatusEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRespawnEvent(PlayerRespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerShearEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSpawnLocationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerStatisticIncrementEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSwapHandItemsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerTeleportEvent(PlayerTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleFlightEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSneakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSprintEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerUnregisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerVelocityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerVelocityEvent(PlayerVelocityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPotionSplashEvent(PotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareAnvilEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareAnvilEvent(PrepareAnvilEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemCraftEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemEnchantEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileHitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileHitEvent(ProjectileHitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileLaunchEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepDyeWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepRegrowWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSignChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSignChangeEvent(SignChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSlimeSplitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSlimeSplitEvent(SlimeSplitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSpawnerSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleBlockCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCollisionEvent(VehicleCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCreateEvent(VehicleCreateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDamageEvent(VehicleDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDestroyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDestroyEvent(VehicleDestroyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEnterEvent(VehicleEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEntityCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEvent(VehicleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleExitEvent(VehicleExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleMoveEvent(VehicleMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleUpdateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleUpdateEvent(VehicleUpdateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVillagerAcquireTradeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVillagerReplenishTradeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) + { + // TODO + } + +} diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java index a9280e00..61367be5 100644 --- a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java +++ b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java @@ -15,6 +15,11 @@ package com.github.mce.minigames.impl.nms.v1_9_1; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; /** @@ -25,10 +30,25 @@ public class NmsFactory1_9_1 implements NmsFactory { + /** the implementation classes. */ + private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); + + /** + * Constructor. + */ + public NmsFactory1_9_1() + { + this.impls.put(EventSystemInterface.class, () -> new EventSystem1_9_1()); + } + @Override public <T> T create(Class<T> clazz) { - // TODO Auto-generated method stub + final Supplier<?> supplier = this.impls.get(clazz); + if (supplier != null) + { + return clazz.cast(supplier.get()); + } return null; } diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java new file mode 100644 index 00000000..5387d0f7 --- /dev/null +++ b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java @@ -0,0 +1,1936 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_9_2; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockEvent; +import org.bukkit.event.block.BlockExpEvent; +import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockFadeEvent; +import org.bukkit.event.block.BlockFormEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.block.CauldronLevelChangeEvent; +import org.bukkit.event.block.EntityBlockFormEvent; +import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.NotePlayEvent; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import org.bukkit.event.entity.AreaEffectCloudApplyEvent; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.event.entity.CreeperPowerEvent; +import org.bukkit.event.entity.EnderDragonChangePhaseEvent; +import org.bukkit.event.entity.EntityBreakDoorEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; +import org.bukkit.event.entity.EntityCombustByBlockEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityInteractEvent; +import org.bukkit.event.entity.EntityPortalEnterEvent; +import org.bukkit.event.entity.EntityPortalEvent; +import org.bukkit.event.entity.EntityPortalExitEvent; +import org.bukkit.event.entity.EntityRegainHealthEvent; +import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.entity.EntityTameEvent; +import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.EntityTeleportEvent; +import org.bukkit.event.entity.EntityToggleGlideEvent; +import org.bukkit.event.entity.EntityUnleashEvent; +import org.bukkit.event.entity.ExpBottleEvent; +import org.bukkit.event.entity.ExplosionPrimeEvent; +import org.bukkit.event.entity.FireworkExplodeEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.HorseJumpEvent; +import org.bukkit.event.entity.ItemDespawnEvent; +import org.bukkit.event.entity.ItemMergeEvent; +import org.bukkit.event.entity.ItemSpawnEvent; +import org.bukkit.event.entity.LingeringPotionSplashEvent; +import org.bukkit.event.entity.PigZapEvent; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.event.entity.SheepDyeWoolEvent; +import org.bukkit.event.entity.SheepRegrowWoolEvent; +import org.bukkit.event.entity.SlimeSplitEvent; +import org.bukkit.event.entity.SpawnerSpawnEvent; +import org.bukkit.event.entity.VillagerAcquireTradeEvent; +import org.bukkit.event.entity.VillagerReplenishTradeEvent; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import org.bukkit.event.hanging.HangingBreakEvent; +import org.bukkit.event.hanging.HangingEvent; +import org.bukkit.event.hanging.HangingPlaceEvent; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.event.inventory.CraftItemEvent; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryCreativeEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryPickupItemEvent; +import org.bukkit.event.inventory.PrepareAnvilEvent; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import org.bukkit.event.player.PlayerAnimationEvent; +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerBucketEvent; +import org.bukkit.event.player.PlayerBucketFillEvent; +import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerChannelEvent; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.event.player.PlayerEditBookEvent; +import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerGameModeChangeEvent; +import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerInventoryEvent; +import org.bukkit.event.player.PlayerItemBreakEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.event.player.PlayerItemDamageEvent; +import org.bukkit.event.player.PlayerItemHeldEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerPickupArrowEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerRegisterChannelEvent; +import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.PlayerShearEntityEvent; +import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import org.bukkit.event.player.PlayerSwapHandItemsEvent; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerToggleFlightEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.player.PlayerToggleSprintEvent; +import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import org.bukkit.event.player.PlayerVelocityEvent; +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import org.bukkit.event.vehicle.VehicleCollisionEvent; +import org.bukkit.event.vehicle.VehicleCreateEvent; +import org.bukkit.event.vehicle.VehicleDamageEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import org.bukkit.event.vehicle.VehicleEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; +import org.bukkit.event.vehicle.VehicleMoveEvent; +import org.bukkit.event.vehicle.VehicleUpdateEvent; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; + +/** + * The event system implementation. + * + * @author mepeisen + */ +public class EventSystem1_9_2 implements EventSystemInterface +{ + + /** + * Event handler for AreaEffectCloudApplyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) + { + // TODO + } + + /** + * Event handler for MinigameAsyncPlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBreakEvent(BlockBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockBurnEvent(BlockBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockCanBuildEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockCanBuildEvent(BlockCanBuildEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDamageEvent(BlockDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockDispenseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockDispenseEvent(BlockDispenseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockEvent(BlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExpEvent(BlockExpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockExplodeEvent(BlockExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFadeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFadeEvent(BlockFadeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFormEvent(BlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockFromToEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockFromToEvent(BlockFromToEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockGrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockGrowEvent(BlockGrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockIgniteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockIgniteEvent(BlockIgniteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockMultiPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPhysicsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPhysicsEvent(BlockPhysicsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonEvent(BlockPistonEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonExtendEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPistonRetractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockPlaceEvent(BlockPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockRedstoneEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockRedstoneEvent(BlockRedstoneEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBlockSpreadEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBlockSpreadEvent(BlockSpreadEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameBrewEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onBrewEvent(BrewEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCauldronLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCraftItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCraftItemEvent(CraftItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreatureSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreatureSpawnEvent(CreatureSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameCreeperPowerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onCreeperPowerEvent(CreeperPowerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnchantItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnchantItemEvent(EnchantItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEnderDragonChangePhaseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBlockFormEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBlockFormEvent(EntityBlockFormEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityBreakDoorEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityChangeBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCombustEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCombustEvent(EntityCombustEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityCreatePortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByBlockEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDamageEvent(EntityDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityDeathEvent(EntityDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityEvent(EntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityExplodeEvent(EntityExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityInteractEvent(EntityInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalEvent(EntityPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityPortalExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityPortalExitEvent(EntityPortalExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityRegainHealthEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityShootBowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityShootBowEvent(EntityShootBowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntitySpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntitySpawnEvent(EntitySpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTameEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTameEvent(EntityTameEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetEvent(EntityTargetEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTargetLivingEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityTeleportEvent(EntityTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityToggleGlideEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameEntityUnleashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onEntityUnleashEvent(EntityUnleashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExpBottleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExpBottleEvent(ExpBottleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameExplosionPrimeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFireworkExplodeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFireworkExplodeEvent(FireworkExplodeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFoodLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceBurnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceBurnEvent(FurnaceBurnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameFurnaceSmeltEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakByEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingBreakEvent(HangingBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingEvent(HangingEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHangingPlaceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHangingPlaceEvent(HangingPlaceEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameHorseJumpEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onHorseJumpEvent(HorseJumpEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryClickEvent(InventoryClickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCloseEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCloseEvent(InventoryCloseEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryCreativeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryCreativeEvent(InventoryCreativeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryDragEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryDragEvent(InventoryDragEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryEvent(InventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryInteractEvent(InventoryInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryMoveItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryOpenEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryOpenEvent(InventoryOpenEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameInventoryPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemDespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemDespawnEvent(ItemDespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemMergeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemMergeEvent(ItemMergeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameItemSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onItemSpawnEvent(ItemSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLeavesDecayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLeavesDecayEvent(LeavesDecayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameLingeringPotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameNotePlayEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onNotePlayEvent(NotePlayEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePigZapEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPigZapEvent(PigZapEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAchievementAwardedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerAnimationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerAnimationEvent(PlayerAnimationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerArmorStandManipulateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBedLeaveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEmptyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketEvent(PlayerBucketEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerBucketFillEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChangedWorldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChannelEvent(PlayerChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatEvent(PlayerChatEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerChatTabCompleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerCommandPreprocessEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDeathEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDeathEvent(PlayerDeathEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerDropItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDropItemEvent(PlayerDropItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEditBookEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEditBookEvent(PlayerEditBookEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEggThrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerEvent(PlayerEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerExpChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerFishEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerFishEvent(PlayerFishEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerGameModeChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractAtEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInteractEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInteractEvent(PlayerInteractEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerInventoryEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerInventoryEvent(PlayerInventoryEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemBreakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemConsumeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerItemHeldEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerJoinEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerJoinEvent(PlayerJoinEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerKickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerKickEvent(PlayerKickEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLeashEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLevelChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerLoginEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerLoginEvent(PlayerLoginEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerMoveEvent(PlayerMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupArrowEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPickupItemEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerPortalEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerPortalEvent(PlayerPortalEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerQuitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerQuitEvent(PlayerQuitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRegisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerResourcePackStatusEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerRespawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerRespawnEvent(PlayerRespawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerShearEntityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSpawnLocationEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerStatisticIncrementEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerSwapHandItemsEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerTeleportEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerTeleportEvent(PlayerTeleportEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleFlightEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSneakEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerToggleSprintEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerUnregisterChannelEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePlayerVelocityEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerVelocityEvent(PlayerVelocityEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePotionSplashEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPotionSplashEvent(PotionSplashEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareAnvilEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareAnvilEvent(PrepareAnvilEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemCraftEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigamePrepareItemEnchantEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileHitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileHitEvent(ProjectileHitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameProjectileLaunchEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepDyeWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSheepRegrowWoolEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSignChangeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSignChangeEvent(SignChangeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSlimeSplitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSlimeSplitEvent(SlimeSplitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameSpawnerSpawnEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleBlockCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCollisionEvent(VehicleCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleCreateEvent(VehicleCreateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDamageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDamageEvent(VehicleDamageEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleDestroyEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleDestroyEvent(VehicleDestroyEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEnterEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEnterEvent(VehicleEnterEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEntityCollisionEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleEvent(VehicleEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleExitEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleExitEvent(VehicleExitEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleMoveEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleMoveEvent(VehicleMoveEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVehicleUpdateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVehicleUpdateEvent(VehicleUpdateEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVillagerAcquireTradeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) + { + // TODO + } + + + /** + * Event handler for MinigameVillagerReplenishTradeEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) + { + // TODO + } + +} diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java index 2612676b..395365b8 100644 --- a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java +++ b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java @@ -15,6 +15,11 @@ package com.github.mce.minigames.impl.nms.v1_9_2; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Supplier; + +import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; /** @@ -25,10 +30,25 @@ public class NmsFactory1_9_2 implements NmsFactory { + /** the implementation classes. */ + private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); + + /** + * Constructor. + */ + public NmsFactory1_9_2() + { + this.impls.put(EventSystemInterface.class, () -> new EventSystem1_9_2()); + } + @Override public <T> T create(Class<T> clazz) { - // TODO Auto-generated method stub + final Supplier<?> supplier = this.impls.get(clazz); + if (supplier != null) + { + return clazz.cast(supplier.get()); + } return null; } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java index b998b1a0..08e7ba7e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java @@ -27,6 +27,7 @@ import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.arena.ArenasConfig; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; import com.github.mce.minigames.impl.MinigameWrapper; @@ -236,5 +237,45 @@ public void tryRestart() // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaInterface#getAuthor() + */ + @Override + public String getAuthor() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaInterface#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaInterface#getDescription() + */ + @Override + public LocalizedMessageInterface getDescription() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaInterface#delete() + */ + @Override + public void delete() throws MinigameException + { + // TODO Auto-generated method stub + + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index e40ceadb..69044800 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -265,13 +265,13 @@ public StorageImpl() } @Override - public <T extends Configurable> T getContext(Class<T> clazz) + public <T extends Configurable> T get(Class<T> clazz) { return clazz.cast(this.data.get(clazz)); } @Override - public <T extends Configurable> void setContext(Class<T> clazz, T value) + public <T extends Configurable> void set(Class<T> clazz, T value) { this.data.put(clazz, value); } @@ -305,7 +305,7 @@ public ContextStorage calculateFromEvent(MinigameEvent<?> event, MinigameContext @Override public GuiSessionInterface getGuiSession() { - return this.getSessionStorage().getContext(GuiSessionInterface.class); + return this.getSessionStorage().get(GuiSessionInterface.class); } /* (non-Javadoc) From 36f378318420672a02d81d9ce1a023f1784a8763 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 30 Aug 2016 08:21:11 +0200 Subject: [PATCH 118/266] v2 --- .../bevents/MinigameBlockPistonEvent.java | 32 - .../rules/bevents/MinigameEntityEvent.java | 32 - .../rules/bevents/MinigameHangingEvent.java | 32 - .../bevents/MinigamePlayerBucketEvent.java | 32 - .../rules/bevents/MinigamePlayerEvent.java | 32 - .../MinigameVehicleCollisionEvent.java | 32 - .../rules/bevents/MinigameVehicleEvent.java | 32 - .../deploy-mglib2.launch | 2 +- .../impl/nms/InventoryManagerInterface.java | 22 +- .../impl/nms/v1_10_1/EventSystem1_10_1.java | 96 -- .../nms/v1_10_1/InventoryManager1_10_1.java | 52 + .../impl/nms/v1_10_1/NmsFactory1_10_1.java | 2 + .../impl/nms/v1_8_1/EventSystem1_8_1.java | 96 -- .../impl/nms/v1_8_2/EventSystem1_8_2.java | 1061 +++++++-------- .../impl/nms/v1_8_3/EventSystem1_8_3.java | 1082 ++++++++-------- .../impl/nms/v1_9_1/EventSystem1_9_1.java | 1151 +++++++++-------- .../impl/nms/v1_9_2/EventSystem1_9_2.java | 1151 +++++++++-------- LIBv2/pom.xml | 21 + LIBv2/src/build/build.xml | 7 + .../minigames/impl/MinigamePluginImpl.java | 33 +- .../mce/minigames/impl/MinigamesPlugin.java | 12 + .../minigames/impl/gui/GuiSessionImpl.java | 258 ++++ .../impl/player/ArenaPlayerImpl.java | 33 +- .../minigames/impl/player/PlayerRegistry.java | 22 +- 24 files changed, 2756 insertions(+), 2569 deletions(-) delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java rename APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java => LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java (56%) create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java deleted file mode 100644 index 08297a40..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockPistonEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigameBlockPistonEvent extends MinigameEvent<BlockPistonEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java deleted file mode 100644 index 8536b42f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigameEntityEvent extends MinigameEvent<EntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java deleted file mode 100644 index c5c360d5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.hanging.HangingEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigameHangingEvent extends MinigameEvent<HangingEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java deleted file mode 100644 index 4ec9427b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerBucketEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigamePlayerBucketEvent extends MinigameEvent<PlayerBucketEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java deleted file mode 100644 index bc8f276d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigamePlayerEvent extends MinigameEvent<PlayerEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java deleted file mode 100644 index 2e448ff5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCollisionEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleCollisionEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigameVehicleCollisionEvent extends MinigameEvent<VehicleCollisionEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java deleted file mode 100644 index 4d437eb8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEvent.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Block break event. - * - * @author mepeisen - */ -public interface MinigameVehicleEvent extends MinigameEvent<VehicleEvent> -{ - - // TODO default stubbings - -} diff --git a/LIBv2/.externalToolBuilders/deploy-mglib2.launch b/LIBv2/.externalToolBuilders/deploy-mglib2.launch index a1c5079c..c8fa0bf0 100644 --- a/LIBv2/.externalToolBuilders/deploy-mglib2.launch +++ b/LIBv2/.externalToolBuilders/deploy-mglib2.launch @@ -6,7 +6,7 @@ <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="MinigamesPlugin"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/MinigamesAPI/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/resources" type="2"/> </resources>}"/> +<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/MinigamesAPI/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/resources" type="2"/> <item path="/MinigamesPlugin_nms1_8_r1/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_8_r2/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_8_r3/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_9_r1/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_9_r2/src/main/java" type="2"/> <item path="/MinigamesPlugin_nmsapi/src/main/java" type="2"/> </resources>}"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/MinigamesPlugin/src/build/build.xml}"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/> <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java similarity index 56% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java rename to LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java index b0402a84..43c8d121 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java @@ -13,20 +13,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.api.arena.rules.bevents; +package com.github.mce.minigames.impl.nms; -import org.bukkit.event.block.BlockEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; /** - * Block break event. + * An nms inventory manager. * * @author mepeisen */ -public interface MinigameBlockEvent extends MinigameEvent<BlockEvent> +public interface InventoryManagerInterface { - // TODO default stubbings + /** + * Opens an inventory. + * + * @param player the player that is opening the inventory + * @param name the name of the inventory + * @param items the items within the inventory + * @return inventory reference. + */ + Inventory openInventory(Player player, String name, ItemStack[] items); } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java index c51bc728..33c654fb 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java @@ -21,7 +21,6 @@ import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockExpEvent; import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFadeEvent; @@ -31,7 +30,6 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -59,7 +57,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityPortalEnterEvent; @@ -97,7 +94,6 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; @@ -121,7 +117,6 @@ import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerChangedMainHandEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; @@ -132,7 +127,6 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; @@ -166,13 +160,11 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCollisionEvent; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.vehicle.VehicleUpdateEvent; @@ -264,17 +256,6 @@ public void onBlockDispenseEvent(BlockDispenseEvent evt) } - /** - * Event handler for MinigameBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockEvent(BlockEvent evt) - { - // TODO - } - - /** * Event handler for MinigameBlockExpEvent event. * @param evt the event to be passed. @@ -374,17 +355,6 @@ public void onBlockPhysicsEvent(BlockPhysicsEvent evt) } - /** - * Event handler for MinigameBlockPistonEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonEvent(BlockPistonEvent evt) - { - // TODO - } - - /** * Event handler for MinigameBlockPistonExtendEvent event. * @param evt the event to be passed. @@ -649,17 +619,6 @@ public void onEntityDeathEvent(EntityDeathEvent evt) } - /** - * Event handler for MinigameEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityEvent(EntityEvent evt) - { - // TODO - } - - /** * Event handler for MinigameEntityExplodeEvent event. * @param evt the event to be passed. @@ -902,17 +861,6 @@ public void onHangingBreakEvent(HangingBreakEvent evt) } - /** - * Event handler for MinigameHangingEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingEvent(HangingEvent evt) - { - // TODO - } - - /** * Event handler for MinigameHangingPlaceEvent event. * @param evt the event to be passed. @@ -1177,17 +1125,6 @@ public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) } - /** - * Event handler for MinigamePlayerBucketEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEvent(PlayerBucketEvent evt) - { - // TODO - } - - /** * Event handler for MinigamePlayerBucketFillEvent event. * @param evt the event to be passed. @@ -1309,17 +1246,6 @@ public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) } - /** - * Event handler for MinigamePlayerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEvent(PlayerEvent evt) - { - // TODO - } - - /** * Event handler for MinigamePlayerExpChangeEvent event. * @param evt the event to be passed. @@ -1826,17 +1752,6 @@ public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) } - /** - * Event handler for MinigameVehicleCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCollisionEvent(VehicleCollisionEvent evt) - { - // TODO - } - - /** * Event handler for MinigameVehicleCreateEvent event. * @param evt the event to be passed. @@ -1892,17 +1807,6 @@ public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) } - /** - * Event handler for MinigameVehicleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEvent(VehicleEvent evt) - { - // TODO - } - - /** * Event handler for MinigameVehicleExitEvent event. * @param evt the event to be passed. diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java new file mode 100644 index 00000000..cf876783 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java @@ -0,0 +1,52 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1; + +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +import com.github.mce.minigames.impl.nms.InventoryManagerInterface; + +import net.minecraft.server.v1_10_R1.EntityPlayer; + +/** + * Inventory manager implementation. + * + * @author mepeisen + */ +public class InventoryManager1_10_1 implements InventoryManagerInterface +{ + + @Override + public Inventory openInventory(Player player, String name, ItemStack[] items) + { + final Inventory inventory = Bukkit.createInventory(null, items.length, name); + inventory.setContents(items); + final EntityPlayer entity = ((CraftPlayer)player).getHandle(); + if (entity.activeContainer != entity.defaultContainer) + { + CraftEventFactory.handleInventoryCloseEvent(entity); + entity.activeContainer = entity.defaultContainer; + } + player.openInventory(inventory); + return inventory; + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java index f1cfeca8..f43017bc 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java @@ -20,6 +20,7 @@ import java.util.function.Supplier; import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.InventoryManagerInterface; import com.github.mce.minigames.impl.nms.NmsFactory; /** @@ -39,6 +40,7 @@ public class NmsFactory1_10_1 implements NmsFactory public NmsFactory1_10_1() { this.impls.put(EventSystemInterface.class, () -> new EventSystem1_10_1()); + this.impls.put(InventoryManagerInterface.class, () -> new InventoryManager1_10_1()); } @Override diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java index 07d19f54..f6c1863c 100644 --- a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java +++ b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java @@ -21,7 +21,6 @@ import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockExpEvent; import org.bukkit.event.block.BlockFadeEvent; import org.bukkit.event.block.BlockFormEvent; @@ -30,7 +29,6 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -54,7 +52,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityPortalEnterEvent; @@ -86,7 +83,6 @@ import org.bukkit.event.entity.SpawnerSpawnEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; @@ -108,7 +104,6 @@ import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerChannelEvent; @@ -118,7 +113,6 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; @@ -149,13 +143,11 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCollisionEvent; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.vehicle.VehicleUpdateEvent; @@ -237,17 +229,6 @@ public void onBlockDispenseEvent(BlockDispenseEvent evt) } - /** - * Event handler for MinigameBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockEvent(BlockEvent evt) - { - // TODO - } - - /** * Event handler for MinigameBlockExpEvent event. * @param evt the event to be passed. @@ -336,17 +317,6 @@ public void onBlockPhysicsEvent(BlockPhysicsEvent evt) } - /** - * Event handler for MinigameBlockPistonEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonEvent(BlockPistonEvent evt) - { - // TODO - } - - /** * Event handler for MinigameBlockPistonExtendEvent event. * @param evt the event to be passed. @@ -578,17 +548,6 @@ public void onEntityDeathEvent(EntityDeathEvent evt) } - /** - * Event handler for MinigameEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityEvent(EntityEvent evt) - { - // TODO - } - - /** * Event handler for MinigameEntityExplodeEvent event. * @param evt the event to be passed. @@ -809,17 +768,6 @@ public void onHangingBreakEvent(HangingBreakEvent evt) } - /** - * Event handler for MinigameHangingEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingEvent(HangingEvent evt) - { - // TODO - } - - /** * Event handler for MinigameHangingPlaceEvent event. * @param evt the event to be passed. @@ -1051,17 +999,6 @@ public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) } - /** - * Event handler for MinigamePlayerBucketEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEvent(PlayerBucketEvent evt) - { - // TODO - } - - /** * Event handler for MinigamePlayerBucketFillEvent event. * @param evt the event to be passed. @@ -1172,17 +1109,6 @@ public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) } - /** - * Event handler for MinigamePlayerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEvent(PlayerEvent evt) - { - // TODO - } - - /** * Event handler for MinigamePlayerExpChangeEvent event. * @param evt the event to be passed. @@ -1645,17 +1571,6 @@ public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) } - /** - * Event handler for MinigameVehicleCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCollisionEvent(VehicleCollisionEvent evt) - { - // TODO - } - - /** * Event handler for MinigameVehicleCreateEvent event. * @param evt the event to be passed. @@ -1711,17 +1626,6 @@ public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) } - /** - * Event handler for MinigameVehicleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEvent(VehicleEvent evt) - { - // TODO - } - - /** * Event handler for MinigameVehicleExitEvent event. * @param evt the event to be passed. diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java index df07ee20..d4aaa38c 100644 --- a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java +++ b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java @@ -21,7 +21,6 @@ import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockExpEvent; import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFadeEvent; @@ -31,7 +30,6 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -55,7 +53,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityPortalEnterEvent; @@ -87,7 +84,6 @@ import org.bukkit.event.entity.SpawnerSpawnEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; @@ -110,7 +106,6 @@ import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerChannelEvent; @@ -120,7 +115,6 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; @@ -151,13 +145,11 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCollisionEvent; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.vehicle.VehicleUpdateEvent; @@ -175,1607 +167,1658 @@ public class EventSystem1_8_2 implements EventSystemInterface /** * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockEvent(BlockEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockPistonEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonEvent(BlockPistonEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { // TODO } - - + /** * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { // TODO } - - + /** * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { // TODO } - - + /** * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { // TODO } - - + /** * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { // TODO } - - - /** - * Event handler for MinigameEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityEvent(EntityEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { // TODO } - - + /** * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { // TODO } - - + /** * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { // TODO } - - + /** * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { // TODO } - - + /** * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { // TODO } - - - /** - * Event handler for MinigameHangingEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingEvent(HangingEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { // TODO } - - + /** * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { // TODO } - - + /** * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { // TODO } - - + /** * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerBucketEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEvent(PlayerBucketEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEvent(PlayerEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { // TODO } - - + /** * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { // TODO } - - + /** * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCollisionEvent(VehicleCollisionEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEvent(VehicleEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { // TODO } - + } diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java index 452baf2c..a4021d9e 100644 --- a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java +++ b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java @@ -21,7 +21,6 @@ import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockExpEvent; import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFadeEvent; @@ -31,7 +30,6 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -55,7 +53,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityPortalEnterEvent; @@ -89,7 +86,6 @@ import org.bukkit.event.entity.SpawnerSpawnEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; @@ -112,7 +108,6 @@ import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerChannelEvent; @@ -122,7 +117,6 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; @@ -154,13 +148,11 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCollisionEvent; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.vehicle.VehicleUpdateEvent; @@ -178,1640 +170,1694 @@ public class EventSystem1_8_3 implements EventSystemInterface /** * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockEvent(BlockEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockPistonEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonEvent(BlockPistonEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { // TODO } - - + /** * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { // TODO } - - + /** * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { // TODO } - - + /** * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { // TODO } - - + /** * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { // TODO } - - - /** - * Event handler for MinigameEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityEvent(EntityEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { // TODO } - - + /** * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { // TODO } - - + /** * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { // TODO } - - + /** * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { // TODO } - - + /** * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { // TODO } - - - /** - * Event handler for MinigameHangingEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingEvent(HangingEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { // TODO } - - + /** * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { // TODO } - - + /** * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { // TODO } - - + /** * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { // TODO } - - + /** * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerBucketEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEvent(PlayerBucketEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEvent(PlayerEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { // TODO } - - + /** * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { // TODO } - - + /** * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCollisionEvent(VehicleCollisionEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEvent(VehicleEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { // TODO } - + } diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java index c5068657..98f52ffa 100644 --- a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java +++ b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java @@ -21,7 +21,6 @@ import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockExpEvent; import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFadeEvent; @@ -31,7 +30,6 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -58,7 +56,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityPortalEnterEvent; @@ -96,7 +93,6 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; @@ -120,7 +116,6 @@ import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerChannelEvent; @@ -130,7 +125,6 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; @@ -164,13 +158,11 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCollisionEvent; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.vehicle.VehicleUpdateEvent; @@ -188,1749 +180,1814 @@ public class EventSystem1_9_1 implements EventSystemInterface /** * Event handler for AreaEffectCloudApplyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) { // TODO } - + /** * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockEvent(BlockEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockPistonEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonEvent(BlockPistonEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { // TODO } - - + /** * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { // TODO } - - + /** * Event handler for MinigameCauldronLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { // TODO } - - + /** * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { // TODO } - - + /** * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { // TODO } - - + /** * Event handler for MinigameEnderDragonChangePhaseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { // TODO } - - - /** - * Event handler for MinigameEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityEvent(EntityEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { // TODO } - - + /** * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityToggleGlideEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { // TODO } - - + /** * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { // TODO } - - + /** * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { // TODO } - - + /** * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { // TODO } - - - /** - * Event handler for MinigameHangingEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingEvent(HangingEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { // TODO } - - + /** * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { // TODO } - - + /** * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { // TODO } - - + /** * Event handler for MinigameLingeringPotionSplashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) { // TODO } - - + /** * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { // TODO } - - + /** * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerBucketEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEvent(PlayerBucketEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEvent(PlayerEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPickupArrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerSwapHandItemsEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { // TODO } - - + /** * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareAnvilEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareAnvilEvent(PrepareAnvilEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { // TODO } - - + /** * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCollisionEvent(VehicleCollisionEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEvent(VehicleEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { // TODO } - - + /** * Event handler for MinigameVillagerAcquireTradeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) { // TODO } - - + /** * Event handler for MinigameVillagerReplenishTradeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) { // TODO } - + } diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java index 5387d0f7..f6e172d2 100644 --- a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java +++ b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java @@ -21,7 +21,6 @@ import org.bukkit.event.block.BlockCanBuildEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockExpEvent; import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.block.BlockFadeEvent; @@ -31,7 +30,6 @@ import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockMultiPlaceEvent; import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonEvent; import org.bukkit.event.block.BlockPistonExtendEvent; import org.bukkit.event.block.BlockPistonRetractEvent; import org.bukkit.event.block.BlockPlaceEvent; @@ -58,7 +56,6 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityPortalEnterEvent; @@ -96,7 +93,6 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingEvent; import org.bukkit.event.hanging.HangingPlaceEvent; import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; @@ -120,7 +116,6 @@ import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketEvent; import org.bukkit.event.player.PlayerBucketFillEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerChannelEvent; @@ -130,7 +125,6 @@ import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerEditBookEvent; import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; @@ -164,13 +158,11 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.event.player.PlayerVelocityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCollisionEvent; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDamageEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleMoveEvent; import org.bukkit.event.vehicle.VehicleUpdateEvent; @@ -188,1749 +180,1814 @@ public class EventSystem1_9_2 implements EventSystemInterface /** * Event handler for AreaEffectCloudApplyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) { // TODO } - + /** * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockEvent(BlockEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { // TODO } - - - /** - * Event handler for MinigameBlockPistonEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonEvent(BlockPistonEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { // TODO } - - + /** * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { // TODO } - - + /** * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { // TODO } - - + /** * Event handler for MinigameCauldronLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { // TODO } - - + /** * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { // TODO } - - + /** * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { // TODO } - - + /** * Event handler for MinigameEnderDragonChangePhaseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { // TODO } - - - /** - * Event handler for MinigameEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityEvent(EntityEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { // TODO } - - + /** * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityToggleGlideEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) { // TODO } - - + /** * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { // TODO } - - + /** * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { // TODO } - - + /** * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { // TODO } - - + /** * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { // TODO } - - + /** * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { // TODO } - - + /** * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { // TODO } - - + /** * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { // TODO } - - - /** - * Event handler for MinigameHangingEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingEvent(HangingEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { // TODO } - - + /** * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { // TODO } - - + /** * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { // TODO } - - + /** * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { // TODO } - - + /** * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { // TODO } - - + /** * Event handler for MinigameLingeringPotionSplashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) { // TODO } - - + /** * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { // TODO } - - + /** * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerBucketEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEvent(PlayerBucketEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { // TODO } - - - /** - * Event handler for MinigamePlayerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEvent(PlayerEvent evt) - { - // TODO - } - - + /** * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPickupArrowEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerSwapHandItemsEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { // TODO } - - + /** * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { // TODO } - - + /** * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareAnvilEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareAnvilEvent(PrepareAnvilEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { // TODO } - - + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { // TODO } - - + /** * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { // TODO } - - + /** * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { // TODO } - - + /** * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { // TODO } - - + /** * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCollisionEvent(VehicleCollisionEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { // TODO } - - - /** - * Event handler for MinigameVehicleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEvent(VehicleEvent evt) - { - // TODO - } - - + /** * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { // TODO } - - + /** * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { // TODO } - - + /** * Event handler for MinigameVillagerAcquireTradeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) { // TODO } - - + /** * Event handler for MinigameVillagerReplenishTradeEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) { // TODO } - + } diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 47d583fc..a2064d7e 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -192,6 +192,27 @@ <argLine>${surefireArgLine}</argLine> </configuration> </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>1.4</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <artifactSet> + <includes> + <include>com.github.MCE-Plugins:*</include> + </includes> + </artifactSet> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> diff --git a/LIBv2/src/build/build.xml b/LIBv2/src/build/build.xml index 39b465aa..a66cd1bc 100644 --- a/LIBv2/src/build/build.xml +++ b/LIBv2/src/build/build.xml @@ -13,6 +13,13 @@ <jar destfile="${jar.file}"> <fileset dir="${basedir}/../../target/classes"></fileset> <fileset dir="${basedir}/../../../APIv2/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/api/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/v1_8_r1/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/v1_8_r2/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/v1_8_r3/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/v1_9_r1/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/v1_9_r2/target/classes"></fileset> + <fileset dir="${basedir}/../../nms/v1_10_r1/target/classes"></fileset> </jar> <ant antfile="${minecraft.install.servers}" inheritAll="true" /> </target> diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 1f052f7b..acde8f1d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -143,27 +143,30 @@ public void init() // load arenas from config. final ConfigurationSection arenasSection = this.getConfig("arenas.yml").getConfigurationSection("arenas"); //$NON-NLS-1$ //$NON-NLS-2$ - for (final String key : arenasSection.getKeys(false)) + if (arenasSection != null) { - this.plugin.getLogger().log(Level.INFO, "Reloading arena " + key + " from config."); //$NON-NLS-1$ //$NON-NLS-2$ - try + for (final String key : arenasSection.getKeys(false)) { - final ArenaImpl arena = new ArenaImpl(key, this, this.components); - this.arenas.put(key.toLowerCase(), arena); - if (arena.isEnabled()) + this.plugin.getLogger().log(Level.INFO, "Reloading arena " + key + " from config."); //$NON-NLS-1$ //$NON-NLS-2$ + try { - synchronized (this) + final ArenaImpl arena = new ArenaImpl(key, this, this.components); + this.arenas.put(key.toLowerCase(), arena); + if (arena.isEnabled()) { - Bukkit.getScheduler().runTaskLaterAsynchronously(this.plugin, () -> { - arena.tryRestart(); - }, 10L * restartArenaTaskCount); - restartArenaTaskCount++; + synchronized (this) + { + Bukkit.getScheduler().runTaskLaterAsynchronously(this.plugin, () -> { + arena.tryRestart(); + }, 10L * restartArenaTaskCount); + restartArenaTaskCount++; + } } } - } - catch (Exception ex) - { - this.plugin.getLogger().log(Level.SEVERE, "Failed loading arena " + key + " from config.", ex); //$NON-NLS-1$ //$NON-NLS-2$ + catch (Exception ex) + { + this.plugin.getLogger().log(Level.SEVERE, "Failed loading arena " + key + " from config.", ex); //$NON-NLS-1$ //$NON-NLS-2$ + } } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index e8f02624..124cb1da 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -147,8 +147,10 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Liste */ private final ComponentRegistry components = new ComponentRegistry(); + /** the event system. */ private final EventSystemInterface events; + /** Access to nms specific classes. */ private final NmsFactory nmsFactory; /** @@ -220,6 +222,16 @@ public MinigamesPlugin() this.events = this.nmsFactory == null ? null : this.nmsFactory.create(EventSystemInterface.class); } + /** + * Returns the nms factory. + * + * @return nms factory + */ + public static NmsFactory nms() + { + return ((MinigamesPlugin) MglibInterface.INSTANCE.get()).nmsFactory; + } + @Override public void onDisable() { diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java new file mode 100644 index 00000000..55666b26 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java @@ -0,0 +1,258 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import com.github.mce.minigames.api.context.MinigameStorage; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiItem; +import com.github.mce.minigames.api.gui.ClickGuiPageInterface; +import com.github.mce.minigames.api.gui.GuiSessionInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.MinigamesPlugin; +import com.github.mce.minigames.impl.nms.InventoryManagerInterface; + +/** + * Implementation of a gui session + * + * @author mepeisen + */ +public class GuiSessionImpl implements GuiSessionInterface +{ + + /** the gui interface. */ + private ClickGuiInterface gui; + /** the arena player. */ + private ArenaPlayerInterface player; + /** the current inventory name. */ + private LocalizedMessageInterface currentName; + /** the current items. */ + private ClickGuiItem[][] currentItems; + /** the line count. */ + private int lineCount; + + /** + * Constructor + * + * @param gui + * the gui to be used + * @param player + * the arena player to be used + */ + public GuiSessionImpl(ClickGuiInterface gui, ArenaPlayerInterface player) + { + this.gui = gui; + this.player = player; + this.currentName = gui.getInitialPage().getPageName(); + this.currentItems = gui.getInitialPage().getItems(); + this.lineCount = gui.getLineCount(); + + final String name = player.getBukkitPlayer().isOp() ? this.currentName.toAdminMessage(player.getPreferredLocale()) : this.currentName.toUserMessage(player.getPreferredLocale()); + final ItemStack[] items = this.toItemStack(); + MinigamesPlugin.nms().create(InventoryManagerInterface.class).openInventory(player.getBukkitPlayer(), name, items); + } + + /** + * Converts the existing items to item stack. + * @return item stack. + */ + private ItemStack[] toItemStack() + { + final List<ItemStack> result = new ArrayList<>(); + for (int line = 0; line < this.lineCount; line++) + { + final ClickGuiItem[] itemline = (this.currentItems == null || this.currentItems.length <= line) ? null : this.currentItems[line]; + for (int column = 0; column < 9; column++) + { + if (itemline == null || itemline.length <= column) + { + result.add(new ItemStack(Material.AIR)); + } + else + { + final ItemStack stack = itemline[column].getItemStack().clone(); + final ItemMeta meta = stack.getItemMeta(); + final String displayName = toColorsString( + this.player.getBukkitPlayer().isOp() ? itemline[column].getDisplayName().toAdminMessage(this.player.getPreferredLocale()) : itemline[column].getDisplayName().toUserMessage(this.player.getPreferredLocale()), + line + ":" + column //$NON-NLS-1$ + ); + meta.setDisplayName(displayName); + stack.setItemMeta(meta); + result.add(stack); + } + } + } + return result.toArray(new ItemStack[result.size()]); + } + + /** + * Returns a colored string that hides data from users view. + * @param name item name + * @param hiddenString the hidden string + * @return colored hidden text + */ + private static String toColorsString(String name, String hiddenString) + { + final String target = toHexString(hiddenString); + final StringBuilder builder = new StringBuilder(); + builder.append(name); + builder.append(' '); + for (int i = 0; i < target.length(); i++) + { + builder.append('§'); + builder.append(target.charAt(i)); + } + return builder.toString(); + } + + /** + * Strips the string that was originally encoded by toColorsString + * @param src + * @return hiddenString + */ + private static String stripColoredString(String src) + { + int index = src.lastIndexOf(' '); + final StringBuilder hex = new StringBuilder(); + for (int i = index + 1; i < src.length(); i+=3) + { + hex.append(src.substring(i + 1, i + 3)); + } + return fromHexString(hex.toString()); + } + + /** + * Converts given string to hey code. + * + * @param src + * source string + * @return hex string + */ + private static String toHexString(String src) + { + final byte[] ba = src.getBytes(); + StringBuilder str = new StringBuilder(); + for (int i = 0; i < ba.length; i++) + { + str.append(String.format("%02x", ba[i])); //$NON-NLS-1$ + } + return str.toString(); + } + + /** + * Converts given hex string to a normal string. + * + * @param hex + * hex string + * @return normal string. + */ + private static String fromHexString(String hex) + { + StringBuilder str = new StringBuilder(); + for (int i = 0; i < hex.length(); i += 2) + { + str.append((char) Integer.parseInt(hex.substring(i, i + 2), 16)); + } + return str.toString(); + } + + @Override + public void readFromConfig(ConfigurationSection section) + { + throw new UnsupportedOperationException(); + } + + @Override + public void writeToConfig(ConfigurationSection section) + { + throw new UnsupportedOperationException(); + } + + @Override + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + @Override + public ClickGuiInterface getGui() + { + return this.gui; + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.gui.GuiSessionInterface#setNewPage(com.github.mce.minigames.api.gui.ClickGuiPageInterface) + */ + @Override + public void setNewPage(ClickGuiPageInterface page) + { + // TODO Auto-generated method stub + + } + + @Override + public void close() + { + this.player.getBukkitPlayer().closeInventory(); + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.gui.GuiSessionInterface#getGuiStorage() + */ + @Override + public MinigameStorage getGuiStorage() + { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.gui.GuiSessionInterface#getPlayerSessionStorage() + */ + @Override + public MinigameStorage getPlayerSessionStorage() + { + // TODO Auto-generated method stub + return null; + } + + /* + * (non-Javadoc) + * + * @see com.github.mce.minigames.api.gui.GuiSessionInterface#getPlayerPersistentStorage() + */ + @Override + public MinigameStorage getPlayerPersistentStorage() + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 69044800..1cf4e569 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -44,6 +44,7 @@ import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.impl.gui.GuiSessionImpl; import com.github.mce.minigames.impl.stubs.FalseStub; import com.github.mce.minigames.impl.stubs.TrueStub; @@ -308,14 +309,36 @@ public GuiSessionInterface getGuiSession() return this.getSessionStorage().get(GuiSessionInterface.class); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.player.ArenaPlayerInterface#openGui(com.github.mce.minigames.api.gui.ClickGuiInterface) - */ @Override public GuiSessionInterface openGui(ClickGuiInterface gui) throws MinigameException { - // TODO Auto-generated method stub - return null; + final MinigameStorage storage = this.getSessionStorage(); + final GuiSessionInterface oldSession = storage.get(GuiSessionInterface.class); + if (oldSession != null) + { + oldSession.close(); + } + final GuiSessionInterface newSession = new GuiSessionImpl(gui, this); + storage.set(GuiSessionInterface.class, newSession); + return newSession; + } + + /** + * Player quit event + */ + public void onPlayerQuit() + { + // clear session storage + this.sessionStorage = new StorageImpl(); + } + + /** + * Player join event + */ + public void onPlayerJoin() + { + // clear session storage + this.sessionStorage = new StorageImpl(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java index ab1af914..89a8b84e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java @@ -71,21 +71,35 @@ public ArenaPlayerImpl getPlayer(UUID uuid) } /** + * Player join event * @param evt */ public void onPlayerJoin(PlayerJoinEvent evt) { - // TODO Auto-generated method stub - + if (evt.getPlayer() != null) + { + final ArenaPlayerImpl impl = this.players.get(evt.getPlayer().getUniqueId()); + if (impl != null) + { + impl.onPlayerJoin(); + } + } } /** + * Player quit event. * @param evt */ public void onPlayerQuit(PlayerQuitEvent evt) { - // TODO Auto-generated method stub - + if (evt.getPlayer() != null) + { + final ArenaPlayerImpl impl = this.players.get(evt.getPlayer().getUniqueId()); + if (impl != null) + { + impl.onPlayerQuit(); + } + } } } From 5aaa8b570c74927b2f26be7646667bb0187539a5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 30 Aug 2016 08:26:16 +0200 Subject: [PATCH 119/266] v2 - max line count (javadoc) --- .../com/github/mce/minigames/api/gui/ClickGuiInterface.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java index 968e45a8..cb712901 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java @@ -39,7 +39,7 @@ public interface ClickGuiInterface /** * Returns the line count of this gui. - * @return line count; must be a value between 1 and (TODO) + * @return line count; must be a value between 1 and 6 */ int getLineCount(); From c843f352684e0210cf21214153549b40307b11fc Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 31 Aug 2016 18:57:13 +0200 Subject: [PATCH 120/266] v2 --- .../mce/minigames/api/MinigameInterface.java | 2 + .../minigames/api/arena/ArenaInterface.java | 5 + .../mce/minigames/api/arena/ArenaType.java | 7 +- .../api/arena/ArenaTypeBuilderInterface.java | 42 +- .../mce/minigames/api/arena/ArenaTypes.java | 7 +- .../api/event/AbstractVetoEvent.java | 64 + .../minigames/api/event/ArenaCreateEvent.java | 57 +- .../api/event/ArenaCreatedEvent.java | 54 +- .../minigames/api/event/ArenaDeleteEvent.java | 57 +- .../api/event/ArenaDeletedEvent.java | 53 +- .../api/event/ArenaMaintenanceEvent.java | 54 +- .../dev_advanced_variable_substitution.md | 55 +- .../site/markdown/dev_minigame_arena_types.md | 51 +- APIv2/src/site/markdown/dev_theory_arenas.md | 13 +- APIv2/src/site/markdown/dev_theory_match.md | 17 +- APIv2/src/site/markdown/dev_theory_rules.md | 19 +- .../impl/nms/AbstractEventSystem.java | 220 +++ .../impl/nms/v1_10_1/EventSystem1_10_1.java | 310 ++-- .../impl/nms/v1_8_1/EventSystem1_8_1.java | 276 ++-- .../impl/nms/v1_8_2/EventSystem1_8_2.java | 1245 +++++++-------- .../impl/nms/v1_8_3/EventSystem1_8_3.java | 1272 +++++++-------- .../impl/nms/v1_9_1/EventSystem1_9_1.java | 1359 ++++++++--------- .../impl/nms/v1_9_2/EventSystem1_9_2.java | 1359 ++++++++--------- .../impl/arena/ArenaTypeDeclarationImpl.java | 2 + .../impl/context/DefaultResolver.java | 10 +- 25 files changed, 3319 insertions(+), 3291 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index c520cb49..603f43a2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -31,6 +31,8 @@ public interface MinigameInterface extends ConfigInterface { + // TODO Add support for default main lobby + /** * Returns the technical name of the minigame. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index 2b9e957c..fae63f04 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -31,6 +31,11 @@ public interface ArenaInterface { + /** + * List of illegal arena names; names starting with on of these strings are disallowed. + */ + String[] ILLEGAL_NAMES = {"core", "join", "leave", "mg"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + // arena information /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java index bdc848eb..9d7d26b5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java @@ -31,11 +31,6 @@ public @interface ArenaType { - /** - * Unique name of the arena type. - * - * @return Unique name of the arena type. - */ - String name(); + // marker only } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java index 0f9b96ff..2e16b0eb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java @@ -15,6 +15,7 @@ package com.github.mce.minigames.api.arena; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; @@ -22,7 +23,7 @@ * A builder to create arena types. * * <p> - * Get an instance of this object via {@link MinigamePluginInterface#createArenaType(ArenaTypeInterface, boolean)}. + * Get an instance of this object via {@link MinigamePluginInterface#createArenaType(String, ArenaTypeInterface, boolean)}. * </p> * * @author mepeisen @@ -35,7 +36,44 @@ public interface ArenaTypeBuilderInterface * * @param set * the arena rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if the arena rule set was invalid. */ - void applyRulesets(ArenaRuleSet... set); + ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) throws MinigameException; + + /** + * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Returns the currently applied rule sets. + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<ArenaRuleSet> getRuleSets() throws MinigameException; + + /** + * Removes rule sets from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method + * silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the arena rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws MinigameException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java index 81c8c405..1ea929c2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java @@ -31,11 +31,6 @@ public @interface ArenaTypes { - /** - * Returns the minigame declaring the arena types. - * - * @return the minigame declaring the arena types. - */ - String minigame(); + // marker only } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java new file mode 100644 index 00000000..bf477fb3 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java @@ -0,0 +1,64 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.Event; + +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * An event that can be cancelled. + * + * @author mepeisen + */ +public abstract class AbstractVetoEvent extends Event +{ + + /** the veto flag. */ + private boolean cancelled; + + /** the veto reason. */ + private LocalizedMessageInterface vetoReason; + + /** + * Returns the veto reason + * @return the vetoReason + */ + public LocalizedMessageInterface getVetoReason() + { + return this.vetoReason; + } + + /** + * Checks if the event was cancelled. + * @return the veto flag + */ + public boolean isCancelled() + { + return this.cancelled; + } + + /** + * Sets the event cancelled. + * @param reason the reason text. + */ + public void setCancelled(LocalizedMessageInterface reason) + { + this.cancelled = true; + this.vetoReason = reason; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java index 19a23b9c..b24c805b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java @@ -15,28 +15,63 @@ package com.github.mce.minigames.api.event; -import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; + /** + * An event fired before a new arena is created. + * * @author mepeisen - * */ -public class ArenaCreateEvent extends Event +public class ArenaCreateEvent extends AbstractVetoEvent { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public ArenaCreateEvent() { - super(); - // TODO + + /** the arena we created. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param arena + * the created arena. + */ + public ArenaCreateEvent(ArenaInterface arena) + { + this.arena = arena; } - - public HandlerList getHandlers() { + + /** + * Returns the arena that will be created + * + * @return the created arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java index f8c8b00d..60648326 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java @@ -18,25 +18,61 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; + /** + * An event showing up that an arena was created. + * * @author mepeisen - * */ public class ArenaCreatedEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public ArenaCreatedEvent() { - super(); - // TODO + + /** the arena we created. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param arena + * the created arena. + */ + public ArenaCreatedEvent(ArenaInterface arena) + { + this.arena = arena; } - - public HandlerList getHandlers() { + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java index 83c54a1d..502246dd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java @@ -15,28 +15,63 @@ package com.github.mce.minigames.api.event; -import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; + /** + * An event fired before an existing arena is deleted. + * * @author mepeisen - * */ -public class ArenaDeleteEvent extends Event +public class ArenaDeleteEvent extends AbstractVetoEvent { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public ArenaDeleteEvent() { - super(); - // TODO + + /** the arena we deleted. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param arena + * the deleted arena. + */ + public ArenaDeleteEvent(ArenaInterface arena) + { + this.arena = arena; } - - public HandlerList getHandlers() { + + /** + * Returns the arena that will be deleted + * + * @return the deleted arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java index 82537180..a23e0112 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java @@ -18,25 +18,62 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; + /** + * An event showing up that an arena was deleted. + * * @author mepeisen * */ public class ArenaDeletedEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public ArenaDeletedEvent() { - super(); - // TODO + + /** the arena we deleted. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param arena + * the deleted arena. + */ + public ArenaDeletedEvent(ArenaInterface arena) + { + this.arena = arena; } - - public HandlerList getHandlers() { + + /** + * Returns the arena that was deleted + * + * @return the deleted arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java index 0e923311..2ee6e500 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java @@ -18,25 +18,61 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; + /** + * Arena is going in maintenance mode. + * * @author mepeisen - * */ public class ArenaMaintenanceEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public ArenaMaintenanceEvent() { - super(); - // TODO + + /** the arena is under maintenance. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param arena + * the arena. + */ + public ArenaMaintenanceEvent(ArenaInterface arena) + { + this.arena = arena; } - - public HandlerList getHandlers() { + + /** + * Returns the arena that is under maintenance + * + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/site/markdown/dev_advanced_variable_substitution.md b/APIv2/src/site/markdown/dev_advanced_variable_substitution.md index 0d2a3ab5..9ae86a57 100644 --- a/APIv2/src/site/markdown/dev_advanced_variable_substitution.md +++ b/APIv2/src/site/markdown/dev_advanced_variable_substitution.md @@ -2,4 +2,57 @@ ## Variable Substitution -TODO +The variable substitution is a way to replace content of a string at runtime. + +Per default the configuration variable paths and the permission paths are using variable substitution. + +For manually get a string with variable substitution simply call + + String resultString = MglibInterface.INSTANCE.get().resolveContextVar(sourceString); + +## Default string substitution + +### $PERM:MGLIB$ + +Resolves to value of CommonConfig.PermissionsPrefix + +### PERM:MGLIB:KITS$ + +Resolves to value of CommonConfig.PermissionKitsPrefix + +### $PERM:MGLIB:GUNS$ + +Resolves to value of CommonConfig.PermissionGunsPrefix + +### $PERM:MGLIB:SHOPS$ + +Resolves to value of CommonConfig.PermissionShopsPrefix + +### $PERM:MINIGAME$ + +Resolves to value of CommonConfig.PermissionGamesPrefix appended with current context minigame + +### $PERM:MINIGAME:name$ + +Resolves to value of CommonConfig.PermissionGamesPrefix appended with "name" text + +### $OPT:path$ + +Resolve to string option value of config.yml for the current context minigame + +### $OPT:name:path$ + +Resolve to string option value of config.yml for the minigame with given name + +### $CTX:type:name$ + +Resolves to a context variable of given type and by resolving getter with given name. + +If name contains dots it invokes deep getters. Some example + + $CTX:com.github.mce.minigames.api.player.ArenaPlayerInterface:bukkitPlayer.playerListName$ + +will resolve in the following call: + + getContext(ArenaPlayerInterface.class).getBukkitPlayer().getPlayerListName() + diff --git a/APIv2/src/site/markdown/dev_minigame_arena_types.md b/APIv2/src/site/markdown/dev_minigame_arena_types.md index e8025485..37aefba4 100644 --- a/APIv2/src/site/markdown/dev_minigame_arena_types.md +++ b/APIv2/src/site/markdown/dev_minigame_arena_types.md @@ -2,4 +2,53 @@ ## Arena types -TODO +Every arena type in minigames lib is declared within enumerations. + +## Declaring a configuration option + +To declare an arena type simply create an enumeration. + + /** + * My arena types. + * + * @author mepeisen + */ + @ArenaTypes + public enum MyArenaType implements ArenaTypeInterface + { + + /** + * Our default arena type. + */ + @ArenaType + Default, + + /** + * A team play mode. + */ + @ArenaType + Teams + + } + +While initializing your minigames plugin you are able to create the arena types: + + final MinigamePluginInterface minigame = MglibInterface.INSTANCE.get().register(new MyMinigame(this)); + + // register arena types + final ArenaTypeBuilderInterface defaultType = minigame.createArenaType("Default", MyArenaType.Default, true); + // TODO init default type + + final ArenaTypeBuilderInterface teamsType = minigame.createArenaType("Teams", MyArenaType.Teams, false); + // TODO init teams type + + minigame.init(); + +Hint: The strings "Default" and "Teams" must not be changed. They are written to arenas.yml. Changing it in a later plugin version will +cause existing arenas to be corrupt. They cannot be loaded any more. The strings are presented to administrators too while arena creation. + +## Configure the arena type + +### Inherit an existing arena type + + diff --git a/APIv2/src/site/markdown/dev_theory_arenas.md b/APIv2/src/site/markdown/dev_theory_arenas.md index 12d2d18c..e70126e9 100644 --- a/APIv2/src/site/markdown/dev_theory_arenas.md +++ b/APIv2/src/site/markdown/dev_theory_arenas.md @@ -8,9 +8,9 @@ And that is excatly what an arena is for Minigames-API. It is up to the administrator to build some nice building or similar things for the arena. For example he can create a colosseum. -The library will identify the arena by name. There are some arena names that are preserved. You will find them in the following class: +The library will identify the arena by name. There are some arena names that are preserved. You will find them in the following constant: - TODO + ArenaInterface.ILLEGAL_NAMES Beside this preserved names you can choose any name. The name must be unique per minigame. It is possible to use the same name (f.e. "default") for different game. However this is not recommended. The minigames lib won't be confused if the same name is used twiced across multiple minigames. @@ -18,10 +18,9 @@ However this is not recommended. The minigames lib won't be confused if the same ## The display name and some additional information Arenas have a display name. That's a human readable name used within messages or on signs. You may not want to let users see the technical name 'pvp1'. -Bu8t you may want to display the name 'Ice-Battlefield'. The display name is localized so you can even display a different name for different player -languages. +But you may want to display the name 'Ice-Battlefield'. The display name is not localized. -There is some additional data, such as authors and descriptions. You may fill them or simply let them empty. +There is some additional data, such as authors and descriptions. You may fill them or simply leave them empty. ## The arena state @@ -85,7 +84,7 @@ Originally there was only one waiting lobby per arena. It was meant to be a smal run away and where he can wait for other players to join. In v2 the join concept is different. It allows you to declare waiting queues and arena groups. The player may join a waiting queue even if a match -is being processed. The administrator may choose to port them into "lobby #1" to represent the waiting queue. And he may choose to port payers +is being processed. The administrator may choose to port them into "lobby #1" to represent the waiting queue. And he may choose to port players waiting for a new match to "lobby #2" right before the game starts. In v2 the game can have multiple waiting lobbies for different situations based on game rules. A game developer may decide that the match @@ -95,7 +94,7 @@ has multiple rounds. Between each round the user is taken into a new waiting lob The spawns are associated with players or teams. Nothing changed on this concept. -However v1 did not have support for team spawns or shared/ random spawns. In v2 it is up to a game rule to choose the correct spawn for players. +However v1 did not have direct support for team spawns or shared/ random spawns. In v2 it is up to a game rule to choose the correct spawn for players. The classic rule says "associate the spawn to a player during startup". ### Teams diff --git a/APIv2/src/site/markdown/dev_theory_match.md b/APIv2/src/site/markdown/dev_theory_match.md index 8eb931de..3f8514ba 100644 --- a/APIv2/src/site/markdown/dev_theory_match.md +++ b/APIv2/src/site/markdown/dev_theory_match.md @@ -7,4 +7,19 @@ A minigame match is a gaming session within an arena. There can only be one match in a single arena at the same time. The next match can only be started if the current one ends and the arena was reseted. A player can only be present in one arena match at the same time. He cannot be in multiple matches. -TODO +## Match phases + +A match can be made of several phases. Each phase contains own rule set. + +In classic minigames from version 1 we have the following "match phases" + +* Pre-Match: The players are ported to their spawns, no movement, match countdown... +* Match: the players are plaing... +* Post-Match: the players are back ported to the main lobby and the winning titles/ animations are played. + +In version 2 we can add more phases to a match. Let us for example think of a pvp game. We will divide the match phase: + +* Match: Normal PvP, the first one receiving 10 kills will win, a timer is running (4 minutes). +* Deatch-Math: If the timer ends (after 4 minutes) and no one wins a death-match is started. Now each kill lets you lose the game and the last man standing wins. + + diff --git a/APIv2/src/site/markdown/dev_theory_rules.md b/APIv2/src/site/markdown/dev_theory_rules.md index c0bb80c1..86c0a022 100644 --- a/APIv2/src/site/markdown/dev_theory_rules.md +++ b/APIv2/src/site/markdown/dev_theory_rules.md @@ -18,7 +18,8 @@ The predicates of a rule are typically executed in following order: * global/core predicate * arena related predicate (inherited from arena types) * arena state related predicate -* match state related predicate +* match related predicate +* match phase related predicate * player state related predicate * player related predicate @@ -38,23 +39,13 @@ Minigame predicates can return the following states: * TRUE (-> test the next predicate of this rule in order) * FALSE (-> abort the execution) -* CHAIN (-> invoke a special predicate chain) +* FORCE (-> skip all other predicates) -#### Predicate chains - -Predicate chains are a way to have more than one path within predicates and actions to be invoked. As soon as a predicate -returns to invoke a chain the execution will continue with this chain and not with the normal execution path. - -Another word for chains can be "sub rules". A rule may not only be something that can be tested for true and then an action -gets executed. Rules may be more complex. - -Some example: - -TODO +So it is important for us to have some ordering in minigame predicates. ### Type of fetched events -TODO +Rules can manage all relevant bukkit events and minigame events. ### Common predicates diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java new file mode 100644 index 00000000..d46d2d42 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java @@ -0,0 +1,220 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import java.util.HashMap; +import java.util.Map; + +import org.bukkit.event.Event; +import org.bukkit.event.EventHandler; + +import com.github.mce.minigames.api.event.ArenaCreateEvent; +import com.github.mce.minigames.api.event.ArenaCreatedEvent; +import com.github.mce.minigames.api.event.ArenaDeleteEvent; +import com.github.mce.minigames.api.event.ArenaDeletedEvent; +import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; +import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; +import com.github.mce.minigames.api.event.ArenaStateEvent; +import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; +import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; +import com.github.mce.minigames.api.event.PlayerGuiClickEvent; +import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; + +/** + * Abstract base class for event systems. + * + * @author mepeisen + */ +public class AbstractEventSystem implements EventSystemInterface +{ + + /** + * The common event handlers per event class. + */ + private final Map<Class<? extends Event>, MinigameEventHandler<?>> eventHandlers = new HashMap<>(); + + /** + * Returns the minigame event handler for given class. + * + * @param clazz + * event class. + * @return event handler. + */ + @SuppressWarnings("unchecked") + protected <T extends Event> MinigameEventHandler<T> getHandler(Class<T> clazz) + { + return (MinigameEventHandler<T>) this.eventHandlers.computeIfAbsent(clazz, (c) -> new MinigameEventHandler<>(clazz)); + } + + /** + * Event handler for ArenaCreatedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaCreated(ArenaCreatedEvent evt) + { + this.getHandler(ArenaCreatedEvent.class).handle(evt); + } + + /** + * Event handler for ArenaCreateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaCreate(ArenaCreateEvent evt) + { + this.getHandler(ArenaCreateEvent.class).handle(evt); + } + + /** + * Event handler for ArenaDeletedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaDeleted(ArenaDeletedEvent evt) + { + this.getHandler(ArenaDeletedEvent.class).handle(evt); + } + + /** + * Event handler for ArenaDeleteEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaDelete(ArenaDeleteEvent evt) + { + this.getHandler(ArenaDeleteEvent.class).handle(evt); + } + + /** + * Event handler for ArenaMaintenanceEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaMaintenance(ArenaMaintenanceEvent evt) + { + this.getHandler(ArenaMaintenanceEvent.class).handle(evt); + } + + /** + * Event handler for ArenaPlayerJoinedEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaPlayerJoined(ArenaPlayerJoinedEvent evt) + { + this.getHandler(ArenaPlayerJoinedEvent.class).handle(evt); + } + + /** + * Event handler for ArenaPlayerJoinedQueueEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaPlayerJoinedQueue(ArenaPlayerJoinedQueueEvent evt) + { + this.getHandler(ArenaPlayerJoinedQueueEvent.class).handle(evt); + } + + /** + * Event handler for ArenaPlayerLeavesQueueEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaPlayerLeavesQueue(ArenaPlayerLeavesQueueEvent evt) + { + this.getHandler(ArenaPlayerLeavesQueueEvent.class).handle(evt); + } + + /** + * Event handler for ArenaStateEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onArenaState(ArenaStateEvent evt) + { + this.getHandler(ArenaStateEvent.class).handle(evt); + } + + /** + * Event handler for PlayerCloseGuiEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerCloseGui(PlayerCloseGuiEvent evt) + { + this.getHandler(PlayerCloseGuiEvent.class).handle(evt); + } + + /** + * Event handler for PlayerDisplayGuiPageEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerDisplayGuiPage(PlayerDisplayGuiPageEvent evt) + { + this.getHandler(PlayerDisplayGuiPageEvent.class).handle(evt); + } + + /** + * Event handler for PlayerGuiClickEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerClickGui(PlayerGuiClickEvent evt) + { + this.getHandler(PlayerGuiClickEvent.class).handle(evt); + } + + /** + * Event handler for PlayerOpenGuiEvent event. + * @param evt the event to be passed. + */ + @EventHandler + public void onPlayerOpenGui(PlayerOpenGuiEvent evt) + { + this.getHandler(PlayerOpenGuiEvent.class).handle(evt); + } + + /** + * The minigame event handler. + * + * @author mepeisen + * @param <T> + * event clazz for handling the events. + */ + protected final class MinigameEventHandler<T extends Event> + { + + public MinigameEventHandler(Class<T> clazz) + { + // TODO + } + + /** + * @param evt + */ + public void handle(T evt) + { + // TODO Auto-generated method stub + + } + + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java index 33c654fb..abbaec15 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java @@ -170,14 +170,14 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; /** * The event system implementation. * * @author mepeisen */ -public class EventSystem1_10_1 implements EventSystemInterface +public class EventSystem1_10_1 extends AbstractEventSystem { /** @@ -187,7 +187,7 @@ public class EventSystem1_10_1 implements EventSystemInterface @EventHandler public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) { - // TODO + this.getHandler(AreaEffectCloudApplyEvent.class).handle(evt); } /** @@ -197,7 +197,7 @@ public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { - // TODO + this.getHandler(AsyncPlayerChatEvent.class).handle(evt); } @@ -208,7 +208,7 @@ public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { - // TODO + this.getHandler(BlockBreakEvent.class).handle(evt); } @@ -219,7 +219,7 @@ public void onBlockBreakEvent(BlockBreakEvent evt) @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { - // TODO + this.getHandler(BlockBurnEvent.class).handle(evt); } @@ -230,7 +230,7 @@ public void onBlockBurnEvent(BlockBurnEvent evt) @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { - // TODO + this.getHandler(BlockCanBuildEvent.class).handle(evt); } @@ -241,7 +241,7 @@ public void onBlockCanBuildEvent(BlockCanBuildEvent evt) @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { - // TODO + this.getHandler(BlockDamageEvent.class).handle(evt); } @@ -252,7 +252,7 @@ public void onBlockDamageEvent(BlockDamageEvent evt) @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { - // TODO + this.getHandler(BlockDispenseEvent.class).handle(evt); } @@ -263,7 +263,7 @@ public void onBlockDispenseEvent(BlockDispenseEvent evt) @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { - // TODO + this.getHandler(BlockExpEvent.class).handle(evt); } @@ -274,7 +274,7 @@ public void onBlockExpEvent(BlockExpEvent evt) @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { - // TODO + this.getHandler(BlockExplodeEvent.class).handle(evt); } @@ -285,7 +285,7 @@ public void onBlockExplodeEvent(BlockExplodeEvent evt) @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { - // TODO + this.getHandler(BlockFadeEvent.class).handle(evt); } @@ -296,7 +296,7 @@ public void onBlockFadeEvent(BlockFadeEvent evt) @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { - // TODO + this.getHandler(BlockFormEvent.class).handle(evt); } @@ -307,7 +307,7 @@ public void onBlockFormEvent(BlockFormEvent evt) @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { - // TODO + this.getHandler(BlockFromToEvent.class).handle(evt); } @@ -318,7 +318,7 @@ public void onBlockFromToEvent(BlockFromToEvent evt) @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { - // TODO + this.getHandler(BlockGrowEvent.class).handle(evt); } @@ -329,7 +329,7 @@ public void onBlockGrowEvent(BlockGrowEvent evt) @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { - // TODO + this.getHandler(BlockIgniteEvent.class).handle(evt); } @@ -340,7 +340,7 @@ public void onBlockIgniteEvent(BlockIgniteEvent evt) @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { - // TODO + this.getHandler(BlockMultiPlaceEvent.class).handle(evt); } @@ -351,7 +351,7 @@ public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { - // TODO + this.getHandler(BlockPhysicsEvent.class).handle(evt); } @@ -362,7 +362,7 @@ public void onBlockPhysicsEvent(BlockPhysicsEvent evt) @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { - // TODO + this.getHandler(BlockPistonExtendEvent.class).handle(evt); } @@ -373,7 +373,7 @@ public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { - // TODO + this.getHandler(BlockPistonRetractEvent.class).handle(evt); } @@ -384,7 +384,7 @@ public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { - // TODO + this.getHandler(BlockPlaceEvent.class).handle(evt); } @@ -395,7 +395,7 @@ public void onBlockPlaceEvent(BlockPlaceEvent evt) @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { - // TODO + this.getHandler(BlockRedstoneEvent.class).handle(evt); } @@ -406,7 +406,7 @@ public void onBlockRedstoneEvent(BlockRedstoneEvent evt) @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { - // TODO + this.getHandler(BlockSpreadEvent.class).handle(evt); } @@ -417,7 +417,7 @@ public void onBlockSpreadEvent(BlockSpreadEvent evt) @EventHandler public void onBrewEvent(BrewEvent evt) { - // TODO + this.getHandler(BrewEvent.class).handle(evt); } @@ -428,7 +428,7 @@ public void onBrewEvent(BrewEvent evt) @EventHandler public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) { - // TODO + this.getHandler(CauldronLevelChangeEvent.class).handle(evt); } @@ -439,7 +439,7 @@ public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { - // TODO + this.getHandler(CraftItemEvent.class).handle(evt); } @@ -450,7 +450,7 @@ public void onCraftItemEvent(CraftItemEvent evt) @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { - // TODO + this.getHandler(CreatureSpawnEvent.class).handle(evt); } @@ -461,7 +461,7 @@ public void onCreatureSpawnEvent(CreatureSpawnEvent evt) @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { - // TODO + this.getHandler(CreeperPowerEvent.class).handle(evt); } @@ -472,7 +472,7 @@ public void onCreeperPowerEvent(CreeperPowerEvent evt) @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { - // TODO + this.getHandler(EnchantItemEvent.class).handle(evt); } @@ -483,7 +483,7 @@ public void onEnchantItemEvent(EnchantItemEvent evt) @EventHandler public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) { - // TODO + this.getHandler(EnderDragonChangePhaseEvent.class).handle(evt); } @@ -494,7 +494,7 @@ public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { - // TODO + this.getHandler(EntityBlockFormEvent.class).handle(evt); } @@ -505,7 +505,7 @@ public void onEntityBlockFormEvent(EntityBlockFormEvent evt) @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { - // TODO + this.getHandler(EntityBreakDoorEvent.class).handle(evt); } @@ -516,7 +516,7 @@ public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) @EventHandler public void onEntityBreedEvent(EntityBreedEvent evt) { - // TODO + this.getHandler(EntityBreedEvent.class).handle(evt); } @@ -527,7 +527,7 @@ public void onEntityBreedEvent(EntityBreedEvent evt) @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { - // TODO + this.getHandler(EntityChangeBlockEvent.class).handle(evt); } @@ -538,7 +538,7 @@ public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { - // TODO + this.getHandler(EntityCombustByBlockEvent.class).handle(evt); } @@ -549,7 +549,7 @@ public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { - // TODO + this.getHandler(EntityCombustByEntityEvent.class).handle(evt); } @@ -560,7 +560,7 @@ public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { - // TODO + this.getHandler(EntityCombustEvent.class).handle(evt); } @@ -571,7 +571,7 @@ public void onEntityCombustEvent(EntityCombustEvent evt) @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { - // TODO + this.getHandler(EntityCreatePortalEvent.class).handle(evt); } @@ -582,7 +582,7 @@ public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { - // TODO + this.getHandler(EntityDamageByBlockEvent.class).handle(evt); } @@ -593,7 +593,7 @@ public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { - // TODO + this.getHandler(EntityDamageByEntityEvent.class).handle(evt); } @@ -604,7 +604,7 @@ public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { - // TODO + this.getHandler(EntityDamageEvent.class).handle(evt); } @@ -615,7 +615,7 @@ public void onEntityDamageEvent(EntityDamageEvent evt) @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { - // TODO + this.getHandler(EntityDeathEvent.class).handle(evt); } @@ -626,7 +626,7 @@ public void onEntityDeathEvent(EntityDeathEvent evt) @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { - // TODO + this.getHandler(EntityExplodeEvent.class).handle(evt); } @@ -637,7 +637,7 @@ public void onEntityExplodeEvent(EntityExplodeEvent evt) @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { - // TODO + this.getHandler(EntityInteractEvent.class).handle(evt); } @@ -648,7 +648,7 @@ public void onEntityInteractEvent(EntityInteractEvent evt) @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { - // TODO + this.getHandler(EntityPortalEnterEvent.class).handle(evt); } @@ -659,7 +659,7 @@ public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { - // TODO + this.getHandler(EntityPortalEvent.class).handle(evt); } @@ -670,7 +670,7 @@ public void onEntityPortalEvent(EntityPortalEvent evt) @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { - // TODO + this.getHandler(EntityPortalExitEvent.class).handle(evt); } @@ -681,7 +681,7 @@ public void onEntityPortalExitEvent(EntityPortalExitEvent evt) @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { - // TODO + this.getHandler(EntityRegainHealthEvent.class).handle(evt); } @@ -692,7 +692,7 @@ public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { - // TODO + this.getHandler(EntityShootBowEvent.class).handle(evt); } @@ -703,7 +703,7 @@ public void onEntityShootBowEvent(EntityShootBowEvent evt) @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { - // TODO + this.getHandler(EntitySpawnEvent.class).handle(evt); } @@ -714,7 +714,7 @@ public void onEntitySpawnEvent(EntitySpawnEvent evt) @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { - // TODO + this.getHandler(EntityTameEvent.class).handle(evt); } @@ -725,7 +725,7 @@ public void onEntityTameEvent(EntityTameEvent evt) @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { - // TODO + this.getHandler(EntityTargetEvent.class).handle(evt); } @@ -736,7 +736,7 @@ public void onEntityTargetEvent(EntityTargetEvent evt) @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { - // TODO + this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); } @@ -747,7 +747,7 @@ public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { - // TODO + this.getHandler(EntityTeleportEvent.class).handle(evt); } @@ -758,7 +758,7 @@ public void onEntityTeleportEvent(EntityTeleportEvent evt) @EventHandler public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) { - // TODO + this.getHandler(EntityToggleGlideEvent.class).handle(evt); } @@ -769,7 +769,7 @@ public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { - // TODO + this.getHandler(EntityUnleashEvent.class).handle(evt); } @@ -780,7 +780,7 @@ public void onEntityUnleashEvent(EntityUnleashEvent evt) @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { - // TODO + this.getHandler(ExpBottleEvent.class).handle(evt); } @@ -791,7 +791,7 @@ public void onExpBottleEvent(ExpBottleEvent evt) @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { - // TODO + this.getHandler(ExplosionPrimeEvent.class).handle(evt); } @@ -802,7 +802,7 @@ public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { - // TODO + this.getHandler(FireworkExplodeEvent.class).handle(evt); } @@ -813,7 +813,7 @@ public void onFireworkExplodeEvent(FireworkExplodeEvent evt) @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { - // TODO + this.getHandler(FoodLevelChangeEvent.class).handle(evt); } @@ -824,7 +824,7 @@ public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { - // TODO + this.getHandler(FurnaceBurnEvent.class).handle(evt); } @@ -835,7 +835,7 @@ public void onFurnaceBurnEvent(FurnaceBurnEvent evt) @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { - // TODO + this.getHandler(FurnaceSmeltEvent.class).handle(evt); } @@ -846,7 +846,7 @@ public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { - // TODO + this.getHandler(HangingBreakByEntityEvent.class).handle(evt); } @@ -857,7 +857,7 @@ public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { - // TODO + this.getHandler(HangingBreakEvent.class).handle(evt); } @@ -868,7 +868,7 @@ public void onHangingBreakEvent(HangingBreakEvent evt) @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { - // TODO + this.getHandler(HangingPlaceEvent.class).handle(evt); } @@ -879,7 +879,7 @@ public void onHangingPlaceEvent(HangingPlaceEvent evt) @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { - // TODO + this.getHandler(HorseJumpEvent.class).handle(evt); } @@ -890,7 +890,7 @@ public void onHorseJumpEvent(HorseJumpEvent evt) @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { - // TODO + this.getHandler(InventoryClickEvent.class).handle(evt); } @@ -901,7 +901,7 @@ public void onInventoryClickEvent(InventoryClickEvent evt) @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { - // TODO + this.getHandler(InventoryCloseEvent.class).handle(evt); } @@ -912,7 +912,7 @@ public void onInventoryCloseEvent(InventoryCloseEvent evt) @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { - // TODO + this.getHandler(InventoryCreativeEvent.class).handle(evt); } @@ -923,7 +923,7 @@ public void onInventoryCreativeEvent(InventoryCreativeEvent evt) @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { - // TODO + this.getHandler(InventoryDragEvent.class).handle(evt); } @@ -934,7 +934,7 @@ public void onInventoryDragEvent(InventoryDragEvent evt) @EventHandler public void onInventoryEvent(InventoryEvent evt) { - // TODO + this.getHandler(InventoryEvent.class).handle(evt); } @@ -945,7 +945,7 @@ public void onInventoryEvent(InventoryEvent evt) @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { - // TODO + this.getHandler(InventoryInteractEvent.class).handle(evt); } @@ -956,7 +956,7 @@ public void onInventoryInteractEvent(InventoryInteractEvent evt) @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { - // TODO + this.getHandler(InventoryMoveItemEvent.class).handle(evt); } @@ -967,7 +967,7 @@ public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { - // TODO + this.getHandler(InventoryOpenEvent.class).handle(evt); } @@ -978,7 +978,7 @@ public void onInventoryOpenEvent(InventoryOpenEvent evt) @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { - // TODO + this.getHandler(InventoryPickupItemEvent.class).handle(evt); } @@ -989,7 +989,7 @@ public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { - // TODO + this.getHandler(ItemDespawnEvent.class).handle(evt); } @@ -1000,7 +1000,7 @@ public void onItemDespawnEvent(ItemDespawnEvent evt) @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { - // TODO + this.getHandler(ItemMergeEvent.class).handle(evt); } @@ -1011,7 +1011,7 @@ public void onItemMergeEvent(ItemMergeEvent evt) @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { - // TODO + this.getHandler(ItemSpawnEvent.class).handle(evt); } @@ -1022,7 +1022,7 @@ public void onItemSpawnEvent(ItemSpawnEvent evt) @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { - // TODO + this.getHandler(LeavesDecayEvent.class).handle(evt); } @@ -1033,7 +1033,7 @@ public void onLeavesDecayEvent(LeavesDecayEvent evt) @EventHandler public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) { - // TODO + this.getHandler(LingeringPotionSplashEvent.class).handle(evt); } @@ -1044,7 +1044,7 @@ public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { - // TODO + this.getHandler(NotePlayEvent.class).handle(evt); } @@ -1055,7 +1055,7 @@ public void onNotePlayEvent(NotePlayEvent evt) @EventHandler public void onPigZapEvent(PigZapEvent evt) { - // TODO + this.getHandler(PigZapEvent.class).handle(evt); } @@ -1066,7 +1066,7 @@ public void onPigZapEvent(PigZapEvent evt) @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { - // TODO + this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); } @@ -1077,7 +1077,7 @@ public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { - // TODO + this.getHandler(PlayerAnimationEvent.class).handle(evt); } @@ -1088,7 +1088,7 @@ public void onPlayerAnimationEvent(PlayerAnimationEvent evt) @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { - // TODO + this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); } @@ -1099,7 +1099,7 @@ public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent ev @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { - // TODO + this.getHandler(PlayerBedEnterEvent.class).handle(evt); } @@ -1110,7 +1110,7 @@ public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { - // TODO + this.getHandler(PlayerBedLeaveEvent.class).handle(evt); } @@ -1121,7 +1121,7 @@ public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { - // TODO + this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); } @@ -1132,7 +1132,7 @@ public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { - // TODO + this.getHandler(PlayerBucketFillEvent.class).handle(evt); } @@ -1143,7 +1143,7 @@ public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) @EventHandler public void onPlayerChangedMainHandEvent(PlayerChangedMainHandEvent evt) { - // TODO + this.getHandler(PlayerChangedMainHandEvent.class).handle(evt); } @@ -1154,7 +1154,7 @@ public void onPlayerChangedMainHandEvent(PlayerChangedMainHandEvent evt) @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { - // TODO + this.getHandler(PlayerChangedWorldEvent.class).handle(evt); } @@ -1165,7 +1165,7 @@ public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { - // TODO + this.getHandler(PlayerChannelEvent.class).handle(evt); } @@ -1176,7 +1176,7 @@ public void onPlayerChannelEvent(PlayerChannelEvent evt) @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { - // TODO + this.getHandler(PlayerChatEvent.class).handle(evt); } @@ -1187,7 +1187,7 @@ public void onPlayerChatEvent(PlayerChatEvent evt) @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { - // TODO + this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); } @@ -1198,7 +1198,7 @@ public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { - // TODO + this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); } @@ -1209,7 +1209,7 @@ public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { - // TODO + this.getHandler(PlayerDeathEvent.class).handle(evt); } @@ -1220,7 +1220,7 @@ public void onPlayerDeathEvent(PlayerDeathEvent evt) @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { - // TODO + this.getHandler(PlayerDropItemEvent.class).handle(evt); } @@ -1231,7 +1231,7 @@ public void onPlayerDropItemEvent(PlayerDropItemEvent evt) @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { - // TODO + this.getHandler(PlayerEditBookEvent.class).handle(evt); } @@ -1242,7 +1242,7 @@ public void onPlayerEditBookEvent(PlayerEditBookEvent evt) @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { - // TODO + this.getHandler(PlayerEggThrowEvent.class).handle(evt); } @@ -1253,7 +1253,7 @@ public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { - // TODO + this.getHandler(PlayerExpChangeEvent.class).handle(evt); } @@ -1264,7 +1264,7 @@ public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { - // TODO + this.getHandler(PlayerFishEvent.class).handle(evt); } @@ -1275,7 +1275,7 @@ public void onPlayerFishEvent(PlayerFishEvent evt) @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { - // TODO + this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); } @@ -1286,7 +1286,7 @@ public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); } @@ -1297,7 +1297,7 @@ public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractEntityEvent.class).handle(evt); } @@ -1308,7 +1308,7 @@ public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { - // TODO + this.getHandler(PlayerInteractEvent.class).handle(evt); } @@ -1319,7 +1319,7 @@ public void onPlayerInteractEvent(PlayerInteractEvent evt) @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { - // TODO + this.getHandler(PlayerInventoryEvent.class).handle(evt); } @@ -1330,7 +1330,7 @@ public void onPlayerInventoryEvent(PlayerInventoryEvent evt) @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { - // TODO + this.getHandler(PlayerItemBreakEvent.class).handle(evt); } @@ -1341,7 +1341,7 @@ public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { - // TODO + this.getHandler(PlayerItemConsumeEvent.class).handle(evt); } @@ -1352,7 +1352,7 @@ public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { - // TODO + this.getHandler(PlayerItemDamageEvent.class).handle(evt); } @@ -1363,7 +1363,7 @@ public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { - // TODO + this.getHandler(PlayerItemHeldEvent.class).handle(evt); } @@ -1374,7 +1374,7 @@ public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { - // TODO + this.getHandler(PlayerJoinEvent.class).handle(evt); } @@ -1385,7 +1385,7 @@ public void onPlayerJoinEvent(PlayerJoinEvent evt) @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { - // TODO + this.getHandler(PlayerKickEvent.class).handle(evt); } @@ -1396,7 +1396,7 @@ public void onPlayerKickEvent(PlayerKickEvent evt) @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { - // TODO + this.getHandler(PlayerLeashEntityEvent.class).handle(evt); } @@ -1407,7 +1407,7 @@ public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { - // TODO + this.getHandler(PlayerLevelChangeEvent.class).handle(evt); } @@ -1418,7 +1418,7 @@ public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { - // TODO + this.getHandler(PlayerLoginEvent.class).handle(evt); } @@ -1429,7 +1429,7 @@ public void onPlayerLoginEvent(PlayerLoginEvent evt) @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { - // TODO + this.getHandler(PlayerMoveEvent.class).handle(evt); } @@ -1440,7 +1440,7 @@ public void onPlayerMoveEvent(PlayerMoveEvent evt) @EventHandler public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) { - // TODO + this.getHandler(PlayerPickupArrowEvent.class).handle(evt); } @@ -1451,7 +1451,7 @@ public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { - // TODO + this.getHandler(PlayerPickupItemEvent.class).handle(evt); } @@ -1462,7 +1462,7 @@ public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { - // TODO + this.getHandler(PlayerPortalEvent.class).handle(evt); } @@ -1473,7 +1473,7 @@ public void onPlayerPortalEvent(PlayerPortalEvent evt) @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { - // TODO + this.getHandler(PlayerQuitEvent.class).handle(evt); } @@ -1484,7 +1484,7 @@ public void onPlayerQuitEvent(PlayerQuitEvent evt) @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { - // TODO + this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); } @@ -1495,7 +1495,7 @@ public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { - // TODO + this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); } @@ -1506,7 +1506,7 @@ public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { - // TODO + this.getHandler(PlayerRespawnEvent.class).handle(evt); } @@ -1517,7 +1517,7 @@ public void onPlayerRespawnEvent(PlayerRespawnEvent evt) @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { - // TODO + this.getHandler(PlayerShearEntityEvent.class).handle(evt); } @@ -1528,7 +1528,7 @@ public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { - // TODO + this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); } @@ -1539,7 +1539,7 @@ public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { - // TODO + this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); } @@ -1550,7 +1550,7 @@ public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) @EventHandler public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) { - // TODO + this.getHandler(PlayerSwapHandItemsEvent.class).handle(evt); } @@ -1561,7 +1561,7 @@ public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { - // TODO + this.getHandler(PlayerTeleportEvent.class).handle(evt); } @@ -1572,7 +1572,7 @@ public void onPlayerTeleportEvent(PlayerTeleportEvent evt) @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { - // TODO + this.getHandler(PlayerToggleFlightEvent.class).handle(evt); } @@ -1583,7 +1583,7 @@ public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { - // TODO + this.getHandler(PlayerToggleSneakEvent.class).handle(evt); } @@ -1594,7 +1594,7 @@ public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { - // TODO + this.getHandler(PlayerToggleSprintEvent.class).handle(evt); } @@ -1605,7 +1605,7 @@ public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { - // TODO + this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); } @@ -1616,7 +1616,7 @@ public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { - // TODO + this.getHandler(PlayerVelocityEvent.class).handle(evt); } @@ -1627,7 +1627,7 @@ public void onPlayerVelocityEvent(PlayerVelocityEvent evt) @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { - // TODO + this.getHandler(PotionSplashEvent.class).handle(evt); } @@ -1638,7 +1638,7 @@ public void onPotionSplashEvent(PotionSplashEvent evt) @EventHandler public void onPrepareAnvilEvent(PrepareAnvilEvent evt) { - // TODO + this.getHandler(PrepareAnvilEvent.class).handle(evt); } @@ -1649,7 +1649,7 @@ public void onPrepareAnvilEvent(PrepareAnvilEvent evt) @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { - // TODO + this.getHandler(PrepareItemCraftEvent.class).handle(evt); } @@ -1660,7 +1660,7 @@ public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { - // TODO + this.getHandler(PrepareItemEnchantEvent.class).handle(evt); } @@ -1671,7 +1671,7 @@ public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { - // TODO + this.getHandler(ProjectileHitEvent.class).handle(evt); } @@ -1682,7 +1682,7 @@ public void onProjectileHitEvent(ProjectileHitEvent evt) @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { - // TODO + this.getHandler(ProjectileLaunchEvent.class).handle(evt); } @@ -1693,7 +1693,7 @@ public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { - // TODO + this.getHandler(SheepDyeWoolEvent.class).handle(evt); } @@ -1704,7 +1704,7 @@ public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { - // TODO + this.getHandler(SheepRegrowWoolEvent.class).handle(evt); } @@ -1715,7 +1715,7 @@ public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { - // TODO + this.getHandler(SignChangeEvent.class).handle(evt); } @@ -1726,7 +1726,7 @@ public void onSignChangeEvent(SignChangeEvent evt) @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { - // TODO + this.getHandler(SlimeSplitEvent.class).handle(evt); } @@ -1737,7 +1737,7 @@ public void onSlimeSplitEvent(SlimeSplitEvent evt) @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { - // TODO + this.getHandler(SpawnerSpawnEvent.class).handle(evt); } @@ -1748,7 +1748,7 @@ public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { - // TODO + this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); } @@ -1759,7 +1759,7 @@ public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { - // TODO + this.getHandler(VehicleCreateEvent.class).handle(evt); } @@ -1770,7 +1770,7 @@ public void onVehicleCreateEvent(VehicleCreateEvent evt) @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { - // TODO + this.getHandler(VehicleDamageEvent.class).handle(evt); } @@ -1781,7 +1781,7 @@ public void onVehicleDamageEvent(VehicleDamageEvent evt) @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { - // TODO + this.getHandler(VehicleDestroyEvent.class).handle(evt); } @@ -1792,7 +1792,7 @@ public void onVehicleDestroyEvent(VehicleDestroyEvent evt) @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { - // TODO + this.getHandler(VehicleEnterEvent.class).handle(evt); } @@ -1803,7 +1803,7 @@ public void onVehicleEnterEvent(VehicleEnterEvent evt) @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { - // TODO + this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); } @@ -1814,7 +1814,7 @@ public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { - // TODO + this.getHandler(VehicleExitEvent.class).handle(evt); } @@ -1825,7 +1825,7 @@ public void onVehicleExitEvent(VehicleExitEvent evt) @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { - // TODO + this.getHandler(VehicleMoveEvent.class).handle(evt); } @@ -1836,7 +1836,7 @@ public void onVehicleMoveEvent(VehicleMoveEvent evt) @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { - // TODO + this.getHandler(VehicleUpdateEvent.class).handle(evt); } @@ -1847,7 +1847,7 @@ public void onVehicleUpdateEvent(VehicleUpdateEvent evt) @EventHandler public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) { - // TODO + this.getHandler(VillagerAcquireTradeEvent.class).handle(evt); } @@ -1858,7 +1858,7 @@ public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) @EventHandler public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) { - // TODO + this.getHandler(VillagerReplenishTradeEvent.class).handle(evt); } } diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java index f6c1863c..18e799cf 100644 --- a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java +++ b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java @@ -153,14 +153,14 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; /** * The event system implementation. * * @author mepeisen */ -public class EventSystem1_8_1 implements EventSystemInterface +public class EventSystem1_8_1 extends AbstractEventSystem { /** @@ -170,7 +170,7 @@ public class EventSystem1_8_1 implements EventSystemInterface @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { - // TODO + this.getHandler(AsyncPlayerChatEvent.class).handle(evt); } @@ -181,7 +181,7 @@ public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { - // TODO + this.getHandler(BlockBreakEvent.class).handle(evt); } @@ -192,7 +192,7 @@ public void onBlockBreakEvent(BlockBreakEvent evt) @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { - // TODO + this.getHandler(BlockBurnEvent.class).handle(evt); } @@ -203,7 +203,7 @@ public void onBlockBurnEvent(BlockBurnEvent evt) @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { - // TODO + this.getHandler(BlockCanBuildEvent.class).handle(evt); } @@ -214,7 +214,7 @@ public void onBlockCanBuildEvent(BlockCanBuildEvent evt) @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { - // TODO + this.getHandler(BlockDamageEvent.class).handle(evt); } @@ -225,7 +225,7 @@ public void onBlockDamageEvent(BlockDamageEvent evt) @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { - // TODO + this.getHandler(BlockDispenseEvent.class).handle(evt); } @@ -236,7 +236,7 @@ public void onBlockDispenseEvent(BlockDispenseEvent evt) @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { - // TODO + this.getHandler(BlockExpEvent.class).handle(evt); } @@ -247,7 +247,7 @@ public void onBlockExpEvent(BlockExpEvent evt) @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { - // TODO + this.getHandler(BlockFadeEvent.class).handle(evt); } @@ -258,7 +258,7 @@ public void onBlockFadeEvent(BlockFadeEvent evt) @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { - // TODO + this.getHandler(BlockFormEvent.class).handle(evt); } @@ -269,7 +269,7 @@ public void onBlockFormEvent(BlockFormEvent evt) @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { - // TODO + this.getHandler(BlockFromToEvent.class).handle(evt); } @@ -280,7 +280,7 @@ public void onBlockFromToEvent(BlockFromToEvent evt) @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { - // TODO + this.getHandler(BlockGrowEvent.class).handle(evt); } @@ -291,7 +291,7 @@ public void onBlockGrowEvent(BlockGrowEvent evt) @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { - // TODO + this.getHandler(BlockIgniteEvent.class).handle(evt); } @@ -302,7 +302,7 @@ public void onBlockIgniteEvent(BlockIgniteEvent evt) @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { - // TODO + this.getHandler(BlockMultiPlaceEvent.class).handle(evt); } @@ -313,7 +313,7 @@ public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { - // TODO + this.getHandler(BlockPhysicsEvent.class).handle(evt); } @@ -324,7 +324,7 @@ public void onBlockPhysicsEvent(BlockPhysicsEvent evt) @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { - // TODO + this.getHandler(BlockPistonExtendEvent.class).handle(evt); } @@ -335,7 +335,7 @@ public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { - // TODO + this.getHandler(BlockPistonRetractEvent.class).handle(evt); } @@ -346,7 +346,7 @@ public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { - // TODO + this.getHandler(BlockPlaceEvent.class).handle(evt); } @@ -357,7 +357,7 @@ public void onBlockPlaceEvent(BlockPlaceEvent evt) @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { - // TODO + this.getHandler(BlockRedstoneEvent.class).handle(evt); } @@ -368,7 +368,7 @@ public void onBlockRedstoneEvent(BlockRedstoneEvent evt) @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { - // TODO + this.getHandler(BlockSpreadEvent.class).handle(evt); } @@ -379,7 +379,7 @@ public void onBlockSpreadEvent(BlockSpreadEvent evt) @EventHandler public void onBrewEvent(BrewEvent evt) { - // TODO + this.getHandler(BrewEvent.class).handle(evt); } @@ -390,7 +390,7 @@ public void onBrewEvent(BrewEvent evt) @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { - // TODO + this.getHandler(CraftItemEvent.class).handle(evt); } @@ -401,7 +401,7 @@ public void onCraftItemEvent(CraftItemEvent evt) @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { - // TODO + this.getHandler(CreatureSpawnEvent.class).handle(evt); } @@ -412,7 +412,7 @@ public void onCreatureSpawnEvent(CreatureSpawnEvent evt) @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { - // TODO + this.getHandler(CreeperPowerEvent.class).handle(evt); } @@ -423,7 +423,7 @@ public void onCreeperPowerEvent(CreeperPowerEvent evt) @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { - // TODO + this.getHandler(EnchantItemEvent.class).handle(evt); } @@ -434,7 +434,7 @@ public void onEnchantItemEvent(EnchantItemEvent evt) @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { - // TODO + this.getHandler(EntityBlockFormEvent.class).handle(evt); } @@ -445,7 +445,7 @@ public void onEntityBlockFormEvent(EntityBlockFormEvent evt) @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { - // TODO + this.getHandler(EntityBreakDoorEvent.class).handle(evt); } @@ -456,7 +456,7 @@ public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { - // TODO + this.getHandler(EntityChangeBlockEvent.class).handle(evt); } @@ -467,7 +467,7 @@ public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { - // TODO + this.getHandler(EntityCombustByBlockEvent.class).handle(evt); } @@ -478,7 +478,7 @@ public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { - // TODO + this.getHandler(EntityCombustByEntityEvent.class).handle(evt); } @@ -489,7 +489,7 @@ public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { - // TODO + this.getHandler(EntityCombustEvent.class).handle(evt); } @@ -500,7 +500,7 @@ public void onEntityCombustEvent(EntityCombustEvent evt) @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { - // TODO + this.getHandler(EntityCreatePortalEvent.class).handle(evt); } @@ -511,7 +511,7 @@ public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { - // TODO + this.getHandler(EntityDamageByBlockEvent.class).handle(evt); } @@ -522,7 +522,7 @@ public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { - // TODO + this.getHandler(EntityDamageByEntityEvent.class).handle(evt); } @@ -533,7 +533,7 @@ public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { - // TODO + this.getHandler(EntityDamageEvent.class).handle(evt); } @@ -544,7 +544,7 @@ public void onEntityDamageEvent(EntityDamageEvent evt) @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { - // TODO + this.getHandler(EntityDeathEvent.class).handle(evt); } @@ -555,7 +555,7 @@ public void onEntityDeathEvent(EntityDeathEvent evt) @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { - // TODO + this.getHandler(EntityExplodeEvent.class).handle(evt); } @@ -566,7 +566,7 @@ public void onEntityExplodeEvent(EntityExplodeEvent evt) @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { - // TODO + this.getHandler(EntityInteractEvent.class).handle(evt); } @@ -577,7 +577,7 @@ public void onEntityInteractEvent(EntityInteractEvent evt) @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { - // TODO + this.getHandler(EntityPortalEnterEvent.class).handle(evt); } @@ -588,7 +588,7 @@ public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { - // TODO + this.getHandler(EntityPortalEvent.class).handle(evt); } @@ -599,7 +599,7 @@ public void onEntityPortalEvent(EntityPortalEvent evt) @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { - // TODO + this.getHandler(EntityPortalExitEvent.class).handle(evt); } @@ -610,7 +610,7 @@ public void onEntityPortalExitEvent(EntityPortalExitEvent evt) @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { - // TODO + this.getHandler(EntityRegainHealthEvent.class).handle(evt); } @@ -621,7 +621,7 @@ public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { - // TODO + this.getHandler(EntityShootBowEvent.class).handle(evt); } @@ -632,7 +632,7 @@ public void onEntityShootBowEvent(EntityShootBowEvent evt) @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { - // TODO + this.getHandler(EntitySpawnEvent.class).handle(evt); } @@ -643,7 +643,7 @@ public void onEntitySpawnEvent(EntitySpawnEvent evt) @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { - // TODO + this.getHandler(EntityTameEvent.class).handle(evt); } @@ -654,7 +654,7 @@ public void onEntityTameEvent(EntityTameEvent evt) @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { - // TODO + this.getHandler(EntityTargetEvent.class).handle(evt); } @@ -665,7 +665,7 @@ public void onEntityTargetEvent(EntityTargetEvent evt) @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { - // TODO + this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); } @@ -676,7 +676,7 @@ public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { - // TODO + this.getHandler(EntityTeleportEvent.class).handle(evt); } @@ -687,7 +687,7 @@ public void onEntityTeleportEvent(EntityTeleportEvent evt) @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { - // TODO + this.getHandler(EntityUnleashEvent.class).handle(evt); } @@ -698,7 +698,7 @@ public void onEntityUnleashEvent(EntityUnleashEvent evt) @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { - // TODO + this.getHandler(ExpBottleEvent.class).handle(evt); } @@ -709,7 +709,7 @@ public void onExpBottleEvent(ExpBottleEvent evt) @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { - // TODO + this.getHandler(ExplosionPrimeEvent.class).handle(evt); } @@ -720,7 +720,7 @@ public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { - // TODO + this.getHandler(FoodLevelChangeEvent.class).handle(evt); } @@ -731,7 +731,7 @@ public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { - // TODO + this.getHandler(FurnaceBurnEvent.class).handle(evt); } @@ -742,7 +742,7 @@ public void onFurnaceBurnEvent(FurnaceBurnEvent evt) @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { - // TODO + this.getHandler(FurnaceSmeltEvent.class).handle(evt); } @@ -753,7 +753,7 @@ public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { - // TODO + this.getHandler(HangingBreakByEntityEvent.class).handle(evt); } @@ -764,7 +764,7 @@ public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { - // TODO + this.getHandler(HangingBreakEvent.class).handle(evt); } @@ -775,7 +775,7 @@ public void onHangingBreakEvent(HangingBreakEvent evt) @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { - // TODO + this.getHandler(HangingPlaceEvent.class).handle(evt); } @@ -786,7 +786,7 @@ public void onHangingPlaceEvent(HangingPlaceEvent evt) @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { - // TODO + this.getHandler(HorseJumpEvent.class).handle(evt); } @@ -797,7 +797,7 @@ public void onHorseJumpEvent(HorseJumpEvent evt) @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { - // TODO + this.getHandler(InventoryClickEvent.class).handle(evt); } @@ -808,7 +808,7 @@ public void onInventoryClickEvent(InventoryClickEvent evt) @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { - // TODO + this.getHandler(InventoryCloseEvent.class).handle(evt); } @@ -819,7 +819,7 @@ public void onInventoryCloseEvent(InventoryCloseEvent evt) @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { - // TODO + this.getHandler(InventoryCreativeEvent.class).handle(evt); } @@ -830,7 +830,7 @@ public void onInventoryCreativeEvent(InventoryCreativeEvent evt) @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { - // TODO + this.getHandler(InventoryDragEvent.class).handle(evt); } @@ -841,7 +841,7 @@ public void onInventoryDragEvent(InventoryDragEvent evt) @EventHandler public void onInventoryEvent(InventoryEvent evt) { - // TODO + this.getHandler(InventoryEvent.class).handle(evt); } @@ -852,7 +852,7 @@ public void onInventoryEvent(InventoryEvent evt) @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { - // TODO + this.getHandler(InventoryInteractEvent.class).handle(evt); } @@ -863,7 +863,7 @@ public void onInventoryInteractEvent(InventoryInteractEvent evt) @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { - // TODO + this.getHandler(InventoryMoveItemEvent.class).handle(evt); } @@ -874,7 +874,7 @@ public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { - // TODO + this.getHandler(InventoryOpenEvent.class).handle(evt); } @@ -885,7 +885,7 @@ public void onInventoryOpenEvent(InventoryOpenEvent evt) @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { - // TODO + this.getHandler(InventoryPickupItemEvent.class).handle(evt); } @@ -896,7 +896,7 @@ public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { - // TODO + this.getHandler(ItemDespawnEvent.class).handle(evt); } @@ -907,7 +907,7 @@ public void onItemDespawnEvent(ItemDespawnEvent evt) @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { - // TODO + this.getHandler(ItemSpawnEvent.class).handle(evt); } @@ -918,7 +918,7 @@ public void onItemSpawnEvent(ItemSpawnEvent evt) @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { - // TODO + this.getHandler(LeavesDecayEvent.class).handle(evt); } @@ -929,7 +929,7 @@ public void onLeavesDecayEvent(LeavesDecayEvent evt) @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { - // TODO + this.getHandler(NotePlayEvent.class).handle(evt); } @@ -940,7 +940,7 @@ public void onNotePlayEvent(NotePlayEvent evt) @EventHandler public void onPigZapEvent(PigZapEvent evt) { - // TODO + this.getHandler(PigZapEvent.class).handle(evt); } @@ -951,7 +951,7 @@ public void onPigZapEvent(PigZapEvent evt) @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { - // TODO + this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); } @@ -962,7 +962,7 @@ public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { - // TODO + this.getHandler(PlayerAnimationEvent.class).handle(evt); } @@ -973,7 +973,7 @@ public void onPlayerAnimationEvent(PlayerAnimationEvent evt) @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { - // TODO + this.getHandler(PlayerBedEnterEvent.class).handle(evt); } @@ -984,7 +984,7 @@ public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { - // TODO + this.getHandler(PlayerBedLeaveEvent.class).handle(evt); } @@ -995,7 +995,7 @@ public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { - // TODO + this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); } @@ -1006,7 +1006,7 @@ public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { - // TODO + this.getHandler(PlayerBucketFillEvent.class).handle(evt); } @@ -1017,7 +1017,7 @@ public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { - // TODO + this.getHandler(PlayerChangedWorldEvent.class).handle(evt); } @@ -1028,7 +1028,7 @@ public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { - // TODO + this.getHandler(PlayerChannelEvent.class).handle(evt); } @@ -1039,7 +1039,7 @@ public void onPlayerChannelEvent(PlayerChannelEvent evt) @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { - // TODO + this.getHandler(PlayerChatEvent.class).handle(evt); } @@ -1050,7 +1050,7 @@ public void onPlayerChatEvent(PlayerChatEvent evt) @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { - // TODO + this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); } @@ -1061,7 +1061,7 @@ public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { - // TODO + this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); } @@ -1072,7 +1072,7 @@ public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { - // TODO + this.getHandler(PlayerDeathEvent.class).handle(evt); } @@ -1083,7 +1083,7 @@ public void onPlayerDeathEvent(PlayerDeathEvent evt) @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { - // TODO + this.getHandler(PlayerDropItemEvent.class).handle(evt); } @@ -1094,7 +1094,7 @@ public void onPlayerDropItemEvent(PlayerDropItemEvent evt) @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { - // TODO + this.getHandler(PlayerEditBookEvent.class).handle(evt); } @@ -1105,7 +1105,7 @@ public void onPlayerEditBookEvent(PlayerEditBookEvent evt) @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { - // TODO + this.getHandler(PlayerEggThrowEvent.class).handle(evt); } @@ -1116,7 +1116,7 @@ public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { - // TODO + this.getHandler(PlayerExpChangeEvent.class).handle(evt); } @@ -1127,7 +1127,7 @@ public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { - // TODO + this.getHandler(PlayerFishEvent.class).handle(evt); } @@ -1138,7 +1138,7 @@ public void onPlayerFishEvent(PlayerFishEvent evt) @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { - // TODO + this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); } @@ -1149,7 +1149,7 @@ public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); } @@ -1160,7 +1160,7 @@ public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractEntityEvent.class).handle(evt); } @@ -1171,7 +1171,7 @@ public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { - // TODO + this.getHandler(PlayerInteractEvent.class).handle(evt); } @@ -1182,7 +1182,7 @@ public void onPlayerInteractEvent(PlayerInteractEvent evt) @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { - // TODO + this.getHandler(PlayerInventoryEvent.class).handle(evt); } @@ -1193,7 +1193,7 @@ public void onPlayerInventoryEvent(PlayerInventoryEvent evt) @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { - // TODO + this.getHandler(PlayerItemBreakEvent.class).handle(evt); } @@ -1204,7 +1204,7 @@ public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { - // TODO + this.getHandler(PlayerItemConsumeEvent.class).handle(evt); } @@ -1215,7 +1215,7 @@ public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { - // TODO + this.getHandler(PlayerItemDamageEvent.class).handle(evt); } @@ -1226,7 +1226,7 @@ public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { - // TODO + this.getHandler(PlayerItemHeldEvent.class).handle(evt); } @@ -1237,7 +1237,7 @@ public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { - // TODO + this.getHandler(PlayerJoinEvent.class).handle(evt); } @@ -1248,7 +1248,7 @@ public void onPlayerJoinEvent(PlayerJoinEvent evt) @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { - // TODO + this.getHandler(PlayerKickEvent.class).handle(evt); } @@ -1259,7 +1259,7 @@ public void onPlayerKickEvent(PlayerKickEvent evt) @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { - // TODO + this.getHandler(PlayerLeashEntityEvent.class).handle(evt); } @@ -1270,7 +1270,7 @@ public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { - // TODO + this.getHandler(PlayerLevelChangeEvent.class).handle(evt); } @@ -1281,7 +1281,7 @@ public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { - // TODO + this.getHandler(PlayerLoginEvent.class).handle(evt); } @@ -1292,7 +1292,7 @@ public void onPlayerLoginEvent(PlayerLoginEvent evt) @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { - // TODO + this.getHandler(PlayerMoveEvent.class).handle(evt); } @@ -1303,7 +1303,7 @@ public void onPlayerMoveEvent(PlayerMoveEvent evt) @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { - // TODO + this.getHandler(PlayerPickupItemEvent.class).handle(evt); } @@ -1314,7 +1314,7 @@ public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { - // TODO + this.getHandler(PlayerPortalEvent.class).handle(evt); } @@ -1325,7 +1325,7 @@ public void onPlayerPortalEvent(PlayerPortalEvent evt) @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { - // TODO + this.getHandler(PlayerQuitEvent.class).handle(evt); } @@ -1336,7 +1336,7 @@ public void onPlayerQuitEvent(PlayerQuitEvent evt) @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { - // TODO + this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); } @@ -1347,7 +1347,7 @@ public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { - // TODO + this.getHandler(PlayerRespawnEvent.class).handle(evt); } @@ -1358,7 +1358,7 @@ public void onPlayerRespawnEvent(PlayerRespawnEvent evt) @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { - // TODO + this.getHandler(PlayerShearEntityEvent.class).handle(evt); } @@ -1369,7 +1369,7 @@ public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { - // TODO + this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); } @@ -1380,7 +1380,7 @@ public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { - // TODO + this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); } @@ -1391,7 +1391,7 @@ public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { - // TODO + this.getHandler(PlayerTeleportEvent.class).handle(evt); } @@ -1402,7 +1402,7 @@ public void onPlayerTeleportEvent(PlayerTeleportEvent evt) @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { - // TODO + this.getHandler(PlayerToggleFlightEvent.class).handle(evt); } @@ -1413,7 +1413,7 @@ public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { - // TODO + this.getHandler(PlayerToggleSneakEvent.class).handle(evt); } @@ -1424,7 +1424,7 @@ public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { - // TODO + this.getHandler(PlayerToggleSprintEvent.class).handle(evt); } @@ -1435,7 +1435,7 @@ public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { - // TODO + this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); } @@ -1446,7 +1446,7 @@ public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { - // TODO + this.getHandler(PlayerVelocityEvent.class).handle(evt); } @@ -1457,7 +1457,7 @@ public void onPlayerVelocityEvent(PlayerVelocityEvent evt) @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { - // TODO + this.getHandler(PotionSplashEvent.class).handle(evt); } @@ -1468,7 +1468,7 @@ public void onPotionSplashEvent(PotionSplashEvent evt) @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { - // TODO + this.getHandler(PrepareItemCraftEvent.class).handle(evt); } @@ -1479,7 +1479,7 @@ public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { - // TODO + this.getHandler(PrepareItemEnchantEvent.class).handle(evt); } @@ -1490,7 +1490,7 @@ public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { - // TODO + this.getHandler(ProjectileHitEvent.class).handle(evt); } @@ -1501,7 +1501,7 @@ public void onProjectileHitEvent(ProjectileHitEvent evt) @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { - // TODO + this.getHandler(ProjectileLaunchEvent.class).handle(evt); } @@ -1512,7 +1512,7 @@ public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { - // TODO + this.getHandler(SheepDyeWoolEvent.class).handle(evt); } @@ -1523,7 +1523,7 @@ public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { - // TODO + this.getHandler(SheepRegrowWoolEvent.class).handle(evt); } @@ -1534,7 +1534,7 @@ public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { - // TODO + this.getHandler(SignChangeEvent.class).handle(evt); } @@ -1545,7 +1545,7 @@ public void onSignChangeEvent(SignChangeEvent evt) @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { - // TODO + this.getHandler(SlimeSplitEvent.class).handle(evt); } @@ -1556,7 +1556,7 @@ public void onSlimeSplitEvent(SlimeSplitEvent evt) @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { - // TODO + this.getHandler(SpawnerSpawnEvent.class).handle(evt); } @@ -1567,7 +1567,7 @@ public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { - // TODO + this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); } @@ -1578,7 +1578,7 @@ public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { - // TODO + this.getHandler(VehicleCreateEvent.class).handle(evt); } @@ -1589,7 +1589,7 @@ public void onVehicleCreateEvent(VehicleCreateEvent evt) @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { - // TODO + this.getHandler(VehicleDamageEvent.class).handle(evt); } @@ -1600,7 +1600,7 @@ public void onVehicleDamageEvent(VehicleDamageEvent evt) @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { - // TODO + this.getHandler(VehicleDestroyEvent.class).handle(evt); } @@ -1611,7 +1611,7 @@ public void onVehicleDestroyEvent(VehicleDestroyEvent evt) @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { - // TODO + this.getHandler(VehicleEnterEvent.class).handle(evt); } @@ -1622,7 +1622,7 @@ public void onVehicleEnterEvent(VehicleEnterEvent evt) @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { - // TODO + this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); } @@ -1633,7 +1633,7 @@ public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { - // TODO + this.getHandler(VehicleExitEvent.class).handle(evt); } @@ -1644,7 +1644,7 @@ public void onVehicleExitEvent(VehicleExitEvent evt) @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { - // TODO + this.getHandler(VehicleMoveEvent.class).handle(evt); } @@ -1655,7 +1655,7 @@ public void onVehicleMoveEvent(VehicleMoveEvent evt) @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { - // TODO + this.getHandler(VehicleUpdateEvent.class).handle(evt); } } diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java index d4aaa38c..c456335b 100644 --- a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java +++ b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java @@ -155,1670 +155,1531 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; /** * The event system implementation. * * @author mepeisen */ -public class EventSystem1_8_2 implements EventSystemInterface +public class EventSystem1_8_2 extends AbstractEventSystem { - + /** * Event handler for MinigameAsyncPlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { - // TODO + this.getHandler(AsyncPlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { - // TODO + this.getHandler(BlockBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { - // TODO + this.getHandler(BlockBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockCanBuildEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { - // TODO + this.getHandler(BlockCanBuildEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { - // TODO + this.getHandler(BlockDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDispenseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { - // TODO + this.getHandler(BlockDispenseEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { - // TODO + this.getHandler(BlockExpEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { - // TODO + this.getHandler(BlockExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFadeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { - // TODO + this.getHandler(BlockFadeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { - // TODO + this.getHandler(BlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFromToEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { - // TODO + this.getHandler(BlockFromToEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockGrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { - // TODO + this.getHandler(BlockGrowEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockIgniteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { - // TODO + this.getHandler(BlockIgniteEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { - // TODO + this.getHandler(BlockMultiPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPhysicsEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { - // TODO + this.getHandler(BlockPhysicsEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonExtendEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { - // TODO + this.getHandler(BlockPistonExtendEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonRetractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { - // TODO + this.getHandler(BlockPistonRetractEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { - // TODO + this.getHandler(BlockPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockRedstoneEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { - // TODO + this.getHandler(BlockRedstoneEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockSpreadEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { - // TODO + this.getHandler(BlockSpreadEvent.class).handle(evt); } - + + /** * Event handler for MinigameBrewEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { - // TODO + this.getHandler(BrewEvent.class).handle(evt); } - + + /** * Event handler for MinigameCraftItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { - // TODO + this.getHandler(CraftItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreatureSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { - // TODO + this.getHandler(CreatureSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreeperPowerEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { - // TODO + this.getHandler(CreeperPowerEvent.class).handle(evt); } - + + /** * Event handler for MinigameEnchantItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { - // TODO + this.getHandler(EnchantItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { - // TODO + this.getHandler(EntityBlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBreakDoorEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { - // TODO + this.getHandler(EntityBreakDoorEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityChangeBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { - // TODO + this.getHandler(EntityChangeBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { - // TODO + this.getHandler(EntityCombustByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { - // TODO + this.getHandler(EntityCombustByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { - // TODO + this.getHandler(EntityCombustEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCreatePortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { - // TODO + this.getHandler(EntityCreatePortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { - // TODO + this.getHandler(EntityDamageByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { - // TODO + this.getHandler(EntityDamageByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { - // TODO + this.getHandler(EntityDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { - // TODO + this.getHandler(EntityDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { - // TODO + this.getHandler(EntityExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { - // TODO + this.getHandler(EntityInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { - // TODO + this.getHandler(EntityPortalEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { - // TODO + this.getHandler(EntityPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { - // TODO + this.getHandler(EntityPortalExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityRegainHealthEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { - // TODO + this.getHandler(EntityRegainHealthEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityShootBowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { - // TODO + this.getHandler(EntityShootBowEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntitySpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { - // TODO + this.getHandler(EntitySpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTameEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { - // TODO + this.getHandler(EntityTameEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { - // TODO + this.getHandler(EntityTargetEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { - // TODO + this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { - // TODO + this.getHandler(EntityTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityUnleashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { - // TODO + this.getHandler(EntityUnleashEvent.class).handle(evt); } - + + /** * Event handler for MinigameExpBottleEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { - // TODO + this.getHandler(ExpBottleEvent.class).handle(evt); } - + + /** * Event handler for MinigameExplosionPrimeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { - // TODO + this.getHandler(ExplosionPrimeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFoodLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { - // TODO + this.getHandler(FoodLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { - // TODO + this.getHandler(FurnaceBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceSmeltEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { - // TODO + this.getHandler(FurnaceSmeltEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { - // TODO + this.getHandler(HangingBreakByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { - // TODO + this.getHandler(HangingBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { - // TODO + this.getHandler(HangingPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameHorseJumpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { - // TODO + this.getHandler(HorseJumpEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryClickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { - // TODO + this.getHandler(InventoryClickEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCloseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { - // TODO + this.getHandler(InventoryCloseEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCreativeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { - // TODO + this.getHandler(InventoryCreativeEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryDragEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { - // TODO + this.getHandler(InventoryDragEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { - // TODO + this.getHandler(InventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { - // TODO + this.getHandler(InventoryInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryMoveItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { - // TODO + this.getHandler(InventoryMoveItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryOpenEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { - // TODO + this.getHandler(InventoryOpenEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { - // TODO + this.getHandler(InventoryPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemDespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { - // TODO + this.getHandler(ItemDespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { - // TODO + this.getHandler(ItemSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameLeavesDecayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { - // TODO + this.getHandler(LeavesDecayEvent.class).handle(evt); } - + + /** * Event handler for MinigameNotePlayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { - // TODO + this.getHandler(NotePlayEvent.class).handle(evt); } - + + /** * Event handler for MinigamePigZapEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { - // TODO + this.getHandler(PigZapEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { - // TODO + this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAnimationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { - // TODO + this.getHandler(PlayerAnimationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { - // TODO + this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { - // TODO + this.getHandler(PlayerBedEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { - // TODO + this.getHandler(PlayerBedLeaveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { - // TODO + this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketFillEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { - // TODO + this.getHandler(PlayerBucketFillEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { - // TODO + this.getHandler(PlayerChangedWorldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { - // TODO + this.getHandler(PlayerChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { - // TODO + this.getHandler(PlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { - // TODO + this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { - // TODO + this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { - // TODO + this.getHandler(PlayerDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDropItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { - // TODO + this.getHandler(PlayerDropItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEditBookEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { - // TODO + this.getHandler(PlayerEditBookEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEggThrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { - // TODO + this.getHandler(PlayerEggThrowEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerExpChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { - // TODO + this.getHandler(PlayerExpChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerFishEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { - // TODO + this.getHandler(PlayerFishEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { - // TODO + this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { - // TODO + this.getHandler(PlayerInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { - // TODO + this.getHandler(PlayerInventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { - // TODO + this.getHandler(PlayerItemBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { - // TODO + this.getHandler(PlayerItemConsumeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { - // TODO + this.getHandler(PlayerItemDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemHeldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { - // TODO + this.getHandler(PlayerItemHeldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerJoinEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { - // TODO + this.getHandler(PlayerJoinEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerKickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { - // TODO + this.getHandler(PlayerKickEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { - // TODO + this.getHandler(PlayerLeashEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { - // TODO + this.getHandler(PlayerLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLoginEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { - // TODO + this.getHandler(PlayerLoginEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { - // TODO + this.getHandler(PlayerMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { - // TODO + this.getHandler(PlayerPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { - // TODO + this.getHandler(PlayerPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerQuitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { - // TODO + this.getHandler(PlayerQuitEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { - // TODO + this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { - // TODO + this.getHandler(PlayerRespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerShearEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { - // TODO + this.getHandler(PlayerShearEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { - // TODO + this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { - // TODO + this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { - // TODO + this.getHandler(PlayerTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { - // TODO + this.getHandler(PlayerToggleFlightEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { - // TODO + this.getHandler(PlayerToggleSneakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { - // TODO + this.getHandler(PlayerToggleSprintEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { - // TODO + this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerVelocityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { - // TODO + this.getHandler(PlayerVelocityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePotionSplashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { - // TODO + this.getHandler(PotionSplashEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemCraftEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { - // TODO + this.getHandler(PrepareItemCraftEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { - // TODO + this.getHandler(PrepareItemEnchantEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileHitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { - // TODO + this.getHandler(ProjectileHitEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileLaunchEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { - // TODO + this.getHandler(ProjectileLaunchEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepDyeWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { - // TODO + this.getHandler(SheepDyeWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { - // TODO + this.getHandler(SheepRegrowWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSignChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { - // TODO + this.getHandler(SignChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameSlimeSplitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { - // TODO + this.getHandler(SlimeSplitEvent.class).handle(evt); } - + + /** * Event handler for MinigameSpawnerSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { - // TODO + this.getHandler(SpawnerSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { - // TODO + this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleCreateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { - // TODO + this.getHandler(VehicleCreateEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { - // TODO + this.getHandler(VehicleDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDestroyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { - // TODO + this.getHandler(VehicleDestroyEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { - // TODO + this.getHandler(VehicleEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { - // TODO + this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { - // TODO + this.getHandler(VehicleExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { - // TODO + this.getHandler(VehicleMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleUpdateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { - // TODO + this.getHandler(VehicleUpdateEvent.class).handle(evt); } } diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java index a4021d9e..c08c021b 100644 --- a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java +++ b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java @@ -158,1706 +158,1564 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; /** * The event system implementation. * * @author mepeisen */ -public class EventSystem1_8_3 implements EventSystemInterface +public class EventSystem1_8_3 extends AbstractEventSystem { - + /** * Event handler for MinigameAsyncPlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { - // TODO + this.getHandler(AsyncPlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { - // TODO + this.getHandler(BlockBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { - // TODO + this.getHandler(BlockBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockCanBuildEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { - // TODO + this.getHandler(BlockCanBuildEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { - // TODO + this.getHandler(BlockDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDispenseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { - // TODO + this.getHandler(BlockDispenseEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { - // TODO + this.getHandler(BlockExpEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { - // TODO + this.getHandler(BlockExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFadeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { - // TODO + this.getHandler(BlockFadeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { - // TODO + this.getHandler(BlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFromToEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { - // TODO + this.getHandler(BlockFromToEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockGrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { - // TODO + this.getHandler(BlockGrowEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockIgniteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { - // TODO + this.getHandler(BlockIgniteEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { - // TODO + this.getHandler(BlockMultiPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPhysicsEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { - // TODO + this.getHandler(BlockPhysicsEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonExtendEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { - // TODO + this.getHandler(BlockPistonExtendEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonRetractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { - // TODO + this.getHandler(BlockPistonRetractEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { - // TODO + this.getHandler(BlockPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockRedstoneEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { - // TODO + this.getHandler(BlockRedstoneEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockSpreadEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { - // TODO + this.getHandler(BlockSpreadEvent.class).handle(evt); } - + + /** * Event handler for MinigameBrewEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { - // TODO + this.getHandler(BrewEvent.class).handle(evt); } - + + /** * Event handler for MinigameCraftItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { - // TODO + this.getHandler(CraftItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreatureSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { - // TODO + this.getHandler(CreatureSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreeperPowerEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { - // TODO + this.getHandler(CreeperPowerEvent.class).handle(evt); } - + + /** * Event handler for MinigameEnchantItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { - // TODO + this.getHandler(EnchantItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { - // TODO + this.getHandler(EntityBlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBreakDoorEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { - // TODO + this.getHandler(EntityBreakDoorEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityChangeBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { - // TODO + this.getHandler(EntityChangeBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { - // TODO + this.getHandler(EntityCombustByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { - // TODO + this.getHandler(EntityCombustByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { - // TODO + this.getHandler(EntityCombustEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCreatePortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { - // TODO + this.getHandler(EntityCreatePortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { - // TODO + this.getHandler(EntityDamageByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { - // TODO + this.getHandler(EntityDamageByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { - // TODO + this.getHandler(EntityDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { - // TODO + this.getHandler(EntityDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { - // TODO + this.getHandler(EntityExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { - // TODO + this.getHandler(EntityInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { - // TODO + this.getHandler(EntityPortalEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { - // TODO + this.getHandler(EntityPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { - // TODO + this.getHandler(EntityPortalExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityRegainHealthEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { - // TODO + this.getHandler(EntityRegainHealthEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityShootBowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { - // TODO + this.getHandler(EntityShootBowEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntitySpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { - // TODO + this.getHandler(EntitySpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTameEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { - // TODO + this.getHandler(EntityTameEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { - // TODO + this.getHandler(EntityTargetEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { - // TODO + this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { - // TODO + this.getHandler(EntityTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityUnleashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { - // TODO + this.getHandler(EntityUnleashEvent.class).handle(evt); } - + + /** * Event handler for MinigameExpBottleEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { - // TODO + this.getHandler(ExpBottleEvent.class).handle(evt); } - + + /** * Event handler for MinigameExplosionPrimeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { - // TODO + this.getHandler(ExplosionPrimeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFireworkExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { - // TODO + this.getHandler(FireworkExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFoodLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { - // TODO + this.getHandler(FoodLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { - // TODO + this.getHandler(FurnaceBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceSmeltEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { - // TODO + this.getHandler(FurnaceSmeltEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { - // TODO + this.getHandler(HangingBreakByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { - // TODO + this.getHandler(HangingBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { - // TODO + this.getHandler(HangingPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameHorseJumpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { - // TODO + this.getHandler(HorseJumpEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryClickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { - // TODO + this.getHandler(InventoryClickEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCloseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { - // TODO + this.getHandler(InventoryCloseEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCreativeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { - // TODO + this.getHandler(InventoryCreativeEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryDragEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { - // TODO + this.getHandler(InventoryDragEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { - // TODO + this.getHandler(InventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { - // TODO + this.getHandler(InventoryInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryMoveItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { - // TODO + this.getHandler(InventoryMoveItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryOpenEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { - // TODO + this.getHandler(InventoryOpenEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { - // TODO + this.getHandler(InventoryPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemDespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { - // TODO + this.getHandler(ItemDespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemMergeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { - // TODO + this.getHandler(ItemMergeEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { - // TODO + this.getHandler(ItemSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameLeavesDecayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { - // TODO + this.getHandler(LeavesDecayEvent.class).handle(evt); } - + + /** * Event handler for MinigameNotePlayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { - // TODO + this.getHandler(NotePlayEvent.class).handle(evt); } - + + /** * Event handler for MinigamePigZapEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { - // TODO + this.getHandler(PigZapEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { - // TODO + this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAnimationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { - // TODO + this.getHandler(PlayerAnimationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { - // TODO + this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { - // TODO + this.getHandler(PlayerBedEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { - // TODO + this.getHandler(PlayerBedLeaveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { - // TODO + this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketFillEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { - // TODO + this.getHandler(PlayerBucketFillEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { - // TODO + this.getHandler(PlayerChangedWorldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { - // TODO + this.getHandler(PlayerChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { - // TODO + this.getHandler(PlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { - // TODO + this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { - // TODO + this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { - // TODO + this.getHandler(PlayerDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDropItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { - // TODO + this.getHandler(PlayerDropItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEditBookEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { - // TODO + this.getHandler(PlayerEditBookEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEggThrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { - // TODO + this.getHandler(PlayerEggThrowEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerExpChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { - // TODO + this.getHandler(PlayerExpChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerFishEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { - // TODO + this.getHandler(PlayerFishEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { - // TODO + this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { - // TODO + this.getHandler(PlayerInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { - // TODO + this.getHandler(PlayerInventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { - // TODO + this.getHandler(PlayerItemBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { - // TODO + this.getHandler(PlayerItemConsumeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { - // TODO + this.getHandler(PlayerItemDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemHeldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { - // TODO + this.getHandler(PlayerItemHeldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerJoinEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { - // TODO + this.getHandler(PlayerJoinEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerKickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { - // TODO + this.getHandler(PlayerKickEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { - // TODO + this.getHandler(PlayerLeashEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { - // TODO + this.getHandler(PlayerLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLoginEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { - // TODO + this.getHandler(PlayerLoginEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { - // TODO + this.getHandler(PlayerMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { - // TODO + this.getHandler(PlayerPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { - // TODO + this.getHandler(PlayerPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerQuitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { - // TODO + this.getHandler(PlayerQuitEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { - // TODO + this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerResourcePackStatusEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { - // TODO + this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { - // TODO + this.getHandler(PlayerRespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerShearEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { - // TODO + this.getHandler(PlayerShearEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { - // TODO + this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { - // TODO + this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { - // TODO + this.getHandler(PlayerTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { - // TODO + this.getHandler(PlayerToggleFlightEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { - // TODO + this.getHandler(PlayerToggleSneakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { - // TODO + this.getHandler(PlayerToggleSprintEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { - // TODO + this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerVelocityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { - // TODO + this.getHandler(PlayerVelocityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePotionSplashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { - // TODO + this.getHandler(PotionSplashEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemCraftEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { - // TODO + this.getHandler(PrepareItemCraftEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { - // TODO + this.getHandler(PrepareItemEnchantEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileHitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { - // TODO + this.getHandler(ProjectileHitEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileLaunchEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { - // TODO + this.getHandler(ProjectileLaunchEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepDyeWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { - // TODO + this.getHandler(SheepDyeWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { - // TODO + this.getHandler(SheepRegrowWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSignChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { - // TODO + this.getHandler(SignChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameSlimeSplitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { - // TODO + this.getHandler(SlimeSplitEvent.class).handle(evt); } - + + /** * Event handler for MinigameSpawnerSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { - // TODO + this.getHandler(SpawnerSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { - // TODO + this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleCreateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { - // TODO + this.getHandler(VehicleCreateEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { - // TODO + this.getHandler(VehicleDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDestroyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { - // TODO + this.getHandler(VehicleDestroyEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { - // TODO + this.getHandler(VehicleEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { - // TODO + this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { - // TODO + this.getHandler(VehicleExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { - // TODO + this.getHandler(VehicleMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleUpdateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { - // TODO + this.getHandler(VehicleUpdateEvent.class).handle(evt); } } diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java index 98f52ffa..849592f9 100644 --- a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java +++ b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java @@ -168,1826 +168,1673 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; /** * The event system implementation. * * @author mepeisen */ -public class EventSystem1_9_1 implements EventSystemInterface +public class EventSystem1_9_1 extends AbstractEventSystem { /** * Event handler for AreaEffectCloudApplyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) { - // TODO + this.getHandler(AreaEffectCloudApplyEvent.class).handle(evt); } - + /** * Event handler for MinigameAsyncPlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { - // TODO + this.getHandler(AsyncPlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { - // TODO + this.getHandler(BlockBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { - // TODO + this.getHandler(BlockBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockCanBuildEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { - // TODO + this.getHandler(BlockCanBuildEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { - // TODO + this.getHandler(BlockDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDispenseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { - // TODO + this.getHandler(BlockDispenseEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { - // TODO + this.getHandler(BlockExpEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { - // TODO + this.getHandler(BlockExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFadeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { - // TODO + this.getHandler(BlockFadeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { - // TODO + this.getHandler(BlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFromToEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { - // TODO + this.getHandler(BlockFromToEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockGrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { - // TODO + this.getHandler(BlockGrowEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockIgniteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { - // TODO + this.getHandler(BlockIgniteEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { - // TODO + this.getHandler(BlockMultiPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPhysicsEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { - // TODO + this.getHandler(BlockPhysicsEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonExtendEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { - // TODO + this.getHandler(BlockPistonExtendEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonRetractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { - // TODO + this.getHandler(BlockPistonRetractEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { - // TODO + this.getHandler(BlockPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockRedstoneEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { - // TODO + this.getHandler(BlockRedstoneEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockSpreadEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { - // TODO + this.getHandler(BlockSpreadEvent.class).handle(evt); } - + + /** * Event handler for MinigameBrewEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { - // TODO + this.getHandler(BrewEvent.class).handle(evt); } - + + /** * Event handler for MinigameCauldronLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) { - // TODO + this.getHandler(CauldronLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameCraftItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { - // TODO + this.getHandler(CraftItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreatureSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { - // TODO + this.getHandler(CreatureSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreeperPowerEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { - // TODO + this.getHandler(CreeperPowerEvent.class).handle(evt); } - + + /** * Event handler for MinigameEnchantItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { - // TODO + this.getHandler(EnchantItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameEnderDragonChangePhaseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) { - // TODO + this.getHandler(EnderDragonChangePhaseEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { - // TODO + this.getHandler(EntityBlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBreakDoorEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { - // TODO + this.getHandler(EntityBreakDoorEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityChangeBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { - // TODO + this.getHandler(EntityChangeBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { - // TODO + this.getHandler(EntityCombustByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { - // TODO + this.getHandler(EntityCombustByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { - // TODO + this.getHandler(EntityCombustEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCreatePortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { - // TODO + this.getHandler(EntityCreatePortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { - // TODO + this.getHandler(EntityDamageByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { - // TODO + this.getHandler(EntityDamageByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { - // TODO + this.getHandler(EntityDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { - // TODO + this.getHandler(EntityDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { - // TODO + this.getHandler(EntityExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { - // TODO + this.getHandler(EntityInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { - // TODO + this.getHandler(EntityPortalEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { - // TODO + this.getHandler(EntityPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { - // TODO + this.getHandler(EntityPortalExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityRegainHealthEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { - // TODO + this.getHandler(EntityRegainHealthEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityShootBowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { - // TODO + this.getHandler(EntityShootBowEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntitySpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { - // TODO + this.getHandler(EntitySpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTameEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { - // TODO + this.getHandler(EntityTameEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { - // TODO + this.getHandler(EntityTargetEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { - // TODO + this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { - // TODO + this.getHandler(EntityTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityToggleGlideEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) { - // TODO + this.getHandler(EntityToggleGlideEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityUnleashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { - // TODO + this.getHandler(EntityUnleashEvent.class).handle(evt); } - + + /** * Event handler for MinigameExpBottleEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { - // TODO + this.getHandler(ExpBottleEvent.class).handle(evt); } - + + /** * Event handler for MinigameExplosionPrimeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { - // TODO + this.getHandler(ExplosionPrimeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFireworkExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { - // TODO + this.getHandler(FireworkExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFoodLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { - // TODO + this.getHandler(FoodLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { - // TODO + this.getHandler(FurnaceBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceSmeltEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { - // TODO + this.getHandler(FurnaceSmeltEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { - // TODO + this.getHandler(HangingBreakByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { - // TODO + this.getHandler(HangingBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { - // TODO + this.getHandler(HangingPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameHorseJumpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { - // TODO + this.getHandler(HorseJumpEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryClickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { - // TODO + this.getHandler(InventoryClickEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCloseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { - // TODO + this.getHandler(InventoryCloseEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCreativeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { - // TODO + this.getHandler(InventoryCreativeEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryDragEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { - // TODO + this.getHandler(InventoryDragEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { - // TODO + this.getHandler(InventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { - // TODO + this.getHandler(InventoryInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryMoveItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { - // TODO + this.getHandler(InventoryMoveItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryOpenEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { - // TODO + this.getHandler(InventoryOpenEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { - // TODO + this.getHandler(InventoryPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemDespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { - // TODO + this.getHandler(ItemDespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemMergeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { - // TODO + this.getHandler(ItemMergeEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { - // TODO + this.getHandler(ItemSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameLeavesDecayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { - // TODO + this.getHandler(LeavesDecayEvent.class).handle(evt); } - + + /** * Event handler for MinigameLingeringPotionSplashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) { - // TODO + this.getHandler(LingeringPotionSplashEvent.class).handle(evt); } - + + /** * Event handler for MinigameNotePlayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { - // TODO + this.getHandler(NotePlayEvent.class).handle(evt); } - + + /** * Event handler for MinigamePigZapEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { - // TODO + this.getHandler(PigZapEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { - // TODO + this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAnimationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { - // TODO + this.getHandler(PlayerAnimationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { - // TODO + this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { - // TODO + this.getHandler(PlayerBedEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { - // TODO + this.getHandler(PlayerBedLeaveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { - // TODO + this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketFillEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { - // TODO + this.getHandler(PlayerBucketFillEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { - // TODO + this.getHandler(PlayerChangedWorldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { - // TODO + this.getHandler(PlayerChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { - // TODO + this.getHandler(PlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { - // TODO + this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { - // TODO + this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { - // TODO + this.getHandler(PlayerDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDropItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { - // TODO + this.getHandler(PlayerDropItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEditBookEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { - // TODO + this.getHandler(PlayerEditBookEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEggThrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { - // TODO + this.getHandler(PlayerEggThrowEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerExpChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { - // TODO + this.getHandler(PlayerExpChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerFishEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { - // TODO + this.getHandler(PlayerFishEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { - // TODO + this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { - // TODO + this.getHandler(PlayerInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { - // TODO + this.getHandler(PlayerInventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { - // TODO + this.getHandler(PlayerItemBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { - // TODO + this.getHandler(PlayerItemConsumeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { - // TODO + this.getHandler(PlayerItemDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemHeldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { - // TODO + this.getHandler(PlayerItemHeldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerJoinEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { - // TODO + this.getHandler(PlayerJoinEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerKickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { - // TODO + this.getHandler(PlayerKickEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { - // TODO + this.getHandler(PlayerLeashEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { - // TODO + this.getHandler(PlayerLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLoginEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { - // TODO + this.getHandler(PlayerLoginEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { - // TODO + this.getHandler(PlayerMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPickupArrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) { - // TODO + this.getHandler(PlayerPickupArrowEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { - // TODO + this.getHandler(PlayerPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { - // TODO + this.getHandler(PlayerPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerQuitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { - // TODO + this.getHandler(PlayerQuitEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { - // TODO + this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerResourcePackStatusEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { - // TODO + this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { - // TODO + this.getHandler(PlayerRespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerShearEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { - // TODO + this.getHandler(PlayerShearEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { - // TODO + this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { - // TODO + this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerSwapHandItemsEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) { - // TODO + this.getHandler(PlayerSwapHandItemsEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { - // TODO + this.getHandler(PlayerTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { - // TODO + this.getHandler(PlayerToggleFlightEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { - // TODO + this.getHandler(PlayerToggleSneakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { - // TODO + this.getHandler(PlayerToggleSprintEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { - // TODO + this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerVelocityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { - // TODO + this.getHandler(PlayerVelocityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePotionSplashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { - // TODO + this.getHandler(PotionSplashEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareAnvilEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareAnvilEvent(PrepareAnvilEvent evt) { - // TODO + this.getHandler(PrepareAnvilEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemCraftEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { - // TODO + this.getHandler(PrepareItemCraftEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { - // TODO + this.getHandler(PrepareItemEnchantEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileHitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { - // TODO + this.getHandler(ProjectileHitEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileLaunchEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { - // TODO + this.getHandler(ProjectileLaunchEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepDyeWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { - // TODO + this.getHandler(SheepDyeWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { - // TODO + this.getHandler(SheepRegrowWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSignChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { - // TODO + this.getHandler(SignChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameSlimeSplitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { - // TODO + this.getHandler(SlimeSplitEvent.class).handle(evt); } - + + /** * Event handler for MinigameSpawnerSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { - // TODO + this.getHandler(SpawnerSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { - // TODO + this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleCreateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { - // TODO + this.getHandler(VehicleCreateEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { - // TODO + this.getHandler(VehicleDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDestroyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { - // TODO + this.getHandler(VehicleDestroyEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { - // TODO + this.getHandler(VehicleEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { - // TODO + this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { - // TODO + this.getHandler(VehicleExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { - // TODO + this.getHandler(VehicleMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleUpdateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { - // TODO + this.getHandler(VehicleUpdateEvent.class).handle(evt); } - + + /** * Event handler for MinigameVillagerAcquireTradeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) { - // TODO + this.getHandler(VillagerAcquireTradeEvent.class).handle(evt); } - + + /** * Event handler for MinigameVillagerReplenishTradeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) { - // TODO + this.getHandler(VillagerReplenishTradeEvent.class).handle(evt); } } diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java index f6e172d2..56291e35 100644 --- a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java +++ b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java @@ -168,1826 +168,1673 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.EventSystemInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; /** * The event system implementation. * * @author mepeisen */ -public class EventSystem1_9_2 implements EventSystemInterface +public class EventSystem1_9_2 extends AbstractEventSystem { /** * Event handler for AreaEffectCloudApplyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) { - // TODO + this.getHandler(AreaEffectCloudApplyEvent.class).handle(evt); } - + /** * Event handler for MinigameAsyncPlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) { - // TODO + this.getHandler(AsyncPlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBreakEvent(BlockBreakEvent evt) { - // TODO + this.getHandler(BlockBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockBurnEvent(BlockBurnEvent evt) { - // TODO + this.getHandler(BlockBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockCanBuildEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockCanBuildEvent(BlockCanBuildEvent evt) { - // TODO + this.getHandler(BlockCanBuildEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDamageEvent(BlockDamageEvent evt) { - // TODO + this.getHandler(BlockDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockDispenseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockDispenseEvent(BlockDispenseEvent evt) { - // TODO + this.getHandler(BlockDispenseEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExpEvent(BlockExpEvent evt) { - // TODO + this.getHandler(BlockExpEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockExplodeEvent(BlockExplodeEvent evt) { - // TODO + this.getHandler(BlockExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFadeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFadeEvent(BlockFadeEvent evt) { - // TODO + this.getHandler(BlockFadeEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFormEvent(BlockFormEvent evt) { - // TODO + this.getHandler(BlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockFromToEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockFromToEvent(BlockFromToEvent evt) { - // TODO + this.getHandler(BlockFromToEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockGrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockGrowEvent(BlockGrowEvent evt) { - // TODO + this.getHandler(BlockGrowEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockIgniteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockIgniteEvent(BlockIgniteEvent evt) { - // TODO + this.getHandler(BlockIgniteEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockMultiPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) { - // TODO + this.getHandler(BlockMultiPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPhysicsEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPhysicsEvent(BlockPhysicsEvent evt) { - // TODO + this.getHandler(BlockPhysicsEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonExtendEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) { - // TODO + this.getHandler(BlockPistonExtendEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPistonRetractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) { - // TODO + this.getHandler(BlockPistonRetractEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockPlaceEvent(BlockPlaceEvent evt) { - // TODO + this.getHandler(BlockPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockRedstoneEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockRedstoneEvent(BlockRedstoneEvent evt) { - // TODO + this.getHandler(BlockRedstoneEvent.class).handle(evt); } - + + /** * Event handler for MinigameBlockSpreadEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBlockSpreadEvent(BlockSpreadEvent evt) { - // TODO + this.getHandler(BlockSpreadEvent.class).handle(evt); } - + + /** * Event handler for MinigameBrewEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onBrewEvent(BrewEvent evt) { - // TODO + this.getHandler(BrewEvent.class).handle(evt); } - + + /** * Event handler for MinigameCauldronLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) { - // TODO + this.getHandler(CauldronLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameCraftItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCraftItemEvent(CraftItemEvent evt) { - // TODO + this.getHandler(CraftItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreatureSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreatureSpawnEvent(CreatureSpawnEvent evt) { - // TODO + this.getHandler(CreatureSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameCreeperPowerEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onCreeperPowerEvent(CreeperPowerEvent evt) { - // TODO + this.getHandler(CreeperPowerEvent.class).handle(evt); } - + + /** * Event handler for MinigameEnchantItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEnchantItemEvent(EnchantItemEvent evt) { - // TODO + this.getHandler(EnchantItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameEnderDragonChangePhaseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) { - // TODO + this.getHandler(EnderDragonChangePhaseEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBlockFormEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBlockFormEvent(EntityBlockFormEvent evt) { - // TODO + this.getHandler(EntityBlockFormEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityBreakDoorEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) { - // TODO + this.getHandler(EntityBreakDoorEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityChangeBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) { - // TODO + this.getHandler(EntityChangeBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) { - // TODO + this.getHandler(EntityCombustByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) { - // TODO + this.getHandler(EntityCombustByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCombustEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCombustEvent(EntityCombustEvent evt) { - // TODO + this.getHandler(EntityCombustEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityCreatePortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) { - // TODO + this.getHandler(EntityCreatePortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByBlockEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) { - // TODO + this.getHandler(EntityDamageByBlockEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) { - // TODO + this.getHandler(EntityDamageByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDamageEvent(EntityDamageEvent evt) { - // TODO + this.getHandler(EntityDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityDeathEvent(EntityDeathEvent evt) { - // TODO + this.getHandler(EntityDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityExplodeEvent(EntityExplodeEvent evt) { - // TODO + this.getHandler(EntityExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityInteractEvent(EntityInteractEvent evt) { - // TODO + this.getHandler(EntityInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) { - // TODO + this.getHandler(EntityPortalEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalEvent(EntityPortalEvent evt) { - // TODO + this.getHandler(EntityPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityPortalExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityPortalExitEvent(EntityPortalExitEvent evt) { - // TODO + this.getHandler(EntityPortalExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityRegainHealthEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) { - // TODO + this.getHandler(EntityRegainHealthEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityShootBowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityShootBowEvent(EntityShootBowEvent evt) { - // TODO + this.getHandler(EntityShootBowEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntitySpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntitySpawnEvent(EntitySpawnEvent evt) { - // TODO + this.getHandler(EntitySpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTameEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTameEvent(EntityTameEvent evt) { - // TODO + this.getHandler(EntityTameEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetEvent(EntityTargetEvent evt) { - // TODO + this.getHandler(EntityTargetEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTargetLivingEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) { - // TODO + this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityTeleportEvent(EntityTeleportEvent evt) { - // TODO + this.getHandler(EntityTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityToggleGlideEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) { - // TODO + this.getHandler(EntityToggleGlideEvent.class).handle(evt); } - + + /** * Event handler for MinigameEntityUnleashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onEntityUnleashEvent(EntityUnleashEvent evt) { - // TODO + this.getHandler(EntityUnleashEvent.class).handle(evt); } - + + /** * Event handler for MinigameExpBottleEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExpBottleEvent(ExpBottleEvent evt) { - // TODO + this.getHandler(ExpBottleEvent.class).handle(evt); } - + + /** * Event handler for MinigameExplosionPrimeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) { - // TODO + this.getHandler(ExplosionPrimeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFireworkExplodeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFireworkExplodeEvent(FireworkExplodeEvent evt) { - // TODO + this.getHandler(FireworkExplodeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFoodLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) { - // TODO + this.getHandler(FoodLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceBurnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceBurnEvent(FurnaceBurnEvent evt) { - // TODO + this.getHandler(FurnaceBurnEvent.class).handle(evt); } - + + /** * Event handler for MinigameFurnaceSmeltEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) { - // TODO + this.getHandler(FurnaceSmeltEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakByEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) { - // TODO + this.getHandler(HangingBreakByEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingBreakEvent(HangingBreakEvent evt) { - // TODO + this.getHandler(HangingBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigameHangingPlaceEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHangingPlaceEvent(HangingPlaceEvent evt) { - // TODO + this.getHandler(HangingPlaceEvent.class).handle(evt); } - + + /** * Event handler for MinigameHorseJumpEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onHorseJumpEvent(HorseJumpEvent evt) { - // TODO + this.getHandler(HorseJumpEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryClickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryClickEvent(InventoryClickEvent evt) { - // TODO + this.getHandler(InventoryClickEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCloseEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCloseEvent(InventoryCloseEvent evt) { - // TODO + this.getHandler(InventoryCloseEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryCreativeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryCreativeEvent(InventoryCreativeEvent evt) { - // TODO + this.getHandler(InventoryCreativeEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryDragEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryDragEvent(InventoryDragEvent evt) { - // TODO + this.getHandler(InventoryDragEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryEvent(InventoryEvent evt) { - // TODO + this.getHandler(InventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryInteractEvent(InventoryInteractEvent evt) { - // TODO + this.getHandler(InventoryInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryMoveItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) { - // TODO + this.getHandler(InventoryMoveItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryOpenEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryOpenEvent(InventoryOpenEvent evt) { - // TODO + this.getHandler(InventoryOpenEvent.class).handle(evt); } - + + /** * Event handler for MinigameInventoryPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) { - // TODO + this.getHandler(InventoryPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemDespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemDespawnEvent(ItemDespawnEvent evt) { - // TODO + this.getHandler(ItemDespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemMergeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemMergeEvent(ItemMergeEvent evt) { - // TODO + this.getHandler(ItemMergeEvent.class).handle(evt); } - + + /** * Event handler for MinigameItemSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onItemSpawnEvent(ItemSpawnEvent evt) { - // TODO + this.getHandler(ItemSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameLeavesDecayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onLeavesDecayEvent(LeavesDecayEvent evt) { - // TODO + this.getHandler(LeavesDecayEvent.class).handle(evt); } - + + /** * Event handler for MinigameLingeringPotionSplashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) { - // TODO + this.getHandler(LingeringPotionSplashEvent.class).handle(evt); } - + + /** * Event handler for MinigameNotePlayEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onNotePlayEvent(NotePlayEvent evt) { - // TODO + this.getHandler(NotePlayEvent.class).handle(evt); } - + + /** * Event handler for MinigamePigZapEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPigZapEvent(PigZapEvent evt) { - // TODO + this.getHandler(PigZapEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAchievementAwardedEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) { - // TODO + this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerAnimationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerAnimationEvent(PlayerAnimationEvent evt) { - // TODO + this.getHandler(PlayerAnimationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) { - // TODO + this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) { - // TODO + this.getHandler(PlayerBedEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBedLeaveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) { - // TODO + this.getHandler(PlayerBedLeaveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketEmptyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) { - // TODO + this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerBucketFillEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) { - // TODO + this.getHandler(PlayerBucketFillEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChangedWorldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) { - // TODO + this.getHandler(PlayerChangedWorldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChannelEvent(PlayerChannelEvent evt) { - // TODO + this.getHandler(PlayerChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatEvent(PlayerChatEvent evt) { - // TODO + this.getHandler(PlayerChatEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerChatTabCompleteEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) { - // TODO + this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerCommandPreprocessEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) { - // TODO + this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDeathEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDeathEvent(PlayerDeathEvent evt) { - // TODO + this.getHandler(PlayerDeathEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerDropItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerDropItemEvent(PlayerDropItemEvent evt) { - // TODO + this.getHandler(PlayerDropItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEditBookEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEditBookEvent(PlayerEditBookEvent evt) { - // TODO + this.getHandler(PlayerEditBookEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerEggThrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) { - // TODO + this.getHandler(PlayerEggThrowEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerExpChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) { - // TODO + this.getHandler(PlayerExpChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerFishEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerFishEvent(PlayerFishEvent evt) { - // TODO + this.getHandler(PlayerFishEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerGameModeChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) { - // TODO + this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractAtEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) { - // TODO + this.getHandler(PlayerInteractEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInteractEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInteractEvent(PlayerInteractEvent evt) { - // TODO + this.getHandler(PlayerInteractEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerInventoryEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerInventoryEvent(PlayerInventoryEvent evt) { - // TODO + this.getHandler(PlayerInventoryEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemBreakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) { - // TODO + this.getHandler(PlayerItemBreakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemConsumeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) { - // TODO + this.getHandler(PlayerItemConsumeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) { - // TODO + this.getHandler(PlayerItemDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerItemHeldEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) { - // TODO + this.getHandler(PlayerItemHeldEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerJoinEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerJoinEvent(PlayerJoinEvent evt) { - // TODO + this.getHandler(PlayerJoinEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerKickEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerKickEvent(PlayerKickEvent evt) { - // TODO + this.getHandler(PlayerKickEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLeashEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) { - // TODO + this.getHandler(PlayerLeashEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLevelChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) { - // TODO + this.getHandler(PlayerLevelChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerLoginEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerLoginEvent(PlayerLoginEvent evt) { - // TODO + this.getHandler(PlayerLoginEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerMoveEvent(PlayerMoveEvent evt) { - // TODO + this.getHandler(PlayerMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPickupArrowEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) { - // TODO + this.getHandler(PlayerPickupArrowEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPickupItemEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) { - // TODO + this.getHandler(PlayerPickupItemEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerPortalEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerPortalEvent(PlayerPortalEvent evt) { - // TODO + this.getHandler(PlayerPortalEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerQuitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerQuitEvent(PlayerQuitEvent evt) { - // TODO + this.getHandler(PlayerQuitEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRegisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) { - // TODO + this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerResourcePackStatusEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) { - // TODO + this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerRespawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent evt) { - // TODO + this.getHandler(PlayerRespawnEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerShearEntityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) { - // TODO + this.getHandler(PlayerShearEntityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerSpawnLocationEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) { - // TODO + this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerStatisticIncrementEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) { - // TODO + this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerSwapHandItemsEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) { - // TODO + this.getHandler(PlayerSwapHandItemsEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerTeleportEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerTeleportEvent(PlayerTeleportEvent evt) { - // TODO + this.getHandler(PlayerTeleportEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleFlightEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) { - // TODO + this.getHandler(PlayerToggleFlightEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSneakEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) { - // TODO + this.getHandler(PlayerToggleSneakEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerToggleSprintEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) { - // TODO + this.getHandler(PlayerToggleSprintEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerUnregisterChannelEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) { - // TODO + this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); } - + + /** * Event handler for MinigamePlayerVelocityEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPlayerVelocityEvent(PlayerVelocityEvent evt) { - // TODO + this.getHandler(PlayerVelocityEvent.class).handle(evt); } - + + /** * Event handler for MinigamePotionSplashEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPotionSplashEvent(PotionSplashEvent evt) { - // TODO + this.getHandler(PotionSplashEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareAnvilEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareAnvilEvent(PrepareAnvilEvent evt) { - // TODO + this.getHandler(PrepareAnvilEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemCraftEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) { - // TODO + this.getHandler(PrepareItemCraftEvent.class).handle(evt); } - + + /** * Event handler for MinigamePrepareItemEnchantEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) { - // TODO + this.getHandler(PrepareItemEnchantEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileHitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileHitEvent(ProjectileHitEvent evt) { - // TODO + this.getHandler(ProjectileHitEvent.class).handle(evt); } - + + /** * Event handler for MinigameProjectileLaunchEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) { - // TODO + this.getHandler(ProjectileLaunchEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepDyeWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) { - // TODO + this.getHandler(SheepDyeWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSheepRegrowWoolEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) { - // TODO + this.getHandler(SheepRegrowWoolEvent.class).handle(evt); } - + + /** * Event handler for MinigameSignChangeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSignChangeEvent(SignChangeEvent evt) { - // TODO + this.getHandler(SignChangeEvent.class).handle(evt); } - + + /** * Event handler for MinigameSlimeSplitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSlimeSplitEvent(SlimeSplitEvent evt) { - // TODO + this.getHandler(SlimeSplitEvent.class).handle(evt); } - + + /** * Event handler for MinigameSpawnerSpawnEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) { - // TODO + this.getHandler(SpawnerSpawnEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleBlockCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) { - // TODO + this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleCreateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleCreateEvent(VehicleCreateEvent evt) { - // TODO + this.getHandler(VehicleCreateEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDamageEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDamageEvent(VehicleDamageEvent evt) { - // TODO + this.getHandler(VehicleDamageEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleDestroyEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleDestroyEvent(VehicleDestroyEvent evt) { - // TODO + this.getHandler(VehicleDestroyEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEnterEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEnterEvent(VehicleEnterEvent evt) { - // TODO + this.getHandler(VehicleEnterEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleEntityCollisionEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) { - // TODO + this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleExitEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleExitEvent(VehicleExitEvent evt) { - // TODO + this.getHandler(VehicleExitEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleMoveEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleMoveEvent(VehicleMoveEvent evt) { - // TODO + this.getHandler(VehicleMoveEvent.class).handle(evt); } - + + /** * Event handler for MinigameVehicleUpdateEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVehicleUpdateEvent(VehicleUpdateEvent evt) { - // TODO + this.getHandler(VehicleUpdateEvent.class).handle(evt); } - + + /** * Event handler for MinigameVillagerAcquireTradeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) { - // TODO + this.getHandler(VillagerAcquireTradeEvent.class).handle(evt); } - + + /** * Event handler for MinigameVillagerReplenishTradeEvent event. - * - * @param evt - * the event to be passed. + * @param evt the event to be passed. */ @EventHandler public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) { - // TODO + this.getHandler(VillagerReplenishTradeEvent.class).handle(evt); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java index 4e5dde3e..dbf3d4f6 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java @@ -107,6 +107,8 @@ public ArenaInterface createArena(String arenaName) throws MinigameException { throw new MinigameException(CommonErrors.DuplicateArena, arenaName); } + // TODO Check for illegal names: ArenaInterface.ILLEGAL_NAMES + // TODO Check for illegal characters final ArenaImpl arena = new ArenaImpl(arenaName, this.plugin, this.registry); this.arenas.put(arenaName.toLowerCase(), arena); return arena; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java index 644ba1b8..825dff62 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java @@ -153,7 +153,15 @@ public String resolve(String varName, String[] args, MinigameContext context) case "ARENA": //$NON-NLS-1$ return resolveVar(context.getContext(ArenaInterface.class), args[1]); default: - // failed + try + { + final Class<?> clazz = Class.forName(args[0]); + return resolveVar(context.getContext(clazz), args[1]); + } + catch (@SuppressWarnings("unused") Exception ex) + { + // ignore silently and let us return null (failed); maybe another resolver knows how to handle it + } return null; } } From e1e15114756fd9052b918f521c704f0e0016ffc5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 3 Sep 2016 08:23:50 +0200 Subject: [PATCH 121/266] v2 --- .../api/CommonProviderInterface.java | 99 ++ .../mce/minigames/api/MglibInterface.java | 147 ++- .../mce/minigames/api/MinigameInterface.java | 27 +- .../com/github/mce/minigames/api/RuleId.java | 37 + .../api/arena/ArenaTypeBuilderInterface.java | 428 +++++++- .../api/arena/ArenaTypeInterface.java | 18 +- .../api/arena/ArenaTypeProvider.java | 121 +++ .../mce/minigames/api/arena/MatchPhaseId.java | 32 + .../api/arena/rules/AdminRuleId.java | 34 + .../api/arena/rules/AdminRuleSet.java | 28 + .../api/arena/rules/ArenaRuleId.java | 34 + .../api/arena/rules/MatchRuleId.java | 35 + .../api/arena/rules/MatchRuleSet.java | 28 + .../api/arena/rules/PlayerRuleId.java | 35 + .../api/arena/rules/PlayerRuleSet.java | 28 + .../minigames/api/component/ComponentId.java | 32 + .../api/component/ComponentInterface.java | 28 + .../api/component/ComponentRuleId.java | 34 + .../api/component/ComponentRuleSet.java | 28 + .../mce/minigames/api/component/Cuboid.java | 393 ++++++++ .../api/config/ConfigurationTool.java | 37 +- .../config/ConfigurationValueInterface.java | 43 +- .../api/context/MinigameContext.java | 6 +- .../services/MinigameExtensionInterface.java | 29 +- .../github/mce/minigames/api/team/TeamId.java | 35 + .../mce/minigames/api/team/TeamRuleId.java | 37 + .../mce/minigames/api/team/TeamRuleSet.java | 28 + .../minigames/api/zones/ZoneInterface.java | 45 +- .../site/markdown/dev_minigame_arena_types.md | 2 + .../minigames/api/test/CommonConfigTest.java | 39 + .../minigames/api/test/CommonErrorsTest.java | 39 + .../api/test/CommonMessagesTest.java | 39 + .../test/ConfigurationValueInterfaceTest.java | 923 ++++++++++++++++++ .../mce/minigames/api/test/LibStateTest.java | 39 + .../api/test/MinigameErrorCodeTest.java | 42 + .../mce/minigames/api/test/SharedUtil.java | 48 + .../minigames/api/test/VersionTypeTest.java | 2 +- .../api/test/arena/ArenasConfigTest.java | 40 + .../api/test/context/MinigameContextTest.java | 115 +++ .../api/test/gui/ClickGuiItemTest.java | 76 ++ .../api/test/perms/CommonPermissionsTest.java | 40 + .../test/perms/PermissionsInterfaceTest.java | 113 +++ .../test/player/ArenaPlayerInterfaceTest.java | 154 +++ .../github/mce/minigames/impl/BaseImpl.java | 170 +++- .../mce/minigames/impl/ExtensionImpl.java | 155 ++- .../mce/minigames/impl/MinigameWrapper.java | 99 ++ .../mce/minigames/impl/MinigamesPlugin.java | 596 ++++++++--- .../impl/arena/ArenaTypeBuilderImpl.java | 416 +++++++- .../component/AbstractCuboidComponent.java | 141 +++ .../impl/component/ComponentRegistry.java | 22 + .../minigames/impl/component/WorldChunk.java | 32 + 51 files changed, 5049 insertions(+), 199 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/team/TeamId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java index 7f80a323..c0a3a403 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java @@ -19,11 +19,20 @@ import org.bukkit.plugin.java.JavaPlugin; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.arena.rules.AdminRuleId; +import com.github.mce.minigames.api.arena.rules.ArenaRuleId; +import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.PlayerRuleId; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.config.ConfigurationValueInterface; import com.github.mce.minigames.api.gui.ClickGuiId; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleId; /** * Basic interface for providers, either minigame plugins or extensions. @@ -106,4 +115,94 @@ default Iterable<Class<? extends ClickGuiId>> getGuiIds() return null; } + /** + * Returns the additional gui ids for this provider. + * + * @return additional gui ids. + */ + default Iterable<Class<? extends ArenaRuleId>> getArenaRuleIds() + { + return null; + } + + /** + * Returns the additional gui ids for this provider. + * + * @return additional gui ids. + */ + default Iterable<Class<? extends MatchRuleId>> getMatchRuleIds() + { + return null; + } + + /** + * Returns the additional gui ids for this provider. + * + * @return additional gui ids. + */ + default Iterable<Class<? extends PlayerRuleId>> getPlayerRuleIds() + { + return null; + } + + /** + * Returns the administration rules for this provider. + * + * @return administration rule ids. + */ + default Iterable<Class<? extends AdminRuleId>> getAdminRuleIds() + { + return null; + } + + /** + * Returns the team rules for this provider. + * + * @return team rule ids. + */ + default Iterable<Class<? extends TeamRuleId>> getTeamRuleIds() + { + return null; + } + + /** + * Returns the components rules for this provider. + * + * @return component rule ids. + */ + default Iterable<Class<? extends ComponentRuleId>> getComponentRuleIds() + { + return null; + } + + /** + * Returns the components for this provider. + * + * @return component ids. + */ + default Iterable<Class<? extends ComponentId>> getComponentIds() + { + return null; + } + + /** + * Returns the teams for this provider. + * + * @return teams. + */ + default Iterable<Class<? extends TeamId>> getTeamIds() + { + return null; + } + + /** + * Returns the match phases for this provider. + * + * @return match phases. + */ + default Iterable<Class<? extends MatchPhaseId>> getMatchPhaseIds() + { + return null; + } + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 7dcad94f..7983e999 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -29,6 +29,10 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.ArenaTypeProvider; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.Cuboid; import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationValueInterface; import com.github.mce.minigames.api.context.MinigameContext; @@ -39,6 +43,7 @@ import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; +import com.github.mce.minigames.api.team.TeamId; import com.github.mce.minigames.api.zones.ZoneInterface; /** @@ -153,6 +158,51 @@ public interface MglibInterface extends MinigameContext */ ConfigInterface getConfigFromCfg(ConfigurationValueInterface item); + /** + * Returns the arena type provider for given arena type. + * + * @param type + * the arena type + * @return type provider or {@code null} if it was not defined. + */ + ArenaTypeProvider getProviderFromArenaType(ArenaTypeInterface type); + + /** + * Returns the arena type provider for given rule. + * + * @param rule + * the rule + * @return type provider or {@code null} if it was not defined. + */ + ArenaTypeProvider getProviderFromRule(RuleId rule); + + /** + * Returns the arena type provider for given team. + * + * @param team + * the team + * @return type provider or {@code null} if it was not defined. + */ + ArenaTypeProvider getProviderFromTeam(TeamId team); + + /** + * Returns the arena type provider for given component. + * + * @param component + * the component + * @return type provider or {@code null} if it was not defined. + */ + ArenaTypeProvider getProviderFromComponent(ComponentId component); + + /** + * Returns the arena type provider for given phase. + * + * @param phase + * the phase + * @return type provider or {@code null} if it was not defined. + */ + ArenaTypeProvider getProviderFromMatch(MatchPhaseId phase); + /** * Return the amount of installed extensions. * @@ -207,6 +257,8 @@ public interface MglibInterface extends MinigameContext * @param location * * @return Zone or {@code null} if no zone was found. + * + * @see Cuboid#containsLoc(Location) */ ZoneInterface findZone(Location location); @@ -224,9 +276,87 @@ public interface MglibInterface extends MinigameContext * @param location * * @return Zone or {@code null} if no zone was found. + * + * @see Cuboid#containsLoc(Location) */ Iterable<ZoneInterface> findZones(Location location); + /** + * Finds a zone by location. + * + * <p> + * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. + * </p> + * + * <p> + * The method will return the first zone it finds. + * </p> + * + * @param location + * + * @return Zone or {@code null} if no zone was found. + * + * @see Cuboid#containsLocWithoutY(Location) + */ + ZoneInterface findZoneWithoutY(Location location); + + /** + * Finds all zones by location. + * + * <p> + * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. + * </p> + * + * <p> + * The method will return every zone that contains given location. Even if multiple zones are overlapping. + * </p> + * + * @param location + * + * @return Zone or {@code null} if no zone was found. + * + * @see Cuboid#containsLocWithoutY(Location) + */ + Iterable<ZoneInterface> findZonesWithoutY(Location location); + + /** + * Finds a zone by location. + * + * <p> + * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. + * </p> + * + * <p> + * The method will return the first zone it finds. + * </p> + * + * @param location + * + * @return Zone or {@code null} if no zone was found. + * + * @see Cuboid#containsLocWithoutYD(Location) + */ + ZoneInterface findZoneWithoutYD(Location location); + + /** + * Finds all zones by location. + * + * <p> + * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. + * </p> + * + * <p> + * The method will return every zone that contains given location. Even if multiple zones are overlapping. + * </p> + * + * @param location + * + * @return Zone or {@code null} if no zone was found. + * + * @see Cuboid#containsLocWithoutYD(Location) + */ + Iterable<ZoneInterface> findZonesWithoutYD(Location location); + // player api /** @@ -341,6 +471,9 @@ public interface MglibInterface extends MinigameContext public final class INSTANCE { + /** cached instance. */ + private static MglibInterface CACHED; + /** * hidden constructor. */ @@ -356,13 +489,17 @@ private INSTANCE() */ public static MglibInterface get() { - final Plugin mgplugin = Bukkit.getServer().getPluginManager().getPlugin("MinigamesLib2"); //$NON-NLS-1$ - if (!(mgplugin instanceof MglibInterface)) + if (CACHED == null) { - throw new IllegalStateException("Invalid minigames lib or inactive plugin."); //$NON-NLS-1$ + final Plugin mgplugin = Bukkit.getServer().getPluginManager().getPlugin("MinigamesLib2"); //$NON-NLS-1$ + if (!(mgplugin instanceof MglibInterface)) + { + throw new IllegalStateException("Invalid minigames lib or inactive plugin."); //$NON-NLS-1$ + } + final MglibInterface mglib = (MglibInterface) mgplugin; + CACHED = mglib; } - final MglibInterface mglib = (MglibInterface) mgplugin; - return mglib; + return CACHED; } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 603f43a2..625640e7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -19,7 +19,7 @@ import java.util.logging.Logger; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.ArenaTypeProvider; import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; @@ -28,7 +28,7 @@ * * @author mepeisen */ -public interface MinigameInterface extends ConfigInterface +public interface MinigameInterface extends ConfigInterface, ArenaTypeProvider { // TODO Add support for default main lobby @@ -51,29 +51,6 @@ public interface MinigameInterface extends ConfigInterface */ MessagesConfigInterface getMessages(); - /** - * Returns the type of arenas declared for this minigame - * - * @return arena types. - */ - Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); - - /** - * Returns the default arena type. - * - * @return default arena type or {@code null} if it was not found. - */ - ArenaTypeDeclarationInterface getDefaultType(); - - /** - * Returns the arena type with given name. - * - * @param name - * arena type name. - * @return arena type or {@code null} if it was not found. - */ - ArenaTypeDeclarationInterface getType(String name); - /** * Returns all declared arenas within this minigame. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java new file mode 100644 index 00000000..d5124b87 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java @@ -0,0 +1,37 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api; + +/** + * Base interface for all rules identifications. + * + * <p> + * You should not use this interface directly. Use the child interfaces instead. + * </p> + * + * @author mepeisen + */ +public interface RuleId +{ + + /** + * Returns the name of the enumeration value. + * + * @return enumeration value name. + */ + String name(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java index 2e16b0eb..2e2180b3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java @@ -17,7 +17,14 @@ import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; +import com.github.mce.minigames.api.arena.rules.AdminRuleSet; import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; +import com.github.mce.minigames.api.arena.rules.MatchRuleSet; +import com.github.mce.minigames.api.arena.rules.PlayerRuleSet; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleSet; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleSet; /** * A builder to create arena types. @@ -43,29 +50,144 @@ public interface ArenaTypeBuilderInterface ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) throws MinigameException; /** - * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. + * Applies rule sets for administration. * - * @param type + * @param set + * the admin rule sets. * @return this object for chaining. * @throws MinigameException - * thrown if this method is called twice or too late. + * thrown if the admin rule set was invalid. + */ + ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws MinigameException; + + /** + * Applies rule sets for components. + * + * @param set + * the component rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if the component rule set was invalid. + */ + ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws MinigameException; + + /** + * Applies rule sets for running match. + * + * @param set + * the match rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if the match rule set was invalid. + */ + ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws MinigameException; + + /** + * Applies rule sets for players within arenas. + * + * @param set + * the player rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if the player rule set was invalid. + */ + ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws MinigameException; + + /** + * Applies rule sets for teams within arenas. + * + * @param set + * the team rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if the team rule set was invalid. + */ + ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws MinigameException; + + /** + * Applies components to this arena type. + * + * @param ids + * the components set. + * @return this object for chaining. + * @throws MinigameException + * thrown if the components set was invalid. */ - ArenaTypeBuilderInterface inheritRules(ArenaTypeInterface type) throws MinigameException; + ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws MinigameException; + + /** + * Applies teams to this arena type. + * + * @param ids + * the teams. + * @return this object for chaining. + * @throws MinigameException + * thrown if the teams set was invalid. + */ + ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws MinigameException; + + /** + * Returns the currently applied teams. + * + * @return components set; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<TeamId> getTeams() throws MinigameException; + + /** + * Removes components from this team. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the components. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeTeams(TeamId... set) throws MinigameException; + + /** + * Returns the currently applied components. + * + * @return components set; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<ComponentId> getComponents() throws MinigameException; + + /** + * Removes components from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the components. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws MinigameException; /** * Returns the currently applied rule sets. * * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. */ - Iterable<ArenaRuleSet> getRuleSets() throws MinigameException; + Iterable<ArenaRuleSet> getArenaRuleSets() throws MinigameException; /** * Removes rule sets from this arena type. * * <p> - * If this method is called with rule sets that are not applied to this type this method - * silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. * </p> * * @param set @@ -76,4 +198,294 @@ public interface ArenaTypeBuilderInterface */ ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws MinigameException; + /** + * Returns the currently applied rule sets. + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<AdminRuleSet> getAdminRuleSets() throws MinigameException; + + /** + * Removes rule sets from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the admin rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws MinigameException; + + /** + * Returns the currently component rule sets. + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<ComponentRuleSet> getComponentRuleSets() throws MinigameException; + + /** + * Removes rule sets from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the component rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws MinigameException; + + /** + * Returns the currently applied rule sets. + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<MatchRuleSet> getMatchRuleSets() throws MinigameException; + + /** + * Removes rule sets from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the arena rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws MinigameException; + + /** + * Returns the currently applied rule sets. + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<PlayerRuleSet> getPlayerRuleSets() throws MinigameException; + + /** + * Removes rule sets from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the arena rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws MinigameException; + + /** + * Returns the currently applied rule sets. + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<TeamRuleSet> getTeamRuleSets() throws MinigameException; + + /** + * Removes rule sets from this arena type. + * + * <p> + * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. + * </p> + * + * @param set + * the arena rule sets. + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws MinigameException; + + /** + * Selects the starting phase for this arena type. + * + * @param phase + * starting phase + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws MinigameException; + + /** + * Adds a match phase + * + * @param phases + * match phase + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws MinigameException; + + /** + * Returns the starting phase. + * + * @return starting phase. + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + MatchPhaseId getStartingPhase() throws MinigameException; + + /** + * Returns the currently applied phases (excluding start phase). + * + * @return rule sets; changes (remove) will be reflected back to this builder + * @throws MinigameException + * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. + */ + Iterable<MatchPhaseId> getPhases() throws MinigameException; + + /** + * Inherits all phases (including start phase) from given arena; this method must be called at first before manipulating the phases. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all phases (excluding start phase) from given arena; this method must be called at first before manipulating the phases. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits the start phase but not the other phases from given arena; this method must be called at first before manipulating the phases. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all match rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all player rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all team rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all admin rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all component rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all rules from given arena; this method must be called at first before manipulating the rule sets. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all components from given arena; this method must be called at first before manipulating the components. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits all teams from given arena; this method must be called at first before manipulating the components. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws MinigameException; + + /** + * Inherits everything (all phases and all rules) from given arena. + * + * @param type + * @return this object for chaining. + * @throws MinigameException + * thrown if this method is called twice or too late. + */ + ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws MinigameException; + } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java index ce530528..81c79883 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.arena; +import com.github.mce.minigames.api.MglibInterface; + /** * An interface for enumerations that represent arena types. * @@ -24,21 +26,13 @@ public interface ArenaTypeInterface { /** - * Returns the minigame name declaring the arena type. + * Returns the declaring provider. * - * @return minigame name. + * @return provider. */ - default String getMinigame() + default ArenaTypeProvider getProvider() { - try - { - final ArenaTypes types = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(ArenaTypes.class); - return types.minigame(); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } + return MglibInterface.INSTANCE.get().getProviderFromArenaType(this); } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java new file mode 100644 index 00000000..d4be7c6b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java @@ -0,0 +1,121 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +import com.github.mce.minigames.api.arena.rules.AdminRuleId; +import com.github.mce.minigames.api.arena.rules.ArenaRuleId; +import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.PlayerRuleId; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleId; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleId; + +/** + * A base interface for providing arena types. + * + * @author mepeisen + */ +public interface ArenaTypeProvider +{ + + /** + * Returns the type of arenas declared for this minigame + * + * @return arena types. + */ + Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); + + /** + * Returns the default arena type. + * + * @return default arena type or {@code null} if it was not found. + */ + ArenaTypeDeclarationInterface getDefaultType(); + + /** + * Returns the arena type with given name. + * + * @param name + * arena type name. + * @return arena type or {@code null} if it was not found. + */ + ArenaTypeDeclarationInterface getType(String name); + + /** + * Returns the ids of declared administration rules. + * + * @return arena rules. + */ + Iterable<AdminRuleId> getAdminRules(); + + /** + * Returns the ids of declared match rules. + * + * @return match rules. + */ + Iterable<MatchRuleId> getMatchRules(); + + /** + * Returns the ids of declared player rules. + * + * @return player rules. + */ + Iterable<PlayerRuleId> getPlayerRules(); + + /** + * Returns the ids of declared team rules. + * + * @return team rules. + */ + Iterable<TeamRuleId> getTeamRules(); + + /** + * Returns the ids of declared component rules. + * + * @return component rules. + */ + Iterable<ComponentRuleId> getComponentRules(); + + /** + * Returns the ids of declared arena rules. + * + * @return arena rules. + */ + Iterable<ArenaRuleId> getArenaRules(); + + /** + * Returns the ids of declared components. + * + * @return components. + */ + Iterable<ComponentId> getComponents(); + + /** + * Returns the ids of declared phases. + * + * @return phases. + */ + Iterable<MatchPhaseId> getMatchPhases(); + + /** + * Returns the ids of teams. + * + * @return teams. + */ + Iterable<TeamId> getTeams(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java new file mode 100644 index 00000000..e8ce3cd1 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena; + +/** + * An interface used in enumerations to identify the match phases. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + */ +public interface MatchPhaseId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java new file mode 100644 index 00000000..c9b6b566 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java @@ -0,0 +1,34 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +import com.github.mce.minigames.api.RuleId; + +/** + * An interface used in enumerations to identify the administration rule. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + */ +public interface AdminRuleId extends RuleId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java new file mode 100644 index 00000000..d02caa93 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +/** + * Base interface for admin rule sets. + * + * @author mepeisen + */ +public interface AdminRuleSet +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java new file mode 100644 index 00000000..c8d665ab --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java @@ -0,0 +1,34 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +import com.github.mce.minigames.api.RuleId; + +/** + * An interface used in enumerations to identify the arena rule. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + */ +public interface ArenaRuleId extends RuleId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java new file mode 100644 index 00000000..ec067c3b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +import com.github.mce.minigames.api.RuleId; + +/** + * An interface used in enumerations to identify the match rule. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + * + */ +public interface MatchRuleId extends RuleId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java new file mode 100644 index 00000000..f76deac5 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +/** + * Base interface for match rule sets. + * + * @author mepeisen + */ +public interface MatchRuleSet +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java new file mode 100644 index 00000000..35786c2c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +import com.github.mce.minigames.api.RuleId; + +/** + * An interface used in enumerations to identify the player rule. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + * + */ +public interface PlayerRuleId extends RuleId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java new file mode 100644 index 00000000..4edf680b --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules; + +/** + * Base interface for player rule sets. + * + * @author mepeisen + */ +public interface PlayerRuleSet +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java new file mode 100644 index 00000000..bdb1bf3d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java @@ -0,0 +1,32 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.component; + +/** + * An interface used in enumerations to identify the arena rule. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + */ +public interface ComponentId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java new file mode 100644 index 00000000..2ce10a45 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.component; + +/** + * A component within arenas. + * + * @author mepeisen + */ +public interface ComponentInterface +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java new file mode 100644 index 00000000..6fad0f51 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java @@ -0,0 +1,34 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.component; + +import com.github.mce.minigames.api.RuleId; + +/** + * An interface used in enumerations to identify the arena rule. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * @author mepeisen + */ +public interface ComponentRuleId extends RuleId +{ + + // marker interface + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java new file mode 100644 index 00000000..7f15866c --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.component; + +/** + * Base interface for arena rule sets. + * + * @author mepeisen + */ +public interface ComponentRuleSet +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java new file mode 100644 index 00000000..463f3bb9 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java @@ -0,0 +1,393 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +package com.github.mce.minigames.api.component; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Random; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.configuration.ConfigurationSection; + +import com.github.mce.minigames.api.config.Configurable; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; + +/** + * Modified by: + * + * @author instancelabs + * + * Original version by: + * @author Pandemoneus - https://github.com/Pandemoneus + */ +public final class Cuboid implements Configurable +{ + /** high points. */ + private Location highPoints; + /** low points. */ + private Location lowPoints; + + /** + * Constructor for a null Cuboid; used by {@link ConfigurationValueInterface#getObject()}. + */ + public Cuboid() + { + this.highPoints = null; + this.lowPoints = null; + } + + /** + * Constructs a new cuboid. + * + * @param startLoc + * the first point + * @param endLoc + * the second point + */ + public Cuboid(final Location startLoc, final Location endLoc) + { + + if (startLoc != null && endLoc != null) + { + final int lowx = Math.min(startLoc.getBlockX(), endLoc.getBlockX()); + final int lowy = Math.min(startLoc.getBlockY(), endLoc.getBlockY()); + final int lowz = Math.min(startLoc.getBlockZ(), endLoc.getBlockZ()); + + final int highx = Math.max(startLoc.getBlockX(), endLoc.getBlockX()); + final int highy = Math.max(startLoc.getBlockY(), endLoc.getBlockY()); + final int highz = Math.max(startLoc.getBlockZ(), endLoc.getBlockZ()); + + this.highPoints = new Location(startLoc.getWorld(), highx, highy, highz); + this.lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz); + } + else + { + this.highPoints = null; + this.lowPoints = null; + } + + } + + /** + * Returns a new cuboid with given low locations. + * + * @param lowPoints + * @return new cuboid + */ + public Cuboid setLowLoc(Location lowPoints) + { + return new Cuboid(lowPoints, this.highPoints == null ? lowPoints : this.highPoints); + } + + /** + * Returns a new cuboid with given high location. + * + * @param highPoints + * @return new cuboid + */ + public Cuboid setHighLoc(Location highPoints) + { + return new Cuboid(this.lowPoints == null ? highPoints : this.lowPoints, highPoints); + } + + /** + * Determines whether the passed area is within this area. + * + * @param area + * the area to check + * @return true if the area is within this area, otherwise false + */ + public boolean isAreaWithinArea(final Cuboid area) + { + return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints)); + } + + /** + * Determines whether the this cuboid contains the passed location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid, otherwise false + */ + public boolean containsLoc(final Location loc) + { + if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + { + return false; + } + + return this.lowPoints.getBlockX() <= loc.getBlockX() && this.highPoints.getBlockX() >= loc.getBlockX() && this.lowPoints.getBlockZ() <= loc.getBlockZ() + && this.highPoints.getBlockZ() >= loc.getBlockZ() && this.lowPoints.getBlockY() <= loc.getBlockY() && this.highPoints.getBlockY() >= loc.getBlockY(); + } + + /** + * Determines whether the this cuboid contains the passed location without y coord. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid without y coord, otherwise false + */ + public boolean containsLocWithoutY(final Location loc) + { + if (this.highPoints == null || this.lowPoints == null) + { + return false; + } + if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + { + return false; + } + + return this.lowPoints.getBlockX() <= loc.getBlockX() && this.highPoints.getBlockX() >= loc.getBlockX() && this.lowPoints.getBlockZ() <= loc.getBlockZ() + && this.highPoints.getBlockZ() >= loc.getBlockZ(); + } + + /** + * Determines whether the this cuboid contains the passed location without y coord and by including the 2 blocks beyond the location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid without y coord, otherwise false + */ + public boolean containsLocWithoutYD(final Location loc) + { + if (this.highPoints == null || this.lowPoints == null) + { + return false; + } + if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + { + return false; + } + + return this.lowPoints.getBlockX() <= loc.getBlockX() + 2 && this.highPoints.getBlockX() >= loc.getBlockX() - 2 && this.lowPoints.getBlockZ() <= loc.getBlockZ() + 2 + && this.highPoints.getBlockZ() >= loc.getBlockZ() - 2; + } + + /** + * Returns the volume of this cuboid. + * + * @return the volume of this cuboid + */ + public long getSize() + { + return Math.abs(this.getXSize() * this.getYSize() * this.getZSize()); + } + + /** + * Determines a random location inside the cuboid and returns it. + * + * @return a random location within the cuboid + */ + public Location getRandomLocation() + { + final World world = this.getWorld(); + final Random randomGenerator = new Random(); + + Location result = new Location(world, this.highPoints.getBlockX(), this.highPoints.getBlockY(), this.highPoints.getZ()); + + if (this.getSize() > 1) + { + final double randomX = this.lowPoints.getBlockX() + randomGenerator.nextInt(this.getXSize()); + final double randomY = this.lowPoints.getBlockY() + randomGenerator.nextInt(this.getYSize()); + final double randomZ = this.lowPoints.getBlockZ() + randomGenerator.nextInt(this.getZSize()); + + result = new Location(world, randomX, randomY, randomZ); + } + + return result; + } + + /** + * Determines a random location inside the cuboid that is suitable for mob spawning and returns it. + * + * @return a random location inside the cuboid that is suitable for mob spawning + */ + public Location getRandomLocationForMobs() + { + final Location temp = this.getRandomLocation(); + + return new Location(temp.getWorld(), temp.getBlockX() + 0.5, temp.getBlockY() + 0.5, temp.getBlockZ() + 0.5); + } + + /** + * Returns the x span of this cuboid. + * + * @return the x span of this cuboid + */ + public int getXSize() + { + return (this.highPoints.getBlockX() - this.lowPoints.getBlockX()) + 1; + } + + /** + * Returns the y span of this cuboid. + * + * @return the y span of this cuboid + */ + public int getYSize() + { + return (this.highPoints.getBlockY() - this.lowPoints.getBlockY()) + 1; + } + + /** + * Returns the z span of this cuboid. + * + * @return the z span of this cuboid + */ + public int getZSize() + { + return (this.highPoints.getBlockZ() - this.lowPoints.getBlockZ()) + 1; + } + + /** + * Returns the higher location of this cuboid. + * + * @return the higher location of this cuboid + */ + public Location getHighLoc() + { + return this.highPoints; + } + + /** + * Returns the lower location of this cuboid. + * + * @return the lower location of this cuboid + */ + public Location getLowLoc() + { + return this.lowPoints; + } + + /** + * Returns the world this cuboid is in. + * + * @return the world this cuboid is in + */ + public World getWorld() + { + return this.highPoints.getWorld(); + } + + /** + * Saves the cuboid to a Map. + * + * @return the cuboid in a Map + */ + private Map<String, Object> save() + { + final Map<String, Object> root = new LinkedHashMap<>(); + + root.put("World", this.highPoints.getWorld().getName()); //$NON-NLS-1$ + root.put("X1", this.highPoints.getBlockX()); //$NON-NLS-1$ + root.put("Y1", this.highPoints.getBlockY()); //$NON-NLS-1$ + root.put("Z1", this.highPoints.getBlockZ()); //$NON-NLS-1$ + root.put("X2", this.lowPoints.getBlockX()); //$NON-NLS-1$ + root.put("Y2", this.lowPoints.getBlockY()); //$NON-NLS-1$ + root.put("Z2", this.lowPoints.getBlockZ()); //$NON-NLS-1$ + + return root; + } + + /** + * Loads the cuboid from a Map. + * + * @param root + * the Map + * @throws IllegalArgumentException + */ + private void load(final Map<String, Object> root) throws IllegalArgumentException + { + if (root == null) + { + throw new IllegalArgumentException("Invalid root map!"); //$NON-NLS-1$ + } + + final World world = Bukkit.getServer().getWorld((String) root.get("World")); //$NON-NLS-1$ + final int x1 = (Integer) root.get("X1"); //$NON-NLS-1$ + final int y1 = (Integer) root.get("Y1"); //$NON-NLS-1$ + final int z1 = (Integer) root.get("Z1"); //$NON-NLS-1$ + final int x2 = (Integer) root.get("X2"); //$NON-NLS-1$ + final int y2 = (Integer) root.get("Y2"); //$NON-NLS-1$ + final int z2 = (Integer) root.get("Z2"); //$NON-NLS-1$ + + this.lowPoints = new Location(world, x1, y1, z1); + this.highPoints = new Location(world, x2, y2, z2); + } + + @Override + public void readFromConfig(ConfigurationSection section) + { + this.load(section.getValues(false)); + } + + @Override + public void writeToConfig(ConfigurationSection section) + { + for (final Map.Entry<String, Object> entry : this.save().entrySet()) + { + section.set(entry.getKey(), entry.getValue()); + } + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() + { + return new StringBuilder("(").append(this.lowPoints.getBlockX()).append(", ").append(this.lowPoints.getBlockY()).append(", ").append(this.lowPoints.getBlockZ()).append(") to (") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .append(this.highPoints.getBlockX()).append(", ").append(this.highPoints.getBlockY()).append(", ").append(this.highPoints.getBlockZ()).append(")").toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Returns a raw representation that is easy to read for Java. + * + * @return a raw representation of this cuboid + */ + public String toRaw() + { + return new StringBuilder(this.getWorld().getName()).append(",").append(this.lowPoints.getBlockX()).append(",").append(this.lowPoints.getBlockY()).append(",").append(this.lowPoints.getBlockZ()) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + .append(",").append(this.highPoints.getBlockX()).append(",").append(this.highPoints.getBlockY()).append(",").append(this.highPoints.getBlockZ()).toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Normalizes the cuboid. Making the lowLoc really the lowLoc and the highLoc really to highLoc. + * + * @return normalized cuboid. + */ + public Cuboid normalize() + { + if (this.lowPoints == null) + { + return new Cuboid(); + } + final Location low = new Location( + this.getWorld(), + Math.min(this.lowPoints.getBlockX(), this.highPoints.getBlockX()), + Math.min(this.lowPoints.getBlockY(), this.highPoints.getBlockY()), + Math.min(this.lowPoints.getBlockZ(), this.highPoints.getBlockZ())); + final Location high = new Location( + this.getWorld(), + Math.max(this.lowPoints.getBlockX(), this.highPoints.getBlockX()), + Math.max(this.lowPoints.getBlockY(), this.highPoints.getBlockY()), + Math.max(this.lowPoints.getBlockZ(), this.highPoints.getBlockZ())); + return new Cuboid(low, high); + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java index 4dc7c5f2..c304fb5b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java @@ -74,6 +74,30 @@ static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface return calculate(val, clazz, calc); } + /** + * Calculates a value by using a calculator func. + * + * @param val + * @param clazz + * @param path + * @param calculator + * @param defaultValue + * @return calculator func. + */ + static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, ValueCalculator<Ret, Annot> calculator, ValueCalculator<Ret, Annot> defaultValue) + { + final Calculator<Ret, Annot> calc = (val2, configs, config, lib, minigame) -> { + final String spath = path.supply(val, configs, config, lib); + Ret res = minigame.getConfig(configs.file()).isSet(spath) ? calculator.supply(val, configs, config, lib, minigame, spath) : null; + if (res == null) + { + res = defaultValue.supply(val, configs, config, lib, minigame, spath); + } + return res; + }; + return calculate(val, clazz, calc); + } + /** * Calculates a value by using a calculator func. * @@ -104,9 +128,12 @@ static <Ret, Annot extends Annotation> Ret[] calculateList(ConfigurationValueInt final Calculator<Ret[], Annot> calc = (val2, configs, config, lib, minigame) -> { final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path.supply(val, configs, config, lib)); final List<Ret> list = new ArrayList<>(); - for (final String key : section.getKeys(false)) + if (section != null) { - list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); + for (final String key : section.getKeys(false)) + { + list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); + } } return list.toArray((Ret[]) Array.newInstance(retClazz, list.size())); }; @@ -204,7 +231,11 @@ static void consume(ConfigurationValueInterface val, String subpath, ValueConsum static <T, Annot extends Annotation> void consumeList(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, T[] value, ArrayValueConsumer<T, Annot> consumer) { final ValueConsumer<Annot> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String spath) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + if (section == null) + { + section = minigame.getConfig(configs.file()).createSection(spath); + } for (final String key : section.getKeys(false)) { section.set(key, null); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index 877460cd..070f2b17 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -17,9 +17,11 @@ import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Set; +import org.apache.commons.lang.ArrayUtils; import org.bukkit.Color; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; @@ -1548,7 +1550,10 @@ default ItemStack getItemStack() { return ConfigurationTool.calculate( this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getItemStack(path).clone()); + (val, configs, config, lib, minigame, path) -> { + final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(path); + return stack == null ? null : stack.clone(); + }); } /** @@ -1608,7 +1613,9 @@ default boolean[] getBooleanList() { final List<Boolean> list = ConfigurationTool.calculate( this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBooleanList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBooleanList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final boolean[] result = new boolean[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1623,7 +1630,9 @@ default byte[] getByteList() { final List<Byte> list = ConfigurationTool.calculate( this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getByteList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getByteList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final byte[] result = new byte[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1638,7 +1647,9 @@ default char[] getCharacterList() { final List<Character> list = ConfigurationTool.calculate( this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getCharacterList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getCharacterList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final char[] result = new char[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1677,7 +1688,9 @@ default double[] getDoubleList() { final List<Double> list = ConfigurationTool.calculate( this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDoubleList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDoubleList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final double[] result = new double[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1692,7 +1705,9 @@ default float[] getFloatList() { final List<Float> list = ConfigurationTool.calculate( this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getFloatList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getFloatList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final float[] result = new float[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1731,7 +1746,9 @@ default int[] getIntList() { final List<Integer> list = ConfigurationTool.calculate( this, ConfigurationIntList.class, ConfigurationTool.intListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getIntegerList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getIntegerList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final int[] result = new int[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1758,7 +1775,9 @@ default long[] getLongList() { final List<Long> list = ConfigurationTool.calculate( this, ConfigurationLongList.class, ConfigurationTool.longListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLongList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLongList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final long[] result = new long[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1773,7 +1792,9 @@ default short[] getShortList() { final List<Short> list = ConfigurationTool.calculate( this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getShortList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getShortList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) + ); final short[] result = new short[list.size()]; for (int i = 0; i < result.length; i++) result[i] = list.get(i); return result; @@ -1800,7 +1821,9 @@ default String[] getStringList() { final List<String> list = ConfigurationTool.calculate( this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getStringList(path)); + (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getStringList(path), + (val, configs, config, lib, minigame, path) -> Arrays.asList(config.defaultValue()) + ); return list.toArray(new String[list.size()]); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java index 804a11d1..dffd7c1e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java @@ -18,6 +18,7 @@ import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.component.ComponentInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.util.function.MgRunnable; import com.github.mce.minigames.api.util.function.MgSupplier; @@ -150,10 +151,9 @@ default ZoneInterface getCurrentZone() * * @return current component. */ - default MinigameInterface getCurrentComponent() + default ComponentInterface getCurrentComponent() { - // TODO - return this.getContext(MinigameInterface.class); + return this.getContext(ComponentInterface.class); } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java index db5e575e..f14226c2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java @@ -17,6 +17,8 @@ import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; /** * A special extension for the minigames library. @@ -31,6 +33,21 @@ */ public interface MinigameExtensionInterface extends ExtensionInterface { + + /** + * Creates a new arena type. + * + * @param name + * internal name of the arena type. + * @param type + * arena type. + * @param isDefault + * {@code true} if this is the default arena type for this minigame. + * @return the type builder. + * @throws MinigameException + * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. + */ + ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws MinigameException; /** * Will be called from plugin as soon as the plugin is disabled. @@ -40,6 +57,16 @@ public interface MinigameExtensionInterface extends ExtensionInterface */ void disable() throws MinigameException; - // TODO + /** + * Initialize this extension. + * + * <p> + * This method must be called at the end of the initialization process. + * </p> + * + * @throws MinigameException + * thrown if the extension declarations are not valid. + */ + void init() throws MinigameException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamId.java b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamId.java new file mode 100644 index 00000000..77b0d301 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamId.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.team; + +/** + * + * An interface used in enumerations to identify the team. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * + * @author mepeisen + * + */ +public interface TeamId +{ + + // marker only + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java new file mode 100644 index 00000000..3f3ae2e6 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java @@ -0,0 +1,37 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.team; + +import com.github.mce.minigames.api.RuleId; + +/** + * + * An interface used in enumerations to identify the team rules. + * + * <p> + * Inherit this interface in your enumeration classes. + * </p> + * + * + * @author mepeisen + * + */ +public interface TeamRuleId extends RuleId +{ + + // marker only + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java new file mode 100644 index 00000000..6e45a631 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java @@ -0,0 +1,28 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.team; + +/** + * Base interface for team rule sets. + * + * @author mepeisen + */ +public interface TeamRuleSet +{ + + // TODO + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java index 79f373e6..4b34c38a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java @@ -15,13 +15,56 @@ package com.github.mce.minigames.api.zones; +import org.bukkit.Location; + +import com.github.mce.minigames.api.component.Cuboid; + /** + * A zone/ cuboid component. + * * @author mepeisen * */ public interface ZoneInterface { + + /** + * Returns the cuboid. + * @return cuboid of this component. + */ + Cuboid getCuboid(); + + /** + * Sets the cuboid + * @param cub cuboid of the component. + */ + void setCuboid(Cuboid cub); + + /** + * Determines whether the this cuboid contains the passed location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid, otherwise false + */ + boolean containsLoc(final Location loc); + + /** + * Determines whether the this cuboid contains the passed location without y coord. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid without y coord, otherwise false + */ + boolean containsLocWithoutY(final Location loc); - // TODO + /** + * Determines whether the this cuboid contains the passed location without y coord and by including the 2 blocks beyond the location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid without y coord, otherwise false + */ + boolean containsLocWithoutYD(final Location loc); } diff --git a/APIv2/src/site/markdown/dev_minigame_arena_types.md b/APIv2/src/site/markdown/dev_minigame_arena_types.md index 37aefba4..07b07707 100644 --- a/APIv2/src/site/markdown/dev_minigame_arena_types.md +++ b/APIv2/src/site/markdown/dev_minigame_arena_types.md @@ -51,4 +51,6 @@ cause existing arenas to be corrupt. They cannot be loaded any more. The strings ### Inherit an existing arena type +To inherit and override an existing arena type you need to inherit the rules and match phases. + diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java new file mode 100644 index 00000000..7c2d3d81 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import org.junit.Test; + +import com.github.mce.minigames.api.config.CommonConfig; + +/** + * test case for {@link CommonConfig} + * + * @author mepeisen + */ +public class CommonConfigTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(CommonConfig.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java new file mode 100644 index 00000000..8b15f96f --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import org.junit.Test; + +import com.github.mce.minigames.api.CommonErrors; + +/** + * test case for {@link CommonErrors} + * + * @author mepeisen + */ +public class CommonErrorsTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(CommonErrors.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java new file mode 100644 index 00000000..c1bdf5c7 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import org.junit.Test; + +import com.github.mce.minigames.api.CommonMessages; + +/** + * test case for {@link CommonMessages} + * + * @author mepeisen + */ +public class CommonMessagesTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(CommonMessages.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java new file mode 100644 index 00000000..951e0f00 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java @@ -0,0 +1,923 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.Arrays; +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; +import org.bukkit.configuration.MemoryConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemFactory; +import org.bukkit.inventory.ItemStack; +import org.junit.Before; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.config.ConfigInterface; +import com.github.mce.minigames.api.config.Configurable; +import com.github.mce.minigames.api.config.ConfigurationBool; +import com.github.mce.minigames.api.config.ConfigurationBoolList; +import com.github.mce.minigames.api.config.ConfigurationByte; +import com.github.mce.minigames.api.config.ConfigurationByteList; +import com.github.mce.minigames.api.config.ConfigurationCharacter; +import com.github.mce.minigames.api.config.ConfigurationCharacterList; +import com.github.mce.minigames.api.config.ConfigurationColor; +import com.github.mce.minigames.api.config.ConfigurationColorList; +import com.github.mce.minigames.api.config.ConfigurationDouble; +import com.github.mce.minigames.api.config.ConfigurationDoubleList; +import com.github.mce.minigames.api.config.ConfigurationFloat; +import com.github.mce.minigames.api.config.ConfigurationFloatList; +import com.github.mce.minigames.api.config.ConfigurationInt; +import com.github.mce.minigames.api.config.ConfigurationIntList; +import com.github.mce.minigames.api.config.ConfigurationItemStack; +import com.github.mce.minigames.api.config.ConfigurationItemStackList; +import com.github.mce.minigames.api.config.ConfigurationLong; +import com.github.mce.minigames.api.config.ConfigurationLongList; +import com.github.mce.minigames.api.config.ConfigurationObject; +import com.github.mce.minigames.api.config.ConfigurationObjectList; +import com.github.mce.minigames.api.config.ConfigurationPlayer; +import com.github.mce.minigames.api.config.ConfigurationPlayerList; +import com.github.mce.minigames.api.config.ConfigurationSection; +import com.github.mce.minigames.api.config.ConfigurationShort; +import com.github.mce.minigames.api.config.ConfigurationShortList; +import com.github.mce.minigames.api.config.ConfigurationString; +import com.github.mce.minigames.api.config.ConfigurationStringList; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.config.ConfigurationValues; +import com.github.mce.minigames.api.config.ConfigurationVector; +import com.github.mce.minigames.api.config.ConfigurationVectorList; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link ConfigurationValueInterface} + * + * @author mepeisen + */ +public class ConfigurationValueInterfaceTest +{ + + /** the config mock. */ + private ConfigInterface config; + /** mocked config file. */ + private MemoryConfiguration file; + /** server. */ + private Server server; + /** library. */ + private MglibInterface lib; + + /** + * Some setup. + */ + @Before + public void setup() + { + this.lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ + when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable + { + return "core." + invocation.getArgumentAt(0, String.class); //$NON-NLS-1$ + } + }); + this.config = mock(ConfigInterface.class); + when(this.lib.getConfigFromCfg(anyObject())).thenReturn(this.config); + this.file = new MemoryConfiguration(); + when(this.config.getConfig(anyString())).thenReturn(this.file); + this.server = mock(Server.class); + Whitebox.setInternalState(Bukkit.class, "server", this.server); //$NON-NLS-1$ + final ItemFactory itemFactory = mock(ItemFactory.class); + when(itemFactory.equals(anyObject(), anyObject())).thenReturn(Boolean.TRUE); + when(this.server.getItemFactory()).thenReturn(itemFactory); + } + + /** + * Tests {@link ConfigurationValueInterface#isset()} + */ + @Test + public void issetTest() + { + this.file.set("core.config.SomeBooleanFalse", Boolean.FALSE); //$NON-NLS-1$ + this.file.set("core.config.SomeSection.Foo", Boolean.FALSE); //$NON-NLS-1$ + + assertTrue(TestOptions.SomeBooleanFalse.isset()); + assertFalse(TestOptions.SomeBooleanTrue.isset()); + + assertTrue(TestOptions.SomeSection.isset()); + assertTrue(TestOptions.SomeSection.isset("Foo")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Bar")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeOtherSection.isset("Foo")); //$NON-NLS-1$ + } + + /** + * Tests {@link ConfigurationValueInterface#isset()} + */ + @Test(expected = IllegalStateException.class) + public void issetTestInvalie() + { + TestOptions.SomeBooleanFalse.isset("Foo"); //$NON-NLS-1$ + } + + /** + * Tests {@link ConfigurationValueInterface#path()} + */ + @Test(expected = IllegalStateException.class) + public void pathTestInvalid() + { + TestOptions.SomeDummy.path(); + } + + /** + * Tests isxxx methods + */ + @Test + public void isxxxTestInvalid() + { + assertFalse(TestOptions.SomeDummy.isBoolean()); + } + + /** + * Tests for setters and getters + */ + @Test + public void getsetTest() + { + // boolean + assertEquals(true, TestOptions.SomeBooleanTrue.getBoolean()); + assertEquals(false, TestOptions.SomeBooleanFalse.getBoolean()); + assertEquals(false, TestOptions.SomeOtherBoolean.getBoolean()); + assertArrayEquals(new boolean[]{true}, TestOptions.SomeBooleanList.getBooleanList()); + assertArrayEquals(new boolean[]{}, TestOptions.SomeOtherBooleanList.getBooleanList()); + + TestOptions.SomeBooleanTrue.setBoolean(false); + TestOptions.SomeBooleanFalse.setBoolean(true); + TestOptions.SomeOtherBoolean.setBoolean(false); + TestOptions.SomeBooleanList.setBooleanList(new boolean[]{false, false}); + TestOptions.SomeOtherBooleanList.setBooleanList(new boolean[]{false, false}); + + assertEquals(Boolean.FALSE, this.file.get(TestOptions.SomeBooleanTrue.path())); + assertEquals(Boolean.TRUE, this.file.get(TestOptions.SomeBooleanFalse.path())); + assertEquals(Boolean.FALSE, this.file.get(TestOptions.SomeOtherBoolean.path())); + assertEquals(Arrays.asList(false, false), this.file.get(TestOptions.SomeBooleanList.path())); + assertEquals(Arrays.asList(false, false), this.file.get(TestOptions.SomeOtherBooleanList.path())); + + assertEquals(false, TestOptions.SomeBooleanTrue.getBoolean()); + assertEquals(true, TestOptions.SomeBooleanFalse.getBoolean()); + assertEquals(false, TestOptions.SomeOtherBoolean.getBoolean()); + assertArrayEquals(new boolean[]{false, false}, TestOptions.SomeBooleanList.getBooleanList()); + assertArrayEquals(new boolean[]{false, false}, TestOptions.SomeOtherBooleanList.getBooleanList()); + + // byte + assertEquals(1, TestOptions.SomeByte1.getByte()); + assertEquals(2, TestOptions.SomeByte2.getByte()); + assertEquals(0, TestOptions.SomeOtherByte.getByte()); + assertArrayEquals(new byte[]{1, 2}, TestOptions.SomeByteList.getByteList()); + assertArrayEquals(new byte[]{}, TestOptions.SomeOtherByteList.getByteList()); + + TestOptions.SomeByte1.setByte((byte) 2); + TestOptions.SomeByte2.setByte((byte) 3); + TestOptions.SomeOtherByte.setByte((byte) 4); + TestOptions.SomeByteList.setByteList(new byte[]{(byte) 5, (byte) 6}); + TestOptions.SomeOtherByteList.setByteList(new byte[]{(byte) 5, (byte) 6}); + + assertEquals(Byte.valueOf((byte) 2), this.file.get(TestOptions.SomeByte1.path())); + assertEquals(Byte.valueOf((byte) 3), this.file.get(TestOptions.SomeByte2.path())); + assertEquals(Byte.valueOf((byte) 4), this.file.get(TestOptions.SomeOtherByte.path())); + assertEquals(Arrays.asList((byte) 5, (byte) 6), this.file.get(TestOptions.SomeByteList.path())); + assertEquals(Arrays.asList((byte) 5, (byte) 6), this.file.get(TestOptions.SomeOtherByteList.path())); + + assertEquals(2, TestOptions.SomeByte1.getByte()); + assertEquals(3, TestOptions.SomeByte2.getByte()); + assertEquals(4, TestOptions.SomeOtherByte.getByte()); + assertArrayEquals(new byte[]{5, 6}, TestOptions.SomeByteList.getByteList()); + assertArrayEquals(new byte[]{5, 6}, TestOptions.SomeOtherByteList.getByteList()); + + // char + assertEquals('a', TestOptions.SomeCharacterA.getCharacter()); + assertEquals('b', TestOptions.SomeCharacterB.getCharacter()); + assertEquals(' ', TestOptions.SomeOtherCharacter.getCharacter()); + assertArrayEquals(new char[]{'a', 'b'}, TestOptions.SomeCharacterList.getCharacterList()); + assertArrayEquals(new char[]{}, TestOptions.SomeOtherCharacterList.getCharacterList()); + + TestOptions.SomeCharacterA.setCharacter('d'); + TestOptions.SomeCharacterB.setCharacter('e'); + TestOptions.SomeOtherCharacter.setCharacter('f'); + TestOptions.SomeCharacterList.setCharacterList(new char[]{'q', 'w'}); + TestOptions.SomeOtherCharacterList.setCharacterList(new char[]{'e', 'r'}); + + assertEquals("d", this.file.get(TestOptions.SomeCharacterA.path())); //$NON-NLS-1$ + assertEquals("e", this.file.get(TestOptions.SomeCharacterB.path())); //$NON-NLS-1$ + assertEquals("f", this.file.get(TestOptions.SomeOtherCharacter.path())); //$NON-NLS-1$ + assertEquals(Arrays.asList('q', 'w'), this.file.get(TestOptions.SomeCharacterList.path())); + assertEquals(Arrays.asList('e', 'r'), this.file.get(TestOptions.SomeOtherCharacterList.path())); + + assertEquals('d', TestOptions.SomeCharacterA.getCharacter()); + assertEquals('e', TestOptions.SomeCharacterB.getCharacter()); + assertEquals('f', TestOptions.SomeOtherCharacter.getCharacter()); + assertArrayEquals(new char[]{'q', 'w'}, TestOptions.SomeCharacterList.getCharacterList()); + assertArrayEquals(new char[]{'e', 'r'}, TestOptions.SomeOtherCharacterList.getCharacterList()); + + // color + assertEquals(Color.fromRGB(0x102030), TestOptions.SomeColorA.getColor()); + assertEquals(Color.fromRGB(0x203040), TestOptions.SomeColorB.getColor()); + assertEquals(Color.fromRGB(0), TestOptions.SomeOtherColor.getColor()); + assertArrayEquals(new Color[]{}, TestOptions.SomeColorList.getColorList()); + assertArrayEquals(new Color[]{}, TestOptions.SomeOtherColorList.getColorList()); + + TestOptions.SomeColorA.setColor(Color.RED); + TestOptions.SomeColorB.setColor(Color.BLUE); + TestOptions.SomeOtherColor.setColor(Color.AQUA); + TestOptions.SomeColorList.setColorList(new Color[]{Color.BLACK, Color.FUCHSIA}); + TestOptions.SomeOtherColorList.setColorList(new Color[]{Color.GREEN, Color.LIME}); + + assertEquals(Color.RED, this.file.get(TestOptions.SomeColorA.path())); + assertEquals(Color.BLUE, this.file.get(TestOptions.SomeColorB.path())); + assertEquals(Color.AQUA, this.file.get(TestOptions.SomeOtherColor.path())); +// assertEquals(Arrays.asList(Color.BLACK, Color.FUCHSIA), this.file.get(TestOptions.SomeColorList.path())); +// assertEquals(Arrays.asList(Color.GREEN, Color.LIME), this.file.get(TestOptions.SomeOtherColorList.path())); + + assertEquals(Color.RED, TestOptions.SomeColorA.getColor()); + assertEquals(Color.BLUE, TestOptions.SomeColorB.getColor()); + assertEquals(Color.AQUA, TestOptions.SomeOtherColor.getColor()); + assertArrayEquals(new Color[]{Color.BLACK, Color.FUCHSIA}, TestOptions.SomeColorList.getColorList()); + assertArrayEquals(new Color[]{Color.GREEN, Color.LIME}, TestOptions.SomeOtherColorList.getColorList()); + + // double + assertEquals(0.5, TestOptions.SomeDoubleA.getDouble(), 0); + assertEquals(0.75, TestOptions.SomeDoubleB.getDouble(), 0); + assertEquals(0d, TestOptions.SomeOtherDouble.getDouble(), 0); + assertArrayEquals(new double[]{1.1, 1.2}, TestOptions.SomeDoubleList.getDoubleList(), 0); + assertArrayEquals(new double[]{}, TestOptions.SomeOtherDoubleList.getDoubleList(), 0); + + TestOptions.SomeDoubleA.setDouble(2.1); + TestOptions.SomeDoubleB.setDouble(2.5); + TestOptions.SomeOtherDouble.setDouble(2.3); + TestOptions.SomeDoubleList.setDoubleList(new double[]{2.2, 2.4}); + TestOptions.SomeOtherDoubleList.setDoubleList(new double[]{2.6, 2.7}); + + assertEquals(Double.valueOf(2.1), this.file.get(TestOptions.SomeDoubleA.path())); + assertEquals(Double.valueOf(2.5), this.file.get(TestOptions.SomeDoubleB.path())); + assertEquals(Double.valueOf(2.3), this.file.get(TestOptions.SomeOtherDouble.path())); + assertEquals(Arrays.asList(2.2, 2.4), this.file.get(TestOptions.SomeDoubleList.path())); + assertEquals(Arrays.asList(2.6, 2.7), this.file.get(TestOptions.SomeOtherDoubleList.path())); + + assertEquals(2.1, TestOptions.SomeDoubleA.getDouble(), 0); + assertEquals(2.5, TestOptions.SomeDoubleB.getDouble(), 0); + assertEquals(2.3, TestOptions.SomeOtherDouble.getDouble(), 0); + assertArrayEquals(new double[]{2.2, 2.4}, TestOptions.SomeDoubleList.getDoubleList(), 0); + assertArrayEquals(new double[]{2.6, 2.7}, TestOptions.SomeOtherDoubleList.getDoubleList(), 0); + + // float + assertEquals(0.5f, TestOptions.SomeFloatA.getFloat(), 0); + assertEquals(0.75f, TestOptions.SomeFloatB.getFloat(), 0); + assertEquals(0f, TestOptions.SomeOtherFloat.getFloat(), 0); + assertArrayEquals(new float[]{1.1f, 1.2f}, TestOptions.SomeFloatList.getFloatList(), 0); + assertArrayEquals(new float[]{}, TestOptions.SomeOtherFloatList.getFloatList(), 0); + + TestOptions.SomeFloatA.setFloat(2.1f); + TestOptions.SomeFloatB.setFloat(2.5f); + TestOptions.SomeOtherFloat.setFloat(2.3f); + TestOptions.SomeFloatList.setFloatList(new float[]{2.2f, 2.4f}); + TestOptions.SomeOtherFloatList.setFloatList(new float[]{2.6f, 2.7f}); + + assertEquals(Float.valueOf(2.1f), this.file.get(TestOptions.SomeFloatA.path())); + assertEquals(Float.valueOf(2.5f), this.file.get(TestOptions.SomeFloatB.path())); + assertEquals(Float.valueOf(2.3f), this.file.get(TestOptions.SomeOtherFloat.path())); + assertEquals(Arrays.asList(2.2f, 2.4f), this.file.get(TestOptions.SomeFloatList.path())); + assertEquals(Arrays.asList(2.6f, 2.7f), this.file.get(TestOptions.SomeOtherFloatList.path())); + + assertEquals(2.1f, TestOptions.SomeFloatA.getFloat(), 0); + assertEquals(2.5f, TestOptions.SomeFloatB.getFloat(), 0); + assertEquals(2.3f, TestOptions.SomeOtherFloat.getFloat(), 0); + assertArrayEquals(new float[]{2.2f, 2.4f}, TestOptions.SomeFloatList.getFloatList(), 0); + assertArrayEquals(new float[]{2.6f, 2.7f}, TestOptions.SomeOtherFloatList.getFloatList(), 0); + + // int + assertEquals(1, TestOptions.SomeInt1.getInt()); + assertEquals(2, TestOptions.SomeInt2.getInt()); + assertEquals(0, TestOptions.SomeOtherInt.getInt()); + assertArrayEquals(new int[]{1, 2}, TestOptions.SomeIntList.getIntList()); + assertArrayEquals(new int[]{}, TestOptions.SomeOtherIntList.getIntList()); + + TestOptions.SomeInt1.setInt(2); + TestOptions.SomeInt2.setInt(3); + TestOptions.SomeOtherInt.setInt(4); + TestOptions.SomeIntList.setIntList(new int[]{5, 6}); + TestOptions.SomeOtherIntList.setIntList(new int[]{5, 6}); + + assertEquals(Integer.valueOf(2), this.file.get(TestOptions.SomeInt1.path())); + assertEquals(Integer.valueOf(3), this.file.get(TestOptions.SomeInt2.path())); + assertEquals(Integer.valueOf(4), this.file.get(TestOptions.SomeOtherInt.path())); + assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeIntList.path())); + assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeOtherIntList.path())); + + assertEquals(2, TestOptions.SomeInt1.getInt()); + assertEquals(3, TestOptions.SomeInt2.getInt()); + assertEquals(4, TestOptions.SomeOtherInt.getInt()); + assertArrayEquals(new int[]{5, 6}, TestOptions.SomeIntList.getIntList()); + assertArrayEquals(new int[]{5, 6}, TestOptions.SomeOtherIntList.getIntList()); + + // item stack + assertNull(TestOptions.SomeItemStack.getItemStack()); + assertNull(TestOptions.SomeOtherItemStack.getItemStack()); + assertArrayEquals(new ItemStack[]{}, TestOptions.SomeItemStackList.getItemStackList()); + assertArrayEquals(new ItemStack[]{}, TestOptions.SomeOtherItemStackList.getItemStackList()); + + TestOptions.SomeItemStack.setItemStack(new ItemStack(Material.AIR)); + TestOptions.SomeOtherItemStack.setItemStack(new ItemStack(Material.ACACIA_DOOR)); + TestOptions.SomeItemStackList.setItemStackList(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}); + TestOptions.SomeOtherItemStackList.setItemStackList(new ItemStack[]{new ItemStack(Material.ACACIA_FENCE_GATE), new ItemStack(Material.ACACIA_STAIRS)}); + + assertEquals(new ItemStack(Material.AIR), this.file.get(TestOptions.SomeItemStack.path())); + assertEquals(new ItemStack(Material.ACACIA_DOOR), this.file.get(TestOptions.SomeOtherItemStack.path())); +// assertEquals(Arrays.asList(new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)), this.file.get(TestOptions.SomeItemStackList.path())); +// assertEquals(Arrays.asList(new ItemStack(Material.ACACIA_FENCE_GATE), new ItemStack(Material.ACACIA_STAIRS)), this.file.get(TestOptions.SomeOtherItemStackList.path())); + + assertEquals(new ItemStack(Material.AIR), TestOptions.SomeItemStack.getItemStack()); + assertEquals(new ItemStack(Material.ACACIA_DOOR), TestOptions.SomeOtherItemStack.getItemStack()); + assertArrayEquals(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}, TestOptions.SomeItemStackList.getItemStackList()); + assertArrayEquals(new ItemStack[]{new ItemStack(Material.ACACIA_FENCE_GATE), new ItemStack(Material.ACACIA_STAIRS)}, TestOptions.SomeOtherItemStackList.getItemStackList()); + + // long + assertEquals(1, TestOptions.SomeLong1.getLong()); + assertEquals(2, TestOptions.SomeLong2.getLong()); + assertEquals(0, TestOptions.SomeOtherLong.getLong()); + assertArrayEquals(new long[]{1, 2}, TestOptions.SomeLongList.getLongList()); + assertArrayEquals(new long[]{}, TestOptions.SomeOtherLongList.getLongList()); + + TestOptions.SomeLong1.setLong(2); + TestOptions.SomeLong2.setLong(3); + TestOptions.SomeOtherLong.setLong(4); + TestOptions.SomeLongList.setLongList(new long[]{5, 6}); + TestOptions.SomeOtherLongList.setLongList(new long[]{5, 6}); + + assertEquals(Long.valueOf(2), this.file.get(TestOptions.SomeLong1.path())); + assertEquals(Long.valueOf(3), this.file.get(TestOptions.SomeLong2.path())); + assertEquals(Long.valueOf(4), this.file.get(TestOptions.SomeOtherLong.path())); + assertEquals(Arrays.asList(5l, 6l), this.file.get(TestOptions.SomeLongList.path())); + assertEquals(Arrays.asList(5l, 6l), this.file.get(TestOptions.SomeOtherLongList.path())); + + assertEquals(2, TestOptions.SomeLong1.getLong()); + assertEquals(3, TestOptions.SomeLong2.getLong()); + assertEquals(4, TestOptions.SomeOtherLong.getLong()); + assertArrayEquals(new long[]{5, 6}, TestOptions.SomeLongList.getLongList()); + assertArrayEquals(new long[]{5, 6}, TestOptions.SomeOtherLongList.getLongList()); + + // short + assertEquals(1, TestOptions.SomeShort1.getShort()); + assertEquals(2, TestOptions.SomeShort2.getShort()); + assertEquals(0, TestOptions.SomeOtherShort.getShort()); + assertArrayEquals(new short[]{1, 2}, TestOptions.SomeShortList.getShortList()); + assertArrayEquals(new short[]{}, TestOptions.SomeOtherShortList.getShortList()); + + TestOptions.SomeShort1.setShort((short) 2); + TestOptions.SomeShort2.setShort((short) 3); + TestOptions.SomeOtherShort.setShort((short) 4); + TestOptions.SomeShortList.setShortList(new short[]{5, 6}); + TestOptions.SomeOtherShortList.setShortList(new short[]{5, 6}); + + assertEquals(Short.valueOf((short) 2), this.file.get(TestOptions.SomeShort1.path())); + assertEquals(Short.valueOf((short) 3), this.file.get(TestOptions.SomeShort2.path())); + assertEquals(Short.valueOf((short) 4), this.file.get(TestOptions.SomeOtherShort.path())); + assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeShortList.path())); + assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeOtherShortList.path())); + + assertEquals(2, TestOptions.SomeShort1.getShort()); + assertEquals(3, TestOptions.SomeShort2.getShort()); + assertEquals(4, TestOptions.SomeOtherShort.getShort()); + assertArrayEquals(new short[]{5, 6}, TestOptions.SomeShortList.getShortList()); + assertArrayEquals(new short[]{5, 6}, TestOptions.SomeOtherShortList.getShortList()); + + // string + assertEquals("a", TestOptions.SomeStringA.getString()); //$NON-NLS-1$ + assertEquals("b", TestOptions.SomeStringB.getString()); //$NON-NLS-1$ + assertEquals("", TestOptions.SomeOtherString.getString()); //$NON-NLS-1$ + assertArrayEquals(new String[]{"a", "b"}, TestOptions.SomeStringList.getStringList()); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{}, TestOptions.SomeOtherStringList.getStringList()); + + TestOptions.SomeStringA.setString("d"); //$NON-NLS-1$ + TestOptions.SomeStringB.setString("e"); //$NON-NLS-1$ + TestOptions.SomeOtherString.setString("f"); //$NON-NLS-1$ + TestOptions.SomeStringList.setStringList(new String[]{"q", "w"}); //$NON-NLS-1$ //$NON-NLS-2$ + TestOptions.SomeOtherStringList.setStringList(new String[]{"e", "r"}); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals("d", this.file.get(TestOptions.SomeStringA.path())); //$NON-NLS-1$ + assertEquals("e", this.file.get(TestOptions.SomeStringB.path())); //$NON-NLS-1$ + assertEquals("f", this.file.get(TestOptions.SomeOtherString.path())); //$NON-NLS-1$ + assertEquals(Arrays.asList("q", "w"), this.file.get(TestOptions.SomeStringList.path())); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(Arrays.asList("e", "r"), this.file.get(TestOptions.SomeOtherStringList.path())); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals("d", TestOptions.SomeStringA.getString()); //$NON-NLS-1$ + assertEquals("e", TestOptions.SomeStringB.getString()); //$NON-NLS-1$ + assertEquals("f", TestOptions.SomeOtherString.getString()); //$NON-NLS-1$ + assertArrayEquals(new String[]{"q", "w"}, TestOptions.SomeStringList.getStringList()); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"e", "r"}, TestOptions.SomeOtherStringList.getStringList()); //$NON-NLS-1$ //$NON-NLS-2$ + + // player + assertNull(TestOptions.SomePlayer.getPlayer()); + assertNull(TestOptions.SomeOtherPlayer.getPlayer()); + assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomePlayerList.getPlayerList()); + assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeOtherPlayerList.getPlayerList()); + + final ArenaPlayerInterface player1 = createPlayer(); + final ArenaPlayerInterface player2 = createPlayer(); + final ArenaPlayerInterface player3 = createPlayer(); + final ArenaPlayerInterface player4 = createPlayer(); + final ArenaPlayerInterface player5 = createPlayer(); + final ArenaPlayerInterface player6 = createPlayer(); + + TestOptions.SomePlayer.setPlayer(player1); + TestOptions.SomeOtherPlayer.setPlayer(player2); + TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{player3, player4}); + TestOptions.SomeOtherPlayerList.setPlayerList(new ArenaPlayerInterface[]{player5, player6}); + + assertEquals(player1.getBukkitPlayer(), this.file.get(TestOptions.SomePlayer.path())); + assertEquals(player2.getBukkitPlayer(), this.file.get(TestOptions.SomeOtherPlayer.path())); +// assertEquals(Arrays.asList(player3.getBukkitPlayer(), player4.getBukkitPlayer()), this.file.get(TestOptions.SomePlayerList.path())); +// assertEquals(Arrays.asList(player5.getBukkitPlayer(), player6.getBukkitPlayer()), this.file.get(TestOptions.SomeOtherPlayerList.path())); + + assertEquals(player1, TestOptions.SomePlayer.getPlayer()); + assertEquals(player2, TestOptions.SomeOtherPlayer.getPlayer()); + assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomePlayerList.getPlayerList()); + assertArrayEquals(new ArenaPlayerInterface[]{player5, player6}, TestOptions.SomeOtherPlayerList.getPlayerList()); + + // TODO object + // TODO vector + + // TODO sections + } + + /** + * Creates a mocked player + * @return mocked player + */ + private ArenaPlayerInterface createPlayer() + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bPlayer = mock(Player.class); + final UUID uuid = UUID.randomUUID(); + when(player.getBukkitPlayer()).thenReturn(bPlayer); + when(player.getOfflinePlayer()).thenReturn(bPlayer); + when(player.getPlayerUUID()).thenReturn(uuid); + when(bPlayer.getUniqueId()).thenReturn(uuid); + when(this.server.getPlayer(uuid)).thenReturn(bPlayer); + when(this.lib.getPlayer(uuid)).thenReturn(player); + when(this.lib.getPlayer(bPlayer)).thenReturn(player); + when(this.lib.getPlayer((OfflinePlayer) bPlayer)).thenReturn(player); + return player; + } + + /** + * Tests {@link ConfigurationValueInterface#path()} + */ + @Test + public void pathTest() + { + assertEquals("core.config.SomeBooleanFalse", TestOptions.SomeBooleanFalse.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_boolean", TestOptions.SomeOtherBoolean.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeBooleanList", TestOptions.SomeBooleanList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_boolean_list", TestOptions.SomeOtherBooleanList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeByte1", TestOptions.SomeByte1.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_byte", TestOptions.SomeOtherByte.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeByteList", TestOptions.SomeByteList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_byte_list", TestOptions.SomeOtherByteList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeCharacterA", TestOptions.SomeCharacterA.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_character", TestOptions.SomeOtherCharacter.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeCharacterList", TestOptions.SomeCharacterList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_character_list", TestOptions.SomeOtherCharacterList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeColorA", TestOptions.SomeColorA.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_color", TestOptions.SomeOtherColor.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeColorList", TestOptions.SomeColorList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_color_list", TestOptions.SomeOtherColorList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeDoubleA", TestOptions.SomeDoubleA.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_double", TestOptions.SomeOtherDouble.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeDoubleList", TestOptions.SomeDoubleList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_double_list", TestOptions.SomeOtherDoubleList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeFloatA", TestOptions.SomeFloatA.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_float", TestOptions.SomeOtherFloat.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeFloatList", TestOptions.SomeFloatList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_float_list", TestOptions.SomeOtherFloatList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeInt1", TestOptions.SomeInt1.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_int", TestOptions.SomeOtherInt.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeIntList", TestOptions.SomeIntList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_int_list", TestOptions.SomeOtherIntList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeItemStack", TestOptions.SomeItemStack.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_itemstack", TestOptions.SomeOtherItemStack.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeItemStackList", TestOptions.SomeItemStackList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_itemstack_list", TestOptions.SomeOtherItemStackList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeSection", TestOptions.SomeSection.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_section", TestOptions.SomeOtherSection.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeLong1", TestOptions.SomeLong1.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_long", TestOptions.SomeOtherLong.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeLongList", TestOptions.SomeLongList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_long_list", TestOptions.SomeOtherLongList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeObject", TestOptions.SomeObject.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_object", TestOptions.SomeOtherObject.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeObjectList", TestOptions.SomeObjectList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_object_list", TestOptions.SomeOtherObjectList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomePlayer", TestOptions.SomePlayer.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_player", TestOptions.SomeOtherPlayer.path()); //$NON-NLS-1$ + assertEquals("core.config.SomePlayerList", TestOptions.SomePlayerList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_player_list", TestOptions.SomeOtherPlayerList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeShort1", TestOptions.SomeShort1.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_short", TestOptions.SomeOtherShort.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeShortList", TestOptions.SomeShortList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_short_list", TestOptions.SomeOtherShortList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeStringA", TestOptions.SomeStringA.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_string", TestOptions.SomeOtherString.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeStringList", TestOptions.SomeStringList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_string_list", TestOptions.SomeOtherStringList.path()); //$NON-NLS-1$ + + assertEquals("core.config.SomeVector", TestOptions.SomeVector.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_vector", TestOptions.SomeOtherVector.path()); //$NON-NLS-1$ + assertEquals("core.config.SomeVectorList", TestOptions.SomeVectorList.path()); //$NON-NLS-1$ + assertEquals("core.config.some_other_vector_list", TestOptions.SomeOtherVectorList.path()); //$NON-NLS-1$ + } + + /** + * Tests the isxx functions + */ + @Test + public void isXXTest() + { + assertTrue(TestOptions.SomeBooleanTrue.isBoolean()); + assertFalse(TestOptions.SomeBooleanTrue.isBooleanList()); + assertTrue(TestOptions.SomeBooleanList.isBooleanList()); + assertFalse(TestOptions.SomeBooleanList.isBoolean()); + + assertTrue(TestOptions.SomeByte1.isByte()); + assertFalse(TestOptions.SomeByte1.isByteList()); + assertTrue(TestOptions.SomeByteList.isByteList()); + assertFalse(TestOptions.SomeByteList.isByte()); + + assertTrue(TestOptions.SomeCharacterA.isCharacter()); + assertFalse(TestOptions.SomeCharacterA.isCharacterList()); + assertTrue(TestOptions.SomeCharacterList.isCharacterList()); + assertFalse(TestOptions.SomeCharacterList.isCharacter()); + + assertTrue(TestOptions.SomeColorA.isColor()); + assertFalse(TestOptions.SomeColorA.isColorList()); + assertTrue(TestOptions.SomeColorList.isColorList()); + assertFalse(TestOptions.SomeColorList.isColor()); + + assertTrue(TestOptions.SomeDoubleA.isDouble()); + assertFalse(TestOptions.SomeDoubleA.isDoubleList()); + assertTrue(TestOptions.SomeDoubleList.isDoubleList()); + assertFalse(TestOptions.SomeDoubleList.isDouble()); + + assertTrue(TestOptions.SomeFloatA.isFloat()); + assertFalse(TestOptions.SomeFloatA.isFloatList()); + assertTrue(TestOptions.SomeFloatList.isFloatList()); + assertFalse(TestOptions.SomeFloatList.isFloat()); + + assertTrue(TestOptions.SomeInt1.isInt()); + assertFalse(TestOptions.SomeInt1.isIntList()); + assertTrue(TestOptions.SomeIntList.isIntList()); + assertFalse(TestOptions.SomeIntList.isInt()); + + assertTrue(TestOptions.SomeItemStack.isItemStack()); + assertFalse(TestOptions.SomeItemStack.isItemStackList()); + assertTrue(TestOptions.SomeItemStackList.isItemStackList()); + assertFalse(TestOptions.SomeItemStackList.isItemStack()); + + assertTrue(TestOptions.SomeSection.isSection()); + assertFalse(TestOptions.SomeItemStack.isSection()); + + assertTrue(TestOptions.SomeLong1.isLong()); + assertFalse(TestOptions.SomeLong1.isLongList()); + assertTrue(TestOptions.SomeLongList.isLongList()); + assertFalse(TestOptions.SomeLongList.isLong()); + + assertTrue(TestOptions.SomeObject.isObject()); + assertFalse(TestOptions.SomeObject.isObjectList()); + assertTrue(TestOptions.SomeObjectList.isObjectList()); + assertFalse(TestOptions.SomeObjectList.isObject()); + + assertTrue(TestOptions.SomePlayer.isPlayer()); + assertFalse(TestOptions.SomePlayer.isPlayerList()); + assertTrue(TestOptions.SomePlayerList.isPlayerList()); + assertFalse(TestOptions.SomePlayerList.isPlayer()); + + assertTrue(TestOptions.SomeShort1.isShort()); + assertFalse(TestOptions.SomeShort1.isShortList()); + assertTrue(TestOptions.SomeShortList.isShortList()); + assertFalse(TestOptions.SomeShortList.isShort()); + + assertTrue(TestOptions.SomeStringA.isString()); + assertFalse(TestOptions.SomeStringA.isStringList()); + assertTrue(TestOptions.SomeStringList.isStringList()); + assertFalse(TestOptions.SomeStringList.isString()); + + assertTrue(TestOptions.SomeVector.isVector()); + assertFalse(TestOptions.SomeVector.isVectorList()); + assertTrue(TestOptions.SomeVectorList.isVectorList()); + assertFalse(TestOptions.SomeVectorList.isVector()); + } + + /** + * Some test options + */ + @ConfigurationValues(path = "config") + public static enum TestOptions implements ConfigurationValueInterface + { + /** some value. */ + @ConfigurationBool(defaultValue = false) + SomeBooleanFalse, + /** some value. */ + @ConfigurationBool(defaultValue = true) + SomeBooleanTrue, + /** some value. */ + @ConfigurationBool(name = "some_other_boolean") + SomeOtherBoolean, + + /** some value list. */ + @ConfigurationBoolList(defaultValue = {true}) + SomeBooleanList, + /** some value list. */ + @ConfigurationBoolList(name = "some_other_boolean_list") + SomeOtherBooleanList, + + /** some value. */ + @ConfigurationByte(defaultValue = 1) + SomeByte1, + /** some value. */ + @ConfigurationByte(defaultValue = 2) + SomeByte2, + /** some value. */ + @ConfigurationByte(name = "some_other_byte") + SomeOtherByte, + + /** some value list. */ + @ConfigurationByteList(defaultValue = {1, 2}) + SomeByteList, + /** some value list. */ + @ConfigurationByteList(name = "some_other_byte_list") + SomeOtherByteList, + + /** some value. */ + @ConfigurationCharacter(defaultValue = 'a') + SomeCharacterA, + /** some value. */ + @ConfigurationCharacter(defaultValue = 'b') + SomeCharacterB, + /** some value. */ + @ConfigurationCharacter(name = "some_other_character") + SomeOtherCharacter, + + /** some value list. */ + @ConfigurationCharacterList(defaultValue = {'a', 'b'}) + SomeCharacterList, + /** some value list. */ + @ConfigurationCharacterList(name = "some_other_character_list") + SomeOtherCharacterList, + + /** some value. */ + @ConfigurationColor(defaultRgb = 0x102030) + SomeColorA, + /** some value. */ + @ConfigurationColor(defaultRgb = 0x203040) + SomeColorB, + /** some value. */ + @ConfigurationColor(name = "some_other_color") + SomeOtherColor, + + /** some value list. */ + @ConfigurationColorList + SomeColorList, + /** some value list. */ + @ConfigurationColorList(name = "some_other_color_list") + SomeOtherColorList, + + /** some value. */ + @ConfigurationDouble(defaultValue = 0.5) + SomeDoubleA, + /** some value. */ + @ConfigurationDouble(defaultValue = 0.75) + SomeDoubleB, + /** some value. */ + @ConfigurationDouble(name = "some_other_double") + SomeOtherDouble, + + /** some value list. */ + @ConfigurationDoubleList(defaultValue = {1.1, 1.2}) + SomeDoubleList, + /** some value list. */ + @ConfigurationDoubleList(name = "some_other_double_list") + SomeOtherDoubleList, + + /** some value. */ + @ConfigurationFloat(defaultValue = 0.5f) + SomeFloatA, + /** some value. */ + @ConfigurationFloat(defaultValue = 0.75f) + SomeFloatB, + /** some value. */ + @ConfigurationFloat(name = "some_other_float") + SomeOtherFloat, + + /** some value list. */ + @ConfigurationFloatList(defaultValue = {1.1f, 1.2f}) + SomeFloatList, + /** some value list. */ + @ConfigurationFloatList(name = "some_other_float_list") + SomeOtherFloatList, + + /** some value. */ + @ConfigurationInt(defaultValue = 1) + SomeInt1, + /** some value. */ + @ConfigurationInt(defaultValue = 2) + SomeInt2, + /** some value. */ + @ConfigurationInt(name = "some_other_int") + SomeOtherInt, + + /** some value list. */ + @ConfigurationIntList(defaultValue = {1, 2}) + SomeIntList, + /** some value list. */ + @ConfigurationIntList(name = "some_other_int_list") + SomeOtherIntList, + + /** some value. */ + @ConfigurationItemStack + SomeItemStack, + /** some value. */ + @ConfigurationItemStack(name = "some_other_itemstack") + SomeOtherItemStack, + + /** some value list. */ + @ConfigurationItemStackList + SomeItemStackList, + /** some value list. */ + @ConfigurationItemStackList(name = "some_other_itemstack_list") + SomeOtherItemStackList, + + /** some value. */ + @ConfigurationSection + SomeSection, + /** some value. */ + @ConfigurationSection("some_other_section") + SomeOtherSection, + + /** some value. */ + @ConfigurationLong(defaultValue = 1) + SomeLong1, + /** some value. */ + @ConfigurationLong(defaultValue = 2) + SomeLong2, + /** some value. */ + @ConfigurationLong(name = "some_other_long") + SomeOtherLong, + + /** some value list. */ + @ConfigurationLongList(defaultValue = {1, 2}) + SomeLongList, + /** some value list. */ + @ConfigurationLongList(name = "some_other_long_list") + SomeOtherLongList, + + /** some value. */ + @ConfigurationObject(clazz = FooObject.class) + SomeObject, + /** some value. */ + @ConfigurationObject(clazz = FooObject.class, name = "some_other_object") + SomeOtherObject, + + /** some value list. */ + @ConfigurationObjectList(clazz = FooObject.class) + SomeObjectList, + /** some value list. */ + @ConfigurationObjectList(clazz = FooObject.class, name = "some_other_object_list") + SomeOtherObjectList, + + /** some value. */ + @ConfigurationPlayer + SomePlayer, + /** some value. */ + @ConfigurationPlayer(name = "some_other_player") + SomeOtherPlayer, + + /** some value list. */ + @ConfigurationPlayerList + SomePlayerList, + /** some value list. */ + @ConfigurationPlayerList(name = "some_other_player_list") + SomeOtherPlayerList, + + /** some value. */ + @ConfigurationShort(defaultValue = 1) + SomeShort1, + /** some value. */ + @ConfigurationShort(defaultValue = 2) + SomeShort2, + /** some value. */ + @ConfigurationShort(name = "some_other_short") + SomeOtherShort, + + /** some value list. */ + @ConfigurationShortList(defaultValue = {1, 2}) + SomeShortList, + /** some value list. */ + @ConfigurationShortList(name = "some_other_short_list") + SomeOtherShortList, + + /** some value. */ + @ConfigurationString(defaultValue = "a") + SomeStringA, + /** some value. */ + @ConfigurationString(defaultValue = "b") + SomeStringB, + /** some value. */ + @ConfigurationString(name = "some_other_string") + SomeOtherString, + + /** some value list. */ + @ConfigurationStringList(defaultValue = {"a", "b"}) + SomeStringList, + /** some value list. */ + @ConfigurationStringList(name = "some_other_string_list") + SomeOtherStringList, + + /** some value. */ + @ConfigurationVector + SomeVector, + /** some value. */ + @ConfigurationVector(name = "some_other_vector") + SomeOtherVector, + + /** some value list. */ + @ConfigurationVectorList + SomeVectorList, + /** some value list. */ + @ConfigurationVectorList(name = "some_other_vector_list") + SomeOtherVectorList, + + /** some invalid dummy value. */ + SomeDummy, + } + + /** + * A sample configurable + */ + private static final class FooObject implements Configurable + { + + @Override + public void readFromConfig(org.bukkit.configuration.ConfigurationSection section) + { + // empty + } + + @Override + public void writeToConfig(org.bukkit.configuration.ConfigurationSection section) + { + // empty + } + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java new file mode 100644 index 00000000..751694ea --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import org.junit.Test; + +import com.github.mce.minigames.api.LibState; + +/** + * test case for {@link LibState} + * + * @author mepeisen + */ +public class LibStateTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(LibState.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java new file mode 100644 index 00000000..61e6eccb --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java @@ -0,0 +1,42 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MinigameErrorCode; + +/** + * test case for {@link MinigameErrorCode} + * + * @author mepeisen + */ +public class MinigameErrorCodeTest +{ + + /** + * Tests {@link MinigameErrorCode#toName()} + */ + @Test + public void toNameTest() + { + assertEquals(CommonErrors.class.getName() + ".CannotStart", CommonErrors.CannotStart.toName()); //$NON-NLS-1$ + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java new file mode 100644 index 00000000..01124d1e --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java @@ -0,0 +1,48 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +/** + * Some shared test utility. + * + * @author mepeisen + */ +public class SharedUtil +{ + + /** + * tests some things on enumerations to satisfy code coverage. + * + * @param clazz + * enum class to test + */ + public static void testEnumClass(Class<? extends Enum<?>> clazz) + { + try + { + for (Object o : (Object[]) clazz.getMethod("values").invoke(null)) //$NON-NLS-1$ + { + clazz.getMethod("valueOf", String.class).invoke(null, o.toString()); //$NON-NLS-1$ + } + } + catch (Throwable e) + { + throw new RuntimeException(e); + } + + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java index 6aeb3eea..30f64cec 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java @@ -24,7 +24,7 @@ import com.github.mce.minigames.api.MinecraftVersionsType; /** - * Test for the version types. + * Test for {@link MinecraftVersionsType}. * * @author mepeisen * @see MinecraftVersionsType diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java new file mode 100644 index 00000000..421d80b3 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.arena; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenasConfig; +import com.github.mce.minigames.api.test.SharedUtil; + +/** + * test case for {@link ArenasConfig} + * + * @author mepeisen + */ +public class ArenasConfigTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(ArenasConfig.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java new file mode 100644 index 00000000..dd4b894a --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java @@ -0,0 +1,115 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.context; + +import static org.junit.Assert.assertSame; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.component.ComponentInterface; +import com.github.mce.minigames.api.context.MinigameContext; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.zones.ZoneInterface; + +/** + * test case for {@link MinigameContext} + * + * @author mepeisen + */ +public class MinigameContextTest +{ + + /** + * Tests {@link MinigameContext#getCurrentArena()} + */ + @Test + public void getCurrentArenaTest() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MgContextImpl ctx = mock(MgContextImpl.class); + when(ctx.getCurrentArena()).thenCallRealMethod(); + when(ctx.getContext(ArenaInterface.class)).thenReturn(arena); + + assertSame(arena, ctx.getCurrentArena()); + } + + /** + * Tests {@link MinigameContext#getCurrentComponent()} + */ + @Test + public void getCurrentComponentTest() + { + final ComponentInterface comp = mock(ComponentInterface.class); + final MgContextImpl ctx = mock(MgContextImpl.class); + when(ctx.getCurrentComponent()).thenCallRealMethod(); + when(ctx.getContext(ComponentInterface.class)).thenReturn(comp); + + assertSame(comp, ctx.getCurrentComponent()); + } + + /** + * Tests {@link MinigameContext#getCurrentZone()} + */ + @Test + public void getCurrentZoneTest() + { + final ZoneInterface zone = mock(ZoneInterface.class); + final MgContextImpl ctx = mock(MgContextImpl.class); + when(ctx.getCurrentZone()).thenCallRealMethod(); + when(ctx.getContext(ZoneInterface.class)).thenReturn(zone); + + assertSame(zone, ctx.getCurrentZone()); + } + + /** + * Tests {@link MinigameContext#getCurrentMinigame()} + */ + @Test + public void getCurrentMinigameTest() + { + final MinigameInterface mg = mock(MinigameInterface.class); + final MgContextImpl ctx = mock(MgContextImpl.class); + when(ctx.getCurrentMinigame()).thenCallRealMethod(); + when(ctx.getContext(MinigameInterface.class)).thenReturn(mg); + + assertSame(mg, ctx.getCurrentMinigame()); + } + + /** + * Tests {@link MinigameContext#getCurrentPlayer()} + */ + @Test + public void getCurrentPlayerTest() + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final MgContextImpl ctx = mock(MgContextImpl.class); + when(ctx.getCurrentPlayer()).thenCallRealMethod(); + when(ctx.getContext(ArenaPlayerInterface.class)).thenReturn(player); + + assertSame(player, ctx.getCurrentPlayer()); + } + + /** helper. */ + private abstract class MgContextImpl implements MinigameContext + { + // empty + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java new file mode 100644 index 00000000..632af44c --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java @@ -0,0 +1,76 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.gui; + +import static org.junit.Assert.assertSame; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.inventory.ItemStack; +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.gui.ClickGuiItem; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +/** + * test case for {@link ClickGuiItem} + * + * @author mepeisen + */ +public class ClickGuiItemTest +{ + + /** + * Tests {@link ClickGuiItem#ClickGuiItem(org.bukkit.inventory.ItemStack, com.github.mce.minigames.api.locale.LocalizedMessageInterface, com.github.mce.minigames.api.gui.ClickGuiItem.GuiItemHandler)} + */ + @Test + public void constructorTest() + { + final ItemStack item = mock(ItemStack.class); + when(item.clone()).thenReturn(item); + final LocalizedMessageInterface name = mock(LocalizedMessageInterface.class); + final ClickGuiItem.GuiItemHandler handler = mock(ClickGuiItem.GuiItemHandler.class); + + final ClickGuiItem guiItem = new ClickGuiItem(item, name, handler); + + verify(item, times(1)).clone(); + + assertSame(item, guiItem.getItemStack()); + assertSame(name, guiItem.getDisplayName()); + } + + /** + * Tests {@link ClickGuiItem#ClickGuiItem(org.bukkit.inventory.ItemStack, com.github.mce.minigames.api.locale.LocalizedMessageInterface, com.github.mce.minigames.api.gui.ClickGuiItem.GuiItemHandler)} + * @throws MinigameException thrown on errors + */ + @Test + public void handlerTest() throws MinigameException + { + final ItemStack item = mock(ItemStack.class); + when(item.clone()).thenReturn(item); + final LocalizedMessageInterface name = mock(LocalizedMessageInterface.class); + final ClickGuiItem.GuiItemHandler handler = mock(ClickGuiItem.GuiItemHandler.class); + + final ClickGuiItem guiItem = new ClickGuiItem(item, name, handler); + guiItem.handle(null, null, null); + + verify(handler, times(1)).handle(null, null, null); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java new file mode 100644 index 00000000..cc3941a1 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.perms; + +import org.junit.Test; + +import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.test.SharedUtil; + +/** + * test case for {@link CommonPermissions} + * + * @author mepeisen + */ +public class CommonPermissionsTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(CommonPermissions.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java new file mode 100644 index 00000000..e749ff00 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java @@ -0,0 +1,113 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.perms; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.perms.Permission; +import com.github.mce.minigames.api.perms.Permissions; +import com.github.mce.minigames.api.perms.PermissionsInterface; + +/** + * test case for {@link PermissionsInterface} + * + * @author mepeisen + */ +public class PermissionsInterfaceTest +{ + + /** + * Tests {@link PermissionsInterface#fullPath()} + */ + @Test + public void fullPathTest() + { + assertEquals("FOO.BAR", PermissionEnum.BAR.fullPath()); //$NON-NLS-1$ + assertEquals("FOO.BAZZER", PermissionEnum.BAZ.fullPath()); //$NON-NLS-1$ + } + + /** + * Tests {@link PermissionsInterface#fullPath()} + */ + @Test(expected = IllegalStateException.class) + public void fullPathTestInvalid1() + { + assertEquals("FOO.BAR", InvalidEnum1.BAR.fullPath()); //$NON-NLS-1$ + } + + /** + * Tests {@link PermissionsInterface#fullPath()} + */ + @Test(expected = IllegalStateException.class) + public void fullPathTestInvalid2() + { + assertEquals("FOO.BAR", InvalidEnum2.BAR.fullPath()); //$NON-NLS-1$ + } + + /** + * Tests {@link PermissionsInterface#resolveName()} + */ + @Test + public void resolveNameTest() + { + final MglibInterface mglib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", mglib); //$NON-NLS-1$ + when(mglib.resolveContextVar("FOO.BAR")).thenReturn("FOOBAR"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals("FOOBAR", PermissionEnum.BAR.resolveName()); //$NON-NLS-1$ + } + + /** + * some sample permission. + */ + @Permissions(value="FOO") + private static enum PermissionEnum implements PermissionsInterface + { + /** bar permission. */ + @Permission + BAR, + /** bazzer permission. */ + @Permission("BAZZER") + BAZ + } + + /** + * some sample permission. + */ + private static enum InvalidEnum1 implements PermissionsInterface + { + /** bar permission. */ + @Permission + BAR + } + + /** + * some sample permission. + */ + @Permissions(value="FOO") + private static enum InvalidEnum2 implements PermissionsInterface + { + /** bar permission. */ + BAR + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java new file mode 100644 index 00000000..3903d627 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java @@ -0,0 +1,154 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.player; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.entity.Player; +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.perms.PermissionsInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link ArenaPlayerInterface} + * + * @author mepeisen + */ +public class ArenaPlayerInterfaceTest +{ + + /** + * Tests {@link ArenaPlayerInterface#hasPerm(com.github.mce.minigames.api.perms.PermissionsInterface)} + * + * @throws MinigameException + * thrown on errors + */ + @Test + public void hasPermTestTrue() throws MinigameException + { + final PermissionsInterface perm = mock(PermissionsInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + when(player.checkPermission(perm)).thenReturn(Boolean.TRUE); + + assertTrue(ArenaPlayerInterface.hasPerm(perm).test(player)); + } + + /** + * Tests {@link ArenaPlayerInterface#hasPerm(com.github.mce.minigames.api.perms.PermissionsInterface)} + * + * @throws MinigameException + * thrown on errors + */ + @Test + public void hasPermTestFalse() throws MinigameException + { + final PermissionsInterface perm = mock(PermissionsInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + when(player.checkPermission(perm)).thenReturn(Boolean.FALSE); + + assertFalse(ArenaPlayerInterface.hasPerm(perm).test(player)); + } + + /** + * Tests {@link ArenaPlayerInterface#hasPerm(com.github.mce.minigames.api.perms.PermissionsInterface)} + * + * @throws MinigameException + * thrown on ok + */ + @SuppressWarnings("unchecked") + @Test(expected = MinigameException.class) + public void hasPermTestExc() throws MinigameException + { + final PermissionsInterface perm = mock(PermissionsInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + when(player.checkPermission(perm)).thenThrow(MinigameException.class); + + ArenaPlayerInterface.hasPerm(perm).test(player); + } + + // ***** + + /** + * Tests {@link ArenaPlayerInterface#isInArena()} + * + * @throws MinigameException + * thrown on errors + */ + @Test + public void isInArenaTestTrue() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ArenaInterface arena = mock(ArenaInterface.class); + when(player.getArena()).thenReturn(arena); + + assertTrue(ArenaPlayerInterface.isInArena().test(player)); + } + + /** + * Tests {@link ArenaPlayerInterface#isInArena()} + * + * @throws MinigameException + * thrown on errors + */ + @Test + public void isInArenaTestFalse() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + when(player.getArena()).thenReturn(null); + + assertFalse(ArenaPlayerInterface.isInArena().test(player)); + } + + // ***** + + /** + * Tests {@link ArenaPlayerInterface#isOnline()} + * + * @throws MinigameException + * thrown on errors + */ + @Test + public void isOnlineTestTrue() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkit = mock(Player.class); + when(player.getBukkitPlayer()).thenReturn(bukkit); + + assertTrue(ArenaPlayerInterface.isOnline().test(player)); + } + + /** + * Tests {@link ArenaPlayerInterface#isOnline()} + * + * @throws MinigameException + * thrown on errors + */ + @Test + public void isOnlineTestFalse() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + when(player.getBukkitPlayer()).thenReturn(null); + + assertFalse(ArenaPlayerInterface.isOnline().test(player)); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java index cf2c05e2..82568d93 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java @@ -28,6 +28,16 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; +import com.github.mce.minigames.api.RuleId; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.ArenaTypeProvider; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.arena.rules.AdminRuleId; +import com.github.mce.minigames.api.arena.rules.ArenaRuleId; +import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.PlayerRuleId; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationBool; import com.github.mce.minigames.api.config.ConfigurationBoolList; @@ -52,6 +62,8 @@ import com.github.mce.minigames.api.config.ConfigurationValues; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleId; import com.github.mce.minigames.impl.msg.MessagesConfig; /** @@ -59,7 +71,7 @@ * * @author mepeisen */ -class BaseImpl implements ConfigInterface +class BaseImpl implements ConfigInterface, ArenaTypeProvider { /** @@ -298,5 +310,161 @@ void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) { this.defaultConfigs = configs; } + + /** + * @param rules + */ + public void initRules(List<RuleId> rules) + { + // TODO Auto-generated method stub + + } + + /** + * @param components + */ + public void initComponents(List<ComponentId> components) + { + // TODO Auto-generated method stub + + } + + /** + * @param plist + */ + public void initPhases(List<MatchPhaseId> plist) + { + // TODO Auto-generated method stub + + } + + /** + * @param tlist + */ + public void initTeams(List<TeamId> tlist) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() + */ + @Override + public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() + */ + @Override + public ArenaTypeDeclarationInterface getDefaultType() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) + */ + @Override + public ArenaTypeDeclarationInterface getType(String name) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() + */ + @Override + public Iterable<AdminRuleId> getAdminRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() + */ + @Override + public Iterable<MatchRuleId> getMatchRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() + */ + @Override + public Iterable<PlayerRuleId> getPlayerRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() + */ + @Override + public Iterable<TeamRuleId> getTeamRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() + */ + @Override + public Iterable<ComponentRuleId> getComponentRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() + */ + @Override + public Iterable<ArenaRuleId> getArenaRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() + */ + @Override + public Iterable<ComponentId> getComponents() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() + */ + @Override + public Iterable<MatchPhaseId> getMatchPhases() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() + */ + @Override + public Iterable<TeamId> getTeams() + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java index 87014d44..ff8f694e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java @@ -18,12 +18,25 @@ import java.io.Serializable; import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; +import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.arena.rules.AdminRuleId; +import com.github.mce.minigames.api.arena.rules.ArenaRuleId; +import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.PlayerRuleId; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleId; /** + * + * * @author mepeisen - * */ class ExtensionImpl extends BaseImpl implements MinigameExtensionInterface { @@ -69,5 +82,145 @@ public void disable() throws MinigameException // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() + */ + @Override + public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() + */ + @Override + public ArenaTypeDeclarationInterface getDefaultType() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) + */ + @Override + public ArenaTypeDeclarationInterface getType(String name) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() + */ + @Override + public Iterable<AdminRuleId> getAdminRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() + */ + @Override + public Iterable<MatchRuleId> getMatchRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() + */ + @Override + public Iterable<PlayerRuleId> getPlayerRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() + */ + @Override + public Iterable<TeamRuleId> getTeamRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() + */ + @Override + public Iterable<ComponentRuleId> getComponentRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() + */ + @Override + public Iterable<ArenaRuleId> getArenaRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() + */ + @Override + public Iterable<ComponentId> getComponents() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() + */ + @Override + public Iterable<MatchPhaseId> getMatchPhases() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() + */ + @Override + public Iterable<TeamId> getTeams() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#createArenaType(java.lang.String, com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) + */ + @Override + public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#init() + */ + @Override + public void init() throws MinigameException + { + // TODO Auto-generated method stub + + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index 2cc08f05..37ba4df4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -24,7 +24,16 @@ import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.arena.rules.AdminRuleId; +import com.github.mce.minigames.api.arena.rules.ArenaRuleId; +import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.PlayerRuleId; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleId; /** * A read-only wrapper around minigame plugin impl @@ -125,5 +134,95 @@ public ArenaTypeDeclarationInterface getType(String name) { return this.delegate.getType(name); } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() + */ + @Override + public Iterable<AdminRuleId> getAdminRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() + */ + @Override + public Iterable<MatchRuleId> getMatchRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() + */ + @Override + public Iterable<PlayerRuleId> getPlayerRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() + */ + @Override + public Iterable<TeamRuleId> getTeamRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() + */ + @Override + public Iterable<ComponentRuleId> getComponentRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() + */ + @Override + public Iterable<ArenaRuleId> getArenaRules() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() + */ + @Override + public Iterable<ComponentId> getComponents() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() + */ + @Override + public Iterable<MatchPhaseId> getMatchPhases() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() + */ + @Override + public Iterable<TeamId> getTeams() + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 124cb1da..7b51dce1 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -18,7 +18,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -45,6 +44,7 @@ import org.bukkit.plugin.java.JavaPlugin; import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.CommonProviderInterface; import com.github.mce.minigames.api.LibState; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinecraftVersionsType; @@ -52,13 +52,22 @@ import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; +import com.github.mce.minigames.api.RuleId; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.ArenaTypeProvider; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.arena.rules.AdminRuleId; +import com.github.mce.minigames.api.arena.rules.ArenaRuleId; +import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.PlayerRuleId; import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.config.CommonConfig; import com.github.mce.minigames.api.config.ConfigInterface; import com.github.mce.minigames.api.config.ConfigurationValueInterface; @@ -70,10 +79,14 @@ import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import com.github.mce.minigames.api.sign.SignInterface; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleId; import com.github.mce.minigames.api.util.function.MgRunnable; import com.github.mce.minigames.api.util.function.MgSupplier; import com.github.mce.minigames.api.zones.ZoneInterface; +import com.github.mce.minigames.impl.component.AbstractCuboidComponent; import com.github.mce.minigames.impl.component.ComponentRegistry; +import com.github.mce.minigames.impl.component.WorldChunk; import com.github.mce.minigames.impl.context.ArenaInterfaceProvider; import com.github.mce.minigames.impl.context.ArenaPlayerInterfaceProvider; import com.github.mce.minigames.impl.context.DefaultResolver; @@ -95,47 +108,66 @@ * A plugin for minigames. * * @author mepeisen - * */ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Listener { /** the overall minecraft server versioon. */ - public static final MinecraftVersionsType SERVER_VERSION = MinigamesPlugin.getServerVersion(); + public static final MinecraftVersionsType SERVER_VERSION = MinigamesPlugin.getServerVersion(); /** the well known minigames. */ - private final Map<String, MinigamePluginImpl> minigames = new TreeMap<>(); + private final Map<String, MinigamePluginImpl> minigames = new TreeMap<>(); /** the well known extensions. */ - private final Map<String, ExtensionImpl> extensions = new TreeMap<>(); + private final Map<String, ExtensionImpl> extensions = new TreeMap<>(); /** Current library state. */ - private LibState state = LibState.Initializing; + private LibState state = LibState.Initializing; /** known command handlers by name. */ - private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); + private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); /** messages to minigames. */ - private final Map<LocalizedMessageInterface, String> messagesToMinigame = new HashMap<>(); + private final Map<LocalizedMessageInterface, String> messagesToMinigame = new HashMap<>(); /** options to minigames. */ - private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); + private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); /** messages to extensions. */ - private final Map<LocalizedMessageInterface, String> messagesToExtension = new HashMap<>(); + private final Map<LocalizedMessageInterface, String> messagesToExtension = new HashMap<>(); /** options to extensions. */ - private final Map<ConfigurationValueInterface, String> optionsToExtension = new HashMap<>(); + private final Map<ConfigurationValueInterface, String> optionsToExtension = new HashMap<>(); + + private final Map<RuleId, String> rulesToMinigame = new HashMap<>(); + + private final Map<RuleId, String> rulesToExtension = new HashMap<>(); + + private final Map<ArenaTypeInterface, String> typesToMinigame = new HashMap<>(); + + private final Map<ArenaTypeInterface, String> typesToExtension = new HashMap<>(); + + private final Map<TeamId, String> teamsToMinigame = new HashMap<>(); + + private final Map<TeamId, String> teamsToExtension = new HashMap<>(); + + private final Map<ComponentId, String> componentsToMinigame = new HashMap<>(); + + private final Map<ComponentId, String> componentsToExtension = new HashMap<>(); + + private final Map<MatchPhaseId, String> phasesToMinigame = new HashMap<>(); + + private final Map<MatchPhaseId, String> phasesToExtension = new HashMap<>(); /** * the players registry. */ - private final PlayerRegistry players = new PlayerRegistry(); + private final PlayerRegistry players = new PlayerRegistry(); /** * the minigame context implementation. */ - private MinigameContextImpl contextImpl = new MinigameContextImpl(); + private MinigameContextImpl contextImpl = new MinigameContextImpl(); /** * the premium extension (if available) @@ -145,7 +177,7 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Liste /** * The component registry. */ - private final ComponentRegistry components = new ComponentRegistry(); + private final ComponentRegistry components = new ComponentRegistry(); /** the event system. */ private final EventSystemInterface events; @@ -460,53 +492,25 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws impl = new MinigamePluginImpl(this, name, provider, this.components); // register commands - final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); - if (mgCommands != null) - { - for (final Map.Entry<String, CommandHandlerInterface> entry : mgCommands.entrySet()) - { - if (this.commands.containsKey(entry.getKey())) - { - this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from minigame \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ - } - else - { - this.commands.put(entry.getKey(), entry.getValue()); - } - } - } + registerCommands(name, "minigame", provider.getBukkitCommands()); //$NON-NLS-1$ // register messages - final List<LocalizedMessageInterface> messages = new ArrayList<>(); - final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); - if (messageClasses != null) - { - for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) - { - for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) - { - this.messagesToMinigame.put(msg, name); - messages.add(msg); - } - } - } - impl.initMessage(messages); + this.registerMessages(provider, name, impl, this.messagesToMinigame); // register configurations - final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); - final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); - if (configClasses != null) - { - for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) - { - for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) - { - this.optionsToMinigame.put(cfg, name); - configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); - } - } - } - impl.initConfgurations(configs); + this.registerOptions(provider, name, impl, this.optionsToMinigame); + + // rules + this.registerRules(provider, name, impl, this.rulesToMinigame); + + // components + this.registerComponents(provider, name, impl, this.componentsToMinigame); + + // teams + this.registerTeams(provider, name, impl, this.teamsToMinigame); + + // match phases + this.registerMatchPhases(provider, name, impl, this.phasesToMinigame); // finally register it this.minigames.put(name.toLowerCase(), impl); @@ -700,54 +704,27 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr impl = new ExtensionImpl(this, name, provider); // register commands - final Map<String, CommandHandlerInterface> mgCommands = provider.getBukkitCommands(); - if (mgCommands != null) - { - for (final Map.Entry<String, CommandHandlerInterface> entry : mgCommands.entrySet()) - { - if (this.commands.containsKey(entry.getKey())) - { - this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from extension \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ - } - else - { - this.commands.put(entry.getKey(), entry.getValue()); - } - } - } + registerCommands(name, "extension", provider.getBukkitCommands()); //$NON-NLS-1$ // register messages - final List<LocalizedMessageInterface> messages = new ArrayList<>(); - final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); - if (messageClasses != null) - { - for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) - { - for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) - { - this.messagesToExtension.put(msg, name); - messages.add(msg); - } - } - } - impl.initMessage(messages); + registerMessages(provider, name, impl, this.messagesToExtension); // register configurations - final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); - final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); - if (configClasses != null) - { - for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) - { - for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) - { - this.optionsToExtension.put(cfg, name); - configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); - } - } - } - impl.initConfgurations(configs); + registerOptions(provider, name, impl, this.optionsToExtension); + + // register rules + registerRules(provider, name, impl, this.rulesToExtension); + + // components + this.registerComponents(provider, name, impl, this.componentsToExtension); + + // teams + this.registerTeams(provider, name, impl, this.teamsToExtension); + // match phases + this.registerMatchPhases(provider, name, impl, this.phasesToExtension); + + // premium support if (provider instanceof PremiumServiceProviderInterface) { this.premium = (PremiumServiceProviderInterface) provider; @@ -770,31 +747,332 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr return impl; } + - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#findZone(org.bukkit.Location) + /** + * Registers the team ids. + * @param provider + * @param name + * @param impl + * @param teamMap + */ + private void registerTeams(CommonProviderInterface provider, final String name, BaseImpl impl, Map<TeamId, String> teamMap) + { + final List<TeamId> tlist = new ArrayList<>(); + + final Iterable<Class<? extends TeamId>> teamIds = provider.getTeamIds(); + if (teamIds != null) + { + for (final Class<? extends TeamId> idClazz : teamIds) + { + for (final TeamId id : idClazz.getEnumConstants()) + { + teamMap.put(id, name); + tlist.add(id); + } + } + } + + impl.initTeams(tlist); + } + + + /** + * Registers the component ids. + * @param provider + * @param name + * @param impl + * @param componentMap + */ + private void registerComponents(CommonProviderInterface provider, final String name, BaseImpl impl, Map<ComponentId, String> componentMap) + { + final List<ComponentId> clist = new ArrayList<>(); + + final Iterable<Class<? extends ComponentId>> compIds = provider.getComponentIds(); + if (compIds != null) + { + for (final Class<? extends ComponentId> idClazz : compIds) + { + for (final ComponentId id : idClazz.getEnumConstants()) + { + componentMap.put(id, name); + clist.add(id); + } + } + } + + impl.initComponents(clist); + } + + + /** + * Registers the match phase ids. + * @param provider + * @param name + * @param impl + * @param phasesMap + */ + private void registerMatchPhases(CommonProviderInterface provider, final String name, BaseImpl impl, Map<MatchPhaseId, String> phasesMap) + { + final List<MatchPhaseId> plist = new ArrayList<>(); + + final Iterable<Class<? extends MatchPhaseId>> phasesIds = provider.getMatchPhaseIds(); + if (phasesIds != null) + { + for (final Class<? extends MatchPhaseId> idClazz : phasesIds) + { + for (final MatchPhaseId id : idClazz.getEnumConstants()) + { + phasesMap.put(id, name); + plist.add(id); + } + } + } + + impl.initPhases(plist); + } + + /** + * Registers the rule ids. + * @param provider + * @param name + * @param impl + * @param ruleMap + */ + private void registerRules(CommonProviderInterface provider, final String name, BaseImpl impl, Map<RuleId, String> ruleMap) + { + final List<RuleId> rules = new ArrayList<>(); + + final Iterable<Class<? extends AdminRuleId>> adminRuleIds = provider.getAdminRuleIds(); + if (adminRuleIds != null) + { + for (final Class<? extends AdminRuleId> idClazz : adminRuleIds) + { + for (final AdminRuleId id : idClazz.getEnumConstants()) + { + ruleMap.put(id, name); + rules.add(id); + } + } + } + + final Iterable<Class<? extends ArenaRuleId>> arenaRuleIds = provider.getArenaRuleIds(); + if (arenaRuleIds != null) + { + for (final Class<? extends ArenaRuleId> idClazz : arenaRuleIds) + { + for (final ArenaRuleId id : idClazz.getEnumConstants()) + { + ruleMap.put(id, name); + rules.add(id); + } + } + } + + final Iterable<Class<? extends ComponentRuleId>> componentRuleIds = provider.getComponentRuleIds(); + if (componentRuleIds != null) + { + for (final Class<? extends ComponentRuleId> idClazz : componentRuleIds) + { + for (final ComponentRuleId id : idClazz.getEnumConstants()) + { + ruleMap.put(id, name); + rules.add(id); + } + } + } + + final Iterable<Class<? extends MatchRuleId>> matchRuleIds = provider.getMatchRuleIds(); + if (matchRuleIds != null) + { + for (final Class<? extends MatchRuleId> idClazz : matchRuleIds) + { + for (final MatchRuleId id : idClazz.getEnumConstants()) + { + ruleMap.put(id, name); + rules.add(id); + } + } + } + + final Iterable<Class<? extends PlayerRuleId>> playerRuleIds = provider.getPlayerRuleIds(); + if (playerRuleIds != null) + { + for (final Class<? extends PlayerRuleId> idClazz : playerRuleIds) + { + for (final PlayerRuleId id : idClazz.getEnumConstants()) + { + ruleMap.put(id, name); + rules.add(id); + } + } + } + + final Iterable<Class<? extends TeamRuleId>> teamRuleIds = provider.getTeamRuleIds(); + if (teamRuleIds != null) + { + for (final Class<? extends TeamRuleId> idClazz : teamRuleIds) + { + for (final TeamRuleId id : idClazz.getEnumConstants()) + { + ruleMap.put(id, name); + rules.add(id); + } + } + } + + impl.initRules(rules); + } + + /** + * Registers options + * @param provider + * @param name + * @param impl + * @param optMap + */ + private void registerOptions(CommonProviderInterface provider, final String name, BaseImpl impl, Map<ConfigurationValueInterface, String> optMap) + { + final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); + final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); + if (configClasses != null) + { + for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) + { + for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) + { + optMap.put(cfg, name); + configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); + } + } + } + impl.initConfgurations(configs); + } + + /** + * Register the messages. + * @param provider + * @param name + * @param impl + * @param msgMap + */ + private void registerMessages(CommonProviderInterface provider, final String name, BaseImpl impl, final Map<LocalizedMessageInterface, String> msgMap) + { + final List<LocalizedMessageInterface> messages = new ArrayList<>(); + final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); + if (messageClasses != null) + { + for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) + { + for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) + { + msgMap.put(msg, name); + messages.add(msg); + } + } + } + impl.initMessage(messages); + } + + /** + * Register the commands + * @param name + * @param type + * @param mgCommands */ + private void registerCommands(final String name, final String type, final Map<String, CommandHandlerInterface> mgCommands) + { + if (mgCommands != null) + { + for (final Map.Entry<String, CommandHandlerInterface> entry : mgCommands.entrySet()) + { + if (this.commands.containsKey(entry.getKey())) + { + this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from " + type + " \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ + } + else + { + this.commands.put(entry.getKey(), entry.getValue()); + } + } + } + } + @Override public ZoneInterface findZone(Location location) { - // TODO Auto-generated method stub + for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) + { + if (zone.containsLoc(location)) + return zone; + } return null; } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#findZones(org.bukkit.Location) - */ @Override public Iterable<ZoneInterface> findZones(Location location) { - // TODO Auto-generated method stub + final List<ZoneInterface> result = new ArrayList<>(); + for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) + { + if (zone.containsLoc(location)) + { + result.add(zone); + } + } + return result; + } + + @Override + public ZoneInterface findZoneWithoutY(Location location) + { + for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) + { + if (zone.containsLocWithoutY(location)) + return zone; + } + return null; + } + + @Override + public Iterable<ZoneInterface> findZonesWithoutY(Location location) + { + final List<ZoneInterface> result = new ArrayList<>(); + for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) + { + if (zone.containsLocWithoutY(location)) + { + result.add(zone); + } + } + return result; + } + + @Override + public ZoneInterface findZoneWithoutYD(Location location) + { + for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) + { + if (zone.containsLocWithoutYD(location)) + return zone; + } return null; } + @Override + public Iterable<ZoneInterface> findZonesWithoutYD(Location location) + { + final List<ZoneInterface> result = new ArrayList<>(); + for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) + { + if (zone.containsLocWithoutYD(location)) + { + result.add(zone); + } + } + return result; + } + @Override public Iterable<ArenaTypeInterface> getArenaTypes() { @@ -826,21 +1104,15 @@ public Iterable<ArenaInterface> getArenas() @Override public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) { - final String minigame = type.getMinigame(); - final MinigamePluginImpl impl = this.minigames.get(minigame); - if (impl != null) + final List<ArenaInterface> arenas = new ArrayList<>(); + for (final ArenaInterface arena : this.getArenas()) { - final List<ArenaInterface> arenas = new ArrayList<>(); - for (final ArenaInterface arena : impl.getArenas()) + if (arena.getArenaType() == type) { - if (arena.getArenaType() == type) - { - arenas.add(arena); - } + arenas.add(arena); } - return arenas; } - return Collections.emptyList(); + return arenas; } @Override @@ -976,4 +1248,84 @@ public void onInventoryDrag(InventoryDragEvent evt) // TODO } + @Override + public ArenaTypeProvider getProviderFromArenaType(ArenaTypeInterface type) + { + String name = this.typesToMinigame.get(type); + if (name != null) + { + return this.minigames.get(name); + } + name = this.typesToExtension.get(type); + if (name != null) + { + return this.extensions.get(name); + } + return null; + } + + @Override + public ArenaTypeProvider getProviderFromRule(RuleId rule) + { + String name = this.rulesToMinigame.get(rule); + if (name != null) + { + return this.minigames.get(name); + } + name = this.rulesToExtension.get(rule); + if (name != null) + { + return this.extensions.get(name); + } + return null; + } + + @Override + public ArenaTypeProvider getProviderFromTeam(TeamId team) + { + String name = this.teamsToMinigame.get(team); + if (name != null) + { + return this.minigames.get(name); + } + name = this.teamsToExtension.get(team); + if (name != null) + { + return this.extensions.get(name); + } + return null; + } + + @Override + public ArenaTypeProvider getProviderFromComponent(ComponentId component) + { + String name = this.componentsToMinigame.get(component); + if (name != null) + { + return this.minigames.get(name); + } + name = this.componentsToExtension.get(component); + if (name != null) + { + return this.extensions.get(name); + } + return null; + } + + @Override + public ArenaTypeProvider getProviderFromMatch(MatchPhaseId phase) + { + String name = this.phasesToMinigame.get(phase); + if (name != null) + { + return this.minigames.get(name); + } + name = this.phasesToExtension.get(phase); + if (name != null) + { + return this.extensions.get(name); + } + return null; + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java index bd166e7e..2fa4c123 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java @@ -17,10 +17,19 @@ import java.util.Map; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import com.github.mce.minigames.api.arena.MatchPhaseId; +import com.github.mce.minigames.api.arena.rules.AdminRuleSet; import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; +import com.github.mce.minigames.api.arena.rules.MatchRuleSet; +import com.github.mce.minigames.api.arena.rules.PlayerRuleSet; +import com.github.mce.minigames.api.component.ComponentId; +import com.github.mce.minigames.api.component.ComponentRuleSet; +import com.github.mce.minigames.api.team.TeamId; +import com.github.mce.minigames.api.team.TeamRuleSet; import com.github.mce.minigames.impl.MinigamePluginImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; @@ -76,16 +85,411 @@ public ArenaTypeDeclarationInterface build() return new ArenaTypeDeclarationImpl(this.typename, this.type, this.isDefault, this.arenas, this.registry, this.plugin); } - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.ArenaRuleSet[]) + @Override + public ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) + { + // TODO Auto-generated method stub + return this; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyComponents(com.github.mce.minigames.api.component.ComponentId[]) + */ + @Override + public ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyTeam(com.github.mce.minigames.api.team.TeamId[]) + */ + @Override + public ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeams() + */ + @Override + public Iterable<TeamId> getTeams() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeTeams(com.github.mce.minigames.api.team.TeamId[]) + */ + @Override + public ArenaTypeBuilderInterface removeTeams(TeamId... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponents() + */ + @Override + public Iterable<ComponentId> getComponents() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeComponents(com.github.mce.minigames.api.component.ComponentId[]) + */ + @Override + public ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getArenaRuleSets() + */ + @Override + public Iterable<ArenaRuleSet> getArenaRuleSets() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.ArenaRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getAdminRuleSets() + */ + @Override + public Iterable<AdminRuleSet> getAdminRuleSets() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponentRuleSets() + */ + @Override + public Iterable<ComponentRuleSet> getComponentRuleSets() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getMatchRuleSets() + */ + @Override + public Iterable<MatchRuleSet> getMatchRuleSets() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPlayerRuleSets() + */ + @Override + public Iterable<PlayerRuleSet> getPlayerRuleSets() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeamRuleSets() + */ + @Override + public Iterable<TeamRuleSet> getTeamRuleSets() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) + */ + @Override + public ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#startsWith(com.github.mce.minigames.api.arena.MatchPhaseId) + */ + @Override + public ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#addPhases(com.github.mce.minigames.api.arena.MatchPhaseId[]) + */ + @Override + public ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getStartingPhase() + */ + @Override + public MatchPhaseId getStartingPhase() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPhases() + */ + @Override + public Iterable<MatchPhaseId> getPhases() throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhasesAndStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhases(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritArenaRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritMatchRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritPlayerRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeamRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAdminRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponentRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponents(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeams(com.github.mce.minigames.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws MinigameException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAll(com.github.mce.minigames.api.arena.ArenaTypeInterface) */ @Override - public void applyRulesets(ArenaRuleSet... set) + public ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws MinigameException { // TODO Auto-generated method stub - + return null; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java new file mode 100644 index 00000000..6dee5bf5 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java @@ -0,0 +1,141 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.component; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.bukkit.Location; +import org.bukkit.util.Vector; + +import com.github.mce.minigames.api.component.Cuboid; +import com.github.mce.minigames.api.zones.ZoneInterface; + +/** + * Base class for all cuboid components. + * + * @author mepeisen + */ +public abstract class AbstractCuboidComponent extends AbstractComponent implements ZoneInterface +{ + + /** the cuboid. */ + private Cuboid cuboid; + + /** + * Constructor to create the component. + * + * @param registry + * the owning registry. + * @param cuboid + * the component bounds + */ + public AbstractCuboidComponent(ComponentRegistry registry, Cuboid cuboid) + { + super(registry); + this.cuboid = cuboid == null ? null : cuboid.normalize(); + this.changeLocs(); + } + + /** + * Changes the locations depending on the given cuboid. + */ + private void changeLocs() + { + if (this.cuboid == null || this.cuboid.getLowLoc() == null) + { + this.setWorldChunks(Collections.emptySet()); + } + else + { + final Set<WorldChunk> chunks = new HashSet<>(); + final WorldChunk lowChunk = new WorldChunk(this.cuboid.getLowLoc().clone().add(new Vector(-2, -2, -2))); + final WorldChunk highChunk = new WorldChunk(this.cuboid.getHighLoc().clone().add(new Vector(2, 2, 2))); + for (int x = lowChunk.getX(); x <= highChunk.getX(); x++) + { + for (int z = highChunk.getZ(); z <= highChunk.getZ(); z++) + { + final WorldChunk chunk = new WorldChunk(lowChunk.getServerName(), lowChunk.getWorldName(), x, z); + chunks.add(chunk); + } + } + this.setWorldChunks(chunks); + } + } + + /** + * Returns the cuboid. + * @return cuboid of this component. + */ + @Override + public Cuboid getCuboid() + { + return this.cuboid; + } + + /** + * Sets the cuboid + * @param cub cuboid of the component. + */ + @Override + public void setCuboid(Cuboid cub) + { + // TODO save to config + this.cuboid = cub == null ? null : cub.normalize(); + this.changeLocs(); + } + + /** + * Determines whether the this cuboid contains the passed location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid, otherwise false + */ + @Override + public boolean containsLoc(final Location loc) + { + return this.cuboid == null ? false : this.cuboid.containsLoc(loc); + } + + /** + * Determines whether the this cuboid contains the passed location without y coord. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid without y coord, otherwise false + */ + @Override + public boolean containsLocWithoutY(final Location loc) + { + return this.cuboid == null ? false : this.cuboid.containsLocWithoutY(loc); + } + + /** + * Determines whether the this cuboid contains the passed location without y coord and by including the 2 blocks beyond the location. + * + * @param loc + * the location to check + * @return true if the location is within this cuboid without y coord, otherwise false + */ + @Override + public boolean containsLocWithoutYD(final Location loc) + { + return this.cuboid == null ? false : this.cuboid.containsLocWithoutYD(loc); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java index 5e8e3e9d..3ffccd37 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java @@ -81,4 +81,26 @@ public Set<AbstractComponent> fetch(WorldChunk chunk) return result == null ? Collections.emptySet() : result; } + /** + * Fetches components within a world chunk and filters by given class + * + * @param clazz + * the class filter + * @param chunk + * world chunk + * @return components being in this world chunk. + */ + public <T extends AbstractComponent> Set<T> fetch(Class<T> clazz, WorldChunk chunk) + { + final Set<T> result = new HashSet<>(); + for (final AbstractComponent c : this.fetch(chunk)) + { + if (clazz.isInstance(c)) + { + result.add(clazz.cast(c)); + } + } + return result; + } + } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java index 16545623..9436459d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java @@ -94,6 +94,38 @@ public int hashCode() return this.hash; } + /** + * @return the serverName + */ + public String getServerName() + { + return this.serverName; + } + + /** + * @return the worldName + */ + public String getWorldName() + { + return this.worldName; + } + + /** + * @return the x + */ + public int getX() + { + return this.x; + } + + /** + * @return the z + */ + public int getZ() + { + return this.z; + } + @Override public boolean equals(Object obj) { From 56bf72a6f13a473fb35a8b7d49b2bb4ae218b125 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 3 Sep 2016 14:00:10 +0200 Subject: [PATCH 122/266] sudoku --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index 0e09c43c..ca3bfdf0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +#### 1.14.12/1.14.13 + +##### Sudoku + +* new game sudoku/ migrated to minigames lib + #### 1.14.11 ###### All From 6ecfd3dc5f82eeec87976f1f767664ba06b138e4 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 3 Sep 2016 16:13:49 +0200 Subject: [PATCH 123/266] configurable help pages --- .../minigamesapi/commands/CommandHandler.java | 87 ++++++++++--------- changelog.md | 6 +- 2 files changed, 53 insertions(+), 40 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 91ee4da9..b9be4b6e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -45,6 +45,14 @@ public class CommandHandler { + /** + * Constructor. + */ + public CommandHandler() + { + this.initCmdDesc(); + } + /** * Handles the default commands needed for arena management. * @@ -202,7 +210,7 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_REMOVE_HOLOGRAM)) } else if (action.equalsIgnoreCase(CommandStrings.GAME_HELP)) { - CommandHandler.sendHelp(cmd, sender); + return this.sendHelp(cmd, sender); } else if (action.equalsIgnoreCase(CommandStrings.GAME_LIST)) { @@ -246,7 +254,7 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) { boolean cont = false; final ArrayList<String> cmds = new ArrayList<>(); - for (final String cmd_ : CommandHandler.cmddesc.keySet()) + for (final String cmd_ : this.cmddesc.keySet()) { if (cmd_.toLowerCase().contains(action.toLowerCase())) { @@ -256,7 +264,7 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) } if (cont) { - CommandHandler.sendHelp(cmd, sender); + this.sendHelp(cmd, sender); for (final String cmd_ : cmds) { sender.sendMessage(ChatColor.RED + "Did you mean " + ChatColor.DARK_RED + cmd + " " + cmd_ + ChatColor.RED + "?"); @@ -266,59 +274,60 @@ else if (action.equalsIgnoreCase(CommandStrings.GAME_RELOAD)) } else { - CommandHandler.sendHelp(cmd, sender); + return this.sendHelp(cmd, sender); } return true; } - public static LinkedHashMap<String, String> cmddesc; - static + protected final LinkedHashMap<String, String> cmddesc = new LinkedHashMap<>(); + + protected void initCmdDesc() { - CommandHandler.cmddesc = new LinkedHashMap<>(); - CommandHandler.cmddesc.put("", null); - CommandHandler.cmddesc.put("setspawn <arena>", "Sets the spawn point."); - CommandHandler.cmddesc.put("setlobby <arena>", "Sets the lobby point."); - CommandHandler.cmddesc.put("setmainlobby", "Sets the main lobby point."); - CommandHandler.cmddesc.put("setbounds <arena> <low/high>", "Sets the low or high boundary point for later arena regeneration."); - CommandHandler.cmddesc.put("savearena <arena>", "Saves the arena."); - CommandHandler.cmddesc.put("", null); - CommandHandler.cmddesc.put("setmaxplayers <arena> <count>", "Sets the max players allowed to join to given count."); - CommandHandler.cmddesc.put("setminplayers <arena> <count>", "Sets the min players needed to start to given count."); - CommandHandler.cmddesc.put("setarenavip <arena> <true/false>", "Sets whether arena needs permission to join."); - CommandHandler.cmddesc.put("removearena <arena>", "Deletes an arena from config."); - CommandHandler.cmddesc.put("removespawn <arena> <count>", "Deletes a spawn from config."); - CommandHandler.cmddesc.put("setenabled", "Enables/Disables the arena."); - CommandHandler.cmddesc.put("", null); - CommandHandler.cmddesc.put("join <arena>", "Joins the arena."); - CommandHandler.cmddesc.put("leave", "Leaves the arena."); - CommandHandler.cmddesc.put("", ""); - CommandHandler.cmddesc.put("start <arena>", "Forces the arena to start."); - CommandHandler.cmddesc.put("stop <arena>", "Forces the arena to stop."); - CommandHandler.cmddesc.put("list", "Lists all arenas."); - CommandHandler.cmddesc.put("reload", "Reloads the config."); - CommandHandler.cmddesc.put("reset <arena>", "Forces the arena to reset."); - CommandHandler.cmddesc.put("", null); - CommandHandler.cmddesc.put("setlobbybounds <arena> <low/high>", "Optional: Set lobby boundaries."); - CommandHandler.cmddesc.put("setspecbounds <arena> <low/high>", "Optional: Set extra spectator boundaries."); - CommandHandler.cmddesc.put("setauthor <arena> <author>", "Will always display the author of the map at join."); - CommandHandler.cmddesc.put("setdescription <arena> <description>", "Will always display a description of the map at join."); - CommandHandler.cmddesc.put("setdisplayname <arena> <displayname>", "Allows changing displayname of an arena (whitespaces and colors)."); - CommandHandler.cmddesc.put("", null); + this.cmddesc.put("", null); + this.cmddesc.put("setspawn <arena>", "Sets the spawn point."); + this.cmddesc.put("setlobby <arena>", "Sets the lobby point."); + this.cmddesc.put("setmainlobby", "Sets the main lobby point."); + this.cmddesc.put("setbounds <arena> <low/high>", "Sets the low or high boundary point for later arena regeneration."); + this.cmddesc.put("savearena <arena>", "Saves the arena."); + this.cmddesc.put("", null); + this.cmddesc.put("setmaxplayers <arena> <count>", "Sets the max players allowed to join to given count."); + this.cmddesc.put("setminplayers <arena> <count>", "Sets the min players needed to start to given count."); + this.cmddesc.put("setarenavip <arena> <true/false>", "Sets whether arena needs permission to join."); + this.cmddesc.put("removearena <arena>", "Deletes an arena from config."); + this.cmddesc.put("removespawn <arena> <count>", "Deletes a spawn from config."); + this.cmddesc.put("setenabled", "Enables/Disables the arena."); + this.cmddesc.put("", null); + this.cmddesc.put("join <arena>", "Joins the arena."); + this.cmddesc.put("leave", "Leaves the arena."); + this.cmddesc.put("", ""); + this.cmddesc.put("start <arena>", "Forces the arena to start."); + this.cmddesc.put("stop <arena>", "Forces the arena to stop."); + this.cmddesc.put("list", "Lists all arenas."); + this.cmddesc.put("reload", "Reloads the config."); + this.cmddesc.put("reset <arena>", "Forces the arena to reset."); + this.cmddesc.put("", null); + this.cmddesc.put("setlobbybounds <arena> <low/high>", "Optional: Set lobby boundaries."); + this.cmddesc.put("setspecbounds <arena> <low/high>", "Optional: Set extra spectator boundaries."); + this.cmddesc.put("setauthor <arena> <author>", "Will always display the author of the map at join."); + this.cmddesc.put("setdescription <arena> <description>", "Will always display a description of the map at join."); + this.cmddesc.put("setdisplayname <arena> <displayname>", "Allows changing displayname of an arena (whitespaces and colors)."); + this.cmddesc.put("", null); } - public static void sendHelp(final String cmd, final CommandSender sender) + public boolean sendHelp(final String cmd, final CommandSender sender) { sender.sendMessage(ChatColor.DARK_GRAY + "------- " + ChatColor.BLUE + "Help" + ChatColor.DARK_GRAY + " -------"); - for (final String k : CommandHandler.cmddesc.keySet()) + for (final String k : this.cmddesc.keySet()) { if (k.length() < 3) { sender.sendMessage(""); continue; } - final String v = CommandHandler.cmddesc.get(k); + final String v = this.cmddesc.get(k); sender.sendMessage(ChatColor.YELLOW + cmd + " " + k + ChatColor.DARK_GRAY + " - " + ChatColor.GRAY + v); } + return true; } public static LinkedHashMap<String, String> cmdpartydesc; diff --git a/changelog.md b/changelog.md index ca3bfdf0..f3f4e550 100644 --- a/changelog.md +++ b/changelog.md @@ -2,7 +2,11 @@ #### 1.14.12/1.14.13 -##### Sudoku +###### BedWars + +* Added command "setupbeds" to help page + +###### Sudoku * new game sudoku/ migrated to minigames lib From 9090ff008befbf295e347977019b4f49ae27b54f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 5 Sep 2016 08:46:17 +0200 Subject: [PATCH 124/266] v2 --- .../minigamesapi/SmartReset.java | 40 +-- .../api/config/ConfigurationTool.java | 13 +- .../config/ConfigurationValueInterface.java | 64 +++- .../ConfigurationValueInterfaceTest.java | 298 +++++++++++++++++- .../mce/minigames/impl/MinigamesPlugin.java | 39 ++- .../impl/event/AbstractMinigameEvent.java | 83 +++++ .../impl/event/MgInventoryClickEvent.java | 39 +++ .../impl/event/MgInventoryDragEvent.java | 39 +++ .../minigames/impl/gui/GuiSessionImpl.java | 37 +++ .../impl/player/ArenaPlayerImpl.java | 9 + 10 files changed, 609 insertions(+), 52 deletions(-) rename APIv2/src/test/java/com/github/mce/minigames/api/{test => config}/ConfigurationValueInterfaceTest.java (70%) create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java create mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index a1ce7c53..06b50377 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -95,7 +95,7 @@ public SmartArenaBlock addChanged(final Block b) { if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().fine("(1) adding changed block for location " + b.getLocation()); + MinigamesAPI.getAPI().getLogger().info("(1) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, b.getType() == Material.CHEST, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.putBlock(b.getLocation(), sablock); @@ -148,7 +148,7 @@ public SmartArenaBlock addChanged(final Block b, final boolean isChest) { if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().fine("(2) adding changed block for location " + b.getLocation()); + MinigamesAPI.getAPI().getLogger().info("(2) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.putBlock(b.getLocation(), sablock); @@ -174,7 +174,7 @@ public SmartArenaBlock addChanged(final Block b, final boolean isChest, final Ch { if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().fine("(3) adding changed block for location " + b.getLocation()); + MinigamesAPI.getAPI().getLogger().info("(3) adding changed block for location " + b.getLocation()); } final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); this.changed.putBlock(b.getLocation(), sablock); @@ -197,7 +197,7 @@ public void addChanged(final Location l) { if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().fine("(4) adding changed block for location " + l); + MinigamesAPI.getAPI().getLogger().info("(4) adding changed block for location " + l); } this.changed.putBlock(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); } @@ -220,7 +220,7 @@ public SmartArenaBlock addChanged(final Location l, final Material m, final byte { if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().fine("(5) adding changed block for location " + l); + MinigamesAPI.getAPI().getLogger().info("(5) adding changed block for location " + l); } final SmartArenaBlock sab = new SmartArenaBlock(l, m, data); this.changed.putBlock(l, sab); @@ -242,7 +242,7 @@ public void run() try { - MinigamesAPI.getAPI().getLogger().fine("resetting block " + ablock.getBlock().getLocation()); + MinigamesAPI.getAPI().getLogger().info("resetting block " + ablock.getBlock().getLocation()); this.resetSmartResetBlock(ablock); it.remove(); } @@ -250,7 +250,7 @@ public void run() { if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().log(Level.FINE, "failed block " + ablock.getBlock().getLocation(), e); + MinigamesAPI.getAPI().getLogger().log(Level.INFO, "failed block " + ablock.getBlock().getLocation(), e); } this.failedblocks.add(ablock); } @@ -273,7 +273,7 @@ public void run() SmartReset.this.changed.clear(); for (final SmartArenaBlock ablock : SmartReset.this.failedblocks) { - MinigamesAPI.getAPI().getLogger().fine("retrying failed block " + ablock.getBlock().getLocation()); + MinigamesAPI.getAPI().getLogger().info("retrying failed block " + ablock.getBlock().getLocation()); final Block b_ = ablock.getBlock().getWorld().getBlockAt(ablock.getBlock().getLocation()); if (!b_.getType().toString().equalsIgnoreCase(ablock.getMaterial().toString())) { @@ -332,53 +332,53 @@ public void resetSmartResetBlock(final SmartArenaBlock ablock) if (b_.getType() == Material.FURNACE) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back furnace inventory"); + MinigamesAPI.getAPI().getLogger().info("Rolling back furnace inventory"); ((Furnace) b_.getState()).getInventory().clear(); ((Furnace) b_.getState()).update(); } if (b_.getType() == Material.CHEST) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back chest inventory"); + MinigamesAPI.getAPI().getLogger().info("Rolling back chest inventory"); ((Chest) b_.getState()).getBlockInventory().clear(); ((Chest) b_.getState()).update(); } if (b_.getType() == Material.DISPENSER) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back dispenser inventory"); + MinigamesAPI.getAPI().getLogger().info("Rolling back dispenser inventory"); ((Dispenser) b_.getState()).getInventory().clear(); ((Dispenser) b_.getState()).update(); } if (b_.getType() == Material.DROPPER) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back dropper inventory"); + MinigamesAPI.getAPI().getLogger().info("Rolling back dropper inventory"); ((Dropper) b_.getState()).getInventory().clear(); ((Dropper) b_.getState()).update(); } if (b_.getType() == Material.BREWING_STAND) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back brewing stand inventory"); + MinigamesAPI.getAPI().getLogger().info("Rolling back brewing stand inventory"); ((BrewingStand) b_.getState()).getInventory().clear(); ((BrewingStand) b_.getState()).update(); } if (!b_.getType().equals(ablock.getMaterial()) || b_.getData() != ablock.getData()) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); + MinigamesAPI.getAPI().getLogger().info("Rolling back block material/data to " + ablock.getMaterial() + "/" + ablock.getData()); b_.setType(ablock.getMaterial()); b_.setData(ablock.getData()); } else if (MinigamesAPI.debug) { - MinigamesAPI.getAPI().getLogger().fine("Skipping block rollback from " + b_.getType() + "/" + b_.getData() + " to " + ablock.getMaterial() + "/" + ablock.getData()); + MinigamesAPI.getAPI().getLogger().info("Skipping block rollback from " + b_.getType() + "/" + b_.getData() + " to " + ablock.getMaterial() + "/" + ablock.getData()); } if (b_.getType() == Material.CHEST) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back chest"); + MinigamesAPI.getAPI().getLogger().info("Rolling back chest"); if (ablock.isDoubleChest()) { final DoubleChest dc = ablock.getDoubleChest(); @@ -413,7 +413,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.DISPENSER) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back dispenser"); + MinigamesAPI.getAPI().getLogger().info("Rolling back dispenser"); final Dispenser d = (Dispenser) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -434,7 +434,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.DROPPER) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back dropper"); + MinigamesAPI.getAPI().getLogger().info("Rolling back dropper"); final Dropper d = (Dropper) b_.getState(); d.getInventory().clear(); final HashMap<Integer, ItemStack> chestinv = ablock.getNewInventory(); @@ -454,7 +454,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.WALL_SIGN || b_.getType() == Material.SIGN_POST) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back sign"); + MinigamesAPI.getAPI().getLogger().info("Rolling back sign"); final Sign sign = (Sign) b_.getState(); if (sign != null) { @@ -474,7 +474,7 @@ else if (MinigamesAPI.debug) if (b_.getType() == Material.SKULL) { if (MinigamesAPI.debug) - MinigamesAPI.getAPI().getLogger().fine("Rolling back skull"); + MinigamesAPI.getAPI().getLogger().info("Rolling back skull"); b_.setData((byte) 0x1); b_.getState().setType(Material.SKULL); if (b_.getState() instanceof Skull) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java index c304fb5b..f230c30b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java @@ -155,9 +155,12 @@ static <Ret> Ret[] calculateList(ConfigurationValueInterface val, String subpath final Calculator<Ret[], ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> { final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(sectionPath().supply(val, configs, config, lib) + '.' + subpath); final List<Ret> list = new ArrayList<>(); - for (final String key : section.getKeys(false)) + if (section != null) { - list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); + for (final String key : section.getKeys(false)) + { + list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); + } } return list.toArray((Ret[]) Array.newInstance(retClazz, list.size())); }; @@ -262,7 +265,11 @@ static <T, Annot extends Annotation> void consumeList(ConfigurationValueInterfac static <T> void consumeList(ConfigurationValueInterface val, String subpath, T[] value, ArrayValueConsumer<T, ConfigurationSection> consumer) { final ValueConsumer<ConfigurationSection> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, ConfigurationSection config, MglibInterface lib, ConfigInterface minigame, String spath) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + if (section == null) + { + section = minigame.getConfig(configs.file()).createSection(spath); + } for (final String key : section.getKeys(false)) { section.set(key, null); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index 070f2b17..a6e0ead9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -605,7 +605,11 @@ default void setObject(Configurable value, String subpath) ConfigurationTool.consume( this, subpath, (val, configs, config, lib, minigame, path) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + if (section == null) + { + section = minigame.getConfig(configs.file()).createSection(path); + } value.writeToConfig(section); }); } @@ -622,7 +626,12 @@ default void setObjectList(Configurable[] value, String subpath) ConfigurationTool.consumeList( this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { - element.writeToConfig(section.getConfigurationSection(path)); + org.bukkit.configuration.ConfigurationSection section2 = section.getConfigurationSection(path); + if (section2 == null) + { + section2 = section.createSection(path); + } + element.writeToConfig(section2); }); } @@ -1071,7 +1080,11 @@ default void setObject(Configurable value) ConfigurationTool.consume( this, ConfigurationObject.class, ConfigurationTool.objectPath(), (val, configs, config, lib, minigame, path) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + if (section == null) + { + section = minigame.getConfig(configs.file()).createSection(path); + } value.writeToConfig(section); }); } @@ -1087,7 +1100,12 @@ default void setObjectList(Configurable[] value) ConfigurationTool.consumeList( this, ConfigurationObjectList.class, ConfigurationTool.objectListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { - element.writeToConfig(section.getConfigurationSection(path)); + org.bukkit.configuration.ConfigurationSection configurationSection = section.getConfigurationSection(path); + if (configurationSection == null) + { + configurationSection = section.createSection(path); + } + element.writeToConfig(configurationSection); }); } @@ -1493,7 +1511,7 @@ default void setVector(Vector value) default void setVectorList(Vector[] value) { ConfigurationTool.consumeList( - this, ConfigurationVector.class, ConfigurationTool.vectorPath(), value, + this, ConfigurationVectorList.class, ConfigurationTool.vectorListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { section.set(path, element.clone()); }); @@ -1510,7 +1528,11 @@ default <T extends Configurable> T getObject() return (T) ConfigurationTool.calculate( this, ConfigurationObject.class, ConfigurationTool.objectPath(), (val, configs, config, lib, minigame, path) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + if (section == null) + { + return null; + } final Configurable result = config.clazz().newInstance(); result.readFromConfig(section); return result; @@ -1565,7 +1587,10 @@ default Vector getVector() { return ConfigurationTool.calculate( this, ConfigurationVector.class, ConfigurationTool.vectorPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getVector(path).clone()); + (val, configs, config, lib, minigame, path) -> { + final Vector vector = minigame.getConfig(configs.file()).getVector(path); + return vector == null ? null : vector.clone(); + }); } /** @@ -1936,9 +1961,13 @@ default <T extends Configurable> T getObject(Class<T> clazz, String path) this, path, (val, configs, config, lib, minigame, spath) -> { final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); - final Configurable result = clazz.newInstance(); - result.readFromConfig(section); - return result; + if (section != null) + { + final Configurable result = clazz.newInstance(); + result.readFromConfig(section); + return result; + } + return null; }); } @@ -2259,7 +2288,10 @@ default Color getColor(String path, Color defaultValue) { return ConfigurationTool.calculate( this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getColor(spath)); + (val, configs, config, lib, minigame, spath) -> { + final Color col = minigame.getConfig(configs.file()).getColor(spath); + return col == null ? defaultValue : col; + }); } /** @@ -2274,7 +2306,10 @@ default ItemStack getItemStack(String path) { return ConfigurationTool.calculate( this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getItemStack(spath).clone()); + (val, configs, config, lib, minigame, spath) -> { + final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(spath); + return stack == null ? null : stack.clone(); + }); } /** @@ -2289,7 +2324,10 @@ default Vector getVector(String path) { return ConfigurationTool.calculate( this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getVector(spath).clone()); + (val, configs, config, lib, minigame, spath) -> { + final Vector result = minigame.getConfig(configs.file()).getVector(spath); + return result == null ? null : result.clone(); + }); } /** diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java similarity index 70% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java rename to APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java index 951e0f00..c6ef6e0a 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/ConfigurationValueInterfaceTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java @@ -13,7 +13,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.api.test; +package com.github.mce.minigames.api.config; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -37,6 +37,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemFactory; import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; import org.junit.Before; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; @@ -78,6 +79,7 @@ import com.github.mce.minigames.api.config.ConfigurationVector; import com.github.mce.minigames.api.config.ConfigurationVectorList; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.test.player.ArenaPlayerInterfaceTest; /** * test case for {@link ConfigurationValueInterface} @@ -264,8 +266,6 @@ public void getsetTest() assertEquals(Color.RED, this.file.get(TestOptions.SomeColorA.path())); assertEquals(Color.BLUE, this.file.get(TestOptions.SomeColorB.path())); assertEquals(Color.AQUA, this.file.get(TestOptions.SomeOtherColor.path())); -// assertEquals(Arrays.asList(Color.BLACK, Color.FUCHSIA), this.file.get(TestOptions.SomeColorList.path())); -// assertEquals(Arrays.asList(Color.GREEN, Color.LIME), this.file.get(TestOptions.SomeOtherColorList.path())); assertEquals(Color.RED, TestOptions.SomeColorA.getColor()); assertEquals(Color.BLUE, TestOptions.SomeColorB.getColor()); @@ -361,8 +361,6 @@ public void getsetTest() assertEquals(new ItemStack(Material.AIR), this.file.get(TestOptions.SomeItemStack.path())); assertEquals(new ItemStack(Material.ACACIA_DOOR), this.file.get(TestOptions.SomeOtherItemStack.path())); -// assertEquals(Arrays.asList(new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)), this.file.get(TestOptions.SomeItemStackList.path())); -// assertEquals(Arrays.asList(new ItemStack(Material.ACACIA_FENCE_GATE), new ItemStack(Material.ACACIA_STAIRS)), this.file.get(TestOptions.SomeOtherItemStackList.path())); assertEquals(new ItemStack(Material.AIR), TestOptions.SomeItemStack.getItemStack()); assertEquals(new ItemStack(Material.ACACIA_DOOR), TestOptions.SomeOtherItemStack.getItemStack()); @@ -464,18 +462,249 @@ public void getsetTest() assertEquals(player1.getBukkitPlayer(), this.file.get(TestOptions.SomePlayer.path())); assertEquals(player2.getBukkitPlayer(), this.file.get(TestOptions.SomeOtherPlayer.path())); -// assertEquals(Arrays.asList(player3.getBukkitPlayer(), player4.getBukkitPlayer()), this.file.get(TestOptions.SomePlayerList.path())); -// assertEquals(Arrays.asList(player5.getBukkitPlayer(), player6.getBukkitPlayer()), this.file.get(TestOptions.SomeOtherPlayerList.path())); assertEquals(player1, TestOptions.SomePlayer.getPlayer()); assertEquals(player2, TestOptions.SomeOtherPlayer.getPlayer()); assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomePlayerList.getPlayerList()); assertArrayEquals(new ArenaPlayerInterface[]{player5, player6}, TestOptions.SomeOtherPlayerList.getPlayerList()); - // TODO object - // TODO vector + // vector + assertNull(TestOptions.SomeVector.getVector()); + assertNull(TestOptions.SomeOtherVector.getVector()); + assertArrayEquals(new Vector[]{}, TestOptions.SomeVectorList.getVectorList()); + assertArrayEquals(new Vector[]{}, TestOptions.SomeOtherVectorList.getVectorList()); + + TestOptions.SomeVector.setVector(new Vector(1, 2, 3)); + TestOptions.SomeOtherVector.setVector(new Vector(2, 3, 4)); + TestOptions.SomeVectorList.setVectorList(new Vector[]{new Vector(3, 4, 5), new Vector(4, 5, 6)}); + TestOptions.SomeOtherVectorList.setVectorList(new Vector[]{new Vector(5, 6, 7), new Vector(6, 7, 8)}); + + assertEquals(new Vector(1, 2, 3), this.file.get(TestOptions.SomeVector.path())); + assertEquals(new Vector(2, 3, 4), this.file.get(TestOptions.SomeOtherVector.path())); + + assertEquals(new Vector(1, 2, 3), TestOptions.SomeVector.getVector()); + assertEquals(new Vector(2, 3, 4), TestOptions.SomeOtherVector.getVector()); + assertArrayEquals(new Vector[]{new Vector(3, 4, 5), new Vector(4, 5, 6)}, TestOptions.SomeVectorList.getVectorList()); + assertArrayEquals(new Vector[]{new Vector(5, 6, 7), new Vector(6, 7, 8)}, TestOptions.SomeOtherVectorList.getVectorList()); + + // object + assertNull(TestOptions.SomeObject.getObject()); + assertNull(TestOptions.SomeOtherObject.getObject()); + assertArrayEquals(new FooObject[]{}, TestOptions.SomeObjectList.getObjectList(FooObject.class)); + assertArrayEquals(new FooObject[]{}, TestOptions.SomeOtherObjectList.getObjectList(FooObject.class)); + + final FooObject obj1 = new FooObject(1); + final FooObject obj2 = new FooObject(2); + final FooObject obj3 = new FooObject(3); + final FooObject obj4 = new FooObject(4); + final FooObject obj5 = new FooObject(5); + final FooObject obj6 = new FooObject(6); + + TestOptions.SomeObject.setObject(obj1); + TestOptions.SomeOtherObject.setObject(obj2); + TestOptions.SomeObjectList.setObjectList(new FooObject[]{obj3, obj4}); + TestOptions.SomeOtherObjectList.setObjectList(new FooObject[]{obj5, obj6}); + + assertEquals(obj1, TestOptions.SomeObject.getObject()); + assertEquals(obj2, TestOptions.SomeOtherObject.getObject()); + assertArrayEquals(new FooObject[]{obj3, obj4}, TestOptions.SomeObjectList.getObjectList(FooObject.class)); + assertArrayEquals(new FooObject[]{obj5, obj6}, TestOptions.SomeOtherObjectList.getObjectList(FooObject.class)); + + // sections + // boolean + assertFalse(TestOptions.SomeSection.getBoolean("Boolean", false)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Boolean")); //$NON-NLS-1$ + TestOptions.SomeSection.setBoolean(true, "Boolean"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Boolean")); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.getBoolean("Boolean", false)); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getBooleanList("BooleanList", null)); //$NON-NLS-1$ + assertArrayEquals(new boolean[]{true, true}, TestOptions.SomeSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("BooleanList")); //$NON-NLS-1$ + TestOptions.SomeSection.setBooleanList(new boolean[]{true, false}, "BooleanList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("BooleanList")); //$NON-NLS-1$ + assertArrayEquals(new boolean[]{true, false}, TestOptions.SomeSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ + + //getKeys + assertArrayEquals(new String[]{"Boolean", "BooleanList"}, TestOptions.SomeSection.getKeys(false)); //$NON-NLS-1$ //$NON-NLS-2$ + + // byte + assertEquals(1, TestOptions.SomeSection.getByte("Byte", (byte) 1)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Byte")); //$NON-NLS-1$ + TestOptions.SomeSection.setByte((byte) 2, "Byte"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Byte")); //$NON-NLS-1$ + assertEquals(2, TestOptions.SomeSection.getByte("Byte", (byte) 1)); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getByteList("ByteList", null)); //$NON-NLS-1$ + assertArrayEquals(new byte[]{1, 2}, TestOptions.SomeSection.getByteList("ByteList", new byte[]{1, 2})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("ByteList")); //$NON-NLS-1$ + TestOptions.SomeSection.setByteList(new byte[]{2, 3}, "ByteList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("ByteList")); //$NON-NLS-1$ + assertArrayEquals(new byte[]{2, 3}, TestOptions.SomeSection.getByteList("ByteList", new byte[]{1, 2})); //$NON-NLS-1$ + + // character + assertEquals('a', TestOptions.SomeSection.getCharacter("Character", 'a')); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Character")); //$NON-NLS-1$ + TestOptions.SomeSection.setCharacter('b', "Character"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Character")); //$NON-NLS-1$ + assertEquals('b', TestOptions.SomeSection.getCharacter("Character", 'a')); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getCharacterList("CharacterList", null)); //$NON-NLS-1$ + assertArrayEquals(new char[]{'a', 'b'}, TestOptions.SomeSection.getCharacterList("CharacterList", new char[]{'a', 'b'})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("CharacterList")); //$NON-NLS-1$ + TestOptions.SomeSection.setCharacterList(new char[]{'b', 'c'}, "CharacterList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("CharacterList")); //$NON-NLS-1$ + assertArrayEquals(new char[]{'b', 'c'}, TestOptions.SomeSection.getCharacterList("CharacterList", new char[]{'a', 'b'})); //$NON-NLS-1$ + + // color + assertEquals(Color.RED, TestOptions.SomeSection.getColor("Color", Color.RED)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Color")); //$NON-NLS-1$ + TestOptions.SomeSection.setColor(Color.BLUE, "Color"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Color")); //$NON-NLS-1$ + assertEquals(Color.BLUE, TestOptions.SomeSection.getColor("Color", Color.RED)); //$NON-NLS-1$ + + assertArrayEquals(new Color[0], TestOptions.SomeSection.getColorList("ColorList")); //$NON-NLS-1$ + // assertArrayEquals(new Color[]{Color.RED, Color.BLUE}, TestOptions.SomeSection.getColorList("ColorList", new Color[]{Color.RED, Color.BLUE})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("ColorList")); //$NON-NLS-1$ + TestOptions.SomeSection.setColorList(new Color[]{Color.BLUE, Color.GREEN}, "ColorList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("ColorList")); //$NON-NLS-1$ + assertArrayEquals(new Color[]{Color.BLUE, Color.GREEN}, TestOptions.SomeSection.getColorList("ColorList")); //$NON-NLS-1$ + + // double + assertEquals(0.2, TestOptions.SomeSection.getDouble("Double", 0.2), 0); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Double")); //$NON-NLS-1$ + TestOptions.SomeSection.setDouble(0.3, "Double"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Double")); //$NON-NLS-1$ + assertEquals(0.3, TestOptions.SomeSection.getDouble("Double", 0.2), 0); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getDoubleList("DoubleList", null)); //$NON-NLS-1$ + assertArrayEquals(new double[]{0.3, 0.4}, TestOptions.SomeSection.getDoubleList("DoubleList", new double[]{0.3, 0.4}), 0); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("DoubleList")); //$NON-NLS-1$ + TestOptions.SomeSection.setDoubleList(new double[]{0.4, 0.5}, "DoubleList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("DoubleList")); //$NON-NLS-1$ + assertArrayEquals(new double[]{0.4, 0.5}, TestOptions.SomeSection.getDoubleList("DoubleList", new double[]{0.3, 0.4}), 0); //$NON-NLS-1$ + + // float + assertEquals(0.2f, TestOptions.SomeSection.getFloat("Float", 0.2f), 0); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Float")); //$NON-NLS-1$ + TestOptions.SomeSection.setFloat(0.3f, "Float"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Float")); //$NON-NLS-1$ + assertEquals(0.3f, TestOptions.SomeSection.getFloat("Float", 0.2f), 0); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getFloatList("FloatList", null)); //$NON-NLS-1$ + assertArrayEquals(new float[]{0.3f, 0.4f}, TestOptions.SomeSection.getFloatList("FloatList", new float[]{0.3f, 0.4f}), 0); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("FloatList")); //$NON-NLS-1$ + TestOptions.SomeSection.setFloatList(new float[]{0.4f, 0.5f}, "FloatList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("FloatList")); //$NON-NLS-1$ + assertArrayEquals(new float[]{0.4f, 0.5f}, TestOptions.SomeSection.getFloatList("FloatList", new float[]{0.3f, 0.4f}), 0); //$NON-NLS-1$ - // TODO sections + // int + assertEquals(2, TestOptions.SomeSection.getInt("Int", 2)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Int")); //$NON-NLS-1$ + TestOptions.SomeSection.setInt(3, "Int"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Int")); //$NON-NLS-1$ + assertEquals(3, TestOptions.SomeSection.getInt("Int", 2)); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getIntList("IntList", null)); //$NON-NLS-1$ + assertArrayEquals(new int[]{3, 4}, TestOptions.SomeSection.getIntList("IntList", new int[]{3, 4})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("IntList")); //$NON-NLS-1$ + TestOptions.SomeSection.setIntList(new int[]{4, 5}, "IntList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("IntList")); //$NON-NLS-1$ + assertArrayEquals(new int[]{4, 5}, TestOptions.SomeSection.getIntList("IntList", new int[]{3, 4})); //$NON-NLS-1$ + + // ItemStack + assertNull(TestOptions.SomeSection.getItemStack("ItemStack")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("ItemStack")); //$NON-NLS-1$ + TestOptions.SomeSection.setItemStack(new ItemStack(Material.ACACIA_DOOR), "ItemStack"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("ItemStack")); //$NON-NLS-1$ + assertEquals(new ItemStack(Material.ACACIA_DOOR), TestOptions.SomeSection.getItemStack("ItemStack")); //$NON-NLS-1$ + + assertArrayEquals(new ItemStack[]{}, TestOptions.SomeSection.getItemStackList("ItemStackList")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("ItemStackList")); //$NON-NLS-1$ + TestOptions.SomeSection.setItemStackList(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}, "ItemStackList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("ItemStackList")); //$NON-NLS-1$ + assertArrayEquals(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}, TestOptions.SomeSection.getItemStackList("ItemStackList")); //$NON-NLS-1$ + + // Long + assertEquals(2, TestOptions.SomeSection.getLong("Long", 2)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Long")); //$NON-NLS-1$ + TestOptions.SomeSection.setLong(3, "Long"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Long")); //$NON-NLS-1$ + assertEquals(3, TestOptions.SomeSection.getLong("Long", 2)); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getLongList("LongList", null)); //$NON-NLS-1$ + assertArrayEquals(new long[]{3, 4}, TestOptions.SomeSection.getLongList("LongList", new long[]{3, 4})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("LongList")); //$NON-NLS-1$ + TestOptions.SomeSection.setLongList(new long[]{4, 5}, "LongList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("LongList")); //$NON-NLS-1$ + assertArrayEquals(new long[]{4, 5}, TestOptions.SomeSection.getLongList("LongList", new long[]{3, 4})); //$NON-NLS-1$ + + // Object + assertNull(TestOptions.SomeSection.getObject(FooObject.class, "Object")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Object")); //$NON-NLS-1$ + TestOptions.SomeSection.setObject(obj1, "Object"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Object")); //$NON-NLS-1$ + assertEquals(obj1, TestOptions.SomeSection.getObject(FooObject.class, "Object")); //$NON-NLS-1$ + + assertArrayEquals(new FooObject[]{}, TestOptions.SomeSection.getObjectList(FooObject.class, "ObjectList")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("ObjectList")); //$NON-NLS-1$ + TestOptions.SomeSection.setObjectList(new FooObject[]{obj2, obj3}, "ObjectList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("ObjectList")); //$NON-NLS-1$ + assertArrayEquals(new FooObject[]{obj2, obj3}, TestOptions.SomeSection.getObjectList(FooObject.class, "ObjectList")); //$NON-NLS-1$ + + // Player + assertNull(TestOptions.SomeSection.getPlayer("Player")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Player")); //$NON-NLS-1$ + TestOptions.SomeSection.setPlayer(player1, "Player"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Player")); //$NON-NLS-1$ + assertEquals(player1, TestOptions.SomeSection.getPlayer("Player")); //$NON-NLS-1$ + + assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("PlayerList")); //$NON-NLS-1$ + TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{player3, player4}, "PlayerList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("PlayerList")); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + + // Short + assertEquals(2, TestOptions.SomeSection.getShort("Short", (short) 2)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Short")); //$NON-NLS-1$ + TestOptions.SomeSection.setShort((short) 3, "Short"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Short")); //$NON-NLS-1$ + assertEquals(3, TestOptions.SomeSection.getShort("Short", (short) 2)); //$NON-NLS-1$ + + assertNull(TestOptions.SomeSection.getShortList("ShortList", null)); //$NON-NLS-1$ + assertArrayEquals(new short[]{3, 4}, TestOptions.SomeSection.getShortList("ShortList", new short[]{3, 4})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("ShortList")); //$NON-NLS-1$ + TestOptions.SomeSection.setShortList(new short[]{4, 5}, "ShortList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("ShortList")); //$NON-NLS-1$ + assertArrayEquals(new short[]{4, 5}, TestOptions.SomeSection.getShortList("ShortList", new short[]{3, 4})); //$NON-NLS-1$ + + // String + assertEquals("2", TestOptions.SomeSection.getString("String", "2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertFalse(TestOptions.SomeSection.isset("String")); //$NON-NLS-1$ + TestOptions.SomeSection.setString("3", "String"); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue(TestOptions.SomeSection.isset("String")); //$NON-NLS-1$ + assertEquals("3", TestOptions.SomeSection.getString("String", "2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + + assertNull(TestOptions.SomeSection.getStringList("StringList", null)); //$NON-NLS-1$ + assertArrayEquals(new String[]{"3", "4"}, TestOptions.SomeSection.getStringList("StringList", new String[]{"3", "4"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + assertFalse(TestOptions.SomeSection.isset("StringList")); //$NON-NLS-1$ + TestOptions.SomeSection.setStringList(new String[]{"4", "5"}, "StringList"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertTrue(TestOptions.SomeSection.isset("StringList")); //$NON-NLS-1$ + assertArrayEquals(new String[]{"4", "5"}, TestOptions.SomeSection.getStringList("StringList", new String[]{"3", "4"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + + // Vector + assertNull(TestOptions.SomeSection.getVector("Vector")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("Vector")); //$NON-NLS-1$ + TestOptions.SomeSection.setVector(new Vector(1, 2, 3), "Vector"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("Vector")); //$NON-NLS-1$ + assertEquals(new Vector(1, 2, 3), TestOptions.SomeSection.getVector("Vector")); //$NON-NLS-1$ + + assertArrayEquals(new Vector[]{}, TestOptions.SomeSection.getVectorList("VectorList")); //$NON-NLS-1$ + assertFalse(TestOptions.SomeSection.isset("VectorList")); //$NON-NLS-1$ + TestOptions.SomeSection.setVectorList(new Vector[]{new Vector(2, 3, 4), new Vector(3, 4, 5)}, "VectorList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeSection.isset("VectorList")); //$NON-NLS-1$ + assertArrayEquals(new Vector[]{new Vector(2, 3, 4), new Vector(3, 4, 5)}, TestOptions.SomeSection.getVectorList("VectorList")); //$NON-NLS-1$ } /** @@ -907,17 +1136,62 @@ public static enum TestOptions implements ConfigurationValueInterface private static final class FooObject implements Configurable { + /** obj value. */ + private int i; + + /** + * Constructor. + */ + @SuppressWarnings("unused") + public FooObject() + { + // empty + } + + /** + * @param i + */ + public FooObject(int i) + { + this.i = i; + } + @Override public void readFromConfig(org.bukkit.configuration.ConfigurationSection section) { - // empty + this.i = section.getInt("i"); //$NON-NLS-1$ } @Override public void writeToConfig(org.bukkit.configuration.ConfigurationSection section) { - // empty + section.set("i", this.i); //$NON-NLS-1$ + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + this.i; + return result; } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + FooObject other = (FooObject) obj; + if (this.i != other.i) + return false; + return true; + } + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 7b51dce1..41f90089 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -92,6 +92,8 @@ import com.github.mce.minigames.impl.context.DefaultResolver; import com.github.mce.minigames.impl.context.MinigameContextImpl; import com.github.mce.minigames.impl.context.MinigameInterfaceProvider; +import com.github.mce.minigames.impl.event.MgInventoryClickEvent; +import com.github.mce.minigames.impl.gui.GuiSessionImpl; import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; import com.github.mce.minigames.impl.nms.v1_10_1.NmsFactory1_10_1; @@ -1210,7 +1212,11 @@ public void onPlayerJoin(PlayerJoinEvent evt) public void onPlayerQuit(PlayerQuitEvent evt) { this.players.onPlayerQuit(evt); - // TODO hard close gui + final ArenaPlayerInterface player = this.getPlayer(evt.getPlayer()); + if (player.getGuiSession() != null) + { + ((ArenaPlayerImpl)player).onCloseGui(); + } } /** @@ -1221,7 +1227,14 @@ public void onPlayerQuit(PlayerQuitEvent evt) */ public void onInventoryClose(InventoryCloseEvent evt) { - // TODO + if (evt.getPlayer() instanceof Player) + { + final ArenaPlayerInterface player = this.getPlayer((Player) evt.getPlayer()); + if (player.getGuiSession() != null) + { + ((ArenaPlayerImpl)player).onCloseGui(); + } + } } /** @@ -1233,7 +1246,18 @@ public void onInventoryClose(InventoryCloseEvent evt) @EventHandler public void onInventoryClick(InventoryClickEvent evt) { - // TODO + if (evt.getWhoClicked() instanceof Player) + { + final ArenaPlayerInterface player = this.getPlayer((Player) evt.getWhoClicked()); + final GuiSessionImpl session = (GuiSessionImpl) player.getGuiSession(); + if (session != null) + { + this.contextImpl.runInContext(new MgInventoryClickEvent(evt, player), () -> { + this.setContext(ArenaPlayerInterface.class, player); + session.onClick(evt); + }); + } + } } /** @@ -1245,7 +1269,14 @@ public void onInventoryClick(InventoryClickEvent evt) @EventHandler public void onInventoryDrag(InventoryDragEvent evt) { - // TODO + if (evt.getWhoClicked() instanceof Player) + { + final ArenaPlayerInterface player = this.getPlayer((Player) evt.getWhoClicked()); + if (player.getGuiSession() != null) + { + evt.setCancelled(true); + } + } } @Override diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java new file mode 100644 index 00000000..0514bec4 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java @@ -0,0 +1,83 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.event; + +import org.bukkit.event.Event; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * Base Implementation for minigame events. + * + * @author mepeisen + * @param <Evt> event class + */ +public abstract class AbstractMinigameEvent<Evt extends Event> implements MinigameEvent<Evt> +{ + + /** the bukkit event object. */ + private Evt event; + + /** the player for this event. */ + private ArenaPlayerInterface player; + + /** + * Abstract minigame event. + * @param event the event. + * @param player + */ + public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player) + { + this.event = event; + this.player = player; + } + + @Override + public Evt getBukkitEvent() + { + return this.event; + } + + @Override + public MglibInterface getLib() + { + return MglibInterface.INSTANCE.get(); + } + + @Override + public MinigameInterface getMinigame() + { + final ArenaInterface arena = this.player.getArena(); + return arena == null ? null : arena.getMinigame(); + } + + @Override + public ArenaInterface getArena() + { + return this.player.getArena(); + } + + @Override + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java new file mode 100644 index 00000000..0c46e895 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.event; + +import org.bukkit.event.inventory.InventoryClickEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryClickEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * @author mepeisen + * + */ +public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickEvent> implements MinigameInventoryClickEvent +{ + + /** + * @param event + * @param player + */ + public MgInventoryClickEvent(InventoryClickEvent event, ArenaPlayerInterface player) + { + super(event, player); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java new file mode 100644 index 00000000..8bd3fa26 --- /dev/null +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java @@ -0,0 +1,39 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.event; + +import org.bukkit.event.inventory.InventoryDragEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryDragEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * @author mepeisen + * + */ +public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEvent> implements MinigameInventoryDragEvent +{ + + /** + * @param event + * @param player + */ + public MgInventoryDragEvent(InventoryDragEvent event, ArenaPlayerInterface player) + { + super(event, player); + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java index 55666b26..db92ad70 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java @@ -20,9 +20,11 @@ import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.context.MinigameStorage; import com.github.mce.minigames.api.gui.ClickGuiInterface; import com.github.mce.minigames.api.gui.ClickGuiItem; @@ -254,5 +256,40 @@ public MinigameStorage getPlayerPersistentStorage() // TODO Auto-generated method stub return null; } + + /** + * @param evt + */ + public void onClick(InventoryClickEvent evt) + { + final ItemStack stack = evt.getCurrentItem(); + if (stack.getItemMeta().hasDisplayName()) + { + final String item = stripColoredString(stack.getItemMeta().getDisplayName()); + final String[] splitted = item.split(":"); //$NON-NLS-1$ + if (splitted.length == 2) + { + try + { + final int line = Integer.parseInt(splitted[0]); + final int col = Integer.parseInt(splitted[1]); + final ClickGuiItem guiItem = this.currentItems[line][col]; + guiItem.handle(this.player, this, this.gui); + } + catch (MinigameException ex) + { + // TODO + } + catch (IndexOutOfBoundsException | NumberFormatException ex) + { + // TODO logging + } + } + else + { + // TODO Logging + } + } + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 1cf4e569..06da210d 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -340,5 +340,14 @@ public void onPlayerJoin() // clear session storage this.sessionStorage = new StorageImpl(); } + + /** + * Client closed the gui. + */ + public void onCloseGui() + { + final MinigameStorage storage = this.getSessionStorage(); + storage.set(GuiSessionInterface.class, null); + } } From ec7f3cc57a18f7bdf0b31e37ecece70b31fbd088 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 5 Sep 2016 19:52:08 +0200 Subject: [PATCH 125/266] v2 --- .../MinigameAreaEffectCloudApplyEvent.java | 2 +- .../bevents/MinigameAsyncPlayerChatEvent.java | 2 +- .../bevents/MinigameBlockBreakEvent.java | 2 +- .../rules/bevents/MinigameBlockBurnEvent.java | 2 +- .../bevents/MinigameBlockCanBuildEvent.java | 2 +- .../bevents/MinigameBlockDamageEvent.java | 2 +- .../bevents/MinigameBlockDispenseEvent.java | 2 +- .../rules/bevents/MinigameBlockExpEvent.java | 2 +- .../bevents/MinigameBlockExplodeEvent.java | 2 +- .../rules/bevents/MinigameBlockFadeEvent.java | 2 +- .../rules/bevents/MinigameBlockFormEvent.java | 2 +- .../bevents/MinigameBlockFromToEvent.java | 2 +- .../rules/bevents/MinigameBlockGrowEvent.java | 2 +- .../bevents/MinigameBlockIgniteEvent.java | 2 +- .../bevents/MinigameBlockMultiPlaceEvent.java | 2 +- .../bevents/MinigameBlockPhysicsEvent.java | 2 +- .../MinigameBlockPistonExtendEvent.java | 2 +- .../MinigameBlockPistonRetractEvent.java | 2 +- .../bevents/MinigameBlockPlaceEvent.java | 2 +- .../bevents/MinigameBlockRedstoneEvent.java | 2 +- .../bevents/MinigameBlockSpreadEvent.java | 2 +- .../rules/bevents/MinigameBrewEvent.java | 2 +- .../MinigameCauldronLevelChangeEvent.java | 2 +- .../rules/bevents/MinigameCraftItemEvent.java | 2 +- .../bevents/MinigameCreatureSpawnEvent.java | 2 +- .../bevents/MinigameCreeperPowerEvent.java | 2 +- .../bevents/MinigameEnchantItemEvent.java | 2 +- .../MinigameEnderDragonChangePhaseEvent.java | 2 +- .../bevents/MinigameEntityBlockFormEvent.java | 2 +- .../bevents/MinigameEntityBreakDoorEvent.java | 2 +- .../bevents/MinigameEntityBreedEvent.java | 2 +- .../MinigameEntityChangeBlockEvent.java | 2 +- .../MinigameEntityCombustByBlockEvent.java | 2 +- .../MinigameEntityCombustByEntityEvent.java | 2 +- .../bevents/MinigameEntityCombustEvent.java | 2 +- .../MinigameEntityCreatePortalEvent.java | 2 +- .../MinigameEntityDamageByBlockEvent.java | 2 +- .../MinigameEntityDamageByEntityEvent.java | 2 +- .../bevents/MinigameEntityDamageEvent.java | 2 +- .../bevents/MinigameEntityDeathEvent.java | 2 +- .../bevents/MinigameEntityExplodeEvent.java | 2 +- .../bevents/MinigameEntityInteractEvent.java | 2 +- .../MinigameEntityPortalEnterEvent.java | 2 +- .../bevents/MinigameEntityPortalEvent.java | 2 +- .../MinigameEntityPortalExitEvent.java | 2 +- .../MinigameEntityRegainHealthEvent.java | 2 +- .../bevents/MinigameEntityShootBowEvent.java | 2 +- .../bevents/MinigameEntitySpawnEvent.java | 2 +- .../bevents/MinigameEntityTameEvent.java | 2 +- .../bevents/MinigameEntityTargetEvent.java | 2 +- ...MinigameEntityTargetLivingEntityEvent.java | 2 +- .../bevents/MinigameEntityTeleportEvent.java | 2 +- .../MinigameEntityToggleGlideEvent.java | 2 +- .../bevents/MinigameEntityUnleashEvent.java | 2 +- .../rules/bevents/MinigameExpBottleEvent.java | 2 +- .../bevents/MinigameExplosionPrimeEvent.java | 2 +- .../bevents/MinigameFireworkExplodeEvent.java | 2 +- .../bevents/MinigameFoodLevelChangeEvent.java | 2 +- .../bevents/MinigameFurnaceBurnEvent.java | 2 +- .../bevents/MinigameFurnaceSmeltEvent.java | 2 +- .../MinigameHangingBreakByEntityEvent.java | 2 +- .../bevents/MinigameHangingBreakEvent.java | 2 +- .../bevents/MinigameHangingPlaceEvent.java | 2 +- .../rules/bevents/MinigameHorseJumpEvent.java | 2 +- .../bevents/MinigameInventoryClickEvent.java | 2 +- .../bevents/MinigameInventoryCloseEvent.java | 2 +- .../MinigameInventoryCreativeEvent.java | 2 +- .../bevents/MinigameInventoryDragEvent.java | 2 +- .../rules/bevents/MinigameInventoryEvent.java | 2 +- .../MinigameInventoryInteractEvent.java | 2 +- .../MinigameInventoryMoveItemEvent.java | 2 +- .../bevents/MinigameInventoryOpenEvent.java | 2 +- .../MinigameInventoryPickupItemEvent.java | 2 +- .../bevents/MinigameItemDespawnEvent.java | 2 +- .../rules/bevents/MinigameItemMergeEvent.java | 2 +- .../rules/bevents/MinigameItemSpawnEvent.java | 2 +- .../bevents/MinigameLeavesDecayEvent.java | 2 +- .../MinigameLingeringPotionSplashEvent.java | 2 +- .../rules/bevents/MinigameNotePlayEvent.java | 2 +- .../rules/bevents/MinigamePigZapEvent.java | 2 +- ...MinigamePlayerAchievementAwardedEvent.java | 2 +- .../bevents/MinigamePlayerAnimationEvent.java | 2 +- ...nigamePlayerArmorStandManipulateEvent.java | 2 +- .../bevents/MinigamePlayerBedEnterEvent.java | 2 +- .../bevents/MinigamePlayerBedLeaveEvent.java | 2 +- .../MinigamePlayerBucketEmptyEvent.java | 2 +- .../MinigamePlayerBucketFillEvent.java | 2 +- .../MinigamePlayerChangedMainHandEvent.java | 2 +- .../MinigamePlayerChangedWorldEvent.java | 2 +- .../bevents/MinigamePlayerChannelEvent.java | 2 +- .../bevents/MinigamePlayerChatEvent.java | 2 +- .../MinigamePlayerChatTabCompleteEvent.java | 2 +- .../MinigamePlayerCommandPreprocessEvent.java | 2 +- .../bevents/MinigamePlayerDeathEvent.java | 2 +- .../bevents/MinigamePlayerDropItemEvent.java | 2 +- .../bevents/MinigamePlayerEditBookEvent.java | 2 +- .../bevents/MinigamePlayerEggThrowEvent.java | 2 +- .../bevents/MinigamePlayerExpChangeEvent.java | 2 +- .../bevents/MinigamePlayerFishEvent.java | 2 +- .../MinigamePlayerGameModeChangeEvent.java | 2 +- .../MinigamePlayerInteractAtEntityEvent.java | 2 +- .../MinigamePlayerInteractEntityEvent.java | 2 +- .../bevents/MinigamePlayerInteractEvent.java | 2 +- .../bevents/MinigamePlayerInventoryEvent.java | 2 +- .../bevents/MinigamePlayerItemBreakEvent.java | 2 +- .../MinigamePlayerItemConsumeEvent.java | 2 +- .../MinigamePlayerItemDamageEvent.java | 2 +- .../bevents/MinigamePlayerItemHeldEvent.java | 2 +- .../bevents/MinigamePlayerJoinEvent.java | 2 +- .../bevents/MinigamePlayerKickEvent.java | 2 +- .../MinigamePlayerLeashEntityEvent.java | 2 +- .../MinigamePlayerLevelChangeEvent.java | 2 +- .../bevents/MinigamePlayerLoginEvent.java | 2 +- .../bevents/MinigamePlayerMoveEvent.java | 2 +- .../MinigamePlayerPickupArrowEvent.java | 2 +- .../MinigamePlayerPickupItemEvent.java | 2 +- .../bevents/MinigamePlayerPortalEvent.java | 2 +- .../bevents/MinigamePlayerQuitEvent.java | 2 +- .../MinigamePlayerRegisterChannelEvent.java | 2 +- ...MinigamePlayerResourcePackStatusEvent.java | 2 +- .../bevents/MinigamePlayerRespawnEvent.java | 2 +- .../MinigamePlayerShearEntityEvent.java | 2 +- .../MinigamePlayerSpawnLocationEvent.java | 2 +- ...MinigamePlayerStatisticIncrementEvent.java | 2 +- .../MinigamePlayerSwapHandItemsEvent.java | 2 +- .../bevents/MinigamePlayerTeleportEvent.java | 2 +- .../MinigamePlayerToggleFlightEvent.java | 2 +- .../MinigamePlayerToggleSneakEvent.java | 2 +- .../MinigamePlayerToggleSprintEvent.java | 2 +- .../MinigamePlayerUnregisterChannelEvent.java | 2 +- .../bevents/MinigamePlayerVelocityEvent.java | 2 +- .../bevents/MinigamePotionSplashEvent.java | 2 +- .../bevents/MinigamePrepareAnvilEvent.java | 2 +- .../MinigamePrepareItemCraftEvent.java | 2 +- .../MinigamePrepareItemEnchantEvent.java | 2 +- .../bevents/MinigameProjectileHitEvent.java | 2 +- .../MinigameProjectileLaunchEvent.java | 2 +- .../bevents/MinigameSheepDyeWoolEvent.java | 2 +- .../bevents/MinigameSheepRegrowWoolEvent.java | 2 +- .../bevents/MinigameSignChangeEvent.java | 2 +- .../bevents/MinigameSlimeSplitEvent.java | 2 +- .../bevents/MinigameSpawnerSpawnEvent.java | 2 +- .../MinigameVehicleBlockCollisionEvent.java | 2 +- .../bevents/MinigameVehicleCreateEvent.java | 2 +- .../bevents/MinigameVehicleDamageEvent.java | 2 +- .../bevents/MinigameVehicleDestroyEvent.java | 2 +- .../bevents/MinigameVehicleEnterEvent.java | 2 +- .../MinigameVehicleEntityCollisionEvent.java | 2 +- .../bevents/MinigameVehicleExitEvent.java | 2 +- .../bevents/MinigameVehicleMoveEvent.java | 2 +- .../bevents/MinigameVehicleUpdateEvent.java | 2 +- .../MinigameVillagerAcquireTradeEvent.java | 2 +- .../MinigameVillagerReplenishTradeEvent.java | 2 +- .../mevents/MinigameArenaCreateEvent.java | 31 +++++ .../mevents/MinigameArenaCreatedEvent.java | 31 +++++ .../mevents/MinigameArenaDeleteEvent.java | 31 +++++ .../mevents/MinigameArenaDeletedEvent.java | 31 +++++ .../MinigameArenaMaintenanceEvent.java | 31 +++++ .../MinigameArenaPlayerJoinedEvent.java | 31 +++++ .../MinigameArenaPlayerJoinedQueueEvent.java | 31 +++++ .../MinigameArenaPlayerLeavesQueueEvent.java | 31 +++++ .../mevents/MinigameArenaStateEvent.java | 31 +++++ .../mevents/MinigamePlayerCloseGuiEvent.java | 31 +++++ .../MinigamePlayerDisplayGuiPageEvent.java | 31 +++++ .../mevents/MinigamePlayerGuiClickEvent.java | 31 +++++ .../mevents/MinigamePlayerOpenGuiEvent.java | 31 +++++ LIBv2/nms/api/MinigameArenaCreateEvent.java | 31 +++++ .../impl/nms/AbstractEventSystem.java | 128 +++++++++++++++--- .../impl/nms}/AbstractMinigameEvent.java | 2 +- .../impl/nms/EventSystemInterface.java | 11 +- .../impl/nms/MgArenaCreateEvent.java | 38 ++++++ .../impl/nms/MgArenaCreatedEvent.java | 38 ++++++ .../impl/nms/MgArenaDeleteEvent.java | 38 ++++++ .../impl/nms/MgArenaDeletedEvent.java | 38 ++++++ .../impl/nms/MgArenaMaintenanceEvent.java | 38 ++++++ .../impl/nms/MgArenaPlayerJoinedEvent.java | 38 ++++++ .../nms/MgArenaPlayerJoinedQueueEvent.java | 38 ++++++ .../nms/MgArenaPlayerLeavesQueueEvent.java | 38 ++++++ .../minigames/impl/nms/MgArenaStateEvent.java | 38 ++++++ .../impl/nms/MgPlayerCloseGuiEvent.java | 38 ++++++ .../impl/nms/MgPlayerDisplayGuiPageEvent.java | 38 ++++++ .../impl/nms/MgPlayerGuiClickEvent.java | 38 ++++++ .../impl/nms/MgPlayerOpenGuiEvent.java | 38 ++++++ .../impl/nms/v1_10_1/EventSystem1_10_1.java | 9 ++ .../event/MgAreaEffectCloudApplyEvent.java | 40 ++++++ .../v1_10_1/event/MgAsyncPlayerChatEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockBreakEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockBurnEvent.java | 40 ++++++ .../v1_10_1/event/MgBlockCanBuildEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockDamageEvent.java | 40 ++++++ .../v1_10_1/event/MgBlockDispenseEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockExpEvent.java | 40 ++++++ .../v1_10_1/event/MgBlockExplodeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockFadeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockFormEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockFromToEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockGrowEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockIgniteEvent.java | 40 ++++++ .../v1_10_1/event/MgBlockMultiPlaceEvent.java | 40 ++++++ .../v1_10_1/event/MgBlockPhysicsEvent.java | 40 ++++++ .../event/MgBlockPistonExtendEvent.java | 40 ++++++ .../event/MgBlockPistonRetractEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockPlaceEvent.java | 40 ++++++ .../v1_10_1/event/MgBlockRedstoneEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgBlockSpreadEvent.java | 40 ++++++ .../impl/nms/v1_10_1/event/MgBrewEvent.java | 40 ++++++ .../event/MgCauldronLevelChangeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgCraftItemEvent.java | 40 ++++++ .../v1_10_1/event/MgCreatureSpawnEvent.java | 40 ++++++ .../v1_10_1/event/MgCreeperPowerEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgEnchantItemEvent.java | 40 ++++++ .../event/MgEnderDragonChangePhaseEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityBlockFormEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityBreakDoorEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgEntityBreedEvent.java | 40 ++++++ .../event/MgEntityChangeBlockEvent.java | 40 ++++++ .../event/MgEntityCombustByBlockEvent.java | 40 ++++++ .../event/MgEntityCombustByEntityEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityCombustEvent.java | 40 ++++++ .../event/MgEntityCreatePortalEvent.java | 40 ++++++ .../event/MgEntityDamageByBlockEvent.java | 40 ++++++ .../event/MgEntityDamageByEntityEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityDamageEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgEntityDeathEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityExplodeEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityInteractEvent.java | 40 ++++++ .../event/MgEntityPortalEnterEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityPortalEvent.java | 40 ++++++ .../event/MgEntityPortalExitEvent.java | 40 ++++++ .../event/MgEntityRegainHealthEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityShootBowEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgEntitySpawnEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgEntityTameEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityTargetEvent.java | 40 ++++++ .../MgEntityTargetLivingEntityEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityTeleportEvent.java | 40 ++++++ .../event/MgEntityToggleGlideEvent.java | 40 ++++++ .../v1_10_1/event/MgEntityUnleashEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgExpBottleEvent.java | 40 ++++++ .../v1_10_1/event/MgExplosionPrimeEvent.java | 40 ++++++ .../v1_10_1/event/MgFireworkExplodeEvent.java | 40 ++++++ .../v1_10_1/event/MgFoodLevelChangeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgFurnaceBurnEvent.java | 40 ++++++ .../v1_10_1/event/MgFurnaceSmeltEvent.java | 40 ++++++ .../event/MgHangingBreakByEntityEvent.java | 40 ++++++ .../v1_10_1/event/MgHangingBreakEvent.java | 40 ++++++ .../v1_10_1/event/MgHangingPlaceEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgHorseJumpEvent.java | 40 ++++++ .../v1_10_1/event/MgInventoryClickEvent.java | 40 ++++++ .../v1_10_1/event/MgInventoryCloseEvent.java | 40 ++++++ .../event/MgInventoryCreativeEvent.java | 40 ++++++ .../v1_10_1/event/MgInventoryDragEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgInventoryEvent.java | 40 ++++++ .../event/MgInventoryInteractEvent.java | 40 ++++++ .../event/MgInventoryMoveItemEvent.java | 40 ++++++ .../v1_10_1/event/MgInventoryOpenEvent.java | 40 ++++++ .../event/MgInventoryPickupItemEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgItemDespawnEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgItemMergeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgItemSpawnEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgLeavesDecayEvent.java | 40 ++++++ .../event/MgLingeringPotionSplashEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgNotePlayEvent.java | 40 ++++++ .../impl/nms/v1_10_1/event/MgPigZapEvent.java | 40 ++++++ .../MgPlayerAchievementAwardedEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerAnimationEvent.java | 40 ++++++ .../MgPlayerArmorStandManipulateEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerBedEnterEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerBedLeaveEvent.java | 40 ++++++ .../event/MgPlayerBucketEmptyEvent.java | 40 ++++++ .../event/MgPlayerBucketFillEvent.java | 40 ++++++ .../event/MgPlayerChangedMainHandEvent.java | 40 ++++++ .../event/MgPlayerChangedWorldEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerChannelEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerChatEvent.java | 40 ++++++ .../event/MgPlayerChatTabCompleteEvent.java | 40 ++++++ .../event/MgPlayerCommandPreprocessEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerDeathEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerDropItemEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerEditBookEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerEggThrowEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerExpChangeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerFishEvent.java | 40 ++++++ .../event/MgPlayerGameModeChangeEvent.java | 40 ++++++ .../event/MgPlayerInteractAtEntityEvent.java | 41 ++++++ .../event/MgPlayerInteractEntityEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerInteractEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerInventoryEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerItemBreakEvent.java | 40 ++++++ .../event/MgPlayerItemConsumeEvent.java | 40 ++++++ .../event/MgPlayerItemDamageEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerItemHeldEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerJoinEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerKickEvent.java | 40 ++++++ .../event/MgPlayerLeashEntityEvent.java | 40 ++++++ .../event/MgPlayerLevelChangeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerLoginEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerMoveEvent.java | 40 ++++++ .../event/MgPlayerPickupArrowEvent.java | 40 ++++++ .../event/MgPlayerPickupItemEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerPortalEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgPlayerQuitEvent.java | 40 ++++++ .../event/MgPlayerRegisterChannelEvent.java | 40 ++++++ .../MgPlayerResourcePackStatusEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerRespawnEvent.java | 40 ++++++ .../event/MgPlayerShearEntityEvent.java | 40 ++++++ .../event/MgPlayerSpawnLocationEvent.java | 40 ++++++ .../MgPlayerStatisticIncrementEvent.java | 40 ++++++ .../event/MgPlayerSwapHandItemsEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerTeleportEvent.java | 40 ++++++ .../event/MgPlayerToggleFlightEvent.java | 40 ++++++ .../event/MgPlayerToggleSneakEvent.java | 40 ++++++ .../event/MgPlayerToggleSprintEvent.java | 40 ++++++ .../event/MgPlayerUnregisterChannelEvent.java | 40 ++++++ .../v1_10_1/event/MgPlayerVelocityEvent.java | 40 ++++++ .../v1_10_1/event/MgPotionSplashEvent.java | 40 ++++++ .../v1_10_1/event/MgPrepareAnvilEvent.java | 40 ++++++ .../event/MgPrepareItemCraftEvent.java | 40 ++++++ .../event/MgPrepareItemEnchantEvent.java | 40 ++++++ .../v1_10_1/event/MgProjectileHitEvent.java | 40 ++++++ .../event/MgProjectileLaunchEvent.java | 40 ++++++ .../v1_10_1/event/MgSheepDyeWoolEvent.java | 40 ++++++ .../v1_10_1/event/MgSheepRegrowWoolEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgSignChangeEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgSlimeSplitEvent.java | 40 ++++++ .../v1_10_1/event/MgSpawnerSpawnEvent.java | 40 ++++++ .../event/MgVehicleBlockCollisionEvent.java | 40 ++++++ .../v1_10_1/event/MgVehicleCreateEvent.java | 40 ++++++ .../v1_10_1/event/MgVehicleDamageEvent.java | 40 ++++++ .../v1_10_1/event/MgVehicleDestroyEvent.java | 40 ++++++ .../v1_10_1/event/MgVehicleEnterEvent.java | 40 ++++++ .../event/MgVehicleEntityCollisionEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgVehicleExitEvent.java | 40 ++++++ .../nms/v1_10_1/event/MgVehicleMoveEvent.java | 40 ++++++ .../v1_10_1/event/MgVehicleUpdateEvent.java | 40 ++++++ .../event/MgVillagerAcquireTradeEvent.java | 40 ++++++ .../event/MgVillagerReplenishTradeEvent.java | 40 ++++++ .../impl/event/MgInventoryClickEvent.java | 1 + .../impl/event/MgInventoryDragEvent.java | 1 + 339 files changed, 7334 insertions(+), 173 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java create mode 100644 LIBv2/nms/api/MinigameArenaCreateEvent.java rename LIBv2/{src/main/java/com/github/mce/minigames/impl/event => nms/api/src/main/java/com/github/mce/minigames/impl/nms}/AbstractMinigameEvent.java (97%) create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java create mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java index 54b6c924..55efab43 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java index c015dae5..9e6ea7fa 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java index 6a3f4c50..4fe4f722 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java index a0377827..6e63cb0b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java index 80acfaa3..348a6042 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java index 81510937..ad616f69 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java index 16a69602..e2cf7aff 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java index 5fcb9371..3aefdb9d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java index e43dfacf..553cf266 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java index 0b455abe..701d66ab 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java index 862de2e5..a6c47c5b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java index eb075b0b..d56a3c32 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java index cacdbe0c..80664f57 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java index c8272672..6c3a3d11 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java index a9c924ba..e725fa61 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java index 1b1237ce..37042b3d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java index 032c1783..bb0c292e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java index c838d012..d4f63e94 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java index d504b3c3..8b85a708 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java index 57c2b75c..44257e92 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java index d0b46db9..ce3f0e86 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java index d1de9d80..5bfc3d26 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java index 5d12d14b..43b32a04 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java index 2f9a97a7..092d707e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java index 1e641f62..9fe5ae8c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java index 5d93db39..9ae6149b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java index 02c23dfb..b97145ae 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java index 61ff8a56..583979df 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java index 8dda7f81..098ae395 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java index 7fce2bf8..5462f129 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java index 88a47ab6..22f93fe1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java index 29b59478..7199785e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java index 967779cc..5e59b695 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java index 30c57813..bb5ce425 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java index e3a1196b..2e2600ca 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java index e4b6c90b..8c47c54f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java index a435acd1..fcaa5848 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java index d9c42a0f..7703e795 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java index 45d442c9..f818fbbe 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java index 5c97043d..6b6b5905 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java index d497ae3b..55cc49c0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java index d3e65379..79b6926b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java index 712b6897..d09be763 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java index 1190839a..fb30db82 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java index 33b1c1b3..b7e4ee58 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java index 58440792..8e0ca3ef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java index a17cc728..73d97895 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java index 2751b1ce..b85d13ab 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java index 468e084c..c5753edd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java index 7fb9d02b..77d58b27 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java index 580b2dfe..7d0be0a9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java index 73bf6876..c9068e7c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java index c7fe68df..7b179b8c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java index c8a6d9db..e840bc94 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java index 561f6858..8e25e4e3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java index 2b1d336e..aaf5e3e3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java index 4dff3843..9f762c85 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java index c8ca11fb..248cf380 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java index 69a9853c..b9d8831d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java index 00037804..b03986fc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java index 8985e967..b697f05b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java index 78721e59..4a3aac6c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java index 9130647b..5608208b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java index 12358a62..399e7cd0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java index 7c3f84bb..40de8ac8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java index 1d026e86..f1f4ec91 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java index 163c163d..936a8a5e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java index 9e6e7254..3129cbfe 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java index e5ac95a0..905760fd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java index b681bef4..454b65aa 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java index 7d508ede..c482b333 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java index d7a68b0c..a7322e48 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java index 61630413..69108e00 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java index b002f55e..f5bb9078 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java index c3d1cd0a..135a759e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java index c2529104..56be285d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java index f39b3aaa..494d964e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java index ecbf5e85..e49aeffc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java index d9ee8893..1b0105ad 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java index f4fbf3c9..85649249 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java index 7c0e104f..90443635 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java index a3bb99ad..b5e9084a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java index 1455eb77..1a82a341 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java index 93d73afd..da1158d0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java index ef188589..79b201fc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java index 55d5b264..cefb0955 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java index a13e3bf9..ff49a57f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java index ad61ae60..39be86e6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java index 82f11137..81dec925 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java index ac28dacc..6ea018e5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java index 85f79f1b..ecdc89dc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java index 5275824c..7cc350c3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java index 763634ea..f86b3eae 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java index 137478a3..070ff9d1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java index 932707e8..5d29fe59 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java index 6b9cc0ec..02522b76 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java index ddb426ee..bc860f67 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java index bc2440d1..2d436c66 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java index 7df0b109..37cb26e4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java index 85afabab..b425399b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java index c5cfa4b1..861d0e1f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java index 17c6beea..c2cf53c3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java index ab160e6f..6d98bfce 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java index e4cd0c3e..83d6e03d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java index f1725f81..56290bb0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java index f76831cc..6dfa3141 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java index b7276263..2bfa3e0a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java index 5f606314..de1bf999 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java index 94af9ffa..b6c5f1e8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java index 3fcd05a6..6dc2a8a0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java index 35a99629..9ffc8844 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java index 4a18dc45..11f37fcf 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java index 68e193f0..fe8b4f23 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java index 778d2811..f3df3a1e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java index 5571953c..fa167b93 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java index bf2af042..2f3f787e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java index 28a422a0..79772487 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java index 93706241..d2dd85ef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java index 6290a1b2..4fc7e221 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java index 1a534b46..ff9e7645 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java index 48913bb2..65bf7d6d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java index 604b455b..fea4322c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java index 99ff71f6..a359aea5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java index a25390d9..dc57ed73 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java index e1211fc7..e4372ee0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java index 8d3e8890..cc428426 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java index df318047..32677a6a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java index b4e9cfe0..b4e395df 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java index 26849dd3..35d45768 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java index 40c0d5a1..56e2a5f2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java index a62763da..50a311e5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java index 5280646e..bb378604 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java index 7bc189fe..46074e1e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java index ac935eeb..12c26ccc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java index 42a831e5..ee0ae5ba 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java index d0b1d238..f95aed46 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java index c9d58b34..1e1572b3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java index 3d4841e3..b2d37ce0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java index 4e94e088..00187e8a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java index 1ce55824..ecef4854 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java index ca034bd9..526cdc6f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java index efe5020b..9b2b3345 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java index a3e97a0d..e6d0232a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java index 3eef3505..a35c4da0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java index 88148f0b..555a0aa7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java index 761c7bf9..67882a87 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java index b76df595..2d608aac 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java index 6a6d9980..e82ae628 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java index 4a265c16..31e50c93 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java index a1ea8999..76309138 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java index 5d27d792..87b5c469 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java @@ -20,7 +20,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java index 925eb28a..8961d967 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java index 2e02d7a7..23ac1f46 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java @@ -21,7 +21,7 @@ import com.github.mce.minigames.api.arena.rules.MinigameEvent; /** - * Block break event. + * Minigame event representation of corresponding bukkit event. * * @author mepeisen */ diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java new file mode 100644 index 00000000..8911ee5a --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaCreateEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java new file mode 100644 index 00000000..2e67781d --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaCreatedEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaCreatedEvent extends MinigameEvent<ArenaCreatedEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java new file mode 100644 index 00000000..07eb99ff --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaDeleteEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaDeleteEvent extends MinigameEvent<ArenaDeleteEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java new file mode 100644 index 00000000..60e9df29 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaDeletedEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaDeletedEvent extends MinigameEvent<ArenaDeletedEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java new file mode 100644 index 00000000..f6a9d0fc --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaMaintenanceEvent extends MinigameEvent<ArenaMaintenanceEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java new file mode 100644 index 00000000..a13b5b53 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaPlayerJoinedEvent extends MinigameEvent<ArenaPlayerJoinedEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java new file mode 100644 index 00000000..c31b824f --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaPlayerJoinedQueueEvent extends MinigameEvent<ArenaPlayerJoinedQueueEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java new file mode 100644 index 00000000..c199e927 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaPlayerLeavesQueueEvent extends MinigameEvent<ArenaPlayerLeavesQueueEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java new file mode 100644 index 00000000..681c49cf --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaStateEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaStateEvent extends MinigameEvent<ArenaStateEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java new file mode 100644 index 00000000..4b764216 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigamePlayerCloseGuiEvent extends MinigameEvent<PlayerCloseGuiEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java new file mode 100644 index 00000000..a39cf962 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigamePlayerDisplayGuiPageEvent extends MinigameEvent<PlayerDisplayGuiPageEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java new file mode 100644 index 00000000..815d5928 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.PlayerGuiClickEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigamePlayerGuiClickEvent extends MinigameEvent<PlayerGuiClickEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java new file mode 100644 index 00000000..fa6546ab --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigamePlayerOpenGuiEvent extends MinigameEvent<PlayerOpenGuiEvent> +{ + + // TODO default stubbings + +} diff --git a/LIBv2/nms/api/MinigameArenaCreateEvent.java b/LIBv2/nms/api/MinigameArenaCreateEvent.java new file mode 100644 index 00000000..8911ee5a --- /dev/null +++ b/LIBv2/nms/api/MinigameArenaCreateEvent.java @@ -0,0 +1,31 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaCreateEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * @author mepeisen + */ +public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent> +{ + + // TODO default stubbings + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java index d46d2d42..beb40e25 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java @@ -21,6 +21,7 @@ import org.bukkit.event.Event; import org.bukkit.event.EventHandler; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaCreateEvent; import com.github.mce.minigames.api.event.ArenaCreatedEvent; import com.github.mce.minigames.api.event.ArenaDeleteEvent; @@ -40,7 +41,7 @@ * * @author mepeisen */ -public class AbstractEventSystem implements EventSystemInterface +public abstract class AbstractEventSystem implements EventSystemInterface { /** @@ -48,6 +49,26 @@ public class AbstractEventSystem implements EventSystemInterface */ private final Map<Class<? extends Event>, MinigameEventHandler<?>> eventHandlers = new HashMap<>(); + /** + * Constructor. + */ + public AbstractEventSystem() + { + this.registerHandler(ArenaCreateEvent.class, (evt) -> new MgArenaCreateEvent(evt)); + this.registerHandler(ArenaCreatedEvent.class, (evt) -> new MgArenaCreatedEvent(evt)); + this.registerHandler(ArenaDeleteEvent.class, (evt) -> new MgArenaDeleteEvent(evt)); + this.registerHandler(ArenaDeletedEvent.class, (evt) -> new MgArenaDeletedEvent(evt)); + this.registerHandler(ArenaMaintenanceEvent.class, (evt) -> new MgArenaMaintenanceEvent(evt)); + this.registerHandler(ArenaPlayerJoinedEvent.class, (evt) -> new MgArenaPlayerJoinedEvent(evt)); + this.registerHandler(ArenaPlayerJoinedQueueEvent.class, (evt) -> new MgArenaPlayerJoinedQueueEvent(evt)); + this.registerHandler(ArenaPlayerLeavesQueueEvent.class, (evt) -> new MgArenaPlayerLeavesQueueEvent(evt)); + this.registerHandler(ArenaStateEvent.class, (evt) -> new MgArenaStateEvent(evt)); + this.registerHandler(PlayerGuiClickEvent.class, (evt) -> new MgPlayerGuiClickEvent(evt)); + this.registerHandler(PlayerCloseGuiEvent.class, (evt) -> new MgPlayerCloseGuiEvent(evt)); + this.registerHandler(PlayerDisplayGuiPageEvent.class, (evt) -> new MgPlayerDisplayGuiPageEvent(evt)); + this.registerHandler(PlayerOpenGuiEvent.class, (evt) -> new MgPlayerOpenGuiEvent(evt)); + } + /** * Returns the minigame event handler for given class. * @@ -58,12 +79,27 @@ public class AbstractEventSystem implements EventSystemInterface @SuppressWarnings("unchecked") protected <T extends Event> MinigameEventHandler<T> getHandler(Class<T> clazz) { - return (MinigameEventHandler<T>) this.eventHandlers.computeIfAbsent(clazz, (c) -> new MinigameEventHandler<>(clazz)); + return (MinigameEventHandler<T>) this.eventHandlers.get(clazz); + } + + /** + * Registers the minigame event handler for given class. + * + * @param clazz + * event class. + * @param factory + * the factory to create minigame events. + */ + protected <T extends Event> void registerHandler(Class<T> clazz, MinigameEventFactory<T> factory) + { + this.eventHandlers.put(clazz, new MinigameEventHandler<>(clazz, factory)); } /** * Event handler for ArenaCreatedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaCreated(ArenaCreatedEvent evt) @@ -73,7 +109,9 @@ public void onArenaCreated(ArenaCreatedEvent evt) /** * Event handler for ArenaCreateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaCreate(ArenaCreateEvent evt) @@ -83,7 +121,9 @@ public void onArenaCreate(ArenaCreateEvent evt) /** * Event handler for ArenaDeletedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaDeleted(ArenaDeletedEvent evt) @@ -93,7 +133,9 @@ public void onArenaDeleted(ArenaDeletedEvent evt) /** * Event handler for ArenaDeleteEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaDelete(ArenaDeleteEvent evt) @@ -103,7 +145,9 @@ public void onArenaDelete(ArenaDeleteEvent evt) /** * Event handler for ArenaMaintenanceEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaMaintenance(ArenaMaintenanceEvent evt) @@ -113,7 +157,9 @@ public void onArenaMaintenance(ArenaMaintenanceEvent evt) /** * Event handler for ArenaPlayerJoinedEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaPlayerJoined(ArenaPlayerJoinedEvent evt) @@ -123,7 +169,9 @@ public void onArenaPlayerJoined(ArenaPlayerJoinedEvent evt) /** * Event handler for ArenaPlayerJoinedQueueEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaPlayerJoinedQueue(ArenaPlayerJoinedQueueEvent evt) @@ -133,7 +181,9 @@ public void onArenaPlayerJoinedQueue(ArenaPlayerJoinedQueueEvent evt) /** * Event handler for ArenaPlayerLeavesQueueEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaPlayerLeavesQueue(ArenaPlayerLeavesQueueEvent evt) @@ -143,7 +193,9 @@ public void onArenaPlayerLeavesQueue(ArenaPlayerLeavesQueueEvent evt) /** * Event handler for ArenaStateEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onArenaState(ArenaStateEvent evt) @@ -153,7 +205,9 @@ public void onArenaState(ArenaStateEvent evt) /** * Event handler for PlayerCloseGuiEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerCloseGui(PlayerCloseGuiEvent evt) @@ -163,7 +217,9 @@ public void onPlayerCloseGui(PlayerCloseGuiEvent evt) /** * Event handler for PlayerDisplayGuiPageEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerDisplayGuiPage(PlayerDisplayGuiPageEvent evt) @@ -173,7 +229,9 @@ public void onPlayerDisplayGuiPage(PlayerDisplayGuiPageEvent evt) /** * Event handler for PlayerGuiClickEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerClickGui(PlayerGuiClickEvent evt) @@ -183,7 +241,9 @@ public void onPlayerClickGui(PlayerGuiClickEvent evt) /** * Event handler for PlayerOpenGuiEvent event. - * @param evt the event to be passed. + * + * @param evt + * the event to be passed. */ @EventHandler public void onPlayerOpenGui(PlayerOpenGuiEvent evt) @@ -191,6 +251,13 @@ public void onPlayerOpenGui(PlayerOpenGuiEvent evt) this.getHandler(PlayerOpenGuiEvent.class).handle(evt); } + @SuppressWarnings("unchecked") + @Override + public <Evt extends Event> MinigameEvent<Evt> createEvent(Evt bukkitEvent) + { + return ((MinigameEventHandler<Evt>) this.getHandler(bukkitEvent.getClass())).createMgEvent(bukkitEvent); + } + /** * The minigame event handler. * @@ -201,20 +268,45 @@ public void onPlayerOpenGui(PlayerOpenGuiEvent evt) protected final class MinigameEventHandler<T extends Event> { - public MinigameEventHandler(Class<T> clazz) + public MinigameEventHandler(Class<T> clazz, MinigameEventFactory<T> factory) { // TODO } - + /** * @param evt */ public void handle(T evt) { // TODO Auto-generated method stub - } + public MinigameEvent<T> createMgEvent(T evt) + { + // TODO + return null; + } + + } + + /** + * Interface for creating minigame event classes from given bukkit event. + * + * @param <Evt> + */ + @FunctionalInterface + public interface MinigameEventFactory<Evt extends Event> + { + + /** + * Creates the minigame event. + * + * @param event + * bukkit event. + * @return the minigame event object. + */ + MinigameEvent<Evt> create(Evt event); + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java similarity index 97% rename from LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java rename to LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java index 0514bec4..596d4db9 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/AbstractMinigameEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java @@ -13,7 +13,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.impl.event; +package com.github.mce.minigames.impl.nms; import org.bukkit.event.Event; diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java index ead74d30..c7a625e0 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java @@ -15,8 +15,11 @@ package com.github.mce.minigames.impl.nms; +import org.bukkit.event.Event; import org.bukkit.event.Listener; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + /** * Generic event system. * @@ -25,6 +28,12 @@ public interface EventSystemInterface extends Listener { - // marker only + /** + * Creates a minigame event from given bukkit event. + * + * @param bukkitEvent + * @return minigame event. + */ + <Evt extends Event> MinigameEvent<Evt> createEvent(Evt bukkitEvent); } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java new file mode 100644 index 00000000..2fc2c6cd --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaCreateEvent; +import com.github.mce.minigames.api.event.ArenaCreateEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaCreateEvent extends AbstractMinigameEvent<ArenaCreateEvent> implements MinigameArenaCreateEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaCreateEvent(ArenaCreateEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java new file mode 100644 index 00000000..47a7df55 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaCreatedEvent; +import com.github.mce.minigames.api.event.ArenaCreatedEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaCreatedEvent extends AbstractMinigameEvent<ArenaCreatedEvent> implements MinigameArenaCreatedEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaCreatedEvent(ArenaCreatedEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java new file mode 100644 index 00000000..7d10cae0 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaDeleteEvent; +import com.github.mce.minigames.api.event.ArenaDeleteEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaDeleteEvent extends AbstractMinigameEvent<ArenaDeleteEvent> implements MinigameArenaDeleteEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaDeleteEvent(ArenaDeleteEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java new file mode 100644 index 00000000..36041501 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaDeletedEvent; +import com.github.mce.minigames.api.event.ArenaDeletedEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaDeletedEvent extends AbstractMinigameEvent<ArenaDeletedEvent> implements MinigameArenaDeletedEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaDeletedEvent(ArenaDeletedEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java new file mode 100644 index 00000000..cf106ab1 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaMaintenanceEvent; +import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaMaintenanceEvent extends AbstractMinigameEvent<ArenaMaintenanceEvent> implements MinigameArenaMaintenanceEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaMaintenanceEvent(ArenaMaintenanceEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java new file mode 100644 index 00000000..d3c48872 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerJoinedEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaPlayerJoinedEvent extends AbstractMinigameEvent<ArenaPlayerJoinedEvent> implements MinigameArenaPlayerJoinedEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaPlayerJoinedEvent(ArenaPlayerJoinedEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java new file mode 100644 index 00000000..5f3e9021 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerJoinedQueueEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaPlayerJoinedQueueEvent extends AbstractMinigameEvent<ArenaPlayerJoinedQueueEvent> implements MinigameArenaPlayerJoinedQueueEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaPlayerJoinedQueueEvent(ArenaPlayerJoinedQueueEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java new file mode 100644 index 00000000..2f43ebe0 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerLeavesQueueEvent; +import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaPlayerLeavesQueueEvent extends AbstractMinigameEvent<ArenaPlayerLeavesQueueEvent> implements MinigameArenaPlayerLeavesQueueEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaPlayerLeavesQueueEvent(ArenaPlayerLeavesQueueEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java new file mode 100644 index 00000000..331d35e8 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaStateEvent; +import com.github.mce.minigames.api.event.ArenaStateEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaStateEvent extends AbstractMinigameEvent<ArenaStateEvent> implements MinigameArenaStateEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaStateEvent(ArenaStateEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java new file mode 100644 index 00000000..3f4a1f50 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerCloseGuiEvent; +import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerCloseGuiEvent extends AbstractMinigameEvent<PlayerCloseGuiEvent> implements MinigamePlayerCloseGuiEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerCloseGuiEvent(PlayerCloseGuiEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java new file mode 100644 index 00000000..9c459d20 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerDisplayGuiPageEvent; +import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerDisplayGuiPageEvent extends AbstractMinigameEvent<PlayerDisplayGuiPageEvent> implements MinigamePlayerDisplayGuiPageEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerDisplayGuiPageEvent(PlayerDisplayGuiPageEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java new file mode 100644 index 00000000..d6240131 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerGuiClickEvent; +import com.github.mce.minigames.api.event.PlayerGuiClickEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerGuiClickEvent extends AbstractMinigameEvent<PlayerGuiClickEvent> implements MinigamePlayerGuiClickEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerGuiClickEvent(PlayerGuiClickEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java new file mode 100644 index 00000000..79758e12 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerOpenGuiEvent; +import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerOpenGuiEvent extends AbstractMinigameEvent<PlayerOpenGuiEvent> implements MinigamePlayerOpenGuiEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerOpenGuiEvent(PlayerOpenGuiEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java index abbaec15..03d8178c 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java @@ -180,6 +180,15 @@ public class EventSystem1_10_1 extends AbstractEventSystem { + /** + * Constructor + */ + public EventSystem1_10_1() + { + super(); + // TODO register event classes + } + /** * Event handler for AreaEffectCloudApplyEvent event. * @param evt the event to be passed. diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java new file mode 100644 index 00000000..4233db2b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.AreaEffectCloudApplyEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameAreaEffectCloudApplyEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgAreaEffectCloudApplyEvent extends AbstractMinigameEvent<AreaEffectCloudApplyEvent> implements MinigameAreaEffectCloudApplyEvent +{ + + /** + * Constructor + * @param event + */ + public MgAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java new file mode 100644 index 00000000..444df2c2 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.AsyncPlayerChatEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameAsyncPlayerChatEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgAsyncPlayerChatEvent extends AbstractMinigameEvent<AsyncPlayerChatEvent> implements MinigameAsyncPlayerChatEvent +{ + + /** + * Constructor + * @param event + */ + public MgAsyncPlayerChatEvent(AsyncPlayerChatEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java new file mode 100644 index 00000000..63e2ed98 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockBreakEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockBreakEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockBreakEvent extends AbstractMinigameEvent<BlockBreakEvent> implements MinigameBlockBreakEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockBreakEvent(BlockBreakEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java new file mode 100644 index 00000000..53bcb371 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockBurnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockBurnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockBurnEvent extends AbstractMinigameEvent<BlockBurnEvent> implements MinigameBlockBurnEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockBurnEvent(BlockBurnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java new file mode 100644 index 00000000..8e32548d --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockCanBuildEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockCanBuildEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockCanBuildEvent extends AbstractMinigameEvent<BlockCanBuildEvent> implements MinigameBlockCanBuildEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockCanBuildEvent(BlockCanBuildEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java new file mode 100644 index 00000000..532716ce --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockDamageEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockDamageEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockDamageEvent extends AbstractMinigameEvent<BlockDamageEvent> implements MinigameBlockDamageEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockDamageEvent(BlockDamageEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java new file mode 100644 index 00000000..2ac8b745 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockDispenseEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockDispenseEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockDispenseEvent extends AbstractMinigameEvent<BlockDispenseEvent> implements MinigameBlockDispenseEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockDispenseEvent(BlockDispenseEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java new file mode 100644 index 00000000..173aa14b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockExpEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockExpEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockExpEvent extends AbstractMinigameEvent<BlockExpEvent> implements MinigameBlockExpEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockExpEvent(BlockExpEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java new file mode 100644 index 00000000..627f9ac0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockExplodeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockExplodeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockExplodeEvent extends AbstractMinigameEvent<BlockExplodeEvent> implements MinigameBlockExplodeEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockExplodeEvent(BlockExplodeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java new file mode 100644 index 00000000..f87af911 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockFadeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFadeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockFadeEvent extends AbstractMinigameEvent<BlockFadeEvent> implements MinigameBlockFadeEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockFadeEvent(BlockFadeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java new file mode 100644 index 00000000..a7117338 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockFormEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFormEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockFormEvent extends AbstractMinigameEvent<BlockFormEvent> implements MinigameBlockFormEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockFormEvent(BlockFormEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java new file mode 100644 index 00000000..408bddae --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockFromToEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFromToEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockFromToEvent extends AbstractMinigameEvent<BlockFromToEvent> implements MinigameBlockFromToEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockFromToEvent(BlockFromToEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java new file mode 100644 index 00000000..19d70900 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockGrowEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockGrowEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockGrowEvent extends AbstractMinigameEvent<BlockGrowEvent> implements MinigameBlockGrowEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockGrowEvent(BlockGrowEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java new file mode 100644 index 00000000..69a725ba --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockIgniteEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockIgniteEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockIgniteEvent extends AbstractMinigameEvent<BlockIgniteEvent> implements MinigameBlockIgniteEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockIgniteEvent(BlockIgniteEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java new file mode 100644 index 00000000..f54fe61b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockMultiPlaceEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockMultiPlaceEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockMultiPlaceEvent extends AbstractMinigameEvent<BlockMultiPlaceEvent> implements MinigameBlockMultiPlaceEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockMultiPlaceEvent(BlockMultiPlaceEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java new file mode 100644 index 00000000..db4597db --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockPhysicsEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPhysicsEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockPhysicsEvent extends AbstractMinigameEvent<BlockPhysicsEvent> implements MinigameBlockPhysicsEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockPhysicsEvent(BlockPhysicsEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java new file mode 100644 index 00000000..494aec7e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockPistonExtendEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPistonExtendEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockPistonExtendEvent extends AbstractMinigameEvent<BlockPistonExtendEvent> implements MinigameBlockPistonExtendEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockPistonExtendEvent(BlockPistonExtendEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java new file mode 100644 index 00000000..bfd5ace0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockPistonRetractEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPistonRetractEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockPistonRetractEvent extends AbstractMinigameEvent<BlockPistonRetractEvent> implements MinigameBlockPistonRetractEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockPistonRetractEvent(BlockPistonRetractEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java new file mode 100644 index 00000000..e099b07c --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockPlaceEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPlaceEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockPlaceEvent extends AbstractMinigameEvent<BlockPlaceEvent> implements MinigameBlockPlaceEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockPlaceEvent(BlockPlaceEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java new file mode 100644 index 00000000..d94350a4 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockRedstoneEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockRedstoneEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockRedstoneEvent extends AbstractMinigameEvent<BlockRedstoneEvent> implements MinigameBlockRedstoneEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockRedstoneEvent(BlockRedstoneEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java new file mode 100644 index 00000000..01059bca --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.BlockSpreadEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockSpreadEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBlockSpreadEvent extends AbstractMinigameEvent<BlockSpreadEvent> implements MinigameBlockSpreadEvent +{ + + /** + * Constructor + * @param event + */ + public MgBlockSpreadEvent(BlockSpreadEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java new file mode 100644 index 00000000..5fa3731c --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.BrewEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameBrewEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgBrewEvent extends AbstractMinigameEvent<BrewEvent> implements MinigameBrewEvent +{ + + /** + * Constructor + * @param event + */ + public MgBrewEvent(BrewEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java new file mode 100644 index 00000000..60b80b57 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.CauldronLevelChangeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameCauldronLevelChangeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgCauldronLevelChangeEvent extends AbstractMinigameEvent<CauldronLevelChangeEvent> implements MinigameCauldronLevelChangeEvent +{ + + /** + * Constructor + * @param event + */ + public MgCauldronLevelChangeEvent(CauldronLevelChangeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java new file mode 100644 index 00000000..0d2907a8 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.CraftItemEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameCraftItemEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgCraftItemEvent extends AbstractMinigameEvent<CraftItemEvent> implements MinigameCraftItemEvent +{ + + /** + * Constructor + * @param event + */ + public MgCraftItemEvent(CraftItemEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java new file mode 100644 index 00000000..4a2b0b8b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameCreatureSpawnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgCreatureSpawnEvent extends AbstractMinigameEvent<CreatureSpawnEvent> implements MinigameCreatureSpawnEvent +{ + + /** + * Constructor + * @param event + */ + public MgCreatureSpawnEvent(CreatureSpawnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java new file mode 100644 index 00000000..af2893a0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.CreeperPowerEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameCreeperPowerEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgCreeperPowerEvent extends AbstractMinigameEvent<CreeperPowerEvent> implements MinigameCreeperPowerEvent +{ + + /** + * Constructor + * @param event + */ + public MgCreeperPowerEvent(CreeperPowerEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java new file mode 100644 index 00000000..54edae84 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.enchantment.EnchantItemEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEnchantItemEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEnchantItemEvent extends AbstractMinigameEvent<EnchantItemEvent> implements MinigameEnchantItemEvent +{ + + /** + * Constructor + * @param event + */ + public MgEnchantItemEvent(EnchantItemEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java new file mode 100644 index 00000000..3d82e0d1 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EnderDragonChangePhaseEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEnderDragonChangePhaseEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEnderDragonChangePhaseEvent extends AbstractMinigameEvent<EnderDragonChangePhaseEvent> implements MinigameEnderDragonChangePhaseEvent +{ + + /** + * Constructor + * @param event + */ + public MgEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java new file mode 100644 index 00000000..83f175fe --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.EntityBlockFormEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBlockFormEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityBlockFormEvent extends AbstractMinigameEvent<EntityBlockFormEvent> implements MinigameEntityBlockFormEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityBlockFormEvent(EntityBlockFormEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java new file mode 100644 index 00000000..b631751b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityBreakDoorEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBreakDoorEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityBreakDoorEvent extends AbstractMinigameEvent<EntityBreakDoorEvent> implements MinigameEntityBreakDoorEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityBreakDoorEvent(EntityBreakDoorEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java new file mode 100644 index 00000000..0c63f400 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityBreedEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBreedEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityBreedEvent extends AbstractMinigameEvent<EntityBreedEvent> implements MinigameEntityBreedEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityBreedEvent(EntityBreedEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java new file mode 100644 index 00000000..973b2286 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityChangeBlockEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityChangeBlockEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityChangeBlockEvent extends AbstractMinigameEvent<EntityChangeBlockEvent> implements MinigameEntityChangeBlockEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityChangeBlockEvent(EntityChangeBlockEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java new file mode 100644 index 00000000..49c003b6 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityCombustByBlockEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustByBlockEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityCombustByBlockEvent extends AbstractMinigameEvent<EntityCombustByBlockEvent> implements MinigameEntityCombustByBlockEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityCombustByBlockEvent(EntityCombustByBlockEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java new file mode 100644 index 00000000..c3c1c772 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityCombustByEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustByEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityCombustByEntityEvent extends AbstractMinigameEvent<EntityCombustByEntityEvent> implements MinigameEntityCombustByEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityCombustByEntityEvent(EntityCombustByEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java new file mode 100644 index 00000000..0bfcb7a9 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityCombustEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityCombustEvent extends AbstractMinigameEvent<EntityCombustEvent> implements MinigameEntityCombustEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityCombustEvent(EntityCombustEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java new file mode 100644 index 00000000..c35c46c5 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityCreatePortalEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCreatePortalEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityCreatePortalEvent extends AbstractMinigameEvent<EntityCreatePortalEvent> implements MinigameEntityCreatePortalEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityCreatePortalEvent(EntityCreatePortalEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java new file mode 100644 index 00000000..dfd95898 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityDamageByBlockEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageByBlockEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityDamageByBlockEvent extends AbstractMinigameEvent<EntityDamageByBlockEvent> implements MinigameEntityDamageByBlockEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityDamageByBlockEvent(EntityDamageByBlockEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java new file mode 100644 index 00000000..87f1d5a4 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageByEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityDamageByEntityEvent extends AbstractMinigameEvent<EntityDamageByEntityEvent> implements MinigameEntityDamageByEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityDamageByEntityEvent(EntityDamageByEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java new file mode 100644 index 00000000..dda28217 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityDamageEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityDamageEvent extends AbstractMinigameEvent<EntityDamageEvent> implements MinigameEntityDamageEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityDamageEvent(EntityDamageEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java new file mode 100644 index 00000000..399435ea --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityDeathEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDeathEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityDeathEvent extends AbstractMinigameEvent<EntityDeathEvent> implements MinigameEntityDeathEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityDeathEvent(EntityDeathEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java new file mode 100644 index 00000000..c0b3b2c0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityExplodeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityExplodeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityExplodeEvent extends AbstractMinigameEvent<EntityExplodeEvent> implements MinigameEntityExplodeEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityExplodeEvent(EntityExplodeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java new file mode 100644 index 00000000..da73c70f --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityInteractEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityInteractEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityInteractEvent extends AbstractMinigameEvent<EntityInteractEvent> implements MinigameEntityInteractEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityInteractEvent(EntityInteractEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java new file mode 100644 index 00000000..3ba6c79e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityPortalEnterEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityPortalEnterEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityPortalEnterEvent extends AbstractMinigameEvent<EntityPortalEnterEvent> implements MinigameEntityPortalEnterEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityPortalEnterEvent(EntityPortalEnterEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java new file mode 100644 index 00000000..fdfd0623 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityPortalEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityPortalEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityPortalEvent extends AbstractMinigameEvent<EntityPortalEvent> implements MinigameEntityPortalEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityPortalEvent(EntityPortalEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java new file mode 100644 index 00000000..427727af --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityPortalExitEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityPortalExitEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityPortalExitEvent extends AbstractMinigameEvent<EntityPortalExitEvent> implements MinigameEntityPortalExitEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityPortalExitEvent(EntityPortalExitEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java new file mode 100644 index 00000000..759846a5 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityRegainHealthEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityRegainHealthEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityRegainHealthEvent extends AbstractMinigameEvent<EntityRegainHealthEvent> implements MinigameEntityRegainHealthEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityRegainHealthEvent(EntityRegainHealthEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java new file mode 100644 index 00000000..63a9b038 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityShootBowEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityShootBowEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityShootBowEvent extends AbstractMinigameEvent<EntityShootBowEvent> implements MinigameEntityShootBowEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityShootBowEvent(EntityShootBowEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java new file mode 100644 index 00000000..2ef412f8 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntitySpawnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntitySpawnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntitySpawnEvent extends AbstractMinigameEvent<EntitySpawnEvent> implements MinigameEntitySpawnEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntitySpawnEvent(EntitySpawnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java new file mode 100644 index 00000000..b740f0b6 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityTameEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTameEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityTameEvent extends AbstractMinigameEvent<EntityTameEvent> implements MinigameEntityTameEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityTameEvent(EntityTameEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java new file mode 100644 index 00000000..4c9ac0fa --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityTargetEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTargetEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityTargetEvent extends AbstractMinigameEvent<EntityTargetEvent> implements MinigameEntityTargetEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityTargetEvent(EntityTargetEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java new file mode 100644 index 00000000..61d7a79a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTargetLivingEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityTargetLivingEntityEvent extends AbstractMinigameEvent<EntityTargetLivingEntityEvent> implements MinigameEntityTargetLivingEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java new file mode 100644 index 00000000..c0a9be00 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityTeleportEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTeleportEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityTeleportEvent extends AbstractMinigameEvent<EntityTeleportEvent> implements MinigameEntityTeleportEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityTeleportEvent(EntityTeleportEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java new file mode 100644 index 00000000..82eeb152 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityToggleGlideEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityToggleGlideEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityToggleGlideEvent extends AbstractMinigameEvent<EntityToggleGlideEvent> implements MinigameEntityToggleGlideEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityToggleGlideEvent(EntityToggleGlideEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java new file mode 100644 index 00000000..6225539e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.EntityUnleashEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityUnleashEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgEntityUnleashEvent extends AbstractMinigameEvent<EntityUnleashEvent> implements MinigameEntityUnleashEvent +{ + + /** + * Constructor + * @param event + */ + public MgEntityUnleashEvent(EntityUnleashEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java new file mode 100644 index 00000000..6ae1ba61 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ExpBottleEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameExpBottleEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgExpBottleEvent extends AbstractMinigameEvent<ExpBottleEvent> implements MinigameExpBottleEvent +{ + + /** + * Constructor + * @param event + */ + public MgExpBottleEvent(ExpBottleEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java new file mode 100644 index 00000000..33d85324 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ExplosionPrimeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameExplosionPrimeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgExplosionPrimeEvent extends AbstractMinigameEvent<ExplosionPrimeEvent> implements MinigameExplosionPrimeEvent +{ + + /** + * Constructor + * @param event + */ + public MgExplosionPrimeEvent(ExplosionPrimeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java new file mode 100644 index 00000000..2074ca2a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.FireworkExplodeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameFireworkExplodeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgFireworkExplodeEvent extends AbstractMinigameEvent<FireworkExplodeEvent> implements MinigameFireworkExplodeEvent +{ + + /** + * Constructor + * @param event + */ + public MgFireworkExplodeEvent(FireworkExplodeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java new file mode 100644 index 00000000..c8d8fd7f --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.FoodLevelChangeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameFoodLevelChangeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgFoodLevelChangeEvent extends AbstractMinigameEvent<FoodLevelChangeEvent> implements MinigameFoodLevelChangeEvent +{ + + /** + * Constructor + * @param event + */ + public MgFoodLevelChangeEvent(FoodLevelChangeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java new file mode 100644 index 00000000..4201ba28 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.FurnaceBurnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameFurnaceBurnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgFurnaceBurnEvent extends AbstractMinigameEvent<FurnaceBurnEvent> implements MinigameFurnaceBurnEvent +{ + + /** + * Constructor + * @param event + */ + public MgFurnaceBurnEvent(FurnaceBurnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java new file mode 100644 index 00000000..23ca16ff --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.FurnaceSmeltEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameFurnaceSmeltEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgFurnaceSmeltEvent extends AbstractMinigameEvent<FurnaceSmeltEvent> implements MinigameFurnaceSmeltEvent +{ + + /** + * Constructor + * @param event + */ + public MgFurnaceSmeltEvent(FurnaceSmeltEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java new file mode 100644 index 00000000..b8f56356 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.hanging.HangingBreakByEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingBreakByEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgHangingBreakByEntityEvent extends AbstractMinigameEvent<HangingBreakByEntityEvent> implements MinigameHangingBreakByEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgHangingBreakByEntityEvent(HangingBreakByEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java new file mode 100644 index 00000000..a3d6fd0f --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.hanging.HangingBreakEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingBreakEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgHangingBreakEvent extends AbstractMinigameEvent<HangingBreakEvent> implements MinigameHangingBreakEvent +{ + + /** + * Constructor + * @param event + */ + public MgHangingBreakEvent(HangingBreakEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java new file mode 100644 index 00000000..3fc2114e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.hanging.HangingPlaceEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingPlaceEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgHangingPlaceEvent extends AbstractMinigameEvent<HangingPlaceEvent> implements MinigameHangingPlaceEvent +{ + + /** + * Constructor + * @param event + */ + public MgHangingPlaceEvent(HangingPlaceEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java new file mode 100644 index 00000000..a4d7b2e5 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.HorseJumpEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameHorseJumpEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgHorseJumpEvent extends AbstractMinigameEvent<HorseJumpEvent> implements MinigameHorseJumpEvent +{ + + /** + * Constructor + * @param event + */ + public MgHorseJumpEvent(HorseJumpEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java new file mode 100644 index 00000000..9c8c3b15 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryClickEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryClickEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickEvent> implements MinigameInventoryClickEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryClickEvent(InventoryClickEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java new file mode 100644 index 00000000..3483be5a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryCloseEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryCloseEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryCloseEvent extends AbstractMinigameEvent<InventoryCloseEvent> implements MinigameInventoryCloseEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryCloseEvent(InventoryCloseEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java new file mode 100644 index 00000000..d03b0a8f --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryCreativeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryCreativeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryCreativeEvent extends AbstractMinigameEvent<InventoryCreativeEvent> implements MinigameInventoryCreativeEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryCreativeEvent(InventoryCreativeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java new file mode 100644 index 00000000..4eeaf3f7 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryDragEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryDragEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEvent> implements MinigameInventoryDragEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryDragEvent(InventoryDragEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java new file mode 100644 index 00000000..35b28a88 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryEvent extends AbstractMinigameEvent<InventoryEvent> implements MinigameInventoryEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryEvent(InventoryEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java new file mode 100644 index 00000000..7d7a0ff8 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryInteractEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryInteractEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryInteractEvent extends AbstractMinigameEvent<InventoryInteractEvent> implements MinigameInventoryInteractEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryInteractEvent(InventoryInteractEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java new file mode 100644 index 00000000..4a7776ba --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryMoveItemEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryMoveItemEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryMoveItemEvent extends AbstractMinigameEvent<InventoryMoveItemEvent> implements MinigameInventoryMoveItemEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryMoveItemEvent(InventoryMoveItemEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java new file mode 100644 index 00000000..2d5961fd --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryOpenEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryOpenEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryOpenEvent extends AbstractMinigameEvent<InventoryOpenEvent> implements MinigameInventoryOpenEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryOpenEvent(InventoryOpenEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java new file mode 100644 index 00000000..a871c853 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.InventoryPickupItemEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryPickupItemEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgInventoryPickupItemEvent extends AbstractMinigameEvent<InventoryPickupItemEvent> implements MinigameInventoryPickupItemEvent +{ + + /** + * Constructor + * @param event + */ + public MgInventoryPickupItemEvent(InventoryPickupItemEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java new file mode 100644 index 00000000..f8c52382 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ItemDespawnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameItemDespawnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgItemDespawnEvent extends AbstractMinigameEvent<ItemDespawnEvent> implements MinigameItemDespawnEvent +{ + + /** + * Constructor + * @param event + */ + public MgItemDespawnEvent(ItemDespawnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java new file mode 100644 index 00000000..dc183643 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ItemMergeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameItemMergeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgItemMergeEvent extends AbstractMinigameEvent<ItemMergeEvent> implements MinigameItemMergeEvent +{ + + /** + * Constructor + * @param event + */ + public MgItemMergeEvent(ItemMergeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java new file mode 100644 index 00000000..c26875ca --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ItemSpawnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameItemSpawnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgItemSpawnEvent extends AbstractMinigameEvent<ItemSpawnEvent> implements MinigameItemSpawnEvent +{ + + /** + * Constructor + * @param event + */ + public MgItemSpawnEvent(ItemSpawnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java new file mode 100644 index 00000000..1c37a437 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.LeavesDecayEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameLeavesDecayEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgLeavesDecayEvent extends AbstractMinigameEvent<LeavesDecayEvent> implements MinigameLeavesDecayEvent +{ + + /** + * Constructor + * @param event + */ + public MgLeavesDecayEvent(LeavesDecayEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java new file mode 100644 index 00000000..e15a16b5 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.LingeringPotionSplashEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameLingeringPotionSplashEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgLingeringPotionSplashEvent extends AbstractMinigameEvent<LingeringPotionSplashEvent> implements MinigameLingeringPotionSplashEvent +{ + + /** + * Constructor + * @param event + */ + public MgLingeringPotionSplashEvent(LingeringPotionSplashEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java new file mode 100644 index 00000000..6ab653aa --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.NotePlayEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameNotePlayEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgNotePlayEvent extends AbstractMinigameEvent<NotePlayEvent> implements MinigameNotePlayEvent +{ + + /** + * Constructor + * @param event + */ + public MgNotePlayEvent(NotePlayEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java new file mode 100644 index 00000000..cd59b555 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.PigZapEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePigZapEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPigZapEvent extends AbstractMinigameEvent<PigZapEvent> implements MinigamePigZapEvent +{ + + /** + * Constructor + * @param event + */ + public MgPigZapEvent(PigZapEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java new file mode 100644 index 00000000..10727a77 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerAchievementAwardedEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerAchievementAwardedEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerAchievementAwardedEvent extends AbstractMinigameEvent<PlayerAchievementAwardedEvent> implements MinigamePlayerAchievementAwardedEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java new file mode 100644 index 00000000..dd6d4247 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerAnimationEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerAnimationEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerAnimationEvent extends AbstractMinigameEvent<PlayerAnimationEvent> implements MinigamePlayerAnimationEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerAnimationEvent(PlayerAnimationEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java new file mode 100644 index 00000000..918ca74d --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerArmorStandManipulateEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerArmorStandManipulateEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerArmorStandManipulateEvent extends AbstractMinigameEvent<PlayerArmorStandManipulateEvent> implements MinigamePlayerArmorStandManipulateEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java new file mode 100644 index 00000000..0b01515e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerBedEnterEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBedEnterEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerBedEnterEvent extends AbstractMinigameEvent<PlayerBedEnterEvent> implements MinigamePlayerBedEnterEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerBedEnterEvent(PlayerBedEnterEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java new file mode 100644 index 00000000..9caf08b5 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerBedLeaveEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBedLeaveEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerBedLeaveEvent extends AbstractMinigameEvent<PlayerBedLeaveEvent> implements MinigamePlayerBedLeaveEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerBedLeaveEvent(PlayerBedLeaveEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java new file mode 100644 index 00000000..9689576a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerBucketEmptyEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBucketEmptyEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerBucketEmptyEvent extends AbstractMinigameEvent<PlayerBucketEmptyEvent> implements MinigamePlayerBucketEmptyEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerBucketEmptyEvent(PlayerBucketEmptyEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java new file mode 100644 index 00000000..3db7bc75 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerBucketFillEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBucketFillEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerBucketFillEvent extends AbstractMinigameEvent<PlayerBucketFillEvent> implements MinigamePlayerBucketFillEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerBucketFillEvent(PlayerBucketFillEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java new file mode 100644 index 00000000..39f3ce9f --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerChangedMainHandEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChangedMainHandEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerChangedMainHandEvent extends AbstractMinigameEvent<PlayerChangedMainHandEvent> implements MinigamePlayerChangedMainHandEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerChangedMainHandEvent(PlayerChangedMainHandEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java new file mode 100644 index 00000000..8576f60b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerChangedWorldEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChangedWorldEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerChangedWorldEvent extends AbstractMinigameEvent<PlayerChangedWorldEvent> implements MinigamePlayerChangedWorldEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerChangedWorldEvent(PlayerChangedWorldEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java new file mode 100644 index 00000000..a627464b --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerChannelEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChannelEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerChannelEvent extends AbstractMinigameEvent<PlayerChannelEvent> implements MinigamePlayerChannelEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerChannelEvent(PlayerChannelEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java new file mode 100644 index 00000000..96369ae8 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerChatEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChatEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerChatEvent extends AbstractMinigameEvent<PlayerChatEvent> implements MinigamePlayerChatEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerChatEvent(PlayerChatEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java new file mode 100644 index 00000000..11b89aec --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerChatTabCompleteEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChatTabCompleteEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerChatTabCompleteEvent extends AbstractMinigameEvent<PlayerChatTabCompleteEvent> implements MinigamePlayerChatTabCompleteEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java new file mode 100644 index 00000000..2210cec0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerCommandPreprocessEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerCommandPreprocessEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerCommandPreprocessEvent extends AbstractMinigameEvent<PlayerCommandPreprocessEvent> implements MinigamePlayerCommandPreprocessEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java new file mode 100644 index 00000000..40b8f7cb --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.PlayerDeathEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerDeathEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerDeathEvent extends AbstractMinigameEvent<PlayerDeathEvent> implements MinigamePlayerDeathEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerDeathEvent(PlayerDeathEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java new file mode 100644 index 00000000..06ccfa2a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerDropItemEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerDropItemEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerDropItemEvent extends AbstractMinigameEvent<PlayerDropItemEvent> implements MinigamePlayerDropItemEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerDropItemEvent(PlayerDropItemEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java new file mode 100644 index 00000000..955aa224 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerEditBookEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerEditBookEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerEditBookEvent extends AbstractMinigameEvent<PlayerEditBookEvent> implements MinigamePlayerEditBookEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerEditBookEvent(PlayerEditBookEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java new file mode 100644 index 00000000..ec2eb205 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerEggThrowEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerEggThrowEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerEggThrowEvent extends AbstractMinigameEvent<PlayerEggThrowEvent> implements MinigamePlayerEggThrowEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerEggThrowEvent(PlayerEggThrowEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java new file mode 100644 index 00000000..7374e7eb --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerExpChangeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerExpChangeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerExpChangeEvent extends AbstractMinigameEvent<PlayerExpChangeEvent> implements MinigamePlayerExpChangeEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerExpChangeEvent(PlayerExpChangeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java new file mode 100644 index 00000000..b4163fff --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerFishEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerFishEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerFishEvent extends AbstractMinigameEvent<PlayerFishEvent> implements MinigamePlayerFishEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerFishEvent(PlayerFishEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java new file mode 100644 index 00000000..5448c21f --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerGameModeChangeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerGameModeChangeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerGameModeChangeEvent extends AbstractMinigameEvent<PlayerGameModeChangeEvent> implements MinigamePlayerGameModeChangeEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerGameModeChangeEvent(PlayerGameModeChangeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java new file mode 100644 index 00000000..854817eb --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java @@ -0,0 +1,41 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerInteractAtEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractAtEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerInteractAtEntityEvent extends AbstractMinigameEvent<PlayerInteractAtEntityEvent> implements MinigamePlayerInteractAtEntityEvent +{ + + /** + * Constructor + * + * @param event + */ + public MgPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java new file mode 100644 index 00000000..5fa797e8 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerInteractEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerInteractEntityEvent extends AbstractMinigameEvent<PlayerInteractEntityEvent> implements MinigamePlayerInteractEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerInteractEntityEvent(PlayerInteractEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java new file mode 100644 index 00000000..eba1e4fc --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerInteractEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerInteractEvent extends AbstractMinigameEvent<PlayerInteractEvent> implements MinigamePlayerInteractEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerInteractEvent(PlayerInteractEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java new file mode 100644 index 00000000..90d760e7 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerInventoryEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInventoryEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerInventoryEvent extends AbstractMinigameEvent<PlayerInventoryEvent> implements MinigamePlayerInventoryEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerInventoryEvent(PlayerInventoryEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java new file mode 100644 index 00000000..d3c9d380 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerItemBreakEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemBreakEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerItemBreakEvent extends AbstractMinigameEvent<PlayerItemBreakEvent> implements MinigamePlayerItemBreakEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerItemBreakEvent(PlayerItemBreakEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java new file mode 100644 index 00000000..169a4461 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerItemConsumeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemConsumeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerItemConsumeEvent extends AbstractMinigameEvent<PlayerItemConsumeEvent> implements MinigamePlayerItemConsumeEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerItemConsumeEvent(PlayerItemConsumeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java new file mode 100644 index 00000000..5f79e778 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerItemDamageEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemDamageEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerItemDamageEvent extends AbstractMinigameEvent<PlayerItemDamageEvent> implements MinigamePlayerItemDamageEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerItemDamageEvent(PlayerItemDamageEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java new file mode 100644 index 00000000..d364a541 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerItemHeldEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemHeldEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerItemHeldEvent extends AbstractMinigameEvent<PlayerItemHeldEvent> implements MinigamePlayerItemHeldEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerItemHeldEvent(PlayerItemHeldEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java new file mode 100644 index 00000000..e13abfbc --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerJoinEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerJoinEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerJoinEvent extends AbstractMinigameEvent<PlayerJoinEvent> implements MinigamePlayerJoinEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerJoinEvent(PlayerJoinEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java new file mode 100644 index 00000000..07c6f994 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerKickEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerKickEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerKickEvent extends AbstractMinigameEvent<PlayerKickEvent> implements MinigamePlayerKickEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerKickEvent(PlayerKickEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java new file mode 100644 index 00000000..ddefc707 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.PlayerLeashEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLeashEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerLeashEntityEvent extends AbstractMinigameEvent<PlayerLeashEntityEvent> implements MinigamePlayerLeashEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerLeashEntityEvent(PlayerLeashEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java new file mode 100644 index 00000000..49a3b8bb --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerLevelChangeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLevelChangeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerLevelChangeEvent extends AbstractMinigameEvent<PlayerLevelChangeEvent> implements MinigamePlayerLevelChangeEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerLevelChangeEvent(PlayerLevelChangeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java new file mode 100644 index 00000000..382f0733 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerLoginEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLoginEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerLoginEvent extends AbstractMinigameEvent<PlayerLoginEvent> implements MinigamePlayerLoginEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerLoginEvent(PlayerLoginEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java new file mode 100644 index 00000000..ea1734c2 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerMoveEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerMoveEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerMoveEvent extends AbstractMinigameEvent<PlayerMoveEvent> implements MinigamePlayerMoveEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerMoveEvent(PlayerMoveEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java new file mode 100644 index 00000000..d85f8880 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerPickupArrowEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPickupArrowEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerPickupArrowEvent extends AbstractMinigameEvent<PlayerPickupArrowEvent> implements MinigamePlayerPickupArrowEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerPickupArrowEvent(PlayerPickupArrowEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java new file mode 100644 index 00000000..9f3a1fb1 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerPickupItemEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPickupItemEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerPickupItemEvent extends AbstractMinigameEvent<PlayerPickupItemEvent> implements MinigamePlayerPickupItemEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerPickupItemEvent(PlayerPickupItemEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java new file mode 100644 index 00000000..b20a5db9 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerPortalEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPortalEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerPortalEvent extends AbstractMinigameEvent<PlayerPortalEvent> implements MinigamePlayerPortalEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerPortalEvent(PlayerPortalEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java new file mode 100644 index 00000000..070aedca --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerQuitEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerQuitEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerQuitEvent extends AbstractMinigameEvent<PlayerQuitEvent> implements MinigamePlayerQuitEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerQuitEvent(PlayerQuitEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java new file mode 100644 index 00000000..666d37e6 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerRegisterChannelEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerRegisterChannelEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerRegisterChannelEvent extends AbstractMinigameEvent<PlayerRegisterChannelEvent> implements MinigamePlayerRegisterChannelEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerRegisterChannelEvent(PlayerRegisterChannelEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java new file mode 100644 index 00000000..f3e00be4 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerResourcePackStatusEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerResourcePackStatusEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerResourcePackStatusEvent extends AbstractMinigameEvent<PlayerResourcePackStatusEvent> implements MinigamePlayerResourcePackStatusEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java new file mode 100644 index 00000000..a130e111 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerRespawnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerRespawnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerRespawnEvent extends AbstractMinigameEvent<PlayerRespawnEvent> implements MinigamePlayerRespawnEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerRespawnEvent(PlayerRespawnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java new file mode 100644 index 00000000..bd18f8d2 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerShearEntityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerShearEntityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerShearEntityEvent extends AbstractMinigameEvent<PlayerShearEntityEvent> implements MinigamePlayerShearEntityEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerShearEntityEvent(PlayerShearEntityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java new file mode 100644 index 00000000..e23b197a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerSpawnLocationEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerSpawnLocationEvent extends AbstractMinigameEvent<PlayerSpawnLocationEvent> implements MinigamePlayerSpawnLocationEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerSpawnLocationEvent(PlayerSpawnLocationEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java new file mode 100644 index 00000000..c968f3b3 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerStatisticIncrementEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerStatisticIncrementEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerStatisticIncrementEvent extends AbstractMinigameEvent<PlayerStatisticIncrementEvent> implements MinigamePlayerStatisticIncrementEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java new file mode 100644 index 00000000..cd4b44b0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerSwapHandItemsEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerSwapHandItemsEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerSwapHandItemsEvent extends AbstractMinigameEvent<PlayerSwapHandItemsEvent> implements MinigamePlayerSwapHandItemsEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java new file mode 100644 index 00000000..76c5f5f0 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerTeleportEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerTeleportEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerTeleportEvent extends AbstractMinigameEvent<PlayerTeleportEvent> implements MinigamePlayerTeleportEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerTeleportEvent(PlayerTeleportEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java new file mode 100644 index 00000000..0de6ae9c --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerToggleFlightEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleFlightEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerToggleFlightEvent extends AbstractMinigameEvent<PlayerToggleFlightEvent> implements MinigamePlayerToggleFlightEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerToggleFlightEvent(PlayerToggleFlightEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java new file mode 100644 index 00000000..858aa90d --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerToggleSneakEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleSneakEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerToggleSneakEvent extends AbstractMinigameEvent<PlayerToggleSneakEvent> implements MinigamePlayerToggleSneakEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerToggleSneakEvent(PlayerToggleSneakEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java new file mode 100644 index 00000000..7659b973 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerToggleSprintEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleSprintEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerToggleSprintEvent extends AbstractMinigameEvent<PlayerToggleSprintEvent> implements MinigamePlayerToggleSprintEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerToggleSprintEvent(PlayerToggleSprintEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java new file mode 100644 index 00000000..8a63b679 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerUnregisterChannelEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerUnregisterChannelEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerUnregisterChannelEvent extends AbstractMinigameEvent<PlayerUnregisterChannelEvent> implements MinigamePlayerUnregisterChannelEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java new file mode 100644 index 00000000..0d82ffec --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.player.PlayerVelocityEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerVelocityEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPlayerVelocityEvent extends AbstractMinigameEvent<PlayerVelocityEvent> implements MinigamePlayerVelocityEvent +{ + + /** + * Constructor + * @param event + */ + public MgPlayerVelocityEvent(PlayerVelocityEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java new file mode 100644 index 00000000..824d00bb --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.PotionSplashEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePotionSplashEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPotionSplashEvent extends AbstractMinigameEvent<PotionSplashEvent> implements MinigamePotionSplashEvent +{ + + /** + * Constructor + * @param event + */ + public MgPotionSplashEvent(PotionSplashEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java new file mode 100644 index 00000000..a10ddb21 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.PrepareAnvilEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareAnvilEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPrepareAnvilEvent extends AbstractMinigameEvent<PrepareAnvilEvent> implements MinigamePrepareAnvilEvent +{ + + /** + * Constructor + * @param event + */ + public MgPrepareAnvilEvent(PrepareAnvilEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java new file mode 100644 index 00000000..d3426c33 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.inventory.PrepareItemCraftEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareItemCraftEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPrepareItemCraftEvent extends AbstractMinigameEvent<PrepareItemCraftEvent> implements MinigamePrepareItemCraftEvent +{ + + /** + * Constructor + * @param event + */ + public MgPrepareItemCraftEvent(PrepareItemCraftEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java new file mode 100644 index 00000000..ea3c2564 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareItemEnchantEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgPrepareItemEnchantEvent extends AbstractMinigameEvent<PrepareItemEnchantEvent> implements MinigamePrepareItemEnchantEvent +{ + + /** + * Constructor + * @param event + */ + public MgPrepareItemEnchantEvent(PrepareItemEnchantEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java new file mode 100644 index 00000000..095c37c3 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ProjectileHitEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameProjectileHitEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgProjectileHitEvent extends AbstractMinigameEvent<ProjectileHitEvent> implements MinigameProjectileHitEvent +{ + + /** + * Constructor + * @param event + */ + public MgProjectileHitEvent(ProjectileHitEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java new file mode 100644 index 00000000..7e758d26 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.ProjectileLaunchEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameProjectileLaunchEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgProjectileLaunchEvent extends AbstractMinigameEvent<ProjectileLaunchEvent> implements MinigameProjectileLaunchEvent +{ + + /** + * Constructor + * @param event + */ + public MgProjectileLaunchEvent(ProjectileLaunchEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java new file mode 100644 index 00000000..b4ea252e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.SheepDyeWoolEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameSheepDyeWoolEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgSheepDyeWoolEvent extends AbstractMinigameEvent<SheepDyeWoolEvent> implements MinigameSheepDyeWoolEvent +{ + + /** + * Constructor + * @param event + */ + public MgSheepDyeWoolEvent(SheepDyeWoolEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java new file mode 100644 index 00000000..244bb96d --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.SheepRegrowWoolEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameSheepRegrowWoolEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgSheepRegrowWoolEvent extends AbstractMinigameEvent<SheepRegrowWoolEvent> implements MinigameSheepRegrowWoolEvent +{ + + /** + * Constructor + * @param event + */ + public MgSheepRegrowWoolEvent(SheepRegrowWoolEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java new file mode 100644 index 00000000..a6982822 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.block.SignChangeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameSignChangeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgSignChangeEvent extends AbstractMinigameEvent<SignChangeEvent> implements MinigameSignChangeEvent +{ + + /** + * Constructor + * @param event + */ + public MgSignChangeEvent(SignChangeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java new file mode 100644 index 00000000..ca5747b2 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.SlimeSplitEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameSlimeSplitEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgSlimeSplitEvent extends AbstractMinigameEvent<SlimeSplitEvent> implements MinigameSlimeSplitEvent +{ + + /** + * Constructor + * @param event + */ + public MgSlimeSplitEvent(SlimeSplitEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java new file mode 100644 index 00000000..739062af --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.SpawnerSpawnEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameSpawnerSpawnEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgSpawnerSpawnEvent extends AbstractMinigameEvent<SpawnerSpawnEvent> implements MinigameSpawnerSpawnEvent +{ + + /** + * Constructor + * @param event + */ + public MgSpawnerSpawnEvent(SpawnerSpawnEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java new file mode 100644 index 00000000..5686386d --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleBlockCollisionEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleBlockCollisionEvent extends AbstractMinigameEvent<VehicleBlockCollisionEvent> implements MinigameVehicleBlockCollisionEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleBlockCollisionEvent(VehicleBlockCollisionEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java new file mode 100644 index 00000000..134c3e22 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleCreateEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleCreateEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleCreateEvent extends AbstractMinigameEvent<VehicleCreateEvent> implements MinigameVehicleCreateEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleCreateEvent(VehicleCreateEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java new file mode 100644 index 00000000..fdc59425 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleDamageEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleDamageEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleDamageEvent extends AbstractMinigameEvent<VehicleDamageEvent> implements MinigameVehicleDamageEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleDamageEvent(VehicleDamageEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java new file mode 100644 index 00000000..9e3f3902 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleDestroyEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleDestroyEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleDestroyEvent extends AbstractMinigameEvent<VehicleDestroyEvent> implements MinigameVehicleDestroyEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleDestroyEvent(VehicleDestroyEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java new file mode 100644 index 00000000..de30a7dc --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleEnterEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleEnterEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleEnterEvent extends AbstractMinigameEvent<VehicleEnterEvent> implements MinigameVehicleEnterEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleEnterEvent(VehicleEnterEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java new file mode 100644 index 00000000..17eb9df9 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleEntityCollisionEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleEntityCollisionEvent extends AbstractMinigameEvent<VehicleEntityCollisionEvent> implements MinigameVehicleEntityCollisionEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleEntityCollisionEvent(VehicleEntityCollisionEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java new file mode 100644 index 00000000..66ed8e23 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleExitEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleExitEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleExitEvent extends AbstractMinigameEvent<VehicleExitEvent> implements MinigameVehicleExitEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleExitEvent(VehicleExitEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java new file mode 100644 index 00000000..16dc4f31 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleMoveEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleMoveEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleMoveEvent extends AbstractMinigameEvent<VehicleMoveEvent> implements MinigameVehicleMoveEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleMoveEvent(VehicleMoveEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java new file mode 100644 index 00000000..34c5d2ec --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.vehicle.VehicleUpdateEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleUpdateEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVehicleUpdateEvent extends AbstractMinigameEvent<VehicleUpdateEvent> implements MinigameVehicleUpdateEvent +{ + + /** + * Constructor + * @param event + */ + public MgVehicleUpdateEvent(VehicleUpdateEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java new file mode 100644 index 00000000..bd5f0169 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.VillagerAcquireTradeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVillagerAcquireTradeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVillagerAcquireTradeEvent extends AbstractMinigameEvent<VillagerAcquireTradeEvent> implements MinigameVillagerAcquireTradeEvent +{ + + /** + * Constructor + * @param event + */ + public MgVillagerAcquireTradeEvent(VillagerAcquireTradeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java new file mode 100644 index 00000000..6aaa212e --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms.v1_10_1.event; + +import org.bukkit.event.entity.VillagerReplenishTradeEvent; + +import com.github.mce.minigames.api.arena.rules.bevents.MinigameVillagerReplenishTradeEvent; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgVillagerReplenishTradeEvent extends AbstractMinigameEvent<VillagerReplenishTradeEvent> implements MinigameVillagerReplenishTradeEvent +{ + + /** + * Constructor + * @param event + */ + public MgVillagerReplenishTradeEvent(VillagerReplenishTradeEvent event) + { + super(event, null); // TODO + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java index 0c46e895..17fb51d2 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java @@ -19,6 +19,7 @@ import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryClickEvent; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** * @author mepeisen diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java index 8bd3fa26..ad0565fb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java @@ -19,6 +19,7 @@ import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryDragEvent; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** * @author mepeisen From 4f7f7c1e3a339072421603005e98d575d78f3444 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 6 Sep 2016 20:18:48 +0200 Subject: [PATCH 126/266] v2 --- .../mce/minigames/api/MglibInterface.java | 7 + .../minigames/api/arena/rules/ArenaRule.java | 2 +- .../api/arena/rules/MinigameEvent.java | 25 ++- .../MinigameAreaEffectCloudApplyEvent.java | 6 +- .../bevents/MinigameAsyncPlayerChatEvent.java | 6 +- .../bevents/MinigameBlockBreakEvent.java | 5 +- .../rules/bevents/MinigameBlockBurnEvent.java | 4 +- .../bevents/MinigameBlockCanBuildEvent.java | 5 +- .../bevents/MinigameBlockDamageEvent.java | 7 +- .../bevents/MinigameBlockDispenseEvent.java | 6 +- .../rules/bevents/MinigameBlockExpEvent.java | 5 +- .../bevents/MinigameBlockExplodeEvent.java | 6 +- .../rules/bevents/MinigameBlockFadeEvent.java | 5 +- .../rules/bevents/MinigameBlockFormEvent.java | 5 +- .../bevents/MinigameBlockFromToEvent.java | 5 +- .../rules/bevents/MinigameBlockGrowEvent.java | 5 +- .../bevents/MinigameBlockIgniteEvent.java | 6 +- .../bevents/MinigameBlockMultiPlaceEvent.java | 9 +- .../bevents/MinigameBlockPhysicsEvent.java | 2 +- .../MinigameBlockPistonExtendEvent.java | 2 +- .../MinigameBlockPistonRetractEvent.java | 2 +- .../bevents/MinigameBlockPlaceEvent.java | 2 +- .../bevents/MinigameBlockRedstoneEvent.java | 2 +- .../bevents/MinigameBlockSpreadEvent.java | 2 +- .../rules/bevents/MinigameBrewEvent.java | 2 +- .../MinigameCauldronLevelChangeEvent.java | 2 +- .../rules/bevents/MinigameCraftItemEvent.java | 2 +- .../bevents/MinigameCreatureSpawnEvent.java | 2 +- .../bevents/MinigameCreeperPowerEvent.java | 2 +- .../bevents/MinigameEnchantItemEvent.java | 2 +- .../MinigameEnderDragonChangePhaseEvent.java | 2 +- .../bevents/MinigameEntityBlockFormEvent.java | 2 +- .../bevents/MinigameEntityBreakDoorEvent.java | 2 +- .../bevents/MinigameEntityBreedEvent.java | 2 +- .../MinigameEntityChangeBlockEvent.java | 2 +- .../MinigameEntityCombustByBlockEvent.java | 2 +- .../MinigameEntityCombustByEntityEvent.java | 2 +- .../bevents/MinigameEntityCombustEvent.java | 2 +- .../MinigameEntityCreatePortalEvent.java | 2 +- .../MinigameEntityDamageByBlockEvent.java | 2 +- .../MinigameEntityDamageByEntityEvent.java | 2 +- .../bevents/MinigameEntityDamageEvent.java | 2 +- .../bevents/MinigameEntityDeathEvent.java | 2 +- .../bevents/MinigameEntityExplodeEvent.java | 2 +- .../bevents/MinigameEntityInteractEvent.java | 2 +- .../MinigameEntityPortalEnterEvent.java | 2 +- .../bevents/MinigameEntityPortalEvent.java | 2 +- .../MinigameEntityPortalExitEvent.java | 2 +- .../MinigameEntityRegainHealthEvent.java | 2 +- .../bevents/MinigameEntityShootBowEvent.java | 2 +- .../bevents/MinigameEntitySpawnEvent.java | 2 +- .../bevents/MinigameEntityTameEvent.java | 2 +- .../bevents/MinigameEntityTargetEvent.java | 2 +- ...MinigameEntityTargetLivingEntityEvent.java | 2 +- .../bevents/MinigameEntityTeleportEvent.java | 2 +- .../MinigameEntityToggleGlideEvent.java | 2 +- .../bevents/MinigameEntityUnleashEvent.java | 2 +- .../rules/bevents/MinigameExpBottleEvent.java | 2 +- .../bevents/MinigameExplosionPrimeEvent.java | 2 +- .../bevents/MinigameFireworkExplodeEvent.java | 2 +- .../bevents/MinigameFoodLevelChangeEvent.java | 2 +- .../bevents/MinigameFurnaceBurnEvent.java | 2 +- .../bevents/MinigameFurnaceSmeltEvent.java | 2 +- .../MinigameHangingBreakByEntityEvent.java | 2 +- .../bevents/MinigameHangingBreakEvent.java | 2 +- .../bevents/MinigameHangingPlaceEvent.java | 2 +- .../rules/bevents/MinigameHorseJumpEvent.java | 2 +- .../bevents/MinigameInventoryClickEvent.java | 2 +- .../bevents/MinigameInventoryCloseEvent.java | 2 +- .../MinigameInventoryCreativeEvent.java | 2 +- .../bevents/MinigameInventoryDragEvent.java | 2 +- .../rules/bevents/MinigameInventoryEvent.java | 2 +- .../MinigameInventoryInteractEvent.java | 2 +- .../MinigameInventoryMoveItemEvent.java | 2 +- .../bevents/MinigameInventoryOpenEvent.java | 2 +- .../MinigameInventoryPickupItemEvent.java | 2 +- .../bevents/MinigameItemDespawnEvent.java | 2 +- .../rules/bevents/MinigameItemMergeEvent.java | 2 +- .../rules/bevents/MinigameItemSpawnEvent.java | 2 +- .../bevents/MinigameLeavesDecayEvent.java | 2 +- .../MinigameLingeringPotionSplashEvent.java | 2 +- .../rules/bevents/MinigameNotePlayEvent.java | 2 +- .../rules/bevents/MinigamePigZapEvent.java | 2 +- ...MinigamePlayerAchievementAwardedEvent.java | 2 +- .../bevents/MinigamePlayerAnimationEvent.java | 2 +- ...nigamePlayerArmorStandManipulateEvent.java | 2 +- .../bevents/MinigamePlayerBedEnterEvent.java | 2 +- .../bevents/MinigamePlayerBedLeaveEvent.java | 2 +- .../MinigamePlayerBucketEmptyEvent.java | 2 +- .../MinigamePlayerBucketFillEvent.java | 2 +- .../MinigamePlayerChangedMainHandEvent.java | 2 +- .../MinigamePlayerChangedWorldEvent.java | 2 +- .../bevents/MinigamePlayerChannelEvent.java | 2 +- .../bevents/MinigamePlayerChatEvent.java | 2 +- .../MinigamePlayerChatTabCompleteEvent.java | 2 +- .../MinigamePlayerCommandPreprocessEvent.java | 2 +- .../bevents/MinigamePlayerDeathEvent.java | 2 +- .../bevents/MinigamePlayerDropItemEvent.java | 2 +- .../bevents/MinigamePlayerEditBookEvent.java | 2 +- .../bevents/MinigamePlayerEggThrowEvent.java | 2 +- .../bevents/MinigamePlayerExpChangeEvent.java | 2 +- .../bevents/MinigamePlayerFishEvent.java | 2 +- .../MinigamePlayerGameModeChangeEvent.java | 2 +- .../MinigamePlayerInteractAtEntityEvent.java | 2 +- .../MinigamePlayerInteractEntityEvent.java | 2 +- .../bevents/MinigamePlayerInteractEvent.java | 2 +- .../bevents/MinigamePlayerInventoryEvent.java | 2 +- .../bevents/MinigamePlayerItemBreakEvent.java | 2 +- .../MinigamePlayerItemConsumeEvent.java | 2 +- .../MinigamePlayerItemDamageEvent.java | 2 +- .../bevents/MinigamePlayerItemHeldEvent.java | 2 +- .../bevents/MinigamePlayerJoinEvent.java | 2 +- .../bevents/MinigamePlayerKickEvent.java | 2 +- .../MinigamePlayerLeashEntityEvent.java | 2 +- .../MinigamePlayerLevelChangeEvent.java | 2 +- .../bevents/MinigamePlayerLoginEvent.java | 2 +- .../bevents/MinigamePlayerMoveEvent.java | 2 +- .../MinigamePlayerPickupArrowEvent.java | 2 +- .../MinigamePlayerPickupItemEvent.java | 2 +- .../bevents/MinigamePlayerPortalEvent.java | 2 +- .../bevents/MinigamePlayerQuitEvent.java | 2 +- .../MinigamePlayerRegisterChannelEvent.java | 2 +- ...MinigamePlayerResourcePackStatusEvent.java | 2 +- .../bevents/MinigamePlayerRespawnEvent.java | 2 +- .../MinigamePlayerShearEntityEvent.java | 2 +- .../MinigamePlayerSpawnLocationEvent.java | 2 +- ...MinigamePlayerStatisticIncrementEvent.java | 2 +- .../MinigamePlayerSwapHandItemsEvent.java | 2 +- .../bevents/MinigamePlayerTeleportEvent.java | 2 +- .../MinigamePlayerToggleFlightEvent.java | 2 +- .../MinigamePlayerToggleSneakEvent.java | 2 +- .../MinigamePlayerToggleSprintEvent.java | 2 +- .../MinigamePlayerUnregisterChannelEvent.java | 2 +- .../bevents/MinigamePlayerVelocityEvent.java | 2 +- .../bevents/MinigamePotionSplashEvent.java | 2 +- .../bevents/MinigamePrepareAnvilEvent.java | 2 +- .../MinigamePrepareItemCraftEvent.java | 2 +- .../MinigamePrepareItemEnchantEvent.java | 2 +- .../bevents/MinigameProjectileHitEvent.java | 2 +- .../MinigameProjectileLaunchEvent.java | 2 +- .../bevents/MinigameSheepDyeWoolEvent.java | 2 +- .../bevents/MinigameSheepRegrowWoolEvent.java | 2 +- .../bevents/MinigameSignChangeEvent.java | 2 +- .../bevents/MinigameSlimeSplitEvent.java | 2 +- .../bevents/MinigameSpawnerSpawnEvent.java | 2 +- .../MinigameVehicleBlockCollisionEvent.java | 2 +- .../bevents/MinigameVehicleCreateEvent.java | 2 +- .../bevents/MinigameVehicleDamageEvent.java | 2 +- .../bevents/MinigameVehicleDestroyEvent.java | 2 +- .../bevents/MinigameVehicleEnterEvent.java | 2 +- .../MinigameVehicleEntityCollisionEvent.java | 2 +- .../bevents/MinigameVehicleExitEvent.java | 2 +- .../bevents/MinigameVehicleMoveEvent.java | 2 +- .../bevents/MinigameVehicleUpdateEvent.java | 2 +- .../MinigameVillagerAcquireTradeEvent.java | 2 +- .../MinigameVillagerReplenishTradeEvent.java | 2 +- .../mevents/MinigameArenaCreateEvent.java | 2 +- .../mevents/MinigameArenaCreatedEvent.java | 2 +- .../mevents/MinigameArenaDeleteEvent.java | 2 +- .../mevents/MinigameArenaDeletedEvent.java | 2 +- .../MinigameArenaMaintenanceEvent.java | 2 +- .../MinigameArenaPlayerJoinedEvent.java | 2 +- .../MinigameArenaPlayerJoinedQueueEvent.java | 2 +- .../MinigameArenaPlayerLeavesQueueEvent.java | 2 +- .../mevents/MinigameArenaStateEvent.java | 2 +- .../mevents/MinigamePlayerCloseGuiEvent.java | 2 +- .../MinigamePlayerDisplayGuiPageEvent.java | 2 +- .../mevents/MinigamePlayerGuiClickEvent.java | 2 +- .../mevents/MinigamePlayerOpenGuiEvent.java | 2 +- .../api/context/ContextHandlerInterface.java | 2 +- .../impl/nms/AbstractEventSystem.java | 23 +-- .../impl/nms/AbstractMinigameEvent.java | 68 +++++++- .../impl/nms/EventSystemInterface.java | 2 +- .../impl/nms/MgArenaCreateEvent.java | 2 +- .../impl/nms/MgArenaCreatedEvent.java | 2 +- .../impl/nms/MgArenaDeleteEvent.java | 2 +- .../impl/nms/MgArenaDeletedEvent.java | 2 +- .../impl/nms/MgArenaMaintenanceEvent.java | 2 +- .../impl/nms/MgArenaPlayerJoinedEvent.java | 2 +- .../nms/MgArenaPlayerJoinedQueueEvent.java | 2 +- .../nms/MgArenaPlayerLeavesQueueEvent.java | 2 +- .../minigames/impl/nms/MgArenaStateEvent.java | 2 +- .../impl/nms/MgPlayerCloseGuiEvent.java | 2 +- .../impl/nms/MgPlayerDisplayGuiPageEvent.java | 2 +- .../impl/nms/MgPlayerGuiClickEvent.java | 2 +- .../impl/nms/MgPlayerOpenGuiEvent.java | 2 +- .../mce/minigames/impl/stubs/FalseStub.java | 0 .../mce/minigames/impl/stubs/TrueStub.java | 0 .../impl/nms/v1_10_1/EventSystem1_10_1.java | 155 +++++++++++++++++- .../event/MgAreaEffectCloudApplyEvent.java | 4 +- .../v1_10_1/event/MgAsyncPlayerChatEvent.java | 5 +- .../nms/v1_10_1/event/MgBlockBreakEvent.java | 5 +- .../nms/v1_10_1/event/MgBlockBurnEvent.java | 4 +- .../v1_10_1/event/MgBlockCanBuildEvent.java | 5 +- .../nms/v1_10_1/event/MgBlockDamageEvent.java | 5 +- .../v1_10_1/event/MgBlockDispenseEvent.java | 4 +- .../nms/v1_10_1/event/MgBlockExpEvent.java | 4 +- .../v1_10_1/event/MgBlockExplodeEvent.java | 27 ++- .../nms/v1_10_1/event/MgBlockFadeEvent.java | 4 +- .../nms/v1_10_1/event/MgBlockFormEvent.java | 4 +- .../nms/v1_10_1/event/MgBlockFromToEvent.java | 5 +- .../nms/v1_10_1/event/MgBlockGrowEvent.java | 4 +- .../nms/v1_10_1/event/MgBlockIgniteEvent.java | 5 +- .../v1_10_1/event/MgBlockMultiPlaceEvent.java | 5 +- .../v1_10_1/event/MgBlockPhysicsEvent.java | 4 +- .../event/MgBlockPistonExtendEvent.java | 4 +- .../event/MgBlockPistonRetractEvent.java | 4 +- .../nms/v1_10_1/event/MgBlockPlaceEvent.java | 2 +- .../v1_10_1/event/MgBlockRedstoneEvent.java | 2 +- .../nms/v1_10_1/event/MgBlockSpreadEvent.java | 2 +- .../impl/nms/v1_10_1/event/MgBrewEvent.java | 2 +- .../event/MgCauldronLevelChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgCraftItemEvent.java | 2 +- .../v1_10_1/event/MgCreatureSpawnEvent.java | 2 +- .../v1_10_1/event/MgCreeperPowerEvent.java | 2 +- .../nms/v1_10_1/event/MgEnchantItemEvent.java | 2 +- .../event/MgEnderDragonChangePhaseEvent.java | 2 +- .../v1_10_1/event/MgEntityBlockFormEvent.java | 2 +- .../v1_10_1/event/MgEntityBreakDoorEvent.java | 2 +- .../nms/v1_10_1/event/MgEntityBreedEvent.java | 2 +- .../event/MgEntityChangeBlockEvent.java | 2 +- .../event/MgEntityCombustByBlockEvent.java | 2 +- .../event/MgEntityCombustByEntityEvent.java | 2 +- .../v1_10_1/event/MgEntityCombustEvent.java | 2 +- .../event/MgEntityCreatePortalEvent.java | 2 +- .../event/MgEntityDamageByBlockEvent.java | 2 +- .../event/MgEntityDamageByEntityEvent.java | 2 +- .../v1_10_1/event/MgEntityDamageEvent.java | 2 +- .../nms/v1_10_1/event/MgEntityDeathEvent.java | 2 +- .../v1_10_1/event/MgEntityExplodeEvent.java | 2 +- .../v1_10_1/event/MgEntityInteractEvent.java | 2 +- .../event/MgEntityPortalEnterEvent.java | 2 +- .../v1_10_1/event/MgEntityPortalEvent.java | 2 +- .../event/MgEntityPortalExitEvent.java | 2 +- .../event/MgEntityRegainHealthEvent.java | 2 +- .../v1_10_1/event/MgEntityShootBowEvent.java | 2 +- .../nms/v1_10_1/event/MgEntitySpawnEvent.java | 2 +- .../nms/v1_10_1/event/MgEntityTameEvent.java | 2 +- .../v1_10_1/event/MgEntityTargetEvent.java | 2 +- .../MgEntityTargetLivingEntityEvent.java | 2 +- .../v1_10_1/event/MgEntityTeleportEvent.java | 2 +- .../event/MgEntityToggleGlideEvent.java | 2 +- .../v1_10_1/event/MgEntityUnleashEvent.java | 2 +- .../nms/v1_10_1/event/MgExpBottleEvent.java | 2 +- .../v1_10_1/event/MgExplosionPrimeEvent.java | 2 +- .../v1_10_1/event/MgFireworkExplodeEvent.java | 2 +- .../v1_10_1/event/MgFoodLevelChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgFurnaceBurnEvent.java | 2 +- .../v1_10_1/event/MgFurnaceSmeltEvent.java | 2 +- .../event/MgHangingBreakByEntityEvent.java | 2 +- .../v1_10_1/event/MgHangingBreakEvent.java | 2 +- .../v1_10_1/event/MgHangingPlaceEvent.java | 2 +- .../nms/v1_10_1/event/MgHorseJumpEvent.java | 2 +- .../v1_10_1/event/MgInventoryClickEvent.java | 2 +- .../v1_10_1/event/MgInventoryCloseEvent.java | 2 +- .../event/MgInventoryCreativeEvent.java | 2 +- .../v1_10_1/event/MgInventoryDragEvent.java | 2 +- .../nms/v1_10_1/event/MgInventoryEvent.java | 2 +- .../event/MgInventoryInteractEvent.java | 2 +- .../event/MgInventoryMoveItemEvent.java | 2 +- .../v1_10_1/event/MgInventoryOpenEvent.java | 2 +- .../event/MgInventoryPickupItemEvent.java | 2 +- .../nms/v1_10_1/event/MgItemDespawnEvent.java | 2 +- .../nms/v1_10_1/event/MgItemMergeEvent.java | 2 +- .../nms/v1_10_1/event/MgItemSpawnEvent.java | 2 +- .../nms/v1_10_1/event/MgLeavesDecayEvent.java | 2 +- .../event/MgLingeringPotionSplashEvent.java | 2 +- .../nms/v1_10_1/event/MgNotePlayEvent.java | 2 +- .../impl/nms/v1_10_1/event/MgPigZapEvent.java | 2 +- .../MgPlayerAchievementAwardedEvent.java | 2 +- .../v1_10_1/event/MgPlayerAnimationEvent.java | 2 +- .../MgPlayerArmorStandManipulateEvent.java | 2 +- .../v1_10_1/event/MgPlayerBedEnterEvent.java | 2 +- .../v1_10_1/event/MgPlayerBedLeaveEvent.java | 2 +- .../event/MgPlayerBucketEmptyEvent.java | 2 +- .../event/MgPlayerBucketFillEvent.java | 2 +- .../event/MgPlayerChangedMainHandEvent.java | 2 +- .../event/MgPlayerChangedWorldEvent.java | 2 +- .../v1_10_1/event/MgPlayerChannelEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerChatEvent.java | 2 +- .../event/MgPlayerChatTabCompleteEvent.java | 2 +- .../event/MgPlayerCommandPreprocessEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerDeathEvent.java | 2 +- .../v1_10_1/event/MgPlayerDropItemEvent.java | 2 +- .../v1_10_1/event/MgPlayerEditBookEvent.java | 2 +- .../v1_10_1/event/MgPlayerEggThrowEvent.java | 2 +- .../v1_10_1/event/MgPlayerExpChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerFishEvent.java | 2 +- .../event/MgPlayerGameModeChangeEvent.java | 2 +- .../event/MgPlayerInteractAtEntityEvent.java | 2 +- .../event/MgPlayerInteractEntityEvent.java | 2 +- .../v1_10_1/event/MgPlayerInteractEvent.java | 2 +- .../v1_10_1/event/MgPlayerInventoryEvent.java | 2 +- .../v1_10_1/event/MgPlayerItemBreakEvent.java | 2 +- .../event/MgPlayerItemConsumeEvent.java | 2 +- .../event/MgPlayerItemDamageEvent.java | 2 +- .../v1_10_1/event/MgPlayerItemHeldEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerJoinEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerKickEvent.java | 2 +- .../event/MgPlayerLeashEntityEvent.java | 2 +- .../event/MgPlayerLevelChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerLoginEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerMoveEvent.java | 2 +- .../event/MgPlayerPickupArrowEvent.java | 2 +- .../event/MgPlayerPickupItemEvent.java | 2 +- .../v1_10_1/event/MgPlayerPortalEvent.java | 2 +- .../nms/v1_10_1/event/MgPlayerQuitEvent.java | 2 +- .../event/MgPlayerRegisterChannelEvent.java | 2 +- .../MgPlayerResourcePackStatusEvent.java | 2 +- .../v1_10_1/event/MgPlayerRespawnEvent.java | 2 +- .../event/MgPlayerShearEntityEvent.java | 2 +- .../event/MgPlayerSpawnLocationEvent.java | 2 +- .../MgPlayerStatisticIncrementEvent.java | 2 +- .../event/MgPlayerSwapHandItemsEvent.java | 2 +- .../v1_10_1/event/MgPlayerTeleportEvent.java | 2 +- .../event/MgPlayerToggleFlightEvent.java | 2 +- .../event/MgPlayerToggleSneakEvent.java | 2 +- .../event/MgPlayerToggleSprintEvent.java | 2 +- .../event/MgPlayerUnregisterChannelEvent.java | 2 +- .../v1_10_1/event/MgPlayerVelocityEvent.java | 2 +- .../v1_10_1/event/MgPotionSplashEvent.java | 2 +- .../v1_10_1/event/MgPrepareAnvilEvent.java | 2 +- .../event/MgPrepareItemCraftEvent.java | 2 +- .../event/MgPrepareItemEnchantEvent.java | 2 +- .../v1_10_1/event/MgProjectileHitEvent.java | 2 +- .../event/MgProjectileLaunchEvent.java | 2 +- .../v1_10_1/event/MgSheepDyeWoolEvent.java | 2 +- .../v1_10_1/event/MgSheepRegrowWoolEvent.java | 2 +- .../nms/v1_10_1/event/MgSignChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgSlimeSplitEvent.java | 2 +- .../v1_10_1/event/MgSpawnerSpawnEvent.java | 2 +- .../event/MgVehicleBlockCollisionEvent.java | 2 +- .../v1_10_1/event/MgVehicleCreateEvent.java | 2 +- .../v1_10_1/event/MgVehicleDamageEvent.java | 2 +- .../v1_10_1/event/MgVehicleDestroyEvent.java | 4 +- .../v1_10_1/event/MgVehicleEnterEvent.java | 6 +- .../event/MgVehicleEntityCollisionEvent.java | 6 +- .../nms/v1_10_1/event/MgVehicleExitEvent.java | 6 +- .../nms/v1_10_1/event/MgVehicleMoveEvent.java | 6 +- .../v1_10_1/event/MgVehicleUpdateEvent.java | 6 +- .../event/MgVillagerAcquireTradeEvent.java | 4 +- .../event/MgVillagerReplenishTradeEvent.java | 4 +- .../mce/minigames/impl/MinigamesPlugin.java | 16 +- .../impl/context/ArenaInterfaceProvider.java | 8 +- .../context/ArenaPlayerInterfaceProvider.java | 8 +- .../impl/context/MinigameContextImpl.java | 4 +- .../context/MinigameInterfaceProvider.java | 8 +- .../impl/event/MgInventoryClickEvent.java | 40 ----- .../impl/event/MgInventoryDragEvent.java | 40 ----- .../impl/player/ArenaPlayerImpl.java | 2 +- 350 files changed, 723 insertions(+), 498 deletions(-) rename LIBv2/{ => nms/api}/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java (100%) rename LIBv2/{ => nms/api}/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java (100%) delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 7983e999..1a85d3d5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -462,6 +462,13 @@ public interface MglibInterface extends MinigameContext * @return the arenas of given type. */ Iterable<ArenaInterface> getArenas(ArenaTypeInterface type); + + /** + * Tries to find an arena from location. + * @param location + * @return arena or {@code null} if the location does not match an arena + */ + ArenaInterface getArenaFromLocation(Location location); // common singleton getter diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java index 7ff60648..3b4a3597 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java @@ -27,7 +27,7 @@ * @param <Evt> Bukkit Event class * @param <MgEvt> Minigame event class */ -public interface ArenaRule<Evt extends Event, MgEvt extends MinigameEvent<Evt>> +public interface ArenaRule<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> { void passEvent(MgEvt event) throws MinigameException; diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java index 543cae59..0b90cb3f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java @@ -18,9 +18,12 @@ import org.bukkit.event.Event; import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; /** * Minigame event helper. @@ -28,8 +31,9 @@ * @author mepeisen * * @param <Evt> Event class + * @param <MgEvt> Minigame event class */ -public interface MinigameEvent<Evt extends Event> +public interface MinigameEvent<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> { /** @@ -62,6 +66,23 @@ public interface MinigameEvent<Evt extends Event> */ ArenaPlayerInterface getPlayer(); - // TODO default stubbings + // stubbing + + /** + * Checks this event for given criteria and invokes either then or else statements. + * + * <p> + * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. + * </p> + * + * @param test + * test functions for testing the event matching any criteria. + * + * @return the outgoing stub to apply then or else consumers. + * + * @throws MinigameException + * will be thrown if either the test function or then/else consumers throw the exception. + */ + MgOutgoingStubbing<MgEvt> when(MgPredicate<MgEvt> test) throws MinigameException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java index 55efab43..55301f34 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java @@ -26,9 +26,11 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameAreaEffectCloudApplyEvent extends MinigameEvent<AreaEffectCloudApplyEvent> +public interface MinigameAreaEffectCloudApplyEvent extends MinigameEvent<AreaEffectCloudApplyEvent, MinigameAreaEffectCloudApplyEvent> { - // TODO default stubbings + // TODO Main Entity (AreaEffectCloud) + + // TODO Affected Entities } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java index 9e6ea7fa..8206d522 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java @@ -24,9 +24,11 @@ * * @author mepeisen */ -public interface MinigameAsyncPlayerChatEvent extends MinigameEvent<AsyncPlayerChatEvent> +public interface MinigameAsyncPlayerChatEvent extends MinigameEvent<AsyncPlayerChatEvent, MinigameAsyncPlayerChatEvent> { - // TODO default stubbings + // TODO who (sender) + // TODO whom (receipient) + // TODO what (message) } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java index 4fe4f722..507efb42 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockBreakEvent extends MinigameEvent<BlockBreakEvent> +public interface MinigameBlockBreakEvent extends MinigameEvent<BlockBreakEvent, MinigameBlockBreakEvent> { - // TODO default stubbings + // TODO player + // TODO block } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java index 6e63cb0b..84490305 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java @@ -24,9 +24,9 @@ * * @author mepeisen */ -public interface MinigameBlockBurnEvent extends MinigameEvent<BlockBurnEvent> +public interface MinigameBlockBurnEvent extends MinigameEvent<BlockBurnEvent, MinigameBlockBurnEvent> { - // TODO default stubbings + // TODO block } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java index 348a6042..8841e8ed 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockCanBuildEvent extends MinigameEvent<BlockCanBuildEvent> +public interface MinigameBlockCanBuildEvent extends MinigameEvent<BlockCanBuildEvent, MinigameBlockCanBuildEvent> { - // TODO default stubbings + // TODO block we are trying to place on top of + // TODO material } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java index ad616f69..f5ea44b9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java @@ -24,9 +24,12 @@ * * @author mepeisen */ -public interface MinigameBlockDamageEvent extends MinigameEvent<BlockDamageEvent> +public interface MinigameBlockDamageEvent extends MinigameEvent<BlockDamageEvent, MinigameBlockDamageEvent> { - // TODO default stubbings + // TODO player that causes the damage + // TODO damaged block + // TODO item in hand + // TODO insta break flag } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java index e2cf7aff..775b59ba 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java @@ -24,9 +24,11 @@ * * @author mepeisen */ -public interface MinigameBlockDispenseEvent extends MinigameEvent<BlockDispenseEvent> +public interface MinigameBlockDispenseEvent extends MinigameEvent<BlockDispenseEvent, MinigameBlockDispenseEvent> { - // TODO default stubbings + // TODO dispenser block + // TODO dispensed item + // TODO velocity } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java index 3aefdb9d..aef4c4ac 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockExpEvent extends MinigameEvent<BlockExpEvent> +public interface MinigameBlockExpEvent extends MinigameEvent<BlockExpEvent, MinigameBlockExpEvent> { - // TODO default stubbings + // TODO target block + // TODO experience } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java index 553cf266..1f4895bd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java @@ -26,9 +26,11 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) -public interface MinigameBlockExplodeEvent extends MinigameEvent<BlockExplodeEvent> +public interface MinigameBlockExplodeEvent extends MinigameEvent<BlockExplodeEvent, MinigameBlockExplodeEvent> { - // TODO default stubbings + // TODO what (exploding blocks) + // TODO affected blocks + // TODO yield } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java index 701d66ab..e196b86c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockFadeEvent extends MinigameEvent<BlockFadeEvent> +public interface MinigameBlockFadeEvent extends MinigameEvent<BlockFadeEvent, MinigameBlockFadeEvent> { - // TODO default stubbings + // TODO target block + // TODO block state } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java index a6c47c5b..fc20ddea 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockFormEvent extends MinigameEvent<BlockFormEvent> +public interface MinigameBlockFormEvent extends MinigameEvent<BlockFormEvent, MinigameBlockFormEvent> { - // TODO default stubbings + // TODO target block + // TODO block state } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java index d56a3c32..0b95f83d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockFromToEvent extends MinigameEvent<BlockFromToEvent> +public interface MinigameBlockFromToEvent extends MinigameEvent<BlockFromToEvent, MinigameBlockFromToEvent> { - // TODO default stubbings + // TODO source block + // TODO target block (block face) } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java index 80664f57..3868ec2e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java @@ -24,9 +24,10 @@ * * @author mepeisen */ -public interface MinigameBlockGrowEvent extends MinigameEvent<BlockGrowEvent> +public interface MinigameBlockGrowEvent extends MinigameEvent<BlockGrowEvent, MinigameBlockGrowEvent> { - // TODO default stubbings + // TODO target block + // TODO block state } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java index 6c3a3d11..ee8295a5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java @@ -24,9 +24,11 @@ * * @author mepeisen */ -public interface MinigameBlockIgniteEvent extends MinigameEvent<BlockIgniteEvent> +public interface MinigameBlockIgniteEvent extends MinigameEvent<BlockIgniteEvent, MinigameBlockIgniteEvent> { - // TODO default stubbings + // TODO target block + // TODO ignited player/entity/block + // TODO ignite cause } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java index e725fa61..0750392f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java @@ -24,9 +24,14 @@ * * @author mepeisen */ -public interface MinigameBlockMultiPlaceEvent extends MinigameEvent<BlockMultiPlaceEvent> +public interface MinigameBlockMultiPlaceEvent extends MinigameEvent<BlockMultiPlaceEvent, MinigameBlockMultiPlaceEvent> { - // TODO default stubbings + // TODO target player + // TODO target block + // TODO blicked block + // TODO affected blocks + // TODO item in hand + // TODO can build } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java index 37042b3d..a40f8439 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBlockPhysicsEvent extends MinigameEvent<BlockPhysicsEvent> +public interface MinigameBlockPhysicsEvent extends MinigameEvent<BlockPhysicsEvent, MinigameBlockPhysicsEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java index bb0c292e..b7671596 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBlockPistonExtendEvent extends MinigameEvent<BlockPistonExtendEvent> +public interface MinigameBlockPistonExtendEvent extends MinigameEvent<BlockPistonExtendEvent, MinigameBlockPistonExtendEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java index d4f63e94..74fa4c2b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBlockPistonRetractEvent extends MinigameEvent<BlockPistonRetractEvent> +public interface MinigameBlockPistonRetractEvent extends MinigameEvent<BlockPistonRetractEvent, MinigameBlockPistonRetractEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java index 8b85a708..59c2882b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBlockPlaceEvent extends MinigameEvent<BlockPlaceEvent> +public interface MinigameBlockPlaceEvent extends MinigameEvent<BlockPlaceEvent, MinigameBlockPlaceEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java index 44257e92..ef3c5235 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBlockRedstoneEvent extends MinigameEvent<BlockRedstoneEvent> +public interface MinigameBlockRedstoneEvent extends MinigameEvent<BlockRedstoneEvent, MinigameBlockRedstoneEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java index ce3f0e86..402c787c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBlockSpreadEvent extends MinigameEvent<BlockSpreadEvent> +public interface MinigameBlockSpreadEvent extends MinigameEvent<BlockSpreadEvent, MinigameBlockSpreadEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java index 5bfc3d26..e1760ea8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameBrewEvent extends MinigameEvent<BrewEvent> +public interface MinigameBrewEvent extends MinigameEvent<BrewEvent, MinigameBrewEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java index 43b32a04..4176e80f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameCauldronLevelChangeEvent extends MinigameEvent<CauldronLevelChangeEvent> +public interface MinigameCauldronLevelChangeEvent extends MinigameEvent<CauldronLevelChangeEvent, MinigameCauldronLevelChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java index 092d707e..f3044aa0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameCraftItemEvent extends MinigameEvent<CraftItemEvent> +public interface MinigameCraftItemEvent extends MinigameEvent<CraftItemEvent, MinigameCraftItemEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java index 9fe5ae8c..2915dd5b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameCreatureSpawnEvent extends MinigameEvent<CreatureSpawnEvent> +public interface MinigameCreatureSpawnEvent extends MinigameEvent<CreatureSpawnEvent, MinigameCreatureSpawnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java index 9ae6149b..b4ac9f0d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameCreeperPowerEvent extends MinigameEvent<CreeperPowerEvent> +public interface MinigameCreeperPowerEvent extends MinigameEvent<CreeperPowerEvent, MinigameCreeperPowerEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java index b97145ae..dea7ace8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEnchantItemEvent extends MinigameEvent<EnchantItemEvent> +public interface MinigameEnchantItemEvent extends MinigameEvent<EnchantItemEvent, MinigameEnchantItemEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java index 583979df..b7ab90f4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameEnderDragonChangePhaseEvent extends MinigameEvent<EnderDragonChangePhaseEvent> +public interface MinigameEnderDragonChangePhaseEvent extends MinigameEvent<EnderDragonChangePhaseEvent, MinigameEnderDragonChangePhaseEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java index 098ae395..ded2a095 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityBlockFormEvent extends MinigameEvent<EntityBlockFormEvent> +public interface MinigameEntityBlockFormEvent extends MinigameEvent<EntityBlockFormEvent, MinigameEntityBlockFormEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java index 5462f129..9fa0786a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityBreakDoorEvent extends MinigameEvent<EntityBreakDoorEvent> +public interface MinigameEntityBreakDoorEvent extends MinigameEvent<EntityBreakDoorEvent, MinigameEntityBreakDoorEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java index 22f93fe1..f327f047 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) -public interface MinigameEntityBreedEvent extends MinigameEvent<EntityBreedEvent> +public interface MinigameEntityBreedEvent extends MinigameEvent<EntityBreedEvent, MinigameEntityBreedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java index 7199785e..06276d88 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityChangeBlockEvent extends MinigameEvent<EntityChangeBlockEvent> +public interface MinigameEntityChangeBlockEvent extends MinigameEvent<EntityChangeBlockEvent, MinigameEntityChangeBlockEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java index 5e59b695..969e6985 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityCombustByBlockEvent extends MinigameEvent<EntityCombustByBlockEvent> +public interface MinigameEntityCombustByBlockEvent extends MinigameEvent<EntityCombustByBlockEvent, MinigameEntityCombustByBlockEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java index bb5ce425..a4424499 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityCombustByEntityEvent extends MinigameEvent<EntityCombustByEntityEvent> +public interface MinigameEntityCombustByEntityEvent extends MinigameEvent<EntityCombustByEntityEvent, MinigameEntityCombustByEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java index 2e2600ca..34e94548 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityCombustEvent extends MinigameEvent<EntityCombustEvent> +public interface MinigameEntityCombustEvent extends MinigameEvent<EntityCombustEvent, MinigameEntityCombustEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java index 8c47c54f..27aeb8a9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityCreatePortalEvent extends MinigameEvent<EntityCreatePortalEvent> +public interface MinigameEntityCreatePortalEvent extends MinigameEvent<EntityCreatePortalEvent, MinigameEntityCreatePortalEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java index fcaa5848..626a41e7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityDamageByBlockEvent extends MinigameEvent<EntityDamageByBlockEvent> +public interface MinigameEntityDamageByBlockEvent extends MinigameEvent<EntityDamageByBlockEvent, MinigameEntityDamageByBlockEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java index 7703e795..d3d2947c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityDamageByEntityEvent extends MinigameEvent<EntityDamageByEntityEvent> +public interface MinigameEntityDamageByEntityEvent extends MinigameEvent<EntityDamageByEntityEvent, MinigameEntityDamageByEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java index f818fbbe..e7091f47 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityDamageEvent extends MinigameEvent<EntityDamageEvent> +public interface MinigameEntityDamageEvent extends MinigameEvent<EntityDamageEvent, MinigameEntityDamageEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java index 6b6b5905..b6c8582f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityDeathEvent extends MinigameEvent<EntityDeathEvent> +public interface MinigameEntityDeathEvent extends MinigameEvent<EntityDeathEvent, MinigameEntityDeathEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java index 55cc49c0..813d5f35 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityExplodeEvent extends MinigameEvent<EntityExplodeEvent> +public interface MinigameEntityExplodeEvent extends MinigameEvent<EntityExplodeEvent, MinigameEntityExplodeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java index 79b6926b..dba2fe3b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityInteractEvent extends MinigameEvent<EntityInteractEvent> +public interface MinigameEntityInteractEvent extends MinigameEvent<EntityInteractEvent, MinigameEntityInteractEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java index d09be763..70b77b78 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityPortalEnterEvent extends MinigameEvent<EntityPortalEnterEvent> +public interface MinigameEntityPortalEnterEvent extends MinigameEvent<EntityPortalEnterEvent, MinigameEntityPortalEnterEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java index fb30db82..15f5de13 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityPortalEvent extends MinigameEvent<EntityPortalEvent> +public interface MinigameEntityPortalEvent extends MinigameEvent<EntityPortalEvent, MinigameEntityPortalEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java index b7e4ee58..b5258015 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityPortalExitEvent extends MinigameEvent<EntityPortalExitEvent> +public interface MinigameEntityPortalExitEvent extends MinigameEvent<EntityPortalExitEvent, MinigameEntityPortalExitEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java index 8e0ca3ef..7ff7893d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityRegainHealthEvent extends MinigameEvent<EntityRegainHealthEvent> +public interface MinigameEntityRegainHealthEvent extends MinigameEvent<EntityRegainHealthEvent, MinigameEntityRegainHealthEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java index 73d97895..4dad1ec0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityShootBowEvent extends MinigameEvent<EntityShootBowEvent> +public interface MinigameEntityShootBowEvent extends MinigameEvent<EntityShootBowEvent, MinigameEntityShootBowEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java index b85d13ab..5efbe83a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntitySpawnEvent extends MinigameEvent<EntitySpawnEvent> +public interface MinigameEntitySpawnEvent extends MinigameEvent<EntitySpawnEvent, MinigameEntitySpawnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java index c5753edd..2ef55345 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityTameEvent extends MinigameEvent<EntityTameEvent> +public interface MinigameEntityTameEvent extends MinigameEvent<EntityTameEvent, MinigameEntityTameEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java index 77d58b27..321c14ac 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityTargetEvent extends MinigameEvent<EntityTargetEvent> +public interface MinigameEntityTargetEvent extends MinigameEvent<EntityTargetEvent, MinigameEntityTargetEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java index 7d0be0a9..3ea82aaa 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityTargetLivingEntityEvent extends MinigameEvent<EntityTargetLivingEntityEvent> +public interface MinigameEntityTargetLivingEntityEvent extends MinigameEvent<EntityTargetLivingEntityEvent, MinigameEntityTargetLivingEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java index c9068e7c..26123f5c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityTeleportEvent extends MinigameEvent<EntityTeleportEvent> +public interface MinigameEntityTeleportEvent extends MinigameEvent<EntityTeleportEvent, MinigameEntityTeleportEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java index 7b179b8c..cf5c1ca0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameEntityToggleGlideEvent extends MinigameEvent<EntityToggleGlideEvent> +public interface MinigameEntityToggleGlideEvent extends MinigameEvent<EntityToggleGlideEvent, MinigameEntityToggleGlideEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java index e840bc94..a3995c05 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameEntityUnleashEvent extends MinigameEvent<EntityUnleashEvent> +public interface MinigameEntityUnleashEvent extends MinigameEvent<EntityUnleashEvent, MinigameEntityUnleashEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java index 8e25e4e3..25af4a34 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameExpBottleEvent extends MinigameEvent<ExpBottleEvent> +public interface MinigameExpBottleEvent extends MinigameEvent<ExpBottleEvent, MinigameExpBottleEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java index aaf5e3e3..5600a100 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameExplosionPrimeEvent extends MinigameEvent<ExplosionPrimeEvent> +public interface MinigameExplosionPrimeEvent extends MinigameEvent<ExplosionPrimeEvent, MinigameExplosionPrimeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java index 9f762c85..a530f686 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) -public interface MinigameFireworkExplodeEvent extends MinigameEvent<FireworkExplodeEvent> +public interface MinigameFireworkExplodeEvent extends MinigameEvent<FireworkExplodeEvent, MinigameFireworkExplodeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java index 248cf380..6d4ac70b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameFoodLevelChangeEvent extends MinigameEvent<FoodLevelChangeEvent> +public interface MinigameFoodLevelChangeEvent extends MinigameEvent<FoodLevelChangeEvent, MinigameFoodLevelChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java index b9d8831d..53cb7f0a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameFurnaceBurnEvent extends MinigameEvent<FurnaceBurnEvent> +public interface MinigameFurnaceBurnEvent extends MinigameEvent<FurnaceBurnEvent, MinigameFurnaceBurnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java index b03986fc..27f2a826 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameFurnaceSmeltEvent extends MinigameEvent<FurnaceSmeltEvent> +public interface MinigameFurnaceSmeltEvent extends MinigameEvent<FurnaceSmeltEvent, MinigameFurnaceSmeltEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java index b697f05b..ab373262 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameHangingBreakByEntityEvent extends MinigameEvent<HangingBreakByEntityEvent> +public interface MinigameHangingBreakByEntityEvent extends MinigameEvent<HangingBreakByEntityEvent, MinigameHangingBreakByEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java index 4a3aac6c..65321de4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameHangingBreakEvent extends MinigameEvent<HangingBreakEvent> +public interface MinigameHangingBreakEvent extends MinigameEvent<HangingBreakEvent, MinigameHangingBreakEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java index 5608208b..c0e771f7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameHangingPlaceEvent extends MinigameEvent<HangingPlaceEvent> +public interface MinigameHangingPlaceEvent extends MinigameEvent<HangingPlaceEvent, MinigameHangingPlaceEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java index 399e7cd0..4aacc243 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameHorseJumpEvent extends MinigameEvent<HorseJumpEvent> +public interface MinigameHorseJumpEvent extends MinigameEvent<HorseJumpEvent, MinigameHorseJumpEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java index 40de8ac8..b6bc2bf7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryClickEvent extends MinigameEvent<InventoryClickEvent> +public interface MinigameInventoryClickEvent extends MinigameEvent<InventoryClickEvent, MinigameInventoryClickEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java index f1f4ec91..1caa654c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryCloseEvent extends MinigameEvent<InventoryCloseEvent> +public interface MinigameInventoryCloseEvent extends MinigameEvent<InventoryCloseEvent, MinigameInventoryCloseEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java index 936a8a5e..9af71f3b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryCreativeEvent extends MinigameEvent<InventoryCreativeEvent> +public interface MinigameInventoryCreativeEvent extends MinigameEvent<InventoryCreativeEvent, MinigameInventoryCreativeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java index 3129cbfe..d1be87de 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryDragEvent extends MinigameEvent<InventoryDragEvent> +public interface MinigameInventoryDragEvent extends MinigameEvent<InventoryDragEvent, MinigameInventoryDragEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java index 905760fd..00900396 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryEvent extends MinigameEvent<InventoryEvent> +public interface MinigameInventoryEvent extends MinigameEvent<InventoryEvent, MinigameInventoryEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java index 454b65aa..fe88c4b1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryInteractEvent extends MinigameEvent<InventoryInteractEvent> +public interface MinigameInventoryInteractEvent extends MinigameEvent<InventoryInteractEvent, MinigameInventoryInteractEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java index c482b333..4d32652f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryMoveItemEvent extends MinigameEvent<InventoryMoveItemEvent> +public interface MinigameInventoryMoveItemEvent extends MinigameEvent<InventoryMoveItemEvent, MinigameInventoryMoveItemEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java index a7322e48..466bfc95 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryOpenEvent extends MinigameEvent<InventoryOpenEvent> +public interface MinigameInventoryOpenEvent extends MinigameEvent<InventoryOpenEvent, MinigameInventoryOpenEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java index 69108e00..7678f8c9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameInventoryPickupItemEvent extends MinigameEvent<InventoryPickupItemEvent> +public interface MinigameInventoryPickupItemEvent extends MinigameEvent<InventoryPickupItemEvent, MinigameInventoryPickupItemEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java index f5bb9078..89e21ad5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameItemDespawnEvent extends MinigameEvent<ItemDespawnEvent> +public interface MinigameItemDespawnEvent extends MinigameEvent<ItemDespawnEvent, MinigameItemDespawnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java index 135a759e..f3cb14e8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) -public interface MinigameItemMergeEvent extends MinigameEvent<ItemMergeEvent> +public interface MinigameItemMergeEvent extends MinigameEvent<ItemMergeEvent, MinigameItemMergeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java index 56be285d..569c6952 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameItemSpawnEvent extends MinigameEvent<ItemSpawnEvent> +public interface MinigameItemSpawnEvent extends MinigameEvent<ItemSpawnEvent, MinigameItemSpawnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java index 494d964e..08583dfa 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameLeavesDecayEvent extends MinigameEvent<LeavesDecayEvent> +public interface MinigameLeavesDecayEvent extends MinigameEvent<LeavesDecayEvent, MinigameLeavesDecayEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java index e49aeffc..320f983f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameLingeringPotionSplashEvent extends MinigameEvent<LingeringPotionSplashEvent> +public interface MinigameLingeringPotionSplashEvent extends MinigameEvent<LingeringPotionSplashEvent, MinigameLingeringPotionSplashEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java index 1b0105ad..214468eb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameNotePlayEvent extends MinigameEvent<NotePlayEvent> +public interface MinigameNotePlayEvent extends MinigameEvent<NotePlayEvent, MinigameNotePlayEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java index 85649249..ee7f305e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePigZapEvent extends MinigameEvent<PigZapEvent> +public interface MinigamePigZapEvent extends MinigameEvent<PigZapEvent, MinigamePigZapEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java index 90443635..73509d55 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerAchievementAwardedEvent extends MinigameEvent<PlayerAchievementAwardedEvent> +public interface MinigamePlayerAchievementAwardedEvent extends MinigameEvent<PlayerAchievementAwardedEvent, MinigamePlayerAchievementAwardedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java index b5e9084a..930d2e32 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerAnimationEvent extends MinigameEvent<PlayerAnimationEvent> +public interface MinigamePlayerAnimationEvent extends MinigameEvent<PlayerAnimationEvent, MinigamePlayerAnimationEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java index 1a82a341..28d17fea 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) -public interface MinigamePlayerArmorStandManipulateEvent extends MinigameEvent<PlayerArmorStandManipulateEvent> +public interface MinigamePlayerArmorStandManipulateEvent extends MinigameEvent<PlayerArmorStandManipulateEvent, MinigamePlayerArmorStandManipulateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java index da1158d0..c53a3789 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerBedEnterEvent extends MinigameEvent<PlayerBedEnterEvent> +public interface MinigamePlayerBedEnterEvent extends MinigameEvent<PlayerBedEnterEvent, MinigamePlayerBedEnterEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java index 79b201fc..4b5afd64 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerBedLeaveEvent extends MinigameEvent<PlayerBedLeaveEvent> +public interface MinigamePlayerBedLeaveEvent extends MinigameEvent<PlayerBedLeaveEvent, MinigamePlayerBedLeaveEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java index cefb0955..17d7688f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerBucketEmptyEvent extends MinigameEvent<PlayerBucketEmptyEvent> +public interface MinigamePlayerBucketEmptyEvent extends MinigameEvent<PlayerBucketEmptyEvent, MinigamePlayerBucketEmptyEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java index ff49a57f..18b393e8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerBucketFillEvent extends MinigameEvent<PlayerBucketFillEvent> +public interface MinigamePlayerBucketFillEvent extends MinigameEvent<PlayerBucketFillEvent, MinigamePlayerBucketFillEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java index 39be86e6..767da72f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) -public interface MinigamePlayerChangedMainHandEvent extends MinigameEvent<PlayerChangedMainHandEvent> +public interface MinigamePlayerChangedMainHandEvent extends MinigameEvent<PlayerChangedMainHandEvent, MinigamePlayerChangedMainHandEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java index 81dec925..27ce05bf 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerChangedWorldEvent extends MinigameEvent<PlayerChangedWorldEvent> +public interface MinigamePlayerChangedWorldEvent extends MinigameEvent<PlayerChangedWorldEvent, MinigamePlayerChangedWorldEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java index 6ea018e5..e28da6ae 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerChannelEvent extends MinigameEvent<PlayerChannelEvent> +public interface MinigamePlayerChannelEvent extends MinigameEvent<PlayerChannelEvent, MinigamePlayerChannelEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java index ecdc89dc..a57023bb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerChatEvent extends MinigameEvent<PlayerChatEvent> +public interface MinigamePlayerChatEvent extends MinigameEvent<PlayerChatEvent, MinigamePlayerChatEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java index 7cc350c3..ad8645de 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerChatTabCompleteEvent extends MinigameEvent<PlayerChatTabCompleteEvent> +public interface MinigamePlayerChatTabCompleteEvent extends MinigameEvent<PlayerChatTabCompleteEvent, MinigamePlayerChatTabCompleteEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java index f86b3eae..544becf5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerCommandPreprocessEvent extends MinigameEvent<PlayerCommandPreprocessEvent> +public interface MinigamePlayerCommandPreprocessEvent extends MinigameEvent<PlayerCommandPreprocessEvent, MinigamePlayerCommandPreprocessEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java index 070ff9d1..2aecb8eb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerDeathEvent extends MinigameEvent<PlayerDeathEvent> +public interface MinigamePlayerDeathEvent extends MinigameEvent<PlayerDeathEvent, MinigamePlayerDeathEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java index 5d29fe59..cf23a9fb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerDropItemEvent extends MinigameEvent<PlayerDropItemEvent> +public interface MinigamePlayerDropItemEvent extends MinigameEvent<PlayerDropItemEvent, MinigamePlayerDropItemEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java index 02522b76..cfcb1a3e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerEditBookEvent extends MinigameEvent<PlayerEditBookEvent> +public interface MinigamePlayerEditBookEvent extends MinigameEvent<PlayerEditBookEvent, MinigamePlayerEditBookEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java index bc860f67..5f1123f3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerEggThrowEvent extends MinigameEvent<PlayerEggThrowEvent> +public interface MinigamePlayerEggThrowEvent extends MinigameEvent<PlayerEggThrowEvent, MinigamePlayerEggThrowEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java index 2d436c66..e492688a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerExpChangeEvent extends MinigameEvent<PlayerExpChangeEvent> +public interface MinigamePlayerExpChangeEvent extends MinigameEvent<PlayerExpChangeEvent, MinigamePlayerExpChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java index 37cb26e4..3d29a0d6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerFishEvent extends MinigameEvent<PlayerFishEvent> +public interface MinigamePlayerFishEvent extends MinigameEvent<PlayerFishEvent, MinigamePlayerFishEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java index b425399b..91d6d128 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerGameModeChangeEvent extends MinigameEvent<PlayerGameModeChangeEvent> +public interface MinigamePlayerGameModeChangeEvent extends MinigameEvent<PlayerGameModeChangeEvent, MinigamePlayerGameModeChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java index 861d0e1f..f17b187b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerInteractAtEntityEvent extends MinigameEvent<PlayerInteractAtEntityEvent> +public interface MinigamePlayerInteractAtEntityEvent extends MinigameEvent<PlayerInteractAtEntityEvent, MinigamePlayerInteractAtEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java index c2cf53c3..0f284dec 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerInteractEntityEvent extends MinigameEvent<PlayerInteractEntityEvent> +public interface MinigamePlayerInteractEntityEvent extends MinigameEvent<PlayerInteractEntityEvent, MinigamePlayerInteractEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java index 6d98bfce..6a460792 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerInteractEvent extends MinigameEvent<PlayerInteractEvent> +public interface MinigamePlayerInteractEvent extends MinigameEvent<PlayerInteractEvent, MinigamePlayerInteractEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java index 83d6e03d..f438b95b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerInventoryEvent extends MinigameEvent<PlayerInventoryEvent> +public interface MinigamePlayerInventoryEvent extends MinigameEvent<PlayerInventoryEvent, MinigamePlayerInventoryEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java index 56290bb0..7ae0675b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerItemBreakEvent extends MinigameEvent<PlayerItemBreakEvent> +public interface MinigamePlayerItemBreakEvent extends MinigameEvent<PlayerItemBreakEvent, MinigamePlayerItemBreakEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java index 6dfa3141..41541354 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerItemConsumeEvent extends MinigameEvent<PlayerItemConsumeEvent> +public interface MinigamePlayerItemConsumeEvent extends MinigameEvent<PlayerItemConsumeEvent, MinigamePlayerItemConsumeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java index 2bfa3e0a..4d7d3c2d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerItemDamageEvent extends MinigameEvent<PlayerItemDamageEvent> +public interface MinigamePlayerItemDamageEvent extends MinigameEvent<PlayerItemDamageEvent, MinigamePlayerItemDamageEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java index de1bf999..9c989cb5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerItemHeldEvent extends MinigameEvent<PlayerItemHeldEvent> +public interface MinigamePlayerItemHeldEvent extends MinigameEvent<PlayerItemHeldEvent, MinigamePlayerItemHeldEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java index b6c5f1e8..875c48a5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerJoinEvent extends MinigameEvent<PlayerJoinEvent> +public interface MinigamePlayerJoinEvent extends MinigameEvent<PlayerJoinEvent, MinigamePlayerJoinEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java index 6dc2a8a0..ff53e3a5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerKickEvent extends MinigameEvent<PlayerKickEvent> +public interface MinigamePlayerKickEvent extends MinigameEvent<PlayerKickEvent, MinigamePlayerKickEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java index 9ffc8844..5c83f417 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerLeashEntityEvent extends MinigameEvent<PlayerLeashEntityEvent> +public interface MinigamePlayerLeashEntityEvent extends MinigameEvent<PlayerLeashEntityEvent, MinigamePlayerLeashEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java index 11f37fcf..9700cbef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerLevelChangeEvent extends MinigameEvent<PlayerLevelChangeEvent> +public interface MinigamePlayerLevelChangeEvent extends MinigameEvent<PlayerLevelChangeEvent, MinigamePlayerLevelChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java index fe8b4f23..3cb99a80 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerLoginEvent extends MinigameEvent<PlayerLoginEvent> +public interface MinigamePlayerLoginEvent extends MinigameEvent<PlayerLoginEvent, MinigamePlayerLoginEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java index f3df3a1e..01674953 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerMoveEvent extends MinigameEvent<PlayerMoveEvent> +public interface MinigamePlayerMoveEvent extends MinigameEvent<PlayerMoveEvent, MinigamePlayerMoveEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java index fa167b93..d4a377be 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigamePlayerPickupArrowEvent extends MinigameEvent<PlayerPickupArrowEvent> +public interface MinigamePlayerPickupArrowEvent extends MinigameEvent<PlayerPickupArrowEvent, MinigamePlayerPickupArrowEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java index 2f3f787e..f397940b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerPickupItemEvent extends MinigameEvent<PlayerPickupItemEvent> +public interface MinigamePlayerPickupItemEvent extends MinigameEvent<PlayerPickupItemEvent, MinigamePlayerPickupItemEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java index 79772487..be33de35 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerPortalEvent extends MinigameEvent<PlayerPortalEvent> +public interface MinigamePlayerPortalEvent extends MinigameEvent<PlayerPortalEvent, MinigamePlayerPortalEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java index d2dd85ef..fe3bc95a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerQuitEvent extends MinigameEvent<PlayerQuitEvent> +public interface MinigamePlayerQuitEvent extends MinigameEvent<PlayerQuitEvent, MinigamePlayerQuitEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java index 4fc7e221..d89b10eb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerRegisterChannelEvent extends MinigameEvent<PlayerRegisterChannelEvent> +public interface MinigamePlayerRegisterChannelEvent extends MinigameEvent<PlayerRegisterChannelEvent, MinigamePlayerRegisterChannelEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java index ff9e7645..08839412 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) -public interface MinigamePlayerResourcePackStatusEvent extends MinigameEvent<PlayerResourcePackStatusEvent> +public interface MinigamePlayerResourcePackStatusEvent extends MinigameEvent<PlayerResourcePackStatusEvent, MinigamePlayerResourcePackStatusEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java index 65bf7d6d..38ee3056 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerRespawnEvent extends MinigameEvent<PlayerRespawnEvent> +public interface MinigamePlayerRespawnEvent extends MinigameEvent<PlayerRespawnEvent, MinigamePlayerRespawnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java index fea4322c..c5f7095f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerShearEntityEvent extends MinigameEvent<PlayerShearEntityEvent> +public interface MinigamePlayerShearEntityEvent extends MinigameEvent<PlayerShearEntityEvent, MinigamePlayerShearEntityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java index a359aea5..5a5b1231 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerSpawnLocationEvent extends MinigameEvent<PlayerSpawnLocationEvent> +public interface MinigamePlayerSpawnLocationEvent extends MinigameEvent<PlayerSpawnLocationEvent, MinigamePlayerSpawnLocationEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java index dc57ed73..5c489a65 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerStatisticIncrementEvent extends MinigameEvent<PlayerStatisticIncrementEvent> +public interface MinigamePlayerStatisticIncrementEvent extends MinigameEvent<PlayerStatisticIncrementEvent, MinigamePlayerStatisticIncrementEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java index e4372ee0..282c2ef4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigamePlayerSwapHandItemsEvent extends MinigameEvent<PlayerSwapHandItemsEvent> +public interface MinigamePlayerSwapHandItemsEvent extends MinigameEvent<PlayerSwapHandItemsEvent, MinigamePlayerSwapHandItemsEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java index cc428426..47396d03 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerTeleportEvent extends MinigameEvent<PlayerTeleportEvent> +public interface MinigamePlayerTeleportEvent extends MinigameEvent<PlayerTeleportEvent, MinigamePlayerTeleportEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java index 32677a6a..c5b0f14e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerToggleFlightEvent extends MinigameEvent<PlayerToggleFlightEvent> +public interface MinigamePlayerToggleFlightEvent extends MinigameEvent<PlayerToggleFlightEvent, MinigamePlayerToggleFlightEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java index b4e395df..8fbdfbec 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerToggleSneakEvent extends MinigameEvent<PlayerToggleSneakEvent> +public interface MinigamePlayerToggleSneakEvent extends MinigameEvent<PlayerToggleSneakEvent, MinigamePlayerToggleSneakEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java index 35d45768..c76c08fd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerToggleSprintEvent extends MinigameEvent<PlayerToggleSprintEvent> +public interface MinigamePlayerToggleSprintEvent extends MinigameEvent<PlayerToggleSprintEvent, MinigamePlayerToggleSprintEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java index 56e2a5f2..5bf8dad8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerUnregisterChannelEvent extends MinigameEvent<PlayerUnregisterChannelEvent> +public interface MinigamePlayerUnregisterChannelEvent extends MinigameEvent<PlayerUnregisterChannelEvent, MinigamePlayerUnregisterChannelEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java index 50a311e5..82abeaeb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePlayerVelocityEvent extends MinigameEvent<PlayerVelocityEvent> +public interface MinigamePlayerVelocityEvent extends MinigameEvent<PlayerVelocityEvent, MinigamePlayerVelocityEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java index bb378604..40ab1ab4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePotionSplashEvent extends MinigameEvent<PotionSplashEvent> +public interface MinigamePotionSplashEvent extends MinigameEvent<PotionSplashEvent, MinigamePotionSplashEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java index 46074e1e..d5ab8c80 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigamePrepareAnvilEvent extends MinigameEvent<PrepareAnvilEvent> +public interface MinigamePrepareAnvilEvent extends MinigameEvent<PrepareAnvilEvent, MinigamePrepareAnvilEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java index 12c26ccc..5a8ca5ba 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePrepareItemCraftEvent extends MinigameEvent<PrepareItemCraftEvent> +public interface MinigamePrepareItemCraftEvent extends MinigameEvent<PrepareItemCraftEvent, MinigamePrepareItemCraftEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java index ee0ae5ba..8aeda46b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigamePrepareItemEnchantEvent extends MinigameEvent<PrepareItemEnchantEvent> +public interface MinigamePrepareItemEnchantEvent extends MinigameEvent<PrepareItemEnchantEvent, MinigamePrepareItemEnchantEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java index f95aed46..154a7685 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameProjectileHitEvent extends MinigameEvent<ProjectileHitEvent> +public interface MinigameProjectileHitEvent extends MinigameEvent<ProjectileHitEvent, MinigameProjectileHitEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java index 1e1572b3..7a0e21d1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameProjectileLaunchEvent extends MinigameEvent<ProjectileLaunchEvent> +public interface MinigameProjectileLaunchEvent extends MinigameEvent<ProjectileLaunchEvent, MinigameProjectileLaunchEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java index b2d37ce0..39841c04 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameSheepDyeWoolEvent extends MinigameEvent<SheepDyeWoolEvent> +public interface MinigameSheepDyeWoolEvent extends MinigameEvent<SheepDyeWoolEvent, MinigameSheepDyeWoolEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java index 00187e8a..6a847b71 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameSheepRegrowWoolEvent extends MinigameEvent<SheepRegrowWoolEvent> +public interface MinigameSheepRegrowWoolEvent extends MinigameEvent<SheepRegrowWoolEvent, MinigameSheepRegrowWoolEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java index ecef4854..caf1a084 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameSignChangeEvent extends MinigameEvent<SignChangeEvent> +public interface MinigameSignChangeEvent extends MinigameEvent<SignChangeEvent, MinigameSignChangeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java index 526cdc6f..1228d6f5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameSlimeSplitEvent extends MinigameEvent<SlimeSplitEvent> +public interface MinigameSlimeSplitEvent extends MinigameEvent<SlimeSplitEvent, MinigameSlimeSplitEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java index 9b2b3345..7115c450 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameSpawnerSpawnEvent extends MinigameEvent<SpawnerSpawnEvent> +public interface MinigameSpawnerSpawnEvent extends MinigameEvent<SpawnerSpawnEvent, MinigameSpawnerSpawnEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java index e6d0232a..4dd4227f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleBlockCollisionEvent extends MinigameEvent<VehicleBlockCollisionEvent> +public interface MinigameVehicleBlockCollisionEvent extends MinigameEvent<VehicleBlockCollisionEvent, MinigameVehicleBlockCollisionEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java index a35c4da0..2a4a615a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleCreateEvent extends MinigameEvent<VehicleCreateEvent> +public interface MinigameVehicleCreateEvent extends MinigameEvent<VehicleCreateEvent, MinigameVehicleCreateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java index 555a0aa7..68328ac1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleDamageEvent extends MinigameEvent<VehicleDamageEvent> +public interface MinigameVehicleDamageEvent extends MinigameEvent<VehicleDamageEvent, MinigameVehicleDamageEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java index 67882a87..0a4e6df1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleDestroyEvent extends MinigameEvent<VehicleDestroyEvent> +public interface MinigameVehicleDestroyEvent extends MinigameEvent<VehicleDestroyEvent, MinigameVehicleDestroyEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java index 2d608aac..465070f6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleEnterEvent extends MinigameEvent<VehicleEnterEvent> +public interface MinigameVehicleEnterEvent extends MinigameEvent<VehicleEnterEvent, MinigameVehicleEnterEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java index e82ae628..2f984820 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleEntityCollisionEvent extends MinigameEvent<VehicleEntityCollisionEvent> +public interface MinigameVehicleEntityCollisionEvent extends MinigameEvent<VehicleEntityCollisionEvent, MinigameVehicleEntityCollisionEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java index 31e50c93..539c31d4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleExitEvent extends MinigameEvent<VehicleExitEvent> +public interface MinigameVehicleExitEvent extends MinigameEvent<VehicleExitEvent, MinigameVehicleExitEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java index 76309138..ad604711 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleMoveEvent extends MinigameEvent<VehicleMoveEvent> +public interface MinigameVehicleMoveEvent extends MinigameEvent<VehicleMoveEvent, MinigameVehicleMoveEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java index 87b5c469..f177a46d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java @@ -24,7 +24,7 @@ * * @author mepeisen */ -public interface MinigameVehicleUpdateEvent extends MinigameEvent<VehicleUpdateEvent> +public interface MinigameVehicleUpdateEvent extends MinigameEvent<VehicleUpdateEvent, MinigameVehicleUpdateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java index 8961d967..4fb60ac7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameVillagerAcquireTradeEvent extends MinigameEvent<VillagerAcquireTradeEvent> +public interface MinigameVillagerAcquireTradeEvent extends MinigameEvent<VillagerAcquireTradeEvent, MinigameVillagerAcquireTradeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java index 23ac1f46..654d70ad 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java @@ -26,7 +26,7 @@ * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameVillagerReplenishTradeEvent extends MinigameEvent<VillagerReplenishTradeEvent> +public interface MinigameVillagerReplenishTradeEvent extends MinigameEvent<VillagerReplenishTradeEvent, MinigameVillagerReplenishTradeEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java index 8911ee5a..371c73e6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent> +public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent, MinigameArenaCreateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java index 2e67781d..4235a12d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaCreatedEvent extends MinigameEvent<ArenaCreatedEvent> +public interface MinigameArenaCreatedEvent extends MinigameEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java index 07eb99ff..1f0da9e2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaDeleteEvent extends MinigameEvent<ArenaDeleteEvent> +public interface MinigameArenaDeleteEvent extends MinigameEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java index 60e9df29..3b992021 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaDeletedEvent extends MinigameEvent<ArenaDeletedEvent> +public interface MinigameArenaDeletedEvent extends MinigameEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java index f6a9d0fc..cc7d5612 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaMaintenanceEvent extends MinigameEvent<ArenaMaintenanceEvent> +public interface MinigameArenaMaintenanceEvent extends MinigameEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java index a13b5b53..b814aa52 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerJoinedEvent extends MinigameEvent<ArenaPlayerJoinedEvent> +public interface MinigameArenaPlayerJoinedEvent extends MinigameEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java index c31b824f..2a4b3e40 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerJoinedQueueEvent extends MinigameEvent<ArenaPlayerJoinedQueueEvent> +public interface MinigameArenaPlayerJoinedQueueEvent extends MinigameEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java index c199e927..722813e0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerLeavesQueueEvent extends MinigameEvent<ArenaPlayerLeavesQueueEvent> +public interface MinigameArenaPlayerLeavesQueueEvent extends MinigameEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java index 681c49cf..ce4d9dad 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigameArenaStateEvent extends MinigameEvent<ArenaStateEvent> +public interface MinigameArenaStateEvent extends MinigameEvent<ArenaStateEvent, MinigameArenaStateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java index 4b764216..dbb3455e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigamePlayerCloseGuiEvent extends MinigameEvent<PlayerCloseGuiEvent> +public interface MinigamePlayerCloseGuiEvent extends MinigameEvent<PlayerCloseGuiEvent, MinigamePlayerCloseGuiEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java index a39cf962..c9a029a2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigamePlayerDisplayGuiPageEvent extends MinigameEvent<PlayerDisplayGuiPageEvent> +public interface MinigamePlayerDisplayGuiPageEvent extends MinigameEvent<PlayerDisplayGuiPageEvent, MinigamePlayerDisplayGuiPageEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java index 815d5928..d36ab2fb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigamePlayerGuiClickEvent extends MinigameEvent<PlayerGuiClickEvent> +public interface MinigamePlayerGuiClickEvent extends MinigameEvent<PlayerGuiClickEvent, MinigamePlayerGuiClickEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java index fa6546ab..acad52c0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public interface MinigamePlayerOpenGuiEvent extends MinigameEvent<PlayerOpenGuiEvent> +public interface MinigamePlayerOpenGuiEvent extends MinigameEvent<PlayerOpenGuiEvent, MinigamePlayerOpenGuiEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java index 59de2321..2ce3cace 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java @@ -48,6 +48,6 @@ public interface ContextHandlerInterface<T> * current minigame context * @return context object or {@code null} if it cannot be calculated */ - T calculateFromEvent(MinigameEvent<?> event, MinigameContext context); + T calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context); } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java index beb40e25..52c2face 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java @@ -47,7 +47,7 @@ public abstract class AbstractEventSystem implements EventSystemInterface /** * The common event handlers per event class. */ - private final Map<Class<? extends Event>, MinigameEventHandler<?>> eventHandlers = new HashMap<>(); + private final Map<Class<? extends Event>, MinigameEventHandler<?, ?>> eventHandlers = new HashMap<>(); /** * Constructor. @@ -77,9 +77,9 @@ public AbstractEventSystem() * @return event handler. */ @SuppressWarnings("unchecked") - protected <T extends Event> MinigameEventHandler<T> getHandler(Class<T> clazz) + protected <T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> MinigameEventHandler<T, MgEvt> getHandler(Class<T> clazz) { - return (MinigameEventHandler<T>) this.eventHandlers.get(clazz); + return (MinigameEventHandler<T, MgEvt>) this.eventHandlers.get(clazz); } /** @@ -90,7 +90,7 @@ protected <T extends Event> MinigameEventHandler<T> getHandler(Class<T> clazz) * @param factory * the factory to create minigame events. */ - protected <T extends Event> void registerHandler(Class<T> clazz, MinigameEventFactory<T> factory) + protected <T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> void registerHandler(Class<T> clazz, MinigameEventFactory<T, MgEvt> factory) { this.eventHandlers.put(clazz, new MinigameEventHandler<>(clazz, factory)); } @@ -253,9 +253,9 @@ public void onPlayerOpenGui(PlayerOpenGuiEvent evt) @SuppressWarnings("unchecked") @Override - public <Evt extends Event> MinigameEvent<Evt> createEvent(Evt bukkitEvent) + public <Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> MgEvt createEvent(Evt bukkitEvent) { - return ((MinigameEventHandler<Evt>) this.getHandler(bukkitEvent.getClass())).createMgEvent(bukkitEvent); + return ((MinigameEventHandler<Evt, MgEvt>) this.getHandler(bukkitEvent.getClass())).createMgEvent(bukkitEvent); } /** @@ -265,10 +265,10 @@ public <Evt extends Event> MinigameEvent<Evt> createEvent(Evt bukkitEvent) * @param <T> * event clazz for handling the events. */ - protected final class MinigameEventHandler<T extends Event> + protected final class MinigameEventHandler<T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> { - public MinigameEventHandler(Class<T> clazz, MinigameEventFactory<T> factory) + public MinigameEventHandler(Class<T> clazz, MinigameEventFactory<T, MgEvt> factory) { // TODO } @@ -281,7 +281,7 @@ public void handle(T evt) // TODO Auto-generated method stub } - public MinigameEvent<T> createMgEvent(T evt) + public MgEvt createMgEvent(T evt) { // TODO return null; @@ -293,9 +293,10 @@ public MinigameEvent<T> createMgEvent(T evt) * Interface for creating minigame event classes from given bukkit event. * * @param <Evt> + * @param <MgEvt> */ @FunctionalInterface - public interface MinigameEventFactory<Evt extends Event> + public interface MinigameEventFactory<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> { /** @@ -305,7 +306,7 @@ public interface MinigameEventFactory<Evt extends Event> * bukkit event. * @return the minigame event object. */ - MinigameEvent<Evt> create(Evt event); + MgEvt create(Evt event); } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java index 596d4db9..694fb15b 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java @@ -15,21 +15,28 @@ package com.github.mce.minigames.impl.nms; +import org.bukkit.Location; import org.bukkit.event.Event; import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.impl.stubs.FalseStub; +import com.github.mce.minigames.impl.stubs.TrueStub; /** * Base Implementation for minigame events. * * @author mepeisen * @param <Evt> event class + * @param <MgEvt> minigame event class */ -public abstract class AbstractMinigameEvent<Evt extends Event> implements MinigameEvent<Evt> +public abstract class AbstractMinigameEvent<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> implements MinigameEvent<Evt, MgEvt> { /** the bukkit event object. */ @@ -37,6 +44,9 @@ public abstract class AbstractMinigameEvent<Evt extends Event> implements Miniga /** the player for this event. */ private ArenaPlayerInterface player; + + /** the arena interface. */ + private ArenaInterface arena; /** * Abstract minigame event. @@ -47,6 +57,48 @@ public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player) { this.event = event; this.player = player; + this.arena = player == null ? null : this.player.getArena(); + } + + /** + * Abstract minigame event. + * @param event the event. + * @param player + * @param arena + */ + public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, ArenaInterface arena) + { + this.event = event; + this.player = player; + this.arena = arena; + } + + /** + * Abstract minigame event. + * @param event the event. + * @param player + * @param location + */ + public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location location) + { + this.event = event; + this.player = player; + this.arena = this.getLib().getArenaFromLocation(location); + } + + /** + * Abstract minigame event. + * @param event the event. + * @param player + * @param location + * @param affectedLocations + */ + public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location location, Location[] affectedLocations) + { + this.event = event; + this.player = player; + this.arena = this.getLib().getArenaFromLocation(location); + // TODO } @Override @@ -64,8 +116,7 @@ public MglibInterface getLib() @Override public MinigameInterface getMinigame() { - final ArenaInterface arena = this.player.getArena(); - return arena == null ? null : arena.getMinigame(); + return this.arena == null ? null : this.arena.getMinigame(); } @Override @@ -79,5 +130,16 @@ public ArenaPlayerInterface getPlayer() { return this.player; } + + @SuppressWarnings("unchecked") + @Override + public MgOutgoingStubbing<MgEvt> when(MgPredicate<MgEvt> test) throws MinigameException + { + if (test.test((MgEvt) this)) + { + return new TrueStub<>((MgEvt) this); + } + return new FalseStub<>((MgEvt) this); + } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java index c7a625e0..368b6844 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java @@ -34,6 +34,6 @@ public interface EventSystemInterface extends Listener * @param bukkitEvent * @return minigame event. */ - <Evt extends Event> MinigameEvent<Evt> createEvent(Evt bukkitEvent); + <Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> MgEvt createEvent(Evt bukkitEvent); } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java index 2fc2c6cd..a25451d4 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaCreateEvent extends AbstractMinigameEvent<ArenaCreateEvent> implements MinigameArenaCreateEvent +public class MgArenaCreateEvent extends AbstractMinigameEvent<ArenaCreateEvent, MinigameArenaCreateEvent> implements MinigameArenaCreateEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java index 47a7df55..91694eaa 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaCreatedEvent extends AbstractMinigameEvent<ArenaCreatedEvent> implements MinigameArenaCreatedEvent +public class MgArenaCreatedEvent extends AbstractMinigameEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> implements MinigameArenaCreatedEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java index 7d10cae0..a1173f60 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaDeleteEvent extends AbstractMinigameEvent<ArenaDeleteEvent> implements MinigameArenaDeleteEvent +public class MgArenaDeleteEvent extends AbstractMinigameEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> implements MinigameArenaDeleteEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java index 36041501..702f1d25 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaDeletedEvent extends AbstractMinigameEvent<ArenaDeletedEvent> implements MinigameArenaDeletedEvent +public class MgArenaDeletedEvent extends AbstractMinigameEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> implements MinigameArenaDeletedEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java index cf106ab1..2db0aec9 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaMaintenanceEvent extends AbstractMinigameEvent<ArenaMaintenanceEvent> implements MinigameArenaMaintenanceEvent +public class MgArenaMaintenanceEvent extends AbstractMinigameEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> implements MinigameArenaMaintenanceEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java index d3c48872..33fd1981 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaPlayerJoinedEvent extends AbstractMinigameEvent<ArenaPlayerJoinedEvent> implements MinigameArenaPlayerJoinedEvent +public class MgArenaPlayerJoinedEvent extends AbstractMinigameEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> implements MinigameArenaPlayerJoinedEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java index 5f3e9021..08ed4a97 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaPlayerJoinedQueueEvent extends AbstractMinigameEvent<ArenaPlayerJoinedQueueEvent> implements MinigameArenaPlayerJoinedQueueEvent +public class MgArenaPlayerJoinedQueueEvent extends AbstractMinigameEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> implements MinigameArenaPlayerJoinedQueueEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java index 2f43ebe0..8d07d543 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaPlayerLeavesQueueEvent extends AbstractMinigameEvent<ArenaPlayerLeavesQueueEvent> implements MinigameArenaPlayerLeavesQueueEvent +public class MgArenaPlayerLeavesQueueEvent extends AbstractMinigameEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> implements MinigameArenaPlayerLeavesQueueEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java index 331d35e8..59efc234 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgArenaStateEvent extends AbstractMinigameEvent<ArenaStateEvent> implements MinigameArenaStateEvent +public class MgArenaStateEvent extends AbstractMinigameEvent<ArenaStateEvent, MinigameArenaStateEvent> implements MinigameArenaStateEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java index 3f4a1f50..63061384 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgPlayerCloseGuiEvent extends AbstractMinigameEvent<PlayerCloseGuiEvent> implements MinigamePlayerCloseGuiEvent +public class MgPlayerCloseGuiEvent extends AbstractMinigameEvent<PlayerCloseGuiEvent, MinigamePlayerCloseGuiEvent> implements MinigamePlayerCloseGuiEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java index 9c459d20..22e1fee5 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgPlayerDisplayGuiPageEvent extends AbstractMinigameEvent<PlayerDisplayGuiPageEvent> implements MinigamePlayerDisplayGuiPageEvent +public class MgPlayerDisplayGuiPageEvent extends AbstractMinigameEvent<PlayerDisplayGuiPageEvent, MinigamePlayerDisplayGuiPageEvent> implements MinigamePlayerDisplayGuiPageEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java index d6240131..901b7062 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgPlayerGuiClickEvent extends AbstractMinigameEvent<PlayerGuiClickEvent> implements MinigamePlayerGuiClickEvent +public class MgPlayerGuiClickEvent extends AbstractMinigameEvent<PlayerGuiClickEvent, MinigamePlayerGuiClickEvent> implements MinigamePlayerGuiClickEvent { /** diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java index 79758e12..7b8bc3a5 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java @@ -23,7 +23,7 @@ * * @author mepeisen */ -public class MgPlayerOpenGuiEvent extends AbstractMinigameEvent<PlayerOpenGuiEvent> implements MinigamePlayerOpenGuiEvent +public class MgPlayerOpenGuiEvent extends AbstractMinigameEvent<PlayerOpenGuiEvent, MinigamePlayerOpenGuiEvent> implements MinigamePlayerOpenGuiEvent { /** diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java similarity index 100% rename from LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java rename to LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java similarity index 100% rename from LIBv2/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java rename to LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java index 03d8178c..35fd57bc 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java @@ -171,6 +171,7 @@ import org.spigotmc.event.player.PlayerSpawnLocationEvent; import com.github.mce.minigames.impl.nms.AbstractEventSystem; +import com.github.mce.minigames.impl.nms.v1_10_1.event.*; /** * The event system implementation. @@ -186,7 +187,159 @@ public class EventSystem1_10_1 extends AbstractEventSystem public EventSystem1_10_1() { super(); - // TODO register event classes + this.registerHandler(AreaEffectCloudApplyEvent.class, (evt) -> new MgAreaEffectCloudApplyEvent(evt)); + this.registerHandler(AsyncPlayerChatEvent.class, (evt) -> new MgAsyncPlayerChatEvent(evt)); + this.registerHandler(BlockBreakEvent.class, (evt) -> new MgBlockBreakEvent(evt)); + this.registerHandler(BlockBurnEvent.class, (evt) -> new MgBlockBurnEvent(evt)); + this.registerHandler(BlockCanBuildEvent.class, (evt) -> new MgBlockCanBuildEvent(evt)); + this.registerHandler(BlockDamageEvent.class, (evt) -> new MgBlockDamageEvent(evt)); + this.registerHandler(BlockDispenseEvent.class, (evt) -> new MgBlockDispenseEvent(evt)); + this.registerHandler(BlockExpEvent.class, (evt) -> new MgBlockExpEvent(evt)); + this.registerHandler(BlockExplodeEvent.class, (evt) -> new MgBlockExplodeEvent(evt)); + this.registerHandler(BlockFadeEvent.class, (evt) -> new MgBlockFadeEvent(evt)); + this.registerHandler(BlockFormEvent.class, (evt) -> new MgBlockFormEvent(evt)); + this.registerHandler(BlockFromToEvent.class, (evt) -> new MgBlockFromToEvent(evt)); + this.registerHandler(BlockGrowEvent.class, (evt) -> new MgBlockGrowEvent(evt)); + this.registerHandler(BlockIgniteEvent.class, (evt) -> new MgBlockIgniteEvent(evt)); + this.registerHandler(BlockMultiPlaceEvent.class, (evt) -> new MgBlockMultiPlaceEvent(evt)); + this.registerHandler(BlockPhysicsEvent.class, (evt) -> new MgBlockPhysicsEvent(evt)); + this.registerHandler(BlockPistonExtendEvent.class, (evt) -> new MgBlockPistonExtendEvent(evt)); + this.registerHandler(BlockPistonRetractEvent.class, (evt) -> new MgBlockPistonRetractEvent(evt)); + this.registerHandler(BlockPlaceEvent.class, (evt) -> new MgBlockPlaceEvent(evt)); + this.registerHandler(BlockRedstoneEvent.class, (evt) -> new MgBlockRedstoneEvent(evt)); + this.registerHandler(BlockSpreadEvent.class, (evt) -> new MgBlockSpreadEvent(evt)); + this.registerHandler(BrewEvent.class, (evt) -> new MgBrewEvent(evt)); + this.registerHandler(CauldronLevelChangeEvent.class, (evt) -> new MgCauldronLevelChangeEvent(evt)); + this.registerHandler(CraftItemEvent.class, (evt) -> new MgCraftItemEvent(evt)); + this.registerHandler(CreatureSpawnEvent.class, (evt) -> new MgCreatureSpawnEvent(evt)); + this.registerHandler(CreeperPowerEvent.class, (evt) -> new MgCreeperPowerEvent(evt)); + this.registerHandler(EnchantItemEvent.class, (evt) -> new MgEnchantItemEvent(evt)); + this.registerHandler(EnderDragonChangePhaseEvent.class, (evt) -> new MgEnderDragonChangePhaseEvent(evt)); + this.registerHandler(EntityBlockFormEvent.class, (evt) -> new MgEntityBlockFormEvent(evt)); + this.registerHandler(EntityBreakDoorEvent.class, (evt) -> new MgEntityBreakDoorEvent(evt)); + this.registerHandler(EntityBreedEvent.class, (evt) -> new MgEntityBreedEvent(evt)); + this.registerHandler(EntityChangeBlockEvent.class, (evt) -> new MgEntityChangeBlockEvent(evt)); + this.registerHandler(EntityCombustByBlockEvent.class, (evt) -> new MgEntityCombustByBlockEvent(evt)); + this.registerHandler(EntityCombustByEntityEvent.class, (evt) -> new MgEntityCombustByEntityEvent(evt)); + this.registerHandler(EntityCombustEvent.class, (evt) -> new MgEntityCombustEvent(evt)); + this.registerHandler(EntityCreatePortalEvent.class, (evt) -> new MgEntityCreatePortalEvent(evt)); + this.registerHandler(EntityDamageByBlockEvent.class, (evt) -> new MgEntityDamageByBlockEvent(evt)); + this.registerHandler(EntityDamageByEntityEvent.class, (evt) -> new MgEntityDamageByEntityEvent(evt)); + this.registerHandler(EntityDamageEvent.class, (evt) -> new MgEntityDamageEvent(evt)); + this.registerHandler(EntityDeathEvent.class, (evt) -> new MgEntityDeathEvent(evt)); + this.registerHandler(EntityExplodeEvent.class, (evt) -> new MgEntityExplodeEvent(evt)); + this.registerHandler(EntityInteractEvent.class, (evt) -> new MgEntityInteractEvent(evt)); + this.registerHandler(EntityPortalEnterEvent.class, (evt) -> new MgEntityPortalEnterEvent(evt)); + this.registerHandler(EntityPortalEvent.class, (evt) -> new MgEntityPortalEvent(evt)); + this.registerHandler(EntityPortalExitEvent.class, (evt) -> new MgEntityPortalExitEvent(evt)); + this.registerHandler(EntityRegainHealthEvent.class, (evt) -> new MgEntityRegainHealthEvent(evt)); + this.registerHandler(EntityShootBowEvent.class, (evt) -> new MgEntityShootBowEvent(evt)); + this.registerHandler(EntitySpawnEvent.class, (evt) -> new MgEntitySpawnEvent(evt)); + this.registerHandler(EntityTameEvent.class, (evt) -> new MgEntityTameEvent(evt)); + this.registerHandler(EntityTargetEvent.class, (evt) -> new MgEntityTargetEvent(evt)); + this.registerHandler(EntityTargetLivingEntityEvent.class, (evt) -> new MgEntityTargetLivingEntityEvent(evt)); + this.registerHandler(EntityTeleportEvent.class, (evt) -> new MgEntityTeleportEvent(evt)); + this.registerHandler(EntityToggleGlideEvent.class, (evt) -> new MgEntityToggleGlideEvent(evt)); + this.registerHandler(EntityUnleashEvent.class, (evt) -> new MgEntityUnleashEvent(evt)); + this.registerHandler(ExpBottleEvent.class, (evt) -> new MgExpBottleEvent(evt)); + this.registerHandler(ExplosionPrimeEvent.class, (evt) -> new MgExplosionPrimeEvent(evt)); + this.registerHandler(FireworkExplodeEvent.class, (evt) -> new MgFireworkExplodeEvent(evt)); + this.registerHandler(FoodLevelChangeEvent.class, (evt) -> new MgFoodLevelChangeEvent(evt)); + this.registerHandler(FurnaceBurnEvent.class, (evt) -> new MgFurnaceBurnEvent(evt)); + this.registerHandler(FurnaceSmeltEvent.class, (evt) -> new MgFurnaceSmeltEvent(evt)); + this.registerHandler(HangingBreakByEntityEvent.class, (evt) -> new MgHangingBreakByEntityEvent(evt)); + this.registerHandler(HangingBreakEvent.class, (evt) -> new MgHangingBreakEvent(evt)); + this.registerHandler(HangingPlaceEvent.class, (evt) -> new MgHangingPlaceEvent(evt)); + this.registerHandler(HorseJumpEvent.class, (evt) -> new MgHorseJumpEvent(evt)); + this.registerHandler(InventoryClickEvent.class, (evt) -> new MgInventoryClickEvent(evt)); + this.registerHandler(InventoryCloseEvent.class, (evt) -> new MgInventoryCloseEvent(evt)); + this.registerHandler(InventoryCreativeEvent.class, (evt) -> new MgInventoryCreativeEvent(evt)); + this.registerHandler(InventoryDragEvent.class, (evt) -> new MgInventoryDragEvent(evt)); + this.registerHandler(InventoryEvent.class, (evt) -> new MgInventoryEvent(evt)); + this.registerHandler(InventoryInteractEvent.class, (evt) -> new MgInventoryInteractEvent(evt)); + this.registerHandler(InventoryMoveItemEvent.class, (evt) -> new MgInventoryMoveItemEvent(evt)); + this.registerHandler(InventoryOpenEvent.class, (evt) -> new MgInventoryOpenEvent(evt)); + this.registerHandler(InventoryPickupItemEvent.class, (evt) -> new MgInventoryPickupItemEvent(evt)); + this.registerHandler(ItemDespawnEvent.class, (evt) -> new MgItemDespawnEvent(evt)); + this.registerHandler(ItemMergeEvent.class, (evt) -> new MgItemMergeEvent(evt)); + this.registerHandler(ItemSpawnEvent.class, (evt) -> new MgItemSpawnEvent(evt)); + this.registerHandler(LeavesDecayEvent.class, (evt) -> new MgLeavesDecayEvent(evt)); + this.registerHandler(LingeringPotionSplashEvent.class, (evt) -> new MgLingeringPotionSplashEvent(evt)); + this.registerHandler(NotePlayEvent.class, (evt) -> new MgNotePlayEvent(evt)); + this.registerHandler(PigZapEvent.class, (evt) -> new MgPigZapEvent(evt)); + this.registerHandler(PlayerAchievementAwardedEvent.class, (evt) -> new MgPlayerAchievementAwardedEvent(evt)); + this.registerHandler(PlayerAnimationEvent.class, (evt) -> new MgPlayerAnimationEvent(evt)); + this.registerHandler(PlayerArmorStandManipulateEvent.class, (evt) -> new MgPlayerArmorStandManipulateEvent(evt)); + this.registerHandler(PlayerBedEnterEvent.class, (evt) -> new MgPlayerBedEnterEvent(evt)); + this.registerHandler(PlayerBedLeaveEvent.class, (evt) -> new MgPlayerBedLeaveEvent(evt)); + this.registerHandler(PlayerBucketEmptyEvent.class, (evt) -> new MgPlayerBucketEmptyEvent(evt)); + this.registerHandler(PlayerBucketFillEvent.class, (evt) -> new MgPlayerBucketFillEvent(evt)); + this.registerHandler(PlayerChangedMainHandEvent.class, (evt) -> new MgPlayerChangedMainHandEvent(evt)); + this.registerHandler(PlayerChangedWorldEvent.class, (evt) -> new MgPlayerChangedWorldEvent(evt)); + this.registerHandler(PlayerChannelEvent.class, (evt) -> new MgPlayerChannelEvent(evt)); + this.registerHandler(PlayerChatEvent.class, (evt) -> new MgPlayerChatEvent(evt)); + this.registerHandler(PlayerChatTabCompleteEvent.class, (evt) -> new MgPlayerChatTabCompleteEvent(evt)); + this.registerHandler(PlayerCommandPreprocessEvent.class, (evt) -> new MgPlayerCommandPreprocessEvent(evt)); + this.registerHandler(PlayerDeathEvent.class, (evt) -> new MgPlayerDeathEvent(evt)); + this.registerHandler(PlayerDropItemEvent.class, (evt) -> new MgPlayerDropItemEvent(evt)); + this.registerHandler(PlayerEditBookEvent.class, (evt) -> new MgPlayerEditBookEvent(evt)); + this.registerHandler(PlayerEggThrowEvent.class, (evt) -> new MgPlayerEggThrowEvent(evt)); + this.registerHandler(PlayerExpChangeEvent.class, (evt) -> new MgPlayerExpChangeEvent(evt)); + this.registerHandler(PlayerFishEvent.class, (evt) -> new MgPlayerFishEvent(evt)); + this.registerHandler(PlayerGameModeChangeEvent.class, (evt) -> new MgPlayerGameModeChangeEvent(evt)); + this.registerHandler(PlayerInteractAtEntityEvent.class, (evt) -> new MgPlayerInteractAtEntityEvent(evt)); + this.registerHandler(PlayerInteractEntityEvent.class, (evt) -> new MgPlayerInteractEntityEvent(evt)); + this.registerHandler(PlayerInteractEvent.class, (evt) -> new MgPlayerInteractEvent(evt)); + this.registerHandler(PlayerInventoryEvent.class, (evt) -> new MgPlayerInventoryEvent(evt)); + this.registerHandler(PlayerItemBreakEvent.class, (evt) -> new MgPlayerItemBreakEvent(evt)); + this.registerHandler(PlayerItemConsumeEvent.class, (evt) -> new MgPlayerItemConsumeEvent(evt)); + this.registerHandler(PlayerItemDamageEvent.class, (evt) -> new MgPlayerItemDamageEvent(evt)); + this.registerHandler(PlayerItemHeldEvent.class, (evt) -> new MgPlayerItemHeldEvent(evt)); + this.registerHandler(PlayerJoinEvent.class, (evt) -> new MgPlayerJoinEvent(evt)); + this.registerHandler(PlayerKickEvent.class, (evt) -> new MgPlayerKickEvent(evt)); + this.registerHandler(PlayerLeashEntityEvent.class, (evt) -> new MgPlayerLeashEntityEvent(evt)); + this.registerHandler(PlayerLevelChangeEvent.class, (evt) -> new MgPlayerLevelChangeEvent(evt)); + this.registerHandler(PlayerLoginEvent.class, (evt) -> new MgPlayerLoginEvent(evt)); + this.registerHandler(PlayerMoveEvent.class, (evt) -> new MgPlayerMoveEvent(evt)); + this.registerHandler(PlayerPickupArrowEvent.class, (evt) -> new MgPlayerPickupArrowEvent(evt)); + this.registerHandler(PlayerPickupItemEvent.class, (evt) -> new MgPlayerPickupItemEvent(evt)); + this.registerHandler(PlayerPortalEvent.class, (evt) -> new MgPlayerPortalEvent(evt)); + this.registerHandler(PlayerQuitEvent.class, (evt) -> new MgPlayerQuitEvent(evt)); + this.registerHandler(PlayerRegisterChannelEvent.class, (evt) -> new MgPlayerRegisterChannelEvent(evt)); + this.registerHandler(PlayerResourcePackStatusEvent.class, (evt) -> new MgPlayerResourcePackStatusEvent(evt)); + this.registerHandler(PlayerRespawnEvent.class, (evt) -> new MgPlayerRespawnEvent(evt)); + this.registerHandler(PlayerShearEntityEvent.class, (evt) -> new MgPlayerShearEntityEvent(evt)); + this.registerHandler(PlayerSpawnLocationEvent.class, (evt) -> new MgPlayerSpawnLocationEvent(evt)); + this.registerHandler(PlayerStatisticIncrementEvent.class, (evt) -> new MgPlayerStatisticIncrementEvent(evt)); + this.registerHandler(PlayerSwapHandItemsEvent.class, (evt) -> new MgPlayerSwapHandItemsEvent(evt)); + this.registerHandler(PlayerTeleportEvent.class, (evt) -> new MgPlayerTeleportEvent(evt)); + this.registerHandler(PlayerToggleFlightEvent.class, (evt) -> new MgPlayerToggleFlightEvent(evt)); + this.registerHandler(PlayerToggleSneakEvent.class, (evt) -> new MgPlayerToggleSneakEvent(evt)); + this.registerHandler(PlayerToggleSprintEvent.class, (evt) -> new MgPlayerToggleSprintEvent(evt)); + this.registerHandler(PlayerUnregisterChannelEvent.class, (evt) -> new MgPlayerUnregisterChannelEvent(evt)); + this.registerHandler(PlayerVelocityEvent.class, (evt) -> new MgPlayerVelocityEvent(evt)); + this.registerHandler(PotionSplashEvent.class, (evt) -> new MgPotionSplashEvent(evt)); + this.registerHandler(PrepareAnvilEvent.class, (evt) -> new MgPrepareAnvilEvent(evt)); + this.registerHandler(PrepareItemCraftEvent.class, (evt) -> new MgPrepareItemCraftEvent(evt)); + this.registerHandler(PrepareItemEnchantEvent.class, (evt) -> new MgPrepareItemEnchantEvent(evt)); + this.registerHandler(ProjectileHitEvent.class, (evt) -> new MgProjectileHitEvent(evt)); + this.registerHandler(ProjectileLaunchEvent.class, (evt) -> new MgProjectileLaunchEvent(evt)); + this.registerHandler(SheepDyeWoolEvent.class, (evt) -> new MgSheepDyeWoolEvent(evt)); + this.registerHandler(SheepRegrowWoolEvent.class, (evt) -> new MgSheepRegrowWoolEvent(evt)); + this.registerHandler(SignChangeEvent.class, (evt) -> new MgSignChangeEvent(evt)); + this.registerHandler(SlimeSplitEvent.class, (evt) -> new MgSlimeSplitEvent(evt)); + this.registerHandler(SpawnerSpawnEvent.class, (evt) -> new MgSpawnerSpawnEvent(evt)); + this.registerHandler(VehicleBlockCollisionEvent.class, (evt) -> new MgVehicleBlockCollisionEvent(evt)); + this.registerHandler(VehicleCreateEvent.class, (evt) -> new MgVehicleCreateEvent(evt)); + this.registerHandler(VehicleDamageEvent.class, (evt) -> new MgVehicleDamageEvent(evt)); + this.registerHandler(VehicleDestroyEvent.class, (evt) -> new MgVehicleDestroyEvent(evt)); + this.registerHandler(VehicleEnterEvent.class, (evt) -> new MgVehicleEnterEvent(evt)); + this.registerHandler(VehicleEntityCollisionEvent.class, (evt) -> new MgVehicleEntityCollisionEvent(evt)); + this.registerHandler(VehicleExitEvent.class, (evt) -> new MgVehicleExitEvent(evt)); + this.registerHandler(VehicleMoveEvent.class, (evt) -> new MgVehicleMoveEvent(evt)); + this.registerHandler(VehicleUpdateEvent.class, (evt) -> new MgVehicleUpdateEvent(evt)); + this.registerHandler(VillagerAcquireTradeEvent.class, (evt) -> new MgVillagerAcquireTradeEvent(evt)); + this.registerHandler(VillagerReplenishTradeEvent.class, (evt) -> new MgVillagerReplenishTradeEvent(evt)); } /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java index 4233db2b..fa485755 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgAreaEffectCloudApplyEvent extends AbstractMinigameEvent<AreaEffectCloudApplyEvent> implements MinigameAreaEffectCloudApplyEvent +public class MgAreaEffectCloudApplyEvent extends AbstractMinigameEvent<AreaEffectCloudApplyEvent, MinigameAreaEffectCloudApplyEvent> implements MinigameAreaEffectCloudApplyEvent { /** @@ -34,7 +34,7 @@ public class MgAreaEffectCloudApplyEvent extends AbstractMinigameEvent<AreaEffec */ public MgAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java index 444df2c2..5011ab41 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameAsyncPlayerChatEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +26,7 @@ * * @author mepeisen */ -public class MgAsyncPlayerChatEvent extends AbstractMinigameEvent<AsyncPlayerChatEvent> implements MinigameAsyncPlayerChatEvent +public class MgAsyncPlayerChatEvent extends AbstractMinigameEvent<AsyncPlayerChatEvent, MinigameAsyncPlayerChatEvent> implements MinigameAsyncPlayerChatEvent { /** @@ -34,7 +35,7 @@ public class MgAsyncPlayerChatEvent extends AbstractMinigameEvent<AsyncPlayerCha */ public MgAsyncPlayerChatEvent(AsyncPlayerChatEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java index 63e2ed98..ea14076b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.block.BlockBreakEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockBreakEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +26,7 @@ * * @author mepeisen */ -public class MgBlockBreakEvent extends AbstractMinigameEvent<BlockBreakEvent> implements MinigameBlockBreakEvent +public class MgBlockBreakEvent extends AbstractMinigameEvent<BlockBreakEvent, MinigameBlockBreakEvent> implements MinigameBlockBreakEvent { /** @@ -34,7 +35,7 @@ public class MgBlockBreakEvent extends AbstractMinigameEvent<BlockBreakEvent> im */ public MgBlockBreakEvent(BlockBreakEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java index 53bcb371..a1dcb1db 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockBurnEvent extends AbstractMinigameEvent<BlockBurnEvent> implements MinigameBlockBurnEvent +public class MgBlockBurnEvent extends AbstractMinigameEvent<BlockBurnEvent, MinigameBlockBurnEvent> implements MinigameBlockBurnEvent { /** @@ -34,7 +34,7 @@ public class MgBlockBurnEvent extends AbstractMinigameEvent<BlockBurnEvent> impl */ public MgBlockBurnEvent(BlockBurnEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java index 8e32548d..b57705ea 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; import org.bukkit.event.block.BlockCanBuildEvent; +import org.bukkit.util.Vector; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockCanBuildEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +26,7 @@ * * @author mepeisen */ -public class MgBlockCanBuildEvent extends AbstractMinigameEvent<BlockCanBuildEvent> implements MinigameBlockCanBuildEvent +public class MgBlockCanBuildEvent extends AbstractMinigameEvent<BlockCanBuildEvent, MinigameBlockCanBuildEvent> implements MinigameBlockCanBuildEvent { /** @@ -34,7 +35,7 @@ public class MgBlockCanBuildEvent extends AbstractMinigameEvent<BlockCanBuildEve */ public MgBlockCanBuildEvent(BlockCanBuildEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation().add(new Vector(0, 1, 0))); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java index 532716ce..4079343d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.block.BlockDamageEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockDamageEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +26,7 @@ * * @author mepeisen */ -public class MgBlockDamageEvent extends AbstractMinigameEvent<BlockDamageEvent> implements MinigameBlockDamageEvent +public class MgBlockDamageEvent extends AbstractMinigameEvent<BlockDamageEvent, MinigameBlockDamageEvent> implements MinigameBlockDamageEvent { /** @@ -34,7 +35,7 @@ public class MgBlockDamageEvent extends AbstractMinigameEvent<BlockDamageEvent> */ public MgBlockDamageEvent(BlockDamageEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java index 2ac8b745..ce6a9ebc 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockDispenseEvent extends AbstractMinigameEvent<BlockDispenseEvent> implements MinigameBlockDispenseEvent +public class MgBlockDispenseEvent extends AbstractMinigameEvent<BlockDispenseEvent, MinigameBlockDispenseEvent> implements MinigameBlockDispenseEvent { /** @@ -34,7 +34,7 @@ public class MgBlockDispenseEvent extends AbstractMinigameEvent<BlockDispenseEve */ public MgBlockDispenseEvent(BlockDispenseEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java index 173aa14b..40086d77 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockExpEvent extends AbstractMinigameEvent<BlockExpEvent> implements MinigameBlockExpEvent +public class MgBlockExpEvent extends AbstractMinigameEvent<BlockExpEvent, MinigameBlockExpEvent> implements MinigameBlockExpEvent { /** @@ -34,7 +34,7 @@ public class MgBlockExpEvent extends AbstractMinigameEvent<BlockExpEvent> implem */ public MgBlockExpEvent(BlockExpEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java index 627f9ac0..9f33c496 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.Location; +import org.bukkit.block.Block; import org.bukkit.event.block.BlockExplodeEvent; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockExplodeEvent; @@ -25,16 +27,35 @@ * * @author mepeisen */ -public class MgBlockExplodeEvent extends AbstractMinigameEvent<BlockExplodeEvent> implements MinigameBlockExplodeEvent +public class MgBlockExplodeEvent extends AbstractMinigameEvent<BlockExplodeEvent, MinigameBlockExplodeEvent> implements MinigameBlockExplodeEvent { - + /** * Constructor + * * @param event */ public MgBlockExplodeEvent(BlockExplodeEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation(), locations(event)); + } + + /** + * Gets locations from affected blocks. + * + * @param event + * @return locations. + */ + private static Location[] locations(BlockExplodeEvent event) + { + final Location[] result = new Location[event.blockList().size()]; + int i = 0; + for (final Block block : event.blockList()) + { + result[i] = block.getLocation(); + i++; + } + return result; } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java index f87af911..0c329aae 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockFadeEvent extends AbstractMinigameEvent<BlockFadeEvent> implements MinigameBlockFadeEvent +public class MgBlockFadeEvent extends AbstractMinigameEvent<BlockFadeEvent, MinigameBlockFadeEvent> implements MinigameBlockFadeEvent { /** @@ -34,7 +34,7 @@ public class MgBlockFadeEvent extends AbstractMinigameEvent<BlockFadeEvent> impl */ public MgBlockFadeEvent(BlockFadeEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java index a7117338..4c9b71dc 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockFormEvent extends AbstractMinigameEvent<BlockFormEvent> implements MinigameBlockFormEvent +public class MgBlockFormEvent extends AbstractMinigameEvent<BlockFormEvent, MinigameBlockFormEvent> implements MinigameBlockFormEvent { /** @@ -34,7 +34,7 @@ public class MgBlockFormEvent extends AbstractMinigameEvent<BlockFormEvent> impl */ public MgBlockFormEvent(BlockFormEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java index 408bddae..327abfed 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java @@ -15,6 +15,7 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.Location; import org.bukkit.event.block.BlockFromToEvent; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFromToEvent; @@ -25,7 +26,7 @@ * * @author mepeisen */ -public class MgBlockFromToEvent extends AbstractMinigameEvent<BlockFromToEvent> implements MinigameBlockFromToEvent +public class MgBlockFromToEvent extends AbstractMinigameEvent<BlockFromToEvent, MinigameBlockFromToEvent> implements MinigameBlockFromToEvent { /** @@ -34,7 +35,7 @@ public class MgBlockFromToEvent extends AbstractMinigameEvent<BlockFromToEvent> */ public MgBlockFromToEvent(BlockFromToEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation(), new Location[]{event.getToBlock().getLocation()}); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java index 19d70900..cf9eff2a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockGrowEvent extends AbstractMinigameEvent<BlockGrowEvent> implements MinigameBlockGrowEvent +public class MgBlockGrowEvent extends AbstractMinigameEvent<BlockGrowEvent, MinigameBlockGrowEvent> implements MinigameBlockGrowEvent { /** @@ -34,7 +34,7 @@ public class MgBlockGrowEvent extends AbstractMinigameEvent<BlockGrowEvent> impl */ public MgBlockGrowEvent(BlockGrowEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java index 69a725ba..e99d5123 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockIgniteEvent extends AbstractMinigameEvent<BlockIgniteEvent> implements MinigameBlockIgniteEvent +public class MgBlockIgniteEvent extends AbstractMinigameEvent<BlockIgniteEvent, MinigameBlockIgniteEvent> implements MinigameBlockIgniteEvent { /** @@ -34,7 +34,8 @@ public class MgBlockIgniteEvent extends AbstractMinigameEvent<BlockIgniteEvent> */ public MgBlockIgniteEvent(BlockIgniteEvent event) { - super(event, null); // TODO + // TODO ignite player? ignite block? + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java index f54fe61b..4ebe9572 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.block.BlockMultiPlaceEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockMultiPlaceEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +26,7 @@ * * @author mepeisen */ -public class MgBlockMultiPlaceEvent extends AbstractMinigameEvent<BlockMultiPlaceEvent> implements MinigameBlockMultiPlaceEvent +public class MgBlockMultiPlaceEvent extends AbstractMinigameEvent<BlockMultiPlaceEvent, MinigameBlockMultiPlaceEvent> implements MinigameBlockMultiPlaceEvent { /** @@ -34,7 +35,7 @@ public class MgBlockMultiPlaceEvent extends AbstractMinigameEvent<BlockMultiPlac */ public MgBlockMultiPlaceEvent(BlockMultiPlaceEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); // TODO affected block states } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java index db4597db..43b95415 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockPhysicsEvent extends AbstractMinigameEvent<BlockPhysicsEvent> implements MinigameBlockPhysicsEvent +public class MgBlockPhysicsEvent extends AbstractMinigameEvent<BlockPhysicsEvent, MinigameBlockPhysicsEvent> implements MinigameBlockPhysicsEvent { /** @@ -34,7 +34,7 @@ public class MgBlockPhysicsEvent extends AbstractMinigameEvent<BlockPhysicsEvent */ public MgBlockPhysicsEvent(BlockPhysicsEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java index 494aec7e..fc1b4caf 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockPistonExtendEvent extends AbstractMinigameEvent<BlockPistonExtendEvent> implements MinigameBlockPistonExtendEvent +public class MgBlockPistonExtendEvent extends AbstractMinigameEvent<BlockPistonExtendEvent, MinigameBlockPistonExtendEvent> implements MinigameBlockPistonExtendEvent { /** @@ -34,7 +34,7 @@ public class MgBlockPistonExtendEvent extends AbstractMinigameEvent<BlockPistonE */ public MgBlockPistonExtendEvent(BlockPistonExtendEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); // TODO affected blocks } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java index bfd5ace0..df55feac 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockPistonRetractEvent extends AbstractMinigameEvent<BlockPistonRetractEvent> implements MinigameBlockPistonRetractEvent +public class MgBlockPistonRetractEvent extends AbstractMinigameEvent<BlockPistonRetractEvent, MinigameBlockPistonRetractEvent> implements MinigameBlockPistonRetractEvent { /** @@ -34,7 +34,7 @@ public class MgBlockPistonRetractEvent extends AbstractMinigameEvent<BlockPiston */ public MgBlockPistonRetractEvent(BlockPistonRetractEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); // TODO affected blocks } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java index e099b07c..db158dfa 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockPlaceEvent extends AbstractMinigameEvent<BlockPlaceEvent> implements MinigameBlockPlaceEvent +public class MgBlockPlaceEvent extends AbstractMinigameEvent<BlockPlaceEvent, MinigameBlockPlaceEvent> implements MinigameBlockPlaceEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java index d94350a4..a2cd4c0f 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockRedstoneEvent extends AbstractMinigameEvent<BlockRedstoneEvent> implements MinigameBlockRedstoneEvent +public class MgBlockRedstoneEvent extends AbstractMinigameEvent<BlockRedstoneEvent, MinigameBlockRedstoneEvent> implements MinigameBlockRedstoneEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java index 01059bca..eea01bb2 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBlockSpreadEvent extends AbstractMinigameEvent<BlockSpreadEvent> implements MinigameBlockSpreadEvent +public class MgBlockSpreadEvent extends AbstractMinigameEvent<BlockSpreadEvent, MinigameBlockSpreadEvent> implements MinigameBlockSpreadEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java index 5fa3731c..dc467b01 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgBrewEvent extends AbstractMinigameEvent<BrewEvent> implements MinigameBrewEvent +public class MgBrewEvent extends AbstractMinigameEvent<BrewEvent, MinigameBrewEvent> implements MinigameBrewEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java index 60b80b57..a342957a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgCauldronLevelChangeEvent extends AbstractMinigameEvent<CauldronLevelChangeEvent> implements MinigameCauldronLevelChangeEvent +public class MgCauldronLevelChangeEvent extends AbstractMinigameEvent<CauldronLevelChangeEvent, MinigameCauldronLevelChangeEvent> implements MinigameCauldronLevelChangeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java index 0d2907a8..b13aa458 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgCraftItemEvent extends AbstractMinigameEvent<CraftItemEvent> implements MinigameCraftItemEvent +public class MgCraftItemEvent extends AbstractMinigameEvent<CraftItemEvent, MinigameCraftItemEvent> implements MinigameCraftItemEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java index 4a2b0b8b..9d43a021 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgCreatureSpawnEvent extends AbstractMinigameEvent<CreatureSpawnEvent> implements MinigameCreatureSpawnEvent +public class MgCreatureSpawnEvent extends AbstractMinigameEvent<CreatureSpawnEvent, MinigameCreatureSpawnEvent> implements MinigameCreatureSpawnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java index af2893a0..3ce2f36a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgCreeperPowerEvent extends AbstractMinigameEvent<CreeperPowerEvent> implements MinigameCreeperPowerEvent +public class MgCreeperPowerEvent extends AbstractMinigameEvent<CreeperPowerEvent, MinigameCreeperPowerEvent> implements MinigameCreeperPowerEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java index 54edae84..603b7630 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEnchantItemEvent extends AbstractMinigameEvent<EnchantItemEvent> implements MinigameEnchantItemEvent +public class MgEnchantItemEvent extends AbstractMinigameEvent<EnchantItemEvent, MinigameEnchantItemEvent> implements MinigameEnchantItemEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java index 3d82e0d1..1cbfab29 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEnderDragonChangePhaseEvent extends AbstractMinigameEvent<EnderDragonChangePhaseEvent> implements MinigameEnderDragonChangePhaseEvent +public class MgEnderDragonChangePhaseEvent extends AbstractMinigameEvent<EnderDragonChangePhaseEvent, MinigameEnderDragonChangePhaseEvent> implements MinigameEnderDragonChangePhaseEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java index 83f175fe..3ce7d1f5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityBlockFormEvent extends AbstractMinigameEvent<EntityBlockFormEvent> implements MinigameEntityBlockFormEvent +public class MgEntityBlockFormEvent extends AbstractMinigameEvent<EntityBlockFormEvent, MinigameEntityBlockFormEvent> implements MinigameEntityBlockFormEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java index b631751b..0b663426 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityBreakDoorEvent extends AbstractMinigameEvent<EntityBreakDoorEvent> implements MinigameEntityBreakDoorEvent +public class MgEntityBreakDoorEvent extends AbstractMinigameEvent<EntityBreakDoorEvent, MinigameEntityBreakDoorEvent> implements MinigameEntityBreakDoorEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java index 0c63f400..6d6df08f 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityBreedEvent extends AbstractMinigameEvent<EntityBreedEvent> implements MinigameEntityBreedEvent +public class MgEntityBreedEvent extends AbstractMinigameEvent<EntityBreedEvent, MinigameEntityBreedEvent> implements MinigameEntityBreedEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java index 973b2286..68c3f2e7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityChangeBlockEvent extends AbstractMinigameEvent<EntityChangeBlockEvent> implements MinigameEntityChangeBlockEvent +public class MgEntityChangeBlockEvent extends AbstractMinigameEvent<EntityChangeBlockEvent, MinigameEntityChangeBlockEvent> implements MinigameEntityChangeBlockEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java index 49c003b6..180470e4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityCombustByBlockEvent extends AbstractMinigameEvent<EntityCombustByBlockEvent> implements MinigameEntityCombustByBlockEvent +public class MgEntityCombustByBlockEvent extends AbstractMinigameEvent<EntityCombustByBlockEvent, MinigameEntityCombustByBlockEvent> implements MinigameEntityCombustByBlockEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java index c3c1c772..4b2f9061 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityCombustByEntityEvent extends AbstractMinigameEvent<EntityCombustByEntityEvent> implements MinigameEntityCombustByEntityEvent +public class MgEntityCombustByEntityEvent extends AbstractMinigameEvent<EntityCombustByEntityEvent, MinigameEntityCombustByEntityEvent> implements MinigameEntityCombustByEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java index 0bfcb7a9..17793435 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityCombustEvent extends AbstractMinigameEvent<EntityCombustEvent> implements MinigameEntityCombustEvent +public class MgEntityCombustEvent extends AbstractMinigameEvent<EntityCombustEvent, MinigameEntityCombustEvent> implements MinigameEntityCombustEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java index c35c46c5..603800e4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityCreatePortalEvent extends AbstractMinigameEvent<EntityCreatePortalEvent> implements MinigameEntityCreatePortalEvent +public class MgEntityCreatePortalEvent extends AbstractMinigameEvent<EntityCreatePortalEvent, MinigameEntityCreatePortalEvent> implements MinigameEntityCreatePortalEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java index dfd95898..519881ef 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityDamageByBlockEvent extends AbstractMinigameEvent<EntityDamageByBlockEvent> implements MinigameEntityDamageByBlockEvent +public class MgEntityDamageByBlockEvent extends AbstractMinigameEvent<EntityDamageByBlockEvent, MinigameEntityDamageByBlockEvent> implements MinigameEntityDamageByBlockEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java index 87f1d5a4..696a7809 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityDamageByEntityEvent extends AbstractMinigameEvent<EntityDamageByEntityEvent> implements MinigameEntityDamageByEntityEvent +public class MgEntityDamageByEntityEvent extends AbstractMinigameEvent<EntityDamageByEntityEvent, MinigameEntityDamageByEntityEvent> implements MinigameEntityDamageByEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java index dda28217..714fd63d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityDamageEvent extends AbstractMinigameEvent<EntityDamageEvent> implements MinigameEntityDamageEvent +public class MgEntityDamageEvent extends AbstractMinigameEvent<EntityDamageEvent, MinigameEntityDamageEvent> implements MinigameEntityDamageEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java index 399435ea..7e251d08 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityDeathEvent extends AbstractMinigameEvent<EntityDeathEvent> implements MinigameEntityDeathEvent +public class MgEntityDeathEvent extends AbstractMinigameEvent<EntityDeathEvent, MinigameEntityDeathEvent> implements MinigameEntityDeathEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java index c0b3b2c0..8377996a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityExplodeEvent extends AbstractMinigameEvent<EntityExplodeEvent> implements MinigameEntityExplodeEvent +public class MgEntityExplodeEvent extends AbstractMinigameEvent<EntityExplodeEvent, MinigameEntityExplodeEvent> implements MinigameEntityExplodeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java index da73c70f..f22b60f5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityInteractEvent extends AbstractMinigameEvent<EntityInteractEvent> implements MinigameEntityInteractEvent +public class MgEntityInteractEvent extends AbstractMinigameEvent<EntityInteractEvent, MinigameEntityInteractEvent> implements MinigameEntityInteractEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java index 3ba6c79e..7f591019 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityPortalEnterEvent extends AbstractMinigameEvent<EntityPortalEnterEvent> implements MinigameEntityPortalEnterEvent +public class MgEntityPortalEnterEvent extends AbstractMinigameEvent<EntityPortalEnterEvent, MinigameEntityPortalEnterEvent> implements MinigameEntityPortalEnterEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java index fdfd0623..490eb765 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityPortalEvent extends AbstractMinigameEvent<EntityPortalEvent> implements MinigameEntityPortalEvent +public class MgEntityPortalEvent extends AbstractMinigameEvent<EntityPortalEvent, MinigameEntityPortalEvent> implements MinigameEntityPortalEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java index 427727af..3481ef61 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityPortalExitEvent extends AbstractMinigameEvent<EntityPortalExitEvent> implements MinigameEntityPortalExitEvent +public class MgEntityPortalExitEvent extends AbstractMinigameEvent<EntityPortalExitEvent, MinigameEntityPortalExitEvent> implements MinigameEntityPortalExitEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java index 759846a5..3f13f149 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityRegainHealthEvent extends AbstractMinigameEvent<EntityRegainHealthEvent> implements MinigameEntityRegainHealthEvent +public class MgEntityRegainHealthEvent extends AbstractMinigameEvent<EntityRegainHealthEvent, MinigameEntityRegainHealthEvent> implements MinigameEntityRegainHealthEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java index 63a9b038..77b2d2af 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityShootBowEvent extends AbstractMinigameEvent<EntityShootBowEvent> implements MinigameEntityShootBowEvent +public class MgEntityShootBowEvent extends AbstractMinigameEvent<EntityShootBowEvent, MinigameEntityShootBowEvent> implements MinigameEntityShootBowEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java index 2ef412f8..56270960 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntitySpawnEvent extends AbstractMinigameEvent<EntitySpawnEvent> implements MinigameEntitySpawnEvent +public class MgEntitySpawnEvent extends AbstractMinigameEvent<EntitySpawnEvent, MinigameEntitySpawnEvent> implements MinigameEntitySpawnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java index b740f0b6..d9622fc3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityTameEvent extends AbstractMinigameEvent<EntityTameEvent> implements MinigameEntityTameEvent +public class MgEntityTameEvent extends AbstractMinigameEvent<EntityTameEvent, MinigameEntityTameEvent> implements MinigameEntityTameEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java index 4c9ac0fa..d5df9f19 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityTargetEvent extends AbstractMinigameEvent<EntityTargetEvent> implements MinigameEntityTargetEvent +public class MgEntityTargetEvent extends AbstractMinigameEvent<EntityTargetEvent, MinigameEntityTargetEvent> implements MinigameEntityTargetEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java index 61d7a79a..ae4a99a4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityTargetLivingEntityEvent extends AbstractMinigameEvent<EntityTargetLivingEntityEvent> implements MinigameEntityTargetLivingEntityEvent +public class MgEntityTargetLivingEntityEvent extends AbstractMinigameEvent<EntityTargetLivingEntityEvent, MinigameEntityTargetLivingEntityEvent> implements MinigameEntityTargetLivingEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java index c0a9be00..64d0f0d7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityTeleportEvent extends AbstractMinigameEvent<EntityTeleportEvent> implements MinigameEntityTeleportEvent +public class MgEntityTeleportEvent extends AbstractMinigameEvent<EntityTeleportEvent, MinigameEntityTeleportEvent> implements MinigameEntityTeleportEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java index 82eeb152..e3559605 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityToggleGlideEvent extends AbstractMinigameEvent<EntityToggleGlideEvent> implements MinigameEntityToggleGlideEvent +public class MgEntityToggleGlideEvent extends AbstractMinigameEvent<EntityToggleGlideEvent, MinigameEntityToggleGlideEvent> implements MinigameEntityToggleGlideEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java index 6225539e..97629702 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgEntityUnleashEvent extends AbstractMinigameEvent<EntityUnleashEvent> implements MinigameEntityUnleashEvent +public class MgEntityUnleashEvent extends AbstractMinigameEvent<EntityUnleashEvent, MinigameEntityUnleashEvent> implements MinigameEntityUnleashEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java index 6ae1ba61..e2ee4dcd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgExpBottleEvent extends AbstractMinigameEvent<ExpBottleEvent> implements MinigameExpBottleEvent +public class MgExpBottleEvent extends AbstractMinigameEvent<ExpBottleEvent, MinigameExpBottleEvent> implements MinigameExpBottleEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java index 33d85324..01c49457 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgExplosionPrimeEvent extends AbstractMinigameEvent<ExplosionPrimeEvent> implements MinigameExplosionPrimeEvent +public class MgExplosionPrimeEvent extends AbstractMinigameEvent<ExplosionPrimeEvent, MinigameExplosionPrimeEvent> implements MinigameExplosionPrimeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java index 2074ca2a..b8edea01 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgFireworkExplodeEvent extends AbstractMinigameEvent<FireworkExplodeEvent> implements MinigameFireworkExplodeEvent +public class MgFireworkExplodeEvent extends AbstractMinigameEvent<FireworkExplodeEvent, MinigameFireworkExplodeEvent> implements MinigameFireworkExplodeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java index c8d8fd7f..573000df 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgFoodLevelChangeEvent extends AbstractMinigameEvent<FoodLevelChangeEvent> implements MinigameFoodLevelChangeEvent +public class MgFoodLevelChangeEvent extends AbstractMinigameEvent<FoodLevelChangeEvent, MinigameFoodLevelChangeEvent> implements MinigameFoodLevelChangeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java index 4201ba28..d55e206a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgFurnaceBurnEvent extends AbstractMinigameEvent<FurnaceBurnEvent> implements MinigameFurnaceBurnEvent +public class MgFurnaceBurnEvent extends AbstractMinigameEvent<FurnaceBurnEvent, MinigameFurnaceBurnEvent> implements MinigameFurnaceBurnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java index 23ca16ff..14a78f52 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgFurnaceSmeltEvent extends AbstractMinigameEvent<FurnaceSmeltEvent> implements MinigameFurnaceSmeltEvent +public class MgFurnaceSmeltEvent extends AbstractMinigameEvent<FurnaceSmeltEvent, MinigameFurnaceSmeltEvent> implements MinigameFurnaceSmeltEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java index b8f56356..16ca3715 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgHangingBreakByEntityEvent extends AbstractMinigameEvent<HangingBreakByEntityEvent> implements MinigameHangingBreakByEntityEvent +public class MgHangingBreakByEntityEvent extends AbstractMinigameEvent<HangingBreakByEntityEvent, MinigameHangingBreakByEntityEvent> implements MinigameHangingBreakByEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java index a3d6fd0f..a800c857 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgHangingBreakEvent extends AbstractMinigameEvent<HangingBreakEvent> implements MinigameHangingBreakEvent +public class MgHangingBreakEvent extends AbstractMinigameEvent<HangingBreakEvent, MinigameHangingBreakEvent> implements MinigameHangingBreakEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java index 3fc2114e..17aab56b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgHangingPlaceEvent extends AbstractMinigameEvent<HangingPlaceEvent> implements MinigameHangingPlaceEvent +public class MgHangingPlaceEvent extends AbstractMinigameEvent<HangingPlaceEvent, MinigameHangingPlaceEvent> implements MinigameHangingPlaceEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java index a4d7b2e5..5c197ea4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgHorseJumpEvent extends AbstractMinigameEvent<HorseJumpEvent> implements MinigameHorseJumpEvent +public class MgHorseJumpEvent extends AbstractMinigameEvent<HorseJumpEvent, MinigameHorseJumpEvent> implements MinigameHorseJumpEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java index 9c8c3b15..aea91e35 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickEvent> implements MinigameInventoryClickEvent +public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickEvent, MinigameInventoryClickEvent> implements MinigameInventoryClickEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java index 3483be5a..ffcf773b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryCloseEvent extends AbstractMinigameEvent<InventoryCloseEvent> implements MinigameInventoryCloseEvent +public class MgInventoryCloseEvent extends AbstractMinigameEvent<InventoryCloseEvent, MinigameInventoryCloseEvent> implements MinigameInventoryCloseEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java index d03b0a8f..3386ef0c 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryCreativeEvent extends AbstractMinigameEvent<InventoryCreativeEvent> implements MinigameInventoryCreativeEvent +public class MgInventoryCreativeEvent extends AbstractMinigameEvent<InventoryCreativeEvent, MinigameInventoryCreativeEvent> implements MinigameInventoryCreativeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java index 4eeaf3f7..e7c8481e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEvent> implements MinigameInventoryDragEvent +public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEvent, MinigameInventoryDragEvent> implements MinigameInventoryDragEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java index 35b28a88..2bb7d2f3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryEvent extends AbstractMinigameEvent<InventoryEvent> implements MinigameInventoryEvent +public class MgInventoryEvent extends AbstractMinigameEvent<InventoryEvent, MinigameInventoryEvent> implements MinigameInventoryEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java index 7d7a0ff8..d560b1e4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryInteractEvent extends AbstractMinigameEvent<InventoryInteractEvent> implements MinigameInventoryInteractEvent +public class MgInventoryInteractEvent extends AbstractMinigameEvent<InventoryInteractEvent, MinigameInventoryInteractEvent> implements MinigameInventoryInteractEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java index 4a7776ba..728f1dc0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryMoveItemEvent extends AbstractMinigameEvent<InventoryMoveItemEvent> implements MinigameInventoryMoveItemEvent +public class MgInventoryMoveItemEvent extends AbstractMinigameEvent<InventoryMoveItemEvent, MinigameInventoryMoveItemEvent> implements MinigameInventoryMoveItemEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java index 2d5961fd..83657b1d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryOpenEvent extends AbstractMinigameEvent<InventoryOpenEvent> implements MinigameInventoryOpenEvent +public class MgInventoryOpenEvent extends AbstractMinigameEvent<InventoryOpenEvent, MinigameInventoryOpenEvent> implements MinigameInventoryOpenEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java index a871c853..1bf86d26 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgInventoryPickupItemEvent extends AbstractMinigameEvent<InventoryPickupItemEvent> implements MinigameInventoryPickupItemEvent +public class MgInventoryPickupItemEvent extends AbstractMinigameEvent<InventoryPickupItemEvent, MinigameInventoryPickupItemEvent> implements MinigameInventoryPickupItemEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java index f8c52382..faa5dee2 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgItemDespawnEvent extends AbstractMinigameEvent<ItemDespawnEvent> implements MinigameItemDespawnEvent +public class MgItemDespawnEvent extends AbstractMinigameEvent<ItemDespawnEvent, MinigameItemDespawnEvent> implements MinigameItemDespawnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java index dc183643..859ba26e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgItemMergeEvent extends AbstractMinigameEvent<ItemMergeEvent> implements MinigameItemMergeEvent +public class MgItemMergeEvent extends AbstractMinigameEvent<ItemMergeEvent, MinigameItemMergeEvent> implements MinigameItemMergeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java index c26875ca..f9be0c74 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgItemSpawnEvent extends AbstractMinigameEvent<ItemSpawnEvent> implements MinigameItemSpawnEvent +public class MgItemSpawnEvent extends AbstractMinigameEvent<ItemSpawnEvent, MinigameItemSpawnEvent> implements MinigameItemSpawnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java index 1c37a437..88bb31db 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgLeavesDecayEvent extends AbstractMinigameEvent<LeavesDecayEvent> implements MinigameLeavesDecayEvent +public class MgLeavesDecayEvent extends AbstractMinigameEvent<LeavesDecayEvent, MinigameLeavesDecayEvent> implements MinigameLeavesDecayEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java index e15a16b5..bc74e405 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgLingeringPotionSplashEvent extends AbstractMinigameEvent<LingeringPotionSplashEvent> implements MinigameLingeringPotionSplashEvent +public class MgLingeringPotionSplashEvent extends AbstractMinigameEvent<LingeringPotionSplashEvent, MinigameLingeringPotionSplashEvent> implements MinigameLingeringPotionSplashEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java index 6ab653aa..430b25dc 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgNotePlayEvent extends AbstractMinigameEvent<NotePlayEvent> implements MinigameNotePlayEvent +public class MgNotePlayEvent extends AbstractMinigameEvent<NotePlayEvent, MinigameNotePlayEvent> implements MinigameNotePlayEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java index cd59b555..e814dcf3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPigZapEvent extends AbstractMinigameEvent<PigZapEvent> implements MinigamePigZapEvent +public class MgPigZapEvent extends AbstractMinigameEvent<PigZapEvent, MinigamePigZapEvent> implements MinigamePigZapEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java index 10727a77..05f40958 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerAchievementAwardedEvent extends AbstractMinigameEvent<PlayerAchievementAwardedEvent> implements MinigamePlayerAchievementAwardedEvent +public class MgPlayerAchievementAwardedEvent extends AbstractMinigameEvent<PlayerAchievementAwardedEvent, MinigamePlayerAchievementAwardedEvent> implements MinigamePlayerAchievementAwardedEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java index dd6d4247..83337140 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerAnimationEvent extends AbstractMinigameEvent<PlayerAnimationEvent> implements MinigamePlayerAnimationEvent +public class MgPlayerAnimationEvent extends AbstractMinigameEvent<PlayerAnimationEvent, MinigamePlayerAnimationEvent> implements MinigamePlayerAnimationEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java index 918ca74d..6e6a692d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerArmorStandManipulateEvent extends AbstractMinigameEvent<PlayerArmorStandManipulateEvent> implements MinigamePlayerArmorStandManipulateEvent +public class MgPlayerArmorStandManipulateEvent extends AbstractMinigameEvent<PlayerArmorStandManipulateEvent, MinigamePlayerArmorStandManipulateEvent> implements MinigamePlayerArmorStandManipulateEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java index 0b01515e..8192ed2c 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerBedEnterEvent extends AbstractMinigameEvent<PlayerBedEnterEvent> implements MinigamePlayerBedEnterEvent +public class MgPlayerBedEnterEvent extends AbstractMinigameEvent<PlayerBedEnterEvent, MinigamePlayerBedEnterEvent> implements MinigamePlayerBedEnterEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java index 9caf08b5..4ea1debc 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerBedLeaveEvent extends AbstractMinigameEvent<PlayerBedLeaveEvent> implements MinigamePlayerBedLeaveEvent +public class MgPlayerBedLeaveEvent extends AbstractMinigameEvent<PlayerBedLeaveEvent, MinigamePlayerBedLeaveEvent> implements MinigamePlayerBedLeaveEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java index 9689576a..63b13542 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerBucketEmptyEvent extends AbstractMinigameEvent<PlayerBucketEmptyEvent> implements MinigamePlayerBucketEmptyEvent +public class MgPlayerBucketEmptyEvent extends AbstractMinigameEvent<PlayerBucketEmptyEvent, MinigamePlayerBucketEmptyEvent> implements MinigamePlayerBucketEmptyEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java index 3db7bc75..32da099e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerBucketFillEvent extends AbstractMinigameEvent<PlayerBucketFillEvent> implements MinigamePlayerBucketFillEvent +public class MgPlayerBucketFillEvent extends AbstractMinigameEvent<PlayerBucketFillEvent, MinigamePlayerBucketFillEvent> implements MinigamePlayerBucketFillEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java index 39f3ce9f..932561ae 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerChangedMainHandEvent extends AbstractMinigameEvent<PlayerChangedMainHandEvent> implements MinigamePlayerChangedMainHandEvent +public class MgPlayerChangedMainHandEvent extends AbstractMinigameEvent<PlayerChangedMainHandEvent, MinigamePlayerChangedMainHandEvent> implements MinigamePlayerChangedMainHandEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java index 8576f60b..70f13f37 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerChangedWorldEvent extends AbstractMinigameEvent<PlayerChangedWorldEvent> implements MinigamePlayerChangedWorldEvent +public class MgPlayerChangedWorldEvent extends AbstractMinigameEvent<PlayerChangedWorldEvent, MinigamePlayerChangedWorldEvent> implements MinigamePlayerChangedWorldEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java index a627464b..368b305a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerChannelEvent extends AbstractMinigameEvent<PlayerChannelEvent> implements MinigamePlayerChannelEvent +public class MgPlayerChannelEvent extends AbstractMinigameEvent<PlayerChannelEvent, MinigamePlayerChannelEvent> implements MinigamePlayerChannelEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java index 96369ae8..e73690b5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerChatEvent extends AbstractMinigameEvent<PlayerChatEvent> implements MinigamePlayerChatEvent +public class MgPlayerChatEvent extends AbstractMinigameEvent<PlayerChatEvent, MinigamePlayerChatEvent> implements MinigamePlayerChatEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java index 11b89aec..131a7fd0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerChatTabCompleteEvent extends AbstractMinigameEvent<PlayerChatTabCompleteEvent> implements MinigamePlayerChatTabCompleteEvent +public class MgPlayerChatTabCompleteEvent extends AbstractMinigameEvent<PlayerChatTabCompleteEvent, MinigamePlayerChatTabCompleteEvent> implements MinigamePlayerChatTabCompleteEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java index 2210cec0..63b1603e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerCommandPreprocessEvent extends AbstractMinigameEvent<PlayerCommandPreprocessEvent> implements MinigamePlayerCommandPreprocessEvent +public class MgPlayerCommandPreprocessEvent extends AbstractMinigameEvent<PlayerCommandPreprocessEvent, MinigamePlayerCommandPreprocessEvent> implements MinigamePlayerCommandPreprocessEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java index 40b8f7cb..bf26f0a3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerDeathEvent extends AbstractMinigameEvent<PlayerDeathEvent> implements MinigamePlayerDeathEvent +public class MgPlayerDeathEvent extends AbstractMinigameEvent<PlayerDeathEvent, MinigamePlayerDeathEvent> implements MinigamePlayerDeathEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java index 06ccfa2a..1c5f7a34 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerDropItemEvent extends AbstractMinigameEvent<PlayerDropItemEvent> implements MinigamePlayerDropItemEvent +public class MgPlayerDropItemEvent extends AbstractMinigameEvent<PlayerDropItemEvent, MinigamePlayerDropItemEvent> implements MinigamePlayerDropItemEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java index 955aa224..79423316 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerEditBookEvent extends AbstractMinigameEvent<PlayerEditBookEvent> implements MinigamePlayerEditBookEvent +public class MgPlayerEditBookEvent extends AbstractMinigameEvent<PlayerEditBookEvent, MinigamePlayerEditBookEvent> implements MinigamePlayerEditBookEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java index ec2eb205..686010a0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerEggThrowEvent extends AbstractMinigameEvent<PlayerEggThrowEvent> implements MinigamePlayerEggThrowEvent +public class MgPlayerEggThrowEvent extends AbstractMinigameEvent<PlayerEggThrowEvent, MinigamePlayerEggThrowEvent> implements MinigamePlayerEggThrowEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java index 7374e7eb..8ac25127 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerExpChangeEvent extends AbstractMinigameEvent<PlayerExpChangeEvent> implements MinigamePlayerExpChangeEvent +public class MgPlayerExpChangeEvent extends AbstractMinigameEvent<PlayerExpChangeEvent, MinigamePlayerExpChangeEvent> implements MinigamePlayerExpChangeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java index b4163fff..84acc64d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerFishEvent extends AbstractMinigameEvent<PlayerFishEvent> implements MinigamePlayerFishEvent +public class MgPlayerFishEvent extends AbstractMinigameEvent<PlayerFishEvent, MinigamePlayerFishEvent> implements MinigamePlayerFishEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java index 5448c21f..a743bdee 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerGameModeChangeEvent extends AbstractMinigameEvent<PlayerGameModeChangeEvent> implements MinigamePlayerGameModeChangeEvent +public class MgPlayerGameModeChangeEvent extends AbstractMinigameEvent<PlayerGameModeChangeEvent, MinigamePlayerGameModeChangeEvent> implements MinigamePlayerGameModeChangeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java index 854817eb..daf2f582 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerInteractAtEntityEvent extends AbstractMinigameEvent<PlayerInteractAtEntityEvent> implements MinigamePlayerInteractAtEntityEvent +public class MgPlayerInteractAtEntityEvent extends AbstractMinigameEvent<PlayerInteractAtEntityEvent, MinigamePlayerInteractAtEntityEvent> implements MinigamePlayerInteractAtEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java index 5fa797e8..26d5e604 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerInteractEntityEvent extends AbstractMinigameEvent<PlayerInteractEntityEvent> implements MinigamePlayerInteractEntityEvent +public class MgPlayerInteractEntityEvent extends AbstractMinigameEvent<PlayerInteractEntityEvent, MinigamePlayerInteractEntityEvent> implements MinigamePlayerInteractEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java index eba1e4fc..9d407043 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerInteractEvent extends AbstractMinigameEvent<PlayerInteractEvent> implements MinigamePlayerInteractEvent +public class MgPlayerInteractEvent extends AbstractMinigameEvent<PlayerInteractEvent, MinigamePlayerInteractEvent> implements MinigamePlayerInteractEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java index 90d760e7..078e7031 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerInventoryEvent extends AbstractMinigameEvent<PlayerInventoryEvent> implements MinigamePlayerInventoryEvent +public class MgPlayerInventoryEvent extends AbstractMinigameEvent<PlayerInventoryEvent, MinigamePlayerInventoryEvent> implements MinigamePlayerInventoryEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java index d3c9d380..79a39f91 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerItemBreakEvent extends AbstractMinigameEvent<PlayerItemBreakEvent> implements MinigamePlayerItemBreakEvent +public class MgPlayerItemBreakEvent extends AbstractMinigameEvent<PlayerItemBreakEvent, MinigamePlayerItemBreakEvent> implements MinigamePlayerItemBreakEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java index 169a4461..b17a4d8d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerItemConsumeEvent extends AbstractMinigameEvent<PlayerItemConsumeEvent> implements MinigamePlayerItemConsumeEvent +public class MgPlayerItemConsumeEvent extends AbstractMinigameEvent<PlayerItemConsumeEvent, MinigamePlayerItemConsumeEvent> implements MinigamePlayerItemConsumeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java index 5f79e778..eb6c3cff 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerItemDamageEvent extends AbstractMinigameEvent<PlayerItemDamageEvent> implements MinigamePlayerItemDamageEvent +public class MgPlayerItemDamageEvent extends AbstractMinigameEvent<PlayerItemDamageEvent, MinigamePlayerItemDamageEvent> implements MinigamePlayerItemDamageEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java index d364a541..b05b0c85 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerItemHeldEvent extends AbstractMinigameEvent<PlayerItemHeldEvent> implements MinigamePlayerItemHeldEvent +public class MgPlayerItemHeldEvent extends AbstractMinigameEvent<PlayerItemHeldEvent, MinigamePlayerItemHeldEvent> implements MinigamePlayerItemHeldEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java index e13abfbc..ae69cfd7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerJoinEvent extends AbstractMinigameEvent<PlayerJoinEvent> implements MinigamePlayerJoinEvent +public class MgPlayerJoinEvent extends AbstractMinigameEvent<PlayerJoinEvent, MinigamePlayerJoinEvent> implements MinigamePlayerJoinEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java index 07c6f994..88562e7e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerKickEvent extends AbstractMinigameEvent<PlayerKickEvent> implements MinigamePlayerKickEvent +public class MgPlayerKickEvent extends AbstractMinigameEvent<PlayerKickEvent, MinigamePlayerKickEvent> implements MinigamePlayerKickEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java index ddefc707..0467dc6f 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerLeashEntityEvent extends AbstractMinigameEvent<PlayerLeashEntityEvent> implements MinigamePlayerLeashEntityEvent +public class MgPlayerLeashEntityEvent extends AbstractMinigameEvent<PlayerLeashEntityEvent, MinigamePlayerLeashEntityEvent> implements MinigamePlayerLeashEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java index 49a3b8bb..f40bdff5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerLevelChangeEvent extends AbstractMinigameEvent<PlayerLevelChangeEvent> implements MinigamePlayerLevelChangeEvent +public class MgPlayerLevelChangeEvent extends AbstractMinigameEvent<PlayerLevelChangeEvent, MinigamePlayerLevelChangeEvent> implements MinigamePlayerLevelChangeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java index 382f0733..3fe19d30 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerLoginEvent extends AbstractMinigameEvent<PlayerLoginEvent> implements MinigamePlayerLoginEvent +public class MgPlayerLoginEvent extends AbstractMinigameEvent<PlayerLoginEvent, MinigamePlayerLoginEvent> implements MinigamePlayerLoginEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java index ea1734c2..ac837f1a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerMoveEvent extends AbstractMinigameEvent<PlayerMoveEvent> implements MinigamePlayerMoveEvent +public class MgPlayerMoveEvent extends AbstractMinigameEvent<PlayerMoveEvent, MinigamePlayerMoveEvent> implements MinigamePlayerMoveEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java index d85f8880..26ea01b5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerPickupArrowEvent extends AbstractMinigameEvent<PlayerPickupArrowEvent> implements MinigamePlayerPickupArrowEvent +public class MgPlayerPickupArrowEvent extends AbstractMinigameEvent<PlayerPickupArrowEvent, MinigamePlayerPickupArrowEvent> implements MinigamePlayerPickupArrowEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java index 9f3a1fb1..8a4cc1f8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerPickupItemEvent extends AbstractMinigameEvent<PlayerPickupItemEvent> implements MinigamePlayerPickupItemEvent +public class MgPlayerPickupItemEvent extends AbstractMinigameEvent<PlayerPickupItemEvent, MinigamePlayerPickupItemEvent> implements MinigamePlayerPickupItemEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java index b20a5db9..ba8fec21 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerPortalEvent extends AbstractMinigameEvent<PlayerPortalEvent> implements MinigamePlayerPortalEvent +public class MgPlayerPortalEvent extends AbstractMinigameEvent<PlayerPortalEvent, MinigamePlayerPortalEvent> implements MinigamePlayerPortalEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java index 070aedca..c5992783 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerQuitEvent extends AbstractMinigameEvent<PlayerQuitEvent> implements MinigamePlayerQuitEvent +public class MgPlayerQuitEvent extends AbstractMinigameEvent<PlayerQuitEvent, MinigamePlayerQuitEvent> implements MinigamePlayerQuitEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java index 666d37e6..dc464cb1 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerRegisterChannelEvent extends AbstractMinigameEvent<PlayerRegisterChannelEvent> implements MinigamePlayerRegisterChannelEvent +public class MgPlayerRegisterChannelEvent extends AbstractMinigameEvent<PlayerRegisterChannelEvent, MinigamePlayerRegisterChannelEvent> implements MinigamePlayerRegisterChannelEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java index f3e00be4..f7dcfb67 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerResourcePackStatusEvent extends AbstractMinigameEvent<PlayerResourcePackStatusEvent> implements MinigamePlayerResourcePackStatusEvent +public class MgPlayerResourcePackStatusEvent extends AbstractMinigameEvent<PlayerResourcePackStatusEvent, MinigamePlayerResourcePackStatusEvent> implements MinigamePlayerResourcePackStatusEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java index a130e111..db3b0c9b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerRespawnEvent extends AbstractMinigameEvent<PlayerRespawnEvent> implements MinigamePlayerRespawnEvent +public class MgPlayerRespawnEvent extends AbstractMinigameEvent<PlayerRespawnEvent, MinigamePlayerRespawnEvent> implements MinigamePlayerRespawnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java index bd18f8d2..aa297e6d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerShearEntityEvent extends AbstractMinigameEvent<PlayerShearEntityEvent> implements MinigamePlayerShearEntityEvent +public class MgPlayerShearEntityEvent extends AbstractMinigameEvent<PlayerShearEntityEvent, MinigamePlayerShearEntityEvent> implements MinigamePlayerShearEntityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java index e23b197a..463d25c0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerSpawnLocationEvent extends AbstractMinigameEvent<PlayerSpawnLocationEvent> implements MinigamePlayerSpawnLocationEvent +public class MgPlayerSpawnLocationEvent extends AbstractMinigameEvent<PlayerSpawnLocationEvent, MinigamePlayerSpawnLocationEvent> implements MinigamePlayerSpawnLocationEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java index c968f3b3..4c322097 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerStatisticIncrementEvent extends AbstractMinigameEvent<PlayerStatisticIncrementEvent> implements MinigamePlayerStatisticIncrementEvent +public class MgPlayerStatisticIncrementEvent extends AbstractMinigameEvent<PlayerStatisticIncrementEvent, MinigamePlayerStatisticIncrementEvent> implements MinigamePlayerStatisticIncrementEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java index cd4b44b0..9b3001e7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerSwapHandItemsEvent extends AbstractMinigameEvent<PlayerSwapHandItemsEvent> implements MinigamePlayerSwapHandItemsEvent +public class MgPlayerSwapHandItemsEvent extends AbstractMinigameEvent<PlayerSwapHandItemsEvent, MinigamePlayerSwapHandItemsEvent> implements MinigamePlayerSwapHandItemsEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java index 76c5f5f0..1b824ef6 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerTeleportEvent extends AbstractMinigameEvent<PlayerTeleportEvent> implements MinigamePlayerTeleportEvent +public class MgPlayerTeleportEvent extends AbstractMinigameEvent<PlayerTeleportEvent, MinigamePlayerTeleportEvent> implements MinigamePlayerTeleportEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java index 0de6ae9c..5ec79664 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerToggleFlightEvent extends AbstractMinigameEvent<PlayerToggleFlightEvent> implements MinigamePlayerToggleFlightEvent +public class MgPlayerToggleFlightEvent extends AbstractMinigameEvent<PlayerToggleFlightEvent, MinigamePlayerToggleFlightEvent> implements MinigamePlayerToggleFlightEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java index 858aa90d..ca01a279 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerToggleSneakEvent extends AbstractMinigameEvent<PlayerToggleSneakEvent> implements MinigamePlayerToggleSneakEvent +public class MgPlayerToggleSneakEvent extends AbstractMinigameEvent<PlayerToggleSneakEvent, MinigamePlayerToggleSneakEvent> implements MinigamePlayerToggleSneakEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java index 7659b973..179ecadb 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerToggleSprintEvent extends AbstractMinigameEvent<PlayerToggleSprintEvent> implements MinigamePlayerToggleSprintEvent +public class MgPlayerToggleSprintEvent extends AbstractMinigameEvent<PlayerToggleSprintEvent, MinigamePlayerToggleSprintEvent> implements MinigamePlayerToggleSprintEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java index 8a63b679..6f675c30 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerUnregisterChannelEvent extends AbstractMinigameEvent<PlayerUnregisterChannelEvent> implements MinigamePlayerUnregisterChannelEvent +public class MgPlayerUnregisterChannelEvent extends AbstractMinigameEvent<PlayerUnregisterChannelEvent, MinigamePlayerUnregisterChannelEvent> implements MinigamePlayerUnregisterChannelEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java index 0d82ffec..fa60b1f5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPlayerVelocityEvent extends AbstractMinigameEvent<PlayerVelocityEvent> implements MinigamePlayerVelocityEvent +public class MgPlayerVelocityEvent extends AbstractMinigameEvent<PlayerVelocityEvent, MinigamePlayerVelocityEvent> implements MinigamePlayerVelocityEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java index 824d00bb..58a164c6 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPotionSplashEvent extends AbstractMinigameEvent<PotionSplashEvent> implements MinigamePotionSplashEvent +public class MgPotionSplashEvent extends AbstractMinigameEvent<PotionSplashEvent, MinigamePotionSplashEvent> implements MinigamePotionSplashEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java index a10ddb21..884412ca 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPrepareAnvilEvent extends AbstractMinigameEvent<PrepareAnvilEvent> implements MinigamePrepareAnvilEvent +public class MgPrepareAnvilEvent extends AbstractMinigameEvent<PrepareAnvilEvent, MinigamePrepareAnvilEvent> implements MinigamePrepareAnvilEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java index d3426c33..f13f1c32 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPrepareItemCraftEvent extends AbstractMinigameEvent<PrepareItemCraftEvent> implements MinigamePrepareItemCraftEvent +public class MgPrepareItemCraftEvent extends AbstractMinigameEvent<PrepareItemCraftEvent, MinigamePrepareItemCraftEvent> implements MinigamePrepareItemCraftEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java index ea3c2564..8cc17434 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgPrepareItemEnchantEvent extends AbstractMinigameEvent<PrepareItemEnchantEvent> implements MinigamePrepareItemEnchantEvent +public class MgPrepareItemEnchantEvent extends AbstractMinigameEvent<PrepareItemEnchantEvent, MinigamePrepareItemEnchantEvent> implements MinigamePrepareItemEnchantEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java index 095c37c3..adbb70db 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgProjectileHitEvent extends AbstractMinigameEvent<ProjectileHitEvent> implements MinigameProjectileHitEvent +public class MgProjectileHitEvent extends AbstractMinigameEvent<ProjectileHitEvent, MinigameProjectileHitEvent> implements MinigameProjectileHitEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java index 7e758d26..215d9606 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgProjectileLaunchEvent extends AbstractMinigameEvent<ProjectileLaunchEvent> implements MinigameProjectileLaunchEvent +public class MgProjectileLaunchEvent extends AbstractMinigameEvent<ProjectileLaunchEvent, MinigameProjectileLaunchEvent> implements MinigameProjectileLaunchEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java index b4ea252e..cc43f5d4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgSheepDyeWoolEvent extends AbstractMinigameEvent<SheepDyeWoolEvent> implements MinigameSheepDyeWoolEvent +public class MgSheepDyeWoolEvent extends AbstractMinigameEvent<SheepDyeWoolEvent, MinigameSheepDyeWoolEvent> implements MinigameSheepDyeWoolEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java index 244bb96d..0c4881a0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgSheepRegrowWoolEvent extends AbstractMinigameEvent<SheepRegrowWoolEvent> implements MinigameSheepRegrowWoolEvent +public class MgSheepRegrowWoolEvent extends AbstractMinigameEvent<SheepRegrowWoolEvent, MinigameSheepRegrowWoolEvent> implements MinigameSheepRegrowWoolEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java index a6982822..7c268244 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgSignChangeEvent extends AbstractMinigameEvent<SignChangeEvent> implements MinigameSignChangeEvent +public class MgSignChangeEvent extends AbstractMinigameEvent<SignChangeEvent, MinigameSignChangeEvent> implements MinigameSignChangeEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java index ca5747b2..44fbb143 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgSlimeSplitEvent extends AbstractMinigameEvent<SlimeSplitEvent> implements MinigameSlimeSplitEvent +public class MgSlimeSplitEvent extends AbstractMinigameEvent<SlimeSplitEvent, MinigameSlimeSplitEvent> implements MinigameSlimeSplitEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java index 739062af..140f52a3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgSpawnerSpawnEvent extends AbstractMinigameEvent<SpawnerSpawnEvent> implements MinigameSpawnerSpawnEvent +public class MgSpawnerSpawnEvent extends AbstractMinigameEvent<SpawnerSpawnEvent, MinigameSpawnerSpawnEvent> implements MinigameSpawnerSpawnEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java index 5686386d..980c5d05 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgVehicleBlockCollisionEvent extends AbstractMinigameEvent<VehicleBlockCollisionEvent> implements MinigameVehicleBlockCollisionEvent +public class MgVehicleBlockCollisionEvent extends AbstractMinigameEvent<VehicleBlockCollisionEvent, MinigameVehicleBlockCollisionEvent> implements MinigameVehicleBlockCollisionEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java index 134c3e22..4bc6b093 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgVehicleCreateEvent extends AbstractMinigameEvent<VehicleCreateEvent> implements MinigameVehicleCreateEvent +public class MgVehicleCreateEvent extends AbstractMinigameEvent<VehicleCreateEvent, MinigameVehicleCreateEvent> implements MinigameVehicleCreateEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java index fdc59425..4b80712a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgVehicleDamageEvent extends AbstractMinigameEvent<VehicleDamageEvent> implements MinigameVehicleDamageEvent +public class MgVehicleDamageEvent extends AbstractMinigameEvent<VehicleDamageEvent, MinigameVehicleDamageEvent> implements MinigameVehicleDamageEvent { /** diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java index 9e3f3902..73d059c8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgVehicleDestroyEvent extends AbstractMinigameEvent<VehicleDestroyEvent> implements MinigameVehicleDestroyEvent +public class MgVehicleDestroyEvent extends AbstractMinigameEvent<VehicleDestroyEvent, MinigameVehicleDestroyEvent> implements MinigameVehicleDestroyEvent { /** @@ -34,7 +34,7 @@ public class MgVehicleDestroyEvent extends AbstractMinigameEvent<VehicleDestroyE */ public MgVehicleDestroyEvent(VehicleDestroyEvent event) { - super(event, null); // TODO + super(event, null); // TODO Attacker } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java index de30a7dc..0d882eae 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleEnterEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleEnterEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +27,7 @@ * * @author mepeisen */ -public class MgVehicleEnterEvent extends AbstractMinigameEvent<VehicleEnterEvent> implements MinigameVehicleEnterEvent +public class MgVehicleEnterEvent extends AbstractMinigameEvent<VehicleEnterEvent, MinigameVehicleEnterEvent> implements MinigameVehicleEnterEvent { /** @@ -34,7 +36,7 @@ public class MgVehicleEnterEvent extends AbstractMinigameEvent<VehicleEnterEvent */ public MgVehicleEnterEvent(VehicleEnterEvent event) { - super(event, null); // TODO + super(event, (event.getEntered() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getEntered()) : null, event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java index 17eb9df9..500fe496 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleEntityCollisionEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +27,7 @@ * * @author mepeisen */ -public class MgVehicleEntityCollisionEvent extends AbstractMinigameEvent<VehicleEntityCollisionEvent> implements MinigameVehicleEntityCollisionEvent +public class MgVehicleEntityCollisionEvent extends AbstractMinigameEvent<VehicleEntityCollisionEvent, MinigameVehicleEntityCollisionEvent> implements MinigameVehicleEntityCollisionEvent { /** @@ -34,7 +36,7 @@ public class MgVehicleEntityCollisionEvent extends AbstractMinigameEvent<Vehicle */ public MgVehicleEntityCollisionEvent(VehicleEntityCollisionEvent event) { - super(event, null); // TODO + super(event, (event.getVehicle().getPassenger() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getVehicle().getPassenger()) : null, event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java index 66ed8e23..4ceed84a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleExitEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleExitEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +27,7 @@ * * @author mepeisen */ -public class MgVehicleExitEvent extends AbstractMinigameEvent<VehicleExitEvent> implements MinigameVehicleExitEvent +public class MgVehicleExitEvent extends AbstractMinigameEvent<VehicleExitEvent, MinigameVehicleExitEvent> implements MinigameVehicleExitEvent { /** @@ -34,7 +36,7 @@ public class MgVehicleExitEvent extends AbstractMinigameEvent<VehicleExitEvent> */ public MgVehicleExitEvent(VehicleExitEvent event) { - super(event, null); // TODO + super(event, (event.getExited() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getExited()) : null, event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java index 16dc4f31..f10d0327 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleMoveEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleMoveEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +27,7 @@ * * @author mepeisen */ -public class MgVehicleMoveEvent extends AbstractMinigameEvent<VehicleMoveEvent> implements MinigameVehicleMoveEvent +public class MgVehicleMoveEvent extends AbstractMinigameEvent<VehicleMoveEvent, MinigameVehicleMoveEvent> implements MinigameVehicleMoveEvent { /** @@ -34,7 +36,7 @@ public class MgVehicleMoveEvent extends AbstractMinigameEvent<VehicleMoveEvent> */ public MgVehicleMoveEvent(VehicleMoveEvent event) { - super(event, null); // TODO + super(event, (event.getVehicle().getPassenger() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getVehicle().getPassenger()) : null); // TODO from/to } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java index 34c5d2ec..88c6fe15 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleUpdateEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleUpdateEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -25,7 +27,7 @@ * * @author mepeisen */ -public class MgVehicleUpdateEvent extends AbstractMinigameEvent<VehicleUpdateEvent> implements MinigameVehicleUpdateEvent +public class MgVehicleUpdateEvent extends AbstractMinigameEvent<VehicleUpdateEvent, MinigameVehicleUpdateEvent> implements MinigameVehicleUpdateEvent { /** @@ -34,7 +36,7 @@ public class MgVehicleUpdateEvent extends AbstractMinigameEvent<VehicleUpdateEve */ public MgVehicleUpdateEvent(VehicleUpdateEvent event) { - super(event, null); // TODO + super(event, (event.getVehicle().getPassenger() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getVehicle().getPassenger()) : null, event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java index bd5f0169..2b7ea9de 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgVillagerAcquireTradeEvent extends AbstractMinigameEvent<VillagerAcquireTradeEvent> implements MinigameVillagerAcquireTradeEvent +public class MgVillagerAcquireTradeEvent extends AbstractMinigameEvent<VillagerAcquireTradeEvent, MinigameVillagerAcquireTradeEvent> implements MinigameVillagerAcquireTradeEvent { /** @@ -34,7 +34,7 @@ public class MgVillagerAcquireTradeEvent extends AbstractMinigameEvent<VillagerA */ public MgVillagerAcquireTradeEvent(VillagerAcquireTradeEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); // TODO how to get the player that trades? } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java index 6aaa212e..0ea0bb85 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java @@ -25,7 +25,7 @@ * * @author mepeisen */ -public class MgVillagerReplenishTradeEvent extends AbstractMinigameEvent<VillagerReplenishTradeEvent> implements MinigameVillagerReplenishTradeEvent +public class MgVillagerReplenishTradeEvent extends AbstractMinigameEvent<VillagerReplenishTradeEvent, MinigameVillagerReplenishTradeEvent> implements MinigameVillagerReplenishTradeEvent { /** @@ -34,7 +34,7 @@ public class MgVillagerReplenishTradeEvent extends AbstractMinigameEvent<Village */ public MgVillagerReplenishTradeEvent(VillagerReplenishTradeEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); // TODO how to get the player that trades? } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 41f90089..48f6d8d3 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -61,6 +61,7 @@ import com.github.mce.minigames.api.arena.rules.AdminRuleId; import com.github.mce.minigames.api.arena.rules.ArenaRuleId; import com.github.mce.minigames.api.arena.rules.MatchRuleId; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.arena.rules.PlayerRuleId; import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; import com.github.mce.minigames.api.cmd.CommandHandlerInterface; @@ -92,7 +93,6 @@ import com.github.mce.minigames.impl.context.DefaultResolver; import com.github.mce.minigames.impl.context.MinigameContextImpl; import com.github.mce.minigames.impl.context.MinigameInterfaceProvider; -import com.github.mce.minigames.impl.event.MgInventoryClickEvent; import com.github.mce.minigames.impl.gui.GuiSessionImpl; import com.github.mce.minigames.impl.nms.EventSystemInterface; import com.github.mce.minigames.impl.nms.NmsFactory; @@ -1243,6 +1243,7 @@ public void onInventoryClose(InventoryCloseEvent evt) * @param evt * inventory click event */ + @SuppressWarnings("cast") @EventHandler public void onInventoryClick(InventoryClickEvent evt) { @@ -1252,8 +1253,7 @@ public void onInventoryClick(InventoryClickEvent evt) final GuiSessionImpl session = (GuiSessionImpl) player.getGuiSession(); if (session != null) { - this.contextImpl.runInContext(new MgInventoryClickEvent(evt, player), () -> { - this.setContext(ArenaPlayerInterface.class, player); + this.contextImpl.runInContext((MinigameEvent<?, ?>) this.events.createEvent(evt), () -> { session.onClick(evt); }); } @@ -1358,5 +1358,15 @@ public ArenaTypeProvider getProviderFromMatch(MatchPhaseId phase) } return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getArenaFromLocation(org.bukkit.Location) + */ + @Override + public ArenaInterface getArenaFromLocation(Location location) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java index d64c00d8..b8399976 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java @@ -39,14 +39,10 @@ public ArenaInterface calculateFromCommand(CommandInterface command, MinigameCon return null; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromEvent(com.github.mce.minigames.api.arena.rules.MinigameEvent, com.github.mce.minigames.api.MinigameContext) - */ @Override - public ArenaInterface calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + public ArenaInterface calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) { - // TODO Auto-generated method stub - return null; + return event.getArena(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java index f8b47684..407d89b4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java @@ -36,14 +36,10 @@ public ArenaPlayerInterface calculateFromCommand(CommandInterface command, Minig return command.getPlayer(); } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromEvent(com.github.mce.minigames.api.arena.rules.MinigameEvent, com.github.mce.minigames.api.MinigameContext) - */ @Override - public ArenaPlayerInterface calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + public ArenaPlayerInterface calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) { - // TODO Auto-generated method stub - return null; + return event.getPlayer(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java index 9063d0ed..59c593a2 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java @@ -106,7 +106,7 @@ public void runInContext(CommandInterface command, Runnable runnable) * @param event * @param runnable */ - public void runInContext(MinigameEvent<?> event, Runnable runnable) + public void runInContext(MinigameEvent<?, ?> event, Runnable runnable) { final TLD old = this.tls.get(); final TLD tld = new TLD(); @@ -315,7 +315,7 @@ private static final class TLD extends HashMap<Class<?>, Object> /** the underlying command being executed. */ public CommandInterface command; /** the underlying event being executed. */ - public MinigameEvent<?> event; + public MinigameEvent<?, ?> event; /** stack of computes to detect endless loops. */ public Set<Class<?>> computeStack = new HashSet<>(); diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java index 4a53c496..ea8f64f6 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java @@ -39,14 +39,10 @@ public MinigameInterface calculateFromCommand(CommandInterface command, Minigame return null; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromEvent(com.github.mce.minigames.api.arena.rules.MinigameEvent, com.github.mce.minigames.api.MinigameContext) - */ @Override - public MinigameInterface calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + public MinigameInterface calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) { - // TODO Auto-generated method stub - return null; + return event.getMinigame(); } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java deleted file mode 100644 index 17fb51d2..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryClickEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.event; - -import org.bukkit.event.inventory.InventoryClickEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryClickEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * @author mepeisen - * - */ -public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickEvent> implements MinigameInventoryClickEvent -{ - - /** - * @param event - * @param player - */ - public MgInventoryClickEvent(InventoryClickEvent event, ArenaPlayerInterface player) - { - super(event, player); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java deleted file mode 100644 index ad0565fb..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/event/MgInventoryDragEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.event; - -import org.bukkit.event.inventory.InventoryDragEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryDragEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * @author mepeisen - * - */ -public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEvent> implements MinigameInventoryDragEvent -{ - - /** - * @param event - * @param player - */ - public MgInventoryDragEvent(InventoryDragEvent event, ArenaPlayerInterface player) - { - super(event, player); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 06da210d..4a597e77 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -296,7 +296,7 @@ public ContextStorage calculateFromCommand(CommandInterface command, MinigameCon } @Override - public ContextStorage calculateFromEvent(MinigameEvent<?> event, MinigameContext context) + public ContextStorage calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) { return new ContextStorage(); } From cdcef90740431ca2deca9375552ae30d51091590 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 9 Sep 2016 07:29:11 +0200 Subject: [PATCH 127/266] v2 --- .../bevents/MinigameAreaEffectCloudApplyEvent.java | 11 +++++++++++ .../rules/bevents/MinigameAsyncPlayerChatEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockBreakEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockBurnEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockCanBuildEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockDamageEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockDispenseEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockExpEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockExplodeEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockFadeEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockFormEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockFromToEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockGrowEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockIgniteEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockMultiPlaceEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockPhysicsEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockPistonExtendEvent.java | 11 +++++++++++ .../bevents/MinigameBlockPistonRetractEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockPlaceEvent.java | 11 +++++++++++ .../rules/bevents/MinigameBlockRedstoneEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameBlockSpreadEvent.java | 11 +++++++++++ .../api/arena/rules/bevents/MinigameBrewEvent.java | 11 +++++++++++ 22 files changed, 242 insertions(+) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java index 55301f34..e8b6ce41 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the clouds location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java index 8206d522..070e5413 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player sending chat message (author)</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameAsyncPlayerChatEvent extends MinigameEvent<AsyncPlayerChatEvent, MinigameAsyncPlayerChatEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java index 507efb42..48b3ffc3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player breaking the block</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player; if the player is not within arena passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockBreakEvent extends MinigameEvent<BlockBreakEvent, MinigameBlockBreakEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java index 84490305..b815944c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockBurnEvent extends MinigameEvent<BlockBurnEvent, MinigameBlockBurnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java index 8841e8ed..58465af2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the block location (=the block being built)</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockCanBuildEvent extends MinigameEvent<BlockCanBuildEvent, MinigameBlockCanBuildEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java index f5ea44b9..7688e133 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player causing the damage.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player; if the player is not within arena passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockDamageEvent extends MinigameEvent<BlockDamageEvent, MinigameBlockDamageEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java index 775b59ba..cdc7fa17 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from dispenser blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockDispenseEvent extends MinigameEvent<BlockDispenseEvent, MinigameBlockDispenseEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java index aef4c4ac..2ca2f3a4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockExpEvent extends MinigameEvent<BlockExpEvent, MinigameBlockExpEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java index 1f4895bd..646ca8fb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from exploding blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java index e196b86c..8cc7d3c3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockFadeEvent extends MinigameEvent<BlockFadeEvent, MinigameBlockFadeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java index fc20ddea..c70290ed 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockFormEvent extends MinigameEvent<BlockFormEvent, MinigameBlockFormEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java index 0b95f83d..86cd701d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location (TODO we have two blocks: From/To)</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockFromToEvent extends MinigameEvent<BlockFromToEvent, MinigameBlockFromToEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java index 3868ec2e..9ebd2744 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockGrowEvent extends MinigameEvent<BlockGrowEvent, MinigameBlockGrowEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java index ee8295a5..3a4969c1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported. (TODO Should we use the player if a player entity is ignite?)</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location (TODO how to respect the ignite block?)</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockIgniteEvent extends MinigameEvent<BlockIgniteEvent, MinigameBlockIgniteEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java index 0750392f..8ae4a0f2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player placing the blocks.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockMultiPlaceEvent extends MinigameEvent<BlockMultiPlaceEvent, MinigameBlockMultiPlaceEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java index a40f8439..a02505ae 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockPhysicsEvent extends MinigameEvent<BlockPhysicsEvent, MinigameBlockPhysicsEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java index b7671596..76c64665 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockPistonExtendEvent extends MinigameEvent<BlockPistonExtendEvent, MinigameBlockPistonExtendEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java index 74fa4c2b..f50bb4ec 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockPistonRetractEvent extends MinigameEvent<BlockPistonRetractEvent, MinigameBlockPistonRetractEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java index 59c2882b..4d74883c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player that places the block.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockPlaceEvent extends MinigameEvent<BlockPlaceEvent, MinigameBlockPlaceEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java index ef3c5235..93695a51 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockRedstoneEvent extends MinigameEvent<BlockRedstoneEvent, MinigameBlockRedstoneEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java index 402c787c..20d8d650 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBlockSpreadEvent extends MinigameEvent<BlockSpreadEvent, MinigameBlockSpreadEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java index e1760ea8..bc5174c1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameBrewEvent extends MinigameEvent<BrewEvent, MinigameBrewEvent> From b1e05d9d2dfede7457227d7f6aaee7df43ba3c34 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 10 Sep 2016 14:36:31 +0200 Subject: [PATCH 128/266] https://github.com/MysticCity/MinigamesAPI/issues/151 No more kill rewards for self-kills --- API/.project | 10 +++++----- .../com/comze_instancelabs/minigamesapi/Arena.java | 2 +- changelog.md | 4 ++++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/API/.project b/API/.project index 2e4ccd8f..b6e7de7d 100644 --- a/API/.project +++ b/API/.project @@ -10,6 +10,11 @@ <arguments> </arguments> </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> <buildCommand> <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> <triggers>auto,full,incremental,</triggers> @@ -20,11 +25,6 @@ </dictionary> </arguments> </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 4a24d811..8c42777c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -2089,7 +2089,7 @@ public void onEliminated(final String playername) if (this.lastdamager.containsKey(playername)) { final Player killer = Bukkit.getPlayer(this.lastdamager.get(playername)); - if (killer != null) + if (killer != null && !playername.equals(killer.getName())) { this.pli.getStatsInstance().addDeath(playername); this.temp_kill_count.put(killer.getName(), this.temp_kill_count.containsKey(killer.getName()) ? this.temp_kill_count.get(killer.getName()) + 1 : 1); diff --git a/changelog.md b/changelog.md index f3f4e550..471cbe7c 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,10 @@ #### 1.14.12/1.14.13 +###### All + +* No more kill rewards for self-kills + ###### BedWars * Added command "setupbeds" to help page From a7ea1fd828d6e8f27c3c501835d394cc86bbe5d2 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Sep 2016 08:55:25 +0200 Subject: [PATCH 129/266] Fixed NPE using spectator sign outside of arena --- .../minigamesapi/util/IconMenu.java | 13 ++++++++----- changelog.md | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java index 92787337..beafcbe4 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/IconMenu.java @@ -90,15 +90,18 @@ public int getSize() public void open(final Player player) { - final Inventory inventory = Bukkit.createInventory(player, this.size, this.name); - for (int i = 0; i < this.optionIcons.length; i++) + if (this.optionIcons != null && this.optionIcons.length > 0) { - if (this.optionIcons[i] != null) + final Inventory inventory = Bukkit.createInventory(player, this.size, this.name); + for (int i = 0; i < this.optionIcons.length; i++) { - inventory.setItem(i, this.optionIcons[i]); + if (this.optionIcons[i] != null) + { + inventory.setItem(i, this.optionIcons[i]); + } } + player.openInventory(inventory); } - player.openInventory(inventory); } public void destroy() diff --git a/changelog.md b/changelog.md index 471cbe7c..af6fbcf0 100644 --- a/changelog.md +++ b/changelog.md @@ -4,7 +4,8 @@ ###### All -* No more kill rewards for self-kills +* No more kill rewards for self-kills (https://github.com/MysticCity/MinigamesAPI/issues/11) +* Fixed NPE using spectator sign outside of arena (https://github.com/MysticCity/MinigamesAPI/issues/154) ###### BedWars From 1ea867c6b85a5864a609596defabcb22feb7bd94 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Sep 2016 19:12:24 +0200 Subject: [PATCH 130/266] v2 --- .../config/ConfigurationValueInterface.java | 6 +- .../util/function/MgLongToDoubleFunction.java | 2 +- .../ConfigurationValueInterfaceTest.java | 237 ++- .../api/test/arena/ArenaStateTest.java | 40 + .../test/util/function/MgBiConsumerTest.java | 59 + .../test/util/function/MgBiFunctionTest.java | 51 + .../test/util/function/MgBiPredicateTest.java | 84 + .../util/function/MgBinaryOperatorTest.java | 63 + .../test/util/function/MgComparatorTest.java | 665 +++++++ .../test/util/function/MgConsumerTest.java | 55 + .../util/function/MgDoubleConsumerTest.java | 54 + .../util/function/MgDoublePredicateTest.java | 84 + .../function/MgDoubleUnaryOperatorTest.java | 81 + .../test/util/function/MgFunctionTest.java | 80 + .../util/function/MgFunctionUtilsTest.java | 1652 +++++++++++++++++ .../test/util/function/MgIntConsumerTest.java | 55 + .../util/function/MgIntPredicateTest.java | 84 + .../util/function/MgIntUnaryOperatorTest.java | 82 + .../util/function/MgLongConsumerTest.java | 55 + .../util/function/MgLongPredicateTest.java | 84 + .../function/MgLongUnaryOperatorTest.java | 82 + .../test/util/function/MgPredicateTest.java | 116 ++ .../util/function/MgUnaryOperatorTest.java | 46 + 23 files changed, 3779 insertions(+), 38 deletions(-) create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index a6e0ead9..071683e2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -544,7 +544,7 @@ default String path() } throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ } - catch (NoSuchFieldException ex) + catch (Exception ex) { throw new IllegalStateException(ex); } @@ -587,7 +587,7 @@ default boolean isset(String path) } throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ } - catch (NoSuchFieldException ex) + catch (Exception ex) { throw new IllegalStateException(ex); } @@ -1940,7 +1940,7 @@ default String[] getKeys(boolean deep) final Set<String> result = minigame.getConfig(configs.file()).getConfigurationSection(path).getKeys(deep); return result.toArray(new String[result.size()]); } - catch (NoSuchFieldException ex) + catch (Exception ex) { throw new IllegalStateException(ex); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java index aa1da742..740d6654 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java @@ -35,6 +35,6 @@ public interface MgLongToDoubleFunction * @throws MinigameException * thrown on problems, f.e. networking errors. */ - int applyAsDouble(long value) throws MinigameException; + double applyAsDouble(long value) throws MinigameException; } diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java index c6ef6e0a..4b1f0518 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java @@ -23,8 +23,11 @@ import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; import static org.powermock.api.mockito.PowerMockito.when; +import java.lang.reflect.Constructor; import java.util.Arrays; import java.util.UUID; @@ -45,41 +48,7 @@ import org.powermock.reflect.Whitebox; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.config.Configurable; -import com.github.mce.minigames.api.config.ConfigurationBool; -import com.github.mce.minigames.api.config.ConfigurationBoolList; -import com.github.mce.minigames.api.config.ConfigurationByte; -import com.github.mce.minigames.api.config.ConfigurationByteList; -import com.github.mce.minigames.api.config.ConfigurationCharacter; -import com.github.mce.minigames.api.config.ConfigurationCharacterList; -import com.github.mce.minigames.api.config.ConfigurationColor; -import com.github.mce.minigames.api.config.ConfigurationColorList; -import com.github.mce.minigames.api.config.ConfigurationDouble; -import com.github.mce.minigames.api.config.ConfigurationDoubleList; -import com.github.mce.minigames.api.config.ConfigurationFloat; -import com.github.mce.minigames.api.config.ConfigurationFloatList; -import com.github.mce.minigames.api.config.ConfigurationInt; -import com.github.mce.minigames.api.config.ConfigurationIntList; -import com.github.mce.minigames.api.config.ConfigurationItemStack; -import com.github.mce.minigames.api.config.ConfigurationItemStackList; -import com.github.mce.minigames.api.config.ConfigurationLong; -import com.github.mce.minigames.api.config.ConfigurationLongList; -import com.github.mce.minigames.api.config.ConfigurationObject; -import com.github.mce.minigames.api.config.ConfigurationObjectList; -import com.github.mce.minigames.api.config.ConfigurationPlayer; -import com.github.mce.minigames.api.config.ConfigurationPlayerList; -import com.github.mce.minigames.api.config.ConfigurationSection; -import com.github.mce.minigames.api.config.ConfigurationShort; -import com.github.mce.minigames.api.config.ConfigurationShortList; -import com.github.mce.minigames.api.config.ConfigurationString; -import com.github.mce.minigames.api.config.ConfigurationStringList; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.config.ConfigurationValues; -import com.github.mce.minigames.api.config.ConfigurationVector; -import com.github.mce.minigames.api.config.ConfigurationVectorList; import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.test.player.ArenaPlayerInterfaceTest; /** * test case for {@link ConfigurationValueInterface} @@ -124,6 +93,29 @@ public String answer(InvocationOnMock invocation) throws Throwable when(this.server.getItemFactory()).thenReturn(itemFactory); } + /** + * Checks the save config call. + */ + @Test + public void saveConfigTest() + { + TestOptions.SomeByte1.saveConfig(); + + verify(this.config, times(1)).saveConfig("config.yml"); //$NON-NLS-1$ + } + + /** + * Invoke constructor for code coverage. + * @throws Exception thrown on exceptions + */ + @Test + public void constructorTest() throws Exception + { + final Constructor<?> ctor = Class.forName("com.github.mce.minigames.api.config.ConfigurationTool").getDeclaredConstructor(); //$NON-NLS-1$ + ctor.setAccessible(true); + ctor.newInstance(); + } + /** * Tests {@link ConfigurationValueInterface#isset()} */ @@ -524,9 +516,23 @@ public void getsetTest() TestOptions.SomeSection.setBooleanList(new boolean[]{true, false}, "BooleanList"); //$NON-NLS-1$ assertTrue(TestOptions.SomeSection.isset("BooleanList")); //$NON-NLS-1$ assertArrayEquals(new boolean[]{true, false}, TestOptions.SomeSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ + + assertFalse(TestOptions.SomeOtherSection.getBoolean("Boolean", false)); //$NON-NLS-1$ + assertFalse(TestOptions.SomeOtherSection.isset("Boolean")); //$NON-NLS-1$ + TestOptions.SomeOtherSection.setBoolean(true, "Boolean"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeOtherSection.isset("Boolean")); //$NON-NLS-1$ + assertTrue(TestOptions.SomeOtherSection.getBoolean("Boolean", false)); //$NON-NLS-1$ + + assertNull(TestOptions.SomeOtherSection.getBooleanList("BooleanList", null)); //$NON-NLS-1$ + assertArrayEquals(new boolean[]{true, true}, TestOptions.SomeOtherSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ + assertFalse(TestOptions.SomeOtherSection.isset("BooleanList")); //$NON-NLS-1$ + TestOptions.SomeOtherSection.setBooleanList(new boolean[]{true, false}, "BooleanList"); //$NON-NLS-1$ + assertTrue(TestOptions.SomeOtherSection.isset("BooleanList")); //$NON-NLS-1$ + assertArrayEquals(new boolean[]{true, false}, TestOptions.SomeOtherSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ //getKeys assertArrayEquals(new String[]{"Boolean", "BooleanList"}, TestOptions.SomeSection.getKeys(false)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"Boolean", "BooleanList"}, TestOptions.SomeOtherSection.getKeys(false)); //$NON-NLS-1$ //$NON-NLS-2$ // byte assertEquals(1, TestOptions.SomeSection.getByte("Byte", (byte) 1)); //$NON-NLS-1$ @@ -887,6 +893,169 @@ public void isXXTest() assertFalse(TestOptions.SomeVectorList.isVector()); } + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid1() + { + InvalidConfig.Invalid.getBoolean(); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid2() + { + InvalidConfig.Dummy.getBoolean(); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid3() + { + TestOptions.SomeDummy.getBoolean(); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid1b() + { + InvalidConfig.Invalid.setBoolean(true); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid2b() + { + InvalidConfig.Dummy.setBoolean(true); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid3b() + { + TestOptions.SomeDummy.setBoolean(true); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid1c() + { + InvalidConfig.Invalid.getKeys(false); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid2c() + { + InvalidConfig.Dummy.getKeys(false); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalid3c() + { + TestOptions.SomeDummy.getKeys(false); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalidField() + { + new InvalidConfig2().isBoolean(); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalidField2() + { + new InvalidConfig2().getKeys(false); + } + + /** + * Tests invalid config. + */ + @Test(expected = IllegalStateException.class) + public void testInvalidField3() + { + new InvalidConfig2().path(); + } + + /** + * Tests the list resetting + */ + @Test + public void testResettingList() + { + final ArenaPlayerInterface player1 = createPlayer(); + final ArenaPlayerInterface player2 = createPlayer(); + final ArenaPlayerInterface player3 = createPlayer(); + final ArenaPlayerInterface player4 = createPlayer(); + + TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{player3, player4}); + assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomePlayerList.getPlayerList()); + TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{player1, player2}); + assertArrayEquals(new ArenaPlayerInterface[]{player1, player2}, TestOptions.SomePlayerList.getPlayerList()); + TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{}); + assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomePlayerList.getPlayerList()); + + TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{player3, player4}, "PlayerList"); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{player1, player2}, "PlayerList"); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{player1, player2}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{}, "PlayerList"); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + + TestOptions.SomeOtherSection.setPlayerList(new ArenaPlayerInterface[]{player3, player4}, "PlayerList"); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomeOtherSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + TestOptions.SomeOtherSection.setPlayerList(new ArenaPlayerInterface[]{player1, player2}, "PlayerList"); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{player1, player2}, TestOptions.SomeOtherSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + TestOptions.SomeOtherSection.setPlayerList(new ArenaPlayerInterface[]{}, "PlayerList"); //$NON-NLS-1$ + assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeOtherSection.getPlayerList("PlayerList")); //$NON-NLS-1$ + } + + /** + * Some invalid config. + * @author mepeisen + */ + public static final class InvalidConfig2 implements ConfigurationValueInterface + { + // empty + } + + /** + * Some invalid config. + * @author mepeisen + */ + public static enum InvalidConfig implements ConfigurationValueInterface + { + /** invlid config. */ + Invalid, + /** dummy config. */ + @ConfigurationBool + Dummy + } + /** * Some test options */ diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java new file mode 100644 index 00000000..a363b153 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.arena; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaState; +import com.github.mce.minigames.api.test.SharedUtil; + +/** + * test case for {@link ArenaState} + * + * @author mepeisen + */ +public class ArenaStateTest +{ + + /** + * Tests the enum + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(ArenaState.class); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java new file mode 100644 index 00000000..11fa65a4 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java @@ -0,0 +1,59 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + aInt with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgBiConsumer; + +/** + * Tests case for {@link MgBiConsumer} + * + * @author mepeisen + */ +public class MgBiConsumerTest +{ + + /** + * Tests method {@link MgBiConsumer#andThen(MgBiConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final AtomicInteger result2 = new AtomicInteger(0); + final AtomicInteger result3 = new AtomicInteger(0); + final AtomicInteger result4 = new AtomicInteger(0); + final MgBiConsumer<Integer, Integer> func = (i, j) -> { result1.set(i); result2.set(j + 10); }; + final MgBiConsumer<Integer, Integer> func2 = (i, j) -> { result3.set(i + result1.get()); result4.set(j + result2.get()); }; + + func.andThen(func2).accept(5, 7); + + assertEquals(5, result1.get()); + assertEquals(17, result2.get()); + assertEquals(10, result3.get()); + assertEquals(24, result4.get()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java new file mode 100644 index 00000000..52aa1141 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + aInt with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgBiFunction; +import com.github.mce.minigames.api.util.function.MgFunction; + +/** + * Tests case for {@link MgBiFunction} + * + * @author mepeisen + */ +public class MgBiFunctionTest +{ + + /** + * Tests method {@link MgBiFunction#andThen(com.github.mce.minigames.api.util.function.MgFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final MgFunction<String, Integer> func = Integer::valueOf; + final MgBiFunction<String, String, String> biFunc = (a1, a2) -> a1.concat(a2); + + final MgBiFunction<String, String, Integer> biFunc2 = biFunc.andThen(func); + + assertEquals(10, biFunc2.apply("1", "0").intValue()); //$NON-NLS-1$ //$NON-NLS-2$ + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java new file mode 100644 index 00000000..3da2fcb1 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java @@ -0,0 +1,84 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgBiPredicate; + +/** + * Tests case for {@link MgBiPredicate} + * + * @author mepeisen + */ +public class MgBiPredicateTest +{ + + /** + * Tests method {@link MgBiPredicate#and(MgBiPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAnd() throws MinigameException + { + final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; + final MgBiPredicate<Integer, Integer> func2 = (i, j) -> i > 20 && j > 20; + + assertFalse(func.and(func2).test(15, 15)); + assertFalse(func2.and(func).test(15, 15)); + assertTrue(func.and(func2).test(25, 25)); + } + + /** + * Tests method {@link MgBiPredicate#or(MgBiPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testOr() throws MinigameException + { + final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; + final MgBiPredicate<Integer, Integer> func2 = (i, j) -> i < -10 && j < -10; + + assertTrue(func.or(func2).test(15, 15)); + assertTrue(func.or(func2).test(-15, -15)); + assertFalse(func.or(func2).test(5, 5)); + assertFalse(func.or(func2).test(-5, -5)); + } + + /** + * Tests method {@link MgBiPredicate#negate()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNegate() throws MinigameException + { + final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; + + assertFalse(func.negate().test(15, 15)); + assertTrue(func.negate().test(5, 5)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java new file mode 100644 index 00000000..28cd140c --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java @@ -0,0 +1,63 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgBinaryOperator; + +/** + * Tests case for {@link MgBinaryOperator} + * + * @author mepeisen + */ +public class MgBinaryOperatorTest +{ + + /** + * Tests method {@link MgBinaryOperator#minBy(com.github.mce.minigames.api.util.function.MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testMinBy() throws MinigameException + { + final MgBinaryOperator<Integer> func = MgBinaryOperator.minBy(Integer::compareTo); + assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(10), Integer.valueOf(20))); + assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(10), Integer.valueOf(10))); + } + + /** + * Tests method {@link MgBinaryOperator#maxBy(com.github.mce.minigames.api.util.function.MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testMaxBy() throws MinigameException + { + final MgBinaryOperator<Integer> func = MgBinaryOperator.maxBy(Integer::compareTo); + assertEquals(Integer.valueOf(20), func.apply(Integer.valueOf(10), Integer.valueOf(20))); + assertEquals(Integer.valueOf(20), func.apply(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(Integer.valueOf(20), func.apply(Integer.valueOf(20), Integer.valueOf(20))); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java new file mode 100644 index 00000000..3a34abb4 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java @@ -0,0 +1,665 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.test.SharedUtil; +import com.github.mce.minigames.api.util.function.MgComparator; +import com.google.common.util.concurrent.AtomicDouble; + +/** + * Tests case for {@link MgComparator} + * + * @author mepeisen + */ +public class MgComparatorTest +{ + + /** + * Tests method {@link MgComparator#reversed()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testReversed() throws MinigameException + { + final MgComparator<Integer> func = Integer::compareTo; + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.reversed().reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.reversed().reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + } + + /** + * Tests method {@link MgComparator#reverseOrder()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testReverseOrder() throws MinigameException + { + final MgComparator<Integer> func = MgComparator.reverseOrder(); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + } + + /** + * Tests method {@link MgComparator#naturalOrder()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNaturalOrder() throws MinigameException + { + final MgComparator<Integer> func = MgComparator.naturalOrder(); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + } + + /** + * Tests method {@link MgComparator#nullsFirst(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsFirst() throws MinigameException + { + final MgComparator<Integer> func = MgComparator.nullsFirst(MgComparator.naturalOrder()); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.compare(null, null)); + assertEquals(-1, func.compare(null, Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsLast(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsLast() throws MinigameException + { + final MgComparator<Integer> func = MgComparator.nullsLast(MgComparator.naturalOrder()); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.compare(null, null)); + assertEquals(1, func.compare(null, Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsFirst(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsFirst2() throws MinigameException + { + final MgComparator<Integer> func = MgComparator.nullsFirst(null); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.compare(null, null)); + assertEquals(-1, func.compare(null, Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsLast(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsLast2() throws MinigameException + { + final MgComparator<Integer> func = MgComparator.nullsLast(null); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.compare(null, null)); + assertEquals(1, func.compare(null, Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsFirst(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsFirst3() throws MinigameException + { + MgComparator<Integer> func = MgComparator.nullsFirst(MgComparator.naturalOrder()); + func = func.thenComparing(MgComparator.naturalOrder()); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.compare(null, null)); + assertEquals(-1, func.compare(null, Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsLast(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsLast3() throws MinigameException + { + MgComparator<Integer> func = MgComparator.nullsLast(MgComparator.naturalOrder()); + func = func.thenComparing(MgComparator.naturalOrder()); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); + + assertEquals(0, func.compare(null, null)); + assertEquals(1, func.compare(null, Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsFirst(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsFirst4() throws MinigameException + { + MgComparator<Integer> func = MgComparator.nullsFirst(null); + func = func.thenComparing(MgComparator.naturalOrder()); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.compare(null, null)); + assertEquals(-1, func.compare(null, Integer.valueOf(10))); + assertEquals(1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#nullsLast(MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNullsLast4() throws MinigameException + { + MgComparator<Integer> func = MgComparator.nullsLast(null); + func = func.thenComparing(MgComparator.naturalOrder()); + + assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); + + assertEquals(0, func.compare(null, null)); + assertEquals(1, func.compare(null, Integer.valueOf(10))); + assertEquals(-1, func.compare(Integer.valueOf(10), null)); + + assertEquals(0, func.reversed().compare(null, null)); + assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); + assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); + } + + /** + * Tests method {@link MgComparator#comparingLong(com.github.mce.minigames.api.util.function.MgToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testComparingLong() throws MinigameException + { + final MgComparator<AtomicLong> func = MgComparator.comparingLong((d) -> d.get()); + + assertEquals(0, func.compare(new AtomicLong(10), new AtomicLong(10))); + assertEquals(1, func.compare(new AtomicLong(20), new AtomicLong(10))); + assertEquals(-1, func.compare(new AtomicLong(10), new AtomicLong(20))); + + assertEquals(0, func.reversed().compare(new AtomicLong(10), new AtomicLong(10))); + assertEquals(-1, func.reversed().compare(new AtomicLong(20), new AtomicLong(10))); + assertEquals(1, func.reversed().compare(new AtomicLong(10), new AtomicLong(20))); + } + + /** + * Tests method {@link MgComparator#comparingInt(com.github.mce.minigames.api.util.function.MgToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testComparingInt() throws MinigameException + { + final MgComparator<AtomicInteger> func = MgComparator.comparingInt((d) -> d.get()); + + assertEquals(0, func.compare(new AtomicInteger(10), new AtomicInteger(10))); + assertEquals(1, func.compare(new AtomicInteger(20), new AtomicInteger(10))); + assertEquals(-1, func.compare(new AtomicInteger(10), new AtomicInteger(20))); + + assertEquals(0, func.reversed().compare(new AtomicInteger(10), new AtomicInteger(10))); + assertEquals(-1, func.reversed().compare(new AtomicInteger(20), new AtomicInteger(10))); + assertEquals(1, func.reversed().compare(new AtomicInteger(10), new AtomicInteger(20))); + } + + /** + * Tests method {@link MgComparator#comparingDouble(com.github.mce.minigames.api.util.function.MgToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testComparingDouble() throws MinigameException + { + final MgComparator<AtomicDouble> func = MgComparator.comparingDouble((d) -> d.get()); + + assertEquals(0, func.compare(new AtomicDouble(10), new AtomicDouble(10))); + assertEquals(1, func.compare(new AtomicDouble(20), new AtomicDouble(10))); + assertEquals(-1, func.compare(new AtomicDouble(10), new AtomicDouble(20))); + + assertEquals(0, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(10))); + assertEquals(-1, func.reversed().compare(new AtomicDouble(20), new AtomicDouble(10))); + assertEquals(1, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(20))); + } + + /** + * Tests method {@link MgComparator#comparing(com.github.mce.minigames.api.util.function.MgFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testComparing1() throws MinigameException + { + final MgComparator<AtomicDouble> func = MgComparator.comparing((d) -> d.get()); + + assertEquals(0, func.compare(new AtomicDouble(10), new AtomicDouble(10))); + assertEquals(1, func.compare(new AtomicDouble(20), new AtomicDouble(10))); + assertEquals(-1, func.compare(new AtomicDouble(10), new AtomicDouble(20))); + + assertEquals(0, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(10))); + assertEquals(-1, func.reversed().compare(new AtomicDouble(20), new AtomicDouble(10))); + assertEquals(1, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(20))); + } + + /** + * Tests method {@link MgComparator#comparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testComparing2() throws MinigameException + { + final MgComparator<AtomicDouble> func = MgComparator.comparing((d) -> d.get(), MgComparator.naturalOrder()); + + assertEquals(0, func.compare(new AtomicDouble(10), new AtomicDouble(10))); + assertEquals(1, func.compare(new AtomicDouble(20), new AtomicDouble(10))); + assertEquals(-1, func.compare(new AtomicDouble(10), new AtomicDouble(20))); + + assertEquals(0, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(10))); + assertEquals(-1, func.reversed().compare(new AtomicDouble(20), new AtomicDouble(10))); + assertEquals(1, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(20))); + } + + /** + * Tests method {@link MgComparator#thenComparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testThenComparing1() throws MinigameException + { + final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); + final MgComparator<FooInt> func2 = func.thenComparing((d) -> d.getB()); + + assertEquals(0, func2.compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(1, func2.compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(-1, func2.compare(new FooInt(10, 10), new FooInt(10, 20))); + + assertEquals(0, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(-1, func2.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(1, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); + } + + /** + * Tests method {@link MgComparator#thenComparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testThenComparing2() throws MinigameException + { + final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); + final MgComparator<FooInt> func2 = func.thenComparing((d) -> d.getB(), MgComparator.naturalOrder()); + + assertEquals(0, func2.compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(1, func2.compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(-1, func2.compare(new FooInt(10, 10), new FooInt(10, 20))); + + assertEquals(0, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(-1, func2.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(1, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); + } + + /** + * Tests method {@link MgComparator#thenComparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testThenComparing3() throws MinigameException + { + final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); + final MgComparator<FooInt> func2 = (d, e) -> Integer.compare(d.getB(), e.getB()); + final MgComparator<FooInt> func3 = func.thenComparing(func2); + + assertEquals(0, func3.compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(1, func3.compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(-1, func3.compare(new FooInt(10, 10), new FooInt(10, 20))); + assertEquals(1, func3.compare(new FooInt(20, 10), new FooInt(10, 10))); + assertEquals(-1, func3.compare(new FooInt(10, 10), new FooInt(20, 10))); + + assertEquals(0, func3.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(-1, func3.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(1, func3.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); + assertEquals(-1, func3.reversed().compare(new FooInt(20, 10), new FooInt(10, 10))); + assertEquals(1, func3.reversed().compare(new FooInt(10, 10), new FooInt(20, 10))); + } + + /** + * Tests method {@link MgComparator#thenComparingInt(com.github.mce.minigames.api.util.function.MgToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testThenComparingInt() throws MinigameException + { + final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); + final MgComparator<FooInt> func2 = func.thenComparingInt((d) -> d.getB()); + + assertEquals(0, func2.compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(1, func2.compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(-1, func2.compare(new FooInt(10, 10), new FooInt(10, 20))); + + assertEquals(0, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); + assertEquals(-1, func2.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); + assertEquals(1, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); + } + + /** + * Tests method {@link MgComparator#thenComparingLong(com.github.mce.minigames.api.util.function.MgToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testThenComparingLong() throws MinigameException + { + final MgComparator<FooLong> func = MgComparator.comparing((d) -> d.getA()); + final MgComparator<FooLong> func2 = func.thenComparingLong((d) -> d.getB()); + + assertEquals(0, func2.compare(new FooLong(10, 10), new FooLong(10, 10))); + assertEquals(1, func2.compare(new FooLong(10, 20), new FooLong(10, 10))); + assertEquals(-1, func2.compare(new FooLong(10, 10), new FooLong(10, 20))); + + assertEquals(0, func2.reversed().compare(new FooLong(10, 10), new FooLong(10, 10))); + assertEquals(-1, func2.reversed().compare(new FooLong(10, 20), new FooLong(10, 10))); + assertEquals(1, func2.reversed().compare(new FooLong(10, 10), new FooLong(10, 20))); + } + + /** + * Tests method {@link MgComparator#thenComparingDouble(com.github.mce.minigames.api.util.function.MgToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testThenComparingDouble() throws MinigameException + { + final MgComparator<FooDouble> func = MgComparator.comparing((d) -> d.getA()); + final MgComparator<FooDouble> func2 = func.thenComparingDouble((d) -> d.getB()); + + assertEquals(0, func2.compare(new FooDouble(10, 10), new FooDouble(10, 10))); + assertEquals(1, func2.compare(new FooDouble(10, 20), new FooDouble(10, 10))); + assertEquals(-1, func2.compare(new FooDouble(10, 10), new FooDouble(10, 20))); + + assertEquals(0, func2.reversed().compare(new FooDouble(10, 10), new FooDouble(10, 10))); + assertEquals(-1, func2.reversed().compare(new FooDouble(10, 20), new FooDouble(10, 10))); + assertEquals(1, func2.reversed().compare(new FooDouble(10, 10), new FooDouble(10, 20))); + } + + /** + * Tests the enums + */ + @Test + public void enumTest() + { + SharedUtil.testEnumClass(MgComparator.ReverseComparator.class); + SharedUtil.testEnumClass(MgComparator.NaturalOrderComparator.class); + } + + /** + * Helper class. + */ + private static final class FooInt + { + /** a value. */ + private final int a; + /** a value. */ + private final int b; + + /** + * Constructor + * @param a + * @param b + */ + public FooInt(int a, int b) + { + this.a = a; + this.b = b; + } + + /** + * @return the a + */ + public int getA() + { + return this.a; + } + + /** + * @return the b + */ + public int getB() + { + return this.b; + } + } + + /** + * Helper class. + */ + private static final class FooLong + { + /** a value. */ + private final long a; + /** a value. */ + private final long b; + + /** + * Constructor + * @param a + * @param b + */ + public FooLong(long a, long b) + { + this.a = a; + this.b = b; + } + + /** + * @return the a + */ + public long getA() + { + return this.a; + } + + /** + * @return the b + */ + public long getB() + { + return this.b; + } + } + + /** + * Helper class. + */ + private static final class FooDouble + { + /** a value. */ + private final double a; + /** a value. */ + private final double b; + + /** + * Constructor + * @param a + * @param b + */ + public FooDouble(double a, double b) + { + this.a = a; + this.b = b; + } + + /** + * @return the a + */ + public double getA() + { + return this.a; + } + + /** + * @return the b + */ + public double getB() + { + return this.b; + } + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java new file mode 100644 index 00000000..2aa7daa1 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + aInt with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgConsumer; + +/** + * Tests case for {@link MgConsumer} + * + * @author mepeisen + */ +public class MgConsumerTest +{ + + /** + * Tests method {@link MgConsumer#andThen(MgConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final AtomicInteger result2 = new AtomicInteger(0); + final MgConsumer<Integer> func = (l) -> result1.set(l); + final MgConsumer<Integer> func2 = (l) -> result2.set(l + result1.get()); + + func.andThen(func2).accept(5); + + assertEquals(5, result1.get()); + assertEquals(10, result2.get()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java new file mode 100644 index 00000000..84a0a294 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + aDouble with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgDoubleConsumer; +import com.google.common.util.concurrent.AtomicDouble; + +/** + * Tests case for {@link MgDoubleConsumer} + * + * @author mepeisen + */ +public class MgDoubleConsumerTest +{ + + /** + * Tests method {@link MgDoubleConsumer#andThen(MgDoubleConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicDouble result1 = new AtomicDouble(0); + final AtomicDouble result2 = new AtomicDouble(0); + final MgDoubleConsumer func = (l) -> result1.set(l); + final MgDoubleConsumer func2 = (l) -> result2.set(l + result1.get()); + + func.andThen(func2).accept(5); + + assertEquals(5, result1.get(), 0); + assertEquals(10, result2.get(), 0); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java new file mode 100644 index 00000000..3ee920fc --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java @@ -0,0 +1,84 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgDoublePredicate; + +/** + * Tests case for {@link MgDoublePredicate} + * + * @author mepeisen + */ +public class MgDoublePredicateTest +{ + + /** + * Tests method {@link MgDoublePredicate#and(MgDoublePredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAnd() throws MinigameException + { + final MgDoublePredicate func = (l) -> l > 10; + final MgDoublePredicate func2 = (l) -> l > 20; + + assertFalse(func.and(func2).test(15)); + assertFalse(func2.and(func).test(15)); + assertTrue(func.and(func2).test(25)); + } + + /** + * Tests method {@link MgDoublePredicate#or(MgDoublePredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testOr() throws MinigameException + { + final MgDoublePredicate func = (l) -> l > 10; + final MgDoublePredicate func2 = (l) -> l < -10; + + assertTrue(func.or(func2).test(15)); + assertTrue(func.or(func2).test(-15)); + assertFalse(func.or(func2).test(5)); + assertFalse(func.or(func2).test(-5)); + } + + /** + * Tests method {@link MgDoublePredicate#negate()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNegate() throws MinigameException + { + final MgDoublePredicate func = (l) -> l > 10; + + assertFalse(func.negate().test(15)); + assertTrue(func.negate().test(5)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java new file mode 100644 index 00000000..96e46971 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java @@ -0,0 +1,81 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator; +import com.google.common.util.concurrent.AtomicDouble; + +/** + * Tests case for {@link MgDoubleUnaryOperator} + * + * @author mepeisen + */ +public class MgDoubleUnaryOperatorTest +{ + + /** + * Tests method {@link MgDoubleUnaryOperator#compose(MgDoubleUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testCompose() throws MinigameException + { + final AtomicDouble result1 = new AtomicDouble(0); + final MgDoubleUnaryOperator func = (l) -> l * 2; + final MgDoubleUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; + + assertEquals(24, func.compose(func2).applyAsDouble(4), 0); + assertEquals(4, result1.get(), 0); + } + + /** + * Tests method {@link MgDoubleUnaryOperator#andThen(MgDoubleUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicDouble result1 = new AtomicDouble(0); + final MgDoubleUnaryOperator func = (l) -> l * 2; + final MgDoubleUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; + + assertEquals(24, func.andThen(func2).applyAsDouble(4), 0); + assertEquals(8, result1.get(), 0); + } + + /** + * Tests method {@link MgDoubleUnaryOperator#identity()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIdentity() throws MinigameException + { + final MgDoubleUnaryOperator func = MgDoubleUnaryOperator.identity(); + assertEquals(10, func.applyAsDouble(10), 0); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java new file mode 100644 index 00000000..8c3896c1 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java @@ -0,0 +1,80 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + aInt with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgFunction; + +/** + * Tests case for {@link MgFunction} + * + * @author mepeisen + */ +public class MgFunctionTest +{ + + /** + * Tests method {@link MgFunction#andThen(com.github.mce.minigames.api.util.function.MgFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final MgFunction<String, Integer> func = Integer::valueOf; + final MgFunction<String, String> func2 = (a1) -> a1.concat("0"); //$NON-NLS-1$ + + final MgFunction<String, Integer> func3 = func2.andThen(func); + + assertEquals(10, func3.apply("1").intValue()); //$NON-NLS-1$ + } + + /** + * Tests method {@link MgFunction#compose(MgFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testCompose() throws MinigameException + { + final MgFunction<String, Integer> func = Integer::valueOf; + final MgFunction<String, String> func2 = (a1) -> a1.concat("0"); //$NON-NLS-1$ + + final MgFunction<String, Integer> func3 = func.compose(func2); + + assertEquals(10, func3.apply("1").intValue()); //$NON-NLS-1$ + } + + /** + * Tests method {@link MgFunction#identity()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIdentity() throws MinigameException + { + final MgFunction<Integer, Integer> func = MgFunction.identity(); + assertEquals(10, func.apply(10).intValue()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java new file mode 100644 index 00000000..20ba962e --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java @@ -0,0 +1,1652 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +import org.junit.Test; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgBiConsumer; +import com.github.mce.minigames.api.util.function.MgBiFunction; +import com.github.mce.minigames.api.util.function.MgBiPredicate; +import com.github.mce.minigames.api.util.function.MgBinaryOperator; +import com.github.mce.minigames.api.util.function.MgBooleanSupplier; +import com.github.mce.minigames.api.util.function.MgComparator; +import com.github.mce.minigames.api.util.function.MgConsumer; +import com.github.mce.minigames.api.util.function.MgDoubleBinaryOperator; +import com.github.mce.minigames.api.util.function.MgDoubleConsumer; +import com.github.mce.minigames.api.util.function.MgDoubleFunction; +import com.github.mce.minigames.api.util.function.MgDoublePredicate; +import com.github.mce.minigames.api.util.function.MgDoubleSupplier; +import com.github.mce.minigames.api.util.function.MgDoubleToIntFunction; +import com.github.mce.minigames.api.util.function.MgDoubleToLongFunction; +import com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator; +import com.github.mce.minigames.api.util.function.MgFunction; +import com.github.mce.minigames.api.util.function.MgFunctionUtils; +import com.github.mce.minigames.api.util.function.MgIntBinaryOperator; +import com.github.mce.minigames.api.util.function.MgIntConsumer; +import com.github.mce.minigames.api.util.function.MgIntFunction; +import com.github.mce.minigames.api.util.function.MgIntPredicate; +import com.github.mce.minigames.api.util.function.MgIntSupplier; +import com.github.mce.minigames.api.util.function.MgIntToDoubleFunction; +import com.github.mce.minigames.api.util.function.MgIntToLongFunction; +import com.github.mce.minigames.api.util.function.MgIntUnaryOperator; +import com.github.mce.minigames.api.util.function.MgLongBinaryOperator; +import com.github.mce.minigames.api.util.function.MgLongConsumer; +import com.github.mce.minigames.api.util.function.MgLongFunction; +import com.github.mce.minigames.api.util.function.MgLongPredicate; +import com.github.mce.minigames.api.util.function.MgLongSupplier; +import com.github.mce.minigames.api.util.function.MgLongToDoubleFunction; +import com.github.mce.minigames.api.util.function.MgLongToIntFunction; +import com.github.mce.minigames.api.util.function.MgLongUnaryOperator; +import com.github.mce.minigames.api.util.function.MgObjDoubleConsumer; +import com.github.mce.minigames.api.util.function.MgObjIntConsumer; +import com.github.mce.minigames.api.util.function.MgObjLongConsumer; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.api.util.function.MgSupplier; +import com.github.mce.minigames.api.util.function.MgToDoubleBiFunction; +import com.github.mce.minigames.api.util.function.MgToDoubleFunction; +import com.github.mce.minigames.api.util.function.MgToIntBiFunction; +import com.github.mce.minigames.api.util.function.MgToIntFunction; +import com.github.mce.minigames.api.util.function.MgToLongBiFunction; +import com.github.mce.minigames.api.util.function.MgToLongFunction; +import com.github.mce.minigames.api.util.function.MgUnaryOperator; +import com.google.common.util.concurrent.AtomicDouble; + +/** + * Tests case for {@link MgFunctionUtils} + * + * @author mepeisen + */ +public class MgFunctionUtilsTest +{ + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testBiConsumerOk() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final AtomicInteger result2 = new AtomicInteger(0); + final MgBiConsumer<Integer, Integer> func = (i, j) -> { result1.set(i); result2.set(j + 10); }; + + MgFunctionUtils.wrap(func).accept(5, 7); + + assertEquals(5, result1.get()); + assertEquals(17, result2.get()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testBiConsumerFailed() throws MinigameException + { + final MgBiConsumer<Integer, Integer> func = (i, j) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(5, 7); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testBiFunctionOk() throws MinigameException + { + final MgBiFunction<String, String, String> func = (a1, a2) -> a1.concat(a2); + + assertEquals("10", MgFunctionUtils.wrap(func).apply("1", "0")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testBiFunctionFailed() throws MinigameException + { + final MgBiFunction<String, String, String> func = (a1, a2) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply("1", "0"); //$NON-NLS-1$ //$NON-NLS-2$ + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testBinaryOperatorOk() throws MinigameException + { + final MgBinaryOperator<Integer> func = MgBinaryOperator.minBy(Integer::compareTo); + + assertEquals(Integer.valueOf(10), MgFunctionUtils.wrap(func).apply(Integer.valueOf(10), Integer.valueOf(20))); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testBinaryOperatorFailed() throws MinigameException + { + final MgBinaryOperator<Integer> func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply(Integer.valueOf(10), Integer.valueOf(20)); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testBiPredicateOk() throws MinigameException + { + final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; + + assertTrue(MgFunctionUtils.wrap(func).test(15, 15)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testBiPredicateFailed() throws MinigameException + { + final MgBiPredicate<Integer, Integer> func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).test(15, 15); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBooleanSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testBooleanSupplierOk() throws MinigameException + { + final MgBooleanSupplier func = () -> true; + + assertTrue(MgFunctionUtils.wrap(func).getAsBoolean()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBooleanSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testBooleanSupplierFailed() throws MinigameException + { + final MgBooleanSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).getAsBoolean(); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testComparatorOk() throws MinigameException + { + final MgComparator<Integer> func = Integer::compareTo; + + assertEquals(0, MgFunctionUtils.wrap(func).compare(Integer.valueOf(10), Integer.valueOf(10))); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgComparator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testComparatorFailed() throws MinigameException + { + final MgComparator<Integer> func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).compare(Integer.valueOf(10), Integer.valueOf(10)); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testConsumerOk() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final MgConsumer<Integer> func = (l) -> result1.set(l); + + MgFunctionUtils.wrap(func).accept(10); + assertEquals(10, result1.get()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testConsumerFailed() throws MinigameException + { + final MgConsumer<Integer> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleConsumerOk() throws MinigameException + { + final AtomicDouble result1 = new AtomicDouble(0); + final MgDoubleConsumer func = (l) -> result1.set(l); + + MgFunctionUtils.wrap(func).accept(10); + assertEquals(10, result1.get(), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleConsumerFailed() throws MinigameException + { + final MgDoubleConsumer func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntConsumerOk() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final MgIntConsumer func = (l) -> result1.set(l); + + MgFunctionUtils.wrap(func).accept(10); + assertEquals(10, result1.get()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntConsumerFailed() throws MinigameException + { + final MgIntConsumer func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongConsumerOk() throws MinigameException + { + final AtomicLong result1 = new AtomicLong(0); + final MgLongConsumer func = (l) -> result1.set(l); + + MgFunctionUtils.wrap(func).accept(10); + assertEquals(10, result1.get()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongConsumerFailed() throws MinigameException + { + final MgLongConsumer func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleFunctionOk() throws MinigameException + { + final MgDoubleFunction<Long> func = (d) -> Math.round(d); + + assertEquals(10, MgFunctionUtils.wrap(func).apply(9.5d).longValue()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleFunctionFailed() throws MinigameException + { + final MgDoubleFunction<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleSupplierOk() throws MinigameException + { + final MgDoubleSupplier func = () -> 9.5d; + + assertEquals(9.5d, MgFunctionUtils.wrap(func).getAsDouble(), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleSupplierFailed() throws MinigameException + { + final MgDoubleSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).getAsDouble(); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoublePredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoublePredicateOk() throws MinigameException + { + final MgDoublePredicate func = (d) -> d == 9.5d; + + assertTrue(MgFunctionUtils.wrap(func).test(9.5)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoublePredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoublePredicateFailed() throws MinigameException + { + final MgDoublePredicate func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).test(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleToIntFunctionOk() throws MinigameException + { + final MgDoubleToIntFunction func = (d) -> (int) Math.round(d); + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsInt(9.5d)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleToIntFunctionFailed() throws MinigameException + { + final MgDoubleToIntFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsInt(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleToLongFunctionOk() throws MinigameException + { + final MgDoubleToLongFunction func = (d) -> Math.round(d); + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(9.5d)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleToLongFunctionFailed() throws MinigameException + { + final MgDoubleToLongFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsLong(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleUnaryOperatorOk() throws MinigameException + { + final MgDoubleUnaryOperator func = (d) -> Math.round(d); + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsDouble(9.5d), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleUnaryOperatorFailed() throws MinigameException + { + final MgDoubleUnaryOperator func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsDouble(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testDoubleBinaryOperatorOk() throws MinigameException + { + final MgDoubleBinaryOperator func = (d, e) -> d + e; + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testDoubleBinaryOperatorFailed() throws MinigameException + { + final MgDoubleBinaryOperator func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testFunctionOk() throws MinigameException + { + final MgFunction<Double, Double> func = (d) -> (double) Math.round(d); + + assertEquals(10, MgFunctionUtils.wrap(func).apply(9.5d), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testFunctionFailed() throws MinigameException + { + final MgFunction<Double, Double> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntFunctionOk() throws MinigameException + { + final MgIntFunction<Long> func = (d) -> (long) d; + + assertEquals(10, MgFunctionUtils.wrap(func).apply(10).longValue()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntFunctionFailed() throws MinigameException + { + final MgIntFunction<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntSupplierOk() throws MinigameException + { + final MgIntSupplier func = () -> 10; + + assertEquals(10, MgFunctionUtils.wrap(func).getAsInt()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntSupplierFailed() throws MinigameException + { + final MgIntSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).getAsInt(); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntPredicateOk() throws MinigameException + { + final MgIntPredicate func = (d) -> d == 10; + + assertTrue(MgFunctionUtils.wrap(func).test(10)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntPredicateFailed() throws MinigameException + { + final MgIntPredicate func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).test(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntToDoubleFunctionOk() throws MinigameException + { + final MgIntToDoubleFunction func = (d) -> d + 0.5d; + + assertEquals(9.5d, MgFunctionUtils.wrap(func).applyAsDouble(9), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntToDoubleFunctionFailed() throws MinigameException + { + final MgIntToDoubleFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsDouble(9); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntToLongFunctionOk() throws MinigameException + { + final MgIntToLongFunction func = (d) -> d; + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(10)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntToLongFunctionFailed() throws MinigameException + { + final MgIntToLongFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsLong(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntUnaryOperatorOk() throws MinigameException + { + final MgIntUnaryOperator func = (d) -> d + 1; + + assertEquals(11, MgFunctionUtils.wrap(func).applyAsInt(10)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntUnaryOperatorFailed() throws MinigameException + { + final MgIntUnaryOperator func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsInt(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIntBinaryOperatorOk() throws MinigameException + { + final MgIntBinaryOperator func = (d, e) -> d + e; + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsInt(9, 1)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testIntBinaryOperatorFailed() throws MinigameException + { + final MgIntBinaryOperator func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsInt(9, 1); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongFunctionOk() throws MinigameException + { + final MgLongFunction<Long> func = (d) -> (long) d; + + assertEquals(10, MgFunctionUtils.wrap(func).apply(10).longValue()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongFunctionFailed() throws MinigameException + { + final MgLongFunction<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongSupplierOk() throws MinigameException + { + final MgLongSupplier func = () -> 10; + + assertEquals(10, MgFunctionUtils.wrap(func).getAsLong()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongSupplierFailed() throws MinigameException + { + final MgLongSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).getAsLong(); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongPredicateOk() throws MinigameException + { + final MgLongPredicate func = (d) -> d == 10; + + assertTrue(MgFunctionUtils.wrap(func).test(10)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongPredicateFailed() throws MinigameException + { + final MgLongPredicate func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).test(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongToDoubleFunctionOk() throws MinigameException + { + final MgLongToDoubleFunction func = (d) -> d + 0.5d; + + assertEquals(9.5d, MgFunctionUtils.wrap(func).applyAsDouble(9), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongToDoubleFunctionFailed() throws MinigameException + { + final MgLongToDoubleFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsDouble(9); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongToLongFunctionOk() throws MinigameException + { + final MgLongToIntFunction func = (d) -> (int) d; + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsInt(10)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongToLongFunctionFailed() throws MinigameException + { + final MgLongToIntFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsInt(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongUnaryOperatorOk() throws MinigameException + { + final MgLongUnaryOperator func = (d) -> d + 1; + + assertEquals(11, MgFunctionUtils.wrap(func).applyAsLong(10)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongUnaryOperatorFailed() throws MinigameException + { + final MgLongUnaryOperator func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsLong(10); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testLongBinaryOperatorOk() throws MinigameException + { + final MgLongBinaryOperator func = (d, e) -> d + e; + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(9, 1)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongBinaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testLongBinaryOperatorFailed() throws MinigameException + { + final MgLongBinaryOperator func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsLong(9, 1); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testPredicateOk() throws MinigameException + { + final MgPredicate<Double> func = (d) -> d == 9.5d; + + assertTrue(MgFunctionUtils.wrap(func).test(9.5)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testPredicateFailed() throws MinigameException + { + final MgPredicate<Double> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).test(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testSupplierOk() throws MinigameException + { + final MgSupplier<Double> func = () -> 9.5d; + + assertEquals(9.5d, MgFunctionUtils.wrap(func).get(), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testSupplierFailed() throws MinigameException + { + final MgSupplier<Double> func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).get(); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToDoubleFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testToDoubleFunctionOk() throws MinigameException + { + final MgToDoubleFunction<Double> func = (d) -> d; + + assertEquals(9.5d, MgFunctionUtils.wrap(func).applyAsDouble(9.5d), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testToDoubleFunctionFailed() throws MinigameException + { + final MgToDoubleFunction<Double> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsDouble(9.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToIntFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testToIntFunctionOk() throws MinigameException + { + final MgToIntFunction<Integer> func = (d) -> d; + + assertEquals(9, MgFunctionUtils.wrap(func).applyAsInt(9)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testToIntFunctionFailed() throws MinigameException + { + final MgToIntFunction<Integer> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsInt(9); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToLongFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testToLongFunctionOk() throws MinigameException + { + final MgToLongFunction<Long> func = (d) -> d; + + assertEquals(9, MgFunctionUtils.wrap(func).applyAsLong(9l)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testToLongFunctionFailed() throws MinigameException + { + final MgToLongFunction<Long> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsLong(9l); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToDoubleBiFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testToDoubleBiFunctionOk() throws MinigameException + { + final MgToDoubleBiFunction<Double, Double> func = (d, e) -> d + e; + + assertEquals(10d, MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testToDoubleBiFunctionFailed() throws MinigameException + { + final MgToDoubleBiFunction<Double, Double> func = (d, e) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToIntBiFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testToIntBiFunctionOk() throws MinigameException + { + final MgToIntBiFunction<Integer, Integer> func = (d, e) -> d + e; + + assertEquals(9, MgFunctionUtils.wrap(func).applyAsInt(8, 1)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testToIntBiFunctionFailed() throws MinigameException + { + final MgToIntBiFunction<Integer, Integer> func = (d, e) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsInt(9, 1); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToLongBiFunction)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testToLongBiFunctionOk() throws MinigameException + { + final MgToLongBiFunction<Long, Long> func = (d, e) -> d + e; + + assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(9l, 1l)); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testToLongBiFunctionFailed() throws MinigameException + { + final MgToLongBiFunction<Long, Long> func = (d,e) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).applyAsLong(9l, 1l); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgObjDoubleConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testObjDoubleConsumerOk() throws MinigameException + { + final MgObjDoubleConsumer<AtomicDouble> func = (a, d) -> a.set(d + a.get()); + final AtomicDouble val = new AtomicDouble(9d); + MgFunctionUtils.wrap(func).accept(val, 0.5d); + + assertEquals(9.5d, val.get(), 0); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testObjDoubleConsumerFailed() throws MinigameException + { + final MgObjDoubleConsumer<AtomicDouble> func = (a, d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(new AtomicDouble(), 0.5d); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgObjIntConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testObjIntConsumerOk() throws MinigameException + { + final MgObjIntConsumer<AtomicInteger> func = (a, d) -> a.set(d + a.get()); + final AtomicInteger val = new AtomicInteger(9); + MgFunctionUtils.wrap(func).accept(val, 1); + + assertEquals(10, val.get()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testObjIntConsumerFailed() throws MinigameException + { + final MgObjIntConsumer<AtomicInteger> func = (a, d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(new AtomicInteger(), 1); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgObjLongConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testObjLongConsumerOk() throws MinigameException + { + final MgObjLongConsumer<AtomicLong> func = (a, d) -> a.set(d + a.get()); + final AtomicLong val = new AtomicLong(9); + MgFunctionUtils.wrap(func).accept(val, 1); + + assertEquals(10, val.get()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testObjLongConsumerFailed() throws MinigameException + { + final MgObjLongConsumer<AtomicLong> func = (a, d) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).accept(new AtomicLong(), 1); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testUnaryOperatorOk() throws MinigameException + { + final MgUnaryOperator<Long> func = (a) -> a + 1; + + assertEquals(10, MgFunctionUtils.wrap(func).apply(9l).longValue()); + } + + /** + * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test(expected = MinigameException.class) + public void testUnaryOperatorFailed() throws MinigameException + { + final MgUnaryOperator<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; + + try + { + MgFunctionUtils.wrap(func).apply(9l); + } + catch (MgFunctionUtils.WrappedException ex) + { + throw ex.unwrap(); + } + } + + /** + * Constructor test for code coverage + */ + @SuppressWarnings("unused") + @Test + public void testConstructor() + { + new MgFunctionUtils(); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java new file mode 100644 index 00000000..8f34cb47 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + aInt with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgIntConsumer; + +/** + * Tests case for {@link MgIntConsumer} + * + * @author mepeisen + */ +public class MgIntConsumerTest +{ + + /** + * Tests method {@link MgIntConsumer#andThen(MgIntConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final AtomicInteger result2 = new AtomicInteger(0); + final MgIntConsumer func = (l) -> result1.set(l); + final MgIntConsumer func2 = (l) -> result2.set(l + result1.get()); + + func.andThen(func2).accept(5); + + assertEquals(5, result1.get()); + assertEquals(10, result2.get()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java new file mode 100644 index 00000000..62c67eb2 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java @@ -0,0 +1,84 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgIntPredicate; + +/** + * Tests case for {@link MgIntPredicate} + * + * @author mepeisen + */ +public class MgIntPredicateTest +{ + + /** + * Tests method {@link MgIntPredicate#and(MgIntPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAnd() throws MinigameException + { + final MgIntPredicate func = (l) -> l > 10; + final MgIntPredicate func2 = (l) -> l > 20; + + assertFalse(func.and(func2).test(15)); + assertFalse(func2.and(func).test(15)); + assertTrue(func.and(func2).test(25)); + } + + /** + * Tests method {@link MgIntPredicate#or(MgIntPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testOr() throws MinigameException + { + final MgIntPredicate func = (l) -> l > 10; + final MgIntPredicate func2 = (l) -> l < -10; + + assertTrue(func.or(func2).test(15)); + assertTrue(func.or(func2).test(-15)); + assertFalse(func.or(func2).test(5)); + assertFalse(func.or(func2).test(-5)); + } + + /** + * Tests method {@link MgIntPredicate#negate()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNegate() throws MinigameException + { + final MgIntPredicate func = (l) -> l > 10; + + assertFalse(func.negate().test(15)); + assertTrue(func.negate().test(5)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java new file mode 100644 index 00000000..86431520 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java @@ -0,0 +1,82 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgIntUnaryOperator; + +/** + * Tests case for {@link MgIntUnaryOperator} + * + * @author mepeisen + */ +public class MgIntUnaryOperatorTest +{ + + /** + * Tests method {@link MgIntUnaryOperator#compose(MgIntUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testCompose() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final MgIntUnaryOperator func = (l) -> l * 2; + final MgIntUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; + + assertEquals(24, func.compose(func2).applyAsInt(4)); + assertEquals(4, result1.get()); + } + + /** + * Tests method {@link MgIntUnaryOperator#andThen(MgIntUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicInteger result1 = new AtomicInteger(0); + final MgIntUnaryOperator func = (l) -> l * 2; + final MgIntUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; + + assertEquals(24, func.andThen(func2).applyAsInt(4)); + assertEquals(8, result1.get()); + } + + /** + * Tests method {@link MgIntUnaryOperator#identity()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIdentity() throws MinigameException + { + final MgIntUnaryOperator func = MgIntUnaryOperator.identity(); + assertEquals(10, func.applyAsInt(10)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java new file mode 100644 index 00000000..c7d7433d --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicLong; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgLongConsumer; + +/** + * Tests case for {@link MgLongConsumer} + * + * @author mepeisen + */ +public class MgLongConsumerTest +{ + + /** + * Tests method {@link MgLongConsumer#andThen(MgLongConsumer)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicLong result1 = new AtomicLong(0); + final AtomicLong result2 = new AtomicLong(0); + final MgLongConsumer func = (l) -> result1.set(l); + final MgLongConsumer func2 = (l) -> result2.set(l + result1.get()); + + func.andThen(func2).accept(5); + + assertEquals(5, result1.get()); + assertEquals(10, result2.get()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java new file mode 100644 index 00000000..9cc9f5ae --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java @@ -0,0 +1,84 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgLongPredicate; + +/** + * Tests case for {@link MgLongPredicate} + * + * @author mepeisen + */ +public class MgLongPredicateTest +{ + + /** + * Tests method {@link MgLongPredicate#and(MgLongPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAnd() throws MinigameException + { + final MgLongPredicate func = (l) -> l > 10; + final MgLongPredicate func2 = (l) -> l > 20; + + assertFalse(func.and(func2).test(15)); + assertFalse(func2.and(func).test(15)); + assertTrue(func.and(func2).test(25)); + } + + /** + * Tests method {@link MgLongPredicate#or(MgLongPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testOr() throws MinigameException + { + final MgLongPredicate func = (l) -> l > 10; + final MgLongPredicate func2 = (l) -> l < -10; + + assertTrue(func.or(func2).test(15)); + assertTrue(func.or(func2).test(-15)); + assertFalse(func.or(func2).test(5)); + assertFalse(func.or(func2).test(-5)); + } + + /** + * Tests method {@link MgLongPredicate#negate()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNegate() throws MinigameException + { + final MgLongPredicate func = (l) -> l > 10; + + assertFalse(func.negate().test(15)); + assertTrue(func.negate().test(5)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java new file mode 100644 index 00000000..ef54e962 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java @@ -0,0 +1,82 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import java.util.concurrent.atomic.AtomicLong; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgLongUnaryOperator; + +/** + * Tests case for {@link MgLongUnaryOperator} + * + * @author mepeisen + */ +public class MgLongUnaryOperatorTest +{ + + /** + * Tests method {@link MgLongUnaryOperator#compose(MgLongUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testCompose() throws MinigameException + { + final AtomicLong result1 = new AtomicLong(0); + final MgLongUnaryOperator func = (l) -> l * 2; + final MgLongUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; + + assertEquals(24, func.compose(func2).applyAsLong(4)); + assertEquals(4, result1.get()); + } + + /** + * Tests method {@link MgLongUnaryOperator#andThen(MgLongUnaryOperator)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAndThen() throws MinigameException + { + final AtomicLong result1 = new AtomicLong(0); + final MgLongUnaryOperator func = (l) -> l * 2; + final MgLongUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; + + assertEquals(24, func.andThen(func2).applyAsLong(4)); + assertEquals(8, result1.get()); + } + + /** + * Tests method {@link MgLongUnaryOperator#identity()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIdentity() throws MinigameException + { + final MgLongUnaryOperator func = MgLongUnaryOperator.identity(); + assertEquals(10, func.applyAsLong(10)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java new file mode 100644 index 00000000..98a34979 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java @@ -0,0 +1,116 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgPredicate; + +/** + * Tests case for {@link MgPredicate} + * + * @author mepeisen + */ +public class MgPredicateTest +{ + + /** + * Tests method {@link MgPredicate#and(MgPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testAnd() throws MinigameException + { + final MgPredicate<Integer> func = (l) -> l > 10; + final MgPredicate<Integer> func2 = (l) -> l > 20; + + assertFalse(func.and(func2).test(15)); + assertFalse(func2.and(func).test(15)); + assertTrue(func.and(func2).test(25)); + } + + /** + * Tests method {@link MgPredicate#or(MgPredicate)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testOr() throws MinigameException + { + final MgPredicate<Integer> func = (l) -> l > 10; + final MgPredicate<Integer> func2 = (l) -> l < -10; + + assertTrue(func.or(func2).test(15)); + assertTrue(func.or(func2).test(-15)); + assertFalse(func.or(func2).test(5)); + assertFalse(func.or(func2).test(-5)); + } + + /** + * Tests method {@link MgPredicate#negate()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testNegate() throws MinigameException + { + final MgPredicate<Integer> func = (l) -> l > 10; + + assertFalse(func.negate().test(15)); + assertTrue(func.negate().test(5)); + } + + /** + * Tests method {@link MgPredicate#isEqual(Object)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIsEqual() throws MinigameException + { + final MgPredicate<Integer> func = MgPredicate.isEqual(10); + + assertFalse(func.test(15)); + assertTrue(func.test(10)); + } + + /** + * Tests method {@link MgPredicate#isEqual(Object)} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIsEqualNull() throws MinigameException + { + final MgPredicate<Integer> func = MgPredicate.isEqual(null); + final MgPredicate<Integer> func2 = MgPredicate.isEqual(10); + + assertTrue(func.test(null)); + assertFalse(func.test(10)); + assertFalse(func2.test(null)); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java new file mode 100644 index 00000000..8489a82f --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java @@ -0,0 +1,46 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.util.function; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.util.function.MgUnaryOperator; + +/** + * Tests case for {@link MgUnaryOperator} + * + * @author mepeisen + */ +public class MgUnaryOperatorTest +{ + + /** + * Tests method {@link MgUnaryOperator#identity()} + * + * @throws MinigameException + * thrown on errors. + */ + @Test + public void testIdentity() throws MinigameException + { + final MgUnaryOperator<Integer> func = MgUnaryOperator.identity(); + assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(10))); + } + +} From 4878803da5798ce5535c5ed767a97a42c0dd0f6f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 13 Sep 2016 18:35:36 +0200 Subject: [PATCH 131/266] v2 --- .../bevents/MinigameCauldronLevelChangeEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameCraftItemEvent.java | 11 +++++++++++ .../rules/bevents/MinigameCreatureSpawnEvent.java | 11 +++++++++++ .../rules/bevents/MinigameCreeperPowerEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameEnchantItemEvent.java | 11 +++++++++++ .../bevents/MinigameEnderDragonChangePhaseEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityBlockFormEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityBreakDoorEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameEntityBreedEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityChangeBlockEvent.java | 11 +++++++++++ .../bevents/MinigameEntityCombustByBlockEvent.java | 11 +++++++++++ .../bevents/MinigameEntityCombustByEntityEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityCombustEvent.java | 11 +++++++++++ .../bevents/MinigameEntityCreatePortalEvent.java | 11 +++++++++++ .../bevents/MinigameEntityDamageByBlockEvent.java | 11 +++++++++++ .../bevents/MinigameEntityDamageByEntityEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityDamageEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameEntityDeathEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityExplodeEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityInteractEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityPortalEnterEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityPortalEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityPortalExitEvent.java | 11 +++++++++++ .../bevents/MinigameEntityRegainHealthEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityShootBowEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameEntitySpawnEvent.java | 11 +++++++++++ .../arena/rules/bevents/MinigameEntityTameEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityTargetEvent.java | 11 +++++++++++ .../MinigameEntityTargetLivingEntityEvent.java | 11 +++++++++++ .../rules/bevents/MinigameEntityTeleportEvent.java | 11 +++++++++++ 30 files changed, 330 insertions(+) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java index 4176e80f..932947ae 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java index f3044aa0..fa51bff6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameCraftItemEvent extends MinigameEvent<CraftItemEvent, MinigameCraftItemEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java index 2915dd5b..3ce64c12 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supprted.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from spawn location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameCreatureSpawnEvent extends MinigameEvent<CreatureSpawnEvent, MinigameCreatureSpawnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java index b4ac9f0d..dce5e59d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from creeper location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameCreeperPowerEvent extends MinigameEvent<CreeperPowerEvent, MinigameCreeperPowerEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java index dea7ace8..62c2a970 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player causing the event.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEnchantItemEvent extends MinigameEvent<EnchantItemEvent, MinigameEnchantItemEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java index b7ab90f4..20461cfc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from ender dragon location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java index ded2a095..a3dacb8d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityBlockFormEvent extends MinigameEvent<EntityBlockFormEvent, MinigameEntityBlockFormEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java index 9fa0786a..8adf7394 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player breaking the door (if it is a player).</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from door location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityBreakDoorEvent extends MinigameEvent<EntityBreakDoorEvent, MinigameEntityBreakDoorEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java index f327f047..908bf4e3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the player is the breeder.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from child entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java index 06276d88..73255bb3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityChangeBlockEvent extends MinigameEvent<EntityChangeBlockEvent, MinigameEntityChangeBlockEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java index 969e6985..cbcbd213 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the player is the target entity.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from target entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityCombustByBlockEvent extends MinigameEvent<EntityCombustByBlockEvent, MinigameEntityCombustByBlockEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java index a4424499..7e90f394 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the player is the target entity.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from target entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityCombustByEntityEvent extends MinigameEvent<EntityCombustByEntityEvent, MinigameEntityCombustByEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java index 34e94548..d6563dbc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player is the target entity.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from target entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityCombustEvent extends MinigameEvent<EntityCombustEvent, MinigameEntityCombustEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java index 27aeb8a9..6e0662ef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player is the portal creator.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from portal location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityCreatePortalEvent extends MinigameEvent<EntityCreatePortalEvent, MinigameEntityCreatePortalEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java index 626a41e7..4a3e2db8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the target entity is a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from target entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityDamageByBlockEvent extends MinigameEvent<EntityDamageByBlockEvent, MinigameEntityDamageByBlockEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java index d3d2947c..283d2c71 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the target entity is a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from target entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityDamageByEntityEvent extends MinigameEvent<EntityDamageByEntityEvent, MinigameEntityDamageByEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java index e7091f47..faef09b5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the target entity is a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from target entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityDamageEvent extends MinigameEvent<EntityDamageEvent, MinigameEntityDamageEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java index b6c8582f..732aa7d7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityDeathEvent extends MinigameEvent<EntityDeathEvent, MinigameEntityDeathEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java index 813d5f35..6575c671 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from explosion location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityExplodeEvent extends MinigameEvent<EntityExplodeEvent, MinigameEntityExplodeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java index dba2fe3b..8594c99e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from target block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityInteractEvent extends MinigameEvent<EntityInteractEvent, MinigameEntityInteractEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java index 70b77b78..9e949278 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityPortalEnterEvent extends MinigameEvent<EntityPortalEnterEvent, MinigameEntityPortalEnterEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java index 15f5de13..86115ae0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location (TODO we have two blocks: From/To)</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityPortalEvent extends MinigameEvent<EntityPortalEvent, MinigameEntityPortalEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java index b5258015..c4dabe3c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityPortalExitEvent extends MinigameEvent<EntityPortalExitEvent, MinigameEntityPortalExitEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java index 7ff7893d..f662a1e4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityRegainHealthEvent extends MinigameEvent<EntityRegainHealthEvent, MinigameEntityRegainHealthEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java index 4dad1ec0..1de9d886 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the shooter is a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityShootBowEvent extends MinigameEvent<EntityShootBowEvent, MinigameEntityShootBowEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java index 5efbe83a..f49cd9c0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from spawn location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntitySpawnEvent extends MinigameEvent<EntitySpawnEvent, MinigameEntitySpawnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java index 2ef55345..852c8f14 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the tamer.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityTameEvent extends MinigameEvent<EntityTameEvent, MinigameEntityTameEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java index 321c14ac..850fa14a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the player is the target.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityTargetEvent extends MinigameEvent<EntityTargetEvent, MinigameEntityTargetEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java index 3ea82aaa..d30e5578 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the player is the target.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityTargetLivingEntityEvent extends MinigameEvent<EntityTargetLivingEntityEvent, MinigameEntityTargetLivingEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java index 26123f5c..bdb91859 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location (TODO we have two blocks: From/To)</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityTeleportEvent extends MinigameEvent<EntityTeleportEvent, MinigameEntityTeleportEvent> From d4b923ae6bdefe1d68eb5019982015444a6625fe Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 15 Sep 2016 09:50:07 +0200 Subject: [PATCH 132/266] v2 --- .../MinigameEntityToggleGlideEvent.java | 11 + .../bevents/MinigameEntityUnleashEvent.java | 11 + .../rules/bevents/MinigameExpBottleEvent.java | 11 + .../bevents/MinigameExplosionPrimeEvent.java | 11 + .../bevents/MinigameFireworkExplodeEvent.java | 11 + .../bevents/MinigameFoodLevelChangeEvent.java | 11 + .../bevents/MinigameFurnaceBurnEvent.java | 11 + .../bevents/MinigameFurnaceSmeltEvent.java | 11 + .../MinigameHangingBreakByEntityEvent.java | 11 + .../bevents/MinigameHangingBreakEvent.java | 11 + .../bevents/MinigameHangingPlaceEvent.java | 11 + .../rules/bevents/MinigameHorseJumpEvent.java | 11 + .../bevents/MinigameInventoryClickEvent.java | 11 + .../bevents/MinigameInventoryCloseEvent.java | 11 + .../MinigameInventoryCreativeEvent.java | 11 + .../bevents/MinigameInventoryDragEvent.java | 11 + .../rules/bevents/MinigameInventoryEvent.java | 11 + .../MinigameInventoryInteractEvent.java | 11 + .../MinigameInventoryMoveItemEvent.java | 11 + .../bevents/MinigameInventoryOpenEvent.java | 11 + .../MinigameInventoryPickupItemEvent.java | 11 + .../bevents/MinigameItemDespawnEvent.java | 11 + .../rules/bevents/MinigameItemMergeEvent.java | 11 + .../rules/bevents/MinigameItemSpawnEvent.java | 11 + .../bevents/MinigameLeavesDecayEvent.java | 11 + .../MinigameLingeringPotionSplashEvent.java | 11 + .../rules/bevents/MinigameNotePlayEvent.java | 11 + .../rules/bevents/MinigamePigZapEvent.java | 11 + ...MinigamePlayerAchievementAwardedEvent.java | 11 + .../bevents/MinigamePlayerAnimationEvent.java | 11 + ...nigamePlayerArmorStandManipulateEvent.java | 11 + .../bevents/MinigamePlayerBedEnterEvent.java | 11 + .../bevents/MinigamePlayerBedLeaveEvent.java | 11 + .../MinigamePlayerBucketEmptyEvent.java | 11 + .../MinigamePlayerBucketFillEvent.java | 11 + .../MinigamePlayerChangedMainHandEvent.java | 11 + .../MinigamePlayerChangedWorldEvent.java | 11 + .../bevents/MinigamePlayerChannelEvent.java | 11 + .../bevents/MinigamePlayerChatEvent.java | 11 + .../MinigamePlayerChatTabCompleteEvent.java | 11 + .../MinigamePlayerCommandPreprocessEvent.java | 11 + .../bevents/MinigamePlayerDeathEvent.java | 11 + .../bevents/MinigamePlayerDropItemEvent.java | 11 + .../bevents/MinigamePlayerEditBookEvent.java | 11 + .../bevents/MinigamePlayerEggThrowEvent.java | 11 + .../bevents/MinigamePlayerExpChangeEvent.java | 11 + .../bevents/MinigamePlayerFishEvent.java | 11 + .../MinigamePlayerGameModeChangeEvent.java | 11 + .../MinigamePlayerInteractAtEntityEvent.java | 11 + .../MinigamePlayerInteractEntityEvent.java | 11 + .../bevents/MinigamePlayerInteractEvent.java | 11 + .../bevents/MinigamePlayerInventoryEvent.java | 11 + .../bevents/MinigamePlayerItemBreakEvent.java | 11 + .../MinigamePlayerItemConsumeEvent.java | 11 + .../MinigamePlayerItemDamageEvent.java | 11 + .../bevents/MinigamePlayerItemHeldEvent.java | 11 + .../bevents/MinigamePlayerJoinEvent.java | 11 + .../bevents/MinigamePlayerKickEvent.java | 11 + .../MinigamePlayerLeashEntityEvent.java | 11 + .../MinigamePlayerLevelChangeEvent.java | 11 + .../bevents/MinigamePlayerLoginEvent.java | 11 + .../bevents/MinigamePlayerMoveEvent.java | 11 + .../MinigamePlayerPickupArrowEvent.java | 11 + .../MinigamePlayerPickupItemEvent.java | 11 + .../bevents/MinigamePlayerPortalEvent.java | 11 + .../bevents/MinigamePlayerQuitEvent.java | 11 + .../MinigamePlayerRegisterChannelEvent.java | 11 + ...MinigamePlayerResourcePackStatusEvent.java | 11 + .../bevents/MinigamePlayerRespawnEvent.java | 11 + .../MinigamePlayerShearEntityEvent.java | 11 + .../MinigamePlayerSpawnLocationEvent.java | 11 + ...MinigamePlayerStatisticIncrementEvent.java | 11 + .../MinigamePlayerSwapHandItemsEvent.java | 11 + .../bevents/MinigamePlayerTeleportEvent.java | 11 + .../MinigamePlayerToggleFlightEvent.java | 11 + .../MinigamePlayerToggleSneakEvent.java | 11 + .../MinigamePlayerToggleSprintEvent.java | 11 + .../MinigamePlayerUnregisterChannelEvent.java | 11 + .../bevents/MinigamePlayerVelocityEvent.java | 11 + .../bevents/MinigamePotionSplashEvent.java | 11 + .../bevents/MinigamePrepareAnvilEvent.java | 11 + .../MinigamePrepareItemCraftEvent.java | 11 + .../MinigamePrepareItemEnchantEvent.java | 11 + .../bevents/MinigameProjectileHitEvent.java | 11 + .../MinigameProjectileLaunchEvent.java | 11 + .../bevents/MinigameSheepDyeWoolEvent.java | 11 + .../bevents/MinigameSheepRegrowWoolEvent.java | 11 + .../bevents/MinigameSignChangeEvent.java | 11 + .../bevents/MinigameSlimeSplitEvent.java | 11 + .../bevents/MinigameSpawnerSpawnEvent.java | 11 + .../MinigameVehicleBlockCollisionEvent.java | 11 + .../bevents/MinigameVehicleCreateEvent.java | 11 + .../bevents/MinigameVehicleDamageEvent.java | 11 + .../bevents/MinigameVehicleDestroyEvent.java | 11 + .../bevents/MinigameVehicleEnterEvent.java | 11 + .../MinigameVehicleEntityCollisionEvent.java | 11 + .../bevents/MinigameVehicleExitEvent.java | 11 + .../bevents/MinigameVehicleMoveEvent.java | 11 + .../bevents/MinigameVehicleUpdateEvent.java | 11 + .../MinigameVillagerAcquireTradeEvent.java | 11 + .../MinigameVillagerReplenishTradeEvent.java | 11 + .../mevents/MinigameArenaCreateEvent.java | 11 + .../mevents/MinigameArenaCreatedEvent.java | 11 + .../mevents/MinigameArenaDeleteEvent.java | 11 + .../mevents/MinigameArenaDeletedEvent.java | 11 + .../MinigameArenaMaintenanceEvent.java | 11 + .../mevents/MinigameArenaPlayerJoinEvent.java | 42 ++++ .../MinigameArenaPlayerJoinedEvent.java | 11 + .../MinigameArenaPlayerJoinedQueueEvent.java | 11 + .../MinigameArenaPlayerLeavesQueueEvent.java | 11 + .../mevents/MinigameArenaStateEvent.java | 11 + .../mevents/MinigamePlayerCloseGuiEvent.java | 11 + .../MinigamePlayerDisplayGuiPageEvent.java | 11 + .../mevents/MinigamePlayerGuiClickEvent.java | 11 + .../mevents/MinigamePlayerOpenGuiEvent.java | 11 + .../minigames/api/event/ArenaCreateEvent.java | 4 + .../minigames/api/event/ArenaDeleteEvent.java | 4 + .../api/event/ArenaPlayerJoinEvent.java | 96 +++++++++ .../api/event/ArenaPlayerJoinedEvent.java | 66 +++++- .../event/ArenaPlayerJoinedQueueEvent.java | 70 ++++++- .../event/ArenaPlayerLeavesQueueEvent.java | 70 ++++++- .../minigames/api/event/ArenaStateEvent.java | 81 +++++++- .../api/event/PlayerCloseGuiEvent.java | 66 +++++- .../api/event/PlayerDisplayGuiPageEvent.java | 84 +++++++- .../api/event/PlayerGuiClickEvent.java | 91 ++++++++- .../api/event/PlayerOpenGuiEvent.java | 78 +++++-- .../api/locale/LocalizedConfigLine.java | 53 +++++ .../api/locale/LocalizedConfigString.java | 42 ++++ .../test/locale/LocalizedConfigLineTest.java | 192 ++++++++++++++++++ .../locale/LocalizedConfigStringTest.java | 186 +++++++++++++++++ .../test/locale/MessageSeverityTypeTest.java | 40 ++++ .../impl/nms/AbstractEventSystem.java | 2 + .../impl/nms/MgArenaPlayerJoinEvent.java | 38 ++++ 133 files changed, 2489 insertions(+), 70 deletions(-) create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java create mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java index cf5c1ca0..61ade76a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the target entityis a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or entity location.</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java index a3995c05..95972514 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameEntityUnleashEvent extends MinigameEvent<EntityUnleashEvent, MinigameEntityUnleashEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java index 25af4a34..34d50022 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from bottle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameExpBottleEvent extends MinigameEvent<ExpBottleEvent, MinigameExpBottleEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java index 5600a100..d8efe657 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from entity location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameExplosionPrimeEvent extends MinigameEvent<ExplosionPrimeEvent, MinigameExplosionPrimeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java index a530f686..2ce3a1b7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from firework location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java index 6d4ac70b..a5c30e6e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>passed to the player if the entity is a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or entity location.</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameFoodLevelChangeEvent extends MinigameEvent<FoodLevelChangeEvent, MinigameFoodLevelChangeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java index 53cb7f0a..8e72f892 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameFurnaceBurnEvent extends MinigameEvent<FurnaceBurnEvent, MinigameFurnaceBurnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java index 27f2a826..b7037b7e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameFurnaceSmeltEvent extends MinigameEvent<FurnaceSmeltEvent, MinigameFurnaceSmeltEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java index ab373262..f81a0a1e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the remover is a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameHangingBreakByEntityEvent extends MinigameEvent<HangingBreakByEntityEvent, MinigameHangingBreakByEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java index 65321de4..6fd247a2 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported (see {@link MinigameHangingBreakByEntityEvent} for details).</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from hanging location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameHangingBreakEvent extends MinigameEvent<HangingBreakEvent, MinigameHangingBreakEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java index c0e771f7..0f9c4ac1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player placing the hanging.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameHangingPlaceEvent extends MinigameEvent<HangingPlaceEvent, MinigameHangingPlaceEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java index 4aacc243..c76b8091 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to player if a player is riding the horse.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or from horse location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameHorseJumpEvent extends MinigameEvent<HorseJumpEvent, MinigameHorseJumpEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java index b6bc2bf7..2cc0775c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryClickEvent extends MinigameEvent<InventoryClickEvent, MinigameInventoryClickEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java index 1caa654c..1e3e4543 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryCloseEvent extends MinigameEvent<InventoryCloseEvent, MinigameInventoryCloseEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java index 9af71f3b..39f45d4b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryCreativeEvent extends MinigameEvent<InventoryCreativeEvent, MinigameInventoryCreativeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java index d1be87de..bc841c9a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryDragEvent extends MinigameEvent<InventoryDragEvent, MinigameInventoryDragEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java index 00900396..54d6b697 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryEvent extends MinigameEvent<InventoryEvent, MinigameInventoryEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java index fe88c4b1..305aacb5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryInteractEvent extends MinigameEvent<InventoryInteractEvent, MinigameInventoryInteractEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java index 4d32652f..bc596976 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryMoveItemEvent extends MinigameEvent<InventoryMoveItemEvent, MinigameInventoryMoveItemEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java index 466bfc95..f69cd59e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryOpenEvent extends MinigameEvent<InventoryOpenEvent, MinigameInventoryOpenEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java index 7678f8c9..78df48da 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player viewing the inventory.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameInventoryPickupItemEvent extends MinigameEvent<InventoryPickupItemEvent, MinigameInventoryPickupItemEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java index 89e21ad5..61ded0d8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from item location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameItemDespawnEvent extends MinigameEvent<ItemDespawnEvent, MinigameItemDespawnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java index f3cb14e8..83a4269c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from item location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java index 569c6952..457930b7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from item location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameItemSpawnEvent extends MinigameEvent<ItemSpawnEvent, MinigameItemSpawnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java index 08583dfa..a3a6fb3a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from block location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameLeavesDecayEvent extends MinigameEvent<LeavesDecayEvent, MinigameLeavesDecayEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java index 320f983f..a5be7677 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the clouds location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java index 214468eb..f7a8154f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the blocks location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameNotePlayEvent extends MinigameEvent<NotePlayEvent, MinigameNotePlayEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java index ee7f305e..46b4de0b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the pigs location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePigZapEvent extends MinigameEvent<PigZapEvent, MinigamePigZapEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java index 73509d55..210316c8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerAchievementAwardedEvent extends MinigameEvent<PlayerAchievementAwardedEvent, MinigamePlayerAchievementAwardedEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java index 930d2e32..ac5a3796 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerAnimationEvent extends MinigameEvent<PlayerAnimationEvent, MinigamePlayerAnimationEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java index 28d17fea..ea489edc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java index c53a3789..08775799 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerBedEnterEvent extends MinigameEvent<PlayerBedEnterEvent, MinigamePlayerBedEnterEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java index 4b5afd64..f7de6a91 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerBedLeaveEvent extends MinigameEvent<PlayerBedLeaveEvent, MinigamePlayerBedLeaveEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java index 17d7688f..3dcd92fd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerBucketEmptyEvent extends MinigameEvent<PlayerBucketEmptyEvent, MinigamePlayerBucketEmptyEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java index 18b393e8..b0366eb0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerBucketFillEvent extends MinigameEvent<PlayerBucketFillEvent, MinigamePlayerBucketFillEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java index 767da72f..53aa9aef 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java index 27ce05bf..a619c9cf 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerChangedWorldEvent extends MinigameEvent<PlayerChangedWorldEvent, MinigamePlayerChangedWorldEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java index e28da6ae..45f18066 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerChannelEvent extends MinigameEvent<PlayerChannelEvent, MinigamePlayerChannelEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java index a57023bb..72056cfa 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerChatEvent extends MinigameEvent<PlayerChatEvent, MinigamePlayerChatEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java index ad8645de..ab6660d4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerChatTabCompleteEvent extends MinigameEvent<PlayerChatTabCompleteEvent, MinigamePlayerChatTabCompleteEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java index 544becf5..7eda9b0e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerCommandPreprocessEvent extends MinigameEvent<PlayerCommandPreprocessEvent, MinigamePlayerCommandPreprocessEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java index 2aecb8eb..445d911f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerDeathEvent extends MinigameEvent<PlayerDeathEvent, MinigamePlayerDeathEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java index cf23a9fb..39da02df 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerDropItemEvent extends MinigameEvent<PlayerDropItemEvent, MinigamePlayerDropItemEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java index cfcb1a3e..27501318 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerEditBookEvent extends MinigameEvent<PlayerEditBookEvent, MinigamePlayerEditBookEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java index 5f1123f3..26f9330c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerEggThrowEvent extends MinigameEvent<PlayerEggThrowEvent, MinigamePlayerEggThrowEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java index e492688a..5a667863 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerExpChangeEvent extends MinigameEvent<PlayerExpChangeEvent, MinigamePlayerExpChangeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java index 3d29a0d6..42a9e402 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerFishEvent extends MinigameEvent<PlayerFishEvent, MinigamePlayerFishEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java index 91d6d128..0873ff52 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerGameModeChangeEvent extends MinigameEvent<PlayerGameModeChangeEvent, MinigamePlayerGameModeChangeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java index f17b187b..785069a9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerInteractAtEntityEvent extends MinigameEvent<PlayerInteractAtEntityEvent, MinigamePlayerInteractAtEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java index 0f284dec..2d5fd3ab 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerInteractEntityEvent extends MinigameEvent<PlayerInteractEntityEvent, MinigamePlayerInteractEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java index 6a460792..cc1ccdb6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerInteractEvent extends MinigameEvent<PlayerInteractEvent, MinigamePlayerInteractEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java index f438b95b..10f40c87 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerInventoryEvent extends MinigameEvent<PlayerInventoryEvent, MinigamePlayerInventoryEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java index 7ae0675b..3423d624 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerItemBreakEvent extends MinigameEvent<PlayerItemBreakEvent, MinigamePlayerItemBreakEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java index 41541354..3fb45437 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerItemConsumeEvent extends MinigameEvent<PlayerItemConsumeEvent, MinigamePlayerItemConsumeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java index 4d7d3c2d..014e42bd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerItemDamageEvent extends MinigameEvent<PlayerItemDamageEvent, MinigamePlayerItemDamageEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java index 9c989cb5..80fd4b53 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerItemHeldEvent extends MinigameEvent<PlayerItemHeldEvent, MinigamePlayerItemHeldEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java index 875c48a5..c42829c6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerJoinEvent extends MinigameEvent<PlayerJoinEvent, MinigamePlayerJoinEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java index ff53e3a5..cac6c99e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerKickEvent extends MinigameEvent<PlayerKickEvent, MinigamePlayerKickEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java index 5c83f417..5cb9115f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerLeashEntityEvent extends MinigameEvent<PlayerLeashEntityEvent, MinigamePlayerLeashEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java index 9700cbef..9e45100e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerLevelChangeEvent extends MinigameEvent<PlayerLevelChangeEvent, MinigamePlayerLevelChangeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java index 3cb99a80..2a8fb3f7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerLoginEvent extends MinigameEvent<PlayerLoginEvent, MinigamePlayerLoginEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java index 01674953..eb6981ec 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerMoveEvent extends MinigameEvent<PlayerMoveEvent, MinigamePlayerMoveEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java index d4a377be..a807198f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java index f397940b..80adbf5b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerPickupItemEvent extends MinigameEvent<PlayerPickupItemEvent, MinigamePlayerPickupItemEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java index be33de35..899e62f7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerPortalEvent extends MinigameEvent<PlayerPortalEvent, MinigamePlayerPortalEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java index fe3bc95a..4a2b5ef4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerQuitEvent extends MinigameEvent<PlayerQuitEvent, MinigamePlayerQuitEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java index d89b10eb..e722fc5e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerRegisterChannelEvent extends MinigameEvent<PlayerRegisterChannelEvent, MinigamePlayerRegisterChannelEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java index 08839412..e8f7b414 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java index 38ee3056..64993581 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerRespawnEvent extends MinigameEvent<PlayerRespawnEvent, MinigamePlayerRespawnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java index c5f7095f..3b97f736 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerShearEntityEvent extends MinigameEvent<PlayerShearEntityEvent, MinigamePlayerShearEntityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java index 5a5b1231..85aa3a56 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerSpawnLocationEvent extends MinigameEvent<PlayerSpawnLocationEvent, MinigamePlayerSpawnLocationEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java index 5c489a65..1fbec351 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerStatisticIncrementEvent extends MinigameEvent<PlayerStatisticIncrementEvent, MinigamePlayerStatisticIncrementEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java index 282c2ef4..8e303903 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java index 47396d03..2d4fc273 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerTeleportEvent extends MinigameEvent<PlayerTeleportEvent, MinigamePlayerTeleportEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java index c5b0f14e..cf067931 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerToggleFlightEvent extends MinigameEvent<PlayerToggleFlightEvent, MinigamePlayerToggleFlightEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java index 8fbdfbec..e53a8ea5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerToggleSneakEvent extends MinigameEvent<PlayerToggleSneakEvent, MinigamePlayerToggleSneakEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java index c76c08fd..e6c7da46 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerToggleSprintEvent extends MinigameEvent<PlayerToggleSprintEvent, MinigamePlayerToggleSprintEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java index 5bf8dad8..795db12e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerUnregisterChannelEvent extends MinigameEvent<PlayerUnregisterChannelEvent, MinigamePlayerUnregisterChannelEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java index 82abeaeb..3b2f47a3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerVelocityEvent extends MinigameEvent<PlayerVelocityEvent, MinigamePlayerVelocityEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java index 40ab1ab4..88999bd1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the potion location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePotionSplashEvent extends MinigameEvent<PotionSplashEvent, MinigamePotionSplashEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java index d5ab8c80..e31bd497 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player doing the repair.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java index 5a8ca5ba..00baa67d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player crafting the items</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePrepareItemCraftEvent extends MinigameEvent<PrepareItemCraftEvent, MinigamePrepareItemCraftEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java index 8aeda46b..1e60d5c9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player doing the enchant.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePrepareItemEnchantEvent extends MinigameEvent<PrepareItemEnchantEvent, MinigamePrepareItemEnchantEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java index 154a7685..48d372ca 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the projectile hits a player.</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or projectile location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameProjectileHitEvent extends MinigameEvent<ProjectileHitEvent, MinigameProjectileHitEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java index 7a0e21d1..e8555136 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the player if the shooter is a player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player or projectile location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameProjectileLaunchEvent extends MinigameEvent<ProjectileLaunchEvent, MinigameProjectileLaunchEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java index 39841c04..f503de65 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the sheep location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameSheepDyeWoolEvent extends MinigameEvent<SheepDyeWoolEvent, MinigameSheepDyeWoolEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java index 6a847b71..69df75d7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the sheep location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameSheepRegrowWoolEvent extends MinigameEvent<SheepRegrowWoolEvent, MinigameSheepRegrowWoolEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java index caf1a084..d79d81c7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the sign location/ ownership</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameSignChangeEvent extends MinigameEvent<SignChangeEvent, MinigameSignChangeEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java index 1228d6f5..1f42077c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the slime location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameSlimeSplitEvent extends MinigameEvent<SlimeSplitEvent, MinigameSlimeSplitEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java index 7115c450..6916f01a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the spawner location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameSpawnerSpawnEvent extends MinigameEvent<SpawnerSpawnEvent, MinigameSpawnerSpawnEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java index 4dd4227f..0828da9a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleBlockCollisionEvent extends MinigameEvent<VehicleBlockCollisionEvent, MinigameVehicleBlockCollisionEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java index 2a4a615a..04e3e447 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleCreateEvent extends MinigameEvent<VehicleCreateEvent, MinigameVehicleCreateEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java index 68328ac1..42100e24 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleDamageEvent extends MinigameEvent<VehicleDamageEvent, MinigameVehicleDamageEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java index 0a4e6df1..dc2451e6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleDestroyEvent extends MinigameEvent<VehicleDestroyEvent, MinigameVehicleDestroyEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java index 465070f6..8ee2009b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleEnterEvent extends MinigameEvent<VehicleEnterEvent, MinigameVehicleEnterEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java index 2f984820..90269c83 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleEntityCollisionEvent extends MinigameEvent<VehicleEntityCollisionEvent, MinigameVehicleEntityCollisionEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java index 539c31d4..39fba504 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleExitEvent extends MinigameEvent<VehicleExitEvent, MinigameVehicleExitEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java index ad604711..e8dd8a6a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleMoveEvent extends MinigameEvent<VehicleMoveEvent, MinigameVehicleMoveEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java index f177a46d..6b69e666 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java @@ -22,6 +22,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the target player riding the vehicle</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player or vehicle location</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameVehicleUpdateEvent extends MinigameEvent<VehicleUpdateEvent, MinigameVehicleUpdateEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java index 4fb60ac7..cc7ab6db 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the trading player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java index 654d70ad..d72fc224 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java @@ -23,6 +23,17 @@ /** * Minigame event representation of corresponding bukkit event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the tarding player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from the player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ @MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java index 371c73e6..41dd01e6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent, MinigameArenaCreateEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java index 4235a12d..2356d9bb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaCreatedEvent extends MinigameEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java index 1f0da9e2..57867a2c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaDeleteEvent extends MinigameEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java index 3b992021..01fd26d5 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaDeletedEvent extends MinigameEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java index cc7d5612..8101350f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaMaintenanceEvent extends MinigameEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java new file mode 100644 index 00000000..a1e372c2 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java @@ -0,0 +1,42 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.arena.rules.mevents; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; + +/** + * Minigame event representation of corresponding minigame event. + * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * + * @author mepeisen + */ +public interface MinigameArenaPlayerJoinEvent extends MinigameEvent<ArenaPlayerJoinEvent, MinigameArenaPlayerJoinEvent> +{ + + // TODO default stubbings + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java index b814aa52..74a2fcdf 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaPlayerJoinedEvent extends MinigameEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java index 2a4b3e40..5a6c7e70 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player</dd> + * <dt>Arena-Rule</dt> + * <dd>not supported</dd> + * <dt>Minigame-Rule</dt> + * <dd>not supported</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaPlayerJoinedQueueEvent extends MinigameEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java index 722813e0..508fd43c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player</dd> + * <dt>Arena-Rule</dt> + * <dd>not supported</dd> + * <dt>Minigame-Rule</dt> + * <dd>not supported</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaPlayerLeavesQueueEvent extends MinigameEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java index ce4d9dad..e6fd16c8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>not supported</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the affected arena</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigameArenaStateEvent extends MinigameEvent<ArenaStateEvent, MinigameArenaStateEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java index dbb3455e..bae8be89 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player closing the gui</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerCloseGuiEvent extends MinigameEvent<PlayerCloseGuiEvent, MinigamePlayerCloseGuiEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java index c9a029a2..951a7092 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player viewing the gui</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerDisplayGuiPageEvent extends MinigameEvent<PlayerDisplayGuiPageEvent, MinigamePlayerDisplayGuiPageEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java index d36ab2fb..cced952c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player clicking an item</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerGuiClickEvent extends MinigameEvent<PlayerGuiClickEvent, MinigamePlayerGuiClickEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java index acad52c0..783e0bca 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java @@ -21,6 +21,17 @@ /** * Minigame event representation of corresponding minigame event. * + * <h3>Using this event as a rule</h3> + * + * <dl> + * <dt>Player-Rule</dt> + * <dd>Passed to the affected player opening the gui</dd> + * <dt>Arena-Rule</dt> + * <dd>Passed to the arena calculated from player</dd> + * <dt>Minigame-Rule</dt> + * <dd>Passed to the minigame calculated from arena</dd> + * </dl> + * * @author mepeisen */ public interface MinigamePlayerOpenGuiEvent extends MinigameEvent<PlayerOpenGuiEvent, MinigamePlayerOpenGuiEvent> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java index b24c805b..028c6fa6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java @@ -22,6 +22,10 @@ /** * An event fired before a new arena is created. * + * <p> + * This event can be cancelled. If cancelled the arena will not be created. + * </p> + * * @author mepeisen */ public class ArenaCreateEvent extends AbstractVetoEvent diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java index 502246dd..5c46d972 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java @@ -22,6 +22,10 @@ /** * An event fired before an existing arena is deleted. * + * <p> + * This event can be cancelled. If cancelled the arena will not be deleted. + * </p> + * * @author mepeisen */ public class ArenaDeleteEvent extends AbstractVetoEvent diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java new file mode 100644 index 00000000..7c9ff288 --- /dev/null +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java @@ -0,0 +1,96 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.event; + +import org.bukkit.event.HandlerList; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * An event fired before a player joins an arena. + * + * <p> + * This event can be cancelled. If cancelled the player is unable to join the arena. + * </p> + * + * @author mepeisen + */ +public class ArenaPlayerJoinEvent extends AbstractVetoEvent +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena the player joined. */ + private final ArenaInterface arena; + + /** the player that joined the arena. */ + private final ArenaPlayerInterface player; + + /** + * Constructor. + * @param arena + * @param player + */ + public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * Returns the arena that the player joined + * + * @return the arenaa the player joined. + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the joining player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java index e87f2024..5df306fd 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java @@ -18,25 +18,75 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** + * An event fired after a player joins an arena. + * * @author mepeisen - * */ public class ArenaPlayerJoinedEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); + + /** the arena the player joined. */ + private final ArenaInterface arena; - public ArenaPlayerJoinedEvent() { - super(); - // TODO - } + /** the player that joined the arena. */ + private final ArenaPlayerInterface player; - public HandlerList getHandlers() { + /** + * Constructor. + * @param arena + * @param player + */ + public ArenaPlayerJoinedEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * Returns the arena that the player joined + * + * @return the arenaa the player joined. + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the joining player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java index 0d57791a..c24b9645 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java @@ -18,25 +18,77 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** + * An event fired after a player joins a waiting queue. + * * @author mepeisen * */ public class ArenaPlayerJoinedQueueEvent extends Event { - private static final HandlerList handlers = new HandlerList(); - - public ArenaPlayerJoinedQueueEvent() { - super(); - // TODO + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the queue the player joined. */ + private final WaitQueue queue; + + /** the player that joined the arena. */ + private final ArenaPlayerInterface player; + + /** + * Constructor. + * + * @param queue + * @param player + */ + public ArenaPlayerJoinedQueueEvent(WaitQueue queue, ArenaPlayerInterface player) + { + this.queue = queue; + this.player = player; } - - public HandlerList getHandlers() { + + /** + * Returns the queue that the player joined + * + * @return the queue the player joined. + */ + public WaitQueue getQueue() + { + return this.queue; + } + + /** + * Returns the joining player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java index e565644b..68c639e4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java @@ -18,25 +18,77 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** + * An event fired after a player leaves a waiting queue. + * * @author mepeisen * */ public class ArenaPlayerLeavesQueueEvent extends Event { - private static final HandlerList handlers = new HandlerList(); - - public ArenaPlayerLeavesQueueEvent() { - super(); - // TODO + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the queue the player joined. */ + private final WaitQueue queue; + + /** the player that joined the arena. */ + private final ArenaPlayerInterface player; + + /** + * Constructor. + * + * @param queue + * @param player + */ + public ArenaPlayerLeavesQueueEvent(WaitQueue queue, ArenaPlayerInterface player) + { + this.queue = queue; + this.player = player; } - - public HandlerList getHandlers() { + + /** + * Returns the queue that the player joined + * + * @return the queue the player joined. + */ + public WaitQueue getQueue() + { + return this.queue; + } + + /** + * Returns the joining player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java index 0fce4f0d..10b668a7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java @@ -18,6 +18,9 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaState; + /** * @author mepeisen * @@ -25,18 +28,80 @@ public class ArenaStateEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public ArenaStateEvent() { - super(); - // TODO + + /** the arena that changes the state. */ + private final ArenaInterface arena; + + /** the previous state. */ + private final ArenaState oldState; + + /** the next state. */ + private final ArenaState newState; + + /** + * Constructor. + * + * @param arena + * @param oldState + * @param newState + */ + public ArenaStateEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) + { + this.arena = arena; + this.oldState = oldState; + this.newState = newState; } - - public HandlerList getHandlers() { + + /** + * Returns the arena that changes the state. + * + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the previous state. + * + * @return the oldState + */ + public ArenaState getOldState() + { + return this.oldState; + } + + /** + * Returns the new state. + * + * @return the newState + */ + public ArenaState getNewState() + { + return this.newState; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java index 2eed2b98..cd9885a6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java @@ -18,6 +18,9 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** * @author mepeisen * @@ -25,18 +28,65 @@ public class PlayerCloseGuiEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - - public PlayerCloseGuiEvent() { - super(); - // TODO + + /** the gui the player closed. */ + private final ClickGuiInterface gui; + + /** the player. */ + private final ArenaPlayerInterface player; + + /** + * Constructor. + * + * @param gui + * @param player + */ + public PlayerCloseGuiEvent(ClickGuiInterface gui, ArenaPlayerInterface player) + { + this.gui = gui; + this.player = player; } - - public HandlerList getHandlers() { + + /** + * Returns the gui that the player closed + * + * @return the gui the player closed. + */ + public ClickGuiInterface getGui() + { + return this.gui; + } + + /** + * Returns the player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java index 72e200f6..3c67468d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java @@ -18,25 +18,97 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiPageInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** + * Fires before a page is opened. + * + * <p> + * Will fire directly after opening the gui to show up the initial page. + * </p> + * * @author mepeisen * */ public class PlayerDisplayGuiPageEvent extends Event { + /** handlers list. */ private static final HandlerList handlers = new HandlerList(); + + /** the gui the player opened. */ + private final ClickGuiInterface gui; + + /** the player. */ + private final ArenaPlayerInterface player; - public PlayerDisplayGuiPageEvent() { - super(); - // TODO + /** the opened page. */ + private final ClickGuiPageInterface page; + + /** + * Constructor. + * + * @param gui + * @param player + * @param page + */ + public PlayerDisplayGuiPageEvent(ClickGuiInterface gui, ArenaPlayerInterface player, ClickGuiPageInterface page) + { + this.gui = gui; + this.player = player; + this.page = page; + } + + /** + * Returns the gui that the player opened + * + * @return the gui the player opened. + */ + public ClickGuiInterface getGui() + { + return this.gui; + } + + /** + * Returns the player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the opened page + * + * @return the page + */ + public ClickGuiPageInterface getPage() + { + return this.page; } - public HandlerList getHandlers() { + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java index bae3d47a..aa30627b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java @@ -15,28 +15,99 @@ package com.github.mce.minigames.api.event; -import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiItem; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** + * Fired before the click handler is called. + * + * <p> + * The event can be cancelled. + * </p> + * * @author mepeisen * */ -public class PlayerGuiClickEvent extends Event +public class PlayerGuiClickEvent extends AbstractVetoEvent { - private static final HandlerList handlers = new HandlerList(); - - public PlayerGuiClickEvent() { - super(); - // TODO + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the gui the player opened. */ + private final ClickGuiInterface gui; + + /** the player. */ + private final ArenaPlayerInterface player; + + /** the clicked gui item. */ + private final ClickGuiItem item; + + /** + * Constructor. + * + * @param gui + * @param player + * @param item + */ + public PlayerGuiClickEvent(ClickGuiInterface gui, ArenaPlayerInterface player, ClickGuiItem item) + { + this.gui = gui; + this.player = player; + this.item = item; + } + + /** + * Returns the gui that the player opened + * + * @return the gui the player opened. + */ + public ClickGuiInterface getGui() + { + return this.gui; + } + + /** + * Returns the player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the clicked item. + * + * @return the item + */ + public ClickGuiItem getItem() + { + return this.item; } - public HandlerList getHandlers() { + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java index 58131995..0a042c7a 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java @@ -15,28 +15,82 @@ package com.github.mce.minigames.api.event; -import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + /** + * Fired before the player opens a gui. + * + * <p> + * Event can be cancelled. + * </p> + * * @author mepeisen - * */ -public class PlayerOpenGuiEvent extends Event +public class PlayerOpenGuiEvent extends AbstractVetoEvent { - private static final HandlerList handlers = new HandlerList(); - - public PlayerOpenGuiEvent() { - super(); - // TODO + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the gui the player opened. */ + private final ClickGuiInterface gui; + + /** the player. */ + private final ArenaPlayerInterface player; + + /** + * Constructor. + * + * @param gui + * @param player + */ + public PlayerOpenGuiEvent(ClickGuiInterface gui, ArenaPlayerInterface player) + { + this.gui = gui; + this.player = player; } - - public HandlerList getHandlers() { + + /** + * Returns the gui that the player opened + * + * @return the gui the player opened. + */ + public ClickGuiInterface getGui() + { + return this.gui; + } + + /** + * Returns the player + * + * @return the player + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { return handlers; } - - public static HandlerList getHandlerList() { + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { return handlers; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java index df770f2f..381de477 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api.locale; import java.io.Serializable; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -53,6 +54,50 @@ public class LocalizedConfigLine implements Configurable, LocalizedMessageInterf */ private Map<Locale, List<String>> adminStrings = new HashMap<>(); + /** + * Sets the user messages. + * @param locale locale to use + * @param message message array to be used. + */ + public void setUserMessages(Locale locale, String[] message) + { + if (message == null) + { + this.userStrings.remove(locale); + } + else + { + final List<String> list = this.userStrings.computeIfAbsent(locale, (key) -> new ArrayList<>()); + list.clear(); + for (final String msg : message) + { + list.add(msg); + } + } + } + + /** + * Sets the admin messages. + * @param locale locale to use + * @param message message array to be used. + */ + public void setAdminMessages(Locale locale, String[] message) + { + if (message == null) + { + this.adminStrings.remove(locale); + } + else + { + final List<String> list = this.adminStrings.computeIfAbsent(locale, (key) -> new ArrayList<>()); + list.clear(); + for (final String msg : message) + { + list.add(msg); + } + } + } + @Override public void readFromConfig(ConfigurationSection section) { @@ -126,6 +171,10 @@ public String[] toUserMessageLine(Locale locale, Serializable... args) { smsg = this.userStrings.get(this.defaultLocale); } + if (smsg == null) + { + return new String[0]; + } final String[] result = new String[smsg.size()]; int i = 0; for (final String lmsg : smsg) @@ -158,6 +207,10 @@ public String[] toAdminMessageLine(Locale locale, Serializable... args) { smsg = this.userStrings.get(this.defaultLocale); } + if (smsg == null) + { + return new String[0]; + } final String[] result = new String[smsg.size()]; int i = 0; for (final String lmsg : smsg) diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java index 9ced271f..a9eee52c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java @@ -52,6 +52,40 @@ public class LocalizedConfigString implements Configurable, LocalizedMessageInte */ private Map<Locale, String> adminStrings = new HashMap<>(); + /** + * Sets the user message. + * @param locale locale to use + * @param message message to be used. + */ + public void setUserMessage(Locale locale, String message) + { + if (message == null) + { + this.userStrings.remove(locale); + } + else + { + this.userStrings.put(locale, message); + } + } + + /** + * Sets the admin message. + * @param locale locale to use + * @param message message array to be used. + */ + public void setAdminMessage(Locale locale, String message) + { + if (message == null) + { + this.adminStrings.remove(locale); + } + else + { + this.adminStrings.put(locale, message); + } + } + @Override public void readFromConfig(ConfigurationSection section) { @@ -119,6 +153,10 @@ public String toUserMessage(Locale locale, Serializable... args) { smsg = this.userStrings.get(this.defaultLocale); } + if (smsg == null) + { + return null; + } return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); } @@ -144,6 +182,10 @@ public String toAdminMessage(Locale locale, Serializable... args) { smsg = this.userStrings.get(this.defaultLocale); } + if (smsg == null) + { + return null; + } return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, true, args)); } diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java new file mode 100644 index 00000000..50108f52 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java @@ -0,0 +1,192 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.locale; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Locale; + +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.MemoryConfiguration; +import org.junit.Test; + +import com.github.mce.minigames.api.locale.LocalizedConfigLine; +import com.github.mce.minigames.api.locale.MessageSeverityType; + +/** + * test case for {@link LocalizedConfigLine} + * + * @author mepeisen + */ +public class LocalizedConfigLineTest +{ + + /** + * Tests the argument substitution + */ + @Test + public void testArgs() + { + final LocalizedConfigLine line = new LocalizedConfigLine(); + line.setUserMessages(Locale.ENGLISH, new String[]{"foo %2$s %1$s", "foo2 %2$s2 %1$s2"}); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo bar baz", "foo2 bar2 baz2"}, line.toUserMessageLine(Locale.GERMAN, "baz", "bar")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + + /** + * Tests {@link LocalizedConfigLine#writeToConfig(org.bukkit.configuration.ConfigurationSection)} and {@link LocalizedConfigLine#readFromConfig(org.bukkit.configuration.ConfigurationSection)} + */ + @Test + public void testConfig() + { + final LocalizedConfigLine line = new LocalizedConfigLine(); + line.setUserMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ + line.setUserMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ + line.setAdminMessages(Locale.ENGLISH, new String[]{"foo3", "bar3"}); //$NON-NLS-1$ //$NON-NLS-2$ + line.setAdminMessages(Locale.GERMAN, new String[]{}); + + final ConfigurationSection section = new MemoryConfiguration(); + line.writeToConfig(section); + + assertEquals("en", section.getString("default_locale")); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(2, section.getStringList("user.en").size()); //$NON-NLS-1$ + assertEquals("foo", section.getStringList("user.en").get(0)); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("bar", section.getStringList("user.en").get(1)); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(2, section.getStringList("user.de").size()); //$NON-NLS-1$ + assertEquals("foo2", section.getStringList("user.de").get(0)); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("bar2", section.getStringList("user.de").get(1)); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(2, section.getStringList("admin.en").size()); //$NON-NLS-1$ + assertEquals("foo3", section.getStringList("admin.en").get(0)); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("bar3", section.getStringList("admin.en").get(1)); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(0, section.getStringList("admin.de").size()); //$NON-NLS-1$ + + final LocalizedConfigLine line2 = new LocalizedConfigLine(); + line2.readFromConfig(section); + + assertArrayEquals(new String[]{"foo", "bar"}, line2.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo2", "bar2"}, line2.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo3", "bar3"}, line2.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo2", "bar2"}, line2.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests the {@link LocalizedConfigLine#toUserMessageLine(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToUserMessageLine() + { + // empty message object + final LocalizedConfigLine line = new LocalizedConfigLine(); + assertArrayEquals(new String[0], line.toUserMessageLine(Locale.GERMAN)); + + // setting default locale + line.setUserMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + + // setting german + line.setUserMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo2", "bar2"}, line.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + + // clearing german + line.setUserMessages(Locale.GERMAN, null); + assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests the {@link LocalizedConfigLine#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToAdminMessageLine() + { + // empty message object + final LocalizedConfigLine line = new LocalizedConfigLine(); + assertArrayEquals(new String[0], line.toAdminMessageLine(Locale.GERMAN)); + + // setting default locale + line.setAdminMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + + // setting german + line.setAdminMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo2", "bar2"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + + // clearing german + line.setAdminMessages(Locale.GERMAN, null); + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests the {@link LocalizedConfigLine#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToAdminMessageLineReturningUserMsg() + { + // empty message object + final LocalizedConfigLine line = new LocalizedConfigLine(); + line.setUserMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ + line.setAdminMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ + assertArrayEquals(new String[]{"foo2", "bar2"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + + line.setAdminMessages(Locale.GERMAN, new String[]{}); + assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + + line.setUserMessages(Locale.ENGLISH, new String[]{"foo3", "bar3"}); //$NON-NLS-1$ //$NON-NLS-2$ + line.setAdminMessages(Locale.ENGLISH, new String[]{}); + assertArrayEquals(new String[]{"foo3", "bar3"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests standard methods. + */ + @Test + public void testMe() + { + final LocalizedConfigLine line = new LocalizedConfigLine(); + + assertFalse(line.isSingleLine()); + assertTrue(line.isMultiLine()); + + assertEquals(MessageSeverityType.Information, line.getSeverity()); + } + + /** + * Tests {@link LocalizedConfigLine#toAdminMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test(expected = IllegalStateException.class) + public void testToAdminMsg() + { + new LocalizedConfigLine().toAdminMessage(Locale.GERMAN); + } + + /** + * Tests {@link LocalizedConfigLine#toUserMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test(expected = IllegalStateException.class) + public void testToUserMsg() + { + new LocalizedConfigLine().toUserMessage(Locale.GERMAN); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java new file mode 100644 index 00000000..530aacd1 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java @@ -0,0 +1,186 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.locale; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.util.Locale; + +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.MemoryConfiguration; +import org.junit.Test; + +import com.github.mce.minigames.api.locale.LocalizedConfigString; +import com.github.mce.minigames.api.locale.MessageSeverityType; + +/** + * test case for {@link LocalizedConfigString} + * + * @author mepeisen + */ +public class LocalizedConfigStringTest +{ + + /** + * Tests the argument substitution + */ + @Test + public void testArgs() + { + final LocalizedConfigString line = new LocalizedConfigString(); + line.setUserMessage(Locale.ENGLISH, "foo %2$s %1$s"); //$NON-NLS-1$ + assertEquals("foo bar baz", line.toUserMessage(Locale.GERMAN, "baz", "bar")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Tests {@link LocalizedConfigString#writeToConfig(org.bukkit.configuration.ConfigurationSection)} and {@link LocalizedConfigString#readFromConfig(org.bukkit.configuration.ConfigurationSection)} + */ + @Test + public void testConfig() + { + final LocalizedConfigString line = new LocalizedConfigString(); + line.setUserMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ + line.setUserMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ + line.setAdminMessage(Locale.ENGLISH, "foo3"); //$NON-NLS-1$ + line.setAdminMessage(Locale.GERMAN, ""); //$NON-NLS-1$ + + final ConfigurationSection section = new MemoryConfiguration(); + line.writeToConfig(section); + + assertEquals("en", section.getString("default_locale")); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("foo", section.getString("user.en")); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("foo2", section.getString("user.de")); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("foo3", section.getString("admin.en")); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals("", section.getString("admin.de")); //$NON-NLS-1$ //$NON-NLS-2$ + + final LocalizedConfigString line2 = new LocalizedConfigString(); + line2.readFromConfig(section); + + assertEquals("foo", line2.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo2", line2.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ + assertEquals("foo3", line2.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo2", line2.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + } + + /** + * Tests the {@link LocalizedConfigString#toUserMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToUserMessage() + { + // empty message object + final LocalizedConfigString line = new LocalizedConfigString(); + assertNull(line.toUserMessage(Locale.GERMAN)); + + // setting default locale + line.setUserMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ + assertEquals("foo", line.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo", line.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ + + // setting german + line.setUserMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ + assertEquals("foo", line.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo2", line.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ + + // clearing german + line.setUserMessage(Locale.GERMAN, null); + assertEquals("foo", line.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo", line.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ + } + + /** + * Tests the {@link LocalizedConfigString#toAdminMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToAdminMessage() + { + // empty message object + final LocalizedConfigString line = new LocalizedConfigString(); + assertNull(line.toAdminMessage(Locale.GERMAN)); + + // setting default locale + line.setAdminMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ + assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + + // setting german + line.setAdminMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ + assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo2", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + + // clearing german + line.setAdminMessage(Locale.GERMAN, null); + assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + } + + /** + * Tests the {@link LocalizedConfigString#toAdminMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToAdminMessageReturningUserMsg() + { + // empty message object + final LocalizedConfigString line = new LocalizedConfigString(); + line.setUserMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ + line.setAdminMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ + assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ + assertEquals("foo2", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + + line.setAdminMessage(Locale.GERMAN, ""); //$NON-NLS-1$ + assertEquals("foo", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + + line.setUserMessage(Locale.ENGLISH, "foo3"); //$NON-NLS-1$ + line.setAdminMessage(Locale.ENGLISH, ""); //$NON-NLS-1$ + assertEquals("foo3", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + } + + /** + * Tests standard methods. + */ + @Test + public void testMe() + { + final LocalizedConfigString line = new LocalizedConfigString(); + + assertTrue(line.isSingleLine()); + assertFalse(line.isMultiLine()); + + assertEquals(MessageSeverityType.Information, line.getSeverity()); + } + + /** + * Tests {@link LocalizedConfigString#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} + */ + @Test(expected = IllegalStateException.class) + public void testToAdminMsgLine() + { + new LocalizedConfigString().toAdminMessageLine(Locale.GERMAN); + } + + /** + * Tests {@link LocalizedConfigString#toUserMessageLine(java.util.Locale, java.io.Serializable...)} + */ + @Test(expected = IllegalStateException.class) + public void testToUserMsgLine() + { + new LocalizedConfigString().toUserMessageLine(Locale.GERMAN); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java new file mode 100644 index 00000000..1ed85ec4 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java @@ -0,0 +1,40 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.locale; + +import org.junit.Test; + +import com.github.mce.minigames.api.locale.MessageSeverityType; +import com.github.mce.minigames.api.test.SharedUtil; + +/** + * test case for {@link MessageSeverityType} + * + * @author mepeisen + */ +public class MessageSeverityTypeTest +{ + + /** + * Tests the enum. + */ + @Test + public void testMe() + { + SharedUtil.testEnumClass(MessageSeverityType.class); + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java index 52c2face..4aa01c72 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java @@ -27,6 +27,7 @@ import com.github.mce.minigames.api.event.ArenaDeleteEvent; import com.github.mce.minigames.api.event.ArenaDeletedEvent; import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; @@ -60,6 +61,7 @@ public AbstractEventSystem() this.registerHandler(ArenaDeletedEvent.class, (evt) -> new MgArenaDeletedEvent(evt)); this.registerHandler(ArenaMaintenanceEvent.class, (evt) -> new MgArenaMaintenanceEvent(evt)); this.registerHandler(ArenaPlayerJoinedEvent.class, (evt) -> new MgArenaPlayerJoinedEvent(evt)); + this.registerHandler(ArenaPlayerJoinEvent.class, (evt) -> new MgArenaPlayerJoinEvent(evt)); this.registerHandler(ArenaPlayerJoinedQueueEvent.class, (evt) -> new MgArenaPlayerJoinedQueueEvent(evt)); this.registerHandler(ArenaPlayerLeavesQueueEvent.class, (evt) -> new MgArenaPlayerLeavesQueueEvent(evt)); this.registerHandler(ArenaStateEvent.class, (evt) -> new MgArenaStateEvent(evt)); diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java new file mode 100644 index 00000000..603d29c8 --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java @@ -0,0 +1,38 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerJoinEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; + +/** + * Minigame event implementation + * + * @author mepeisen + */ +public class MgArenaPlayerJoinEvent extends AbstractMinigameEvent<ArenaPlayerJoinEvent, MinigameArenaPlayerJoinEvent> implements MinigameArenaPlayerJoinEvent +{ + + /** + * Constructor + * @param event + */ + public MgArenaPlayerJoinEvent(ArenaPlayerJoinEvent event) + { + super(event, null); // TODO + } + +} From afe75bd11c51b393843a4b50d30f6275b516938c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 18 Sep 2016 10:57:32 +0200 Subject: [PATCH 133/266] v2 --- APIv2/pom.xml | 30 + .../mce/minigames/api/CommonMessages.java | 2 + .../mce/minigames/api/MglibInterface.java | 22 +- .../mce/minigames/api/MinigameInterface.java | 1 + .../api/MinigamePluginInterface.java | 2 + .../minigames/api/arena/ArenaInterface.java | 8 +- .../api/arena/ArenaTypeBuilderInterface.java | 26 +- .../arena/ArenaTypeDeclarationInterface.java | 24 +- .../mce/minigames/api/component/Cuboid.java | 92 +- .../config/ConfigurationValueInterface.java | 1020 ++++++++--------- .../api/context/MinigameContext.java | 9 + .../api/context/MinigameStorage.java | 4 + .../api/event/AbstractVetoEvent.java | 18 +- .../api/event/ArenaPlayerJoinEvent.java | 11 +- .../api/event/ArenaPlayerJoinedEvent.java | 11 +- .../event/ArenaPlayerJoinedQueueEvent.java | 2 + .../event/ArenaPlayerLeavesQueueEvent.java | 2 + .../minigames/api/event/ArenaStateEvent.java | 3 + .../api/event/PlayerCloseGuiEvent.java | 4 +- .../api/event/PlayerDisplayGuiPageEvent.java | 13 +- .../api/event/PlayerGuiClickEvent.java | 5 +- .../api/event/PlayerOpenGuiEvent.java | 2 + .../mce/minigames/api/gui/ClickGuiItem.java | 8 +- .../api/player/ArenaPlayerInterface.java | 2 +- .../api/util/function/MgFunctionUtils.java | 248 +++- .../api/util/function/MgOutgoingStubbing.java | 34 +- APIv2/src/site/markdown/migrationList.md | 244 ++-- .../api/test/CommonProviderInterfaceTest.java | 64 ++ .../api/test/component/CuboidTest.java | 373 ++++++ .../ConfigurationValueInterfaceTest.java | 40 +- .../api/test/event/AbstractVetoEventTest.java | 105 ++ .../api/test/event/ArenaCreateEventTest.java | 50 + .../api/test/event/ArenaCreatedEventTest.java | 48 + .../api/test/event/ArenaDeleteEventTest.java | 50 + .../api/test/event/ArenaDeletedEventTest.java | 48 + .../test/event/ArenaMaintenanceEventTest.java | 48 + .../test/event/ArenaPlayerJoinEventTest.java | 53 + .../event/ArenaPlayerJoinedEventTest.java | 51 + .../ArenaPlayerJoinedQueueEventTest.java | 51 + .../ArenaPlayerLeavesQueueEventTest.java | 51 + .../api/test/event/ArenaStateEventTest.java | 51 + .../test/event/PlayerCloseGuiEventTest.java | 51 + .../event/PlayerDisplayGuiPageEventTest.java | 54 + .../test/event/PlayerGuiClickEventTest.java | 54 + .../test/event/PlayerOpenGuiEventTest.java | 53 + .../locale/LocalizedMessageInterfaceTest.java | 167 +++ .../component/AbstractCuboidComponent.java | 4 +- 47 files changed, 2480 insertions(+), 833 deletions(-) create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java rename APIv2/src/test/java/com/github/mce/minigames/api/{ => test}/config/ConfigurationValueInterfaceTest.java (96%) create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java diff --git a/APIv2/pom.xml b/APIv2/pom.xml index f126dd90..d5121b11 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -107,5 +107,35 @@ </plugin> </plugins> </build> + + <reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>2.1</version> + </plugin> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>0.7.6.201602180812</version> + <reportSets> + <reportSet> + <reports> + <report>report</report> + </reports> + </reportSet> + </reportSets> + </plugin> + </plugins> + </reporting> </project> \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index fe1ac30d..ac6f9bf8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -311,6 +311,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <ol> * <li>String: The command line</li> * <li>String: The sub command</li> + * </ol> */ @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) InfoUnknownSubCommand, @@ -563,6 +564,7 @@ public enum CommonMessages implements LocalizedMessageInterface * <ol> * <li>String: The command line</li> * <li>String: The sub command</li> + * </ol> */ @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) HelpUnknownSubCommand, diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 1a85d3d5..9d3acdfc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -254,7 +254,7 @@ public interface MglibInterface extends MinigameContext * The method will return the first zone it finds. * </p> * - * @param location + * @param location bukkit location * * @return Zone or {@code null} if no zone was found. * @@ -273,7 +273,7 @@ public interface MglibInterface extends MinigameContext * The method will return every zone that contains given location. Even if multiple zones are overlapping. * </p> * - * @param location + * @param location bukkit location * * @return Zone or {@code null} if no zone was found. * @@ -292,7 +292,7 @@ public interface MglibInterface extends MinigameContext * The method will return the first zone it finds. * </p> * - * @param location + * @param location bukkit location * * @return Zone or {@code null} if no zone was found. * @@ -311,7 +311,7 @@ public interface MglibInterface extends MinigameContext * The method will return every zone that contains given location. Even if multiple zones are overlapping. * </p> * - * @param location + * @param location bukkit location * * @return Zone or {@code null} if no zone was found. * @@ -330,7 +330,7 @@ public interface MglibInterface extends MinigameContext * The method will return the first zone it finds. * </p> * - * @param location + * @param location bukkit location * * @return Zone or {@code null} if no zone was found. * @@ -349,7 +349,7 @@ public interface MglibInterface extends MinigameContext * The method will return every zone that contains given location. Even if multiple zones are overlapping. * </p> * - * @param location + * @param location bukkit location * * @return Zone or {@code null} if no zone was found. * @@ -362,7 +362,7 @@ public interface MglibInterface extends MinigameContext /** * Returns the player for given bukkit player. * - * @param player + * @param player bukkit online player * @return arena player. */ ArenaPlayerInterface getPlayer(Player player); @@ -370,7 +370,7 @@ public interface MglibInterface extends MinigameContext /** * Returns the player for given bukkit player. * - * @param player + * @param player bukkit offline player * @return arena player. */ ArenaPlayerInterface getPlayer(OfflinePlayer player); @@ -378,7 +378,7 @@ public interface MglibInterface extends MinigameContext /** * Returns the player for given bukkit player uuid. * - * @param uuid + * @param uuid player uuid * @return arena player. */ ArenaPlayerInterface getPlayer(UUID uuid); @@ -462,10 +462,12 @@ public interface MglibInterface extends MinigameContext * @return the arenas of given type. */ Iterable<ArenaInterface> getArenas(ArenaTypeInterface type); - + /** * Tries to find an arena from location. + * * @param location + * bukkit location * @return arena or {@code null} if the location does not match an arena */ ArenaInterface getArenaFromLocation(Location location); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 625640e7..44049d43 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -69,6 +69,7 @@ public interface MinigameInterface extends ConfigInterface, ArenaTypeProvider * Returns the minigame arena with given internal name. * * @param name + * internal arena name * @return arena or {@code null} if the arena does not exist. */ ArenaInterface getArena(String name); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java index 35852310..a3832a7f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -67,7 +67,9 @@ public interface MinigamePluginInterface extends MinigameInterface * Registers a helper to resolve context variables. * * @param resolver + * the context resolver * @throws MinigameException + * thrown on errors */ void registerContextResolver(ContextResolverInterface resolver) throws MinigameException; diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index fae63f04..cad710a0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -34,7 +34,7 @@ public interface ArenaInterface /** * List of illegal arena names; names starting with on of these strings are disallowed. */ - String[] ILLEGAL_NAMES = {"core", "join", "leave", "mg"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + String[] ILLEGAL_NAMES = { "core", "join", "leave", "mg" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ // arena information @@ -54,18 +54,21 @@ public interface ArenaInterface /** * Returns the author of this arena. + * * @return author or {@code null} if no author was set. */ String getAuthor(); /** * Returns a short description (single line) of the arena. + * * @return short description or {@code null} if no short description was set. */ LocalizedMessageInterface getShortDescription(); /** * Returns a description (multi line) of the arena. + * * @return multi line description or {@code null} if no description was set. */ LocalizedMessageInterface getDescription(); @@ -74,6 +77,7 @@ public interface ArenaInterface * Changes the display name * * @param name + * new display name of the arena * @throws MinigameException * thrown if save failed. */ @@ -138,7 +142,7 @@ public interface ArenaInterface * @return {@code true} if the arena is enabled. */ boolean isEnabled(); - + /** * Checks if the arena is in maintenance mode. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java index 2e2180b3..3f248c7f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java @@ -361,7 +361,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all phases (including start phase) from given arena; this method must be called at first before manipulating the phases. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -371,7 +371,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all phases (excluding start phase) from given arena; this method must be called at first before manipulating the phases. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -381,7 +381,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits the start phase but not the other phases from given arena; this method must be called at first before manipulating the phases. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -391,7 +391,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -401,7 +401,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all match rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -411,7 +411,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all player rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -421,7 +421,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all team rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -431,7 +431,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all admin rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -441,7 +441,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all component rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -451,7 +451,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all rules from given arena; this method must be called at first before manipulating the rule sets. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -461,7 +461,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all components from given arena; this method must be called at first before manipulating the components. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -471,7 +471,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits all teams from given arena; this method must be called at first before manipulating the components. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. @@ -481,7 +481,7 @@ public interface ArenaTypeBuilderInterface /** * Inherits everything (all phases and all rules) from given arena. * - * @param type + * @param type the arena type to inherit from * @return this object for chaining. * @throws MinigameException * thrown if this method is called twice or too late. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java index 81ed79d3..f4dea7ec 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java @@ -25,19 +25,35 @@ public interface ArenaTypeDeclarationInterface { + /** + * Returns the type of this declaration. + * + * @return arena type + */ ArenaTypeInterface getType(); + /** + * Checks if this is the default of declaring minigame. + * + * @return {@code true} if this is the default type. + */ boolean isDefault(); - + /** * Creates a new arena + * * @param arenaName - * @return + * the internal arena name to be created + * @return the newly created arena + * @throws MinigameException + * thrown if the name is already in use or if the arena type is invalid */ ArenaInterface createArena(String arenaName) throws MinigameException; - + /** - * @return + * Returns the arena type name + * + * @return arena type name */ String getName(); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java index 463f3bb9..157cad20 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java @@ -86,6 +86,7 @@ public Cuboid(final Location startLoc, final Location endLoc) * Returns a new cuboid with given low locations. * * @param lowPoints + * the new low location * @return new cuboid */ public Cuboid setLowLoc(Location lowPoints) @@ -97,6 +98,7 @@ public Cuboid setLowLoc(Location lowPoints) * Returns a new cuboid with given high location. * * @param highPoints + * the new high location * @return new cuboid */ public Cuboid setHighLoc(Location highPoints) @@ -125,6 +127,10 @@ public boolean isAreaWithinArea(final Cuboid area) */ public boolean containsLoc(final Location loc) { + if (this.highPoints == null || this.lowPoints == null) + { + return false; + } if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) { return false; @@ -198,9 +204,9 @@ public Location getRandomLocation() final World world = this.getWorld(); final Random randomGenerator = new Random(); - Location result = new Location(world, this.highPoints.getBlockX(), this.highPoints.getBlockY(), this.highPoints.getZ()); + Location result; - if (this.getSize() > 1) + if (!this.lowPoints.equals(this.highPoints)) { final double randomX = this.lowPoints.getBlockX() + randomGenerator.nextInt(this.getXSize()); final double randomY = this.lowPoints.getBlockY() + randomGenerator.nextInt(this.getYSize()); @@ -208,6 +214,10 @@ public Location getRandomLocation() result = new Location(world, randomX, randomY, randomZ); } + else + { + result = this.highPoints.clone(); + } return result; } @@ -221,7 +231,7 @@ public Location getRandomLocationForMobs() { final Location temp = this.getRandomLocation(); - return new Location(temp.getWorld(), temp.getBlockX() + 0.5, temp.getBlockY() + 0.5, temp.getBlockZ() + 0.5); + return temp.add(0.5, 0.5, 0.5); } /** @@ -281,7 +291,7 @@ public Location getLowLoc() */ public World getWorld() { - return this.highPoints.getWorld(); + return this.highPoints == null ? null : this.highPoints.getWorld(); } /** @@ -294,12 +304,12 @@ private Map<String, Object> save() final Map<String, Object> root = new LinkedHashMap<>(); root.put("World", this.highPoints.getWorld().getName()); //$NON-NLS-1$ - root.put("X1", this.highPoints.getBlockX()); //$NON-NLS-1$ - root.put("Y1", this.highPoints.getBlockY()); //$NON-NLS-1$ - root.put("Z1", this.highPoints.getBlockZ()); //$NON-NLS-1$ - root.put("X2", this.lowPoints.getBlockX()); //$NON-NLS-1$ - root.put("Y2", this.lowPoints.getBlockY()); //$NON-NLS-1$ - root.put("Z2", this.lowPoints.getBlockZ()); //$NON-NLS-1$ + root.put("X1", this.lowPoints.getBlockX()); //$NON-NLS-1$ + root.put("Y1", this.lowPoints.getBlockY()); //$NON-NLS-1$ + root.put("Z1", this.lowPoints.getBlockZ()); //$NON-NLS-1$ + root.put("X2", this.highPoints.getBlockX()); //$NON-NLS-1$ + root.put("Y2", this.highPoints.getBlockY()); //$NON-NLS-1$ + root.put("Z2", this.highPoints.getBlockZ()); //$NON-NLS-1$ return root; } @@ -313,21 +323,23 @@ private Map<String, Object> save() */ private void load(final Map<String, Object> root) throws IllegalArgumentException { - if (root == null) + try { - throw new IllegalArgumentException("Invalid root map!"); //$NON-NLS-1$ + final World world = Bukkit.getServer().getWorld((String) root.get("World")); //$NON-NLS-1$ + final int x1 = (Integer) root.get("X1"); //$NON-NLS-1$ + final int y1 = (Integer) root.get("Y1"); //$NON-NLS-1$ + final int z1 = (Integer) root.get("Z1"); //$NON-NLS-1$ + final int x2 = (Integer) root.get("X2"); //$NON-NLS-1$ + final int y2 = (Integer) root.get("Y2"); //$NON-NLS-1$ + final int z2 = (Integer) root.get("Z2"); //$NON-NLS-1$ + + this.lowPoints = new Location(world, x1, y1, z1); + this.highPoints = new Location(world, x2, y2, z2); + } + catch (NullPointerException | ClassCastException ex) + { + throw new IllegalArgumentException("Invalid root map!", ex); //$NON-NLS-1$ } - - final World world = Bukkit.getServer().getWorld((String) root.get("World")); //$NON-NLS-1$ - final int x1 = (Integer) root.get("X1"); //$NON-NLS-1$ - final int y1 = (Integer) root.get("Y1"); //$NON-NLS-1$ - final int z1 = (Integer) root.get("Z1"); //$NON-NLS-1$ - final int x2 = (Integer) root.get("X2"); //$NON-NLS-1$ - final int y2 = (Integer) root.get("Y2"); //$NON-NLS-1$ - final int z2 = (Integer) root.get("Z2"); //$NON-NLS-1$ - - this.lowPoints = new Location(world, x1, y1, z1); - this.highPoints = new Location(world, x2, y2, z2); } @Override @@ -351,8 +363,9 @@ public void writeToConfig(ConfigurationSection section) @Override public String toString() { - return new StringBuilder("(").append(this.lowPoints.getBlockX()).append(", ").append(this.lowPoints.getBlockY()).append(", ").append(this.lowPoints.getBlockZ()).append(") to (") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - .append(this.highPoints.getBlockX()).append(", ").append(this.highPoints.getBlockY()).append(", ").append(this.highPoints.getBlockZ()).append(")").toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return this.lowPoints == null ? "(null) to (null)" //$NON-NLS-1$ + : new StringBuilder("(").append(this.lowPoints.getBlockX()).append(", ").append(this.lowPoints.getBlockY()).append(", ").append(this.lowPoints.getBlockZ()).append(") to (") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .append(this.highPoints.getBlockX()).append(", ").append(this.highPoints.getBlockY()).append(", ").append(this.highPoints.getBlockZ()).append(")").toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /** @@ -361,33 +374,12 @@ public String toString() * @return a raw representation of this cuboid */ public String toRaw() - { - return new StringBuilder(this.getWorld().getName()).append(",").append(this.lowPoints.getBlockX()).append(",").append(this.lowPoints.getBlockY()).append(",").append(this.lowPoints.getBlockZ()) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - .append(",").append(this.highPoints.getBlockX()).append(",").append(this.highPoints.getBlockY()).append(",").append(this.highPoints.getBlockZ()).toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - /** - * Normalizes the cuboid. Making the lowLoc really the lowLoc and the highLoc really to highLoc. - * - * @return normalized cuboid. - */ - public Cuboid normalize() { if (this.lowPoints == null) - { - return new Cuboid(); - } - final Location low = new Location( - this.getWorld(), - Math.min(this.lowPoints.getBlockX(), this.highPoints.getBlockX()), - Math.min(this.lowPoints.getBlockY(), this.highPoints.getBlockY()), - Math.min(this.lowPoints.getBlockZ(), this.highPoints.getBlockZ())); - final Location high = new Location( - this.getWorld(), - Math.max(this.lowPoints.getBlockX(), this.highPoints.getBlockX()), - Math.max(this.lowPoints.getBlockY(), this.highPoints.getBlockY()), - Math.max(this.lowPoints.getBlockZ(), this.highPoints.getBlockZ())); - return new Cuboid(low, high); + return "null"; //$NON-NLS-1$ + return new StringBuilder(this.getWorld() == null ? "null" : this.getWorld().getName()).append(",").append(this.lowPoints.getBlockX()).append(",").append(this.lowPoints.getBlockY()).append(",") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .append(this.lowPoints.getBlockZ()) + .append(",").append(this.highPoints.getBlockX()).append(",").append(this.highPoints.getBlockY()).append(",").append(this.highPoints.getBlockZ()).toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java index 071683e2..a49888c4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java @@ -39,6 +39,7 @@ public interface ConfigurationValueInterface /** * Checks if this configuration variable is a boolean. + * * @return {@code true} if this is a boolean */ default boolean isBoolean() @@ -48,6 +49,7 @@ default boolean isBoolean() /** * Checks if this configuration variable is a boolean list. + * * @return {@code true} if this is a boolean list */ default boolean isBooleanList() @@ -57,6 +59,7 @@ default boolean isBooleanList() /** * Checks if this configuration variable is a byte. + * * @return {@code true} if this is a byte */ default boolean isByte() @@ -66,6 +69,7 @@ default boolean isByte() /** * Checks if this configuration variable is a byte list. + * * @return {@code true} if this is a byte list */ default boolean isByteList() @@ -75,6 +79,7 @@ default boolean isByteList() /** * Checks if this configuration variable is a character. + * * @return {@code true} if this is a character */ default boolean isCharacter() @@ -84,6 +89,7 @@ default boolean isCharacter() /** * Checks if this configuration variable is a character list. + * * @return {@code true} if this is a character list */ default boolean isCharacterList() @@ -93,6 +99,7 @@ default boolean isCharacterList() /** * Checks if this configuration variable is a color list. + * * @return {@code true} if this is a color list */ default boolean isColorList() @@ -102,6 +109,7 @@ default boolean isColorList() /** * Checks if this configuration variable is a color. + * * @return {@code true} if this is a color */ default boolean isColor() @@ -111,6 +119,7 @@ default boolean isColor() /** * Checks if this configuration variable is a double list. + * * @return {@code true} if this is a double list */ default boolean isDoubleList() @@ -120,6 +129,7 @@ default boolean isDoubleList() /** * Checks if this configuration variable is a double. + * * @return {@code true} if this is a double */ default boolean isDouble() @@ -129,6 +139,7 @@ default boolean isDouble() /** * Checks if this configuration variable is a float list. + * * @return {@code true} if this is a float list */ default boolean isFloatList() @@ -138,6 +149,7 @@ default boolean isFloatList() /** * Checks if this configuration variable is a float. + * * @return {@code true} if this is a float */ default boolean isFloat() @@ -147,6 +159,7 @@ default boolean isFloat() /** * Checks if this configuration variable is a int list. + * * @return {@code true} if this is a int list */ default boolean isIntList() @@ -156,6 +169,7 @@ default boolean isIntList() /** * Checks if this configuration variable is a int. + * * @return {@code true} if this is a int */ default boolean isInt() @@ -165,6 +179,7 @@ default boolean isInt() /** * Checks if this configuration variable is an item stack list. + * * @return {@code true} if this is an item stack list */ default boolean isItemStackList() @@ -174,6 +189,7 @@ default boolean isItemStackList() /** * Checks if this configuration variable is an item stack. + * * @return {@code true} if this is an item stack */ default boolean isItemStack() @@ -183,6 +199,7 @@ default boolean isItemStack() /** * Checks if this configuration variable is a section. + * * @return {@code true} if this is a section */ default boolean isSection() @@ -192,6 +209,7 @@ default boolean isSection() /** * Checks if this configuration variable is a long list. + * * @return {@code true} if this is a long list */ default boolean isLongList() @@ -201,6 +219,7 @@ default boolean isLongList() /** * Checks if this configuration variable is a long. + * * @return {@code true} if this is a long */ default boolean isLong() @@ -210,6 +229,7 @@ default boolean isLong() /** * Checks if this configuration variable is an object list. + * * @return {@code true} if this is an object list */ default boolean isObjectList() @@ -219,6 +239,7 @@ default boolean isObjectList() /** * Checks if this configuration variable is an object. + * * @return {@code true} if this is an object */ default boolean isObject() @@ -228,6 +249,7 @@ default boolean isObject() /** * Checks if this configuration variable is a player list. + * * @return {@code true} if this is a player list */ default boolean isPlayerList() @@ -237,6 +259,7 @@ default boolean isPlayerList() /** * Checks if this configuration variable is a player. + * * @return {@code true} if this is a player */ default boolean isPlayer() @@ -246,6 +269,7 @@ default boolean isPlayer() /** * Checks if this configuration variable is a short list. + * * @return {@code true} if this is a short list */ default boolean isShortList() @@ -255,6 +279,7 @@ default boolean isShortList() /** * Checks if this configuration variable is a short. + * * @return {@code true} if this is a short */ default boolean isShort() @@ -264,6 +289,7 @@ default boolean isShort() /** * Checks if this configuration variable is a string list. + * * @return {@code true} if this is a string list */ default boolean isStringList() @@ -273,6 +299,7 @@ default boolean isStringList() /** * Checks if this configuration variable is a string. + * * @return {@code true} if this is a string */ default boolean isString() @@ -282,6 +309,7 @@ default boolean isString() /** * Checks if this configuration variable is a vector list. + * * @return {@code true} if this is a vector list */ default boolean isVectorList() @@ -291,6 +319,7 @@ default boolean isVectorList() /** * Checks if this configuration variable is a vector. + * * @return {@code true} if this is a vector */ default boolean isVector() @@ -300,6 +329,7 @@ default boolean isVector() /** * Returns the configuration path of this option + * * @return configuration path */ default String path() @@ -599,19 +629,18 @@ default boolean isset(String path) * @param value * value to set. * @param subpath + * the sub path */ default void setObject(Configurable value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); - if (section == null) - { - section = minigame.getConfig(configs.file()).createSection(path); - } - value.writeToConfig(section); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + if (section == null) + { + section = minigame.getConfig(configs.file()).createSection(path); + } + value.writeToConfig(section); + }); } /** @@ -620,19 +649,18 @@ default void setObject(Configurable value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setObjectList(Configurable[] value, String subpath) { - ConfigurationTool.consumeList( - this, subpath, value, - (val, configs, config, lib, minigame, section, path, element) -> { - org.bukkit.configuration.ConfigurationSection section2 = section.getConfigurationSection(path); - if (section2 == null) - { - section2 = section.createSection(path); - } - element.writeToConfig(section2); - }); + ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { + org.bukkit.configuration.ConfigurationSection section2 = section.getConfigurationSection(path); + if (section2 == null) + { + section2 = section.createSection(path); + } + element.writeToConfig(section2); + }); } /** @@ -641,14 +669,13 @@ default void setObjectList(Configurable[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setBoolean(boolean value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); + }); } /** @@ -657,16 +684,16 @@ default void setBoolean(boolean value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setBooleanList(boolean[] value, String subpath) { final List<Boolean> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -675,14 +702,13 @@ default void setBooleanList(boolean[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setByte(byte value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); + }); } /** @@ -691,16 +717,16 @@ default void setByte(byte value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setByteList(byte[] value, String subpath) { final List<Byte> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -709,14 +735,13 @@ default void setByteList(byte[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setCharacter(char value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, String.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, String.valueOf(value)); + }); } /** @@ -725,16 +750,16 @@ default void setCharacter(char value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setCharacterList(char[] value, String subpath) { final List<Character> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -743,14 +768,13 @@ default void setCharacterList(char[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setColor(Color value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); } /** @@ -759,14 +783,13 @@ default void setColor(Color value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setColorList(Color[] value, String subpath) { - ConfigurationTool.consumeList( - this, subpath, value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element); - }); + ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element); + }); } /** @@ -775,16 +798,14 @@ default void setColorList(Color[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setDouble(double value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); + }); } - /** * Sets the value to this configuration variable. @@ -792,31 +813,31 @@ default void setDouble(double value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setDoubleList(double[] value, String subpath) { final List<Double> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } + /** * Sets the value to this configuration variable. * * @param value * value to set. * @param subpath + * the sub path */ default void setFloat(float value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); + }); } /** @@ -825,16 +846,16 @@ default void setFloat(float value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setFloatList(float[] value, String subpath) { final List<Float> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -843,14 +864,13 @@ default void setFloatList(float[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setInt(int value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); + }); } /** @@ -859,16 +879,16 @@ default void setInt(int value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setIntList(int[] value, String subpath) { final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -877,14 +897,13 @@ default void setIntList(int[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setItemStack(ItemStack value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); } /** @@ -893,14 +912,13 @@ default void setItemStack(ItemStack value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setItemStackList(ItemStack[] value, String subpath) { - ConfigurationTool.consumeList( - this, subpath, value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); + ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); } /** @@ -909,14 +927,13 @@ default void setItemStackList(ItemStack[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setLong(long value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); + }); } /** @@ -925,16 +942,16 @@ default void setLong(long value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setLongList(long[] value, String subpath) { final List<Long> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -943,14 +960,13 @@ default void setLongList(long[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setPlayer(ArenaPlayerInterface value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); + }); } /** @@ -959,14 +975,13 @@ default void setPlayer(ArenaPlayerInterface value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setPlayerList(ArenaPlayerInterface[] value, String subpath) { - ConfigurationTool.consumeList( - this, subpath, value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.getOfflinePlayer()); - }); + ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.getOfflinePlayer()); + }); } /** @@ -975,14 +990,13 @@ default void setPlayerList(ArenaPlayerInterface[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setShort(short value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); + }); } /** @@ -991,16 +1005,16 @@ default void setShort(short value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setShortList(short[] value, String subpath) { final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(Integer.valueOf(value[i])); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(Integer.valueOf(value[i])); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1009,14 +1023,13 @@ default void setShortList(short[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setString(String value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); } /** @@ -1025,16 +1038,16 @@ default void setString(String value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setStringList(String[] value, String subpath) { final List<String> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1043,14 +1056,13 @@ default void setStringList(String[] value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setVector(Vector value, String subpath) { - ConfigurationTool.consume( - this, subpath, - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); + ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); } /** @@ -1059,14 +1071,13 @@ default void setVector(Vector value, String subpath) * @param value * value to set. * @param subpath + * the sub path */ default void setVectorList(Vector[] value, String subpath) { - ConfigurationTool.consumeList( - this, subpath, value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); + ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); } /** @@ -1077,16 +1088,14 @@ default void setVectorList(Vector[] value, String subpath) */ default void setObject(Configurable value) { - ConfigurationTool.consume( - this, ConfigurationObject.class, ConfigurationTool.objectPath(), - (val, configs, config, lib, minigame, path) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); - if (section == null) - { - section = minigame.getConfig(configs.file()).createSection(path); - } - value.writeToConfig(section); - }); + ConfigurationTool.consume(this, ConfigurationObject.class, ConfigurationTool.objectPath(), (val, configs, config, lib, minigame, path) -> { + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + if (section == null) + { + section = minigame.getConfig(configs.file()).createSection(path); + } + value.writeToConfig(section); + }); } /** @@ -1097,16 +1106,14 @@ default void setObject(Configurable value) */ default void setObjectList(Configurable[] value) { - ConfigurationTool.consumeList( - this, ConfigurationObjectList.class, ConfigurationTool.objectListPath(), value, - (val, configs, config, lib, minigame, section, path, element) -> { - org.bukkit.configuration.ConfigurationSection configurationSection = section.getConfigurationSection(path); - if (configurationSection == null) - { - configurationSection = section.createSection(path); - } - element.writeToConfig(configurationSection); - }); + ConfigurationTool.consumeList(this, ConfigurationObjectList.class, ConfigurationTool.objectListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { + org.bukkit.configuration.ConfigurationSection configurationSection = section.getConfigurationSection(path); + if (configurationSection == null) + { + configurationSection = section.createSection(path); + } + element.writeToConfig(configurationSection); + }); } /** @@ -1117,11 +1124,9 @@ default void setObjectList(Configurable[] value) */ default void setBoolean(boolean value) { - ConfigurationTool.consume( - this, ConfigurationBool.class, ConfigurationTool.boolPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationBool.class, ConfigurationTool.boolPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); + }); } /** @@ -1133,12 +1138,11 @@ default void setBoolean(boolean value) default void setBooleanList(boolean[] value) { final List<Boolean> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1149,11 +1153,9 @@ default void setBooleanList(boolean[] value) */ default void setByte(byte value) { - ConfigurationTool.consume( - this, ConfigurationByte.class, ConfigurationTool.bytePath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationByte.class, ConfigurationTool.bytePath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); + }); } /** @@ -1165,12 +1167,11 @@ default void setByte(byte value) default void setByteList(byte[] value) { final List<Byte> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1181,11 +1182,9 @@ default void setByteList(byte[] value) */ default void setCharacter(char value) { - ConfigurationTool.consume( - this, ConfigurationCharacter.class, ConfigurationTool.charPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, String.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationCharacter.class, ConfigurationTool.charPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, String.valueOf(value)); + }); } /** @@ -1197,12 +1196,11 @@ default void setCharacter(char value) default void setCharacterList(char[] value) { final List<Character> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1213,11 +1211,9 @@ default void setCharacterList(char[] value) */ default void setColor(Color value) { - ConfigurationTool.consume( - this, ConfigurationColor.class, ConfigurationTool.colorPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); + ConfigurationTool.consume(this, ConfigurationColor.class, ConfigurationTool.colorPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); } /** @@ -1228,11 +1224,9 @@ default void setColor(Color value) */ default void setColorList(Color[] value) { - ConfigurationTool.consumeList( - this, ConfigurationColorList.class, ConfigurationTool.colorListPath(), value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element); - }); + ConfigurationTool.consumeList(this, ConfigurationColorList.class, ConfigurationTool.colorListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element); + }); } /** @@ -1243,13 +1237,10 @@ default void setColorList(Color[] value) */ default void setDouble(double value) { - ConfigurationTool.consume( - this, ConfigurationDouble.class, ConfigurationTool.doublePath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationDouble.class, ConfigurationTool.doublePath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); + }); } - /** * Sets the value to this configuration variable. @@ -1260,13 +1251,13 @@ default void setDouble(double value) default void setDoubleList(double[] value) { final List<Double> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } + /** * Sets the value to this configuration variable. * @@ -1275,11 +1266,9 @@ default void setDoubleList(double[] value) */ default void setFloat(float value) { - ConfigurationTool.consume( - this, ConfigurationFloat.class, ConfigurationTool.floatPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationFloat.class, ConfigurationTool.floatPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); + }); } /** @@ -1291,12 +1280,11 @@ default void setFloat(float value) default void setFloatList(float[] value) { final List<Float> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1307,11 +1295,9 @@ default void setFloatList(float[] value) */ default void setInt(int value) { - ConfigurationTool.consume( - this, ConfigurationInt.class, ConfigurationTool.intPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationInt.class, ConfigurationTool.intPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); + }); } /** @@ -1323,12 +1309,11 @@ default void setInt(int value) default void setIntList(int[] value) { final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationIntList.class, ConfigurationTool.intListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationIntList.class, ConfigurationTool.intListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1339,11 +1324,9 @@ default void setIntList(int[] value) */ default void setItemStack(ItemStack value) { - ConfigurationTool.consume( - this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); + ConfigurationTool.consume(this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); } /** @@ -1354,11 +1337,9 @@ default void setItemStack(ItemStack value) */ default void setItemStackList(ItemStack[] value) { - ConfigurationTool.consumeList( - this, ConfigurationItemStackList.class, ConfigurationTool.itemStackListPath(), value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); + ConfigurationTool.consumeList(this, ConfigurationItemStackList.class, ConfigurationTool.itemStackListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); } /** @@ -1369,11 +1350,9 @@ default void setItemStackList(ItemStack[] value) */ default void setLong(long value) { - ConfigurationTool.consume( - this, ConfigurationLong.class, ConfigurationTool.longPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationLong.class, ConfigurationTool.longPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); + }); } /** @@ -1385,12 +1364,11 @@ default void setLong(long value) default void setLongList(long[] value) { final List<Long> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationLongList.class, ConfigurationTool.longListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationLongList.class, ConfigurationTool.longListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1401,11 +1379,9 @@ default void setLongList(long[] value) */ default void setPlayer(ArenaPlayerInterface value) { - ConfigurationTool.consume( - this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); - }); + ConfigurationTool.consume(this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); + }); } /** @@ -1416,11 +1392,9 @@ default void setPlayer(ArenaPlayerInterface value) */ default void setPlayerList(ArenaPlayerInterface[] value) { - ConfigurationTool.consumeList( - this, ConfigurationPlayerList.class, ConfigurationTool.playerListPath(), value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.getOfflinePlayer()); - }); + ConfigurationTool.consumeList(this, ConfigurationPlayerList.class, ConfigurationTool.playerListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.getOfflinePlayer()); + }); } /** @@ -1431,11 +1405,9 @@ default void setPlayerList(ArenaPlayerInterface[] value) */ default void setShort(short value) { - ConfigurationTool.consume( - this, ConfigurationShort.class, ConfigurationTool.shortPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); - }); + ConfigurationTool.consume(this, ConfigurationShort.class, ConfigurationTool.shortPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); + }); } /** @@ -1447,12 +1419,11 @@ default void setShort(short value) default void setShortList(short[] value) { final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(Integer.valueOf(value[i])); - ConfigurationTool.consume( - this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(Integer.valueOf(value[i])); + ConfigurationTool.consume(this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1463,11 +1434,9 @@ default void setShortList(short[] value) */ default void setString(String value) { - ConfigurationTool.consume( - this, ConfigurationString.class, ConfigurationTool.stringPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); + ConfigurationTool.consume(this, ConfigurationString.class, ConfigurationTool.stringPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value); + }); } /** @@ -1479,12 +1448,11 @@ default void setString(String value) default void setStringList(String[] value) { final List<String> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) list.add(value[i]); - ConfigurationTool.consume( - this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); + for (int i = 0; i < value.length; i++) + list.add(value[i]); + ConfigurationTool.consume(this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, list); + }); } /** @@ -1495,11 +1463,9 @@ default void setStringList(String[] value) */ default void setVector(Vector value) { - ConfigurationTool.consume( - this, ConfigurationVector.class, ConfigurationTool.vectorPath(), - (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); + ConfigurationTool.consume(this, ConfigurationVector.class, ConfigurationTool.vectorPath(), (val, configs, config, lib, minigame, path) -> { + minigame.getConfig(configs.file()).set(path, value.clone()); + }); } /** @@ -1510,33 +1476,31 @@ default void setVector(Vector value) */ default void setVectorList(Vector[] value) { - ConfigurationTool.consumeList( - this, ConfigurationVectorList.class, ConfigurationTool.vectorListPath(), value, - (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); + ConfigurationTool.consumeList(this, ConfigurationVectorList.class, ConfigurationTool.vectorListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { + section.set(path, element.clone()); + }); } /** * Returns the value of given configuration value. * * @return value. + * @param <T> + * Configurable object class */ @SuppressWarnings("unchecked") default <T extends Configurable> T getObject() { - return (T) ConfigurationTool.calculate( - this, ConfigurationObject.class, ConfigurationTool.objectPath(), - (val, configs, config, lib, minigame, path) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); - if (section == null) - { - return null; - } - final Configurable result = config.clazz().newInstance(); - result.readFromConfig(section); - return result; - }); + return (T) ConfigurationTool.calculate(this, ConfigurationObject.class, ConfigurationTool.objectPath(), (val, configs, config, lib, minigame, path) -> { + org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); + if (section == null) + { + return null; + } + final Configurable result = config.clazz().newInstance(); + result.readFromConfig(section); + return result; + }); } /** @@ -1546,8 +1510,7 @@ default <T extends Configurable> T getObject() */ default byte getByte() { - return ConfigurationTool.calculate( - this, ConfigurationByte.class, ConfigurationTool.bytePath(), + return ConfigurationTool.calculate(this, ConfigurationByte.class, ConfigurationTool.bytePath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())).byteValue(); } @@ -1558,8 +1521,7 @@ default byte getByte() */ default Color getColor() { - return ConfigurationTool.calculate( - this, ConfigurationColor.class, ConfigurationTool.colorPath(), + return ConfigurationTool.calculate(this, ConfigurationColor.class, ConfigurationTool.colorPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getColor(path, Color.fromRGB(config.defaultRgb()))); } @@ -1570,12 +1532,10 @@ default Color getColor() */ default ItemStack getItemStack() { - return ConfigurationTool.calculate( - this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), - (val, configs, config, lib, minigame, path) -> { - final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(path); - return stack == null ? null : stack.clone(); - }); + return ConfigurationTool.calculate(this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), (val, configs, config, lib, minigame, path) -> { + final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(path); + return stack == null ? null : stack.clone(); + }); } /** @@ -1585,12 +1545,10 @@ default ItemStack getItemStack() */ default Vector getVector() { - return ConfigurationTool.calculate( - this, ConfigurationVector.class, ConfigurationTool.vectorPath(), - (val, configs, config, lib, minigame, path) -> { - final Vector vector = minigame.getConfig(configs.file()).getVector(path); - return vector == null ? null : vector.clone(); - }); + return ConfigurationTool.calculate(this, ConfigurationVector.class, ConfigurationTool.vectorPath(), (val, configs, config, lib, minigame, path) -> { + final Vector vector = minigame.getConfig(configs.file()).getVector(path); + return vector == null ? null : vector.clone(); + }); } /** @@ -1600,8 +1558,7 @@ default Vector getVector() */ default ArenaPlayerInterface getPlayer() { - return ConfigurationTool.calculate( - this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), + return ConfigurationTool.calculate(this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), (val, configs, config, lib, minigame, path) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(path))); } @@ -1612,8 +1569,7 @@ default ArenaPlayerInterface getPlayer() */ default char getCharacter() { - return ConfigurationTool.calculate( - this, ConfigurationCharacter.class, ConfigurationTool.charPath(), + return ConfigurationTool.calculate(this, ConfigurationCharacter.class, ConfigurationTool.charPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getString(path, "" + config.defaultValue())).charAt(0); //$NON-NLS-1$ } @@ -1624,8 +1580,7 @@ default char getCharacter() */ default boolean getBoolean() { - return ConfigurationTool.calculate( - this, ConfigurationBool.class, ConfigurationTool.boolPath(), + return ConfigurationTool.calculate(this, ConfigurationBool.class, ConfigurationTool.boolPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBoolean(path, config.defaultValue())); } @@ -1636,13 +1591,12 @@ default boolean getBoolean() */ default boolean[] getBooleanList() { - final List<Boolean> list = ConfigurationTool.calculate( - this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), + final List<Boolean> list = ConfigurationTool.calculate(this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBooleanList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final boolean[] result = new boolean[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1653,13 +1607,12 @@ default boolean[] getBooleanList() */ default byte[] getByteList() { - final List<Byte> list = ConfigurationTool.calculate( - this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), + final List<Byte> list = ConfigurationTool.calculate(this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getByteList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final byte[] result = new byte[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1670,13 +1623,12 @@ default byte[] getByteList() */ default char[] getCharacterList() { - final List<Character> list = ConfigurationTool.calculate( - this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), + final List<Character> list = ConfigurationTool.calculate(this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getCharacterList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final char[] result = new char[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1687,8 +1639,7 @@ default char[] getCharacterList() */ default double getDouble() { - return ConfigurationTool.calculate( - this, ConfigurationDouble.class, ConfigurationTool.doublePath(), + return ConfigurationTool.calculate(this, ConfigurationDouble.class, ConfigurationTool.doublePath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDouble(path, config.defaultValue())); } @@ -1699,8 +1650,7 @@ default double getDouble() */ default float getFloat() { - return ConfigurationTool.calculate( - this, ConfigurationFloat.class, ConfigurationTool.floatPath(), + return ConfigurationTool.calculate(this, ConfigurationFloat.class, ConfigurationTool.floatPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDouble(path, config.defaultValue())).floatValue(); } @@ -1711,13 +1661,12 @@ default float getFloat() */ default double[] getDoubleList() { - final List<Double> list = ConfigurationTool.calculate( - this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), + final List<Double> list = ConfigurationTool.calculate(this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDoubleList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final double[] result = new double[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1728,13 +1677,12 @@ default double[] getDoubleList() */ default float[] getFloatList() { - final List<Float> list = ConfigurationTool.calculate( - this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), + final List<Float> list = ConfigurationTool.calculate(this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getFloatList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final float[] result = new float[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1745,8 +1693,7 @@ default float[] getFloatList() */ default int getInt() { - return ConfigurationTool.calculate( - this, ConfigurationInt.class, ConfigurationTool.intPath(), + return ConfigurationTool.calculate(this, ConfigurationInt.class, ConfigurationTool.intPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())); } @@ -1757,8 +1704,7 @@ default int getInt() */ default short getShort() { - return ConfigurationTool.calculate( - this, ConfigurationShort.class, ConfigurationTool.shortPath(), + return ConfigurationTool.calculate(this, ConfigurationShort.class, ConfigurationTool.shortPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())).shortValue(); } @@ -1769,13 +1715,12 @@ default short getShort() */ default int[] getIntList() { - final List<Integer> list = ConfigurationTool.calculate( - this, ConfigurationIntList.class, ConfigurationTool.intListPath(), + final List<Integer> list = ConfigurationTool.calculate(this, ConfigurationIntList.class, ConfigurationTool.intListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getIntegerList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final int[] result = new int[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1786,8 +1731,7 @@ default int[] getIntList() */ default long getLong() { - return ConfigurationTool.calculate( - this, ConfigurationLong.class, ConfigurationTool.longPath(), + return ConfigurationTool.calculate(this, ConfigurationLong.class, ConfigurationTool.longPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLong(path, config.defaultValue())); } @@ -1798,13 +1742,12 @@ default long getLong() */ default long[] getLongList() { - final List<Long> list = ConfigurationTool.calculate( - this, ConfigurationLongList.class, ConfigurationTool.longListPath(), + final List<Long> list = ConfigurationTool.calculate(this, ConfigurationLongList.class, ConfigurationTool.longListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLongList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final long[] result = new long[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1815,13 +1758,12 @@ default long[] getLongList() */ default short[] getShortList() { - final List<Short> list = ConfigurationTool.calculate( - this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), + final List<Short> list = ConfigurationTool.calculate(this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getShortList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue())) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); final short[] result = new short[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -1832,8 +1774,7 @@ default short[] getShortList() */ default String getString() { - return ConfigurationTool.calculate( - this, ConfigurationString.class, ConfigurationTool.stringPath(), + return ConfigurationTool.calculate(this, ConfigurationString.class, ConfigurationTool.stringPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getString(path, config.defaultValue())); } @@ -1844,11 +1785,9 @@ default String getString() */ default String[] getStringList() { - final List<String> list = ConfigurationTool.calculate( - this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), + final List<String> list = ConfigurationTool.calculate(this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getStringList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(config.defaultValue()) - ); + (val, configs, config, lib, minigame, path) -> Arrays.asList(config.defaultValue())); return list.toArray(new String[list.size()]); } @@ -1859,8 +1798,7 @@ default String[] getStringList() */ default Vector[] getVectorList() { - return ConfigurationTool.calculateList( - this, ConfigurationVectorList.class, Vector.class, ConfigurationTool.vectorListPath(), + return ConfigurationTool.calculateList(this, ConfigurationVectorList.class, Vector.class, ConfigurationTool.vectorListPath(), (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); } @@ -1871,8 +1809,7 @@ default Vector[] getVectorList() */ default ItemStack[] getItemStackList() { - return ConfigurationTool.calculateList( - this, ConfigurationItemStackList.class, ItemStack.class, ConfigurationTool.itemStackListPath(), + return ConfigurationTool.calculateList(this, ConfigurationItemStackList.class, ItemStack.class, ConfigurationTool.itemStackListPath(), (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); } @@ -1880,17 +1817,18 @@ default ItemStack[] getItemStackList() * Returns the value of given configuration value. * * @param clazz + * Configurable object class * @return value. + * @param <T> + * Configurable object class */ default <T extends Configurable> T[] getObjectList(Class<T> clazz) { - return ConfigurationTool.calculateList( - this, ConfigurationObjectList.class, clazz, ConfigurationTool.objectListPath(), - (val, configs, config, lib, minigame, section, key) -> { - final T ret = clazz.newInstance(); - ret.readFromConfig(section.getConfigurationSection(key)); - return ret; - }); + return ConfigurationTool.calculateList(this, ConfigurationObjectList.class, clazz, ConfigurationTool.objectListPath(), (val, configs, config, lib, minigame, section, key) -> { + final T ret = clazz.newInstance(); + ret.readFromConfig(section.getConfigurationSection(key)); + return ret; + }); } /** @@ -1900,8 +1838,7 @@ default <T extends Configurable> T[] getObjectList(Class<T> clazz) */ default Color[] getColorList() { - return ConfigurationTool.calculateList( - this, ConfigurationColorList.class, Color.class, ConfigurationTool.colorListPath(), + return ConfigurationTool.calculateList(this, ConfigurationColorList.class, Color.class, ConfigurationTool.colorListPath(), (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); } @@ -1912,8 +1849,7 @@ default Color[] getColorList() */ default ArenaPlayerInterface[] getPlayerList() { - return ConfigurationTool.calculateList( - this, ConfigurationPlayerList.class, ArenaPlayerInterface.class, ConfigurationTool.playerListPath(), + return ConfigurationTool.calculateList(this, ConfigurationPlayerList.class, ArenaPlayerInterface.class, ConfigurationTool.playerListPath(), (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); } @@ -1921,6 +1857,7 @@ default ArenaPlayerInterface[] getPlayerList() * Returns the keys of given configuration section. * * @param deep + * true for deep keys * * @return value. */ @@ -1950,25 +1887,26 @@ default String[] getKeys(boolean deep) * Returns the value of given configuration value. * * @param clazz + * Configurable object class * @param path * sub path of configuration section * @return value. + * @param <T> + * Configurable object class */ @SuppressWarnings("unchecked") default <T extends Configurable> T getObject(Class<T> clazz, String path) { - return (T) ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); - if (section != null) - { - final Configurable result = clazz.newInstance(); - result.readFromConfig(section); - return result; - } - return null; - }); + return (T) ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { + final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); + if (section != null) + { + final Configurable result = clazz.newInstance(); + result.readFromConfig(section); + return result; + } + return null; + }); } /** @@ -1977,14 +1915,13 @@ default <T extends Configurable> T getObject(Class<T> clazz, String path) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default byte getByte(String path, byte defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).byteValue(); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).byteValue(); } /** @@ -1993,14 +1930,13 @@ default byte getByte(String path, byte defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default boolean getBoolean(String path, boolean defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBoolean(spath, defaultValue)); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBoolean(spath, defaultValue)); } /** @@ -2009,17 +1945,18 @@ default boolean getBoolean(String path, boolean defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default boolean[] getBooleanList(String path, boolean[] defaultValue) { - final List<Boolean> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBooleanList(spath)); - if (list.size() == 0) return defaultValue; + final List<Boolean> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBooleanList(spath)); + if (list.size() == 0) + return defaultValue; final boolean[] result = new boolean[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2029,17 +1966,18 @@ default boolean[] getBooleanList(String path, boolean[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default byte[] getByteList(String path, byte[] defaultValue) { - final List<Byte> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getByteList(spath)); - if (list.size() == 0) return defaultValue; + final List<Byte> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getByteList(spath)); + if (list.size() == 0) + return defaultValue; final byte[] result = new byte[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2049,17 +1987,18 @@ default byte[] getByteList(String path, byte[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default char[] getCharacterList(String path, char[] defaultValue) { - final List<Character> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getCharacterList(spath)); - if (list.size() == 0) return defaultValue; + final List<Character> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getCharacterList(spath)); + if (list.size() == 0) + return defaultValue; final char[] result = new char[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2069,14 +2008,13 @@ default char[] getCharacterList(String path, char[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default double getDouble(String path, double defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)); } /** @@ -2085,14 +2023,13 @@ default double getDouble(String path, double defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default float getFloat(String path, float defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)).floatValue(); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)).floatValue(); } /** @@ -2101,17 +2038,18 @@ default float getFloat(String path, float defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default double[] getDoubleList(String path, double[] defaultValue) { - final List<Double> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDoubleList(spath)); - if (list.size() == 0) return defaultValue; + final List<Double> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDoubleList(spath)); + if (list.size() == 0) + return defaultValue; final double[] result = new double[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2121,17 +2059,18 @@ default double[] getDoubleList(String path, double[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default float[] getFloatList(String path, float[] defaultValue) { - final List<Float> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getFloatList(spath)); - if (list.size() == 0) return defaultValue; + final List<Float> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getFloatList(spath)); + if (list.size() == 0) + return defaultValue; final float[] result = new float[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2141,14 +2080,13 @@ default float[] getFloatList(String path, float[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default int getInt(String path, int defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)); } /** @@ -2157,17 +2095,18 @@ default int getInt(String path, int defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default int[] getIntList(String path, int[] defaultValue) { - final List<Integer> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getIntegerList(spath)); - if (list.size() == 0) return defaultValue; + final List<Integer> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getIntegerList(spath)); + if (list.size() == 0) + return defaultValue; final int[] result = new int[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2177,14 +2116,13 @@ default int[] getIntList(String path, int[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default long getLong(String path, long defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLong(spath, defaultValue)); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLong(spath, defaultValue)); } /** @@ -2193,14 +2131,13 @@ default long getLong(String path, long defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default short getShort(String path, short defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).shortValue(); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).shortValue(); } /** @@ -2209,17 +2146,18 @@ default short getShort(String path, short defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default long[] getLongList(String path, long[] defaultValue) { - final List<Long> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLongList(spath)); - if (list.size() == 0) return defaultValue; + final List<Long> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLongList(spath)); + if (list.size() == 0) + return defaultValue; final long[] result = new long[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2229,17 +2167,18 @@ default long[] getLongList(String path, long[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default short[] getShortList(String path, short[] defaultValue) { - final List<Short> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getShortList(spath)); - if (list.size() == 0) return defaultValue; + final List<Short> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getShortList(spath)); + if (list.size() == 0) + return defaultValue; final short[] result = new short[list.size()]; - for (int i = 0; i < result.length; i++) result[i] = list.get(i); + for (int i = 0; i < result.length; i++) + result[i] = list.get(i); return result; } @@ -2249,14 +2188,13 @@ default short[] getShortList(String path, short[] defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default String getString(String path, String defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, defaultValue)); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, defaultValue)); } /** @@ -2265,14 +2203,13 @@ default String getString(String path, String defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default char getCharacter(String path, char defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, "" + defaultValue)).charAt(0); //$NON-NLS-1$ + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, "" + defaultValue)).charAt(0); //$NON-NLS-1$ } /** @@ -2281,17 +2218,16 @@ default char getCharacter(String path, char defaultValue) * @param path * sub path of configuration section * @param defaultValue + * the default value to return * * @return value. */ default Color getColor(String path, Color defaultValue) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> { - final Color col = minigame.getConfig(configs.file()).getColor(spath); - return col == null ? defaultValue : col; - }); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { + final Color col = minigame.getConfig(configs.file()).getColor(spath); + return col == null ? defaultValue : col; + }); } /** @@ -2304,12 +2240,10 @@ default Color getColor(String path, Color defaultValue) */ default ItemStack getItemStack(String path) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> { - final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(spath); - return stack == null ? null : stack.clone(); - }); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { + final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(spath); + return stack == null ? null : stack.clone(); + }); } /** @@ -2322,12 +2256,10 @@ default ItemStack getItemStack(String path) */ default Vector getVector(String path) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> { - final Vector result = minigame.getConfig(configs.file()).getVector(spath); - return result == null ? null : result.clone(); - }); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { + final Vector result = minigame.getConfig(configs.file()).getVector(spath); + return result == null ? null : result.clone(); + }); } /** @@ -2340,9 +2272,7 @@ default Vector getVector(String path) */ default Vector[] getVectorList(String path) { - return ConfigurationTool.calculateList( - this, path, Vector.class, - (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); + return ConfigurationTool.calculateList(this, path, Vector.class, (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); } /** @@ -2355,29 +2285,26 @@ default Vector[] getVectorList(String path) */ default ItemStack[] getItemStackList(String path) { - return ConfigurationTool.calculateList( - this, path, ItemStack.class, - (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); + return ConfigurationTool.calculateList(this, path, ItemStack.class, (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); } /** * Returns the value of given configuration value. * - * @param clazz + * @param clazz Configurable object class * @param path * sub path of configuration section * * @return value. + * @param <T> Configurable object class */ default <T extends Configurable> T[] getObjectList(Class<T> clazz, String path) { - return ConfigurationTool.calculateList( - this, path, clazz, - (val, configs, config, lib, minigame, section, key) -> { - final T result = clazz.newInstance(); - result.readFromConfig(section.getConfigurationSection(key)); - return result; - }); + return ConfigurationTool.calculateList(this, path, clazz, (val, configs, config, lib, minigame, section, key) -> { + final T result = clazz.newInstance(); + result.readFromConfig(section.getConfigurationSection(key)); + return result; + }); } /** @@ -2390,9 +2317,7 @@ default <T extends Configurable> T[] getObjectList(Class<T> clazz, String path) */ default Color[] getColorList(String path) { - return ConfigurationTool.calculateList( - this, path, Color.class, - (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); + return ConfigurationTool.calculateList(this, path, Color.class, (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); } /** @@ -2405,9 +2330,7 @@ default Color[] getColorList(String path) */ default ArenaPlayerInterface[] getPlayerList(String path) { - return ConfigurationTool.calculateList( - this, path, ArenaPlayerInterface.class, - (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); + return ConfigurationTool.calculateList(this, path, ArenaPlayerInterface.class, (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); } /** @@ -2420,9 +2343,7 @@ default ArenaPlayerInterface[] getPlayerList(String path) */ default ArenaPlayerInterface getPlayer(String path) { - return ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(spath))); + return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(spath))); } /** @@ -2430,16 +2351,15 @@ default ArenaPlayerInterface getPlayer(String path) * * @param path * sub path of configuration section - * @param defaultValue + * @param defaultValue the default value to return * * @return value. */ default String[] getStringList(String path, String[] defaultValue) { - final List<String> list = ConfigurationTool.calculate( - this, path, - (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getStringList(spath)); - if (list.size() == 0) return defaultValue; + final List<String> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getStringList(spath)); + if (list.size() == 0) + return defaultValue; return list.toArray(new String[list.size()]); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java index dffd7c1e..8f62eee3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java @@ -43,6 +43,8 @@ public interface MinigameContext * @param clazz * the class of the variable to be returned. * @return Context variable or {@code null} if the variable was not set. + * @param <T> + * Type of context value */ <T> T getContext(Class<T> clazz); @@ -53,6 +55,8 @@ public interface MinigameContext * the class of the variable * @param value * the new value + * @param <T> + * Type of context value */ <T> void setContext(Class<T> clazz, T value); @@ -60,6 +64,7 @@ public interface MinigameContext * Resolves a context variable and performs variable substitution. * * @param src + * source string * @return result */ String resolveContextVar(String src); @@ -92,6 +97,8 @@ public interface MinigameContext * @return result from runnable * @throws MinigameException * rethrown from runnable. + * @param <T> + * Type of return value */ <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException; @@ -103,6 +110,8 @@ public interface MinigameContext * @return result from runnable * @throws MinigameException * rethrown from runnable. + * @param <T> + * Type of return value */ <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException; diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java index 98d782b5..aca98c60 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java @@ -31,6 +31,8 @@ public interface MinigameStorage * @param clazz * the class of the variable to be returned. * @return Storage variable or {@code null} if the variable was not set. + * @param <T> + * Configurable object class */ <T extends Configurable> T get(Class<T> clazz); @@ -41,6 +43,8 @@ public interface MinigameStorage * the class of the variable * @param value * the new value + * @param <T> + * Configurable object class */ <T extends Configurable> void set(Class<T> clazz, T value); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java index bf477fb3..14d27a52 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java @@ -15,6 +15,8 @@ package com.github.mce.minigames.api.event; +import java.io.Serializable; + import org.bukkit.event.Event; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; @@ -32,6 +34,9 @@ public abstract class AbstractVetoEvent extends Event /** the veto reason. */ private LocalizedMessageInterface vetoReason; + + /** message arguments. */ + private Serializable[] vetoReasonArgs; /** * Returns the veto reason @@ -51,14 +56,25 @@ public boolean isCancelled() return this.cancelled; } + /** + * Returns the message arguments to format the veto reason message + * @return the vetoReasonArgs + */ + public Serializable[] getVetoReasonArgs() + { + return this.vetoReasonArgs; + } + /** * Sets the event cancelled. * @param reason the reason text. + * @param args message arguments */ - public void setCancelled(LocalizedMessageInterface reason) + public void setCancelled(LocalizedMessageInterface reason, Serializable... args) { this.cancelled = true; this.vetoReason = reason; + this.vetoReasonArgs = args; } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java index 7c9ff288..f3e7f5b9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java @@ -33,18 +33,21 @@ public class ArenaPlayerJoinEvent extends AbstractVetoEvent { /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList(); /** the arena the player joined. */ - private final ArenaInterface arena; - + private final ArenaInterface arena; + /** the player that joined the arena. */ private final ArenaPlayerInterface player; - + /** * Constructor. + * * @param arena + * Target arena * @param player + * Player joining the arena */ public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java index 5df306fd..953d3c34 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java @@ -30,18 +30,21 @@ public class ArenaPlayerJoinedEvent extends Event { /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList(); /** the arena the player joined. */ - private final ArenaInterface arena; - + private final ArenaInterface arena; + /** the player that joined the arena. */ private final ArenaPlayerInterface player; - + /** * Constructor. + * * @param arena + * Target arena * @param player + * Player joining the arena */ public ArenaPlayerJoinedEvent(ArenaInterface arena, ArenaPlayerInterface player) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java index c24b9645..e8ed9733 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java @@ -43,7 +43,9 @@ public class ArenaPlayerJoinedQueueEvent extends Event * Constructor. * * @param queue + * Target queue * @param player + * Player joining the queue */ public ArenaPlayerJoinedQueueEvent(WaitQueue queue, ArenaPlayerInterface player) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java index 68c639e4..4ac684f9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java @@ -43,7 +43,9 @@ public class ArenaPlayerLeavesQueueEvent extends Event * Constructor. * * @param queue + * Target queue * @param player + * Player leaving the queue */ public ArenaPlayerLeavesQueueEvent(WaitQueue queue, ArenaPlayerInterface player) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java index 10b668a7..9a966bd6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java @@ -44,8 +44,11 @@ public class ArenaStateEvent extends Event * Constructor. * * @param arena + * Target arena * @param oldState + * previous state * @param newState + * next state */ public ArenaStateEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java index cd9885a6..c9429666 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java @@ -29,7 +29,7 @@ public class PlayerCloseGuiEvent extends Event { /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList(); /** the gui the player closed. */ private final ClickGuiInterface gui; @@ -41,7 +41,9 @@ public class PlayerCloseGuiEvent extends Event * Constructor. * * @param gui + * the closed gui * @param player + * the target player */ public PlayerCloseGuiEvent(ClickGuiInterface gui, ArenaPlayerInterface player) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java index 3c67468d..a8e4da1f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java @@ -36,14 +36,14 @@ public class PlayerDisplayGuiPageEvent extends Event { /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList(); /** the gui the player opened. */ - private final ClickGuiInterface gui; + private final ClickGuiInterface gui; /** the player. */ - private final ArenaPlayerInterface player; - + private final ArenaPlayerInterface player; + /** the opened page. */ private final ClickGuiPageInterface page; @@ -51,8 +51,11 @@ public class PlayerDisplayGuiPageEvent extends Event * Constructor. * * @param gui + * the target gui * @param player + * the target player * @param page + * the opened page */ public PlayerDisplayGuiPageEvent(ClickGuiInterface gui, ArenaPlayerInterface player, ClickGuiPageInterface page) { @@ -90,7 +93,7 @@ public ClickGuiPageInterface getPage() { return this.page; } - + /** * Returns the handlers list * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java index aa30627b..4dd3ebed 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java @@ -50,8 +50,11 @@ public class PlayerGuiClickEvent extends AbstractVetoEvent * Constructor. * * @param gui + * the target gui * @param player + * the target player * @param item + * clicked item */ public PlayerGuiClickEvent(ClickGuiInterface gui, ArenaPlayerInterface player, ClickGuiItem item) { @@ -89,7 +92,7 @@ public ClickGuiItem getItem() { return this.item; } - + /** * Returns the handlers list * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java index 0a042c7a..4fd65cde 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java @@ -45,7 +45,9 @@ public class PlayerOpenGuiEvent extends AbstractVetoEvent * Constructor. * * @param gui + * the opened gui * @param player + * the target player */ public PlayerOpenGuiEvent(ClickGuiInterface gui, ArenaPlayerInterface player) { diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java index 14e8ee05..6578bc4d 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java @@ -34,16 +34,19 @@ public class ClickGuiItem /** the items name/ title. */ private final LocalizedMessageInterface displayName; - + /** the click handler. */ - private GuiItemHandler handler; + private GuiItemHandler handler; /** * Constructor to create a click item. * * @param itemStack + * the item stack to display the gui item * @param displayName + * the display name * @param handler + * the action handler */ public ClickGuiItem(ItemStack itemStack, LocalizedMessageInterface displayName, GuiItemHandler handler) { @@ -87,6 +90,7 @@ public void handle(ArenaPlayerInterface player, GuiSessionInterface session, Cli /** * Gui item handler. + * * @author mepeisen */ @FunctionalInterface diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java index a25e3ce3..5313d566 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java @@ -119,7 +119,7 @@ public interface ArenaPlayerInterface /** * Joins a waiting queue for the next match. * - * @param queue + * @param queue Queue to join */ void join(WaitQueue queue); diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java index 658c9ada..aed105ce 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java @@ -71,8 +71,14 @@ public class MgFunctionUtils /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <U> + * class param */ public static <T, U> BiConsumer<T, U> wrap(MgBiConsumer<T, U> orig) { @@ -90,8 +96,16 @@ public static <T, U> BiConsumer<T, U> wrap(MgBiConsumer<T, U> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <U> + * class param + * @param <R> + * class param */ public static <T, U, R> BiFunction<T, U, R> wrap(MgBiFunction<T, U, R> orig) { @@ -109,8 +123,12 @@ public static <T, U, R> BiFunction<T, U, R> wrap(MgBiFunction<T, U, R> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> MgBinaryOperator<T> wrap(MgBinaryOperator<T> orig) { @@ -128,8 +146,14 @@ public static <T> MgBinaryOperator<T> wrap(MgBinaryOperator<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <U> + * class param */ public static <T, U> BiPredicate<T, U> wrap(MgBiPredicate<T, U> orig) { @@ -147,7 +171,9 @@ public static <T, U> BiPredicate<T, U> wrap(MgBiPredicate<T, U> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static BooleanSupplier wrap(MgBooleanSupplier orig) @@ -166,8 +192,12 @@ public static BooleanSupplier wrap(MgBooleanSupplier orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> Comparator<T> wrap(MgComparator<T> orig) { @@ -185,8 +215,12 @@ public static <T> Comparator<T> wrap(MgComparator<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> Consumer<T> wrap(MgConsumer<T> orig) { @@ -204,7 +238,9 @@ public static <T> Consumer<T> wrap(MgConsumer<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoubleConsumer wrap(MgDoubleConsumer orig) @@ -223,7 +259,9 @@ public static DoubleConsumer wrap(MgDoubleConsumer orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntConsumer wrap(MgIntConsumer orig) @@ -242,7 +280,9 @@ public static IntConsumer wrap(MgIntConsumer orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongConsumer wrap(MgLongConsumer orig) @@ -261,8 +301,12 @@ public static LongConsumer wrap(MgLongConsumer orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> DoubleFunction<T> wrap(MgDoubleFunction<T> orig) { @@ -280,7 +324,9 @@ public static <T> DoubleFunction<T> wrap(MgDoubleFunction<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoubleSupplier wrap(MgDoubleSupplier orig) @@ -299,7 +345,9 @@ public static DoubleSupplier wrap(MgDoubleSupplier orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoublePredicate wrap(MgDoublePredicate orig) @@ -318,7 +366,9 @@ public static DoublePredicate wrap(MgDoublePredicate orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoubleToIntFunction wrap(MgDoubleToIntFunction orig) @@ -337,7 +387,9 @@ public static DoubleToIntFunction wrap(MgDoubleToIntFunction orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoubleToLongFunction wrap(MgDoubleToLongFunction orig) @@ -356,7 +408,9 @@ public static DoubleToLongFunction wrap(MgDoubleToLongFunction orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoubleUnaryOperator wrap(MgDoubleUnaryOperator orig) @@ -375,7 +429,9 @@ public static DoubleUnaryOperator wrap(MgDoubleUnaryOperator orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static DoubleBinaryOperator wrap(MgDoubleBinaryOperator orig) @@ -394,8 +450,14 @@ public static DoubleBinaryOperator wrap(MgDoubleBinaryOperator orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <R> + * class param */ public static <T, R> Function<T, R> wrap(MgFunction<T, R> orig) { @@ -413,8 +475,12 @@ public static <T, R> Function<T, R> wrap(MgFunction<T, R> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> IntFunction<T> wrap(MgIntFunction<T> orig) { @@ -432,7 +498,9 @@ public static <T> IntFunction<T> wrap(MgIntFunction<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntSupplier wrap(MgIntSupplier orig) @@ -451,7 +519,9 @@ public static IntSupplier wrap(MgIntSupplier orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntPredicate wrap(MgIntPredicate orig) @@ -470,7 +540,9 @@ public static IntPredicate wrap(MgIntPredicate orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntToDoubleFunction wrap(MgIntToDoubleFunction orig) @@ -489,7 +561,9 @@ public static IntToDoubleFunction wrap(MgIntToDoubleFunction orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntToLongFunction wrap(MgIntToLongFunction orig) @@ -508,7 +582,9 @@ public static IntToLongFunction wrap(MgIntToLongFunction orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntUnaryOperator wrap(MgIntUnaryOperator orig) @@ -527,7 +603,9 @@ public static IntUnaryOperator wrap(MgIntUnaryOperator orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static IntBinaryOperator wrap(MgIntBinaryOperator orig) @@ -543,12 +621,15 @@ public static IntBinaryOperator wrap(MgIntBinaryOperator orig) } }; } - /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> LongFunction<T> wrap(MgLongFunction<T> orig) { @@ -566,7 +647,9 @@ public static <T> LongFunction<T> wrap(MgLongFunction<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongSupplier wrap(MgLongSupplier orig) @@ -585,7 +668,9 @@ public static LongSupplier wrap(MgLongSupplier orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongPredicate wrap(MgLongPredicate orig) @@ -604,7 +689,9 @@ public static LongPredicate wrap(MgLongPredicate orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongToIntFunction wrap(MgLongToIntFunction orig) @@ -623,7 +710,9 @@ public static LongToIntFunction wrap(MgLongToIntFunction orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongToDoubleFunction wrap(MgLongToDoubleFunction orig) @@ -642,7 +731,9 @@ public static LongToDoubleFunction wrap(MgLongToDoubleFunction orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongUnaryOperator wrap(MgLongUnaryOperator orig) @@ -661,7 +752,9 @@ public static LongUnaryOperator wrap(MgLongUnaryOperator orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. */ public static LongBinaryOperator wrap(MgLongBinaryOperator orig) @@ -680,8 +773,12 @@ public static LongBinaryOperator wrap(MgLongBinaryOperator orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> ObjDoubleConsumer<T> wrap(MgObjDoubleConsumer<T> orig) { @@ -699,8 +796,12 @@ public static <T> ObjDoubleConsumer<T> wrap(MgObjDoubleConsumer<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> ObjIntConsumer<T> wrap(MgObjIntConsumer<T> orig) { @@ -718,8 +819,12 @@ public static <T> ObjIntConsumer<T> wrap(MgObjIntConsumer<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> ObjLongConsumer<T> wrap(MgObjLongConsumer<T> orig) { @@ -737,8 +842,12 @@ public static <T> ObjLongConsumer<T> wrap(MgObjLongConsumer<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> Predicate<T> wrap(MgPredicate<T> orig) { @@ -756,8 +865,12 @@ public static <T> Predicate<T> wrap(MgPredicate<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> Supplier<T> wrap(MgSupplier<T> orig) { @@ -775,8 +888,14 @@ public static <T> Supplier<T> wrap(MgSupplier<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <U> + * class param */ public static <T, U> ToDoubleBiFunction<T, U> wrap(MgToDoubleBiFunction<T, U> orig) { @@ -794,8 +913,12 @@ public static <T, U> ToDoubleBiFunction<T, U> wrap(MgToDoubleBiFunction<T, U> or /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> ToDoubleFunction<T> wrap(MgToDoubleFunction<T> orig) { @@ -813,8 +936,14 @@ public static <T> ToDoubleFunction<T> wrap(MgToDoubleFunction<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <U> + * class param */ public static <T, U> ToIntBiFunction<T, U> wrap(MgToIntBiFunction<T, U> orig) { @@ -832,8 +961,12 @@ public static <T, U> ToIntBiFunction<T, U> wrap(MgToIntBiFunction<T, U> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> ToIntFunction<T> wrap(MgToIntFunction<T> orig) { @@ -851,8 +984,14 @@ public static <T> ToIntFunction<T> wrap(MgToIntFunction<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param + * @param <U> + * class param */ public static <T, U> ToLongBiFunction<T, U> wrap(MgToLongBiFunction<T, U> orig) { @@ -870,8 +1009,12 @@ public static <T, U> ToLongBiFunction<T, U> wrap(MgToLongBiFunction<T, U> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> ToLongFunction<T> wrap(MgToLongFunction<T> orig) { @@ -889,8 +1032,12 @@ public static <T> ToLongFunction<T> wrap(MgToLongFunction<T> orig) /** * Creates a wrapper to use a mg lambda as a java util lambda. - * @param orig original. + * + * @param orig + * original. * @return java util variant. + * @param <T> + * class param */ public static <T> UnaryOperator<T> wrap(MgUnaryOperator<T> orig) { @@ -906,22 +1053,24 @@ public static <T> UnaryOperator<T> wrap(MgUnaryOperator<T> orig) }; } - /** * Exception wrapping. + * * @author mepeisen */ public static final class WrappedException extends RuntimeException { - + /** * serial version uid. */ private static final long serialVersionUID = -809099844875692391L; - + /** * Constructor for wrapping. - * @param cause mg exception. + * + * @param cause + * mg exception. */ public WrappedException(MinigameException cause) { @@ -930,6 +1079,7 @@ public WrappedException(MinigameException cause) /** * Unraps this exception. + * * @return nested mg exception. */ public MinigameException unwrap() diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java index 63d9b51a..b5fc3bf9 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java @@ -34,8 +34,10 @@ public interface MgOutgoingStubbing<T> * Let the given consumer be invoked if the condition meets the criteria. * * @param consumer + * to be invoked if stubbing results to {@code true} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * rethrown from consumer */ MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException; @@ -43,8 +45,10 @@ public interface MgOutgoingStubbing<T> * Let us throw an exception if the condition meets the criteria. * * @param consumer + * to be invoked if stubbing results to {@code true} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * rethrown from consumer */ MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException; @@ -52,8 +56,10 @@ public interface MgOutgoingStubbing<T> * Let us throw an exception if the condition meets the criteria. * * @param code + * to be thrown if stubbing results to {@code true} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * thrown with given error code */ MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException; @@ -61,9 +67,12 @@ public interface MgOutgoingStubbing<T> * Let us throw an exception if the condition meets the criteria. * * @param code + * to be thrown if stubbing results to {@code true} * @param args + * to be thrown if stubbing results to {@code true} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * thrown with given error code */ MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args) throws MinigameException; @@ -71,8 +80,10 @@ public interface MgOutgoingStubbing<T> * Let the given consumer be invoked if the condition does not meet the criteria. * * @param consumer + * to be invoked if stubbing results to {@code false} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * rethrown from consumer */ MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException; @@ -80,8 +91,10 @@ public interface MgOutgoingStubbing<T> * Let us throw an exception if the condition does not meet the criteria. * * @param consumer + * to be invoked if stubbing results to {@code false} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * rethrown from consumer */ MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException; @@ -89,8 +102,10 @@ public interface MgOutgoingStubbing<T> * Let us throw an exception if the condition does not meet the criteria. * * @param code + * to be thrown if stubbing results to {@code false} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * thrown with given error code */ MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException; @@ -98,9 +113,12 @@ public interface MgOutgoingStubbing<T> * Let us throw an exception if the condition does not meet the criteria. * * @param code + * to be thrown if stubbing results to {@code false} * @param args + * to be thrown if stubbing results to {@code false} * @return this object for chaining additional then or else consumers. - * @throws MinigameException + * @throws MinigameException + * thrown with given error code */ MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args) throws MinigameException; diff --git a/APIv2/src/site/markdown/migrationList.md b/APIv2/src/site/markdown/migrationList.md index c2aba4b0..ff0b8cb6 100644 --- a/APIv2/src/site/markdown/migrationList.md +++ b/APIv2/src/site/markdown/migrationList.md @@ -5,11 +5,11 @@ - [ ] ArcadeInstance ai - [ ] boolean isArcadeMain - [ ] boolean isSuccessfullyInitialized -- [ ] ArrayList<Location> spawns -- [ ] HashMap<String, Location> pspawnloc -- [ ] HashMap<String, String> lastdamager -- [ ] HashMap<String, Integer> temp\_kill\_count -- [ ] HashMap<String, Integer> temp\_death\_count +- [ ] ArrayList<Location> spawns +- [ ] HashMap<String, Location> pspawnloc +- [ ] HashMap<String, String> lastdamager +- [ ] HashMap<String, Integer> temp\_kill\_count +- [ ] HashMap<String, Integer> temp\_death\_count - [ ] Location mainlobby - [ ] Location waitinglobby - [ ] Location specspawn @@ -17,8 +17,8 @@ - [ ] int max\_players - [ ] int min\_players - [ ] boolean viparena -- [ ] ArrayList<String> players -- [ ] ArrayList<String> temp\_players +- [ ] ArrayList<String> players +- [ ] ArrayList<String> temp\_players - [ ] ArenaType type - [ ] ArenaState currentstate - [X] String name @@ -39,7 +39,7 @@ - [ ] int currentspawn - [ ] int global\_coin\_multiplier - [ ] BukkitTask maximum\_game\_time -- [ ] ArrayList<ItemStack> global\_drops +- [ ] ArrayList<ItemStack> global\_drops - [ ] int currentlobbycount - [ ] int currentingamecount - [ ] int currenttaskid @@ -47,8 +47,8 @@ - [ ] ArenaLogger logger - [ ] Arena(final JavaPlugin plugin, final String name) - [ ] Arena(final JavaPlugin plugin, final String name, final ArenaType type) -- [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) -- [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) +- [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) +- [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) - [X] Arena getArena() > removed (does not make sense) - [ ] SmartReset getSmartReset() @@ -57,7 +57,7 @@ - [ ] void setAlwaysPvP(final boolean t) - [ ] Location getSignLocation() - [ ] void setSignLocation(final Location l) -- [ ] ArrayList<Location> getSpawns() +- [ ] ArrayList<Location> getSpawns() - [ ] Cuboid getBoundaries() - [ ] Cuboid getLobbyBoundaries() - [ ] Cuboid getSpecBoundaries() @@ -74,7 +74,7 @@ - [ ] void setMaxPlayers(final int i) - [ ] boolean isVIPArena() - [ ] void setVIPArena(final boolean t) -- [ ] ArrayList<String> getAllPlayers() +- [ ] ArrayList<String> getAllPlayers() - [ ] boolean containsPlayer(final String playername) - [ ] boolean addPlayer(final String playername) - [ ] boolean removePlayer(final String playername) @@ -101,14 +101,14 @@ > com.github.mce.minigames.api.arena.ArenaInterface.start() - [ ] void startRaw() - [ ] void stopArena() -- [ ] List<Entity> getResetEntitiesOnPlayerLeave(String player) +- [ ] List<Entity> getResetEntitiesOnPlayerLeave(String player) - [ ] boolean isEntityResetOnPlayerLeave(String player, Entity e) -- [ ] List<Entity> getResetEntities(String player) +- [ ] List<Entity> getResetEntities(String player) - [ ] boolean isEntityReset(String player, Entity e) - [ ] void stop() - [ ] void reset() - [ ] void onEliminated(final String playername) -- [ ] void nextArenaOnMapRotation(final ArrayList<String> players) +- [ ] void nextArenaOnMapRotation(final ArrayList<String> players) - [ ] String getPlayerCount() - [ ] int getPlayerAlive() - [ ] Location getWaitingLobbyTemp() @@ -118,7 +118,7 @@ - [ ] ArcadeInstance getArcadeInstance() - [ ] boolean isArcadeMain() - [ ] void setArcadeMain(final boolean t) -- [ ] HashMap<String, Location> getPSpawnLocs() +- [ ] HashMap<String, Location> getPSpawnLocs() - [ ] JavaPlugin getPlugin() - [ ] PluginInstance getPluginInstance() - [ ] int getCurrentIngameCountdownTime() @@ -241,11 +241,11 @@ ## ArenaListener.java -- [ ] ArrayList<String> cmds +- [ ] ArrayList<String> cmds - [ ] String leave\_cmd - [ ] int loseY - [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame) -- [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) +- [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) - [ ] void onExplode(final EntityExplodeEvent event) - [ ] void onExplode2(final BlockExplodeEvent event) - [ ] void onBlockFromTo(final BlockFromToEvent event) @@ -284,10 +284,10 @@ - [ ] void onMobSpawn(CreatureSpawnEvent evt) - [ ] void onMobTarget(EntityTargetEvent evt) - [ ] boolean isSpectating(final Player p) -- [ ] List<Entity> getEntitiesByLocation(final Location loc, final double d) +- [ ] List<Entity> getEntitiesByLocation(final Location loc, final double d) - [ ] boolean checkLocationMatchesSign(final Location l, final Sign s) -- [ ] void updateEntities(final List<Player> players, final boolean visible) -- [ ] List<Player> getPlayersWithin(final Player player, final int distance) +- [ ] void updateEntities(final List<Player> players, final boolean visible) +- [ ] List<Player> getPlayersWithin(final Player player, final int distance) - [ ] String getName() - [ ] void setName(final String minigame) @@ -323,7 +323,7 @@ - [ ] boolean noreward - [ ] Arena currentArena - [ ] AClass currentClass -- [X] HashMap<String, ArenaPlayer> players +- [X] HashMap<String, ArenaPlayer> players > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) - [X] ArenaPlayer getPlayerInstance(final String playername) > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) @@ -388,7 +388,7 @@ ## Classes.java -- [ ] public HashMap<String, IconMenu> lasticonm = new HashMap<>(); +- [ ] public HashMap<String, IconMenu> lasticonm = new HashMap<>(); - [ ] Classes(final JavaPlugin plugin) - [ ] public Classes(final PluginInstance pli, final JavaPlugin plugin) - [ ] public void openGUI(final String p) @@ -480,9 +480,9 @@ - [ ] void setValue(final Object instance, final String fieldName, final Object value) throws Exception - [ ] void playRespawn(final Player p, final JavaPlugin plugin) - [ ] void playTitle(final Player player, final String title, int eindex) -- [ ] HashMap<Integer, Integer> effectlocd -- [ ] HashMap<Integer, Integer> effectlocd\_taskid -- [ ] ArrayList<Integer> playHologram(final Player p, final Location l, final String text, final boolean moveDown, final boolean removeAfterCooldown) +- [ ] HashMap<Integer, Integer> effectlocd +- [ ] HashMap<Integer, Integer> effectlocd\_taskid +- [ ] ArrayList<Integer> playHologram(final Player p, final Location l, final String text, final boolean moveDown, final boolean removeAfterCooldown) - [ ] void sendGameModeChange(final Player p, final int gamemode) ## Messages.java @@ -507,9 +507,9 @@ - [X] boolean debug > com.github.mce.minigames.api.MglibInterface.debug() - [ ] int updatetime -- [ ] HashMap<String, Party> global\_party -- [ ] HashMap<String, ArrayList<Party>> global\_party\_invites -- [ ] HashMap<JavaPlugin, PluginInstance> pinstances +- [ ] HashMap<String, Party> global\_party +- [ ] HashMap<String, ArrayList<Party>> global\_party\_invites +- [ ] HashMap<JavaPlugin, PluginInstance> pinstances - [ ] PartyMessagesConfig partymessages - [ ] StatsGlobalConfig statsglobal - [ ] String internalServerVersion = ""; @@ -529,11 +529,11 @@ - [X] MinecraftVersionsType getServerVersion() > com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() - [ ] void onDisable() -- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) +- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) - [ ] void registerArenaListenerLater(final JavaPlugin plugin\_, final ArenaListener arenalistener) - [ ] void registerArenaSetup(final JavaPlugin plugin\_, final ArenaSetup arenasetup) - [ ] void registerScoreboard(final JavaPlugin plugin\_, final ArenaScoreboard board) -- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass) +- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass) - [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame) - [ ] PluginInstance setupRaw(final JavaPlugin plugin\_, final String minigame) - [X] MinigamesAPI getAPI() @@ -569,10 +569,10 @@ ## Party.java - [ ] String owner; -- [ ] ArrayList<String> players = new ArrayList<>(); +- [ ] ArrayList<String> players = new ArrayList<>(); - [ ] Party(final String owner) - [ ] String getOwner() -- [ ] ArrayList<String> getPlayers() +- [ ] ArrayList<String> getPlayers() - [ ] void addPlayer(final String p) - [ ] boolean removePlayer(final String p) - [ ] containsPlayer(final String p) @@ -607,9 +607,9 @@ ## PluginInstance.java -- [ ] HashMap<String, Arena> global\_players -- [ ] HashMap<String, Arena> global\_lost -- [ ] HashMap<String, Arena> global\_arcade\_spectator +- [ ] HashMap<String, Arena> global\_players +- [ ] HashMap<String, Arena> global\_lost +- [ ] HashMap<String, Arena> global\_arcade\_spectator - [ ] ArenaListener arenalistener - [ ] ArenasConfig arenasconfig - [ ] ClassesConfig classesconfig @@ -620,10 +620,10 @@ - [ ] ShopConfig shopconfig - [ ] HologramsConfig hologramsconfig - [ ] JavaPlugin plugin -- [ ] ArrayList<Arena> arenas -- [ ] HashMap<String, AClass> pclass -- [ ] LinkedHashMap<String, AClass> aclasses -- [ ] HashMap<String, Gun> guns +- [ ] ArrayList<Arena> arenas +- [ ] HashMap<String, AClass> pclass +- [ ] LinkedHashMap<String, AClass> aclasses +- [ ] HashMap<String, Gun> guns - [ ] Rewards rew - [ ] MainSQL sql - [ ] Stats stats @@ -649,17 +649,17 @@ - [ ] boolean old\_reset - [ ] boolean show\_classes\_without\_usage\_permission - [ ] boolean chat\_enabled -- [ ] HashMap<String, ArrayList<String>> cached\_sign\_states -- [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final ArrayList<Arena> arenas) +- [ ] HashMap<String, ArrayList<String>> cached\_sign\_states +- [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final ArrayList<Arena> arenas) - [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) - [ ] void reloadVariables() - [X] JavaPlugin getPlugin() > com.github.mce.minigames.api.PluginProviderInterface.getJavaPlugin() -- [ ] HashMap<String, AClass> getAClasses() -- [ ] HashMap<String, AClass> getPClasses() +- [ ] HashMap<String, AClass> getAClasses() +- [ ] HashMap<String, AClass> getPClasses() - [ ] addAClass(final String name, final AClass a) - [ ] setPClass(final String player, final AClass a) -- [ ] HashMap<String, Gun> getAllGuns() +- [ ] HashMap<String, Gun> getAllGuns() - [ ] void addGun(final String name, final Gun g) - [ ] ArenasConfig getArenasConfig() - [ ] MessagesConfig getMessagesConfig() @@ -685,16 +685,16 @@ - [ ] Holograms getHologramsHandler() - [ ] int getIngameCountdown() - [ ] int getLobbyCountdown() -- [ ] ArrayList<Arena> getArenas() +- [ ] ArrayList<Arena> getArenas() - [ ] void clearArenas() -- [ ] ArrayList<Arena> addArena(final Arena arena) +- [ ] ArrayList<Arena> addArena(final Arena arena) - [ ] Arena getArenaByName(final String arenaname) - [ ] Arena removeArenaByName(final String arenaname) - [ ] boolean removeArena(final Arena arena) -- [ ] void addLoadedArenas(final ArrayList<Arena> arenas) -- [ ] void addArenas(final Iterable<Arena> arenaList) +- [ ] void addLoadedArenas(final ArrayList<Arena> arenas) +- [ ] void addArenas(final Iterable<Arena> arenaList) - [ ] void addArenas(final Arena... arenaList) -- [ ] void setArenas(final Iterable<Arena> arenaList) +- [ ] void setArenas(final Iterable<Arena> arenaList) - [ ] void setArenas(final Arena... arenaList) - [ ] boolean isAchievementGuiEnabled() - [ ] void setAchievementGuiEnabled(final boolean achievement\_gui\_enabled) @@ -734,14 +734,14 @@ - [ ] void giveAchievementReward(final String p\_, final boolean econ, final boolean isCommand, final int money\_reward, final String cmd) - [ ] void giveWinReward(final String p\_, final Arena a) - [ ] void giveWinReward(final String p\_, final Arena a, final int global\_multiplier) -- [ ] void giveWinReward(final String p\_, final Arena a, final ArrayList<String> players, final int global\_multiplier) +- [ ] void giveWinReward(final String p\_, final Arena a, final ArrayList<String> players, final int global\_multiplier) ## Shop.java - [ ] JavaPlugin plugin - [ ] PluginInstance pli -- [ ] HashMap<String, IconMenu> lasticonm -- [ ] LinkedHashMap<String, ShopItem> shopitems +- [ ] HashMap<String, IconMenu> lasticonm +- [ ] LinkedHashMap<String, ShopItem> shopitems - [ ] Shop(final PluginInstance pli, final JavaPlugin plugin) - [ ] void openGUI(final String p) - [ ] void loadShopItems() @@ -756,7 +756,7 @@ - [ ] SmartBlockMap changed - [ ] Arena a -- [ ] ArrayList<SmartArenaBlock> failedblocks +- [ ] ArrayList<SmartArenaBlock> failedblocks - [ ] long time - [ ] SmartReset(final Arena a) - [ ] SmartArenaBlock addChanged(final Block b) @@ -772,25 +772,25 @@ - [ ] void resetSmartResetBlock(final SmartArenaBlock ablock) - [ ] void saveSmartBlocksToFile() - [ ] void loadSmartBlocksFromFile() -- [ ] final class SmartBlockMap extends TreeMap<Integer, Map<Location, SmartArenaBlock>> +- [ ] final class SmartBlockMap extends TreeMap<Integer, Map<Location, SmartArenaBlock>> - [ ] void putBlock(Location l, SmartArenaBlock block) - [ ] boolean hasBlock(Location l) -- [ ] Iterable<SmartArenaBlock> getBlocks() -- [ ] NestedIterator<K, T> +- [ ] Iterable<SmartArenaBlock> getBlocks() +- [ ] NestedIterator<K, T> ## SpectatorManager.java - [ ] JavaPlugin plugin -- [ ] HashMap<String, IconMenu> lasticonm +- [ ] HashMap<String, IconMenu> lasticonm - [ ] SpectatorManager(final JavaPlugin plugin) - [ ] void setup() - [ ] void setSpectate(final Player p, final boolean spectate) - [ ] boolean isSpectating(final Player p) - [ ] void clear() - [ ] void openSpectatorGUI(final Player p, final Arena a) -- [ ] HashMap<String, ArrayList<String>> pspecs -- [ ] HashMap<String, ArrayList<String>> splayers -- [ ] void hideSpectator(final Player spec, final ArrayList<String> players) +- [ ] HashMap<String, ArrayList<String>> pspecs +- [ ] HashMap<String, ArrayList<String>> splayers +- [ ] void hideSpectator(final Player spec, final ArrayList<String> players) - [ ] void showSpectator(final Player spec) - [ ] void showSpectators(final Player p) @@ -798,7 +798,7 @@ - [ ] JavaPlugin plugin - [ ] PluginInstance pli -- [ ] ArrayList<String> skullsetup +- [ ] ArrayList<String> skullsetup - [ ] int stats\_kill\_points - [ ] int stats\_win\_points - [ ] Stats(final PluginInstance pli, final JavaPlugin plugin) @@ -819,8 +819,8 @@ - [ ] int getLoses(final String playername) - [ ] int getKills(final String playername) - [ ] int getDeaths(final String playername) -- [ ] TreeMap<String, Double> getTop(final int count, final boolean wins) -- [ ] TreeMap<String, Double> getTop() +- [ ] TreeMap<String, Double> getTop(final int count, final boolean wins) +- [ ] TreeMap<String, Double> getTop() - [ ] ItemStack giveSkull(final String name) - [ ] void saveSkull(final Location t, final int count) - [ ] void updateSkulls() @@ -839,10 +839,10 @@ - [ ] JavaPlugin plugin - [ ] PluginInstance pli -- [ ] HashMap<String, IconMenu> lasticonm +- [ ] HashMap<String, IconMenu> lasticonm - [ ] ArenaAchievements(final PluginInstance pli, final JavaPlugin plugin) - [ ] void openGUI(final String p, final boolean sql) -- [ ] ArrayList<AAchievement> loadPlayerAchievements(final String playername, final boolean sql) +- [ ] ArrayList<AAchievement> loadPlayerAchievements(final String playername, final boolean sql) - [ ] void setAchievementDone(final String playername, final String achievement, final boolean sql) - [ ] void addDefaultAchievement(final String internalname, final String name, final int default\_money\_reward) - [ ] isEnabled() @@ -850,15 +850,15 @@ ## ArcadeInstance.java -- [ ] ArrayList<PluginInstance> minigames +- [ ] ArrayList<PluginInstance> minigames - [ ] int currentindex -- [ ] ArrayList<String> players +- [ ] ArrayList<String> players - [ ] Arena arena - [ ] JavaPlugin plugin - [ ] boolean in\_a\_game - [ ] Arena currentarena - [ ] boolean started -- [ ] ArcadeInstance(final JavaPlugin plugin, final ArrayList<PluginInstance> minigames, final Arena arena) +- [ ] ArcadeInstance(final JavaPlugin plugin, final ArrayList<PluginInstance> minigames, final Arena arena) - [ ] void joinArcade(final String playername) - [ ] void leaveArcade(final String playername) - [ ] void leaveArcade(final String playername, final boolean endOfGame) @@ -875,9 +875,9 @@ ## CommandHandler.java - [ ] boolean handleArgs(final JavaPlugin plugin, final String uber_permission, final String cmd, final CommandSender sender, final String args[]) -- [ ] LinkedHashMap<String, String> cmddesc +- [ ] LinkedHashMap<String, String> cmddesc - [ ] void sendHelp(final String cmd, final CommandSender sender) -- [ ] LinkedHashMap<String, String> cmdpartydesc +- [ ] LinkedHashMap<String, String> cmdpartydesc - [ ] void sendPartyHelp(final String cmd, final CommandSender sender) - [ ] boolean setSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) - [ ] boolean setSpecSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) @@ -1079,16 +1079,16 @@ - [ ] int shoot\_amount - [ ] int max\_durability - [ ] int durability -- [ ] Class<? extends Projectile> bullet +- [ ] Class<? extends Projectile> bullet - [ ] JavaPlugin plugin - [ ] double knockback\_multiplier - [ ] String name - [ ] boolean canshoot -- [ ] HashMap<String, Boolean> canshoot\_ -- [ ] ArrayList<ItemStack> items -- [ ] ArrayList<ItemStack> icon -- [ ] Gun(final JavaPlugin plugin, final String name, final double speed, final int shoot\_amount, final int durability, final double knockback\_multiplier, final Class<? extends Projectile> bullet, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) -- [ ] Gun(final JavaPlugin plugin, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) +- [ ] HashMap<String, Boolean> canshoot\_ +- [ ] ArrayList<ItemStack> items +- [ ] ArrayList<ItemStack> icon +- [ ] Gun(final JavaPlugin plugin, final String name, final double speed, final int shoot\_amount, final int durability, final double knockback\_multiplier, final Class<? extends Projectile> bullet, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) +- [ ] Gun(final JavaPlugin plugin, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) - [ ] void shoot(final Player p) - [ ] void shoot(final Player p, final int shoot\_amount, final int durability, final int speed) - [ ] void onHit(final Entity ent, final int knockback\_multiplier) @@ -1102,10 +1102,10 @@ - [ ] int durability\_cost - [ ] int shoot\_amount\_cost - [ ] int knockback\_multiplier\_cost -- [ ] HashMap<String, IconMenu> lastmainiconm -- [ ] HashMap<String, IconMenu> lastmainediticonm -- [ ] HashMap<String, IconMenu> lastupgradeiconm -- [ ] HashMap<String, HashMap<Gun, int[]>> pgunattributes +- [ ] HashMap<String, IconMenu> lastmainiconm +- [ ] HashMap<String, IconMenu> lastmainediticonm +- [ ] HashMap<String, IconMenu> lastupgradeiconm +- [ ] HashMap<String, HashMap<Gun, int[]>> pgunattributes - [ ] JavaPlugin plugin - [ ] Guns(final JavaPlugin plugin) - [ ] void openGUI(final String p) @@ -1116,7 +1116,7 @@ - [ ] void openGunMainEditGUI(final String p, final String g) - [ ] void openUpgradeGUI(final String p, final String g, final String attribute, final int level, final double cost) - [ ] void loadGuns(final JavaPlugin plugin) -- [ ] ArrayList<String> getAllMainGuns(final Player p) +- [ ] ArrayList<String> getAllMainGuns(final Player p) - [ ] void giveMainGuns(final Player p) ## Database.java @@ -1142,27 +1142,27 @@ ## Holograms.java - [ ] PluginInstance pli -- [ ] HashMap<Location, Hologram> holo = new HashMap<>() +- [ ] HashMap<Location, Hologram> holo = new HashMap<>() - [ ] Holograms(final PluginInstance pli) - [ ] void loadHolograms() - [ ] void sendAllHolograms(final Player p) - [ ] void addHologram(final Location l) - [ ] boolean removeHologram(final Location ploc) - [ ] void destroyHologram(final Player p, final Hologram h) -- [ ] int[] convertIntegers(final ArrayList<Integer> integers) +- [ ] int[] convertIntegers(final ArrayList<Integer> integers) ## AClass.java - [ ] JavaPlugin plugin - [ ] String name - [ ] String internalname -- [ ] ArrayList<ItemStack> items +- [ ] ArrayList<ItemStack> items - [ ] ItemStack icon - [ ] boolean enabled -- [ ] AClass(final JavaPlugin plugin, final String name, final ArrayList<ItemStack> items) -- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final ArrayList<ItemStack> items) -- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items) -- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items, final ItemStack icon) +- [ ] AClass(final JavaPlugin plugin, final String name, final ArrayList<ItemStack> items) +- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final ArrayList<ItemStack> items) +- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items) +- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items, final ItemStack icon) - [ ] ItemStack[] getItems() - [ ] ItemStack getIcon() - [ ] String getName() @@ -1175,11 +1175,11 @@ - [ ] String world - [ ] Material m - [ ] byte data -- [ ] ArrayList<Material> item_mats -- [ ] ArrayList<Byte> item_data -- [ ] ArrayList<Integer> item_amounts -- [ ] ArrayList<String> item_displaynames -- [ ] ArrayList<Boolean> item_splash +- [ ] ArrayList<Material> item_mats +- [ ] ArrayList<Byte> item_data +- [ ] ArrayList<Integer> item_amounts +- [ ] ArrayList<String> item_displaynames +- [ ] ArrayList<Boolean> item_splash - [ ] ItemStack[] inv - [ ] ArenaBlock(final Block b, final boolean c) - [ ] ArenaBlock(final Location l) @@ -1187,17 +1187,17 @@ - [ ] Material getMaterial() - [ ] Byte getData() - [ ] ItemStack[] getInventory() -- [ ] ArrayList<ItemStack> getNewInventory() -- [ ] ItemStack getEnchantmentBook(final Map<Enchantment, Integer> t) +- [ ] ArrayList<ItemStack> getNewInventory() +- [ ] ItemStack getEnchantmentBook(final Map<Enchantment, Integer> t) ## ArenaLobbyScoreboard.java -- [ ] HashMap<String, Scoreboard> ascore -- [ ] HashMap<String, Objective> aobjective +- [ ] HashMap<String, Scoreboard> ascore +- [ ] HashMap<String, Objective> aobjective - [ ] int initialized - [ ] boolean custom - [ ] PluginInstance pli -- [ ] ArrayList<String> loaded\_custom\_strings +- [ ] ArrayList<String> loaded\_custom\_strings - [ ] ArenaLobbyScoreboard(final PluginInstance pli, final JavaPlugin plugin) - [ ] void updateScoreboard(final JavaPlugin plugin, final Arena arena) - [ ] void removeScoreboard(final String arena, final Player p) @@ -1205,19 +1205,19 @@ ## ArenaScoreboard.java -- [ ] HashMap<String, Scoreboard> ascore -- [ ] HashMap<String, Objective> aobjective -- [ ] HashMap<String, Integer> currentscore +- [ ] HashMap<String, Scoreboard> ascore +- [ ] HashMap<String, Objective> aobjective +- [ ] HashMap<String, Integer> currentscore - [ ] int initialized - [ ] boolean custom - [ ] PluginInstance pli -- [ ] ArrayList<String> loaded\_custom\_strings +- [ ] ArrayList<String> loaded\_custom\_strings - [ ] ArenaScoreboard() - [ ] ArenaScoreboard(final PluginInstance pli, final JavaPlugin plugin) - [ ] void updateScoreboard(final JavaPlugin plugin, final Arena arena) - [ ] void removeScoreboard(final String arena, final Player p) - [ ] void clearScoreboard(final String arenaname) -- [ ] void setCurrentScoreMap(final HashMap<String, Integer> newcurrentscore) +- [ ] void setCurrentScoreMap(final HashMap<String, Integer> newcurrentscore) ## BungeeUtil.java @@ -1246,8 +1246,8 @@ - [ ] Location getHighLoc() - [ ] Location getLowLoc() - [ ] World getWorld() -- [ ] Map<String, Object> save() -- [ ] Cuboid load(final Map<String, Object> root) throws IllegalArgumentException +- [ ] Map<String, Object> save() +- [ ] Cuboid load(final Map<String, Object> root) throws IllegalArgumentException - [ ] String toString() - [ ] String toRaw() @@ -1276,18 +1276,18 @@ ## InventoryManager.java -- [ ] HashMap<String, ItemStack[]> armourContents -- [ ] HashMap<String, ItemStack[]> inventoryContents -- [ ] HashMap<String, Location> locations -- [ ] HashMap<String, Integer> xplevel -- [ ] HashMap<String, GameMode> gamemode +- [ ] HashMap<String, ItemStack[]> armourContents +- [ ] HashMap<String, ItemStack[]> inventoryContents +- [ ] HashMap<String, Location> locations +- [ ] HashMap<String, Integer> xplevel +- [ ] HashMap<String, GameMode> gamemode - [ ] void saveInventory(final Player player) - [ ] void restoreInventory(final Player player) ## Leaderboard.java - [ ] Object convertUUID(final String s) -- [ ] Map<Integer, String> sortByComparator(final Map<String, Integer> unsortMap, final boolean order) +- [ ] Map<Integer, String> sortByComparator(final Map<String, Integer> unsortMap, final boolean order) - [ ] Leaderboard(final Location firstPlace, final Location secondPlace, final Location thirdPlace, final Material firstBlockType, final Material secondBlockType, final Material thirdBlockType, final BlockFace direction, final FileConfiguration configurationFile, final String configurationFormat) ## Metrics.java @@ -1320,15 +1320,15 @@ ## Util.java -- [ ] HashMap<String, ItemStack[]> armourContents -- [ ] HashMap<String, ItemStack[]> inventoryContents -- [ ] HashMap<String, Location> locations -- [ ] HashMap<String, Integer> xplevel -- [ ] HashMap<String, GameMode> gamemode +- [ ] HashMap<String, ItemStack[]> armourContents +- [ ] HashMap<String, ItemStack[]> inventoryContents +- [ ] HashMap<String, Location> locations +- [ ] HashMap<String, Integer> xplevel +- [ ] HashMap<String, GameMode> gamemode - [ ] void clearInv(final Player p) - [ ] void teleportPlayerFixed(final Player p, final Location l) -- [ ] void teleportAllPlayers(final ArrayList<String> players, final Location l) -- [ ] HashMap<String, Location> teleportAllPlayers(final ArrayList<String> players, final ArrayList<Location> locs) +- [ ] void teleportAllPlayers(final ArrayList<String> players, final Location l) +- [ ] HashMap<String, Location> teleportAllPlayers(final ArrayList<String> players, final ArrayList<Location> locs) - [ ] Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final String count) - [ ] Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component) - [ ] Location getComponentForArenaRaw(final JavaPlugin plugin, final String arenaname, final String component) @@ -1337,7 +1337,7 @@ - [ ] void saveComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final Location comploc) - [ ] void saveMainLobby(final JavaPlugin plugin, final Location comploc) - [ ] Location getMainLobby(final JavaPlugin plugin) -- [ ] ArrayList<Location> getAllSpawns(final JavaPlugin plugin, final String arena) +- [ ] ArrayList<Location> getAllSpawns(final JavaPlugin plugin, final String arena) - [ ] saveArenaToFile(final JavaPlugin plugin, final String arena) - [ ] Sign getSignFromArena(final JavaPlugin plugin, final String arena) - [ ] Location getSignLocationFromArena(final JavaPlugin plugin, final String arena) @@ -1345,10 +1345,10 @@ - [ ] void updateSign(final JavaPlugin plugin, final Arena arena) - [ ] void updateSign(final JavaPlugin plugin, final Arena arena, final SignChangeEvent event) - [ ] void updateSign(final JavaPlugin plugin, final SignChangeEvent event, final String arenastate) -- [ ] ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasConfig cf) +- [ ] ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasConfig cf) - [ ] Arena initArena(final JavaPlugin plugin, final String arena) - [ ] boolean isNumeric(final String s) -- [ ] ArrayList<ItemStack> parseItems(final String rawitems) +- [ ] ArrayList<ItemStack> parseItems(final String rawitems) - [ ] void giveLobbyItems(final JavaPlugin plugin, final Player p) - [ ] void giveSpectatorItems(final JavaPlugin plugin, final Player p) - [ ] void sendMessage(final Player p, final String arenaname, final String msgraw) diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java new file mode 100644 index 00000000..d456a149 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java @@ -0,0 +1,64 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test; + +import static org.junit.Assert.assertNull; + +import org.bukkit.plugin.java.JavaPlugin; +import org.junit.Test; + +import com.github.mce.minigames.api.CommonProviderInterface; + +/** + * Test for {@link CommonProviderInterface}. + * + * @author mepeisen + */ +public class CommonProviderInterfaceTest +{ + + /** + * tests default methods. + */ + @Test + public void testDefaults() + { + final CommonProviderInterface provider = new CommonProviderInterface() { + + @Override + public JavaPlugin getJavaPlugin() + { + return null; + } + }; + + assertNull(provider.getAdminRuleIds()); + assertNull(provider.getArenaRuleIds()); + assertNull(provider.getBukkitCommands()); + assertNull(provider.getComponentIds()); + assertNull(provider.getComponentRuleIds()); + assertNull(provider.getConfigurations()); + assertNull(provider.getGuiIds()); + assertNull(provider.getMatchPhaseIds()); + assertNull(provider.getMatchRuleIds()); + assertNull(provider.getMessageClasses()); + assertNull(provider.getPermissions()); + assertNull(provider.getPlayerRuleIds()); + assertNull(provider.getTeamIds()); + assertNull(provider.getTeamRuleIds()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java new file mode 100644 index 00000000..e2d0539e --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java @@ -0,0 +1,373 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.component; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.MemoryConfiguration; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.component.Cuboid; + +/** + * Tests {@link Cuboid} + * + * @author mepeisen + * + */ +public class CuboidTest +{ + + /** + * Tests constructors + */ + @Test + public void testConstructor() + { + final Cuboid cub1 = new Cuboid(); + assertNull(cub1.getLowLoc()); + assertNull(cub1.getHighLoc()); + + final Cuboid cub2 = new Cuboid(new Location(null, 1, 1, 1), null); + assertNull(cub2.getLowLoc()); + assertNull(cub2.getHighLoc()); + + final Cuboid cub2b = new Cuboid(null, new Location(null, 1, 1, 1)); + assertNull(cub2b.getLowLoc()); + assertNull(cub2b.getHighLoc()); + + final Cuboid cub3 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 2, 2, 2)); + assertNotNull(cub3.getLowLoc()); + assertNotNull(cub3.getHighLoc()); + assertEquals(new Location(null, 1, 1, 1), cub3.getLowLoc()); + assertEquals(new Location(null, 2, 2, 2), cub3.getHighLoc()); + } + + /** + * Tests constructors + */ + @Test + public void testConstructorNormalization() + { + final Cuboid cub1 = new Cuboid(new Location(null, 1, 2, 2), new Location(null, 2, 1, 1)); + assertEquals(new Location(null, 1, 1, 1), cub1.getLowLoc()); + assertEquals(new Location(null, 2, 2, 2), cub1.getHighLoc()); + + final Cuboid cub2 = new Cuboid(new Location(null, 2, 1, 2), new Location(null, 1, 2, 1)); + assertEquals(new Location(null, 1, 1, 1), cub2.getLowLoc()); + assertEquals(new Location(null, 2, 2, 2), cub2.getHighLoc()); + } + + /** + * Tests {@link Cuboid#setLowLoc(Location)} + */ + @Test + public void testSetLowLoc() + { + final Cuboid cub1 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 2, 2, 2)).setLowLoc(new Location(null, 3, 3, 3)); + assertEquals(new Location(null, 2, 2, 2), cub1.getLowLoc()); + assertEquals(new Location(null, 3, 3, 3), cub1.getHighLoc()); + + final Cuboid cub2 = new Cuboid().setLowLoc(new Location(null, 1, 1, 1)); + assertEquals(new Location(null, 1, 1, 1), cub2.getLowLoc()); + assertEquals(new Location(null, 1, 1, 1), cub2.getHighLoc()); + } + + /** + * Tests {@link Cuboid#setHighLoc(Location)} + */ + @Test + public void testSetHighLoc() + { + final Cuboid cub1 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 2, 2, 2)).setHighLoc(new Location(null, 0, 0, 0)); + assertEquals(new Location(null, 0, 0, 0), cub1.getLowLoc()); + assertEquals(new Location(null, 1, 1, 1), cub1.getHighLoc()); + + final Cuboid cub2 = new Cuboid().setHighLoc(new Location(null, 1, 1, 1)); + assertEquals(new Location(null, 1, 1, 1), cub2.getLowLoc()); + assertEquals(new Location(null, 1, 1, 1), cub2.getHighLoc()); + } + + /** + * Tests {@link Cuboid#isAreaWithinArea(Cuboid)} + */ + @Test + public void testIsAreaWithinArea() + { + final World world = mock(World.class); + final World world2 = mock(World.class); + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); + assertTrue(cub1.isAreaWithinArea(new Cuboid(new Location(world, 2, 2, 2), new Location(world, 3, 3, 3)))); + assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world, 0, 2, 2), new Location(world, 3, 3, 3)))); + assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world, 2, 2, 2), new Location(world, 8, 3, 3)))); + assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world, 8, 2, 2), new Location(world, 8, 3, 3)))); + assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world2, 2, 2, 2), new Location(world2, 3, 3, 3)))); + assertFalse(cub1.isAreaWithinArea(new Cuboid())); + } + + /** + * Tests {@link Cuboid#containsLoc(Location)} + */ + @Test + public void testContainsLoc() + { + final World world = mock(World.class); + final World world2 = mock(World.class); + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); + assertTrue(cub1.containsLoc(new Location(world, 2, 2, 2))); + assertFalse(cub1.containsLoc(new Location(world2, 2, 2, 2))); + assertFalse(cub1.containsLoc(null)); + assertFalse(cub1.containsLoc(new Location(world, 0, 2, 2))); + assertFalse(cub1.containsLoc(new Location(world, 2, 0, 2))); + assertFalse(cub1.containsLoc(new Location(world, 2, 2, 0))); + assertFalse(cub1.containsLoc(new Location(world, 6, 2, 2))); + assertFalse(cub1.containsLoc(new Location(world, 2, 6, 2))); + assertFalse(cub1.containsLoc(new Location(world, 2, 2, 6))); + + assertFalse(new Cuboid().containsLoc(new Location(world, 2, 2, 2))); + } + + /** + * Tests {@link Cuboid#containsLocWithoutY(Location)} + */ + @Test + public void testContainsLocWithoutY() + { + final World world = mock(World.class); + final World world2 = mock(World.class); + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); + assertTrue(cub1.containsLocWithoutY(new Location(world, 2, 2, 2))); + assertFalse(cub1.containsLocWithoutY(new Location(world2, 2, 2, 2))); + assertFalse(cub1.containsLocWithoutY(null)); + assertFalse(cub1.containsLocWithoutY(new Location(world, 0, 2, 2))); + assertTrue(cub1.containsLocWithoutY(new Location(world, 2, 0, 2))); + assertFalse(cub1.containsLocWithoutY(new Location(world, 2, 2, 0))); + assertFalse(cub1.containsLocWithoutY(new Location(world, 6, 2, 2))); + assertTrue(cub1.containsLocWithoutY(new Location(world, 2, 6, 2))); + assertFalse(cub1.containsLocWithoutY(new Location(world, 2, 2, 6))); + + assertFalse(new Cuboid().containsLocWithoutY(new Location(world, 2, 2, 2))); + } + + /** + * Tests {@link Cuboid#containsLocWithoutYD(Location)} + */ + @Test + public void containsLocWithoutYD() + { + final World world = mock(World.class); + final World world2 = mock(World.class); + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 2))); + assertFalse(cub1.containsLocWithoutYD(new Location(world2, 2, 2, 2))); + assertFalse(cub1.containsLocWithoutYD(null)); + + assertTrue(cub1.containsLocWithoutYD(new Location(world, 0, 2, 2))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, -1, 2, 2))); + assertFalse(cub1.containsLocWithoutYD(new Location(world, -2, 2, 2))); + + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 0, 2))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, -1, 2))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, -2, 2))); + + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 0))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, -1))); + assertFalse(cub1.containsLocWithoutYD(new Location(world, 2, 2, -2))); + + assertTrue(cub1.containsLocWithoutYD(new Location(world, 6, 2, 2))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 7, 2, 2))); + assertFalse(cub1.containsLocWithoutYD(new Location(world, 8, 2, 2))); + + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 6, 2))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 7, 2))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 8, 2))); + + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 6))); + assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 7))); + assertFalse(cub1.containsLocWithoutYD(new Location(world, 2, 2, 8))); + + assertFalse(new Cuboid().containsLocWithoutYD(new Location(world, 2, 2, 2))); + } + + /** + * Tests sizes + */ + @Test + public void testSize() + { + final Cuboid cub1 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 5, 4, 3)); + assertEquals(60, cub1.getSize()); + assertEquals(5, cub1.getXSize()); + assertEquals(4, cub1.getYSize()); + assertEquals(3, cub1.getZSize()); + + final Cuboid cub2 = new Cuboid(new Location(null, -1, -1, -1), new Location(null, -5, -4, -3)); + assertEquals(60, cub2.getSize()); + assertEquals(5, cub2.getXSize()); + assertEquals(4, cub2.getYSize()); + + final Cuboid cub3 = new Cuboid(new Location(null, -1, -1, -1), new Location(null, 1, 1, 1)); + assertEquals(27, cub3.getSize()); + assertEquals(3, cub3.getXSize()); + assertEquals(3, cub3.getYSize()); + assertEquals(3, cub3.getZSize()); + } + + /** + * Tests {@link Cuboid#getWorld()} + */ + @Test + public void testGetWorld() + { + final World world = mock(World.class); + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); + assertEquals(world, cub1.getWorld()); + assertNull(new Cuboid().getWorld()); + } + + /** + * Tests {@link Cuboid#toRaw()} + */ + @Test + public void testToRaw() + { + final World world = mock(World.class); + when(world.getName()).thenReturn("foo"); //$NON-NLS-1$ + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); + final Cuboid cub2 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 5, 4, 3)); + + assertEquals("null", new Cuboid().toRaw()); //$NON-NLS-1$ + assertEquals("foo,1,1,1,5,4,3", cub1.toRaw()); //$NON-NLS-1$ + assertEquals("null,1,1,1,5,4,3", cub2.toRaw()); //$NON-NLS-1$ + } + + /** + * Tests {@link Cuboid#toString()} + */ + @Test + public void testToString() + { + final World world = mock(World.class); + when(world.getName()).thenReturn("foo"); //$NON-NLS-1$ + final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); + final Cuboid cub2 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 5, 4, 3)); + + assertEquals("(null) to (null)", new Cuboid().toString()); //$NON-NLS-1$ + assertEquals("(1, 1, 1) to (5, 4, 3)", cub1.toString()); //$NON-NLS-1$ + assertEquals("(1, 1, 1) to (5, 4, 3)", cub2.toString()); //$NON-NLS-1$ + } + + /** + * Tests {@link Cuboid#getRandomLocation()} + */ + @Test + public void testGetRandomLocation() + { + final World world = mock(World.class); + final Cuboid cub = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); + for (int i = 1; i < 100; i++) + { + assertTrue(cub.containsLoc(cub.getRandomLocation())); + } + } + + /** + * Tests {@link Cuboid#getRandomLocation()} + */ + @Test + public void testGetRandomLocation1() + { + final World world = mock(World.class); + final Cuboid cub = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 1, 1, 1)); + for (int i = 1; i < 100; i++) + { + assertTrue(cub.containsLoc(cub.getRandomLocation())); + } + } + + /** + * Tests {@link Cuboid#getRandomLocationForMobs()} + */ + @Test + public void testGetRandomLocationForMobs() + { + final World world = mock(World.class); + final Cuboid cub = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); + for (int i = 1; i < 100; i++) + { + assertTrue(cub.containsLoc(cub.getRandomLocationForMobs().subtract(0.5, 0.5, 0.5))); + } + } + + /** + * Tests {@link Cuboid#readFromConfig(org.bukkit.configuration.ConfigurationSection)} and {@link Cuboid#writeToConfig(org.bukkit.configuration.ConfigurationSection)} + */ + @Test + public void testConfigurable() + { + final World world = mock(World.class); + when(world.getName()).thenReturn("foo"); //$NON-NLS-1$ + final Cuboid cub = new Cuboid(new Location(world, 1, 2, 3), new Location(world, 5, 6, 7)); + final ConfigurationSection section = new MemoryConfiguration(); + + cub.writeToConfig(section); + + assertEquals("foo", section.getString("World")); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(1, section.getInt("X1")); //$NON-NLS-1$ + assertEquals(2, section.getInt("Y1")); //$NON-NLS-1$ + assertEquals(3, section.getInt("Z1")); //$NON-NLS-1$ + assertEquals(5, section.getInt("X2")); //$NON-NLS-1$ + assertEquals(6, section.getInt("Y2")); //$NON-NLS-1$ + assertEquals(7, section.getInt("Z2")); //$NON-NLS-1$ + + final Server server = mock(Server.class); + Whitebox.setInternalState(Bukkit.class, "server", server); //$NON-NLS-1$ + when(server.getWorld("foo")).thenReturn(world); //$NON-NLS-1$ + + final Cuboid cub2 = new Cuboid(); + cub2.readFromConfig(section); + + assertEquals("foo", cub2.getWorld().getName()); //$NON-NLS-1$ + assertEquals(1, cub2.getLowLoc().getBlockX()); + assertEquals(2, cub2.getLowLoc().getBlockY()); + assertEquals(3, cub2.getLowLoc().getBlockZ()); + assertEquals(5, cub2.getHighLoc().getBlockX()); + assertEquals(6, cub2.getHighLoc().getBlockY()); + assertEquals(7, cub2.getHighLoc().getBlockZ()); + } + + /** + * Tests configurable (invalid) + */ + @Test(expected = IllegalArgumentException.class) + public void testConfigurableInvalid() + { + new Cuboid().readFromConfig(new MemoryConfiguration()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java similarity index 96% rename from APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java rename to APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java index 4b1f0518..26ffef20 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/config/ConfigurationValueInterfaceTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java @@ -13,7 +13,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.api.config; +package com.github.mce.minigames.api.test.config; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -48,6 +48,39 @@ import org.powermock.reflect.Whitebox; import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.config.ConfigInterface; +import com.github.mce.minigames.api.config.Configurable; +import com.github.mce.minigames.api.config.ConfigurationBool; +import com.github.mce.minigames.api.config.ConfigurationBoolList; +import com.github.mce.minigames.api.config.ConfigurationByte; +import com.github.mce.minigames.api.config.ConfigurationByteList; +import com.github.mce.minigames.api.config.ConfigurationCharacter; +import com.github.mce.minigames.api.config.ConfigurationCharacterList; +import com.github.mce.minigames.api.config.ConfigurationColor; +import com.github.mce.minigames.api.config.ConfigurationColorList; +import com.github.mce.minigames.api.config.ConfigurationDouble; +import com.github.mce.minigames.api.config.ConfigurationDoubleList; +import com.github.mce.minigames.api.config.ConfigurationFloat; +import com.github.mce.minigames.api.config.ConfigurationFloatList; +import com.github.mce.minigames.api.config.ConfigurationInt; +import com.github.mce.minigames.api.config.ConfigurationIntList; +import com.github.mce.minigames.api.config.ConfigurationItemStack; +import com.github.mce.minigames.api.config.ConfigurationItemStackList; +import com.github.mce.minigames.api.config.ConfigurationLong; +import com.github.mce.minigames.api.config.ConfigurationLongList; +import com.github.mce.minigames.api.config.ConfigurationObject; +import com.github.mce.minigames.api.config.ConfigurationObjectList; +import com.github.mce.minigames.api.config.ConfigurationPlayer; +import com.github.mce.minigames.api.config.ConfigurationPlayerList; +import com.github.mce.minigames.api.config.ConfigurationSection; +import com.github.mce.minigames.api.config.ConfigurationShort; +import com.github.mce.minigames.api.config.ConfigurationShortList; +import com.github.mce.minigames.api.config.ConfigurationString; +import com.github.mce.minigames.api.config.ConfigurationStringList; +import com.github.mce.minigames.api.config.ConfigurationValueInterface; +import com.github.mce.minigames.api.config.ConfigurationValues; +import com.github.mce.minigames.api.config.ConfigurationVector; +import com.github.mce.minigames.api.config.ConfigurationVectorList; import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** @@ -1302,7 +1335,7 @@ public static enum TestOptions implements ConfigurationValueInterface /** * A sample configurable */ - private static final class FooObject implements Configurable + public static final class FooObject implements Configurable { /** obj value. */ @@ -1311,14 +1344,13 @@ private static final class FooObject implements Configurable /** * Constructor. */ - @SuppressWarnings("unused") public FooObject() { // empty } /** - * @param i + * @param i i */ public FooObject(int i) { diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java new file mode 100644 index 00000000..3c797d94 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java @@ -0,0 +1,105 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.io.Serializable; + +import org.bukkit.event.HandlerList; +import org.junit.Test; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.event.AbstractVetoEvent; + +/** + * test case for {@link AbstractVetoEvent} + * + * @author mepeisen + * + */ +public class AbstractVetoEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final VetoEvent evt = new VetoEvent(); + + assertFalse(evt.isCancelled()); + assertNull(evt.getVetoReason()); + assertNull(evt.getVetoReasonArgs()); + + evt.setCancelled(CommonMessages.AraneStateDisabled); + assertTrue(evt.isCancelled()); + assertEquals(CommonMessages.AraneStateDisabled, evt.getVetoReason()); + assertArrayEquals(new Serializable[0], evt.getVetoReasonArgs()); + + evt.setCancelled(CommonMessages.AraneStateDisabled, Integer.MAX_VALUE); + assertTrue(evt.isCancelled()); + assertEquals(CommonMessages.AraneStateDisabled, evt.getVetoReason()); + assertArrayEquals(new Serializable[]{Integer.MAX_VALUE}, evt.getVetoReasonArgs()); + } + + /** + * @author mepeisen + * + */ + public static class VetoEvent extends AbstractVetoEvent + { + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** + * Constructor. + */ + public VetoEvent() + { + // empty + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java new file mode 100644 index 00000000..758107fe --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java @@ -0,0 +1,50 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaCreateEvent; + +/** + * test case for {@link ArenaCreateEvent} + * + * @author mepeisen + * + */ +public class ArenaCreateEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaCreateEvent evt = new ArenaCreateEvent(arena); + + assertEquals(evt.getHandlers(), ArenaCreateEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + assertFalse(evt.isCancelled()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java new file mode 100644 index 00000000..26202de1 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java @@ -0,0 +1,48 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaCreatedEvent; + +/** + * test case for {@link ArenaCreatedEvent} + * + * @author mepeisen + * + */ +public class ArenaCreatedEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaCreatedEvent evt = new ArenaCreatedEvent(arena); + + assertEquals(evt.getHandlers(), ArenaCreatedEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java new file mode 100644 index 00000000..e8dc3751 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java @@ -0,0 +1,50 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaDeleteEvent; + +/** + * test case for {@link ArenaDeleteEvent} + * + * @author mepeisen + * + */ +public class ArenaDeleteEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaDeleteEvent evt = new ArenaDeleteEvent(arena); + + assertEquals(evt.getHandlers(), ArenaDeleteEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + assertFalse(evt.isCancelled()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java new file mode 100644 index 00000000..49c04390 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java @@ -0,0 +1,48 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaDeletedEvent; + +/** + * test case for {@link ArenaDeletedEvent} + * + * @author mepeisen + * + */ +public class ArenaDeletedEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaDeletedEvent evt = new ArenaDeletedEvent(arena); + + assertEquals(evt.getHandlers(), ArenaDeletedEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java new file mode 100644 index 00000000..60f39bb9 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java @@ -0,0 +1,48 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; + +/** + * test case for {@link ArenaMaintenanceEvent} + * + * @author mepeisen + * + */ +public class ArenaMaintenanceEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaMaintenanceEvent evt = new ArenaMaintenanceEvent(arena); + + assertEquals(evt.getHandlers(), ArenaMaintenanceEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java new file mode 100644 index 00000000..cdcf127e --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java @@ -0,0 +1,53 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link ArenaPlayerJoinEvent} + * + * @author mepeisen + * + */ +public class ArenaPlayerJoinEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ArenaPlayerJoinEvent evt = new ArenaPlayerJoinEvent(arena, player); + + assertEquals(evt.getHandlers(), ArenaPlayerJoinEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + assertEquals(player, evt.getPlayer()); + assertFalse(evt.isCancelled()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java new file mode 100644 index 00000000..a7a56932 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link ArenaPlayerJoinedEvent} + * + * @author mepeisen + * + */ +public class ArenaPlayerJoinedEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ArenaPlayerJoinedEvent evt = new ArenaPlayerJoinedEvent(arena, player); + + assertEquals(evt.getHandlers(), ArenaPlayerJoinedEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + assertEquals(player, evt.getPlayer()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java new file mode 100644 index 00000000..b1eb6a57 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link ArenaPlayerJoinedQueueEvent} + * + * @author mepeisen + * + */ +public class ArenaPlayerJoinedQueueEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final WaitQueue queue = mock(WaitQueue.class); + final ArenaPlayerJoinedQueueEvent evt = new ArenaPlayerJoinedQueueEvent(queue, player); + + assertEquals(evt.getHandlers(), ArenaPlayerJoinedQueueEvent.getHandlerList()); + assertEquals(queue, evt.getQueue()); + assertEquals(player, evt.getPlayer()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java new file mode 100644 index 00000000..0ca6065b --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link ArenaPlayerLeavesQueueEvent} + * + * @author mepeisen + * + */ +public class ArenaPlayerLeavesQueueEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final WaitQueue queue = mock(WaitQueue.class); + final ArenaPlayerLeavesQueueEvent evt = new ArenaPlayerLeavesQueueEvent(queue, player); + + assertEquals(evt.getHandlers(), ArenaPlayerLeavesQueueEvent.getHandlerList()); + assertEquals(queue, evt.getQueue()); + assertEquals(player, evt.getPlayer()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java new file mode 100644 index 00000000..32618146 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaState; +import com.github.mce.minigames.api.event.ArenaStateEvent; + +/** + * test case for {@link ArenaStateEvent} + * + * @author mepeisen + * + */ +public class ArenaStateEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final ArenaStateEvent evt = new ArenaStateEvent(arena, ArenaState.Disabled, ArenaState.InGame); + + assertEquals(evt.getHandlers(), ArenaStateEvent.getHandlerList()); + assertEquals(arena, evt.getArena()); + assertEquals(ArenaState.Disabled, evt.getOldState()); + assertEquals(ArenaState.InGame, evt.getNewState()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java new file mode 100644 index 00000000..447621ae --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java @@ -0,0 +1,51 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link PlayerCloseGuiEvent} + * + * @author mepeisen + * + */ +public class PlayerCloseGuiEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final PlayerCloseGuiEvent evt = new PlayerCloseGuiEvent(gui, player); + + assertEquals(evt.getHandlers(), PlayerCloseGuiEvent.getHandlerList()); + assertEquals(gui, evt.getGui()); + assertEquals(player, evt.getPlayer()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java new file mode 100644 index 00000000..b244f4b2 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiPageInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link PlayerDisplayGuiPageEvent} + * + * @author mepeisen + * + */ +public class PlayerDisplayGuiPageEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ClickGuiPageInterface page = mock(ClickGuiPageInterface.class); + final PlayerDisplayGuiPageEvent evt = new PlayerDisplayGuiPageEvent(gui, player, page); + + assertEquals(evt.getHandlers(), PlayerDisplayGuiPageEvent.getHandlerList()); + assertEquals(gui, evt.getGui()); + assertEquals(player, evt.getPlayer()); + assertEquals(page, evt.getPage()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java new file mode 100644 index 00000000..8e736967 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java @@ -0,0 +1,54 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerGuiClickEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiItem; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link PlayerGuiClickEvent} + * + * @author mepeisen + * + */ +public class PlayerGuiClickEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ClickGuiItem item = mock(ClickGuiItem.class); + final PlayerGuiClickEvent evt = new PlayerGuiClickEvent(gui, player, item); + + assertEquals(evt.getHandlers(), PlayerGuiClickEvent.getHandlerList()); + assertEquals(gui, evt.getGui()); + assertEquals(player, evt.getPlayer()); + assertEquals(item, evt.getItem()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java new file mode 100644 index 00000000..904e0970 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java @@ -0,0 +1,53 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.mockito.Mockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +/** + * test case for {@link PlayerOpenGuiEvent} + * + * @author mepeisen + * + */ +public class PlayerOpenGuiEventTest +{ + + /** + * Tests the event class + */ + @Test + public void testMe() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final PlayerOpenGuiEvent evt = new PlayerOpenGuiEvent(gui, player); + + assertEquals(evt.getHandlers(), PlayerOpenGuiEvent.getHandlerList()); + assertEquals(gui, evt.getGui()); + assertEquals(player, evt.getPlayer()); + assertFalse(evt.isCancelled()); + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java new file mode 100644 index 00000000..fab3fd3d --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java @@ -0,0 +1,167 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.locale; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.Locale; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.locale.LocalizedMessage; +import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.locale.LocalizedMessageList; +import com.github.mce.minigames.api.locale.LocalizedMessages; +import com.github.mce.minigames.api.locale.MessageSeverityType; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; + +/** + * Test for {@link LocalizedMessageInterface} + * + * @author mepeisen + */ +public class LocalizedMessageInterfaceTest +{ + + /** the messages. */ + private MessagesConfigInterface messages; + /** library. */ + private MglibInterface lib; + + /** + * Some setup. + */ + @Before + public void setup() + { + this.lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ + when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable + { + return "core." + invocation.getArgumentAt(0, String.class); //$NON-NLS-1$ + } + }); + this.messages = mock(MessagesConfigInterface.class); + when(this.lib.getMessagesFromMsg(anyObject())).thenReturn(this.messages); + } + + /** + * Tests {@link LocalizedMessageInterface#isSingleLine()} + */ + @Test + public void testIsSingleLine() + { + assertTrue(TestMessages.FooSingleLine.isSingleLine()); + assertFalse(TestMessages.FooMultiLine.isSingleLine()); + } + + /** + * Tests {@link LocalizedMessageInterface#isMultiLine()} + */ + @Test + public void testIsMultiLine() + { + assertFalse(TestMessages.FooSingleLine.isMultiLine()); + assertTrue(TestMessages.FooMultiLine.isMultiLine()); + } + + /** + * Tests {@link LocalizedMessageInterface#getSeverity} + */ + @Test + public void testGetSeverity() + { + assertEquals(MessageSeverityType.Information, TestMessages.FooSingleLine.getSeverity()); + assertEquals(MessageSeverityType.Information, TestMessages.FooMultiLine.getSeverity()); + } + + /** + * Tests {@link LocalizedMessageInterface#toUserMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToUserMessage() + { + when(this.messages.getString(Locale.GERMAN, "msg.FooSingleLine", "FooSingleLine")).thenReturn("FooSingleLine2"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals("FooSingleLine2", TestMessages.FooSingleLine.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ + } + + /** + * Tests {@link LocalizedMessageInterface#toAdminMessage(java.util.Locale, java.io.Serializable...)} + */ + @Test + public void testToAdminMessage() + { + when(this.messages.getAdminString(Locale.GERMAN, "msg.FooSingleLine", "")).thenReturn("FooSingleLineAdmin"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals("FooSingleLineAdmin", TestMessages.FooSingleLine.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ + } + + /** + * Tests {@link LocalizedMessageInterface#toUserMessageLine(java.util.Locale, java.io.Serializable...)} + * @throws SecurityException + * @throws NoSuchFieldException + */ + @Test + public void testToUserMessageLine() throws NoSuchFieldException, SecurityException + { + final String[] defValue = TestMessages.class.getField("FooMultiLine").getAnnotation(LocalizedMessageList.class).value(); //$NON-NLS-1$ + when(this.messages.getStringList(Locale.GERMAN, "msg.FooMultiLine", defValue)).thenReturn(new String[]{"FooMultiLine 1b", "FooMultiLine 2b"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertArrayEquals(new String[]{"FooMultiLine 1b", "FooMultiLine 2b"}, TestMessages.FooMultiLine.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests {@link LocalizedMessageInterface#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} + * @throws SecurityException + * @throws NoSuchFieldException + */ + @Test + public void testToAdminMessageLine() throws NoSuchFieldException, SecurityException + { + when(this.messages.getAdminStringList(Locale.GERMAN, "msg.FooMultiLine", null)).thenReturn(new String[]{"FooMultiLine 1c", "FooMultiLine 2c"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertArrayEquals(new String[]{"FooMultiLine 1c", "FooMultiLine 2c"}, TestMessages.FooMultiLine.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Helper enum + */ + @LocalizedMessages("msg") + public enum TestMessages implements LocalizedMessageInterface + { + + /** single line */ + @LocalizedMessage(defaultMessage = "FooSingleLine") + FooSingleLine, + + /** multi line */ + @LocalizedMessageList({"FooMultiLine 1", "FooMultiLine 2"}) + FooMultiLine, + + } + +} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java index 6dee5bf5..c6fad9df 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java @@ -47,7 +47,7 @@ public abstract class AbstractCuboidComponent extends AbstractComponent implemen public AbstractCuboidComponent(ComponentRegistry registry, Cuboid cuboid) { super(registry); - this.cuboid = cuboid == null ? null : cuboid.normalize(); + this.cuboid = cuboid == null ? null : cuboid; this.changeLocs(); } @@ -95,7 +95,7 @@ public Cuboid getCuboid() public void setCuboid(Cuboid cub) { // TODO save to config - this.cuboid = cub == null ? null : cub.normalize(); + this.cuboid = cub == null ? null : cub; this.changeLocs(); } From 4d83b09885f0151d5b739392c653e9d58783982f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 18 Sep 2016 12:55:36 +0200 Subject: [PATCH 134/266] fixes #126 --- changelog.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index af6fbcf0..d94ec31e 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,22 @@ * Added command "setupbeds" to help page +###### DeathRun + +* Config option "die\_below\_bedrock\_level" can now be numeric to hold the minimum y coordinate the player can reach + +###### GunGame + +* Config option "die\_below\_bedrock\_level" can now be numeric to hold the minimum y coordinate the player can reach + +###### MobEscape + +* Config option "die\_below\_bedrock\_level" can now be numeric to hold the minimum y coordinate the player can reach + +###### Splegg + +* Config option "die\_below\_bedrock\_level" can now be numeric to hold the minimum y coordinate the player can reach + ###### Sudoku * new game sudoku/ migrated to minigames lib From 581f545f5c8de09c10e12f2c6d168261867fea4e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 18 Sep 2016 16:20:00 +0200 Subject: [PATCH 135/266] fixes https://github.com/MysticCity/MinigamesAPI/issues/161 --- .../comze_instancelabs/minigamesapi/Effects.java | 14 +++++++++++--- changelog.md | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index d48c7675..5b520009 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -34,6 +34,7 @@ import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Validator; +import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.ChatComponentText; import net.minecraft.server.v1_10_R1.IChatBaseComponent.ChatSerializer; @@ -129,9 +130,16 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, final Object packet_ = packetPlayOutBedConstr.newInstance(); Effects.setValue(packet_, "a", id); - Effects.setValue(packet_, "b", x); - Effects.setValue(packet_, "c", y); - Effects.setValue(packet_, "d", z); + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_8_R1)) + { + Effects.setValue(packet_, "b", new BlockPosition(x, y, z)); + } + else + { + Effects.setValue(packet_, "b", x); + Effects.setValue(packet_, "c", y); + Effects.setValue(packet_, "d", z); + } for (final String p_ : a.getAllPlayers()) { diff --git a/changelog.md b/changelog.md index d94ec31e..57a765f9 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ * No more kill rewards for self-kills (https://github.com/MysticCity/MinigamesAPI/issues/11) * Fixed NPE using spectator sign outside of arena (https://github.com/MysticCity/MinigamesAPI/issues/154) +* Fixed PlayOutFakeBed (https://github.com/MysticCity/MinigamesAPI/issues/161) ###### BedWars From 99f50d3320c838f1304f8d5bf2cd6adbf082455b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 20 Sep 2016 07:21:59 +0200 Subject: [PATCH 136/266] v2 --- .../api/util/function}/FalseStub.java | 5 +- .../api/util/function}/TrueStub.java | 5 +- .../api/test/cmd/CommandInterfaceTest.java | 266 ++++++++++++++++++ .../impl/nms/AbstractMinigameEvent.java | 4 +- .../mce/minigames/impl/CommandImpl.java | 4 +- .../mce/minigames/impl/arena/ArenaImpl.java | 4 +- .../impl/player/ArenaPlayerImpl.java | 4 +- 7 files changed, 276 insertions(+), 16 deletions(-) rename {LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs => APIv2/src/main/java/com/github/mce/minigames/api/util/function}/FalseStub.java (91%) rename {LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs => APIv2/src/main/java/com/github/mce/minigames/api/util/function}/TrueStub.java (91%) create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java similarity index 91% rename from LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java rename to APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java index 6357627e..14a8cb5e 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/FalseStub.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java @@ -13,15 +13,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.impl.stubs; +package com.github.mce.minigames.api.util.function; import java.io.Serializable; import com.github.mce.minigames.api.MinigameErrorCode; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgConsumer; -import com.github.mce.minigames.api.util.function.MgFunction; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; /** * Outgoing stub for false checks of minigames predicates. diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java similarity index 91% rename from LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java rename to APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java index 4d8ed13e..6f5cd3dc 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/stubs/TrueStub.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java @@ -13,15 +13,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -package com.github.mce.minigames.impl.stubs; +package com.github.mce.minigames.api.util.function; import java.io.Serializable; import com.github.mce.minigames.api.MinigameErrorCode; import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgConsumer; -import com.github.mce.minigames.api.util.function.MgFunction; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; /** * Outgoing stub for true checks of minigames predicates. diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java new file mode 100644 index 00000000..a285694c --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java @@ -0,0 +1,266 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.cmd; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.Locale; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.junit.Before; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import com.github.mce.minigames.api.perms.CommonPermissions; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.FalseStub; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.api.util.function.TrueStub; + +/** + * Test case for {@link CommandInterface}. + * + * @author mepeisen + */ +public class CommandInterfaceTest +{ + + /** the messages. */ + private MessagesConfigInterface messages; + /** library. */ + private MglibInterface lib; + + /** + * Some setup. + */ + @Before + public void setup() + { + this.lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ + when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable + { + return invocation.getArgumentAt(0, String.class); + } + }); + this.messages = mock(MessagesConfigInterface.class); + when(this.lib.getMessagesFromMsg(anyObject())).thenReturn(this.messages); + } + + /** + * Tests {@link CommandInterface#isOp()} + */ + @Test + public void testIsOp() + { + final CommandSender senderNormal = mock(CommandSender.class); + when(senderNormal.isOp()).thenReturn(false); + final CommandSender senderOp = mock(CommandSender.class); + when(senderOp.isOp()).thenReturn(true); + + assertFalse(new Command(senderNormal, null, null, null, null).isOp()); + assertTrue(new Command(senderOp, null, null, null, null).isOp()); + } + + /** + * Tests {@link CommandInterface#isPlayer()} + * @throws MinigameException + */ + @Test + public void testIsPlayer() throws MinigameException + { + final CommandSender senderNormal = mock(CommandSender.class); + final Player senderPlayer = mock(Player.class); + + assertFalse(CommandInterface.isPlayer().test(new Command(senderNormal, null, null, null, null))); + assertTrue(CommandInterface.isPlayer().test(new Command(senderPlayer, null, null, null, null))); + } + + /** + * Tests {@link CommandInterface#permThrowException(com.github.mce.minigames.api.perms.PermissionsInterface, String)} + * @throws MinigameException + */ + @Test + public void testPermThrowExceptionOK() throws MinigameException + { + final ArenaPlayerInterface playerTrue = mock(ArenaPlayer.class); + when(playerTrue.checkPermission(anyObject())).thenReturn(true); + when(playerTrue.when(anyObject())).thenCallRealMethod(); + + final Command command = new Command(null, playerTrue, null, null, null); + command.permThrowException(CommonPermissions.Info, null); + } + + /** + * Tests {@link CommandInterface#permThrowException(com.github.mce.minigames.api.perms.PermissionsInterface, String)} + * @throws MinigameException + */ + @Test(expected = MinigameException.class) + public void testPermThrowExceptionFailed() throws MinigameException + { + final ArenaPlayerInterface playerFalse = mock(ArenaPlayer.class); + when(playerFalse.checkPermission(anyObject())).thenReturn(false); + when(playerFalse.when(anyObject())).thenCallRealMethod(); + + final Command command = new Command(null, playerFalse, null, null, null); + command.permThrowException(CommonPermissions.Info, null); + } + + /** + * Tests {@link CommandInterface#send(com.github.mce.minigames.api.locale.LocalizedMessageInterface, java.io.Serializable...)} + */ + @Test + public void testSend() + { + final CommandSender sender = mock(CommandSender.class); + final Command command = new Command(sender, null, null, null, null); + + command.send(CommonMessages.HelpHeader); + + verify(sender, times(1)).sendMessage("help"); + } + + /** + * arena player dummy impl. + * @author mepeisen + */ + private static abstract class ArenaPlayer implements ArenaPlayerInterface + { + + @Override + public MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInterface> test) throws MinigameException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + + } + + /** + * Sample Command impl + */ + private static final class Command implements CommandInterface + { + + /** sender */ + private final CommandSender sender; + /** player */ + private final ArenaPlayerInterface player; + /** command */ + private final org.bukkit.command.Command command; + /** label */ + private final String label; + /** args */ + private final String[] args; + + /** + * @param sender + * @param player + * @param command + * @param label + * @param args + */ + public Command(CommandSender sender, ArenaPlayerInterface player, org.bukkit.command.Command command, String label, String[] args) + { + this.sender = sender; + this.player = player; + this.command = command; + this.label = label; + this.args = args; + } + + @Override + public CommandSender getSender() + { + return this.sender; + } + + @Override + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + @Override + public org.bukkit.command.Command getCommand() + { + return this.command; + } + + @Override + public String getLabel() + { + return this.label; + } + + @Override + public String[] getArgs() + { + return this.args; + } + + @Override + public CommandInterface consumeArgs(int count) + { + // dummy + return null; + } + + @Override + public String getCommandPath() + { + // dummy + return null; + } + + @Override + public Locale getLocale() + { + // dummy + return Locale.ENGLISH; + } + + @Override + public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException + { + // dummy + return null; + } + + } + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java index 694fb15b..25966bb6 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java @@ -24,10 +24,10 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.FalseStub; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.impl.stubs.FalseStub; -import com.github.mce.minigames.impl.stubs.TrueStub; +import com.github.mce.minigames.api.util.function.TrueStub; /** * Base Implementation for minigame events. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java index be761c1f..0f40701f 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java @@ -25,10 +25,10 @@ import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.FalseStub; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.impl.stubs.FalseStub; -import com.github.mce.minigames.impl.stubs.TrueStub; +import com.github.mce.minigames.api.util.function.TrueStub; /** * Implementation of command interface. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java index 08e7ba7e..87563a7e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java @@ -28,12 +28,12 @@ import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.arena.ArenasConfig; import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import com.github.mce.minigames.api.util.function.FalseStub; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.api.util.function.TrueStub; import com.github.mce.minigames.impl.MinigameWrapper; import com.github.mce.minigames.impl.component.ComponentRegistry; -import com.github.mce.minigames.impl.stubs.FalseStub; -import com.github.mce.minigames.impl.stubs.TrueStub; /** * Implementation of arena interface. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 4a597e77..6acdc207 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -42,11 +42,11 @@ import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.FalseStub; import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.api.util.function.TrueStub; import com.github.mce.minigames.impl.gui.GuiSessionImpl; -import com.github.mce.minigames.impl.stubs.FalseStub; -import com.github.mce.minigames.impl.stubs.TrueStub; /** * Implementation of arena players. From c64090c163eb54f928f11507b569a30808816a75 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 24 Sep 2016 18:42:14 +0200 Subject: [PATCH 137/266] v2 --- APIv2/src/site/markdown/stories.md | 593 +++++++++++++++++++++++++++++ 1 file changed, 593 insertions(+) create mode 100644 APIv2/src/site/markdown/stories.md diff --git a/APIv2/src/site/markdown/stories.md b/APIv2/src/site/markdown/stories.md new file mode 100644 index 00000000..7b49f58c --- /dev/null +++ b/APIv2/src/site/markdown/stories.md @@ -0,0 +1,593 @@ +# User Stories + +## Table of Contents + +* [USER0010: Create a party](#user0001-create-a-party) +* [USER0002: Invite a party member](#user0002-invite-a-party-member) +* [USER0003: Accept party invitation](#admin0003-disband-party) +* [USER0004: Decline party invitation](#user0004-decline-party-invitation) +* [USER0005: Leave party](#user0005-leave-party) +* [USER0006: Disband party](#user0006-disband-party) +* [USER0007: Kick a party member](#user0007-kick-a-party-member) +* [USER0008: Join a queue with party](#user0008-join-a-queue-with-party) +* [USER0009: Leave a queue with party](#user0009-leave-a-queue-with-party) +* [USER0010: Display party scoreboard](#user0010-display-party-scoreboard) +* [USER0100: Join a queue](#user0100-join-a-queue) +* [USER0101: Leave a queue](#user0101-leave-a-queue) +* [USER0102: Display queue scoreboard](#user0102-display-queue-scoreboard) +* [USER0103: Join a waiting lobby](#user0103-join-a-waiting-lobby) +* [USER0104: Leave a waiting lobby](#user0104-leave-a-waiting-lobby) +* [USER0105: Display waiting lobby scoreboard](#user0105-display-waiting-lobby-scoreboard) +* [USER0106: Join a match](#user0106-join-a-match) +* [USER0107: Lose a match](#user0107-lose-a-match) +* [USER0108: Win a match](#user0108-win-a-match) +* [USER0109: Display match scoreboard](#user0109-display-match-scoreboard) +* [USER0110: Spectate a match](#user0110-spectate-a-match) +* [USER0111: Leave spectator match](#user0111-leave-spectator-match) +* [USER0112: Disconnect](#user0112-disconnect) +* [USER0113: Play a match](#user0113-play-a-match) +* [USER0114: Display animations](#user0114-display-animations) +* [USER0200: Display preferred locale](#user0200-display-preferred-locale) +* [USER0201: Use preferred locale](#user0201-use-preferred-locale) +* [USER0202: Change preferred locale](#user0202-change-preferred-locale) +* [USER0300: Display common information](#user0300-display-common-information) +* [USER0301: Display score list](#user0301-display-score-list) +* [USER0400: Open match shop](#user0400-open-match-shop) +* [USER0401: Select KIT](#user0401-select-kit) +* [USER0500: Accept admin test match invitation](#user0500-accept-admin-test-match-invitation) +* [USER0600: Joining queue as VIP](#user0600-joining-queue-as-vip) +* [USER0601: Joining queue as VIP with party](#user0601-joining-queue-as-vip-with-party) +* [USER0700: Displaying statistics](#user0700-displaying-statistics) +* [USER0701: Displaying achievements](#user0701-displaying-achievements) +* [USER0702: Getting achievements](#user0702-getting-achievements) +* [USER0703: Getting rewards](#user0703-getting-rewards) +* [USER0704: Playing arcade](#user0704-playing-arcade) +* [USER0705: Selecting guns and effects](#user0705-selecting-guns-and-effects) +* [USER0706: Joining waiting queue on different world](#user0706-joining-waiting-queue-on-different-world) +* [USER0707: Joining waiting queue on different server](#user0707-joining-waiting-queue-on-different-server) +* [USER0708: Displaying statistics](#user0708-displaying-statistics) +* [USER0800: Enter arena](#user0800-enter-arena) +* [USER0801: Entering Zone](#user0801-entering-zone) +* [USER0802: Leaving Zone](#user0802-leaving-zone) +* [USER0803: Switching Zone](#user0803-switching-zone) +* [USER0900: Changing blocks, Influencing game](#user0900-changing-blocks-influencing-game) +* [USER0901: Changing Game Mode](#user0901-changing-game-mode) +* [ADMIN0001: Display Information](#admin0001-display-information) +* [ADMIN0002: Debug](#admin0002-debug) +* [ADMIN0003: Disband Party](#admin0003-disband-party) +* [ADMIN0004: Kick party members](#admin0004-kick-party-members) +* [ADMIN0005: Display default language](#admin0005-display-default-language) +* [ADMIN0006: Change default language](#admin0006-change-default-language) +* [ADMIN0007: Display configuration options](#admin0007-display-configuration-options) +* [ADMIN0008: Change configuration options](#admin0008-change-configuration-options) +* [ADMIN0009: Enable Minigames Lib](#admin0009-enable-minigames-lib) +* [ADMIN0010: Disable Minigames lib](#admin0010-disable-minigames-lib) +* [ADMIN0011: Enable minigame](#admin0011-enable-minigame) +* [ADMIN0012: Disable minigame](#admin0012-disable-minigame) +* [ADMIN0014: Display language strings](#admin0014-display-language-strings) +* [ADMIN0015: Edit language string](#admin0015-edit-language-string) +* [ADMIN0100: Create arena](#admin0100-create-arena) +* [ADMIN0101: Edit arena](#admin0101-edit-arena) +* [ADMIN0102: Disable arena](#admin0102-disable-arena) +* [ADMIN0103: Enable arena](#admin0103-enable-arena) +* [ADMIN0104: Delete arena](#admin0104-delete-arena) +* [ADMIN0105: Check arena](#admin0105-check-arena) +* [ADMIN0106: Undo changes](#admin0106-undo-changes) +* [ADMIN0107: Save arena](#admin0107-save-arena) +* [ADMIN0108: Invite for Test match](#admin0108-invite-for-test-match) +* [ADMIN0109: Start test match](#admin0109-start-test-match) +* [ADMIN0110: Stop test match](#admin0110-stop-test-match) +* [ADMIN0111: Change arena state](#admin0111-change-arena-state) +* [ADMIN0200: Create arena zone](#admin0200-create-arena-zone) +* [ADMIN0201: Edit arena zone](#admin0201-edit-arena-zone) +* [ADMIN0202: Delete arena zone](#admin0202-delete-arena-zone) +* [ADMIN0300: Create arena component](#admin0300-create-arena-component) +* [ADMIN0301: Edit arena component](#admin0301-edit-arena-component) +* [ADMIN0302: Delete arena component](#admin0302-delete-arena-component) +* [ADMIN0400: Display minigame configuration options](#admin0400-display-minigame-configuration-options) +* [ADMIN0401: Edit minigame configuration options](#admin0401-edit-minigame-configuration-options) +* [ADMIN0402: Display minigame language strings](#admin0402-display-minigame-language-strings) +* [ADMIN0403: Edit minigame language strings](#admin0403-edit-minigame-language-strings) +* [ADMIN0500: Edit minigame kits](#admin0500-edit-minigame-kits) +* [ADMIN0600: Edit minigame shop](#admin0600-edit-minigame-shop) +* [ADMIN0700: Create queue](#admin0700-create-queue) +* [ADMIN0701: Edit arena queue](#admin0701-edit-arena-queue) +* [ADMIN0702: Delete arena queue](#admin0702-delete-arena-queue) +* [ADMIN0703: Enable arena queue](#admin0703-enable-arena-queue) +* [ADMIN0704: Disable arena queue](#admin0704-disable-arena-queue) +* [ADMIN0705: Create arcade queue](#admin0705-create-arcade-queue) +* [ADMIN0706: Edit arcade queue](#admin0706-edit-arcade-queue) +* [ADMIN0707: Delete arcade queue](#admin0707-delete-arcade-queue) +* [ADMIN0708: Enable arcade queue](#admin0708-enable-arcade-queue) +* [ADMIN0709: Disable arcade queue](#admin0709-disable-arcade-queue) +* [ADMIN0710: Create map rotation queue](#admin0710-create-map-rotation-queue) +* [ADMIN0711: Edit map rotation queue](#admin0711-edit-map-rotation-queue) +* [ADMIN0712: Delete map rotation queue](#admin0712-delete-map-rotation-queue) +* [ADMIN0713: Enable map rotation queue](#admin0713-enable-map-rotation-queue) +* [ADMIN0714: Disable map rotation queue](#admin0714-disable-map-rotation-queue) +* [ADMIN0800: Changing blocks, Influencing game](#admin0800-changing-blocks-influencing-game) +* [ADMIN0801: Changing Game Mode](#admin0801-changing-game-mode) +* [MC0001: Spawning mobs](#mc0001-spawning-mobs) +* [MC0002: Changing time](#mc0002-changing-time) +* [MC0003: Changing weather](#mc0003-changing-weather) +* [MC0004: Spawning mobs](#mc0004-spawning-mobs) +* [MC0005: Changing blocks, influencing game](#mc0005-changing-blocks-influencing-game) +* [MC0006: Mob enters arena](#mc0006-mob-enters-arena) +* [MC0007: Mob leaves arena](#mc0007-mob-leaves-arena) +* [MC0008: Mob enters zone](#mc0008-mob-enters-zone) +* [MC0009: Mob leaves arena](#mc0009-mob-leaves-arena) +* [MC0010: Mob attacks players](#mc0010-mob-attacks-players) + +## Community edition + +### Core + +#### User + +##### USER0001: Create a party + +TODO + +##### USER0002: Invite a party member + +TODO + +##### USER0003: Accept party invitation + +TODO + +##### USER0004: Decline party invitation + +TODO + +##### USER0005: Leave party + +TODO + +##### USER0006: Disband party + +TODO + +##### USER0007: Kick a party member + +TODO + +##### USER0008: Join a queue with party + +TODO + +##### USER0009: Leave a queue with party + +TODO + +##### USER0010: Display party scoreboard + +TODO + +##### USER0100: Join a queue + +TODO + +##### USER0101: Leave a queue + +TODO + +##### USER0102: Display queue scoreboard + +TODO + +##### USER0103: Join a waiting lobby + +TODO + +##### USER0104: Leave a waiting lobby + +TODO + +##### USER0105: Display waiting lobby scoreboard + +TODO + +##### USER0106: Join a match + +TODO + +##### USER0107: Lose a match + +TODO + +##### USER0108: Win a match + +TODO + +##### USER0109: Display match scoreboard + +TODO + +##### USER0110: Spectate a match + +TODO + +##### USER0111: Leave spectator match + +TODO + +##### USER0112: Disconnect + +TODO + +##### USER0113: Play a match + +TODO + +##### USER0114: Display animations + +TODO + +##### USER0200: Display preferred locale + +TODO + +##### USER0201: Use preferred locale + +TODO + +##### USER0202: Change preferred locale + +TODO + +##### USER0300: Display common information + +TODO + +##### USER0301: Display score list + +TODO + +##### USER0400: Open match shop + +TODO + +##### USER0401: Select KIT + +TODO + +##### USER0500: Accept admin test match invitation + +TODO + +##### USER0600: Joining queue as VIP + +TODO + +##### USER0601: Joining queue as VIP with party + +TODO + +##### USER0700: Displaying statistics + +TODO + +##### USER0701: Displaying achievements + +TODO + +##### USER0702: Getting achievements + +TODO + +##### USER0703: Getting rewards + +TODO + +##### USER0704: Playing arcade + +TODO + +##### USER0705: Selecting guns and effects + +TODO + +##### USER0706: Joining waiting queue on different world + +TODO + +##### USER0707: Joining waiting queue on different server + +TODO + +##### USER0708: Displaying statistics + +TODO + +##### USER0800: Enter arena + +TODO + +##### USER0801: Entering Zone + +TODO + +##### USER0802: Leaving Zone + +TODO + +##### USER0803: Switching Zone + +TODO + +##### USER0900: Changing blocks, Influencing game + +TODO + +##### USER0901: Changing Game Mode + +TODO + +#### Admin + +##### ADMIN0001: Display Information + +TODO + +##### ADMIN0002: Debug + +TODO + +##### ADMIN0003: Disband Party + +TODO + +##### ADMIN0004: Kick party members + +TODO + +##### ADMIN0005: Display default language + +TODO + +##### ADMIN0006: Change default language + +TODO + +##### ADMIN0007: Display configuration options + +TODO + +##### ADMIN0008: Change configuration options + +TODO + +##### ADMIN0009: Enable Minigames Lib + +TODO + +##### ADMIN0010: Disable Minigames lib + +TODO + +##### ADMIN0011: Enable minigame + +TODO + +##### ADMIN0012: Disable minigame + +TODO + +##### ADMIN0014: Display language strings + +TODO + +##### ADMIN0015: Edit language string + +TODO + +##### ADMIN0100: Create arena + +TODO + +##### ADMIN0101: Edit arena + +TODO + +##### ADMIN0102: Disable arena + +TODO + +##### ADMIN0103: Enable arena + +TODO + +##### ADMIN0104: Delete arena + +TODO + +##### ADMIN0105: Check arena + +TODO + +##### ADMIN0106: Undo changes + +TODO + +##### ADMIN0107: Save arena + +TODO + +##### ADMIN0108: Invite for Test match + +TODO + +##### ADMIN0109: Start test match + +TODO + +##### ADMIN0110: Stop test match + +TODO + +##### ADMIN0111: Change arena state + +TODO + +##### ADMIN0200: Create arena zone + +TODO + +##### ADMIN0201: Edit arena zone + +TODO + +##### ADMIN0202: Delete arena zone + +TODO + +##### ADMIN0300: Create arena component + +TODO + +##### ADMIN0301: Edit arena component + +TODO + +##### ADMIN0302: Delete arena component + +TODO + +##### ADMIN0400: Display minigame configuration options + +TODO + +##### ADMIN0401: Edit minigame configuration options + +TODO + +##### ADMIN0402: Display minigame language strings + +TODO + +##### ADMIN0403: Edit minigame language strings + +TODO + +##### ADMIN0500: Edit minigame kits + +TODO + +##### ADMIN0600: Edit minigame shop + +TODO + +##### ADMIN0700: Create queue + +TODO + +##### ADMIN0701: Edit arena queue + +TODO + +##### ADMIN0702: Delete arena queue + +TODO + +##### ADMIN0703: Enable arena queue + +TODO + +##### ADMIN0704: Disable arena queue + +TODO + +##### ADMIN0705: Create arcade queue + +TODO + +##### ADMIN0706: Edit arcade queue + +TODO + +##### ADMIN0707: Delete arcade queue + +TODO + +##### ADMIN0708: Enable arcade queue + +TODO + +##### ADMIN0709: Disable arcade queue + +TODO + +##### ADMIN0710: Create map rotation queue + +TODO + +##### ADMIN0711: Edit map rotation queue + +TODO + +##### ADMIN0712: Delete map rotation queue + +TODO + +##### ADMIN0713: Enable map rotation queue + +TODO + +##### ADMIN0714: Disable map rotation queue + +TODO + +##### ADMIN0800: Changing blocks, Influencing game + +TODO + +##### ADMIN0801: Changing Game Mode + +TODO + +#### System/Minecraft + +##### MC0001: Spawning mobs + +TODO + +##### MC0002: Changing time + +TODO + +##### MC0003: Changing weather + +TODO + +##### MC0004: Spawning mobs + +TODO + +##### MC0005: Changing blocks, influencing game + +TODO + +##### MC0006: Mob enters arena + +TODO + +##### MC0007: Mob leaves arena + +TODO + +##### MC0008: Mob enters zone + +TODO + +##### MC0009: Mob leaves arena + +TODO + +##### MC0010: Mob attacks players + +TODO + +## Premium edition + +TODO From c3a1c804086dc780e29d224c006b46b804270dc0 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 25 Sep 2016 07:45:42 +0200 Subject: [PATCH 138/266] v2 --- .../cmd/AbstractCompositeCommandHandler.java | 3 +- .../cmd/AbstractPagableCommandHandler.java | 8 +- .../AbstractCompositeCommandHandlerTest.java | 399 ++++++++++++++++ .../AbstractPagableCommandHandlerTest.java | 440 ++++++++++++++++++ .../api/test/cmd/CommandInterfaceTest.java | 9 +- 5 files changed, 853 insertions(+), 6 deletions(-) create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java create mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java index deef631f..e55be80c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java @@ -18,6 +18,7 @@ import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -121,7 +122,7 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro final CommandHandlerInterface handler = this.subCommands.get(name); if (handler == null) { - return null; + return Collections.emptyList(); } return handler.onTabComplete(command.consumeArgs(1), lastArg); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java index cff5ec0f..77f67b19 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java @@ -68,7 +68,7 @@ public void handle(CommandInterface command) throws MinigameException int page = 1; int pageLimit = 10; int lineCount = this.getLineCount(command); - int pageCount = (int) Math.ceil(lineCount / pageLimit); + int pageCount = (int) Math.ceil((double)lineCount / pageLimit); if (pageCount == 0) { pageCount++; @@ -95,7 +95,7 @@ public void handle(CommandInterface command) throws MinigameException sendWrongPage(command, page, pageCount); return; } - start = (page - 1) * pageCount; + start = (page - 1) * pageLimit; } catch (@SuppressWarnings("unused") NumberFormatException ex) { @@ -106,8 +106,8 @@ public void handle(CommandInterface command) throws MinigameException } command.send(CommonMessages.PagedHeader, this.getHeader(command), page, pageCount); - int i = 1; - for (Serializable line : this.getLines(command, start, lineCount)) + int i = start + 1; + for (Serializable line : this.getLines(command, start, pageLimit)) { command.send(CommonMessages.PagedLine, line, i); i++; diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java new file mode 100644 index 00000000..83119e23 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java @@ -0,0 +1,399 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.cmd; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.junit.Before; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; +import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.FalseStub; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; +import com.github.mce.minigames.api.util.function.TrueStub; + +/** + * Test case for {@link AbstractCompositeCommandHandler}. + * + * @author mepeisen + */ +public class AbstractCompositeCommandHandlerTest +{ + + /** the messages. */ + private MessagesConfigInterface messages; + /** library. */ + private MglibInterface lib; + + /** + * Some setup. + */ + @Before + public void setup() + { + this.lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ + when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable + { + return invocation.getArgumentAt(0, String.class); + } + }); + this.messages = mock(MessagesConfigInterface.class); + when(this.lib.getMessagesFromMsg(anyObject())).thenReturn(this.messages); + } + + /** + * Tests pre method + * @throws MinigameException + */ + @Test(expected = MinigameException.class) + public void testPreFailed() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + + new DummyCommandHandler().handle(new Command(sender, null, null, null, null)); + } + + /** + * Tests usage sending on empty command + * @throws MinigameException + */ + @Test + public void testSendsUsage() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + new DummyCommandHandler().handle(new Command(bukkitPlayer, player, null, null, new String[0])); + + verify(player, times(1)).sendMessage(CommonMessages.HelpLineUsage, "usage", "help"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests sending unknown sub command error + * @throws MinigameException + */ + @Test + public void testSendsUnknownSubCommand() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + new DummyCommandHandler().handle(new Command(bukkitPlayer, player, null, null, new String[]{"unknown"})); //$NON-NLS-1$ + + verify(player, times(1)).sendMessage(CommonMessages.CompositeUnknownSubCommand, "path", "unknown"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Tests invoking sub command + * @throws MinigameException + */ + @Test + public void testInvokingSubCommand() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + // no twice injection + assertFalse(handler.injectSubCommand("Sub", null)); //$NON-NLS-1$ + + doAnswer(new Answer<Void>(){ + @Override + public Void answer(InvocationOnMock invocation) throws Throwable + { + final CommandInterface cmd = invocation.getArgumentAt(0, CommandInterface.class); + cmd.send(CommonMessages.CreateCommandUsage, cmd.getArgs()[0]); + return null; + } + }).when(subCommand).handle(anyObject()); + + handler.handle(new Command(bukkitPlayer, player, null, null, new String[]{"SUB", "FOO"})); //$NON-NLS-1$ //$NON-NLS-2$ + + verify(player, times(1)).sendMessage(CommonMessages.CreateCommandUsage, "FOO"); //$NON-NLS-1$ + } + + /** + * Tests invoking on Tab complete + * @throws MinigameException + */ + @Test + public void testOnTabComplete1() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + + final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), ""); //$NON-NLS-1$ + assertEquals(1, results.size()); + assertTrue(results.contains("sub")); //$NON-NLS-1$ + } + + /** + * Tests invoking on Tab complete + * @throws MinigameException + */ + @Test + public void testOnTabComplete2() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + assertTrue(handler.injectSubCommand("sub2", subCommand)); //$NON-NLS-1$ + + final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), ""); //$NON-NLS-1$ + assertEquals(2, results.size()); + assertTrue(results.contains("sub")); //$NON-NLS-1$ + assertTrue(results.contains("sub2")); //$NON-NLS-1$ + } + + /** + * Tests invoking on Tab complete + * @throws MinigameException + */ + @Test + public void testOnTabComplete2b() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ + + final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), "f"); //$NON-NLS-1$ + assertEquals(1, results.size()); + assertTrue(results.contains("foo")); //$NON-NLS-1$ + } + + /** + * Tests invoking on Tab complete + * @throws MinigameException + */ + @Test + public void testOnTabComplete2c() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ + + final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), "q"); //$NON-NLS-1$ + assertEquals(0, results.size()); + } + + /** + * Tests invoking on Tab complete + * @throws MinigameException + */ + @Test + public void testOnTabCompleteUnknown() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ + + final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{"unknown"}), ""); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(0, results.size()); + } + + /** + * Tests invoking on Tab complete + * @throws MinigameException + */ + @Test + public void testOnTabCompleteKnown() throws MinigameException + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final Player bukkitPlayer = mock(Player.class); + + final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); + final DummyCommandHandler handler = new DummyCommandHandler(); + assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ + assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ + + when(subCommand.onTabComplete(anyObject(), anyString())).thenReturn(new ArrayList<>(Collections.singleton("bar"))); //$NON-NLS-1$ + + final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{"sub"}), ""); //$NON-NLS-1$ //$NON-NLS-2$ + assertEquals(1, results.size()); + assertTrue(results.contains("bar")); //$NON-NLS-1$ + } + + /** + * dummy composite command + */ + private static final class DummyCommandHandler extends AbstractCompositeCommandHandler + { + + /** + * constructor + */ + public DummyCommandHandler() + { + // empty + } + + @Override + protected void sendUsage(CommandInterface command) + { + command.send(CommonMessages.HelpLineUsage, "usage", "help"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + } + + /** + * Sample Command impl + */ + private static final class Command implements CommandInterface + { + + /** sender */ + private final CommandSender sender; + /** player */ + private final ArenaPlayerInterface player; + /** command */ + private final org.bukkit.command.Command command; + /** label */ + private final String label; + /** args */ + private final String[] args; + + /** + * @param sender + * @param player + * @param command + * @param label + * @param args + */ + public Command(CommandSender sender, ArenaPlayerInterface player, org.bukkit.command.Command command, String label, String[] args) + { + this.sender = sender; + this.player = player; + this.command = command; + this.label = label; + this.args = args; + } + + @Override + public CommandSender getSender() + { + return this.sender; + } + + @Override + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + @Override + public org.bukkit.command.Command getCommand() + { + return this.command; + } + + @Override + public String getLabel() + { + return this.label; + } + + @Override + public String[] getArgs() + { + return this.args; + } + + @Override + public CommandInterface consumeArgs(int count) + { + // dummy + return new Command(this.sender, this.player, this.command, this.label, Arrays.copyOfRange(this.args, 1, this.args.length)); + } + + @Override + public String getCommandPath() + { + // dummy + return "path"; //$NON-NLS-1$ + } + + @Override + public Locale getLocale() + { + // dummy + return Locale.ENGLISH; + } + + @Override + public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java new file mode 100644 index 00000000..9be86638 --- /dev/null +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java @@ -0,0 +1,440 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.api.test.cmd; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import org.bukkit.command.CommandSender; +import org.junit.Test; +import org.mockito.InOrder; +import org.mockito.Mockito; + +import com.github.mce.minigames.api.CommonMessages; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; +import com.github.mce.minigames.api.cmd.CommandInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; +import com.github.mce.minigames.api.util.function.MgPredicate; + +/** + * Tests for {@link AbstractPagableCommandHandler} + * + * @author mepeisen + * + */ +public class AbstractPagableCommandHandlerTest +{ + + /** + * tests the first page + * @throws MinigameException + */ + @Test + public void testFirstPage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{}); + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 1, 3); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 1", 1); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 2", 2); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 3", 3); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 4", 4); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 5", 5); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 6", 6); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 7", 7); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 8", 8); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 9", 9); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 10", 10); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the second page + * @throws MinigameException + */ + @Test + public void testFirstPage2() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"1"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 1, 3); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 1", 1); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 2", 2); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 3", 3); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 4", 4); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 5", 5); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 6", 6); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 7", 7); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 8", 8); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 9", 9); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 10", 10); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the second page + * @throws MinigameException + */ + @Test + public void testSecondPage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"2"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 2, 3); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 11", 11); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 12", 12); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 13", 13); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 14", 14); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 15", 15); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 16", 16); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 17", 17); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 18", 18); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 19", 19); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 20", 20); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the third page + * @throws MinigameException + */ + @Test + public void testThirdPage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"3"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 3, 3); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 21", 21); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 22", 22); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 23", 23); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 24", 24); //$NON-NLS-1$ + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 25", 25); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the negative page + * @throws MinigameException + */ + @Test + public void testNegativePage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"-1"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedWrongPageNum, -1, 3); + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the zero page + * @throws MinigameException + */ + @Test + public void testZeroPage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"0"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedWrongPageNum, 0, 3); + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the fourth page + * @throws MinigameException + */ + @Test + public void testFourthPage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"4"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedWrongPageNum, 4, 3); + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the number format exception + * @throws MinigameException + */ + @Test + public void testNFE() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final DummyHandler dummy = new DummyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"foo"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedInvalidNumber); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PageUsage, "path"); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the first page + * @throws MinigameException + */ + @Test + public void testEmptyFirstPage() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final EmptyHandler dummy = new EmptyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{}); + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "EMPTY-HEADER", 1, 1); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * tests the first page + * @throws MinigameException + */ + @Test + public void testEmptyFirstPage2() throws MinigameException + { + final CommandSender sender = mock(CommandSender.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final EmptyHandler dummy = new EmptyHandler(); + final Command cmd = new Command(sender, player, null, null, new String[]{"1"}); //$NON-NLS-1$ + + dummy.handle(cmd); + + InOrder inOrder = Mockito.inOrder(player); + inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "EMPTY-HEADER", 1, 1); //$NON-NLS-1$ + inOrder.verifyNoMoreInteractions(); + } + + /** + * Sample Command impl + */ + private static final class Command implements CommandInterface + { + + /** sender */ + private final CommandSender sender; + /** player */ + private final ArenaPlayerInterface player; + /** command */ + private final org.bukkit.command.Command command; + /** label */ + private final String label; + /** args */ + private final String[] args; + + /** + * @param sender + * @param player + * @param command + * @param label + * @param args + */ + public Command(CommandSender sender, ArenaPlayerInterface player, org.bukkit.command.Command command, String label, String[] args) + { + this.sender = sender; + this.player = player; + this.command = command; + this.label = label; + this.args = args; + } + + @Override + public CommandSender getSender() + { + return this.sender; + } + + @Override + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + @Override + public org.bukkit.command.Command getCommand() + { + return this.command; + } + + @Override + public String getLabel() + { + return this.label; + } + + @Override + public String[] getArgs() + { + return this.args; + } + + @Override + public CommandInterface consumeArgs(int count) + { + // dummy + return null; + } + + @Override + public String getCommandPath() + { + // dummy + return "path"; //$NON-NLS-1$ + } + + @Override + public Locale getLocale() + { + // dummy + return Locale.ENGLISH; + } + + @Override + public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException + { + // dummy + return null; + } + + } + + /** + * Test Helper + */ + private static class DummyHandler extends AbstractPagableCommandHandler + { + + /** + * Constructor + */ + public DummyHandler() + { + // empty + } + + @Override + protected int getLineCount(CommandInterface command) + { + return 25; + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + return "DUMMY-HEADER"; //$NON-NLS-1$ + } + + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final List<Serializable> result = new ArrayList<>(); + for (int i = start; i < 25 && result.size() < count; i++) + { + result.add("Line " + (i + 1)); //$NON-NLS-1$ + } + return result.toArray(new Serializable[result.size()]); + } + + } + + /** + * Test Helper + */ + private static class EmptyHandler extends AbstractPagableCommandHandler + { + + /** + * Constructor + */ + public EmptyHandler() + { + // empty + } + + @Override + protected int getLineCount(CommandInterface command) + { + return 0; + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + return "EMPTY-HEADER"; //$NON-NLS-1$ + } + + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + return new Serializable[0]; + } + + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java index a285694c..e343cbe8 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java @@ -145,10 +145,17 @@ public void testSend() { final CommandSender sender = mock(CommandSender.class); final Command command = new Command(sender, null, null, null, null); + when(this.messages.getString(anyObject(), anyObject(), anyObject())).thenAnswer(new Answer<String>() { + @Override + public String answer(InvocationOnMock invocation) throws Throwable + { + return invocation.getArgumentAt(2, String.class); + } + }); command.send(CommonMessages.HelpHeader); - verify(sender, times(1)).sendMessage("help"); + verify(sender, times(1)).sendMessage("§fhelp"); //$NON-NLS-1$ } /** From 3c1f9defbc6f249e02b1eedf5cff90812c283e4a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 25 Sep 2016 15:17:16 +0200 Subject: [PATCH 139/266] v2 --- .../impl/nms/AbstractEventSystem.java | 78 ++- .../impl/nms/AbstractMinigameEvent.java | 16 +- .../impl/nms/EventSystemInterface.java | 6 + .../impl/nms/MgArenaCreateEvent.java | 2 +- .../impl/nms/MgArenaCreatedEvent.java | 2 +- .../impl/nms/MgArenaDeleteEvent.java | 2 +- .../impl/nms/MgArenaDeletedEvent.java | 2 +- .../impl/nms/MgArenaMaintenanceEvent.java | 2 +- .../impl/nms/MgArenaPlayerJoinEvent.java | 2 +- .../impl/nms/MgArenaPlayerJoinedEvent.java | 2 +- .../nms/MgArenaPlayerJoinedQueueEvent.java | 2 +- .../nms/MgArenaPlayerLeavesQueueEvent.java | 2 +- .../minigames/impl/nms/MgArenaStateEvent.java | 2 +- .../minigames/impl/nms/MgEventListener.java | 35 ++ .../impl/nms/MgPlayerCloseGuiEvent.java | 2 +- .../impl/nms/MgPlayerDisplayGuiPageEvent.java | 2 +- .../impl/nms/MgPlayerGuiClickEvent.java | 2 +- .../impl/nms/MgPlayerOpenGuiEvent.java | 2 +- .../test/nms/AbstractEventSystemTest.java | 521 ++++++++++++++++++ .../test/nms/AbstractMinigameEventTest.java | 444 +++++++++++++++ .../impl/test/nms/MgArenaCreateEventTest.java | 57 ++ .../test/nms/MgArenaCreatedEventTest.java | 57 ++ .../impl/test/nms/MgArenaDeleteEventTest.java | 57 ++ .../test/nms/MgArenaDeletedEventTest.java | 57 ++ .../test/nms/MgArenaMaintenanceEventTest.java | 57 ++ .../test/nms/MgArenaPlayerJoinEventTest.java | 58 ++ .../nms/MgArenaPlayerJoinedEventTest.java | 58 ++ .../MgArenaPlayerJoinedQueueEventTest.java | 55 ++ .../MgArenaPlayerLeavesQueueEventTest.java | 55 ++ .../impl/test/nms/MgArenaStateEventTest.java | 58 ++ .../test/nms/MgPlayerCloseGuiEventTest.java | 55 ++ .../nms/MgPlayerDisplayGuiPageEventTest.java | 57 ++ .../test/nms/MgPlayerGuiClickEventTest.java | 57 ++ .../test/nms/MgPlayerOpenGuiEventTest.java | 55 ++ 34 files changed, 1891 insertions(+), 30 deletions(-) create mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java create mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java index 4aa01c72..e7907429 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java @@ -15,12 +15,16 @@ package com.github.mce.minigames.impl.nms; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.bukkit.event.Event; import org.bukkit.event.EventHandler; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaCreateEvent; import com.github.mce.minigames.api.event.ArenaCreatedEvent; @@ -36,6 +40,7 @@ import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; import com.github.mce.minigames.api.event.PlayerGuiClickEvent; import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; /** * Abstract base class for event systems. @@ -50,6 +55,9 @@ public abstract class AbstractEventSystem implements EventSystemInterface */ private final Map<Class<? extends Event>, MinigameEventHandler<?, ?>> eventHandlers = new HashMap<>(); + /** common event listeners. */ + protected final List<MgEventListener> listeners = new ArrayList<>(); + /** * Constructor. */ @@ -71,6 +79,12 @@ public AbstractEventSystem() this.registerHandler(PlayerOpenGuiEvent.class, (evt) -> new MgPlayerOpenGuiEvent(evt)); } + @Override + public void addEventListener(MgEventListener listener) + { + this.listeners.add(listener); + } + /** * Returns the minigame event handler for given class. * @@ -169,6 +183,18 @@ public void onArenaPlayerJoined(ArenaPlayerJoinedEvent evt) this.getHandler(ArenaPlayerJoinedEvent.class).handle(evt); } + /** + * Event handler for ArenaPlayerJoinEvent event. + * + * @param evt + * the event to be passed. + */ + @EventHandler + public void onArenaPlayerJoin(ArenaPlayerJoinEvent evt) + { + this.getHandler(ArenaPlayerJoinEvent.class).handle(evt); + } + /** * Event handler for ArenaPlayerJoinedQueueEvent event. * @@ -236,7 +262,7 @@ public void onPlayerDisplayGuiPage(PlayerDisplayGuiPageEvent evt) * the event to be passed. */ @EventHandler - public void onPlayerClickGui(PlayerGuiClickEvent evt) + public void onPlayerGuiClick(PlayerGuiClickEvent evt) { this.getHandler(PlayerGuiClickEvent.class).handle(evt); } @@ -266,27 +292,67 @@ public <Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> MgEvt create * @author mepeisen * @param <T> * event clazz for handling the events. + * @param <MgEvt> + * event clazz for handling the events. */ protected final class MinigameEventHandler<T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> { + /** the event factory. */ + private MinigameEventFactory<T, MgEvt> factory; + /** event class. */ + private Class<T> cls; + + /** + * Constructor. + * @param clazz event class + * @param factory mg event factory + */ public MinigameEventHandler(Class<T> clazz, MinigameEventFactory<T, MgEvt> factory) { - // TODO + this.cls = clazz; + this.factory = factory; } /** + * Handles minigame event. * @param evt */ public void handle(T evt) { - // TODO Auto-generated method stub + final MgEvt mgevt = this.createMgEvent(evt); + for (MgEventListener listener : AbstractEventSystem.this.listeners) + { + listener.handle(this.cls, mgevt); + } + + final ArenaPlayerInterface player = mgevt.getPlayer(); + if (player instanceof MgEventListener) + { + ((MgEventListener) player).handle(this.cls, mgevt); + } + + final ArenaInterface arena = mgevt.getArena(); + if (arena instanceof MgEventListener) + { + ((MgEventListener) arena).handle(this.cls, mgevt); + } + + final MinigameInterface minigame = mgevt.getMinigame(); + if (minigame instanceof MgEventListener) + { + ((MgEventListener) minigame).handle(this.cls, mgevt); + } } + /** + * Creates minigame event. + * @param evt bukkit event + * @return minigame event. + */ public MgEvt createMgEvent(T evt) { - // TODO - return null; + return this.factory.create(evt); } } @@ -295,7 +361,7 @@ public MgEvt createMgEvent(T evt) * Interface for creating minigame event classes from given bukkit event. * * @param <Evt> - * @param <MgEvt> + * @param <MgEvt> */ @FunctionalInterface public interface MinigameEventFactory<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java index 25966bb6..73694ae1 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java @@ -63,13 +63,11 @@ public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player) /** * Abstract minigame event. * @param event the event. - * @param player * @param arena */ - public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, ArenaInterface arena) + public AbstractMinigameEvent(Evt event, ArenaInterface arena) { this.event = event; - this.player = player; this.arena = arena; } @@ -77,13 +75,13 @@ public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, ArenaInterf * Abstract minigame event. * @param event the event. * @param player - * @param location + * @param arena */ - public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location location) + public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, ArenaInterface arena) { this.event = event; this.player = player; - this.arena = this.getLib().getArenaFromLocation(location); + this.arena = arena; } /** @@ -91,14 +89,12 @@ public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location lo * @param event the event. * @param player * @param location - * @param affectedLocations */ - public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location location, Location[] affectedLocations) + public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location location) { this.event = event; this.player = player; this.arena = this.getLib().getArenaFromLocation(location); - // TODO } @Override @@ -122,7 +118,7 @@ public MinigameInterface getMinigame() @Override public ArenaInterface getArena() { - return this.player.getArena(); + return this.arena == null ? this.player.getArena() : this.arena; } @Override diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java index 368b6844..0e0726a6 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java @@ -36,4 +36,10 @@ public interface EventSystemInterface extends Listener */ <Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> MgEvt createEvent(Evt bukkitEvent); + /** + * Adds a new event listener. + * @param listener + */ + void addEventListener(MgEventListener listener); + } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java index a25451d4..343ae5e2 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java @@ -32,7 +32,7 @@ public class MgArenaCreateEvent extends AbstractMinigameEvent<ArenaCreateEvent, */ public MgArenaCreateEvent(ArenaCreateEvent event) { - super(event, null); // TODO + super(event, event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java index 91694eaa..cff07950 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java @@ -32,7 +32,7 @@ public class MgArenaCreatedEvent extends AbstractMinigameEvent<ArenaCreatedEvent */ public MgArenaCreatedEvent(ArenaCreatedEvent event) { - super(event, null); // TODO + super(event, event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java index a1173f60..4b3b1c35 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java @@ -32,7 +32,7 @@ public class MgArenaDeleteEvent extends AbstractMinigameEvent<ArenaDeleteEvent, */ public MgArenaDeleteEvent(ArenaDeleteEvent event) { - super(event, null); // TODO + super(event, event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java index 702f1d25..18915929 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java @@ -32,7 +32,7 @@ public class MgArenaDeletedEvent extends AbstractMinigameEvent<ArenaDeletedEvent */ public MgArenaDeletedEvent(ArenaDeletedEvent event) { - super(event, null); // TODO + super(event, event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java index 2db0aec9..7b4c167b 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java @@ -32,7 +32,7 @@ public class MgArenaMaintenanceEvent extends AbstractMinigameEvent<ArenaMaintena */ public MgArenaMaintenanceEvent(ArenaMaintenanceEvent event) { - super(event, null); // TODO + super(event, event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java index 603d29c8..0686dda6 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java @@ -32,7 +32,7 @@ public class MgArenaPlayerJoinEvent extends AbstractMinigameEvent<ArenaPlayerJoi */ public MgArenaPlayerJoinEvent(ArenaPlayerJoinEvent event) { - super(event, null); // TODO + super(event, event.getPlayer(), event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java index 33fd1981..c432d1d5 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java @@ -32,7 +32,7 @@ public class MgArenaPlayerJoinedEvent extends AbstractMinigameEvent<ArenaPlayerJ */ public MgArenaPlayerJoinedEvent(ArenaPlayerJoinedEvent event) { - super(event, null); // TODO + super(event, event.getPlayer(), event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java index 08ed4a97..e7023671 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java @@ -32,7 +32,7 @@ public class MgArenaPlayerJoinedQueueEvent extends AbstractMinigameEvent<ArenaPl */ public MgArenaPlayerJoinedQueueEvent(ArenaPlayerJoinedQueueEvent event) { - super(event, null); // TODO + super(event, event.getPlayer()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java index 8d07d543..b9efe67f 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java @@ -32,7 +32,7 @@ public class MgArenaPlayerLeavesQueueEvent extends AbstractMinigameEvent<ArenaPl */ public MgArenaPlayerLeavesQueueEvent(ArenaPlayerLeavesQueueEvent event) { - super(event, null); // TODO + super(event, event.getPlayer()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java index 59efc234..ed1ee44f 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java @@ -32,7 +32,7 @@ public class MgArenaStateEvent extends AbstractMinigameEvent<ArenaStateEvent, Mi */ public MgArenaStateEvent(ArenaStateEvent event) { - super(event, null); // TODO + super(event, event.getArena()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java new file mode 100644 index 00000000..9ba79d0e --- /dev/null +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java @@ -0,0 +1,35 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.nms; + +import com.github.mce.minigames.api.arena.rules.MinigameEvent; + +/** + * Helper interface for minigame event listeners. + * + * @author mepeisen + */ +public interface MgEventListener +{ + + /** + * Handles given event. + * @param eventClass + * @param event + */ + void handle(Class<?> eventClass, MinigameEvent<?, ?> event); + +} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java index 63061384..d15f3764 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java @@ -32,7 +32,7 @@ public class MgPlayerCloseGuiEvent extends AbstractMinigameEvent<PlayerCloseGuiE */ public MgPlayerCloseGuiEvent(PlayerCloseGuiEvent event) { - super(event, null); // TODO + super(event, event.getPlayer()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java index 22e1fee5..8537dc1e 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java @@ -32,7 +32,7 @@ public class MgPlayerDisplayGuiPageEvent extends AbstractMinigameEvent<PlayerDis */ public MgPlayerDisplayGuiPageEvent(PlayerDisplayGuiPageEvent event) { - super(event, null); // TODO + super(event, event.getPlayer()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java index 901b7062..accdad14 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java @@ -32,7 +32,7 @@ public class MgPlayerGuiClickEvent extends AbstractMinigameEvent<PlayerGuiClickE */ public MgPlayerGuiClickEvent(PlayerGuiClickEvent event) { - super(event, null); // TODO + super(event, event.getPlayer()); } } diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java index 7b8bc3a5..d8c5c8ad 100644 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java +++ b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java @@ -32,7 +32,7 @@ public class MgPlayerOpenGuiEvent extends AbstractMinigameEvent<PlayerOpenGuiEve */ public MgPlayerOpenGuiEvent(PlayerOpenGuiEvent event) { - super(event, null); // TODO + super(event, event.getPlayer()); } } diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java new file mode 100644 index 00000000..934fbe5f --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java @@ -0,0 +1,521 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.withSettings; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiConsumer; +import java.util.function.Function; + +import org.bukkit.event.Event; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaState; +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.event.ArenaCreateEvent; +import com.github.mce.minigames.api.event.ArenaCreatedEvent; +import com.github.mce.minigames.api.event.ArenaDeleteEvent; +import com.github.mce.minigames.api.event.ArenaDeletedEvent; +import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; +import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; +import com.github.mce.minigames.api.event.ArenaStateEvent; +import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; +import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; +import com.github.mce.minigames.api.event.PlayerGuiClickEvent; +import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiItem; +import com.github.mce.minigames.api.gui.ClickGuiPageInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.AbstractEventSystem; +import com.github.mce.minigames.impl.nms.MgEventListener; + +/** + * Test for {@link AbstractEventSystem} + * + * @author mepeisen + * + */ +public class AbstractEventSystemTest +{ + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaStateEvent() + { + this.testMgListenerCalled(ArenaStateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaStateEvent(evt.arena, ArenaState.Disabled, ArenaState.InGame), (sys, evt) -> sys.onArenaState(evt)); + this.testArenaListenerCalled(ArenaStateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaStateEvent(evt.arena, ArenaState.Disabled, ArenaState.InGame), (sys, evt) -> sys.onArenaState(evt)); + this.testMinigameListenerCalled(ArenaStateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaStateEvent(evt.arena, ArenaState.Disabled, ArenaState.InGame), (sys, evt) -> sys.onArenaState(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaCreateEvent() + { + this.testMgListenerCalled(ArenaCreateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreateEvent(evt.arena), (sys, evt) -> sys.onArenaCreate(evt)); + this.testArenaListenerCalled(ArenaCreateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreateEvent(evt.arena), (sys, evt) -> sys.onArenaCreate(evt)); + this.testMinigameListenerCalled(ArenaCreateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreateEvent(evt.arena), (sys, evt) -> sys.onArenaCreate(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaCreatedEvent() + { + this.testMgListenerCalled(ArenaCreatedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreatedEvent(evt.arena), (sys, evt) -> sys.onArenaCreated(evt)); + this.testArenaListenerCalled(ArenaCreatedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreatedEvent(evt.arena), (sys, evt) -> sys.onArenaCreated(evt)); + this.testMinigameListenerCalled(ArenaCreatedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreatedEvent(evt.arena), (sys, evt) -> sys.onArenaCreated(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaDeleteEvent() + { + this.testMgListenerCalled(ArenaDeleteEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeleteEvent(evt.arena), (sys, evt) -> sys.onArenaDelete(evt)); + this.testArenaListenerCalled(ArenaDeleteEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeleteEvent(evt.arena), (sys, evt) -> sys.onArenaDelete(evt)); + this.testMinigameListenerCalled(ArenaDeleteEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeleteEvent(evt.arena), (sys, evt) -> sys.onArenaDelete(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaDeletedEvent() + { + this.testMgListenerCalled(ArenaDeletedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeletedEvent(evt.arena), (sys, evt) -> sys.onArenaDeleted(evt)); + this.testArenaListenerCalled(ArenaDeletedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeletedEvent(evt.arena), (sys, evt) -> sys.onArenaDeleted(evt)); + this.testMinigameListenerCalled(ArenaDeletedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeletedEvent(evt.arena), (sys, evt) -> sys.onArenaDeleted(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaMaintenanceEvent() + { + this.testMgListenerCalled(ArenaMaintenanceEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaMaintenanceEvent(evt.arena), (sys, evt) -> sys.onArenaMaintenance(evt)); + this.testArenaListenerCalled(ArenaMaintenanceEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaMaintenanceEvent(evt.arena), (sys, evt) -> sys.onArenaMaintenance(evt)); + this.testMinigameListenerCalled(ArenaMaintenanceEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaMaintenanceEvent(evt.arena), (sys, evt) -> sys.onArenaMaintenance(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaPlayerJoinedEvent() + { + this.testMgListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); + this.testArenaListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); + this.testPlayerListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); + this.testMinigameListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaPlayerJoinEvent() + { + this.testMgListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); + this.testArenaListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); + this.testPlayerListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); + this.testMinigameListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaPlayerJoinedQueueEvent() + { + this.testMgListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); + this.testPArenaListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); + this.testPlayerListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); + this.testPMinigameListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testArenaPlayerLeavesQueueEvent() + { + this.testMgListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); + this.testPArenaListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); + this.testPlayerListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); + this.testPMinigameListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testPlayerCloseGuiEvent() + { + this.testMgListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); + this.testPArenaListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); + this.testPlayerListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); + this.testPMinigameListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testPlayerOpenGuiEvent() + { + this.testMgListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); + this.testPArenaListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); + this.testPlayerListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); + this.testPMinigameListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testPlayerDisplayGuiPageEvent() + { + this.testMgListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); + this.testPArenaListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); + this.testPlayerListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); + this.testPMinigameListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); + } + + /** + * Tests that listeners are called. + */ + @Test + public void testPlayerGuiClickEvent() + { + this.testMgListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); + this.testPArenaListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); + this.testPlayerListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); + this.testPMinigameListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); + } + + /** + * Tests that mg listener is called. + * @param clazz + * @param arena + * @param player + * @param minigame + * @param eventFactory + * @param eventCaller + */ + private <Evt extends Event> void testMgListenerCalled( + final Class<Evt> clazz, + final Function<EvtHelper, ArenaInterface> arena, + final Function<EvtHelper, ArenaPlayerInterface> player, + final Function<EvtHelper, MinigameInterface> minigame, + final Function<EvtHelper, Evt> eventFactory, + final BiConsumer<EventSystem, Evt> eventCaller) + { + final EvtHelper helper = new EvtHelper(); + + final EventSystem sys = new EventSystem(); + final AtomicBoolean result = new AtomicBoolean(false); + sys.addEventListener(new MgEventListener() { + + @Override + public void handle(Class<?> eventClass, MinigameEvent<?, ?> event) + { + assertEquals(clazz, eventClass); + assertEquals(arena.apply(helper), event.getArena()); + assertEquals(player.apply(helper), event.getPlayer()); + assertEquals(minigame.apply(helper), event.getMinigame()); + result.set(true); + } + }); + + eventCaller.accept(sys, eventFactory.apply(helper)); + + assertTrue(result.get()); + } + + /** + * Tests that player listener is called. + * @param clazz + * @param arena + * @param player + * @param minigame + * @param eventFactory + * @param eventCaller + */ + private <Evt extends Event> void testPlayerListenerCalled( + final Class<Evt> clazz, + final Function<EvtHelper, ArenaInterface> arena, + final Function<EvtHelper, ArenaPlayerInterface> player, + final Function<EvtHelper, MinigameInterface> minigame, + final Function<EvtHelper, Evt> eventFactory, + final BiConsumer<EventSystem, Evt> eventCaller) + { + final EvtHelper helper = new EvtHelper(); + + final EventSystem sys = new EventSystem(); + final AtomicBoolean result = new AtomicBoolean(false); + doAnswer(new Answer<Void>(){ + @Override + public Void answer(InvocationOnMock invocation) throws Throwable + { + final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); + final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); + assertEquals(clazz, eventClass); + assertEquals(arena.apply(helper), event.getArena()); + assertEquals(player.apply(helper), event.getPlayer()); + assertEquals(minigame.apply(helper), event.getMinigame()); + result.set(true); + return null; + }}).when((MgEventListener) helper.player).handle(anyObject(), anyObject()); + + eventCaller.accept(sys, eventFactory.apply(helper)); + + assertTrue(result.get()); + } + + /** + * Tests that minigame listener is called. + * @param clazz + * @param arena + * @param player + * @param minigame + * @param eventFactory + * @param eventCaller + */ + private <Evt extends Event> void testMinigameListenerCalled( + final Class<Evt> clazz, + final Function<EvtHelper, ArenaInterface> arena, + final Function<EvtHelper, ArenaPlayerInterface> player, + final Function<EvtHelper, MinigameInterface> minigame, + final Function<EvtHelper, Evt> eventFactory, + final BiConsumer<EventSystem, Evt> eventCaller) + { + final EvtHelper helper = new EvtHelper(); + + final EventSystem sys = new EventSystem(); + final AtomicBoolean result = new AtomicBoolean(false); + doAnswer(new Answer<Void>(){ + @Override + public Void answer(InvocationOnMock invocation) throws Throwable + { + final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); + final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); + assertEquals(clazz, eventClass); + assertEquals(arena.apply(helper), event.getArena()); + assertEquals(player.apply(helper), event.getPlayer()); + assertEquals(minigame.apply(helper), event.getMinigame()); + result.set(true); + return null; + }}).when((MgEventListener) helper.minigame).handle(anyObject(), anyObject()); + + eventCaller.accept(sys, eventFactory.apply(helper)); + + assertTrue(result.get()); + } + + /** + * Tests that minigame listener is called. + * @param clazz + * @param arena + * @param player + * @param minigame + * @param eventFactory + * @param eventCaller + */ + private <Evt extends Event> void testPMinigameListenerCalled( + final Class<Evt> clazz, + final Function<EvtHelper, ArenaInterface> arena, + final Function<EvtHelper, ArenaPlayerInterface> player, + final Function<EvtHelper, MinigameInterface> minigame, + final Function<EvtHelper, Evt> eventFactory, + final BiConsumer<EventSystem, Evt> eventCaller) + { + final EvtHelper helper = new EvtHelper(); + + final EventSystem sys = new EventSystem(); + final AtomicBoolean result = new AtomicBoolean(false); + doAnswer(new Answer<Void>(){ + @Override + public Void answer(InvocationOnMock invocation) throws Throwable + { + final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); + final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); + assertEquals(clazz, eventClass); + assertEquals(arena.apply(helper), event.getArena()); + assertEquals(player.apply(helper), event.getPlayer()); + assertEquals(minigame.apply(helper), event.getMinigame()); + result.set(true); + return null; + }}).when((MgEventListener) helper.pminigame).handle(anyObject(), anyObject()); + + eventCaller.accept(sys, eventFactory.apply(helper)); + + assertTrue(result.get()); + } + + /** + * Tests that arena listener is called. + * @param clazz + * @param arena + * @param player + * @param minigame + * @param eventFactory + * @param eventCaller + */ + private <Evt extends Event> void testArenaListenerCalled( + final Class<Evt> clazz, + final Function<EvtHelper, ArenaInterface> arena, + final Function<EvtHelper, ArenaPlayerInterface> player, + final Function<EvtHelper, MinigameInterface> minigame, + final Function<EvtHelper, Evt> eventFactory, + final BiConsumer<EventSystem, Evt> eventCaller) + { + final EvtHelper helper = new EvtHelper(); + + final EventSystem sys = new EventSystem(); + final AtomicBoolean result = new AtomicBoolean(false); + doAnswer(new Answer<Void>(){ + @Override + public Void answer(InvocationOnMock invocation) throws Throwable + { + final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); + final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); + assertEquals(clazz, eventClass); + assertEquals(arena.apply(helper), event.getArena()); + assertEquals(player.apply(helper), event.getPlayer()); + assertEquals(minigame.apply(helper), event.getMinigame()); + result.set(true); + return null; + }}).when((MgEventListener) helper.arena).handle(anyObject(), anyObject()); + + eventCaller.accept(sys, eventFactory.apply(helper)); + + assertTrue(result.get()); + } + + /** + * Tests that arena listener is called. + * @param clazz + * @param arena + * @param player + * @param minigame + * @param eventFactory + * @param eventCaller + */ + private <Evt extends Event> void testPArenaListenerCalled( + final Class<Evt> clazz, + final Function<EvtHelper, ArenaInterface> arena, + final Function<EvtHelper, ArenaPlayerInterface> player, + final Function<EvtHelper, MinigameInterface> minigame, + final Function<EvtHelper, Evt> eventFactory, + final BiConsumer<EventSystem, Evt> eventCaller) + { + final EvtHelper helper = new EvtHelper(); + + final EventSystem sys = new EventSystem(); + final AtomicBoolean result = new AtomicBoolean(false); + doAnswer(new Answer<Void>(){ + @Override + public Void answer(InvocationOnMock invocation) throws Throwable + { + final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); + final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); + assertEquals(clazz, eventClass); + assertEquals(arena.apply(helper), event.getArena()); + assertEquals(player.apply(helper), event.getPlayer()); + assertEquals(minigame.apply(helper), event.getMinigame()); + result.set(true); + return null; + }}).when((MgEventListener) helper.parena).handle(anyObject(), anyObject()); + + eventCaller.accept(sys, eventFactory.apply(helper)); + + assertTrue(result.get()); + } + + /** + * Helper class + */ + private static final class EvtHelper + { + + /** data. */ + public final ArenaInterface arena; + /** data. */ + public final MinigameInterface minigame; + /** data. */ + public final ArenaInterface parena; + /** data. */ + public final MinigameInterface pminigame; + /** data. */ + public final ArenaPlayerInterface player; + + /** + * Constructor + */ + public EvtHelper() + { + this.arena = mock(ArenaInterface.class, withSettings().extraInterfaces(MgEventListener.class)); + this.minigame = mock(MinigameInterface.class, withSettings().extraInterfaces(MgEventListener.class)); + when(this.arena.getMinigame()).thenReturn(this.minigame); + this.parena = mock(ArenaInterface.class, withSettings().extraInterfaces(MgEventListener.class)); + this.pminigame = mock(MinigameInterface.class, withSettings().extraInterfaces(MgEventListener.class)); + when(this.parena.getMinigame()).thenReturn(this.pminigame); + this.player = mock(ArenaPlayerInterface.class, withSettings().extraInterfaces(MgEventListener.class)); + when(this.player.getArena()).thenReturn(this.parena); + } + + } + + /** + * helper class + */ + private static final class EventSystem extends AbstractEventSystem + { + + /** + * Constructor + */ + public EventSystem() + { + // empty + } + + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java new file mode 100644 index 00000000..89227046 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java @@ -0,0 +1,444 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.concurrent.atomic.AtomicBoolean; + +import org.bukkit.Location; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.CommonErrors; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameException; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.rules.MinigameEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; + +/** + * Test for {@link AbstractMinigameEvent} + * + * @author mepeisen + * + */ +public class AbstractMinigameEventTest +{ + + /** + * Tests constructors + */ + @Test + public void testConstructors() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaInterface parena = mock(ArenaInterface.class); + final MinigameInterface pminigame = mock(MinigameInterface.class); + when(parena.getMinigame()).thenReturn(pminigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + when(player.getArena()).thenReturn(parena); + + final ArenaEvent evt1 = new ArenaEvent(arena); + final MgArenaEvent mgevt1 = new MgArenaEvent(evt1); + assertEquals(evt1, mgevt1.getBukkitEvent()); + assertEquals(arena, mgevt1.getArena()); + assertEquals(minigame, mgevt1.getMinigame()); + assertNull(mgevt1.getPlayer()); + + final ArenaPlayerEvent evt2 = new ArenaPlayerEvent(player, arena); + final MgArenaPlayerEvent mgevt2 = new MgArenaPlayerEvent(evt2); + assertEquals(evt2, mgevt2.getBukkitEvent()); + assertEquals(arena, mgevt2.getArena()); + assertEquals(minigame, mgevt2.getMinigame()); + assertEquals(player, mgevt2.getPlayer()); + + final PlayerEvent evt3 = new PlayerEvent(player); + final MgPlayerEvent mgevt3 = new MgPlayerEvent(evt3); + assertEquals(evt3, mgevt3.getBukkitEvent()); + assertEquals(parena, mgevt3.getArena()); + assertEquals(pminigame, mgevt3.getMinigame()); + assertEquals(player, mgevt3.getPlayer()); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + final PlayerLocationEvent evt4 = new PlayerLocationEvent(player, loc); + final MgPlayerLocationEvent mgevt4 = new MgPlayerLocationEvent(evt4); + assertEquals(evt4, mgevt4.getBukkitEvent()); + assertEquals(arena, mgevt4.getArena()); + assertEquals(minigame, mgevt4.getMinigame()); + assertEquals(player, mgevt4.getPlayer()); + } + + /** + * Tests when + * @throws MinigameException + */ + @Test + public void testWhen1() throws MinigameException + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final ArenaEvent evt1 = new ArenaEvent(arena); + final MgArenaEvent mgevt1 = new MgArenaEvent(evt1); + + final AtomicBoolean result = new AtomicBoolean(true); + mgevt1.when((e) -> true).then((e) -> result.set(false))._elseThrow(CommonErrors.CannotStart); + assertFalse(result.get()); + } + + /** + * Tests when + * @throws MinigameException + */ + @Test + public void testWhen2() throws MinigameException + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final ArenaEvent evt1 = new ArenaEvent(arena); + final MgArenaEvent mgevt1 = new MgArenaEvent(evt1); + + final AtomicBoolean result = new AtomicBoolean(true); + mgevt1.when((e) -> false).thenThrow(CommonErrors.CannotStart)._else((e) -> result.set(false)); + assertFalse(result.get()); + } + + /** + * helper class + */ + private static final class ArenaEvent extends Event + { + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena we created. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param arena + * the created arena. + */ + public ArenaEvent(ArenaInterface arena) + { + this.arena = arena; + } + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + } + + /** + * helper class + */ + private static final class PlayerEvent extends Event + { + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena we created. */ + private final ArenaPlayerInterface player; + + /** + * Constructor. + * + * @param player + * the created arena. + */ + public PlayerEvent(ArenaPlayerInterface player) + { + this.player = player; + } + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + } + + /** + * helper class + */ + private static final class PlayerLocationEvent extends Event + { + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena we created. */ + private final ArenaPlayerInterface player; + + /** the location. */ + private final Location location; + + /** + * Constructor. + * + * @param player + * the created arena. + * @param location + * the created arena. + */ + public PlayerLocationEvent(ArenaPlayerInterface player, Location location) + { + this.player = player; + this.location = location; + } + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public Location getLocation() + { + return this.location; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + } + + /** + * helper class + */ + private static final class ArenaPlayerEvent extends Event + { + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena we created. */ + private final ArenaPlayerInterface player; + + /** the arena we created. */ + private final ArenaInterface arena; + + /** + * Constructor. + * + * @param player + * the created arena. + * @param arena + * the created arena. + */ + public ArenaPlayerEvent(ArenaPlayerInterface player, ArenaInterface arena) + { + this.player = player; + this.arena = arena; + } + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public ArenaPlayerInterface getPlayer() + { + return this.player; + } + + /** + * Returns the arena that was created + * + * @return the created arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + } + + /** + * helper interface + */ + private interface MinigameArenaEvent extends MinigameEvent<ArenaEvent, MinigameArenaEvent> + { + // empty + } + + /** + * helper interface + */ + private interface MinigamePlayerEvent extends MinigameEvent<PlayerEvent, MinigamePlayerEvent> + { + // empty + } + + /** + * helper interface + */ + private interface MinigamePlayerLocationEvent extends MinigameEvent<PlayerLocationEvent, MinigamePlayerLocationEvent> + { + // empty + } + + /** + * helper interface + */ + private interface MinigameArenaPlayerEvent extends MinigameEvent<ArenaPlayerEvent, MinigameArenaPlayerEvent> + { + // empty + } + + /** + * helper class. + */ + private static final class MgArenaEvent extends AbstractMinigameEvent<ArenaEvent, MinigameArenaEvent> implements MinigameArenaEvent + { + + /** + * @param event + */ + public MgArenaEvent(ArenaEvent event) + { + super(event, event.getArena()); + } + + } + + /** + * helper class. + */ + private static final class MgArenaPlayerEvent extends AbstractMinigameEvent<ArenaPlayerEvent, MinigameArenaPlayerEvent> implements MinigameArenaPlayerEvent + { + + /** + * @param event + */ + public MgArenaPlayerEvent(ArenaPlayerEvent event) + { + super(event, event.getPlayer(), event.getArena()); + } + + } + + /** + * helper class. + */ + private static final class MgPlayerEvent extends AbstractMinigameEvent<PlayerEvent, MinigamePlayerEvent> implements MinigamePlayerEvent + { + + /** + * @param event + */ + public MgPlayerEvent(PlayerEvent event) + { + super(event, event.getPlayer()); + } + + } + + /** + * helper class. + */ + private static final class MgPlayerLocationEvent extends AbstractMinigameEvent<PlayerLocationEvent, MinigamePlayerLocationEvent> implements MinigamePlayerLocationEvent + { + + /** + * @param event + */ + public MgPlayerLocationEvent(PlayerLocationEvent event) + { + super(event, event.getPlayer(), event.getLocation()); + } + + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java new file mode 100644 index 00000000..d5684a5b --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaCreateEvent; +import com.github.mce.minigames.impl.nms.MgArenaCreateEvent; + +/** + * Test for {@link MgArenaCreateEvent} + * + * @author mepeisen + * + */ +public class MgArenaCreateEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaCreateEvent evt = new ArenaCreateEvent(arena); + final MgArenaCreateEvent mgevt = new MgArenaCreateEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java new file mode 100644 index 00000000..f35a261f --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaCreatedEvent; +import com.github.mce.minigames.impl.nms.MgArenaCreatedEvent; + +/** + * Test for {@link MgArenaCreatedEvent} + * + * @author mepeisen + * + */ +public class MgArenaCreatedEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaCreatedEvent evt = new ArenaCreatedEvent(arena); + final MgArenaCreatedEvent mgevt = new MgArenaCreatedEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java new file mode 100644 index 00000000..a5db0753 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaDeleteEvent; +import com.github.mce.minigames.impl.nms.MgArenaDeleteEvent; + +/** + * Test for {@link MgArenaDeleteEvent} + * + * @author mepeisen + * + */ +public class MgArenaDeleteEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaDeleteEvent evt = new ArenaDeleteEvent(arena); + final MgArenaDeleteEvent mgevt = new MgArenaDeleteEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java new file mode 100644 index 00000000..dedac078 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaDeletedEvent; +import com.github.mce.minigames.impl.nms.MgArenaDeletedEvent; + +/** + * Test for {@link MgArenaDeletedEvent} + * + * @author mepeisen + * + */ +public class MgArenaDeletedEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaDeletedEvent evt = new ArenaDeletedEvent(arena); + final MgArenaDeletedEvent mgevt = new MgArenaDeletedEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java new file mode 100644 index 00000000..a1f2bc51 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; +import com.github.mce.minigames.impl.nms.MgArenaMaintenanceEvent; + +/** + * Test for {@link MgArenaMaintenanceEvent} + * + * @author mepeisen + * + */ +public class MgArenaMaintenanceEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaMaintenanceEvent evt = new ArenaMaintenanceEvent(arena); + final MgArenaMaintenanceEvent mgevt = new MgArenaMaintenanceEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java new file mode 100644 index 00000000..5630fa29 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java @@ -0,0 +1,58 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgArenaPlayerJoinEvent; + +/** + * Test for {@link MgArenaPlayerJoinEvent} + * + * @author mepeisen + * + */ +public class MgArenaPlayerJoinEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ArenaPlayerJoinEvent evt = new ArenaPlayerJoinEvent(arena, player); + final MgArenaPlayerJoinEvent mgevt = new MgArenaPlayerJoinEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java new file mode 100644 index 00000000..0e013cb1 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java @@ -0,0 +1,58 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgArenaPlayerJoinedEvent; + +/** + * Test for {@link MgArenaPlayerJoinedEvent} + * + * @author mepeisen + * + */ +public class MgArenaPlayerJoinedEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ArenaPlayerJoinedEvent evt = new ArenaPlayerJoinedEvent(arena, player); + final MgArenaPlayerJoinedEvent mgevt = new MgArenaPlayerJoinedEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java new file mode 100644 index 00000000..17193d2c --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgArenaPlayerJoinedQueueEvent; + +/** + * Test for {@link MgArenaPlayerJoinedQueueEvent} + * + * @author mepeisen + * + */ +public class MgArenaPlayerJoinedQueueEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final WaitQueue queue = mock(WaitQueue.class); + final ArenaPlayerJoinedQueueEvent evt = new ArenaPlayerJoinedQueueEvent(queue, player); + final MgArenaPlayerJoinedQueueEvent mgevt = new MgArenaPlayerJoinedQueueEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertNull(mgevt.getArena()); + assertNull(mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java new file mode 100644 index 00000000..df26ff7a --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.arena.WaitQueue; +import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgArenaPlayerLeavesQueueEvent; + +/** + * Test for {@link MgArenaPlayerLeavesQueueEvent} + * + * @author mepeisen + * + */ +public class MgArenaPlayerLeavesQueueEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final WaitQueue queue = mock(WaitQueue.class); + final ArenaPlayerLeavesQueueEvent evt = new ArenaPlayerLeavesQueueEvent(queue, player); + final MgArenaPlayerLeavesQueueEvent mgevt = new MgArenaPlayerLeavesQueueEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertNull(mgevt.getArena()); + assertNull(mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java new file mode 100644 index 00000000..277c607c --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java @@ -0,0 +1,58 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.junit.Test; + +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.arena.ArenaState; +import com.github.mce.minigames.api.event.ArenaStateEvent; +import com.github.mce.minigames.impl.nms.MgArenaStateEvent; + +/** + * Test for {@link MgArenaStateEvent} + * + * @author mepeisen + * + */ +public class MgArenaStateEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaStateEvent evt = new ArenaStateEvent(arena, ArenaState.Disabled, ArenaState.Join); + final MgArenaStateEvent mgevt = new MgArenaStateEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java new file mode 100644 index 00000000..57351689 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgPlayerCloseGuiEvent; + +/** + * Test for {@link MgPlayerCloseGuiEvent} + * + * @author mepeisen + * + */ +public class MgPlayerCloseGuiEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final PlayerCloseGuiEvent evt = new PlayerCloseGuiEvent(gui, player); + final MgPlayerCloseGuiEvent mgevt = new MgPlayerCloseGuiEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertNull(mgevt.getArena()); + assertNull(mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java new file mode 100644 index 00000000..d682aadb --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiPageInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgPlayerDisplayGuiPageEvent; + +/** + * Test for {@link MgPlayerDisplayGuiPageEvent} + * + * @author mepeisen + * + */ +public class MgPlayerDisplayGuiPageEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ClickGuiPageInterface page = mock(ClickGuiPageInterface.class); + final PlayerDisplayGuiPageEvent evt = new PlayerDisplayGuiPageEvent(gui, player, page); + final MgPlayerDisplayGuiPageEvent mgevt = new MgPlayerDisplayGuiPageEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertNull(mgevt.getArena()); + assertNull(mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java new file mode 100644 index 00000000..64fef70d --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java @@ -0,0 +1,57 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerGuiClickEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.gui.ClickGuiItem; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgPlayerGuiClickEvent; + +/** + * Test for {@link MgPlayerGuiClickEvent} + * + * @author mepeisen + * + */ +public class MgPlayerGuiClickEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final ClickGuiItem item = mock(ClickGuiItem.class); + final PlayerGuiClickEvent evt = new PlayerGuiClickEvent(gui, player, item); + final MgPlayerGuiClickEvent mgevt = new MgPlayerGuiClickEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertNull(mgevt.getArena()); + assertNull(mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java new file mode 100644 index 00000000..5359c1c1 --- /dev/null +++ b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java @@ -0,0 +1,55 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.powermock.api.mockito.PowerMockito.mock; + +import org.junit.Test; + +import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; +import com.github.mce.minigames.api.gui.ClickGuiInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.MgPlayerOpenGuiEvent; + +/** + * Test for {@link MgPlayerOpenGuiEvent} + * + * @author mepeisen + * + */ +public class MgPlayerOpenGuiEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ClickGuiInterface gui = mock(ClickGuiInterface.class); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + final PlayerOpenGuiEvent evt = new PlayerOpenGuiEvent(gui, player); + final MgPlayerOpenGuiEvent mgevt = new MgPlayerOpenGuiEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertNull(mgevt.getArena()); + assertNull(mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} From 13f600e43dd23a3007cf87f1216458fd24e5c67d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 26 Sep 2016 09:06:30 +0200 Subject: [PATCH 140/266] v2 --- .../bevents/MinigameEntityBreakDoorEvent.java | 2 +- .../MinigameEntityCombustByBlockEvent.java | 2 +- .../MinigameEntityCombustByEntityEvent.java | 2 +- .../bevents/MinigameEntityCombustEvent.java | 2 +- .../MinigameEntityToggleGlideEvent.java | 2 +- .../bevents/MinigameProjectileHitEvent.java | 2 +- .../v1_10_1/event/MgBlockExplodeEvent.java | 22 +---- .../nms/v1_10_1/event/MgBlockFromToEvent.java | 3 +- .../nms/v1_10_1/event/MgBlockPlaceEvent.java | 3 +- .../v1_10_1/event/MgBlockRedstoneEvent.java | 2 +- .../nms/v1_10_1/event/MgBlockSpreadEvent.java | 2 +- .../impl/nms/v1_10_1/event/MgBrewEvent.java | 2 +- .../event/MgCauldronLevelChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgCraftItemEvent.java | 4 +- .../v1_10_1/event/MgCreatureSpawnEvent.java | 2 +- .../v1_10_1/event/MgCreeperPowerEvent.java | 2 +- .../nms/v1_10_1/event/MgEnchantItemEvent.java | 3 +- .../event/MgEnderDragonChangePhaseEvent.java | 2 +- .../v1_10_1/event/MgEntityBlockFormEvent.java | 2 +- .../v1_10_1/event/MgEntityBreakDoorEvent.java | 31 ++++++- .../nms/v1_10_1/event/MgEntityBreedEvent.java | 31 ++++++- .../event/MgEntityChangeBlockEvent.java | 2 +- .../event/MgEntityCombustByBlockEvent.java | 31 ++++++- .../event/MgEntityCombustByEntityEvent.java | 31 ++++++- .../v1_10_1/event/MgEntityCombustEvent.java | 31 ++++++- .../event/MgEntityCreatePortalEvent.java | 31 ++++++- .../event/MgEntityDamageByBlockEvent.java | 31 ++++++- .../event/MgEntityDamageByEntityEvent.java | 31 ++++++- .../v1_10_1/event/MgEntityDamageEvent.java | 31 ++++++- .../nms/v1_10_1/event/MgEntityDeathEvent.java | 2 +- .../v1_10_1/event/MgEntityExplodeEvent.java | 2 +- .../v1_10_1/event/MgEntityInteractEvent.java | 2 +- .../event/MgEntityPortalEnterEvent.java | 2 +- .../v1_10_1/event/MgEntityPortalEvent.java | 2 +- .../event/MgEntityPortalExitEvent.java | 2 +- .../event/MgEntityRegainHealthEvent.java | 2 +- .../v1_10_1/event/MgEntityShootBowEvent.java | 32 ++++++- .../nms/v1_10_1/event/MgEntitySpawnEvent.java | 2 +- .../nms/v1_10_1/event/MgEntityTameEvent.java | 4 +- .../v1_10_1/event/MgEntityTargetEvent.java | 31 ++++++- .../MgEntityTargetLivingEntityEvent.java | 31 ++++++- .../v1_10_1/event/MgEntityTeleportEvent.java | 2 +- .../event/MgEntityToggleGlideEvent.java | 31 ++++++- .../v1_10_1/event/MgEntityUnleashEvent.java | 2 +- .../nms/v1_10_1/event/MgExpBottleEvent.java | 2 +- .../v1_10_1/event/MgExplosionPrimeEvent.java | 2 +- .../v1_10_1/event/MgFireworkExplodeEvent.java | 2 +- .../v1_10_1/event/MgFoodLevelChangeEvent.java | 31 ++++++- .../nms/v1_10_1/event/MgFurnaceBurnEvent.java | 2 +- .../v1_10_1/event/MgFurnaceSmeltEvent.java | 2 +- .../event/MgHangingBreakByEntityEvent.java | 31 ++++++- .../v1_10_1/event/MgHangingBreakEvent.java | 2 +- .../v1_10_1/event/MgHangingPlaceEvent.java | 15 +++- .../nms/v1_10_1/event/MgHorseJumpEvent.java | 31 ++++++- .../v1_10_1/event/MgInventoryClickEvent.java | 4 +- .../v1_10_1/event/MgInventoryCloseEvent.java | 4 +- .../event/MgInventoryCreativeEvent.java | 4 +- .../v1_10_1/event/MgInventoryDragEvent.java | 4 +- .../nms/v1_10_1/event/MgInventoryEvent.java | 4 +- .../event/MgInventoryInteractEvent.java | 4 +- .../event/MgInventoryMoveItemEvent.java | 4 +- .../v1_10_1/event/MgInventoryOpenEvent.java | 4 +- .../event/MgInventoryPickupItemEvent.java | 4 +- .../nms/v1_10_1/event/MgItemDespawnEvent.java | 2 +- .../nms/v1_10_1/event/MgItemMergeEvent.java | 2 +- .../nms/v1_10_1/event/MgItemSpawnEvent.java | 2 +- .../nms/v1_10_1/event/MgLeavesDecayEvent.java | 2 +- .../event/MgLingeringPotionSplashEvent.java | 2 +- .../nms/v1_10_1/event/MgNotePlayEvent.java | 2 +- .../impl/nms/v1_10_1/event/MgPigZapEvent.java | 2 +- .../MgPlayerAchievementAwardedEvent.java | 3 +- .../v1_10_1/event/MgPlayerAnimationEvent.java | 3 +- .../MgPlayerArmorStandManipulateEvent.java | 3 +- .../v1_10_1/event/MgPlayerBedEnterEvent.java | 3 +- .../v1_10_1/event/MgPlayerBedLeaveEvent.java | 3 +- .../event/MgPlayerBucketEmptyEvent.java | 3 +- .../event/MgPlayerBucketFillEvent.java | 3 +- .../event/MgPlayerChangedMainHandEvent.java | 3 +- .../event/MgPlayerChangedWorldEvent.java | 3 +- .../v1_10_1/event/MgPlayerChannelEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerChatEvent.java | 3 +- .../event/MgPlayerChatTabCompleteEvent.java | 3 +- .../event/MgPlayerCommandPreprocessEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerDeathEvent.java | 3 +- .../v1_10_1/event/MgPlayerDropItemEvent.java | 3 +- .../v1_10_1/event/MgPlayerEditBookEvent.java | 3 +- .../v1_10_1/event/MgPlayerEggThrowEvent.java | 3 +- .../v1_10_1/event/MgPlayerExpChangeEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerFishEvent.java | 3 +- .../event/MgPlayerGameModeChangeEvent.java | 3 +- .../event/MgPlayerInteractAtEntityEvent.java | 3 +- .../event/MgPlayerInteractEntityEvent.java | 3 +- .../v1_10_1/event/MgPlayerInteractEvent.java | 3 +- .../v1_10_1/event/MgPlayerInventoryEvent.java | 3 +- .../v1_10_1/event/MgPlayerItemBreakEvent.java | 3 +- .../event/MgPlayerItemConsumeEvent.java | 3 +- .../event/MgPlayerItemDamageEvent.java | 3 +- .../v1_10_1/event/MgPlayerItemHeldEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerJoinEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerKickEvent.java | 3 +- .../event/MgPlayerLeashEntityEvent.java | 3 +- .../event/MgPlayerLevelChangeEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerLoginEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerMoveEvent.java | 3 +- .../event/MgPlayerPickupArrowEvent.java | 3 +- .../event/MgPlayerPickupItemEvent.java | 3 +- .../v1_10_1/event/MgPlayerPortalEvent.java | 3 +- .../nms/v1_10_1/event/MgPlayerQuitEvent.java | 3 +- .../event/MgPlayerRegisterChannelEvent.java | 3 +- .../MgPlayerResourcePackStatusEvent.java | 3 +- .../v1_10_1/event/MgPlayerRespawnEvent.java | 3 +- .../event/MgPlayerShearEntityEvent.java | 3 +- .../event/MgPlayerSpawnLocationEvent.java | 3 +- .../MgPlayerStatisticIncrementEvent.java | 3 +- .../event/MgPlayerSwapHandItemsEvent.java | 3 +- .../v1_10_1/event/MgPlayerTeleportEvent.java | 3 +- .../event/MgPlayerToggleFlightEvent.java | 3 +- .../event/MgPlayerToggleSneakEvent.java | 3 +- .../event/MgPlayerToggleSprintEvent.java | 3 +- .../event/MgPlayerUnregisterChannelEvent.java | 3 +- .../v1_10_1/event/MgPlayerVelocityEvent.java | 3 +- .../v1_10_1/event/MgPotionSplashEvent.java | 2 +- .../v1_10_1/event/MgPrepareAnvilEvent.java | 4 +- .../event/MgPrepareItemCraftEvent.java | 4 +- .../event/MgPrepareItemEnchantEvent.java | 3 +- .../v1_10_1/event/MgProjectileHitEvent.java | 31 ++++++- .../event/MgProjectileLaunchEvent.java | 31 ++++++- .../v1_10_1/event/MgSheepDyeWoolEvent.java | 2 +- .../v1_10_1/event/MgSheepRegrowWoolEvent.java | 2 +- .../nms/v1_10_1/event/MgSignChangeEvent.java | 2 +- .../nms/v1_10_1/event/MgSlimeSplitEvent.java | 2 +- .../v1_10_1/event/MgSpawnerSpawnEvent.java | 2 +- .../event/MgVehicleBlockCollisionEvent.java | 31 ++++++- .../v1_10_1/event/MgVehicleCreateEvent.java | 31 ++++++- .../v1_10_1/event/MgVehicleDamageEvent.java | 31 ++++++- .../v1_10_1/event/MgVehicleDestroyEvent.java | 31 ++++++- .../MgAreaEffectCloudApplyEventTest.java | 74 +++++++++++++++++ .../event/MgAsyncPlayerChatEventTest.java | 70 ++++++++++++++++ .../v1_10_1/event/MgBlockBreakEventTest.java | 73 ++++++++++++++++ .../v1_10_1/event/MgBlockBurnEventTest.java | 69 +++++++++++++++ .../event/MgBlockCanBuildEventTest.java | 69 +++++++++++++++ .../v1_10_1/event/MgBlockDamageEventTest.java | 75 +++++++++++++++++ .../event/MgBlockDispenseEventTest.java | 72 ++++++++++++++++ .../v1_10_1/event/MgBlockExpEventTest.java | 69 +++++++++++++++ .../event/MgBlockExplodeEventTest.java | 71 ++++++++++++++++ .../v1_10_1/event/MgBlockFadeEventTest.java | 70 ++++++++++++++++ .../v1_10_1/event/MgBlockFormEventTest.java | 70 ++++++++++++++++ .../v1_10_1/event/MgBlockFromToEventTest.java | 70 ++++++++++++++++ .../v1_10_1/event/MgBlockGrowEventTest.java | 70 ++++++++++++++++ .../v1_10_1/event/MgBlockIgniteEventTest.java | 70 ++++++++++++++++ .../event/MgBlockMultiPlaceEventTest.java | 83 +++++++++++++++++++ .../event/MgBlockPhysicsEventTest.java | 69 +++++++++++++++ .../event/MgBlockPistonExtendEventTest.java | 72 ++++++++++++++++ .../event/MgBlockPistonRetractEventTest.java | 72 ++++++++++++++++ .../v1_10_1/event/MgBlockPlaceEventTest.java | 78 +++++++++++++++++ .../event/MgBlockRedstoneEventTest.java | 69 +++++++++++++++ .../v1_10_1/event/MgBlockSpreadEventTest.java | 70 ++++++++++++++++ .../nms/v1_10_1/event/MgBrewEventTest.java | 71 ++++++++++++++++ 158 files changed, 2444 insertions(+), 157 deletions(-) create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java create mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java index 8adf7394..3156c51c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java @@ -28,7 +28,7 @@ * <dt>Player-Rule</dt> * <dd>Passed to the player breaking the door (if it is a player).</dd> * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from door location</dd> + * <dd>Passed to the arena calculated from player or door location</dd> * <dt>Minigame-Rule</dt> * <dd>Passed to the minigame calculated from arena</dd> * </dl> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java index cbcbd213..d560e6e3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java @@ -28,7 +28,7 @@ * <dt>Player-Rule</dt> * <dd>Passed to the player if the player is the target entity.</dd> * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from target entity location</dd> + * <dd>Passed to the arena calculated from player or target entity location</dd> * <dt>Minigame-Rule</dt> * <dd>Passed to the minigame calculated from arena</dd> * </dl> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java index 7e90f394..9638a031 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java @@ -28,7 +28,7 @@ * <dt>Player-Rule</dt> * <dd>Passed to the player if the player is the target entity.</dd> * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from target entity location</dd> + * <dd>Passed to the arena calculated from player or target entity location</dd> * <dt>Minigame-Rule</dt> * <dd>Passed to the minigame calculated from arena</dd> * </dl> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java index d6563dbc..b320905c 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java @@ -28,7 +28,7 @@ * <dt>Player-Rule</dt> * <dd>Passed to the player is the target entity.</dd> * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from target entity location</dd> + * <dd>Passed to the arena calculated from player or target entity location</dd> * <dt>Minigame-Rule</dt> * <dd>Passed to the minigame calculated from arena</dd> * </dl> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java index 61ade76a..2f7bc0eb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java @@ -27,7 +27,7 @@ * * <dl> * <dt>Player-Rule</dt> - * <dd>Passed to the player if the target entityis a player.</dd> + * <dd>Passed to the player if the target entity is a player.</dd> * <dt>Arena-Rule</dt> * <dd>Passed to the arena calculated from player or entity location.</dd> * <dt>Minigame-Rule</dt> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java index 48d372ca..52ae1f57 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java @@ -26,7 +26,7 @@ * * <dl> * <dt>Player-Rule</dt> - * <dd>Passed to the player if the projectile hits a player.</dd> + * <dd>Passed to the player if the shooter is a player</dd> * <dt>Arena-Rule</dt> * <dd>Passed to the arena calculated from the player or projectile location</dd> * <dt>Minigame-Rule</dt> diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java index 9f33c496..f7a0e6df 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java @@ -15,8 +15,6 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; -import org.bukkit.Location; -import org.bukkit.block.Block; import org.bukkit.event.block.BlockExplodeEvent; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockExplodeEvent; @@ -37,25 +35,7 @@ public class MgBlockExplodeEvent extends AbstractMinigameEvent<BlockExplodeEvent */ public MgBlockExplodeEvent(BlockExplodeEvent event) { - super(event, null, event.getBlock().getLocation(), locations(event)); - } - - /** - * Gets locations from affected blocks. - * - * @param event - * @return locations. - */ - private static Location[] locations(BlockExplodeEvent event) - { - final Location[] result = new Location[event.blockList().size()]; - int i = 0; - for (final Block block : event.blockList()) - { - result[i] = block.getLocation(); - i++; - } - return result; + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java index 327abfed..9de13856 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java @@ -15,7 +15,6 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; -import org.bukkit.Location; import org.bukkit.event.block.BlockFromToEvent; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFromToEvent; @@ -35,7 +34,7 @@ public class MgBlockFromToEvent extends AbstractMinigameEvent<BlockFromToEvent, */ public MgBlockFromToEvent(BlockFromToEvent event) { - super(event, null, event.getBlock().getLocation(), new Location[]{event.getToBlock().getLocation()}); + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java index db158dfa..7cb44fc2 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.block.BlockPlaceEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPlaceEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgBlockPlaceEvent extends AbstractMinigameEvent<BlockPlaceEvent, Mi */ public MgBlockPlaceEvent(BlockPlaceEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java index a2cd4c0f..cf1ba0b0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java @@ -34,7 +34,7 @@ public class MgBlockRedstoneEvent extends AbstractMinigameEvent<BlockRedstoneEve */ public MgBlockRedstoneEvent(BlockRedstoneEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java index eea01bb2..7d796667 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java @@ -34,7 +34,7 @@ public class MgBlockSpreadEvent extends AbstractMinigameEvent<BlockSpreadEvent, */ public MgBlockSpreadEvent(BlockSpreadEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java index dc467b01..673dfcf8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java @@ -34,7 +34,7 @@ public class MgBrewEvent extends AbstractMinigameEvent<BrewEvent, MinigameBrewEv */ public MgBrewEvent(BrewEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java index a342957a..27f7e135 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java @@ -34,7 +34,7 @@ public class MgCauldronLevelChangeEvent extends AbstractMinigameEvent<CauldronLe */ public MgCauldronLevelChangeEvent(CauldronLevelChangeEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java index b13aa458..07368b67 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.CraftItemEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameCraftItemEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgCraftItemEvent extends AbstractMinigameEvent<CraftItemEvent, Mini */ public MgCraftItemEvent(CraftItemEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java index 9d43a021..a6603d3b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java @@ -34,7 +34,7 @@ public class MgCreatureSpawnEvent extends AbstractMinigameEvent<CreatureSpawnEve */ public MgCreatureSpawnEvent(CreatureSpawnEvent event) { - super(event, null); // TODO + super(event, null, event.getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java index 3ce2f36a..9e68724c 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java @@ -34,7 +34,7 @@ public class MgCreeperPowerEvent extends AbstractMinigameEvent<CreeperPowerEvent */ public MgCreeperPowerEvent(CreeperPowerEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java index 603b7630..eeac1a56 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.enchantment.EnchantItemEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEnchantItemEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgEnchantItemEvent extends AbstractMinigameEvent<EnchantItemEvent, */ public MgEnchantItemEvent(EnchantItemEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getEnchanter())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java index 1cbfab29..1b3113d7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java @@ -34,7 +34,7 @@ public class MgEnderDragonChangePhaseEvent extends AbstractMinigameEvent<EnderDr */ public MgEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java index 3ce7d1f5..60f90b75 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java @@ -34,7 +34,7 @@ public class MgEntityBlockFormEvent extends AbstractMinigameEvent<EntityBlockFor */ public MgEntityBlockFormEvent(EntityBlockFormEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java index 0b663426..c41f25b3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityBreakDoorEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBreakDoorEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityBreakDoorEvent extends AbstractMinigameEvent<EntityBreakDoo */ public MgEntityBreakDoorEvent(EntityBreakDoorEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityBreakDoorEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityBreakDoorEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java index 6d6df08f..0ccc9947 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityBreedEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBreedEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityBreedEvent extends AbstractMinigameEvent<EntityBreedEvent, */ public MgEntityBreedEvent(EntityBreedEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityBreedEvent event) + { + final Entity passenger = event.getBreeder(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityBreedEvent event) + { + final Entity passenger = event.getBreeder(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java index 68c3f2e7..19c2e3ee 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java @@ -34,7 +34,7 @@ public class MgEntityChangeBlockEvent extends AbstractMinigameEvent<EntityChange */ public MgEntityChangeBlockEvent(EntityChangeBlockEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java index 180470e4..879438bb 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityCombustByBlockEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustByBlockEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityCombustByBlockEvent extends AbstractMinigameEvent<EntityCom */ public MgEntityCombustByBlockEvent(EntityCombustByBlockEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityCombustByBlockEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityCombustByBlockEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java index 4b2f9061..9d31ac1d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityCombustByEntityEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustByEntityEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityCombustByEntityEvent extends AbstractMinigameEvent<EntityCo */ public MgEntityCombustByEntityEvent(EntityCombustByEntityEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityCombustByEntityEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityCombustByEntityEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java index 17793435..5c31c68e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityCombustEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityCombustEvent extends AbstractMinigameEvent<EntityCombustEve */ public MgEntityCombustEvent(EntityCombustEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityCombustEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityCombustEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java index 603800e4..44fa9ded 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityCreatePortalEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCreatePortalEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityCreatePortalEvent extends AbstractMinigameEvent<EntityCreat */ public MgEntityCreatePortalEvent(EntityCreatePortalEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityCreatePortalEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityCreatePortalEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getBlocks().get(0).getLocation()); // TODO correct call to get(0)? } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java index 519881ef..4f7ce581 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByBlockEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageByBlockEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityDamageByBlockEvent extends AbstractMinigameEvent<EntityDama */ public MgEntityDamageByBlockEvent(EntityDamageByBlockEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityDamageByBlockEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityDamageByBlockEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java index 696a7809..c5a5a054 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByEntityEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageByEntityEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityDamageByEntityEvent extends AbstractMinigameEvent<EntityDam */ public MgEntityDamageByEntityEvent(EntityDamageByEntityEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityDamageByEntityEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityDamageByEntityEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java index 714fd63d..2a5b79da 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityDamageEvent extends AbstractMinigameEvent<EntityDamageEvent */ public MgEntityDamageEvent(EntityDamageEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityDamageEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityDamageEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java index 7e251d08..3a92b875 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java @@ -34,7 +34,7 @@ public class MgEntityDeathEvent extends AbstractMinigameEvent<EntityDeathEvent, */ public MgEntityDeathEvent(EntityDeathEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java index 8377996a..7b137392 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java @@ -34,7 +34,7 @@ public class MgEntityExplodeEvent extends AbstractMinigameEvent<EntityExplodeEve */ public MgEntityExplodeEvent(EntityExplodeEvent event) { - super(event, null); // TODO + super(event, null, event.getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java index f22b60f5..6b5f38b3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java @@ -34,7 +34,7 @@ public class MgEntityInteractEvent extends AbstractMinigameEvent<EntityInteractE */ public MgEntityInteractEvent(EntityInteractEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java index 7f591019..74189c93 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java @@ -34,7 +34,7 @@ public class MgEntityPortalEnterEvent extends AbstractMinigameEvent<EntityPortal */ public MgEntityPortalEnterEvent(EntityPortalEnterEvent event) { - super(event, null); // TODO + super(event, null, event.getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java index 490eb765..2af9d7c0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java @@ -34,7 +34,7 @@ public class MgEntityPortalEvent extends AbstractMinigameEvent<EntityPortalEvent */ public MgEntityPortalEvent(EntityPortalEvent event) { - super(event, null); // TODO + super(event, null, event.getFrom()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java index 3481ef61..1eddf4d8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java @@ -34,7 +34,7 @@ public class MgEntityPortalExitEvent extends AbstractMinigameEvent<EntityPortalE */ public MgEntityPortalExitEvent(EntityPortalExitEvent event) { - super(event, null); // TODO + super(event, null, event.getFrom()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java index 3f13f149..367f95d4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java @@ -34,7 +34,7 @@ public class MgEntityRegainHealthEvent extends AbstractMinigameEvent<EntityRegai */ public MgEntityRegainHealthEvent(EntityRegainHealthEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java index 77b2d2af..085d31a0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java @@ -15,9 +15,15 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; +import org.bukkit.entity.Projectile; import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.projectiles.ProjectileSource; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityShootBowEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +40,31 @@ public class MgEntityShootBowEvent extends AbstractMinigameEvent<EntityShootBowE */ public MgEntityShootBowEvent(EntityShootBowEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityShootBowEvent event) + { + final ProjectileSource passenger = ((Projectile)event.getProjectile()).getShooter(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityShootBowEvent event) + { + final ProjectileSource passenger = ((Projectile)event.getProjectile()).getShooter(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java index 56270960..03a70ea0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java @@ -34,7 +34,7 @@ public class MgEntitySpawnEvent extends AbstractMinigameEvent<EntitySpawnEvent, */ public MgEntitySpawnEvent(EntitySpawnEvent event) { - super(event, null); // TODO + super(event, null, event.getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java index d9622fc3..8d76e109 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityTameEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTameEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgEntityTameEvent extends AbstractMinigameEvent<EntityTameEvent, Mi */ public MgEntityTameEvent(EntityTameEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getOwner())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java index d5df9f19..fea1a80b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityTargetEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTargetEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityTargetEvent extends AbstractMinigameEvent<EntityTargetEvent */ public MgEntityTargetEvent(EntityTargetEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityTargetEvent event) + { + final Entity passenger = event.getTarget(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityTargetEvent event) + { + final Entity passenger = event.getTarget(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java index ae4a99a4..c4b14b92 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTargetLivingEntityEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityTargetLivingEntityEvent extends AbstractMinigameEvent<Entit */ public MgEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityTargetLivingEntityEvent event) + { + final Entity passenger = event.getTarget(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityTargetLivingEntityEvent event) + { + final Entity passenger = event.getTarget(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java index 64d0f0d7..4ab28b4b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java @@ -34,7 +34,7 @@ public class MgEntityTeleportEvent extends AbstractMinigameEvent<EntityTeleportE */ public MgEntityTeleportEvent(EntityTeleportEvent event) { - super(event, null); // TODO + super(event, null, event.getFrom()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java index e3559605..3dc0f4a1 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityToggleGlideEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityToggleGlideEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgEntityToggleGlideEvent extends AbstractMinigameEvent<EntityToggle */ public MgEntityToggleGlideEvent(EntityToggleGlideEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(EntityToggleGlideEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(EntityToggleGlideEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java index 97629702..f887a89e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java @@ -34,7 +34,7 @@ public class MgEntityUnleashEvent extends AbstractMinigameEvent<EntityUnleashEve */ public MgEntityUnleashEvent(EntityUnleashEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java index e2ee4dcd..966536ae 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java @@ -34,7 +34,7 @@ public class MgExpBottleEvent extends AbstractMinigameEvent<ExpBottleEvent, Mini */ public MgExpBottleEvent(ExpBottleEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java index 01c49457..dda114a6 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java @@ -34,7 +34,7 @@ public class MgExplosionPrimeEvent extends AbstractMinigameEvent<ExplosionPrimeE */ public MgExplosionPrimeEvent(ExplosionPrimeEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java index b8edea01..5f965e7b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java @@ -34,7 +34,7 @@ public class MgFireworkExplodeEvent extends AbstractMinigameEvent<FireworkExplod */ public MgFireworkExplodeEvent(FireworkExplodeEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java index 573000df..81685bfd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.FoodLevelChangeEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameFoodLevelChangeEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgFoodLevelChangeEvent extends AbstractMinigameEvent<FoodLevelChang */ public MgFoodLevelChangeEvent(FoodLevelChangeEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(FoodLevelChangeEvent event) + { + final Entity passenger = event.getEntity(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(FoodLevelChangeEvent event) + { + final Entity passenger = event.getEntity(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java index d55e206a..93c633eb 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java @@ -34,7 +34,7 @@ public class MgFurnaceBurnEvent extends AbstractMinigameEvent<FurnaceBurnEvent, */ public MgFurnaceBurnEvent(FurnaceBurnEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java index 14a78f52..c7753f00 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java @@ -34,7 +34,7 @@ public class MgFurnaceSmeltEvent extends AbstractMinigameEvent<FurnaceSmeltEvent */ public MgFurnaceSmeltEvent(FurnaceSmeltEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java index 16ca3715..a3a3a0f7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.hanging.HangingBreakByEntityEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingBreakByEntityEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgHangingBreakByEntityEvent extends AbstractMinigameEvent<HangingBr */ public MgHangingBreakByEntityEvent(HangingBreakByEntityEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(HangingBreakByEntityEvent event) + { + final Entity passenger = event.getRemover(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(HangingBreakByEntityEvent event) + { + final Entity passenger = event.getRemover(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java index a800c857..fe419bc0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java @@ -34,7 +34,7 @@ public class MgHangingBreakEvent extends AbstractMinigameEvent<HangingBreakEvent */ public MgHangingBreakEvent(HangingBreakEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java index 17aab56b..50111223 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java @@ -15,9 +15,12 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.hanging.HangingPlaceEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingPlaceEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +37,17 @@ public class MgHangingPlaceEvent extends AbstractMinigameEvent<HangingPlaceEvent */ public MgHangingPlaceEvent(HangingPlaceEvent event) { - super(event, null); // TODO + super(event, player(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(HangingPlaceEvent event) + { + final Player passenger = event.getPlayer(); + return passenger == null ? null : MglibInterface.INSTANCE.get().getPlayer(passenger); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java index 5c197ea4..d7fd88d4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.entity.HorseJumpEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameHorseJumpEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgHorseJumpEvent extends AbstractMinigameEvent<HorseJumpEvent, Mini */ public MgHorseJumpEvent(HorseJumpEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(HorseJumpEvent event) + { + final Entity passenger = event.getEntity().getPassenger(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(HorseJumpEvent event) + { + final Entity passenger = event.getEntity().getPassenger(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java index aea91e35..c5ec80ca 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryClickEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickE */ public MgInventoryClickEvent(InventoryClickEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java index ffcf773b..21e3f8cd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryCloseEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryCloseEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryCloseEvent extends AbstractMinigameEvent<InventoryCloseE */ public MgInventoryCloseEvent(InventoryCloseEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java index 3386ef0c..f77ef363 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryCreativeEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryCreativeEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryCreativeEvent extends AbstractMinigameEvent<InventoryCre */ public MgInventoryCreativeEvent(InventoryCreativeEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java index e7c8481e..9f9f6f52 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryDragEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryDragEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEve */ public MgInventoryDragEvent(InventoryDragEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java index 2bb7d2f3..e3e46e90 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryEvent extends AbstractMinigameEvent<InventoryEvent, Mini */ public MgInventoryEvent(InventoryEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getView().getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java index d560b1e4..a6ab40bd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryInteractEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryInteractEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryInteractEvent extends AbstractMinigameEvent<InventoryInt */ public MgInventoryInteractEvent(InventoryInteractEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java index 728f1dc0..de11dab5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryMoveItemEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryMoveItemEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryMoveItemEvent extends AbstractMinigameEvent<InventoryMov */ public MgInventoryMoveItemEvent(InventoryMoveItemEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getInitiator().getViewers().get(0))); // TODO correct to invoke get(0)? } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java index 83657b1d..aa98de16 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryOpenEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryOpenEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryOpenEvent extends AbstractMinigameEvent<InventoryOpenEve */ public MgInventoryOpenEvent(InventoryOpenEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java index 1bf86d26..888c1775 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryPickupItemEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryPickupItemEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgInventoryPickupItemEvent extends AbstractMinigameEvent<InventoryP */ public MgInventoryPickupItemEvent(InventoryPickupItemEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getInventory().getViewers().get(0))); // TODO correct to invoke get(0)? } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java index faa5dee2..ecae9656 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java @@ -34,7 +34,7 @@ public class MgItemDespawnEvent extends AbstractMinigameEvent<ItemDespawnEvent, */ public MgItemDespawnEvent(ItemDespawnEvent event) { - super(event, null); // TODO + super(event, null, event.getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java index 859ba26e..5a53cc3b 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java @@ -34,7 +34,7 @@ public class MgItemMergeEvent extends AbstractMinigameEvent<ItemMergeEvent, Mini */ public MgItemMergeEvent(ItemMergeEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java index f9be0c74..3727fc48 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java @@ -34,7 +34,7 @@ public class MgItemSpawnEvent extends AbstractMinigameEvent<ItemSpawnEvent, Mini */ public MgItemSpawnEvent(ItemSpawnEvent event) { - super(event, null); // TODO + super(event, null, event.getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java index 88bb31db..3d5449bd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java @@ -34,7 +34,7 @@ public class MgLeavesDecayEvent extends AbstractMinigameEvent<LeavesDecayEvent, */ public MgLeavesDecayEvent(LeavesDecayEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java index bc74e405..c8880693 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java @@ -34,7 +34,7 @@ public class MgLingeringPotionSplashEvent extends AbstractMinigameEvent<Lingerin */ public MgLingeringPotionSplashEvent(LingeringPotionSplashEvent event) { - super(event, null); // TODO + super(event, null, event.getAreaEffectCloud().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java index 430b25dc..57aff52d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java @@ -34,7 +34,7 @@ public class MgNotePlayEvent extends AbstractMinigameEvent<NotePlayEvent, Miniga */ public MgNotePlayEvent(NotePlayEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java index e814dcf3..e286acc5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java @@ -34,7 +34,7 @@ public class MgPigZapEvent extends AbstractMinigameEvent<PigZapEvent, MinigamePi */ public MgPigZapEvent(PigZapEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java index 05f40958..0e26bc50 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerAchievementAwardedEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerAchievementAwardedEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerAchievementAwardedEvent extends AbstractMinigameEvent<Playe */ public MgPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java index 83337140..636f92a9 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerAnimationEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerAnimationEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerAnimationEvent extends AbstractMinigameEvent<PlayerAnimatio */ public MgPlayerAnimationEvent(PlayerAnimationEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java index 6e6a692d..c47b143d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerArmorStandManipulateEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerArmorStandManipulateEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerArmorStandManipulateEvent extends AbstractMinigameEvent<Pla */ public MgPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java index 8192ed2c..836e9805 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerBedEnterEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBedEnterEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerBedEnterEvent extends AbstractMinigameEvent<PlayerBedEnterE */ public MgPlayerBedEnterEvent(PlayerBedEnterEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java index 4ea1debc..ee402d35 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerBedLeaveEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBedLeaveEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerBedLeaveEvent extends AbstractMinigameEvent<PlayerBedLeaveE */ public MgPlayerBedLeaveEvent(PlayerBedLeaveEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java index 63b13542..8ba87e60 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerBucketEmptyEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBucketEmptyEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerBucketEmptyEvent extends AbstractMinigameEvent<PlayerBucket */ public MgPlayerBucketEmptyEvent(PlayerBucketEmptyEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java index 32da099e..bb43bfc6 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerBucketFillEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBucketFillEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerBucketFillEvent extends AbstractMinigameEvent<PlayerBucketF */ public MgPlayerBucketFillEvent(PlayerBucketFillEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java index 932561ae..e0271887 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerChangedMainHandEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChangedMainHandEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerChangedMainHandEvent extends AbstractMinigameEvent<PlayerCh */ public MgPlayerChangedMainHandEvent(PlayerChangedMainHandEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java index 70f13f37..0e8763a2 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerChangedWorldEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChangedWorldEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerChangedWorldEvent extends AbstractMinigameEvent<PlayerChang */ public MgPlayerChangedWorldEvent(PlayerChangedWorldEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java index 368b305a..e42658e8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerChannelEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChannelEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerChannelEvent extends AbstractMinigameEvent<PlayerChannelEve */ public MgPlayerChannelEvent(PlayerChannelEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java index e73690b5..95083c28 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerChatEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChatEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerChatEvent extends AbstractMinigameEvent<PlayerChatEvent, Mi */ public MgPlayerChatEvent(PlayerChatEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java index 131a7fd0..2d37437d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerChatTabCompleteEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChatTabCompleteEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerChatTabCompleteEvent extends AbstractMinigameEvent<PlayerCh */ public MgPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java index 63b1603e..2731165f 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerCommandPreprocessEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerCommandPreprocessEvent extends AbstractMinigameEvent<Player */ public MgPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java index bf26f0a3..c2c912f6 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.PlayerDeathEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerDeathEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerDeathEvent extends AbstractMinigameEvent<PlayerDeathEvent, */ public MgPlayerDeathEvent(PlayerDeathEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getEntity())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java index 1c5f7a34..b7c98c6d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerDropItemEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerDropItemEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerDropItemEvent extends AbstractMinigameEvent<PlayerDropItemE */ public MgPlayerDropItemEvent(PlayerDropItemEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java index 79423316..2e6eb638 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerEditBookEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerEditBookEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerEditBookEvent extends AbstractMinigameEvent<PlayerEditBookE */ public MgPlayerEditBookEvent(PlayerEditBookEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java index 686010a0..1d8847bf 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerEggThrowEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerEggThrowEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerEggThrowEvent extends AbstractMinigameEvent<PlayerEggThrowE */ public MgPlayerEggThrowEvent(PlayerEggThrowEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java index 8ac25127..1b6bb5c7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerExpChangeEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerExpChangeEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerExpChangeEvent extends AbstractMinigameEvent<PlayerExpChang */ public MgPlayerExpChangeEvent(PlayerExpChangeEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java index 84acc64d..fec99c01 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerFishEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerFishEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerFishEvent extends AbstractMinigameEvent<PlayerFishEvent, Mi */ public MgPlayerFishEvent(PlayerFishEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java index a743bdee..088679a5 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerGameModeChangeEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerGameModeChangeEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerGameModeChangeEvent extends AbstractMinigameEvent<PlayerGam */ public MgPlayerGameModeChangeEvent(PlayerGameModeChangeEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java index daf2f582..43e45502 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerInteractAtEntityEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractAtEntityEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -35,7 +36,7 @@ public class MgPlayerInteractAtEntityEvent extends AbstractMinigameEvent<PlayerI */ public MgPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java index 26d5e604..590d0ef4 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerInteractEntityEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractEntityEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerInteractEntityEvent extends AbstractMinigameEvent<PlayerInt */ public MgPlayerInteractEntityEvent(PlayerInteractEntityEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java index 9d407043..24ebdaf9 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerInteractEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerInteractEvent extends AbstractMinigameEvent<PlayerInteractE */ public MgPlayerInteractEvent(PlayerInteractEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java index 078e7031..83b1df1c 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerInventoryEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInventoryEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerInventoryEvent extends AbstractMinigameEvent<PlayerInventor */ public MgPlayerInventoryEvent(PlayerInventoryEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java index 79a39f91..7ea06354 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerItemBreakEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemBreakEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerItemBreakEvent extends AbstractMinigameEvent<PlayerItemBrea */ public MgPlayerItemBreakEvent(PlayerItemBreakEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java index b17a4d8d..2accb965 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerItemConsumeEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemConsumeEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerItemConsumeEvent extends AbstractMinigameEvent<PlayerItemCo */ public MgPlayerItemConsumeEvent(PlayerItemConsumeEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java index eb6c3cff..1deb7ee8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerItemDamageEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemDamageEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerItemDamageEvent extends AbstractMinigameEvent<PlayerItemDam */ public MgPlayerItemDamageEvent(PlayerItemDamageEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java index b05b0c85..d994268e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerItemHeldEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemHeldEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerItemHeldEvent extends AbstractMinigameEvent<PlayerItemHeldE */ public MgPlayerItemHeldEvent(PlayerItemHeldEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java index ae69cfd7..e0eb7625 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerJoinEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerJoinEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerJoinEvent extends AbstractMinigameEvent<PlayerJoinEvent, Mi */ public MgPlayerJoinEvent(PlayerJoinEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java index 88562e7e..5278d3c3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerKickEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerKickEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerKickEvent extends AbstractMinigameEvent<PlayerKickEvent, Mi */ public MgPlayerKickEvent(PlayerKickEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java index 0467dc6f..8884024d 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.entity.PlayerLeashEntityEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLeashEntityEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerLeashEntityEvent extends AbstractMinigameEvent<PlayerLeashE */ public MgPlayerLeashEntityEvent(PlayerLeashEntityEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java index f40bdff5..9d14cbbd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerLevelChangeEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLevelChangeEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerLevelChangeEvent extends AbstractMinigameEvent<PlayerLevelC */ public MgPlayerLevelChangeEvent(PlayerLevelChangeEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java index 3fe19d30..76f7efc3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerLoginEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLoginEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerLoginEvent extends AbstractMinigameEvent<PlayerLoginEvent, */ public MgPlayerLoginEvent(PlayerLoginEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java index ac837f1a..2615c10e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerMoveEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerMoveEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerMoveEvent extends AbstractMinigameEvent<PlayerMoveEvent, Mi */ public MgPlayerMoveEvent(PlayerMoveEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java index 26ea01b5..ec69f245 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerPickupArrowEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPickupArrowEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerPickupArrowEvent extends AbstractMinigameEvent<PlayerPickup */ public MgPlayerPickupArrowEvent(PlayerPickupArrowEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java index 8a4cc1f8..ccf4af2e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerPickupItemEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPickupItemEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerPickupItemEvent extends AbstractMinigameEvent<PlayerPickupI */ public MgPlayerPickupItemEvent(PlayerPickupItemEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java index ba8fec21..729ae8cd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerPortalEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPortalEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerPortalEvent extends AbstractMinigameEvent<PlayerPortalEvent */ public MgPlayerPortalEvent(PlayerPortalEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java index c5992783..2ba2e661 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerQuitEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerQuitEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerQuitEvent extends AbstractMinigameEvent<PlayerQuitEvent, Mi */ public MgPlayerQuitEvent(PlayerQuitEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java index dc464cb1..5eda7ea7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerRegisterChannelEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerRegisterChannelEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerRegisterChannelEvent extends AbstractMinigameEvent<PlayerRe */ public MgPlayerRegisterChannelEvent(PlayerRegisterChannelEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java index f7dcfb67..ff717e34 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerResourcePackStatusEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerResourcePackStatusEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerResourcePackStatusEvent extends AbstractMinigameEvent<Playe */ public MgPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java index db3b0c9b..e2c9408a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerRespawnEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerRespawnEvent extends AbstractMinigameEvent<PlayerRespawnEve */ public MgPlayerRespawnEvent(PlayerRespawnEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java index aa297e6d..439ea7c0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerShearEntityEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerShearEntityEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerShearEntityEvent extends AbstractMinigameEvent<PlayerShearE */ public MgPlayerShearEntityEvent(PlayerShearEntityEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java index 463d25c0..a0de6631 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java @@ -17,6 +17,7 @@ import org.spigotmc.event.player.PlayerSpawnLocationEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerSpawnLocationEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerSpawnLocationEvent extends AbstractMinigameEvent<PlayerSpaw */ public MgPlayerSpawnLocationEvent(PlayerSpawnLocationEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java index 4c322097..54d47547 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerStatisticIncrementEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerStatisticIncrementEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerStatisticIncrementEvent extends AbstractMinigameEvent<Playe */ public MgPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java index 9b3001e7..837323ac 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerSwapHandItemsEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerSwapHandItemsEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerSwapHandItemsEvent extends AbstractMinigameEvent<PlayerSwap */ public MgPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java index 1b824ef6..e36cf4f0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerTeleportEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerTeleportEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerTeleportEvent extends AbstractMinigameEvent<PlayerTeleportE */ public MgPlayerTeleportEvent(PlayerTeleportEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java index 5ec79664..cdadf475 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerToggleFlightEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleFlightEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerToggleFlightEvent extends AbstractMinigameEvent<PlayerToggl */ public MgPlayerToggleFlightEvent(PlayerToggleFlightEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java index ca01a279..d9ec98b7 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerToggleSneakEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleSneakEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerToggleSneakEvent extends AbstractMinigameEvent<PlayerToggle */ public MgPlayerToggleSneakEvent(PlayerToggleSneakEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java index 179ecadb..720702e1 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerToggleSprintEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleSprintEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerToggleSprintEvent extends AbstractMinigameEvent<PlayerToggl */ public MgPlayerToggleSprintEvent(PlayerToggleSprintEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java index 6f675c30..fd39ab7e 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerUnregisterChannelEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerUnregisterChannelEvent extends AbstractMinigameEvent<Player */ public MgPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java index fa60b1f5..7753f797 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.player.PlayerVelocityEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerVelocityEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPlayerVelocityEvent extends AbstractMinigameEvent<PlayerVelocityE */ public MgPlayerVelocityEvent(PlayerVelocityEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java index 58a164c6..7f42808a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java @@ -34,7 +34,7 @@ public class MgPotionSplashEvent extends AbstractMinigameEvent<PotionSplashEvent */ public MgPotionSplashEvent(PotionSplashEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java index 884412ca..2246b783 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.PrepareAnvilEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareAnvilEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgPrepareAnvilEvent extends AbstractMinigameEvent<PrepareAnvilEvent */ public MgPrepareAnvilEvent(PrepareAnvilEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getView().getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java index f13f1c32..d1c32837 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java @@ -15,8 +15,10 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.inventory.PrepareItemCraftEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareItemCraftEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +36,7 @@ public class MgPrepareItemCraftEvent extends AbstractMinigameEvent<PrepareItemCr */ public MgPrepareItemCraftEvent(PrepareItemCraftEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getView().getPlayer())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java index 8cc17434..d60be5dd 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java @@ -17,6 +17,7 @@ import org.bukkit.event.enchantment.PrepareItemEnchantEvent; +import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareItemEnchantEvent; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; @@ -34,7 +35,7 @@ public class MgPrepareItemEnchantEvent extends AbstractMinigameEvent<PrepareItem */ public MgPrepareItemEnchantEvent(PrepareItemEnchantEvent event) { - super(event, null); // TODO + super(event, MglibInterface.INSTANCE.get().getPlayer(event.getEnchanter())); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java index adbb70db..bf92a412 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.entity.ProjectileHitEvent; +import org.bukkit.projectiles.ProjectileSource; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameProjectileHitEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgProjectileHitEvent extends AbstractMinigameEvent<ProjectileHitEve */ public MgProjectileHitEvent(ProjectileHitEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(ProjectileHitEvent event) + { + final ProjectileSource source = event.getEntity().getShooter(); + return source instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) source) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(ProjectileHitEvent event) + { + final ProjectileSource source = event.getEntity().getShooter(); + if (source instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java index 215d9606..a06546d0 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Player; import org.bukkit.event.entity.ProjectileLaunchEvent; +import org.bukkit.projectiles.ProjectileSource; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameProjectileLaunchEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgProjectileLaunchEvent extends AbstractMinigameEvent<ProjectileLau */ public MgProjectileLaunchEvent(ProjectileLaunchEvent event) { - super(event, null); // TODO + super(event, player(event), location(event)); + } + + /** + * @param event + * @return player + */ + private static ArenaPlayerInterface player(ProjectileLaunchEvent event) + { + final ProjectileSource source = event.getEntity().getShooter(); + return source instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) source) : null; + } + + /** + * @param event + * @return arena + */ + private static ArenaInterface location(ProjectileLaunchEvent event) + { + final ProjectileSource source = event.getEntity().getShooter(); + if (source instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java index cc43f5d4..ec519471 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java @@ -34,7 +34,7 @@ public class MgSheepDyeWoolEvent extends AbstractMinigameEvent<SheepDyeWoolEvent */ public MgSheepDyeWoolEvent(SheepDyeWoolEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java index 0c4881a0..291fb3fb 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java @@ -34,7 +34,7 @@ public class MgSheepRegrowWoolEvent extends AbstractMinigameEvent<SheepRegrowWoo */ public MgSheepRegrowWoolEvent(SheepRegrowWoolEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java index 7c268244..b657318c 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java @@ -34,7 +34,7 @@ public class MgSignChangeEvent extends AbstractMinigameEvent<SignChangeEvent, Mi */ public MgSignChangeEvent(SignChangeEvent event) { - super(event, null); // TODO + super(event, null, event.getBlock().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java index 44fbb143..b7a4af2a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java @@ -34,7 +34,7 @@ public class MgSlimeSplitEvent extends AbstractMinigameEvent<SlimeSplitEvent, Mi */ public MgSlimeSplitEvent(SlimeSplitEvent event) { - super(event, null); // TODO + super(event, null, event.getEntity().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java index 140f52a3..2697a26a 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java @@ -34,7 +34,7 @@ public class MgSpawnerSpawnEvent extends AbstractMinigameEvent<SpawnerSpawnEvent */ public MgSpawnerSpawnEvent(SpawnerSpawnEvent event) { - super(event, null); // TODO + super(event, null, event.getSpawner().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java index 980c5d05..d08f6e37 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleBlockCollisionEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgVehicleBlockCollisionEvent extends AbstractMinigameEvent<VehicleB */ public MgVehicleBlockCollisionEvent(VehicleBlockCollisionEvent event) { - super(event, null); // TODO + super(event, passenger(event), location(event)); + } + + /** + * @param event + * @return passanger + */ + private static ArenaPlayerInterface passenger(VehicleBlockCollisionEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return passanger + */ + private static ArenaInterface location(VehicleBlockCollisionEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java index 4bc6b093..0e46bde8 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleCreateEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleCreateEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgVehicleCreateEvent extends AbstractMinigameEvent<VehicleCreateEve */ public MgVehicleCreateEvent(VehicleCreateEvent event) { - super(event, null); // TODO + super(event, passenger(event), location(event)); + } + + /** + * @param event + * @return passanger + */ + private static ArenaPlayerInterface passenger(VehicleCreateEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return passanger + */ + private static ArenaInterface location(VehicleCreateEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java index 4b80712a..6ff4f5b3 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleDamageEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleDamageEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgVehicleDamageEvent extends AbstractMinigameEvent<VehicleDamageEve */ public MgVehicleDamageEvent(VehicleDamageEvent event) { - super(event, null); // TODO + super(event, passenger(event), location(event)); + } + + /** + * @param event + * @return passanger + */ + private static ArenaPlayerInterface passenger(VehicleDamageEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return passanger + */ + private static ArenaInterface location(VehicleDamageEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java index 73d059c8..f1a11775 100644 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java +++ b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java @@ -15,9 +15,14 @@ package com.github.mce.minigames.impl.nms.v1_10_1.event; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.event.vehicle.VehicleDestroyEvent; +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleDestroyEvent; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; /** @@ -34,7 +39,31 @@ public class MgVehicleDestroyEvent extends AbstractMinigameEvent<VehicleDestroyE */ public MgVehicleDestroyEvent(VehicleDestroyEvent event) { - super(event, null); // TODO Attacker + super(event, passenger(event), location(event)); + } + + /** + * @param event + * @return passanger + */ + private static ArenaPlayerInterface passenger(VehicleDestroyEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; + } + + /** + * @param event + * @return passanger + */ + private static ArenaInterface location(VehicleDestroyEvent event) + { + final Entity passenger = event.getVehicle().getPassenger(); + if (passenger instanceof Player) + { + return null; // will force to calculate from player + } + return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); } } diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java new file mode 100644 index 00000000..393c1353 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java @@ -0,0 +1,74 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Location; +import org.bukkit.entity.AreaEffectCloud; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.entity.AreaEffectCloudApplyEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgAreaEffectCloudApplyEvent; + +/** + * Test for {@link MgAreaEffectCloudApplyEvent} + * + * @author mepeisen + * + */ +public class MgAreaEffectCloudApplyEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final AreaEffectCloud cloud = mock(AreaEffectCloud.class); + when(cloud.getLocation()).thenReturn(loc); + final List<LivingEntity> affected = new ArrayList<>(); + final AreaEffectCloudApplyEvent evt = new AreaEffectCloudApplyEvent(cloud, affected); + final MgAreaEffectCloudApplyEvent mgevt = new MgAreaEffectCloudApplyEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java new file mode 100644 index 00000000..7668ebef --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.HashSet; + +import org.bukkit.entity.Player; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgAsyncPlayerChatEvent; + +/** + * Test for {@link MgAsyncPlayerChatEvent} + * + * @author mepeisen + * + */ +public class MgAsyncPlayerChatEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + when(lib.getPlayer(any(Player.class))).thenReturn(player); + when(player.getArena()).thenReturn(arena); + + final AsyncPlayerChatEvent evt = new AsyncPlayerChatEvent(true, mock(Player.class), "FOO", new HashSet<>()); //$NON-NLS-1$ + final MgAsyncPlayerChatEvent mgevt = new MgAsyncPlayerChatEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java new file mode 100644 index 00000000..89d5c81a --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java @@ -0,0 +1,73 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockBreakEvent; + +/** + * Test for {@link MgBlockBreakEvent} + * + * @author mepeisen + * + */ +public class MgBlockBreakEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + when(lib.getPlayer(any(Player.class))).thenReturn(player); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockBreakEvent evt = new BlockBreakEvent(block, mock(Player.class)); + final MgBlockBreakEvent mgevt = new MgBlockBreakEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java new file mode 100644 index 00000000..77cfc242 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockBurnEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockBurnEvent; + +/** + * Test for {@link MgBlockBurnEvent} + * + * @author mepeisen + * + */ +public class MgBlockBurnEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockBurnEvent evt = new BlockBurnEvent(block); + final MgBlockBurnEvent mgevt = new MgBlockBurnEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java new file mode 100644 index 00000000..92fdfef6 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockCanBuildEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockCanBuildEvent; + +/** + * Test for {@link MgBlockCanBuildEvent} + * + * @author mepeisen + * + */ +public class MgBlockCanBuildEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockCanBuildEvent evt = new BlockCanBuildEvent(block, 1, false); + final MgBlockCanBuildEvent mgevt = new MgBlockCanBuildEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java new file mode 100644 index 00000000..436f2bca --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java @@ -0,0 +1,75 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockDamageEvent; +import org.bukkit.inventory.ItemStack; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockDamageEvent; + +/** + * Test for {@link MgBlockDamageEvent} + * + * @author mepeisen + * + */ +public class MgBlockDamageEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + when(lib.getPlayer(any(Player.class))).thenReturn(player); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockDamageEvent evt = new BlockDamageEvent(mock(Player.class), block, new ItemStack(Material.ACACIA_DOOR), false); + final MgBlockDamageEvent mgevt = new MgBlockDamageEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java new file mode 100644 index 00000000..4e46b6e2 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java @@ -0,0 +1,72 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockDispenseEvent; + +/** + * Test for {@link MgBlockDispenseEvent} + * + * @author mepeisen + * + */ +public class MgBlockDispenseEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockDispenseEvent evt = new BlockDispenseEvent(block, new ItemStack(Material.ACACIA_DOOR), new Vector(1, 1, 1)); + final MgBlockDispenseEvent mgevt = new MgBlockDispenseEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java new file mode 100644 index 00000000..df203ad3 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockExpEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockExpEvent; + +/** + * Test for {@link MgBlockExpEvent} + * + * @author mepeisen + * + */ +public class MgBlockExpEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockExpEvent evt = new BlockExpEvent(block, 1); + final MgBlockExpEvent mgevt = new MgBlockExpEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java new file mode 100644 index 00000000..a21734cc --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java @@ -0,0 +1,71 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.ArrayList; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockExplodeEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockExplodeEvent; + +/** + * Test for {@link MgBlockExplodeEvent} + * + * @author mepeisen + * + */ +public class MgBlockExplodeEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockExplodeEvent evt = new BlockExplodeEvent(block, new ArrayList<>(), 20); + final MgBlockExplodeEvent mgevt = new MgBlockExplodeEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java new file mode 100644 index 00000000..7b99c228 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.event.block.BlockFadeEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockFadeEvent; + +/** + * Test for {@link MgBlockFadeEvent} + * + * @author mepeisen + * + */ +public class MgBlockFadeEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockFadeEvent evt = new BlockFadeEvent(block, mock(BlockState.class)); + final MgBlockFadeEvent mgevt = new MgBlockFadeEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java new file mode 100644 index 00000000..f30752ad --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.event.block.BlockFormEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockFormEvent; + +/** + * Test for {@link MgBlockFormEvent} + * + * @author mepeisen + * + */ +public class MgBlockFormEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockFormEvent evt = new BlockFormEvent(block, mock(BlockState.class)); + final MgBlockFormEvent mgevt = new MgBlockFormEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java new file mode 100644 index 00000000..5f4b1bf3 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.event.block.BlockFromToEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockFromToEvent; + +/** + * Test for {@link MgBlockFromToEvent} + * + * @author mepeisen + * + */ +public class MgBlockFromToEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockFromToEvent evt = new BlockFromToEvent(block, BlockFace.DOWN); + final MgBlockFromToEvent mgevt = new MgBlockFromToEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java new file mode 100644 index 00000000..ec5c8390 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.event.block.BlockGrowEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockGrowEvent; + +/** + * Test for {@link MgBlockGrowEvent} + * + * @author mepeisen + * + */ +public class MgBlockGrowEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockGrowEvent evt = new BlockGrowEvent(block, mock(BlockState.class)); + final MgBlockGrowEvent mgevt = new MgBlockGrowEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java new file mode 100644 index 00000000..af77f101 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockIgniteEvent.IgniteCause; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockIgniteEvent; + +/** + * Test for {@link MgBlockIgniteEvent} + * + * @author mepeisen + * + */ +public class MgBlockIgniteEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockIgniteEvent evt = new BlockIgniteEvent(block, IgniteCause.ENDER_CRYSTAL, mock(Block.class)); + final MgBlockIgniteEvent mgevt = new MgBlockIgniteEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java new file mode 100644 index 00000000..9417f405 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java @@ -0,0 +1,83 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockMultiPlaceEvent; +import org.bukkit.inventory.ItemStack; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockMultiPlaceEvent; + +/** + * Test for {@link MgBlockMultiPlaceEvent} + * + * @author mepeisen + * + */ +public class MgBlockMultiPlaceEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + when(lib.getPlayer(any(Player.class))).thenReturn(player); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final List<BlockState> states = new ArrayList<>(); + final BlockState state = mock(BlockState.class); + when(state.getBlock()).thenReturn(block); + states.add(state); + final BlockMultiPlaceEvent evt = new BlockMultiPlaceEvent(states, block, new ItemStack(Material.ACACIA_DOOR), mock(Player.class), true); + final MgBlockMultiPlaceEvent mgevt = new MgBlockMultiPlaceEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java new file mode 100644 index 00000000..cae356d4 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPhysicsEvent; + +/** + * Test for {@link MgBlockPhysicsEvent} + * + * @author mepeisen + * + */ +public class MgBlockPhysicsEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockPhysicsEvent evt = new BlockPhysicsEvent(block, 1); + final MgBlockPhysicsEvent mgevt = new MgBlockPhysicsEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java new file mode 100644 index 00000000..1a83e306 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java @@ -0,0 +1,72 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.ArrayList; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPistonExtendEvent; + +/** + * Test for {@link MgBlockPistonExtendEvent} + * + * @author mepeisen + * + */ +public class MgBlockPistonExtendEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockPistonExtendEvent evt = new BlockPistonExtendEvent(block, new ArrayList<>(), BlockFace.DOWN); + final MgBlockPistonExtendEvent mgevt = new MgBlockPistonExtendEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java new file mode 100644 index 00000000..baf2d126 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java @@ -0,0 +1,72 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import java.util.ArrayList; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPistonRetractEvent; + +/** + * Test for {@link MgBlockPistonRetractEvent} + * + * @author mepeisen + * + */ +public class MgBlockPistonRetractEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockPistonRetractEvent evt = new BlockPistonRetractEvent(block, new ArrayList<>(), BlockFace.DOWN); + final MgBlockPistonRetractEvent mgevt = new MgBlockPistonRetractEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java new file mode 100644 index 00000000..6b3827e1 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java @@ -0,0 +1,78 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPlaceEvent; + + +/** + * Test for {@link MgBlockPlaceEvent} + * + * @author mepeisen + * + */ +public class MgBlockPlaceEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + when(lib.getPlayer(any(Player.class))).thenReturn(player); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockPlaceEvent evt = new BlockPlaceEvent(block, mock(BlockState.class), mock(Block.class), new ItemStack(Material.BANNER), mock(Player.class), true, EquipmentSlot.CHEST); + final MgBlockPlaceEvent mgevt = new MgBlockPlaceEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertEquals(player, mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java new file mode 100644 index 00000000..26521daa --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java @@ -0,0 +1,69 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockRedstoneEvent; + +/** + * Test for {@link MgBlockRedstoneEvent} + * + * @author mepeisen + * + */ +public class MgBlockRedstoneEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block block = mock(Block.class); + when(block.getLocation()).thenReturn(loc); + final BlockRedstoneEvent evt = new BlockRedstoneEvent(block, 0, 1); + final MgBlockRedstoneEvent mgevt = new MgBlockRedstoneEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java new file mode 100644 index 00000000..62137887 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java @@ -0,0 +1,70 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import org.bukkit.event.block.BlockSpreadEvent; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockSpreadEvent; + +/** + * Test for {@link MgBlockSpreadEvent} + * + * @author mepeisen + * + */ +public class MgBlockSpreadEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block source = mock(Block.class); + when(source.getLocation()).thenReturn(loc); + final BlockSpreadEvent evt = new BlockSpreadEvent(source, source, mock(BlockState.class)); + final MgBlockSpreadEvent mgevt = new MgBlockSpreadEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java new file mode 100644 index 00000000..9fb7f9a6 --- /dev/null +++ b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java @@ -0,0 +1,71 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.github.mce.minigames.impl.test.nms.v1_10_1.event; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import static org.powermock.api.mockito.PowerMockito.when; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.inventory.BrewerInventory; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import com.github.mce.minigames.api.MglibInterface; +import com.github.mce.minigames.api.MinigameInterface; +import com.github.mce.minigames.api.arena.ArenaInterface; +import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBrewEvent; + +/** + * Test for {@link MgBrewEvent} + * + * @author mepeisen + * + */ +public class MgBrewEventTest +{ + + /** + * Tests constructor + */ + @Test + public void testConstructor() + { + final ArenaInterface arena = mock(ArenaInterface.class); + final MinigameInterface minigame = mock(MinigameInterface.class); + when(arena.getMinigame()).thenReturn(minigame); + + final MglibInterface lib = mock(MglibInterface.class); + Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ + final Location loc = new Location(null, 1, 2, 3); + when(lib.getArenaFromLocation(loc)).thenReturn(arena); + + final Block brewer = mock(Block.class); + when(brewer.getLocation()).thenReturn(loc); + final BrewerInventory inv = mock(BrewerInventory.class); + final BrewEvent evt = new BrewEvent(brewer, inv); + final MgBrewEvent mgevt = new MgBrewEvent(evt); + + assertEquals(evt, mgevt.getBukkitEvent()); + assertEquals(arena, mgevt.getArena()); + assertEquals(minigame, mgevt.getMinigame()); + assertNull(mgevt.getPlayer()); + } + +} From 1db6ae553a4b166a5b4c10d9a22ca0cdc6990a8f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 15 Oct 2016 18:31:23 +0200 Subject: [PATCH 141/266] migrated to eclipse plugin --- .../deploy-minigameslib.launch | 14 --------- API/.project | 12 +++----- ....eclipse.wst.common.project.facet.core.xml | 5 ++++ API/logs/latest.log | 0 API/src/build/build.xml | 29 ------------------- .../deploy-mglib2.launch | 14 --------- LIBv2/.project | 12 +++----- ....eclipse.wst.common.project.facet.core.xml | 5 ++++ LIBv2/src/build/build.xml | 27 ----------------- 9 files changed, 18 insertions(+), 100 deletions(-) delete mode 100644 API/.externalToolBuilders/deploy-minigameslib.launch create mode 100644 API/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 API/logs/latest.log delete mode 100644 API/src/build/build.xml delete mode 100644 LIBv2/.externalToolBuilders/deploy-mglib2.launch create mode 100644 LIBv2/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 LIBv2/src/build/build.xml diff --git a/API/.externalToolBuilders/deploy-minigameslib.launch b/API/.externalToolBuilders/deploy-minigameslib.launch deleted file mode 100644 index 030aefd6..00000000 --- a/API/.externalToolBuilders/deploy-minigameslib.launch +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType"> -<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/> -<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> -<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> -<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> -<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> -<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="MinigamesLib"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/MinigamesLib/src/main/java" type="2"/> <item path="/MinigamesLib/src/main/resources" type="2"/> </resources>}"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/MinigamesLib/src/build/build.xml}"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/> -<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/MinigamesLib/src/build}"/> -</launchConfiguration> diff --git a/API/.project b/API/.project index b6e7de7d..8d550315 100644 --- a/API/.project +++ b/API/.project @@ -6,28 +6,24 @@ </projects> <buildSpec> <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> + <name>org.eclipse.wst.common.project.facet.core.builder</name> <arguments> </arguments> </buildCommand> <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> + <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> - <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> - <triggers>auto,full,incremental,</triggers> + <name>org.eclipse.m2e.core.maven2Builder</name> <arguments> - <dictionary> - <key>LaunchConfigHandle</key> - <value><project>/.externalToolBuilders/deploy-minigameslib.launch</value> - </dictionary> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> </natures> </projectDescription> diff --git a/API/.settings/org.eclipse.wst.common.project.facet.core.xml b/API/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 00000000..7cbf563e --- /dev/null +++ b/API/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faceted-project> + <installed facet="java" version="1.8"/> + <installed facet="spigot.plugin" version="1.0"/> +</faceted-project> diff --git a/API/logs/latest.log b/API/logs/latest.log deleted file mode 100644 index e69de29b..00000000 diff --git a/API/src/build/build.xml b/API/src/build/build.xml deleted file mode 100644 index 72505b18..00000000 --- a/API/src/build/build.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0"?> -<project default="deploy.local" basedir="." name="Deploy jar file to local servers"> - - <property name="jar.file" value="../../target/MinigamesLib.jar"></property> - - <target name="calc.deploy"> - <condition property="minecraft.install" else="false"> - <isset property="minecraft.install.servers"/> - </condition> - </target> - - <target name="deploy.local" if="minecraft.install" depends="calc.deploy"> - <jar destfile="${jar.file}"> - <fileset dir="${basedir}/../../target/classes"></fileset> - <!--<fileset dir="${basedir}/../../../BedWars-1.10/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.7.10/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.7.2/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.7.5/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.7.9/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.8/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.8.5/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.8.8/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.9/target/classes"></fileset> - <fileset dir="${basedir}/../../../BedWars-1.9.4/target/classes"></fileset>--> - </jar> - <ant antfile="${minecraft.install.servers}" inheritAll="true" /> - </target> - -</project> \ No newline at end of file diff --git a/LIBv2/.externalToolBuilders/deploy-mglib2.launch b/LIBv2/.externalToolBuilders/deploy-mglib2.launch deleted file mode 100644 index c8fa0bf0..00000000 --- a/LIBv2/.externalToolBuilders/deploy-mglib2.launch +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType"> -<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/> -<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/> -<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/> -<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/> -<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/> -<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="MinigamesPlugin"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:<?xml version="1.0" encoding="UTF-8"?> <resources> <item path="/MinigamesAPI/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/java" type="2"/> <item path="/MinigamesPlugin/src/main/resources" type="2"/> <item path="/MinigamesPlugin_nms1_8_r1/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_8_r2/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_8_r3/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_9_r1/src/main/java" type="2"/> <item path="/MinigamesPlugin_nms1_9_r2/src/main/java" type="2"/> <item path="/MinigamesPlugin_nmsapi/src/main/java" type="2"/> </resources>}"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/MinigamesPlugin/src/build/build.xml}"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/> -<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/> -<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/MinigamesPlugin/src/build}"/> -</launchConfiguration> diff --git a/LIBv2/.project b/LIBv2/.project index 78ea0cf3..150fb3cb 100644 --- a/LIBv2/.project +++ b/LIBv2/.project @@ -6,28 +6,24 @@ </projects> <buildSpec> <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> + <name>org.eclipse.wst.common.project.facet.core.builder</name> <arguments> </arguments> </buildCommand> <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> + <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> - <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name> - <triggers>auto,full,incremental,</triggers> + <name>org.eclipse.m2e.core.maven2Builder</name> <arguments> - <dictionary> - <key>LaunchConfigHandle</key> - <value><project>/.externalToolBuilders/deploy-mglib2.launch</value> - </dictionary> </arguments> </buildCommand> </buildSpec> <natures> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> </natures> </projectDescription> diff --git a/LIBv2/.settings/org.eclipse.wst.common.project.facet.core.xml b/LIBv2/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 00000000..7cbf563e --- /dev/null +++ b/LIBv2/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faceted-project> + <installed facet="java" version="1.8"/> + <installed facet="spigot.plugin" version="1.0"/> +</faceted-project> diff --git a/LIBv2/src/build/build.xml b/LIBv2/src/build/build.xml deleted file mode 100644 index a66cd1bc..00000000 --- a/LIBv2/src/build/build.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0"?> -<project default="deploy.local" basedir="." name="Deploy jar file to local servers"> - - <property name="jar.file" value="../../target/MinigamesPlugin.jar"></property> - - <target name="calc.deploy"> - <condition property="minecraft.install" else="false"> - <isset property="minecraft.install.servers"/> - </condition> - </target> - - <target name="deploy.local" if="minecraft.install" depends="calc.deploy"> - <jar destfile="${jar.file}"> - <fileset dir="${basedir}/../../target/classes"></fileset> - <fileset dir="${basedir}/../../../APIv2/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/api/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/v1_8_r1/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/v1_8_r2/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/v1_8_r3/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/v1_9_r1/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/v1_9_r2/target/classes"></fileset> - <fileset dir="${basedir}/../../nms/v1_10_r1/target/classes"></fileset> - </jar> - <ant antfile="${minecraft.install.servers}" inheritAll="true" /> - </target> - -</project> \ No newline at end of file From c4c0b5188f2a5faf5f0d77af2afd75db2ed202f7 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 16 Oct 2016 10:11:47 +0200 Subject: [PATCH 142/266] Fixed SmartReset logic for user placed blocks (https://github.com/MysticCity/MinigamesAPI/issues/169) --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 57a765f9..b68b06bb 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ * No more kill rewards for self-kills (https://github.com/MysticCity/MinigamesAPI/issues/11) * Fixed NPE using spectator sign outside of arena (https://github.com/MysticCity/MinigamesAPI/issues/154) * Fixed PlayOutFakeBed (https://github.com/MysticCity/MinigamesAPI/issues/161) +* Migrated to eclipse-plugin (http://minecraft.xworlds.eu/eclipse/) ###### BedWars @@ -28,6 +29,10 @@ * Config option "die\_below\_bedrock\_level" can now be numeric to hold the minimum y coordinate the player can reach +###### SkyWars + +* Fixed SmartReset logic for user placed blocks (https://github.com/MysticCity/MinigamesAPI/issues/169) + ###### Sudoku * new game sudoku/ migrated to minigames lib From 9361ba3a0d556f161b0d1713bb7986b042b8bffe Mon Sep 17 00:00:00 2001 From: mepeisen <mepeisen@DESKTOP-M1LLQHI.fritz.box> Date: Sat, 12 Nov 2016 12:44:08 +0100 Subject: [PATCH 143/266] changed vault repos url --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4934c270..fdaa44be 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ </repository> <repository> <id>vault-repo</id> - <url>http://nexus.theyeticave.net/content/repositories/pub_releases</url> + <url>http://nexus.hc.to/content/repositories/pub_releases</url> </repository> </repositories> From 5c47dc68ca3230b784f637ff88d46bc206eb25ca Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sat, 12 Nov 2016 13:27:26 +0100 Subject: [PATCH 144/266] preparing 1.14.12 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/nms/api/pom.xml | 2 +- LIBv2/nms/v1_10_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r2/pom.xml | 2 +- LIBv2/nms/v1_8_r3/pom.xml | 2 +- LIBv2/nms/v1_9_r1/pom.xml | 2 +- LIBv2/nms/v1_9_r2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 0fb100f7..4af78c39 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index d5121b11..9552e4cc 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml index 1d3aa0e1..cd4b3a75 100644 --- a/LIBv2/nms/api/pom.xml +++ b/LIBv2/nms/api/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml index f0995c53..c658f238 100644 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml index 658849c5..83e301e1 100644 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml index 7edc842c..b02cbfa4 100644 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml index c28154b8..87faca7a 100644 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml index 02b625ab..633a6afc 100644 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml index dbcfd334..fe309795 100644 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index a2064d7e..baa3c017 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 9f385cc4..be734419 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index fdaa44be..e5f5f8d5 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.12-SNAPSHOT</version> + <version>1.14.12</version> <scope>provided</scope> </dependency> <dependency> From 86b8561cafce248c1c0462ec1593ae2414b5d6a1 Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sat, 12 Nov 2016 13:27:26 +0100 Subject: [PATCH 145/266] switching to 1.14.13 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/nms/api/pom.xml | 2 +- LIBv2/nms/v1_10_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r2/pom.xml | 2 +- LIBv2/nms/v1_8_r3/pom.xml | 2 +- LIBv2/nms/v1_9_r1/pom.xml | 2 +- LIBv2/nms/v1_9_r2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 4af78c39..8434d306 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 9552e4cc..b2f0328d 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml index cd4b3a75..b8f215e5 100644 --- a/LIBv2/nms/api/pom.xml +++ b/LIBv2/nms/api/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml index c658f238..552ab208 100644 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml index 83e301e1..3ae06488 100644 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml index b02cbfa4..1a01e9b6 100644 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml index 87faca7a..448b1345 100644 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml index 633a6afc..2eb4d6bb 100644 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml index fe309795..06b61b1f 100644 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index baa3c017..2e5b37fe 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index be734419..3acf6339 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index e5f5f8d5..8160cf75 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.12</minigames.releaseversion> + <minigames.releaseversion>1.14.13</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.12</version> + <version>1.14.13-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From f3ed8658d3c8d0c36f6661c821da358e2b0fbce5 Mon Sep 17 00:00:00 2001 From: mepeisen <mepeisen@DESKTOP-M1LLQHI.fritz.box> Date: Sat, 12 Nov 2016 13:38:00 +0100 Subject: [PATCH 146/266] build fix --- .../com/comze_instancelabs/minigamesapi/util/Cuboid.java | 2 -- .../comze_instancelabs/minigamesapi/util/UpdaterBukkit.java | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java index f2e3b202..a4fe8995 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java @@ -258,8 +258,6 @@ public Map<String, Object> save() * * @param root * the Map - * @param world - * the world it should be in * @return the cuboid * @throws IllegalArgumentException */ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java index 86250b9b..904dfd80 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/UpdaterBukkit.java @@ -45,14 +45,16 @@ /** * Check dev.bukkit.org to find updates for a given plugin, and download the updates if needed. - * <p/> + * <p> * <b>VERY, VERY IMPORTANT</b>: Because there are no standards for adding auto-update toggles in your plugin's config, this system provides NO CHECK WITH YOUR CONFIG to make sure the user has allowed * auto-updating. <br> * It is a <b>BUKKIT POLICY</b> that you include a boolean value in your config that prevents the auto-updater from running <b>AT ALL</b>. <br> * If you fail to include this option in your config, your plugin will be <b>REJECTED</b> when you attempt to submit it to dev.bukkit.org. - * <p/> + * </p> + * <p> * An example of a good configuration option would be something similar to 'auto-update: true' - if this value is set to false you may NOT run the auto-updater. <br> * If you are unsure about these rules, please read the plugin submission guidelines: http://goo.gl/8iU5l + * </p> * * @author Gravity * @version 2.0 From 3a90204b01d941dc8960c1405cd4f010ddb82e4e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 12 Nov 2016 13:45:27 +0100 Subject: [PATCH 147/266] build fix --- .../main/java/com/comze_instancelabs/minigamesapi/Rewards.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java index b06c4c58..647cec9b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Rewards.java @@ -150,8 +150,6 @@ public void giveReward(final String p_) * * @param p_ * Playername - * @param reward - * Amount of statistics points the player gets */ public void giveKillReward(final String p_) { From 7db8e2641bc9ad2a49c5f56a8932f9a53513d54d Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sat, 12 Nov 2016 14:34:07 +0100 Subject: [PATCH 148/266] preparing 1.14.13 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/nms/api/pom.xml | 2 +- LIBv2/nms/v1_10_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r2/pom.xml | 2 +- LIBv2/nms/v1_8_r3/pom.xml | 2 +- LIBv2/nms/v1_9_r1/pom.xml | 2 +- LIBv2/nms/v1_9_r2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 8434d306..120c3691 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index b2f0328d..55931383 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml index b8f215e5..82da0758 100644 --- a/LIBv2/nms/api/pom.xml +++ b/LIBv2/nms/api/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml index 552ab208..b199b342 100644 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml index 3ae06488..10faee77 100644 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml index 1a01e9b6..0b71f1f9 100644 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml index 448b1345..92b688a0 100644 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml index 2eb4d6bb..7d9678e6 100644 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml index 06b61b1f..b8cc5ac9 100644 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 2e5b37fe..e1c28de9 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 3acf6339..500d3a8e 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 8160cf75..454d946e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.13-SNAPSHOT</version> + <version>1.14.13</version> <scope>provided</scope> </dependency> <dependency> From accf4805cf8b0db497b1f0f86cec53580b6d6be8 Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sat, 12 Nov 2016 14:34:07 +0100 Subject: [PATCH 149/266] switching to 1.14.14 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/nms/api/pom.xml | 2 +- LIBv2/nms/v1_10_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r2/pom.xml | 2 +- LIBv2/nms/v1_8_r3/pom.xml | 2 +- LIBv2/nms/v1_9_r1/pom.xml | 2 +- LIBv2/nms/v1_9_r2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 120c3691..9eb588e0 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 55931383..1c68bc8a 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml index 82da0758..50654e07 100644 --- a/LIBv2/nms/api/pom.xml +++ b/LIBv2/nms/api/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml index b199b342..e96fca7a 100644 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml index 10faee77..540881b8 100644 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml index 0b71f1f9..ea97af0e 100644 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml index 92b688a0..b0723ee3 100644 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml index 7d9678e6..40e7a76c 100644 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml index b8cc5ac9..2a846f80 100644 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index e1c28de9..e56b9411 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 500d3a8e..aa3a7b2e 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 454d946e..b28ab1dd 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.13</minigames.releaseversion> + <minigames.releaseversion>1.14.14</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.13</version> + <version>1.14.14-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From 938373a8549ca81b78f8be25f9376f4c107becfd Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 24 Nov 2016 04:18:10 +0100 Subject: [PATCH 150/266] support for 1.11 --- .../minigamesapi/Effects.java | 8 +- .../minigamesapi/MinecraftVersionsType.java | 14 +++- .../minigamesapi/MinigamesAPI.java | 4 + LIBv2/nms/api/.classpath | 2 +- LIBv2/nms/v1_10_r1/.classpath | 2 +- LIBv2/nms/v1_8_r1/.classpath | 2 +- LIBv2/nms/v1_8_r2/.classpath | 2 +- LIBv2/nms/v1_8_r3/.classpath | 2 +- LIBv2/nms/v1_9_r1/.classpath | 2 +- LIBv2/nms/v1_9_r2/.classpath | 2 +- .../spigottest/DummyEnchantments.java | 2 +- .../spigottest/DummyPlayerInventory.java | 6 +- .../minigamesapi/spigottest/DummyServer.java | 75 ++++++++++--------- .../minigamesapi/spigottest/DummyWorld.java | 21 ++++++ .../spigottest/SpigotTestSupport.java | 8 +- pom.xml | 2 +- 16 files changed, 98 insertions(+), 56 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 5b520009..7d1e2182 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -34,10 +34,6 @@ import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; import com.comze_instancelabs.minigamesapi.util.Validator; -import net.minecraft.server.v1_10_R1.BlockPosition; -import net.minecraft.server.v1_10_R1.ChatComponentText; -import net.minecraft.server.v1_10_R1.IChatBaseComponent.ChatSerializer; - /** * Particle/Animation helper. * @@ -132,7 +128,9 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, Effects.setValue(packet_, "a", id); if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_8_R1)) { - Effects.setValue(packet_, "b", new BlockPosition(x, y, z)); + final Class<?> bpClazz = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".BlockPosition"); + final Constructor<?> ctor = bpClazz.getDeclaredConstructor(Integer.class, Integer.class, Integer.class); + Effects.setValue(packet_, "b", ctor.newInstance(x, y, z)); } else { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 66c37115..88c9f8f0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -64,7 +64,15 @@ public enum MinecraftVersionsType V1_10(true, "v1_10_R1"), //$NON-NLS-1$ /** V1.10 R1 */ - V1_10_R1(true, "v1_10_R1"); //$NON-NLS-1$ + V1_10_R1(true, "v1_10_R1"), //$NON-NLS-1$ + + /** any 1.11 version. */ + V1_11(true, "v1_11_R1"), //$NON-NLS-1$ + + /** V1.11 R1 */ + V1_11_R1(true, "v1_11_R1"), //$NON-NLS-1$ + + ; /** * {@code true} if this version is still supported. @@ -113,6 +121,8 @@ public boolean isEqual(final MinecraftVersionsType type) { switch (this) { + case V1_11: + return type == V1_11 || type == V1_11_R1; case V1_10: return type == V1_10 || type == V1_10_R1; case V1_7: @@ -125,6 +135,8 @@ public boolean isEqual(final MinecraftVersionsType type) default: switch (type) { + case V1_11: + return this == V1_11 || this == V1_11_R1; case V1_10: return this == V1_10 || this == V1_10_R1; case V1_7: diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 8e90d8eb..445cff4e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -510,6 +510,10 @@ private static MinecraftVersionsType getServerVersion() { return MinecraftVersionsType.V1_10_R1; } + if (v.startsWith("v1_11_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_11_R1; + } } catch (@SuppressWarnings("unused") Exception ex) { diff --git a/LIBv2/nms/api/.classpath b/LIBv2/nms/api/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/api/.classpath +++ b/LIBv2/nms/api/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/LIBv2/nms/v1_10_r1/.classpath b/LIBv2/nms/v1_10_r1/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/v1_10_r1/.classpath +++ b/LIBv2/nms/v1_10_r1/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/LIBv2/nms/v1_8_r1/.classpath b/LIBv2/nms/v1_8_r1/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/v1_8_r1/.classpath +++ b/LIBv2/nms/v1_8_r1/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/LIBv2/nms/v1_8_r2/.classpath b/LIBv2/nms/v1_8_r2/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/v1_8_r2/.classpath +++ b/LIBv2/nms/v1_8_r2/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/LIBv2/nms/v1_8_r3/.classpath b/LIBv2/nms/v1_8_r3/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/v1_8_r3/.classpath +++ b/LIBv2/nms/v1_8_r3/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/LIBv2/nms/v1_9_r1/.classpath b/LIBv2/nms/v1_9_r1/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/v1_9_r1/.classpath +++ b/LIBv2/nms/v1_9_r1/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/LIBv2/nms/v1_9_r2/.classpath b/LIBv2/nms/v1_9_r2/.classpath index af1430be..1945bc02 100644 --- a/LIBv2/nms/v1_9_r2/.classpath +++ b/LIBv2/nms/v1_9_r2/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="src" output="target/classes" path="src/main/java"> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java index a4af5319..8850584a 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java @@ -1,6 +1,6 @@ package com.comze_instancelabs.minigamesapi.spigottest; -import net.minecraft.server.v1_10_R1.Enchantments; +import net.minecraft.server.v1_11_R1.Enchantments; /** * taken from spigot test sources diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java index ac22884d..bc079c4d 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java @@ -15,9 +15,11 @@ package com.comze_instancelabs.minigamesapi.spigottest; -import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftInventoryPlayer; +import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftInventoryPlayer; import org.bukkit.inventory.InventoryHolder; +import net.minecraft.server.v1_11_R1.PlayerInventory; + /** * Helper class for player inventories. * @@ -31,7 +33,7 @@ public class DummyPlayerInventory extends CraftInventoryPlayer */ public DummyPlayerInventory() { - super(new net.minecraft.server.v1_10_R1.PlayerInventory(null){ + super(new PlayerInventory(null){ @Override public InventoryHolder getOwner() diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java index 1a254066..f494e634 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -15,7 +15,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.UUID; import java.util.logging.Logger; @@ -25,13 +24,13 @@ import org.bukkit.World.Environment; import org.bukkit.WorldType; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.craftbukkit.v1_10_R1.CraftServer; -import org.bukkit.craftbukkit.v1_10_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_10_R1.inventory.CraftItemFactory; -import org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftScheduler; -import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboard; -import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboardManager; -import org.bukkit.craftbukkit.v1_10_R1.util.Versioning; +import org.bukkit.craftbukkit.v1_11_R1.CraftServer; +import org.bukkit.craftbukkit.v1_11_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftItemFactory; +import org.bukkit.craftbukkit.v1_11_R1.scheduler.CraftScheduler; +import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboard; +import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboardManager; +import org.bukkit.craftbukkit.v1_11_R1.util.Versioning; import org.bukkit.entity.Player; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; @@ -40,23 +39,22 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import net.minecraft.server.v1_10_R1.Chunk; -import net.minecraft.server.v1_10_R1.DedicatedPlayerList; -import net.minecraft.server.v1_10_R1.DefinedStructureManager; -import net.minecraft.server.v1_10_R1.EnumGamemode; -import net.minecraft.server.v1_10_R1.ExceptionWorldConflict; -import net.minecraft.server.v1_10_R1.IChunkLoader; -import net.minecraft.server.v1_10_R1.IDataManager; -import net.minecraft.server.v1_10_R1.IPlayerFileData; -import net.minecraft.server.v1_10_R1.MethodProfiler; -import net.minecraft.server.v1_10_R1.MinecraftServer; -import net.minecraft.server.v1_10_R1.NBTTagCompound; -import net.minecraft.server.v1_10_R1.PlayerChunkMap; -import net.minecraft.server.v1_10_R1.PlayerList; -import net.minecraft.server.v1_10_R1.WorldData; -import net.minecraft.server.v1_10_R1.WorldProvider; -import net.minecraft.server.v1_10_R1.WorldServer; -import net.minecraft.server.v1_10_R1.WorldSettings; +import net.minecraft.server.v1_11_R1.Chunk; +import net.minecraft.server.v1_11_R1.DedicatedPlayerList; +import net.minecraft.server.v1_11_R1.DefinedStructureManager; +import net.minecraft.server.v1_11_R1.EnumGamemode; +import net.minecraft.server.v1_11_R1.ExceptionWorldConflict; +import net.minecraft.server.v1_11_R1.IChunkLoader; +import net.minecraft.server.v1_11_R1.IDataManager; +import net.minecraft.server.v1_11_R1.IPlayerFileData; +import net.minecraft.server.v1_11_R1.MethodProfiler; +import net.minecraft.server.v1_11_R1.MinecraftServer; +import net.minecraft.server.v1_11_R1.NBTTagCompound; +import net.minecraft.server.v1_11_R1.PlayerChunkMap; +import net.minecraft.server.v1_11_R1.WorldData; +import net.minecraft.server.v1_11_R1.WorldProvider; +import net.minecraft.server.v1_11_R1.WorldServer; +import net.minecraft.server.v1_11_R1.WorldSettings; /** * originally taken from spigot test sources @@ -494,27 +492,27 @@ public World initWorld(String name, WorldType type, long seed) final UUID uuid = UUID.randomUUID(); final ChunkGenerator generator = null; int dimension = this.worlds.size() + 1; - net.minecraft.server.v1_10_R1.WorldType mctype = null; + net.minecraft.server.v1_11_R1.WorldType mctype = null; switch (type) { case AMPLIFIED: - mctype = net.minecraft.server.v1_10_R1.WorldType.AMPLIFIED; + mctype = net.minecraft.server.v1_11_R1.WorldType.AMPLIFIED; break; case CUSTOMIZED: - mctype = net.minecraft.server.v1_10_R1.WorldType.CUSTOMIZED; + mctype = net.minecraft.server.v1_11_R1.WorldType.CUSTOMIZED; break; default: case FLAT: - mctype = net.minecraft.server.v1_10_R1.WorldType.FLAT; + mctype = net.minecraft.server.v1_11_R1.WorldType.FLAT; break; case LARGE_BIOMES: - mctype = net.minecraft.server.v1_10_R1.WorldType.LARGE_BIOMES; + mctype = net.minecraft.server.v1_11_R1.WorldType.LARGE_BIOMES; break; case NORMAL: - mctype = net.minecraft.server.v1_10_R1.WorldType.NORMAL; + mctype = net.minecraft.server.v1_11_R1.WorldType.NORMAL; break; case VERSION_1_1: - mctype = net.minecraft.server.v1_10_R1.WorldType.NORMAL_1_1; + mctype = net.minecraft.server.v1_11_R1.WorldType.NORMAL_1_1; break; } @@ -543,21 +541,21 @@ public IChunkLoader createChunkLoader(WorldProvider arg0) { return new IChunkLoader(){ @Override - public Chunk a(net.minecraft.server.v1_10_R1.World arg0, int arg1, int arg2) throws IOException + public Chunk a(net.minecraft.server.v1_11_R1.World arg0, int arg1, int arg2) throws IOException { final Map<Integer, Chunk> map = chunks.get(arg1); return map == null ? null : map.get(arg2); } @Override - public void a(net.minecraft.server.v1_10_R1.World arg0, Chunk arg1) throws IOException, ExceptionWorldConflict + public void a(net.minecraft.server.v1_11_R1.World arg0, Chunk arg1) throws IOException, ExceptionWorldConflict { final Map<Integer, Chunk> map = chunks.computeIfAbsent(arg1.locX, (x) -> new HashMap<>()); map.put(arg1.locZ, arg1); } @Override - public void b(net.minecraft.server.v1_10_R1.World arg0, Chunk arg1) throws IOException + public void b(net.minecraft.server.v1_11_R1.World arg0, Chunk arg1) throws IOException { // ignore } @@ -573,6 +571,13 @@ public void b() { // ignore } + + @Override + public boolean a(int paramInt1, int paramInt2) + { + // TODO Auto-generated method stub + return false; + } }; } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java index c8829681..17bfa43d 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java @@ -32,6 +32,7 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.Sound; +import org.bukkit.SoundCategory; import org.bukkit.TreeType; import org.bukkit.World; import org.bukkit.WorldBorder; @@ -1385,5 +1386,25 @@ public <T> void spawnParticle(Particle paramParticle, double paramDouble1, doubl // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see org.bukkit.World#playSound(org.bukkit.Location, org.bukkit.Sound, org.bukkit.SoundCategory, float, float) + */ + @Override + public void playSound(Location paramLocation, Sound paramSound, SoundCategory paramSoundCategory, float paramFloat1, float paramFloat2) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.bukkit.World#playSound(org.bukkit.Location, java.lang.String, org.bukkit.SoundCategory, float, float) + */ + @Override + public void playSound(Location paramLocation, String paramString, SoundCategory paramSoundCategory, float paramFloat1, float paramFloat2) + { + // TODO Auto-generated method stub + + } } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java index 75573c8e..cce329b4 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -37,9 +37,9 @@ import org.bukkit.WorldType; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.craftbukkit.v1_10_R1.CraftServer; -import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboard; -import org.bukkit.craftbukkit.v1_10_R1.scoreboard.CraftScoreboardManager; +import org.bukkit.craftbukkit.v1_11_R1.CraftServer; +import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboard; +import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboardManager; import org.bukkit.entity.Player; import org.bukkit.inventory.PlayerInventory; import org.bukkit.plugin.PluginDescriptionFile; @@ -59,7 +59,7 @@ import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import net.minecraft.server.v1_10_R1.DispenserRegistry; +import net.minecraft.server.v1_11_R1.DispenserRegistry; /** * Test tooling for minigames API. diff --git a/pom.xml b/pom.xml index b28ab1dd..fbccbebd 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ <junit.version>4.12</junit.version> <minigames.releaseversion>1.14.14</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> - <spigot.version>1.10-R0.1-SNAPSHOT</spigot.version> + <spigot.version>1.11-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> </properties> <description>Rich Minigames API and base of all of my new minigames.</description> From 1fbf64d00acfae0809f4e3e22a82f1dd8af8978e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Dec 2016 16:08:45 +0100 Subject: [PATCH 151/266] added changelog --- changelog.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/changelog.md b/changelog.md index b68b06bb..26613b6e 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,15 @@ # Changelog +#### 1.14.14 + +###### All + +* support for Minecraft 1.11 + +###### SeaBattle + +* Added config option "die\_below\_bedrock\_level" (fixes arenas where the spawns are over 4 block above the battle sea) + #### 1.14.12/1.14.13 ###### All From 784f0778dfecb9056107eab12648a2768a91a5e3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 19 Dec 2016 08:38:12 +0100 Subject: [PATCH 152/266] improved build info --- API/maxMcVersion.txt | 1 + API/minMcVersion.txt | 1 + 2 files changed, 2 insertions(+) create mode 100644 API/maxMcVersion.txt create mode 100644 API/minMcVersion.txt diff --git a/API/maxMcVersion.txt b/API/maxMcVersion.txt new file mode 100644 index 00000000..b8162070 --- /dev/null +++ b/API/maxMcVersion.txt @@ -0,0 +1 @@ +1.11 \ No newline at end of file diff --git a/API/minMcVersion.txt b/API/minMcVersion.txt new file mode 100644 index 00000000..46843749 --- /dev/null +++ b/API/minMcVersion.txt @@ -0,0 +1 @@ +1.8 \ No newline at end of file From a88d70751bfda1febff3de44434e6ffda6632bb3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 31 Dec 2016 11:13:13 +0100 Subject: [PATCH 153/266] improved spectator support --- .../minigamesapi/Arena.java | 40 +++++ .../minigamesapi/ArenaListener.java | 93 +++++++++--- .../minigamesapi/CommandStrings.java | 4 +- .../minigamesapi/MinigamesAPI.java | 143 +++++++++++++++--- .../minigamesapi/PluginInstance.java | 4 + .../minigamesapi/commands/CommandHandler.java | 22 +-- .../minigamesapi/config/MessagesConfig.java | 7 + .../minigamesapi/util/Util.java | 136 ++++++++++++++++- changelog.md | 5 +- 9 files changed, 400 insertions(+), 54 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 8c42777c..a13badf5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -143,6 +143,11 @@ public class Arena */ private Location signloc; + /** + * The spectator join sign location. + */ + private Location specsignloc; + /** * Max amount of players for the game. */ @@ -492,6 +497,27 @@ public void setSignLocation(final Location l) this.signloc = l; } + /** + * Returns the spectator join sign location. + * + * @return spectator join sign location; {@code null} if there is no spectator join sign. + */ + public Location getSpecSignLocation() + { + return this.specsignloc; + } + + /** + * Sets the join sign location. + * + * @param l + * new location. + */ + public void setSpecSignLocation(final Location l) + { + this.specsignloc = l; + } + /** * Returns the spawns of this arena. * @@ -2334,4 +2360,18 @@ public void setLastDamager(final String targetPlayer, final String damager) this.lastdamager.put(targetPlayer, damager); } + public void joinSpectate(Player p) + { + final String playername = p.getName(); + this.addPlayer(playername); // TODO seems to be a bad hack. Influences the players list; do we really need this? Instead fill a list of spectators. + final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); + ap.setNoReward(true); + ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); + ap.setOriginalGamemode(p.getGameMode()); + ap.setOriginalXplvl(p.getLevel()); + pli.global_players.put(playername, this); + pli.global_lost.put(playername, this); + this.spectateGame(playername); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 22be5ecd..73ca7998 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1497,6 +1497,7 @@ public void onSignUse(final PlayerInteractEvent event) // people will most likely do strange formats, so let's just try // to get signs by location rather than locally by reading the sign final Arena arena = Util.getArenaBySignLocation(this.plugin, event.getClickedBlock().getLocation()); + final Arena specarena = Util.getArenaBySpecSignLocation(this.plugin, event.getClickedBlock().getLocation()); if (arena != null) { final Player p = event.getPlayer(); @@ -1510,6 +1511,14 @@ public void onSignUse(final PlayerInteractEvent event) Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", arena.getInternalName())); } } + else if (specarena != null) + { + if (specarena.getArenaState() == ArenaState.INGAME) + { + final Player p = event.getPlayer(); + specarena.joinSpectate(p); + } + } else { // try getting random sign @@ -1760,30 +1769,68 @@ else if (arena.equalsIgnoreCase("leave")) } else { - if (Validator.isArenaValid(this.plugin, arena)) + final String mode = event.getLine(2).equalsIgnoreCase("") ? "join" : "spec"; + switch (mode) { - this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.world", p.getWorld().getName()); - this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.x", event.getBlock().getLocation().getBlockX()); - this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.y", event.getBlock().getLocation().getBlockY()); - this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.z", event.getBlock().getLocation().getBlockZ()); - this.pli.getArenasConfig().saveConfig(); - Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("<component>", "arena sign")); - } - else - { - Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", arena)); - event.getBlock().breakNaturally(); - } - - final Arena a = this.pli.getArenaByName(arena); - if (a != null) - { - a.setSignLocation(event.getBlock().getLocation()); - Util.updateSign(this.plugin, a, event); - } - else - { - Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_not_initialized); + case "join": + default: + { + if (Validator.isArenaValid(this.plugin, arena)) + { + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".sign.loc.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().saveConfig(); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("<component>", "arena sign")); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", arena)); + event.getBlock().breakNaturally(); + } + + final Arena a = this.pli.getArenaByName(arena); + if (a != null) + { + a.setSignLocation(event.getBlock().getLocation()); + Util.updateSign(this.plugin, a, event); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_not_initialized); + } + } + break; + case "spec": + { + if (Validator.isArenaValid(this.plugin, arena)) + { + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.world", p.getWorld().getName()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.loc.x", event.getBlock().getLocation().getBlockX()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.loc.y", event.getBlock().getLocation().getBlockY()); + this.pli.getArenasConfig().getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.loc.z", event.getBlock().getLocation().getBlockZ()); + this.pli.getArenasConfig().saveConfig(); + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().successfully_set.replaceAll("<component>", "spectator sign")); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", arena)); + event.getBlock().breakNaturally(); + } + + final Arena a = this.pli.getArenaByName(arena); + if (a != null) + { + a.setSignLocation(event.getBlock().getLocation()); + Util.updateSpecSign(this.plugin, a, event); + } + else + { + Util.sendMessage(this.plugin, p, this.pli.getMessagesConfig().arena_not_initialized); + } + } + break; } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java index 35b1228b..4369b288 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/CommandStrings.java @@ -64,9 +64,9 @@ public interface CommandStrings String GAME_SET_LOBBY_BOUNDS = "setlobbybounds"; //$NON-NLS-1$ /** - * Command action: "/minigame <setlobbybounds> ... + * Command action: "/minigame <setspecbounds> ... */ - String GAME_SET_SPEC_BOUNDS = "setlobbybounds"; //$NON-NLS-1$ + String GAME_SET_SPEC_BOUNDS = "setspecbounds"; //$NON-NLS-1$ /** * Command action: "/minigame <savearena> ... diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 445cff4e..1c0ec16f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -38,6 +38,7 @@ import org.bukkit.block.Sign; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -237,6 +238,10 @@ public void onEnable() this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".2", state.getColorCode() + "<count>/<maxcount>"); this.getConfig().addDefault("signs." + state.name().toLowerCase() + ".3", state.getColorCode() + ""); } + this.getConfig().addDefault("signs.spec.0", "&aSPECTATE"); + this.getConfig().addDefault("signs.spec.1", "&a<minigame>"); + this.getConfig().addDefault("signs.spec.2", "&a<arena>"); + this.getConfig().addDefault("signs.spec.3", "&a<count>/<maxcount>"); this.getConfig().options().copyDefaults(true); this.saveConfig(); @@ -1205,6 +1210,7 @@ public void onPluginMessageReceived(final String channel, final Player player, f final String plugin_ = split[0]; final String arena = split[1]; final String playername = split[2]; + final String mode = split.length >=4 ? split[3] : "join"; if (debug) { @@ -1228,9 +1234,21 @@ public void onPluginMessageReceived(final String channel, final Player player, f if (a.getArenaState() != ArenaState.INGAME && a.getArenaState() != ArenaState.RESTARTING && !a.containsPlayer(playername)) { Bukkit.getScheduler().runTaskLater(this, () -> { - if (!a.containsPlayer(playername)) + switch (mode) { - a.joinPlayerLobby(playername); + case "join": + default: + if (!a.containsPlayer(playername)) + { + a.joinPlayerLobby(playername); + } + break; + case "spec": + if (!a.containsPlayer(playername)) + { + final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); + a.joinSpectate(ap.getPlayer()); + } } }, 20L); } @@ -1424,16 +1442,36 @@ public void onBreak(BlockBreakEvent event) { for (String arena_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + ".").getKeys(false)) { - Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); - if (l.distance(event.getBlock().getLocation()) < 1) + final ConfigurationSection section = getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key); + if (section.contains("world")) { - // getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server", null); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key, null); - saveConfig(); - return; + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); + if (l.distance(event.getBlock().getLocation()) < 1) + { + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server", null); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world", null); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc", null); + saveConfig(); + return; + } + } + if (section.contains("specworld")) + { + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specworld")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.z")); + if (l.distance(event.getBlock().getLocation()) < 1) + { + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specserver", null); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specworld", null); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc", null); + saveConfig(); + return; + } } } } @@ -1530,6 +1568,32 @@ public void onSignChange(SignChangeEvent event) } } } + else if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglibspec")) + { + if (event.getPlayer().hasPermission(getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) + { + if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) + { + String mg = event.getLine(1); + String arena = event.getLine(2); + String server = event.getLine(3); + + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specserver", server); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld", p.getWorld().getName()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x", event.getBlock().getLocation().getBlockX()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y", event.getBlock().getLocation().getBlockY()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z", event.getBlock().getLocation().getBlockZ()); + saveConfig(); + + p.sendMessage(ChatColor.GREEN + "Successfully set sign."); + + updateSign(mg, arena, "SPEC", event); + + requestServerSign(mg, arena); + + } + } + } } public void requestServerSign(String mg_key, String arena_key) @@ -1586,6 +1650,26 @@ private Sign getSignFromArena(String mg, String arena) { return null; } + private Sign getSpecSignFromArena(String mg, String arena) { + if (!getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld")) { + return null; + } + Location b_ = new Location(Bukkit.getServer().getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld")), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z")); + if (b_ != null) { + if (b_.getWorld() != null) { + if (b_.getBlock().getState() != null) { + BlockState bs = b_.getBlock().getState(); + Sign s_ = null; + if (bs instanceof Sign) { + s_ = (Sign) bs; + } + return s_; + } + } + } + return null; + } + public void updateSign(String mg, String arenaname, String arenastate, int count, int maxcount) { Sign s = getSignFromArena(mg, arenaname); if (s != null) { @@ -1594,6 +1678,16 @@ public void updateSign(String mg, String arenaname, String arenastate, int count s.setLine(1, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); s.setLine(2, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); s.setLine(3, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.getBlock().getChunk().load(); + s.update(); + }s = getSpecSignFromArena(mg, arenaname); + if (s != null) { + s.getBlock().getChunk().load(); + s.setLine(0, Signs.format(getConfig().getString("signs.spec.0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.setLine(1, Signs.format(getConfig().getString("signs.spec.1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.setLine(2, Signs.format(getConfig().getString("signs.spec.2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.setLine(3, Signs.format(getConfig().getString("signs.spec.3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); + s.getBlock().getChunk().load(); s.update(); } } @@ -1688,13 +1782,28 @@ public String getInfoBySignLocation(Location sign) { for (String arena_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + ".").getKeys(false)) { - Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); - if (l.distance(sign) < 1) + final ConfigurationSection section = getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key); + if (section.contains("world")) + { + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); + if (l.distance(sign) < 1) + { + return mg_key + ":" + arena_key + ":join"; + } + } + if (section.contains("specworld")) { - return mg_key + ":" + arena_key; + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specworld")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.z")); + if (l.distance(sign) < 1) + { + return mg_key + ":" + arena_key + ":spec"; + } } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java index 39a1c6ab..a69c015e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java @@ -416,6 +416,10 @@ public void reloadVariables() this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".1"), this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".2"), this.messagesconfig.getConfig().getString("signs." + state.toLowerCase() + ".3")))); } + this.cached_sign_states.put("spec", + new ArrayList<>(Arrays.asList(this.messagesconfig.getConfig().getString("signs.spec.0"), + this.messagesconfig.getConfig().getString("signs.spec.1"), this.messagesconfig.getConfig().getString("signs.spec.2"), + this.messagesconfig.getConfig().getString("signs.spec.3")))); } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index b9be4b6e..d09a6a5d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -1078,22 +1078,24 @@ public boolean spectate(final PluginInstance pli, final CommandSender sender, fi { if (!temp.containsPlayer(playername)) { - temp.addPlayer(playername); // TODO seems to be a bad hack. Influences the players list; do we really need this? Instead fill a list of spectators. - final ArenaPlayer ap = ArenaPlayer.getPlayerInstance(playername); - ap.setNoReward(true); - ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); - ap.setOriginalGamemode(p.getGameMode()); - ap.setOriginalXplvl(p.getLevel()); - pli.global_players.put(playername, temp); - pli.global_lost.put(playername, temp); - temp.spectateGame(playername); + if (!sender.hasPermission(uber_permission + ".spectate")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + } + else + { + temp.joinSpectate(p); + } } else { sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); } } - // TODO else error + else + { + sender.sendMessage(pli.getMessagesConfig().no_game_started.replaceAll("<arena>", args[1])); + } } else { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index c460cbcf..46c23d91 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -53,6 +53,10 @@ public void init() this.getConfig().addDefault("signs." + state.toLowerCase() + ".2", color + "<count>/<maxcount>"); this.getConfig().addDefault("signs." + state.toLowerCase() + ".3", color + "[]"); } + this.getConfig().addDefault("signs.spec.0", "&cSPECTATE"); + this.getConfig().addDefault("signs.spec.1", "&c<arena>"); + this.getConfig().addDefault("signs.spec.2", "<count>/<maxcount>"); + this.getConfig().addDefault("signs.spec.3", "[]"); // Arcade sign (I think that one is unused) this.getConfig().addDefault("signs.arcade.0", "[]"); @@ -134,6 +138,7 @@ public void init() } this.getConfig().addDefault("messages.you_got_the_achievement", this.you_got_the_achievement); this.getConfig().addDefault("messages.game_started", this.game_started); + this.getConfig().addDefault("messages.no_game_started", this.no_game_started); this.getConfig().addDefault("messages.author_of_the_map", this.author_of_the_map); this.getConfig().addDefault("messages.description_of_the_map", this.description_of_the_map); this.getConfig().addDefault("messages.not_enough_money", this.not_enough_money); @@ -214,6 +219,7 @@ public void init() this.powerup_spawned = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.powerup_spawned")); this.you_got_the_achievement = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_got_the_achievement")); this.game_started = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.game_started")); + this.no_game_started = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.no_game_started")); this.author_of_the_map = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.author_of_the_map")); this.description_of_the_map = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.description_of_the_map")); this.not_enough_money = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.not_enough_money")); @@ -294,6 +300,7 @@ public void init() public String powerup_spawned = "&2A Powerup spawned!"; public String you_got_the_achievement = "&3You got the achievement &b<achievement>&3!"; public String game_started = "&2The game has started!"; + public String no_game_started = "&cThere is no started game!"; public String author_of_the_map = "&3You are playing on the map &b<arena> &3by &b<author>&3!"; public String description_of_the_map = "<description>"; public String not_enough_money = "&cYou don't have enough money."; diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index fbc9607f..4be7d264 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -405,6 +405,35 @@ public static Sign getSignFromArena(final JavaPlugin plugin, final String arena) return null; } + public static Sign getSpecSignFromArena(final JavaPlugin plugin, final String arena) + { + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + if (!pli.getArenasConfig().getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.world")) + { + return null; + } + final Location b_ = new Location(Bukkit.getServer().getWorld(pli.getArenasConfig().getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.world")), + pli.getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.loc.x"), pli.getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.loc.y"), + pli.getArenasConfig().getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + arena + ".specsign.loc.z")); + if (b_ != null) + { + if (b_.getWorld() != null) + { + if (b_.getBlock().getState() != null) + { + final BlockState bs = b_.getBlock().getState(); + Sign s_ = null; + if (bs instanceof Sign) + { + s_ = (Sign) bs; + } + return s_; + } + } + } + return null; + } + public static Location getSignLocationFromArena(final JavaPlugin plugin, final String arena) { final Sign s = Util.getSignFromArena(plugin, arena); @@ -436,6 +465,24 @@ public static Arena getArenaBySignLocation(final JavaPlugin plugin, final Locati return null; } + public static Arena getArenaBySpecSignLocation(final JavaPlugin plugin, final Location sign) + { + for (final Arena arena : MinigamesAPI.getAPI().getPluginInstance(plugin).getArenas()) + { + if (sign != null && arena.getSpecSignLocation() != null) + { + if (sign.getWorld().getName().equalsIgnoreCase(arena.getSpecSignLocation().getWorld().getName())) + { + if (sign.distance(arena.getSpecSignLocation()) < 1) + { + return arena; + } + } + } + } + return null; + } + public static void updateSign(final JavaPlugin plugin, final Arena arena) { if (arena == null) @@ -443,7 +490,7 @@ public static void updateSign(final JavaPlugin plugin, final Arena arena) return; } - final Sign s = Util.getSignFromArena(plugin, arena.getInternalName()); + Sign s = Util.getSignFromArena(plugin, arena.getInternalName()); if (s != null) { ArenaLogger.debug("Updating sign for arena " + arena.getInternalName() + " in " + plugin.getName()); @@ -510,6 +557,59 @@ else if (arena.getArenaState() == ArenaState.RESTARTING) { MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed sending bungee sign update: ", e); } + + s = Util.getSpecSignFromArena(plugin, arena.getInternalName()); + if (s != null) + { + ArenaLogger.debug("Updating spectator sign for arena " + arena.getInternalName() + " in " + plugin.getName()); + final int count = arena.getAllPlayers().size(); + final int maxcount = arena.getMaxPlayers(); + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + final String state = "spec"; + if (pli.cached_sign_states.containsKey(state)) + { + s.setLine(0, + Signs.replaceSquares(pli.cached_sign_states.get(state).get(0).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); + s.setLine(1, + Signs.replaceSquares(pli.cached_sign_states.get(state).get(1).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); + s.setLine(2, + Signs.replaceSquares(pli.cached_sign_states.get(state).get(2).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); + s.setLine(3, + Signs.replaceSquares(pli.cached_sign_states.get(state).get(3).replaceAll("&", "§").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) + .replace("<arena>", arena.getDisplayName()))); + } + else + { + s.setLine(0, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + s.setLine(1, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + s.setLine(2, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + s.setLine(3, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs." + state + ".3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + } + s.getBlock().getChunk().load(); + s.update(); + } + try + { + if (plugin.isEnabled()) + { + BungeeUtil.sendSignUpdateRequest(plugin, plugin.getName(), arena); + } + } + catch (final Exception e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Failed sending bungee sign update: ", e); + } } public static void updateSign(final JavaPlugin plugin, final Arena arena, final SignChangeEvent event) @@ -547,6 +647,40 @@ else if (arena.getArenaState() == ArenaState.RESTARTING) } } + public static void updateSpecSign(final JavaPlugin plugin, final Arena arena, final SignChangeEvent event) + { + final int count = arena.getAllPlayers().size(); + final int maxcount = arena.getMaxPlayers(); + final PluginInstance pli = MinigamesAPI.getAPI().getPluginInstance(plugin); + event.setLine(0, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs.spec.0").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + event.setLine(1, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs.spec.1").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + event.setLine(2, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs.spec.2").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + event.setLine(3, + Signs.replaceSquares(pli.getMessagesConfig().getConfig().getString("signs.spec.3").replaceAll("&", "§").replace("<count>", Integer.toString(count)) + .replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arena.getDisplayName()))); + if (pli.color_background_wool_of_signs) + { + final org.bukkit.material.Sign s_ = (org.bukkit.material.Sign) event.getBlock().getState().getData(); + final Block attachedBlock = event.getBlock().getRelative(s_.getAttachedFace()); + byte data = (byte) 5; + if (arena.getArenaState() == ArenaState.INGAME) + { + data = (byte) 14; + } + else if (arena.getArenaState() == ArenaState.RESTARTING) + { + data = (byte) 4; + } + attachedBlock.setData(data); + } + } + // used for random and leave sign public static void updateSign(final JavaPlugin plugin, final SignChangeEvent event, final String arenastate) { diff --git a/changelog.md b/changelog.md index 26613b6e..1a132682 100644 --- a/changelog.md +++ b/changelog.md @@ -4,7 +4,10 @@ ###### All -* support for Minecraft 1.11 +* support for Minecraft 1.11 and 1.11.2 +* incompatible change: Players command "<game> spectate <arena>" is now secured by permissions (https://github.com/MysticCity/MinigamesAPI/wiki/Admin-Spectating) +* bugfix by setting spectator bounds: (https://github.com/MysticCity/MinigamesAPI/issues/166) +* improved spectator support (https://github.com/MysticCity/MinigamesAPI/wiki/Admin-Spectating) ###### SeaBattle From 7eefc972ae20079c5ab90ac4e13191403ea45c2f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 31 Dec 2016 13:23:55 +0100 Subject: [PATCH 154/266] Scoreboard fixes --- .../minigamesapi/util/ArenaLobbyScoreboard.java | 6 +++++- .../minigamesapi/util/ArenaScoreboard.java | 8 ++++++-- changelog.md | 6 ++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java index d3b776f6..d71c59e9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java @@ -89,7 +89,11 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) ArenaLobbyScoreboard.this.aobjective.put(playername, ArenaLobbyScoreboard.this.ascore.get(playername).registerNewObjective(playername, "dummy")); ArenaLobbyScoreboard.this.aobjective.get(playername).setDisplaySlot(DisplaySlot.SIDEBAR); ArenaLobbyScoreboard.this.aobjective.get(playername) - .setDisplayName(ArenaLobbyScoreboard.this.pli.getMessagesConfig().scoreboard_lobby_title.replaceAll("<arena>", arena.getInternalName())); + .setDisplayName(ArenaLobbyScoreboard.this.pli.getMessagesConfig().scoreboard_lobby_title.replaceAll("<arena>", arena.getDisplayName())); + } + else + { + ArenaLobbyScoreboard.this.aobjective.get(playername).setDisplayName(ArenaLobbyScoreboard.this.pli.getMessagesConfig().scoreboard_lobby_title.replaceAll("<arena>", arena.getDisplayName())); } try diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java index cfa82605..c90157fb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java @@ -103,7 +103,7 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) ArenaScoreboard.this.aobjective.put(arena.getInternalName(), ArenaScoreboard.this.ascore.get(arena.getInternalName()).registerNewObjective(arena.getInternalName(), "dummy")); ArenaScoreboard.this.aobjective.get(arena.getInternalName()).setDisplaySlot(DisplaySlot.SIDEBAR); ArenaScoreboard.this.aobjective.get(arena.getInternalName()) - .setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getInternalName())); + .setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getDisplayName())); } } else @@ -116,7 +116,11 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) { ArenaScoreboard.this.aobjective.put(playername, ArenaScoreboard.this.ascore.get(playername).registerNewObjective(playername, "dummy")); ArenaScoreboard.this.aobjective.get(playername).setDisplaySlot(DisplaySlot.SIDEBAR); - ArenaScoreboard.this.aobjective.get(playername).setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getInternalName())); + ArenaScoreboard.this.aobjective.get(playername).setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getDisplayName())); + } + else + { + ArenaScoreboard.this.aobjective.get(playername).setDisplayName(ArenaScoreboard.this.pli.getMessagesConfig().scoreboard_title.replaceAll("<arena>", arena.getDisplayName())); } } diff --git a/changelog.md b/changelog.md index 1a132682..93de8f8a 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,12 @@ * incompatible change: Players command "<game> spectate <arena>" is now secured by permissions (https://github.com/MysticCity/MinigamesAPI/wiki/Admin-Spectating) * bugfix by setting spectator bounds: (https://github.com/MysticCity/MinigamesAPI/issues/166) * improved spectator support (https://github.com/MysticCity/MinigamesAPI/wiki/Admin-Spectating) +* Scoreboards now use display names (https://github.com/MysticCity/MinigamesAPI/issues/178) +* Scoreboards display correct names on multiple arenas of the same game (https://github.com/MysticCity/MinigamesAPI/issues/178) + +###### HorseRacingPlus + +* bugfix for 1.11 support (https://github.com/MysticCity/MinigamesAPI/issues/177) ###### SeaBattle From f7c7c9e246ee0e3ab21e7a882566a9066a6abdb8 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 31 Dec 2016 14:28:27 +0100 Subject: [PATCH 155/266] fixed bedwars (non-existing classes etc.) --- .../java/com/comze_instancelabs/minigamesapi/Classes.java | 5 +++++ changelog.md | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java index 0d1f0c5e..6102f63a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Classes.java @@ -139,6 +139,11 @@ public void getClass(final String player) return; } final AClass c = this.pli.getPClasses().get(player); + if (c == null) + { + ArenaLogger.debug(player + " didn't select any kit and the auto_add_default_kit option might be turned off, thus he won't get any starting items."); + return; + } final Player p = Bukkit.getServer().getPlayer(player); Util.clearInv(p); final ArrayList<ItemStack> items = new ArrayList<>(Arrays.asList(c.getItems())); diff --git a/changelog.md b/changelog.md index 93de8f8a..24bd02f4 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,11 @@ * Scoreboards now use display names (https://github.com/MysticCity/MinigamesAPI/issues/178) * Scoreboards display correct names on multiple arenas of the same game (https://github.com/MysticCity/MinigamesAPI/issues/178) +###### BedWars + +* fixed minor NPE for selecting classes (bedwars has no classes) +* support for 1.11 (https://github.com/MysticCity/MinigamesAPI/issues/182) + ###### HorseRacingPlus * bugfix for 1.11 support (https://github.com/MysticCity/MinigamesAPI/issues/177) From 984446f2a0aae3efc698552c3b696d8a65c09b75 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 31 Dec 2016 15:22:41 +0100 Subject: [PATCH 156/266] clearing up items on startup/stop/lobby-start --- .../minigamesapi/Arena.java | 46 +++++++++++++++++++ .../minigamesapi/util/Util.java | 32 +++++++++++++ changelog.md | 2 + 3 files changed, 80 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index a13badf5..d1b51240 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -1558,6 +1558,33 @@ public void startLobby() this.startLobby(true); } + /** + * Checks if the items should be removed from lobby bounds during lobby startup + * @return clears items during arena startup + */ + protected boolean removeItemsOnLobbyStartup() + { + return true; + } + + /** + * Checks if the items should be removed from arena bounds during game startup + * @return clears items during arena startup + */ + protected boolean removeItemsOnGameStartup() + { + return true; + } + + /** + * Checks if the items should be removed from arena bounds during game stop + * @return clears items during arena stop + */ + protected boolean removeItemsOnGameStop() + { + return true; + } + /** * Starts the lobby count down with given amount of seconds. * @@ -1570,6 +1597,12 @@ public void startLobby(final boolean countdown) { return; } + if (this.removeItemsOnLobbyStartup()) + { + Util.clearDrops(this.getLobbyBoundaries()); + Util.clearDrops(this.getSpecBoundaries()); + Util.clearDrops(this.getBoundaries()); + } this.setArenaState(ArenaState.STARTING); Util.updateSign(this.plugin, this); this.currentlobbycount = this.pli.getLobbyCountdown(); @@ -1655,6 +1688,11 @@ public void start(final boolean tp) { // silently ignore } + if (this.removeItemsOnGameStartup()) + { + Util.clearDrops(this.getSpecBoundaries()); + Util.clearDrops(this.getBoundaries()); + } this.currentingamecount = this.pli.getIngameCountdown(); if (tp) { @@ -1959,6 +1997,9 @@ protected void stop() try { + // TODO: Why setting the drops to air? + // the list contains the drops of dying players + // but why the list is not cleared at end? for (final ItemStack item : this.global_drops) { if (item != null) @@ -2077,6 +2118,11 @@ protected void stop() Bukkit.getScheduler().runTaskLater(this.plugin, () -> a.nextArenaOnMapRotation(temp), 35L); } } + if (this.removeItemsOnGameStop()) + { + Util.clearDrops(this.getSpecBoundaries()); + Util.clearDrops(this.getBoundaries()); + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 4be7d264..b34de114 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -1277,4 +1277,36 @@ public static void restoreInventory(final Player player) Util.armourContents.remove(player.getName()); Util.inventoryContents.remove(player.getName()); } + + /** + * @param boundaries + */ + public static void clearDrops(Cuboid boundaries) + { + if (boundaries != null && boundaries.getLowLoc() != null && boundaries.getHighLoc() != null) + { + // iterate through nearby entities + final Chunk lowChunk = boundaries.getLowLoc().getChunk(); + final Chunk highChunk = boundaries.getHighLoc().getChunk(); + final World world = boundaries.getWorld(); + for (int x = lowChunk.getX(); x <= highChunk.getX(); x++) + { + for (int z = lowChunk.getZ(); z <= highChunk.getZ(); z++) + { + final Chunk chunk = world.getChunkAt(x, z); + final Entity[] entities = chunk.getEntities(); + if (entities != null) + { + for (final Entity entity : entities) + { + if (entity instanceof Item && boundaries.containsLoc(entity.getLocation())) + { + entity.remove(); + } + } + } + } + } + } + } } diff --git a/changelog.md b/changelog.md index 24bd02f4..c81c0e6e 100644 --- a/changelog.md +++ b/changelog.md @@ -10,11 +10,13 @@ * improved spectator support (https://github.com/MysticCity/MinigamesAPI/wiki/Admin-Spectating) * Scoreboards now use display names (https://github.com/MysticCity/MinigamesAPI/issues/178) * Scoreboards display correct names on multiple arenas of the same game (https://github.com/MysticCity/MinigamesAPI/issues/178) +* Lib now clears up any item on startup/stop, maybe remaining from crashing servers/ games or player interactions ###### BedWars * fixed minor NPE for selecting classes (bedwars has no classes) * support for 1.11 (https://github.com/MysticCity/MinigamesAPI/issues/182) +* fixed small memory leak ###### HorseRacingPlus From 2d159b5fd6f6ada8257697941159c848ca1db2f8 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 31 Dec 2016 15:39:11 +0100 Subject: [PATCH 157/266] really destroy all boats at game end --- .../comze_instancelabs/minigamesapi/util/Util.java | 11 ++++++++++- changelog.md | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index b34de114..a71f59fe 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Random; +import java.util.function.Predicate; import java.util.logging.Level; import org.bukkit.Bukkit; @@ -1282,6 +1283,14 @@ public static void restoreInventory(final Player player) * @param boundaries */ public static void clearDrops(Cuboid boundaries) + { + clearEntites(boundaries, e -> e instanceof Item); + } + + /** + * @param boundaries + */ + public static void clearEntites(Cuboid boundaries, Predicate<Entity> predicate) { if (boundaries != null && boundaries.getLowLoc() != null && boundaries.getHighLoc() != null) { @@ -1299,7 +1308,7 @@ public static void clearDrops(Cuboid boundaries) { for (final Entity entity : entities) { - if (entity instanceof Item && boundaries.containsLoc(entity.getLocation())) + if (predicate.test(entity) && boundaries.containsLoc(entity.getLocation())) { entity.remove(); } diff --git a/changelog.md b/changelog.md index c81c0e6e..d1828893 100644 --- a/changelog.md +++ b/changelog.md @@ -25,6 +25,7 @@ ###### SeaBattle * Added config option "die\_below\_bedrock\_level" (fixes arenas where the spawns are over 4 block above the battle sea) +* Really destroys all boats at end (even through disconnects etc.) #### 1.14.12/1.14.13 From afd1b2be08ae2724ecd0900d9940b5edf7c0f853 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 1 Jan 2017 03:15:29 +0100 Subject: [PATCH 158/266] increased mc version --- API/maxMcVersion.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/maxMcVersion.txt b/API/maxMcVersion.txt index b8162070..0c9cb695 100644 --- a/API/maxMcVersion.txt +++ b/API/maxMcVersion.txt @@ -1 +1 @@ -1.11 \ No newline at end of file +1.11.2 \ No newline at end of file From 0df0b0cbc837ad9f52ad6144544a466e354192db Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Thu, 5 Jan 2017 22:09:52 +0100 Subject: [PATCH 159/266] preparing 1.14.14 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/nms/api/pom.xml | 2 +- LIBv2/nms/v1_10_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r2/pom.xml | 2 +- LIBv2/nms/v1_8_r3/pom.xml | 2 +- LIBv2/nms/v1_9_r1/pom.xml | 2 +- LIBv2/nms/v1_9_r2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 9eb588e0..e8783b44 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 1c68bc8a..719f925e 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml index 50654e07..5fd5c07d 100644 --- a/LIBv2/nms/api/pom.xml +++ b/LIBv2/nms/api/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml index e96fca7a..6f69b891 100644 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml index 540881b8..411edf4b 100644 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml index ea97af0e..2b1644ae 100644 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml index b0723ee3..c6f4362b 100644 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml index 40e7a76c..87ab3e64 100644 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml index 2a846f80..ddfc999c 100644 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index e56b9411..31a0b499 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index aa3a7b2e..0ca7e0f2 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index fbccbebd..41bbbf40 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.14-SNAPSHOT</version> + <version>1.14.14</version> <scope>provided</scope> </dependency> <dependency> From 8401a8db4e50338d04c7fe06795e9e9da8b82c3d Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Thu, 5 Jan 2017 22:09:52 +0100 Subject: [PATCH 160/266] switching to 1.14.15 --- API/pom.xml | 4 ++-- APIv2/pom.xml | 2 +- LIBv2/nms/api/pom.xml | 2 +- LIBv2/nms/v1_10_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r1/pom.xml | 2 +- LIBv2/nms/v1_8_r2/pom.xml | 2 +- LIBv2/nms/v1_8_r3/pom.xml | 2 +- LIBv2/nms/v1_9_r1/pom.xml | 2 +- LIBv2/nms/v1_9_r2/pom.xml | 2 +- LIBv2/pom.xml | 2 +- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index e8783b44..8134cb08 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 719f925e..4153640e 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml index 5fd5c07d..b6bfc160 100644 --- a/LIBv2/nms/api/pom.xml +++ b/LIBv2/nms/api/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml index 6f69b891..0cf8bbd9 100644 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ b/LIBv2/nms/v1_10_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml index 411edf4b..10ff4c9d 100644 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ b/LIBv2/nms/v1_8_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml index 2b1644ae..81ea6fb0 100644 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ b/LIBv2/nms/v1_8_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml index c6f4362b..aaddf419 100644 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ b/LIBv2/nms/v1_8_r3/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml index 87ab3e64..8fc0bca0 100644 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ b/LIBv2/nms/v1_9_r1/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml index ddfc999c..11c194d7 100644 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ b/LIBv2/nms/v1_9_r2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 31a0b499..bd16db8b 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -15,7 +15,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 0ca7e0f2..e5b2c6b8 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 41bbbf40..19b29879 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.14</minigames.releaseversion> + <minigames.releaseversion>1.14.15</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.11-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.14</version> + <version>1.14.15-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From 6276fa56ace4410691a9c4bfa129175628270cea Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 6 Jan 2017 18:13:51 +0100 Subject: [PATCH 161/266] fixed bungee sign --- .../com/comze_instancelabs/minigamesapi/MinigamesAPI.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 1c0ec16f..b5f58d9b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -1209,8 +1209,8 @@ public void onPluginMessageReceived(final String channel, final Player player, f final String[] split = playerData.split(":"); //$NON-NLS-1$ final String plugin_ = split[0]; final String arena = split[1]; - final String playername = split[2]; - final String mode = split.length >=4 ? split[3] : "join"; + final String playername = split.length >=4 ? split[3] : split[2]; + final String mode = split.length >=4 ? split[2] : "join"; if (debug) { From 5a83fe5b318bb6d5f093066a0baf9f3459677567 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 6 Jan 2017 18:14:45 +0100 Subject: [PATCH 162/266] fixed bungeecord signs --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index d1828893..3edca11c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +#### 1.14.15 + +###### All + +* fixed bungeecord signs + #### 1.14.14 ###### All From 2bdf3fbf9010bb6f7de314b01fd48de265402414 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 14 Jan 2017 21:13:13 +0100 Subject: [PATCH 163/266] starting migration of v2 to mclib --- APIv2/.classpath | 52 +- APIv2/pom.xml | 143 +- .../mce/minigames/api/CommonErrors.java | 9 +- .../mce/minigames/api/CommonMessages.java | 10 +- .../api/CommonProviderInterface.java | 197 +- .../mce/minigames/api/MglibInterface.java | 88 +- .../mce/minigames/api/MinigameErrorCode.java | 38 - .../mce/minigames/api/MinigameException.java | 115 - .../mce/minigames/api/MinigameInterface.java | 5 +- .../api/MinigamePluginInterface.java | 26 +- .../api/PluginProviderInterface.java | 2 +- .../minigames/api/arena/ArenaInterface.java | 302 +-- .../api/arena/ArenaTypeBuilderInterface.java | 908 ++++--- .../arena/ArenaTypeDeclarationInterface.java | 6 +- .../api/arena/ArenaTypeProvider.java | 178 +- .../mce/minigames/api/arena/ArenasConfig.java | 14 +- .../api/arena/rules/AdminRuleId.java | 34 - .../api/arena/rules/AdminRuleSet.java | 28 - .../minigames/api/arena/rules/ArenaRule.java | 35 - .../api/arena/rules/ArenaRuleId.java | 34 - .../api/arena/rules/ArenaRuleSet.java | 28 - .../api/arena/rules/MatchRuleId.java | 35 - .../api/arena/rules/MatchRuleSet.java | 28 - .../api/arena/rules/MinigameEvent.java | 88 - .../api/arena/rules/PlayerRuleId.java | 35 - .../api/arena/rules/PlayerRuleSet.java | 28 - .../rules/bevents/MinecraftVersionRange.java | 47 - .../MinigameAreaEffectCloudApplyEvent.java | 47 - .../bevents/MinigameAsyncPlayerChatEvent.java | 45 - .../bevents/MinigameBlockBreakEvent.java | 44 - .../rules/bevents/MinigameBlockBurnEvent.java | 43 - .../bevents/MinigameBlockCanBuildEvent.java | 44 - .../bevents/MinigameBlockDamageEvent.java | 46 - .../bevents/MinigameBlockDispenseEvent.java | 45 - .../rules/bevents/MinigameBlockExpEvent.java | 44 - .../bevents/MinigameBlockExplodeEvent.java | 47 - .../rules/bevents/MinigameBlockFadeEvent.java | 44 - .../rules/bevents/MinigameBlockFormEvent.java | 44 - .../bevents/MinigameBlockFromToEvent.java | 44 - .../rules/bevents/MinigameBlockGrowEvent.java | 44 - .../bevents/MinigameBlockIgniteEvent.java | 45 - .../bevents/MinigameBlockMultiPlaceEvent.java | 48 - .../bevents/MinigameBlockPhysicsEvent.java | 43 - .../MinigameBlockPistonExtendEvent.java | 43 - .../MinigameBlockPistonRetractEvent.java | 43 - .../bevents/MinigameBlockPlaceEvent.java | 43 - .../bevents/MinigameBlockRedstoneEvent.java | 43 - .../bevents/MinigameBlockSpreadEvent.java | 43 - .../rules/bevents/MinigameBrewEvent.java | 43 - .../MinigameCauldronLevelChangeEvent.java | 45 - .../rules/bevents/MinigameCraftItemEvent.java | 43 - .../bevents/MinigameCreatureSpawnEvent.java | 43 - .../bevents/MinigameCreeperPowerEvent.java | 43 - .../bevents/MinigameEnchantItemEvent.java | 43 - .../MinigameEnderDragonChangePhaseEvent.java | 45 - .../bevents/MinigameEntityBlockFormEvent.java | 43 - .../bevents/MinigameEntityBreakDoorEvent.java | 43 - .../bevents/MinigameEntityBreedEvent.java | 45 - .../MinigameEntityChangeBlockEvent.java | 43 - .../MinigameEntityCombustByBlockEvent.java | 43 - .../MinigameEntityCombustByEntityEvent.java | 43 - .../bevents/MinigameEntityCombustEvent.java | 43 - .../MinigameEntityCreatePortalEvent.java | 43 - .../MinigameEntityDamageByBlockEvent.java | 43 - .../MinigameEntityDamageByEntityEvent.java | 43 - .../bevents/MinigameEntityDamageEvent.java | 43 - .../bevents/MinigameEntityDeathEvent.java | 43 - .../bevents/MinigameEntityExplodeEvent.java | 43 - .../bevents/MinigameEntityInteractEvent.java | 43 - .../MinigameEntityPortalEnterEvent.java | 43 - .../bevents/MinigameEntityPortalEvent.java | 43 - .../MinigameEntityPortalExitEvent.java | 43 - .../MinigameEntityRegainHealthEvent.java | 43 - .../bevents/MinigameEntityShootBowEvent.java | 43 - .../bevents/MinigameEntitySpawnEvent.java | 43 - .../bevents/MinigameEntityTameEvent.java | 43 - .../bevents/MinigameEntityTargetEvent.java | 43 - ...MinigameEntityTargetLivingEntityEvent.java | 43 - .../bevents/MinigameEntityTeleportEvent.java | 43 - .../MinigameEntityToggleGlideEvent.java | 45 - .../bevents/MinigameEntityUnleashEvent.java | 43 - .../rules/bevents/MinigameExpBottleEvent.java | 43 - .../bevents/MinigameExplosionPrimeEvent.java | 43 - .../bevents/MinigameFireworkExplodeEvent.java | 45 - .../bevents/MinigameFoodLevelChangeEvent.java | 43 - .../bevents/MinigameFurnaceBurnEvent.java | 43 - .../bevents/MinigameFurnaceSmeltEvent.java | 43 - .../MinigameHangingBreakByEntityEvent.java | 43 - .../bevents/MinigameHangingBreakEvent.java | 43 - .../bevents/MinigameHangingPlaceEvent.java | 43 - .../rules/bevents/MinigameHorseJumpEvent.java | 43 - .../bevents/MinigameInventoryClickEvent.java | 43 - .../bevents/MinigameInventoryCloseEvent.java | 43 - .../MinigameInventoryCreativeEvent.java | 43 - .../bevents/MinigameInventoryDragEvent.java | 43 - .../rules/bevents/MinigameInventoryEvent.java | 43 - .../MinigameInventoryInteractEvent.java | 43 - .../MinigameInventoryMoveItemEvent.java | 43 - .../bevents/MinigameInventoryOpenEvent.java | 43 - .../MinigameInventoryPickupItemEvent.java | 43 - .../bevents/MinigameItemDespawnEvent.java | 43 - .../rules/bevents/MinigameItemMergeEvent.java | 45 - .../rules/bevents/MinigameItemSpawnEvent.java | 43 - .../bevents/MinigameLeavesDecayEvent.java | 43 - .../MinigameLingeringPotionSplashEvent.java | 45 - .../rules/bevents/MinigameNotePlayEvent.java | 43 - .../rules/bevents/MinigamePigZapEvent.java | 43 - ...MinigamePlayerAchievementAwardedEvent.java | 43 - .../bevents/MinigamePlayerAnimationEvent.java | 43 - ...nigamePlayerArmorStandManipulateEvent.java | 45 - .../bevents/MinigamePlayerBedEnterEvent.java | 43 - .../bevents/MinigamePlayerBedLeaveEvent.java | 43 - .../MinigamePlayerBucketEmptyEvent.java | 43 - .../MinigamePlayerBucketFillEvent.java | 43 - .../MinigamePlayerChangedMainHandEvent.java | 45 - .../MinigamePlayerChangedWorldEvent.java | 43 - .../bevents/MinigamePlayerChannelEvent.java | 43 - .../bevents/MinigamePlayerChatEvent.java | 43 - .../MinigamePlayerChatTabCompleteEvent.java | 43 - .../MinigamePlayerCommandPreprocessEvent.java | 43 - .../bevents/MinigamePlayerDeathEvent.java | 43 - .../bevents/MinigamePlayerDropItemEvent.java | 43 - .../bevents/MinigamePlayerEditBookEvent.java | 43 - .../bevents/MinigamePlayerEggThrowEvent.java | 43 - .../bevents/MinigamePlayerExpChangeEvent.java | 43 - .../bevents/MinigamePlayerFishEvent.java | 43 - .../MinigamePlayerGameModeChangeEvent.java | 43 - .../MinigamePlayerInteractAtEntityEvent.java | 43 - .../MinigamePlayerInteractEntityEvent.java | 43 - .../bevents/MinigamePlayerInteractEvent.java | 43 - .../bevents/MinigamePlayerInventoryEvent.java | 43 - .../bevents/MinigamePlayerItemBreakEvent.java | 43 - .../MinigamePlayerItemConsumeEvent.java | 43 - .../MinigamePlayerItemDamageEvent.java | 43 - .../bevents/MinigamePlayerItemHeldEvent.java | 43 - .../bevents/MinigamePlayerJoinEvent.java | 43 - .../bevents/MinigamePlayerKickEvent.java | 43 - .../MinigamePlayerLeashEntityEvent.java | 43 - .../MinigamePlayerLevelChangeEvent.java | 43 - .../bevents/MinigamePlayerLoginEvent.java | 43 - .../bevents/MinigamePlayerMoveEvent.java | 43 - .../MinigamePlayerPickupArrowEvent.java | 45 - .../MinigamePlayerPickupItemEvent.java | 43 - .../bevents/MinigamePlayerPortalEvent.java | 43 - .../bevents/MinigamePlayerQuitEvent.java | 43 - .../MinigamePlayerRegisterChannelEvent.java | 43 - ...MinigamePlayerResourcePackStatusEvent.java | 45 - .../bevents/MinigamePlayerRespawnEvent.java | 43 - .../MinigamePlayerShearEntityEvent.java | 43 - .../MinigamePlayerSpawnLocationEvent.java | 43 - ...MinigamePlayerStatisticIncrementEvent.java | 43 - .../MinigamePlayerSwapHandItemsEvent.java | 45 - .../bevents/MinigamePlayerTeleportEvent.java | 43 - .../MinigamePlayerToggleFlightEvent.java | 43 - .../MinigamePlayerToggleSneakEvent.java | 43 - .../MinigamePlayerToggleSprintEvent.java | 43 - .../MinigamePlayerUnregisterChannelEvent.java | 43 - .../bevents/MinigamePlayerVelocityEvent.java | 43 - .../bevents/MinigamePotionSplashEvent.java | 43 - .../bevents/MinigamePrepareAnvilEvent.java | 45 - .../MinigamePrepareItemCraftEvent.java | 43 - .../MinigamePrepareItemEnchantEvent.java | 43 - .../bevents/MinigameProjectileHitEvent.java | 43 - .../MinigameProjectileLaunchEvent.java | 43 - .../bevents/MinigameSheepDyeWoolEvent.java | 43 - .../bevents/MinigameSheepRegrowWoolEvent.java | 43 - .../bevents/MinigameSignChangeEvent.java | 43 - .../bevents/MinigameSlimeSplitEvent.java | 43 - .../bevents/MinigameSpawnerSpawnEvent.java | 43 - .../MinigameVehicleBlockCollisionEvent.java | 43 - .../bevents/MinigameVehicleCreateEvent.java | 43 - .../bevents/MinigameVehicleDamageEvent.java | 43 - .../bevents/MinigameVehicleDestroyEvent.java | 43 - .../bevents/MinigameVehicleEnterEvent.java | 43 - .../MinigameVehicleEntityCollisionEvent.java | 43 - .../bevents/MinigameVehicleExitEvent.java | 43 - .../bevents/MinigameVehicleMoveEvent.java | 43 - .../bevents/MinigameVehicleUpdateEvent.java | 43 - .../MinigameVillagerAcquireTradeEvent.java | 45 - .../MinigameVillagerReplenishTradeEvent.java | 45 - .../mevents/MinigameArenaCreateEvent.java | 5 +- .../mevents/MinigameArenaCreatedEvent.java | 5 +- .../mevents/MinigameArenaDeleteEvent.java | 5 +- .../mevents/MinigameArenaDeletedEvent.java | 5 +- .../MinigameArenaMaintenanceEvent.java | 5 +- .../mevents/MinigameArenaPlayerJoinEvent.java | 5 +- .../MinigameArenaPlayerJoinedEvent.java | 5 +- .../MinigameArenaPlayerJoinedQueueEvent.java | 5 +- .../MinigameArenaPlayerLeavesQueueEvent.java | 5 +- .../mevents/MinigameArenaStateEvent.java | 5 +- .../mevents/MinigamePlayerCloseGuiEvent.java | 42 - .../MinigamePlayerDisplayGuiPageEvent.java | 42 - .../mevents/MinigamePlayerGuiClickEvent.java | 42 - .../mevents/MinigamePlayerOpenGuiEvent.java | 42 - .../cmd/AbstractCompositeCommandHandler.java | 142 - .../cmd/AbstractPagableCommandHandler.java | 160 -- .../api/cmd/CommandHandlerInterface.java | 55 - .../minigames/api/cmd/CommandInterface.java | 187 -- .../minigames/api/cmd/HelpCommandHandler.java | 158 -- .../api/cmd/SubCommandHandlerInterface.java | 47 - .../minigames/api/component/ComponentId.java | 32 - .../api/component/ComponentInterface.java | 28 - .../api/component/ComponentRuleId.java | 34 - .../api/component/ComponentRuleSet.java | 28 - .../mce/minigames/api/component/Cuboid.java | 385 --- .../minigames/api/config/CommonConfig.java | 13 +- .../minigames/api/config/ConfigInterface.java | 45 - .../minigames/api/config/Configurable.java | 44 - .../api/config/ConfigurationBool.java | 52 - .../api/config/ConfigurationBoolList.java | 52 - .../api/config/ConfigurationByte.java | 52 - .../api/config/ConfigurationByteList.java | 52 - .../api/config/ConfigurationCharacter.java | 52 - .../config/ConfigurationCharacterList.java | 52 - .../api/config/ConfigurationColor.java | 52 - .../api/config/ConfigurationColorList.java | 45 - .../api/config/ConfigurationDouble.java | 52 - .../api/config/ConfigurationDoubleList.java | 52 - .../api/config/ConfigurationFloat.java | 52 - .../api/config/ConfigurationFloatList.java | 52 - .../api/config/ConfigurationInt.java | 52 - .../api/config/ConfigurationIntList.java | 52 - .../api/config/ConfigurationItemStack.java | 45 - .../config/ConfigurationItemStackList.java | 45 - .../api/config/ConfigurationLong.java | 52 - .../api/config/ConfigurationLongList.java | 52 - .../api/config/ConfigurationObject.java | 52 - .../api/config/ConfigurationObjectList.java | 52 - .../api/config/ConfigurationPlayer.java | 45 - .../api/config/ConfigurationPlayerList.java | 45 - .../api/config/ConfigurationSection.java | 45 - .../api/config/ConfigurationShort.java | 52 - .../api/config/ConfigurationShortList.java | 52 - .../api/config/ConfigurationString.java | 52 - .../api/config/ConfigurationStringList.java | 52 - .../api/config/ConfigurationTool.java | 785 ------ .../config/ConfigurationValueInterface.java | 2377 ----------------- .../api/config/ConfigurationValues.java | 54 - .../api/config/ConfigurationVector.java | 45 - .../api/config/ConfigurationVectorList.java | 45 - .../api/context/ContextHandlerInterface.java | 53 - .../api/context/ContextResolverInterface.java | 39 - .../api/context/MinigameContext.java | 168 -- .../api/context/MinigameStorage.java | 51 - .../api/event/AbstractVetoEvent.java | 80 - .../minigames/api/event/ArenaCreateEvent.java | 2 + .../minigames/api/event/ArenaDeleteEvent.java | 2 + .../api/event/ArenaPlayerJoinEvent.java | 2 + .../api/event/PlayerCloseGuiEvent.java | 95 - .../api/event/PlayerDisplayGuiPageEvent.java | 118 - .../api/event/PlayerGuiClickEvent.java | 117 - .../api/event/PlayerOpenGuiEvent.java | 99 - .../mce/minigames/api/gui/ClickGuiId.java | 37 - .../minigames/api/gui/ClickGuiInterface.java | 46 - .../mce/minigames/api/gui/ClickGuiItem.java | 114 - .../api/gui/ClickGuiPageInterface.java | 42 - .../api/gui/GuiSessionInterface.java | 77 - .../api/locale/LocalizedConfigLine.java | 224 -- .../api/locale/LocalizedConfigString.java | 198 -- .../api/locale/LocalizedMessage.java | 172 -- .../api/locale/LocalizedMessageInterface.java | 306 --- .../api/locale/LocalizedMessageList.java | 158 -- .../api/locale/LocalizedMessages.java | 48 - .../api/locale/MessageSeverityType.java | 44 - .../mce/minigames/api/locale/MessageTool.java | 69 - .../api/locale/MessagesConfigInterface.java | 80 - .../api/perms/CommonPermissions.java | 4 + .../mce/minigames/api/perms/Permission.java | 45 - .../mce/minigames/api/perms/Permissions.java | 51 - .../api/perms/PermissionsInterface.java | 62 - .../api/player/ArenaPlayerInterface.java | 154 +- .../api/services/ExtensionInterface.java | 6 +- .../services/MinigameExtensionInterface.java | 15 +- .../MinigameExtensionProviderInterface.java | 3 +- .../mce/minigames/api/sign/SignInterface.java | 35 - .../api/util/function/FalseStub.java | 98 - .../api/util/function/MgBiConsumer.java | 67 - .../api/util/function/MgBiFunction.java | 68 - .../api/util/function/MgBiPredicate.java | 98 - .../api/util/function/MgBinaryOperator.java | 65 - .../api/util/function/MgBooleanSupplier.java | 39 - .../api/util/function/MgComparator.java | 547 ---- .../api/util/function/MgConsumer.java | 62 - .../util/function/MgDoubleBinaryOperator.java | 43 - .../api/util/function/MgDoubleConsumer.java | 61 - .../api/util/function/MgDoubleFunction.java | 43 - .../api/util/function/MgDoublePredicate.java | 93 - .../api/util/function/MgDoubleSupplier.java | 39 - .../util/function/MgDoubleToIntFunction.java | 40 - .../util/function/MgDoubleToLongFunction.java | 40 - .../util/function/MgDoubleUnaryOperator.java | 89 - .../api/util/function/MgFunction.java | 98 - .../api/util/function/MgFunctionUtils.java | 1092 -------- .../util/function/MgIntBinaryOperator.java | 43 - .../api/util/function/MgIntConsumer.java | 61 - .../api/util/function/MgIntFunction.java | 43 - .../api/util/function/MgIntPredicate.java | 93 - .../api/util/function/MgIntSupplier.java | 39 - .../util/function/MgIntToDoubleFunction.java | 40 - .../util/function/MgIntToLongFunction.java | 40 - .../api/util/function/MgIntUnaryOperator.java | 89 - .../util/function/MgLongBinaryOperator.java | 43 - .../api/util/function/MgLongConsumer.java | 61 - .../api/util/function/MgLongFunction.java | 43 - .../api/util/function/MgLongPredicate.java | 93 - .../api/util/function/MgLongSupplier.java | 39 - .../util/function/MgLongToDoubleFunction.java | 40 - .../util/function/MgLongToIntFunction.java | 40 - .../util/function/MgLongUnaryOperator.java | 89 - .../util/function/MgObjBooleanConsumer.java | 44 - .../util/function/MgObjDoubleConsumer.java | 44 - .../api/util/function/MgObjIntConsumer.java | 44 - .../api/util/function/MgObjLongConsumer.java | 44 - .../api/util/function/MgOutgoingStubbing.java | 125 - .../api/util/function/MgPredicate.java | 109 - .../api/util/function/MgRunnable.java | 36 - .../api/util/function/MgSupplier.java | 40 - .../util/function/MgToDoubleBiFunction.java | 44 - .../api/util/function/MgToDoubleFunction.java | 44 - .../api/util/function/MgToIntBiFunction.java | 47 - .../api/util/function/MgToIntFunction.java | 43 - .../api/util/function/MgToLongBiFunction.java | 43 - .../api/util/function/MgToLongFunction.java | 43 - .../api/util/function/MgUnaryOperator.java | 42 - .../minigames/api/util/function/TrueStub.java | 98 - .../minigames/api/zones/ZoneInterface.java | 70 - .../api/test/CommonProviderInterfaceTest.java | 64 - .../api/test/MinigameErrorCodeTest.java | 42 - .../AbstractCompositeCommandHandlerTest.java | 399 --- .../AbstractPagableCommandHandlerTest.java | 440 --- .../api/test/cmd/CommandInterfaceTest.java | 273 -- .../api/test/component/CuboidTest.java | 373 --- .../ConfigurationValueInterfaceTest.java | 1398 ---------- .../api/test/context/MinigameContextTest.java | 115 - .../api/test/event/AbstractVetoEventTest.java | 3 +- .../test/event/PlayerCloseGuiEventTest.java | 51 - .../event/PlayerDisplayGuiPageEventTest.java | 54 - .../test/event/PlayerGuiClickEventTest.java | 54 - .../test/event/PlayerOpenGuiEventTest.java | 53 - .../api/test/gui/ClickGuiItemTest.java | 76 - .../test/locale/LocalizedConfigLineTest.java | 192 -- .../locale/LocalizedConfigStringTest.java | 186 -- .../locale/LocalizedMessageInterfaceTest.java | 167 -- .../test/locale/MessageSeverityTypeTest.java | 40 - .../test/perms/PermissionsInterfaceTest.java | 113 - .../test/player/ArenaPlayerInterfaceTest.java | 154 -- .../test/util/function/MgBiConsumerTest.java | 59 - .../test/util/function/MgBiFunctionTest.java | 51 - .../test/util/function/MgBiPredicateTest.java | 84 - .../util/function/MgBinaryOperatorTest.java | 63 - .../test/util/function/MgComparatorTest.java | 665 ----- .../test/util/function/MgConsumerTest.java | 55 - .../util/function/MgDoubleConsumerTest.java | 54 - .../util/function/MgDoublePredicateTest.java | 84 - .../function/MgDoubleUnaryOperatorTest.java | 81 - .../test/util/function/MgFunctionTest.java | 80 - .../util/function/MgFunctionUtilsTest.java | 1652 ------------ .../test/util/function/MgIntConsumerTest.java | 55 - .../util/function/MgIntPredicateTest.java | 84 - .../util/function/MgIntUnaryOperatorTest.java | 82 - .../util/function/MgLongConsumerTest.java | 55 - .../util/function/MgLongPredicateTest.java | 84 - .../function/MgLongUnaryOperatorTest.java | 82 - .../test/util/function/MgPredicateTest.java | 116 - .../util/function/MgUnaryOperatorTest.java | 46 - LIBv2/nms/api/.classpath | 26 - LIBv2/nms/api/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../api/.settings/org.eclipse.jdt.core.prefs | 433 --- .../api/.settings/org.eclipse.jdt.ui.prefs | 67 - .../api/.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/api/MinigameArenaCreateEvent.java | 31 - LIBv2/nms/api/pom.xml | 120 - .../impl/nms/AbstractEventSystem.java | 381 --- .../impl/nms/AbstractMinigameEvent.java | 141 - .../impl/nms/EventSystemInterface.java | 45 - .../impl/nms/InventoryManagerInterface.java | 40 - .../impl/nms/MgArenaCreateEvent.java | 38 - .../impl/nms/MgArenaCreatedEvent.java | 38 - .../impl/nms/MgArenaDeleteEvent.java | 38 - .../impl/nms/MgArenaDeletedEvent.java | 38 - .../impl/nms/MgArenaMaintenanceEvent.java | 38 - .../impl/nms/MgArenaPlayerJoinEvent.java | 38 - .../impl/nms/MgArenaPlayerJoinedEvent.java | 38 - .../nms/MgArenaPlayerJoinedQueueEvent.java | 38 - .../nms/MgArenaPlayerLeavesQueueEvent.java | 38 - .../minigames/impl/nms/MgArenaStateEvent.java | 38 - .../minigames/impl/nms/MgEventListener.java | 35 - .../impl/nms/MgPlayerCloseGuiEvent.java | 38 - .../impl/nms/MgPlayerDisplayGuiPageEvent.java | 38 - .../impl/nms/MgPlayerGuiClickEvent.java | 38 - .../impl/nms/MgPlayerOpenGuiEvent.java | 38 - .../mce/minigames/impl/nms/NmsFactory.java | 34 - .../test/nms/AbstractEventSystemTest.java | 521 ---- .../test/nms/AbstractMinigameEventTest.java | 444 --- .../impl/test/nms/MgArenaCreateEventTest.java | 57 - .../test/nms/MgArenaCreatedEventTest.java | 57 - .../impl/test/nms/MgArenaDeleteEventTest.java | 57 - .../test/nms/MgArenaDeletedEventTest.java | 57 - .../test/nms/MgArenaMaintenanceEventTest.java | 57 - .../test/nms/MgArenaPlayerJoinEventTest.java | 58 - .../nms/MgArenaPlayerJoinedEventTest.java | 58 - .../MgArenaPlayerJoinedQueueEventTest.java | 55 - .../MgArenaPlayerLeavesQueueEventTest.java | 55 - .../impl/test/nms/MgArenaStateEventTest.java | 58 - .../test/nms/MgPlayerCloseGuiEventTest.java | 55 - .../nms/MgPlayerDisplayGuiPageEventTest.java | 57 - .../test/nms/MgPlayerGuiClickEventTest.java | 57 - .../test/nms/MgPlayerOpenGuiEventTest.java | 55 - LIBv2/nms/v1_10_r1/.classpath | 26 - LIBv2/nms/v1_10_r1/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 --- .../.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/v1_10_r1/pom.xml | 138 - .../impl/nms/v1_10_1/EventSystem1_10_1.java | 2026 -------------- .../nms/v1_10_1/InventoryManager1_10_1.java | 52 - .../impl/nms/v1_10_1/NmsFactory1_10_1.java | 57 - .../event/MgAreaEffectCloudApplyEvent.java | 40 - .../v1_10_1/event/MgAsyncPlayerChatEvent.java | 41 - .../nms/v1_10_1/event/MgBlockBreakEvent.java | 41 - .../nms/v1_10_1/event/MgBlockBurnEvent.java | 40 - .../v1_10_1/event/MgBlockCanBuildEvent.java | 41 - .../nms/v1_10_1/event/MgBlockDamageEvent.java | 41 - .../v1_10_1/event/MgBlockDispenseEvent.java | 40 - .../nms/v1_10_1/event/MgBlockExpEvent.java | 40 - .../v1_10_1/event/MgBlockExplodeEvent.java | 41 - .../nms/v1_10_1/event/MgBlockFadeEvent.java | 40 - .../nms/v1_10_1/event/MgBlockFormEvent.java | 40 - .../nms/v1_10_1/event/MgBlockFromToEvent.java | 40 - .../nms/v1_10_1/event/MgBlockGrowEvent.java | 40 - .../nms/v1_10_1/event/MgBlockIgniteEvent.java | 41 - .../v1_10_1/event/MgBlockMultiPlaceEvent.java | 41 - .../v1_10_1/event/MgBlockPhysicsEvent.java | 40 - .../event/MgBlockPistonExtendEvent.java | 40 - .../event/MgBlockPistonRetractEvent.java | 40 - .../nms/v1_10_1/event/MgBlockPlaceEvent.java | 41 - .../v1_10_1/event/MgBlockRedstoneEvent.java | 40 - .../nms/v1_10_1/event/MgBlockSpreadEvent.java | 40 - .../impl/nms/v1_10_1/event/MgBrewEvent.java | 40 - .../event/MgCauldronLevelChangeEvent.java | 40 - .../nms/v1_10_1/event/MgCraftItemEvent.java | 42 - .../v1_10_1/event/MgCreatureSpawnEvent.java | 40 - .../v1_10_1/event/MgCreeperPowerEvent.java | 40 - .../nms/v1_10_1/event/MgEnchantItemEvent.java | 41 - .../event/MgEnderDragonChangePhaseEvent.java | 40 - .../v1_10_1/event/MgEntityBlockFormEvent.java | 40 - .../v1_10_1/event/MgEntityBreakDoorEvent.java | 69 - .../nms/v1_10_1/event/MgEntityBreedEvent.java | 69 - .../event/MgEntityChangeBlockEvent.java | 40 - .../event/MgEntityCombustByBlockEvent.java | 69 - .../event/MgEntityCombustByEntityEvent.java | 69 - .../v1_10_1/event/MgEntityCombustEvent.java | 69 - .../event/MgEntityCreatePortalEvent.java | 69 - .../event/MgEntityDamageByBlockEvent.java | 69 - .../event/MgEntityDamageByEntityEvent.java | 69 - .../v1_10_1/event/MgEntityDamageEvent.java | 69 - .../nms/v1_10_1/event/MgEntityDeathEvent.java | 40 - .../v1_10_1/event/MgEntityExplodeEvent.java | 40 - .../v1_10_1/event/MgEntityInteractEvent.java | 40 - .../event/MgEntityPortalEnterEvent.java | 40 - .../v1_10_1/event/MgEntityPortalEvent.java | 40 - .../event/MgEntityPortalExitEvent.java | 40 - .../event/MgEntityRegainHealthEvent.java | 40 - .../v1_10_1/event/MgEntityShootBowEvent.java | 70 - .../nms/v1_10_1/event/MgEntitySpawnEvent.java | 40 - .../nms/v1_10_1/event/MgEntityTameEvent.java | 42 - .../v1_10_1/event/MgEntityTargetEvent.java | 69 - .../MgEntityTargetLivingEntityEvent.java | 69 - .../v1_10_1/event/MgEntityTeleportEvent.java | 40 - .../event/MgEntityToggleGlideEvent.java | 69 - .../v1_10_1/event/MgEntityUnleashEvent.java | 40 - .../nms/v1_10_1/event/MgExpBottleEvent.java | 40 - .../v1_10_1/event/MgExplosionPrimeEvent.java | 40 - .../v1_10_1/event/MgFireworkExplodeEvent.java | 40 - .../v1_10_1/event/MgFoodLevelChangeEvent.java | 69 - .../nms/v1_10_1/event/MgFurnaceBurnEvent.java | 40 - .../v1_10_1/event/MgFurnaceSmeltEvent.java | 40 - .../event/MgHangingBreakByEntityEvent.java | 69 - .../v1_10_1/event/MgHangingBreakEvent.java | 40 - .../v1_10_1/event/MgHangingPlaceEvent.java | 53 - .../nms/v1_10_1/event/MgHorseJumpEvent.java | 69 - .../v1_10_1/event/MgInventoryClickEvent.java | 42 - .../v1_10_1/event/MgInventoryCloseEvent.java | 42 - .../event/MgInventoryCreativeEvent.java | 42 - .../v1_10_1/event/MgInventoryDragEvent.java | 42 - .../nms/v1_10_1/event/MgInventoryEvent.java | 42 - .../event/MgInventoryInteractEvent.java | 42 - .../event/MgInventoryMoveItemEvent.java | 42 - .../v1_10_1/event/MgInventoryOpenEvent.java | 42 - .../event/MgInventoryPickupItemEvent.java | 42 - .../nms/v1_10_1/event/MgItemDespawnEvent.java | 40 - .../nms/v1_10_1/event/MgItemMergeEvent.java | 40 - .../nms/v1_10_1/event/MgItemSpawnEvent.java | 40 - .../nms/v1_10_1/event/MgLeavesDecayEvent.java | 40 - .../event/MgLingeringPotionSplashEvent.java | 40 - .../nms/v1_10_1/event/MgNotePlayEvent.java | 40 - .../impl/nms/v1_10_1/event/MgPigZapEvent.java | 40 - .../MgPlayerAchievementAwardedEvent.java | 41 - .../v1_10_1/event/MgPlayerAnimationEvent.java | 41 - .../MgPlayerArmorStandManipulateEvent.java | 41 - .../v1_10_1/event/MgPlayerBedEnterEvent.java | 41 - .../v1_10_1/event/MgPlayerBedLeaveEvent.java | 41 - .../event/MgPlayerBucketEmptyEvent.java | 41 - .../event/MgPlayerBucketFillEvent.java | 41 - .../event/MgPlayerChangedMainHandEvent.java | 41 - .../event/MgPlayerChangedWorldEvent.java | 41 - .../v1_10_1/event/MgPlayerChannelEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerChatEvent.java | 41 - .../event/MgPlayerChatTabCompleteEvent.java | 41 - .../event/MgPlayerCommandPreprocessEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerDeathEvent.java | 41 - .../v1_10_1/event/MgPlayerDropItemEvent.java | 41 - .../v1_10_1/event/MgPlayerEditBookEvent.java | 41 - .../v1_10_1/event/MgPlayerEggThrowEvent.java | 41 - .../v1_10_1/event/MgPlayerExpChangeEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerFishEvent.java | 41 - .../event/MgPlayerGameModeChangeEvent.java | 41 - .../event/MgPlayerInteractAtEntityEvent.java | 42 - .../event/MgPlayerInteractEntityEvent.java | 41 - .../v1_10_1/event/MgPlayerInteractEvent.java | 41 - .../v1_10_1/event/MgPlayerInventoryEvent.java | 41 - .../v1_10_1/event/MgPlayerItemBreakEvent.java | 41 - .../event/MgPlayerItemConsumeEvent.java | 41 - .../event/MgPlayerItemDamageEvent.java | 41 - .../v1_10_1/event/MgPlayerItemHeldEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerJoinEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerKickEvent.java | 41 - .../event/MgPlayerLeashEntityEvent.java | 41 - .../event/MgPlayerLevelChangeEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerLoginEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerMoveEvent.java | 41 - .../event/MgPlayerPickupArrowEvent.java | 41 - .../event/MgPlayerPickupItemEvent.java | 41 - .../v1_10_1/event/MgPlayerPortalEvent.java | 41 - .../nms/v1_10_1/event/MgPlayerQuitEvent.java | 41 - .../event/MgPlayerRegisterChannelEvent.java | 41 - .../MgPlayerResourcePackStatusEvent.java | 41 - .../v1_10_1/event/MgPlayerRespawnEvent.java | 41 - .../event/MgPlayerShearEntityEvent.java | 41 - .../event/MgPlayerSpawnLocationEvent.java | 41 - .../MgPlayerStatisticIncrementEvent.java | 41 - .../event/MgPlayerSwapHandItemsEvent.java | 41 - .../v1_10_1/event/MgPlayerTeleportEvent.java | 41 - .../event/MgPlayerToggleFlightEvent.java | 41 - .../event/MgPlayerToggleSneakEvent.java | 41 - .../event/MgPlayerToggleSprintEvent.java | 41 - .../event/MgPlayerUnregisterChannelEvent.java | 41 - .../v1_10_1/event/MgPlayerVelocityEvent.java | 41 - .../v1_10_1/event/MgPotionSplashEvent.java | 40 - .../v1_10_1/event/MgPrepareAnvilEvent.java | 42 - .../event/MgPrepareItemCraftEvent.java | 42 - .../event/MgPrepareItemEnchantEvent.java | 41 - .../v1_10_1/event/MgProjectileHitEvent.java | 69 - .../event/MgProjectileLaunchEvent.java | 69 - .../v1_10_1/event/MgSheepDyeWoolEvent.java | 40 - .../v1_10_1/event/MgSheepRegrowWoolEvent.java | 40 - .../nms/v1_10_1/event/MgSignChangeEvent.java | 40 - .../nms/v1_10_1/event/MgSlimeSplitEvent.java | 40 - .../v1_10_1/event/MgSpawnerSpawnEvent.java | 40 - .../event/MgVehicleBlockCollisionEvent.java | 69 - .../v1_10_1/event/MgVehicleCreateEvent.java | 69 - .../v1_10_1/event/MgVehicleDamageEvent.java | 69 - .../v1_10_1/event/MgVehicleDestroyEvent.java | 69 - .../v1_10_1/event/MgVehicleEnterEvent.java | 42 - .../event/MgVehicleEntityCollisionEvent.java | 42 - .../nms/v1_10_1/event/MgVehicleExitEvent.java | 42 - .../nms/v1_10_1/event/MgVehicleMoveEvent.java | 42 - .../v1_10_1/event/MgVehicleUpdateEvent.java | 42 - .../event/MgVillagerAcquireTradeEvent.java | 40 - .../event/MgVillagerReplenishTradeEvent.java | 40 - .../MgAreaEffectCloudApplyEventTest.java | 74 - .../event/MgAsyncPlayerChatEventTest.java | 70 - .../v1_10_1/event/MgBlockBreakEventTest.java | 73 - .../v1_10_1/event/MgBlockBurnEventTest.java | 69 - .../event/MgBlockCanBuildEventTest.java | 69 - .../v1_10_1/event/MgBlockDamageEventTest.java | 75 - .../event/MgBlockDispenseEventTest.java | 72 - .../v1_10_1/event/MgBlockExpEventTest.java | 69 - .../event/MgBlockExplodeEventTest.java | 71 - .../v1_10_1/event/MgBlockFadeEventTest.java | 70 - .../v1_10_1/event/MgBlockFormEventTest.java | 70 - .../v1_10_1/event/MgBlockFromToEventTest.java | 70 - .../v1_10_1/event/MgBlockGrowEventTest.java | 70 - .../v1_10_1/event/MgBlockIgniteEventTest.java | 70 - .../event/MgBlockMultiPlaceEventTest.java | 83 - .../event/MgBlockPhysicsEventTest.java | 69 - .../event/MgBlockPistonExtendEventTest.java | 72 - .../event/MgBlockPistonRetractEventTest.java | 72 - .../v1_10_1/event/MgBlockPlaceEventTest.java | 78 - .../event/MgBlockRedstoneEventTest.java | 69 - .../v1_10_1/event/MgBlockSpreadEventTest.java | 70 - .../nms/v1_10_1/event/MgBrewEventTest.java | 71 - LIBv2/nms/v1_8_r1/.classpath | 26 - LIBv2/nms/v1_8_r1/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 --- .../.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/v1_8_r1/pom.xml | 138 - .../impl/nms/v1_8_1/EventSystem1_8_1.java | 1661 ------------ .../impl/nms/v1_8_1/NmsFactory1_8_1.java | 55 - LIBv2/nms/v1_8_r2/.classpath | 26 - LIBv2/nms/v1_8_r2/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 --- .../.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/v1_8_r2/pom.xml | 138 - .../impl/nms/v1_8_2/EventSystem1_8_2.java | 1685 ------------ .../impl/nms/v1_8_2/NmsFactory1_8_2.java | 55 - LIBv2/nms/v1_8_r3/.classpath | 26 - LIBv2/nms/v1_8_r3/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 --- .../.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/v1_8_r3/pom.xml | 138 - .../impl/nms/v1_8_3/EventSystem1_8_3.java | 1721 ------------ .../impl/nms/v1_8_3/NmsFactory1_8_3.java | 55 - LIBv2/nms/v1_9_r1/.classpath | 26 - LIBv2/nms/v1_9_r1/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 --- .../.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/v1_9_r1/pom.xml | 138 - .../impl/nms/v1_9_1/EventSystem1_9_1.java | 1840 ------------- .../impl/nms/v1_9_1/NmsFactory1_9_1.java | 55 - LIBv2/nms/v1_9_r2/.classpath | 26 - LIBv2/nms/v1_9_r2/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 --- .../.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - LIBv2/nms/v1_9_r2/pom.xml | 138 - .../impl/nms/v1_9_2/EventSystem1_9_2.java | 1840 ------------- .../impl/nms/v1_9_2/NmsFactory1_9_2.java | 55 - LIBv2/pom.xml | 4 + 640 files changed, 1065 insertions(+), 56928 deletions(-) delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java delete mode 100644 LIBv2/nms/api/.classpath delete mode 100644 LIBv2/nms/api/.project delete mode 100644 LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/api/MinigameArenaCreateEvent.java delete mode 100644 LIBv2/nms/api/pom.xml delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java delete mode 100644 LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java delete mode 100644 LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/.classpath delete mode 100644 LIBv2/nms/v1_10_r1/.project delete mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/v1_10_r1/pom.xml delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java delete mode 100644 LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java delete mode 100644 LIBv2/nms/v1_8_r1/.classpath delete mode 100644 LIBv2/nms/v1_8_r1/.project delete mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/v1_8_r1/pom.xml delete mode 100644 LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java delete mode 100644 LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java delete mode 100644 LIBv2/nms/v1_8_r2/.classpath delete mode 100644 LIBv2/nms/v1_8_r2/.project delete mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/v1_8_r2/pom.xml delete mode 100644 LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java delete mode 100644 LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java delete mode 100644 LIBv2/nms/v1_8_r3/.classpath delete mode 100644 LIBv2/nms/v1_8_r3/.project delete mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/v1_8_r3/pom.xml delete mode 100644 LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java delete mode 100644 LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java delete mode 100644 LIBv2/nms/v1_9_r1/.classpath delete mode 100644 LIBv2/nms/v1_9_r1/.project delete mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/v1_9_r1/pom.xml delete mode 100644 LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java delete mode 100644 LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java delete mode 100644 LIBv2/nms/v1_9_r2/.classpath delete mode 100644 LIBv2/nms/v1_9_r2/.project delete mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs delete mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs delete mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs delete mode 100644 LIBv2/nms/v1_9_r2/pom.xml delete mode 100644 LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java delete mode 100644 LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java diff --git a/APIv2/.classpath b/APIv2/.classpath index 1945bc02..7200bb42 100644 --- a/APIv2/.classpath +++ b/APIv2/.classpath @@ -1,26 +1,26 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="target/classes"/> +</classpath> diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 4153640e..67067296 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -1,24 +1,54 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> + <groupId>de.minigameslib.mclib</groupId> <artifactId>MinigamesAPI</artifactId> <version>2.0.0-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesAPI</name> <description>Rich Minigames API V2</description> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> + + <properties> + <maven.source.plugin.version>3.0.0</maven.source.plugin.version> + <maven.javadoc.plugin.version>2.10.3</maven.javadoc.plugin.version> + <jacoco.plugin.version>0.7.6.201602180812</jacoco.plugin.version> + <maven.jxr.plugin.version>2.1</maven.jxr.plugin.version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + <java.version>1.8</java.version> + </properties> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>spigot-1.11.2-R0.1-api-bom</artifactId> + <version>0.0.1-SNAPSHOT</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> <dependencies> <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib-api</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>runtime</scope> </dependency> + + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot-api</artifactId> + </dependency> <dependency> <groupId>junit</groupId> @@ -47,9 +77,48 @@ </includes> </resource> </resources> - <plugins> + </build> + + <profiles> + <profile> + <id>mclib.withjavadocreport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + </plugin> + </plugins></reporting> + </profile> + <profile> + <id>mclib.withtestreport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> <plugin> - <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + </plugins></reporting> + </profile> + <profile> + <id>mclib.withsourcereport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>${maven.jxr.plugin.version}</version> + </plugin> + </plugins></reporting> + </profile> + + <profile> + <id>mclib.withsources</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> + <version>${maven.source.plugin.version}</version> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> @@ -61,8 +130,16 @@ </execution> </executions> </plugin> + </plugins> + </build> + </profile> + <profile> + <id>mclib.withjavadoc</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> <plugin> - <version>2.10.3</version> + <version>${maven.javadoc.plugin.version}</version> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> @@ -74,11 +151,18 @@ </execution> </executions> </plugin> - - <plugin> + </plugins> + </build> + </profile> + <profile> + <id>mclib.withcoverage</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> + <version>${jacoco.plugin.version}</version> <executions> <execution> <id>default-prepare-agent</id> @@ -97,8 +181,7 @@ </execution> </executions> </plugin> - - <plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> @@ -106,27 +189,12 @@ </configuration> </plugin> </plugins> - </build> - - <reporting> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jxr-plugin</artifactId> - <version>2.1</version> - </plugin> + </build> + <reporting><plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> + <version>${jacoco.plugin.version}</version> <reportSets> <reportSet> <reports> @@ -135,7 +203,8 @@ </reportSet> </reportSets> </plugin> - </plugins> - </reporting> + </plugins></reporting> + </profile> + </profiles> </project> \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java index c417ebe0..05a2ef4f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api; -import com.github.mce.minigames.api.locale.LocalizedMessage; -import com.github.mce.minigames.api.locale.LocalizedMessages; -import com.github.mce.minigames.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageSeverityType; /** * Common errors within minigames lib. @@ -25,7 +26,7 @@ * @author mepeisen */ @LocalizedMessages("errors") -public enum CommonErrors implements MinigameErrorCode +public enum CommonErrors implements LocalizedMessageInterface { /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java index ac6f9bf8..af7c18d6 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java @@ -15,11 +15,11 @@ package com.github.mce.minigames.api; -import com.github.mce.minigames.api.locale.LocalizedMessage; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageList; -import com.github.mce.minigames.api.locale.LocalizedMessages; -import com.github.mce.minigames.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageSeverityType; /** * Common messages within minigames lib. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java index c0a3a403..dd89a261 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java @@ -19,20 +19,11 @@ import org.bukkit.plugin.java.JavaPlugin; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.arena.rules.AdminRuleId; -import com.github.mce.minigames.api.arena.rules.ArenaRuleId; -import com.github.mce.minigames.api.arena.rules.MatchRuleId; -import com.github.mce.minigames.api.arena.rules.PlayerRuleId; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleId; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.gui.ClickGuiId; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleId; +import de.minigameslib.mclib.api.cmd.CommandHandlerInterface; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.gui.ClickGuiId; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.perms.PermissionsInterface; /** * Basic interface for providers, either minigame plugins or extensions. @@ -115,94 +106,94 @@ default Iterable<Class<? extends ClickGuiId>> getGuiIds() return null; } - /** - * Returns the additional gui ids for this provider. - * - * @return additional gui ids. - */ - default Iterable<Class<? extends ArenaRuleId>> getArenaRuleIds() - { - return null; - } - - /** - * Returns the additional gui ids for this provider. - * - * @return additional gui ids. - */ - default Iterable<Class<? extends MatchRuleId>> getMatchRuleIds() - { - return null; - } - - /** - * Returns the additional gui ids for this provider. - * - * @return additional gui ids. - */ - default Iterable<Class<? extends PlayerRuleId>> getPlayerRuleIds() - { - return null; - } - - /** - * Returns the administration rules for this provider. - * - * @return administration rule ids. - */ - default Iterable<Class<? extends AdminRuleId>> getAdminRuleIds() - { - return null; - } - - /** - * Returns the team rules for this provider. - * - * @return team rule ids. - */ - default Iterable<Class<? extends TeamRuleId>> getTeamRuleIds() - { - return null; - } - - /** - * Returns the components rules for this provider. - * - * @return component rule ids. - */ - default Iterable<Class<? extends ComponentRuleId>> getComponentRuleIds() - { - return null; - } - - /** - * Returns the components for this provider. - * - * @return component ids. - */ - default Iterable<Class<? extends ComponentId>> getComponentIds() - { - return null; - } - - /** - * Returns the teams for this provider. - * - * @return teams. - */ - default Iterable<Class<? extends TeamId>> getTeamIds() - { - return null; - } - - /** - * Returns the match phases for this provider. - * - * @return match phases. - */ - default Iterable<Class<? extends MatchPhaseId>> getMatchPhaseIds() - { - return null; - } +// /** +// * Returns the additional gui ids for this provider. +// * +// * @return additional gui ids. +// */ +// default Iterable<Class<? extends ArenaRuleId>> getArenaRuleIds() +// { +// return null; +// } +// +// /** +// * Returns the additional gui ids for this provider. +// * +// * @return additional gui ids. +// */ +// default Iterable<Class<? extends MatchRuleId>> getMatchRuleIds() +// { +// return null; +// } +// +// /** +// * Returns the additional gui ids for this provider. +// * +// * @return additional gui ids. +// */ +// default Iterable<Class<? extends PlayerRuleId>> getPlayerRuleIds() +// { +// return null; +// } +// +// /** +// * Returns the administration rules for this provider. +// * +// * @return administration rule ids. +// */ +// default Iterable<Class<? extends AdminRuleId>> getAdminRuleIds() +// { +// return null; +// } +// +// /** +// * Returns the team rules for this provider. +// * +// * @return team rule ids. +// */ +// default Iterable<Class<? extends TeamRuleId>> getTeamRuleIds() +// { +// return null; +// } +// +// /** +// * Returns the components rules for this provider. +// * +// * @return component rule ids. +// */ +// default Iterable<Class<? extends ComponentRuleId>> getComponentRuleIds() +// { +// return null; +// } +// +// /** +// * Returns the components for this provider. +// * +// * @return component ids. +// */ +// default Iterable<Class<? extends ComponentId>> getComponentIds() +// { +// return null; +// } +// +// /** +// * Returns the teams for this provider. +// * +// * @return teams. +// */ +// default Iterable<Class<? extends TeamId>> getTeamIds() +// { +// return null; +// } +// +// /** +// * Returns the match phases for this provider. +// * +// * @return match phases. +// */ +// default Iterable<Class<? extends MatchPhaseId>> getMatchPhaseIds() +// { +// return null; +// } } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 9d3acdfc..84ee1d6e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -15,10 +15,7 @@ package com.github.mce.minigames.api; -import java.io.Serializable; -import java.util.Locale; import java.util.UUID; -import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -31,38 +28,30 @@ import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.arena.ArenaTypeProvider; import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.Cuboid; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.context.MinigameContext; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.services.ExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; -import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.zones.ZoneInterface; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.config.ConfigInterface; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.MessagesConfigInterface; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.impl.comp.ComponentId; /** * Base interface to access the minigames API. * * @author mepeisen */ -public interface MglibInterface extends MinigameContext +public interface MglibInterface { - /** - * A pseudo minigame representing the library itself. - * - * <p> - * The core minigame is referred in various situations, for example in common error messages. - * </p> - */ - String CORE_MINIGAME = "core"; //$NON-NLS-1$ - // common methods /** @@ -80,32 +69,15 @@ public interface MglibInterface extends MinigameContext LibState getState(); /** - * Returns the minecraft version we are running on. - * - * @return minecraft server version. + * the first api version, all versions up to first release, includes minecraft versions up to 1.11. */ - MinecraftVersionsType getMinecraftVersion(); + int APIVERSION_1_0_0 = 10000; /** - * Returns the library version string. - * - * @return library version string. + * Returns the api version of MCLIB. + * @return api version. */ - Serializable getLibVersionString(); - - /** - * Returns a logger for the library. - * - * @return logger instance. - */ - Logger getLogger(); - - /** - * Returns the default locale used in minigame lib. - * - * @return default locale - */ - Locale getDefaultLocale(); + int getApiVersion(); // initialization @@ -115,10 +87,10 @@ public interface MglibInterface extends MinigameContext * @param extension * minigame extension to register. * @return the minigame extension - * @throws MinigameException + * @throws McException * thrown if the minigame with given name is already registered. */ - MinigameExtensionInterface register(MinigameExtensionProviderInterface extension) throws MinigameException; + MinigameExtensionInterface register(MinigameExtensionProviderInterface extension) throws McException; /** * Registers a new minigame; should be called in {@link JavaPlugin#onEnable()}. @@ -131,33 +103,13 @@ public interface MglibInterface extends MinigameContext * the plugin provider class. * @return The minigame plugin interface, some kind of administrational interface. * - * @throws MinigameException + * @throws McException * thrown if the minigame with given name is already registered. */ - MinigamePluginInterface register(PluginProviderInterface provider) throws MinigameException; + MinigamePluginInterface register(PluginProviderInterface provider) throws McException; // main api - /** - * Returns the message api declaring the given message. - * - * @param item - * the enumeration value; only works on classes that are returned by a plugin or extension provider during initialization. - * - * @return message api or {@code null} if the class was not declared by any minigame or extension. - */ - MessagesConfigInterface getMessagesFromMsg(LocalizedMessageInterface item); - - /** - * Returns the configuration declaring the given configuration value. - * - * @param item - * the configuration value; only works on classes that are returned by a plugin or extension provider during initialization. - * - * @return config provider or {@code null} if the class was not declared by any minigame or extension. - */ - ConfigInterface getConfigFromCfg(ConfigurationValueInterface item); - /** * Returns the arena type provider for given arena type. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java deleted file mode 100644 index 43a426ea..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameErrorCode.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; - -/** - * An interface for enumerations that represent minigame error codes. - * - * @author mepeisen - */ -public interface MinigameErrorCode extends LocalizedMessageInterface -{ - - /** - * Returns a technical string to identify the error; usually class name and constant name. - * - * @return message string. - */ - default String toName() - { - return this.getClass().getName() + "." + ((Enum<?>)this).name(); //$NON-NLS-1$ - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java deleted file mode 100644 index 64cb2f05..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameException.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import java.io.Serializable; - -/** - * A minigame exception. - * - * @author mepeisen - */ -public class MinigameException extends Exception -{ - - /** - * serial version uid. - */ - private static final long serialVersionUID = 4482601783924644721L; - - /** the error code. */ - private final MinigameErrorCode code; - - /** the message arguments. */ - private final Serializable[] args; - - /** - * Constructor. - * - * @param code - * the error code - * @param args - * the arguments for building the message. - */ - public MinigameException(MinigameErrorCode code, Serializable... args) - { - super(toString(code, args)); - this.code = code; - this.args = args; - } - - /** - * Constructor. - * - * @param code - * the error code - * @param cause - * the underlying exception (cause) - * @param args - * the arguments for building the message. - */ - public MinigameException(MinigameErrorCode code, Throwable cause, Serializable... args) - { - super(toString(code, args), cause); - this.code = code; - this.args = args; - } - - /** - * The error code - * - * @return the code - */ - public MinigameErrorCode getCode() - { - return this.code; - } - - /** - * the arguments to build a human readable string - * - * @return the args - */ - public Serializable[] getArgs() - { - return this.args; - } - - /** - * Converts given code and args to a loggable text. - * - * @param code2 - * @param args2 - * @return exception string for logging. - */ - private static String toString(MinigameErrorCode code2, Serializable[] args2) - { - final StringBuilder builder = new StringBuilder(); - builder.append(code2.toName()); - builder.append(", args: ["); //$NON-NLS-1$ - if (args2 != null) - { - for (final Serializable arg : args2) - { - builder.append("\n "); //$NON-NLS-1$ - builder.append(arg); - } - } - builder.append("]"); //$NON-NLS-1$ - return builder.toString(); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index 44049d43..c6daee34 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -20,8 +20,9 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeProvider; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; + +import de.minigameslib.mclib.api.config.ConfigInterface; +import de.minigameslib.mclib.api.locale.MessagesConfigInterface; /** * The plugin to access minigames. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java index a3832a7f..e00c43e4 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -17,8 +17,10 @@ import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.ContextResolverInterface; + +import de.minigameslib.mclib.api.McContext.ContextHandlerInterface; +import de.minigameslib.mclib.api.McContext.ContextResolverInterface; +import de.minigameslib.mclib.api.McException; /** * The minigame plugin interface; administrational backend for the given minigame. @@ -44,10 +46,10 @@ public interface MinigamePluginInterface extends MinigameInterface * @param isDefault * {@code true} if this is the default arena type for this minigame. * @return the type builder. - * @throws MinigameException + * @throws McException * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. */ - ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws MinigameException; + ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException; /** * Registers a context handler to calculate context variables. @@ -56,22 +58,22 @@ public interface MinigamePluginInterface extends MinigameInterface * context class. * @param handler * the context handler. - * @throws MinigameException + * @throws McException * thrown if the class to register is already registered. * @param <T> * context class to register */ - <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException; + <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws McException; /** * Registers a helper to resolve context variables. * * @param resolver * the context resolver - * @throws MinigameException + * @throws McException * thrown on errors */ - void registerContextResolver(ContextResolverInterface resolver) throws MinigameException; + void registerContextResolver(ContextResolverInterface resolver) throws McException; /** * Initialize this minigame. @@ -80,17 +82,17 @@ public interface MinigamePluginInterface extends MinigameInterface * This method must be called at the end of the initialization process. * </p> * - * @throws MinigameException + * @throws McException * thrown if the minigame declarations are not valid. */ - void init() throws MinigameException; + void init() throws McException; /** * Will be called from plugin as soon as the plugin is disabled. * - * @throws MinigameException + * @throws McException * thrown if there are problems disabling the plugin. */ - void disable() throws MinigameException; + void disable() throws McException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java index 5a8a65b6..1163c1b3 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java @@ -19,7 +19,7 @@ import org.bukkit.plugin.java.JavaPlugin; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * An interface that should be implemented by the {@link JavaPlugin} of a specific minigame. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java index cad710a0..22b8d2c0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java @@ -15,14 +15,6 @@ package com.github.mce.minigames.api.arena; -import java.util.logging.Logger; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; - /** * A arena inside the gaming world. * @@ -30,152 +22,152 @@ */ public interface ArenaInterface { - - /** - * List of illegal arena names; names starting with on of these strings are disallowed. - */ - String[] ILLEGAL_NAMES = { "core", "join", "leave", "mg" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - - // arena information - - /** - * Returns the internal name of this arena. - * - * @return internal name. - */ - String getInternalName(); - - /** - * Returns the display name of this arena. - * - * @return arena display name; defaults to internal name. - */ - String getDisplayName(); - - /** - * Returns the author of this arena. - * - * @return author or {@code null} if no author was set. - */ - String getAuthor(); - - /** - * Returns a short description (single line) of the arena. - * - * @return short description or {@code null} if no short description was set. - */ - LocalizedMessageInterface getShortDescription(); - - /** - * Returns a description (multi line) of the arena. - * - * @return multi line description or {@code null} if no description was set. - */ - LocalizedMessageInterface getDescription(); - - /** - * Changes the display name - * - * @param name - * new display name of the arena - * @throws MinigameException - * thrown if save failed. - */ - void setDisplayName(String name) throws MinigameException; - - // states - - /** - * Starts the arena (forces the start if needed). - */ - void start(); - - // common methods - - /** - * Returns a logger for the library. - * - * @return logger instance. - */ - Logger getLogger(); - - /** - * Returns the declaring minigame - * - * @return minigame - */ - MinigameInterface getMinigame(); - - /** - * Returns the arena state. - * - * <p> - * WARNING: You should not use this method to query the arena state. Instead either use the predicates or use the {@link #getRealState()} method. - * </p> - * - * @return arena state - */ - ArenaState getState(); - - /** - * Returns the real arena state. - * - * <p> - * While {@link #getState()} will return the public visible state this method returns the real state for gaming rules etc. While the arena state being MAINTENANCE the administrator is still able - * to start a single match to test the arena. Thus the real state may be {@link ArenaState#InGame} during tests while the arena state still shows up {@link ArenaState#Maintenance}. - * </p> - * - * @return arena state - */ - ArenaState getRealState(); - - /** - * Returns the arena type for this arena. - * - * @return arena type. - */ - ArenaTypeInterface getArenaType(); - - /** - * Checks if the arena is enabled. - * - * @return {@code true} if the arena is enabled. - */ - boolean isEnabled(); - - /** - * Checks if the arena is in maintenance mode. - * - * @return {@code true} if the arena is under maintenance. - */ - boolean isMaintenance(); - - /** - * Checks if the arena can be started by command; checks the gaming rules. - * - * @return {@code true} if the arena can be started. - */ - boolean canStart(); - - void delete() throws MinigameException; - - // stubbing - - /** - * Checks this arena for given criteria and invokes either then or else statements. - * - * <p> - * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. - * </p> - * - * @param test - * test functions for testing the arena matching any criteria. - * - * @return the outgoing stub to apply then or else consumers. - * - * @throws MinigameException - * will be thrown if either the test function or then/else consumers throw the exception. - */ - MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws MinigameException; +// +// /** +// * List of illegal arena names; names starting with on of these strings are disallowed. +// */ +// String[] ILLEGAL_NAMES = { "core", "join", "leave", "mg" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ +// +// // arena information +// +// /** +// * Returns the internal name of this arena. +// * +// * @return internal name. +// */ +// String getInternalName(); +// +// /** +// * Returns the display name of this arena. +// * +// * @return arena display name; defaults to internal name. +// */ +// String getDisplayName(); +// +// /** +// * Returns the author of this arena. +// * +// * @return author or {@code null} if no author was set. +// */ +// String getAuthor(); +// +// /** +// * Returns a short description (single line) of the arena. +// * +// * @return short description or {@code null} if no short description was set. +// */ +// LocalizedMessageInterface getShortDescription(); +// +// /** +// * Returns a description (multi line) of the arena. +// * +// * @return multi line description or {@code null} if no description was set. +// */ +// LocalizedMessageInterface getDescription(); +// +// /** +// * Changes the display name +// * +// * @param name +// * new display name of the arena +// * @throws McException +// * thrown if save failed. +// */ +// void setDisplayName(String name) throws McException; +// +// // states +// +// /** +// * Starts the arena (forces the start if needed). +// */ +// void start(); +// +// // common methods +// +// /** +// * Returns a logger for the library. +// * +// * @return logger instance. +// */ +// Logger getLogger(); +// +// /** +// * Returns the declaring minigame +// * +// * @return minigame +// */ +// MinigameInterface getMinigame(); +// +// /** +// * Returns the arena state. +// * +// * <p> +// * WARNING: You should not use this method to query the arena state. Instead either use the predicates or use the {@link #getRealState()} method. +// * </p> +// * +// * @return arena state +// */ +// ArenaState getState(); +// +// /** +// * Returns the real arena state. +// * +// * <p> +// * While {@link #getState()} will return the public visible state this method returns the real state for gaming rules etc. While the arena state being MAINTENANCE the administrator is still able +// * to start a single match to test the arena. Thus the real state may be {@link ArenaState#InGame} during tests while the arena state still shows up {@link ArenaState#Maintenance}. +// * </p> +// * +// * @return arena state +// */ +// ArenaState getRealState(); +// +// /** +// * Returns the arena type for this arena. +// * +// * @return arena type. +// */ +// ArenaTypeInterface getArenaType(); +// +// /** +// * Checks if the arena is enabled. +// * +// * @return {@code true} if the arena is enabled. +// */ +// boolean isEnabled(); +// +// /** +// * Checks if the arena is in maintenance mode. +// * +// * @return {@code true} if the arena is under maintenance. +// */ +// boolean isMaintenance(); +// +// /** +// * Checks if the arena can be started by command; checks the gaming rules. +// * +// * @return {@code true} if the arena can be started. +// */ +// boolean canStart(); +// +// void delete() throws McException; +// +// // stubbing +// +// /** +// * Checks this arena for given criteria and invokes either then or else statements. +// * +// * <p> +// * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. +// * </p> +// * +// * @param test +// * test functions for testing the arena matching any criteria. +// * +// * @return the outgoing stub to apply then or else consumers. +// * +// * @throws McException +// * will be thrown if either the test function or then/else consumers throw the exception. +// */ +// MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws McException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java index 3f248c7f..194b93c1 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java @@ -15,17 +15,13 @@ package com.github.mce.minigames.api.arena; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.arena.rules.AdminRuleSet; -import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; -import com.github.mce.minigames.api.arena.rules.MatchRuleSet; -import com.github.mce.minigames.api.arena.rules.PlayerRuleSet; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleSet; import com.github.mce.minigames.api.team.TeamId; import com.github.mce.minigames.api.team.TeamRuleSet; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.impl.comp.ComponentId; + /** * A builder to create arena types. * @@ -38,454 +34,454 @@ public interface ArenaTypeBuilderInterface { - /** - * Applies rule sets to this arena type. - * - * @param set - * the arena rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if the arena rule set was invalid. - */ - ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) throws MinigameException; - - /** - * Applies rule sets for administration. - * - * @param set - * the admin rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if the admin rule set was invalid. - */ - ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws MinigameException; - - /** - * Applies rule sets for components. - * - * @param set - * the component rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if the component rule set was invalid. - */ - ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws MinigameException; - - /** - * Applies rule sets for running match. - * - * @param set - * the match rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if the match rule set was invalid. - */ - ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws MinigameException; - - /** - * Applies rule sets for players within arenas. - * - * @param set - * the player rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if the player rule set was invalid. - */ - ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws MinigameException; - - /** - * Applies rule sets for teams within arenas. - * - * @param set - * the team rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if the team rule set was invalid. - */ - ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws MinigameException; - - /** - * Applies components to this arena type. - * - * @param ids - * the components set. - * @return this object for chaining. - * @throws MinigameException - * thrown if the components set was invalid. - */ - ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws MinigameException; - - /** - * Applies teams to this arena type. - * - * @param ids - * the teams. - * @return this object for chaining. - * @throws MinigameException - * thrown if the teams set was invalid. - */ - ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws MinigameException; - - /** - * Returns the currently applied teams. - * - * @return components set; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<TeamId> getTeams() throws MinigameException; - - /** - * Removes components from this team. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the components. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeTeams(TeamId... set) throws MinigameException; - - /** - * Returns the currently applied components. - * - * @return components set; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<ComponentId> getComponents() throws MinigameException; - - /** - * Removes components from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the components. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws MinigameException; - - /** - * Returns the currently applied rule sets. - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<ArenaRuleSet> getArenaRuleSets() throws MinigameException; - - /** - * Removes rule sets from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the arena rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws MinigameException; - - /** - * Returns the currently applied rule sets. - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<AdminRuleSet> getAdminRuleSets() throws MinigameException; - - /** - * Removes rule sets from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the admin rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws MinigameException; - - /** - * Returns the currently component rule sets. - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<ComponentRuleSet> getComponentRuleSets() throws MinigameException; - - /** - * Removes rule sets from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the component rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws MinigameException; - - /** - * Returns the currently applied rule sets. - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<MatchRuleSet> getMatchRuleSets() throws MinigameException; - - /** - * Removes rule sets from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the arena rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws MinigameException; - - /** - * Returns the currently applied rule sets. - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<PlayerRuleSet> getPlayerRuleSets() throws MinigameException; - - /** - * Removes rule sets from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the arena rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws MinigameException; - - /** - * Returns the currently applied rule sets. - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<TeamRuleSet> getTeamRuleSets() throws MinigameException; - - /** - * Removes rule sets from this arena type. - * - * <p> - * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. - * </p> - * - * @param set - * the arena rule sets. - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws MinigameException; - - /** - * Selects the starting phase for this arena type. - * - * @param phase - * starting phase - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws MinigameException; - - /** - * Adds a match phase - * - * @param phases - * match phase - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws MinigameException; - - /** - * Returns the starting phase. - * - * @return starting phase. - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - MatchPhaseId getStartingPhase() throws MinigameException; - - /** - * Returns the currently applied phases (excluding start phase). - * - * @return rule sets; changes (remove) will be reflected back to this builder - * @throws MinigameException - * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. - */ - Iterable<MatchPhaseId> getPhases() throws MinigameException; - - /** - * Inherits all phases (including start phase) from given arena; this method must be called at first before manipulating the phases. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all phases (excluding start phase) from given arena; this method must be called at first before manipulating the phases. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits the start phase but not the other phases from given arena; this method must be called at first before manipulating the phases. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all match rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all player rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all team rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all admin rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all component rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all rules from given arena; this method must be called at first before manipulating the rule sets. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all components from given arena; this method must be called at first before manipulating the components. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits all teams from given arena; this method must be called at first before manipulating the components. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws MinigameException; - - /** - * Inherits everything (all phases and all rules) from given arena. - * - * @param type the arena type to inherit from - * @return this object for chaining. - * @throws MinigameException - * thrown if this method is called twice or too late. - */ - ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws MinigameException; +// /** +// * Applies rule sets to this arena type. +// * +// * @param set +// * the arena rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if the arena rule set was invalid. +// */ +// ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) throws McException; +// +// /** +// * Applies rule sets for administration. +// * +// * @param set +// * the admin rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if the admin rule set was invalid. +// */ +// ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws McException; +// +// /** +// * Applies rule sets for components. +// * +// * @param set +// * the component rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if the component rule set was invalid. +// */ +// ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws McException; +// +// /** +// * Applies rule sets for running match. +// * +// * @param set +// * the match rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if the match rule set was invalid. +// */ +// ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws McException; +// +// /** +// * Applies rule sets for players within arenas. +// * +// * @param set +// * the player rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if the player rule set was invalid. +// */ +// ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws McException; +// +// /** +// * Applies rule sets for teams within arenas. +// * +// * @param set +// * the team rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if the team rule set was invalid. +// */ +// ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws McException; +// +// /** +// * Applies components to this arena type. +// * +// * @param ids +// * the components set. +// * @return this object for chaining. +// * @throws McException +// * thrown if the components set was invalid. +// */ +// ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws McException; +// +// /** +// * Applies teams to this arena type. +// * +// * @param ids +// * the teams. +// * @return this object for chaining. +// * @throws McException +// * thrown if the teams set was invalid. +// */ +// ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws McException; +// +// /** +// * Returns the currently applied teams. +// * +// * @return components set; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<TeamId> getTeams() throws McException; +// +// /** +// * Removes components from this team. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the components. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeTeams(TeamId... set) throws McException; +// +// /** +// * Returns the currently applied components. +// * +// * @return components set; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<ComponentId> getComponents() throws McException; +// +// /** +// * Removes components from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the components. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws McException; +// +// /** +// * Returns the currently applied rule sets. +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<ArenaRuleSet> getArenaRuleSets() throws McException; +// +// /** +// * Removes rule sets from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the arena rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws McException; +// +// /** +// * Returns the currently applied rule sets. +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<AdminRuleSet> getAdminRuleSets() throws McException; +// +// /** +// * Removes rule sets from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the admin rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws McException; +// +// /** +// * Returns the currently component rule sets. +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<ComponentRuleSet> getComponentRuleSets() throws McException; +// +// /** +// * Removes rule sets from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the component rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws McException; +// +// /** +// * Returns the currently applied rule sets. +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<MatchRuleSet> getMatchRuleSets() throws McException; +// +// /** +// * Removes rule sets from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the arena rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws McException; +// +// /** +// * Returns the currently applied rule sets. +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<PlayerRuleSet> getPlayerRuleSets() throws McException; +// +// /** +// * Removes rule sets from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the arena rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws McException; +// +// /** +// * Returns the currently applied rule sets. +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<TeamRuleSet> getTeamRuleSets() throws McException; +// +// /** +// * Removes rule sets from this arena type. +// * +// * <p> +// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. +// * </p> +// * +// * @param set +// * the arena rule sets. +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws McException; +// +// /** +// * Selects the starting phase for this arena type. +// * +// * @param phase +// * starting phase +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws McException; +// +// /** +// * Adds a match phase +// * +// * @param phases +// * match phase +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws McException; +// +// /** +// * Returns the starting phase. +// * +// * @return starting phase. +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// MatchPhaseId getStartingPhase() throws McException; +// +// /** +// * Returns the currently applied phases (excluding start phase). +// * +// * @return rule sets; changes (remove) will be reflected back to this builder +// * @throws McException +// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. +// */ +// Iterable<MatchPhaseId> getPhases() throws McException; +// +// /** +// * Inherits all phases (including start phase) from given arena; this method must be called at first before manipulating the phases. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all phases (excluding start phase) from given arena; this method must be called at first before manipulating the phases. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits the start phase but not the other phases from given arena; this method must be called at first before manipulating the phases. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all match rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all player rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all team rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all admin rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all component rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all rules from given arena; this method must be called at first before manipulating the rule sets. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all components from given arena; this method must be called at first before manipulating the components. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits all teams from given arena; this method must be called at first before manipulating the components. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws McException; +// +// /** +// * Inherits everything (all phases and all rules) from given arena. +// * +// * @param type the arena type to inherit from +// * @return this object for chaining. +// * @throws McException +// * thrown if this method is called twice or too late. +// */ +// ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws McException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java index f4dea7ec..5c531598 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java @@ -15,7 +15,7 @@ package com.github.mce.minigames.api.arena; -import com.github.mce.minigames.api.MinigameException; +import de.minigameslib.mclib.api.McException; /** * Interface for arena type declarations. @@ -45,10 +45,10 @@ public interface ArenaTypeDeclarationInterface * @param arenaName * the internal arena name to be created * @return the newly created arena - * @throws MinigameException + * @throws McException * thrown if the name is already in use or if the arena type is invalid */ - ArenaInterface createArena(String arenaName) throws MinigameException; + ArenaInterface createArena(String arenaName) throws McException; /** * Returns the arena type name diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java index d4be7c6b..9dd0feeb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java @@ -15,15 +15,11 @@ package com.github.mce.minigames.api.arena; -import com.github.mce.minigames.api.arena.rules.AdminRuleId; -import com.github.mce.minigames.api.arena.rules.ArenaRuleId; -import com.github.mce.minigames.api.arena.rules.MatchRuleId; -import com.github.mce.minigames.api.arena.rules.PlayerRuleId; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.team.TeamId; import com.github.mce.minigames.api.team.TeamRuleId; +import de.minigameslib.mclib.impl.comp.ComponentId; + /** * A base interface for providing arena types. * @@ -32,90 +28,90 @@ public interface ArenaTypeProvider { - /** - * Returns the type of arenas declared for this minigame - * - * @return arena types. - */ - Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); - - /** - * Returns the default arena type. - * - * @return default arena type or {@code null} if it was not found. - */ - ArenaTypeDeclarationInterface getDefaultType(); - - /** - * Returns the arena type with given name. - * - * @param name - * arena type name. - * @return arena type or {@code null} if it was not found. - */ - ArenaTypeDeclarationInterface getType(String name); - - /** - * Returns the ids of declared administration rules. - * - * @return arena rules. - */ - Iterable<AdminRuleId> getAdminRules(); - - /** - * Returns the ids of declared match rules. - * - * @return match rules. - */ - Iterable<MatchRuleId> getMatchRules(); - - /** - * Returns the ids of declared player rules. - * - * @return player rules. - */ - Iterable<PlayerRuleId> getPlayerRules(); - - /** - * Returns the ids of declared team rules. - * - * @return team rules. - */ - Iterable<TeamRuleId> getTeamRules(); - - /** - * Returns the ids of declared component rules. - * - * @return component rules. - */ - Iterable<ComponentRuleId> getComponentRules(); - - /** - * Returns the ids of declared arena rules. - * - * @return arena rules. - */ - Iterable<ArenaRuleId> getArenaRules(); - - /** - * Returns the ids of declared components. - * - * @return components. - */ - Iterable<ComponentId> getComponents(); - - /** - * Returns the ids of declared phases. - * - * @return phases. - */ - Iterable<MatchPhaseId> getMatchPhases(); - - /** - * Returns the ids of teams. - * - * @return teams. - */ - Iterable<TeamId> getTeams(); +// /** +// * Returns the type of arenas declared for this minigame +// * +// * @return arena types. +// */ +// Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); +// +// /** +// * Returns the default arena type. +// * +// * @return default arena type or {@code null} if it was not found. +// */ +// ArenaTypeDeclarationInterface getDefaultType(); +// +// /** +// * Returns the arena type with given name. +// * +// * @param name +// * arena type name. +// * @return arena type or {@code null} if it was not found. +// */ +// ArenaTypeDeclarationInterface getType(String name); +// +// /** +// * Returns the ids of declared administration rules. +// * +// * @return arena rules. +// */ +// Iterable<AdminRuleId> getAdminRules(); +// +// /** +// * Returns the ids of declared match rules. +// * +// * @return match rules. +// */ +// Iterable<MatchRuleId> getMatchRules(); +// +// /** +// * Returns the ids of declared player rules. +// * +// * @return player rules. +// */ +// Iterable<PlayerRuleId> getPlayerRules(); +// +// /** +// * Returns the ids of declared team rules. +// * +// * @return team rules. +// */ +// Iterable<TeamRuleId> getTeamRules(); +// +// /** +// * Returns the ids of declared component rules. +// * +// * @return component rules. +// */ +// Iterable<ComponentRuleId> getComponentRules(); +// +// /** +// * Returns the ids of declared arena rules. +// * +// * @return arena rules. +// */ +// Iterable<ArenaRuleId> getArenaRules(); +// +// /** +// * Returns the ids of declared components. +// * +// * @return components. +// */ +// Iterable<ComponentId> getComponents(); +// +// /** +// * Returns the ids of declared phases. +// * +// * @return phases. +// */ +// Iterable<MatchPhaseId> getMatchPhases(); +// +// /** +// * Returns the ids of teams. +// * +// * @return teams. +// */ +// Iterable<TeamId> getTeams(); } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java index 10165c2e..8820d1a7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java @@ -15,13 +15,13 @@ package com.github.mce.minigames.api.arena; -import com.github.mce.minigames.api.config.ConfigurationBool; -import com.github.mce.minigames.api.config.ConfigurationObject; -import com.github.mce.minigames.api.config.ConfigurationString; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.config.ConfigurationValues; -import com.github.mce.minigames.api.locale.LocalizedConfigLine; -import com.github.mce.minigames.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.api.config.ConfigurationBool; +import de.minigameslib.mclib.api.config.ConfigurationObject; +import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; +import de.minigameslib.mclib.api.locale.LocalizedConfigLine; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; /** * The common arenas config file. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java deleted file mode 100644 index c9b6b566..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleId.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -import com.github.mce.minigames.api.RuleId; - -/** - * An interface used in enumerations to identify the administration rule. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - */ -public interface AdminRuleId extends RuleId -{ - - // marker interface - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java deleted file mode 100644 index d02caa93..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/AdminRuleSet.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -/** - * Base interface for admin rule sets. - * - * @author mepeisen - */ -public interface AdminRuleSet -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java deleted file mode 100644 index 3b4a3597..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRule.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -import org.bukkit.event.Event; - -import com.github.mce.minigames.api.MinigameException; - -/** - * A single arena rule. - * - * @author mepeisen - * - * @param <Evt> Bukkit Event class - * @param <MgEvt> Minigame event class - */ -public interface ArenaRule<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> -{ - - void passEvent(MgEvt event) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java deleted file mode 100644 index c8d665ab..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleId.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -import com.github.mce.minigames.api.RuleId; - -/** - * An interface used in enumerations to identify the arena rule. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - */ -public interface ArenaRuleId extends RuleId -{ - - // marker interface - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java deleted file mode 100644 index 5761d298..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/ArenaRuleSet.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -/** - * Base interface for arena rule sets. - * - * @author mepeisen - */ -public interface ArenaRuleSet -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java deleted file mode 100644 index ec067c3b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleId.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -import com.github.mce.minigames.api.RuleId; - -/** - * An interface used in enumerations to identify the match rule. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - * - */ -public interface MatchRuleId extends RuleId -{ - - // marker interface - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java deleted file mode 100644 index f76deac5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MatchRuleSet.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -/** - * Base interface for match rule sets. - * - * @author mepeisen - */ -public interface MatchRuleSet -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java deleted file mode 100644 index 0b90cb3f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/MinigameEvent.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -import org.bukkit.event.Event; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; - -/** - * Minigame event helper. - * - * @author mepeisen - * - * @param <Evt> Event class - * @param <MgEvt> Minigame event class - */ -public interface MinigameEvent<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> -{ - - /** - * Returns the original event - * @return original event this rule - */ - Evt getBukkitEvent(); - - /** - * Returns the library API. - * @return fast access to library API. - */ - MglibInterface getLib(); - - /** - * Returns the minigame (if any) associated with this event. - * @return minigame interface or {@code null} if this event was outside any minigame. - */ - MinigameInterface getMinigame(); - - /** - * Returns the arena causing this event. - * @return arena causing this event or {@code null} if this event was outside any arena. - */ - ArenaInterface getArena(); - - /** - * Returns the player causing this event. - * @return player causing this event or {@code null} if this event was not caused by any player. - */ - ArenaPlayerInterface getPlayer(); - - // stubbing - - /** - * Checks this event for given criteria and invokes either then or else statements. - * - * <p> - * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. - * </p> - * - * @param test - * test functions for testing the event matching any criteria. - * - * @return the outgoing stub to apply then or else consumers. - * - * @throws MinigameException - * will be thrown if either the test function or then/else consumers throw the exception. - */ - MgOutgoingStubbing<MgEvt> when(MgPredicate<MgEvt> test) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java deleted file mode 100644 index 35786c2c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleId.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -import com.github.mce.minigames.api.RuleId; - -/** - * An interface used in enumerations to identify the player rule. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - * - */ -public interface PlayerRuleId extends RuleId -{ - - // marker interface - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java deleted file mode 100644 index 4edf680b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/PlayerRuleSet.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules; - -/** - * Base interface for player rule sets. - * - * @author mepeisen - */ -public interface PlayerRuleSet -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java deleted file mode 100644 index 16bdb00d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinecraftVersionRange.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import com.github.mce.minigames.api.MinecraftVersionsType; - -/** - * Annotation to indicate a version range for minecraft events. - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(TYPE) -public @interface MinecraftVersionRange -{ - - /** - * Minimum version for minecraft servers. - * @return minimum versions. - */ - MinecraftVersionsType min() default MinecraftVersionsType.Unknown; - - /** - * maximum version for minecraft servers. - * @return maximum version. - */ - MinecraftVersionsType max() default MinecraftVersionsType.Unknown; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java deleted file mode 100644 index e8b6ce41..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAreaEffectCloudApplyEvent.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.AreaEffectCloudApplyEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the clouds location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameAreaEffectCloudApplyEvent extends MinigameEvent<AreaEffectCloudApplyEvent, MinigameAreaEffectCloudApplyEvent> -{ - - // TODO Main Entity (AreaEffectCloud) - - // TODO Affected Entities - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java deleted file mode 100644 index 070e5413..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameAsyncPlayerChatEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.AsyncPlayerChatEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player sending chat message (author)</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameAsyncPlayerChatEvent extends MinigameEvent<AsyncPlayerChatEvent, MinigameAsyncPlayerChatEvent> -{ - - // TODO who (sender) - // TODO whom (receipient) - // TODO what (message) - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java deleted file mode 100644 index 48b3ffc3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBreakEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockBreakEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player breaking the block</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player; if the player is not within arena passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockBreakEvent extends MinigameEvent<BlockBreakEvent, MinigameBlockBreakEvent> -{ - - // TODO player - // TODO block - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java deleted file mode 100644 index b815944c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockBurnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockBurnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockBurnEvent extends MinigameEvent<BlockBurnEvent, MinigameBlockBurnEvent> -{ - - // TODO block - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java deleted file mode 100644 index 58465af2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockCanBuildEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockCanBuildEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the block location (=the block being built)</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockCanBuildEvent extends MinigameEvent<BlockCanBuildEvent, MinigameBlockCanBuildEvent> -{ - - // TODO block we are trying to place on top of - // TODO material - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java deleted file mode 100644 index 7688e133..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDamageEvent.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockDamageEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player causing the damage.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player; if the player is not within arena passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockDamageEvent extends MinigameEvent<BlockDamageEvent, MinigameBlockDamageEvent> -{ - - // TODO player that causes the damage - // TODO damaged block - // TODO item in hand - // TODO insta break flag - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java deleted file mode 100644 index cdc7fa17..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockDispenseEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockDispenseEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from dispenser blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockDispenseEvent extends MinigameEvent<BlockDispenseEvent, MinigameBlockDispenseEvent> -{ - - // TODO dispenser block - // TODO dispensed item - // TODO velocity - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java deleted file mode 100644 index 2ca2f3a4..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExpEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockExpEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockExpEvent extends MinigameEvent<BlockExpEvent, MinigameBlockExpEvent> -{ - - // TODO target block - // TODO experience - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java deleted file mode 100644 index 646ca8fb..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockExplodeEvent.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockExplodeEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from exploding blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) -public interface MinigameBlockExplodeEvent extends MinigameEvent<BlockExplodeEvent, MinigameBlockExplodeEvent> -{ - - // TODO what (exploding blocks) - // TODO affected blocks - // TODO yield - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java deleted file mode 100644 index 8cc7d3c3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFadeEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockFadeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockFadeEvent extends MinigameEvent<BlockFadeEvent, MinigameBlockFadeEvent> -{ - - // TODO target block - // TODO block state - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java deleted file mode 100644 index c70290ed..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFormEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockFormEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockFormEvent extends MinigameEvent<BlockFormEvent, MinigameBlockFormEvent> -{ - - // TODO target block - // TODO block state - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java deleted file mode 100644 index 86cd701d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockFromToEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockFromToEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location (TODO we have two blocks: From/To)</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockFromToEvent extends MinigameEvent<BlockFromToEvent, MinigameBlockFromToEvent> -{ - - // TODO source block - // TODO target block (block face) - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java deleted file mode 100644 index 9ebd2744..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockGrowEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockGrowEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockGrowEvent extends MinigameEvent<BlockGrowEvent, MinigameBlockGrowEvent> -{ - - // TODO target block - // TODO block state - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java deleted file mode 100644 index 3a4969c1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockIgniteEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockIgniteEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported. (TODO Should we use the player if a player entity is ignite?)</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location (TODO how to respect the ignite block?)</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockIgniteEvent extends MinigameEvent<BlockIgniteEvent, MinigameBlockIgniteEvent> -{ - - // TODO target block - // TODO ignited player/entity/block - // TODO ignite cause - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java deleted file mode 100644 index 8ae4a0f2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockMultiPlaceEvent.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockMultiPlaceEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player placing the blocks.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockMultiPlaceEvent extends MinigameEvent<BlockMultiPlaceEvent, MinigameBlockMultiPlaceEvent> -{ - - // TODO target player - // TODO target block - // TODO blicked block - // TODO affected blocks - // TODO item in hand - // TODO can build - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java deleted file mode 100644 index a02505ae..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPhysicsEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockPhysicsEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockPhysicsEvent extends MinigameEvent<BlockPhysicsEvent, MinigameBlockPhysicsEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java deleted file mode 100644 index 76c64665..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonExtendEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockPistonExtendEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockPistonExtendEvent extends MinigameEvent<BlockPistonExtendEvent, MinigameBlockPistonExtendEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java deleted file mode 100644 index f50bb4ec..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPistonRetractEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockPistonRetractEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockPistonRetractEvent extends MinigameEvent<BlockPistonRetractEvent, MinigameBlockPistonRetractEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java deleted file mode 100644 index 4d74883c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockPlaceEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockPlaceEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player that places the block.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockPlaceEvent extends MinigameEvent<BlockPlaceEvent, MinigameBlockPlaceEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java deleted file mode 100644 index 93695a51..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockRedstoneEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockRedstoneEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockRedstoneEvent extends MinigameEvent<BlockRedstoneEvent, MinigameBlockRedstoneEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java deleted file mode 100644 index 20d8d650..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBlockSpreadEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.BlockSpreadEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBlockSpreadEvent extends MinigameEvent<BlockSpreadEvent, MinigameBlockSpreadEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java deleted file mode 100644 index bc5174c1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameBrewEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.BrewEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameBrewEvent extends MinigameEvent<BrewEvent, MinigameBrewEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java deleted file mode 100644 index 932947ae..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCauldronLevelChangeEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.CauldronLevelChangeEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameCauldronLevelChangeEvent extends MinigameEvent<CauldronLevelChangeEvent, MinigameCauldronLevelChangeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java deleted file mode 100644 index fa51bff6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCraftItemEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.CraftItemEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameCraftItemEvent extends MinigameEvent<CraftItemEvent, MinigameCraftItemEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java deleted file mode 100644 index 3ce64c12..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreatureSpawnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.CreatureSpawnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supprted.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from spawn location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameCreatureSpawnEvent extends MinigameEvent<CreatureSpawnEvent, MinigameCreatureSpawnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java deleted file mode 100644 index dce5e59d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameCreeperPowerEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.CreeperPowerEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from creeper location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameCreeperPowerEvent extends MinigameEvent<CreeperPowerEvent, MinigameCreeperPowerEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java deleted file mode 100644 index 62c2a970..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnchantItemEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.enchantment.EnchantItemEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player causing the event.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEnchantItemEvent extends MinigameEvent<EnchantItemEvent, MinigameEnchantItemEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java deleted file mode 100644 index 20461cfc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEnderDragonChangePhaseEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EnderDragonChangePhaseEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from ender dragon location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameEnderDragonChangePhaseEvent extends MinigameEvent<EnderDragonChangePhaseEvent, MinigameEnderDragonChangePhaseEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java deleted file mode 100644 index a3dacb8d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBlockFormEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.EntityBlockFormEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityBlockFormEvent extends MinigameEvent<EntityBlockFormEvent, MinigameEntityBlockFormEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java deleted file mode 100644 index 3156c51c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreakDoorEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityBreakDoorEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player breaking the door (if it is a player).</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or door location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityBreakDoorEvent extends MinigameEvent<EntityBreakDoorEvent, MinigameEntityBreakDoorEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java deleted file mode 100644 index 908bf4e3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityBreedEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityBreedEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the player is the breeder.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from child entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) -public interface MinigameEntityBreedEvent extends MinigameEvent<EntityBreedEvent, MinigameEntityBreedEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java deleted file mode 100644 index 73255bb3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityChangeBlockEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityChangeBlockEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityChangeBlockEvent extends MinigameEvent<EntityChangeBlockEvent, MinigameEntityChangeBlockEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java deleted file mode 100644 index d560e6e3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByBlockEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityCombustByBlockEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the player is the target entity.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or target entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityCombustByBlockEvent extends MinigameEvent<EntityCombustByBlockEvent, MinigameEntityCombustByBlockEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java deleted file mode 100644 index 9638a031..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustByEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityCombustByEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the player is the target entity.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or target entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityCombustByEntityEvent extends MinigameEvent<EntityCombustByEntityEvent, MinigameEntityCombustByEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java deleted file mode 100644 index b320905c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCombustEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityCombustEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player is the target entity.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or target entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityCombustEvent extends MinigameEvent<EntityCombustEvent, MinigameEntityCombustEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java deleted file mode 100644 index 6e0662ef..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityCreatePortalEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityCreatePortalEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player is the portal creator.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from portal location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityCreatePortalEvent extends MinigameEvent<EntityCreatePortalEvent, MinigameEntityCreatePortalEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java deleted file mode 100644 index 4a3e2db8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByBlockEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityDamageByBlockEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the target entity is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from target entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityDamageByBlockEvent extends MinigameEvent<EntityDamageByBlockEvent, MinigameEntityDamageByBlockEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java deleted file mode 100644 index 283d2c71..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageByEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityDamageByEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the target entity is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from target entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityDamageByEntityEvent extends MinigameEvent<EntityDamageByEntityEvent, MinigameEntityDamageByEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java deleted file mode 100644 index faef09b5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDamageEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityDamageEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the target entity is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from target entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityDamageEvent extends MinigameEvent<EntityDamageEvent, MinigameEntityDamageEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java deleted file mode 100644 index 732aa7d7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityDeathEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityDeathEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityDeathEvent extends MinigameEvent<EntityDeathEvent, MinigameEntityDeathEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java deleted file mode 100644 index 6575c671..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityExplodeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityExplodeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from explosion location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityExplodeEvent extends MinigameEvent<EntityExplodeEvent, MinigameEntityExplodeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java deleted file mode 100644 index 8594c99e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityInteractEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityInteractEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from target block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityInteractEvent extends MinigameEvent<EntityInteractEvent, MinigameEntityInteractEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java deleted file mode 100644 index 9e949278..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEnterEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityPortalEnterEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityPortalEnterEvent extends MinigameEvent<EntityPortalEnterEvent, MinigameEntityPortalEnterEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java deleted file mode 100644 index 86115ae0..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityPortalEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location (TODO we have two blocks: From/To)</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityPortalEvent extends MinigameEvent<EntityPortalEvent, MinigameEntityPortalEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java deleted file mode 100644 index c4dabe3c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityPortalExitEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityPortalExitEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityPortalExitEvent extends MinigameEvent<EntityPortalExitEvent, MinigameEntityPortalExitEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java deleted file mode 100644 index f662a1e4..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityRegainHealthEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityRegainHealthEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityRegainHealthEvent extends MinigameEvent<EntityRegainHealthEvent, MinigameEntityRegainHealthEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java deleted file mode 100644 index 1de9d886..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityShootBowEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityShootBowEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the shooter is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityShootBowEvent extends MinigameEvent<EntityShootBowEvent, MinigameEntityShootBowEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java deleted file mode 100644 index f49cd9c0..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntitySpawnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntitySpawnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from spawn location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntitySpawnEvent extends MinigameEvent<EntitySpawnEvent, MinigameEntitySpawnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java deleted file mode 100644 index 852c8f14..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTameEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityTameEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the tamer.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityTameEvent extends MinigameEvent<EntityTameEvent, MinigameEntityTameEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java deleted file mode 100644 index 850fa14a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityTargetEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the player is the target.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityTargetEvent extends MinigameEvent<EntityTargetEvent, MinigameEntityTargetEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java deleted file mode 100644 index d30e5578..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTargetLivingEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the player is the target.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityTargetLivingEntityEvent extends MinigameEvent<EntityTargetLivingEntityEvent, MinigameEntityTargetLivingEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java deleted file mode 100644 index bdb91859..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityTeleportEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityTeleportEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location (TODO we have two blocks: From/To)</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityTeleportEvent extends MinigameEvent<EntityTeleportEvent, MinigameEntityTeleportEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java deleted file mode 100644 index 2f7bc0eb..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityToggleGlideEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityToggleGlideEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the target entity is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or entity location.</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameEntityToggleGlideEvent extends MinigameEvent<EntityToggleGlideEvent, MinigameEntityToggleGlideEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java deleted file mode 100644 index 95972514..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameEntityUnleashEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.EntityUnleashEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameEntityUnleashEvent extends MinigameEvent<EntityUnleashEvent, MinigameEntityUnleashEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java deleted file mode 100644 index 34d50022..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExpBottleEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ExpBottleEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from bottle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameExpBottleEvent extends MinigameEvent<ExpBottleEvent, MinigameExpBottleEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java deleted file mode 100644 index d8efe657..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameExplosionPrimeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ExplosionPrimeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from entity location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameExplosionPrimeEvent extends MinigameEvent<ExplosionPrimeEvent, MinigameExplosionPrimeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java deleted file mode 100644 index 2ce3a1b7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFireworkExplodeEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.FireworkExplodeEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from firework location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) -public interface MinigameFireworkExplodeEvent extends MinigameEvent<FireworkExplodeEvent, MinigameFireworkExplodeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java deleted file mode 100644 index a5c30e6e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFoodLevelChangeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.FoodLevelChangeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>passed to the player if the entity is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or entity location.</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameFoodLevelChangeEvent extends MinigameEvent<FoodLevelChangeEvent, MinigameFoodLevelChangeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java deleted file mode 100644 index 8e72f892..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceBurnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.FurnaceBurnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameFurnaceBurnEvent extends MinigameEvent<FurnaceBurnEvent, MinigameFurnaceBurnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java deleted file mode 100644 index b7037b7e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameFurnaceSmeltEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.FurnaceSmeltEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameFurnaceSmeltEvent extends MinigameEvent<FurnaceSmeltEvent, MinigameFurnaceSmeltEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java deleted file mode 100644 index f81a0a1e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakByEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.hanging.HangingBreakByEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the remover is a player.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameHangingBreakByEntityEvent extends MinigameEvent<HangingBreakByEntityEvent, MinigameHangingBreakByEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java deleted file mode 100644 index 6fd247a2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingBreakEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.hanging.HangingBreakEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported (see {@link MinigameHangingBreakByEntityEvent} for details).</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from hanging location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameHangingBreakEvent extends MinigameEvent<HangingBreakEvent, MinigameHangingBreakEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java deleted file mode 100644 index 0f9c4ac1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHangingPlaceEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.hanging.HangingPlaceEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player placing the hanging.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameHangingPlaceEvent extends MinigameEvent<HangingPlaceEvent, MinigameHangingPlaceEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java deleted file mode 100644 index c76b8091..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameHorseJumpEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.HorseJumpEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to player if a player is riding the horse.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or from horse location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameHorseJumpEvent extends MinigameEvent<HorseJumpEvent, MinigameHorseJumpEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java deleted file mode 100644 index 2cc0775c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryClickEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryClickEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryClickEvent extends MinigameEvent<InventoryClickEvent, MinigameInventoryClickEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java deleted file mode 100644 index 1e3e4543..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCloseEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryCloseEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryCloseEvent extends MinigameEvent<InventoryCloseEvent, MinigameInventoryCloseEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java deleted file mode 100644 index 39f45d4b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryCreativeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryCreativeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryCreativeEvent extends MinigameEvent<InventoryCreativeEvent, MinigameInventoryCreativeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java deleted file mode 100644 index bc841c9a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryDragEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryDragEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryDragEvent extends MinigameEvent<InventoryDragEvent, MinigameInventoryDragEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java deleted file mode 100644 index 54d6b697..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryEvent extends MinigameEvent<InventoryEvent, MinigameInventoryEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java deleted file mode 100644 index 305aacb5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryInteractEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryInteractEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryInteractEvent extends MinigameEvent<InventoryInteractEvent, MinigameInventoryInteractEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java deleted file mode 100644 index bc596976..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryMoveItemEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryMoveItemEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryMoveItemEvent extends MinigameEvent<InventoryMoveItemEvent, MinigameInventoryMoveItemEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java deleted file mode 100644 index f69cd59e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryOpenEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryOpenEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryOpenEvent extends MinigameEvent<InventoryOpenEvent, MinigameInventoryOpenEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java deleted file mode 100644 index 78df48da..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameInventoryPickupItemEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.InventoryPickupItemEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player viewing the inventory.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameInventoryPickupItemEvent extends MinigameEvent<InventoryPickupItemEvent, MinigameInventoryPickupItemEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java deleted file mode 100644 index 61ded0d8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemDespawnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ItemDespawnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from item location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameItemDespawnEvent extends MinigameEvent<ItemDespawnEvent, MinigameItemDespawnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java deleted file mode 100644 index 83a4269c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemMergeEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ItemMergeEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from item location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) -public interface MinigameItemMergeEvent extends MinigameEvent<ItemMergeEvent, MinigameItemMergeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java deleted file mode 100644 index 457930b7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameItemSpawnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ItemSpawnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from item location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameItemSpawnEvent extends MinigameEvent<ItemSpawnEvent, MinigameItemSpawnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java deleted file mode 100644 index a3a6fb3a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLeavesDecayEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.LeavesDecayEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from block location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameLeavesDecayEvent extends MinigameEvent<LeavesDecayEvent, MinigameLeavesDecayEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java deleted file mode 100644 index a5be7677..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameLingeringPotionSplashEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.LingeringPotionSplashEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the clouds location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameLingeringPotionSplashEvent extends MinigameEvent<LingeringPotionSplashEvent, MinigameLingeringPotionSplashEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java deleted file mode 100644 index f7a8154f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameNotePlayEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.NotePlayEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the blocks location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameNotePlayEvent extends MinigameEvent<NotePlayEvent, MinigameNotePlayEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java deleted file mode 100644 index 46b4de0b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePigZapEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.PigZapEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the pigs location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePigZapEvent extends MinigameEvent<PigZapEvent, MinigamePigZapEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java deleted file mode 100644 index 210316c8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAchievementAwardedEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerAchievementAwardedEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerAchievementAwardedEvent extends MinigameEvent<PlayerAchievementAwardedEvent, MinigamePlayerAchievementAwardedEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java deleted file mode 100644 index ac5a3796..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerAnimationEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerAnimationEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerAnimationEvent extends MinigameEvent<PlayerAnimationEvent, MinigamePlayerAnimationEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java deleted file mode 100644 index ea489edc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerArmorStandManipulateEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R2) -public interface MinigamePlayerArmorStandManipulateEvent extends MinigameEvent<PlayerArmorStandManipulateEvent, MinigamePlayerArmorStandManipulateEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java deleted file mode 100644 index 08775799..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedEnterEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerBedEnterEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerBedEnterEvent extends MinigameEvent<PlayerBedEnterEvent, MinigamePlayerBedEnterEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java deleted file mode 100644 index f7de6a91..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBedLeaveEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerBedLeaveEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerBedLeaveEvent extends MinigameEvent<PlayerBedLeaveEvent, MinigamePlayerBedLeaveEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java deleted file mode 100644 index 3dcd92fd..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketEmptyEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerBucketEmptyEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerBucketEmptyEvent extends MinigameEvent<PlayerBucketEmptyEvent, MinigamePlayerBucketEmptyEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java deleted file mode 100644 index b0366eb0..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerBucketFillEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerBucketFillEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerBucketFillEvent extends MinigameEvent<PlayerBucketFillEvent, MinigamePlayerBucketFillEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java deleted file mode 100644 index 53aa9aef..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedMainHandEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerChangedMainHandEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_10_R1) -public interface MinigamePlayerChangedMainHandEvent extends MinigameEvent<PlayerChangedMainHandEvent, MinigamePlayerChangedMainHandEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java deleted file mode 100644 index a619c9cf..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChangedWorldEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerChangedWorldEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerChangedWorldEvent extends MinigameEvent<PlayerChangedWorldEvent, MinigamePlayerChangedWorldEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java deleted file mode 100644 index 45f18066..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChannelEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerChannelEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerChannelEvent extends MinigameEvent<PlayerChannelEvent, MinigamePlayerChannelEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java deleted file mode 100644 index 72056cfa..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerChatEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerChatEvent extends MinigameEvent<PlayerChatEvent, MinigamePlayerChatEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java deleted file mode 100644 index ab6660d4..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerChatTabCompleteEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerChatTabCompleteEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerChatTabCompleteEvent extends MinigameEvent<PlayerChatTabCompleteEvent, MinigamePlayerChatTabCompleteEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java deleted file mode 100644 index 7eda9b0e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerCommandPreprocessEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerCommandPreprocessEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerCommandPreprocessEvent extends MinigameEvent<PlayerCommandPreprocessEvent, MinigamePlayerCommandPreprocessEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java deleted file mode 100644 index 445d911f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDeathEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.PlayerDeathEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerDeathEvent extends MinigameEvent<PlayerDeathEvent, MinigamePlayerDeathEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java deleted file mode 100644 index 39da02df..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerDropItemEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerDropItemEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerDropItemEvent extends MinigameEvent<PlayerDropItemEvent, MinigamePlayerDropItemEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java deleted file mode 100644 index 27501318..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEditBookEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerEditBookEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerEditBookEvent extends MinigameEvent<PlayerEditBookEvent, MinigamePlayerEditBookEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java deleted file mode 100644 index 26f9330c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerEggThrowEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerEggThrowEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerEggThrowEvent extends MinigameEvent<PlayerEggThrowEvent, MinigamePlayerEggThrowEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java deleted file mode 100644 index 5a667863..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerExpChangeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerExpChangeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerExpChangeEvent extends MinigameEvent<PlayerExpChangeEvent, MinigamePlayerExpChangeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java deleted file mode 100644 index 42a9e402..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerFishEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerFishEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerFishEvent extends MinigameEvent<PlayerFishEvent, MinigamePlayerFishEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java deleted file mode 100644 index 0873ff52..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerGameModeChangeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerGameModeChangeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerGameModeChangeEvent extends MinigameEvent<PlayerGameModeChangeEvent, MinigamePlayerGameModeChangeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java deleted file mode 100644 index 785069a9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractAtEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerInteractAtEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerInteractAtEntityEvent extends MinigameEvent<PlayerInteractAtEntityEvent, MinigamePlayerInteractAtEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java deleted file mode 100644 index 2d5fd3ab..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerInteractEntityEvent extends MinigameEvent<PlayerInteractEntityEvent, MinigamePlayerInteractEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java deleted file mode 100644 index cc1ccdb6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInteractEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerInteractEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerInteractEvent extends MinigameEvent<PlayerInteractEvent, MinigamePlayerInteractEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java deleted file mode 100644 index 10f40c87..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerInventoryEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerInventoryEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerInventoryEvent extends MinigameEvent<PlayerInventoryEvent, MinigamePlayerInventoryEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java deleted file mode 100644 index 3423d624..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemBreakEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerItemBreakEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerItemBreakEvent extends MinigameEvent<PlayerItemBreakEvent, MinigamePlayerItemBreakEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java deleted file mode 100644 index 3fb45437..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemConsumeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerItemConsumeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerItemConsumeEvent extends MinigameEvent<PlayerItemConsumeEvent, MinigamePlayerItemConsumeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java deleted file mode 100644 index 014e42bd..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemDamageEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerItemDamageEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerItemDamageEvent extends MinigameEvent<PlayerItemDamageEvent, MinigamePlayerItemDamageEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java deleted file mode 100644 index 80fd4b53..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerItemHeldEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerItemHeldEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerItemHeldEvent extends MinigameEvent<PlayerItemHeldEvent, MinigamePlayerItemHeldEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java deleted file mode 100644 index c42829c6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerJoinEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerJoinEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerJoinEvent extends MinigameEvent<PlayerJoinEvent, MinigamePlayerJoinEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java deleted file mode 100644 index cac6c99e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerKickEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerKickEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerKickEvent extends MinigameEvent<PlayerKickEvent, MinigamePlayerKickEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java deleted file mode 100644 index 5cb9115f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLeashEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.PlayerLeashEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerLeashEntityEvent extends MinigameEvent<PlayerLeashEntityEvent, MinigamePlayerLeashEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java deleted file mode 100644 index 9e45100e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLevelChangeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerLevelChangeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerLevelChangeEvent extends MinigameEvent<PlayerLevelChangeEvent, MinigamePlayerLevelChangeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java deleted file mode 100644 index 2a8fb3f7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerLoginEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerLoginEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerLoginEvent extends MinigameEvent<PlayerLoginEvent, MinigamePlayerLoginEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java deleted file mode 100644 index eb6981ec..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerMoveEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerMoveEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerMoveEvent extends MinigameEvent<PlayerMoveEvent, MinigamePlayerMoveEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java deleted file mode 100644 index a807198f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupArrowEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerPickupArrowEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigamePlayerPickupArrowEvent extends MinigameEvent<PlayerPickupArrowEvent, MinigamePlayerPickupArrowEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java deleted file mode 100644 index 80adbf5b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPickupItemEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerPickupItemEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerPickupItemEvent extends MinigameEvent<PlayerPickupItemEvent, MinigamePlayerPickupItemEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java deleted file mode 100644 index 899e62f7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerPortalEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerPortalEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerPortalEvent extends MinigameEvent<PlayerPortalEvent, MinigamePlayerPortalEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java deleted file mode 100644 index 4a2b5ef4..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerQuitEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerQuitEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerQuitEvent extends MinigameEvent<PlayerQuitEvent, MinigamePlayerQuitEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java deleted file mode 100644 index e722fc5e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRegisterChannelEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerRegisterChannelEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerRegisterChannelEvent extends MinigameEvent<PlayerRegisterChannelEvent, MinigamePlayerRegisterChannelEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java deleted file mode 100644 index e8f7b414..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerResourcePackStatusEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerResourcePackStatusEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_8_R3) -public interface MinigamePlayerResourcePackStatusEvent extends MinigameEvent<PlayerResourcePackStatusEvent, MinigamePlayerResourcePackStatusEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java deleted file mode 100644 index 64993581..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerRespawnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerRespawnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerRespawnEvent extends MinigameEvent<PlayerRespawnEvent, MinigamePlayerRespawnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java deleted file mode 100644 index 3b97f736..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerShearEntityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerShearEntityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerShearEntityEvent extends MinigameEvent<PlayerShearEntityEvent, MinigamePlayerShearEntityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java deleted file mode 100644 index 85aa3a56..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSpawnLocationEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerSpawnLocationEvent extends MinigameEvent<PlayerSpawnLocationEvent, MinigamePlayerSpawnLocationEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java deleted file mode 100644 index 1fbec351..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerStatisticIncrementEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerStatisticIncrementEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerStatisticIncrementEvent extends MinigameEvent<PlayerStatisticIncrementEvent, MinigamePlayerStatisticIncrementEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java deleted file mode 100644 index 8e303903..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerSwapHandItemsEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerSwapHandItemsEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigamePlayerSwapHandItemsEvent extends MinigameEvent<PlayerSwapHandItemsEvent, MinigamePlayerSwapHandItemsEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java deleted file mode 100644 index 2d4fc273..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerTeleportEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerTeleportEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerTeleportEvent extends MinigameEvent<PlayerTeleportEvent, MinigamePlayerTeleportEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java deleted file mode 100644 index cf067931..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleFlightEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerToggleFlightEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerToggleFlightEvent extends MinigameEvent<PlayerToggleFlightEvent, MinigamePlayerToggleFlightEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java deleted file mode 100644 index e53a8ea5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSneakEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerToggleSneakEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerToggleSneakEvent extends MinigameEvent<PlayerToggleSneakEvent, MinigamePlayerToggleSneakEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java deleted file mode 100644 index e6c7da46..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerToggleSprintEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerToggleSprintEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerToggleSprintEvent extends MinigameEvent<PlayerToggleSprintEvent, MinigamePlayerToggleSprintEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java deleted file mode 100644 index 795db12e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerUnregisterChannelEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerUnregisterChannelEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerUnregisterChannelEvent extends MinigameEvent<PlayerUnregisterChannelEvent, MinigamePlayerUnregisterChannelEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java deleted file mode 100644 index 3b2f47a3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePlayerVelocityEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.player.PlayerVelocityEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerVelocityEvent extends MinigameEvent<PlayerVelocityEvent, MinigamePlayerVelocityEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java deleted file mode 100644 index 88999bd1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePotionSplashEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.PotionSplashEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the potion location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePotionSplashEvent extends MinigameEvent<PotionSplashEvent, MinigamePotionSplashEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java deleted file mode 100644 index e31bd497..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareAnvilEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.PrepareAnvilEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player doing the repair.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigamePrepareAnvilEvent extends MinigameEvent<PrepareAnvilEvent, MinigamePrepareAnvilEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java deleted file mode 100644 index 00baa67d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemCraftEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.inventory.PrepareItemCraftEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player crafting the items</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePrepareItemCraftEvent extends MinigameEvent<PrepareItemCraftEvent, MinigamePrepareItemCraftEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java deleted file mode 100644 index 1e60d5c9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigamePrepareItemEnchantEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player doing the enchant.</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePrepareItemEnchantEvent extends MinigameEvent<PrepareItemEnchantEvent, MinigamePrepareItemEnchantEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java deleted file mode 100644 index 52ae1f57..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileHitEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ProjectileHitEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the shooter is a player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or projectile location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameProjectileHitEvent extends MinigameEvent<ProjectileHitEvent, MinigameProjectileHitEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java deleted file mode 100644 index e8555136..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameProjectileLaunchEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.ProjectileLaunchEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the player if the shooter is a player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player or projectile location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameProjectileLaunchEvent extends MinigameEvent<ProjectileLaunchEvent, MinigameProjectileLaunchEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java deleted file mode 100644 index f503de65..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepDyeWoolEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.SheepDyeWoolEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the sheep location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameSheepDyeWoolEvent extends MinigameEvent<SheepDyeWoolEvent, MinigameSheepDyeWoolEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java deleted file mode 100644 index 69df75d7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSheepRegrowWoolEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.SheepRegrowWoolEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the sheep location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameSheepRegrowWoolEvent extends MinigameEvent<SheepRegrowWoolEvent, MinigameSheepRegrowWoolEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java deleted file mode 100644 index d79d81c7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSignChangeEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.block.SignChangeEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the sign location/ ownership</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameSignChangeEvent extends MinigameEvent<SignChangeEvent, MinigameSignChangeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java deleted file mode 100644 index 1f42077c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSlimeSplitEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.SlimeSplitEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the slime location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameSlimeSplitEvent extends MinigameEvent<SlimeSplitEvent, MinigameSlimeSplitEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java deleted file mode 100644 index 6916f01a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameSpawnerSpawnEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.SpawnerSpawnEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the spawner location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameSpawnerSpawnEvent extends MinigameEvent<SpawnerSpawnEvent, MinigameSpawnerSpawnEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java deleted file mode 100644 index 0828da9a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleBlockCollisionEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleBlockCollisionEvent extends MinigameEvent<VehicleBlockCollisionEvent, MinigameVehicleBlockCollisionEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java deleted file mode 100644 index 04e3e447..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleCreateEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleCreateEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleCreateEvent extends MinigameEvent<VehicleCreateEvent, MinigameVehicleCreateEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java deleted file mode 100644 index 42100e24..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDamageEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleDamageEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleDamageEvent extends MinigameEvent<VehicleDamageEvent, MinigameVehicleDamageEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java deleted file mode 100644 index dc2451e6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleDestroyEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleDestroyEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleDestroyEvent extends MinigameEvent<VehicleDestroyEvent, MinigameVehicleDestroyEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java deleted file mode 100644 index 8ee2009b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEnterEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleEnterEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleEnterEvent extends MinigameEvent<VehicleEnterEvent, MinigameVehicleEnterEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java deleted file mode 100644 index 90269c83..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleEntityCollisionEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleEntityCollisionEvent extends MinigameEvent<VehicleEntityCollisionEvent, MinigameVehicleEntityCollisionEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java deleted file mode 100644 index 39fba504..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleExitEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleExitEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleExitEvent extends MinigameEvent<VehicleExitEvent, MinigameVehicleExitEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java deleted file mode 100644 index e8dd8a6a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleMoveEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleMoveEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleMoveEvent extends MinigameEvent<VehicleMoveEvent, MinigameVehicleMoveEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java deleted file mode 100644 index 6b69e666..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVehicleUpdateEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.vehicle.VehicleUpdateEvent; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the target player riding the vehicle</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player or vehicle location</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameVehicleUpdateEvent extends MinigameEvent<VehicleUpdateEvent, MinigameVehicleUpdateEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java deleted file mode 100644 index cc7ab6db..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerAcquireTradeEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.VillagerAcquireTradeEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the trading player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameVillagerAcquireTradeEvent extends MinigameEvent<VillagerAcquireTradeEvent, MinigameVillagerAcquireTradeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java deleted file mode 100644 index d72fc224..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/bevents/MinigameVillagerReplenishTradeEvent.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.bevents; - -import org.bukkit.event.entity.VillagerReplenishTradeEvent; - -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Minigame event representation of corresponding bukkit event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the tarding player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from the player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -@MinecraftVersionRange(min = MinecraftVersionsType.V1_9_R1) -public interface MinigameVillagerReplenishTradeEvent extends MinigameEvent<VillagerReplenishTradeEvent, MinigameVillagerReplenishTradeEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java index 41dd01e6..cc63e239 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaCreateEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent, MinigameArenaCreateEvent> +public interface MinigameArenaCreateEvent extends MinecraftEvent<ArenaCreateEvent, MinigameArenaCreateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java index 2356d9bb..0a079a43 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaCreatedEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaCreatedEvent extends MinigameEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> +public interface MinigameArenaCreatedEvent extends MinecraftEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java index 57867a2c..1208ac03 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaDeleteEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaDeleteEvent extends MinigameEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> +public interface MinigameArenaDeleteEvent extends MinecraftEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java index 01fd26d5..748aeb3e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaDeletedEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaDeletedEvent extends MinigameEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> +public interface MinigameArenaDeletedEvent extends MinecraftEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java index 8101350f..358081f7 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaMaintenanceEvent extends MinigameEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> +public interface MinigameArenaMaintenanceEvent extends MinecraftEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java index a1e372c2..46410a63 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerJoinEvent extends MinigameEvent<ArenaPlayerJoinEvent, MinigameArenaPlayerJoinEvent> +public interface MinigameArenaPlayerJoinEvent extends MinecraftEvent<ArenaPlayerJoinEvent, MinigameArenaPlayerJoinEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java index 74a2fcdf..a0cb072f 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerJoinedEvent extends MinigameEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> +public interface MinigameArenaPlayerJoinedEvent extends MinecraftEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java index 5a6c7e70..1d12608b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerJoinedQueueEvent extends MinigameEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> +public interface MinigameArenaPlayerJoinedQueueEvent extends MinecraftEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java index 508fd43c..b8b680c0 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaPlayerLeavesQueueEvent extends MinigameEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> +public interface MinigameArenaPlayerLeavesQueueEvent extends MinecraftEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java index e6fd16c8..f967a5bc 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java @@ -15,9 +15,10 @@ package com.github.mce.minigames.api.arena.rules.mevents; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; import com.github.mce.minigames.api.event.ArenaStateEvent; +import de.minigameslib.mclib.api.event.MinecraftEvent; + /** * Minigame event representation of corresponding minigame event. * @@ -34,7 +35,7 @@ * * @author mepeisen */ -public interface MinigameArenaStateEvent extends MinigameEvent<ArenaStateEvent, MinigameArenaStateEvent> +public interface MinigameArenaStateEvent extends MinecraftEvent<ArenaStateEvent, MinigameArenaStateEvent> { // TODO default stubbings diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java deleted file mode 100644 index bae8be89..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerCloseGuiEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player closing the gui</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerCloseGuiEvent extends MinigameEvent<PlayerCloseGuiEvent, MinigamePlayerCloseGuiEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java deleted file mode 100644 index 951a7092..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerDisplayGuiPageEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player viewing the gui</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerDisplayGuiPageEvent extends MinigameEvent<PlayerDisplayGuiPageEvent, MinigamePlayerDisplayGuiPageEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java deleted file mode 100644 index cced952c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerGuiClickEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.PlayerGuiClickEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player clicking an item</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerGuiClickEvent extends MinigameEvent<PlayerGuiClickEvent, MinigamePlayerGuiClickEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java deleted file mode 100644 index 783e0bca..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigamePlayerOpenGuiEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player opening the gui</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the arena calculated from player</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigamePlayerOpenGuiEvent extends MinigameEvent<PlayerOpenGuiEvent, MinigamePlayerOpenGuiEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java deleted file mode 100644 index e55be80c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractCompositeCommandHandler.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.cmd; - -import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import java.util.stream.Collectors; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MinigameException; - -/** - * A handler for enabling sub commands. - * - * @author mepeisen - */ -public abstract class AbstractCompositeCommandHandler implements CommandHandlerInterface -{ - - /** - * the configured sub commands (ordered). - */ - protected Map<String, SubCommandHandlerInterface> subCommands = new TreeMap<>(); - - /** - * pre parse the command. - * - * @param command - * command - * @return {@code true} if the execution can proceed. - * @throws MinigameException - * thrown if there are problems. - */ - protected boolean pre(CommandInterface command) throws MinigameException - { - // only in-game - command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); - - return true; - } - - @Override - public void handle(CommandInterface command) throws MinigameException - { - if (!pre(command)) - { - return; - } - - // check for sub command - if (command.getArgs().length == 0) - { - sendUsage(command); - return; - } - - final String name = command.getArgs()[0].toLowerCase(); - final CommandHandlerInterface handler = this.subCommands.get(name); - if (handler == null) - { - command.send(CommonMessages.CompositeUnknownSubCommand, command.getCommandPath(), command.getArgs()[0]); - sendUsage(command); - return; - } - - handler.handle(command.consumeArgs(1)); - } - - /** - * Injects a new sub command. - * - * @param name - * sub command name - * @param handler - * handler - * @return {@code true} if the sub command was added, {@code false} if it already exists. - */ - public boolean injectSubCommand(String name, SubCommandHandlerInterface handler) - { - if (this.subCommands.containsKey(name.toLowerCase())) - { - // TODO logging - return false; - } - this.subCommands.put(name.toLowerCase(), handler); - return true; - } - - /** - * Sends usage information. - * - * @param command - * the command to be used. - */ - protected abstract void sendUsage(CommandInterface command); - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException - { - if (command.getArgs().length > 0) - { - final String name = command.getArgs()[0].toLowerCase(); - final CommandHandlerInterface handler = this.subCommands.get(name); - if (handler == null) - { - return Collections.emptyList(); - } - return handler.onTabComplete(command.consumeArgs(1), lastArg); - } - return new ArrayList<>(this.subCommands.keySet()).stream().filter(elm -> elm.startsWith(lastArg)).collect(Collectors.toList()); - } - - /** - * Returns the sub command by name. - * @param key name of the sub command - * @return the sub command. - */ - public SubCommandHandlerInterface getSubCommand(String key) - { - return this.subCommands.get(key); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java deleted file mode 100644 index 77f67b19..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/AbstractPagableCommandHandler.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.cmd; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MinigameException; - -/** - * A handler for pageable command output. - * - * @author mepeisen - */ -public abstract class AbstractPagableCommandHandler implements CommandHandlerInterface -{ - - /** - * Counts the lines this command will return. - * - * @param command - * command to proceed - * @return number of returned lines. - */ - protected abstract int getLineCount(CommandInterface command); - - /** - * Returns the localized header line - * - * @param command - * command to proceed - * @return A header line, for example "help for command /mg2"; use the toArgs method of the localizedMessage. - */ - protected abstract Serializable getHeader(CommandInterface command); - - /** - * Returns the lines - * - * @param command - * command to proceed - * @param start - * starting index (first line starts with 0) - * @param count - * number of lines to be returned. - * @return lines - */ - protected abstract Serializable[] getLines(CommandInterface command, int start, int count); - - @Override - public void handle(CommandInterface command) throws MinigameException - { - int start = 0; - int page = 1; - int pageLimit = 10; - int lineCount = this.getLineCount(command); - int pageCount = (int) Math.ceil((double)lineCount / pageLimit); - if (pageCount == 0) - { - pageCount++; - } - - if (command.getArgs().length > 1) - { - sendUsage(command); - return; - } - - if (command.getArgs().length == 1) - { - try - { - page = Integer.parseInt(command.getArgs()[0]); - if (page < 1) - { - sendWrongPage(command, page, pageCount); - return; - } - if (page > pageCount && page != 1) - { - sendWrongPage(command, page, pageCount); - return; - } - start = (page - 1) * pageLimit; - } - catch (@SuppressWarnings("unused") NumberFormatException ex) - { - sendNFE(command); - sendUsage(command); - return; - } - } - - command.send(CommonMessages.PagedHeader, this.getHeader(command), page, pageCount); - int i = start + 1; - for (Serializable line : this.getLines(command, start, pageLimit)) - { - command.send(CommonMessages.PagedLine, line, i); - i++; - } - } - - /** - * Sends a wrong page number error. - * - * @param command - * the command - * @param page - * the page number that was given by arguments - * @param pageCount - * the total page count. - */ - private void sendWrongPage(CommandInterface command, int page, int pageCount) - { - command.send(CommonMessages.PagedWrongPageNum, page, pageCount); - } - - /** - * Sends a number format error. - * - * @param command - * the command - */ - private void sendNFE(CommandInterface command) - { - command.send(CommonMessages.PagedInvalidNumber); - } - - /** - * sends a usage info. - * - * @param command - * the command. - */ - private void sendUsage(CommandInterface command) - { - command.send(CommonMessages.PageUsage, command.getCommandPath()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException - { - return Collections.emptyList(); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java deleted file mode 100644 index 60e105c0..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandHandlerInterface.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.cmd; - -import java.util.List; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Interface for command handling. - * - * @author mepeisen - */ -public interface CommandHandlerInterface -{ - - /** - * Handles given command. - * - * @param command - * the command to handle. - * - * @throws MinigameException - * thrown if there are any problems during command handling. - */ - void handle(CommandInterface command) throws MinigameException; - - /** - * On Tab complete handler. - * - * @param command - * the command to handle. - * @param lastArg - * the last argument to be completed. - * @return list of possible command completions. - * - * @throws MinigameException - * thrown if there are any problems during command handling. - */ - List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java deleted file mode 100644 index 8b5f7047..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/CommandInterface.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.cmd; - -import java.io.Serializable; -import java.util.Locale; - -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; - -/** - * Interface for commands passed to command handler. - * - * @author mepeisen - */ -public interface CommandInterface -{ - - /** - * Returns the bukkit command sender. - * - * @return bukkit command sender. - */ - CommandSender getSender(); - - /** - * Returns the arena player for this command/ the command sender. - * - * @return the arena player or {@code null} if the sender is not a regular bukkit player. - */ - ArenaPlayerInterface getPlayer(); - - /** - * Returns the command. - * - * @return command - */ - Command getCommand(); - - /** - * Returns the label - * - * @return label - */ - String getLabel(); - - /** - * Returns the command arguments - * - * @return arguments. - */ - String[] getArgs(); - - /** - * Returns a new command interface consuming given amount of arguments. - * - * @param count - * number of arguments to consume - * @return new command interface containing remaining arguments. - */ - CommandInterface consumeArgs(int count); - - /** - * Returns the command path being used before the arguments. - * @return current command path. - */ - String getCommandPath(); - - /** - * Returns the locale of the sender. - * @return senders locale - */ - Locale getLocale(); - - /** - * Checks if the sender is an operator - * @return {@code true} for operators. - */ - default boolean isOp() - { - return this.getSender().isOp(); - } - - /** - * Sends a message to command sender - * @param msg message to send - * @param args message arguments - */ - default void send(LocalizedMessageInterface msg, Serializable... args) - { - if (this.getPlayer() != null) - { - this.getPlayer().sendMessage(msg, args); - } - else - { - final Locale locale = this.getLocale(); - final boolean isAdmin = this.getSender().isOp(); - final String msg2 = msg.toArg(args).apply(locale, isAdmin); - switch (msg.getSeverity()) - { - default: - case Error: - this.getSender().sendMessage(ChatColor.DARK_RED + msg2); - break; - case Information: - this.getSender().sendMessage(ChatColor.WHITE + msg2); - break; - case Loser: - this.getSender().sendMessage(ChatColor.RED + msg2); - break; - case Success: - this.getSender().sendMessage(ChatColor.GREEN + msg2); - break; - case Warning: - this.getSender().sendMessage(ChatColor.YELLOW + msg2); - break; - case Winner: - this.getSender().sendMessage(ChatColor.GOLD + msg2); - break; - } - - } - } - - /** - * Checks this command for given criteria and invokes either then or else statements. - * - * <p> - * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. - * </p> - * - * @param test - * test functions for testing the command matching any criteria. - * - * @return the outgoing stub to apply then or else consumers. - * - * @throws MinigameException - * will be thrown if either the test function or then/else consumers throw the exception. - */ - MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException; - - /** - * Returns a test function to check if the command sender is a player. - * - * @return predicate to return {@code true} if the command sender is a player. - */ - static MgPredicate<CommandInterface> isPlayer() - { - return (cmd) -> cmd.getSender() instanceof Player; - } - - /** - * Checks for given permission and if player does not have permission throws a MinigameException. - * @param perm - * @param command - * @throws MinigameException - */ - default void permThrowException(PermissionsInterface perm, String command) throws MinigameException - { - getPlayer().when(ArenaPlayerInterface.hasPerm(perm).negate()).thenThrow(CommonErrors.NoPermissionForCommand, (e) -> new Serializable[]{command}); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java deleted file mode 100644 index 5035f36c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/HelpCommandHandler.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.cmd; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.logging.Level; -import java.util.stream.Collectors; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface.DynamicArg; - -/** - * Prints help based on single sub command handlers. - * - * @author mepeisen - * - */ -public class HelpCommandHandler extends AbstractPagableCommandHandler implements SubCommandHandlerInterface -{ - - /** help on sub command. */ - private SubCommandHandlerInterface subCommand; - - /** help on composite command. */ - private AbstractCompositeCommandHandler compositeCommand; - - @Override - public void handle(CommandInterface command) throws MinigameException - { - if (command.getArgs().length >= 1 && this.compositeCommand != null) - { - try - { - Integer.parseInt(command.getArgs()[0]); - } - catch (@SuppressWarnings("unused") NumberFormatException ex) - { - // assume we have a command name given to us. - final String name = command.getArgs()[0].toLowerCase(); - final SubCommandHandlerInterface sub = this.compositeCommand.subCommands.get(name); - if (sub == null) - { - command.send(CommonMessages.HelpUnknownSubCommand, command.getCommandPath(), name); - return; - } - new HelpCommandHandler(sub).handle(command.consumeArgs(1)); - } - } - super.handle(command); - return; - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException - { - if (command.getArgs().length > 0 || this.compositeCommand == null) - { - return Collections.emptyList(); - } - return new ArrayList<>(this.compositeCommand.subCommands.keySet()).stream().filter(elm -> elm.startsWith(lastArg)).collect(Collectors.toList()); - } - - /** - * Constructor. - * - * @param command - * the underlying command for the help. - */ - public HelpCommandHandler(SubCommandHandlerInterface command) - { - this.subCommand = command; - } - - /** - * Constructor. - * - * @param command - * the underlying command for the help. - */ - public HelpCommandHandler(AbstractCompositeCommandHandler command) - { - this.compositeCommand = command; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return CommonMessages.HelpShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return CommonMessages.HelpLongDescription; - } - - @Override - protected int getLineCount(CommandInterface command) - { - if (this.compositeCommand != null) - { - return this.compositeCommand.subCommands.size(); - } - return this.subCommand.getDescription(command).toListArg(command.getCommandPath()).apply(command.getLocale(), command.isOp()).length; - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return CommonMessages.HelpHeader.toArg(command.getCommandPath()); - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - if (this.compositeCommand != null) - { - final List<String> keys = new ArrayList<>(this.compositeCommand.subCommands.keySet()); - final List<Serializable> result = new ArrayList<>(); - for (final String key : keys.subList(start, start + count)) - { - DynamicArg shortDesc = null; - final SubCommandHandlerInterface sch = this.compositeCommand.subCommands.get(key); - try - { - shortDesc = sch.getShortDescription(command).toArg(command.getCommandPath()); - } - catch (Throwable t) - { - MglibInterface.INSTANCE.get().getLogger().log(Level.WARNING, "Exception fetching short description on command " + sch, t); //$NON-NLS-1$ - } - result.add(CommonMessages.HelpLineUsage.toArg(key, shortDesc)); - } - return result.toArray(new Serializable[result.size()]); - } - return this.subCommand.getDescription(command).toListArg(start, count, new Serializable[]{command.getCommandPath()}).apply(command.getLocale(), command.isOp()); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java deleted file mode 100644 index 3ebc2e98..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/cmd/SubCommandHandlerInterface.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.cmd; - -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; - - -/** - * Extends the command handler interface to be placed as a sub command in {@link AbstractCompositeCommandHandler} - * - * @author mepeisen - */ -public interface SubCommandHandlerInterface extends CommandHandlerInterface -{ - - /** - * Returns a short description line. - * - * @param command - * the command to be used. - * @return short description line for command help. Single line message. - */ - LocalizedMessageInterface getShortDescription(CommandInterface command); - - /** - * Returns a long description. - * - * @param command - * the command to be used. - * @return long description line for command details. Single line message. - */ - LocalizedMessageInterface getDescription(CommandInterface command); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java deleted file mode 100644 index bdb1bf3d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentId.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.component; - -/** - * An interface used in enumerations to identify the arena rule. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - */ -public interface ComponentId -{ - - // marker interface - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java deleted file mode 100644 index 2ce10a45..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentInterface.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.component; - -/** - * A component within arenas. - * - * @author mepeisen - */ -public interface ComponentInterface -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java deleted file mode 100644 index 6fad0f51..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleId.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.component; - -import com.github.mce.minigames.api.RuleId; - -/** - * An interface used in enumerations to identify the arena rule. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - */ -public interface ComponentRuleId extends RuleId -{ - - // marker interface - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java deleted file mode 100644 index 7f15866c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/component/ComponentRuleSet.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.component; - -/** - * Base interface for arena rule sets. - * - * @author mepeisen - */ -public interface ComponentRuleSet -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java b/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java deleted file mode 100644 index 157cad20..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/component/Cuboid.java +++ /dev/null @@ -1,385 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -package com.github.mce.minigames.api.component; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Random; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.configuration.ConfigurationSection; - -import com.github.mce.minigames.api.config.Configurable; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; - -/** - * Modified by: - * - * @author instancelabs - * - * Original version by: - * @author Pandemoneus - https://github.com/Pandemoneus - */ -public final class Cuboid implements Configurable -{ - /** high points. */ - private Location highPoints; - /** low points. */ - private Location lowPoints; - - /** - * Constructor for a null Cuboid; used by {@link ConfigurationValueInterface#getObject()}. - */ - public Cuboid() - { - this.highPoints = null; - this.lowPoints = null; - } - - /** - * Constructs a new cuboid. - * - * @param startLoc - * the first point - * @param endLoc - * the second point - */ - public Cuboid(final Location startLoc, final Location endLoc) - { - - if (startLoc != null && endLoc != null) - { - final int lowx = Math.min(startLoc.getBlockX(), endLoc.getBlockX()); - final int lowy = Math.min(startLoc.getBlockY(), endLoc.getBlockY()); - final int lowz = Math.min(startLoc.getBlockZ(), endLoc.getBlockZ()); - - final int highx = Math.max(startLoc.getBlockX(), endLoc.getBlockX()); - final int highy = Math.max(startLoc.getBlockY(), endLoc.getBlockY()); - final int highz = Math.max(startLoc.getBlockZ(), endLoc.getBlockZ()); - - this.highPoints = new Location(startLoc.getWorld(), highx, highy, highz); - this.lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz); - } - else - { - this.highPoints = null; - this.lowPoints = null; - } - - } - - /** - * Returns a new cuboid with given low locations. - * - * @param lowPoints - * the new low location - * @return new cuboid - */ - public Cuboid setLowLoc(Location lowPoints) - { - return new Cuboid(lowPoints, this.highPoints == null ? lowPoints : this.highPoints); - } - - /** - * Returns a new cuboid with given high location. - * - * @param highPoints - * the new high location - * @return new cuboid - */ - public Cuboid setHighLoc(Location highPoints) - { - return new Cuboid(this.lowPoints == null ? highPoints : this.lowPoints, highPoints); - } - - /** - * Determines whether the passed area is within this area. - * - * @param area - * the area to check - * @return true if the area is within this area, otherwise false - */ - public boolean isAreaWithinArea(final Cuboid area) - { - return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints)); - } - - /** - * Determines whether the this cuboid contains the passed location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid, otherwise false - */ - public boolean containsLoc(final Location loc) - { - if (this.highPoints == null || this.lowPoints == null) - { - return false; - } - if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) - { - return false; - } - - return this.lowPoints.getBlockX() <= loc.getBlockX() && this.highPoints.getBlockX() >= loc.getBlockX() && this.lowPoints.getBlockZ() <= loc.getBlockZ() - && this.highPoints.getBlockZ() >= loc.getBlockZ() && this.lowPoints.getBlockY() <= loc.getBlockY() && this.highPoints.getBlockY() >= loc.getBlockY(); - } - - /** - * Determines whether the this cuboid contains the passed location without y coord. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid without y coord, otherwise false - */ - public boolean containsLocWithoutY(final Location loc) - { - if (this.highPoints == null || this.lowPoints == null) - { - return false; - } - if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) - { - return false; - } - - return this.lowPoints.getBlockX() <= loc.getBlockX() && this.highPoints.getBlockX() >= loc.getBlockX() && this.lowPoints.getBlockZ() <= loc.getBlockZ() - && this.highPoints.getBlockZ() >= loc.getBlockZ(); - } - - /** - * Determines whether the this cuboid contains the passed location without y coord and by including the 2 blocks beyond the location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid without y coord, otherwise false - */ - public boolean containsLocWithoutYD(final Location loc) - { - if (this.highPoints == null || this.lowPoints == null) - { - return false; - } - if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) - { - return false; - } - - return this.lowPoints.getBlockX() <= loc.getBlockX() + 2 && this.highPoints.getBlockX() >= loc.getBlockX() - 2 && this.lowPoints.getBlockZ() <= loc.getBlockZ() + 2 - && this.highPoints.getBlockZ() >= loc.getBlockZ() - 2; - } - - /** - * Returns the volume of this cuboid. - * - * @return the volume of this cuboid - */ - public long getSize() - { - return Math.abs(this.getXSize() * this.getYSize() * this.getZSize()); - } - - /** - * Determines a random location inside the cuboid and returns it. - * - * @return a random location within the cuboid - */ - public Location getRandomLocation() - { - final World world = this.getWorld(); - final Random randomGenerator = new Random(); - - Location result; - - if (!this.lowPoints.equals(this.highPoints)) - { - final double randomX = this.lowPoints.getBlockX() + randomGenerator.nextInt(this.getXSize()); - final double randomY = this.lowPoints.getBlockY() + randomGenerator.nextInt(this.getYSize()); - final double randomZ = this.lowPoints.getBlockZ() + randomGenerator.nextInt(this.getZSize()); - - result = new Location(world, randomX, randomY, randomZ); - } - else - { - result = this.highPoints.clone(); - } - - return result; - } - - /** - * Determines a random location inside the cuboid that is suitable for mob spawning and returns it. - * - * @return a random location inside the cuboid that is suitable for mob spawning - */ - public Location getRandomLocationForMobs() - { - final Location temp = this.getRandomLocation(); - - return temp.add(0.5, 0.5, 0.5); - } - - /** - * Returns the x span of this cuboid. - * - * @return the x span of this cuboid - */ - public int getXSize() - { - return (this.highPoints.getBlockX() - this.lowPoints.getBlockX()) + 1; - } - - /** - * Returns the y span of this cuboid. - * - * @return the y span of this cuboid - */ - public int getYSize() - { - return (this.highPoints.getBlockY() - this.lowPoints.getBlockY()) + 1; - } - - /** - * Returns the z span of this cuboid. - * - * @return the z span of this cuboid - */ - public int getZSize() - { - return (this.highPoints.getBlockZ() - this.lowPoints.getBlockZ()) + 1; - } - - /** - * Returns the higher location of this cuboid. - * - * @return the higher location of this cuboid - */ - public Location getHighLoc() - { - return this.highPoints; - } - - /** - * Returns the lower location of this cuboid. - * - * @return the lower location of this cuboid - */ - public Location getLowLoc() - { - return this.lowPoints; - } - - /** - * Returns the world this cuboid is in. - * - * @return the world this cuboid is in - */ - public World getWorld() - { - return this.highPoints == null ? null : this.highPoints.getWorld(); - } - - /** - * Saves the cuboid to a Map. - * - * @return the cuboid in a Map - */ - private Map<String, Object> save() - { - final Map<String, Object> root = new LinkedHashMap<>(); - - root.put("World", this.highPoints.getWorld().getName()); //$NON-NLS-1$ - root.put("X1", this.lowPoints.getBlockX()); //$NON-NLS-1$ - root.put("Y1", this.lowPoints.getBlockY()); //$NON-NLS-1$ - root.put("Z1", this.lowPoints.getBlockZ()); //$NON-NLS-1$ - root.put("X2", this.highPoints.getBlockX()); //$NON-NLS-1$ - root.put("Y2", this.highPoints.getBlockY()); //$NON-NLS-1$ - root.put("Z2", this.highPoints.getBlockZ()); //$NON-NLS-1$ - - return root; - } - - /** - * Loads the cuboid from a Map. - * - * @param root - * the Map - * @throws IllegalArgumentException - */ - private void load(final Map<String, Object> root) throws IllegalArgumentException - { - try - { - final World world = Bukkit.getServer().getWorld((String) root.get("World")); //$NON-NLS-1$ - final int x1 = (Integer) root.get("X1"); //$NON-NLS-1$ - final int y1 = (Integer) root.get("Y1"); //$NON-NLS-1$ - final int z1 = (Integer) root.get("Z1"); //$NON-NLS-1$ - final int x2 = (Integer) root.get("X2"); //$NON-NLS-1$ - final int y2 = (Integer) root.get("Y2"); //$NON-NLS-1$ - final int z2 = (Integer) root.get("Z2"); //$NON-NLS-1$ - - this.lowPoints = new Location(world, x1, y1, z1); - this.highPoints = new Location(world, x2, y2, z2); - } - catch (NullPointerException | ClassCastException ex) - { - throw new IllegalArgumentException("Invalid root map!", ex); //$NON-NLS-1$ - } - } - - @Override - public void readFromConfig(ConfigurationSection section) - { - this.load(section.getValues(false)); - } - - @Override - public void writeToConfig(ConfigurationSection section) - { - for (final Map.Entry<String, Object> entry : this.save().entrySet()) - { - section.set(entry.getKey(), entry.getValue()); - } - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() - { - return this.lowPoints == null ? "(null) to (null)" //$NON-NLS-1$ - : new StringBuilder("(").append(this.lowPoints.getBlockX()).append(", ").append(this.lowPoints.getBlockY()).append(", ").append(this.lowPoints.getBlockZ()).append(") to (") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - .append(this.highPoints.getBlockX()).append(", ").append(this.highPoints.getBlockY()).append(", ").append(this.highPoints.getBlockZ()).append(")").toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - /** - * Returns a raw representation that is easy to read for Java. - * - * @return a raw representation of this cuboid - */ - public String toRaw() - { - if (this.lowPoints == null) - return "null"; //$NON-NLS-1$ - return new StringBuilder(this.getWorld() == null ? "null" : this.getWorld().getName()).append(",").append(this.lowPoints.getBlockX()).append(",").append(this.lowPoints.getBlockY()).append(",") //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - .append(this.lowPoints.getBlockZ()) - .append(",").append(this.highPoints.getBlockX()).append(",").append(this.highPoints.getBlockY()).append(",").append(this.highPoints.getBlockZ()).toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java index 43feb1f8..aa961942 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java @@ -15,12 +15,17 @@ package com.github.mce.minigames.api.config; +import de.minigameslib.mclib.api.config.ConfigurationBool; +import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; + /** * Common permissions within minigames lib. * * @author mepeisen */ -@ConfigurationValues(path = "config", fixed = true) +@ConfigurationValues(path = "config") public enum CommonConfig implements ConfigurationValueInterface { @@ -72,10 +77,4 @@ public enum CommonConfig implements ConfigurationValueInterface @ConfigurationBool(name = "debug", defaultValue = false) DebugEnabled, - /** - * Default locale - */ - @ConfigurationString(name = "locale", defaultValue = "en") - DefaultLocale, - } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java deleted file mode 100644 index 2c9a5cf9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigInterface.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import org.bukkit.configuration.ConfigurationSection; - -/** - * Common configuration interface. - * - * @author mepeisen - */ -public interface ConfigInterface -{ - - /** - * Returns the bukkit configuration for given file. - * - * @param file - * configuration file name. - * @return the configuration file. - */ - ConfigurationSection getConfig(String file); - - /** - * Saves the configuration for given file. - * - * @param file - * configuration file name. - */ - void saveConfig(String file); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java deleted file mode 100644 index 11cc8f64..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/Configurable.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import org.bukkit.configuration.ConfigurationSection; - -/** - * An object that can be configured through configuration options. - * - * @author mepeisen - */ -public interface Configurable -{ - - /** - * Reads given object from config. - * - * @param section - * configuration section to read from. - */ - void readFromConfig(ConfigurationSection section); - - /** - * Writes given object to config. - * - * @param section - * configuration section to write to. - */ - void writeToConfig(ConfigurationSection section); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java deleted file mode 100644 index 0017ce3e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBool.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationBool -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - boolean defaultValue() default false; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java deleted file mode 100644 index 4b509023..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationBoolList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationBoolList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - boolean[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java deleted file mode 100644 index 690b79dc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByte.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationByte -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - byte defaultValue() default 0; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java deleted file mode 100644 index 95e7365d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationByteList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationByteList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - byte[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java deleted file mode 100644 index bf0f4918..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacter.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationCharacter -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - char defaultValue() default ' '; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java deleted file mode 100644 index 142b8e2e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationCharacterList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationCharacterList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - char[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java deleted file mode 100644 index b50c2e2a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColor.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationColor -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - int defaultRgb() default 0x000000; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java deleted file mode 100644 index 2491129e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationColorList.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationColorList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java deleted file mode 100644 index c73052e6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDouble.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationDouble -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - double defaultValue() default 0; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java deleted file mode 100644 index 7300957e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationDoubleList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationDoubleList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - double[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java deleted file mode 100644 index 922f47c8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloat.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationFloat -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - float defaultValue() default 0; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java deleted file mode 100644 index 4b6f323c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationFloatList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationFloatList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - float[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java deleted file mode 100644 index 7bb920d8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationInt.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationInt -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - int defaultValue() default 0; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java deleted file mode 100644 index 461b3009..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationIntList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationIntList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - int[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java deleted file mode 100644 index 5557b6e9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStack.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationItemStack -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java deleted file mode 100644 index 5988f389..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationItemStackList.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationItemStackList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java deleted file mode 100644 index 632dff29..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLong.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationLong -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - long defaultValue() default 0; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java deleted file mode 100644 index a9a613ae..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationLongList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationLongList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - long[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java deleted file mode 100644 index ca54309f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObject.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationObject -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The configuration class. - * - * @return class of the configurable object. - */ - Class<? extends Configurable> clazz(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java deleted file mode 100644 index 287d93fd..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationObjectList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationObjectList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The configuration class. - * - * @return class of the configurable object. - */ - Class<? extends Configurable> clazz(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java deleted file mode 100644 index 3cb028d8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayer.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationPlayer -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java deleted file mode 100644 index cde57f1f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationPlayerList.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationPlayerList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java deleted file mode 100644 index 738e0907..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationSection.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationSection -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String value() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java deleted file mode 100644 index 425eba1e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShort.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationShort -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - short defaultValue() default 0; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java deleted file mode 100644 index 98ad7a01..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationShortList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationShortList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - short[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java deleted file mode 100644 index c6fb8010..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationString.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationString -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - String defaultValue() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java deleted file mode 100644 index a5fe0d93..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationStringList.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationStringList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - - /** - * The default value of this configuration option. - * - * @return default value. - */ - String[] defaultValue() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java deleted file mode 100644 index f230c30b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationTool.java +++ /dev/null @@ -1,785 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Array; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.github.mce.minigames.api.MglibInterface; - -/** - * Helper class for configuration variables. - * - * @author mepeisen - */ -class ConfigurationTool -{ - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param clazz - * @param calculator - * @return calculator func. - */ - static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface val, Class<Annot> clazz, Calculator<Ret, Annot> calculator) - { - try - { - final ConfigurationValues configs = val.getClass().getAnnotation(ConfigurationValues.class); - final Annot config = val.getClass().getDeclaredField(((Enum<?>) val).name()).getAnnotation(clazz); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final ConfigInterface minigame = lib.getConfigFromCfg(val); - return calculator.supply(val, configs, config, lib, minigame); - } - catch (Exception ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param clazz - * @param path - * @param calculator - * @return calculator func. - */ - static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, ValueCalculator<Ret, Annot> calculator) - { - final Calculator<Ret, Annot> calc = (val2, configs, config, lib, minigame) -> calculator.supply(val, configs, config, lib, minigame, path.supply(val, configs, config, lib)); - return calculate(val, clazz, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param clazz - * @param path - * @param calculator - * @param defaultValue - * @return calculator func. - */ - static <Ret, Annot extends Annotation> Ret calculate(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, ValueCalculator<Ret, Annot> calculator, ValueCalculator<Ret, Annot> defaultValue) - { - final Calculator<Ret, Annot> calc = (val2, configs, config, lib, minigame) -> { - final String spath = path.supply(val, configs, config, lib); - Ret res = minigame.getConfig(configs.file()).isSet(spath) ? calculator.supply(val, configs, config, lib, minigame, spath) : null; - if (res == null) - { - res = defaultValue.supply(val, configs, config, lib, minigame, spath); - } - return res; - }; - return calculate(val, clazz, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param subpath - * @param calculator - * @return calculator func. - */ - static <Ret> Ret calculate(ConfigurationValueInterface val, String subpath, ValueCalculator<Ret, ConfigurationSection> calculator) - { - final Calculator<Ret, ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> calculator.supply(val, configs, config, lib, minigame, sectionPath().supply(val, configs, config, lib) + '.' + subpath); - return calculate(val, ConfigurationSection.class, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param retClazz - * @param clazz - * @param path - * @param calculator - * @return calculator func. - */ - static <Ret, Annot extends Annotation> Ret[] calculateList(ConfigurationValueInterface val, Class<Annot> clazz, Class<Ret> retClazz, PathCalculator<Annot> path, ArrayValueCalculator<Ret, Annot> calculator) - { - @SuppressWarnings("unchecked") - final Calculator<Ret[], Annot> calc = (val2, configs, config, lib, minigame) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path.supply(val, configs, config, lib)); - final List<Ret> list = new ArrayList<>(); - if (section != null) - { - for (final String key : section.getKeys(false)) - { - list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); - } - } - return list.toArray((Ret[]) Array.newInstance(retClazz, list.size())); - }; - return calculate(val, clazz, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param retClazz - * @param subpath - * @param calculator - * @return calculator func. - */ - static <Ret> Ret[] calculateList(ConfigurationValueInterface val, String subpath, Class<Ret> retClazz, ArrayValueCalculator<Ret, ConfigurationSection> calculator) - { - @SuppressWarnings("unchecked") - final Calculator<Ret[], ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(sectionPath().supply(val, configs, config, lib) + '.' + subpath); - final List<Ret> list = new ArrayList<>(); - if (section != null) - { - for (final String key : section.getKeys(false)) - { - list.add(calculator.supply(val, configs, config, lib, minigame, section, key)); - } - } - return list.toArray((Ret[]) Array.newInstance(retClazz, list.size())); - }; - return calculate(val, ConfigurationSection.class, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param clazz - * @param consumer - */ - static <Annot extends Annotation> void consume(ConfigurationValueInterface val, Class<Annot> clazz, Consumer<Annot> consumer) - { - try - { - final ConfigurationValues configs = val.getClass().getAnnotation(ConfigurationValues.class); - final Annot config = val.getClass().getDeclaredField(((Enum<?>) val).name()).getAnnotation(clazz); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final ConfigInterface minigame = lib.getConfigFromCfg(val); - consumer.apply(val, configs, config, lib, minigame); - } - catch (Exception ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param clazz - * @param path - * @param consumer - */ - static <Annot extends Annotation> void consume(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, ValueConsumer<Annot> consumer) - { - final Consumer<Annot> calc = (val2, configs, config, lib, minigame) -> consumer.apply(val, configs, config, lib, minigame, path.supply(val, configs, config, lib)); - consume(val, clazz, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param subpath - * @param consumer - */ - static void consume(ConfigurationValueInterface val, String subpath, ValueConsumer<ConfigurationSection> consumer) - { - final Class<ConfigurationSection> clazz = ConfigurationSection.class; - final Consumer<ConfigurationSection> calc = (val2, configs, config, lib, minigame) -> consumer.apply(val, configs, config, lib, minigame, sectionPath().supply(val, configs, config, lib) + '.' + subpath); - consume(val, clazz, calc); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param clazz - * @param path - * @param value - * @param consumer - */ - static <T, Annot extends Annotation> void consumeList(ConfigurationValueInterface val, Class<Annot> clazz, PathCalculator<Annot> path, T[] value, ArrayValueConsumer<T, Annot> consumer) - { - final ValueConsumer<Annot> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String spath) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); - if (section == null) - { - section = minigame.getConfig(configs.file()).createSection(spath); - } - for (final String key : section.getKeys(false)) - { - section.set(key, null); - } - int i = 0; - for (T v : value) - { - consumer.apply(val, configs, config, lib, minigame, section, "e" + i, v); //$NON-NLS-1$ - i++; - } - }; - - consume(val, clazz, path, vconsumer); - } - - /** - * Calculates a value by using a calculator func. - * - * @param val - * @param subpath - * @param value - * @param consumer - */ - static <T> void consumeList(ConfigurationValueInterface val, String subpath, T[] value, ArrayValueConsumer<T, ConfigurationSection> consumer) - { - final ValueConsumer<ConfigurationSection> vconsumer = (ConfigurationValueInterface val2, ConfigurationValues configs, ConfigurationSection config, MglibInterface lib, ConfigInterface minigame, String spath) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); - if (section == null) - { - section = minigame.getConfig(configs.file()).createSection(spath); - } - for (final String key : section.getKeys(false)) - { - section.set(key, null); - } - int i = 0; - for (T v : value) - { - consumer.apply(val, configs, config, lib, minigame, section, "e" + i, v); //$NON-NLS-1$ - i++; - } - }; - - consume(val, subpath, vconsumer); - } - - /** - * Checks if the given config value has given annotation. - * - * @param val - * @param clazz - * @return {qcode true} if the config value has diven annotation - */ - static boolean isType(ConfigurationValueInterface val, Class<? extends Annotation> clazz) - { - try - { - final Field field = val.getClass().getDeclaredField(((Enum<?>) val).name()); - return field.getAnnotation(clazz) != null; - } - catch (Exception ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationSection> sectionPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) val).name() : config.value())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationBool> boolPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationBoolList> boolListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationByte> bytePath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationByteList> byteListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationCharacter> charPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationCharacterList> charListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationColor> colorPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationColorList> colorListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationDouble> doublePath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationDoubleList> doubleListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationFloat> floatPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationFloatList> floatListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationInt> intPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationIntList> intListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationItemStack> itemStackPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationItemStackList> itemStackListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationLong> longPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationLongList> longListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationObject> objectPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationObjectList> objectListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationPlayer> playerPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationPlayerList> playerListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationString> stringPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationStringList> stringListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationShort> shortPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationShortList> shortListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationVector> vectorPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Returns the path calculator for given type - * - * @return path calculator - */ - static PathCalculator<ConfigurationVectorList> vectorListPath() - { - return (val, configs, config, lib) -> lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) val).name() : config.name())); - } - - /** - * Calculator to fetch data. - * - * @param <Ret> - * return clazz - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface Calculator<Ret, Annot extends Annotation> - { - - /** - * Calculates the value from config. - * - * @param val - * @param configs - * @param config - * @param lib - * @param minigame - * @return return value - * @throws Exception - */ - Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame) throws Exception; - - } - - /** - * Calculator to fetch data. - * - * @param <Ret> - * return clazz - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface ValueCalculator<Ret, Annot extends Annotation> - { - - /** - * Calculates the value from config. - * - * @param val - * @param configs - * @param config - * @param lib - * @param minigame - * @param path - * @return return value - * @throws Exception - */ - Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String path) throws Exception; - - } - - /** - * Calculator to fetch data. - * - * @param <Ret> - * return clazz - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface ArrayValueCalculator<Ret, Annot extends Annotation> - { - - /** - * Calculates the value from config. - * - * @param val - * @param configs - * @param config - * @param lib - * @param minigame - * @param section - * @param key - * @return return value - * @throws Exception - */ - Ret supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, org.bukkit.configuration.ConfigurationSection section, String key) throws Exception; - - } - - /** - * Calculator for config path calculation. - * - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface PathCalculator<Annot extends Annotation> - { - - /** - * Calculates the path from config annotation. - * - * @param val - * @param configs - * @param config - * @param lib - * @return return value - * @throws Exception - */ - String supply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib) throws Exception; - - } - - /** - * Calculator to parse data. - * - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface Consumer<Annot extends Annotation> - { - - /** - * Consume config. - * - * @param val - * @param configs - * @param config - * @param lib - * @param minigame - * @throws Exception - */ - void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame) throws Exception; - - } - - /** - * Calculator to parse data. - * - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface ValueConsumer<Annot extends Annotation> - { - - /** - * Consume config. - * - * @param val - * @param configs - * @param config - * @param lib - * @param minigame - * @param path - * @throws Exception - */ - void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, String path) throws Exception; - - } - - /** - * Calculator to parse data. - * - * @param <T> - * array element clazz - * @param <Annot> - * annotation clazz - */ - @FunctionalInterface - interface ArrayValueConsumer<T, Annot extends Annotation> - { - - /** - * Consume config. - * - * @param val - * @param configs - * @param config - * @param lib - * @param minigame - * @param section - * @param path - * @param element - * @throws Exception - */ - void apply(ConfigurationValueInterface val, ConfigurationValues configs, Annot config, MglibInterface lib, ConfigInterface minigame, org.bukkit.configuration.ConfigurationSection section, String path, T element) - throws Exception; - - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java deleted file mode 100644 index a49888c4..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValueInterface.java +++ /dev/null @@ -1,2377 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -import org.apache.commons.lang.ArrayUtils; -import org.bukkit.Color; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * An interface for enumerations that represent entries in configuration files. - * - * @author mepeisen - */ -public interface ConfigurationValueInterface -{ - - /** - * Checks if this configuration variable is a boolean. - * - * @return {@code true} if this is a boolean - */ - default boolean isBoolean() - { - return ConfigurationTool.isType(this, ConfigurationBool.class); - } - - /** - * Checks if this configuration variable is a boolean list. - * - * @return {@code true} if this is a boolean list - */ - default boolean isBooleanList() - { - return ConfigurationTool.isType(this, ConfigurationBoolList.class); - } - - /** - * Checks if this configuration variable is a byte. - * - * @return {@code true} if this is a byte - */ - default boolean isByte() - { - return ConfigurationTool.isType(this, ConfigurationByte.class); - } - - /** - * Checks if this configuration variable is a byte list. - * - * @return {@code true} if this is a byte list - */ - default boolean isByteList() - { - return ConfigurationTool.isType(this, ConfigurationByteList.class); - } - - /** - * Checks if this configuration variable is a character. - * - * @return {@code true} if this is a character - */ - default boolean isCharacter() - { - return ConfigurationTool.isType(this, ConfigurationCharacter.class); - } - - /** - * Checks if this configuration variable is a character list. - * - * @return {@code true} if this is a character list - */ - default boolean isCharacterList() - { - return ConfigurationTool.isType(this, ConfigurationCharacterList.class); - } - - /** - * Checks if this configuration variable is a color list. - * - * @return {@code true} if this is a color list - */ - default boolean isColorList() - { - return ConfigurationTool.isType(this, ConfigurationColorList.class); - } - - /** - * Checks if this configuration variable is a color. - * - * @return {@code true} if this is a color - */ - default boolean isColor() - { - return ConfigurationTool.isType(this, ConfigurationColor.class); - } - - /** - * Checks if this configuration variable is a double list. - * - * @return {@code true} if this is a double list - */ - default boolean isDoubleList() - { - return ConfigurationTool.isType(this, ConfigurationDoubleList.class); - } - - /** - * Checks if this configuration variable is a double. - * - * @return {@code true} if this is a double - */ - default boolean isDouble() - { - return ConfigurationTool.isType(this, ConfigurationDouble.class); - } - - /** - * Checks if this configuration variable is a float list. - * - * @return {@code true} if this is a float list - */ - default boolean isFloatList() - { - return ConfigurationTool.isType(this, ConfigurationFloatList.class); - } - - /** - * Checks if this configuration variable is a float. - * - * @return {@code true} if this is a float - */ - default boolean isFloat() - { - return ConfigurationTool.isType(this, ConfigurationFloat.class); - } - - /** - * Checks if this configuration variable is a int list. - * - * @return {@code true} if this is a int list - */ - default boolean isIntList() - { - return ConfigurationTool.isType(this, ConfigurationIntList.class); - } - - /** - * Checks if this configuration variable is a int. - * - * @return {@code true} if this is a int - */ - default boolean isInt() - { - return ConfigurationTool.isType(this, ConfigurationInt.class); - } - - /** - * Checks if this configuration variable is an item stack list. - * - * @return {@code true} if this is an item stack list - */ - default boolean isItemStackList() - { - return ConfigurationTool.isType(this, ConfigurationItemStackList.class); - } - - /** - * Checks if this configuration variable is an item stack. - * - * @return {@code true} if this is an item stack - */ - default boolean isItemStack() - { - return ConfigurationTool.isType(this, ConfigurationItemStack.class); - } - - /** - * Checks if this configuration variable is a section. - * - * @return {@code true} if this is a section - */ - default boolean isSection() - { - return ConfigurationTool.isType(this, ConfigurationSection.class); - } - - /** - * Checks if this configuration variable is a long list. - * - * @return {@code true} if this is a long list - */ - default boolean isLongList() - { - return ConfigurationTool.isType(this, ConfigurationLongList.class); - } - - /** - * Checks if this configuration variable is a long. - * - * @return {@code true} if this is a long - */ - default boolean isLong() - { - return ConfigurationTool.isType(this, ConfigurationLong.class); - } - - /** - * Checks if this configuration variable is an object list. - * - * @return {@code true} if this is an object list - */ - default boolean isObjectList() - { - return ConfigurationTool.isType(this, ConfigurationObjectList.class); - } - - /** - * Checks if this configuration variable is an object. - * - * @return {@code true} if this is an object - */ - default boolean isObject() - { - return ConfigurationTool.isType(this, ConfigurationObject.class); - } - - /** - * Checks if this configuration variable is a player list. - * - * @return {@code true} if this is a player list - */ - default boolean isPlayerList() - { - return ConfigurationTool.isType(this, ConfigurationPlayerList.class); - } - - /** - * Checks if this configuration variable is a player. - * - * @return {@code true} if this is a player - */ - default boolean isPlayer() - { - return ConfigurationTool.isType(this, ConfigurationPlayer.class); - } - - /** - * Checks if this configuration variable is a short list. - * - * @return {@code true} if this is a short list - */ - default boolean isShortList() - { - return ConfigurationTool.isType(this, ConfigurationShortList.class); - } - - /** - * Checks if this configuration variable is a short. - * - * @return {@code true} if this is a short - */ - default boolean isShort() - { - return ConfigurationTool.isType(this, ConfigurationShort.class); - } - - /** - * Checks if this configuration variable is a string list. - * - * @return {@code true} if this is a string list - */ - default boolean isStringList() - { - return ConfigurationTool.isType(this, ConfigurationStringList.class); - } - - /** - * Checks if this configuration variable is a string. - * - * @return {@code true} if this is a string - */ - default boolean isString() - { - return ConfigurationTool.isType(this, ConfigurationString.class); - } - - /** - * Checks if this configuration variable is a vector list. - * - * @return {@code true} if this is a vector list - */ - default boolean isVectorList() - { - return ConfigurationTool.isType(this, ConfigurationVectorList.class); - } - - /** - * Checks if this configuration variable is a vector. - * - * @return {@code true} if this is a vector - */ - default boolean isVector() - { - return ConfigurationTool.isType(this, ConfigurationVector.class); - } - - /** - * Returns the configuration path of this option - * - * @return configuration path - */ - default String path() - { - try - { - final Field field = this.getClass().getDeclaredField(((Enum<?>) this).name()); - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final MglibInterface lib = MglibInterface.INSTANCE.get(); - - { - final ConfigurationBool config = field.getAnnotation(ConfigurationBool.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationBoolList config = field.getAnnotation(ConfigurationBoolList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationByte config = field.getAnnotation(ConfigurationByte.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationByteList config = field.getAnnotation(ConfigurationByteList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationCharacter config = field.getAnnotation(ConfigurationCharacter.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationCharacterList config = field.getAnnotation(ConfigurationCharacterList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationColor config = field.getAnnotation(ConfigurationColor.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationColorList config = field.getAnnotation(ConfigurationColorList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationDouble config = field.getAnnotation(ConfigurationDouble.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationDoubleList config = field.getAnnotation(ConfigurationDoubleList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationFloat config = field.getAnnotation(ConfigurationFloat.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationFloatList config = field.getAnnotation(ConfigurationFloatList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationInt config = field.getAnnotation(ConfigurationInt.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationIntList config = field.getAnnotation(ConfigurationIntList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationItemStack config = field.getAnnotation(ConfigurationItemStack.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationItemStackList config = field.getAnnotation(ConfigurationItemStackList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationLong config = field.getAnnotation(ConfigurationLong.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationLongList config = field.getAnnotation(ConfigurationLongList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationObject config = field.getAnnotation(ConfigurationObject.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationObjectList config = field.getAnnotation(ConfigurationObjectList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationPlayer config = field.getAnnotation(ConfigurationPlayer.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationPlayerList config = field.getAnnotation(ConfigurationPlayerList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationSection config = field.getAnnotation(ConfigurationSection.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - return path; - } - } - { - final ConfigurationShort config = field.getAnnotation(ConfigurationShort.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationShortList config = field.getAnnotation(ConfigurationShortList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationString config = field.getAnnotation(ConfigurationString.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationStringList config = field.getAnnotation(ConfigurationStringList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationVector config = field.getAnnotation(ConfigurationVector.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - { - final ConfigurationVectorList config = field.getAnnotation(ConfigurationVectorList.class); - if (config != null) - { - final String path = lib.resolveContextVar(configs.path() + '.' + (config.name().length() == 0 ? ((Enum<?>) this).name() : config.name())); - return path; - } - } - throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ - } - catch (Exception ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Checks if this configuration value is set. - * - * @return {@code true} if this configuraiton value is set. - */ - default boolean isset() - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final ConfigInterface minigame = lib.getConfigFromCfg(this); - - return minigame.getConfig(configs.file()).isSet(this.path()); - } - - /** - * Checks if this configuration value is set. - * - * @param path - * sub path of configuration section - * @return {@code true} if this configuraiton value is set. - */ - default boolean isset(String path) - { - try - { - final Field field = this.getClass().getDeclaredField(((Enum<?>) this).name()); - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final ConfigInterface minigame = lib.getConfigFromCfg(this); - final ConfigurationSection config = field.getAnnotation(ConfigurationSection.class); - if (config != null) - { - final String mpath = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())) + '.' + path; - return minigame.getConfig(configs.file()).isSet(mpath); - } - throw new IllegalStateException("Invalid configuration option"); //$NON-NLS-1$ - } - catch (Exception ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setObject(Configurable value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); - if (section == null) - { - section = minigame.getConfig(configs.file()).createSection(path); - } - value.writeToConfig(section); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setObjectList(Configurable[] value, String subpath) - { - ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { - org.bukkit.configuration.ConfigurationSection section2 = section.getConfigurationSection(path); - if (section2 == null) - { - section2 = section.createSection(path); - } - element.writeToConfig(section2); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setBoolean(boolean value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setBooleanList(boolean[] value, String subpath) - { - final List<Boolean> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setByte(byte value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setByteList(byte[] value, String subpath) - { - final List<Byte> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setCharacter(char value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, String.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setCharacterList(char[] value, String subpath) - { - final List<Character> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setColor(Color value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setColorList(Color[] value, String subpath) - { - ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setDouble(double value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setDoubleList(double[] value, String subpath) - { - final List<Double> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setFloat(float value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setFloatList(float[] value, String subpath) - { - final List<Float> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setInt(int value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setIntList(int[] value, String subpath) - { - final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setItemStack(ItemStack value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setItemStackList(ItemStack[] value, String subpath) - { - ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setLong(long value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setLongList(long[] value, String subpath) - { - final List<Long> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setPlayer(ArenaPlayerInterface value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setPlayerList(ArenaPlayerInterface[] value, String subpath) - { - ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.getOfflinePlayer()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setShort(short value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setShortList(short[] value, String subpath) - { - final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(Integer.valueOf(value[i])); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setString(String value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setStringList(String[] value, String subpath) - { - final List<String> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setVector(Vector value, String subpath) - { - ConfigurationTool.consume(this, subpath, (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - * @param subpath - * the sub path - */ - default void setVectorList(Vector[] value, String subpath) - { - ConfigurationTool.consumeList(this, subpath, value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setObject(Configurable value) - { - ConfigurationTool.consume(this, ConfigurationObject.class, ConfigurationTool.objectPath(), (val, configs, config, lib, minigame, path) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); - if (section == null) - { - section = minigame.getConfig(configs.file()).createSection(path); - } - value.writeToConfig(section); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setObjectList(Configurable[] value) - { - ConfigurationTool.consumeList(this, ConfigurationObjectList.class, ConfigurationTool.objectListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { - org.bukkit.configuration.ConfigurationSection configurationSection = section.getConfigurationSection(path); - if (configurationSection == null) - { - configurationSection = section.createSection(path); - } - element.writeToConfig(configurationSection); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setBoolean(boolean value) - { - ConfigurationTool.consume(this, ConfigurationBool.class, ConfigurationTool.boolPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Boolean.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setBooleanList(boolean[] value) - { - final List<Boolean> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setByte(byte value) - { - ConfigurationTool.consume(this, ConfigurationByte.class, ConfigurationTool.bytePath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Byte.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setByteList(byte[] value) - { - final List<Byte> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setCharacter(char value) - { - ConfigurationTool.consume(this, ConfigurationCharacter.class, ConfigurationTool.charPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, String.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setCharacterList(char[] value) - { - final List<Character> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setColor(Color value) - { - ConfigurationTool.consume(this, ConfigurationColor.class, ConfigurationTool.colorPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setColorList(Color[] value) - { - ConfigurationTool.consumeList(this, ConfigurationColorList.class, ConfigurationTool.colorListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setDouble(double value) - { - ConfigurationTool.consume(this, ConfigurationDouble.class, ConfigurationTool.doublePath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Double.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setDoubleList(double[] value) - { - final List<Double> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setFloat(float value) - { - ConfigurationTool.consume(this, ConfigurationFloat.class, ConfigurationTool.floatPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Float.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setFloatList(float[] value) - { - final List<Float> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setInt(int value) - { - ConfigurationTool.consume(this, ConfigurationInt.class, ConfigurationTool.intPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Integer.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setIntList(int[] value) - { - final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationIntList.class, ConfigurationTool.intListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setItemStack(ItemStack value) - { - ConfigurationTool.consume(this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setItemStackList(ItemStack[] value) - { - ConfigurationTool.consumeList(this, ConfigurationItemStackList.class, ConfigurationTool.itemStackListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setLong(long value) - { - ConfigurationTool.consume(this, ConfigurationLong.class, ConfigurationTool.longPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Long.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setLongList(long[] value) - { - final List<Long> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationLongList.class, ConfigurationTool.longListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setPlayer(ArenaPlayerInterface value) - { - ConfigurationTool.consume(this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.getOfflinePlayer()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setPlayerList(ArenaPlayerInterface[] value) - { - ConfigurationTool.consumeList(this, ConfigurationPlayerList.class, ConfigurationTool.playerListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.getOfflinePlayer()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setShort(short value) - { - ConfigurationTool.consume(this, ConfigurationShort.class, ConfigurationTool.shortPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, Short.valueOf(value)); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setShortList(short[] value) - { - final List<Integer> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(Integer.valueOf(value[i])); - ConfigurationTool.consume(this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setString(String value) - { - ConfigurationTool.consume(this, ConfigurationString.class, ConfigurationTool.stringPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setStringList(String[] value) - { - final List<String> list = new ArrayList<>(); - for (int i = 0; i < value.length; i++) - list.add(value[i]); - ConfigurationTool.consume(this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, list); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setVector(Vector value) - { - ConfigurationTool.consume(this, ConfigurationVector.class, ConfigurationTool.vectorPath(), (val, configs, config, lib, minigame, path) -> { - minigame.getConfig(configs.file()).set(path, value.clone()); - }); - } - - /** - * Sets the value to this configuration variable. - * - * @param value - * value to set. - */ - default void setVectorList(Vector[] value) - { - ConfigurationTool.consumeList(this, ConfigurationVectorList.class, ConfigurationTool.vectorListPath(), value, (val, configs, config, lib, minigame, section, path, element) -> { - section.set(path, element.clone()); - }); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - * @param <T> - * Configurable object class - */ - @SuppressWarnings("unchecked") - default <T extends Configurable> T getObject() - { - return (T) ConfigurationTool.calculate(this, ConfigurationObject.class, ConfigurationTool.objectPath(), (val, configs, config, lib, minigame, path) -> { - org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(path); - if (section == null) - { - return null; - } - final Configurable result = config.clazz().newInstance(); - result.readFromConfig(section); - return result; - }); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default byte getByte() - { - return ConfigurationTool.calculate(this, ConfigurationByte.class, ConfigurationTool.bytePath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())).byteValue(); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default Color getColor() - { - return ConfigurationTool.calculate(this, ConfigurationColor.class, ConfigurationTool.colorPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getColor(path, Color.fromRGB(config.defaultRgb()))); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default ItemStack getItemStack() - { - return ConfigurationTool.calculate(this, ConfigurationItemStack.class, ConfigurationTool.itemStackPath(), (val, configs, config, lib, minigame, path) -> { - final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(path); - return stack == null ? null : stack.clone(); - }); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default Vector getVector() - { - return ConfigurationTool.calculate(this, ConfigurationVector.class, ConfigurationTool.vectorPath(), (val, configs, config, lib, minigame, path) -> { - final Vector vector = minigame.getConfig(configs.file()).getVector(path); - return vector == null ? null : vector.clone(); - }); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default ArenaPlayerInterface getPlayer() - { - return ConfigurationTool.calculate(this, ConfigurationPlayer.class, ConfigurationTool.playerPath(), - (val, configs, config, lib, minigame, path) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(path))); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default char getCharacter() - { - return ConfigurationTool.calculate(this, ConfigurationCharacter.class, ConfigurationTool.charPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getString(path, "" + config.defaultValue())).charAt(0); //$NON-NLS-1$ - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default boolean getBoolean() - { - return ConfigurationTool.calculate(this, ConfigurationBool.class, ConfigurationTool.boolPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBoolean(path, config.defaultValue())); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default boolean[] getBooleanList() - { - final List<Boolean> list = ConfigurationTool.calculate(this, ConfigurationBoolList.class, ConfigurationTool.boolListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getBooleanList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final boolean[] result = new boolean[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default byte[] getByteList() - { - final List<Byte> list = ConfigurationTool.calculate(this, ConfigurationByteList.class, ConfigurationTool.byteListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getByteList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final byte[] result = new byte[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default char[] getCharacterList() - { - final List<Character> list = ConfigurationTool.calculate(this, ConfigurationCharacterList.class, ConfigurationTool.charListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getCharacterList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final char[] result = new char[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default double getDouble() - { - return ConfigurationTool.calculate(this, ConfigurationDouble.class, ConfigurationTool.doublePath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDouble(path, config.defaultValue())); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default float getFloat() - { - return ConfigurationTool.calculate(this, ConfigurationFloat.class, ConfigurationTool.floatPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDouble(path, config.defaultValue())).floatValue(); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default double[] getDoubleList() - { - final List<Double> list = ConfigurationTool.calculate(this, ConfigurationDoubleList.class, ConfigurationTool.doubleListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getDoubleList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final double[] result = new double[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default float[] getFloatList() - { - final List<Float> list = ConfigurationTool.calculate(this, ConfigurationFloatList.class, ConfigurationTool.floatListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getFloatList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final float[] result = new float[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default int getInt() - { - return ConfigurationTool.calculate(this, ConfigurationInt.class, ConfigurationTool.intPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default short getShort() - { - return ConfigurationTool.calculate(this, ConfigurationShort.class, ConfigurationTool.shortPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getInt(path, config.defaultValue())).shortValue(); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default int[] getIntList() - { - final List<Integer> list = ConfigurationTool.calculate(this, ConfigurationIntList.class, ConfigurationTool.intListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getIntegerList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final int[] result = new int[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default long getLong() - { - return ConfigurationTool.calculate(this, ConfigurationLong.class, ConfigurationTool.longPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLong(path, config.defaultValue())); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default long[] getLongList() - { - final List<Long> list = ConfigurationTool.calculate(this, ConfigurationLongList.class, ConfigurationTool.longListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getLongList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final long[] result = new long[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default short[] getShortList() - { - final List<Short> list = ConfigurationTool.calculate(this, ConfigurationShortList.class, ConfigurationTool.shortListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getShortList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(ArrayUtils.toObject(config.defaultValue()))); - final short[] result = new short[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default String getString() - { - return ConfigurationTool.calculate(this, ConfigurationString.class, ConfigurationTool.stringPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getString(path, config.defaultValue())); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default String[] getStringList() - { - final List<String> list = ConfigurationTool.calculate(this, ConfigurationStringList.class, ConfigurationTool.stringListPath(), - (val, configs, config, lib, minigame, path) -> minigame.getConfig(configs.file()).getStringList(path), - (val, configs, config, lib, minigame, path) -> Arrays.asList(config.defaultValue())); - return list.toArray(new String[list.size()]); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default Vector[] getVectorList() - { - return ConfigurationTool.calculateList(this, ConfigurationVectorList.class, Vector.class, ConfigurationTool.vectorListPath(), - (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default ItemStack[] getItemStackList() - { - return ConfigurationTool.calculateList(this, ConfigurationItemStackList.class, ItemStack.class, ConfigurationTool.itemStackListPath(), - (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); - } - - /** - * Returns the value of given configuration value. - * - * @param clazz - * Configurable object class - * @return value. - * @param <T> - * Configurable object class - */ - default <T extends Configurable> T[] getObjectList(Class<T> clazz) - { - return ConfigurationTool.calculateList(this, ConfigurationObjectList.class, clazz, ConfigurationTool.objectListPath(), (val, configs, config, lib, minigame, section, key) -> { - final T ret = clazz.newInstance(); - ret.readFromConfig(section.getConfigurationSection(key)); - return ret; - }); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default Color[] getColorList() - { - return ConfigurationTool.calculateList(this, ConfigurationColorList.class, Color.class, ConfigurationTool.colorListPath(), - (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); - } - - /** - * Returns the value of given configuration value. - * - * @return value. - */ - default ArenaPlayerInterface[] getPlayerList() - { - return ConfigurationTool.calculateList(this, ConfigurationPlayerList.class, ArenaPlayerInterface.class, ConfigurationTool.playerListPath(), - (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); - } - - /** - * Returns the keys of given configuration section. - * - * @param deep - * true for deep keys - * - * @return value. - */ - default String[] getKeys(boolean deep) - { - try - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final ConfigurationSection config = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(ConfigurationSection.class); - if (configs == null || config == null) - { - throw new IllegalStateException("Invalid configuration class."); //$NON-NLS-1$ - } - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final ConfigInterface minigame = lib.getConfigFromCfg(this); - final String path = lib.resolveContextVar(configs.path() + '.' + (config.value().length() == 0 ? ((Enum<?>) this).name() : config.value())); - final Set<String> result = minigame.getConfig(configs.file()).getConfigurationSection(path).getKeys(deep); - return result.toArray(new String[result.size()]); - } - catch (Exception ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns the value of given configuration value. - * - * @param clazz - * Configurable object class - * @param path - * sub path of configuration section - * @return value. - * @param <T> - * Configurable object class - */ - @SuppressWarnings("unchecked") - default <T extends Configurable> T getObject(Class<T> clazz, String path) - { - return (T) ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { - final org.bukkit.configuration.ConfigurationSection section = minigame.getConfig(configs.file()).getConfigurationSection(spath); - if (section != null) - { - final Configurable result = clazz.newInstance(); - result.readFromConfig(section); - return result; - } - return null; - }); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default byte getByte(String path, byte defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).byteValue(); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default boolean getBoolean(String path, boolean defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBoolean(spath, defaultValue)); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default boolean[] getBooleanList(String path, boolean[] defaultValue) - { - final List<Boolean> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getBooleanList(spath)); - if (list.size() == 0) - return defaultValue; - final boolean[] result = new boolean[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default byte[] getByteList(String path, byte[] defaultValue) - { - final List<Byte> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getByteList(spath)); - if (list.size() == 0) - return defaultValue; - final byte[] result = new byte[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default char[] getCharacterList(String path, char[] defaultValue) - { - final List<Character> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getCharacterList(spath)); - if (list.size() == 0) - return defaultValue; - final char[] result = new char[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default double getDouble(String path, double defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default float getFloat(String path, float defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDouble(spath, defaultValue)).floatValue(); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default double[] getDoubleList(String path, double[] defaultValue) - { - final List<Double> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getDoubleList(spath)); - if (list.size() == 0) - return defaultValue; - final double[] result = new double[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default float[] getFloatList(String path, float[] defaultValue) - { - final List<Float> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getFloatList(spath)); - if (list.size() == 0) - return defaultValue; - final float[] result = new float[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default int getInt(String path, int defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default int[] getIntList(String path, int[] defaultValue) - { - final List<Integer> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getIntegerList(spath)); - if (list.size() == 0) - return defaultValue; - final int[] result = new int[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default long getLong(String path, long defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLong(spath, defaultValue)); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default short getShort(String path, short defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getInt(spath, defaultValue)).shortValue(); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default long[] getLongList(String path, long[] defaultValue) - { - final List<Long> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getLongList(spath)); - if (list.size() == 0) - return defaultValue; - final long[] result = new long[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default short[] getShortList(String path, short[] defaultValue) - { - final List<Short> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getShortList(spath)); - if (list.size() == 0) - return defaultValue; - final short[] result = new short[list.size()]; - for (int i = 0; i < result.length; i++) - result[i] = list.get(i); - return result; - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default String getString(String path, String defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, defaultValue)); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default char getCharacter(String path, char defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getString(spath, "" + defaultValue)).charAt(0); //$NON-NLS-1$ - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue - * the default value to return - * - * @return value. - */ - default Color getColor(String path, Color defaultValue) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { - final Color col = minigame.getConfig(configs.file()).getColor(spath); - return col == null ? defaultValue : col; - }); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default ItemStack getItemStack(String path) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { - final ItemStack stack = minigame.getConfig(configs.file()).getItemStack(spath); - return stack == null ? null : stack.clone(); - }); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default Vector getVector(String path) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> { - final Vector result = minigame.getConfig(configs.file()).getVector(spath); - return result == null ? null : result.clone(); - }); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default Vector[] getVectorList(String path) - { - return ConfigurationTool.calculateList(this, path, Vector.class, (val, configs, config, lib, minigame, section, key) -> section.getVector(key).clone()); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default ItemStack[] getItemStackList(String path) - { - return ConfigurationTool.calculateList(this, path, ItemStack.class, (val, configs, config, lib, minigame, section, key) -> section.getItemStack(key).clone()); - } - - /** - * Returns the value of given configuration value. - * - * @param clazz Configurable object class - * @param path - * sub path of configuration section - * - * @return value. - * @param <T> Configurable object class - */ - default <T extends Configurable> T[] getObjectList(Class<T> clazz, String path) - { - return ConfigurationTool.calculateList(this, path, clazz, (val, configs, config, lib, minigame, section, key) -> { - final T result = clazz.newInstance(); - result.readFromConfig(section.getConfigurationSection(key)); - return result; - }); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default Color[] getColorList(String path) - { - return ConfigurationTool.calculateList(this, path, Color.class, (val, configs, config, lib, minigame, section, key) -> section.getColor(key)); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default ArenaPlayerInterface[] getPlayerList(String path) - { - return ConfigurationTool.calculateList(this, path, ArenaPlayerInterface.class, (val, configs, config, lib, minigame, section, key) -> lib.getPlayer(section.getOfflinePlayer(key))); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * - * @return value. - */ - default ArenaPlayerInterface getPlayer(String path) - { - return ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> lib.getPlayer(minigame.getConfig(configs.file()).getOfflinePlayer(spath))); - } - - /** - * Returns the value of given configuration value. - * - * @param path - * sub path of configuration section - * @param defaultValue the default value to return - * - * @return value. - */ - default String[] getStringList(String path, String[] defaultValue) - { - final List<String> list = ConfigurationTool.calculate(this, path, (val, configs, config, lib, minigame, spath) -> minigame.getConfig(configs.file()).getStringList(spath)); - if (list.size() == 0) - return defaultValue; - return list.toArray(new String[list.size()]); - } - - /** - * Saves the configuration file this option belongs to - */ - default void saveConfig() - { - final ConfigurationValues configs = this.getClass().getAnnotation(ConfigurationValues.class); - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final ConfigInterface minigame = lib.getConfigFromCfg(this); - minigame.saveConfig(configs.file()); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java deleted file mode 100644 index 31492eef..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationValues.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A list of permissions; should be used by enumerations that implement the {@link ConfigurationValueInterface}. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(TYPE) -public @interface ConfigurationValues -{ - - /** - * The default path used as a prefix for the configuration values. - * - * @return default path used as a prefix. - */ - String path(); - - /** - * Returns the name of the configuration file. - * - * @return configuration file name. - */ - String file() default "config.yml"; - - /** - * {@code true} for fixed configuration variable calculated from declaring plugin; {@code false} for fetching minigame from context - * @return fixed configuration flag - */ - boolean fixed() default false; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java deleted file mode 100644 index 9a959dd2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVector.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationVector -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java b/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java deleted file mode 100644 index ea657c0b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/config/ConfigurationVectorList.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single configuration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ConfigurationVectorList -{ - - /** - * The name of the configuration value. - * - * <p> - * The name is appended to the path of the {@link ConfigurationValues} annotation on the enum class. - * </p> - * - * @return Name of configuration value; empty string to use the constant name. - */ - String name() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java deleted file mode 100644 index 2ce3cace..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextHandlerInterface.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.context; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.cmd.CommandInterface; - -/** - * An interface to calculate context variables. - * - * @author mepeisen - * @param <T> - * context class - */ -public interface ContextHandlerInterface<T> -{ - - /** - * Calculates the context object from command. - * - * @param command - * command to process - * @param context - * current minigame context - * @return context object or {@code null} if it cannot be calculated - */ - T calculateFromCommand(CommandInterface command, MinigameContext context); - - /** - * Calculates the context object from minigame event. - * - * @param event - * event to process - * @param context - * current minigame context - * @return context object or {@code null} if it cannot be calculated - */ - T calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java deleted file mode 100644 index bd65a32d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/ContextResolverInterface.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.context; - -/** - * An interface being able to resolve variables with contexts. - * - * @author mepeisen - */ -public interface ContextResolverInterface -{ - - /** - * Tries to resolve given variable name. - * - * @param varName - * variable name to resolve. - * @param args - * arguments for resolve - * @param context - * the context - * @return the resolved string or {@code null} if the variable cannot be resolved. - */ - String resolve(String varName, String[] args, MinigameContext context); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java deleted file mode 100644 index 8f62eee3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameContext.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.context; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.component.ComponentInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.MgRunnable; -import com.github.mce.minigames.api.util.function.MgSupplier; -import com.github.mce.minigames.api.zones.ZoneInterface; - -/** - * The minigame execution context. - * - * <p> - * The execution context is some kind of thread local session storage. Once a command or event is being processed the context is responsible for providing common minigame objects. For example the - * default implementation can return the current player being responsible for a command call or event and to return the arena this player is located in. - * </p> - * - * @author mepeisen - */ -public interface MinigameContext -{ - - /** - * Returns a session variable. - * - * @param clazz - * the class of the variable to be returned. - * @return Context variable or {@code null} if the variable was not set. - * @param <T> - * Type of context value - */ - <T> T getContext(Class<T> clazz); - - /** - * Sets a context variable. - * - * @param clazz - * the class of the variable - * @param value - * the new value - * @param <T> - * Type of context value - */ - <T> void setContext(Class<T> clazz, T value); - - /** - * Resolves a context variable and performs variable substitution. - * - * @param src - * source string - * @return result - */ - String resolveContextVar(String src); - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws MinigameException - * rethrown from runnable. - */ - void runInNewContext(MgRunnable runnable) throws MinigameException; - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws MinigameException - * rethrown from runnable. - */ - void runInCopiedContext(MgRunnable runnable) throws MinigameException; - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws MinigameException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException; - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws MinigameException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException; - - /** - * Returns the current player. - * - * @return current player. - */ - default ArenaPlayerInterface getCurrentPlayer() - { - return this.getContext(ArenaPlayerInterface.class); - } - - /** - * Returns the current arena. - * - * @return current arena. - */ - default ArenaInterface getCurrentArena() - { - return this.getContext(ArenaInterface.class); - } - - /** - * Returns the current minigame. - * - * @return current minigame. - */ - default MinigameInterface getCurrentMinigame() - { - return this.getContext(MinigameInterface.class); - } - - /** - * Returns the current zone. - * - * @return current zone. - */ - default ZoneInterface getCurrentZone() - { - return this.getContext(ZoneInterface.class); - } - - /** - * Returns the current component. - * - * @return current component. - */ - default ComponentInterface getCurrentComponent() - { - return this.getContext(ComponentInterface.class); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java b/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java deleted file mode 100644 index aca98c60..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/context/MinigameStorage.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.context; - -import com.github.mce.minigames.api.config.Configurable; - -/** - * The minigame storage can be used on various objects (for example players) to store temporary or persistent data. - * - * @author mepeisen - */ -public interface MinigameStorage -{ - - /** - * Returns a storage variable. - * - * @param clazz - * the class of the variable to be returned. - * @return Storage variable or {@code null} if the variable was not set. - * @param <T> - * Configurable object class - */ - <T extends Configurable> T get(Class<T> clazz); - - /** - * Sets a storage variable. - * - * @param clazz - * the class of the variable - * @param value - * the new value - * @param <T> - * Configurable object class - */ - <T extends Configurable> void set(Class<T> clazz, T value); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java deleted file mode 100644 index 14d27a52..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/AbstractVetoEvent.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import java.io.Serializable; - -import org.bukkit.event.Event; - -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; - -/** - * An event that can be cancelled. - * - * @author mepeisen - */ -public abstract class AbstractVetoEvent extends Event -{ - - /** the veto flag. */ - private boolean cancelled; - - /** the veto reason. */ - private LocalizedMessageInterface vetoReason; - - /** message arguments. */ - private Serializable[] vetoReasonArgs; - - /** - * Returns the veto reason - * @return the vetoReason - */ - public LocalizedMessageInterface getVetoReason() - { - return this.vetoReason; - } - - /** - * Checks if the event was cancelled. - * @return the veto flag - */ - public boolean isCancelled() - { - return this.cancelled; - } - - /** - * Returns the message arguments to format the veto reason message - * @return the vetoReasonArgs - */ - public Serializable[] getVetoReasonArgs() - { - return this.vetoReasonArgs; - } - - /** - * Sets the event cancelled. - * @param reason the reason text. - * @param args message arguments - */ - public void setCancelled(LocalizedMessageInterface reason, Serializable... args) - { - this.cancelled = true; - this.vetoReason = reason; - this.vetoReasonArgs = args; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java index 028c6fa6..dad6cd55 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java @@ -19,6 +19,8 @@ import com.github.mce.minigames.api.arena.ArenaInterface; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; + /** * An event fired before a new arena is created. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java index 5c46d972..11b9ed36 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java @@ -19,6 +19,8 @@ import com.github.mce.minigames.api.arena.ArenaInterface; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; + /** * An event fired before an existing arena is deleted. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java index f3e7f5b9..5e9cdd92 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java @@ -20,6 +20,8 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; + /** * An event fired before a player joins an arena. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java deleted file mode 100644 index c9429666..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerCloseGuiEvent.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * @author mepeisen - * - */ -public class PlayerCloseGuiEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the gui the player closed. */ - private final ClickGuiInterface gui; - - /** the player. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param gui - * the closed gui - * @param player - * the target player - */ - public PlayerCloseGuiEvent(ClickGuiInterface gui, ArenaPlayerInterface player) - { - this.gui = gui; - this.player = player; - } - - /** - * Returns the gui that the player closed - * - * @return the gui the player closed. - */ - public ClickGuiInterface getGui() - { - return this.gui; - } - - /** - * Returns the player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java deleted file mode 100644 index a8e4da1f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerDisplayGuiPageEvent.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiPageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * Fires before a page is opened. - * - * <p> - * Will fire directly after opening the gui to show up the initial page. - * </p> - * - * @author mepeisen - * - */ -public class PlayerDisplayGuiPageEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the gui the player opened. */ - private final ClickGuiInterface gui; - - /** the player. */ - private final ArenaPlayerInterface player; - - /** the opened page. */ - private final ClickGuiPageInterface page; - - /** - * Constructor. - * - * @param gui - * the target gui - * @param player - * the target player - * @param page - * the opened page - */ - public PlayerDisplayGuiPageEvent(ClickGuiInterface gui, ArenaPlayerInterface player, ClickGuiPageInterface page) - { - this.gui = gui; - this.player = player; - this.page = page; - } - - /** - * Returns the gui that the player opened - * - * @return the gui the player opened. - */ - public ClickGuiInterface getGui() - { - return this.gui; - } - - /** - * Returns the player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the opened page - * - * @return the page - */ - public ClickGuiPageInterface getPage() - { - return this.page; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java deleted file mode 100644 index 4dd3ebed..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerGuiClickEvent.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiItem; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * Fired before the click handler is called. - * - * <p> - * The event can be cancelled. - * </p> - * - * @author mepeisen - * - */ -public class PlayerGuiClickEvent extends AbstractVetoEvent -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the gui the player opened. */ - private final ClickGuiInterface gui; - - /** the player. */ - private final ArenaPlayerInterface player; - - /** the clicked gui item. */ - private final ClickGuiItem item; - - /** - * Constructor. - * - * @param gui - * the target gui - * @param player - * the target player - * @param item - * clicked item - */ - public PlayerGuiClickEvent(ClickGuiInterface gui, ArenaPlayerInterface player, ClickGuiItem item) - { - this.gui = gui; - this.player = player; - this.item = item; - } - - /** - * Returns the gui that the player opened - * - * @return the gui the player opened. - */ - public ClickGuiInterface getGui() - { - return this.gui; - } - - /** - * Returns the player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the clicked item. - * - * @return the item - */ - public ClickGuiItem getItem() - { - return this.item; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java deleted file mode 100644 index 4fd65cde..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/PlayerOpenGuiEvent.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * Fired before the player opens a gui. - * - * <p> - * Event can be cancelled. - * </p> - * - * @author mepeisen - */ -public class PlayerOpenGuiEvent extends AbstractVetoEvent -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the gui the player opened. */ - private final ClickGuiInterface gui; - - /** the player. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param gui - * the opened gui - * @param player - * the target player - */ - public PlayerOpenGuiEvent(ClickGuiInterface gui, ArenaPlayerInterface player) - { - this.gui = gui; - this.player = player; - } - - /** - * Returns the gui that the player opened - * - * @return the gui the player opened. - */ - public ClickGuiInterface getGui() - { - return this.gui; - } - - /** - * Returns the player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java deleted file mode 100644 index 6f641f1e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiId.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.gui; - -/** - * An interface used in enumerations to identify the gui. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - */ -public interface ClickGuiId -{ - - /** - * Enumeration value name. - * - * @return enumeration value name. - */ - String name(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java deleted file mode 100644 index cb712901..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiInterface.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.gui; - -/** - * An interface to build a smart gui. - * - * @author mepeisen - */ -public interface ClickGuiInterface -{ - - /** - * Returns an internal unique id that is used to identify this gui. - * - * @return internal id to identify this gui. - */ - ClickGuiId getUniqueId(); - - /** - * Returns the initial page for the gui. - * - * @return initial page. - */ - ClickGuiPageInterface getInitialPage(); - - /** - * Returns the line count of this gui. - * @return line count; must be a value between 1 and 6 - */ - int getLineCount(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java deleted file mode 100644 index 6578bc4d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiItem.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.gui; - -import org.bukkit.inventory.ItemStack; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * A clickable gui item. - * - * @author mepeisen - */ -public class ClickGuiItem -{ - - /** the item stack used to display the gui item */ - private final ItemStack itemStack; - - /** the items name/ title. */ - private final LocalizedMessageInterface displayName; - - /** the click handler. */ - private GuiItemHandler handler; - - /** - * Constructor to create a click item. - * - * @param itemStack - * the item stack to display the gui item - * @param displayName - * the display name - * @param handler - * the action handler - */ - public ClickGuiItem(ItemStack itemStack, LocalizedMessageInterface displayName, GuiItemHandler handler) - { - this.itemStack = itemStack.clone(); - this.displayName = displayName; - this.handler = handler; - } - - /** - * @return the itemStack - */ - public ItemStack getItemStack() - { - return this.itemStack.clone(); - } - - /** - * @return the displayName - */ - public LocalizedMessageInterface getDisplayName() - { - return this.displayName; - } - - /** - * Handle gui event. - * - * @param player - * player that clicked the item - * @param session - * gui session. - * @param guiInterface - * gui interface. - * @throws MinigameException - * thrown if there are errors. - */ - public void handle(ArenaPlayerInterface player, GuiSessionInterface session, ClickGuiInterface guiInterface) throws MinigameException - { - this.handler.handle(player, session, guiInterface); - } - - /** - * Gui item handler. - * - * @author mepeisen - */ - @FunctionalInterface - public interface GuiItemHandler - { - /** - * Handle gui event. - * - * @param player - * player that clicked the item - * @param session - * gui session. - * @param guiInterface - * gui interface. - * @throws MinigameException - * thrown if there are errors. - */ - void handle(ArenaPlayerInterface player, GuiSessionInterface session, ClickGuiInterface guiInterface) throws MinigameException; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java deleted file mode 100644 index 57dfbea2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/ClickGuiPageInterface.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.gui; - -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; - -/** - * A single gui page. - * - * @author mepeisen - * - */ -public interface ClickGuiPageInterface -{ - - /** - * Returns the name of the inventory. - * - * @return inventory name. - */ - LocalizedMessageInterface getPageName(); - - /** - * Returns the click items. - * @return click items; first array dimension is the line; second the column. - */ - ClickGuiItem[][] getItems(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java deleted file mode 100644 index a3f7f6ae..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/gui/GuiSessionInterface.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.gui; - -import com.github.mce.minigames.api.config.Configurable; -import com.github.mce.minigames.api.context.MinigameStorage; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * An interface for a gui session. - * - * @author mepeisen - */ -public interface GuiSessionInterface extends Configurable -{ - - /** - * Returns the player that owns this gui session. - * - * @return player owning the session. - */ - ArenaPlayerInterface getPlayer(); - - /** - * Returns the current click gui reference. - * - * @return current click gui. - */ - ClickGuiInterface getGui(); - - /** - * Sets a new gui page or updates the client after changing the gui items of a page. - * - * @param page new gui page. - */ - void setNewPage(ClickGuiPageInterface page); - - /** - * Closes the gui session. - */ - void close(); - - /** - * Returns a gui storage for storing data while the gui is open. - * - * @return a gui storage. - */ - MinigameStorage getGuiStorage(); - - /** - * Returns a gui storage for storing data while the player is logged in. - * - * @return gui storage. - */ - MinigameStorage getPlayerSessionStorage(); - - /** - * Returns a gui storage for persistent data stored on disk - * - * @return gui storage. - */ - MinigameStorage getPlayerPersistentStorage(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java deleted file mode 100644 index 381de477..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigLine.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import org.bukkit.configuration.ConfigurationSection; - -import com.github.mce.minigames.api.config.Configurable; - -/** - * A localized string placed within configuration files (not from messages.yml). - * - * @author mepeisen - */ -public class LocalizedConfigLine implements Configurable, LocalizedMessageInterface -{ - - /** - * serial version uid. - */ - private static final long serialVersionUID = -2121306517414707420L; - - /** - * The default locale. - */ - private Locale defaultLocale = Locale.ENGLISH; - - /** - * The user strings per locale. - */ - private Map<Locale, List<String>> userStrings = new HashMap<>(); - - /** - * The admin strings per locale. - */ - private Map<Locale, List<String>> adminStrings = new HashMap<>(); - - /** - * Sets the user messages. - * @param locale locale to use - * @param message message array to be used. - */ - public void setUserMessages(Locale locale, String[] message) - { - if (message == null) - { - this.userStrings.remove(locale); - } - else - { - final List<String> list = this.userStrings.computeIfAbsent(locale, (key) -> new ArrayList<>()); - list.clear(); - for (final String msg : message) - { - list.add(msg); - } - } - } - - /** - * Sets the admin messages. - * @param locale locale to use - * @param message message array to be used. - */ - public void setAdminMessages(Locale locale, String[] message) - { - if (message == null) - { - this.adminStrings.remove(locale); - } - else - { - final List<String> list = this.adminStrings.computeIfAbsent(locale, (key) -> new ArrayList<>()); - list.clear(); - for (final String msg : message) - { - list.add(msg); - } - } - } - - @Override - public void readFromConfig(ConfigurationSection section) - { - if (section.contains("default_locale")) //$NON-NLS-1$ - { - this.defaultLocale = new Locale(section.getString("default_locale"), ""); //$NON-NLS-1$ //$NON-NLS-2$ - } - this.userStrings.clear(); - if (section.contains("user")) //$NON-NLS-1$ - { - for (final String key : section.getConfigurationSection("user").getKeys(false)) //$NON-NLS-1$ - { - final Locale locale = new Locale(key, ""); //$NON-NLS-1$ - this.userStrings.put(locale, section.getStringList("user." + key)); //$NON-NLS-1$ - } - } - this.adminStrings.clear(); - if (section.contains("admin")) //$NON-NLS-1$ - { - for (final String key : section.getConfigurationSection("admin").getKeys(false)) //$NON-NLS-1$ - { - final Locale locale = new Locale(key, ""); //$NON-NLS-1$ - this.adminStrings.put(locale, section.getStringList("admin." + key)); //$NON-NLS-1$ - } - } - } - - @Override - public void writeToConfig(ConfigurationSection section) - { - section.set("default_locale", this.defaultLocale.toString()); //$NON-NLS-1$ - for (final Map.Entry<Locale, List<String>> userStr : this.userStrings.entrySet()) - { - section.set("user." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ - } - for (final Map.Entry<Locale, List<String>> userStr : this.adminStrings.entrySet()) - { - section.set("admin." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ - } - } - - @Override - public boolean isSingleLine() - { - return false; - } - - @Override - public boolean isMultiLine() - { - return true; - } - - @Override - public MessageSeverityType getSeverity() - { - return MessageSeverityType.Information; - } - - @Override - public String toUserMessage(Locale locale, Serializable... args) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - - @Override - public String[] toUserMessageLine(Locale locale, Serializable... args) - { - List<String> smsg = this.userStrings.get(locale); - if (smsg == null) - { - smsg = this.userStrings.get(this.defaultLocale); - } - if (smsg == null) - { - return new String[0]; - } - final String[] result = new String[smsg.size()]; - int i = 0; - for (final String lmsg : smsg) - { - result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, false, args)); - i++; - } - return result; - } - - @Override - public String toAdminMessage(Locale locale, Serializable... args) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - - @Override - public String[] toAdminMessageLine(Locale locale, Serializable... args) - { - List<String> smsg = this.adminStrings.get(locale); - if (smsg == null || smsg.size() == 0) - { - smsg = this.userStrings.get(locale); - } - if (smsg == null) - { - smsg = this.adminStrings.get(this.defaultLocale); - } - if (smsg == null || smsg.size() == 0) - { - smsg = this.userStrings.get(this.defaultLocale); - } - if (smsg == null) - { - return new String[0]; - } - final String[] result = new String[smsg.size()]; - int i = 0; - for (final String lmsg : smsg) - { - result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, true, args)); - i++; - } - return result; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java deleted file mode 100644 index a9eee52c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedConfigString.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import java.io.Serializable; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import org.bukkit.configuration.ConfigurationSection; - -import com.github.mce.minigames.api.config.Configurable; - -/** - * A localized string placed within configuration files (not from messages.yml). - * - * @author mepeisen - */ -public class LocalizedConfigString implements Configurable, LocalizedMessageInterface -{ - - /** - * serial version uid. - */ - private static final long serialVersionUID = -2121306517414707420L; - - /** - * The default locale. - */ - private Locale defaultLocale = Locale.ENGLISH; - - /** - * The user strings per locale. - */ - private Map<Locale, String> userStrings = new HashMap<>(); - - /** - * The admin strings per locale. - */ - private Map<Locale, String> adminStrings = new HashMap<>(); - - /** - * Sets the user message. - * @param locale locale to use - * @param message message to be used. - */ - public void setUserMessage(Locale locale, String message) - { - if (message == null) - { - this.userStrings.remove(locale); - } - else - { - this.userStrings.put(locale, message); - } - } - - /** - * Sets the admin message. - * @param locale locale to use - * @param message message array to be used. - */ - public void setAdminMessage(Locale locale, String message) - { - if (message == null) - { - this.adminStrings.remove(locale); - } - else - { - this.adminStrings.put(locale, message); - } - } - - @Override - public void readFromConfig(ConfigurationSection section) - { - if (section.contains("default_locale")) //$NON-NLS-1$ - { - this.defaultLocale = new Locale(section.getString("default_locale"), ""); //$NON-NLS-1$ //$NON-NLS-2$ - } - this.userStrings.clear(); - if (section.contains("user")) //$NON-NLS-1$ - { - for (final String key : section.getConfigurationSection("user").getKeys(false)) //$NON-NLS-1$ - { - final Locale locale = new Locale(key, ""); //$NON-NLS-1$ - this.userStrings.put(locale, section.getString("user." + key)); //$NON-NLS-1$ - } - } - this.adminStrings.clear(); - if (section.contains("admin")) //$NON-NLS-1$ - { - for (final String key : section.getConfigurationSection("admin").getKeys(false)) //$NON-NLS-1$ - { - final Locale locale = new Locale(key, ""); //$NON-NLS-1$ - this.adminStrings.put(locale, section.getString("admin." + key)); //$NON-NLS-1$ - } - } - } - - @Override - public void writeToConfig(ConfigurationSection section) - { - section.set("default_locale", this.defaultLocale.toString()); //$NON-NLS-1$ - for (final Map.Entry<Locale, String> userStr : this.userStrings.entrySet()) - { - section.set("user." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ - } - for (final Map.Entry<Locale, String> userStr : this.adminStrings.entrySet()) - { - section.set("admin." + userStr.getKey().toString(), userStr.getValue()); //$NON-NLS-1$ - } - } - - @Override - public boolean isSingleLine() - { - return true; - } - - @Override - public boolean isMultiLine() - { - return false; - } - - @Override - public MessageSeverityType getSeverity() - { - return MessageSeverityType.Information; - } - - @Override - public String toUserMessage(Locale locale, Serializable... args) - { - String smsg = this.userStrings.get(locale); - if (smsg == null) - { - smsg = this.userStrings.get(this.defaultLocale); - } - if (smsg == null) - { - return null; - } - return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); - } - - @Override - public String[] toUserMessageLine(Locale locale, Serializable... args) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - - @Override - public String toAdminMessage(Locale locale, Serializable... args) - { - String smsg = this.adminStrings.get(locale); - if (smsg == null || smsg.length() == 0) - { - smsg = this.userStrings.get(locale); - } - if (smsg == null) - { - smsg = this.adminStrings.get(this.defaultLocale); - } - if (smsg == null || smsg.length() == 0) - { - smsg = this.userStrings.get(this.defaultLocale); - } - if (smsg == null) - { - return null; - } - return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, true, args)); - } - - @Override - public String[] toAdminMessageLine(Locale locale, Serializable... args) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java deleted file mode 100644 index 7901bf9e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessage.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single localized message. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface LocalizedMessage -{ - - /** - * Represents black - */ - String BLACK = "§0"; //$NON-NLS-1$ - - /** - * Represents dark blue - */ - String DARK_BLUE = "§1"; //$NON-NLS-1$ - - /** - * Represents dark green - */ - String DARK_GREEN = "§2"; //$NON-NLS-1$ - - /** - * Represents dark blue (aqua) - */ - String DARK_AQUA = "§3"; //$NON-NLS-1$ - - /** - * Represents dark red - */ - String DARK_RED = "§4"; //$NON-NLS-1$ - - /** - * Represents dark purple - */ - String DARK_PURPLE = "§5"; //$NON-NLS-1$ - - /** - * Represents gold - */ - String GOLD = "§6"; //$NON-NLS-1$ - - /** - * Represents gray - */ - String GRAY = "§7"; //$NON-NLS-1$ - - /** - * Represents dark gray - */ - String DARK_GRAY = "§8"; //$NON-NLS-1$ - - /** - * Represents blue - */ - String BLUE = "§9"; //$NON-NLS-1$ - - /** - * Represents green - */ - String GREEN = "§a"; //$NON-NLS-1$ - - /** - * Represents aqua - */ - String AQUA = "§b"; //$NON-NLS-1$ - - /** - * Represents red - */ - String RED = "§c"; //$NON-NLS-1$ - - /** - * Represents light purple - */ - String LIGHT_PURPLE = "§d"; //$NON-NLS-1$ - - /** - * Represents yellow - */ - String YELLOW = "§e"; //$NON-NLS-1$ - - /** - * Represents white - */ - String WHITE = "§f"; //$NON-NLS-1$ - - /** - * Represents magical characters that change around randomly - */ - String MAGIC = "§k"; //$NON-NLS-1$ - - /** - * Makes the text bold. - */ - String BOLD = "§l"; //$NON-NLS-1$ - - /** - * Makes a line appear through the text. - */ - String STRIKETHROUGH = "§m"; //$NON-NLS-1$ - - /** - * Makes the text appear underlined. - */ - String UNDERLINE = "§n"; //$NON-NLS-1$ - - /** - * Makes the text italic. - */ - String ITALIC = "§o"; //$NON-NLS-1$ - - /** - * Resets all previous chat colors or formats. - */ - String RESET = "§r"; //$NON-NLS-1$ - - /** - * Returns the default user message used as fallback; must be in locale returned by {@link LocalizedMessages#defaultLocale()}. - * - * <p> - * Uses {@link String#format(String, Object...)} to build the message with arguments. - * </p> - * - * @return default message. - */ - String defaultMessage(); - - /** - * Returns the default administration message used as fallback; must be in locale returned by {@link LocalizedMessages#defaultLocale()}. - * - * <p> - * Uses {@link String#format(String, Object...)} to build the message with arguments. - * </p> - * - * @return default message; empty string if it should default to the user message - */ - String defaultAdminMessage() default ""; - - /** - * Returns the message severity. - * @return message severity. - */ - MessageSeverityType severity() default MessageSeverityType.Information; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java deleted file mode 100644 index 1ec59067..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageInterface.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import java.io.Serializable; -import java.util.Locale; -import java.util.function.BiFunction; - -import com.github.mce.minigames.api.MglibInterface; - -/** - * An interface for enumerations that represent localized messages. - * - * @author mepeisen - */ -public interface LocalizedMessageInterface extends Serializable -{ - - /** - * Checks if this is a single line message. - * - * @return {@code true} for single line messages. - */ - default boolean isSingleLine() - { - try - { - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); - return msg != null; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Checks if this is a multi line message. - * - * @return {@code true} for multi line messages. - */ - default boolean isMultiLine() - { - try - { - final LocalizedMessageList msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessageList.class); - return msg != null; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns the message severity type. - * - * @return severity type. - */ - default MessageSeverityType getSeverity() - { - try - { - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); - return msg == null ? MessageSeverityType.Information : msg.severity(); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns a human readable text for this message; this message will be displayed to common users. - * - * @param locale - * locale to be used. - * @param args - * object arguments that can be used to build the message. - * @return message string. - */ - default String toUserMessage(Locale locale, Serializable... args) - { - try - { - final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); - if (msgs == null || msg == null) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); - if (messages == null) - { - throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ - } - - final String smsg = messages.getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ - return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns an array of human readable texts for this message; this message will be displayed to common users. - * - * @param locale - * locale to be used. - * @param args - * object arguments that can be used to build the message. - * @return message string array. - */ - default String[] toUserMessageLine(Locale locale, Serializable... args) - { - try - { - final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessageList msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessageList.class); - if (msgs == null || msg == null) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); - if (messages == null) - { - throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ - } - - final String[] smsg = messages.getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ - final String[] result = new String[smsg.length]; - int i = 0; - for (final String lmsg : smsg) - { - result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, false, args)); - i++; - } - return result; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns an array of human readable texts for this message; the message will be displayed to administrators only. - * - * @param locale - * locale to be used. - * @param args - * object arguments that can be used to build the message. - * @return message string. - */ - default String toAdminMessage(Locale locale, Serializable... args) - { - try - { - final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessage.class); - if (msgs == null || msg == null) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); - if (messages == null) - { - throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ - } - - String smsg = messages.getAdminString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultAdminMessage()); //$NON-NLS-1$ - if (smsg.length() == 0) - { - smsg = messages.getString(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.defaultMessage()); //$NON-NLS-1$ - } - return String.format(locale, smsg, (Object[]) MessageTool.convertArgs(locale, false, args)); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns an array of human readable texts for this message; the message will be displayed to administrators only. - * - * @param locale - * locale to be used. - * @param args - * object arguments that can be used to build the message. - * @return message string. - */ - default String[] toAdminMessageLine(Locale locale, Serializable... args) - { - try - { - final LocalizedMessages msgs = this.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessageList msg = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(LocalizedMessageList.class); - if (msgs == null || msg == null) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - final MglibInterface mglib = MglibInterface.INSTANCE.get(); - final MessagesConfigInterface messages = mglib.getMessagesFromMsg(this); - if (messages == null) - { - throw new IllegalStateException("minigame not found or inactive."); //$NON-NLS-1$ - } - - String[] smsg = messages.getAdminStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.adminMessages().length == 0 ? null : msg.adminMessages()); //$NON-NLS-1$ - if (smsg == null || smsg.length == 0) - { - smsg = messages.getStringList(locale, msgs.value() + "." + ((Enum<?>) this).name(), msg.value()); //$NON-NLS-1$ - } - final String[] result = new String[smsg.length]; - int i = 0; - for (final String lmsg : smsg) - { - result[i] = String.format(locale, lmsg, (Object[]) MessageTool.convertArgs(locale, false, args)); - i++; - } - return result; - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Converts this message to a string function - * - * @param args - * arguments to use. - * @return ths string function - */ - default DynamicArg toArg(Serializable... args) - { - return (loc, isAdmin) -> isAdmin ? this.toAdminMessage(loc, args) : this.toUserMessage(loc, args); - } - - /** - * Converts this message to a string function - * - * @param startLine - * starting line - * @param lineLimit - * limit of lines - * @param args - * arguments to use. - * @return ths string function - */ - default DynamicListArg toListArg(int startLine, int lineLimit, Serializable... args) - { - return (loc, isAdmin) -> isAdmin ? this.toAdminMessageLine(loc, args) : this.toUserMessageLine(loc, args); - } - - /** - * Converts this message to a string function - * - * @param args - * arguments to use. - * @return ths string function - */ - default DynamicListArg toListArg(Serializable... args) - { - return (loc, isAdmin) -> isAdmin ? this.toAdminMessageLine(loc, args) : this.toUserMessageLine(loc, args); - } - - /** - * Helper interface for dynamic arguments. - */ - @FunctionalInterface - interface DynamicArg extends BiFunction<Locale, Boolean, String>, Serializable - { - // marker only - } - - /** - * Helper interface for dynamic arguments. - */ - @FunctionalInterface - interface DynamicListArg extends BiFunction<Locale, Boolean, String[]>, Serializable - { - // marker only - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java deleted file mode 100644 index b1d3370e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessageList.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A flexible list of localized messages. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface LocalizedMessageList -{ - - /** - * Represents black - */ - String BLACK = "§0"; //$NON-NLS-1$ - - /** - * Represents dark blue - */ - String DARK_BLUE = "§1"; //$NON-NLS-1$ - - /** - * Represents dark green - */ - String DARK_GREEN = "§2"; //$NON-NLS-1$ - - /** - * Represents dark blue (aqua) - */ - String DARK_AQUA = "§3"; //$NON-NLS-1$ - - /** - * Represents dark red - */ - String DARK_RED = "§4"; //$NON-NLS-1$ - - /** - * Represents dark purple - */ - String DARK_PURPLE = "§5"; //$NON-NLS-1$ - - /** - * Represents gold - */ - String GOLD = "§6"; //$NON-NLS-1$ - - /** - * Represents gray - */ - String GRAY = "§7"; //$NON-NLS-1$ - - /** - * Represents dark gray - */ - String DARK_GRAY = "§8"; //$NON-NLS-1$ - - /** - * Represents blue - */ - String BLUE = "§9"; //$NON-NLS-1$ - - /** - * Represents green - */ - String GREEN = "§a"; //$NON-NLS-1$ - - /** - * Represents aqua - */ - String AQUA = "§b"; //$NON-NLS-1$ - - /** - * Represents red - */ - String RED = "§c"; //$NON-NLS-1$ - - /** - * Represents light purple - */ - String LIGHT_PURPLE = "§d"; //$NON-NLS-1$ - - /** - * Represents yellow - */ - String YELLOW = "§e"; //$NON-NLS-1$ - - /** - * Represents white - */ - String WHITE = "§f"; //$NON-NLS-1$ - - /** - * Represents magical characters that change around randomly - */ - String MAGIC = "§k"; //$NON-NLS-1$ - - /** - * Makes the text bold. - */ - String BOLD = "§l"; //$NON-NLS-1$ - - /** - * Makes a line appear through the text. - */ - String STRIKETHROUGH = "§m"; //$NON-NLS-1$ - - /** - * Makes the text appear underlined. - */ - String UNDERLINE = "§n"; //$NON-NLS-1$ - - /** - * Makes the text italic. - */ - String ITALIC = "§o"; //$NON-NLS-1$ - - /** - * Resets all previous chat colors or formats. - */ - String RESET = "§r"; //$NON-NLS-1$ - - /** - * The array of localized messages (lines) inside this list. - * - * @return predefined list of messages. - */ - String[] value(); - - /** - * The array of localized messages (lines) inside this list. - * - * @return predefined list of messages. - */ - String[] adminMessages() default {}; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java deleted file mode 100644 index 15351791..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/LocalizedMessages.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A localized message class used within messages.yml of a plugin; should be used by enumerations that implement the {@link LocalizedMessageInterface}. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(TYPE) -public @interface LocalizedMessages -{ - - /** - * The default locale this plugin uses. - * - * @return default/fallback locale. - */ - String defaultLocale() default "en"; - - /** - * The default path used within messages.yml. - * - * @return default path for this message. - */ - String value(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java deleted file mode 100644 index d3730e02..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageSeverityType.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -/** - * Message severity enumeration - * - * @author mepeisen - */ -public enum MessageSeverityType -{ - - /** a success message (command succeeded). */ - Success, - - /** an information message. */ - Information, - - /** a warning message. */ - Warning, - - /** an error message. */ - Error, - - /** A winning message (happy mood). */ - Winner, - - /** A losing message (sad mood). */ - Loser - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java deleted file mode 100644 index d2d329df..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessageTool.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import java.io.Serializable; -import java.util.Locale; - -/** - * Utility class for messages. - * - * @author mepeisen - */ -class MessageTool -{ - - /** - * Converts the given source array to serialized target array that can be passed to String.format - * - * @param locale - * @param isAdmin - * @param src - * @return converted array - */ - public static Serializable[] convertArgs(Locale locale, boolean isAdmin, Serializable[] src) - { - final Serializable[] result = new Serializable[src.length]; - for (int i = 0; i < src.length; i++) - { - final Serializable srcelm = src[i]; - if (srcelm instanceof LocalizedMessageInterface.DynamicArg) - { - result[i] = ((LocalizedMessageInterface.DynamicArg) srcelm).apply(locale, isAdmin); - } - else if (srcelm instanceof LocalizedMessageInterface.DynamicListArg) - { - final StringBuilder builder = new StringBuilder(); - for (final String line : ((LocalizedMessageInterface.DynamicListArg) srcelm).apply(locale, isAdmin)) - { - if (builder.length() > 0) - { - builder.append("\n"); //$NON-NLS-1$ - } - builder.append(line); - } - builder.append("\n"); //$NON-NLS-1$ - result[i] = builder.toString(); - } - else - { - result[i] = src[i]; - } - } - return result; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java deleted file mode 100644 index 9702e26c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/locale/MessagesConfigInterface.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.locale; - -import java.util.Locale; - -/** - * Helper interface for accessing messages configuration files. - * - * @author mepeisen - */ -public interface MessagesConfigInterface -{ - - /** - * Returns a string configuration for given option path. - * - * @param locale - * the locale to be used - * @param path - * configuration option path - * @param defaultValue - * default value to return - * @return option value. - */ - String getString(Locale locale, String path, String defaultValue); - - /** - * Returns a string configuration for given option path. - * - * @param locale - * the locale to be used - * @param path - * configuration option path - * @param defaultValue - * default value to return - * @return option value. - */ - String getAdminString(Locale locale, String path, String defaultValue); - - /** - * Returns an array of Strings for given option path, - * - * @param locale - * the locale to be used - * @param path - * configuration option path - * @param defaultValue - * default value to return - * @return array of strings - */ - String[] getStringList(Locale locale, String path, String[] defaultValue); - - /** - * Returns an array of Strings for given option path, - * - * @param locale - * the locale to be used - * @param path - * configuration option path - * @param defaultValue - * default value to return - * @return array of strings - */ - String[] getAdminStringList(Locale locale, String path, String[] defaultValue); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java index 454c125e..add3ca07 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java @@ -15,6 +15,10 @@ package com.github.mce.minigames.api.perms; +import de.minigameslib.mclib.api.perms.Permission; +import de.minigameslib.mclib.api.perms.Permissions; +import de.minigameslib.mclib.api.perms.PermissionsInterface; + /** * Common permissions within minigames lib. * diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java deleted file mode 100644 index e5f6017a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permission.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.perms; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single permission to test. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface Permission -{ - - /** - * The name of the permission. - * - * <p> - * The name is appended to the path of the {@link Permissions} annotation on the enum class. - * </p> - * - * @return Name of permission; empty string to use the constant name. - */ - String value() default ""; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java deleted file mode 100644 index 0daaedbd..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/Permissions.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.perms; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A list of permissions; should be used by enumerations that implement the {@link PermissionsInterface}. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(TYPE) -public @interface Permissions -{ - - /** - * The default path used as a prefix for the permissions. - * - * <p> - * Within path the following variables can be used: - * </p> - * - * <ul> - * <li>"$MGLIB$" : will be replaced with minigame libs permission prefix.</li> - * <li>"$MINIGAME$" : will be replaced by the current minigame name.</li> - * <li>"$ARENA$" : will be replaces by the current arena name.</li> - * </ul> - * - * @return default path used as a prefix. - */ - String value(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java deleted file mode 100644 index c187a2e2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/PermissionsInterface.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.perms; - -import com.github.mce.minigames.api.MglibInterface; - -/** - * An interface for enumerations that represent list of permissions. - * - * @author mepeisen - */ -public interface PermissionsInterface -{ - - /** - * Returns the full permission name. - * - * @return full permission name. - */ - default String fullPath() - { - try - { - final Permissions permissions = this.getClass().getAnnotation(Permissions.class); - final Permission perm = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(Permission.class); - if (permissions == null || perm == null) - { - throw new IllegalStateException("Invalid permission class."); //$NON-NLS-1$ - } - return permissions.value() + '.' + (perm.value().length() == 0 ? ((Enum<?>) this).name() : perm.value()); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Returns the resolved permission name. - * - * @return resolved permission name. - */ - default String resolveName() - { - final String srcName = this.fullPath(); - return MglibInterface.INSTANCE.get().resolveContextVar(srcName); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java index 5313d566..bd061a30 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java @@ -15,23 +15,18 @@ package com.github.mce.minigames.api.player; -import java.io.Serializable; -import java.util.Locale; import java.util.UUID; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.context.MinigameStorage; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.GuiSessionInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; /** * Interface representing players, maybe inside arenas. @@ -48,57 +43,47 @@ public interface ArenaPlayerInterface * * @return bukkit player. */ - Player getBukkitPlayer(); + default Player getBukkitPlayer() + { + return this.getMcPlayer().getBukkitPlayer(); + } /** * Returns the name of the player. * * @return name of the player. */ - String getName(); + default String getName() + { + return this.getMcPlayer().getName(); + } /** * Returns the bukkit offline player. * * @return bukkit offline player. */ - OfflinePlayer getOfflinePlayer(); - - /** - * Returns the players uuid. - * - * @return uuid. - */ - UUID getPlayerUUID(); - - // localization - - /** - * Sends a message to given player. - * - * @param msg - * message to send. - * @param args - * arguments to use for this message. - */ - void sendMessage(LocalizedMessageInterface msg, Serializable... args); + default OfflinePlayer getOfflinePlayer() + { + return this.getMcPlayer().getOfflinePlayer(); + } /** - * Returns the preferred locale + * Returns the mclib player. * - * @return preferred user locale or {@code null} if the player uses server default locale. + * @return mclib player. */ - Locale getPreferredLocale(); + McPlayerInterface getMcPlayer(); /** - * Sets the preferred locale for this user. + * Returns the players uuid. * - * @param locale - * preferred locale - * @throws MinigameException - * thrown if there are problems saving the data. + * @return uuid. */ - void setPreferredLocale(Locale locale) throws MinigameException; + default UUID getPlayerUUID() + { + return this.getMcPlayer().getPlayerUUID(); + } // arena data @@ -123,72 +108,6 @@ public interface ArenaPlayerInterface */ void join(WaitQueue queue); - // permissions check - - /** - * Checks if the user has a permission. - * - * @param perm - * permission to check. - * @return {@code true} if the user has a permission. - */ - boolean checkPermission(PermissionsInterface perm); - - // storage - - /** - * Returns a storage only available within the current execution context. - * - * <p> - * This storage can be useful to temporary add data, for example across multiple events. - * </p> - * - * @return context storage. - */ - MinigameStorage getContextStorage(); - - /** - * Returns a session storage only hold in memory. - * - * <p> - * This storage can be useful to temporary add data till the server stops or the user logs out. - * </p> - * - * @return session storage. - */ - MinigameStorage getSessionStorage(); - - /** - * Returns a persistent storage written to disc. - * - * <p> - * This storage can be useful to persistent data on the disc. - * </p> - * - * @return context storage. - */ - MinigameStorage getPersistentStorage(); - - // gui - - /** - * Returns the current gui session (if any) - * - * @return gui session or {@code null} if the user has no opened gui. - */ - GuiSessionInterface getGuiSession(); - - /** - * Lets the player opening a new gui session. - * - * @param gui - * gui to display - * @return gui session - * @throws MinigameException - * thrown if the player is not online. - */ - GuiSessionInterface openGui(ClickGuiInterface gui) throws MinigameException; - // stubbing /** @@ -203,17 +122,17 @@ public interface ArenaPlayerInterface * * @return the outgoing stub to apply then or else consumers. * - * @throws MinigameException + * @throws McException * will be thrown if either the test function or then/else consumers throw the exception. */ - MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInterface> test) throws MinigameException; + McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException; /** * Returns a test function to check if the user is online on the current server. * * @return predicate to return {@code true} if the arena player is online. */ - static MgPredicate<ArenaPlayerInterface> isOnline() + static McPredicate<ArenaPlayerInterface> isOnline() { return (pl) -> pl.getBukkitPlayer() != null; } @@ -223,22 +142,9 @@ static MgPredicate<ArenaPlayerInterface> isOnline() * * @return predicate to return {@code true} if the player is inside any arena on the current server. */ - static MgPredicate<ArenaPlayerInterface> isInArena() + static McPredicate<ArenaPlayerInterface> isInArena() { return (pl) -> pl.getArena() != null; } - /** - * Returns a test function to check if the user has a given permission. - * - * @param perm - * the permission to check. - * - * @return predicate to return {@code true} if the player has given permission. - */ - static MgPredicate<ArenaPlayerInterface> hasPerm(PermissionsInterface perm) - { - return (pl) -> pl.checkPermission(perm); - } - } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java index b2794087..69f07736 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java @@ -18,8 +18,8 @@ import java.io.Serializable; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * A special extension for the minigames library. @@ -32,7 +32,7 @@ * * @author mepeisen */ -public interface ExtensionInterface extends ConfigInterface +public interface ExtensionInterface { /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java index f14226c2..8852241e 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java @@ -16,10 +16,11 @@ package com.github.mce.minigames.api.services; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; +import de.minigameslib.mclib.api.McException; + /** * A special extension for the minigames library. * @@ -44,18 +45,18 @@ public interface MinigameExtensionInterface extends ExtensionInterface * @param isDefault * {@code true} if this is the default arena type for this minigame. * @return the type builder. - * @throws MinigameException + * @throws McException * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. */ - ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws MinigameException; + ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException; /** * Will be called from plugin as soon as the plugin is disabled. * - * @throws MinigameException + * @throws McException * thrown if there are problems disabling the extension. */ - void disable() throws MinigameException; + void disable() throws McException; /** * Initialize this extension. @@ -64,9 +65,9 @@ public interface MinigameExtensionInterface extends ExtensionInterface * This method must be called at the end of the initialization process. * </p> * - * @throws MinigameException + * @throws McException * thrown if the extension declarations are not valid. */ - void init() throws MinigameException; + void init() throws McException; } diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java index a3e3b955..71593e2b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java @@ -19,7 +19,8 @@ import com.github.mce.minigames.api.CommonProviderInterface; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * A special extension for the minigames library. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java deleted file mode 100644 index 9361c995..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/sign/SignInterface.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.sign; - -import org.bukkit.Location; - -/** - * Common interface for signs. - * - * @author mepeisen - */ -public interface SignInterface -{ - - /** - * Returns the sign location. - * - * @return sign location. - */ - Location getLocation(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java deleted file mode 100644 index 14a8cb5e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/FalseStub.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.io.Serializable; - -import com.github.mce.minigames.api.MinigameErrorCode; -import com.github.mce.minigames.api.MinigameException; - -/** - * Outgoing stub for false checks of minigames predicates. - * @author mepeisen - * @param <T> argument class - */ -public final class FalseStub<T> implements MgOutgoingStubbing<T> -{ - - /** - * stubbed element. - */ - private final T elm; - - /** - * Constructor to create the stub. - * @param elm stubbed element - */ - public FalseStub(T elm) - { - this.elm = elm; - } - - @Override - public MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException - { - consumer.accept(this.elm); - return this; - } - - @Override - public MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException - { - throw consumer.apply(this.elm); - } - - @Override - public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException - { - throw new MinigameException(code); - } - - @Override - public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException - { - throw new MinigameException(code, args2.apply(this.elm)); - } - - @Override - public MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException - { - // does nothing - return this; - } - - @Override - public MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException - { - // does nothing - return this; - } - - @Override - public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException - { - // does nothing - return this; - } - - @Override - public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException - { - // does nothing - return this; - } - -} \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java deleted file mode 100644 index b41a6b80..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiConsumer.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.BiConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * the type of the first argument to the operation - * @param <U> - * the type of the second argument to the operation - */ -@FunctionalInterface -public interface MgBiConsumer<T, U> -{ - - /** - * Performs this operation on the given arguments. - * - * @param arg1 - * the first input argument - * @param arg2 - * the second input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(T arg1, U arg2) throws MinigameException; - - /** - * Returns a composed {@code BiConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to - * the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. - * - * @param after - * the operation to perform after this operation - * @return a composed {@code BiConsumer} that performs in sequence this operation followed by the {@code after} operation - * @throws NullPointerException - * if {@code after} is null - */ - default MgBiConsumer<T, U> andThen(MgBiConsumer<? super T, ? super U> after) - { - Objects.requireNonNull(after); - - return (arg1, arg2) -> { - accept(arg1, arg2); - after.accept(arg1, arg2); - }; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java deleted file mode 100644 index ea121f99..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiFunction.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.BiFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * the type of the first argument to the function - * @param <U> - * the type of the second argument to the function - * @param <R> - * the type of the result of the function - */ -@FunctionalInterface -public interface MgBiFunction<T, U, R> -{ - - /** - * Applies this function to the given arguments. - * - * @param arg1 - * the first function argument - * @param arg2 - * the second function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - R apply(T arg1, U arg2) throws MinigameException; - - /** - * Returns a composed function that first applies this function to its input, and then applies the {@code after} function to the result. If evaluation of either function throws an exception, it is - * relayed to the caller of the composed function. - * - * @param <V> - * the type of output of the {@code after} function, and of the composed function - * @param after - * the function to apply after this function is applied - * @return a composed function that first applies this function and then applies the {@code after} function - * @throws NullPointerException - * if after is null - */ - default <V> MgBiFunction<T, U, V> andThen(MgFunction<? super R, ? extends V> after) - { - Objects.requireNonNull(after); - return (T arg1, U arg2) -> after.apply(apply(arg1, arg2)); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java deleted file mode 100644 index 9e2814b9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBiPredicate.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.BiPredicate} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the first argument to the predicate - * @param <U> - * the type of the second argument the predicate - */ -@FunctionalInterface -public interface MgBiPredicate<T, U> -{ - - /** - * Evaluates this predicate on the given arguments. - * - * @param arg1 - * the first input argument - * @param arg2 - * the second input argument - * @return {@code true} if the input arguments match the predicate, otherwise {@code false} - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - boolean test(T arg1, U arg2) throws MinigameException; - - /** - * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ANDed with this predicate - * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgBiPredicate<T, U> and(MgBiPredicate<? super T, ? super U> other) - { - Objects.requireNonNull(other); - return (T arg1, U arg2) -> test(arg1, arg2) && other.test(arg1, arg2); - } - - /** - * Returns a predicate that represents the logical negation of this predicate. - * - * @return a predicate that represents the logical negation of this predicate - */ - default MgBiPredicate<T, U> negate() - { - return (T arg1, U arg2) -> !test(arg1, arg2); - } - - /** - * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ORed with this predicate - * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgBiPredicate<T, U> or(MgBiPredicate<? super T, ? super U> other) - { - Objects.requireNonNull(other); - return (T arg1, U arg2) -> test(arg1, arg2) || other.test(arg1, arg2); - } -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java deleted file mode 100644 index 18d9cb2e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBinaryOperator.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -/** - * Similar to {@link java.util.function.BinaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * the type of the operands and result of the operator - */ -@FunctionalInterface -public interface MgBinaryOperator<T> extends MgBiFunction<T, T, T> -{ - - /** - * Returns a {@link MgBinaryOperator} which returns the lesser of two elements according to the specified {@code Comparator}. - * - * @param <T> - * the type of the input arguments of the comparator - * @param comparator - * a {@code Comparator} for comparing the two values - * @return a {@code MgBinaryOperator} which returns the lesser of its operands, according to the supplied {@code Comparator} - * @throws NullPointerException - * if the argument is null - */ - public static <T> MgBinaryOperator<T> minBy(MgComparator<? super T> comparator) - { - Objects.requireNonNull(comparator); - return (arg1, arg2) -> comparator.compare(arg1, arg2) <= 0 ? arg1 : arg2; - } - - /** - * Returns a {@link MgBinaryOperator} which returns the greater of two elements according to the specified {@code Comparator}. - * - * @param <T> - * the type of the input arguments of the comparator - * @param comparator - * a {@code Comparator} for comparing the two values - * @return a {@code MgBinaryOperator} which returns the greater of its operands, according to the supplied {@code Comparator} - * @throws NullPointerException - * if the argument is null - */ - public static <T> MgBinaryOperator<T> maxBy(MgComparator<? super T> comparator) - { - Objects.requireNonNull(comparator); - return (arg1, arg2) -> comparator.compare(arg1, arg2) >= 0 ? arg1 : arg2; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java deleted file mode 100644 index 62a23dd7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgBooleanSupplier.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.BooleanSupplier} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgBooleanSupplier -{ - - /** - * Gets a result. - * - * @return a result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - boolean getAsBoolean() throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java deleted file mode 100644 index d296005c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgComparator.java +++ /dev/null @@ -1,547 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.Comparator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * the type of objects that may be compared by this comparator - */ -@FunctionalInterface -public interface MgComparator<T> -{ - - /** - * Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. - * - * <p> - * In the foregoing description, the notation <tt>sgn(</tt><i>expression</i><tt>)</tt> designates the mathematical <i>signum</i> function, which is defined to return one of <tt>-1</tt>, - * <tt>0</tt>, or <tt>1</tt> according to whether the value of <i>expression</i> is negative, zero or positive. - * </p> - * - * <p> - * The implementor must ensure that <tt>sgn(compare(x, y)) == - * -sgn(compare(y, x))</tt> for all <tt>x</tt> and <tt>y</tt>. (This implies that <tt>compare(x, y)</tt> must throw an exception if and only if <tt>compare(y, x)</tt> throws an exception.) - * </p> - * - * <p> - * The implementor must also ensure that the relation is transitive: <tt>((compare(x, y)>0) && (compare(y, z)>0))</tt> implies <tt>compare(x, z)>0</tt>. - * </p> - * - * <p> - * Finally, the implementor must ensure that <tt>compare(x, y)==0</tt> implies that <tt>sgn(compare(x, z))==sgn(compare(y, z))</tt> for all <tt>z</tt>. - * </p> - * - * <p> - * It is generally the case, but <i>not</i> strictly required that <tt>(compare(x, y)==0) == (x.equals(y))</tt>. Generally speaking, any comparator that violates this condition should clearly - * indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals." - * </p> - * - * @param o1 - * the first object to be compared. - * @param o2 - * the second object to be compared. - * @return a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. - * @throws NullPointerException - * if an argument is null and this comparator does not permit null arguments - * @throws ClassCastException - * if the arguments' types prevent them from being compared by this comparator. - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int compare(T o1, T o2) throws MinigameException; - - /** - * Returns a comparator that imposes the reverse ordering of this comparator. - * - * @return a comparator that imposes the reverse ordering of this comparator. - * @since 1.8 - */ - default MgComparator<T> reversed() - { - return new MgReverseComparator<>(this); - } - - /** - * Reverse comparator. - * - * @param <T> - * the type of objects that may be compared by this comparator - */ - public static final class MgReverseComparator<T> implements MgComparator<T> - { - - /** - * The comparator specified in the static factory. This will never be null, as the static factory returns a ReverseComparator instance if its argument is null. - */ - final MgComparator<T> cmp; - - /** - * Constructor. - * - * @param cmp - * comparator - */ - MgReverseComparator(MgComparator<T> cmp) - { - // assert cmp != null; - this.cmp = cmp; - } - - @Override - public int compare(T t1, T t2) throws MinigameException - { - return this.cmp.compare(t2, t1); - } - - @Override - public MgComparator<T> reversed() - { - return this.cmp; - } - } - - /** - * Returns a lexicographic-order comparator with another comparator. - * - * <p> - * If this {@code Comparator} considers two elements equal, i.e. {@code compare(a, b) == 0}, {@code other} is used to determine the order. - * </p> - * - * <p> - * The returned comparator is serializable if the specified comparator is also serializable. - * </p> - * - * @param other - * the other comparator to be used when this comparator compares two objects that are equal. - * @return a lexicographic-order comparator composed of this and then the other comparator - * @throws NullPointerException - * if the argument is null. - * @since 1.8 - */ - default MgComparator<T> thenComparing(MgComparator<? super T> other) - { - Objects.requireNonNull(other); - return (MgComparator<T>) (c1, c2) -> { - int res = compare(c1, c2); - return (res != 0) ? res : other.compare(c1, c2); - }; - } - - /** - * Returns a lexicographic-order comparator with a function that extracts a key to be compared with the given {@code Comparator}. - * - * @param <U> - * the type of the sort key - * @param keyExtractor - * the function used to extract the sort key - * @param keyComparator - * the {@code Comparator} used to compare the sort key - * @return a lexicographic-order comparator composed of this comparator and then comparing on the key extracted by the keyExtractor function - * @throws NullPointerException - * if either argument is null. - * @see #comparing(MgFunction, MgComparator) - * @see #thenComparing(MgComparator) - * @since 1.8 - */ - default <U> MgComparator<T> thenComparing(MgFunction<? super T, ? extends U> keyExtractor, MgComparator<? super U> keyComparator) - { - return thenComparing(comparing(keyExtractor, keyComparator)); - } - - /** - * Returns a lexicographic-order comparator with a function that extracts a {@code Comparable} sort key. - * - * @param <U> - * the type of the {@link Comparable} sort key - * @param keyExtractor - * the function used to extract the {@link Comparable} sort key - * @return a lexicographic-order comparator composed of this and then the {@link Comparable} sort key. - * @throws NullPointerException - * if the argument is null. - * @see #comparing(MgFunction) - * @see #thenComparing(MgComparator) - * @since 1.8 - */ - default <U extends Comparable<? super U>> MgComparator<T> thenComparing(MgFunction<? super T, ? extends U> keyExtractor) - { - return thenComparing(comparing(keyExtractor)); - } - - /** - * Returns a lexicographic-order comparator with a function that extracts a {@code int} sort key. - * - * @param keyExtractor - * the function used to extract the integer sort key - * @return a lexicographic-order comparator composed of this and then the {@code int} sort key - * @throws NullPointerException - * if the argument is null. - * @see #comparingInt(MgToIntFunction) - * @see #thenComparing(MgComparator) - * @since 1.8 - */ - default MgComparator<T> thenComparingInt(MgToIntFunction<? super T> keyExtractor) - { - return thenComparing(comparingInt(keyExtractor)); - } - - /** - * Returns a lexicographic-order comparator with a function that extracts a {@code long} sort key. - * - * @param keyExtractor - * the function used to extract the long sort key - * @return a lexicographic-order comparator composed of this and then the {@code long} sort key - * @throws NullPointerException - * if the argument is null. - * @see #comparingLong(MgToLongFunction) - * @see #thenComparing(MgComparator) - * @since 1.8 - */ - default MgComparator<T> thenComparingLong(MgToLongFunction<? super T> keyExtractor) - { - return thenComparing(comparingLong(keyExtractor)); - } - - /** - * Returns a lexicographic-order comparator with a function that extracts a {@code double} sort key. - * - * @param keyExtractor - * the function used to extract the double sort key - * @return a lexicographic-order comparator composed of this and then the {@code double} sort key - * @throws NullPointerException - * if the argument is null. - * @see #comparingDouble(MgToDoubleFunction) - * @see #thenComparing(MgComparator) - * @since 1.8 - */ - default MgComparator<T> thenComparingDouble(MgToDoubleFunction<? super T> keyExtractor) - { - return thenComparing(comparingDouble(keyExtractor)); - } - - /** - * Returns a comparator that imposes the reverse of the <em>natural ordering</em>. - * - * <p> - * The returned comparator is serializable and throws {@link NullPointerException} when comparing {@code null}. - * </p> - * - * @param <T> - * the {@link Comparable} type of element to be compared - * @return a comparator that imposes the reverse of the <i>natural ordering</i> on {@code Comparable} objects. - * @see Comparable - * @since 1.8 - */ - @SuppressWarnings("unchecked") - public static <T extends Comparable<? super T>> MgComparator<T> reverseOrder() - { - return (MgComparator<T>) ReverseComparator.INSTANCE; - } - - /** - * The reverse comparator. - */ - enum ReverseComparator implements MgComparator<Comparable<Object>> - { - - /** instance. */ - INSTANCE; - - @Override - public int compare(Comparable<Object> c1, Comparable<Object> c2) - { - return c2.compareTo(c1); - } - - @Override - public MgComparator<Comparable<Object>> reversed() - { - return NaturalOrderComparator.INSTANCE; - } - } - - /** - * Compares {@link Comparable} objects in natural order. - * - * @see Comparable - */ - enum NaturalOrderComparator implements MgComparator<Comparable<Object>> - { - /** instance. */ - INSTANCE; - - @Override - public int compare(Comparable<Object> c1, Comparable<Object> c2) - { - return c1.compareTo(c2); - } - - @Override - public MgComparator<Comparable<Object>> reversed() - { - return ReverseComparator.INSTANCE; - } - } - - /** - * Null-friendly comparators. - * - * @param <T> - * type - */ - public static final class NullComparator<T> implements MgComparator<T> - { - - /** flag nullFirst. */ - private final boolean nullFirst; - - /** real comparator. */ - private final MgComparator<T> real; - - /** - * Constructor. - * - * @param nullFirst - * flag nullFirst. - * @param real - * real cmoparator. - */ - @SuppressWarnings("unchecked") - NullComparator(boolean nullFirst, MgComparator<? super T> real) - { - this.nullFirst = nullFirst; - this.real = (MgComparator<T>) real; - } - - @Override - public int compare(T arg1, T arg2) throws MinigameException - { - if (arg1 == null) - { - return (arg2 == null) ? 0 : (this.nullFirst ? -1 : 1); - } - else if (arg2 == null) - { - return this.nullFirst ? 1 : -1; - } - else - { - return (this.real == null) ? 0 : this.real.compare(arg1, arg2); - } - } - - @Override - public MgComparator<T> thenComparing(MgComparator<? super T> other) - { - Objects.requireNonNull(other); - return new NullComparator<>(this.nullFirst, this.real == null ? other : this.real.thenComparing(other)); - } - - @Override - public MgComparator<T> reversed() - { - return new NullComparator<>(!this.nullFirst, this.real == null ? null : this.real.reversed()); - } - } - - /** - * Returns a comparator that compares {@link Comparable} objects in natural order. - * - * <p> - * The returned comparator is serializable and throws {@link NullPointerException} when comparing {@code null}. - * </p> - * - * @param <T> - * the {@link Comparable} type of element to be compared - * @return a comparator that imposes the <i>natural ordering</i> on {@code - * Comparable} objects. - * @see Comparable - * @since 1.8 - */ - @SuppressWarnings("unchecked") - public static <T extends Comparable<? super T>> MgComparator<T> naturalOrder() - { - return (MgComparator<T>) NaturalOrderComparator.INSTANCE; - } - - /** - * Returns a null-friendly comparator that considers {@code null} to be less than non-null. When both are {@code null}, they are considered equal. If both are non-null, the specified - * {@code Comparator} is used to determine the order. If the specified comparator is {@code null}, then the returned comparator considers all non-null values to be equal. - * - * <p> - * The returned comparator is serializable if the specified comparator is serializable. - * </p> - * - * @param <T> - * the type of the elements to be compared - * @param comparator - * a {@code Comparator} for comparing non-null values - * @return a comparator that considers {@code null} to be less than non-null, and compares non-null objects with the supplied {@code Comparator}. - * @since 1.8 - */ - public static <T> MgComparator<T> nullsFirst(MgComparator<? super T> comparator) - { - return new NullComparator<>(true, comparator); - } - - /** - * Returns a null-friendly comparator that considers {@code null} to be greater than non-null. When both are {@code null}, they are considered equal. If both are non-null, the specified - * {@code Comparator} is used to determine the order. If the specified comparator is {@code null}, then the returned comparator considers all non-null values to be equal. - * - * <p> - * The returned comparator is serializable if the specified comparator is serializable. - * </p> - * - * @param <T> - * the type of the elements to be compared - * @param comparator - * a {@code Comparator} for comparing non-null values - * @return a comparator that considers {@code null} to be greater than non-null, and compares non-null objects with the supplied {@code Comparator}. - * @since 1.8 - */ - public static <T> MgComparator<T> nullsLast(MgComparator<? super T> comparator) - { - return new NullComparator<>(false, comparator); - } - - /** - * Accepts a function that extracts a sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key using the specified {@link MgComparator}. - * - * <p> - * The returned comparator is serializable if the specified function and comparator are both serializable. - * </p> - * - * @param <T> - * the type of element to be compared - * @param <U> - * the type of the sort key - * @param keyExtractor - * the function used to extract the sort key - * @param keyComparator - * the {@code Comparator} used to compare the sort key - * @return a comparator that compares by an extracted key using the specified {@code Comparator} - * @throws NullPointerException - * if either argument is null - * @since 1.8 - */ - public static <T, U> MgComparator<T> comparing(MgFunction<? super T, ? extends U> keyExtractor, MgComparator<? super U> keyComparator) - { - Objects.requireNonNull(keyExtractor); - Objects.requireNonNull(keyComparator); - return (MgComparator<T>) (c1, c2) -> keyComparator.compare(keyExtractor.apply(c1), keyExtractor.apply(c2)); - } - - /** - * Accepts a function that extracts a {@link java.lang.Comparable Comparable} sort key from a type {@code T}, and returns a {@code - * Comparator<T>} that compares by that sort key. - * - * <p> - * The returned comparator is serializable if the specified function is also serializable. - * </p> - * - * @param <T> - * the type of element to be compared - * @param <U> - * the type of the {@code Comparable} sort key - * @param keyExtractor - * the function used to extract the {@link Comparable} sort key - * @return a comparator that compares by an extracted key - * @throws NullPointerException - * if the argument is null - * @since 1.8 - */ - public static <T, U extends Comparable<? super U>> MgComparator<T> comparing(MgFunction<? super T, ? extends U> keyExtractor) - { - Objects.requireNonNull(keyExtractor); - return (MgComparator<T>) (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2)); - } - - /** - * Accepts a function that extracts an {@code int} sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key. - * - * <p> - * The returned comparator is serializable if the specified function is also serializable. - * </p> - * - * @param <T> - * the type of element to be compared - * @param keyExtractor - * the function used to extract the integer sort key - * @return a comparator that compares by an extracted key - * @see #comparing(MgFunction) - * @throws NullPointerException - * if the argument is null - * @since 1.8 - */ - public static <T> MgComparator<T> comparingInt(MgToIntFunction<? super T> keyExtractor) - { - Objects.requireNonNull(keyExtractor); - return (MgComparator<T>) (c1, c2) -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2)); - } - - /** - * Accepts a function that extracts a {@code long} sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key. - * - * <p> - * The returned comparator is serializable if the specified function is also serializable. - * </p> - * - * @param <T> - * the type of element to be compared - * @param keyExtractor - * the function used to extract the long sort key - * @return a comparator that compares by an extracted key - * @see #comparing(MgFunction) - * @throws NullPointerException - * if the argument is null - * @since 1.8 - */ - public static <T> MgComparator<T> comparingLong(MgToLongFunction<? super T> keyExtractor) - { - Objects.requireNonNull(keyExtractor); - return (MgComparator<T>) (c1, c2) -> Long.compare(keyExtractor.applyAsLong(c1), keyExtractor.applyAsLong(c2)); - } - - /** - * Accepts a function that extracts a {@code double} sort key from a type {@code T}, and returns a {@code Comparator<T>} that compares by that sort key. - * - * <p> - * The returned comparator is serializable if the specified function is also serializable. - * </p> - * - * @param <T> - * the type of element to be compared - * @param keyExtractor - * the function used to extract the double sort key - * @return a comparator that compares by an extracted key - * @see #comparing(MgFunction) - * @throws NullPointerException - * if the argument is null - * @since 1.8 - */ - public static <T> MgComparator<T> comparingDouble(MgToDoubleFunction<? super T> keyExtractor) - { - Objects.requireNonNull(keyExtractor); - return (MgComparator<T>) (c1, c2) -> Double.compare(keyExtractor.applyAsDouble(c1), keyExtractor.applyAsDouble(c2)); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java deleted file mode 100644 index f676a30a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgConsumer.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.Consumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * type of the consumed items - */ -@FunctionalInterface -public interface MgConsumer<T> -{ - - /** - * Performs this operation on the given argument. - * - * @param obj - * the input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(T obj) throws MinigameException; - - /** - * Returns a composed {@code Consumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to the - * caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. - * - * @param after - * the operation to perform after this operation - * @return a composed {@code Consumer} that performs in sequence this operation followed by the {@code after} operation - * @throws NullPointerException - * if {@code after} is null - */ - default MgConsumer<T> andThen(MgConsumer<? super T> after) - { - Objects.requireNonNull(after); - return (T obj) -> { - accept(obj); - after.accept(obj); - }; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java deleted file mode 100644 index 75da1d5d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleBinaryOperator.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleBinaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoubleBinaryOperator -{ - - /** - * Applies this operator to the given operands. - * - * @param left - * the first operand - * @param right - * the second operand - * @return the operator result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double applyAsDouble(double left, double right) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java deleted file mode 100644 index aad36407..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleConsumer.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoubleConsumer -{ - - /** - * Performs this operation on the given argument. - * - * @param value - * the input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(double value) throws MinigameException; - - /** - * Returns a composed {@code DoubleConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed - * to the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. - * - * @param after - * the operation to perform after this operation - * @return a composed {@code DoubleConsumer} that performs in sequence this operation followed by the {@code after} operation - * @throws NullPointerException - * if {@code after} is null - */ - default MgDoubleConsumer andThen(MgDoubleConsumer after) - { - Objects.requireNonNull(after); - return (double value) -> { - accept(value); - after.accept(value); - }; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java deleted file mode 100644 index 65ec90cc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleFunction.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <R> - * the type of the result of the function - */ -@FunctionalInterface -public interface MgDoubleFunction<R> -{ - - /** - * Applies this function to the given argument. - * - * @param value - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - R apply(double value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java deleted file mode 100644 index cd5b48f1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoublePredicate.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoublePredicate} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoublePredicate -{ - - /** - * Evaluates this predicate on the given argument. - * - * @param value - * the input argument - * @return {@code true} if the input argument matches the predicate, otherwise {@code false} - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - boolean test(double value) throws MinigameException; - - /** - * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ANDed with this predicate - * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgDoublePredicate and(MgDoublePredicate other) - { - Objects.requireNonNull(other); - return (value) -> test(value) && other.test(value); - } - - /** - * Returns a predicate that represents the logical negation of this predicate. - * - * @return a predicate that represents the logical negation of this predicate - */ - default MgDoublePredicate negate() - { - return (value) -> !test(value); - } - - /** - * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ORed with this predicate - * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgDoublePredicate or(MgDoublePredicate other) - { - Objects.requireNonNull(other); - return (value) -> test(value) || other.test(value); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java deleted file mode 100644 index fb364e9f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleSupplier.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleSupplier} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoubleSupplier -{ - - /** - * Gets a result. - * - * @return a result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double getAsDouble() throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java deleted file mode 100644 index 8ce06bfc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToIntFunction.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleToIntFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoubleToIntFunction -{ - - /** - * Applies this function to the given argument. - * - * @param value the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int applyAsInt(double value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java deleted file mode 100644 index aa7690d9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleToLongFunction.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleToLongFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoubleToLongFunction -{ - - /** - * Applies this function to the given argument. - * - * @param value the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long applyAsLong(double value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java deleted file mode 100644 index 91a9783a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgDoubleUnaryOperator.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.DoubleUnaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgDoubleUnaryOperator -{ - - /** - * Applies this operator to the given operand. - * - * @param operand - * the operand - * @return the operator result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double applyAsDouble(double operand) throws MinigameException; - - /** - * Returns a composed operator that first applies the {@code before} operator to its input, and then applies this operator to the result. If evaluation of either operator throws an exception, it - * is relayed to the caller of the composed operator. - * - * @param before - * the operator to apply before this operator is applied - * @return a composed operator that first applies the {@code before} operator and then applies this operator - * @throws NullPointerException - * if before is null - * - * @see #andThen(MgDoubleUnaryOperator) - */ - default MgDoubleUnaryOperator compose(MgDoubleUnaryOperator before) - { - Objects.requireNonNull(before); - return (double value) -> applyAsDouble(before.applyAsDouble(value)); - } - - /** - * Returns a composed operator that first applies this operator to its input, and then applies the {@code after} operator to the result. If evaluation of either operator throws an exception, it is - * relayed to the caller of the composed operator. - * - * @param after - * the operator to apply after this operator is applied - * @return a composed operator that first applies this operator and then applies the {@code after} operator - * @throws NullPointerException - * if after is null - * - * @see #compose(MgDoubleUnaryOperator) - */ - default MgDoubleUnaryOperator andThen(MgDoubleUnaryOperator after) - { - Objects.requireNonNull(after); - return (double value) -> after.applyAsDouble(applyAsDouble(value)); - } - - /** - * Returns a unary operator that always returns its input argument. - * - * @return a unary operator that always returns its input argument - */ - static MgDoubleUnaryOperator identity() - { - return t -> t; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java deleted file mode 100644 index 25c83f0d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunction.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.Function} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * the type of the input to the function - * @param <R> - * the type of the result of the function - */ -@FunctionalInterface -public interface MgFunction<T, R> -{ - - /** - * Applies this function to the given argument. - * - * @param arg - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - R apply(T arg) throws MinigameException; - - /** - * Returns a composed function that first applies the {@code before} function to its input, and then applies this function to the result. If evaluation of either function throws an exception, it - * is relayed to the caller of the composed function. - * - * @param <V> - * the type of input to the {@code before} function, and to the composed function - * @param before - * the function to apply before this function is applied - * @return a composed function that first applies the {@code before} function and then applies this function - * @throws NullPointerException - * if before is null - * - * @see #andThen(MgFunction) - */ - default <V> MgFunction<V, R> compose(MgFunction<? super V, ? extends T> before) - { - Objects.requireNonNull(before); - return (V arg) -> apply(before.apply(arg)); - } - - /** - * Returns a composed function that first applies this function to its input, and then applies the {@code after} function to the result. If evaluation of either function throws an exception, it is - * relayed to the caller of the composed function. - * - * @param <V> - * the type of output of the {@code after} function, and of the composed function - * @param after - * the function to apply after this function is applied - * @return a composed function that first applies this function and then applies the {@code after} function - * @throws NullPointerException - * if after is null - * - * @see #compose(MgFunction) - */ - default <V> MgFunction<T, V> andThen(MgFunction<? super R, ? extends V> after) - { - Objects.requireNonNull(after); - return (T arg) -> after.apply(apply(arg)); - } - - /** - * Returns a function that always returns its input argument. - * - * @param <T> - * the type of the input and output objects to the function - * @return a function that always returns its input argument - */ - static <T> MgFunction<T, T> identity() - { - return t -> t; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java deleted file mode 100644 index aed105ce..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgFunctionUtils.java +++ /dev/null @@ -1,1092 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Comparator; -import java.util.function.BiConsumer; -import java.util.function.BiFunction; -import java.util.function.BiPredicate; -import java.util.function.BooleanSupplier; -import java.util.function.Consumer; -import java.util.function.DoubleBinaryOperator; -import java.util.function.DoubleConsumer; -import java.util.function.DoubleFunction; -import java.util.function.DoublePredicate; -import java.util.function.DoubleSupplier; -import java.util.function.DoubleToIntFunction; -import java.util.function.DoubleToLongFunction; -import java.util.function.DoubleUnaryOperator; -import java.util.function.Function; -import java.util.function.IntBinaryOperator; -import java.util.function.IntConsumer; -import java.util.function.IntFunction; -import java.util.function.IntPredicate; -import java.util.function.IntSupplier; -import java.util.function.IntToDoubleFunction; -import java.util.function.IntToLongFunction; -import java.util.function.IntUnaryOperator; -import java.util.function.LongBinaryOperator; -import java.util.function.LongConsumer; -import java.util.function.LongFunction; -import java.util.function.LongPredicate; -import java.util.function.LongSupplier; -import java.util.function.LongToDoubleFunction; -import java.util.function.LongToIntFunction; -import java.util.function.LongUnaryOperator; -import java.util.function.ObjDoubleConsumer; -import java.util.function.ObjIntConsumer; -import java.util.function.ObjLongConsumer; -import java.util.function.Predicate; -import java.util.function.Supplier; -import java.util.function.ToDoubleBiFunction; -import java.util.function.ToDoubleFunction; -import java.util.function.ToIntBiFunction; -import java.util.function.ToIntFunction; -import java.util.function.ToLongBiFunction; -import java.util.function.ToLongFunction; -import java.util.function.UnaryOperator; - -import com.github.mce.minigames.api.MinigameException; - -/** - * A helper for mg functions. - * - * @author mepeisen - */ -public class MgFunctionUtils -{ - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <U> - * class param - */ - public static <T, U> BiConsumer<T, U> wrap(MgBiConsumer<T, U> orig) - { - return (T arg1, U arg2) -> { - try - { - orig.accept(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <U> - * class param - * @param <R> - * class param - */ - public static <T, U, R> BiFunction<T, U, R> wrap(MgBiFunction<T, U, R> orig) - { - return (T arg1, U arg2) -> { - try - { - return orig.apply(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> MgBinaryOperator<T> wrap(MgBinaryOperator<T> orig) - { - return (T arg1, T arg2) -> { - try - { - return orig.apply(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <U> - * class param - */ - public static <T, U> BiPredicate<T, U> wrap(MgBiPredicate<T, U> orig) - { - return (T arg1, U arg2) -> { - try - { - return orig.test(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static BooleanSupplier wrap(MgBooleanSupplier orig) - { - return () -> { - try - { - return orig.getAsBoolean(); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> Comparator<T> wrap(MgComparator<T> orig) - { - return (T arg1, T arg2) -> { - try - { - return orig.compare(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> Consumer<T> wrap(MgConsumer<T> orig) - { - return (T arg) -> { - try - { - orig.accept(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoubleConsumer wrap(MgDoubleConsumer orig) - { - return (double arg) -> { - try - { - orig.accept(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntConsumer wrap(MgIntConsumer orig) - { - return (int arg) -> { - try - { - orig.accept(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongConsumer wrap(MgLongConsumer orig) - { - return (long arg) -> { - try - { - orig.accept(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> DoubleFunction<T> wrap(MgDoubleFunction<T> orig) - { - return (double arg) -> { - try - { - return orig.apply(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoubleSupplier wrap(MgDoubleSupplier orig) - { - return () -> { - try - { - return orig.getAsDouble(); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoublePredicate wrap(MgDoublePredicate orig) - { - return (double arg) -> { - try - { - return orig.test(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoubleToIntFunction wrap(MgDoubleToIntFunction orig) - { - return (double arg) -> { - try - { - return orig.applyAsInt(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoubleToLongFunction wrap(MgDoubleToLongFunction orig) - { - return (double arg) -> { - try - { - return orig.applyAsLong(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoubleUnaryOperator wrap(MgDoubleUnaryOperator orig) - { - return (double arg) -> { - try - { - return orig.applyAsDouble(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static DoubleBinaryOperator wrap(MgDoubleBinaryOperator orig) - { - return (double arg1, double arg2) -> { - try - { - return orig.applyAsDouble(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <R> - * class param - */ - public static <T, R> Function<T, R> wrap(MgFunction<T, R> orig) - { - return (T arg) -> { - try - { - return orig.apply(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> IntFunction<T> wrap(MgIntFunction<T> orig) - { - return (int arg) -> { - try - { - return orig.apply(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntSupplier wrap(MgIntSupplier orig) - { - return () -> { - try - { - return orig.getAsInt(); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntPredicate wrap(MgIntPredicate orig) - { - return (int arg) -> { - try - { - return orig.test(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntToDoubleFunction wrap(MgIntToDoubleFunction orig) - { - return (int arg) -> { - try - { - return orig.applyAsDouble(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntToLongFunction wrap(MgIntToLongFunction orig) - { - return (int arg) -> { - try - { - return orig.applyAsLong(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntUnaryOperator wrap(MgIntUnaryOperator orig) - { - return (int arg) -> { - try - { - return orig.applyAsInt(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static IntBinaryOperator wrap(MgIntBinaryOperator orig) - { - return (int arg1, int arg2) -> { - try - { - return orig.applyAsInt(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> LongFunction<T> wrap(MgLongFunction<T> orig) - { - return (long arg) -> { - try - { - return orig.apply(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongSupplier wrap(MgLongSupplier orig) - { - return () -> { - try - { - return orig.getAsLong(); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongPredicate wrap(MgLongPredicate orig) - { - return (long arg) -> { - try - { - return orig.test(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongToIntFunction wrap(MgLongToIntFunction orig) - { - return (long arg) -> { - try - { - return orig.applyAsInt(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongToDoubleFunction wrap(MgLongToDoubleFunction orig) - { - return (long arg) -> { - try - { - return orig.applyAsDouble(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongUnaryOperator wrap(MgLongUnaryOperator orig) - { - return (long arg) -> { - try - { - return orig.applyAsLong(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - */ - public static LongBinaryOperator wrap(MgLongBinaryOperator orig) - { - return (long arg1, long arg2) -> { - try - { - return orig.applyAsLong(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> ObjDoubleConsumer<T> wrap(MgObjDoubleConsumer<T> orig) - { - return (T arg1, double arg2) -> { - try - { - orig.accept(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> ObjIntConsumer<T> wrap(MgObjIntConsumer<T> orig) - { - return (T arg1, int arg2) -> { - try - { - orig.accept(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> ObjLongConsumer<T> wrap(MgObjLongConsumer<T> orig) - { - return (T arg1, long arg2) -> { - try - { - orig.accept(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> Predicate<T> wrap(MgPredicate<T> orig) - { - return (T arg) -> { - try - { - return orig.test(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> Supplier<T> wrap(MgSupplier<T> orig) - { - return () -> { - try - { - return orig.get(); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <U> - * class param - */ - public static <T, U> ToDoubleBiFunction<T, U> wrap(MgToDoubleBiFunction<T, U> orig) - { - return (T arg1, U arg2) -> { - try - { - return orig.applyAsDouble(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> ToDoubleFunction<T> wrap(MgToDoubleFunction<T> orig) - { - return (T arg) -> { - try - { - return orig.applyAsDouble(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <U> - * class param - */ - public static <T, U> ToIntBiFunction<T, U> wrap(MgToIntBiFunction<T, U> orig) - { - return (T arg1, U arg2) -> { - try - { - return orig.applyAsInt(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> ToIntFunction<T> wrap(MgToIntFunction<T> orig) - { - return (T arg) -> { - try - { - return orig.applyAsInt(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - * @param <U> - * class param - */ - public static <T, U> ToLongBiFunction<T, U> wrap(MgToLongBiFunction<T, U> orig) - { - return (T arg1, U arg2) -> { - try - { - return orig.applyAsLong(arg1, arg2); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> ToLongFunction<T> wrap(MgToLongFunction<T> orig) - { - return (T arg) -> { - try - { - return orig.applyAsLong(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Creates a wrapper to use a mg lambda as a java util lambda. - * - * @param orig - * original. - * @return java util variant. - * @param <T> - * class param - */ - public static <T> UnaryOperator<T> wrap(MgUnaryOperator<T> orig) - { - return (T arg) -> { - try - { - return orig.apply(arg); - } - catch (MinigameException ex) - { - throw new WrappedException(ex); - } - }; - } - - /** - * Exception wrapping. - * - * @author mepeisen - */ - public static final class WrappedException extends RuntimeException - { - - /** - * serial version uid. - */ - private static final long serialVersionUID = -809099844875692391L; - - /** - * Constructor for wrapping. - * - * @param cause - * mg exception. - */ - public WrappedException(MinigameException cause) - { - super(cause); - } - - /** - * Unraps this exception. - * - * @return nested mg exception. - */ - public MinigameException unwrap() - { - return (MinigameException) this.getCause(); - } - - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java deleted file mode 100644 index fd1abf13..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntBinaryOperator.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntBinaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntBinaryOperator -{ - - /** - * Applies this operator to the given operands. - * - * @param left - * the first operand - * @param right - * the second operand - * @return the operator result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int applyAsInt(int left, int right) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java deleted file mode 100644 index 68d1c78b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntConsumer.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntConsumer -{ - - /** - * Performs this operation on the given argument. - * - * @param value - * the input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(int value) throws MinigameException; - - /** - * Returns a composed {@code IntConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to - * the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. - * - * @param after - * the operation to perform after this operation - * @return a composed {@code IntConsumer} that performs in sequence this operation followed by the {@code after} operation - * @throws NullPointerException - * if {@code after} is null - */ - default MgIntConsumer andThen(MgIntConsumer after) - { - Objects.requireNonNull(after); - return (int value) -> { - accept(value); - after.accept(value); - }; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java deleted file mode 100644 index 46bd867a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntFunction.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <R> - * the type of the result of the function - */ -@FunctionalInterface -public interface MgIntFunction<R> -{ - - /** - * Applies this function to the given argument. - * - * @param value - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - R apply(int value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java deleted file mode 100644 index 0919ad95..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntPredicate.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntPredicate} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntPredicate -{ - - /** - * Evaluates this predicate on the given argument. - * - * @param value - * the input argument - * @return {@code true} if the input argument matches the predicate, otherwise {@code false} - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - boolean test(int value) throws MinigameException; - - /** - * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ANDed with this predicate - * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgIntPredicate and(MgIntPredicate other) - { - Objects.requireNonNull(other); - return (value) -> test(value) && other.test(value); - } - - /** - * Returns a predicate that represents the logical negation of this predicate. - * - * @return a predicate that represents the logical negation of this predicate - */ - default MgIntPredicate negate() - { - return (value) -> !test(value); - } - - /** - * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ORed with this predicate - * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgIntPredicate or(MgIntPredicate other) - { - Objects.requireNonNull(other); - return (value) -> test(value) || other.test(value); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java deleted file mode 100644 index b3f256ab..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntSupplier.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntSupplier} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntSupplier -{ - - /** - * Gets a result. - * - * @return a result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int getAsInt() throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java deleted file mode 100644 index 599615a8..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToDoubleFunction.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntToDoubleFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntToDoubleFunction -{ - - /** - * Applies this function to the given argument. - * - * @param value the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double applyAsDouble(int value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java deleted file mode 100644 index da669223..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntToLongFunction.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntToLongFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntToLongFunction -{ - - /** - * Applies this function to the given argument. - * - * @param value the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long applyAsLong(int value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java deleted file mode 100644 index a6687638..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgIntUnaryOperator.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.IntUnaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgIntUnaryOperator -{ - - /** - * Applies this operator to the given operand. - * - * @param operand - * the operand - * @return the operator result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int applyAsInt(int operand) throws MinigameException; - - /** - * Returns a composed operator that first applies the {@code before} operator to its input, and then applies this operator to the result. If evaluation of either operator throws an exception, it - * is relayed to the caller of the composed operator. - * - * @param before - * the operator to apply before this operator is applied - * @return a composed operator that first applies the {@code before} operator and then applies this operator - * @throws NullPointerException - * if before is null - * - * @see #andThen(MgIntUnaryOperator) - */ - default MgIntUnaryOperator compose(MgIntUnaryOperator before) - { - Objects.requireNonNull(before); - return (int value) -> applyAsInt(before.applyAsInt(value)); - } - - /** - * Returns a composed operator that first applies this operator to its input, and then applies the {@code after} operator to the result. If evaluation of either operator throws an exception, it is - * relayed to the caller of the composed operator. - * - * @param after - * the operator to apply after this operator is applied - * @return a composed operator that first applies this operator and then applies the {@code after} operator - * @throws NullPointerException - * if after is null - * - * @see #compose(MgIntUnaryOperator) - */ - default MgIntUnaryOperator andThen(MgIntUnaryOperator after) - { - Objects.requireNonNull(after); - return (int value) -> after.applyAsInt(applyAsInt(value)); - } - - /** - * Returns a unary operator that always returns its input argument. - * - * @return a unary operator that always returns its input argument - */ - static MgIntUnaryOperator identity() - { - return t -> t; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java deleted file mode 100644 index 66f0359c..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongBinaryOperator.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongBinaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongBinaryOperator -{ - - /** - * Applies this operator to the given operands. - * - * @param left - * the first operand - * @param right - * the second operand - * @return the operator result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long applyAsLong(long left, long right) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java deleted file mode 100644 index 0c3d8e0d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongConsumer.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongConsumer -{ - - /** - * Performs this operation on the given argument. - * - * @param value - * the input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(long value) throws MinigameException; - - /** - * Returns a composed {@code LongConsumer} that performs, in sequence, this operation followed by the {@code after} operation. If performing either operation throws an exception, it is relayed to - * the caller of the composed operation. If performing this operation throws an exception, the {@code after} operation will not be performed. - * - * @param after - * the operation to perform after this operation - * @return a composed {@code LongConsumer} that performs in sequence this operation followed by the {@code after} operation - * @throws NullPointerException - * if {@code after} is null - */ - default MgLongConsumer andThen(MgLongConsumer after) - { - Objects.requireNonNull(after); - return (long value) -> { - accept(value); - after.accept(value); - }; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java deleted file mode 100644 index e8242e13..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongFunction.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <R> - * the type of the result of the function - */ -@FunctionalInterface -public interface MgLongFunction<R> -{ - - /** - * Applies this function to the given argument. - * - * @param value - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - R apply(long value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java deleted file mode 100644 index 9ec0977f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongPredicate.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongPredicate} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongPredicate -{ - - /** - * Evaluates this predicate on the given argument. - * - * @param value - * the input argument - * @return {@code true} if the input argument matches the predicate, otherwise {@code false} - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - boolean test(long value) throws MinigameException; - - /** - * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ANDed with this predicate - * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgLongPredicate and(MgLongPredicate other) - { - Objects.requireNonNull(other); - return (value) -> test(value) && other.test(value); - } - - /** - * Returns a predicate that represents the logical negation of this predicate. - * - * @return a predicate that represents the logical negation of this predicate - */ - default MgLongPredicate negate() - { - return (value) -> !test(value); - } - - /** - * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ORed with this predicate - * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgLongPredicate or(MgLongPredicate other) - { - Objects.requireNonNull(other); - return (value) -> test(value) || other.test(value); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java deleted file mode 100644 index e5015f1f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongSupplier.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongSupplier} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongSupplier -{ - - /** - * Gets a result. - * - * @return a result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long getAsLong() throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java deleted file mode 100644 index 740d6654..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToDoubleFunction.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongToDoubleFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongToDoubleFunction -{ - - /** - * Applies this function to the given argument. - * - * @param value the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double applyAsDouble(long value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java deleted file mode 100644 index 848a465e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongToIntFunction.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongToIntFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongToIntFunction -{ - - /** - * Applies this function to the given argument. - * - * @param value the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int applyAsInt(long value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java deleted file mode 100644 index 3c5a81dd..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgLongUnaryOperator.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.LongUnaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - */ -@FunctionalInterface -public interface MgLongUnaryOperator -{ - - /** - * Applies this operator to the given operand. - * - * @param operand - * the operand - * @return the operator result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long applyAsLong(long operand) throws MinigameException; - - /** - * Returns a composed operator that first applies the {@code before} operator to its input, and then applies this operator to the result. If evaluation of either operator throws an exception, it - * is relayed to the caller of the composed operator. - * - * @param before - * the operator to apply before this operator is applied - * @return a composed operator that first applies the {@code before} operator and then applies this operator - * @throws NullPointerException - * if before is null - * - * @see #andThen(MgLongUnaryOperator) - */ - default MgLongUnaryOperator compose(MgLongUnaryOperator before) - { - Objects.requireNonNull(before); - return (long value) -> applyAsLong(before.applyAsLong(value)); - } - - /** - * Returns a composed operator that first applies this operator to its input, and then applies the {@code after} operator to the result. If evaluation of either operator throws an exception, it is - * relayed to the caller of the composed operator. - * - * @param after - * the operator to apply after this operator is applied - * @return a composed operator that first applies this operator and then applies the {@code after} operator - * @throws NullPointerException - * if after is null - * - * @see #compose(MgLongUnaryOperator) - */ - default MgLongUnaryOperator andThen(MgLongUnaryOperator after) - { - Objects.requireNonNull(after); - return (long value) -> after.applyAsLong(applyAsLong(value)); - } - - /** - * Returns a unary operator that always returns its input argument. - * - * @return a unary operator that always returns its input argument - */ - static MgLongUnaryOperator identity() - { - return t -> t; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java deleted file mode 100644 index c2fe7fc5..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjBooleanConsumer.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ObjDoubleConsumer} but is able to throw MinigameExceptions, takes a boolean as second argument. - * - * @author mepeisen - * - * @param <T> - * the type of the object argument to the operation - */ -@FunctionalInterface -public interface MgObjBooleanConsumer<T> -{ - - /** - * Performs this operation on the given arguments. - * - * @param obj - * the first input argument - * @param value - * the second input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(T obj, boolean value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java deleted file mode 100644 index 9a6e69a1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjDoubleConsumer.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ObjDoubleConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the object argument to the operation - */ -@FunctionalInterface -public interface MgObjDoubleConsumer<T> -{ - - /** - * Performs this operation on the given arguments. - * - * @param obj - * the first input argument - * @param value - * the second input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(T obj, double value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java deleted file mode 100644 index cbffbd88..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjIntConsumer.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ObjIntConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the object argument to the operation - */ -@FunctionalInterface -public interface MgObjIntConsumer<T> -{ - - /** - * Performs this operation on the given arguments. - * - * @param obj - * the first input argument - * @param value - * the second input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(T obj, int value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java deleted file mode 100644 index e10c9e93..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgObjLongConsumer.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ObjLongConsumer} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the object argument to the operation - */ -@FunctionalInterface -public interface MgObjLongConsumer<T> -{ - - /** - * Performs this operation on the given arguments. - * - * @param obj - * the first input argument - * @param value - * the second input argument - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - void accept(T obj, long value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java deleted file mode 100644 index b5fc3bf9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgOutgoingStubbing.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.io.Serializable; - -import com.github.mce.minigames.api.MinigameErrorCode; -import com.github.mce.minigames.api.MinigameException; - -/** - * A stubbing interface for outgoing answers. - * - * @author mepeisen - * @param <T> - * consumed object class - */ -public interface MgOutgoingStubbing<T> -{ - - /** - * Let the given consumer be invoked if the condition meets the criteria. - * - * @param consumer - * to be invoked if stubbing results to {@code true} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * rethrown from consumer - */ - MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException; - - /** - * Let us throw an exception if the condition meets the criteria. - * - * @param consumer - * to be invoked if stubbing results to {@code true} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * rethrown from consumer - */ - MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException; - - /** - * Let us throw an exception if the condition meets the criteria. - * - * @param code - * to be thrown if stubbing results to {@code true} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * thrown with given error code - */ - MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException; - - /** - * Let us throw an exception if the condition meets the criteria. - * - * @param code - * to be thrown if stubbing results to {@code true} - * @param args - * to be thrown if stubbing results to {@code true} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * thrown with given error code - */ - MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args) throws MinigameException; - - /** - * Let the given consumer be invoked if the condition does not meet the criteria. - * - * @param consumer - * to be invoked if stubbing results to {@code false} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * rethrown from consumer - */ - MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException; - - /** - * Let us throw an exception if the condition does not meet the criteria. - * - * @param consumer - * to be invoked if stubbing results to {@code false} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * rethrown from consumer - */ - MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException; - - /** - * Let us throw an exception if the condition does not meet the criteria. - * - * @param code - * to be thrown if stubbing results to {@code false} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * thrown with given error code - */ - MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException; - - /** - * Let us throw an exception if the condition does not meet the criteria. - * - * @param code - * to be thrown if stubbing results to {@code false} - * @param args - * to be thrown if stubbing results to {@code false} - * @return this object for chaining additional then or else consumers. - * @throws MinigameException - * thrown with given error code - */ - MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java deleted file mode 100644 index 944ad522..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgPredicate.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.util.Objects; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.Predicate} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the input to the predicate - */ -@FunctionalInterface -public interface MgPredicate<T> -{ - - /** - * Evaluates this predicate on the given argument. - * - * @param arg - * the input argument - * @return {@code true} if the input argument matches the predicate, otherwise {@code false} - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - boolean test(T arg) throws MinigameException; - - /** - * Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is {@code false}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ANDed with this predicate - * @return a composed predicate that represents the short-circuiting logical AND of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgPredicate<T> and(MgPredicate<? super T> other) - { - Objects.requireNonNull(other); - return (arg) -> test(arg) && other.test(arg); - } - - /** - * Returns a predicate that represents the logical negation of this predicate. - * - * @return a predicate that represents the logical negation of this predicate - */ - default MgPredicate<T> negate() - { - return (arg) -> !test(arg); - } - - /** - * Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is {@code true}, then the - * {@code other} predicate is not evaluated. - * - * <p> - * Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the {@code other} predicate will not be evaluated. - * </p> - * - * @param other - * a predicate that will be logically-ORed with this predicate - * @return a composed predicate that represents the short-circuiting logical OR of this predicate and the {@code other} predicate - * @throws NullPointerException - * if other is null - */ - default MgPredicate<T> or(MgPredicate<? super T> other) - { - Objects.requireNonNull(other); - return (arg) -> test(arg) || other.test(arg); - } - - /** - * Returns a predicate that tests if two arguments are equal according to {@link Objects#equals(Object, Object)}. - * - * @param <T> - * the type of arguments to the predicate - * @param targetRef - * the object reference with which to compare for equality, which may be {@code null} - * @return a predicate that tests if two arguments are equal according to {@link Objects#equals(Object, Object)} - */ - static <T> MgPredicate<T> isEqual(Object targetRef) - { - return (null == targetRef) ? Objects::isNull : object -> targetRef.equals(object); - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java deleted file mode 100644 index a281c091..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgRunnable.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * A {@link Runnable} that is aware of throwing minigame exceptions. - * - * @author mepeisen - */ -@FunctionalInterface -public interface MgRunnable -{ - - /** - * method to execute. - * - * @throws MinigameException thrown on errors. - */ - void run() throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java deleted file mode 100644 index 068b3305..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgSupplier.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.Supplier} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * object type - */ -@FunctionalInterface -public interface MgSupplier<T> -{ - - /** - * Gets a result. - * - * @return a result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - T get() throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java deleted file mode 100644 index 55276eb4..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleBiFunction.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ToDoubleBiFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> the type of the first argument to the function - * @param <U> the type of the second argument to the function - * - */ -@FunctionalInterface -public interface MgToDoubleBiFunction<T, U> -{ - - /** - * Applies this function to the given arguments. - * - * @param arg1 the first function argument - * @param arg2 the second function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double applyAsDouble(T arg1, U arg2) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java deleted file mode 100644 index d2ba9d92..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToDoubleFunction.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ToDoubleFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the input to the function - * - */ -@FunctionalInterface -public interface MgToDoubleFunction<T> -{ - - /** - * Applies this function to the given argument. - * - * @param value - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - double applyAsDouble(T value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java deleted file mode 100644 index 73d6e0ae..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntBiFunction.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ToIntBiFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the first argument to the function - * @param <U> - * the type of the second argument to the function - */ -@FunctionalInterface -public interface MgToIntBiFunction<T, U> -{ - - /** - * Applies this function to the given arguments. - * - * @param arg1 - * the first function argument - * @param arg2 - * the second function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int applyAsInt(T arg1, U arg2) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java deleted file mode 100644 index d0ed0c8d..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToIntFunction.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ToIntFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * @param <T> - * the type of the input to the function - * - */ -@FunctionalInterface -public interface MgToIntFunction<T> -{ - - /** - * Applies this function to the given argument. - * - * @param value - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - int applyAsInt(T value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java deleted file mode 100644 index 72d94a4e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongBiFunction.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ToLongBiFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> the type of the first argument to the function - * @param <U> the type of the second argument to the function - */ -@FunctionalInterface -public interface MgToLongBiFunction<T, U> -{ - - /** - * Applies this function to the given arguments. - * - * @param arg1 the first function argument - * @param arg2 the second function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long applyAsLong(T arg1, U arg2) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java deleted file mode 100644 index 81227852..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgToLongFunction.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import com.github.mce.minigames.api.MinigameException; - -/** - * Similar to {@link java.util.function.ToLongFunction} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the input to the function - */ -@FunctionalInterface -public interface MgToLongFunction<T> -{ - - /** - * Applies this function to the given argument. - * - * @param value - * the function argument - * @return the function result - * @throws MinigameException - * thrown on problems, f.e. networking errors. - */ - long applyAsLong(T value) throws MinigameException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java deleted file mode 100644 index 124c6a93..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/MgUnaryOperator.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -/** - * Similar to {@link java.util.function.UnaryOperator} but is able to throw MinigameExceptions. - * - * @author mepeisen - * - * @param <T> - * the type of the operand and result of the operator - */ -@FunctionalInterface -public interface MgUnaryOperator<T> extends MgFunction<T, T> -{ - - /** - * Returns a unary operator that always returns its input argument. - * - * @param <T> - * the type of the input and output of the operator - * @return a unary operator that always returns its input argument - */ - static <T> MgUnaryOperator<T> identity() - { - return t -> t; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java b/APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java deleted file mode 100644 index 6f5cd3dc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/util/function/TrueStub.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.util.function; - -import java.io.Serializable; - -import com.github.mce.minigames.api.MinigameErrorCode; -import com.github.mce.minigames.api.MinigameException; - -/** - * Outgoing stub for true checks of minigames predicates. - * @author mepeisen - * @param <T> argument class - */ -public final class TrueStub<T> implements MgOutgoingStubbing<T> -{ - - /** - * stubbed element. - */ - private final T elm; - - /** - * Constructor to create the stub. - * @param elm stubbed element. - */ - public TrueStub(T elm) - { - this.elm = elm; - } - - @Override - public MgOutgoingStubbing<T> then(MgConsumer<T> consumer) throws MinigameException - { - consumer.accept(this.elm); - return this; - } - - @Override - public MgOutgoingStubbing<T> thenThrow(MgFunction<T, MinigameException> consumer) throws MinigameException - { - throw consumer.apply(this.elm); - } - - @Override - public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code) throws MinigameException - { - throw new MinigameException(code); - } - - @Override - public MgOutgoingStubbing<T> thenThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException - { - throw new MinigameException(code, args2.apply(this.elm)); - } - - @Override - public MgOutgoingStubbing<T> _else(MgConsumer<T> consumer) throws MinigameException - { - // does nothing - return this; - } - - @Override - public MgOutgoingStubbing<T> _elseThrow(MgFunction<T, MinigameException> consumer) throws MinigameException - { - // does nothing - return this; - } - - @Override - public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code) throws MinigameException - { - // does nothing - return this; - } - - @Override - public MgOutgoingStubbing<T> _elseThrow(MinigameErrorCode code, MgFunction<T, Serializable[]> args2) throws MinigameException - { - // does nothing - return this; - } - -} \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java deleted file mode 100644 index 4b34c38a..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/zones/ZoneInterface.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.zones; - -import org.bukkit.Location; - -import com.github.mce.minigames.api.component.Cuboid; - -/** - * A zone/ cuboid component. - * - * @author mepeisen - * - */ -public interface ZoneInterface -{ - - /** - * Returns the cuboid. - * @return cuboid of this component. - */ - Cuboid getCuboid(); - - /** - * Sets the cuboid - * @param cub cuboid of the component. - */ - void setCuboid(Cuboid cub); - - /** - * Determines whether the this cuboid contains the passed location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid, otherwise false - */ - boolean containsLoc(final Location loc); - - /** - * Determines whether the this cuboid contains the passed location without y coord. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid without y coord, otherwise false - */ - boolean containsLocWithoutY(final Location loc); - - /** - * Determines whether the this cuboid contains the passed location without y coord and by including the 2 blocks beyond the location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid without y coord, otherwise false - */ - boolean containsLocWithoutYD(final Location loc); - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java deleted file mode 100644 index d456a149..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonProviderInterfaceTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import static org.junit.Assert.assertNull; - -import org.bukkit.plugin.java.JavaPlugin; -import org.junit.Test; - -import com.github.mce.minigames.api.CommonProviderInterface; - -/** - * Test for {@link CommonProviderInterface}. - * - * @author mepeisen - */ -public class CommonProviderInterfaceTest -{ - - /** - * tests default methods. - */ - @Test - public void testDefaults() - { - final CommonProviderInterface provider = new CommonProviderInterface() { - - @Override - public JavaPlugin getJavaPlugin() - { - return null; - } - }; - - assertNull(provider.getAdminRuleIds()); - assertNull(provider.getArenaRuleIds()); - assertNull(provider.getBukkitCommands()); - assertNull(provider.getComponentIds()); - assertNull(provider.getComponentRuleIds()); - assertNull(provider.getConfigurations()); - assertNull(provider.getGuiIds()); - assertNull(provider.getMatchPhaseIds()); - assertNull(provider.getMatchRuleIds()); - assertNull(provider.getMessageClasses()); - assertNull(provider.getPermissions()); - assertNull(provider.getPlayerRuleIds()); - assertNull(provider.getTeamIds()); - assertNull(provider.getTeamRuleIds()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java deleted file mode 100644 index 61e6eccb..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/MinigameErrorCodeTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MinigameErrorCode; - -/** - * test case for {@link MinigameErrorCode} - * - * @author mepeisen - */ -public class MinigameErrorCodeTest -{ - - /** - * Tests {@link MinigameErrorCode#toName()} - */ - @Test - public void toNameTest() - { - assertEquals(CommonErrors.class.getName() + ".CannotStart", CommonErrors.CannotStart.toName()); //$NON-NLS-1$ - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java deleted file mode 100644 index 83119e23..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractCompositeCommandHandlerTest.java +++ /dev/null @@ -1,399 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.cmd; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Locale; - -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.junit.Before; -import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.FalseStub; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.TrueStub; - -/** - * Test case for {@link AbstractCompositeCommandHandler}. - * - * @author mepeisen - */ -public class AbstractCompositeCommandHandlerTest -{ - - /** the messages. */ - private MessagesConfigInterface messages; - /** library. */ - private MglibInterface lib; - - /** - * Some setup. - */ - @Before - public void setup() - { - this.lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ - when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable - { - return invocation.getArgumentAt(0, String.class); - } - }); - this.messages = mock(MessagesConfigInterface.class); - when(this.lib.getMessagesFromMsg(anyObject())).thenReturn(this.messages); - } - - /** - * Tests pre method - * @throws MinigameException - */ - @Test(expected = MinigameException.class) - public void testPreFailed() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - - new DummyCommandHandler().handle(new Command(sender, null, null, null, null)); - } - - /** - * Tests usage sending on empty command - * @throws MinigameException - */ - @Test - public void testSendsUsage() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - new DummyCommandHandler().handle(new Command(bukkitPlayer, player, null, null, new String[0])); - - verify(player, times(1)).sendMessage(CommonMessages.HelpLineUsage, "usage", "help"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests sending unknown sub command error - * @throws MinigameException - */ - @Test - public void testSendsUnknownSubCommand() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - new DummyCommandHandler().handle(new Command(bukkitPlayer, player, null, null, new String[]{"unknown"})); //$NON-NLS-1$ - - verify(player, times(1)).sendMessage(CommonMessages.CompositeUnknownSubCommand, "path", "unknown"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests invoking sub command - * @throws MinigameException - */ - @Test - public void testInvokingSubCommand() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - // no twice injection - assertFalse(handler.injectSubCommand("Sub", null)); //$NON-NLS-1$ - - doAnswer(new Answer<Void>(){ - @Override - public Void answer(InvocationOnMock invocation) throws Throwable - { - final CommandInterface cmd = invocation.getArgumentAt(0, CommandInterface.class); - cmd.send(CommonMessages.CreateCommandUsage, cmd.getArgs()[0]); - return null; - } - }).when(subCommand).handle(anyObject()); - - handler.handle(new Command(bukkitPlayer, player, null, null, new String[]{"SUB", "FOO"})); //$NON-NLS-1$ //$NON-NLS-2$ - - verify(player, times(1)).sendMessage(CommonMessages.CreateCommandUsage, "FOO"); //$NON-NLS-1$ - } - - /** - * Tests invoking on Tab complete - * @throws MinigameException - */ - @Test - public void testOnTabComplete1() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - - final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), ""); //$NON-NLS-1$ - assertEquals(1, results.size()); - assertTrue(results.contains("sub")); //$NON-NLS-1$ - } - - /** - * Tests invoking on Tab complete - * @throws MinigameException - */ - @Test - public void testOnTabComplete2() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - assertTrue(handler.injectSubCommand("sub2", subCommand)); //$NON-NLS-1$ - - final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), ""); //$NON-NLS-1$ - assertEquals(2, results.size()); - assertTrue(results.contains("sub")); //$NON-NLS-1$ - assertTrue(results.contains("sub2")); //$NON-NLS-1$ - } - - /** - * Tests invoking on Tab complete - * @throws MinigameException - */ - @Test - public void testOnTabComplete2b() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ - - final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), "f"); //$NON-NLS-1$ - assertEquals(1, results.size()); - assertTrue(results.contains("foo")); //$NON-NLS-1$ - } - - /** - * Tests invoking on Tab complete - * @throws MinigameException - */ - @Test - public void testOnTabComplete2c() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ - - final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{}), "q"); //$NON-NLS-1$ - assertEquals(0, results.size()); - } - - /** - * Tests invoking on Tab complete - * @throws MinigameException - */ - @Test - public void testOnTabCompleteUnknown() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ - - final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{"unknown"}), ""); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(0, results.size()); - } - - /** - * Tests invoking on Tab complete - * @throws MinigameException - */ - @Test - public void testOnTabCompleteKnown() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkitPlayer = mock(Player.class); - - final SubCommandHandlerInterface subCommand = mock(SubCommandHandlerInterface.class); - final DummyCommandHandler handler = new DummyCommandHandler(); - assertTrue(handler.injectSubCommand("sub", subCommand)); //$NON-NLS-1$ - assertTrue(handler.injectSubCommand("foo", subCommand)); //$NON-NLS-1$ - - when(subCommand.onTabComplete(anyObject(), anyString())).thenReturn(new ArrayList<>(Collections.singleton("bar"))); //$NON-NLS-1$ - - final List<String> results = handler.onTabComplete(new Command(bukkitPlayer, player, null, null, new String[]{"sub"}), ""); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(1, results.size()); - assertTrue(results.contains("bar")); //$NON-NLS-1$ - } - - /** - * dummy composite command - */ - private static final class DummyCommandHandler extends AbstractCompositeCommandHandler - { - - /** - * constructor - */ - public DummyCommandHandler() - { - // empty - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(CommonMessages.HelpLineUsage, "usage", "help"); //$NON-NLS-1$ //$NON-NLS-2$ - } - - } - - /** - * Sample Command impl - */ - private static final class Command implements CommandInterface - { - - /** sender */ - private final CommandSender sender; - /** player */ - private final ArenaPlayerInterface player; - /** command */ - private final org.bukkit.command.Command command; - /** label */ - private final String label; - /** args */ - private final String[] args; - - /** - * @param sender - * @param player - * @param command - * @param label - * @param args - */ - public Command(CommandSender sender, ArenaPlayerInterface player, org.bukkit.command.Command command, String label, String[] args) - { - this.sender = sender; - this.player = player; - this.command = command; - this.label = label; - this.args = args; - } - - @Override - public CommandSender getSender() - { - return this.sender; - } - - @Override - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - @Override - public org.bukkit.command.Command getCommand() - { - return this.command; - } - - @Override - public String getLabel() - { - return this.label; - } - - @Override - public String[] getArgs() - { - return this.args; - } - - @Override - public CommandInterface consumeArgs(int count) - { - // dummy - return new Command(this.sender, this.player, this.command, this.label, Arrays.copyOfRange(this.args, 1, this.args.length)); - } - - @Override - public String getCommandPath() - { - // dummy - return "path"; //$NON-NLS-1$ - } - - @Override - public Locale getLocale() - { - // dummy - return Locale.ENGLISH; - } - - @Override - public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java deleted file mode 100644 index 9be86638..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/AbstractPagableCommandHandlerTest.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.cmd; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - -import org.bukkit.command.CommandSender; -import org.junit.Test; -import org.mockito.InOrder; -import org.mockito.Mockito; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; - -/** - * Tests for {@link AbstractPagableCommandHandler} - * - * @author mepeisen - * - */ -public class AbstractPagableCommandHandlerTest -{ - - /** - * tests the first page - * @throws MinigameException - */ - @Test - public void testFirstPage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{}); - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 1, 3); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 1", 1); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 2", 2); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 3", 3); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 4", 4); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 5", 5); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 6", 6); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 7", 7); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 8", 8); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 9", 9); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 10", 10); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the second page - * @throws MinigameException - */ - @Test - public void testFirstPage2() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"1"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 1, 3); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 1", 1); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 2", 2); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 3", 3); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 4", 4); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 5", 5); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 6", 6); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 7", 7); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 8", 8); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 9", 9); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 10", 10); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the second page - * @throws MinigameException - */ - @Test - public void testSecondPage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"2"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 2, 3); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 11", 11); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 12", 12); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 13", 13); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 14", 14); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 15", 15); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 16", 16); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 17", 17); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 18", 18); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 19", 19); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 20", 20); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the third page - * @throws MinigameException - */ - @Test - public void testThirdPage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"3"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "DUMMY-HEADER", 3, 3); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 21", 21); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 22", 22); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 23", 23); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 24", 24); //$NON-NLS-1$ - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedLine, "Line 25", 25); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the negative page - * @throws MinigameException - */ - @Test - public void testNegativePage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"-1"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedWrongPageNum, -1, 3); - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the zero page - * @throws MinigameException - */ - @Test - public void testZeroPage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"0"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedWrongPageNum, 0, 3); - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the fourth page - * @throws MinigameException - */ - @Test - public void testFourthPage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"4"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedWrongPageNum, 4, 3); - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the number format exception - * @throws MinigameException - */ - @Test - public void testNFE() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final DummyHandler dummy = new DummyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"foo"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedInvalidNumber); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PageUsage, "path"); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the first page - * @throws MinigameException - */ - @Test - public void testEmptyFirstPage() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final EmptyHandler dummy = new EmptyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{}); - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "EMPTY-HEADER", 1, 1); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * tests the first page - * @throws MinigameException - */ - @Test - public void testEmptyFirstPage2() throws MinigameException - { - final CommandSender sender = mock(CommandSender.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final EmptyHandler dummy = new EmptyHandler(); - final Command cmd = new Command(sender, player, null, null, new String[]{"1"}); //$NON-NLS-1$ - - dummy.handle(cmd); - - InOrder inOrder = Mockito.inOrder(player); - inOrder.verify(player, times(1)).sendMessage(CommonMessages.PagedHeader, "EMPTY-HEADER", 1, 1); //$NON-NLS-1$ - inOrder.verifyNoMoreInteractions(); - } - - /** - * Sample Command impl - */ - private static final class Command implements CommandInterface - { - - /** sender */ - private final CommandSender sender; - /** player */ - private final ArenaPlayerInterface player; - /** command */ - private final org.bukkit.command.Command command; - /** label */ - private final String label; - /** args */ - private final String[] args; - - /** - * @param sender - * @param player - * @param command - * @param label - * @param args - */ - public Command(CommandSender sender, ArenaPlayerInterface player, org.bukkit.command.Command command, String label, String[] args) - { - this.sender = sender; - this.player = player; - this.command = command; - this.label = label; - this.args = args; - } - - @Override - public CommandSender getSender() - { - return this.sender; - } - - @Override - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - @Override - public org.bukkit.command.Command getCommand() - { - return this.command; - } - - @Override - public String getLabel() - { - return this.label; - } - - @Override - public String[] getArgs() - { - return this.args; - } - - @Override - public CommandInterface consumeArgs(int count) - { - // dummy - return null; - } - - @Override - public String getCommandPath() - { - // dummy - return "path"; //$NON-NLS-1$ - } - - @Override - public Locale getLocale() - { - // dummy - return Locale.ENGLISH; - } - - @Override - public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException - { - // dummy - return null; - } - - } - - /** - * Test Helper - */ - private static class DummyHandler extends AbstractPagableCommandHandler - { - - /** - * Constructor - */ - public DummyHandler() - { - // empty - } - - @Override - protected int getLineCount(CommandInterface command) - { - return 25; - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return "DUMMY-HEADER"; //$NON-NLS-1$ - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final List<Serializable> result = new ArrayList<>(); - for (int i = start; i < 25 && result.size() < count; i++) - { - result.add("Line " + (i + 1)); //$NON-NLS-1$ - } - return result.toArray(new Serializable[result.size()]); - } - - } - - /** - * Test Helper - */ - private static class EmptyHandler extends AbstractPagableCommandHandler - { - - /** - * Constructor - */ - public EmptyHandler() - { - // empty - } - - @Override - protected int getLineCount(CommandInterface command) - { - return 0; - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return "EMPTY-HEADER"; //$NON-NLS-1$ - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - return new Serializable[0]; - } - - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java deleted file mode 100644 index e343cbe8..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/cmd/CommandInterfaceTest.java +++ /dev/null @@ -1,273 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.cmd; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import java.util.Locale; - -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.junit.Before; -import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.FalseStub; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.TrueStub; - -/** - * Test case for {@link CommandInterface}. - * - * @author mepeisen - */ -public class CommandInterfaceTest -{ - - /** the messages. */ - private MessagesConfigInterface messages; - /** library. */ - private MglibInterface lib; - - /** - * Some setup. - */ - @Before - public void setup() - { - this.lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ - when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable - { - return invocation.getArgumentAt(0, String.class); - } - }); - this.messages = mock(MessagesConfigInterface.class); - when(this.lib.getMessagesFromMsg(anyObject())).thenReturn(this.messages); - } - - /** - * Tests {@link CommandInterface#isOp()} - */ - @Test - public void testIsOp() - { - final CommandSender senderNormal = mock(CommandSender.class); - when(senderNormal.isOp()).thenReturn(false); - final CommandSender senderOp = mock(CommandSender.class); - when(senderOp.isOp()).thenReturn(true); - - assertFalse(new Command(senderNormal, null, null, null, null).isOp()); - assertTrue(new Command(senderOp, null, null, null, null).isOp()); - } - - /** - * Tests {@link CommandInterface#isPlayer()} - * @throws MinigameException - */ - @Test - public void testIsPlayer() throws MinigameException - { - final CommandSender senderNormal = mock(CommandSender.class); - final Player senderPlayer = mock(Player.class); - - assertFalse(CommandInterface.isPlayer().test(new Command(senderNormal, null, null, null, null))); - assertTrue(CommandInterface.isPlayer().test(new Command(senderPlayer, null, null, null, null))); - } - - /** - * Tests {@link CommandInterface#permThrowException(com.github.mce.minigames.api.perms.PermissionsInterface, String)} - * @throws MinigameException - */ - @Test - public void testPermThrowExceptionOK() throws MinigameException - { - final ArenaPlayerInterface playerTrue = mock(ArenaPlayer.class); - when(playerTrue.checkPermission(anyObject())).thenReturn(true); - when(playerTrue.when(anyObject())).thenCallRealMethod(); - - final Command command = new Command(null, playerTrue, null, null, null); - command.permThrowException(CommonPermissions.Info, null); - } - - /** - * Tests {@link CommandInterface#permThrowException(com.github.mce.minigames.api.perms.PermissionsInterface, String)} - * @throws MinigameException - */ - @Test(expected = MinigameException.class) - public void testPermThrowExceptionFailed() throws MinigameException - { - final ArenaPlayerInterface playerFalse = mock(ArenaPlayer.class); - when(playerFalse.checkPermission(anyObject())).thenReturn(false); - when(playerFalse.when(anyObject())).thenCallRealMethod(); - - final Command command = new Command(null, playerFalse, null, null, null); - command.permThrowException(CommonPermissions.Info, null); - } - - /** - * Tests {@link CommandInterface#send(com.github.mce.minigames.api.locale.LocalizedMessageInterface, java.io.Serializable...)} - */ - @Test - public void testSend() - { - final CommandSender sender = mock(CommandSender.class); - final Command command = new Command(sender, null, null, null, null); - when(this.messages.getString(anyObject(), anyObject(), anyObject())).thenAnswer(new Answer<String>() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable - { - return invocation.getArgumentAt(2, String.class); - } - }); - - command.send(CommonMessages.HelpHeader); - - verify(sender, times(1)).sendMessage("§fhelp"); //$NON-NLS-1$ - } - - /** - * arena player dummy impl. - * @author mepeisen - */ - private static abstract class ArenaPlayer implements ArenaPlayerInterface - { - - @Override - public MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInterface> test) throws MinigameException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - - } - - /** - * Sample Command impl - */ - private static final class Command implements CommandInterface - { - - /** sender */ - private final CommandSender sender; - /** player */ - private final ArenaPlayerInterface player; - /** command */ - private final org.bukkit.command.Command command; - /** label */ - private final String label; - /** args */ - private final String[] args; - - /** - * @param sender - * @param player - * @param command - * @param label - * @param args - */ - public Command(CommandSender sender, ArenaPlayerInterface player, org.bukkit.command.Command command, String label, String[] args) - { - this.sender = sender; - this.player = player; - this.command = command; - this.label = label; - this.args = args; - } - - @Override - public CommandSender getSender() - { - return this.sender; - } - - @Override - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - @Override - public org.bukkit.command.Command getCommand() - { - return this.command; - } - - @Override - public String getLabel() - { - return this.label; - } - - @Override - public String[] getArgs() - { - return this.args; - } - - @Override - public CommandInterface consumeArgs(int count) - { - // dummy - return null; - } - - @Override - public String getCommandPath() - { - // dummy - return null; - } - - @Override - public Locale getLocale() - { - // dummy - return Locale.ENGLISH; - } - - @Override - public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException - { - // dummy - return null; - } - - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java deleted file mode 100644 index e2d0539e..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/component/CuboidTest.java +++ /dev/null @@ -1,373 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.component; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.World; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.MemoryConfiguration; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.component.Cuboid; - -/** - * Tests {@link Cuboid} - * - * @author mepeisen - * - */ -public class CuboidTest -{ - - /** - * Tests constructors - */ - @Test - public void testConstructor() - { - final Cuboid cub1 = new Cuboid(); - assertNull(cub1.getLowLoc()); - assertNull(cub1.getHighLoc()); - - final Cuboid cub2 = new Cuboid(new Location(null, 1, 1, 1), null); - assertNull(cub2.getLowLoc()); - assertNull(cub2.getHighLoc()); - - final Cuboid cub2b = new Cuboid(null, new Location(null, 1, 1, 1)); - assertNull(cub2b.getLowLoc()); - assertNull(cub2b.getHighLoc()); - - final Cuboid cub3 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 2, 2, 2)); - assertNotNull(cub3.getLowLoc()); - assertNotNull(cub3.getHighLoc()); - assertEquals(new Location(null, 1, 1, 1), cub3.getLowLoc()); - assertEquals(new Location(null, 2, 2, 2), cub3.getHighLoc()); - } - - /** - * Tests constructors - */ - @Test - public void testConstructorNormalization() - { - final Cuboid cub1 = new Cuboid(new Location(null, 1, 2, 2), new Location(null, 2, 1, 1)); - assertEquals(new Location(null, 1, 1, 1), cub1.getLowLoc()); - assertEquals(new Location(null, 2, 2, 2), cub1.getHighLoc()); - - final Cuboid cub2 = new Cuboid(new Location(null, 2, 1, 2), new Location(null, 1, 2, 1)); - assertEquals(new Location(null, 1, 1, 1), cub2.getLowLoc()); - assertEquals(new Location(null, 2, 2, 2), cub2.getHighLoc()); - } - - /** - * Tests {@link Cuboid#setLowLoc(Location)} - */ - @Test - public void testSetLowLoc() - { - final Cuboid cub1 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 2, 2, 2)).setLowLoc(new Location(null, 3, 3, 3)); - assertEquals(new Location(null, 2, 2, 2), cub1.getLowLoc()); - assertEquals(new Location(null, 3, 3, 3), cub1.getHighLoc()); - - final Cuboid cub2 = new Cuboid().setLowLoc(new Location(null, 1, 1, 1)); - assertEquals(new Location(null, 1, 1, 1), cub2.getLowLoc()); - assertEquals(new Location(null, 1, 1, 1), cub2.getHighLoc()); - } - - /** - * Tests {@link Cuboid#setHighLoc(Location)} - */ - @Test - public void testSetHighLoc() - { - final Cuboid cub1 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 2, 2, 2)).setHighLoc(new Location(null, 0, 0, 0)); - assertEquals(new Location(null, 0, 0, 0), cub1.getLowLoc()); - assertEquals(new Location(null, 1, 1, 1), cub1.getHighLoc()); - - final Cuboid cub2 = new Cuboid().setHighLoc(new Location(null, 1, 1, 1)); - assertEquals(new Location(null, 1, 1, 1), cub2.getLowLoc()); - assertEquals(new Location(null, 1, 1, 1), cub2.getHighLoc()); - } - - /** - * Tests {@link Cuboid#isAreaWithinArea(Cuboid)} - */ - @Test - public void testIsAreaWithinArea() - { - final World world = mock(World.class); - final World world2 = mock(World.class); - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); - assertTrue(cub1.isAreaWithinArea(new Cuboid(new Location(world, 2, 2, 2), new Location(world, 3, 3, 3)))); - assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world, 0, 2, 2), new Location(world, 3, 3, 3)))); - assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world, 2, 2, 2), new Location(world, 8, 3, 3)))); - assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world, 8, 2, 2), new Location(world, 8, 3, 3)))); - assertFalse(cub1.isAreaWithinArea(new Cuboid(new Location(world2, 2, 2, 2), new Location(world2, 3, 3, 3)))); - assertFalse(cub1.isAreaWithinArea(new Cuboid())); - } - - /** - * Tests {@link Cuboid#containsLoc(Location)} - */ - @Test - public void testContainsLoc() - { - final World world = mock(World.class); - final World world2 = mock(World.class); - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); - assertTrue(cub1.containsLoc(new Location(world, 2, 2, 2))); - assertFalse(cub1.containsLoc(new Location(world2, 2, 2, 2))); - assertFalse(cub1.containsLoc(null)); - assertFalse(cub1.containsLoc(new Location(world, 0, 2, 2))); - assertFalse(cub1.containsLoc(new Location(world, 2, 0, 2))); - assertFalse(cub1.containsLoc(new Location(world, 2, 2, 0))); - assertFalse(cub1.containsLoc(new Location(world, 6, 2, 2))); - assertFalse(cub1.containsLoc(new Location(world, 2, 6, 2))); - assertFalse(cub1.containsLoc(new Location(world, 2, 2, 6))); - - assertFalse(new Cuboid().containsLoc(new Location(world, 2, 2, 2))); - } - - /** - * Tests {@link Cuboid#containsLocWithoutY(Location)} - */ - @Test - public void testContainsLocWithoutY() - { - final World world = mock(World.class); - final World world2 = mock(World.class); - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); - assertTrue(cub1.containsLocWithoutY(new Location(world, 2, 2, 2))); - assertFalse(cub1.containsLocWithoutY(new Location(world2, 2, 2, 2))); - assertFalse(cub1.containsLocWithoutY(null)); - assertFalse(cub1.containsLocWithoutY(new Location(world, 0, 2, 2))); - assertTrue(cub1.containsLocWithoutY(new Location(world, 2, 0, 2))); - assertFalse(cub1.containsLocWithoutY(new Location(world, 2, 2, 0))); - assertFalse(cub1.containsLocWithoutY(new Location(world, 6, 2, 2))); - assertTrue(cub1.containsLocWithoutY(new Location(world, 2, 6, 2))); - assertFalse(cub1.containsLocWithoutY(new Location(world, 2, 2, 6))); - - assertFalse(new Cuboid().containsLocWithoutY(new Location(world, 2, 2, 2))); - } - - /** - * Tests {@link Cuboid#containsLocWithoutYD(Location)} - */ - @Test - public void containsLocWithoutYD() - { - final World world = mock(World.class); - final World world2 = mock(World.class); - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 5, 5)); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 2))); - assertFalse(cub1.containsLocWithoutYD(new Location(world2, 2, 2, 2))); - assertFalse(cub1.containsLocWithoutYD(null)); - - assertTrue(cub1.containsLocWithoutYD(new Location(world, 0, 2, 2))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, -1, 2, 2))); - assertFalse(cub1.containsLocWithoutYD(new Location(world, -2, 2, 2))); - - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 0, 2))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, -1, 2))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, -2, 2))); - - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 0))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, -1))); - assertFalse(cub1.containsLocWithoutYD(new Location(world, 2, 2, -2))); - - assertTrue(cub1.containsLocWithoutYD(new Location(world, 6, 2, 2))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 7, 2, 2))); - assertFalse(cub1.containsLocWithoutYD(new Location(world, 8, 2, 2))); - - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 6, 2))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 7, 2))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 8, 2))); - - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 6))); - assertTrue(cub1.containsLocWithoutYD(new Location(world, 2, 2, 7))); - assertFalse(cub1.containsLocWithoutYD(new Location(world, 2, 2, 8))); - - assertFalse(new Cuboid().containsLocWithoutYD(new Location(world, 2, 2, 2))); - } - - /** - * Tests sizes - */ - @Test - public void testSize() - { - final Cuboid cub1 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 5, 4, 3)); - assertEquals(60, cub1.getSize()); - assertEquals(5, cub1.getXSize()); - assertEquals(4, cub1.getYSize()); - assertEquals(3, cub1.getZSize()); - - final Cuboid cub2 = new Cuboid(new Location(null, -1, -1, -1), new Location(null, -5, -4, -3)); - assertEquals(60, cub2.getSize()); - assertEquals(5, cub2.getXSize()); - assertEquals(4, cub2.getYSize()); - - final Cuboid cub3 = new Cuboid(new Location(null, -1, -1, -1), new Location(null, 1, 1, 1)); - assertEquals(27, cub3.getSize()); - assertEquals(3, cub3.getXSize()); - assertEquals(3, cub3.getYSize()); - assertEquals(3, cub3.getZSize()); - } - - /** - * Tests {@link Cuboid#getWorld()} - */ - @Test - public void testGetWorld() - { - final World world = mock(World.class); - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); - assertEquals(world, cub1.getWorld()); - assertNull(new Cuboid().getWorld()); - } - - /** - * Tests {@link Cuboid#toRaw()} - */ - @Test - public void testToRaw() - { - final World world = mock(World.class); - when(world.getName()).thenReturn("foo"); //$NON-NLS-1$ - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); - final Cuboid cub2 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 5, 4, 3)); - - assertEquals("null", new Cuboid().toRaw()); //$NON-NLS-1$ - assertEquals("foo,1,1,1,5,4,3", cub1.toRaw()); //$NON-NLS-1$ - assertEquals("null,1,1,1,5,4,3", cub2.toRaw()); //$NON-NLS-1$ - } - - /** - * Tests {@link Cuboid#toString()} - */ - @Test - public void testToString() - { - final World world = mock(World.class); - when(world.getName()).thenReturn("foo"); //$NON-NLS-1$ - final Cuboid cub1 = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); - final Cuboid cub2 = new Cuboid(new Location(null, 1, 1, 1), new Location(null, 5, 4, 3)); - - assertEquals("(null) to (null)", new Cuboid().toString()); //$NON-NLS-1$ - assertEquals("(1, 1, 1) to (5, 4, 3)", cub1.toString()); //$NON-NLS-1$ - assertEquals("(1, 1, 1) to (5, 4, 3)", cub2.toString()); //$NON-NLS-1$ - } - - /** - * Tests {@link Cuboid#getRandomLocation()} - */ - @Test - public void testGetRandomLocation() - { - final World world = mock(World.class); - final Cuboid cub = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); - for (int i = 1; i < 100; i++) - { - assertTrue(cub.containsLoc(cub.getRandomLocation())); - } - } - - /** - * Tests {@link Cuboid#getRandomLocation()} - */ - @Test - public void testGetRandomLocation1() - { - final World world = mock(World.class); - final Cuboid cub = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 1, 1, 1)); - for (int i = 1; i < 100; i++) - { - assertTrue(cub.containsLoc(cub.getRandomLocation())); - } - } - - /** - * Tests {@link Cuboid#getRandomLocationForMobs()} - */ - @Test - public void testGetRandomLocationForMobs() - { - final World world = mock(World.class); - final Cuboid cub = new Cuboid(new Location(world, 1, 1, 1), new Location(world, 5, 4, 3)); - for (int i = 1; i < 100; i++) - { - assertTrue(cub.containsLoc(cub.getRandomLocationForMobs().subtract(0.5, 0.5, 0.5))); - } - } - - /** - * Tests {@link Cuboid#readFromConfig(org.bukkit.configuration.ConfigurationSection)} and {@link Cuboid#writeToConfig(org.bukkit.configuration.ConfigurationSection)} - */ - @Test - public void testConfigurable() - { - final World world = mock(World.class); - when(world.getName()).thenReturn("foo"); //$NON-NLS-1$ - final Cuboid cub = new Cuboid(new Location(world, 1, 2, 3), new Location(world, 5, 6, 7)); - final ConfigurationSection section = new MemoryConfiguration(); - - cub.writeToConfig(section); - - assertEquals("foo", section.getString("World")); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(1, section.getInt("X1")); //$NON-NLS-1$ - assertEquals(2, section.getInt("Y1")); //$NON-NLS-1$ - assertEquals(3, section.getInt("Z1")); //$NON-NLS-1$ - assertEquals(5, section.getInt("X2")); //$NON-NLS-1$ - assertEquals(6, section.getInt("Y2")); //$NON-NLS-1$ - assertEquals(7, section.getInt("Z2")); //$NON-NLS-1$ - - final Server server = mock(Server.class); - Whitebox.setInternalState(Bukkit.class, "server", server); //$NON-NLS-1$ - when(server.getWorld("foo")).thenReturn(world); //$NON-NLS-1$ - - final Cuboid cub2 = new Cuboid(); - cub2.readFromConfig(section); - - assertEquals("foo", cub2.getWorld().getName()); //$NON-NLS-1$ - assertEquals(1, cub2.getLowLoc().getBlockX()); - assertEquals(2, cub2.getLowLoc().getBlockY()); - assertEquals(3, cub2.getLowLoc().getBlockZ()); - assertEquals(5, cub2.getHighLoc().getBlockX()); - assertEquals(6, cub2.getHighLoc().getBlockY()); - assertEquals(7, cub2.getHighLoc().getBlockZ()); - } - - /** - * Tests configurable (invalid) - */ - @Test(expected = IllegalArgumentException.class) - public void testConfigurableInvalid() - { - new Cuboid().readFromConfig(new MemoryConfiguration()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java deleted file mode 100644 index 26ffef20..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/config/ConfigurationValueInterfaceTest.java +++ /dev/null @@ -1,1398 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.config; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.lang.reflect.Constructor; -import java.util.Arrays; -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; -import org.bukkit.configuration.MemoryConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemFactory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; -import org.junit.Before; -import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.config.Configurable; -import com.github.mce.minigames.api.config.ConfigurationBool; -import com.github.mce.minigames.api.config.ConfigurationBoolList; -import com.github.mce.minigames.api.config.ConfigurationByte; -import com.github.mce.minigames.api.config.ConfigurationByteList; -import com.github.mce.minigames.api.config.ConfigurationCharacter; -import com.github.mce.minigames.api.config.ConfigurationCharacterList; -import com.github.mce.minigames.api.config.ConfigurationColor; -import com.github.mce.minigames.api.config.ConfigurationColorList; -import com.github.mce.minigames.api.config.ConfigurationDouble; -import com.github.mce.minigames.api.config.ConfigurationDoubleList; -import com.github.mce.minigames.api.config.ConfigurationFloat; -import com.github.mce.minigames.api.config.ConfigurationFloatList; -import com.github.mce.minigames.api.config.ConfigurationInt; -import com.github.mce.minigames.api.config.ConfigurationIntList; -import com.github.mce.minigames.api.config.ConfigurationItemStack; -import com.github.mce.minigames.api.config.ConfigurationItemStackList; -import com.github.mce.minigames.api.config.ConfigurationLong; -import com.github.mce.minigames.api.config.ConfigurationLongList; -import com.github.mce.minigames.api.config.ConfigurationObject; -import com.github.mce.minigames.api.config.ConfigurationObjectList; -import com.github.mce.minigames.api.config.ConfigurationPlayer; -import com.github.mce.minigames.api.config.ConfigurationPlayerList; -import com.github.mce.minigames.api.config.ConfigurationSection; -import com.github.mce.minigames.api.config.ConfigurationShort; -import com.github.mce.minigames.api.config.ConfigurationShortList; -import com.github.mce.minigames.api.config.ConfigurationString; -import com.github.mce.minigames.api.config.ConfigurationStringList; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.config.ConfigurationValues; -import com.github.mce.minigames.api.config.ConfigurationVector; -import com.github.mce.minigames.api.config.ConfigurationVectorList; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link ConfigurationValueInterface} - * - * @author mepeisen - */ -public class ConfigurationValueInterfaceTest -{ - - /** the config mock. */ - private ConfigInterface config; - /** mocked config file. */ - private MemoryConfiguration file; - /** server. */ - private Server server; - /** library. */ - private MglibInterface lib; - - /** - * Some setup. - */ - @Before - public void setup() - { - this.lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ - when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable - { - return "core." + invocation.getArgumentAt(0, String.class); //$NON-NLS-1$ - } - }); - this.config = mock(ConfigInterface.class); - when(this.lib.getConfigFromCfg(anyObject())).thenReturn(this.config); - this.file = new MemoryConfiguration(); - when(this.config.getConfig(anyString())).thenReturn(this.file); - this.server = mock(Server.class); - Whitebox.setInternalState(Bukkit.class, "server", this.server); //$NON-NLS-1$ - final ItemFactory itemFactory = mock(ItemFactory.class); - when(itemFactory.equals(anyObject(), anyObject())).thenReturn(Boolean.TRUE); - when(this.server.getItemFactory()).thenReturn(itemFactory); - } - - /** - * Checks the save config call. - */ - @Test - public void saveConfigTest() - { - TestOptions.SomeByte1.saveConfig(); - - verify(this.config, times(1)).saveConfig("config.yml"); //$NON-NLS-1$ - } - - /** - * Invoke constructor for code coverage. - * @throws Exception thrown on exceptions - */ - @Test - public void constructorTest() throws Exception - { - final Constructor<?> ctor = Class.forName("com.github.mce.minigames.api.config.ConfigurationTool").getDeclaredConstructor(); //$NON-NLS-1$ - ctor.setAccessible(true); - ctor.newInstance(); - } - - /** - * Tests {@link ConfigurationValueInterface#isset()} - */ - @Test - public void issetTest() - { - this.file.set("core.config.SomeBooleanFalse", Boolean.FALSE); //$NON-NLS-1$ - this.file.set("core.config.SomeSection.Foo", Boolean.FALSE); //$NON-NLS-1$ - - assertTrue(TestOptions.SomeBooleanFalse.isset()); - assertFalse(TestOptions.SomeBooleanTrue.isset()); - - assertTrue(TestOptions.SomeSection.isset()); - assertTrue(TestOptions.SomeSection.isset("Foo")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Bar")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeOtherSection.isset("Foo")); //$NON-NLS-1$ - } - - /** - * Tests {@link ConfigurationValueInterface#isset()} - */ - @Test(expected = IllegalStateException.class) - public void issetTestInvalie() - { - TestOptions.SomeBooleanFalse.isset("Foo"); //$NON-NLS-1$ - } - - /** - * Tests {@link ConfigurationValueInterface#path()} - */ - @Test(expected = IllegalStateException.class) - public void pathTestInvalid() - { - TestOptions.SomeDummy.path(); - } - - /** - * Tests isxxx methods - */ - @Test - public void isxxxTestInvalid() - { - assertFalse(TestOptions.SomeDummy.isBoolean()); - } - - /** - * Tests for setters and getters - */ - @Test - public void getsetTest() - { - // boolean - assertEquals(true, TestOptions.SomeBooleanTrue.getBoolean()); - assertEquals(false, TestOptions.SomeBooleanFalse.getBoolean()); - assertEquals(false, TestOptions.SomeOtherBoolean.getBoolean()); - assertArrayEquals(new boolean[]{true}, TestOptions.SomeBooleanList.getBooleanList()); - assertArrayEquals(new boolean[]{}, TestOptions.SomeOtherBooleanList.getBooleanList()); - - TestOptions.SomeBooleanTrue.setBoolean(false); - TestOptions.SomeBooleanFalse.setBoolean(true); - TestOptions.SomeOtherBoolean.setBoolean(false); - TestOptions.SomeBooleanList.setBooleanList(new boolean[]{false, false}); - TestOptions.SomeOtherBooleanList.setBooleanList(new boolean[]{false, false}); - - assertEquals(Boolean.FALSE, this.file.get(TestOptions.SomeBooleanTrue.path())); - assertEquals(Boolean.TRUE, this.file.get(TestOptions.SomeBooleanFalse.path())); - assertEquals(Boolean.FALSE, this.file.get(TestOptions.SomeOtherBoolean.path())); - assertEquals(Arrays.asList(false, false), this.file.get(TestOptions.SomeBooleanList.path())); - assertEquals(Arrays.asList(false, false), this.file.get(TestOptions.SomeOtherBooleanList.path())); - - assertEquals(false, TestOptions.SomeBooleanTrue.getBoolean()); - assertEquals(true, TestOptions.SomeBooleanFalse.getBoolean()); - assertEquals(false, TestOptions.SomeOtherBoolean.getBoolean()); - assertArrayEquals(new boolean[]{false, false}, TestOptions.SomeBooleanList.getBooleanList()); - assertArrayEquals(new boolean[]{false, false}, TestOptions.SomeOtherBooleanList.getBooleanList()); - - // byte - assertEquals(1, TestOptions.SomeByte1.getByte()); - assertEquals(2, TestOptions.SomeByte2.getByte()); - assertEquals(0, TestOptions.SomeOtherByte.getByte()); - assertArrayEquals(new byte[]{1, 2}, TestOptions.SomeByteList.getByteList()); - assertArrayEquals(new byte[]{}, TestOptions.SomeOtherByteList.getByteList()); - - TestOptions.SomeByte1.setByte((byte) 2); - TestOptions.SomeByte2.setByte((byte) 3); - TestOptions.SomeOtherByte.setByte((byte) 4); - TestOptions.SomeByteList.setByteList(new byte[]{(byte) 5, (byte) 6}); - TestOptions.SomeOtherByteList.setByteList(new byte[]{(byte) 5, (byte) 6}); - - assertEquals(Byte.valueOf((byte) 2), this.file.get(TestOptions.SomeByte1.path())); - assertEquals(Byte.valueOf((byte) 3), this.file.get(TestOptions.SomeByte2.path())); - assertEquals(Byte.valueOf((byte) 4), this.file.get(TestOptions.SomeOtherByte.path())); - assertEquals(Arrays.asList((byte) 5, (byte) 6), this.file.get(TestOptions.SomeByteList.path())); - assertEquals(Arrays.asList((byte) 5, (byte) 6), this.file.get(TestOptions.SomeOtherByteList.path())); - - assertEquals(2, TestOptions.SomeByte1.getByte()); - assertEquals(3, TestOptions.SomeByte2.getByte()); - assertEquals(4, TestOptions.SomeOtherByte.getByte()); - assertArrayEquals(new byte[]{5, 6}, TestOptions.SomeByteList.getByteList()); - assertArrayEquals(new byte[]{5, 6}, TestOptions.SomeOtherByteList.getByteList()); - - // char - assertEquals('a', TestOptions.SomeCharacterA.getCharacter()); - assertEquals('b', TestOptions.SomeCharacterB.getCharacter()); - assertEquals(' ', TestOptions.SomeOtherCharacter.getCharacter()); - assertArrayEquals(new char[]{'a', 'b'}, TestOptions.SomeCharacterList.getCharacterList()); - assertArrayEquals(new char[]{}, TestOptions.SomeOtherCharacterList.getCharacterList()); - - TestOptions.SomeCharacterA.setCharacter('d'); - TestOptions.SomeCharacterB.setCharacter('e'); - TestOptions.SomeOtherCharacter.setCharacter('f'); - TestOptions.SomeCharacterList.setCharacterList(new char[]{'q', 'w'}); - TestOptions.SomeOtherCharacterList.setCharacterList(new char[]{'e', 'r'}); - - assertEquals("d", this.file.get(TestOptions.SomeCharacterA.path())); //$NON-NLS-1$ - assertEquals("e", this.file.get(TestOptions.SomeCharacterB.path())); //$NON-NLS-1$ - assertEquals("f", this.file.get(TestOptions.SomeOtherCharacter.path())); //$NON-NLS-1$ - assertEquals(Arrays.asList('q', 'w'), this.file.get(TestOptions.SomeCharacterList.path())); - assertEquals(Arrays.asList('e', 'r'), this.file.get(TestOptions.SomeOtherCharacterList.path())); - - assertEquals('d', TestOptions.SomeCharacterA.getCharacter()); - assertEquals('e', TestOptions.SomeCharacterB.getCharacter()); - assertEquals('f', TestOptions.SomeOtherCharacter.getCharacter()); - assertArrayEquals(new char[]{'q', 'w'}, TestOptions.SomeCharacterList.getCharacterList()); - assertArrayEquals(new char[]{'e', 'r'}, TestOptions.SomeOtherCharacterList.getCharacterList()); - - // color - assertEquals(Color.fromRGB(0x102030), TestOptions.SomeColorA.getColor()); - assertEquals(Color.fromRGB(0x203040), TestOptions.SomeColorB.getColor()); - assertEquals(Color.fromRGB(0), TestOptions.SomeOtherColor.getColor()); - assertArrayEquals(new Color[]{}, TestOptions.SomeColorList.getColorList()); - assertArrayEquals(new Color[]{}, TestOptions.SomeOtherColorList.getColorList()); - - TestOptions.SomeColorA.setColor(Color.RED); - TestOptions.SomeColorB.setColor(Color.BLUE); - TestOptions.SomeOtherColor.setColor(Color.AQUA); - TestOptions.SomeColorList.setColorList(new Color[]{Color.BLACK, Color.FUCHSIA}); - TestOptions.SomeOtherColorList.setColorList(new Color[]{Color.GREEN, Color.LIME}); - - assertEquals(Color.RED, this.file.get(TestOptions.SomeColorA.path())); - assertEquals(Color.BLUE, this.file.get(TestOptions.SomeColorB.path())); - assertEquals(Color.AQUA, this.file.get(TestOptions.SomeOtherColor.path())); - - assertEquals(Color.RED, TestOptions.SomeColorA.getColor()); - assertEquals(Color.BLUE, TestOptions.SomeColorB.getColor()); - assertEquals(Color.AQUA, TestOptions.SomeOtherColor.getColor()); - assertArrayEquals(new Color[]{Color.BLACK, Color.FUCHSIA}, TestOptions.SomeColorList.getColorList()); - assertArrayEquals(new Color[]{Color.GREEN, Color.LIME}, TestOptions.SomeOtherColorList.getColorList()); - - // double - assertEquals(0.5, TestOptions.SomeDoubleA.getDouble(), 0); - assertEquals(0.75, TestOptions.SomeDoubleB.getDouble(), 0); - assertEquals(0d, TestOptions.SomeOtherDouble.getDouble(), 0); - assertArrayEquals(new double[]{1.1, 1.2}, TestOptions.SomeDoubleList.getDoubleList(), 0); - assertArrayEquals(new double[]{}, TestOptions.SomeOtherDoubleList.getDoubleList(), 0); - - TestOptions.SomeDoubleA.setDouble(2.1); - TestOptions.SomeDoubleB.setDouble(2.5); - TestOptions.SomeOtherDouble.setDouble(2.3); - TestOptions.SomeDoubleList.setDoubleList(new double[]{2.2, 2.4}); - TestOptions.SomeOtherDoubleList.setDoubleList(new double[]{2.6, 2.7}); - - assertEquals(Double.valueOf(2.1), this.file.get(TestOptions.SomeDoubleA.path())); - assertEquals(Double.valueOf(2.5), this.file.get(TestOptions.SomeDoubleB.path())); - assertEquals(Double.valueOf(2.3), this.file.get(TestOptions.SomeOtherDouble.path())); - assertEquals(Arrays.asList(2.2, 2.4), this.file.get(TestOptions.SomeDoubleList.path())); - assertEquals(Arrays.asList(2.6, 2.7), this.file.get(TestOptions.SomeOtherDoubleList.path())); - - assertEquals(2.1, TestOptions.SomeDoubleA.getDouble(), 0); - assertEquals(2.5, TestOptions.SomeDoubleB.getDouble(), 0); - assertEquals(2.3, TestOptions.SomeOtherDouble.getDouble(), 0); - assertArrayEquals(new double[]{2.2, 2.4}, TestOptions.SomeDoubleList.getDoubleList(), 0); - assertArrayEquals(new double[]{2.6, 2.7}, TestOptions.SomeOtherDoubleList.getDoubleList(), 0); - - // float - assertEquals(0.5f, TestOptions.SomeFloatA.getFloat(), 0); - assertEquals(0.75f, TestOptions.SomeFloatB.getFloat(), 0); - assertEquals(0f, TestOptions.SomeOtherFloat.getFloat(), 0); - assertArrayEquals(new float[]{1.1f, 1.2f}, TestOptions.SomeFloatList.getFloatList(), 0); - assertArrayEquals(new float[]{}, TestOptions.SomeOtherFloatList.getFloatList(), 0); - - TestOptions.SomeFloatA.setFloat(2.1f); - TestOptions.SomeFloatB.setFloat(2.5f); - TestOptions.SomeOtherFloat.setFloat(2.3f); - TestOptions.SomeFloatList.setFloatList(new float[]{2.2f, 2.4f}); - TestOptions.SomeOtherFloatList.setFloatList(new float[]{2.6f, 2.7f}); - - assertEquals(Float.valueOf(2.1f), this.file.get(TestOptions.SomeFloatA.path())); - assertEquals(Float.valueOf(2.5f), this.file.get(TestOptions.SomeFloatB.path())); - assertEquals(Float.valueOf(2.3f), this.file.get(TestOptions.SomeOtherFloat.path())); - assertEquals(Arrays.asList(2.2f, 2.4f), this.file.get(TestOptions.SomeFloatList.path())); - assertEquals(Arrays.asList(2.6f, 2.7f), this.file.get(TestOptions.SomeOtherFloatList.path())); - - assertEquals(2.1f, TestOptions.SomeFloatA.getFloat(), 0); - assertEquals(2.5f, TestOptions.SomeFloatB.getFloat(), 0); - assertEquals(2.3f, TestOptions.SomeOtherFloat.getFloat(), 0); - assertArrayEquals(new float[]{2.2f, 2.4f}, TestOptions.SomeFloatList.getFloatList(), 0); - assertArrayEquals(new float[]{2.6f, 2.7f}, TestOptions.SomeOtherFloatList.getFloatList(), 0); - - // int - assertEquals(1, TestOptions.SomeInt1.getInt()); - assertEquals(2, TestOptions.SomeInt2.getInt()); - assertEquals(0, TestOptions.SomeOtherInt.getInt()); - assertArrayEquals(new int[]{1, 2}, TestOptions.SomeIntList.getIntList()); - assertArrayEquals(new int[]{}, TestOptions.SomeOtherIntList.getIntList()); - - TestOptions.SomeInt1.setInt(2); - TestOptions.SomeInt2.setInt(3); - TestOptions.SomeOtherInt.setInt(4); - TestOptions.SomeIntList.setIntList(new int[]{5, 6}); - TestOptions.SomeOtherIntList.setIntList(new int[]{5, 6}); - - assertEquals(Integer.valueOf(2), this.file.get(TestOptions.SomeInt1.path())); - assertEquals(Integer.valueOf(3), this.file.get(TestOptions.SomeInt2.path())); - assertEquals(Integer.valueOf(4), this.file.get(TestOptions.SomeOtherInt.path())); - assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeIntList.path())); - assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeOtherIntList.path())); - - assertEquals(2, TestOptions.SomeInt1.getInt()); - assertEquals(3, TestOptions.SomeInt2.getInt()); - assertEquals(4, TestOptions.SomeOtherInt.getInt()); - assertArrayEquals(new int[]{5, 6}, TestOptions.SomeIntList.getIntList()); - assertArrayEquals(new int[]{5, 6}, TestOptions.SomeOtherIntList.getIntList()); - - // item stack - assertNull(TestOptions.SomeItemStack.getItemStack()); - assertNull(TestOptions.SomeOtherItemStack.getItemStack()); - assertArrayEquals(new ItemStack[]{}, TestOptions.SomeItemStackList.getItemStackList()); - assertArrayEquals(new ItemStack[]{}, TestOptions.SomeOtherItemStackList.getItemStackList()); - - TestOptions.SomeItemStack.setItemStack(new ItemStack(Material.AIR)); - TestOptions.SomeOtherItemStack.setItemStack(new ItemStack(Material.ACACIA_DOOR)); - TestOptions.SomeItemStackList.setItemStackList(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}); - TestOptions.SomeOtherItemStackList.setItemStackList(new ItemStack[]{new ItemStack(Material.ACACIA_FENCE_GATE), new ItemStack(Material.ACACIA_STAIRS)}); - - assertEquals(new ItemStack(Material.AIR), this.file.get(TestOptions.SomeItemStack.path())); - assertEquals(new ItemStack(Material.ACACIA_DOOR), this.file.get(TestOptions.SomeOtherItemStack.path())); - - assertEquals(new ItemStack(Material.AIR), TestOptions.SomeItemStack.getItemStack()); - assertEquals(new ItemStack(Material.ACACIA_DOOR), TestOptions.SomeOtherItemStack.getItemStack()); - assertArrayEquals(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}, TestOptions.SomeItemStackList.getItemStackList()); - assertArrayEquals(new ItemStack[]{new ItemStack(Material.ACACIA_FENCE_GATE), new ItemStack(Material.ACACIA_STAIRS)}, TestOptions.SomeOtherItemStackList.getItemStackList()); - - // long - assertEquals(1, TestOptions.SomeLong1.getLong()); - assertEquals(2, TestOptions.SomeLong2.getLong()); - assertEquals(0, TestOptions.SomeOtherLong.getLong()); - assertArrayEquals(new long[]{1, 2}, TestOptions.SomeLongList.getLongList()); - assertArrayEquals(new long[]{}, TestOptions.SomeOtherLongList.getLongList()); - - TestOptions.SomeLong1.setLong(2); - TestOptions.SomeLong2.setLong(3); - TestOptions.SomeOtherLong.setLong(4); - TestOptions.SomeLongList.setLongList(new long[]{5, 6}); - TestOptions.SomeOtherLongList.setLongList(new long[]{5, 6}); - - assertEquals(Long.valueOf(2), this.file.get(TestOptions.SomeLong1.path())); - assertEquals(Long.valueOf(3), this.file.get(TestOptions.SomeLong2.path())); - assertEquals(Long.valueOf(4), this.file.get(TestOptions.SomeOtherLong.path())); - assertEquals(Arrays.asList(5l, 6l), this.file.get(TestOptions.SomeLongList.path())); - assertEquals(Arrays.asList(5l, 6l), this.file.get(TestOptions.SomeOtherLongList.path())); - - assertEquals(2, TestOptions.SomeLong1.getLong()); - assertEquals(3, TestOptions.SomeLong2.getLong()); - assertEquals(4, TestOptions.SomeOtherLong.getLong()); - assertArrayEquals(new long[]{5, 6}, TestOptions.SomeLongList.getLongList()); - assertArrayEquals(new long[]{5, 6}, TestOptions.SomeOtherLongList.getLongList()); - - // short - assertEquals(1, TestOptions.SomeShort1.getShort()); - assertEquals(2, TestOptions.SomeShort2.getShort()); - assertEquals(0, TestOptions.SomeOtherShort.getShort()); - assertArrayEquals(new short[]{1, 2}, TestOptions.SomeShortList.getShortList()); - assertArrayEquals(new short[]{}, TestOptions.SomeOtherShortList.getShortList()); - - TestOptions.SomeShort1.setShort((short) 2); - TestOptions.SomeShort2.setShort((short) 3); - TestOptions.SomeOtherShort.setShort((short) 4); - TestOptions.SomeShortList.setShortList(new short[]{5, 6}); - TestOptions.SomeOtherShortList.setShortList(new short[]{5, 6}); - - assertEquals(Short.valueOf((short) 2), this.file.get(TestOptions.SomeShort1.path())); - assertEquals(Short.valueOf((short) 3), this.file.get(TestOptions.SomeShort2.path())); - assertEquals(Short.valueOf((short) 4), this.file.get(TestOptions.SomeOtherShort.path())); - assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeShortList.path())); - assertEquals(Arrays.asList(5, 6), this.file.get(TestOptions.SomeOtherShortList.path())); - - assertEquals(2, TestOptions.SomeShort1.getShort()); - assertEquals(3, TestOptions.SomeShort2.getShort()); - assertEquals(4, TestOptions.SomeOtherShort.getShort()); - assertArrayEquals(new short[]{5, 6}, TestOptions.SomeShortList.getShortList()); - assertArrayEquals(new short[]{5, 6}, TestOptions.SomeOtherShortList.getShortList()); - - // string - assertEquals("a", TestOptions.SomeStringA.getString()); //$NON-NLS-1$ - assertEquals("b", TestOptions.SomeStringB.getString()); //$NON-NLS-1$ - assertEquals("", TestOptions.SomeOtherString.getString()); //$NON-NLS-1$ - assertArrayEquals(new String[]{"a", "b"}, TestOptions.SomeStringList.getStringList()); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{}, TestOptions.SomeOtherStringList.getStringList()); - - TestOptions.SomeStringA.setString("d"); //$NON-NLS-1$ - TestOptions.SomeStringB.setString("e"); //$NON-NLS-1$ - TestOptions.SomeOtherString.setString("f"); //$NON-NLS-1$ - TestOptions.SomeStringList.setStringList(new String[]{"q", "w"}); //$NON-NLS-1$ //$NON-NLS-2$ - TestOptions.SomeOtherStringList.setStringList(new String[]{"e", "r"}); //$NON-NLS-1$ //$NON-NLS-2$ - - assertEquals("d", this.file.get(TestOptions.SomeStringA.path())); //$NON-NLS-1$ - assertEquals("e", this.file.get(TestOptions.SomeStringB.path())); //$NON-NLS-1$ - assertEquals("f", this.file.get(TestOptions.SomeOtherString.path())); //$NON-NLS-1$ - assertEquals(Arrays.asList("q", "w"), this.file.get(TestOptions.SomeStringList.path())); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(Arrays.asList("e", "r"), this.file.get(TestOptions.SomeOtherStringList.path())); //$NON-NLS-1$ //$NON-NLS-2$ - - assertEquals("d", TestOptions.SomeStringA.getString()); //$NON-NLS-1$ - assertEquals("e", TestOptions.SomeStringB.getString()); //$NON-NLS-1$ - assertEquals("f", TestOptions.SomeOtherString.getString()); //$NON-NLS-1$ - assertArrayEquals(new String[]{"q", "w"}, TestOptions.SomeStringList.getStringList()); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"e", "r"}, TestOptions.SomeOtherStringList.getStringList()); //$NON-NLS-1$ //$NON-NLS-2$ - - // player - assertNull(TestOptions.SomePlayer.getPlayer()); - assertNull(TestOptions.SomeOtherPlayer.getPlayer()); - assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomePlayerList.getPlayerList()); - assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeOtherPlayerList.getPlayerList()); - - final ArenaPlayerInterface player1 = createPlayer(); - final ArenaPlayerInterface player2 = createPlayer(); - final ArenaPlayerInterface player3 = createPlayer(); - final ArenaPlayerInterface player4 = createPlayer(); - final ArenaPlayerInterface player5 = createPlayer(); - final ArenaPlayerInterface player6 = createPlayer(); - - TestOptions.SomePlayer.setPlayer(player1); - TestOptions.SomeOtherPlayer.setPlayer(player2); - TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{player3, player4}); - TestOptions.SomeOtherPlayerList.setPlayerList(new ArenaPlayerInterface[]{player5, player6}); - - assertEquals(player1.getBukkitPlayer(), this.file.get(TestOptions.SomePlayer.path())); - assertEquals(player2.getBukkitPlayer(), this.file.get(TestOptions.SomeOtherPlayer.path())); - - assertEquals(player1, TestOptions.SomePlayer.getPlayer()); - assertEquals(player2, TestOptions.SomeOtherPlayer.getPlayer()); - assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomePlayerList.getPlayerList()); - assertArrayEquals(new ArenaPlayerInterface[]{player5, player6}, TestOptions.SomeOtherPlayerList.getPlayerList()); - - // vector - assertNull(TestOptions.SomeVector.getVector()); - assertNull(TestOptions.SomeOtherVector.getVector()); - assertArrayEquals(new Vector[]{}, TestOptions.SomeVectorList.getVectorList()); - assertArrayEquals(new Vector[]{}, TestOptions.SomeOtherVectorList.getVectorList()); - - TestOptions.SomeVector.setVector(new Vector(1, 2, 3)); - TestOptions.SomeOtherVector.setVector(new Vector(2, 3, 4)); - TestOptions.SomeVectorList.setVectorList(new Vector[]{new Vector(3, 4, 5), new Vector(4, 5, 6)}); - TestOptions.SomeOtherVectorList.setVectorList(new Vector[]{new Vector(5, 6, 7), new Vector(6, 7, 8)}); - - assertEquals(new Vector(1, 2, 3), this.file.get(TestOptions.SomeVector.path())); - assertEquals(new Vector(2, 3, 4), this.file.get(TestOptions.SomeOtherVector.path())); - - assertEquals(new Vector(1, 2, 3), TestOptions.SomeVector.getVector()); - assertEquals(new Vector(2, 3, 4), TestOptions.SomeOtherVector.getVector()); - assertArrayEquals(new Vector[]{new Vector(3, 4, 5), new Vector(4, 5, 6)}, TestOptions.SomeVectorList.getVectorList()); - assertArrayEquals(new Vector[]{new Vector(5, 6, 7), new Vector(6, 7, 8)}, TestOptions.SomeOtherVectorList.getVectorList()); - - // object - assertNull(TestOptions.SomeObject.getObject()); - assertNull(TestOptions.SomeOtherObject.getObject()); - assertArrayEquals(new FooObject[]{}, TestOptions.SomeObjectList.getObjectList(FooObject.class)); - assertArrayEquals(new FooObject[]{}, TestOptions.SomeOtherObjectList.getObjectList(FooObject.class)); - - final FooObject obj1 = new FooObject(1); - final FooObject obj2 = new FooObject(2); - final FooObject obj3 = new FooObject(3); - final FooObject obj4 = new FooObject(4); - final FooObject obj5 = new FooObject(5); - final FooObject obj6 = new FooObject(6); - - TestOptions.SomeObject.setObject(obj1); - TestOptions.SomeOtherObject.setObject(obj2); - TestOptions.SomeObjectList.setObjectList(new FooObject[]{obj3, obj4}); - TestOptions.SomeOtherObjectList.setObjectList(new FooObject[]{obj5, obj6}); - - assertEquals(obj1, TestOptions.SomeObject.getObject()); - assertEquals(obj2, TestOptions.SomeOtherObject.getObject()); - assertArrayEquals(new FooObject[]{obj3, obj4}, TestOptions.SomeObjectList.getObjectList(FooObject.class)); - assertArrayEquals(new FooObject[]{obj5, obj6}, TestOptions.SomeOtherObjectList.getObjectList(FooObject.class)); - - // sections - // boolean - assertFalse(TestOptions.SomeSection.getBoolean("Boolean", false)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Boolean")); //$NON-NLS-1$ - TestOptions.SomeSection.setBoolean(true, "Boolean"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Boolean")); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.getBoolean("Boolean", false)); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getBooleanList("BooleanList", null)); //$NON-NLS-1$ - assertArrayEquals(new boolean[]{true, true}, TestOptions.SomeSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("BooleanList")); //$NON-NLS-1$ - TestOptions.SomeSection.setBooleanList(new boolean[]{true, false}, "BooleanList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("BooleanList")); //$NON-NLS-1$ - assertArrayEquals(new boolean[]{true, false}, TestOptions.SomeSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ - - assertFalse(TestOptions.SomeOtherSection.getBoolean("Boolean", false)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeOtherSection.isset("Boolean")); //$NON-NLS-1$ - TestOptions.SomeOtherSection.setBoolean(true, "Boolean"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeOtherSection.isset("Boolean")); //$NON-NLS-1$ - assertTrue(TestOptions.SomeOtherSection.getBoolean("Boolean", false)); //$NON-NLS-1$ - - assertNull(TestOptions.SomeOtherSection.getBooleanList("BooleanList", null)); //$NON-NLS-1$ - assertArrayEquals(new boolean[]{true, true}, TestOptions.SomeOtherSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeOtherSection.isset("BooleanList")); //$NON-NLS-1$ - TestOptions.SomeOtherSection.setBooleanList(new boolean[]{true, false}, "BooleanList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeOtherSection.isset("BooleanList")); //$NON-NLS-1$ - assertArrayEquals(new boolean[]{true, false}, TestOptions.SomeOtherSection.getBooleanList("BooleanList", new boolean[]{true, true})); //$NON-NLS-1$ - - //getKeys - assertArrayEquals(new String[]{"Boolean", "BooleanList"}, TestOptions.SomeSection.getKeys(false)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"Boolean", "BooleanList"}, TestOptions.SomeOtherSection.getKeys(false)); //$NON-NLS-1$ //$NON-NLS-2$ - - // byte - assertEquals(1, TestOptions.SomeSection.getByte("Byte", (byte) 1)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Byte")); //$NON-NLS-1$ - TestOptions.SomeSection.setByte((byte) 2, "Byte"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Byte")); //$NON-NLS-1$ - assertEquals(2, TestOptions.SomeSection.getByte("Byte", (byte) 1)); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getByteList("ByteList", null)); //$NON-NLS-1$ - assertArrayEquals(new byte[]{1, 2}, TestOptions.SomeSection.getByteList("ByteList", new byte[]{1, 2})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("ByteList")); //$NON-NLS-1$ - TestOptions.SomeSection.setByteList(new byte[]{2, 3}, "ByteList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("ByteList")); //$NON-NLS-1$ - assertArrayEquals(new byte[]{2, 3}, TestOptions.SomeSection.getByteList("ByteList", new byte[]{1, 2})); //$NON-NLS-1$ - - // character - assertEquals('a', TestOptions.SomeSection.getCharacter("Character", 'a')); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Character")); //$NON-NLS-1$ - TestOptions.SomeSection.setCharacter('b', "Character"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Character")); //$NON-NLS-1$ - assertEquals('b', TestOptions.SomeSection.getCharacter("Character", 'a')); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getCharacterList("CharacterList", null)); //$NON-NLS-1$ - assertArrayEquals(new char[]{'a', 'b'}, TestOptions.SomeSection.getCharacterList("CharacterList", new char[]{'a', 'b'})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("CharacterList")); //$NON-NLS-1$ - TestOptions.SomeSection.setCharacterList(new char[]{'b', 'c'}, "CharacterList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("CharacterList")); //$NON-NLS-1$ - assertArrayEquals(new char[]{'b', 'c'}, TestOptions.SomeSection.getCharacterList("CharacterList", new char[]{'a', 'b'})); //$NON-NLS-1$ - - // color - assertEquals(Color.RED, TestOptions.SomeSection.getColor("Color", Color.RED)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Color")); //$NON-NLS-1$ - TestOptions.SomeSection.setColor(Color.BLUE, "Color"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Color")); //$NON-NLS-1$ - assertEquals(Color.BLUE, TestOptions.SomeSection.getColor("Color", Color.RED)); //$NON-NLS-1$ - - assertArrayEquals(new Color[0], TestOptions.SomeSection.getColorList("ColorList")); //$NON-NLS-1$ - // assertArrayEquals(new Color[]{Color.RED, Color.BLUE}, TestOptions.SomeSection.getColorList("ColorList", new Color[]{Color.RED, Color.BLUE})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("ColorList")); //$NON-NLS-1$ - TestOptions.SomeSection.setColorList(new Color[]{Color.BLUE, Color.GREEN}, "ColorList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("ColorList")); //$NON-NLS-1$ - assertArrayEquals(new Color[]{Color.BLUE, Color.GREEN}, TestOptions.SomeSection.getColorList("ColorList")); //$NON-NLS-1$ - - // double - assertEquals(0.2, TestOptions.SomeSection.getDouble("Double", 0.2), 0); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Double")); //$NON-NLS-1$ - TestOptions.SomeSection.setDouble(0.3, "Double"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Double")); //$NON-NLS-1$ - assertEquals(0.3, TestOptions.SomeSection.getDouble("Double", 0.2), 0); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getDoubleList("DoubleList", null)); //$NON-NLS-1$ - assertArrayEquals(new double[]{0.3, 0.4}, TestOptions.SomeSection.getDoubleList("DoubleList", new double[]{0.3, 0.4}), 0); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("DoubleList")); //$NON-NLS-1$ - TestOptions.SomeSection.setDoubleList(new double[]{0.4, 0.5}, "DoubleList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("DoubleList")); //$NON-NLS-1$ - assertArrayEquals(new double[]{0.4, 0.5}, TestOptions.SomeSection.getDoubleList("DoubleList", new double[]{0.3, 0.4}), 0); //$NON-NLS-1$ - - // float - assertEquals(0.2f, TestOptions.SomeSection.getFloat("Float", 0.2f), 0); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Float")); //$NON-NLS-1$ - TestOptions.SomeSection.setFloat(0.3f, "Float"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Float")); //$NON-NLS-1$ - assertEquals(0.3f, TestOptions.SomeSection.getFloat("Float", 0.2f), 0); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getFloatList("FloatList", null)); //$NON-NLS-1$ - assertArrayEquals(new float[]{0.3f, 0.4f}, TestOptions.SomeSection.getFloatList("FloatList", new float[]{0.3f, 0.4f}), 0); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("FloatList")); //$NON-NLS-1$ - TestOptions.SomeSection.setFloatList(new float[]{0.4f, 0.5f}, "FloatList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("FloatList")); //$NON-NLS-1$ - assertArrayEquals(new float[]{0.4f, 0.5f}, TestOptions.SomeSection.getFloatList("FloatList", new float[]{0.3f, 0.4f}), 0); //$NON-NLS-1$ - - // int - assertEquals(2, TestOptions.SomeSection.getInt("Int", 2)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Int")); //$NON-NLS-1$ - TestOptions.SomeSection.setInt(3, "Int"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Int")); //$NON-NLS-1$ - assertEquals(3, TestOptions.SomeSection.getInt("Int", 2)); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getIntList("IntList", null)); //$NON-NLS-1$ - assertArrayEquals(new int[]{3, 4}, TestOptions.SomeSection.getIntList("IntList", new int[]{3, 4})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("IntList")); //$NON-NLS-1$ - TestOptions.SomeSection.setIntList(new int[]{4, 5}, "IntList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("IntList")); //$NON-NLS-1$ - assertArrayEquals(new int[]{4, 5}, TestOptions.SomeSection.getIntList("IntList", new int[]{3, 4})); //$NON-NLS-1$ - - // ItemStack - assertNull(TestOptions.SomeSection.getItemStack("ItemStack")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("ItemStack")); //$NON-NLS-1$ - TestOptions.SomeSection.setItemStack(new ItemStack(Material.ACACIA_DOOR), "ItemStack"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("ItemStack")); //$NON-NLS-1$ - assertEquals(new ItemStack(Material.ACACIA_DOOR), TestOptions.SomeSection.getItemStack("ItemStack")); //$NON-NLS-1$ - - assertArrayEquals(new ItemStack[]{}, TestOptions.SomeSection.getItemStackList("ItemStackList")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("ItemStackList")); //$NON-NLS-1$ - TestOptions.SomeSection.setItemStackList(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}, "ItemStackList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("ItemStackList")); //$NON-NLS-1$ - assertArrayEquals(new ItemStack[]{new ItemStack(Material.ACACIA_DOOR_ITEM), new ItemStack(Material.ACACIA_FENCE)}, TestOptions.SomeSection.getItemStackList("ItemStackList")); //$NON-NLS-1$ - - // Long - assertEquals(2, TestOptions.SomeSection.getLong("Long", 2)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Long")); //$NON-NLS-1$ - TestOptions.SomeSection.setLong(3, "Long"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Long")); //$NON-NLS-1$ - assertEquals(3, TestOptions.SomeSection.getLong("Long", 2)); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getLongList("LongList", null)); //$NON-NLS-1$ - assertArrayEquals(new long[]{3, 4}, TestOptions.SomeSection.getLongList("LongList", new long[]{3, 4})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("LongList")); //$NON-NLS-1$ - TestOptions.SomeSection.setLongList(new long[]{4, 5}, "LongList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("LongList")); //$NON-NLS-1$ - assertArrayEquals(new long[]{4, 5}, TestOptions.SomeSection.getLongList("LongList", new long[]{3, 4})); //$NON-NLS-1$ - - // Object - assertNull(TestOptions.SomeSection.getObject(FooObject.class, "Object")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Object")); //$NON-NLS-1$ - TestOptions.SomeSection.setObject(obj1, "Object"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Object")); //$NON-NLS-1$ - assertEquals(obj1, TestOptions.SomeSection.getObject(FooObject.class, "Object")); //$NON-NLS-1$ - - assertArrayEquals(new FooObject[]{}, TestOptions.SomeSection.getObjectList(FooObject.class, "ObjectList")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("ObjectList")); //$NON-NLS-1$ - TestOptions.SomeSection.setObjectList(new FooObject[]{obj2, obj3}, "ObjectList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("ObjectList")); //$NON-NLS-1$ - assertArrayEquals(new FooObject[]{obj2, obj3}, TestOptions.SomeSection.getObjectList(FooObject.class, "ObjectList")); //$NON-NLS-1$ - - // Player - assertNull(TestOptions.SomeSection.getPlayer("Player")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Player")); //$NON-NLS-1$ - TestOptions.SomeSection.setPlayer(player1, "Player"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Player")); //$NON-NLS-1$ - assertEquals(player1, TestOptions.SomeSection.getPlayer("Player")); //$NON-NLS-1$ - - assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("PlayerList")); //$NON-NLS-1$ - TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{player3, player4}, "PlayerList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("PlayerList")); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - - // Short - assertEquals(2, TestOptions.SomeSection.getShort("Short", (short) 2)); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Short")); //$NON-NLS-1$ - TestOptions.SomeSection.setShort((short) 3, "Short"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Short")); //$NON-NLS-1$ - assertEquals(3, TestOptions.SomeSection.getShort("Short", (short) 2)); //$NON-NLS-1$ - - assertNull(TestOptions.SomeSection.getShortList("ShortList", null)); //$NON-NLS-1$ - assertArrayEquals(new short[]{3, 4}, TestOptions.SomeSection.getShortList("ShortList", new short[]{3, 4})); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("ShortList")); //$NON-NLS-1$ - TestOptions.SomeSection.setShortList(new short[]{4, 5}, "ShortList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("ShortList")); //$NON-NLS-1$ - assertArrayEquals(new short[]{4, 5}, TestOptions.SomeSection.getShortList("ShortList", new short[]{3, 4})); //$NON-NLS-1$ - - // String - assertEquals("2", TestOptions.SomeSection.getString("String", "2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - assertFalse(TestOptions.SomeSection.isset("String")); //$NON-NLS-1$ - TestOptions.SomeSection.setString("3", "String"); //$NON-NLS-1$ //$NON-NLS-2$ - assertTrue(TestOptions.SomeSection.isset("String")); //$NON-NLS-1$ - assertEquals("3", TestOptions.SomeSection.getString("String", "2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - - assertNull(TestOptions.SomeSection.getStringList("StringList", null)); //$NON-NLS-1$ - assertArrayEquals(new String[]{"3", "4"}, TestOptions.SomeSection.getStringList("StringList", new String[]{"3", "4"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ - assertFalse(TestOptions.SomeSection.isset("StringList")); //$NON-NLS-1$ - TestOptions.SomeSection.setStringList(new String[]{"4", "5"}, "StringList"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - assertTrue(TestOptions.SomeSection.isset("StringList")); //$NON-NLS-1$ - assertArrayEquals(new String[]{"4", "5"}, TestOptions.SomeSection.getStringList("StringList", new String[]{"3", "4"})); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ - - // Vector - assertNull(TestOptions.SomeSection.getVector("Vector")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("Vector")); //$NON-NLS-1$ - TestOptions.SomeSection.setVector(new Vector(1, 2, 3), "Vector"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("Vector")); //$NON-NLS-1$ - assertEquals(new Vector(1, 2, 3), TestOptions.SomeSection.getVector("Vector")); //$NON-NLS-1$ - - assertArrayEquals(new Vector[]{}, TestOptions.SomeSection.getVectorList("VectorList")); //$NON-NLS-1$ - assertFalse(TestOptions.SomeSection.isset("VectorList")); //$NON-NLS-1$ - TestOptions.SomeSection.setVectorList(new Vector[]{new Vector(2, 3, 4), new Vector(3, 4, 5)}, "VectorList"); //$NON-NLS-1$ - assertTrue(TestOptions.SomeSection.isset("VectorList")); //$NON-NLS-1$ - assertArrayEquals(new Vector[]{new Vector(2, 3, 4), new Vector(3, 4, 5)}, TestOptions.SomeSection.getVectorList("VectorList")); //$NON-NLS-1$ - } - - /** - * Creates a mocked player - * @return mocked player - */ - private ArenaPlayerInterface createPlayer() - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bPlayer = mock(Player.class); - final UUID uuid = UUID.randomUUID(); - when(player.getBukkitPlayer()).thenReturn(bPlayer); - when(player.getOfflinePlayer()).thenReturn(bPlayer); - when(player.getPlayerUUID()).thenReturn(uuid); - when(bPlayer.getUniqueId()).thenReturn(uuid); - when(this.server.getPlayer(uuid)).thenReturn(bPlayer); - when(this.lib.getPlayer(uuid)).thenReturn(player); - when(this.lib.getPlayer(bPlayer)).thenReturn(player); - when(this.lib.getPlayer((OfflinePlayer) bPlayer)).thenReturn(player); - return player; - } - - /** - * Tests {@link ConfigurationValueInterface#path()} - */ - @Test - public void pathTest() - { - assertEquals("core.config.SomeBooleanFalse", TestOptions.SomeBooleanFalse.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_boolean", TestOptions.SomeOtherBoolean.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeBooleanList", TestOptions.SomeBooleanList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_boolean_list", TestOptions.SomeOtherBooleanList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeByte1", TestOptions.SomeByte1.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_byte", TestOptions.SomeOtherByte.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeByteList", TestOptions.SomeByteList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_byte_list", TestOptions.SomeOtherByteList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeCharacterA", TestOptions.SomeCharacterA.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_character", TestOptions.SomeOtherCharacter.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeCharacterList", TestOptions.SomeCharacterList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_character_list", TestOptions.SomeOtherCharacterList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeColorA", TestOptions.SomeColorA.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_color", TestOptions.SomeOtherColor.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeColorList", TestOptions.SomeColorList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_color_list", TestOptions.SomeOtherColorList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeDoubleA", TestOptions.SomeDoubleA.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_double", TestOptions.SomeOtherDouble.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeDoubleList", TestOptions.SomeDoubleList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_double_list", TestOptions.SomeOtherDoubleList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeFloatA", TestOptions.SomeFloatA.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_float", TestOptions.SomeOtherFloat.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeFloatList", TestOptions.SomeFloatList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_float_list", TestOptions.SomeOtherFloatList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeInt1", TestOptions.SomeInt1.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_int", TestOptions.SomeOtherInt.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeIntList", TestOptions.SomeIntList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_int_list", TestOptions.SomeOtherIntList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeItemStack", TestOptions.SomeItemStack.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_itemstack", TestOptions.SomeOtherItemStack.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeItemStackList", TestOptions.SomeItemStackList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_itemstack_list", TestOptions.SomeOtherItemStackList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeSection", TestOptions.SomeSection.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_section", TestOptions.SomeOtherSection.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeLong1", TestOptions.SomeLong1.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_long", TestOptions.SomeOtherLong.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeLongList", TestOptions.SomeLongList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_long_list", TestOptions.SomeOtherLongList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeObject", TestOptions.SomeObject.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_object", TestOptions.SomeOtherObject.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeObjectList", TestOptions.SomeObjectList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_object_list", TestOptions.SomeOtherObjectList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomePlayer", TestOptions.SomePlayer.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_player", TestOptions.SomeOtherPlayer.path()); //$NON-NLS-1$ - assertEquals("core.config.SomePlayerList", TestOptions.SomePlayerList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_player_list", TestOptions.SomeOtherPlayerList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeShort1", TestOptions.SomeShort1.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_short", TestOptions.SomeOtherShort.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeShortList", TestOptions.SomeShortList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_short_list", TestOptions.SomeOtherShortList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeStringA", TestOptions.SomeStringA.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_string", TestOptions.SomeOtherString.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeStringList", TestOptions.SomeStringList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_string_list", TestOptions.SomeOtherStringList.path()); //$NON-NLS-1$ - - assertEquals("core.config.SomeVector", TestOptions.SomeVector.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_vector", TestOptions.SomeOtherVector.path()); //$NON-NLS-1$ - assertEquals("core.config.SomeVectorList", TestOptions.SomeVectorList.path()); //$NON-NLS-1$ - assertEquals("core.config.some_other_vector_list", TestOptions.SomeOtherVectorList.path()); //$NON-NLS-1$ - } - - /** - * Tests the isxx functions - */ - @Test - public void isXXTest() - { - assertTrue(TestOptions.SomeBooleanTrue.isBoolean()); - assertFalse(TestOptions.SomeBooleanTrue.isBooleanList()); - assertTrue(TestOptions.SomeBooleanList.isBooleanList()); - assertFalse(TestOptions.SomeBooleanList.isBoolean()); - - assertTrue(TestOptions.SomeByte1.isByte()); - assertFalse(TestOptions.SomeByte1.isByteList()); - assertTrue(TestOptions.SomeByteList.isByteList()); - assertFalse(TestOptions.SomeByteList.isByte()); - - assertTrue(TestOptions.SomeCharacterA.isCharacter()); - assertFalse(TestOptions.SomeCharacterA.isCharacterList()); - assertTrue(TestOptions.SomeCharacterList.isCharacterList()); - assertFalse(TestOptions.SomeCharacterList.isCharacter()); - - assertTrue(TestOptions.SomeColorA.isColor()); - assertFalse(TestOptions.SomeColorA.isColorList()); - assertTrue(TestOptions.SomeColorList.isColorList()); - assertFalse(TestOptions.SomeColorList.isColor()); - - assertTrue(TestOptions.SomeDoubleA.isDouble()); - assertFalse(TestOptions.SomeDoubleA.isDoubleList()); - assertTrue(TestOptions.SomeDoubleList.isDoubleList()); - assertFalse(TestOptions.SomeDoubleList.isDouble()); - - assertTrue(TestOptions.SomeFloatA.isFloat()); - assertFalse(TestOptions.SomeFloatA.isFloatList()); - assertTrue(TestOptions.SomeFloatList.isFloatList()); - assertFalse(TestOptions.SomeFloatList.isFloat()); - - assertTrue(TestOptions.SomeInt1.isInt()); - assertFalse(TestOptions.SomeInt1.isIntList()); - assertTrue(TestOptions.SomeIntList.isIntList()); - assertFalse(TestOptions.SomeIntList.isInt()); - - assertTrue(TestOptions.SomeItemStack.isItemStack()); - assertFalse(TestOptions.SomeItemStack.isItemStackList()); - assertTrue(TestOptions.SomeItemStackList.isItemStackList()); - assertFalse(TestOptions.SomeItemStackList.isItemStack()); - - assertTrue(TestOptions.SomeSection.isSection()); - assertFalse(TestOptions.SomeItemStack.isSection()); - - assertTrue(TestOptions.SomeLong1.isLong()); - assertFalse(TestOptions.SomeLong1.isLongList()); - assertTrue(TestOptions.SomeLongList.isLongList()); - assertFalse(TestOptions.SomeLongList.isLong()); - - assertTrue(TestOptions.SomeObject.isObject()); - assertFalse(TestOptions.SomeObject.isObjectList()); - assertTrue(TestOptions.SomeObjectList.isObjectList()); - assertFalse(TestOptions.SomeObjectList.isObject()); - - assertTrue(TestOptions.SomePlayer.isPlayer()); - assertFalse(TestOptions.SomePlayer.isPlayerList()); - assertTrue(TestOptions.SomePlayerList.isPlayerList()); - assertFalse(TestOptions.SomePlayerList.isPlayer()); - - assertTrue(TestOptions.SomeShort1.isShort()); - assertFalse(TestOptions.SomeShort1.isShortList()); - assertTrue(TestOptions.SomeShortList.isShortList()); - assertFalse(TestOptions.SomeShortList.isShort()); - - assertTrue(TestOptions.SomeStringA.isString()); - assertFalse(TestOptions.SomeStringA.isStringList()); - assertTrue(TestOptions.SomeStringList.isStringList()); - assertFalse(TestOptions.SomeStringList.isString()); - - assertTrue(TestOptions.SomeVector.isVector()); - assertFalse(TestOptions.SomeVector.isVectorList()); - assertTrue(TestOptions.SomeVectorList.isVectorList()); - assertFalse(TestOptions.SomeVectorList.isVector()); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid1() - { - InvalidConfig.Invalid.getBoolean(); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid2() - { - InvalidConfig.Dummy.getBoolean(); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid3() - { - TestOptions.SomeDummy.getBoolean(); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid1b() - { - InvalidConfig.Invalid.setBoolean(true); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid2b() - { - InvalidConfig.Dummy.setBoolean(true); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid3b() - { - TestOptions.SomeDummy.setBoolean(true); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid1c() - { - InvalidConfig.Invalid.getKeys(false); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid2c() - { - InvalidConfig.Dummy.getKeys(false); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalid3c() - { - TestOptions.SomeDummy.getKeys(false); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalidField() - { - new InvalidConfig2().isBoolean(); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalidField2() - { - new InvalidConfig2().getKeys(false); - } - - /** - * Tests invalid config. - */ - @Test(expected = IllegalStateException.class) - public void testInvalidField3() - { - new InvalidConfig2().path(); - } - - /** - * Tests the list resetting - */ - @Test - public void testResettingList() - { - final ArenaPlayerInterface player1 = createPlayer(); - final ArenaPlayerInterface player2 = createPlayer(); - final ArenaPlayerInterface player3 = createPlayer(); - final ArenaPlayerInterface player4 = createPlayer(); - - TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{player3, player4}); - assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomePlayerList.getPlayerList()); - TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{player1, player2}); - assertArrayEquals(new ArenaPlayerInterface[]{player1, player2}, TestOptions.SomePlayerList.getPlayerList()); - TestOptions.SomePlayerList.setPlayerList(new ArenaPlayerInterface[]{}); - assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomePlayerList.getPlayerList()); - - TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{player3, player4}, "PlayerList"); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{player1, player2}, "PlayerList"); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{player1, player2}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - TestOptions.SomeSection.setPlayerList(new ArenaPlayerInterface[]{}, "PlayerList"); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - - TestOptions.SomeOtherSection.setPlayerList(new ArenaPlayerInterface[]{player3, player4}, "PlayerList"); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{player3, player4}, TestOptions.SomeOtherSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - TestOptions.SomeOtherSection.setPlayerList(new ArenaPlayerInterface[]{player1, player2}, "PlayerList"); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{player1, player2}, TestOptions.SomeOtherSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - TestOptions.SomeOtherSection.setPlayerList(new ArenaPlayerInterface[]{}, "PlayerList"); //$NON-NLS-1$ - assertArrayEquals(new ArenaPlayerInterface[]{}, TestOptions.SomeOtherSection.getPlayerList("PlayerList")); //$NON-NLS-1$ - } - - /** - * Some invalid config. - * @author mepeisen - */ - public static final class InvalidConfig2 implements ConfigurationValueInterface - { - // empty - } - - /** - * Some invalid config. - * @author mepeisen - */ - public static enum InvalidConfig implements ConfigurationValueInterface - { - /** invlid config. */ - Invalid, - /** dummy config. */ - @ConfigurationBool - Dummy - } - - /** - * Some test options - */ - @ConfigurationValues(path = "config") - public static enum TestOptions implements ConfigurationValueInterface - { - /** some value. */ - @ConfigurationBool(defaultValue = false) - SomeBooleanFalse, - /** some value. */ - @ConfigurationBool(defaultValue = true) - SomeBooleanTrue, - /** some value. */ - @ConfigurationBool(name = "some_other_boolean") - SomeOtherBoolean, - - /** some value list. */ - @ConfigurationBoolList(defaultValue = {true}) - SomeBooleanList, - /** some value list. */ - @ConfigurationBoolList(name = "some_other_boolean_list") - SomeOtherBooleanList, - - /** some value. */ - @ConfigurationByte(defaultValue = 1) - SomeByte1, - /** some value. */ - @ConfigurationByte(defaultValue = 2) - SomeByte2, - /** some value. */ - @ConfigurationByte(name = "some_other_byte") - SomeOtherByte, - - /** some value list. */ - @ConfigurationByteList(defaultValue = {1, 2}) - SomeByteList, - /** some value list. */ - @ConfigurationByteList(name = "some_other_byte_list") - SomeOtherByteList, - - /** some value. */ - @ConfigurationCharacter(defaultValue = 'a') - SomeCharacterA, - /** some value. */ - @ConfigurationCharacter(defaultValue = 'b') - SomeCharacterB, - /** some value. */ - @ConfigurationCharacter(name = "some_other_character") - SomeOtherCharacter, - - /** some value list. */ - @ConfigurationCharacterList(defaultValue = {'a', 'b'}) - SomeCharacterList, - /** some value list. */ - @ConfigurationCharacterList(name = "some_other_character_list") - SomeOtherCharacterList, - - /** some value. */ - @ConfigurationColor(defaultRgb = 0x102030) - SomeColorA, - /** some value. */ - @ConfigurationColor(defaultRgb = 0x203040) - SomeColorB, - /** some value. */ - @ConfigurationColor(name = "some_other_color") - SomeOtherColor, - - /** some value list. */ - @ConfigurationColorList - SomeColorList, - /** some value list. */ - @ConfigurationColorList(name = "some_other_color_list") - SomeOtherColorList, - - /** some value. */ - @ConfigurationDouble(defaultValue = 0.5) - SomeDoubleA, - /** some value. */ - @ConfigurationDouble(defaultValue = 0.75) - SomeDoubleB, - /** some value. */ - @ConfigurationDouble(name = "some_other_double") - SomeOtherDouble, - - /** some value list. */ - @ConfigurationDoubleList(defaultValue = {1.1, 1.2}) - SomeDoubleList, - /** some value list. */ - @ConfigurationDoubleList(name = "some_other_double_list") - SomeOtherDoubleList, - - /** some value. */ - @ConfigurationFloat(defaultValue = 0.5f) - SomeFloatA, - /** some value. */ - @ConfigurationFloat(defaultValue = 0.75f) - SomeFloatB, - /** some value. */ - @ConfigurationFloat(name = "some_other_float") - SomeOtherFloat, - - /** some value list. */ - @ConfigurationFloatList(defaultValue = {1.1f, 1.2f}) - SomeFloatList, - /** some value list. */ - @ConfigurationFloatList(name = "some_other_float_list") - SomeOtherFloatList, - - /** some value. */ - @ConfigurationInt(defaultValue = 1) - SomeInt1, - /** some value. */ - @ConfigurationInt(defaultValue = 2) - SomeInt2, - /** some value. */ - @ConfigurationInt(name = "some_other_int") - SomeOtherInt, - - /** some value list. */ - @ConfigurationIntList(defaultValue = {1, 2}) - SomeIntList, - /** some value list. */ - @ConfigurationIntList(name = "some_other_int_list") - SomeOtherIntList, - - /** some value. */ - @ConfigurationItemStack - SomeItemStack, - /** some value. */ - @ConfigurationItemStack(name = "some_other_itemstack") - SomeOtherItemStack, - - /** some value list. */ - @ConfigurationItemStackList - SomeItemStackList, - /** some value list. */ - @ConfigurationItemStackList(name = "some_other_itemstack_list") - SomeOtherItemStackList, - - /** some value. */ - @ConfigurationSection - SomeSection, - /** some value. */ - @ConfigurationSection("some_other_section") - SomeOtherSection, - - /** some value. */ - @ConfigurationLong(defaultValue = 1) - SomeLong1, - /** some value. */ - @ConfigurationLong(defaultValue = 2) - SomeLong2, - /** some value. */ - @ConfigurationLong(name = "some_other_long") - SomeOtherLong, - - /** some value list. */ - @ConfigurationLongList(defaultValue = {1, 2}) - SomeLongList, - /** some value list. */ - @ConfigurationLongList(name = "some_other_long_list") - SomeOtherLongList, - - /** some value. */ - @ConfigurationObject(clazz = FooObject.class) - SomeObject, - /** some value. */ - @ConfigurationObject(clazz = FooObject.class, name = "some_other_object") - SomeOtherObject, - - /** some value list. */ - @ConfigurationObjectList(clazz = FooObject.class) - SomeObjectList, - /** some value list. */ - @ConfigurationObjectList(clazz = FooObject.class, name = "some_other_object_list") - SomeOtherObjectList, - - /** some value. */ - @ConfigurationPlayer - SomePlayer, - /** some value. */ - @ConfigurationPlayer(name = "some_other_player") - SomeOtherPlayer, - - /** some value list. */ - @ConfigurationPlayerList - SomePlayerList, - /** some value list. */ - @ConfigurationPlayerList(name = "some_other_player_list") - SomeOtherPlayerList, - - /** some value. */ - @ConfigurationShort(defaultValue = 1) - SomeShort1, - /** some value. */ - @ConfigurationShort(defaultValue = 2) - SomeShort2, - /** some value. */ - @ConfigurationShort(name = "some_other_short") - SomeOtherShort, - - /** some value list. */ - @ConfigurationShortList(defaultValue = {1, 2}) - SomeShortList, - /** some value list. */ - @ConfigurationShortList(name = "some_other_short_list") - SomeOtherShortList, - - /** some value. */ - @ConfigurationString(defaultValue = "a") - SomeStringA, - /** some value. */ - @ConfigurationString(defaultValue = "b") - SomeStringB, - /** some value. */ - @ConfigurationString(name = "some_other_string") - SomeOtherString, - - /** some value list. */ - @ConfigurationStringList(defaultValue = {"a", "b"}) - SomeStringList, - /** some value list. */ - @ConfigurationStringList(name = "some_other_string_list") - SomeOtherStringList, - - /** some value. */ - @ConfigurationVector - SomeVector, - /** some value. */ - @ConfigurationVector(name = "some_other_vector") - SomeOtherVector, - - /** some value list. */ - @ConfigurationVectorList - SomeVectorList, - /** some value list. */ - @ConfigurationVectorList(name = "some_other_vector_list") - SomeOtherVectorList, - - /** some invalid dummy value. */ - SomeDummy, - } - - /** - * A sample configurable - */ - public static final class FooObject implements Configurable - { - - /** obj value. */ - private int i; - - /** - * Constructor. - */ - public FooObject() - { - // empty - } - - /** - * @param i i - */ - public FooObject(int i) - { - this.i = i; - } - - @Override - public void readFromConfig(org.bukkit.configuration.ConfigurationSection section) - { - this.i = section.getInt("i"); //$NON-NLS-1$ - } - - @Override - public void writeToConfig(org.bukkit.configuration.ConfigurationSection section) - { - section.set("i", this.i); //$NON-NLS-1$ - } - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result + this.i; - return result; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - FooObject other = (FooObject) obj; - if (this.i != other.i) - return false; - return true; - } - - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java deleted file mode 100644 index dd4b894a..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/context/MinigameContextTest.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.context; - -import static org.junit.Assert.assertSame; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.component.ComponentInterface; -import com.github.mce.minigames.api.context.MinigameContext; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.zones.ZoneInterface; - -/** - * test case for {@link MinigameContext} - * - * @author mepeisen - */ -public class MinigameContextTest -{ - - /** - * Tests {@link MinigameContext#getCurrentArena()} - */ - @Test - public void getCurrentArenaTest() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MgContextImpl ctx = mock(MgContextImpl.class); - when(ctx.getCurrentArena()).thenCallRealMethod(); - when(ctx.getContext(ArenaInterface.class)).thenReturn(arena); - - assertSame(arena, ctx.getCurrentArena()); - } - - /** - * Tests {@link MinigameContext#getCurrentComponent()} - */ - @Test - public void getCurrentComponentTest() - { - final ComponentInterface comp = mock(ComponentInterface.class); - final MgContextImpl ctx = mock(MgContextImpl.class); - when(ctx.getCurrentComponent()).thenCallRealMethod(); - when(ctx.getContext(ComponentInterface.class)).thenReturn(comp); - - assertSame(comp, ctx.getCurrentComponent()); - } - - /** - * Tests {@link MinigameContext#getCurrentZone()} - */ - @Test - public void getCurrentZoneTest() - { - final ZoneInterface zone = mock(ZoneInterface.class); - final MgContextImpl ctx = mock(MgContextImpl.class); - when(ctx.getCurrentZone()).thenCallRealMethod(); - when(ctx.getContext(ZoneInterface.class)).thenReturn(zone); - - assertSame(zone, ctx.getCurrentZone()); - } - - /** - * Tests {@link MinigameContext#getCurrentMinigame()} - */ - @Test - public void getCurrentMinigameTest() - { - final MinigameInterface mg = mock(MinigameInterface.class); - final MgContextImpl ctx = mock(MgContextImpl.class); - when(ctx.getCurrentMinigame()).thenCallRealMethod(); - when(ctx.getContext(MinigameInterface.class)).thenReturn(mg); - - assertSame(mg, ctx.getCurrentMinigame()); - } - - /** - * Tests {@link MinigameContext#getCurrentPlayer()} - */ - @Test - public void getCurrentPlayerTest() - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final MgContextImpl ctx = mock(MgContextImpl.class); - when(ctx.getCurrentPlayer()).thenCallRealMethod(); - when(ctx.getContext(ArenaPlayerInterface.class)).thenReturn(player); - - assertSame(player, ctx.getCurrentPlayer()); - } - - /** helper. */ - private abstract class MgContextImpl implements MinigameContext - { - // empty - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java index 3c797d94..5a5183e6 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java @@ -27,7 +27,8 @@ import org.junit.Test; import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.event.AbstractVetoEvent; + +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; /** * test case for {@link AbstractVetoEvent} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java deleted file mode 100644 index 447621ae..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerCloseGuiEventTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link PlayerCloseGuiEvent} - * - * @author mepeisen - * - */ -public class PlayerCloseGuiEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final PlayerCloseGuiEvent evt = new PlayerCloseGuiEvent(gui, player); - - assertEquals(evt.getHandlers(), PlayerCloseGuiEvent.getHandlerList()); - assertEquals(gui, evt.getGui()); - assertEquals(player, evt.getPlayer()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java deleted file mode 100644 index b244f4b2..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerDisplayGuiPageEventTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiPageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link PlayerDisplayGuiPageEvent} - * - * @author mepeisen - * - */ -public class PlayerDisplayGuiPageEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ClickGuiPageInterface page = mock(ClickGuiPageInterface.class); - final PlayerDisplayGuiPageEvent evt = new PlayerDisplayGuiPageEvent(gui, player, page); - - assertEquals(evt.getHandlers(), PlayerDisplayGuiPageEvent.getHandlerList()); - assertEquals(gui, evt.getGui()); - assertEquals(player, evt.getPlayer()); - assertEquals(page, evt.getPage()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java deleted file mode 100644 index 8e736967..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerGuiClickEventTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerGuiClickEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiItem; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link PlayerGuiClickEvent} - * - * @author mepeisen - * - */ -public class PlayerGuiClickEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ClickGuiItem item = mock(ClickGuiItem.class); - final PlayerGuiClickEvent evt = new PlayerGuiClickEvent(gui, player, item); - - assertEquals(evt.getHandlers(), PlayerGuiClickEvent.getHandlerList()); - assertEquals(gui, evt.getGui()); - assertEquals(player, evt.getPlayer()); - assertEquals(item, evt.getItem()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java deleted file mode 100644 index 904e0970..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/PlayerOpenGuiEventTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link PlayerOpenGuiEvent} - * - * @author mepeisen - * - */ -public class PlayerOpenGuiEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final PlayerOpenGuiEvent evt = new PlayerOpenGuiEvent(gui, player); - - assertEquals(evt.getHandlers(), PlayerOpenGuiEvent.getHandlerList()); - assertEquals(gui, evt.getGui()); - assertEquals(player, evt.getPlayer()); - assertFalse(evt.isCancelled()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java deleted file mode 100644 index 632af44c..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/gui/ClickGuiItemTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.gui; - -import static org.junit.Assert.assertSame; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.inventory.ItemStack; -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.gui.ClickGuiItem; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; - -/** - * test case for {@link ClickGuiItem} - * - * @author mepeisen - */ -public class ClickGuiItemTest -{ - - /** - * Tests {@link ClickGuiItem#ClickGuiItem(org.bukkit.inventory.ItemStack, com.github.mce.minigames.api.locale.LocalizedMessageInterface, com.github.mce.minigames.api.gui.ClickGuiItem.GuiItemHandler)} - */ - @Test - public void constructorTest() - { - final ItemStack item = mock(ItemStack.class); - when(item.clone()).thenReturn(item); - final LocalizedMessageInterface name = mock(LocalizedMessageInterface.class); - final ClickGuiItem.GuiItemHandler handler = mock(ClickGuiItem.GuiItemHandler.class); - - final ClickGuiItem guiItem = new ClickGuiItem(item, name, handler); - - verify(item, times(1)).clone(); - - assertSame(item, guiItem.getItemStack()); - assertSame(name, guiItem.getDisplayName()); - } - - /** - * Tests {@link ClickGuiItem#ClickGuiItem(org.bukkit.inventory.ItemStack, com.github.mce.minigames.api.locale.LocalizedMessageInterface, com.github.mce.minigames.api.gui.ClickGuiItem.GuiItemHandler)} - * @throws MinigameException thrown on errors - */ - @Test - public void handlerTest() throws MinigameException - { - final ItemStack item = mock(ItemStack.class); - when(item.clone()).thenReturn(item); - final LocalizedMessageInterface name = mock(LocalizedMessageInterface.class); - final ClickGuiItem.GuiItemHandler handler = mock(ClickGuiItem.GuiItemHandler.class); - - final ClickGuiItem guiItem = new ClickGuiItem(item, name, handler); - guiItem.handle(null, null, null); - - verify(handler, times(1)).handle(null, null, null); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java deleted file mode 100644 index 50108f52..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigLineTest.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.locale; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.util.Locale; - -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.MemoryConfiguration; -import org.junit.Test; - -import com.github.mce.minigames.api.locale.LocalizedConfigLine; -import com.github.mce.minigames.api.locale.MessageSeverityType; - -/** - * test case for {@link LocalizedConfigLine} - * - * @author mepeisen - */ -public class LocalizedConfigLineTest -{ - - /** - * Tests the argument substitution - */ - @Test - public void testArgs() - { - final LocalizedConfigLine line = new LocalizedConfigLine(); - line.setUserMessages(Locale.ENGLISH, new String[]{"foo %2$s %1$s", "foo2 %2$s2 %1$s2"}); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo bar baz", "foo2 bar2 baz2"}, line.toUserMessageLine(Locale.GERMAN, "baz", "bar")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - } - - /** - * Tests {@link LocalizedConfigLine#writeToConfig(org.bukkit.configuration.ConfigurationSection)} and {@link LocalizedConfigLine#readFromConfig(org.bukkit.configuration.ConfigurationSection)} - */ - @Test - public void testConfig() - { - final LocalizedConfigLine line = new LocalizedConfigLine(); - line.setUserMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ - line.setUserMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ - line.setAdminMessages(Locale.ENGLISH, new String[]{"foo3", "bar3"}); //$NON-NLS-1$ //$NON-NLS-2$ - line.setAdminMessages(Locale.GERMAN, new String[]{}); - - final ConfigurationSection section = new MemoryConfiguration(); - line.writeToConfig(section); - - assertEquals("en", section.getString("default_locale")); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(2, section.getStringList("user.en").size()); //$NON-NLS-1$ - assertEquals("foo", section.getStringList("user.en").get(0)); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("bar", section.getStringList("user.en").get(1)); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(2, section.getStringList("user.de").size()); //$NON-NLS-1$ - assertEquals("foo2", section.getStringList("user.de").get(0)); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("bar2", section.getStringList("user.de").get(1)); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(2, section.getStringList("admin.en").size()); //$NON-NLS-1$ - assertEquals("foo3", section.getStringList("admin.en").get(0)); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("bar3", section.getStringList("admin.en").get(1)); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals(0, section.getStringList("admin.de").size()); //$NON-NLS-1$ - - final LocalizedConfigLine line2 = new LocalizedConfigLine(); - line2.readFromConfig(section); - - assertArrayEquals(new String[]{"foo", "bar"}, line2.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo2", "bar2"}, line2.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo3", "bar3"}, line2.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo2", "bar2"}, line2.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests the {@link LocalizedConfigLine#toUserMessageLine(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToUserMessageLine() - { - // empty message object - final LocalizedConfigLine line = new LocalizedConfigLine(); - assertArrayEquals(new String[0], line.toUserMessageLine(Locale.GERMAN)); - - // setting default locale - line.setUserMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - - // setting german - line.setUserMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo2", "bar2"}, line.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - - // clearing german - line.setUserMessages(Locale.GERMAN, null); - assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests the {@link LocalizedConfigLine#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToAdminMessageLine() - { - // empty message object - final LocalizedConfigLine line = new LocalizedConfigLine(); - assertArrayEquals(new String[0], line.toAdminMessageLine(Locale.GERMAN)); - - // setting default locale - line.setAdminMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - - // setting german - line.setAdminMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo2", "bar2"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - - // clearing german - line.setAdminMessages(Locale.GERMAN, null); - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests the {@link LocalizedConfigLine#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToAdminMessageLineReturningUserMsg() - { - // empty message object - final LocalizedConfigLine line = new LocalizedConfigLine(); - line.setUserMessages(Locale.ENGLISH, new String[]{"foo", "bar"}); //$NON-NLS-1$ //$NON-NLS-2$ - line.setAdminMessages(Locale.GERMAN, new String[]{"foo2", "bar2"}); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.ENGLISH)); //$NON-NLS-1$ //$NON-NLS-2$ - assertArrayEquals(new String[]{"foo2", "bar2"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - - line.setAdminMessages(Locale.GERMAN, new String[]{}); - assertArrayEquals(new String[]{"foo", "bar"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - - line.setUserMessages(Locale.ENGLISH, new String[]{"foo3", "bar3"}); //$NON-NLS-1$ //$NON-NLS-2$ - line.setAdminMessages(Locale.ENGLISH, new String[]{}); - assertArrayEquals(new String[]{"foo3", "bar3"}, line.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests standard methods. - */ - @Test - public void testMe() - { - final LocalizedConfigLine line = new LocalizedConfigLine(); - - assertFalse(line.isSingleLine()); - assertTrue(line.isMultiLine()); - - assertEquals(MessageSeverityType.Information, line.getSeverity()); - } - - /** - * Tests {@link LocalizedConfigLine#toAdminMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test(expected = IllegalStateException.class) - public void testToAdminMsg() - { - new LocalizedConfigLine().toAdminMessage(Locale.GERMAN); - } - - /** - * Tests {@link LocalizedConfigLine#toUserMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test(expected = IllegalStateException.class) - public void testToUserMsg() - { - new LocalizedConfigLine().toUserMessage(Locale.GERMAN); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java deleted file mode 100644 index 530aacd1..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedConfigStringTest.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.locale; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import java.util.Locale; - -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.MemoryConfiguration; -import org.junit.Test; - -import com.github.mce.minigames.api.locale.LocalizedConfigString; -import com.github.mce.minigames.api.locale.MessageSeverityType; - -/** - * test case for {@link LocalizedConfigString} - * - * @author mepeisen - */ -public class LocalizedConfigStringTest -{ - - /** - * Tests the argument substitution - */ - @Test - public void testArgs() - { - final LocalizedConfigString line = new LocalizedConfigString(); - line.setUserMessage(Locale.ENGLISH, "foo %2$s %1$s"); //$NON-NLS-1$ - assertEquals("foo bar baz", line.toUserMessage(Locale.GERMAN, "baz", "bar")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - /** - * Tests {@link LocalizedConfigString#writeToConfig(org.bukkit.configuration.ConfigurationSection)} and {@link LocalizedConfigString#readFromConfig(org.bukkit.configuration.ConfigurationSection)} - */ - @Test - public void testConfig() - { - final LocalizedConfigString line = new LocalizedConfigString(); - line.setUserMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ - line.setUserMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ - line.setAdminMessage(Locale.ENGLISH, "foo3"); //$NON-NLS-1$ - line.setAdminMessage(Locale.GERMAN, ""); //$NON-NLS-1$ - - final ConfigurationSection section = new MemoryConfiguration(); - line.writeToConfig(section); - - assertEquals("en", section.getString("default_locale")); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("foo", section.getString("user.en")); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("foo2", section.getString("user.de")); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("foo3", section.getString("admin.en")); //$NON-NLS-1$ //$NON-NLS-2$ - assertEquals("", section.getString("admin.de")); //$NON-NLS-1$ //$NON-NLS-2$ - - final LocalizedConfigString line2 = new LocalizedConfigString(); - line2.readFromConfig(section); - - assertEquals("foo", line2.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo2", line2.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ - assertEquals("foo3", line2.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo2", line2.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - } - - /** - * Tests the {@link LocalizedConfigString#toUserMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToUserMessage() - { - // empty message object - final LocalizedConfigString line = new LocalizedConfigString(); - assertNull(line.toUserMessage(Locale.GERMAN)); - - // setting default locale - line.setUserMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ - assertEquals("foo", line.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo", line.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ - - // setting german - line.setUserMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ - assertEquals("foo", line.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo2", line.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ - - // clearing german - line.setUserMessage(Locale.GERMAN, null); - assertEquals("foo", line.toUserMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo", line.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ - } - - /** - * Tests the {@link LocalizedConfigString#toAdminMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToAdminMessage() - { - // empty message object - final LocalizedConfigString line = new LocalizedConfigString(); - assertNull(line.toAdminMessage(Locale.GERMAN)); - - // setting default locale - line.setAdminMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ - assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - - // setting german - line.setAdminMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ - assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo2", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - - // clearing german - line.setAdminMessage(Locale.GERMAN, null); - assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - } - - /** - * Tests the {@link LocalizedConfigString#toAdminMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToAdminMessageReturningUserMsg() - { - // empty message object - final LocalizedConfigString line = new LocalizedConfigString(); - line.setUserMessage(Locale.ENGLISH, "foo"); //$NON-NLS-1$ - line.setAdminMessage(Locale.GERMAN, "foo2"); //$NON-NLS-1$ - assertEquals("foo", line.toAdminMessage(Locale.ENGLISH)); //$NON-NLS-1$ - assertEquals("foo2", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - - line.setAdminMessage(Locale.GERMAN, ""); //$NON-NLS-1$ - assertEquals("foo", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - - line.setUserMessage(Locale.ENGLISH, "foo3"); //$NON-NLS-1$ - line.setAdminMessage(Locale.ENGLISH, ""); //$NON-NLS-1$ - assertEquals("foo3", line.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - } - - /** - * Tests standard methods. - */ - @Test - public void testMe() - { - final LocalizedConfigString line = new LocalizedConfigString(); - - assertTrue(line.isSingleLine()); - assertFalse(line.isMultiLine()); - - assertEquals(MessageSeverityType.Information, line.getSeverity()); - } - - /** - * Tests {@link LocalizedConfigString#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} - */ - @Test(expected = IllegalStateException.class) - public void testToAdminMsgLine() - { - new LocalizedConfigString().toAdminMessageLine(Locale.GERMAN); - } - - /** - * Tests {@link LocalizedConfigString#toUserMessageLine(java.util.Locale, java.io.Serializable...)} - */ - @Test(expected = IllegalStateException.class) - public void testToUserMsgLine() - { - new LocalizedConfigString().toUserMessageLine(Locale.GERMAN); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java deleted file mode 100644 index fab3fd3d..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/LocalizedMessageInterfaceTest.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.locale; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.Locale; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.locale.LocalizedMessage; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageList; -import com.github.mce.minigames.api.locale.LocalizedMessages; -import com.github.mce.minigames.api.locale.MessageSeverityType; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; - -/** - * Test for {@link LocalizedMessageInterface} - * - * @author mepeisen - */ -public class LocalizedMessageInterfaceTest -{ - - /** the messages. */ - private MessagesConfigInterface messages; - /** library. */ - private MglibInterface lib; - - /** - * Some setup. - */ - @Before - public void setup() - { - this.lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", this.lib); //$NON-NLS-1$ - when(this.lib.resolveContextVar(anyString())).thenAnswer(new Answer<String>() { - @Override - public String answer(InvocationOnMock invocation) throws Throwable - { - return "core." + invocation.getArgumentAt(0, String.class); //$NON-NLS-1$ - } - }); - this.messages = mock(MessagesConfigInterface.class); - when(this.lib.getMessagesFromMsg(anyObject())).thenReturn(this.messages); - } - - /** - * Tests {@link LocalizedMessageInterface#isSingleLine()} - */ - @Test - public void testIsSingleLine() - { - assertTrue(TestMessages.FooSingleLine.isSingleLine()); - assertFalse(TestMessages.FooMultiLine.isSingleLine()); - } - - /** - * Tests {@link LocalizedMessageInterface#isMultiLine()} - */ - @Test - public void testIsMultiLine() - { - assertFalse(TestMessages.FooSingleLine.isMultiLine()); - assertTrue(TestMessages.FooMultiLine.isMultiLine()); - } - - /** - * Tests {@link LocalizedMessageInterface#getSeverity} - */ - @Test - public void testGetSeverity() - { - assertEquals(MessageSeverityType.Information, TestMessages.FooSingleLine.getSeverity()); - assertEquals(MessageSeverityType.Information, TestMessages.FooMultiLine.getSeverity()); - } - - /** - * Tests {@link LocalizedMessageInterface#toUserMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToUserMessage() - { - when(this.messages.getString(Locale.GERMAN, "msg.FooSingleLine", "FooSingleLine")).thenReturn("FooSingleLine2"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - assertEquals("FooSingleLine2", TestMessages.FooSingleLine.toUserMessage(Locale.GERMAN)); //$NON-NLS-1$ - } - - /** - * Tests {@link LocalizedMessageInterface#toAdminMessage(java.util.Locale, java.io.Serializable...)} - */ - @Test - public void testToAdminMessage() - { - when(this.messages.getAdminString(Locale.GERMAN, "msg.FooSingleLine", "")).thenReturn("FooSingleLineAdmin"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - assertEquals("FooSingleLineAdmin", TestMessages.FooSingleLine.toAdminMessage(Locale.GERMAN)); //$NON-NLS-1$ - } - - /** - * Tests {@link LocalizedMessageInterface#toUserMessageLine(java.util.Locale, java.io.Serializable...)} - * @throws SecurityException - * @throws NoSuchFieldException - */ - @Test - public void testToUserMessageLine() throws NoSuchFieldException, SecurityException - { - final String[] defValue = TestMessages.class.getField("FooMultiLine").getAnnotation(LocalizedMessageList.class).value(); //$NON-NLS-1$ - when(this.messages.getStringList(Locale.GERMAN, "msg.FooMultiLine", defValue)).thenReturn(new String[]{"FooMultiLine 1b", "FooMultiLine 2b"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - assertArrayEquals(new String[]{"FooMultiLine 1b", "FooMultiLine 2b"}, TestMessages.FooMultiLine.toUserMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Tests {@link LocalizedMessageInterface#toAdminMessageLine(java.util.Locale, java.io.Serializable...)} - * @throws SecurityException - * @throws NoSuchFieldException - */ - @Test - public void testToAdminMessageLine() throws NoSuchFieldException, SecurityException - { - when(this.messages.getAdminStringList(Locale.GERMAN, "msg.FooMultiLine", null)).thenReturn(new String[]{"FooMultiLine 1c", "FooMultiLine 2c"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - assertArrayEquals(new String[]{"FooMultiLine 1c", "FooMultiLine 2c"}, TestMessages.FooMultiLine.toAdminMessageLine(Locale.GERMAN)); //$NON-NLS-1$ //$NON-NLS-2$ - } - - /** - * Helper enum - */ - @LocalizedMessages("msg") - public enum TestMessages implements LocalizedMessageInterface - { - - /** single line */ - @LocalizedMessage(defaultMessage = "FooSingleLine") - FooSingleLine, - - /** multi line */ - @LocalizedMessageList({"FooMultiLine 1", "FooMultiLine 2"}) - FooMultiLine, - - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java deleted file mode 100644 index 1ed85ec4..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/locale/MessageSeverityTypeTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.locale; - -import org.junit.Test; - -import com.github.mce.minigames.api.locale.MessageSeverityType; -import com.github.mce.minigames.api.test.SharedUtil; - -/** - * test case for {@link MessageSeverityType} - * - * @author mepeisen - */ -public class MessageSeverityTypeTest -{ - - /** - * Tests the enum. - */ - @Test - public void testMe() - { - SharedUtil.testEnumClass(MessageSeverityType.class); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java deleted file mode 100644 index e749ff00..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/PermissionsInterfaceTest.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.perms; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.perms.Permission; -import com.github.mce.minigames.api.perms.Permissions; -import com.github.mce.minigames.api.perms.PermissionsInterface; - -/** - * test case for {@link PermissionsInterface} - * - * @author mepeisen - */ -public class PermissionsInterfaceTest -{ - - /** - * Tests {@link PermissionsInterface#fullPath()} - */ - @Test - public void fullPathTest() - { - assertEquals("FOO.BAR", PermissionEnum.BAR.fullPath()); //$NON-NLS-1$ - assertEquals("FOO.BAZZER", PermissionEnum.BAZ.fullPath()); //$NON-NLS-1$ - } - - /** - * Tests {@link PermissionsInterface#fullPath()} - */ - @Test(expected = IllegalStateException.class) - public void fullPathTestInvalid1() - { - assertEquals("FOO.BAR", InvalidEnum1.BAR.fullPath()); //$NON-NLS-1$ - } - - /** - * Tests {@link PermissionsInterface#fullPath()} - */ - @Test(expected = IllegalStateException.class) - public void fullPathTestInvalid2() - { - assertEquals("FOO.BAR", InvalidEnum2.BAR.fullPath()); //$NON-NLS-1$ - } - - /** - * Tests {@link PermissionsInterface#resolveName()} - */ - @Test - public void resolveNameTest() - { - final MglibInterface mglib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", mglib); //$NON-NLS-1$ - when(mglib.resolveContextVar("FOO.BAR")).thenReturn("FOOBAR"); //$NON-NLS-1$ //$NON-NLS-2$ - - assertEquals("FOOBAR", PermissionEnum.BAR.resolveName()); //$NON-NLS-1$ - } - - /** - * some sample permission. - */ - @Permissions(value="FOO") - private static enum PermissionEnum implements PermissionsInterface - { - /** bar permission. */ - @Permission - BAR, - /** bazzer permission. */ - @Permission("BAZZER") - BAZ - } - - /** - * some sample permission. - */ - private static enum InvalidEnum1 implements PermissionsInterface - { - /** bar permission. */ - @Permission - BAR - } - - /** - * some sample permission. - */ - @Permissions(value="FOO") - private static enum InvalidEnum2 implements PermissionsInterface - { - /** bar permission. */ - BAR - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java deleted file mode 100644 index 3903d627..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/player/ArenaPlayerInterfaceTest.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.player; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.entity.Player; -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link ArenaPlayerInterface} - * - * @author mepeisen - */ -public class ArenaPlayerInterfaceTest -{ - - /** - * Tests {@link ArenaPlayerInterface#hasPerm(com.github.mce.minigames.api.perms.PermissionsInterface)} - * - * @throws MinigameException - * thrown on errors - */ - @Test - public void hasPermTestTrue() throws MinigameException - { - final PermissionsInterface perm = mock(PermissionsInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - when(player.checkPermission(perm)).thenReturn(Boolean.TRUE); - - assertTrue(ArenaPlayerInterface.hasPerm(perm).test(player)); - } - - /** - * Tests {@link ArenaPlayerInterface#hasPerm(com.github.mce.minigames.api.perms.PermissionsInterface)} - * - * @throws MinigameException - * thrown on errors - */ - @Test - public void hasPermTestFalse() throws MinigameException - { - final PermissionsInterface perm = mock(PermissionsInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - when(player.checkPermission(perm)).thenReturn(Boolean.FALSE); - - assertFalse(ArenaPlayerInterface.hasPerm(perm).test(player)); - } - - /** - * Tests {@link ArenaPlayerInterface#hasPerm(com.github.mce.minigames.api.perms.PermissionsInterface)} - * - * @throws MinigameException - * thrown on ok - */ - @SuppressWarnings("unchecked") - @Test(expected = MinigameException.class) - public void hasPermTestExc() throws MinigameException - { - final PermissionsInterface perm = mock(PermissionsInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - when(player.checkPermission(perm)).thenThrow(MinigameException.class); - - ArenaPlayerInterface.hasPerm(perm).test(player); - } - - // ***** - - /** - * Tests {@link ArenaPlayerInterface#isInArena()} - * - * @throws MinigameException - * thrown on errors - */ - @Test - public void isInArenaTestTrue() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ArenaInterface arena = mock(ArenaInterface.class); - when(player.getArena()).thenReturn(arena); - - assertTrue(ArenaPlayerInterface.isInArena().test(player)); - } - - /** - * Tests {@link ArenaPlayerInterface#isInArena()} - * - * @throws MinigameException - * thrown on errors - */ - @Test - public void isInArenaTestFalse() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - when(player.getArena()).thenReturn(null); - - assertFalse(ArenaPlayerInterface.isInArena().test(player)); - } - - // ***** - - /** - * Tests {@link ArenaPlayerInterface#isOnline()} - * - * @throws MinigameException - * thrown on errors - */ - @Test - public void isOnlineTestTrue() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final Player bukkit = mock(Player.class); - when(player.getBukkitPlayer()).thenReturn(bukkit); - - assertTrue(ArenaPlayerInterface.isOnline().test(player)); - } - - /** - * Tests {@link ArenaPlayerInterface#isOnline()} - * - * @throws MinigameException - * thrown on errors - */ - @Test - public void isOnlineTestFalse() throws MinigameException - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - when(player.getBukkitPlayer()).thenReturn(null); - - assertFalse(ArenaPlayerInterface.isOnline().test(player)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java deleted file mode 100644 index 11fa65a4..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiConsumerTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - aInt with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicInteger; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgBiConsumer; - -/** - * Tests case for {@link MgBiConsumer} - * - * @author mepeisen - */ -public class MgBiConsumerTest -{ - - /** - * Tests method {@link MgBiConsumer#andThen(MgBiConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final AtomicInteger result2 = new AtomicInteger(0); - final AtomicInteger result3 = new AtomicInteger(0); - final AtomicInteger result4 = new AtomicInteger(0); - final MgBiConsumer<Integer, Integer> func = (i, j) -> { result1.set(i); result2.set(j + 10); }; - final MgBiConsumer<Integer, Integer> func2 = (i, j) -> { result3.set(i + result1.get()); result4.set(j + result2.get()); }; - - func.andThen(func2).accept(5, 7); - - assertEquals(5, result1.get()); - assertEquals(17, result2.get()); - assertEquals(10, result3.get()); - assertEquals(24, result4.get()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java deleted file mode 100644 index 52aa1141..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiFunctionTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - aInt with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgBiFunction; -import com.github.mce.minigames.api.util.function.MgFunction; - -/** - * Tests case for {@link MgBiFunction} - * - * @author mepeisen - */ -public class MgBiFunctionTest -{ - - /** - * Tests method {@link MgBiFunction#andThen(com.github.mce.minigames.api.util.function.MgFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final MgFunction<String, Integer> func = Integer::valueOf; - final MgBiFunction<String, String, String> biFunc = (a1, a2) -> a1.concat(a2); - - final MgBiFunction<String, String, Integer> biFunc2 = biFunc.andThen(func); - - assertEquals(10, biFunc2.apply("1", "0").intValue()); //$NON-NLS-1$ //$NON-NLS-2$ - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java deleted file mode 100644 index 3da2fcb1..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBiPredicateTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgBiPredicate; - -/** - * Tests case for {@link MgBiPredicate} - * - * @author mepeisen - */ -public class MgBiPredicateTest -{ - - /** - * Tests method {@link MgBiPredicate#and(MgBiPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAnd() throws MinigameException - { - final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; - final MgBiPredicate<Integer, Integer> func2 = (i, j) -> i > 20 && j > 20; - - assertFalse(func.and(func2).test(15, 15)); - assertFalse(func2.and(func).test(15, 15)); - assertTrue(func.and(func2).test(25, 25)); - } - - /** - * Tests method {@link MgBiPredicate#or(MgBiPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testOr() throws MinigameException - { - final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; - final MgBiPredicate<Integer, Integer> func2 = (i, j) -> i < -10 && j < -10; - - assertTrue(func.or(func2).test(15, 15)); - assertTrue(func.or(func2).test(-15, -15)); - assertFalse(func.or(func2).test(5, 5)); - assertFalse(func.or(func2).test(-5, -5)); - } - - /** - * Tests method {@link MgBiPredicate#negate()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNegate() throws MinigameException - { - final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; - - assertFalse(func.negate().test(15, 15)); - assertTrue(func.negate().test(5, 5)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java deleted file mode 100644 index 28cd140c..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgBinaryOperatorTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgBinaryOperator; - -/** - * Tests case for {@link MgBinaryOperator} - * - * @author mepeisen - */ -public class MgBinaryOperatorTest -{ - - /** - * Tests method {@link MgBinaryOperator#minBy(com.github.mce.minigames.api.util.function.MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testMinBy() throws MinigameException - { - final MgBinaryOperator<Integer> func = MgBinaryOperator.minBy(Integer::compareTo); - assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(10), Integer.valueOf(20))); - assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(10), Integer.valueOf(10))); - } - - /** - * Tests method {@link MgBinaryOperator#maxBy(com.github.mce.minigames.api.util.function.MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testMaxBy() throws MinigameException - { - final MgBinaryOperator<Integer> func = MgBinaryOperator.maxBy(Integer::compareTo); - assertEquals(Integer.valueOf(20), func.apply(Integer.valueOf(10), Integer.valueOf(20))); - assertEquals(Integer.valueOf(20), func.apply(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(Integer.valueOf(20), func.apply(Integer.valueOf(20), Integer.valueOf(20))); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java deleted file mode 100644 index 3a34abb4..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgComparatorTest.java +++ /dev/null @@ -1,665 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.test.SharedUtil; -import com.github.mce.minigames.api.util.function.MgComparator; -import com.google.common.util.concurrent.AtomicDouble; - -/** - * Tests case for {@link MgComparator} - * - * @author mepeisen - */ -public class MgComparatorTest -{ - - /** - * Tests method {@link MgComparator#reversed()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testReversed() throws MinigameException - { - final MgComparator<Integer> func = Integer::compareTo; - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.reversed().reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.reversed().reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - } - - /** - * Tests method {@link MgComparator#reverseOrder()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testReverseOrder() throws MinigameException - { - final MgComparator<Integer> func = MgComparator.reverseOrder(); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - } - - /** - * Tests method {@link MgComparator#naturalOrder()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNaturalOrder() throws MinigameException - { - final MgComparator<Integer> func = MgComparator.naturalOrder(); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - } - - /** - * Tests method {@link MgComparator#nullsFirst(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsFirst() throws MinigameException - { - final MgComparator<Integer> func = MgComparator.nullsFirst(MgComparator.naturalOrder()); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.compare(null, null)); - assertEquals(-1, func.compare(null, Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsLast(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsLast() throws MinigameException - { - final MgComparator<Integer> func = MgComparator.nullsLast(MgComparator.naturalOrder()); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.compare(null, null)); - assertEquals(1, func.compare(null, Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsFirst(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsFirst2() throws MinigameException - { - final MgComparator<Integer> func = MgComparator.nullsFirst(null); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.compare(null, null)); - assertEquals(-1, func.compare(null, Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsLast(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsLast2() throws MinigameException - { - final MgComparator<Integer> func = MgComparator.nullsLast(null); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.compare(null, null)); - assertEquals(1, func.compare(null, Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsFirst(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsFirst3() throws MinigameException - { - MgComparator<Integer> func = MgComparator.nullsFirst(MgComparator.naturalOrder()); - func = func.thenComparing(MgComparator.naturalOrder()); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.compare(null, null)); - assertEquals(-1, func.compare(null, Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsLast(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsLast3() throws MinigameException - { - MgComparator<Integer> func = MgComparator.nullsLast(MgComparator.naturalOrder()); - func = func.thenComparing(MgComparator.naturalOrder()); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(20), Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(20))); - - assertEquals(0, func.compare(null, null)); - assertEquals(1, func.compare(null, Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsFirst(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsFirst4() throws MinigameException - { - MgComparator<Integer> func = MgComparator.nullsFirst(null); - func = func.thenComparing(MgComparator.naturalOrder()); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.compare(null, null)); - assertEquals(-1, func.compare(null, Integer.valueOf(10))); - assertEquals(1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(-1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#nullsLast(MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNullsLast4() throws MinigameException - { - MgComparator<Integer> func = MgComparator.nullsLast(null); - func = func.thenComparing(MgComparator.naturalOrder()); - - assertEquals(0, func.compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.reversed().compare(Integer.valueOf(10), Integer.valueOf(10))); - - assertEquals(0, func.compare(null, null)); - assertEquals(1, func.compare(null, Integer.valueOf(10))); - assertEquals(-1, func.compare(Integer.valueOf(10), null)); - - assertEquals(0, func.reversed().compare(null, null)); - assertEquals(-1, func.reversed().compare(null, Integer.valueOf(10))); - assertEquals(1, func.reversed().compare(Integer.valueOf(10), null)); - } - - /** - * Tests method {@link MgComparator#comparingLong(com.github.mce.minigames.api.util.function.MgToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testComparingLong() throws MinigameException - { - final MgComparator<AtomicLong> func = MgComparator.comparingLong((d) -> d.get()); - - assertEquals(0, func.compare(new AtomicLong(10), new AtomicLong(10))); - assertEquals(1, func.compare(new AtomicLong(20), new AtomicLong(10))); - assertEquals(-1, func.compare(new AtomicLong(10), new AtomicLong(20))); - - assertEquals(0, func.reversed().compare(new AtomicLong(10), new AtomicLong(10))); - assertEquals(-1, func.reversed().compare(new AtomicLong(20), new AtomicLong(10))); - assertEquals(1, func.reversed().compare(new AtomicLong(10), new AtomicLong(20))); - } - - /** - * Tests method {@link MgComparator#comparingInt(com.github.mce.minigames.api.util.function.MgToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testComparingInt() throws MinigameException - { - final MgComparator<AtomicInteger> func = MgComparator.comparingInt((d) -> d.get()); - - assertEquals(0, func.compare(new AtomicInteger(10), new AtomicInteger(10))); - assertEquals(1, func.compare(new AtomicInteger(20), new AtomicInteger(10))); - assertEquals(-1, func.compare(new AtomicInteger(10), new AtomicInteger(20))); - - assertEquals(0, func.reversed().compare(new AtomicInteger(10), new AtomicInteger(10))); - assertEquals(-1, func.reversed().compare(new AtomicInteger(20), new AtomicInteger(10))); - assertEquals(1, func.reversed().compare(new AtomicInteger(10), new AtomicInteger(20))); - } - - /** - * Tests method {@link MgComparator#comparingDouble(com.github.mce.minigames.api.util.function.MgToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testComparingDouble() throws MinigameException - { - final MgComparator<AtomicDouble> func = MgComparator.comparingDouble((d) -> d.get()); - - assertEquals(0, func.compare(new AtomicDouble(10), new AtomicDouble(10))); - assertEquals(1, func.compare(new AtomicDouble(20), new AtomicDouble(10))); - assertEquals(-1, func.compare(new AtomicDouble(10), new AtomicDouble(20))); - - assertEquals(0, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(10))); - assertEquals(-1, func.reversed().compare(new AtomicDouble(20), new AtomicDouble(10))); - assertEquals(1, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(20))); - } - - /** - * Tests method {@link MgComparator#comparing(com.github.mce.minigames.api.util.function.MgFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testComparing1() throws MinigameException - { - final MgComparator<AtomicDouble> func = MgComparator.comparing((d) -> d.get()); - - assertEquals(0, func.compare(new AtomicDouble(10), new AtomicDouble(10))); - assertEquals(1, func.compare(new AtomicDouble(20), new AtomicDouble(10))); - assertEquals(-1, func.compare(new AtomicDouble(10), new AtomicDouble(20))); - - assertEquals(0, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(10))); - assertEquals(-1, func.reversed().compare(new AtomicDouble(20), new AtomicDouble(10))); - assertEquals(1, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(20))); - } - - /** - * Tests method {@link MgComparator#comparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testComparing2() throws MinigameException - { - final MgComparator<AtomicDouble> func = MgComparator.comparing((d) -> d.get(), MgComparator.naturalOrder()); - - assertEquals(0, func.compare(new AtomicDouble(10), new AtomicDouble(10))); - assertEquals(1, func.compare(new AtomicDouble(20), new AtomicDouble(10))); - assertEquals(-1, func.compare(new AtomicDouble(10), new AtomicDouble(20))); - - assertEquals(0, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(10))); - assertEquals(-1, func.reversed().compare(new AtomicDouble(20), new AtomicDouble(10))); - assertEquals(1, func.reversed().compare(new AtomicDouble(10), new AtomicDouble(20))); - } - - /** - * Tests method {@link MgComparator#thenComparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testThenComparing1() throws MinigameException - { - final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); - final MgComparator<FooInt> func2 = func.thenComparing((d) -> d.getB()); - - assertEquals(0, func2.compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(1, func2.compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(-1, func2.compare(new FooInt(10, 10), new FooInt(10, 20))); - - assertEquals(0, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(-1, func2.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(1, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); - } - - /** - * Tests method {@link MgComparator#thenComparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testThenComparing2() throws MinigameException - { - final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); - final MgComparator<FooInt> func2 = func.thenComparing((d) -> d.getB(), MgComparator.naturalOrder()); - - assertEquals(0, func2.compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(1, func2.compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(-1, func2.compare(new FooInt(10, 10), new FooInt(10, 20))); - - assertEquals(0, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(-1, func2.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(1, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); - } - - /** - * Tests method {@link MgComparator#thenComparing(com.github.mce.minigames.api.util.function.MgFunction, MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testThenComparing3() throws MinigameException - { - final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); - final MgComparator<FooInt> func2 = (d, e) -> Integer.compare(d.getB(), e.getB()); - final MgComparator<FooInt> func3 = func.thenComparing(func2); - - assertEquals(0, func3.compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(1, func3.compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(-1, func3.compare(new FooInt(10, 10), new FooInt(10, 20))); - assertEquals(1, func3.compare(new FooInt(20, 10), new FooInt(10, 10))); - assertEquals(-1, func3.compare(new FooInt(10, 10), new FooInt(20, 10))); - - assertEquals(0, func3.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(-1, func3.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(1, func3.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); - assertEquals(-1, func3.reversed().compare(new FooInt(20, 10), new FooInt(10, 10))); - assertEquals(1, func3.reversed().compare(new FooInt(10, 10), new FooInt(20, 10))); - } - - /** - * Tests method {@link MgComparator#thenComparingInt(com.github.mce.minigames.api.util.function.MgToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testThenComparingInt() throws MinigameException - { - final MgComparator<FooInt> func = MgComparator.comparing((d) -> d.getA()); - final MgComparator<FooInt> func2 = func.thenComparingInt((d) -> d.getB()); - - assertEquals(0, func2.compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(1, func2.compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(-1, func2.compare(new FooInt(10, 10), new FooInt(10, 20))); - - assertEquals(0, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 10))); - assertEquals(-1, func2.reversed().compare(new FooInt(10, 20), new FooInt(10, 10))); - assertEquals(1, func2.reversed().compare(new FooInt(10, 10), new FooInt(10, 20))); - } - - /** - * Tests method {@link MgComparator#thenComparingLong(com.github.mce.minigames.api.util.function.MgToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testThenComparingLong() throws MinigameException - { - final MgComparator<FooLong> func = MgComparator.comparing((d) -> d.getA()); - final MgComparator<FooLong> func2 = func.thenComparingLong((d) -> d.getB()); - - assertEquals(0, func2.compare(new FooLong(10, 10), new FooLong(10, 10))); - assertEquals(1, func2.compare(new FooLong(10, 20), new FooLong(10, 10))); - assertEquals(-1, func2.compare(new FooLong(10, 10), new FooLong(10, 20))); - - assertEquals(0, func2.reversed().compare(new FooLong(10, 10), new FooLong(10, 10))); - assertEquals(-1, func2.reversed().compare(new FooLong(10, 20), new FooLong(10, 10))); - assertEquals(1, func2.reversed().compare(new FooLong(10, 10), new FooLong(10, 20))); - } - - /** - * Tests method {@link MgComparator#thenComparingDouble(com.github.mce.minigames.api.util.function.MgToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testThenComparingDouble() throws MinigameException - { - final MgComparator<FooDouble> func = MgComparator.comparing((d) -> d.getA()); - final MgComparator<FooDouble> func2 = func.thenComparingDouble((d) -> d.getB()); - - assertEquals(0, func2.compare(new FooDouble(10, 10), new FooDouble(10, 10))); - assertEquals(1, func2.compare(new FooDouble(10, 20), new FooDouble(10, 10))); - assertEquals(-1, func2.compare(new FooDouble(10, 10), new FooDouble(10, 20))); - - assertEquals(0, func2.reversed().compare(new FooDouble(10, 10), new FooDouble(10, 10))); - assertEquals(-1, func2.reversed().compare(new FooDouble(10, 20), new FooDouble(10, 10))); - assertEquals(1, func2.reversed().compare(new FooDouble(10, 10), new FooDouble(10, 20))); - } - - /** - * Tests the enums - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(MgComparator.ReverseComparator.class); - SharedUtil.testEnumClass(MgComparator.NaturalOrderComparator.class); - } - - /** - * Helper class. - */ - private static final class FooInt - { - /** a value. */ - private final int a; - /** a value. */ - private final int b; - - /** - * Constructor - * @param a - * @param b - */ - public FooInt(int a, int b) - { - this.a = a; - this.b = b; - } - - /** - * @return the a - */ - public int getA() - { - return this.a; - } - - /** - * @return the b - */ - public int getB() - { - return this.b; - } - } - - /** - * Helper class. - */ - private static final class FooLong - { - /** a value. */ - private final long a; - /** a value. */ - private final long b; - - /** - * Constructor - * @param a - * @param b - */ - public FooLong(long a, long b) - { - this.a = a; - this.b = b; - } - - /** - * @return the a - */ - public long getA() - { - return this.a; - } - - /** - * @return the b - */ - public long getB() - { - return this.b; - } - } - - /** - * Helper class. - */ - private static final class FooDouble - { - /** a value. */ - private final double a; - /** a value. */ - private final double b; - - /** - * Constructor - * @param a - * @param b - */ - public FooDouble(double a, double b) - { - this.a = a; - this.b = b; - } - - /** - * @return the a - */ - public double getA() - { - return this.a; - } - - /** - * @return the b - */ - public double getB() - { - return this.b; - } - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java deleted file mode 100644 index 2aa7daa1..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgConsumerTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - aInt with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicInteger; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgConsumer; - -/** - * Tests case for {@link MgConsumer} - * - * @author mepeisen - */ -public class MgConsumerTest -{ - - /** - * Tests method {@link MgConsumer#andThen(MgConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final AtomicInteger result2 = new AtomicInteger(0); - final MgConsumer<Integer> func = (l) -> result1.set(l); - final MgConsumer<Integer> func2 = (l) -> result2.set(l + result1.get()); - - func.andThen(func2).accept(5); - - assertEquals(5, result1.get()); - assertEquals(10, result2.get()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java deleted file mode 100644 index 84a0a294..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleConsumerTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - aDouble with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgDoubleConsumer; -import com.google.common.util.concurrent.AtomicDouble; - -/** - * Tests case for {@link MgDoubleConsumer} - * - * @author mepeisen - */ -public class MgDoubleConsumerTest -{ - - /** - * Tests method {@link MgDoubleConsumer#andThen(MgDoubleConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicDouble result1 = new AtomicDouble(0); - final AtomicDouble result2 = new AtomicDouble(0); - final MgDoubleConsumer func = (l) -> result1.set(l); - final MgDoubleConsumer func2 = (l) -> result2.set(l + result1.get()); - - func.andThen(func2).accept(5); - - assertEquals(5, result1.get(), 0); - assertEquals(10, result2.get(), 0); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java deleted file mode 100644 index 3ee920fc..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoublePredicateTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgDoublePredicate; - -/** - * Tests case for {@link MgDoublePredicate} - * - * @author mepeisen - */ -public class MgDoublePredicateTest -{ - - /** - * Tests method {@link MgDoublePredicate#and(MgDoublePredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAnd() throws MinigameException - { - final MgDoublePredicate func = (l) -> l > 10; - final MgDoublePredicate func2 = (l) -> l > 20; - - assertFalse(func.and(func2).test(15)); - assertFalse(func2.and(func).test(15)); - assertTrue(func.and(func2).test(25)); - } - - /** - * Tests method {@link MgDoublePredicate#or(MgDoublePredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testOr() throws MinigameException - { - final MgDoublePredicate func = (l) -> l > 10; - final MgDoublePredicate func2 = (l) -> l < -10; - - assertTrue(func.or(func2).test(15)); - assertTrue(func.or(func2).test(-15)); - assertFalse(func.or(func2).test(5)); - assertFalse(func.or(func2).test(-5)); - } - - /** - * Tests method {@link MgDoublePredicate#negate()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNegate() throws MinigameException - { - final MgDoublePredicate func = (l) -> l > 10; - - assertFalse(func.negate().test(15)); - assertTrue(func.negate().test(5)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java deleted file mode 100644 index 96e46971..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgDoubleUnaryOperatorTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator; -import com.google.common.util.concurrent.AtomicDouble; - -/** - * Tests case for {@link MgDoubleUnaryOperator} - * - * @author mepeisen - */ -public class MgDoubleUnaryOperatorTest -{ - - /** - * Tests method {@link MgDoubleUnaryOperator#compose(MgDoubleUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testCompose() throws MinigameException - { - final AtomicDouble result1 = new AtomicDouble(0); - final MgDoubleUnaryOperator func = (l) -> l * 2; - final MgDoubleUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; - - assertEquals(24, func.compose(func2).applyAsDouble(4), 0); - assertEquals(4, result1.get(), 0); - } - - /** - * Tests method {@link MgDoubleUnaryOperator#andThen(MgDoubleUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicDouble result1 = new AtomicDouble(0); - final MgDoubleUnaryOperator func = (l) -> l * 2; - final MgDoubleUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; - - assertEquals(24, func.andThen(func2).applyAsDouble(4), 0); - assertEquals(8, result1.get(), 0); - } - - /** - * Tests method {@link MgDoubleUnaryOperator#identity()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIdentity() throws MinigameException - { - final MgDoubleUnaryOperator func = MgDoubleUnaryOperator.identity(); - assertEquals(10, func.applyAsDouble(10), 0); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java deleted file mode 100644 index 8c3896c1..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - aInt with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgFunction; - -/** - * Tests case for {@link MgFunction} - * - * @author mepeisen - */ -public class MgFunctionTest -{ - - /** - * Tests method {@link MgFunction#andThen(com.github.mce.minigames.api.util.function.MgFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final MgFunction<String, Integer> func = Integer::valueOf; - final MgFunction<String, String> func2 = (a1) -> a1.concat("0"); //$NON-NLS-1$ - - final MgFunction<String, Integer> func3 = func2.andThen(func); - - assertEquals(10, func3.apply("1").intValue()); //$NON-NLS-1$ - } - - /** - * Tests method {@link MgFunction#compose(MgFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testCompose() throws MinigameException - { - final MgFunction<String, Integer> func = Integer::valueOf; - final MgFunction<String, String> func2 = (a1) -> a1.concat("0"); //$NON-NLS-1$ - - final MgFunction<String, Integer> func3 = func.compose(func2); - - assertEquals(10, func3.apply("1").intValue()); //$NON-NLS-1$ - } - - /** - * Tests method {@link MgFunction#identity()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIdentity() throws MinigameException - { - final MgFunction<Integer, Integer> func = MgFunction.identity(); - assertEquals(10, func.apply(10).intValue()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java deleted file mode 100644 index 20ba962e..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgFunctionUtilsTest.java +++ /dev/null @@ -1,1652 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; - -import org.junit.Test; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgBiConsumer; -import com.github.mce.minigames.api.util.function.MgBiFunction; -import com.github.mce.minigames.api.util.function.MgBiPredicate; -import com.github.mce.minigames.api.util.function.MgBinaryOperator; -import com.github.mce.minigames.api.util.function.MgBooleanSupplier; -import com.github.mce.minigames.api.util.function.MgComparator; -import com.github.mce.minigames.api.util.function.MgConsumer; -import com.github.mce.minigames.api.util.function.MgDoubleBinaryOperator; -import com.github.mce.minigames.api.util.function.MgDoubleConsumer; -import com.github.mce.minigames.api.util.function.MgDoubleFunction; -import com.github.mce.minigames.api.util.function.MgDoublePredicate; -import com.github.mce.minigames.api.util.function.MgDoubleSupplier; -import com.github.mce.minigames.api.util.function.MgDoubleToIntFunction; -import com.github.mce.minigames.api.util.function.MgDoubleToLongFunction; -import com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator; -import com.github.mce.minigames.api.util.function.MgFunction; -import com.github.mce.minigames.api.util.function.MgFunctionUtils; -import com.github.mce.minigames.api.util.function.MgIntBinaryOperator; -import com.github.mce.minigames.api.util.function.MgIntConsumer; -import com.github.mce.minigames.api.util.function.MgIntFunction; -import com.github.mce.minigames.api.util.function.MgIntPredicate; -import com.github.mce.minigames.api.util.function.MgIntSupplier; -import com.github.mce.minigames.api.util.function.MgIntToDoubleFunction; -import com.github.mce.minigames.api.util.function.MgIntToLongFunction; -import com.github.mce.minigames.api.util.function.MgIntUnaryOperator; -import com.github.mce.minigames.api.util.function.MgLongBinaryOperator; -import com.github.mce.minigames.api.util.function.MgLongConsumer; -import com.github.mce.minigames.api.util.function.MgLongFunction; -import com.github.mce.minigames.api.util.function.MgLongPredicate; -import com.github.mce.minigames.api.util.function.MgLongSupplier; -import com.github.mce.minigames.api.util.function.MgLongToDoubleFunction; -import com.github.mce.minigames.api.util.function.MgLongToIntFunction; -import com.github.mce.minigames.api.util.function.MgLongUnaryOperator; -import com.github.mce.minigames.api.util.function.MgObjDoubleConsumer; -import com.github.mce.minigames.api.util.function.MgObjIntConsumer; -import com.github.mce.minigames.api.util.function.MgObjLongConsumer; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.MgSupplier; -import com.github.mce.minigames.api.util.function.MgToDoubleBiFunction; -import com.github.mce.minigames.api.util.function.MgToDoubleFunction; -import com.github.mce.minigames.api.util.function.MgToIntBiFunction; -import com.github.mce.minigames.api.util.function.MgToIntFunction; -import com.github.mce.minigames.api.util.function.MgToLongBiFunction; -import com.github.mce.minigames.api.util.function.MgToLongFunction; -import com.github.mce.minigames.api.util.function.MgUnaryOperator; -import com.google.common.util.concurrent.AtomicDouble; - -/** - * Tests case for {@link MgFunctionUtils} - * - * @author mepeisen - */ -public class MgFunctionUtilsTest -{ - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testBiConsumerOk() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final AtomicInteger result2 = new AtomicInteger(0); - final MgBiConsumer<Integer, Integer> func = (i, j) -> { result1.set(i); result2.set(j + 10); }; - - MgFunctionUtils.wrap(func).accept(5, 7); - - assertEquals(5, result1.get()); - assertEquals(17, result2.get()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testBiConsumerFailed() throws MinigameException - { - final MgBiConsumer<Integer, Integer> func = (i, j) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(5, 7); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testBiFunctionOk() throws MinigameException - { - final MgBiFunction<String, String, String> func = (a1, a2) -> a1.concat(a2); - - assertEquals("10", MgFunctionUtils.wrap(func).apply("1", "0")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testBiFunctionFailed() throws MinigameException - { - final MgBiFunction<String, String, String> func = (a1, a2) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply("1", "0"); //$NON-NLS-1$ //$NON-NLS-2$ - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testBinaryOperatorOk() throws MinigameException - { - final MgBinaryOperator<Integer> func = MgBinaryOperator.minBy(Integer::compareTo); - - assertEquals(Integer.valueOf(10), MgFunctionUtils.wrap(func).apply(Integer.valueOf(10), Integer.valueOf(20))); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testBinaryOperatorFailed() throws MinigameException - { - final MgBinaryOperator<Integer> func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply(Integer.valueOf(10), Integer.valueOf(20)); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testBiPredicateOk() throws MinigameException - { - final MgBiPredicate<Integer, Integer> func = (i, j) -> i > 10 && j > 10; - - assertTrue(MgFunctionUtils.wrap(func).test(15, 15)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBiPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testBiPredicateFailed() throws MinigameException - { - final MgBiPredicate<Integer, Integer> func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).test(15, 15); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBooleanSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testBooleanSupplierOk() throws MinigameException - { - final MgBooleanSupplier func = () -> true; - - assertTrue(MgFunctionUtils.wrap(func).getAsBoolean()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgBooleanSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testBooleanSupplierFailed() throws MinigameException - { - final MgBooleanSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).getAsBoolean(); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testComparatorOk() throws MinigameException - { - final MgComparator<Integer> func = Integer::compareTo; - - assertEquals(0, MgFunctionUtils.wrap(func).compare(Integer.valueOf(10), Integer.valueOf(10))); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgComparator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testComparatorFailed() throws MinigameException - { - final MgComparator<Integer> func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).compare(Integer.valueOf(10), Integer.valueOf(10)); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testConsumerOk() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final MgConsumer<Integer> func = (l) -> result1.set(l); - - MgFunctionUtils.wrap(func).accept(10); - assertEquals(10, result1.get()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testConsumerFailed() throws MinigameException - { - final MgConsumer<Integer> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleConsumerOk() throws MinigameException - { - final AtomicDouble result1 = new AtomicDouble(0); - final MgDoubleConsumer func = (l) -> result1.set(l); - - MgFunctionUtils.wrap(func).accept(10); - assertEquals(10, result1.get(), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleConsumerFailed() throws MinigameException - { - final MgDoubleConsumer func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntConsumerOk() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final MgIntConsumer func = (l) -> result1.set(l); - - MgFunctionUtils.wrap(func).accept(10); - assertEquals(10, result1.get()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntConsumerFailed() throws MinigameException - { - final MgIntConsumer func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongConsumerOk() throws MinigameException - { - final AtomicLong result1 = new AtomicLong(0); - final MgLongConsumer func = (l) -> result1.set(l); - - MgFunctionUtils.wrap(func).accept(10); - assertEquals(10, result1.get()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongConsumerFailed() throws MinigameException - { - final MgLongConsumer func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleFunctionOk() throws MinigameException - { - final MgDoubleFunction<Long> func = (d) -> Math.round(d); - - assertEquals(10, MgFunctionUtils.wrap(func).apply(9.5d).longValue()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleFunctionFailed() throws MinigameException - { - final MgDoubleFunction<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleSupplierOk() throws MinigameException - { - final MgDoubleSupplier func = () -> 9.5d; - - assertEquals(9.5d, MgFunctionUtils.wrap(func).getAsDouble(), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleSupplierFailed() throws MinigameException - { - final MgDoubleSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).getAsDouble(); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoublePredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoublePredicateOk() throws MinigameException - { - final MgDoublePredicate func = (d) -> d == 9.5d; - - assertTrue(MgFunctionUtils.wrap(func).test(9.5)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoublePredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoublePredicateFailed() throws MinigameException - { - final MgDoublePredicate func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).test(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleToIntFunctionOk() throws MinigameException - { - final MgDoubleToIntFunction func = (d) -> (int) Math.round(d); - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsInt(9.5d)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleToIntFunctionFailed() throws MinigameException - { - final MgDoubleToIntFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsInt(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleToLongFunctionOk() throws MinigameException - { - final MgDoubleToLongFunction func = (d) -> Math.round(d); - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(9.5d)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleToLongFunctionFailed() throws MinigameException - { - final MgDoubleToLongFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsLong(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleUnaryOperatorOk() throws MinigameException - { - final MgDoubleUnaryOperator func = (d) -> Math.round(d); - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsDouble(9.5d), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleUnaryOperatorFailed() throws MinigameException - { - final MgDoubleUnaryOperator func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsDouble(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testDoubleBinaryOperatorOk() throws MinigameException - { - final MgDoubleBinaryOperator func = (d, e) -> d + e; - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testDoubleBinaryOperatorFailed() throws MinigameException - { - final MgDoubleBinaryOperator func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testFunctionOk() throws MinigameException - { - final MgFunction<Double, Double> func = (d) -> (double) Math.round(d); - - assertEquals(10, MgFunctionUtils.wrap(func).apply(9.5d), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testFunctionFailed() throws MinigameException - { - final MgFunction<Double, Double> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntFunctionOk() throws MinigameException - { - final MgIntFunction<Long> func = (d) -> (long) d; - - assertEquals(10, MgFunctionUtils.wrap(func).apply(10).longValue()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntFunctionFailed() throws MinigameException - { - final MgIntFunction<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntSupplierOk() throws MinigameException - { - final MgIntSupplier func = () -> 10; - - assertEquals(10, MgFunctionUtils.wrap(func).getAsInt()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntSupplierFailed() throws MinigameException - { - final MgIntSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).getAsInt(); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntPredicateOk() throws MinigameException - { - final MgIntPredicate func = (d) -> d == 10; - - assertTrue(MgFunctionUtils.wrap(func).test(10)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntPredicateFailed() throws MinigameException - { - final MgIntPredicate func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).test(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntToDoubleFunctionOk() throws MinigameException - { - final MgIntToDoubleFunction func = (d) -> d + 0.5d; - - assertEquals(9.5d, MgFunctionUtils.wrap(func).applyAsDouble(9), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntToDoubleFunctionFailed() throws MinigameException - { - final MgIntToDoubleFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsDouble(9); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntToLongFunctionOk() throws MinigameException - { - final MgIntToLongFunction func = (d) -> d; - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(10)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntToLongFunctionFailed() throws MinigameException - { - final MgIntToLongFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsLong(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntUnaryOperatorOk() throws MinigameException - { - final MgIntUnaryOperator func = (d) -> d + 1; - - assertEquals(11, MgFunctionUtils.wrap(func).applyAsInt(10)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntUnaryOperatorFailed() throws MinigameException - { - final MgIntUnaryOperator func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsInt(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIntBinaryOperatorOk() throws MinigameException - { - final MgIntBinaryOperator func = (d, e) -> d + e; - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsInt(9, 1)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testIntBinaryOperatorFailed() throws MinigameException - { - final MgIntBinaryOperator func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsInt(9, 1); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongFunctionOk() throws MinigameException - { - final MgLongFunction<Long> func = (d) -> (long) d; - - assertEquals(10, MgFunctionUtils.wrap(func).apply(10).longValue()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongFunctionFailed() throws MinigameException - { - final MgLongFunction<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongSupplierOk() throws MinigameException - { - final MgLongSupplier func = () -> 10; - - assertEquals(10, MgFunctionUtils.wrap(func).getAsLong()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongSupplierFailed() throws MinigameException - { - final MgLongSupplier func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).getAsLong(); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongPredicateOk() throws MinigameException - { - final MgLongPredicate func = (d) -> d == 10; - - assertTrue(MgFunctionUtils.wrap(func).test(10)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongPredicateFailed() throws MinigameException - { - final MgLongPredicate func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).test(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongToDoubleFunctionOk() throws MinigameException - { - final MgLongToDoubleFunction func = (d) -> d + 0.5d; - - assertEquals(9.5d, MgFunctionUtils.wrap(func).applyAsDouble(9), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongToDoubleFunctionFailed() throws MinigameException - { - final MgLongToDoubleFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsDouble(9); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongToLongFunctionOk() throws MinigameException - { - final MgLongToIntFunction func = (d) -> (int) d; - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsInt(10)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongToLongFunctionFailed() throws MinigameException - { - final MgLongToIntFunction func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsInt(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongUnaryOperatorOk() throws MinigameException - { - final MgLongUnaryOperator func = (d) -> d + 1; - - assertEquals(11, MgFunctionUtils.wrap(func).applyAsLong(10)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongUnaryOperatorFailed() throws MinigameException - { - final MgLongUnaryOperator func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsLong(10); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testLongBinaryOperatorOk() throws MinigameException - { - final MgLongBinaryOperator func = (d, e) -> d + e; - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(9, 1)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongBinaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testLongBinaryOperatorFailed() throws MinigameException - { - final MgLongBinaryOperator func = (a, b) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsLong(9, 1); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testPredicateOk() throws MinigameException - { - final MgPredicate<Double> func = (d) -> d == 9.5d; - - assertTrue(MgFunctionUtils.wrap(func).test(9.5)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testPredicateFailed() throws MinigameException - { - final MgPredicate<Double> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).test(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testSupplierOk() throws MinigameException - { - final MgSupplier<Double> func = () -> 9.5d; - - assertEquals(9.5d, MgFunctionUtils.wrap(func).get(), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testSupplierFailed() throws MinigameException - { - final MgSupplier<Double> func = () -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).get(); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToDoubleFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testToDoubleFunctionOk() throws MinigameException - { - final MgToDoubleFunction<Double> func = (d) -> d; - - assertEquals(9.5d, MgFunctionUtils.wrap(func).applyAsDouble(9.5d), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testToDoubleFunctionFailed() throws MinigameException - { - final MgToDoubleFunction<Double> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsDouble(9.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToIntFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testToIntFunctionOk() throws MinigameException - { - final MgToIntFunction<Integer> func = (d) -> d; - - assertEquals(9, MgFunctionUtils.wrap(func).applyAsInt(9)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testToIntFunctionFailed() throws MinigameException - { - final MgToIntFunction<Integer> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsInt(9); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToLongFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testToLongFunctionOk() throws MinigameException - { - final MgToLongFunction<Long> func = (d) -> d; - - assertEquals(9, MgFunctionUtils.wrap(func).applyAsLong(9l)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testToLongFunctionFailed() throws MinigameException - { - final MgToLongFunction<Long> func = (d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsLong(9l); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToDoubleBiFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testToDoubleBiFunctionOk() throws MinigameException - { - final MgToDoubleBiFunction<Double, Double> func = (d, e) -> d + e; - - assertEquals(10d, MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testToDoubleBiFunctionFailed() throws MinigameException - { - final MgToDoubleBiFunction<Double, Double> func = (d, e) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsDouble(9.5d, 0.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToIntBiFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testToIntBiFunctionOk() throws MinigameException - { - final MgToIntBiFunction<Integer, Integer> func = (d, e) -> d + e; - - assertEquals(9, MgFunctionUtils.wrap(func).applyAsInt(8, 1)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testToIntBiFunctionFailed() throws MinigameException - { - final MgToIntBiFunction<Integer, Integer> func = (d, e) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsInt(9, 1); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgToLongBiFunction)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testToLongBiFunctionOk() throws MinigameException - { - final MgToLongBiFunction<Long, Long> func = (d, e) -> d + e; - - assertEquals(10, MgFunctionUtils.wrap(func).applyAsLong(9l, 1l)); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testToLongBiFunctionFailed() throws MinigameException - { - final MgToLongBiFunction<Long, Long> func = (d,e) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).applyAsLong(9l, 1l); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgObjDoubleConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testObjDoubleConsumerOk() throws MinigameException - { - final MgObjDoubleConsumer<AtomicDouble> func = (a, d) -> a.set(d + a.get()); - final AtomicDouble val = new AtomicDouble(9d); - MgFunctionUtils.wrap(func).accept(val, 0.5d); - - assertEquals(9.5d, val.get(), 0); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgDoubleSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testObjDoubleConsumerFailed() throws MinigameException - { - final MgObjDoubleConsumer<AtomicDouble> func = (a, d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(new AtomicDouble(), 0.5d); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgObjIntConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testObjIntConsumerOk() throws MinigameException - { - final MgObjIntConsumer<AtomicInteger> func = (a, d) -> a.set(d + a.get()); - final AtomicInteger val = new AtomicInteger(9); - MgFunctionUtils.wrap(func).accept(val, 1); - - assertEquals(10, val.get()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgIntSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testObjIntConsumerFailed() throws MinigameException - { - final MgObjIntConsumer<AtomicInteger> func = (a, d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(new AtomicInteger(), 1); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgObjLongConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testObjLongConsumerOk() throws MinigameException - { - final MgObjLongConsumer<AtomicLong> func = (a, d) -> a.set(d + a.get()); - final AtomicLong val = new AtomicLong(9); - MgFunctionUtils.wrap(func).accept(val, 1); - - assertEquals(10, val.get()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testObjLongConsumerFailed() throws MinigameException - { - final MgObjLongConsumer<AtomicLong> func = (a, d) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).accept(new AtomicLong(), 1); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testUnaryOperatorOk() throws MinigameException - { - final MgUnaryOperator<Long> func = (a) -> a + 1; - - assertEquals(10, MgFunctionUtils.wrap(func).apply(9l).longValue()); - } - - /** - * Tests method {@link MgFunctionUtils#wrap(com.github.mce.minigames.api.util.function.MgLongSupplier)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test(expected = MinigameException.class) - public void testUnaryOperatorFailed() throws MinigameException - { - final MgUnaryOperator<Long> func = (a) -> { throw new MinigameException(CommonErrors.CannotStart); }; - - try - { - MgFunctionUtils.wrap(func).apply(9l); - } - catch (MgFunctionUtils.WrappedException ex) - { - throw ex.unwrap(); - } - } - - /** - * Constructor test for code coverage - */ - @SuppressWarnings("unused") - @Test - public void testConstructor() - { - new MgFunctionUtils(); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java deleted file mode 100644 index 8f34cb47..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntConsumerTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - aInt with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicInteger; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgIntConsumer; - -/** - * Tests case for {@link MgIntConsumer} - * - * @author mepeisen - */ -public class MgIntConsumerTest -{ - - /** - * Tests method {@link MgIntConsumer#andThen(MgIntConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final AtomicInteger result2 = new AtomicInteger(0); - final MgIntConsumer func = (l) -> result1.set(l); - final MgIntConsumer func2 = (l) -> result2.set(l + result1.get()); - - func.andThen(func2).accept(5); - - assertEquals(5, result1.get()); - assertEquals(10, result2.get()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java deleted file mode 100644 index 62c67eb2..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntPredicateTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgIntPredicate; - -/** - * Tests case for {@link MgIntPredicate} - * - * @author mepeisen - */ -public class MgIntPredicateTest -{ - - /** - * Tests method {@link MgIntPredicate#and(MgIntPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAnd() throws MinigameException - { - final MgIntPredicate func = (l) -> l > 10; - final MgIntPredicate func2 = (l) -> l > 20; - - assertFalse(func.and(func2).test(15)); - assertFalse(func2.and(func).test(15)); - assertTrue(func.and(func2).test(25)); - } - - /** - * Tests method {@link MgIntPredicate#or(MgIntPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testOr() throws MinigameException - { - final MgIntPredicate func = (l) -> l > 10; - final MgIntPredicate func2 = (l) -> l < -10; - - assertTrue(func.or(func2).test(15)); - assertTrue(func.or(func2).test(-15)); - assertFalse(func.or(func2).test(5)); - assertFalse(func.or(func2).test(-5)); - } - - /** - * Tests method {@link MgIntPredicate#negate()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNegate() throws MinigameException - { - final MgIntPredicate func = (l) -> l > 10; - - assertFalse(func.negate().test(15)); - assertTrue(func.negate().test(5)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java deleted file mode 100644 index 86431520..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgIntUnaryOperatorTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicInteger; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgIntUnaryOperator; - -/** - * Tests case for {@link MgIntUnaryOperator} - * - * @author mepeisen - */ -public class MgIntUnaryOperatorTest -{ - - /** - * Tests method {@link MgIntUnaryOperator#compose(MgIntUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testCompose() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final MgIntUnaryOperator func = (l) -> l * 2; - final MgIntUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; - - assertEquals(24, func.compose(func2).applyAsInt(4)); - assertEquals(4, result1.get()); - } - - /** - * Tests method {@link MgIntUnaryOperator#andThen(MgIntUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicInteger result1 = new AtomicInteger(0); - final MgIntUnaryOperator func = (l) -> l * 2; - final MgIntUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; - - assertEquals(24, func.andThen(func2).applyAsInt(4)); - assertEquals(8, result1.get()); - } - - /** - * Tests method {@link MgIntUnaryOperator#identity()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIdentity() throws MinigameException - { - final MgIntUnaryOperator func = MgIntUnaryOperator.identity(); - assertEquals(10, func.applyAsInt(10)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java deleted file mode 100644 index c7d7433d..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongConsumerTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicLong; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgLongConsumer; - -/** - * Tests case for {@link MgLongConsumer} - * - * @author mepeisen - */ -public class MgLongConsumerTest -{ - - /** - * Tests method {@link MgLongConsumer#andThen(MgLongConsumer)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicLong result1 = new AtomicLong(0); - final AtomicLong result2 = new AtomicLong(0); - final MgLongConsumer func = (l) -> result1.set(l); - final MgLongConsumer func2 = (l) -> result2.set(l + result1.get()); - - func.andThen(func2).accept(5); - - assertEquals(5, result1.get()); - assertEquals(10, result2.get()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java deleted file mode 100644 index 9cc9f5ae..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongPredicateTest.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgLongPredicate; - -/** - * Tests case for {@link MgLongPredicate} - * - * @author mepeisen - */ -public class MgLongPredicateTest -{ - - /** - * Tests method {@link MgLongPredicate#and(MgLongPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAnd() throws MinigameException - { - final MgLongPredicate func = (l) -> l > 10; - final MgLongPredicate func2 = (l) -> l > 20; - - assertFalse(func.and(func2).test(15)); - assertFalse(func2.and(func).test(15)); - assertTrue(func.and(func2).test(25)); - } - - /** - * Tests method {@link MgLongPredicate#or(MgLongPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testOr() throws MinigameException - { - final MgLongPredicate func = (l) -> l > 10; - final MgLongPredicate func2 = (l) -> l < -10; - - assertTrue(func.or(func2).test(15)); - assertTrue(func.or(func2).test(-15)); - assertFalse(func.or(func2).test(5)); - assertFalse(func.or(func2).test(-5)); - } - - /** - * Tests method {@link MgLongPredicate#negate()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNegate() throws MinigameException - { - final MgLongPredicate func = (l) -> l > 10; - - assertFalse(func.negate().test(15)); - assertTrue(func.negate().test(5)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java deleted file mode 100644 index ef54e962..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgLongUnaryOperatorTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import java.util.concurrent.atomic.AtomicLong; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgLongUnaryOperator; - -/** - * Tests case for {@link MgLongUnaryOperator} - * - * @author mepeisen - */ -public class MgLongUnaryOperatorTest -{ - - /** - * Tests method {@link MgLongUnaryOperator#compose(MgLongUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testCompose() throws MinigameException - { - final AtomicLong result1 = new AtomicLong(0); - final MgLongUnaryOperator func = (l) -> l * 2; - final MgLongUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; - - assertEquals(24, func.compose(func2).applyAsLong(4)); - assertEquals(4, result1.get()); - } - - /** - * Tests method {@link MgLongUnaryOperator#andThen(MgLongUnaryOperator)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAndThen() throws MinigameException - { - final AtomicLong result1 = new AtomicLong(0); - final MgLongUnaryOperator func = (l) -> l * 2; - final MgLongUnaryOperator func2 = (l) -> { result1.set(l); return l * 3; }; - - assertEquals(24, func.andThen(func2).applyAsLong(4)); - assertEquals(8, result1.get()); - } - - /** - * Tests method {@link MgLongUnaryOperator#identity()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIdentity() throws MinigameException - { - final MgLongUnaryOperator func = MgLongUnaryOperator.identity(); - assertEquals(10, func.applyAsLong(10)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java deleted file mode 100644 index 98a34979..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgPredicateTest.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgPredicate; - -/** - * Tests case for {@link MgPredicate} - * - * @author mepeisen - */ -public class MgPredicateTest -{ - - /** - * Tests method {@link MgPredicate#and(MgPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testAnd() throws MinigameException - { - final MgPredicate<Integer> func = (l) -> l > 10; - final MgPredicate<Integer> func2 = (l) -> l > 20; - - assertFalse(func.and(func2).test(15)); - assertFalse(func2.and(func).test(15)); - assertTrue(func.and(func2).test(25)); - } - - /** - * Tests method {@link MgPredicate#or(MgPredicate)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testOr() throws MinigameException - { - final MgPredicate<Integer> func = (l) -> l > 10; - final MgPredicate<Integer> func2 = (l) -> l < -10; - - assertTrue(func.or(func2).test(15)); - assertTrue(func.or(func2).test(-15)); - assertFalse(func.or(func2).test(5)); - assertFalse(func.or(func2).test(-5)); - } - - /** - * Tests method {@link MgPredicate#negate()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testNegate() throws MinigameException - { - final MgPredicate<Integer> func = (l) -> l > 10; - - assertFalse(func.negate().test(15)); - assertTrue(func.negate().test(5)); - } - - /** - * Tests method {@link MgPredicate#isEqual(Object)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIsEqual() throws MinigameException - { - final MgPredicate<Integer> func = MgPredicate.isEqual(10); - - assertFalse(func.test(15)); - assertTrue(func.test(10)); - } - - /** - * Tests method {@link MgPredicate#isEqual(Object)} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIsEqualNull() throws MinigameException - { - final MgPredicate<Integer> func = MgPredicate.isEqual(null); - final MgPredicate<Integer> func2 = MgPredicate.isEqual(10); - - assertTrue(func.test(null)); - assertFalse(func.test(10)); - assertFalse(func2.test(null)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java deleted file mode 100644 index 8489a82f..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/util/function/MgUnaryOperatorTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.util.function; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.util.function.MgUnaryOperator; - -/** - * Tests case for {@link MgUnaryOperator} - * - * @author mepeisen - */ -public class MgUnaryOperatorTest -{ - - /** - * Tests method {@link MgUnaryOperator#identity()} - * - * @throws MinigameException - * thrown on errors. - */ - @Test - public void testIdentity() throws MinigameException - { - final MgUnaryOperator<Integer> func = MgUnaryOperator.identity(); - assertEquals(Integer.valueOf(10), func.apply(Integer.valueOf(10))); - } - -} diff --git a/LIBv2/nms/api/.classpath b/LIBv2/nms/api/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/api/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/api/.project b/LIBv2/nms/api/.project deleted file mode 100644 index 2139b665..00000000 --- a/LIBv2/nms/api/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nmsapi</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/api/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/api/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/api/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/api/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/api/MinigameArenaCreateEvent.java b/LIBv2/nms/api/MinigameArenaCreateEvent.java deleted file mode 100644 index 8911ee5a..00000000 --- a/LIBv2/nms/api/MinigameArenaCreateEvent.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.ArenaCreateEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * @author mepeisen - */ -public interface MinigameArenaCreateEvent extends MinigameEvent<ArenaCreateEvent> -{ - - // TODO default stubbings - -} diff --git a/LIBv2/nms/api/pom.xml b/LIBv2/nms/api/pom.xml deleted file mode 100644 index b6bfc160..00000000 --- a/LIBv2/nms/api/pom.xml +++ /dev/null @@ -1,120 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS-API</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java deleted file mode 100644 index e7907429..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractEventSystem.java +++ /dev/null @@ -1,381 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.bukkit.event.Event; -import org.bukkit.event.EventHandler; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.ArenaCreateEvent; -import com.github.mce.minigames.api.event.ArenaCreatedEvent; -import com.github.mce.minigames.api.event.ArenaDeleteEvent; -import com.github.mce.minigames.api.event.ArenaDeletedEvent; -import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; -import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; -import com.github.mce.minigames.api.event.ArenaStateEvent; -import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; -import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; -import com.github.mce.minigames.api.event.PlayerGuiClickEvent; -import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * Abstract base class for event systems. - * - * @author mepeisen - */ -public abstract class AbstractEventSystem implements EventSystemInterface -{ - - /** - * The common event handlers per event class. - */ - private final Map<Class<? extends Event>, MinigameEventHandler<?, ?>> eventHandlers = new HashMap<>(); - - /** common event listeners. */ - protected final List<MgEventListener> listeners = new ArrayList<>(); - - /** - * Constructor. - */ - public AbstractEventSystem() - { - this.registerHandler(ArenaCreateEvent.class, (evt) -> new MgArenaCreateEvent(evt)); - this.registerHandler(ArenaCreatedEvent.class, (evt) -> new MgArenaCreatedEvent(evt)); - this.registerHandler(ArenaDeleteEvent.class, (evt) -> new MgArenaDeleteEvent(evt)); - this.registerHandler(ArenaDeletedEvent.class, (evt) -> new MgArenaDeletedEvent(evt)); - this.registerHandler(ArenaMaintenanceEvent.class, (evt) -> new MgArenaMaintenanceEvent(evt)); - this.registerHandler(ArenaPlayerJoinedEvent.class, (evt) -> new MgArenaPlayerJoinedEvent(evt)); - this.registerHandler(ArenaPlayerJoinEvent.class, (evt) -> new MgArenaPlayerJoinEvent(evt)); - this.registerHandler(ArenaPlayerJoinedQueueEvent.class, (evt) -> new MgArenaPlayerJoinedQueueEvent(evt)); - this.registerHandler(ArenaPlayerLeavesQueueEvent.class, (evt) -> new MgArenaPlayerLeavesQueueEvent(evt)); - this.registerHandler(ArenaStateEvent.class, (evt) -> new MgArenaStateEvent(evt)); - this.registerHandler(PlayerGuiClickEvent.class, (evt) -> new MgPlayerGuiClickEvent(evt)); - this.registerHandler(PlayerCloseGuiEvent.class, (evt) -> new MgPlayerCloseGuiEvent(evt)); - this.registerHandler(PlayerDisplayGuiPageEvent.class, (evt) -> new MgPlayerDisplayGuiPageEvent(evt)); - this.registerHandler(PlayerOpenGuiEvent.class, (evt) -> new MgPlayerOpenGuiEvent(evt)); - } - - @Override - public void addEventListener(MgEventListener listener) - { - this.listeners.add(listener); - } - - /** - * Returns the minigame event handler for given class. - * - * @param clazz - * event class. - * @return event handler. - */ - @SuppressWarnings("unchecked") - protected <T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> MinigameEventHandler<T, MgEvt> getHandler(Class<T> clazz) - { - return (MinigameEventHandler<T, MgEvt>) this.eventHandlers.get(clazz); - } - - /** - * Registers the minigame event handler for given class. - * - * @param clazz - * event class. - * @param factory - * the factory to create minigame events. - */ - protected <T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> void registerHandler(Class<T> clazz, MinigameEventFactory<T, MgEvt> factory) - { - this.eventHandlers.put(clazz, new MinigameEventHandler<>(clazz, factory)); - } - - /** - * Event handler for ArenaCreatedEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaCreated(ArenaCreatedEvent evt) - { - this.getHandler(ArenaCreatedEvent.class).handle(evt); - } - - /** - * Event handler for ArenaCreateEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaCreate(ArenaCreateEvent evt) - { - this.getHandler(ArenaCreateEvent.class).handle(evt); - } - - /** - * Event handler for ArenaDeletedEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaDeleted(ArenaDeletedEvent evt) - { - this.getHandler(ArenaDeletedEvent.class).handle(evt); - } - - /** - * Event handler for ArenaDeleteEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaDelete(ArenaDeleteEvent evt) - { - this.getHandler(ArenaDeleteEvent.class).handle(evt); - } - - /** - * Event handler for ArenaMaintenanceEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaMaintenance(ArenaMaintenanceEvent evt) - { - this.getHandler(ArenaMaintenanceEvent.class).handle(evt); - } - - /** - * Event handler for ArenaPlayerJoinedEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaPlayerJoined(ArenaPlayerJoinedEvent evt) - { - this.getHandler(ArenaPlayerJoinedEvent.class).handle(evt); - } - - /** - * Event handler for ArenaPlayerJoinEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaPlayerJoin(ArenaPlayerJoinEvent evt) - { - this.getHandler(ArenaPlayerJoinEvent.class).handle(evt); - } - - /** - * Event handler for ArenaPlayerJoinedQueueEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaPlayerJoinedQueue(ArenaPlayerJoinedQueueEvent evt) - { - this.getHandler(ArenaPlayerJoinedQueueEvent.class).handle(evt); - } - - /** - * Event handler for ArenaPlayerLeavesQueueEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaPlayerLeavesQueue(ArenaPlayerLeavesQueueEvent evt) - { - this.getHandler(ArenaPlayerLeavesQueueEvent.class).handle(evt); - } - - /** - * Event handler for ArenaStateEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onArenaState(ArenaStateEvent evt) - { - this.getHandler(ArenaStateEvent.class).handle(evt); - } - - /** - * Event handler for PlayerCloseGuiEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onPlayerCloseGui(PlayerCloseGuiEvent evt) - { - this.getHandler(PlayerCloseGuiEvent.class).handle(evt); - } - - /** - * Event handler for PlayerDisplayGuiPageEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onPlayerDisplayGuiPage(PlayerDisplayGuiPageEvent evt) - { - this.getHandler(PlayerDisplayGuiPageEvent.class).handle(evt); - } - - /** - * Event handler for PlayerGuiClickEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onPlayerGuiClick(PlayerGuiClickEvent evt) - { - this.getHandler(PlayerGuiClickEvent.class).handle(evt); - } - - /** - * Event handler for PlayerOpenGuiEvent event. - * - * @param evt - * the event to be passed. - */ - @EventHandler - public void onPlayerOpenGui(PlayerOpenGuiEvent evt) - { - this.getHandler(PlayerOpenGuiEvent.class).handle(evt); - } - - @SuppressWarnings("unchecked") - @Override - public <Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> MgEvt createEvent(Evt bukkitEvent) - { - return ((MinigameEventHandler<Evt, MgEvt>) this.getHandler(bukkitEvent.getClass())).createMgEvent(bukkitEvent); - } - - /** - * The minigame event handler. - * - * @author mepeisen - * @param <T> - * event clazz for handling the events. - * @param <MgEvt> - * event clazz for handling the events. - */ - protected final class MinigameEventHandler<T extends Event, MgEvt extends MinigameEvent<T, MgEvt>> - { - - /** the event factory. */ - private MinigameEventFactory<T, MgEvt> factory; - /** event class. */ - private Class<T> cls; - - /** - * Constructor. - * @param clazz event class - * @param factory mg event factory - */ - public MinigameEventHandler(Class<T> clazz, MinigameEventFactory<T, MgEvt> factory) - { - this.cls = clazz; - this.factory = factory; - } - - /** - * Handles minigame event. - * @param evt - */ - public void handle(T evt) - { - final MgEvt mgevt = this.createMgEvent(evt); - for (MgEventListener listener : AbstractEventSystem.this.listeners) - { - listener.handle(this.cls, mgevt); - } - - final ArenaPlayerInterface player = mgevt.getPlayer(); - if (player instanceof MgEventListener) - { - ((MgEventListener) player).handle(this.cls, mgevt); - } - - final ArenaInterface arena = mgevt.getArena(); - if (arena instanceof MgEventListener) - { - ((MgEventListener) arena).handle(this.cls, mgevt); - } - - final MinigameInterface minigame = mgevt.getMinigame(); - if (minigame instanceof MgEventListener) - { - ((MgEventListener) minigame).handle(this.cls, mgevt); - } - } - - /** - * Creates minigame event. - * @param evt bukkit event - * @return minigame event. - */ - public MgEvt createMgEvent(T evt) - { - return this.factory.create(evt); - } - - } - - /** - * Interface for creating minigame event classes from given bukkit event. - * - * @param <Evt> - * @param <MgEvt> - */ - @FunctionalInterface - public interface MinigameEventFactory<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> - { - - /** - * Creates the minigame event. - * - * @param event - * bukkit event. - * @return the minigame event object. - */ - MgEvt create(Evt event); - - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java deleted file mode 100644 index 73694ae1..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/AbstractMinigameEvent.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import org.bukkit.Location; -import org.bukkit.event.Event; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.FalseStub; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.TrueStub; - -/** - * Base Implementation for minigame events. - * - * @author mepeisen - * @param <Evt> event class - * @param <MgEvt> minigame event class - */ -public abstract class AbstractMinigameEvent<Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> implements MinigameEvent<Evt, MgEvt> -{ - - /** the bukkit event object. */ - private Evt event; - - /** the player for this event. */ - private ArenaPlayerInterface player; - - /** the arena interface. */ - private ArenaInterface arena; - - /** - * Abstract minigame event. - * @param event the event. - * @param player - */ - public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player) - { - this.event = event; - this.player = player; - this.arena = player == null ? null : this.player.getArena(); - } - - /** - * Abstract minigame event. - * @param event the event. - * @param arena - */ - public AbstractMinigameEvent(Evt event, ArenaInterface arena) - { - this.event = event; - this.arena = arena; - } - - /** - * Abstract minigame event. - * @param event the event. - * @param player - * @param arena - */ - public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, ArenaInterface arena) - { - this.event = event; - this.player = player; - this.arena = arena; - } - - /** - * Abstract minigame event. - * @param event the event. - * @param player - * @param location - */ - public AbstractMinigameEvent(Evt event, ArenaPlayerInterface player, Location location) - { - this.event = event; - this.player = player; - this.arena = this.getLib().getArenaFromLocation(location); - } - - @Override - public Evt getBukkitEvent() - { - return this.event; - } - - @Override - public MglibInterface getLib() - { - return MglibInterface.INSTANCE.get(); - } - - @Override - public MinigameInterface getMinigame() - { - return this.arena == null ? null : this.arena.getMinigame(); - } - - @Override - public ArenaInterface getArena() - { - return this.arena == null ? this.player.getArena() : this.arena; - } - - @Override - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - @SuppressWarnings("unchecked") - @Override - public MgOutgoingStubbing<MgEvt> when(MgPredicate<MgEvt> test) throws MinigameException - { - if (test.test((MgEvt) this)) - { - return new TrueStub<>((MgEvt) this); - } - return new FalseStub<>((MgEvt) this); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java deleted file mode 100644 index 0e0726a6..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/EventSystemInterface.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import org.bukkit.event.Event; -import org.bukkit.event.Listener; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Generic event system. - * - * @author mepeisen - */ -public interface EventSystemInterface extends Listener -{ - - /** - * Creates a minigame event from given bukkit event. - * - * @param bukkitEvent - * @return minigame event. - */ - <Evt extends Event, MgEvt extends MinigameEvent<Evt, MgEvt>> MgEvt createEvent(Evt bukkitEvent); - - /** - * Adds a new event listener. - * @param listener - */ - void addEventListener(MgEventListener listener); - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java deleted file mode 100644 index 43c8d121..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/InventoryManagerInterface.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; - -/** - * An nms inventory manager. - * - * @author mepeisen - */ -public interface InventoryManagerInterface -{ - - /** - * Opens an inventory. - * - * @param player the player that is opening the inventory - * @param name the name of the inventory - * @param items the items within the inventory - * @return inventory reference. - */ - Inventory openInventory(Player player, String name, ItemStack[] items); - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java deleted file mode 100644 index 343ae5e2..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreateEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaCreateEvent; -import com.github.mce.minigames.api.event.ArenaCreateEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaCreateEvent extends AbstractMinigameEvent<ArenaCreateEvent, MinigameArenaCreateEvent> implements MinigameArenaCreateEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaCreateEvent(ArenaCreateEvent event) - { - super(event, event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java deleted file mode 100644 index cff07950..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaCreatedEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaCreatedEvent; -import com.github.mce.minigames.api.event.ArenaCreatedEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaCreatedEvent extends AbstractMinigameEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> implements MinigameArenaCreatedEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaCreatedEvent(ArenaCreatedEvent event) - { - super(event, event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java deleted file mode 100644 index 4b3b1c35..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeleteEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaDeleteEvent; -import com.github.mce.minigames.api.event.ArenaDeleteEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaDeleteEvent extends AbstractMinigameEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> implements MinigameArenaDeleteEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaDeleteEvent(ArenaDeleteEvent event) - { - super(event, event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java deleted file mode 100644 index 18915929..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaDeletedEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaDeletedEvent; -import com.github.mce.minigames.api.event.ArenaDeletedEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaDeletedEvent extends AbstractMinigameEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> implements MinigameArenaDeletedEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaDeletedEvent(ArenaDeletedEvent event) - { - super(event, event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java deleted file mode 100644 index 7b4c167b..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaMaintenanceEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaMaintenanceEvent; -import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaMaintenanceEvent extends AbstractMinigameEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> implements MinigameArenaMaintenanceEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaMaintenanceEvent(ArenaMaintenanceEvent event) - { - super(event, event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java deleted file mode 100644 index 0686dda6..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerJoinEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaPlayerJoinEvent extends AbstractMinigameEvent<ArenaPlayerJoinEvent, MinigameArenaPlayerJoinEvent> implements MinigameArenaPlayerJoinEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaPlayerJoinEvent(ArenaPlayerJoinEvent event) - { - super(event, event.getPlayer(), event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java deleted file mode 100644 index c432d1d5..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerJoinedEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaPlayerJoinedEvent extends AbstractMinigameEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> implements MinigameArenaPlayerJoinedEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaPlayerJoinedEvent(ArenaPlayerJoinedEvent event) - { - super(event, event.getPlayer(), event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java deleted file mode 100644 index e7023671..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerJoinedQueueEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerJoinedQueueEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaPlayerJoinedQueueEvent extends AbstractMinigameEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> implements MinigameArenaPlayerJoinedQueueEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaPlayerJoinedQueueEvent(ArenaPlayerJoinedQueueEvent event) - { - super(event, event.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java deleted file mode 100644 index b9efe67f..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaPlayerLeavesQueueEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaPlayerLeavesQueueEvent; -import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaPlayerLeavesQueueEvent extends AbstractMinigameEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> implements MinigameArenaPlayerLeavesQueueEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaPlayerLeavesQueueEvent(ArenaPlayerLeavesQueueEvent event) - { - super(event, event.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java deleted file mode 100644 index ed1ee44f..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgArenaStateEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigameArenaStateEvent; -import com.github.mce.minigames.api.event.ArenaStateEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgArenaStateEvent extends AbstractMinigameEvent<ArenaStateEvent, MinigameArenaStateEvent> implements MinigameArenaStateEvent -{ - - /** - * Constructor - * @param event - */ - public MgArenaStateEvent(ArenaStateEvent event) - { - super(event, event.getArena()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java deleted file mode 100644 index 9ba79d0e..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgEventListener.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; - -/** - * Helper interface for minigame event listeners. - * - * @author mepeisen - */ -public interface MgEventListener -{ - - /** - * Handles given event. - * @param eventClass - * @param event - */ - void handle(Class<?> eventClass, MinigameEvent<?, ?> event); - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java deleted file mode 100644 index d15f3764..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerCloseGuiEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerCloseGuiEvent; -import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerCloseGuiEvent extends AbstractMinigameEvent<PlayerCloseGuiEvent, MinigamePlayerCloseGuiEvent> implements MinigamePlayerCloseGuiEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerCloseGuiEvent(PlayerCloseGuiEvent event) - { - super(event, event.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java deleted file mode 100644 index 8537dc1e..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerDisplayGuiPageEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerDisplayGuiPageEvent; -import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerDisplayGuiPageEvent extends AbstractMinigameEvent<PlayerDisplayGuiPageEvent, MinigamePlayerDisplayGuiPageEvent> implements MinigamePlayerDisplayGuiPageEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerDisplayGuiPageEvent(PlayerDisplayGuiPageEvent event) - { - super(event, event.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java deleted file mode 100644 index accdad14..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerGuiClickEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerGuiClickEvent; -import com.github.mce.minigames.api.event.PlayerGuiClickEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerGuiClickEvent extends AbstractMinigameEvent<PlayerGuiClickEvent, MinigamePlayerGuiClickEvent> implements MinigamePlayerGuiClickEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerGuiClickEvent(PlayerGuiClickEvent event) - { - super(event, event.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java deleted file mode 100644 index d8c5c8ad..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/MgPlayerOpenGuiEvent.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -import com.github.mce.minigames.api.arena.rules.mevents.MinigamePlayerOpenGuiEvent; -import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerOpenGuiEvent extends AbstractMinigameEvent<PlayerOpenGuiEvent, MinigamePlayerOpenGuiEvent> implements MinigamePlayerOpenGuiEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerOpenGuiEvent(PlayerOpenGuiEvent event) - { - super(event, event.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java b/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java deleted file mode 100644 index 5caec921..00000000 --- a/LIBv2/nms/api/src/main/java/com/github/mce/minigames/impl/nms/NmsFactory.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms; - -/** - * Nms Factory for generating nms interfaces. - * - * @author mepeisen - */ -public interface NmsFactory -{ - - /** - * Creates an nms implementation of the given class. - * - * @param clazz - * @return nms impl. - */ - <T> T create(Class<T> clazz); - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java deleted file mode 100644 index 934fbe5f..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractEventSystemTest.java +++ /dev/null @@ -1,521 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.withSettings; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.BiConsumer; -import java.util.function.Function; - -import org.bukkit.event.Event; -import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaState; -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.event.ArenaCreateEvent; -import com.github.mce.minigames.api.event.ArenaCreatedEvent; -import com.github.mce.minigames.api.event.ArenaDeleteEvent; -import com.github.mce.minigames.api.event.ArenaDeletedEvent; -import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; -import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; -import com.github.mce.minigames.api.event.ArenaStateEvent; -import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; -import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; -import com.github.mce.minigames.api.event.PlayerGuiClickEvent; -import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiItem; -import com.github.mce.minigames.api.gui.ClickGuiPageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractEventSystem; -import com.github.mce.minigames.impl.nms.MgEventListener; - -/** - * Test for {@link AbstractEventSystem} - * - * @author mepeisen - * - */ -public class AbstractEventSystemTest -{ - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaStateEvent() - { - this.testMgListenerCalled(ArenaStateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaStateEvent(evt.arena, ArenaState.Disabled, ArenaState.InGame), (sys, evt) -> sys.onArenaState(evt)); - this.testArenaListenerCalled(ArenaStateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaStateEvent(evt.arena, ArenaState.Disabled, ArenaState.InGame), (sys, evt) -> sys.onArenaState(evt)); - this.testMinigameListenerCalled(ArenaStateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaStateEvent(evt.arena, ArenaState.Disabled, ArenaState.InGame), (sys, evt) -> sys.onArenaState(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaCreateEvent() - { - this.testMgListenerCalled(ArenaCreateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreateEvent(evt.arena), (sys, evt) -> sys.onArenaCreate(evt)); - this.testArenaListenerCalled(ArenaCreateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreateEvent(evt.arena), (sys, evt) -> sys.onArenaCreate(evt)); - this.testMinigameListenerCalled(ArenaCreateEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreateEvent(evt.arena), (sys, evt) -> sys.onArenaCreate(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaCreatedEvent() - { - this.testMgListenerCalled(ArenaCreatedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreatedEvent(evt.arena), (sys, evt) -> sys.onArenaCreated(evt)); - this.testArenaListenerCalled(ArenaCreatedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreatedEvent(evt.arena), (sys, evt) -> sys.onArenaCreated(evt)); - this.testMinigameListenerCalled(ArenaCreatedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaCreatedEvent(evt.arena), (sys, evt) -> sys.onArenaCreated(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaDeleteEvent() - { - this.testMgListenerCalled(ArenaDeleteEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeleteEvent(evt.arena), (sys, evt) -> sys.onArenaDelete(evt)); - this.testArenaListenerCalled(ArenaDeleteEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeleteEvent(evt.arena), (sys, evt) -> sys.onArenaDelete(evt)); - this.testMinigameListenerCalled(ArenaDeleteEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeleteEvent(evt.arena), (sys, evt) -> sys.onArenaDelete(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaDeletedEvent() - { - this.testMgListenerCalled(ArenaDeletedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeletedEvent(evt.arena), (sys, evt) -> sys.onArenaDeleted(evt)); - this.testArenaListenerCalled(ArenaDeletedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeletedEvent(evt.arena), (sys, evt) -> sys.onArenaDeleted(evt)); - this.testMinigameListenerCalled(ArenaDeletedEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaDeletedEvent(evt.arena), (sys, evt) -> sys.onArenaDeleted(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaMaintenanceEvent() - { - this.testMgListenerCalled(ArenaMaintenanceEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaMaintenanceEvent(evt.arena), (sys, evt) -> sys.onArenaMaintenance(evt)); - this.testArenaListenerCalled(ArenaMaintenanceEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaMaintenanceEvent(evt.arena), (sys, evt) -> sys.onArenaMaintenance(evt)); - this.testMinigameListenerCalled(ArenaMaintenanceEvent.class, (evt) -> evt.arena, (evt) -> null, (evt) -> evt.minigame, (evt) -> new ArenaMaintenanceEvent(evt.arena), (sys, evt) -> sys.onArenaMaintenance(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaPlayerJoinedEvent() - { - this.testMgListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); - this.testArenaListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); - this.testPlayerListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); - this.testMinigameListenerCalled(ArenaPlayerJoinedEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinedEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoined(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaPlayerJoinEvent() - { - this.testMgListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); - this.testArenaListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); - this.testPlayerListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); - this.testMinigameListenerCalled(ArenaPlayerJoinEvent.class, (evt) -> evt.arena, (evt) -> evt.player, (evt) -> evt.minigame, (evt) -> new ArenaPlayerJoinEvent(evt.arena, evt.player), (sys, evt) -> sys.onArenaPlayerJoin(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaPlayerJoinedQueueEvent() - { - this.testMgListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); - this.testPArenaListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); - this.testPlayerListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); - this.testPMinigameListenerCalled(ArenaPlayerJoinedQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerJoinedQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerJoinedQueue(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testArenaPlayerLeavesQueueEvent() - { - this.testMgListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); - this.testPArenaListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); - this.testPlayerListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); - this.testPMinigameListenerCalled(ArenaPlayerLeavesQueueEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new ArenaPlayerLeavesQueueEvent(mock(WaitQueue.class), evt.player), (sys, evt) -> sys.onArenaPlayerLeavesQueue(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testPlayerCloseGuiEvent() - { - this.testMgListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); - this.testPArenaListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); - this.testPlayerListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); - this.testPMinigameListenerCalled(PlayerCloseGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerCloseGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerCloseGui(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testPlayerOpenGuiEvent() - { - this.testMgListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); - this.testPArenaListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); - this.testPlayerListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); - this.testPMinigameListenerCalled(PlayerOpenGuiEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerOpenGuiEvent(mock(ClickGuiInterface.class), evt.player), (sys, evt) -> sys.onPlayerOpenGui(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testPlayerDisplayGuiPageEvent() - { - this.testMgListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); - this.testPArenaListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); - this.testPlayerListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); - this.testPMinigameListenerCalled(PlayerDisplayGuiPageEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerDisplayGuiPageEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiPageInterface.class)), (sys, evt) -> sys.onPlayerDisplayGuiPage(evt)); - } - - /** - * Tests that listeners are called. - */ - @Test - public void testPlayerGuiClickEvent() - { - this.testMgListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); - this.testPArenaListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); - this.testPlayerListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); - this.testPMinigameListenerCalled(PlayerGuiClickEvent.class, (evt) -> evt.parena, (evt) -> evt.player, (evt) -> evt.pminigame, (evt) -> new PlayerGuiClickEvent(mock(ClickGuiInterface.class), evt.player, mock(ClickGuiItem.class)), (sys, evt) -> sys.onPlayerGuiClick(evt)); - } - - /** - * Tests that mg listener is called. - * @param clazz - * @param arena - * @param player - * @param minigame - * @param eventFactory - * @param eventCaller - */ - private <Evt extends Event> void testMgListenerCalled( - final Class<Evt> clazz, - final Function<EvtHelper, ArenaInterface> arena, - final Function<EvtHelper, ArenaPlayerInterface> player, - final Function<EvtHelper, MinigameInterface> minigame, - final Function<EvtHelper, Evt> eventFactory, - final BiConsumer<EventSystem, Evt> eventCaller) - { - final EvtHelper helper = new EvtHelper(); - - final EventSystem sys = new EventSystem(); - final AtomicBoolean result = new AtomicBoolean(false); - sys.addEventListener(new MgEventListener() { - - @Override - public void handle(Class<?> eventClass, MinigameEvent<?, ?> event) - { - assertEquals(clazz, eventClass); - assertEquals(arena.apply(helper), event.getArena()); - assertEquals(player.apply(helper), event.getPlayer()); - assertEquals(minigame.apply(helper), event.getMinigame()); - result.set(true); - } - }); - - eventCaller.accept(sys, eventFactory.apply(helper)); - - assertTrue(result.get()); - } - - /** - * Tests that player listener is called. - * @param clazz - * @param arena - * @param player - * @param minigame - * @param eventFactory - * @param eventCaller - */ - private <Evt extends Event> void testPlayerListenerCalled( - final Class<Evt> clazz, - final Function<EvtHelper, ArenaInterface> arena, - final Function<EvtHelper, ArenaPlayerInterface> player, - final Function<EvtHelper, MinigameInterface> minigame, - final Function<EvtHelper, Evt> eventFactory, - final BiConsumer<EventSystem, Evt> eventCaller) - { - final EvtHelper helper = new EvtHelper(); - - final EventSystem sys = new EventSystem(); - final AtomicBoolean result = new AtomicBoolean(false); - doAnswer(new Answer<Void>(){ - @Override - public Void answer(InvocationOnMock invocation) throws Throwable - { - final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); - final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); - assertEquals(clazz, eventClass); - assertEquals(arena.apply(helper), event.getArena()); - assertEquals(player.apply(helper), event.getPlayer()); - assertEquals(minigame.apply(helper), event.getMinigame()); - result.set(true); - return null; - }}).when((MgEventListener) helper.player).handle(anyObject(), anyObject()); - - eventCaller.accept(sys, eventFactory.apply(helper)); - - assertTrue(result.get()); - } - - /** - * Tests that minigame listener is called. - * @param clazz - * @param arena - * @param player - * @param minigame - * @param eventFactory - * @param eventCaller - */ - private <Evt extends Event> void testMinigameListenerCalled( - final Class<Evt> clazz, - final Function<EvtHelper, ArenaInterface> arena, - final Function<EvtHelper, ArenaPlayerInterface> player, - final Function<EvtHelper, MinigameInterface> minigame, - final Function<EvtHelper, Evt> eventFactory, - final BiConsumer<EventSystem, Evt> eventCaller) - { - final EvtHelper helper = new EvtHelper(); - - final EventSystem sys = new EventSystem(); - final AtomicBoolean result = new AtomicBoolean(false); - doAnswer(new Answer<Void>(){ - @Override - public Void answer(InvocationOnMock invocation) throws Throwable - { - final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); - final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); - assertEquals(clazz, eventClass); - assertEquals(arena.apply(helper), event.getArena()); - assertEquals(player.apply(helper), event.getPlayer()); - assertEquals(minigame.apply(helper), event.getMinigame()); - result.set(true); - return null; - }}).when((MgEventListener) helper.minigame).handle(anyObject(), anyObject()); - - eventCaller.accept(sys, eventFactory.apply(helper)); - - assertTrue(result.get()); - } - - /** - * Tests that minigame listener is called. - * @param clazz - * @param arena - * @param player - * @param minigame - * @param eventFactory - * @param eventCaller - */ - private <Evt extends Event> void testPMinigameListenerCalled( - final Class<Evt> clazz, - final Function<EvtHelper, ArenaInterface> arena, - final Function<EvtHelper, ArenaPlayerInterface> player, - final Function<EvtHelper, MinigameInterface> minigame, - final Function<EvtHelper, Evt> eventFactory, - final BiConsumer<EventSystem, Evt> eventCaller) - { - final EvtHelper helper = new EvtHelper(); - - final EventSystem sys = new EventSystem(); - final AtomicBoolean result = new AtomicBoolean(false); - doAnswer(new Answer<Void>(){ - @Override - public Void answer(InvocationOnMock invocation) throws Throwable - { - final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); - final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); - assertEquals(clazz, eventClass); - assertEquals(arena.apply(helper), event.getArena()); - assertEquals(player.apply(helper), event.getPlayer()); - assertEquals(minigame.apply(helper), event.getMinigame()); - result.set(true); - return null; - }}).when((MgEventListener) helper.pminigame).handle(anyObject(), anyObject()); - - eventCaller.accept(sys, eventFactory.apply(helper)); - - assertTrue(result.get()); - } - - /** - * Tests that arena listener is called. - * @param clazz - * @param arena - * @param player - * @param minigame - * @param eventFactory - * @param eventCaller - */ - private <Evt extends Event> void testArenaListenerCalled( - final Class<Evt> clazz, - final Function<EvtHelper, ArenaInterface> arena, - final Function<EvtHelper, ArenaPlayerInterface> player, - final Function<EvtHelper, MinigameInterface> minigame, - final Function<EvtHelper, Evt> eventFactory, - final BiConsumer<EventSystem, Evt> eventCaller) - { - final EvtHelper helper = new EvtHelper(); - - final EventSystem sys = new EventSystem(); - final AtomicBoolean result = new AtomicBoolean(false); - doAnswer(new Answer<Void>(){ - @Override - public Void answer(InvocationOnMock invocation) throws Throwable - { - final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); - final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); - assertEquals(clazz, eventClass); - assertEquals(arena.apply(helper), event.getArena()); - assertEquals(player.apply(helper), event.getPlayer()); - assertEquals(minigame.apply(helper), event.getMinigame()); - result.set(true); - return null; - }}).when((MgEventListener) helper.arena).handle(anyObject(), anyObject()); - - eventCaller.accept(sys, eventFactory.apply(helper)); - - assertTrue(result.get()); - } - - /** - * Tests that arena listener is called. - * @param clazz - * @param arena - * @param player - * @param minigame - * @param eventFactory - * @param eventCaller - */ - private <Evt extends Event> void testPArenaListenerCalled( - final Class<Evt> clazz, - final Function<EvtHelper, ArenaInterface> arena, - final Function<EvtHelper, ArenaPlayerInterface> player, - final Function<EvtHelper, MinigameInterface> minigame, - final Function<EvtHelper, Evt> eventFactory, - final BiConsumer<EventSystem, Evt> eventCaller) - { - final EvtHelper helper = new EvtHelper(); - - final EventSystem sys = new EventSystem(); - final AtomicBoolean result = new AtomicBoolean(false); - doAnswer(new Answer<Void>(){ - @Override - public Void answer(InvocationOnMock invocation) throws Throwable - { - final Class<?> eventClass = invocation.getArgumentAt(0, Class.class); - final MinigameEvent<?, ?> event = invocation.getArgumentAt(1, MinigameEvent.class); - assertEquals(clazz, eventClass); - assertEquals(arena.apply(helper), event.getArena()); - assertEquals(player.apply(helper), event.getPlayer()); - assertEquals(minigame.apply(helper), event.getMinigame()); - result.set(true); - return null; - }}).when((MgEventListener) helper.parena).handle(anyObject(), anyObject()); - - eventCaller.accept(sys, eventFactory.apply(helper)); - - assertTrue(result.get()); - } - - /** - * Helper class - */ - private static final class EvtHelper - { - - /** data. */ - public final ArenaInterface arena; - /** data. */ - public final MinigameInterface minigame; - /** data. */ - public final ArenaInterface parena; - /** data. */ - public final MinigameInterface pminigame; - /** data. */ - public final ArenaPlayerInterface player; - - /** - * Constructor - */ - public EvtHelper() - { - this.arena = mock(ArenaInterface.class, withSettings().extraInterfaces(MgEventListener.class)); - this.minigame = mock(MinigameInterface.class, withSettings().extraInterfaces(MgEventListener.class)); - when(this.arena.getMinigame()).thenReturn(this.minigame); - this.parena = mock(ArenaInterface.class, withSettings().extraInterfaces(MgEventListener.class)); - this.pminigame = mock(MinigameInterface.class, withSettings().extraInterfaces(MgEventListener.class)); - when(this.parena.getMinigame()).thenReturn(this.pminigame); - this.player = mock(ArenaPlayerInterface.class, withSettings().extraInterfaces(MgEventListener.class)); - when(this.player.getArena()).thenReturn(this.parena); - } - - } - - /** - * helper class - */ - private static final class EventSystem extends AbstractEventSystem - { - - /** - * Constructor - */ - public EventSystem() - { - // empty - } - - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java deleted file mode 100644 index 89227046..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/AbstractMinigameEventTest.java +++ /dev/null @@ -1,444 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.concurrent.atomic.AtomicBoolean; - -import org.bukkit.Location; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Test for {@link AbstractMinigameEvent} - * - * @author mepeisen - * - */ -public class AbstractMinigameEventTest -{ - - /** - * Tests constructors - */ - @Test - public void testConstructors() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaInterface parena = mock(ArenaInterface.class); - final MinigameInterface pminigame = mock(MinigameInterface.class); - when(parena.getMinigame()).thenReturn(pminigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - when(player.getArena()).thenReturn(parena); - - final ArenaEvent evt1 = new ArenaEvent(arena); - final MgArenaEvent mgevt1 = new MgArenaEvent(evt1); - assertEquals(evt1, mgevt1.getBukkitEvent()); - assertEquals(arena, mgevt1.getArena()); - assertEquals(minigame, mgevt1.getMinigame()); - assertNull(mgevt1.getPlayer()); - - final ArenaPlayerEvent evt2 = new ArenaPlayerEvent(player, arena); - final MgArenaPlayerEvent mgevt2 = new MgArenaPlayerEvent(evt2); - assertEquals(evt2, mgevt2.getBukkitEvent()); - assertEquals(arena, mgevt2.getArena()); - assertEquals(minigame, mgevt2.getMinigame()); - assertEquals(player, mgevt2.getPlayer()); - - final PlayerEvent evt3 = new PlayerEvent(player); - final MgPlayerEvent mgevt3 = new MgPlayerEvent(evt3); - assertEquals(evt3, mgevt3.getBukkitEvent()); - assertEquals(parena, mgevt3.getArena()); - assertEquals(pminigame, mgevt3.getMinigame()); - assertEquals(player, mgevt3.getPlayer()); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - final PlayerLocationEvent evt4 = new PlayerLocationEvent(player, loc); - final MgPlayerLocationEvent mgevt4 = new MgPlayerLocationEvent(evt4); - assertEquals(evt4, mgevt4.getBukkitEvent()); - assertEquals(arena, mgevt4.getArena()); - assertEquals(minigame, mgevt4.getMinigame()); - assertEquals(player, mgevt4.getPlayer()); - } - - /** - * Tests when - * @throws MinigameException - */ - @Test - public void testWhen1() throws MinigameException - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final ArenaEvent evt1 = new ArenaEvent(arena); - final MgArenaEvent mgevt1 = new MgArenaEvent(evt1); - - final AtomicBoolean result = new AtomicBoolean(true); - mgevt1.when((e) -> true).then((e) -> result.set(false))._elseThrow(CommonErrors.CannotStart); - assertFalse(result.get()); - } - - /** - * Tests when - * @throws MinigameException - */ - @Test - public void testWhen2() throws MinigameException - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final ArenaEvent evt1 = new ArenaEvent(arena); - final MgArenaEvent mgevt1 = new MgArenaEvent(evt1); - - final AtomicBoolean result = new AtomicBoolean(true); - mgevt1.when((e) -> false).thenThrow(CommonErrors.CannotStart)._else((e) -> result.set(false)); - assertFalse(result.get()); - } - - /** - * helper class - */ - private static final class ArenaEvent extends Event - { - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we created. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param arena - * the created arena. - */ - public ArenaEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - } - - /** - * helper class - */ - private static final class PlayerEvent extends Event - { - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we created. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param player - * the created arena. - */ - public PlayerEvent(ArenaPlayerInterface player) - { - this.player = player; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - } - - /** - * helper class - */ - private static final class PlayerLocationEvent extends Event - { - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we created. */ - private final ArenaPlayerInterface player; - - /** the location. */ - private final Location location; - - /** - * Constructor. - * - * @param player - * the created arena. - * @param location - * the created arena. - */ - public PlayerLocationEvent(ArenaPlayerInterface player, Location location) - { - this.player = player; - this.location = location; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public Location getLocation() - { - return this.location; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - } - - /** - * helper class - */ - private static final class ArenaPlayerEvent extends Event - { - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we created. */ - private final ArenaPlayerInterface player; - - /** the arena we created. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param player - * the created arena. - * @param arena - * the created arena. - */ - public ArenaPlayerEvent(ArenaPlayerInterface player, ArenaInterface arena) - { - this.player = player; - this.arena = arena; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - } - - /** - * helper interface - */ - private interface MinigameArenaEvent extends MinigameEvent<ArenaEvent, MinigameArenaEvent> - { - // empty - } - - /** - * helper interface - */ - private interface MinigamePlayerEvent extends MinigameEvent<PlayerEvent, MinigamePlayerEvent> - { - // empty - } - - /** - * helper interface - */ - private interface MinigamePlayerLocationEvent extends MinigameEvent<PlayerLocationEvent, MinigamePlayerLocationEvent> - { - // empty - } - - /** - * helper interface - */ - private interface MinigameArenaPlayerEvent extends MinigameEvent<ArenaPlayerEvent, MinigameArenaPlayerEvent> - { - // empty - } - - /** - * helper class. - */ - private static final class MgArenaEvent extends AbstractMinigameEvent<ArenaEvent, MinigameArenaEvent> implements MinigameArenaEvent - { - - /** - * @param event - */ - public MgArenaEvent(ArenaEvent event) - { - super(event, event.getArena()); - } - - } - - /** - * helper class. - */ - private static final class MgArenaPlayerEvent extends AbstractMinigameEvent<ArenaPlayerEvent, MinigameArenaPlayerEvent> implements MinigameArenaPlayerEvent - { - - /** - * @param event - */ - public MgArenaPlayerEvent(ArenaPlayerEvent event) - { - super(event, event.getPlayer(), event.getArena()); - } - - } - - /** - * helper class. - */ - private static final class MgPlayerEvent extends AbstractMinigameEvent<PlayerEvent, MinigamePlayerEvent> implements MinigamePlayerEvent - { - - /** - * @param event - */ - public MgPlayerEvent(PlayerEvent event) - { - super(event, event.getPlayer()); - } - - } - - /** - * helper class. - */ - private static final class MgPlayerLocationEvent extends AbstractMinigameEvent<PlayerLocationEvent, MinigamePlayerLocationEvent> implements MinigamePlayerLocationEvent - { - - /** - * @param event - */ - public MgPlayerLocationEvent(PlayerLocationEvent event) - { - super(event, event.getPlayer(), event.getLocation()); - } - - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java deleted file mode 100644 index d5684a5b..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreateEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaCreateEvent; -import com.github.mce.minigames.impl.nms.MgArenaCreateEvent; - -/** - * Test for {@link MgArenaCreateEvent} - * - * @author mepeisen - * - */ -public class MgArenaCreateEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaCreateEvent evt = new ArenaCreateEvent(arena); - final MgArenaCreateEvent mgevt = new MgArenaCreateEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java deleted file mode 100644 index f35a261f..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaCreatedEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaCreatedEvent; -import com.github.mce.minigames.impl.nms.MgArenaCreatedEvent; - -/** - * Test for {@link MgArenaCreatedEvent} - * - * @author mepeisen - * - */ -public class MgArenaCreatedEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaCreatedEvent evt = new ArenaCreatedEvent(arena); - final MgArenaCreatedEvent mgevt = new MgArenaCreatedEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java deleted file mode 100644 index a5db0753..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeleteEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaDeleteEvent; -import com.github.mce.minigames.impl.nms.MgArenaDeleteEvent; - -/** - * Test for {@link MgArenaDeleteEvent} - * - * @author mepeisen - * - */ -public class MgArenaDeleteEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaDeleteEvent evt = new ArenaDeleteEvent(arena); - final MgArenaDeleteEvent mgevt = new MgArenaDeleteEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java deleted file mode 100644 index dedac078..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaDeletedEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaDeletedEvent; -import com.github.mce.minigames.impl.nms.MgArenaDeletedEvent; - -/** - * Test for {@link MgArenaDeletedEvent} - * - * @author mepeisen - * - */ -public class MgArenaDeletedEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaDeletedEvent evt = new ArenaDeletedEvent(arena); - final MgArenaDeletedEvent mgevt = new MgArenaDeletedEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java deleted file mode 100644 index a1f2bc51..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaMaintenanceEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; -import com.github.mce.minigames.impl.nms.MgArenaMaintenanceEvent; - -/** - * Test for {@link MgArenaMaintenanceEvent} - * - * @author mepeisen - * - */ -public class MgArenaMaintenanceEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaMaintenanceEvent evt = new ArenaMaintenanceEvent(arena); - final MgArenaMaintenanceEvent mgevt = new MgArenaMaintenanceEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java deleted file mode 100644 index 5630fa29..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinEventTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgArenaPlayerJoinEvent; - -/** - * Test for {@link MgArenaPlayerJoinEvent} - * - * @author mepeisen - * - */ -public class MgArenaPlayerJoinEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ArenaPlayerJoinEvent evt = new ArenaPlayerJoinEvent(arena, player); - final MgArenaPlayerJoinEvent mgevt = new MgArenaPlayerJoinEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java deleted file mode 100644 index 0e013cb1..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedEventTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgArenaPlayerJoinedEvent; - -/** - * Test for {@link MgArenaPlayerJoinedEvent} - * - * @author mepeisen - * - */ -public class MgArenaPlayerJoinedEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ArenaPlayerJoinedEvent evt = new ArenaPlayerJoinedEvent(arena, player); - final MgArenaPlayerJoinedEvent mgevt = new MgArenaPlayerJoinedEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java deleted file mode 100644 index 17193d2c..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerJoinedQueueEventTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgArenaPlayerJoinedQueueEvent; - -/** - * Test for {@link MgArenaPlayerJoinedQueueEvent} - * - * @author mepeisen - * - */ -public class MgArenaPlayerJoinedQueueEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final WaitQueue queue = mock(WaitQueue.class); - final ArenaPlayerJoinedQueueEvent evt = new ArenaPlayerJoinedQueueEvent(queue, player); - final MgArenaPlayerJoinedQueueEvent mgevt = new MgArenaPlayerJoinedQueueEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertNull(mgevt.getArena()); - assertNull(mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java deleted file mode 100644 index df26ff7a..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaPlayerLeavesQueueEventTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgArenaPlayerLeavesQueueEvent; - -/** - * Test for {@link MgArenaPlayerLeavesQueueEvent} - * - * @author mepeisen - * - */ -public class MgArenaPlayerLeavesQueueEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final WaitQueue queue = mock(WaitQueue.class); - final ArenaPlayerLeavesQueueEvent evt = new ArenaPlayerLeavesQueueEvent(queue, player); - final MgArenaPlayerLeavesQueueEvent mgevt = new MgArenaPlayerLeavesQueueEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertNull(mgevt.getArena()); - assertNull(mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java deleted file mode 100644 index 277c607c..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgArenaStateEventTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaState; -import com.github.mce.minigames.api.event.ArenaStateEvent; -import com.github.mce.minigames.impl.nms.MgArenaStateEvent; - -/** - * Test for {@link MgArenaStateEvent} - * - * @author mepeisen - * - */ -public class MgArenaStateEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaStateEvent evt = new ArenaStateEvent(arena, ArenaState.Disabled, ArenaState.Join); - final MgArenaStateEvent mgevt = new MgArenaStateEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java deleted file mode 100644 index 57351689..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerCloseGuiEventTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerCloseGuiEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgPlayerCloseGuiEvent; - -/** - * Test for {@link MgPlayerCloseGuiEvent} - * - * @author mepeisen - * - */ -public class MgPlayerCloseGuiEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final PlayerCloseGuiEvent evt = new PlayerCloseGuiEvent(gui, player); - final MgPlayerCloseGuiEvent mgevt = new MgPlayerCloseGuiEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertNull(mgevt.getArena()); - assertNull(mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java deleted file mode 100644 index d682aadb..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerDisplayGuiPageEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerDisplayGuiPageEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiPageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgPlayerDisplayGuiPageEvent; - -/** - * Test for {@link MgPlayerDisplayGuiPageEvent} - * - * @author mepeisen - * - */ -public class MgPlayerDisplayGuiPageEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ClickGuiPageInterface page = mock(ClickGuiPageInterface.class); - final PlayerDisplayGuiPageEvent evt = new PlayerDisplayGuiPageEvent(gui, player, page); - final MgPlayerDisplayGuiPageEvent mgevt = new MgPlayerDisplayGuiPageEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertNull(mgevt.getArena()); - assertNull(mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java deleted file mode 100644 index 64fef70d..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerGuiClickEventTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerGuiClickEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiItem; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgPlayerGuiClickEvent; - -/** - * Test for {@link MgPlayerGuiClickEvent} - * - * @author mepeisen - * - */ -public class MgPlayerGuiClickEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ClickGuiItem item = mock(ClickGuiItem.class); - final PlayerGuiClickEvent evt = new PlayerGuiClickEvent(gui, player, item); - final MgPlayerGuiClickEvent mgevt = new MgPlayerGuiClickEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertNull(mgevt.getArena()); - assertNull(mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java b/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java deleted file mode 100644 index 5359c1c1..00000000 --- a/LIBv2/nms/api/src/test/java/com/github/mce/minigames/impl/test/nms/MgPlayerOpenGuiEventTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.powermock.api.mockito.PowerMockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.event.PlayerOpenGuiEvent; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.MgPlayerOpenGuiEvent; - -/** - * Test for {@link MgPlayerOpenGuiEvent} - * - * @author mepeisen - * - */ -public class MgPlayerOpenGuiEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ClickGuiInterface gui = mock(ClickGuiInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final PlayerOpenGuiEvent evt = new PlayerOpenGuiEvent(gui, player); - final MgPlayerOpenGuiEvent mgevt = new MgPlayerOpenGuiEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertNull(mgevt.getArena()); - assertNull(mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/.classpath b/LIBv2/nms/v1_10_r1/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/v1_10_r1/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/v1_10_r1/.project b/LIBv2/nms/v1_10_r1/.project deleted file mode 100644 index d2536f08..00000000 --- a/LIBv2/nms/v1_10_r1/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nms1_10_r1</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/v1_10_r1/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/v1_10_r1/pom.xml b/LIBv2/nms/v1_10_r1/pom.xml deleted file mode 100644 index 0cf8bbd9..00000000 --- a/LIBv2/nms/v1_10_r1/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_10_r1</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS V1.10-R1</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - <version>1.10-R0.1-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java deleted file mode 100644 index 35fd57bc..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/EventSystem1_10_1.java +++ /dev/null @@ -1,2026 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockExpEvent; -import org.bukkit.event.block.BlockExplodeEvent; -import org.bukkit.event.block.BlockFadeEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.BlockSpreadEvent; -import org.bukkit.event.block.CauldronLevelChangeEvent; -import org.bukkit.event.block.EntityBlockFormEvent; -import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.block.NotePlayEvent; -import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; -import org.bukkit.event.entity.AreaEffectCloudApplyEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreeperPowerEvent; -import org.bukkit.event.entity.EnderDragonChangePhaseEvent; -import org.bukkit.event.entity.EntityBreakDoorEvent; -import org.bukkit.event.entity.EntityBreedEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityCombustByBlockEvent; -import org.bukkit.event.entity.EntityCombustByEntityEvent; -import org.bukkit.event.entity.EntityCombustEvent; -import org.bukkit.event.entity.EntityCreatePortalEvent; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityInteractEvent; -import org.bukkit.event.entity.EntityPortalEnterEvent; -import org.bukkit.event.entity.EntityPortalEvent; -import org.bukkit.event.entity.EntityPortalExitEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.entity.EntityTargetEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.entity.EntityToggleGlideEvent; -import org.bukkit.event.entity.EntityUnleashEvent; -import org.bukkit.event.entity.ExpBottleEvent; -import org.bukkit.event.entity.ExplosionPrimeEvent; -import org.bukkit.event.entity.FireworkExplodeEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; -import org.bukkit.event.entity.HorseJumpEvent; -import org.bukkit.event.entity.ItemDespawnEvent; -import org.bukkit.event.entity.ItemMergeEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.entity.LingeringPotionSplashEvent; -import org.bukkit.event.entity.PigZapEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.PlayerLeashEntityEvent; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.entity.SheepDyeWoolEvent; -import org.bukkit.event.entity.SheepRegrowWoolEvent; -import org.bukkit.event.entity.SlimeSplitEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; -import org.bukkit.event.entity.VillagerAcquireTradeEvent; -import org.bukkit.event.entity.VillagerReplenishTradeEvent; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.FurnaceSmeltEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryCreativeEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryEvent; -import org.bukkit.event.inventory.InventoryInteractEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.PrepareAnvilEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAchievementAwardedEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerBedLeaveEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerChangedMainHandEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerChannelEvent; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerInventoryEvent; -import org.bukkit.event.player.PlayerItemBreakEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupArrowEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRegisterChannelEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.event.player.PlayerStatisticIncrementEvent; -import org.bukkit.event.player.PlayerSwapHandItemsEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; -import org.bukkit.event.player.PlayerUnregisterChannelEvent; -import org.bukkit.event.player.PlayerVelocityEvent; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCreateEvent; -import org.bukkit.event.vehicle.VehicleDamageEvent; -import org.bukkit.event.vehicle.VehicleDestroyEvent; -import org.bukkit.event.vehicle.VehicleEnterEvent; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; -import org.bukkit.event.vehicle.VehicleMoveEvent; -import org.bukkit.event.vehicle.VehicleUpdateEvent; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.impl.nms.AbstractEventSystem; -import com.github.mce.minigames.impl.nms.v1_10_1.event.*; - -/** - * The event system implementation. - * - * @author mepeisen - */ -public class EventSystem1_10_1 extends AbstractEventSystem -{ - - /** - * Constructor - */ - public EventSystem1_10_1() - { - super(); - this.registerHandler(AreaEffectCloudApplyEvent.class, (evt) -> new MgAreaEffectCloudApplyEvent(evt)); - this.registerHandler(AsyncPlayerChatEvent.class, (evt) -> new MgAsyncPlayerChatEvent(evt)); - this.registerHandler(BlockBreakEvent.class, (evt) -> new MgBlockBreakEvent(evt)); - this.registerHandler(BlockBurnEvent.class, (evt) -> new MgBlockBurnEvent(evt)); - this.registerHandler(BlockCanBuildEvent.class, (evt) -> new MgBlockCanBuildEvent(evt)); - this.registerHandler(BlockDamageEvent.class, (evt) -> new MgBlockDamageEvent(evt)); - this.registerHandler(BlockDispenseEvent.class, (evt) -> new MgBlockDispenseEvent(evt)); - this.registerHandler(BlockExpEvent.class, (evt) -> new MgBlockExpEvent(evt)); - this.registerHandler(BlockExplodeEvent.class, (evt) -> new MgBlockExplodeEvent(evt)); - this.registerHandler(BlockFadeEvent.class, (evt) -> new MgBlockFadeEvent(evt)); - this.registerHandler(BlockFormEvent.class, (evt) -> new MgBlockFormEvent(evt)); - this.registerHandler(BlockFromToEvent.class, (evt) -> new MgBlockFromToEvent(evt)); - this.registerHandler(BlockGrowEvent.class, (evt) -> new MgBlockGrowEvent(evt)); - this.registerHandler(BlockIgniteEvent.class, (evt) -> new MgBlockIgniteEvent(evt)); - this.registerHandler(BlockMultiPlaceEvent.class, (evt) -> new MgBlockMultiPlaceEvent(evt)); - this.registerHandler(BlockPhysicsEvent.class, (evt) -> new MgBlockPhysicsEvent(evt)); - this.registerHandler(BlockPistonExtendEvent.class, (evt) -> new MgBlockPistonExtendEvent(evt)); - this.registerHandler(BlockPistonRetractEvent.class, (evt) -> new MgBlockPistonRetractEvent(evt)); - this.registerHandler(BlockPlaceEvent.class, (evt) -> new MgBlockPlaceEvent(evt)); - this.registerHandler(BlockRedstoneEvent.class, (evt) -> new MgBlockRedstoneEvent(evt)); - this.registerHandler(BlockSpreadEvent.class, (evt) -> new MgBlockSpreadEvent(evt)); - this.registerHandler(BrewEvent.class, (evt) -> new MgBrewEvent(evt)); - this.registerHandler(CauldronLevelChangeEvent.class, (evt) -> new MgCauldronLevelChangeEvent(evt)); - this.registerHandler(CraftItemEvent.class, (evt) -> new MgCraftItemEvent(evt)); - this.registerHandler(CreatureSpawnEvent.class, (evt) -> new MgCreatureSpawnEvent(evt)); - this.registerHandler(CreeperPowerEvent.class, (evt) -> new MgCreeperPowerEvent(evt)); - this.registerHandler(EnchantItemEvent.class, (evt) -> new MgEnchantItemEvent(evt)); - this.registerHandler(EnderDragonChangePhaseEvent.class, (evt) -> new MgEnderDragonChangePhaseEvent(evt)); - this.registerHandler(EntityBlockFormEvent.class, (evt) -> new MgEntityBlockFormEvent(evt)); - this.registerHandler(EntityBreakDoorEvent.class, (evt) -> new MgEntityBreakDoorEvent(evt)); - this.registerHandler(EntityBreedEvent.class, (evt) -> new MgEntityBreedEvent(evt)); - this.registerHandler(EntityChangeBlockEvent.class, (evt) -> new MgEntityChangeBlockEvent(evt)); - this.registerHandler(EntityCombustByBlockEvent.class, (evt) -> new MgEntityCombustByBlockEvent(evt)); - this.registerHandler(EntityCombustByEntityEvent.class, (evt) -> new MgEntityCombustByEntityEvent(evt)); - this.registerHandler(EntityCombustEvent.class, (evt) -> new MgEntityCombustEvent(evt)); - this.registerHandler(EntityCreatePortalEvent.class, (evt) -> new MgEntityCreatePortalEvent(evt)); - this.registerHandler(EntityDamageByBlockEvent.class, (evt) -> new MgEntityDamageByBlockEvent(evt)); - this.registerHandler(EntityDamageByEntityEvent.class, (evt) -> new MgEntityDamageByEntityEvent(evt)); - this.registerHandler(EntityDamageEvent.class, (evt) -> new MgEntityDamageEvent(evt)); - this.registerHandler(EntityDeathEvent.class, (evt) -> new MgEntityDeathEvent(evt)); - this.registerHandler(EntityExplodeEvent.class, (evt) -> new MgEntityExplodeEvent(evt)); - this.registerHandler(EntityInteractEvent.class, (evt) -> new MgEntityInteractEvent(evt)); - this.registerHandler(EntityPortalEnterEvent.class, (evt) -> new MgEntityPortalEnterEvent(evt)); - this.registerHandler(EntityPortalEvent.class, (evt) -> new MgEntityPortalEvent(evt)); - this.registerHandler(EntityPortalExitEvent.class, (evt) -> new MgEntityPortalExitEvent(evt)); - this.registerHandler(EntityRegainHealthEvent.class, (evt) -> new MgEntityRegainHealthEvent(evt)); - this.registerHandler(EntityShootBowEvent.class, (evt) -> new MgEntityShootBowEvent(evt)); - this.registerHandler(EntitySpawnEvent.class, (evt) -> new MgEntitySpawnEvent(evt)); - this.registerHandler(EntityTameEvent.class, (evt) -> new MgEntityTameEvent(evt)); - this.registerHandler(EntityTargetEvent.class, (evt) -> new MgEntityTargetEvent(evt)); - this.registerHandler(EntityTargetLivingEntityEvent.class, (evt) -> new MgEntityTargetLivingEntityEvent(evt)); - this.registerHandler(EntityTeleportEvent.class, (evt) -> new MgEntityTeleportEvent(evt)); - this.registerHandler(EntityToggleGlideEvent.class, (evt) -> new MgEntityToggleGlideEvent(evt)); - this.registerHandler(EntityUnleashEvent.class, (evt) -> new MgEntityUnleashEvent(evt)); - this.registerHandler(ExpBottleEvent.class, (evt) -> new MgExpBottleEvent(evt)); - this.registerHandler(ExplosionPrimeEvent.class, (evt) -> new MgExplosionPrimeEvent(evt)); - this.registerHandler(FireworkExplodeEvent.class, (evt) -> new MgFireworkExplodeEvent(evt)); - this.registerHandler(FoodLevelChangeEvent.class, (evt) -> new MgFoodLevelChangeEvent(evt)); - this.registerHandler(FurnaceBurnEvent.class, (evt) -> new MgFurnaceBurnEvent(evt)); - this.registerHandler(FurnaceSmeltEvent.class, (evt) -> new MgFurnaceSmeltEvent(evt)); - this.registerHandler(HangingBreakByEntityEvent.class, (evt) -> new MgHangingBreakByEntityEvent(evt)); - this.registerHandler(HangingBreakEvent.class, (evt) -> new MgHangingBreakEvent(evt)); - this.registerHandler(HangingPlaceEvent.class, (evt) -> new MgHangingPlaceEvent(evt)); - this.registerHandler(HorseJumpEvent.class, (evt) -> new MgHorseJumpEvent(evt)); - this.registerHandler(InventoryClickEvent.class, (evt) -> new MgInventoryClickEvent(evt)); - this.registerHandler(InventoryCloseEvent.class, (evt) -> new MgInventoryCloseEvent(evt)); - this.registerHandler(InventoryCreativeEvent.class, (evt) -> new MgInventoryCreativeEvent(evt)); - this.registerHandler(InventoryDragEvent.class, (evt) -> new MgInventoryDragEvent(evt)); - this.registerHandler(InventoryEvent.class, (evt) -> new MgInventoryEvent(evt)); - this.registerHandler(InventoryInteractEvent.class, (evt) -> new MgInventoryInteractEvent(evt)); - this.registerHandler(InventoryMoveItemEvent.class, (evt) -> new MgInventoryMoveItemEvent(evt)); - this.registerHandler(InventoryOpenEvent.class, (evt) -> new MgInventoryOpenEvent(evt)); - this.registerHandler(InventoryPickupItemEvent.class, (evt) -> new MgInventoryPickupItemEvent(evt)); - this.registerHandler(ItemDespawnEvent.class, (evt) -> new MgItemDespawnEvent(evt)); - this.registerHandler(ItemMergeEvent.class, (evt) -> new MgItemMergeEvent(evt)); - this.registerHandler(ItemSpawnEvent.class, (evt) -> new MgItemSpawnEvent(evt)); - this.registerHandler(LeavesDecayEvent.class, (evt) -> new MgLeavesDecayEvent(evt)); - this.registerHandler(LingeringPotionSplashEvent.class, (evt) -> new MgLingeringPotionSplashEvent(evt)); - this.registerHandler(NotePlayEvent.class, (evt) -> new MgNotePlayEvent(evt)); - this.registerHandler(PigZapEvent.class, (evt) -> new MgPigZapEvent(evt)); - this.registerHandler(PlayerAchievementAwardedEvent.class, (evt) -> new MgPlayerAchievementAwardedEvent(evt)); - this.registerHandler(PlayerAnimationEvent.class, (evt) -> new MgPlayerAnimationEvent(evt)); - this.registerHandler(PlayerArmorStandManipulateEvent.class, (evt) -> new MgPlayerArmorStandManipulateEvent(evt)); - this.registerHandler(PlayerBedEnterEvent.class, (evt) -> new MgPlayerBedEnterEvent(evt)); - this.registerHandler(PlayerBedLeaveEvent.class, (evt) -> new MgPlayerBedLeaveEvent(evt)); - this.registerHandler(PlayerBucketEmptyEvent.class, (evt) -> new MgPlayerBucketEmptyEvent(evt)); - this.registerHandler(PlayerBucketFillEvent.class, (evt) -> new MgPlayerBucketFillEvent(evt)); - this.registerHandler(PlayerChangedMainHandEvent.class, (evt) -> new MgPlayerChangedMainHandEvent(evt)); - this.registerHandler(PlayerChangedWorldEvent.class, (evt) -> new MgPlayerChangedWorldEvent(evt)); - this.registerHandler(PlayerChannelEvent.class, (evt) -> new MgPlayerChannelEvent(evt)); - this.registerHandler(PlayerChatEvent.class, (evt) -> new MgPlayerChatEvent(evt)); - this.registerHandler(PlayerChatTabCompleteEvent.class, (evt) -> new MgPlayerChatTabCompleteEvent(evt)); - this.registerHandler(PlayerCommandPreprocessEvent.class, (evt) -> new MgPlayerCommandPreprocessEvent(evt)); - this.registerHandler(PlayerDeathEvent.class, (evt) -> new MgPlayerDeathEvent(evt)); - this.registerHandler(PlayerDropItemEvent.class, (evt) -> new MgPlayerDropItemEvent(evt)); - this.registerHandler(PlayerEditBookEvent.class, (evt) -> new MgPlayerEditBookEvent(evt)); - this.registerHandler(PlayerEggThrowEvent.class, (evt) -> new MgPlayerEggThrowEvent(evt)); - this.registerHandler(PlayerExpChangeEvent.class, (evt) -> new MgPlayerExpChangeEvent(evt)); - this.registerHandler(PlayerFishEvent.class, (evt) -> new MgPlayerFishEvent(evt)); - this.registerHandler(PlayerGameModeChangeEvent.class, (evt) -> new MgPlayerGameModeChangeEvent(evt)); - this.registerHandler(PlayerInteractAtEntityEvent.class, (evt) -> new MgPlayerInteractAtEntityEvent(evt)); - this.registerHandler(PlayerInteractEntityEvent.class, (evt) -> new MgPlayerInteractEntityEvent(evt)); - this.registerHandler(PlayerInteractEvent.class, (evt) -> new MgPlayerInteractEvent(evt)); - this.registerHandler(PlayerInventoryEvent.class, (evt) -> new MgPlayerInventoryEvent(evt)); - this.registerHandler(PlayerItemBreakEvent.class, (evt) -> new MgPlayerItemBreakEvent(evt)); - this.registerHandler(PlayerItemConsumeEvent.class, (evt) -> new MgPlayerItemConsumeEvent(evt)); - this.registerHandler(PlayerItemDamageEvent.class, (evt) -> new MgPlayerItemDamageEvent(evt)); - this.registerHandler(PlayerItemHeldEvent.class, (evt) -> new MgPlayerItemHeldEvent(evt)); - this.registerHandler(PlayerJoinEvent.class, (evt) -> new MgPlayerJoinEvent(evt)); - this.registerHandler(PlayerKickEvent.class, (evt) -> new MgPlayerKickEvent(evt)); - this.registerHandler(PlayerLeashEntityEvent.class, (evt) -> new MgPlayerLeashEntityEvent(evt)); - this.registerHandler(PlayerLevelChangeEvent.class, (evt) -> new MgPlayerLevelChangeEvent(evt)); - this.registerHandler(PlayerLoginEvent.class, (evt) -> new MgPlayerLoginEvent(evt)); - this.registerHandler(PlayerMoveEvent.class, (evt) -> new MgPlayerMoveEvent(evt)); - this.registerHandler(PlayerPickupArrowEvent.class, (evt) -> new MgPlayerPickupArrowEvent(evt)); - this.registerHandler(PlayerPickupItemEvent.class, (evt) -> new MgPlayerPickupItemEvent(evt)); - this.registerHandler(PlayerPortalEvent.class, (evt) -> new MgPlayerPortalEvent(evt)); - this.registerHandler(PlayerQuitEvent.class, (evt) -> new MgPlayerQuitEvent(evt)); - this.registerHandler(PlayerRegisterChannelEvent.class, (evt) -> new MgPlayerRegisterChannelEvent(evt)); - this.registerHandler(PlayerResourcePackStatusEvent.class, (evt) -> new MgPlayerResourcePackStatusEvent(evt)); - this.registerHandler(PlayerRespawnEvent.class, (evt) -> new MgPlayerRespawnEvent(evt)); - this.registerHandler(PlayerShearEntityEvent.class, (evt) -> new MgPlayerShearEntityEvent(evt)); - this.registerHandler(PlayerSpawnLocationEvent.class, (evt) -> new MgPlayerSpawnLocationEvent(evt)); - this.registerHandler(PlayerStatisticIncrementEvent.class, (evt) -> new MgPlayerStatisticIncrementEvent(evt)); - this.registerHandler(PlayerSwapHandItemsEvent.class, (evt) -> new MgPlayerSwapHandItemsEvent(evt)); - this.registerHandler(PlayerTeleportEvent.class, (evt) -> new MgPlayerTeleportEvent(evt)); - this.registerHandler(PlayerToggleFlightEvent.class, (evt) -> new MgPlayerToggleFlightEvent(evt)); - this.registerHandler(PlayerToggleSneakEvent.class, (evt) -> new MgPlayerToggleSneakEvent(evt)); - this.registerHandler(PlayerToggleSprintEvent.class, (evt) -> new MgPlayerToggleSprintEvent(evt)); - this.registerHandler(PlayerUnregisterChannelEvent.class, (evt) -> new MgPlayerUnregisterChannelEvent(evt)); - this.registerHandler(PlayerVelocityEvent.class, (evt) -> new MgPlayerVelocityEvent(evt)); - this.registerHandler(PotionSplashEvent.class, (evt) -> new MgPotionSplashEvent(evt)); - this.registerHandler(PrepareAnvilEvent.class, (evt) -> new MgPrepareAnvilEvent(evt)); - this.registerHandler(PrepareItemCraftEvent.class, (evt) -> new MgPrepareItemCraftEvent(evt)); - this.registerHandler(PrepareItemEnchantEvent.class, (evt) -> new MgPrepareItemEnchantEvent(evt)); - this.registerHandler(ProjectileHitEvent.class, (evt) -> new MgProjectileHitEvent(evt)); - this.registerHandler(ProjectileLaunchEvent.class, (evt) -> new MgProjectileLaunchEvent(evt)); - this.registerHandler(SheepDyeWoolEvent.class, (evt) -> new MgSheepDyeWoolEvent(evt)); - this.registerHandler(SheepRegrowWoolEvent.class, (evt) -> new MgSheepRegrowWoolEvent(evt)); - this.registerHandler(SignChangeEvent.class, (evt) -> new MgSignChangeEvent(evt)); - this.registerHandler(SlimeSplitEvent.class, (evt) -> new MgSlimeSplitEvent(evt)); - this.registerHandler(SpawnerSpawnEvent.class, (evt) -> new MgSpawnerSpawnEvent(evt)); - this.registerHandler(VehicleBlockCollisionEvent.class, (evt) -> new MgVehicleBlockCollisionEvent(evt)); - this.registerHandler(VehicleCreateEvent.class, (evt) -> new MgVehicleCreateEvent(evt)); - this.registerHandler(VehicleDamageEvent.class, (evt) -> new MgVehicleDamageEvent(evt)); - this.registerHandler(VehicleDestroyEvent.class, (evt) -> new MgVehicleDestroyEvent(evt)); - this.registerHandler(VehicleEnterEvent.class, (evt) -> new MgVehicleEnterEvent(evt)); - this.registerHandler(VehicleEntityCollisionEvent.class, (evt) -> new MgVehicleEntityCollisionEvent(evt)); - this.registerHandler(VehicleExitEvent.class, (evt) -> new MgVehicleExitEvent(evt)); - this.registerHandler(VehicleMoveEvent.class, (evt) -> new MgVehicleMoveEvent(evt)); - this.registerHandler(VehicleUpdateEvent.class, (evt) -> new MgVehicleUpdateEvent(evt)); - this.registerHandler(VillagerAcquireTradeEvent.class, (evt) -> new MgVillagerAcquireTradeEvent(evt)); - this.registerHandler(VillagerReplenishTradeEvent.class, (evt) -> new MgVillagerReplenishTradeEvent(evt)); - } - - /** - * Event handler for AreaEffectCloudApplyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) - { - this.getHandler(AreaEffectCloudApplyEvent.class).handle(evt); - } - - /** - * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) - { - this.getHandler(AsyncPlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBreakEvent(BlockBreakEvent evt) - { - this.getHandler(BlockBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBurnEvent(BlockBurnEvent evt) - { - this.getHandler(BlockBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockCanBuildEvent(BlockCanBuildEvent evt) - { - this.getHandler(BlockCanBuildEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDamageEvent(BlockDamageEvent evt) - { - this.getHandler(BlockDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDispenseEvent(BlockDispenseEvent evt) - { - this.getHandler(BlockDispenseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExpEvent(BlockExpEvent evt) - { - this.getHandler(BlockExpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExplodeEvent(BlockExplodeEvent evt) - { - this.getHandler(BlockExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFadeEvent(BlockFadeEvent evt) - { - this.getHandler(BlockFadeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFormEvent(BlockFormEvent evt) - { - this.getHandler(BlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFromToEvent(BlockFromToEvent evt) - { - this.getHandler(BlockFromToEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockGrowEvent(BlockGrowEvent evt) - { - this.getHandler(BlockGrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockIgniteEvent(BlockIgniteEvent evt) - { - this.getHandler(BlockIgniteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) - { - this.getHandler(BlockMultiPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPhysicsEvent(BlockPhysicsEvent evt) - { - this.getHandler(BlockPhysicsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) - { - this.getHandler(BlockPistonExtendEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) - { - this.getHandler(BlockPistonRetractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPlaceEvent(BlockPlaceEvent evt) - { - this.getHandler(BlockPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockRedstoneEvent(BlockRedstoneEvent evt) - { - this.getHandler(BlockRedstoneEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockSpreadEvent(BlockSpreadEvent evt) - { - this.getHandler(BlockSpreadEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBrewEvent(BrewEvent evt) - { - this.getHandler(BrewEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCauldronLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) - { - this.getHandler(CauldronLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCraftItemEvent(CraftItemEvent evt) - { - this.getHandler(CraftItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreatureSpawnEvent(CreatureSpawnEvent evt) - { - this.getHandler(CreatureSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreeperPowerEvent(CreeperPowerEvent evt) - { - this.getHandler(CreeperPowerEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnchantItemEvent(EnchantItemEvent evt) - { - this.getHandler(EnchantItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnderDragonChangePhaseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) - { - this.getHandler(EnderDragonChangePhaseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBlockFormEvent(EntityBlockFormEvent evt) - { - this.getHandler(EntityBlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) - { - this.getHandler(EntityBreakDoorEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreedEvent(EntityBreedEvent evt) - { - this.getHandler(EntityBreedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) - { - this.getHandler(EntityChangeBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) - { - this.getHandler(EntityCombustByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) - { - this.getHandler(EntityCombustByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustEvent(EntityCombustEvent evt) - { - this.getHandler(EntityCombustEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) - { - this.getHandler(EntityCreatePortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) - { - this.getHandler(EntityDamageByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) - { - this.getHandler(EntityDamageByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageEvent(EntityDamageEvent evt) - { - this.getHandler(EntityDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDeathEvent(EntityDeathEvent evt) - { - this.getHandler(EntityDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityExplodeEvent(EntityExplodeEvent evt) - { - this.getHandler(EntityExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityInteractEvent(EntityInteractEvent evt) - { - this.getHandler(EntityInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) - { - this.getHandler(EntityPortalEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEvent(EntityPortalEvent evt) - { - this.getHandler(EntityPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalExitEvent(EntityPortalExitEvent evt) - { - this.getHandler(EntityPortalExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) - { - this.getHandler(EntityRegainHealthEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityShootBowEvent(EntityShootBowEvent evt) - { - this.getHandler(EntityShootBowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntitySpawnEvent(EntitySpawnEvent evt) - { - this.getHandler(EntitySpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTameEvent(EntityTameEvent evt) - { - this.getHandler(EntityTameEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetEvent(EntityTargetEvent evt) - { - this.getHandler(EntityTargetEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) - { - this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTeleportEvent(EntityTeleportEvent evt) - { - this.getHandler(EntityTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityToggleGlideEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) - { - this.getHandler(EntityToggleGlideEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityUnleashEvent(EntityUnleashEvent evt) - { - this.getHandler(EntityUnleashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExpBottleEvent(ExpBottleEvent evt) - { - this.getHandler(ExpBottleEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) - { - this.getHandler(ExplosionPrimeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFireworkExplodeEvent(FireworkExplodeEvent evt) - { - this.getHandler(FireworkExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) - { - this.getHandler(FoodLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceBurnEvent(FurnaceBurnEvent evt) - { - this.getHandler(FurnaceBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) - { - this.getHandler(FurnaceSmeltEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) - { - this.getHandler(HangingBreakByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakEvent(HangingBreakEvent evt) - { - this.getHandler(HangingBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingPlaceEvent(HangingPlaceEvent evt) - { - this.getHandler(HangingPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHorseJumpEvent(HorseJumpEvent evt) - { - this.getHandler(HorseJumpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent evt) - { - this.getHandler(InventoryClickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCloseEvent(InventoryCloseEvent evt) - { - this.getHandler(InventoryCloseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCreativeEvent(InventoryCreativeEvent evt) - { - this.getHandler(InventoryCreativeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryDragEvent(InventoryDragEvent evt) - { - this.getHandler(InventoryDragEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryEvent(InventoryEvent evt) - { - this.getHandler(InventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryInteractEvent(InventoryInteractEvent evt) - { - this.getHandler(InventoryInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) - { - this.getHandler(InventoryMoveItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryOpenEvent(InventoryOpenEvent evt) - { - this.getHandler(InventoryOpenEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) - { - this.getHandler(InventoryPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemDespawnEvent(ItemDespawnEvent evt) - { - this.getHandler(ItemDespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemMergeEvent(ItemMergeEvent evt) - { - this.getHandler(ItemMergeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemSpawnEvent(ItemSpawnEvent evt) - { - this.getHandler(ItemSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLeavesDecayEvent(LeavesDecayEvent evt) - { - this.getHandler(LeavesDecayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLingeringPotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) - { - this.getHandler(LingeringPotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onNotePlayEvent(NotePlayEvent evt) - { - this.getHandler(NotePlayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPigZapEvent(PigZapEvent evt) - { - this.getHandler(PigZapEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) - { - this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAnimationEvent(PlayerAnimationEvent evt) - { - this.getHandler(PlayerAnimationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) - { - this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) - { - this.getHandler(PlayerBedEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) - { - this.getHandler(PlayerBedLeaveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) - { - this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) - { - this.getHandler(PlayerBucketFillEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedMainHandEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedMainHandEvent(PlayerChangedMainHandEvent evt) - { - this.getHandler(PlayerChangedMainHandEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) - { - this.getHandler(PlayerChangedWorldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChannelEvent(PlayerChannelEvent evt) - { - this.getHandler(PlayerChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatEvent(PlayerChatEvent evt) - { - this.getHandler(PlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) - { - this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) - { - this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDeathEvent(PlayerDeathEvent evt) - { - this.getHandler(PlayerDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDropItemEvent(PlayerDropItemEvent evt) - { - this.getHandler(PlayerDropItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEditBookEvent(PlayerEditBookEvent evt) - { - this.getHandler(PlayerEditBookEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) - { - this.getHandler(PlayerEggThrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) - { - this.getHandler(PlayerExpChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerFishEvent(PlayerFishEvent evt) - { - this.getHandler(PlayerFishEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) - { - this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) - { - this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) - { - this.getHandler(PlayerInteractEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEvent(PlayerInteractEvent evt) - { - this.getHandler(PlayerInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInventoryEvent(PlayerInventoryEvent evt) - { - this.getHandler(PlayerInventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) - { - this.getHandler(PlayerItemBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) - { - this.getHandler(PlayerItemConsumeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) - { - this.getHandler(PlayerItemDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) - { - this.getHandler(PlayerItemHeldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerJoinEvent(PlayerJoinEvent evt) - { - this.getHandler(PlayerJoinEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerKickEvent(PlayerKickEvent evt) - { - this.getHandler(PlayerKickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) - { - this.getHandler(PlayerLeashEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) - { - this.getHandler(PlayerLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLoginEvent(PlayerLoginEvent evt) - { - this.getHandler(PlayerLoginEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent evt) - { - this.getHandler(PlayerMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupArrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) - { - this.getHandler(PlayerPickupArrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) - { - this.getHandler(PlayerPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPortalEvent(PlayerPortalEvent evt) - { - this.getHandler(PlayerPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerQuitEvent(PlayerQuitEvent evt) - { - this.getHandler(PlayerQuitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) - { - this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) - { - this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRespawnEvent(PlayerRespawnEvent evt) - { - this.getHandler(PlayerRespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) - { - this.getHandler(PlayerShearEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) - { - this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) - { - this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSwapHandItemsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) - { - this.getHandler(PlayerSwapHandItemsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerTeleportEvent(PlayerTeleportEvent evt) - { - this.getHandler(PlayerTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) - { - this.getHandler(PlayerToggleFlightEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) - { - this.getHandler(PlayerToggleSneakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) - { - this.getHandler(PlayerToggleSprintEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) - { - this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerVelocityEvent(PlayerVelocityEvent evt) - { - this.getHandler(PlayerVelocityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPotionSplashEvent(PotionSplashEvent evt) - { - this.getHandler(PotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareAnvilEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareAnvilEvent(PrepareAnvilEvent evt) - { - this.getHandler(PrepareAnvilEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) - { - this.getHandler(PrepareItemCraftEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) - { - this.getHandler(PrepareItemEnchantEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileHitEvent(ProjectileHitEvent evt) - { - this.getHandler(ProjectileHitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) - { - this.getHandler(ProjectileLaunchEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) - { - this.getHandler(SheepDyeWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) - { - this.getHandler(SheepRegrowWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSignChangeEvent(SignChangeEvent evt) - { - this.getHandler(SignChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSlimeSplitEvent(SlimeSplitEvent evt) - { - this.getHandler(SlimeSplitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) - { - this.getHandler(SpawnerSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) - { - this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCreateEvent(VehicleCreateEvent evt) - { - this.getHandler(VehicleCreateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDamageEvent(VehicleDamageEvent evt) - { - this.getHandler(VehicleDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDestroyEvent(VehicleDestroyEvent evt) - { - this.getHandler(VehicleDestroyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEnterEvent(VehicleEnterEvent evt) - { - this.getHandler(VehicleEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) - { - this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent evt) - { - this.getHandler(VehicleExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleMoveEvent(VehicleMoveEvent evt) - { - this.getHandler(VehicleMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleUpdateEvent(VehicleUpdateEvent evt) - { - this.getHandler(VehicleUpdateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVillagerAcquireTradeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) - { - this.getHandler(VillagerAcquireTradeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVillagerReplenishTradeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) - { - this.getHandler(VillagerReplenishTradeEvent.class).handle(evt); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java deleted file mode 100644 index cf876783..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/InventoryManager1_10_1.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1; - -import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_10_R1.event.CraftEventFactory; -import org.bukkit.entity.Player; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; - -import com.github.mce.minigames.impl.nms.InventoryManagerInterface; - -import net.minecraft.server.v1_10_R1.EntityPlayer; - -/** - * Inventory manager implementation. - * - * @author mepeisen - */ -public class InventoryManager1_10_1 implements InventoryManagerInterface -{ - - @Override - public Inventory openInventory(Player player, String name, ItemStack[] items) - { - final Inventory inventory = Bukkit.createInventory(null, items.length, name); - inventory.setContents(items); - final EntityPlayer entity = ((CraftPlayer)player).getHandle(); - if (entity.activeContainer != entity.defaultContainer) - { - CraftEventFactory.handleInventoryCloseEvent(entity); - entity.activeContainer = entity.defaultContainer; - } - player.openInventory(inventory); - return inventory; - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java deleted file mode 100644 index f43017bc..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/NmsFactory1_10_1.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.InventoryManagerInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; - -/** - * Factory to create NMS relevant classes. - * - * @author mepeisen - */ -public class NmsFactory1_10_1 implements NmsFactory -{ - - /** the implementation classes. */ - private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); - - /** - * Constructor. - */ - public NmsFactory1_10_1() - { - this.impls.put(EventSystemInterface.class, () -> new EventSystem1_10_1()); - this.impls.put(InventoryManagerInterface.class, () -> new InventoryManager1_10_1()); - } - - @Override - public <T> T create(Class<T> clazz) - { - final Supplier<?> supplier = this.impls.get(clazz); - if (supplier != null) - { - return clazz.cast(supplier.get()); - } - return null; - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java deleted file mode 100644 index fa485755..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAreaEffectCloudApplyEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.AreaEffectCloudApplyEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameAreaEffectCloudApplyEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgAreaEffectCloudApplyEvent extends AbstractMinigameEvent<AreaEffectCloudApplyEvent, MinigameAreaEffectCloudApplyEvent> implements MinigameAreaEffectCloudApplyEvent -{ - - /** - * Constructor - * @param event - */ - public MgAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java deleted file mode 100644 index 5011ab41..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgAsyncPlayerChatEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.AsyncPlayerChatEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameAsyncPlayerChatEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgAsyncPlayerChatEvent extends AbstractMinigameEvent<AsyncPlayerChatEvent, MinigameAsyncPlayerChatEvent> implements MinigameAsyncPlayerChatEvent -{ - - /** - * Constructor - * @param event - */ - public MgAsyncPlayerChatEvent(AsyncPlayerChatEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java deleted file mode 100644 index ea14076b..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBreakEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockBreakEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockBreakEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockBreakEvent extends AbstractMinigameEvent<BlockBreakEvent, MinigameBlockBreakEvent> implements MinigameBlockBreakEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockBreakEvent(BlockBreakEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java deleted file mode 100644 index a1dcb1db..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockBurnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockBurnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockBurnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockBurnEvent extends AbstractMinigameEvent<BlockBurnEvent, MinigameBlockBurnEvent> implements MinigameBlockBurnEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockBurnEvent(BlockBurnEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java deleted file mode 100644 index b57705ea..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockCanBuildEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.util.Vector; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockCanBuildEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockCanBuildEvent extends AbstractMinigameEvent<BlockCanBuildEvent, MinigameBlockCanBuildEvent> implements MinigameBlockCanBuildEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockCanBuildEvent(BlockCanBuildEvent event) - { - super(event, null, event.getBlock().getLocation().add(new Vector(0, 1, 0))); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java deleted file mode 100644 index 4079343d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDamageEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockDamageEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockDamageEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockDamageEvent extends AbstractMinigameEvent<BlockDamageEvent, MinigameBlockDamageEvent> implements MinigameBlockDamageEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockDamageEvent(BlockDamageEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java deleted file mode 100644 index ce6a9ebc..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockDispenseEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockDispenseEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockDispenseEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockDispenseEvent extends AbstractMinigameEvent<BlockDispenseEvent, MinigameBlockDispenseEvent> implements MinigameBlockDispenseEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockDispenseEvent(BlockDispenseEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java deleted file mode 100644 index 40086d77..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExpEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockExpEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockExpEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockExpEvent extends AbstractMinigameEvent<BlockExpEvent, MinigameBlockExpEvent> implements MinigameBlockExpEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockExpEvent(BlockExpEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java deleted file mode 100644 index f7a0e6df..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockExplodeEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockExplodeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockExplodeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockExplodeEvent extends AbstractMinigameEvent<BlockExplodeEvent, MinigameBlockExplodeEvent> implements MinigameBlockExplodeEvent -{ - - /** - * Constructor - * - * @param event - */ - public MgBlockExplodeEvent(BlockExplodeEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java deleted file mode 100644 index 0c329aae..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFadeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockFadeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFadeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockFadeEvent extends AbstractMinigameEvent<BlockFadeEvent, MinigameBlockFadeEvent> implements MinigameBlockFadeEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockFadeEvent(BlockFadeEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java deleted file mode 100644 index 4c9b71dc..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFormEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockFormEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFormEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockFormEvent extends AbstractMinigameEvent<BlockFormEvent, MinigameBlockFormEvent> implements MinigameBlockFormEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockFormEvent(BlockFormEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java deleted file mode 100644 index 9de13856..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockFromToEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockFromToEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockFromToEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockFromToEvent extends AbstractMinigameEvent<BlockFromToEvent, MinigameBlockFromToEvent> implements MinigameBlockFromToEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockFromToEvent(BlockFromToEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java deleted file mode 100644 index cf9eff2a..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockGrowEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockGrowEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockGrowEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockGrowEvent extends AbstractMinigameEvent<BlockGrowEvent, MinigameBlockGrowEvent> implements MinigameBlockGrowEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockGrowEvent(BlockGrowEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java deleted file mode 100644 index e99d5123..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockIgniteEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockIgniteEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockIgniteEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockIgniteEvent extends AbstractMinigameEvent<BlockIgniteEvent, MinigameBlockIgniteEvent> implements MinigameBlockIgniteEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockIgniteEvent(BlockIgniteEvent event) - { - // TODO ignite player? ignite block? - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java deleted file mode 100644 index 4ebe9572..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockMultiPlaceEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockMultiPlaceEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockMultiPlaceEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockMultiPlaceEvent extends AbstractMinigameEvent<BlockMultiPlaceEvent, MinigameBlockMultiPlaceEvent> implements MinigameBlockMultiPlaceEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockMultiPlaceEvent(BlockMultiPlaceEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); // TODO affected block states - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java deleted file mode 100644 index 43b95415..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPhysicsEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockPhysicsEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPhysicsEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockPhysicsEvent extends AbstractMinigameEvent<BlockPhysicsEvent, MinigameBlockPhysicsEvent> implements MinigameBlockPhysicsEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockPhysicsEvent(BlockPhysicsEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java deleted file mode 100644 index fc1b4caf..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonExtendEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockPistonExtendEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPistonExtendEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockPistonExtendEvent extends AbstractMinigameEvent<BlockPistonExtendEvent, MinigameBlockPistonExtendEvent> implements MinigameBlockPistonExtendEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockPistonExtendEvent(BlockPistonExtendEvent event) - { - super(event, null, event.getBlock().getLocation()); // TODO affected blocks - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java deleted file mode 100644 index df55feac..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPistonRetractEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockPistonRetractEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPistonRetractEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockPistonRetractEvent extends AbstractMinigameEvent<BlockPistonRetractEvent, MinigameBlockPistonRetractEvent> implements MinigameBlockPistonRetractEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockPistonRetractEvent(BlockPistonRetractEvent event) - { - super(event, null, event.getBlock().getLocation()); // TODO affected blocks - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java deleted file mode 100644 index 7cb44fc2..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockPlaceEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockPlaceEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockPlaceEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockPlaceEvent extends AbstractMinigameEvent<BlockPlaceEvent, MinigameBlockPlaceEvent> implements MinigameBlockPlaceEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockPlaceEvent(BlockPlaceEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer()), event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java deleted file mode 100644 index cf1ba0b0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockRedstoneEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockRedstoneEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockRedstoneEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockRedstoneEvent extends AbstractMinigameEvent<BlockRedstoneEvent, MinigameBlockRedstoneEvent> implements MinigameBlockRedstoneEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockRedstoneEvent(BlockRedstoneEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java deleted file mode 100644 index 7d796667..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBlockSpreadEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.BlockSpreadEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBlockSpreadEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBlockSpreadEvent extends AbstractMinigameEvent<BlockSpreadEvent, MinigameBlockSpreadEvent> implements MinigameBlockSpreadEvent -{ - - /** - * Constructor - * @param event - */ - public MgBlockSpreadEvent(BlockSpreadEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java deleted file mode 100644 index 673dfcf8..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgBrewEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.inventory.BrewEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameBrewEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgBrewEvent extends AbstractMinigameEvent<BrewEvent, MinigameBrewEvent> implements MinigameBrewEvent -{ - - /** - * Constructor - * @param event - */ - public MgBrewEvent(BrewEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java deleted file mode 100644 index 27f7e135..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCauldronLevelChangeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.CauldronLevelChangeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameCauldronLevelChangeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgCauldronLevelChangeEvent extends AbstractMinigameEvent<CauldronLevelChangeEvent, MinigameCauldronLevelChangeEvent> implements MinigameCauldronLevelChangeEvent -{ - - /** - * Constructor - * @param event - */ - public MgCauldronLevelChangeEvent(CauldronLevelChangeEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java deleted file mode 100644 index 07368b67..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCraftItemEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.CraftItemEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameCraftItemEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgCraftItemEvent extends AbstractMinigameEvent<CraftItemEvent, MinigameCraftItemEvent> implements MinigameCraftItemEvent -{ - - /** - * Constructor - * @param event - */ - public MgCraftItemEvent(CraftItemEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java deleted file mode 100644 index a6603d3b..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreatureSpawnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.CreatureSpawnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameCreatureSpawnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgCreatureSpawnEvent extends AbstractMinigameEvent<CreatureSpawnEvent, MinigameCreatureSpawnEvent> implements MinigameCreatureSpawnEvent -{ - - /** - * Constructor - * @param event - */ - public MgCreatureSpawnEvent(CreatureSpawnEvent event) - { - super(event, null, event.getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java deleted file mode 100644 index 9e68724c..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgCreeperPowerEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.CreeperPowerEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameCreeperPowerEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgCreeperPowerEvent extends AbstractMinigameEvent<CreeperPowerEvent, MinigameCreeperPowerEvent> implements MinigameCreeperPowerEvent -{ - - /** - * Constructor - * @param event - */ - public MgCreeperPowerEvent(CreeperPowerEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java deleted file mode 100644 index eeac1a56..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnchantItemEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.enchantment.EnchantItemEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEnchantItemEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEnchantItemEvent extends AbstractMinigameEvent<EnchantItemEvent, MinigameEnchantItemEvent> implements MinigameEnchantItemEvent -{ - - /** - * Constructor - * @param event - */ - public MgEnchantItemEvent(EnchantItemEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getEnchanter())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java deleted file mode 100644 index 1b3113d7..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEnderDragonChangePhaseEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EnderDragonChangePhaseEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEnderDragonChangePhaseEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEnderDragonChangePhaseEvent extends AbstractMinigameEvent<EnderDragonChangePhaseEvent, MinigameEnderDragonChangePhaseEvent> implements MinigameEnderDragonChangePhaseEvent -{ - - /** - * Constructor - * @param event - */ - public MgEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java deleted file mode 100644 index 60f90b75..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBlockFormEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.EntityBlockFormEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBlockFormEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityBlockFormEvent extends AbstractMinigameEvent<EntityBlockFormEvent, MinigameEntityBlockFormEvent> implements MinigameEntityBlockFormEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityBlockFormEvent(EntityBlockFormEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java deleted file mode 100644 index c41f25b3..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreakDoorEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityBreakDoorEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBreakDoorEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityBreakDoorEvent extends AbstractMinigameEvent<EntityBreakDoorEvent, MinigameEntityBreakDoorEvent> implements MinigameEntityBreakDoorEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityBreakDoorEvent(EntityBreakDoorEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityBreakDoorEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityBreakDoorEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java deleted file mode 100644 index 0ccc9947..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityBreedEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityBreedEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityBreedEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityBreedEvent extends AbstractMinigameEvent<EntityBreedEvent, MinigameEntityBreedEvent> implements MinigameEntityBreedEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityBreedEvent(EntityBreedEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityBreedEvent event) - { - final Entity passenger = event.getBreeder(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityBreedEvent event) - { - final Entity passenger = event.getBreeder(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java deleted file mode 100644 index 19c2e3ee..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityChangeBlockEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityChangeBlockEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityChangeBlockEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityChangeBlockEvent extends AbstractMinigameEvent<EntityChangeBlockEvent, MinigameEntityChangeBlockEvent> implements MinigameEntityChangeBlockEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityChangeBlockEvent(EntityChangeBlockEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java deleted file mode 100644 index 879438bb..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByBlockEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityCombustByBlockEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustByBlockEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityCombustByBlockEvent extends AbstractMinigameEvent<EntityCombustByBlockEvent, MinigameEntityCombustByBlockEvent> implements MinigameEntityCombustByBlockEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityCombustByBlockEvent(EntityCombustByBlockEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityCombustByBlockEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityCombustByBlockEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java deleted file mode 100644 index 9d31ac1d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustByEntityEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityCombustByEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustByEntityEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityCombustByEntityEvent extends AbstractMinigameEvent<EntityCombustByEntityEvent, MinigameEntityCombustByEntityEvent> implements MinigameEntityCombustByEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityCombustByEntityEvent(EntityCombustByEntityEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityCombustByEntityEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityCombustByEntityEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java deleted file mode 100644 index 5c31c68e..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCombustEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityCombustEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCombustEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityCombustEvent extends AbstractMinigameEvent<EntityCombustEvent, MinigameEntityCombustEvent> implements MinigameEntityCombustEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityCombustEvent(EntityCombustEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityCombustEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityCombustEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java deleted file mode 100644 index 44fa9ded..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityCreatePortalEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityCreatePortalEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityCreatePortalEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityCreatePortalEvent extends AbstractMinigameEvent<EntityCreatePortalEvent, MinigameEntityCreatePortalEvent> implements MinigameEntityCreatePortalEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityCreatePortalEvent(EntityCreatePortalEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityCreatePortalEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityCreatePortalEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getBlocks().get(0).getLocation()); // TODO correct call to get(0)? - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java deleted file mode 100644 index 4f7ce581..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByBlockEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityDamageByBlockEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageByBlockEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityDamageByBlockEvent extends AbstractMinigameEvent<EntityDamageByBlockEvent, MinigameEntityDamageByBlockEvent> implements MinigameEntityDamageByBlockEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityDamageByBlockEvent(EntityDamageByBlockEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityDamageByBlockEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityDamageByBlockEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java deleted file mode 100644 index c5a5a054..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageByEntityEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityDamageByEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageByEntityEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityDamageByEntityEvent extends AbstractMinigameEvent<EntityDamageByEntityEvent, MinigameEntityDamageByEntityEvent> implements MinigameEntityDamageByEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityDamageByEntityEvent(EntityDamageByEntityEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityDamageByEntityEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityDamageByEntityEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java deleted file mode 100644 index 2a5b79da..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDamageEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityDamageEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDamageEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityDamageEvent extends AbstractMinigameEvent<EntityDamageEvent, MinigameEntityDamageEvent> implements MinigameEntityDamageEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityDamageEvent(EntityDamageEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityDamageEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityDamageEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java deleted file mode 100644 index 3a92b875..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityDeathEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityDeathEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityDeathEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityDeathEvent extends AbstractMinigameEvent<EntityDeathEvent, MinigameEntityDeathEvent> implements MinigameEntityDeathEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityDeathEvent(EntityDeathEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java deleted file mode 100644 index 7b137392..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityExplodeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityExplodeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityExplodeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityExplodeEvent extends AbstractMinigameEvent<EntityExplodeEvent, MinigameEntityExplodeEvent> implements MinigameEntityExplodeEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityExplodeEvent(EntityExplodeEvent event) - { - super(event, null, event.getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java deleted file mode 100644 index 6b5f38b3..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityInteractEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityInteractEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityInteractEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityInteractEvent extends AbstractMinigameEvent<EntityInteractEvent, MinigameEntityInteractEvent> implements MinigameEntityInteractEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityInteractEvent(EntityInteractEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java deleted file mode 100644 index 74189c93..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEnterEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityPortalEnterEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityPortalEnterEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityPortalEnterEvent extends AbstractMinigameEvent<EntityPortalEnterEvent, MinigameEntityPortalEnterEvent> implements MinigameEntityPortalEnterEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityPortalEnterEvent(EntityPortalEnterEvent event) - { - super(event, null, event.getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java deleted file mode 100644 index 2af9d7c0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityPortalEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityPortalEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityPortalEvent extends AbstractMinigameEvent<EntityPortalEvent, MinigameEntityPortalEvent> implements MinigameEntityPortalEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityPortalEvent(EntityPortalEvent event) - { - super(event, null, event.getFrom()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java deleted file mode 100644 index 1eddf4d8..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityPortalExitEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityPortalExitEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityPortalExitEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityPortalExitEvent extends AbstractMinigameEvent<EntityPortalExitEvent, MinigameEntityPortalExitEvent> implements MinigameEntityPortalExitEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityPortalExitEvent(EntityPortalExitEvent event) - { - super(event, null, event.getFrom()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java deleted file mode 100644 index 367f95d4..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityRegainHealthEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityRegainHealthEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityRegainHealthEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityRegainHealthEvent extends AbstractMinigameEvent<EntityRegainHealthEvent, MinigameEntityRegainHealthEvent> implements MinigameEntityRegainHealthEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityRegainHealthEvent(EntityRegainHealthEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java deleted file mode 100644 index 085d31a0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityShootBowEvent.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.entity.Projectile; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.projectiles.ProjectileSource; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityShootBowEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityShootBowEvent extends AbstractMinigameEvent<EntityShootBowEvent, MinigameEntityShootBowEvent> implements MinigameEntityShootBowEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityShootBowEvent(EntityShootBowEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityShootBowEvent event) - { - final ProjectileSource passenger = ((Projectile)event.getProjectile()).getShooter(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityShootBowEvent event) - { - final ProjectileSource passenger = ((Projectile)event.getProjectile()).getShooter(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java deleted file mode 100644 index 03a70ea0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntitySpawnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntitySpawnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntitySpawnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntitySpawnEvent extends AbstractMinigameEvent<EntitySpawnEvent, MinigameEntitySpawnEvent> implements MinigameEntitySpawnEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntitySpawnEvent(EntitySpawnEvent event) - { - super(event, null, event.getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java deleted file mode 100644 index 8d76e109..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTameEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityTameEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTameEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityTameEvent extends AbstractMinigameEvent<EntityTameEvent, MinigameEntityTameEvent> implements MinigameEntityTameEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityTameEvent(EntityTameEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getOwner())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java deleted file mode 100644 index fea1a80b..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityTargetEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTargetEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityTargetEvent extends AbstractMinigameEvent<EntityTargetEvent, MinigameEntityTargetEvent> implements MinigameEntityTargetEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityTargetEvent(EntityTargetEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityTargetEvent event) - { - final Entity passenger = event.getTarget(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityTargetEvent event) - { - final Entity passenger = event.getTarget(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java deleted file mode 100644 index c4b14b92..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTargetLivingEntityEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTargetLivingEntityEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityTargetLivingEntityEvent extends AbstractMinigameEvent<EntityTargetLivingEntityEvent, MinigameEntityTargetLivingEntityEvent> implements MinigameEntityTargetLivingEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityTargetLivingEntityEvent event) - { - final Entity passenger = event.getTarget(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityTargetLivingEntityEvent event) - { - final Entity passenger = event.getTarget(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java deleted file mode 100644 index 4ab28b4b..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityTeleportEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityTeleportEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityTeleportEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityTeleportEvent extends AbstractMinigameEvent<EntityTeleportEvent, MinigameEntityTeleportEvent> implements MinigameEntityTeleportEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityTeleportEvent(EntityTeleportEvent event) - { - super(event, null, event.getFrom()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java deleted file mode 100644 index 3dc0f4a1..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityToggleGlideEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.EntityToggleGlideEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityToggleGlideEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityToggleGlideEvent extends AbstractMinigameEvent<EntityToggleGlideEvent, MinigameEntityToggleGlideEvent> implements MinigameEntityToggleGlideEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityToggleGlideEvent(EntityToggleGlideEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(EntityToggleGlideEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(EntityToggleGlideEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java deleted file mode 100644 index f887a89e..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgEntityUnleashEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.EntityUnleashEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameEntityUnleashEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgEntityUnleashEvent extends AbstractMinigameEvent<EntityUnleashEvent, MinigameEntityUnleashEvent> implements MinigameEntityUnleashEvent -{ - - /** - * Constructor - * @param event - */ - public MgEntityUnleashEvent(EntityUnleashEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java deleted file mode 100644 index 966536ae..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExpBottleEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.ExpBottleEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameExpBottleEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgExpBottleEvent extends AbstractMinigameEvent<ExpBottleEvent, MinigameExpBottleEvent> implements MinigameExpBottleEvent -{ - - /** - * Constructor - * @param event - */ - public MgExpBottleEvent(ExpBottleEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java deleted file mode 100644 index dda114a6..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgExplosionPrimeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.ExplosionPrimeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameExplosionPrimeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgExplosionPrimeEvent extends AbstractMinigameEvent<ExplosionPrimeEvent, MinigameExplosionPrimeEvent> implements MinigameExplosionPrimeEvent -{ - - /** - * Constructor - * @param event - */ - public MgExplosionPrimeEvent(ExplosionPrimeEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java deleted file mode 100644 index 5f965e7b..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFireworkExplodeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.FireworkExplodeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameFireworkExplodeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgFireworkExplodeEvent extends AbstractMinigameEvent<FireworkExplodeEvent, MinigameFireworkExplodeEvent> implements MinigameFireworkExplodeEvent -{ - - /** - * Constructor - * @param event - */ - public MgFireworkExplodeEvent(FireworkExplodeEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java deleted file mode 100644 index 81685bfd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFoodLevelChangeEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.FoodLevelChangeEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameFoodLevelChangeEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgFoodLevelChangeEvent extends AbstractMinigameEvent<FoodLevelChangeEvent, MinigameFoodLevelChangeEvent> implements MinigameFoodLevelChangeEvent -{ - - /** - * Constructor - * @param event - */ - public MgFoodLevelChangeEvent(FoodLevelChangeEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(FoodLevelChangeEvent event) - { - final Entity passenger = event.getEntity(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(FoodLevelChangeEvent event) - { - final Entity passenger = event.getEntity(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java deleted file mode 100644 index 93c633eb..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceBurnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.inventory.FurnaceBurnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameFurnaceBurnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgFurnaceBurnEvent extends AbstractMinigameEvent<FurnaceBurnEvent, MinigameFurnaceBurnEvent> implements MinigameFurnaceBurnEvent -{ - - /** - * Constructor - * @param event - */ - public MgFurnaceBurnEvent(FurnaceBurnEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java deleted file mode 100644 index c7753f00..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgFurnaceSmeltEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.inventory.FurnaceSmeltEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameFurnaceSmeltEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgFurnaceSmeltEvent extends AbstractMinigameEvent<FurnaceSmeltEvent, MinigameFurnaceSmeltEvent> implements MinigameFurnaceSmeltEvent -{ - - /** - * Constructor - * @param event - */ - public MgFurnaceSmeltEvent(FurnaceSmeltEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java deleted file mode 100644 index a3a3a0f7..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakByEntityEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingBreakByEntityEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgHangingBreakByEntityEvent extends AbstractMinigameEvent<HangingBreakByEntityEvent, MinigameHangingBreakByEntityEvent> implements MinigameHangingBreakByEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgHangingBreakByEntityEvent(HangingBreakByEntityEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(HangingBreakByEntityEvent event) - { - final Entity passenger = event.getRemover(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(HangingBreakByEntityEvent event) - { - final Entity passenger = event.getRemover(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java deleted file mode 100644 index fe419bc0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingBreakEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.hanging.HangingBreakEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingBreakEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgHangingBreakEvent extends AbstractMinigameEvent<HangingBreakEvent, MinigameHangingBreakEvent> implements MinigameHangingBreakEvent -{ - - /** - * Constructor - * @param event - */ - public MgHangingBreakEvent(HangingBreakEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java deleted file mode 100644 index 50111223..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHangingPlaceEvent.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.hanging.HangingPlaceEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameHangingPlaceEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgHangingPlaceEvent extends AbstractMinigameEvent<HangingPlaceEvent, MinigameHangingPlaceEvent> implements MinigameHangingPlaceEvent -{ - - /** - * Constructor - * @param event - */ - public MgHangingPlaceEvent(HangingPlaceEvent event) - { - super(event, player(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(HangingPlaceEvent event) - { - final Player passenger = event.getPlayer(); - return passenger == null ? null : MglibInterface.INSTANCE.get().getPlayer(passenger); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java deleted file mode 100644 index d7fd88d4..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgHorseJumpEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.entity.HorseJumpEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameHorseJumpEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgHorseJumpEvent extends AbstractMinigameEvent<HorseJumpEvent, MinigameHorseJumpEvent> implements MinigameHorseJumpEvent -{ - - /** - * Constructor - * @param event - */ - public MgHorseJumpEvent(HorseJumpEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(HorseJumpEvent event) - { - final Entity passenger = event.getEntity().getPassenger(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(HorseJumpEvent event) - { - final Entity passenger = event.getEntity().getPassenger(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java deleted file mode 100644 index c5ec80ca..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryClickEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryClickEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryClickEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryClickEvent extends AbstractMinigameEvent<InventoryClickEvent, MinigameInventoryClickEvent> implements MinigameInventoryClickEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryClickEvent(InventoryClickEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java deleted file mode 100644 index 21e3f8cd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCloseEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryCloseEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryCloseEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryCloseEvent extends AbstractMinigameEvent<InventoryCloseEvent, MinigameInventoryCloseEvent> implements MinigameInventoryCloseEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryCloseEvent(InventoryCloseEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java deleted file mode 100644 index f77ef363..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryCreativeEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryCreativeEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryCreativeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryCreativeEvent extends AbstractMinigameEvent<InventoryCreativeEvent, MinigameInventoryCreativeEvent> implements MinigameInventoryCreativeEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryCreativeEvent(InventoryCreativeEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java deleted file mode 100644 index 9f9f6f52..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryDragEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryDragEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryDragEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryDragEvent extends AbstractMinigameEvent<InventoryDragEvent, MinigameInventoryDragEvent> implements MinigameInventoryDragEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryDragEvent(InventoryDragEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java deleted file mode 100644 index e3e46e90..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryEvent extends AbstractMinigameEvent<InventoryEvent, MinigameInventoryEvent> implements MinigameInventoryEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryEvent(InventoryEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getView().getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java deleted file mode 100644 index a6ab40bd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryInteractEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryInteractEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryInteractEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryInteractEvent extends AbstractMinigameEvent<InventoryInteractEvent, MinigameInventoryInteractEvent> implements MinigameInventoryInteractEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryInteractEvent(InventoryInteractEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getWhoClicked())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java deleted file mode 100644 index de11dab5..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryMoveItemEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryMoveItemEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryMoveItemEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryMoveItemEvent extends AbstractMinigameEvent<InventoryMoveItemEvent, MinigameInventoryMoveItemEvent> implements MinigameInventoryMoveItemEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryMoveItemEvent(InventoryMoveItemEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getInitiator().getViewers().get(0))); // TODO correct to invoke get(0)? - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java deleted file mode 100644 index aa98de16..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryOpenEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryOpenEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryOpenEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryOpenEvent extends AbstractMinigameEvent<InventoryOpenEvent, MinigameInventoryOpenEvent> implements MinigameInventoryOpenEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryOpenEvent(InventoryOpenEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java deleted file mode 100644 index 888c1775..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgInventoryPickupItemEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryPickupItemEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameInventoryPickupItemEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgInventoryPickupItemEvent extends AbstractMinigameEvent<InventoryPickupItemEvent, MinigameInventoryPickupItemEvent> implements MinigameInventoryPickupItemEvent -{ - - /** - * Constructor - * @param event - */ - public MgInventoryPickupItemEvent(InventoryPickupItemEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getInventory().getViewers().get(0))); // TODO correct to invoke get(0)? - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java deleted file mode 100644 index ecae9656..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemDespawnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.ItemDespawnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameItemDespawnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgItemDespawnEvent extends AbstractMinigameEvent<ItemDespawnEvent, MinigameItemDespawnEvent> implements MinigameItemDespawnEvent -{ - - /** - * Constructor - * @param event - */ - public MgItemDespawnEvent(ItemDespawnEvent event) - { - super(event, null, event.getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java deleted file mode 100644 index 5a53cc3b..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemMergeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.ItemMergeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameItemMergeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgItemMergeEvent extends AbstractMinigameEvent<ItemMergeEvent, MinigameItemMergeEvent> implements MinigameItemMergeEvent -{ - - /** - * Constructor - * @param event - */ - public MgItemMergeEvent(ItemMergeEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java deleted file mode 100644 index 3727fc48..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgItemSpawnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.ItemSpawnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameItemSpawnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgItemSpawnEvent extends AbstractMinigameEvent<ItemSpawnEvent, MinigameItemSpawnEvent> implements MinigameItemSpawnEvent -{ - - /** - * Constructor - * @param event - */ - public MgItemSpawnEvent(ItemSpawnEvent event) - { - super(event, null, event.getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java deleted file mode 100644 index 3d5449bd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLeavesDecayEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.LeavesDecayEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameLeavesDecayEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgLeavesDecayEvent extends AbstractMinigameEvent<LeavesDecayEvent, MinigameLeavesDecayEvent> implements MinigameLeavesDecayEvent -{ - - /** - * Constructor - * @param event - */ - public MgLeavesDecayEvent(LeavesDecayEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java deleted file mode 100644 index c8880693..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgLingeringPotionSplashEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.LingeringPotionSplashEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameLingeringPotionSplashEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgLingeringPotionSplashEvent extends AbstractMinigameEvent<LingeringPotionSplashEvent, MinigameLingeringPotionSplashEvent> implements MinigameLingeringPotionSplashEvent -{ - - /** - * Constructor - * @param event - */ - public MgLingeringPotionSplashEvent(LingeringPotionSplashEvent event) - { - super(event, null, event.getAreaEffectCloud().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java deleted file mode 100644 index 57aff52d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgNotePlayEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.NotePlayEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameNotePlayEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgNotePlayEvent extends AbstractMinigameEvent<NotePlayEvent, MinigameNotePlayEvent> implements MinigameNotePlayEvent -{ - - /** - * Constructor - * @param event - */ - public MgNotePlayEvent(NotePlayEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java deleted file mode 100644 index e286acc5..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPigZapEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.PigZapEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePigZapEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPigZapEvent extends AbstractMinigameEvent<PigZapEvent, MinigamePigZapEvent> implements MinigamePigZapEvent -{ - - /** - * Constructor - * @param event - */ - public MgPigZapEvent(PigZapEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java deleted file mode 100644 index 0e26bc50..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAchievementAwardedEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerAchievementAwardedEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerAchievementAwardedEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerAchievementAwardedEvent extends AbstractMinigameEvent<PlayerAchievementAwardedEvent, MinigamePlayerAchievementAwardedEvent> implements MinigamePlayerAchievementAwardedEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java deleted file mode 100644 index 636f92a9..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerAnimationEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerAnimationEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerAnimationEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerAnimationEvent extends AbstractMinigameEvent<PlayerAnimationEvent, MinigamePlayerAnimationEvent> implements MinigamePlayerAnimationEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerAnimationEvent(PlayerAnimationEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java deleted file mode 100644 index c47b143d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerArmorStandManipulateEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerArmorStandManipulateEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerArmorStandManipulateEvent extends AbstractMinigameEvent<PlayerArmorStandManipulateEvent, MinigamePlayerArmorStandManipulateEvent> implements MinigamePlayerArmorStandManipulateEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java deleted file mode 100644 index 836e9805..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedEnterEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerBedEnterEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBedEnterEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerBedEnterEvent extends AbstractMinigameEvent<PlayerBedEnterEvent, MinigamePlayerBedEnterEvent> implements MinigamePlayerBedEnterEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerBedEnterEvent(PlayerBedEnterEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java deleted file mode 100644 index ee402d35..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBedLeaveEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerBedLeaveEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBedLeaveEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerBedLeaveEvent extends AbstractMinigameEvent<PlayerBedLeaveEvent, MinigamePlayerBedLeaveEvent> implements MinigamePlayerBedLeaveEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerBedLeaveEvent(PlayerBedLeaveEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java deleted file mode 100644 index 8ba87e60..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketEmptyEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerBucketEmptyEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBucketEmptyEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerBucketEmptyEvent extends AbstractMinigameEvent<PlayerBucketEmptyEvent, MinigamePlayerBucketEmptyEvent> implements MinigamePlayerBucketEmptyEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerBucketEmptyEvent(PlayerBucketEmptyEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java deleted file mode 100644 index bb43bfc6..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerBucketFillEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerBucketFillEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerBucketFillEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerBucketFillEvent extends AbstractMinigameEvent<PlayerBucketFillEvent, MinigamePlayerBucketFillEvent> implements MinigamePlayerBucketFillEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerBucketFillEvent(PlayerBucketFillEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java deleted file mode 100644 index e0271887..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedMainHandEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerChangedMainHandEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChangedMainHandEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerChangedMainHandEvent extends AbstractMinigameEvent<PlayerChangedMainHandEvent, MinigamePlayerChangedMainHandEvent> implements MinigamePlayerChangedMainHandEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerChangedMainHandEvent(PlayerChangedMainHandEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java deleted file mode 100644 index 0e8763a2..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChangedWorldEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerChangedWorldEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChangedWorldEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerChangedWorldEvent extends AbstractMinigameEvent<PlayerChangedWorldEvent, MinigamePlayerChangedWorldEvent> implements MinigamePlayerChangedWorldEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerChangedWorldEvent(PlayerChangedWorldEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java deleted file mode 100644 index e42658e8..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChannelEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerChannelEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChannelEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerChannelEvent extends AbstractMinigameEvent<PlayerChannelEvent, MinigamePlayerChannelEvent> implements MinigamePlayerChannelEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerChannelEvent(PlayerChannelEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java deleted file mode 100644 index 95083c28..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerChatEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChatEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerChatEvent extends AbstractMinigameEvent<PlayerChatEvent, MinigamePlayerChatEvent> implements MinigamePlayerChatEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerChatEvent(PlayerChatEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java deleted file mode 100644 index 2d37437d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerChatTabCompleteEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerChatTabCompleteEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerChatTabCompleteEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerChatTabCompleteEvent extends AbstractMinigameEvent<PlayerChatTabCompleteEvent, MinigamePlayerChatTabCompleteEvent> implements MinigamePlayerChatTabCompleteEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java deleted file mode 100644 index 2731165f..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerCommandPreprocessEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerCommandPreprocessEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerCommandPreprocessEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerCommandPreprocessEvent extends AbstractMinigameEvent<PlayerCommandPreprocessEvent, MinigamePlayerCommandPreprocessEvent> implements MinigamePlayerCommandPreprocessEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java deleted file mode 100644 index c2c912f6..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDeathEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.PlayerDeathEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerDeathEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerDeathEvent extends AbstractMinigameEvent<PlayerDeathEvent, MinigamePlayerDeathEvent> implements MinigamePlayerDeathEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerDeathEvent(PlayerDeathEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getEntity())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java deleted file mode 100644 index b7c98c6d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerDropItemEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerDropItemEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerDropItemEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerDropItemEvent extends AbstractMinigameEvent<PlayerDropItemEvent, MinigamePlayerDropItemEvent> implements MinigamePlayerDropItemEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerDropItemEvent(PlayerDropItemEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java deleted file mode 100644 index 2e6eb638..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEditBookEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerEditBookEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerEditBookEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerEditBookEvent extends AbstractMinigameEvent<PlayerEditBookEvent, MinigamePlayerEditBookEvent> implements MinigamePlayerEditBookEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerEditBookEvent(PlayerEditBookEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java deleted file mode 100644 index 1d8847bf..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerEggThrowEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerEggThrowEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerEggThrowEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerEggThrowEvent extends AbstractMinigameEvent<PlayerEggThrowEvent, MinigamePlayerEggThrowEvent> implements MinigamePlayerEggThrowEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerEggThrowEvent(PlayerEggThrowEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java deleted file mode 100644 index 1b6bb5c7..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerExpChangeEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerExpChangeEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerExpChangeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerExpChangeEvent extends AbstractMinigameEvent<PlayerExpChangeEvent, MinigamePlayerExpChangeEvent> implements MinigamePlayerExpChangeEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerExpChangeEvent(PlayerExpChangeEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java deleted file mode 100644 index fec99c01..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerFishEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerFishEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerFishEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerFishEvent extends AbstractMinigameEvent<PlayerFishEvent, MinigamePlayerFishEvent> implements MinigamePlayerFishEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerFishEvent(PlayerFishEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java deleted file mode 100644 index 088679a5..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerGameModeChangeEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerGameModeChangeEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerGameModeChangeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerGameModeChangeEvent extends AbstractMinigameEvent<PlayerGameModeChangeEvent, MinigamePlayerGameModeChangeEvent> implements MinigamePlayerGameModeChangeEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerGameModeChangeEvent(PlayerGameModeChangeEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java deleted file mode 100644 index 43e45502..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractAtEntityEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerInteractAtEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractAtEntityEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerInteractAtEntityEvent extends AbstractMinigameEvent<PlayerInteractAtEntityEvent, MinigamePlayerInteractAtEntityEvent> implements MinigamePlayerInteractAtEntityEvent -{ - - /** - * Constructor - * - * @param event - */ - public MgPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java deleted file mode 100644 index 590d0ef4..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEntityEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerInteractEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractEntityEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerInteractEntityEvent extends AbstractMinigameEvent<PlayerInteractEntityEvent, MinigamePlayerInteractEntityEvent> implements MinigamePlayerInteractEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerInteractEntityEvent(PlayerInteractEntityEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java deleted file mode 100644 index 24ebdaf9..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInteractEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerInteractEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInteractEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerInteractEvent extends AbstractMinigameEvent<PlayerInteractEvent, MinigamePlayerInteractEvent> implements MinigamePlayerInteractEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerInteractEvent(PlayerInteractEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java deleted file mode 100644 index 83b1df1c..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerInventoryEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerInventoryEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerInventoryEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerInventoryEvent extends AbstractMinigameEvent<PlayerInventoryEvent, MinigamePlayerInventoryEvent> implements MinigamePlayerInventoryEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerInventoryEvent(PlayerInventoryEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java deleted file mode 100644 index 7ea06354..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemBreakEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerItemBreakEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemBreakEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerItemBreakEvent extends AbstractMinigameEvent<PlayerItemBreakEvent, MinigamePlayerItemBreakEvent> implements MinigamePlayerItemBreakEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerItemBreakEvent(PlayerItemBreakEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java deleted file mode 100644 index 2accb965..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemConsumeEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerItemConsumeEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemConsumeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerItemConsumeEvent extends AbstractMinigameEvent<PlayerItemConsumeEvent, MinigamePlayerItemConsumeEvent> implements MinigamePlayerItemConsumeEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerItemConsumeEvent(PlayerItemConsumeEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java deleted file mode 100644 index 1deb7ee8..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemDamageEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerItemDamageEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemDamageEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerItemDamageEvent extends AbstractMinigameEvent<PlayerItemDamageEvent, MinigamePlayerItemDamageEvent> implements MinigamePlayerItemDamageEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerItemDamageEvent(PlayerItemDamageEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java deleted file mode 100644 index d994268e..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerItemHeldEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerItemHeldEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerItemHeldEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerItemHeldEvent extends AbstractMinigameEvent<PlayerItemHeldEvent, MinigamePlayerItemHeldEvent> implements MinigamePlayerItemHeldEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerItemHeldEvent(PlayerItemHeldEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java deleted file mode 100644 index e0eb7625..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerJoinEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerJoinEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerJoinEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerJoinEvent extends AbstractMinigameEvent<PlayerJoinEvent, MinigamePlayerJoinEvent> implements MinigamePlayerJoinEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerJoinEvent(PlayerJoinEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java deleted file mode 100644 index 5278d3c3..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerKickEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerKickEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerKickEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerKickEvent extends AbstractMinigameEvent<PlayerKickEvent, MinigamePlayerKickEvent> implements MinigamePlayerKickEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerKickEvent(PlayerKickEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java deleted file mode 100644 index 8884024d..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLeashEntityEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.PlayerLeashEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLeashEntityEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerLeashEntityEvent extends AbstractMinigameEvent<PlayerLeashEntityEvent, MinigamePlayerLeashEntityEvent> implements MinigamePlayerLeashEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerLeashEntityEvent(PlayerLeashEntityEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java deleted file mode 100644 index 9d14cbbd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLevelChangeEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerLevelChangeEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLevelChangeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerLevelChangeEvent extends AbstractMinigameEvent<PlayerLevelChangeEvent, MinigamePlayerLevelChangeEvent> implements MinigamePlayerLevelChangeEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerLevelChangeEvent(PlayerLevelChangeEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java deleted file mode 100644 index 76f7efc3..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerLoginEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerLoginEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerLoginEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerLoginEvent extends AbstractMinigameEvent<PlayerLoginEvent, MinigamePlayerLoginEvent> implements MinigamePlayerLoginEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerLoginEvent(PlayerLoginEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java deleted file mode 100644 index 2615c10e..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerMoveEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerMoveEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerMoveEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerMoveEvent extends AbstractMinigameEvent<PlayerMoveEvent, MinigamePlayerMoveEvent> implements MinigamePlayerMoveEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerMoveEvent(PlayerMoveEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java deleted file mode 100644 index ec69f245..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupArrowEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerPickupArrowEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPickupArrowEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerPickupArrowEvent extends AbstractMinigameEvent<PlayerPickupArrowEvent, MinigamePlayerPickupArrowEvent> implements MinigamePlayerPickupArrowEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerPickupArrowEvent(PlayerPickupArrowEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java deleted file mode 100644 index ccf4af2e..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPickupItemEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerPickupItemEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPickupItemEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerPickupItemEvent extends AbstractMinigameEvent<PlayerPickupItemEvent, MinigamePlayerPickupItemEvent> implements MinigamePlayerPickupItemEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerPickupItemEvent(PlayerPickupItemEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java deleted file mode 100644 index 729ae8cd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerPortalEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerPortalEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerPortalEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerPortalEvent extends AbstractMinigameEvent<PlayerPortalEvent, MinigamePlayerPortalEvent> implements MinigamePlayerPortalEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerPortalEvent(PlayerPortalEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java deleted file mode 100644 index 2ba2e661..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerQuitEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerQuitEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerQuitEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerQuitEvent extends AbstractMinigameEvent<PlayerQuitEvent, MinigamePlayerQuitEvent> implements MinigamePlayerQuitEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerQuitEvent(PlayerQuitEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java deleted file mode 100644 index 5eda7ea7..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRegisterChannelEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerRegisterChannelEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerRegisterChannelEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerRegisterChannelEvent extends AbstractMinigameEvent<PlayerRegisterChannelEvent, MinigamePlayerRegisterChannelEvent> implements MinigamePlayerRegisterChannelEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerRegisterChannelEvent(PlayerRegisterChannelEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java deleted file mode 100644 index ff717e34..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerResourcePackStatusEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerResourcePackStatusEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerResourcePackStatusEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerResourcePackStatusEvent extends AbstractMinigameEvent<PlayerResourcePackStatusEvent, MinigamePlayerResourcePackStatusEvent> implements MinigamePlayerResourcePackStatusEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java deleted file mode 100644 index e2c9408a..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerRespawnEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerRespawnEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerRespawnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerRespawnEvent extends AbstractMinigameEvent<PlayerRespawnEvent, MinigamePlayerRespawnEvent> implements MinigamePlayerRespawnEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerRespawnEvent(PlayerRespawnEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java deleted file mode 100644 index 439ea7c0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerShearEntityEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerShearEntityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerShearEntityEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerShearEntityEvent extends AbstractMinigameEvent<PlayerShearEntityEvent, MinigamePlayerShearEntityEvent> implements MinigamePlayerShearEntityEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerShearEntityEvent(PlayerShearEntityEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java deleted file mode 100644 index a0de6631..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSpawnLocationEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerSpawnLocationEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerSpawnLocationEvent extends AbstractMinigameEvent<PlayerSpawnLocationEvent, MinigamePlayerSpawnLocationEvent> implements MinigamePlayerSpawnLocationEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerSpawnLocationEvent(PlayerSpawnLocationEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java deleted file mode 100644 index 54d47547..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerStatisticIncrementEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerStatisticIncrementEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerStatisticIncrementEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerStatisticIncrementEvent extends AbstractMinigameEvent<PlayerStatisticIncrementEvent, MinigamePlayerStatisticIncrementEvent> implements MinigamePlayerStatisticIncrementEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java deleted file mode 100644 index 837323ac..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerSwapHandItemsEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerSwapHandItemsEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerSwapHandItemsEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerSwapHandItemsEvent extends AbstractMinigameEvent<PlayerSwapHandItemsEvent, MinigamePlayerSwapHandItemsEvent> implements MinigamePlayerSwapHandItemsEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java deleted file mode 100644 index e36cf4f0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerTeleportEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerTeleportEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerTeleportEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerTeleportEvent extends AbstractMinigameEvent<PlayerTeleportEvent, MinigamePlayerTeleportEvent> implements MinigamePlayerTeleportEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerTeleportEvent(PlayerTeleportEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java deleted file mode 100644 index cdadf475..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleFlightEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerToggleFlightEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleFlightEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerToggleFlightEvent extends AbstractMinigameEvent<PlayerToggleFlightEvent, MinigamePlayerToggleFlightEvent> implements MinigamePlayerToggleFlightEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerToggleFlightEvent(PlayerToggleFlightEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java deleted file mode 100644 index d9ec98b7..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSneakEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerToggleSneakEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleSneakEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerToggleSneakEvent extends AbstractMinigameEvent<PlayerToggleSneakEvent, MinigamePlayerToggleSneakEvent> implements MinigamePlayerToggleSneakEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerToggleSneakEvent(PlayerToggleSneakEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java deleted file mode 100644 index 720702e1..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerToggleSprintEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerToggleSprintEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerToggleSprintEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerToggleSprintEvent extends AbstractMinigameEvent<PlayerToggleSprintEvent, MinigamePlayerToggleSprintEvent> implements MinigamePlayerToggleSprintEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerToggleSprintEvent(PlayerToggleSprintEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java deleted file mode 100644 index fd39ab7e..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerUnregisterChannelEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerUnregisterChannelEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerUnregisterChannelEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerUnregisterChannelEvent extends AbstractMinigameEvent<PlayerUnregisterChannelEvent, MinigamePlayerUnregisterChannelEvent> implements MinigamePlayerUnregisterChannelEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java deleted file mode 100644 index 7753f797..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPlayerVelocityEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.player.PlayerVelocityEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePlayerVelocityEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPlayerVelocityEvent extends AbstractMinigameEvent<PlayerVelocityEvent, MinigamePlayerVelocityEvent> implements MinigamePlayerVelocityEvent -{ - - /** - * Constructor - * @param event - */ - public MgPlayerVelocityEvent(PlayerVelocityEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java deleted file mode 100644 index 7f42808a..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPotionSplashEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.PotionSplashEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePotionSplashEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPotionSplashEvent extends AbstractMinigameEvent<PotionSplashEvent, MinigamePotionSplashEvent> implements MinigamePotionSplashEvent -{ - - /** - * Constructor - * @param event - */ - public MgPotionSplashEvent(PotionSplashEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java deleted file mode 100644 index 2246b783..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareAnvilEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.PrepareAnvilEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareAnvilEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPrepareAnvilEvent extends AbstractMinigameEvent<PrepareAnvilEvent, MinigamePrepareAnvilEvent> implements MinigamePrepareAnvilEvent -{ - - /** - * Constructor - * @param event - */ - public MgPrepareAnvilEvent(PrepareAnvilEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getView().getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java deleted file mode 100644 index d1c32837..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemCraftEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.PrepareItemCraftEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareItemCraftEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPrepareItemCraftEvent extends AbstractMinigameEvent<PrepareItemCraftEvent, MinigamePrepareItemCraftEvent> implements MinigamePrepareItemCraftEvent -{ - - /** - * Constructor - * @param event - */ - public MgPrepareItemCraftEvent(PrepareItemCraftEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer((Player) event.getView().getPlayer())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java deleted file mode 100644 index d60be5dd..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgPrepareItemEnchantEvent.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigamePrepareItemEnchantEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgPrepareItemEnchantEvent extends AbstractMinigameEvent<PrepareItemEnchantEvent, MinigamePrepareItemEnchantEvent> implements MinigamePrepareItemEnchantEvent -{ - - /** - * Constructor - * @param event - */ - public MgPrepareItemEnchantEvent(PrepareItemEnchantEvent event) - { - super(event, MglibInterface.INSTANCE.get().getPlayer(event.getEnchanter())); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java deleted file mode 100644 index bf92a412..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileHitEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.projectiles.ProjectileSource; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameProjectileHitEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgProjectileHitEvent extends AbstractMinigameEvent<ProjectileHitEvent, MinigameProjectileHitEvent> implements MinigameProjectileHitEvent -{ - - /** - * Constructor - * @param event - */ - public MgProjectileHitEvent(ProjectileHitEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(ProjectileHitEvent event) - { - final ProjectileSource source = event.getEntity().getShooter(); - return source instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) source) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(ProjectileHitEvent event) - { - final ProjectileSource source = event.getEntity().getShooter(); - if (source instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java deleted file mode 100644 index a06546d0..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgProjectileLaunchEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.projectiles.ProjectileSource; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameProjectileLaunchEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgProjectileLaunchEvent extends AbstractMinigameEvent<ProjectileLaunchEvent, MinigameProjectileLaunchEvent> implements MinigameProjectileLaunchEvent -{ - - /** - * Constructor - * @param event - */ - public MgProjectileLaunchEvent(ProjectileLaunchEvent event) - { - super(event, player(event), location(event)); - } - - /** - * @param event - * @return player - */ - private static ArenaPlayerInterface player(ProjectileLaunchEvent event) - { - final ProjectileSource source = event.getEntity().getShooter(); - return source instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) source) : null; - } - - /** - * @param event - * @return arena - */ - private static ArenaInterface location(ProjectileLaunchEvent event) - { - final ProjectileSource source = event.getEntity().getShooter(); - if (source instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java deleted file mode 100644 index ec519471..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepDyeWoolEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.SheepDyeWoolEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameSheepDyeWoolEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgSheepDyeWoolEvent extends AbstractMinigameEvent<SheepDyeWoolEvent, MinigameSheepDyeWoolEvent> implements MinigameSheepDyeWoolEvent -{ - - /** - * Constructor - * @param event - */ - public MgSheepDyeWoolEvent(SheepDyeWoolEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java deleted file mode 100644 index 291fb3fb..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSheepRegrowWoolEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.SheepRegrowWoolEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameSheepRegrowWoolEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgSheepRegrowWoolEvent extends AbstractMinigameEvent<SheepRegrowWoolEvent, MinigameSheepRegrowWoolEvent> implements MinigameSheepRegrowWoolEvent -{ - - /** - * Constructor - * @param event - */ - public MgSheepRegrowWoolEvent(SheepRegrowWoolEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java deleted file mode 100644 index b657318c..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSignChangeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.block.SignChangeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameSignChangeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgSignChangeEvent extends AbstractMinigameEvent<SignChangeEvent, MinigameSignChangeEvent> implements MinigameSignChangeEvent -{ - - /** - * Constructor - * @param event - */ - public MgSignChangeEvent(SignChangeEvent event) - { - super(event, null, event.getBlock().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java deleted file mode 100644 index b7a4af2a..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSlimeSplitEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.SlimeSplitEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameSlimeSplitEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgSlimeSplitEvent extends AbstractMinigameEvent<SlimeSplitEvent, MinigameSlimeSplitEvent> implements MinigameSlimeSplitEvent -{ - - /** - * Constructor - * @param event - */ - public MgSlimeSplitEvent(SlimeSplitEvent event) - { - super(event, null, event.getEntity().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java deleted file mode 100644 index 2697a26a..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgSpawnerSpawnEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.SpawnerSpawnEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameSpawnerSpawnEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgSpawnerSpawnEvent extends AbstractMinigameEvent<SpawnerSpawnEvent, MinigameSpawnerSpawnEvent> implements MinigameSpawnerSpawnEvent -{ - - /** - * Constructor - * @param event - */ - public MgSpawnerSpawnEvent(SpawnerSpawnEvent event) - { - super(event, null, event.getSpawner().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java deleted file mode 100644 index d08f6e37..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleBlockCollisionEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleBlockCollisionEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleBlockCollisionEvent extends AbstractMinigameEvent<VehicleBlockCollisionEvent, MinigameVehicleBlockCollisionEvent> implements MinigameVehicleBlockCollisionEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleBlockCollisionEvent(VehicleBlockCollisionEvent event) - { - super(event, passenger(event), location(event)); - } - - /** - * @param event - * @return passanger - */ - private static ArenaPlayerInterface passenger(VehicleBlockCollisionEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return passanger - */ - private static ArenaInterface location(VehicleBlockCollisionEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java deleted file mode 100644 index 0e46bde8..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleCreateEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleCreateEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleCreateEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleCreateEvent extends AbstractMinigameEvent<VehicleCreateEvent, MinigameVehicleCreateEvent> implements MinigameVehicleCreateEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleCreateEvent(VehicleCreateEvent event) - { - super(event, passenger(event), location(event)); - } - - /** - * @param event - * @return passanger - */ - private static ArenaPlayerInterface passenger(VehicleCreateEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return passanger - */ - private static ArenaInterface location(VehicleCreateEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java deleted file mode 100644 index 6ff4f5b3..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDamageEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleDamageEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleDamageEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleDamageEvent extends AbstractMinigameEvent<VehicleDamageEvent, MinigameVehicleDamageEvent> implements MinigameVehicleDamageEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleDamageEvent(VehicleDamageEvent event) - { - super(event, passenger(event), location(event)); - } - - /** - * @param event - * @return passanger - */ - private static ArenaPlayerInterface passenger(VehicleDamageEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return passanger - */ - private static ArenaInterface location(VehicleDamageEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java deleted file mode 100644 index f1a11775..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleDestroyEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleDestroyEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleDestroyEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleDestroyEvent extends AbstractMinigameEvent<VehicleDestroyEvent, MinigameVehicleDestroyEvent> implements MinigameVehicleDestroyEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleDestroyEvent(VehicleDestroyEvent event) - { - super(event, passenger(event), location(event)); - } - - /** - * @param event - * @return passanger - */ - private static ArenaPlayerInterface passenger(VehicleDestroyEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - return passenger instanceof Player ? MglibInterface.INSTANCE.get().getPlayer((Player) passenger) : null; - } - - /** - * @param event - * @return passanger - */ - private static ArenaInterface location(VehicleDestroyEvent event) - { - final Entity passenger = event.getVehicle().getPassenger(); - if (passenger instanceof Player) - { - return null; // will force to calculate from player - } - return MglibInterface.INSTANCE.get().getArenaFromLocation(event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java deleted file mode 100644 index 0d882eae..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEnterEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleEnterEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleEnterEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleEnterEvent extends AbstractMinigameEvent<VehicleEnterEvent, MinigameVehicleEnterEvent> implements MinigameVehicleEnterEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleEnterEvent(VehicleEnterEvent event) - { - super(event, (event.getEntered() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getEntered()) : null, event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java deleted file mode 100644 index 500fe496..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleEntityCollisionEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleEntityCollisionEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleEntityCollisionEvent extends AbstractMinigameEvent<VehicleEntityCollisionEvent, MinigameVehicleEntityCollisionEvent> implements MinigameVehicleEntityCollisionEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleEntityCollisionEvent(VehicleEntityCollisionEvent event) - { - super(event, (event.getVehicle().getPassenger() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getVehicle().getPassenger()) : null, event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java deleted file mode 100644 index 4ceed84a..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleExitEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleExitEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleExitEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleExitEvent extends AbstractMinigameEvent<VehicleExitEvent, MinigameVehicleExitEvent> implements MinigameVehicleExitEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleExitEvent(VehicleExitEvent event) - { - super(event, (event.getExited() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getExited()) : null, event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java deleted file mode 100644 index f10d0327..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleMoveEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleMoveEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleMoveEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleMoveEvent extends AbstractMinigameEvent<VehicleMoveEvent, MinigameVehicleMoveEvent> implements MinigameVehicleMoveEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleMoveEvent(VehicleMoveEvent event) - { - super(event, (event.getVehicle().getPassenger() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getVehicle().getPassenger()) : null); // TODO from/to - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java deleted file mode 100644 index 88c6fe15..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVehicleUpdateEvent.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.entity.Player; -import org.bukkit.event.vehicle.VehicleUpdateEvent; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVehicleUpdateEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVehicleUpdateEvent extends AbstractMinigameEvent<VehicleUpdateEvent, MinigameVehicleUpdateEvent> implements MinigameVehicleUpdateEvent -{ - - /** - * Constructor - * @param event - */ - public MgVehicleUpdateEvent(VehicleUpdateEvent event) - { - super(event, (event.getVehicle().getPassenger() instanceof Player) ? MglibInterface.INSTANCE.get().getPlayer((Player) event.getVehicle().getPassenger()) : null, event.getVehicle().getLocation()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java deleted file mode 100644 index 2b7ea9de..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerAcquireTradeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.VillagerAcquireTradeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVillagerAcquireTradeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVillagerAcquireTradeEvent extends AbstractMinigameEvent<VillagerAcquireTradeEvent, MinigameVillagerAcquireTradeEvent> implements MinigameVillagerAcquireTradeEvent -{ - - /** - * Constructor - * @param event - */ - public MgVillagerAcquireTradeEvent(VillagerAcquireTradeEvent event) - { - super(event, null, event.getEntity().getLocation()); // TODO how to get the player that trades? - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java b/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java deleted file mode 100644 index 0ea0bb85..00000000 --- a/LIBv2/nms/v1_10_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_10_1/event/MgVillagerReplenishTradeEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_10_1.event; - -import org.bukkit.event.entity.VillagerReplenishTradeEvent; - -import com.github.mce.minigames.api.arena.rules.bevents.MinigameVillagerReplenishTradeEvent; -import com.github.mce.minigames.impl.nms.AbstractMinigameEvent; - -/** - * Minigame event implementation - * - * @author mepeisen - */ -public class MgVillagerReplenishTradeEvent extends AbstractMinigameEvent<VillagerReplenishTradeEvent, MinigameVillagerReplenishTradeEvent> implements MinigameVillagerReplenishTradeEvent -{ - - /** - * Constructor - * @param event - */ - public MgVillagerReplenishTradeEvent(VillagerReplenishTradeEvent event) - { - super(event, null, event.getEntity().getLocation()); // TODO how to get the player that trades? - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java deleted file mode 100644 index 393c1353..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAreaEffectCloudApplyEventTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.Location; -import org.bukkit.entity.AreaEffectCloud; -import org.bukkit.entity.LivingEntity; -import org.bukkit.event.entity.AreaEffectCloudApplyEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgAreaEffectCloudApplyEvent; - -/** - * Test for {@link MgAreaEffectCloudApplyEvent} - * - * @author mepeisen - * - */ -public class MgAreaEffectCloudApplyEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final AreaEffectCloud cloud = mock(AreaEffectCloud.class); - when(cloud.getLocation()).thenReturn(loc); - final List<LivingEntity> affected = new ArrayList<>(); - final AreaEffectCloudApplyEvent evt = new AreaEffectCloudApplyEvent(cloud, affected); - final MgAreaEffectCloudApplyEvent mgevt = new MgAreaEffectCloudApplyEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java deleted file mode 100644 index 7668ebef..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgAsyncPlayerChatEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.HashSet; - -import org.bukkit.entity.Player; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgAsyncPlayerChatEvent; - -/** - * Test for {@link MgAsyncPlayerChatEvent} - * - * @author mepeisen - * - */ -public class MgAsyncPlayerChatEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - when(lib.getPlayer(any(Player.class))).thenReturn(player); - when(player.getArena()).thenReturn(arena); - - final AsyncPlayerChatEvent evt = new AsyncPlayerChatEvent(true, mock(Player.class), "FOO", new HashSet<>()); //$NON-NLS-1$ - final MgAsyncPlayerChatEvent mgevt = new MgAsyncPlayerChatEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java deleted file mode 100644 index 89d5c81a..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBreakEventTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockBreakEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockBreakEvent; - -/** - * Test for {@link MgBlockBreakEvent} - * - * @author mepeisen - * - */ -public class MgBlockBreakEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - when(lib.getPlayer(any(Player.class))).thenReturn(player); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockBreakEvent evt = new BlockBreakEvent(block, mock(Player.class)); - final MgBlockBreakEvent mgevt = new MgBlockBreakEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java deleted file mode 100644 index 77cfc242..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockBurnEventTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockBurnEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockBurnEvent; - -/** - * Test for {@link MgBlockBurnEvent} - * - * @author mepeisen - * - */ -public class MgBlockBurnEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockBurnEvent evt = new BlockBurnEvent(block); - final MgBlockBurnEvent mgevt = new MgBlockBurnEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java deleted file mode 100644 index 92fdfef6..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockCanBuildEventTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockCanBuildEvent; - -/** - * Test for {@link MgBlockCanBuildEvent} - * - * @author mepeisen - * - */ -public class MgBlockCanBuildEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockCanBuildEvent evt = new BlockCanBuildEvent(block, 1, false); - final MgBlockCanBuildEvent mgevt = new MgBlockCanBuildEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java deleted file mode 100644 index 436f2bca..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDamageEventTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.inventory.ItemStack; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockDamageEvent; - -/** - * Test for {@link MgBlockDamageEvent} - * - * @author mepeisen - * - */ -public class MgBlockDamageEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - when(lib.getPlayer(any(Player.class))).thenReturn(player); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockDamageEvent evt = new BlockDamageEvent(mock(Player.class), block, new ItemStack(Material.ACACIA_DOOR), false); - final MgBlockDamageEvent mgevt = new MgBlockDamageEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java deleted file mode 100644 index 4e46b6e2..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockDispenseEventTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.util.Vector; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockDispenseEvent; - -/** - * Test for {@link MgBlockDispenseEvent} - * - * @author mepeisen - * - */ -public class MgBlockDispenseEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockDispenseEvent evt = new BlockDispenseEvent(block, new ItemStack(Material.ACACIA_DOOR), new Vector(1, 1, 1)); - final MgBlockDispenseEvent mgevt = new MgBlockDispenseEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java deleted file mode 100644 index df203ad3..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExpEventTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockExpEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockExpEvent; - -/** - * Test for {@link MgBlockExpEvent} - * - * @author mepeisen - * - */ -public class MgBlockExpEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockExpEvent evt = new BlockExpEvent(block, 1); - final MgBlockExpEvent mgevt = new MgBlockExpEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java deleted file mode 100644 index a21734cc..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockExplodeEventTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.ArrayList; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockExplodeEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockExplodeEvent; - -/** - * Test for {@link MgBlockExplodeEvent} - * - * @author mepeisen - * - */ -public class MgBlockExplodeEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockExplodeEvent evt = new BlockExplodeEvent(block, new ArrayList<>(), 20); - final MgBlockExplodeEvent mgevt = new MgBlockExplodeEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java deleted file mode 100644 index 7b99c228..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFadeEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.event.block.BlockFadeEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockFadeEvent; - -/** - * Test for {@link MgBlockFadeEvent} - * - * @author mepeisen - * - */ -public class MgBlockFadeEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockFadeEvent evt = new BlockFadeEvent(block, mock(BlockState.class)); - final MgBlockFadeEvent mgevt = new MgBlockFadeEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java deleted file mode 100644 index f30752ad..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFormEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.event.block.BlockFormEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockFormEvent; - -/** - * Test for {@link MgBlockFormEvent} - * - * @author mepeisen - * - */ -public class MgBlockFormEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockFormEvent evt = new BlockFormEvent(block, mock(BlockState.class)); - final MgBlockFormEvent mgevt = new MgBlockFormEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java deleted file mode 100644 index 5f4b1bf3..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockFromToEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.event.block.BlockFromToEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockFromToEvent; - -/** - * Test for {@link MgBlockFromToEvent} - * - * @author mepeisen - * - */ -public class MgBlockFromToEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockFromToEvent evt = new BlockFromToEvent(block, BlockFace.DOWN); - final MgBlockFromToEvent mgevt = new MgBlockFromToEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java deleted file mode 100644 index ec5c8390..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockGrowEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.event.block.BlockGrowEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockGrowEvent; - -/** - * Test for {@link MgBlockGrowEvent} - * - * @author mepeisen - * - */ -public class MgBlockGrowEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockGrowEvent evt = new BlockGrowEvent(block, mock(BlockState.class)); - final MgBlockGrowEvent mgevt = new MgBlockGrowEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java deleted file mode 100644 index af77f101..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockIgniteEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockIgniteEvent.IgniteCause; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockIgniteEvent; - -/** - * Test for {@link MgBlockIgniteEvent} - * - * @author mepeisen - * - */ -public class MgBlockIgniteEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockIgniteEvent evt = new BlockIgniteEvent(block, IgniteCause.ENDER_CRYSTAL, mock(Block.class)); - final MgBlockIgniteEvent mgevt = new MgBlockIgniteEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java deleted file mode 100644 index 9417f405..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockMultiPlaceEventTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.inventory.ItemStack; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockMultiPlaceEvent; - -/** - * Test for {@link MgBlockMultiPlaceEvent} - * - * @author mepeisen - * - */ -public class MgBlockMultiPlaceEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - when(lib.getPlayer(any(Player.class))).thenReturn(player); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final List<BlockState> states = new ArrayList<>(); - final BlockState state = mock(BlockState.class); - when(state.getBlock()).thenReturn(block); - states.add(state); - final BlockMultiPlaceEvent evt = new BlockMultiPlaceEvent(states, block, new ItemStack(Material.ACACIA_DOOR), mock(Player.class), true); - final MgBlockMultiPlaceEvent mgevt = new MgBlockMultiPlaceEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java deleted file mode 100644 index cae356d4..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPhysicsEventTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPhysicsEvent; - -/** - * Test for {@link MgBlockPhysicsEvent} - * - * @author mepeisen - * - */ -public class MgBlockPhysicsEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockPhysicsEvent evt = new BlockPhysicsEvent(block, 1); - final MgBlockPhysicsEvent mgevt = new MgBlockPhysicsEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java deleted file mode 100644 index 1a83e306..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonExtendEventTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.ArrayList; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPistonExtendEvent; - -/** - * Test for {@link MgBlockPistonExtendEvent} - * - * @author mepeisen - * - */ -public class MgBlockPistonExtendEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockPistonExtendEvent evt = new BlockPistonExtendEvent(block, new ArrayList<>(), BlockFace.DOWN); - final MgBlockPistonExtendEvent mgevt = new MgBlockPistonExtendEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java deleted file mode 100644 index baf2d126..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPistonRetractEventTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import java.util.ArrayList; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPistonRetractEvent; - -/** - * Test for {@link MgBlockPistonRetractEvent} - * - * @author mepeisen - * - */ -public class MgBlockPistonRetractEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockPistonRetractEvent evt = new BlockPistonRetractEvent(block, new ArrayList<>(), BlockFace.DOWN); - final MgBlockPistonRetractEvent mgevt = new MgBlockPistonRetractEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java deleted file mode 100644 index 6b3827e1..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockPlaceEventTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.inventory.ItemStack; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockPlaceEvent; - - -/** - * Test for {@link MgBlockPlaceEvent} - * - * @author mepeisen - * - */ -public class MgBlockPlaceEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - when(lib.getPlayer(any(Player.class))).thenReturn(player); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockPlaceEvent evt = new BlockPlaceEvent(block, mock(BlockState.class), mock(Block.class), new ItemStack(Material.BANNER), mock(Player.class), true, EquipmentSlot.CHEST); - final MgBlockPlaceEvent mgevt = new MgBlockPlaceEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertEquals(player, mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java deleted file mode 100644 index 26521daa..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockRedstoneEventTest.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockRedstoneEvent; - -/** - * Test for {@link MgBlockRedstoneEvent} - * - * @author mepeisen - * - */ -public class MgBlockRedstoneEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block block = mock(Block.class); - when(block.getLocation()).thenReturn(loc); - final BlockRedstoneEvent evt = new BlockRedstoneEvent(block, 0, 1); - final MgBlockRedstoneEvent mgevt = new MgBlockRedstoneEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java deleted file mode 100644 index 62137887..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBlockSpreadEventTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.event.block.BlockSpreadEvent; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBlockSpreadEvent; - -/** - * Test for {@link MgBlockSpreadEvent} - * - * @author mepeisen - * - */ -public class MgBlockSpreadEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block source = mock(Block.class); - when(source.getLocation()).thenReturn(loc); - final BlockSpreadEvent evt = new BlockSpreadEvent(source, source, mock(BlockState.class)); - final MgBlockSpreadEvent mgevt = new MgBlockSpreadEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java b/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java deleted file mode 100644 index 9fb7f9a6..00000000 --- a/LIBv2/nms/v1_10_r1/src/test/java/com/github/mce/minigames/impl/test/nms/v1_10_1/event/MgBrewEventTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.test.nms.v1_10_1.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.inventory.BrewerInventory; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.impl.nms.v1_10_1.event.MgBrewEvent; - -/** - * Test for {@link MgBrewEvent} - * - * @author mepeisen - * - */ -public class MgBrewEventTest -{ - - /** - * Tests constructor - */ - @Test - public void testConstructor() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final MinigameInterface minigame = mock(MinigameInterface.class); - when(arena.getMinigame()).thenReturn(minigame); - - final MglibInterface lib = mock(MglibInterface.class); - Whitebox.setInternalState(MglibInterface.INSTANCE.class, "CACHED", lib); //$NON-NLS-1$ - final Location loc = new Location(null, 1, 2, 3); - when(lib.getArenaFromLocation(loc)).thenReturn(arena); - - final Block brewer = mock(Block.class); - when(brewer.getLocation()).thenReturn(loc); - final BrewerInventory inv = mock(BrewerInventory.class); - final BrewEvent evt = new BrewEvent(brewer, inv); - final MgBrewEvent mgevt = new MgBrewEvent(evt); - - assertEquals(evt, mgevt.getBukkitEvent()); - assertEquals(arena, mgevt.getArena()); - assertEquals(minigame, mgevt.getMinigame()); - assertNull(mgevt.getPlayer()); - } - -} diff --git a/LIBv2/nms/v1_8_r1/.classpath b/LIBv2/nms/v1_8_r1/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/v1_8_r1/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/v1_8_r1/.project b/LIBv2/nms/v1_8_r1/.project deleted file mode 100644 index 4534f11d..00000000 --- a/LIBv2/nms/v1_8_r1/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nms1_8_r1</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/v1_8_r1/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/v1_8_r1/pom.xml b/LIBv2/nms/v1_8_r1/pom.xml deleted file mode 100644 index 10ff4c9d..00000000 --- a/LIBv2/nms/v1_8_r1/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_8_r1</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS V1.8-R1</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - <version>1.8-R0.1-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java deleted file mode 100644 index 18e799cf..00000000 --- a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/EventSystem1_8_1.java +++ /dev/null @@ -1,1661 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_8_1; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockExpEvent; -import org.bukkit.event.block.BlockFadeEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.BlockSpreadEvent; -import org.bukkit.event.block.EntityBlockFormEvent; -import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.block.NotePlayEvent; -import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreeperPowerEvent; -import org.bukkit.event.entity.EntityBreakDoorEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityCombustByBlockEvent; -import org.bukkit.event.entity.EntityCombustByEntityEvent; -import org.bukkit.event.entity.EntityCombustEvent; -import org.bukkit.event.entity.EntityCreatePortalEvent; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityInteractEvent; -import org.bukkit.event.entity.EntityPortalEnterEvent; -import org.bukkit.event.entity.EntityPortalEvent; -import org.bukkit.event.entity.EntityPortalExitEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.entity.EntityTargetEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.entity.EntityUnleashEvent; -import org.bukkit.event.entity.ExpBottleEvent; -import org.bukkit.event.entity.ExplosionPrimeEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; -import org.bukkit.event.entity.HorseJumpEvent; -import org.bukkit.event.entity.ItemDespawnEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.entity.PigZapEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.PlayerLeashEntityEvent; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.entity.SheepDyeWoolEvent; -import org.bukkit.event.entity.SheepRegrowWoolEvent; -import org.bukkit.event.entity.SlimeSplitEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.FurnaceSmeltEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryCreativeEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryEvent; -import org.bukkit.event.inventory.InventoryInteractEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAchievementAwardedEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerBedLeaveEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerChannelEvent; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerInventoryEvent; -import org.bukkit.event.player.PlayerItemBreakEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRegisterChannelEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.event.player.PlayerStatisticIncrementEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; -import org.bukkit.event.player.PlayerUnregisterChannelEvent; -import org.bukkit.event.player.PlayerVelocityEvent; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCreateEvent; -import org.bukkit.event.vehicle.VehicleDamageEvent; -import org.bukkit.event.vehicle.VehicleDestroyEvent; -import org.bukkit.event.vehicle.VehicleEnterEvent; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; -import org.bukkit.event.vehicle.VehicleMoveEvent; -import org.bukkit.event.vehicle.VehicleUpdateEvent; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.impl.nms.AbstractEventSystem; - -/** - * The event system implementation. - * - * @author mepeisen - */ -public class EventSystem1_8_1 extends AbstractEventSystem -{ - - /** - * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) - { - this.getHandler(AsyncPlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBreakEvent(BlockBreakEvent evt) - { - this.getHandler(BlockBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBurnEvent(BlockBurnEvent evt) - { - this.getHandler(BlockBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockCanBuildEvent(BlockCanBuildEvent evt) - { - this.getHandler(BlockCanBuildEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDamageEvent(BlockDamageEvent evt) - { - this.getHandler(BlockDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDispenseEvent(BlockDispenseEvent evt) - { - this.getHandler(BlockDispenseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExpEvent(BlockExpEvent evt) - { - this.getHandler(BlockExpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFadeEvent(BlockFadeEvent evt) - { - this.getHandler(BlockFadeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFormEvent(BlockFormEvent evt) - { - this.getHandler(BlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFromToEvent(BlockFromToEvent evt) - { - this.getHandler(BlockFromToEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockGrowEvent(BlockGrowEvent evt) - { - this.getHandler(BlockGrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockIgniteEvent(BlockIgniteEvent evt) - { - this.getHandler(BlockIgniteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) - { - this.getHandler(BlockMultiPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPhysicsEvent(BlockPhysicsEvent evt) - { - this.getHandler(BlockPhysicsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) - { - this.getHandler(BlockPistonExtendEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) - { - this.getHandler(BlockPistonRetractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPlaceEvent(BlockPlaceEvent evt) - { - this.getHandler(BlockPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockRedstoneEvent(BlockRedstoneEvent evt) - { - this.getHandler(BlockRedstoneEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockSpreadEvent(BlockSpreadEvent evt) - { - this.getHandler(BlockSpreadEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBrewEvent(BrewEvent evt) - { - this.getHandler(BrewEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCraftItemEvent(CraftItemEvent evt) - { - this.getHandler(CraftItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreatureSpawnEvent(CreatureSpawnEvent evt) - { - this.getHandler(CreatureSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreeperPowerEvent(CreeperPowerEvent evt) - { - this.getHandler(CreeperPowerEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnchantItemEvent(EnchantItemEvent evt) - { - this.getHandler(EnchantItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBlockFormEvent(EntityBlockFormEvent evt) - { - this.getHandler(EntityBlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) - { - this.getHandler(EntityBreakDoorEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) - { - this.getHandler(EntityChangeBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) - { - this.getHandler(EntityCombustByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) - { - this.getHandler(EntityCombustByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustEvent(EntityCombustEvent evt) - { - this.getHandler(EntityCombustEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) - { - this.getHandler(EntityCreatePortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) - { - this.getHandler(EntityDamageByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) - { - this.getHandler(EntityDamageByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageEvent(EntityDamageEvent evt) - { - this.getHandler(EntityDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDeathEvent(EntityDeathEvent evt) - { - this.getHandler(EntityDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityExplodeEvent(EntityExplodeEvent evt) - { - this.getHandler(EntityExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityInteractEvent(EntityInteractEvent evt) - { - this.getHandler(EntityInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) - { - this.getHandler(EntityPortalEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEvent(EntityPortalEvent evt) - { - this.getHandler(EntityPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalExitEvent(EntityPortalExitEvent evt) - { - this.getHandler(EntityPortalExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) - { - this.getHandler(EntityRegainHealthEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityShootBowEvent(EntityShootBowEvent evt) - { - this.getHandler(EntityShootBowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntitySpawnEvent(EntitySpawnEvent evt) - { - this.getHandler(EntitySpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTameEvent(EntityTameEvent evt) - { - this.getHandler(EntityTameEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetEvent(EntityTargetEvent evt) - { - this.getHandler(EntityTargetEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) - { - this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTeleportEvent(EntityTeleportEvent evt) - { - this.getHandler(EntityTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityUnleashEvent(EntityUnleashEvent evt) - { - this.getHandler(EntityUnleashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExpBottleEvent(ExpBottleEvent evt) - { - this.getHandler(ExpBottleEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) - { - this.getHandler(ExplosionPrimeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) - { - this.getHandler(FoodLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceBurnEvent(FurnaceBurnEvent evt) - { - this.getHandler(FurnaceBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) - { - this.getHandler(FurnaceSmeltEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) - { - this.getHandler(HangingBreakByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakEvent(HangingBreakEvent evt) - { - this.getHandler(HangingBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingPlaceEvent(HangingPlaceEvent evt) - { - this.getHandler(HangingPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHorseJumpEvent(HorseJumpEvent evt) - { - this.getHandler(HorseJumpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent evt) - { - this.getHandler(InventoryClickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCloseEvent(InventoryCloseEvent evt) - { - this.getHandler(InventoryCloseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCreativeEvent(InventoryCreativeEvent evt) - { - this.getHandler(InventoryCreativeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryDragEvent(InventoryDragEvent evt) - { - this.getHandler(InventoryDragEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryEvent(InventoryEvent evt) - { - this.getHandler(InventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryInteractEvent(InventoryInteractEvent evt) - { - this.getHandler(InventoryInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) - { - this.getHandler(InventoryMoveItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryOpenEvent(InventoryOpenEvent evt) - { - this.getHandler(InventoryOpenEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) - { - this.getHandler(InventoryPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemDespawnEvent(ItemDespawnEvent evt) - { - this.getHandler(ItemDespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemSpawnEvent(ItemSpawnEvent evt) - { - this.getHandler(ItemSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLeavesDecayEvent(LeavesDecayEvent evt) - { - this.getHandler(LeavesDecayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onNotePlayEvent(NotePlayEvent evt) - { - this.getHandler(NotePlayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPigZapEvent(PigZapEvent evt) - { - this.getHandler(PigZapEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) - { - this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAnimationEvent(PlayerAnimationEvent evt) - { - this.getHandler(PlayerAnimationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) - { - this.getHandler(PlayerBedEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) - { - this.getHandler(PlayerBedLeaveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) - { - this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) - { - this.getHandler(PlayerBucketFillEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) - { - this.getHandler(PlayerChangedWorldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChannelEvent(PlayerChannelEvent evt) - { - this.getHandler(PlayerChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatEvent(PlayerChatEvent evt) - { - this.getHandler(PlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) - { - this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) - { - this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDeathEvent(PlayerDeathEvent evt) - { - this.getHandler(PlayerDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDropItemEvent(PlayerDropItemEvent evt) - { - this.getHandler(PlayerDropItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEditBookEvent(PlayerEditBookEvent evt) - { - this.getHandler(PlayerEditBookEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) - { - this.getHandler(PlayerEggThrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) - { - this.getHandler(PlayerExpChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerFishEvent(PlayerFishEvent evt) - { - this.getHandler(PlayerFishEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) - { - this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) - { - this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) - { - this.getHandler(PlayerInteractEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEvent(PlayerInteractEvent evt) - { - this.getHandler(PlayerInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInventoryEvent(PlayerInventoryEvent evt) - { - this.getHandler(PlayerInventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) - { - this.getHandler(PlayerItemBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) - { - this.getHandler(PlayerItemConsumeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) - { - this.getHandler(PlayerItemDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) - { - this.getHandler(PlayerItemHeldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerJoinEvent(PlayerJoinEvent evt) - { - this.getHandler(PlayerJoinEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerKickEvent(PlayerKickEvent evt) - { - this.getHandler(PlayerKickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) - { - this.getHandler(PlayerLeashEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) - { - this.getHandler(PlayerLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLoginEvent(PlayerLoginEvent evt) - { - this.getHandler(PlayerLoginEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent evt) - { - this.getHandler(PlayerMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) - { - this.getHandler(PlayerPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPortalEvent(PlayerPortalEvent evt) - { - this.getHandler(PlayerPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerQuitEvent(PlayerQuitEvent evt) - { - this.getHandler(PlayerQuitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) - { - this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRespawnEvent(PlayerRespawnEvent evt) - { - this.getHandler(PlayerRespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) - { - this.getHandler(PlayerShearEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) - { - this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) - { - this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerTeleportEvent(PlayerTeleportEvent evt) - { - this.getHandler(PlayerTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) - { - this.getHandler(PlayerToggleFlightEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) - { - this.getHandler(PlayerToggleSneakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) - { - this.getHandler(PlayerToggleSprintEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) - { - this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerVelocityEvent(PlayerVelocityEvent evt) - { - this.getHandler(PlayerVelocityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPotionSplashEvent(PotionSplashEvent evt) - { - this.getHandler(PotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) - { - this.getHandler(PrepareItemCraftEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) - { - this.getHandler(PrepareItemEnchantEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileHitEvent(ProjectileHitEvent evt) - { - this.getHandler(ProjectileHitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) - { - this.getHandler(ProjectileLaunchEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) - { - this.getHandler(SheepDyeWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) - { - this.getHandler(SheepRegrowWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSignChangeEvent(SignChangeEvent evt) - { - this.getHandler(SignChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSlimeSplitEvent(SlimeSplitEvent evt) - { - this.getHandler(SlimeSplitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) - { - this.getHandler(SpawnerSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) - { - this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCreateEvent(VehicleCreateEvent evt) - { - this.getHandler(VehicleCreateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDamageEvent(VehicleDamageEvent evt) - { - this.getHandler(VehicleDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDestroyEvent(VehicleDestroyEvent evt) - { - this.getHandler(VehicleDestroyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEnterEvent(VehicleEnterEvent evt) - { - this.getHandler(VehicleEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) - { - this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent evt) - { - this.getHandler(VehicleExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleMoveEvent(VehicleMoveEvent evt) - { - this.getHandler(VehicleMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleUpdateEvent(VehicleUpdateEvent evt) - { - this.getHandler(VehicleUpdateEvent.class).handle(evt); - } - -} diff --git a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java b/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java deleted file mode 100644 index 94fde13b..00000000 --- a/LIBv2/nms/v1_8_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_8_1/NmsFactory1_8_1.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_8_1; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; - -/** - * Factory to create NMS relevant classes. - * - * @author mepeisen - */ -public class NmsFactory1_8_1 implements NmsFactory -{ - - /** the implementation classes. */ - private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); - - /** - * Constructor. - */ - public NmsFactory1_8_1() - { - this.impls.put(EventSystemInterface.class, () -> new EventSystem1_8_1()); - } - - @Override - public <T> T create(Class<T> clazz) - { - final Supplier<?> supplier = this.impls.get(clazz); - if (supplier != null) - { - return clazz.cast(supplier.get()); - } - return null; - } - -} diff --git a/LIBv2/nms/v1_8_r2/.classpath b/LIBv2/nms/v1_8_r2/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/v1_8_r2/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/v1_8_r2/.project b/LIBv2/nms/v1_8_r2/.project deleted file mode 100644 index 9c718585..00000000 --- a/LIBv2/nms/v1_8_r2/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nms1_8_r2</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/v1_8_r2/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/v1_8_r2/pom.xml b/LIBv2/nms/v1_8_r2/pom.xml deleted file mode 100644 index 81ea6fb0..00000000 --- a/LIBv2/nms/v1_8_r2/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_8_r2</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS V1.8-R2</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - <version>1.8.3-R0.1-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java deleted file mode 100644 index c456335b..00000000 --- a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/EventSystem1_8_2.java +++ /dev/null @@ -1,1685 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_8_2; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockExpEvent; -import org.bukkit.event.block.BlockExplodeEvent; -import org.bukkit.event.block.BlockFadeEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.BlockSpreadEvent; -import org.bukkit.event.block.EntityBlockFormEvent; -import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.block.NotePlayEvent; -import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreeperPowerEvent; -import org.bukkit.event.entity.EntityBreakDoorEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityCombustByBlockEvent; -import org.bukkit.event.entity.EntityCombustByEntityEvent; -import org.bukkit.event.entity.EntityCombustEvent; -import org.bukkit.event.entity.EntityCreatePortalEvent; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityInteractEvent; -import org.bukkit.event.entity.EntityPortalEnterEvent; -import org.bukkit.event.entity.EntityPortalEvent; -import org.bukkit.event.entity.EntityPortalExitEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.entity.EntityTargetEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.entity.EntityUnleashEvent; -import org.bukkit.event.entity.ExpBottleEvent; -import org.bukkit.event.entity.ExplosionPrimeEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; -import org.bukkit.event.entity.HorseJumpEvent; -import org.bukkit.event.entity.ItemDespawnEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.entity.PigZapEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.PlayerLeashEntityEvent; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.entity.SheepDyeWoolEvent; -import org.bukkit.event.entity.SheepRegrowWoolEvent; -import org.bukkit.event.entity.SlimeSplitEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.FurnaceSmeltEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryCreativeEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryEvent; -import org.bukkit.event.inventory.InventoryInteractEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAchievementAwardedEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerBedLeaveEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerChannelEvent; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerInventoryEvent; -import org.bukkit.event.player.PlayerItemBreakEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRegisterChannelEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.event.player.PlayerStatisticIncrementEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; -import org.bukkit.event.player.PlayerUnregisterChannelEvent; -import org.bukkit.event.player.PlayerVelocityEvent; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCreateEvent; -import org.bukkit.event.vehicle.VehicleDamageEvent; -import org.bukkit.event.vehicle.VehicleDestroyEvent; -import org.bukkit.event.vehicle.VehicleEnterEvent; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; -import org.bukkit.event.vehicle.VehicleMoveEvent; -import org.bukkit.event.vehicle.VehicleUpdateEvent; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.impl.nms.AbstractEventSystem; - -/** - * The event system implementation. - * - * @author mepeisen - */ -public class EventSystem1_8_2 extends AbstractEventSystem -{ - - /** - * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) - { - this.getHandler(AsyncPlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBreakEvent(BlockBreakEvent evt) - { - this.getHandler(BlockBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBurnEvent(BlockBurnEvent evt) - { - this.getHandler(BlockBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockCanBuildEvent(BlockCanBuildEvent evt) - { - this.getHandler(BlockCanBuildEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDamageEvent(BlockDamageEvent evt) - { - this.getHandler(BlockDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDispenseEvent(BlockDispenseEvent evt) - { - this.getHandler(BlockDispenseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExpEvent(BlockExpEvent evt) - { - this.getHandler(BlockExpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExplodeEvent(BlockExplodeEvent evt) - { - this.getHandler(BlockExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFadeEvent(BlockFadeEvent evt) - { - this.getHandler(BlockFadeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFormEvent(BlockFormEvent evt) - { - this.getHandler(BlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFromToEvent(BlockFromToEvent evt) - { - this.getHandler(BlockFromToEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockGrowEvent(BlockGrowEvent evt) - { - this.getHandler(BlockGrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockIgniteEvent(BlockIgniteEvent evt) - { - this.getHandler(BlockIgniteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) - { - this.getHandler(BlockMultiPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPhysicsEvent(BlockPhysicsEvent evt) - { - this.getHandler(BlockPhysicsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) - { - this.getHandler(BlockPistonExtendEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) - { - this.getHandler(BlockPistonRetractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPlaceEvent(BlockPlaceEvent evt) - { - this.getHandler(BlockPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockRedstoneEvent(BlockRedstoneEvent evt) - { - this.getHandler(BlockRedstoneEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockSpreadEvent(BlockSpreadEvent evt) - { - this.getHandler(BlockSpreadEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBrewEvent(BrewEvent evt) - { - this.getHandler(BrewEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCraftItemEvent(CraftItemEvent evt) - { - this.getHandler(CraftItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreatureSpawnEvent(CreatureSpawnEvent evt) - { - this.getHandler(CreatureSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreeperPowerEvent(CreeperPowerEvent evt) - { - this.getHandler(CreeperPowerEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnchantItemEvent(EnchantItemEvent evt) - { - this.getHandler(EnchantItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBlockFormEvent(EntityBlockFormEvent evt) - { - this.getHandler(EntityBlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) - { - this.getHandler(EntityBreakDoorEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) - { - this.getHandler(EntityChangeBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) - { - this.getHandler(EntityCombustByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) - { - this.getHandler(EntityCombustByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustEvent(EntityCombustEvent evt) - { - this.getHandler(EntityCombustEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) - { - this.getHandler(EntityCreatePortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) - { - this.getHandler(EntityDamageByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) - { - this.getHandler(EntityDamageByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageEvent(EntityDamageEvent evt) - { - this.getHandler(EntityDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDeathEvent(EntityDeathEvent evt) - { - this.getHandler(EntityDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityExplodeEvent(EntityExplodeEvent evt) - { - this.getHandler(EntityExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityInteractEvent(EntityInteractEvent evt) - { - this.getHandler(EntityInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) - { - this.getHandler(EntityPortalEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEvent(EntityPortalEvent evt) - { - this.getHandler(EntityPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalExitEvent(EntityPortalExitEvent evt) - { - this.getHandler(EntityPortalExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) - { - this.getHandler(EntityRegainHealthEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityShootBowEvent(EntityShootBowEvent evt) - { - this.getHandler(EntityShootBowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntitySpawnEvent(EntitySpawnEvent evt) - { - this.getHandler(EntitySpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTameEvent(EntityTameEvent evt) - { - this.getHandler(EntityTameEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetEvent(EntityTargetEvent evt) - { - this.getHandler(EntityTargetEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) - { - this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTeleportEvent(EntityTeleportEvent evt) - { - this.getHandler(EntityTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityUnleashEvent(EntityUnleashEvent evt) - { - this.getHandler(EntityUnleashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExpBottleEvent(ExpBottleEvent evt) - { - this.getHandler(ExpBottleEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) - { - this.getHandler(ExplosionPrimeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) - { - this.getHandler(FoodLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceBurnEvent(FurnaceBurnEvent evt) - { - this.getHandler(FurnaceBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) - { - this.getHandler(FurnaceSmeltEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) - { - this.getHandler(HangingBreakByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakEvent(HangingBreakEvent evt) - { - this.getHandler(HangingBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingPlaceEvent(HangingPlaceEvent evt) - { - this.getHandler(HangingPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHorseJumpEvent(HorseJumpEvent evt) - { - this.getHandler(HorseJumpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent evt) - { - this.getHandler(InventoryClickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCloseEvent(InventoryCloseEvent evt) - { - this.getHandler(InventoryCloseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCreativeEvent(InventoryCreativeEvent evt) - { - this.getHandler(InventoryCreativeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryDragEvent(InventoryDragEvent evt) - { - this.getHandler(InventoryDragEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryEvent(InventoryEvent evt) - { - this.getHandler(InventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryInteractEvent(InventoryInteractEvent evt) - { - this.getHandler(InventoryInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) - { - this.getHandler(InventoryMoveItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryOpenEvent(InventoryOpenEvent evt) - { - this.getHandler(InventoryOpenEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) - { - this.getHandler(InventoryPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemDespawnEvent(ItemDespawnEvent evt) - { - this.getHandler(ItemDespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemSpawnEvent(ItemSpawnEvent evt) - { - this.getHandler(ItemSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLeavesDecayEvent(LeavesDecayEvent evt) - { - this.getHandler(LeavesDecayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onNotePlayEvent(NotePlayEvent evt) - { - this.getHandler(NotePlayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPigZapEvent(PigZapEvent evt) - { - this.getHandler(PigZapEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) - { - this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAnimationEvent(PlayerAnimationEvent evt) - { - this.getHandler(PlayerAnimationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) - { - this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) - { - this.getHandler(PlayerBedEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) - { - this.getHandler(PlayerBedLeaveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) - { - this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) - { - this.getHandler(PlayerBucketFillEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) - { - this.getHandler(PlayerChangedWorldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChannelEvent(PlayerChannelEvent evt) - { - this.getHandler(PlayerChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatEvent(PlayerChatEvent evt) - { - this.getHandler(PlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) - { - this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) - { - this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDeathEvent(PlayerDeathEvent evt) - { - this.getHandler(PlayerDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDropItemEvent(PlayerDropItemEvent evt) - { - this.getHandler(PlayerDropItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEditBookEvent(PlayerEditBookEvent evt) - { - this.getHandler(PlayerEditBookEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) - { - this.getHandler(PlayerEggThrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) - { - this.getHandler(PlayerExpChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerFishEvent(PlayerFishEvent evt) - { - this.getHandler(PlayerFishEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) - { - this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) - { - this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) - { - this.getHandler(PlayerInteractEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEvent(PlayerInteractEvent evt) - { - this.getHandler(PlayerInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInventoryEvent(PlayerInventoryEvent evt) - { - this.getHandler(PlayerInventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) - { - this.getHandler(PlayerItemBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) - { - this.getHandler(PlayerItemConsumeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) - { - this.getHandler(PlayerItemDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) - { - this.getHandler(PlayerItemHeldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerJoinEvent(PlayerJoinEvent evt) - { - this.getHandler(PlayerJoinEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerKickEvent(PlayerKickEvent evt) - { - this.getHandler(PlayerKickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) - { - this.getHandler(PlayerLeashEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) - { - this.getHandler(PlayerLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLoginEvent(PlayerLoginEvent evt) - { - this.getHandler(PlayerLoginEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent evt) - { - this.getHandler(PlayerMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) - { - this.getHandler(PlayerPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPortalEvent(PlayerPortalEvent evt) - { - this.getHandler(PlayerPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerQuitEvent(PlayerQuitEvent evt) - { - this.getHandler(PlayerQuitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) - { - this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRespawnEvent(PlayerRespawnEvent evt) - { - this.getHandler(PlayerRespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) - { - this.getHandler(PlayerShearEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) - { - this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) - { - this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerTeleportEvent(PlayerTeleportEvent evt) - { - this.getHandler(PlayerTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) - { - this.getHandler(PlayerToggleFlightEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) - { - this.getHandler(PlayerToggleSneakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) - { - this.getHandler(PlayerToggleSprintEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) - { - this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerVelocityEvent(PlayerVelocityEvent evt) - { - this.getHandler(PlayerVelocityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPotionSplashEvent(PotionSplashEvent evt) - { - this.getHandler(PotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) - { - this.getHandler(PrepareItemCraftEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) - { - this.getHandler(PrepareItemEnchantEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileHitEvent(ProjectileHitEvent evt) - { - this.getHandler(ProjectileHitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) - { - this.getHandler(ProjectileLaunchEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) - { - this.getHandler(SheepDyeWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) - { - this.getHandler(SheepRegrowWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSignChangeEvent(SignChangeEvent evt) - { - this.getHandler(SignChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSlimeSplitEvent(SlimeSplitEvent evt) - { - this.getHandler(SlimeSplitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) - { - this.getHandler(SpawnerSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) - { - this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCreateEvent(VehicleCreateEvent evt) - { - this.getHandler(VehicleCreateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDamageEvent(VehicleDamageEvent evt) - { - this.getHandler(VehicleDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDestroyEvent(VehicleDestroyEvent evt) - { - this.getHandler(VehicleDestroyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEnterEvent(VehicleEnterEvent evt) - { - this.getHandler(VehicleEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) - { - this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent evt) - { - this.getHandler(VehicleExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleMoveEvent(VehicleMoveEvent evt) - { - this.getHandler(VehicleMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleUpdateEvent(VehicleUpdateEvent evt) - { - this.getHandler(VehicleUpdateEvent.class).handle(evt); - } - -} diff --git a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java b/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java deleted file mode 100644 index bc07e9ee..00000000 --- a/LIBv2/nms/v1_8_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_8_2/NmsFactory1_8_2.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_8_2; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; - -/** - * Factory to create NMS relevant classes. - * - * @author mepeisen - */ -public class NmsFactory1_8_2 implements NmsFactory -{ - - /** the implementation classes. */ - private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); - - /** - * Constructor. - */ - public NmsFactory1_8_2() - { - this.impls.put(EventSystemInterface.class, () -> new EventSystem1_8_2()); - } - - @Override - public <T> T create(Class<T> clazz) - { - final Supplier<?> supplier = this.impls.get(clazz); - if (supplier != null) - { - return clazz.cast(supplier.get()); - } - return null; - } - -} diff --git a/LIBv2/nms/v1_8_r3/.classpath b/LIBv2/nms/v1_8_r3/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/v1_8_r3/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/v1_8_r3/.project b/LIBv2/nms/v1_8_r3/.project deleted file mode 100644 index 492a9ccb..00000000 --- a/LIBv2/nms/v1_8_r3/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nms1_8_r3</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/v1_8_r3/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/v1_8_r3/pom.xml b/LIBv2/nms/v1_8_r3/pom.xml deleted file mode 100644 index aaddf419..00000000 --- a/LIBv2/nms/v1_8_r3/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_8_r3</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS V1.8-R3</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - <version>1.8.8-R0.1-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java deleted file mode 100644 index c08c021b..00000000 --- a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/EventSystem1_8_3.java +++ /dev/null @@ -1,1721 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_8_3; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockExpEvent; -import org.bukkit.event.block.BlockExplodeEvent; -import org.bukkit.event.block.BlockFadeEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.BlockSpreadEvent; -import org.bukkit.event.block.EntityBlockFormEvent; -import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.block.NotePlayEvent; -import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreeperPowerEvent; -import org.bukkit.event.entity.EntityBreakDoorEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityCombustByBlockEvent; -import org.bukkit.event.entity.EntityCombustByEntityEvent; -import org.bukkit.event.entity.EntityCombustEvent; -import org.bukkit.event.entity.EntityCreatePortalEvent; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityInteractEvent; -import org.bukkit.event.entity.EntityPortalEnterEvent; -import org.bukkit.event.entity.EntityPortalEvent; -import org.bukkit.event.entity.EntityPortalExitEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.entity.EntityTargetEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.entity.EntityUnleashEvent; -import org.bukkit.event.entity.ExpBottleEvent; -import org.bukkit.event.entity.ExplosionPrimeEvent; -import org.bukkit.event.entity.FireworkExplodeEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; -import org.bukkit.event.entity.HorseJumpEvent; -import org.bukkit.event.entity.ItemDespawnEvent; -import org.bukkit.event.entity.ItemMergeEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.entity.PigZapEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.PlayerLeashEntityEvent; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.entity.SheepDyeWoolEvent; -import org.bukkit.event.entity.SheepRegrowWoolEvent; -import org.bukkit.event.entity.SlimeSplitEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.FurnaceSmeltEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryCreativeEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryEvent; -import org.bukkit.event.inventory.InventoryInteractEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAchievementAwardedEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerBedLeaveEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerChannelEvent; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerInventoryEvent; -import org.bukkit.event.player.PlayerItemBreakEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRegisterChannelEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.event.player.PlayerStatisticIncrementEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; -import org.bukkit.event.player.PlayerUnregisterChannelEvent; -import org.bukkit.event.player.PlayerVelocityEvent; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCreateEvent; -import org.bukkit.event.vehicle.VehicleDamageEvent; -import org.bukkit.event.vehicle.VehicleDestroyEvent; -import org.bukkit.event.vehicle.VehicleEnterEvent; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; -import org.bukkit.event.vehicle.VehicleMoveEvent; -import org.bukkit.event.vehicle.VehicleUpdateEvent; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.impl.nms.AbstractEventSystem; - -/** - * The event system implementation. - * - * @author mepeisen - */ -public class EventSystem1_8_3 extends AbstractEventSystem -{ - - /** - * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) - { - this.getHandler(AsyncPlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBreakEvent(BlockBreakEvent evt) - { - this.getHandler(BlockBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBurnEvent(BlockBurnEvent evt) - { - this.getHandler(BlockBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockCanBuildEvent(BlockCanBuildEvent evt) - { - this.getHandler(BlockCanBuildEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDamageEvent(BlockDamageEvent evt) - { - this.getHandler(BlockDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDispenseEvent(BlockDispenseEvent evt) - { - this.getHandler(BlockDispenseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExpEvent(BlockExpEvent evt) - { - this.getHandler(BlockExpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExplodeEvent(BlockExplodeEvent evt) - { - this.getHandler(BlockExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFadeEvent(BlockFadeEvent evt) - { - this.getHandler(BlockFadeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFormEvent(BlockFormEvent evt) - { - this.getHandler(BlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFromToEvent(BlockFromToEvent evt) - { - this.getHandler(BlockFromToEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockGrowEvent(BlockGrowEvent evt) - { - this.getHandler(BlockGrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockIgniteEvent(BlockIgniteEvent evt) - { - this.getHandler(BlockIgniteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) - { - this.getHandler(BlockMultiPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPhysicsEvent(BlockPhysicsEvent evt) - { - this.getHandler(BlockPhysicsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) - { - this.getHandler(BlockPistonExtendEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) - { - this.getHandler(BlockPistonRetractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPlaceEvent(BlockPlaceEvent evt) - { - this.getHandler(BlockPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockRedstoneEvent(BlockRedstoneEvent evt) - { - this.getHandler(BlockRedstoneEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockSpreadEvent(BlockSpreadEvent evt) - { - this.getHandler(BlockSpreadEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBrewEvent(BrewEvent evt) - { - this.getHandler(BrewEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCraftItemEvent(CraftItemEvent evt) - { - this.getHandler(CraftItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreatureSpawnEvent(CreatureSpawnEvent evt) - { - this.getHandler(CreatureSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreeperPowerEvent(CreeperPowerEvent evt) - { - this.getHandler(CreeperPowerEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnchantItemEvent(EnchantItemEvent evt) - { - this.getHandler(EnchantItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBlockFormEvent(EntityBlockFormEvent evt) - { - this.getHandler(EntityBlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) - { - this.getHandler(EntityBreakDoorEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) - { - this.getHandler(EntityChangeBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) - { - this.getHandler(EntityCombustByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) - { - this.getHandler(EntityCombustByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustEvent(EntityCombustEvent evt) - { - this.getHandler(EntityCombustEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) - { - this.getHandler(EntityCreatePortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) - { - this.getHandler(EntityDamageByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) - { - this.getHandler(EntityDamageByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageEvent(EntityDamageEvent evt) - { - this.getHandler(EntityDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDeathEvent(EntityDeathEvent evt) - { - this.getHandler(EntityDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityExplodeEvent(EntityExplodeEvent evt) - { - this.getHandler(EntityExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityInteractEvent(EntityInteractEvent evt) - { - this.getHandler(EntityInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) - { - this.getHandler(EntityPortalEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEvent(EntityPortalEvent evt) - { - this.getHandler(EntityPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalExitEvent(EntityPortalExitEvent evt) - { - this.getHandler(EntityPortalExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) - { - this.getHandler(EntityRegainHealthEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityShootBowEvent(EntityShootBowEvent evt) - { - this.getHandler(EntityShootBowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntitySpawnEvent(EntitySpawnEvent evt) - { - this.getHandler(EntitySpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTameEvent(EntityTameEvent evt) - { - this.getHandler(EntityTameEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetEvent(EntityTargetEvent evt) - { - this.getHandler(EntityTargetEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) - { - this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTeleportEvent(EntityTeleportEvent evt) - { - this.getHandler(EntityTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityUnleashEvent(EntityUnleashEvent evt) - { - this.getHandler(EntityUnleashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExpBottleEvent(ExpBottleEvent evt) - { - this.getHandler(ExpBottleEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) - { - this.getHandler(ExplosionPrimeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFireworkExplodeEvent(FireworkExplodeEvent evt) - { - this.getHandler(FireworkExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) - { - this.getHandler(FoodLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceBurnEvent(FurnaceBurnEvent evt) - { - this.getHandler(FurnaceBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) - { - this.getHandler(FurnaceSmeltEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) - { - this.getHandler(HangingBreakByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakEvent(HangingBreakEvent evt) - { - this.getHandler(HangingBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingPlaceEvent(HangingPlaceEvent evt) - { - this.getHandler(HangingPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHorseJumpEvent(HorseJumpEvent evt) - { - this.getHandler(HorseJumpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent evt) - { - this.getHandler(InventoryClickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCloseEvent(InventoryCloseEvent evt) - { - this.getHandler(InventoryCloseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCreativeEvent(InventoryCreativeEvent evt) - { - this.getHandler(InventoryCreativeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryDragEvent(InventoryDragEvent evt) - { - this.getHandler(InventoryDragEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryEvent(InventoryEvent evt) - { - this.getHandler(InventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryInteractEvent(InventoryInteractEvent evt) - { - this.getHandler(InventoryInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) - { - this.getHandler(InventoryMoveItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryOpenEvent(InventoryOpenEvent evt) - { - this.getHandler(InventoryOpenEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) - { - this.getHandler(InventoryPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemDespawnEvent(ItemDespawnEvent evt) - { - this.getHandler(ItemDespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemMergeEvent(ItemMergeEvent evt) - { - this.getHandler(ItemMergeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemSpawnEvent(ItemSpawnEvent evt) - { - this.getHandler(ItemSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLeavesDecayEvent(LeavesDecayEvent evt) - { - this.getHandler(LeavesDecayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onNotePlayEvent(NotePlayEvent evt) - { - this.getHandler(NotePlayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPigZapEvent(PigZapEvent evt) - { - this.getHandler(PigZapEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) - { - this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAnimationEvent(PlayerAnimationEvent evt) - { - this.getHandler(PlayerAnimationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) - { - this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) - { - this.getHandler(PlayerBedEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) - { - this.getHandler(PlayerBedLeaveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) - { - this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) - { - this.getHandler(PlayerBucketFillEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) - { - this.getHandler(PlayerChangedWorldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChannelEvent(PlayerChannelEvent evt) - { - this.getHandler(PlayerChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatEvent(PlayerChatEvent evt) - { - this.getHandler(PlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) - { - this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) - { - this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDeathEvent(PlayerDeathEvent evt) - { - this.getHandler(PlayerDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDropItemEvent(PlayerDropItemEvent evt) - { - this.getHandler(PlayerDropItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEditBookEvent(PlayerEditBookEvent evt) - { - this.getHandler(PlayerEditBookEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) - { - this.getHandler(PlayerEggThrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) - { - this.getHandler(PlayerExpChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerFishEvent(PlayerFishEvent evt) - { - this.getHandler(PlayerFishEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) - { - this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) - { - this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) - { - this.getHandler(PlayerInteractEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEvent(PlayerInteractEvent evt) - { - this.getHandler(PlayerInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInventoryEvent(PlayerInventoryEvent evt) - { - this.getHandler(PlayerInventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) - { - this.getHandler(PlayerItemBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) - { - this.getHandler(PlayerItemConsumeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) - { - this.getHandler(PlayerItemDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) - { - this.getHandler(PlayerItemHeldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerJoinEvent(PlayerJoinEvent evt) - { - this.getHandler(PlayerJoinEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerKickEvent(PlayerKickEvent evt) - { - this.getHandler(PlayerKickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) - { - this.getHandler(PlayerLeashEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) - { - this.getHandler(PlayerLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLoginEvent(PlayerLoginEvent evt) - { - this.getHandler(PlayerLoginEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent evt) - { - this.getHandler(PlayerMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) - { - this.getHandler(PlayerPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPortalEvent(PlayerPortalEvent evt) - { - this.getHandler(PlayerPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerQuitEvent(PlayerQuitEvent evt) - { - this.getHandler(PlayerQuitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) - { - this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) - { - this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRespawnEvent(PlayerRespawnEvent evt) - { - this.getHandler(PlayerRespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) - { - this.getHandler(PlayerShearEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) - { - this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) - { - this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerTeleportEvent(PlayerTeleportEvent evt) - { - this.getHandler(PlayerTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) - { - this.getHandler(PlayerToggleFlightEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) - { - this.getHandler(PlayerToggleSneakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) - { - this.getHandler(PlayerToggleSprintEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) - { - this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerVelocityEvent(PlayerVelocityEvent evt) - { - this.getHandler(PlayerVelocityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPotionSplashEvent(PotionSplashEvent evt) - { - this.getHandler(PotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) - { - this.getHandler(PrepareItemCraftEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) - { - this.getHandler(PrepareItemEnchantEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileHitEvent(ProjectileHitEvent evt) - { - this.getHandler(ProjectileHitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) - { - this.getHandler(ProjectileLaunchEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) - { - this.getHandler(SheepDyeWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) - { - this.getHandler(SheepRegrowWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSignChangeEvent(SignChangeEvent evt) - { - this.getHandler(SignChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSlimeSplitEvent(SlimeSplitEvent evt) - { - this.getHandler(SlimeSplitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) - { - this.getHandler(SpawnerSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) - { - this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCreateEvent(VehicleCreateEvent evt) - { - this.getHandler(VehicleCreateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDamageEvent(VehicleDamageEvent evt) - { - this.getHandler(VehicleDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDestroyEvent(VehicleDestroyEvent evt) - { - this.getHandler(VehicleDestroyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEnterEvent(VehicleEnterEvent evt) - { - this.getHandler(VehicleEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) - { - this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent evt) - { - this.getHandler(VehicleExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleMoveEvent(VehicleMoveEvent evt) - { - this.getHandler(VehicleMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleUpdateEvent(VehicleUpdateEvent evt) - { - this.getHandler(VehicleUpdateEvent.class).handle(evt); - } - -} diff --git a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java b/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java deleted file mode 100644 index f28c173b..00000000 --- a/LIBv2/nms/v1_8_r3/src/main/java/com/github/mce/minigames/impl/nms/v1_8_3/NmsFactory1_8_3.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_8_3; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; - -/** - * Factory to create NMS relevant classes. - * - * @author mepeisen - */ -public class NmsFactory1_8_3 implements NmsFactory -{ - - /** the implementation classes. */ - private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); - - /** - * Constructor. - */ - public NmsFactory1_8_3() - { - this.impls.put(EventSystemInterface.class, () -> new EventSystem1_8_3()); - } - - @Override - public <T> T create(Class<T> clazz) - { - final Supplier<?> supplier = this.impls.get(clazz); - if (supplier != null) - { - return clazz.cast(supplier.get()); - } - return null; - } - -} diff --git a/LIBv2/nms/v1_9_r1/.classpath b/LIBv2/nms/v1_9_r1/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/v1_9_r1/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/v1_9_r1/.project b/LIBv2/nms/v1_9_r1/.project deleted file mode 100644 index 2cbff0f5..00000000 --- a/LIBv2/nms/v1_9_r1/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nms1_9_r1</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/v1_9_r1/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/v1_9_r1/pom.xml b/LIBv2/nms/v1_9_r1/pom.xml deleted file mode 100644 index 8fc0bca0..00000000 --- a/LIBv2/nms/v1_9_r1/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_9_r1</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS V1.9-R1</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - <version>1.9-R0.1-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java deleted file mode 100644 index 849592f9..00000000 --- a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/EventSystem1_9_1.java +++ /dev/null @@ -1,1840 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_9_1; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockExpEvent; -import org.bukkit.event.block.BlockExplodeEvent; -import org.bukkit.event.block.BlockFadeEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.BlockSpreadEvent; -import org.bukkit.event.block.CauldronLevelChangeEvent; -import org.bukkit.event.block.EntityBlockFormEvent; -import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.block.NotePlayEvent; -import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; -import org.bukkit.event.entity.AreaEffectCloudApplyEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreeperPowerEvent; -import org.bukkit.event.entity.EnderDragonChangePhaseEvent; -import org.bukkit.event.entity.EntityBreakDoorEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityCombustByBlockEvent; -import org.bukkit.event.entity.EntityCombustByEntityEvent; -import org.bukkit.event.entity.EntityCombustEvent; -import org.bukkit.event.entity.EntityCreatePortalEvent; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityInteractEvent; -import org.bukkit.event.entity.EntityPortalEnterEvent; -import org.bukkit.event.entity.EntityPortalEvent; -import org.bukkit.event.entity.EntityPortalExitEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.entity.EntityTargetEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.entity.EntityToggleGlideEvent; -import org.bukkit.event.entity.EntityUnleashEvent; -import org.bukkit.event.entity.ExpBottleEvent; -import org.bukkit.event.entity.ExplosionPrimeEvent; -import org.bukkit.event.entity.FireworkExplodeEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; -import org.bukkit.event.entity.HorseJumpEvent; -import org.bukkit.event.entity.ItemDespawnEvent; -import org.bukkit.event.entity.ItemMergeEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.entity.LingeringPotionSplashEvent; -import org.bukkit.event.entity.PigZapEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.PlayerLeashEntityEvent; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.entity.SheepDyeWoolEvent; -import org.bukkit.event.entity.SheepRegrowWoolEvent; -import org.bukkit.event.entity.SlimeSplitEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; -import org.bukkit.event.entity.VillagerAcquireTradeEvent; -import org.bukkit.event.entity.VillagerReplenishTradeEvent; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.FurnaceSmeltEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryCreativeEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryEvent; -import org.bukkit.event.inventory.InventoryInteractEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.PrepareAnvilEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAchievementAwardedEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerBedLeaveEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerChannelEvent; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerInventoryEvent; -import org.bukkit.event.player.PlayerItemBreakEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupArrowEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRegisterChannelEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.event.player.PlayerStatisticIncrementEvent; -import org.bukkit.event.player.PlayerSwapHandItemsEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; -import org.bukkit.event.player.PlayerUnregisterChannelEvent; -import org.bukkit.event.player.PlayerVelocityEvent; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCreateEvent; -import org.bukkit.event.vehicle.VehicleDamageEvent; -import org.bukkit.event.vehicle.VehicleDestroyEvent; -import org.bukkit.event.vehicle.VehicleEnterEvent; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; -import org.bukkit.event.vehicle.VehicleMoveEvent; -import org.bukkit.event.vehicle.VehicleUpdateEvent; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.impl.nms.AbstractEventSystem; - -/** - * The event system implementation. - * - * @author mepeisen - */ -public class EventSystem1_9_1 extends AbstractEventSystem -{ - - /** - * Event handler for AreaEffectCloudApplyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) - { - this.getHandler(AreaEffectCloudApplyEvent.class).handle(evt); - } - - /** - * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) - { - this.getHandler(AsyncPlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBreakEvent(BlockBreakEvent evt) - { - this.getHandler(BlockBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBurnEvent(BlockBurnEvent evt) - { - this.getHandler(BlockBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockCanBuildEvent(BlockCanBuildEvent evt) - { - this.getHandler(BlockCanBuildEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDamageEvent(BlockDamageEvent evt) - { - this.getHandler(BlockDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDispenseEvent(BlockDispenseEvent evt) - { - this.getHandler(BlockDispenseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExpEvent(BlockExpEvent evt) - { - this.getHandler(BlockExpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExplodeEvent(BlockExplodeEvent evt) - { - this.getHandler(BlockExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFadeEvent(BlockFadeEvent evt) - { - this.getHandler(BlockFadeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFormEvent(BlockFormEvent evt) - { - this.getHandler(BlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFromToEvent(BlockFromToEvent evt) - { - this.getHandler(BlockFromToEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockGrowEvent(BlockGrowEvent evt) - { - this.getHandler(BlockGrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockIgniteEvent(BlockIgniteEvent evt) - { - this.getHandler(BlockIgniteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) - { - this.getHandler(BlockMultiPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPhysicsEvent(BlockPhysicsEvent evt) - { - this.getHandler(BlockPhysicsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) - { - this.getHandler(BlockPistonExtendEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) - { - this.getHandler(BlockPistonRetractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPlaceEvent(BlockPlaceEvent evt) - { - this.getHandler(BlockPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockRedstoneEvent(BlockRedstoneEvent evt) - { - this.getHandler(BlockRedstoneEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockSpreadEvent(BlockSpreadEvent evt) - { - this.getHandler(BlockSpreadEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBrewEvent(BrewEvent evt) - { - this.getHandler(BrewEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCauldronLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) - { - this.getHandler(CauldronLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCraftItemEvent(CraftItemEvent evt) - { - this.getHandler(CraftItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreatureSpawnEvent(CreatureSpawnEvent evt) - { - this.getHandler(CreatureSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreeperPowerEvent(CreeperPowerEvent evt) - { - this.getHandler(CreeperPowerEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnchantItemEvent(EnchantItemEvent evt) - { - this.getHandler(EnchantItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnderDragonChangePhaseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) - { - this.getHandler(EnderDragonChangePhaseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBlockFormEvent(EntityBlockFormEvent evt) - { - this.getHandler(EntityBlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) - { - this.getHandler(EntityBreakDoorEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) - { - this.getHandler(EntityChangeBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) - { - this.getHandler(EntityCombustByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) - { - this.getHandler(EntityCombustByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustEvent(EntityCombustEvent evt) - { - this.getHandler(EntityCombustEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) - { - this.getHandler(EntityCreatePortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) - { - this.getHandler(EntityDamageByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) - { - this.getHandler(EntityDamageByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageEvent(EntityDamageEvent evt) - { - this.getHandler(EntityDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDeathEvent(EntityDeathEvent evt) - { - this.getHandler(EntityDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityExplodeEvent(EntityExplodeEvent evt) - { - this.getHandler(EntityExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityInteractEvent(EntityInteractEvent evt) - { - this.getHandler(EntityInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) - { - this.getHandler(EntityPortalEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEvent(EntityPortalEvent evt) - { - this.getHandler(EntityPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalExitEvent(EntityPortalExitEvent evt) - { - this.getHandler(EntityPortalExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) - { - this.getHandler(EntityRegainHealthEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityShootBowEvent(EntityShootBowEvent evt) - { - this.getHandler(EntityShootBowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntitySpawnEvent(EntitySpawnEvent evt) - { - this.getHandler(EntitySpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTameEvent(EntityTameEvent evt) - { - this.getHandler(EntityTameEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetEvent(EntityTargetEvent evt) - { - this.getHandler(EntityTargetEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) - { - this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTeleportEvent(EntityTeleportEvent evt) - { - this.getHandler(EntityTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityToggleGlideEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) - { - this.getHandler(EntityToggleGlideEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityUnleashEvent(EntityUnleashEvent evt) - { - this.getHandler(EntityUnleashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExpBottleEvent(ExpBottleEvent evt) - { - this.getHandler(ExpBottleEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) - { - this.getHandler(ExplosionPrimeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFireworkExplodeEvent(FireworkExplodeEvent evt) - { - this.getHandler(FireworkExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) - { - this.getHandler(FoodLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceBurnEvent(FurnaceBurnEvent evt) - { - this.getHandler(FurnaceBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) - { - this.getHandler(FurnaceSmeltEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) - { - this.getHandler(HangingBreakByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakEvent(HangingBreakEvent evt) - { - this.getHandler(HangingBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingPlaceEvent(HangingPlaceEvent evt) - { - this.getHandler(HangingPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHorseJumpEvent(HorseJumpEvent evt) - { - this.getHandler(HorseJumpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent evt) - { - this.getHandler(InventoryClickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCloseEvent(InventoryCloseEvent evt) - { - this.getHandler(InventoryCloseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCreativeEvent(InventoryCreativeEvent evt) - { - this.getHandler(InventoryCreativeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryDragEvent(InventoryDragEvent evt) - { - this.getHandler(InventoryDragEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryEvent(InventoryEvent evt) - { - this.getHandler(InventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryInteractEvent(InventoryInteractEvent evt) - { - this.getHandler(InventoryInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) - { - this.getHandler(InventoryMoveItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryOpenEvent(InventoryOpenEvent evt) - { - this.getHandler(InventoryOpenEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) - { - this.getHandler(InventoryPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemDespawnEvent(ItemDespawnEvent evt) - { - this.getHandler(ItemDespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemMergeEvent(ItemMergeEvent evt) - { - this.getHandler(ItemMergeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemSpawnEvent(ItemSpawnEvent evt) - { - this.getHandler(ItemSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLeavesDecayEvent(LeavesDecayEvent evt) - { - this.getHandler(LeavesDecayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLingeringPotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) - { - this.getHandler(LingeringPotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onNotePlayEvent(NotePlayEvent evt) - { - this.getHandler(NotePlayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPigZapEvent(PigZapEvent evt) - { - this.getHandler(PigZapEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) - { - this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAnimationEvent(PlayerAnimationEvent evt) - { - this.getHandler(PlayerAnimationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) - { - this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) - { - this.getHandler(PlayerBedEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) - { - this.getHandler(PlayerBedLeaveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) - { - this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) - { - this.getHandler(PlayerBucketFillEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) - { - this.getHandler(PlayerChangedWorldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChannelEvent(PlayerChannelEvent evt) - { - this.getHandler(PlayerChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatEvent(PlayerChatEvent evt) - { - this.getHandler(PlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) - { - this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) - { - this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDeathEvent(PlayerDeathEvent evt) - { - this.getHandler(PlayerDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDropItemEvent(PlayerDropItemEvent evt) - { - this.getHandler(PlayerDropItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEditBookEvent(PlayerEditBookEvent evt) - { - this.getHandler(PlayerEditBookEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) - { - this.getHandler(PlayerEggThrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) - { - this.getHandler(PlayerExpChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerFishEvent(PlayerFishEvent evt) - { - this.getHandler(PlayerFishEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) - { - this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) - { - this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) - { - this.getHandler(PlayerInteractEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEvent(PlayerInteractEvent evt) - { - this.getHandler(PlayerInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInventoryEvent(PlayerInventoryEvent evt) - { - this.getHandler(PlayerInventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) - { - this.getHandler(PlayerItemBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) - { - this.getHandler(PlayerItemConsumeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) - { - this.getHandler(PlayerItemDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) - { - this.getHandler(PlayerItemHeldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerJoinEvent(PlayerJoinEvent evt) - { - this.getHandler(PlayerJoinEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerKickEvent(PlayerKickEvent evt) - { - this.getHandler(PlayerKickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) - { - this.getHandler(PlayerLeashEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) - { - this.getHandler(PlayerLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLoginEvent(PlayerLoginEvent evt) - { - this.getHandler(PlayerLoginEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent evt) - { - this.getHandler(PlayerMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupArrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) - { - this.getHandler(PlayerPickupArrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) - { - this.getHandler(PlayerPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPortalEvent(PlayerPortalEvent evt) - { - this.getHandler(PlayerPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerQuitEvent(PlayerQuitEvent evt) - { - this.getHandler(PlayerQuitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) - { - this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) - { - this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRespawnEvent(PlayerRespawnEvent evt) - { - this.getHandler(PlayerRespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) - { - this.getHandler(PlayerShearEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) - { - this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) - { - this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSwapHandItemsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) - { - this.getHandler(PlayerSwapHandItemsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerTeleportEvent(PlayerTeleportEvent evt) - { - this.getHandler(PlayerTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) - { - this.getHandler(PlayerToggleFlightEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) - { - this.getHandler(PlayerToggleSneakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) - { - this.getHandler(PlayerToggleSprintEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) - { - this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerVelocityEvent(PlayerVelocityEvent evt) - { - this.getHandler(PlayerVelocityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPotionSplashEvent(PotionSplashEvent evt) - { - this.getHandler(PotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareAnvilEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareAnvilEvent(PrepareAnvilEvent evt) - { - this.getHandler(PrepareAnvilEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) - { - this.getHandler(PrepareItemCraftEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) - { - this.getHandler(PrepareItemEnchantEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileHitEvent(ProjectileHitEvent evt) - { - this.getHandler(ProjectileHitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) - { - this.getHandler(ProjectileLaunchEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) - { - this.getHandler(SheepDyeWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) - { - this.getHandler(SheepRegrowWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSignChangeEvent(SignChangeEvent evt) - { - this.getHandler(SignChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSlimeSplitEvent(SlimeSplitEvent evt) - { - this.getHandler(SlimeSplitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) - { - this.getHandler(SpawnerSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) - { - this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCreateEvent(VehicleCreateEvent evt) - { - this.getHandler(VehicleCreateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDamageEvent(VehicleDamageEvent evt) - { - this.getHandler(VehicleDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDestroyEvent(VehicleDestroyEvent evt) - { - this.getHandler(VehicleDestroyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEnterEvent(VehicleEnterEvent evt) - { - this.getHandler(VehicleEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) - { - this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent evt) - { - this.getHandler(VehicleExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleMoveEvent(VehicleMoveEvent evt) - { - this.getHandler(VehicleMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleUpdateEvent(VehicleUpdateEvent evt) - { - this.getHandler(VehicleUpdateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVillagerAcquireTradeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) - { - this.getHandler(VillagerAcquireTradeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVillagerReplenishTradeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) - { - this.getHandler(VillagerReplenishTradeEvent.class).handle(evt); - } - -} diff --git a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java b/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java deleted file mode 100644 index 61367be5..00000000 --- a/LIBv2/nms/v1_9_r1/src/main/java/com/github/mce/minigames/impl/nms/v1_9_1/NmsFactory1_9_1.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_9_1; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; - -/** - * Factory to create NMS relevant classes. - * - * @author mepeisen - */ -public class NmsFactory1_9_1 implements NmsFactory -{ - - /** the implementation classes. */ - private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); - - /** - * Constructor. - */ - public NmsFactory1_9_1() - { - this.impls.put(EventSystemInterface.class, () -> new EventSystem1_9_1()); - } - - @Override - public <T> T create(Class<T> clazz) - { - final Supplier<?> supplier = this.impls.get(clazz); - if (supplier != null) - { - return clazz.cast(supplier.get()); - } - return null; - } - -} diff --git a/LIBv2/nms/v1_9_r2/.classpath b/LIBv2/nms/v1_9_r2/.classpath deleted file mode 100644 index 1945bc02..00000000 --- a/LIBv2/nms/v1_9_r2/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/LIBv2/nms/v1_9_r2/.project b/LIBv2/nms/v1_9_r2/.project deleted file mode 100644 index 83025218..00000000 --- a/LIBv2/nms/v1_9_r2/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin_nms1_9_r2</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 51307816..00000000 --- a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs b/LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/LIBv2/nms/v1_9_r2/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/LIBv2/nms/v1_9_r2/pom.xml b/LIBv2/nms/v1_9_r2/pom.xml deleted file mode 100644 index 11c194d7..00000000 --- a/LIBv2/nms/v1_9_r2/pom.xml +++ /dev/null @@ -1,138 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_9_r2</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>jar</packaging> - <name>MinigamesAPI NMS V1.9-R2</name> - <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>2.0.0-SNAPSHOT</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> - <version>1.9.2-R0.1-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - <plugins> - <plugin> - <version>3.0.0</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <version>2.10.3</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java deleted file mode 100644 index 56291e35..00000000 --- a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/EventSystem1_9_2.java +++ /dev/null @@ -1,1840 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_9_2; - -import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockCanBuildEvent; -import org.bukkit.event.block.BlockDamageEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockExpEvent; -import org.bukkit.event.block.BlockExplodeEvent; -import org.bukkit.event.block.BlockFadeEvent; -import org.bukkit.event.block.BlockFormEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockMultiPlaceEvent; -import org.bukkit.event.block.BlockPhysicsEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.BlockSpreadEvent; -import org.bukkit.event.block.CauldronLevelChangeEvent; -import org.bukkit.event.block.EntityBlockFormEvent; -import org.bukkit.event.block.LeavesDecayEvent; -import org.bukkit.event.block.NotePlayEvent; -import org.bukkit.event.block.SignChangeEvent; -import org.bukkit.event.enchantment.EnchantItemEvent; -import org.bukkit.event.enchantment.PrepareItemEnchantEvent; -import org.bukkit.event.entity.AreaEffectCloudApplyEvent; -import org.bukkit.event.entity.CreatureSpawnEvent; -import org.bukkit.event.entity.CreeperPowerEvent; -import org.bukkit.event.entity.EnderDragonChangePhaseEvent; -import org.bukkit.event.entity.EntityBreakDoorEvent; -import org.bukkit.event.entity.EntityChangeBlockEvent; -import org.bukkit.event.entity.EntityCombustByBlockEvent; -import org.bukkit.event.entity.EntityCombustByEntityEvent; -import org.bukkit.event.entity.EntityCombustEvent; -import org.bukkit.event.entity.EntityCreatePortalEvent; -import org.bukkit.event.entity.EntityDamageByBlockEvent; -import org.bukkit.event.entity.EntityDamageByEntityEvent; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityInteractEvent; -import org.bukkit.event.entity.EntityPortalEnterEvent; -import org.bukkit.event.entity.EntityPortalEvent; -import org.bukkit.event.entity.EntityPortalExitEvent; -import org.bukkit.event.entity.EntityRegainHealthEvent; -import org.bukkit.event.entity.EntityShootBowEvent; -import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.EntityTameEvent; -import org.bukkit.event.entity.EntityTargetEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.EntityTeleportEvent; -import org.bukkit.event.entity.EntityToggleGlideEvent; -import org.bukkit.event.entity.EntityUnleashEvent; -import org.bukkit.event.entity.ExpBottleEvent; -import org.bukkit.event.entity.ExplosionPrimeEvent; -import org.bukkit.event.entity.FireworkExplodeEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; -import org.bukkit.event.entity.HorseJumpEvent; -import org.bukkit.event.entity.ItemDespawnEvent; -import org.bukkit.event.entity.ItemMergeEvent; -import org.bukkit.event.entity.ItemSpawnEvent; -import org.bukkit.event.entity.LingeringPotionSplashEvent; -import org.bukkit.event.entity.PigZapEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.entity.PlayerLeashEntityEvent; -import org.bukkit.event.entity.PotionSplashEvent; -import org.bukkit.event.entity.ProjectileHitEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.entity.SheepDyeWoolEvent; -import org.bukkit.event.entity.SheepRegrowWoolEvent; -import org.bukkit.event.entity.SlimeSplitEvent; -import org.bukkit.event.entity.SpawnerSpawnEvent; -import org.bukkit.event.entity.VillagerAcquireTradeEvent; -import org.bukkit.event.entity.VillagerReplenishTradeEvent; -import org.bukkit.event.hanging.HangingBreakByEntityEvent; -import org.bukkit.event.hanging.HangingBreakEvent; -import org.bukkit.event.hanging.HangingPlaceEvent; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.CraftItemEvent; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.FurnaceSmeltEvent; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryCreativeEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryEvent; -import org.bukkit.event.inventory.InventoryInteractEvent; -import org.bukkit.event.inventory.InventoryMoveItemEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.PrepareAnvilEvent; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAchievementAwardedEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerArmorStandManipulateEvent; -import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerBedLeaveEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerChannelEvent; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerChatTabCompleteEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerEditBookEvent; -import org.bukkit.event.player.PlayerEggThrowEvent; -import org.bukkit.event.player.PlayerExpChangeEvent; -import org.bukkit.event.player.PlayerFishEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerInventoryEvent; -import org.bukkit.event.player.PlayerItemBreakEvent; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerLoginEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupArrowEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRegisterChannelEvent; -import org.bukkit.event.player.PlayerResourcePackStatusEvent; -import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerShearEntityEvent; -import org.bukkit.event.player.PlayerStatisticIncrementEvent; -import org.bukkit.event.player.PlayerSwapHandItemsEvent; -import org.bukkit.event.player.PlayerTeleportEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; -import org.bukkit.event.player.PlayerUnregisterChannelEvent; -import org.bukkit.event.player.PlayerVelocityEvent; -import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -import org.bukkit.event.vehicle.VehicleCreateEvent; -import org.bukkit.event.vehicle.VehicleDamageEvent; -import org.bukkit.event.vehicle.VehicleDestroyEvent; -import org.bukkit.event.vehicle.VehicleEnterEvent; -import org.bukkit.event.vehicle.VehicleEntityCollisionEvent; -import org.bukkit.event.vehicle.VehicleExitEvent; -import org.bukkit.event.vehicle.VehicleMoveEvent; -import org.bukkit.event.vehicle.VehicleUpdateEvent; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; - -import com.github.mce.minigames.impl.nms.AbstractEventSystem; - -/** - * The event system implementation. - * - * @author mepeisen - */ -public class EventSystem1_9_2 extends AbstractEventSystem -{ - - /** - * Event handler for AreaEffectCloudApplyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAreaEffectCloudApplyEvent(AreaEffectCloudApplyEvent evt) - { - this.getHandler(AreaEffectCloudApplyEvent.class).handle(evt); - } - - /** - * Event handler for MinigameAsyncPlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent evt) - { - this.getHandler(AsyncPlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBreakEvent(BlockBreakEvent evt) - { - this.getHandler(BlockBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockBurnEvent(BlockBurnEvent evt) - { - this.getHandler(BlockBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockCanBuildEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockCanBuildEvent(BlockCanBuildEvent evt) - { - this.getHandler(BlockCanBuildEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDamageEvent(BlockDamageEvent evt) - { - this.getHandler(BlockDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockDispenseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockDispenseEvent(BlockDispenseEvent evt) - { - this.getHandler(BlockDispenseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExpEvent(BlockExpEvent evt) - { - this.getHandler(BlockExpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockExplodeEvent(BlockExplodeEvent evt) - { - this.getHandler(BlockExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFadeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFadeEvent(BlockFadeEvent evt) - { - this.getHandler(BlockFadeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFormEvent(BlockFormEvent evt) - { - this.getHandler(BlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockFromToEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockFromToEvent(BlockFromToEvent evt) - { - this.getHandler(BlockFromToEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockGrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockGrowEvent(BlockGrowEvent evt) - { - this.getHandler(BlockGrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockIgniteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockIgniteEvent(BlockIgniteEvent evt) - { - this.getHandler(BlockIgniteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockMultiPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockMultiPlaceEvent(BlockMultiPlaceEvent evt) - { - this.getHandler(BlockMultiPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPhysicsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPhysicsEvent(BlockPhysicsEvent evt) - { - this.getHandler(BlockPhysicsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonExtendEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonExtendEvent(BlockPistonExtendEvent evt) - { - this.getHandler(BlockPistonExtendEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPistonRetractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPistonRetractEvent(BlockPistonRetractEvent evt) - { - this.getHandler(BlockPistonRetractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockPlaceEvent(BlockPlaceEvent evt) - { - this.getHandler(BlockPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockRedstoneEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockRedstoneEvent(BlockRedstoneEvent evt) - { - this.getHandler(BlockRedstoneEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBlockSpreadEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBlockSpreadEvent(BlockSpreadEvent evt) - { - this.getHandler(BlockSpreadEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameBrewEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onBrewEvent(BrewEvent evt) - { - this.getHandler(BrewEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCauldronLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCauldronLevelChangeEvent(CauldronLevelChangeEvent evt) - { - this.getHandler(CauldronLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCraftItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCraftItemEvent(CraftItemEvent evt) - { - this.getHandler(CraftItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreatureSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreatureSpawnEvent(CreatureSpawnEvent evt) - { - this.getHandler(CreatureSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameCreeperPowerEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onCreeperPowerEvent(CreeperPowerEvent evt) - { - this.getHandler(CreeperPowerEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnchantItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnchantItemEvent(EnchantItemEvent evt) - { - this.getHandler(EnchantItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEnderDragonChangePhaseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEnderDragonChangePhaseEvent(EnderDragonChangePhaseEvent evt) - { - this.getHandler(EnderDragonChangePhaseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBlockFormEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBlockFormEvent(EntityBlockFormEvent evt) - { - this.getHandler(EntityBlockFormEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityBreakDoorEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityBreakDoorEvent(EntityBreakDoorEvent evt) - { - this.getHandler(EntityBreakDoorEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityChangeBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityChangeBlockEvent(EntityChangeBlockEvent evt) - { - this.getHandler(EntityChangeBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByBlockEvent(EntityCombustByBlockEvent evt) - { - this.getHandler(EntityCombustByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustByEntityEvent(EntityCombustByEntityEvent evt) - { - this.getHandler(EntityCombustByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCombustEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCombustEvent(EntityCombustEvent evt) - { - this.getHandler(EntityCombustEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityCreatePortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityCreatePortalEvent(EntityCreatePortalEvent evt) - { - this.getHandler(EntityCreatePortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByBlockEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByBlockEvent(EntityDamageByBlockEvent evt) - { - this.getHandler(EntityDamageByBlockEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent evt) - { - this.getHandler(EntityDamageByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDamageEvent(EntityDamageEvent evt) - { - this.getHandler(EntityDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityDeathEvent(EntityDeathEvent evt) - { - this.getHandler(EntityDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityExplodeEvent(EntityExplodeEvent evt) - { - this.getHandler(EntityExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityInteractEvent(EntityInteractEvent evt) - { - this.getHandler(EntityInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEnterEvent(EntityPortalEnterEvent evt) - { - this.getHandler(EntityPortalEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalEvent(EntityPortalEvent evt) - { - this.getHandler(EntityPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityPortalExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityPortalExitEvent(EntityPortalExitEvent evt) - { - this.getHandler(EntityPortalExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityRegainHealthEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityRegainHealthEvent(EntityRegainHealthEvent evt) - { - this.getHandler(EntityRegainHealthEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityShootBowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityShootBowEvent(EntityShootBowEvent evt) - { - this.getHandler(EntityShootBowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntitySpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntitySpawnEvent(EntitySpawnEvent evt) - { - this.getHandler(EntitySpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTameEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTameEvent(EntityTameEvent evt) - { - this.getHandler(EntityTameEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetEvent(EntityTargetEvent evt) - { - this.getHandler(EntityTargetEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTargetLivingEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTargetLivingEntityEvent(EntityTargetLivingEntityEvent evt) - { - this.getHandler(EntityTargetLivingEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityTeleportEvent(EntityTeleportEvent evt) - { - this.getHandler(EntityTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityToggleGlideEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityToggleGlideEvent(EntityToggleGlideEvent evt) - { - this.getHandler(EntityToggleGlideEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameEntityUnleashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onEntityUnleashEvent(EntityUnleashEvent evt) - { - this.getHandler(EntityUnleashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExpBottleEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExpBottleEvent(ExpBottleEvent evt) - { - this.getHandler(ExpBottleEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameExplosionPrimeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onExplosionPrimeEvent(ExplosionPrimeEvent evt) - { - this.getHandler(ExplosionPrimeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFireworkExplodeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFireworkExplodeEvent(FireworkExplodeEvent evt) - { - this.getHandler(FireworkExplodeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFoodLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFoodLevelChangeEvent(FoodLevelChangeEvent evt) - { - this.getHandler(FoodLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceBurnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceBurnEvent(FurnaceBurnEvent evt) - { - this.getHandler(FurnaceBurnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameFurnaceSmeltEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onFurnaceSmeltEvent(FurnaceSmeltEvent evt) - { - this.getHandler(FurnaceSmeltEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakByEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakByEntityEvent(HangingBreakByEntityEvent evt) - { - this.getHandler(HangingBreakByEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingBreakEvent(HangingBreakEvent evt) - { - this.getHandler(HangingBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHangingPlaceEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHangingPlaceEvent(HangingPlaceEvent evt) - { - this.getHandler(HangingPlaceEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameHorseJumpEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onHorseJumpEvent(HorseJumpEvent evt) - { - this.getHandler(HorseJumpEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryClickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent evt) - { - this.getHandler(InventoryClickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCloseEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCloseEvent(InventoryCloseEvent evt) - { - this.getHandler(InventoryCloseEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryCreativeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryCreativeEvent(InventoryCreativeEvent evt) - { - this.getHandler(InventoryCreativeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryDragEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryDragEvent(InventoryDragEvent evt) - { - this.getHandler(InventoryDragEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryEvent(InventoryEvent evt) - { - this.getHandler(InventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryInteractEvent(InventoryInteractEvent evt) - { - this.getHandler(InventoryInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryMoveItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryMoveItemEvent(InventoryMoveItemEvent evt) - { - this.getHandler(InventoryMoveItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryOpenEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryOpenEvent(InventoryOpenEvent evt) - { - this.getHandler(InventoryOpenEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameInventoryPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onInventoryPickupItemEvent(InventoryPickupItemEvent evt) - { - this.getHandler(InventoryPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemDespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemDespawnEvent(ItemDespawnEvent evt) - { - this.getHandler(ItemDespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemMergeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemMergeEvent(ItemMergeEvent evt) - { - this.getHandler(ItemMergeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameItemSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onItemSpawnEvent(ItemSpawnEvent evt) - { - this.getHandler(ItemSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLeavesDecayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLeavesDecayEvent(LeavesDecayEvent evt) - { - this.getHandler(LeavesDecayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameLingeringPotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onLingeringPotionSplashEvent(LingeringPotionSplashEvent evt) - { - this.getHandler(LingeringPotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameNotePlayEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onNotePlayEvent(NotePlayEvent evt) - { - this.getHandler(NotePlayEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePigZapEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPigZapEvent(PigZapEvent evt) - { - this.getHandler(PigZapEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAchievementAwardedEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAchievementAwardedEvent(PlayerAchievementAwardedEvent evt) - { - this.getHandler(PlayerAchievementAwardedEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerAnimationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerAnimationEvent(PlayerAnimationEvent evt) - { - this.getHandler(PlayerAnimationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerArmorStandManipulateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerArmorStandManipulateEvent(PlayerArmorStandManipulateEvent evt) - { - this.getHandler(PlayerArmorStandManipulateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedEnterEvent(PlayerBedEnterEvent evt) - { - this.getHandler(PlayerBedEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBedLeaveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent evt) - { - this.getHandler(PlayerBedLeaveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketEmptyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketEmptyEvent(PlayerBucketEmptyEvent evt) - { - this.getHandler(PlayerBucketEmptyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerBucketFillEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerBucketFillEvent(PlayerBucketFillEvent evt) - { - this.getHandler(PlayerBucketFillEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChangedWorldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent evt) - { - this.getHandler(PlayerChangedWorldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChannelEvent(PlayerChannelEvent evt) - { - this.getHandler(PlayerChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatEvent(PlayerChatEvent evt) - { - this.getHandler(PlayerChatEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerChatTabCompleteEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerChatTabCompleteEvent(PlayerChatTabCompleteEvent evt) - { - this.getHandler(PlayerChatTabCompleteEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerCommandPreprocessEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerCommandPreprocessEvent(PlayerCommandPreprocessEvent evt) - { - this.getHandler(PlayerCommandPreprocessEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDeathEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDeathEvent(PlayerDeathEvent evt) - { - this.getHandler(PlayerDeathEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerDropItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerDropItemEvent(PlayerDropItemEvent evt) - { - this.getHandler(PlayerDropItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEditBookEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEditBookEvent(PlayerEditBookEvent evt) - { - this.getHandler(PlayerEditBookEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerEggThrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerEggThrowEvent(PlayerEggThrowEvent evt) - { - this.getHandler(PlayerEggThrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerExpChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerExpChangeEvent(PlayerExpChangeEvent evt) - { - this.getHandler(PlayerExpChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerFishEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerFishEvent(PlayerFishEvent evt) - { - this.getHandler(PlayerFishEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerGameModeChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerGameModeChangeEvent(PlayerGameModeChangeEvent evt) - { - this.getHandler(PlayerGameModeChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractAtEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractAtEntityEvent(PlayerInteractAtEntityEvent evt) - { - this.getHandler(PlayerInteractAtEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent evt) - { - this.getHandler(PlayerInteractEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInteractEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInteractEvent(PlayerInteractEvent evt) - { - this.getHandler(PlayerInteractEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerInventoryEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerInventoryEvent(PlayerInventoryEvent evt) - { - this.getHandler(PlayerInventoryEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemBreakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemBreakEvent(PlayerItemBreakEvent evt) - { - this.getHandler(PlayerItemBreakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemConsumeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemConsumeEvent(PlayerItemConsumeEvent evt) - { - this.getHandler(PlayerItemConsumeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemDamageEvent(PlayerItemDamageEvent evt) - { - this.getHandler(PlayerItemDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerItemHeldEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerItemHeldEvent(PlayerItemHeldEvent evt) - { - this.getHandler(PlayerItemHeldEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerJoinEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerJoinEvent(PlayerJoinEvent evt) - { - this.getHandler(PlayerJoinEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerKickEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerKickEvent(PlayerKickEvent evt) - { - this.getHandler(PlayerKickEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLeashEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLeashEntityEvent(PlayerLeashEntityEvent evt) - { - this.getHandler(PlayerLeashEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLevelChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLevelChangeEvent(PlayerLevelChangeEvent evt) - { - this.getHandler(PlayerLevelChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerLoginEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerLoginEvent(PlayerLoginEvent evt) - { - this.getHandler(PlayerLoginEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerMoveEvent(PlayerMoveEvent evt) - { - this.getHandler(PlayerMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupArrowEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupArrowEvent(PlayerPickupArrowEvent evt) - { - this.getHandler(PlayerPickupArrowEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPickupItemEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPickupItemEvent(PlayerPickupItemEvent evt) - { - this.getHandler(PlayerPickupItemEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerPortalEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerPortalEvent(PlayerPortalEvent evt) - { - this.getHandler(PlayerPortalEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerQuitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerQuitEvent(PlayerQuitEvent evt) - { - this.getHandler(PlayerQuitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRegisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRegisterChannelEvent(PlayerRegisterChannelEvent evt) - { - this.getHandler(PlayerRegisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerResourcePackStatusEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerResourcePackStatusEvent(PlayerResourcePackStatusEvent evt) - { - this.getHandler(PlayerResourcePackStatusEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerRespawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerRespawnEvent(PlayerRespawnEvent evt) - { - this.getHandler(PlayerRespawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerShearEntityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerShearEntityEvent(PlayerShearEntityEvent evt) - { - this.getHandler(PlayerShearEntityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSpawnLocationEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSpawnLocationEvent(PlayerSpawnLocationEvent evt) - { - this.getHandler(PlayerSpawnLocationEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerStatisticIncrementEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent evt) - { - this.getHandler(PlayerStatisticIncrementEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerSwapHandItemsEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerSwapHandItemsEvent(PlayerSwapHandItemsEvent evt) - { - this.getHandler(PlayerSwapHandItemsEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerTeleportEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerTeleportEvent(PlayerTeleportEvent evt) - { - this.getHandler(PlayerTeleportEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleFlightEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent evt) - { - this.getHandler(PlayerToggleFlightEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSneakEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent evt) - { - this.getHandler(PlayerToggleSneakEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerToggleSprintEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerToggleSprintEvent(PlayerToggleSprintEvent evt) - { - this.getHandler(PlayerToggleSprintEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerUnregisterChannelEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerUnregisterChannelEvent(PlayerUnregisterChannelEvent evt) - { - this.getHandler(PlayerUnregisterChannelEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePlayerVelocityEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPlayerVelocityEvent(PlayerVelocityEvent evt) - { - this.getHandler(PlayerVelocityEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePotionSplashEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPotionSplashEvent(PotionSplashEvent evt) - { - this.getHandler(PotionSplashEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareAnvilEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareAnvilEvent(PrepareAnvilEvent evt) - { - this.getHandler(PrepareAnvilEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemCraftEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemCraftEvent(PrepareItemCraftEvent evt) - { - this.getHandler(PrepareItemCraftEvent.class).handle(evt); - } - - - /** - * Event handler for MinigamePrepareItemEnchantEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onPrepareItemEnchantEvent(PrepareItemEnchantEvent evt) - { - this.getHandler(PrepareItemEnchantEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileHitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileHitEvent(ProjectileHitEvent evt) - { - this.getHandler(ProjectileHitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameProjectileLaunchEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onProjectileLaunchEvent(ProjectileLaunchEvent evt) - { - this.getHandler(ProjectileLaunchEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepDyeWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepDyeWoolEvent(SheepDyeWoolEvent evt) - { - this.getHandler(SheepDyeWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSheepRegrowWoolEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSheepRegrowWoolEvent(SheepRegrowWoolEvent evt) - { - this.getHandler(SheepRegrowWoolEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSignChangeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSignChangeEvent(SignChangeEvent evt) - { - this.getHandler(SignChangeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSlimeSplitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSlimeSplitEvent(SlimeSplitEvent evt) - { - this.getHandler(SlimeSplitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameSpawnerSpawnEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onSpawnerSpawnEvent(SpawnerSpawnEvent evt) - { - this.getHandler(SpawnerSpawnEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleBlockCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleBlockCollisionEvent(VehicleBlockCollisionEvent evt) - { - this.getHandler(VehicleBlockCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleCreateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleCreateEvent(VehicleCreateEvent evt) - { - this.getHandler(VehicleCreateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDamageEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDamageEvent(VehicleDamageEvent evt) - { - this.getHandler(VehicleDamageEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleDestroyEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleDestroyEvent(VehicleDestroyEvent evt) - { - this.getHandler(VehicleDestroyEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEnterEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEnterEvent(VehicleEnterEvent evt) - { - this.getHandler(VehicleEnterEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleEntityCollisionEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleEntityCollisionEvent(VehicleEntityCollisionEvent evt) - { - this.getHandler(VehicleEntityCollisionEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleExitEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleExitEvent(VehicleExitEvent evt) - { - this.getHandler(VehicleExitEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleMoveEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleMoveEvent(VehicleMoveEvent evt) - { - this.getHandler(VehicleMoveEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVehicleUpdateEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVehicleUpdateEvent(VehicleUpdateEvent evt) - { - this.getHandler(VehicleUpdateEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVillagerAcquireTradeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVillagerAcquireTradeEvent(VillagerAcquireTradeEvent evt) - { - this.getHandler(VillagerAcquireTradeEvent.class).handle(evt); - } - - - /** - * Event handler for MinigameVillagerReplenishTradeEvent event. - * @param evt the event to be passed. - */ - @EventHandler - public void onVillagerReplenishTradeEvent(VillagerReplenishTradeEvent evt) - { - this.getHandler(VillagerReplenishTradeEvent.class).handle(evt); - } - -} diff --git a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java b/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java deleted file mode 100644 index 395365b8..00000000 --- a/LIBv2/nms/v1_9_r2/src/main/java/com/github/mce/minigames/impl/nms/v1_9_2/NmsFactory1_9_2.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.nms.v1_9_2; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; - -/** - * Factory to create NMS relevant classes. - * - * @author mepeisen - */ -public class NmsFactory1_9_2 implements NmsFactory -{ - - /** the implementation classes. */ - private final Map<Class<?>, Supplier<?>> impls = new HashMap<>(); - - /** - * Constructor. - */ - public NmsFactory1_9_2() - { - this.impls.put(EventSystemInterface.class, () -> new EventSystem1_9_2()); - } - - @Override - public <T> T create(Class<T> clazz) - { - final Supplier<?> supplier = this.impls.get(clazz); - if (supplier != null) - { - return clazz.cast(supplier.get()); - } - return null; - } - -} diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index bd16db8b..82ffbe0e 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -10,6 +10,10 @@ <properties> <minigames.releaseversion>2.0.0</minigames.releaseversion> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + <java.version>1.8</java.version> </properties> <parent> From 1924b8a27366100450b231a96121b50f12032015 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 14 Jan 2017 21:33:00 +0100 Subject: [PATCH 164/266] starting migration of v2 to mclib --- APIv2/pom.xml | 2 +- LIBv2/pom.xml | 260 ++--- .../github/mce/minigames/impl/BaseImpl.java | 744 ++++++++------- .../mce/minigames/impl/CommandImpl.java | 170 ---- .../mce/minigames/impl/CoreMinigame.java | 12 +- .../mce/minigames/impl/ExtensionImpl.java | 279 +++--- .../minigames/impl/MinigamePluginImpl.java | 111 ++- .../mce/minigames/impl/MinigameWrapper.java | 282 +++--- .../mce/minigames/impl/MinigamesPlugin.java | 894 +++++++----------- .../mce/minigames/impl/arena/ArenaImpl.java | 365 +++---- .../impl/arena/ArenaTypeBuilderImpl.java | 822 ++++++++-------- .../impl/arena/ArenaTypeDeclarationImpl.java | 7 +- .../minigames/impl/cmd/AddCommandHandler.java | 12 +- .../impl/cmd/AdminCommandHandler.java | 12 +- .../impl/cmd/CreateCommandHandler.java | 173 ++-- .../impl/cmd/DebugCommandHandler.java | 12 +- .../impl/cmd/EditCommandHandler.java | 12 +- .../impl/cmd/GetOptCommandHandler.java | 12 +- .../impl/cmd/InfoArenasCommandHandler.java | 81 +- .../impl/cmd/InfoCommandHandler.java | 27 +- .../cmd/InfoExtensionsCommandHandler.java | 9 +- .../impl/cmd/InfoMinigamesCommandHandler.java | 9 +- .../impl/cmd/JoinCommandHandler.java | 12 +- .../impl/cmd/LeaveCommandHandler.java | 12 +- .../impl/cmd/ListCommandHandler.java | 12 +- .../minigames/impl/cmd/Mg2CommandHandler.java | 7 +- .../impl/cmd/PartyAcceptCommandHandler.java | 12 +- .../impl/cmd/PartyCommandHandler.java | 17 +- .../impl/cmd/PartyDisbandCommandHandler.java | 12 +- .../impl/cmd/PartyInviteCommandHandler.java | 12 +- .../impl/cmd/PartyKickCommandHandler.java | 12 +- .../impl/cmd/PartyLeaveCommandHandler.java | 12 +- .../impl/cmd/PartyListCommandHandler.java | 12 +- .../impl/cmd/RemoveCommandHandler.java | 12 +- .../impl/cmd/SaveCommandHandler.java | 12 +- .../impl/cmd/SetOptCommandHandler.java | 12 +- .../impl/cmd/StartCommandHandler.java | 57 +- .../impl/cmd/TestCommandHandler.java | 12 +- .../component/AbstractCuboidComponent.java | 4 +- .../impl/context/ArenaInterfaceProvider.java | 48 - .../context/ArenaPlayerInterfaceProvider.java | 45 - .../impl/context/DefaultResolver.java | 9 +- .../impl/context/MinigameContextImpl.java | 332 ------- .../context/MinigameInterfaceProvider.java | 48 - .../minigames/impl/gui/GuiSessionImpl.java | 295 ------ .../minigames/impl/msg/MessagesConfig.java | 10 +- .../impl/player/ArenaPlayerImpl.java | 247 +---- .../PremiumServiceProviderInterface.java | 3 +- 48 files changed, 2162 insertions(+), 3423 deletions(-) delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java diff --git a/APIv2/pom.xml b/APIv2/pom.xml index 67067296..eccf5763 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -1,7 +1,7 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>de.minigameslib.mclib</groupId> + <groupId>de.minigameslib.mglib</groupId> <artifactId>MinigamesAPI</artifactId> <version>2.0.0-SNAPSHOT</version> <packaging>jar</packaging> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 82ffbe0e..3ddaca81 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -1,37 +1,59 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>com.github.MCE-Plugins</groupId> + <groupId>de.minigameslib.mglib</groupId> <artifactId>MinigamesPlugin</artifactId> <version>2.0.0-SNAPSHOT</version> <packaging>jar</packaging> - <name>MinigamesAPI Plugin</name> + <name>MinigamesAPI</name> <description>Rich Minigames API V2</description> - - <properties> - <minigames.releaseversion>2.0.0</minigames.releaseversion> + + <properties> + <maven.source.plugin.version>3.0.0</maven.source.plugin.version> + <maven.javadoc.plugin.version>2.10.3</maven.javadoc.plugin.version> + <jacoco.plugin.version>0.7.6.201602180812</jacoco.plugin.version> + <maven.jxr.plugin.version>2.1</maven.jxr.plugin.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> - </properties> - - <parent> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> - </parent> + </properties> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>spigot-1.11.2-R0.1-api-bom</artifactId> + <version>0.0.1-SNAPSHOT</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> <dependencies> <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib-api</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>provided</scope> </dependency> <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot</artifactId> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>runtime</scope> </dependency> + <dependency> + <groupId>de.minigameslib.mglib</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot-api</artifactId> + </dependency> <dependency> <groupId>junit</groupId> @@ -45,84 +67,6 @@ <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> </dependency> - - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nmsapi</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_10_r1</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_9_r2</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_9_r1</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_8_r3</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_8_r2</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.github.MCE-Plugins</groupId> - <artifactId>MinigamesPlugin_nms1_8_r1</artifactId> - <version>${project.version}</version> - <exclusions> - <exclusion> - <groupId>org.spigotmc</groupId> - <artifactId>spigotmc</artifactId> - </exclusion> - </exclusions> - </dependency> </dependencies> <build> @@ -140,7 +84,68 @@ </resources> <plugins> <plugin> - <version>3.0.0</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>1.4</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <artifactSet> + <includes> + <include>de.minigameslib.mglib:*</include> + </includes> + </artifactSet> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>mclib.withjavadocreport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + </plugin> + </plugins></reporting> + </profile> + <profile> + <id>mclib.withtestreport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + </plugins></reporting> + </profile> + <profile> + <id>mclib.withsourcereport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>${maven.jxr.plugin.version}</version> + </plugin> + </plugins></reporting> + </profile> + + <profile> + <id>mclib.withsources</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> + <version>${maven.source.plugin.version}</version> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> @@ -152,8 +157,16 @@ </execution> </executions> </plugin> + </plugins> + </build> + </profile> + <profile> + <id>mclib.withjavadoc</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> <plugin> - <version>2.10.3</version> + <version>${maven.javadoc.plugin.version}</version> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> @@ -165,11 +178,18 @@ </execution> </executions> </plugin> - - <plugin> + </plugins> + </build> + </profile> + <profile> + <id>mclib.withcoverage</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> - <version>0.7.6.201602180812</version> + <version>${jacoco.plugin.version}</version> <executions> <execution> <id>default-prepare-agent</id> @@ -188,36 +208,30 @@ </execution> </executions> </plugin> - - <plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>${surefireArgLine}</argLine> </configuration> </plugin> - + </plugins> + </build> + <reporting><plugins> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>1.4</version> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <artifactSet> - <includes> - <include>com.github.MCE-Plugins:*</include> - </includes> - </artifactSet> - </configuration> - </execution> - </executions> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco.plugin.version}</version> + <reportSets> + <reportSet> + <reports> + <report>report</report> + </reports> + </reportSet> + </reportSets> </plugin> - </plugins> - </build> + </plugins></reporting> + </profile> + </profiles> </project> \ No newline at end of file diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java index 82568d93..af24ca8a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java @@ -32,46 +32,42 @@ import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeProvider; import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.arena.rules.AdminRuleId; -import com.github.mce.minigames.api.arena.rules.ArenaRuleId; -import com.github.mce.minigames.api.arena.rules.MatchRuleId; -import com.github.mce.minigames.api.arena.rules.PlayerRuleId; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleId; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.config.ConfigurationBool; -import com.github.mce.minigames.api.config.ConfigurationBoolList; -import com.github.mce.minigames.api.config.ConfigurationByte; -import com.github.mce.minigames.api.config.ConfigurationByteList; -import com.github.mce.minigames.api.config.ConfigurationCharacter; -import com.github.mce.minigames.api.config.ConfigurationCharacterList; -import com.github.mce.minigames.api.config.ConfigurationColor; -import com.github.mce.minigames.api.config.ConfigurationDouble; -import com.github.mce.minigames.api.config.ConfigurationDoubleList; -import com.github.mce.minigames.api.config.ConfigurationFloat; -import com.github.mce.minigames.api.config.ConfigurationFloatList; -import com.github.mce.minigames.api.config.ConfigurationInt; -import com.github.mce.minigames.api.config.ConfigurationIntList; -import com.github.mce.minigames.api.config.ConfigurationLong; -import com.github.mce.minigames.api.config.ConfigurationLongList; -import com.github.mce.minigames.api.config.ConfigurationShort; -import com.github.mce.minigames.api.config.ConfigurationShortList; -import com.github.mce.minigames.api.config.ConfigurationString; -import com.github.mce.minigames.api.config.ConfigurationStringList; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.config.ConfigurationValues; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.team.TeamId; import com.github.mce.minigames.api.team.TeamRuleId; import com.github.mce.minigames.impl.msg.MessagesConfig; +import de.minigameslib.mclib.api.config.ConfigInterface; +import de.minigameslib.mclib.api.config.ConfigurationBool; +import de.minigameslib.mclib.api.config.ConfigurationBoolList; +import de.minigameslib.mclib.api.config.ConfigurationByte; +import de.minigameslib.mclib.api.config.ConfigurationByteList; +import de.minigameslib.mclib.api.config.ConfigurationCharacter; +import de.minigameslib.mclib.api.config.ConfigurationCharacterList; +import de.minigameslib.mclib.api.config.ConfigurationColor; +import de.minigameslib.mclib.api.config.ConfigurationDouble; +import de.minigameslib.mclib.api.config.ConfigurationDoubleList; +import de.minigameslib.mclib.api.config.ConfigurationFloat; +import de.minigameslib.mclib.api.config.ConfigurationFloatList; +import de.minigameslib.mclib.api.config.ConfigurationInt; +import de.minigameslib.mclib.api.config.ConfigurationIntList; +import de.minigameslib.mclib.api.config.ConfigurationLong; +import de.minigameslib.mclib.api.config.ConfigurationLongList; +import de.minigameslib.mclib.api.config.ConfigurationShort; +import de.minigameslib.mclib.api.config.ConfigurationShortList; +import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationStringList; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.MessagesConfigInterface; +import de.minigameslib.mclib.impl.comp.ComponentId; + /** * Basic support for extensions and minigames. * * @author mepeisen */ -class BaseImpl implements ConfigInterface, ArenaTypeProvider +class BaseImpl implements ArenaTypeProvider { /** @@ -122,349 +118,349 @@ public MessagesConfigInterface getMessages() return this.messages; } - @Override - public FileConfiguration getConfig(String file) - { - if (file.contains("/") || file.contains("..") || file.contains(":") || file.contains("\\")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - { - throw new IllegalArgumentException("Invalid character in file name."); //$NON-NLS-1$ - } - if (file.equals("messages.yml")) //$NON-NLS-1$ - { - throw new IllegalArgumentException("Invalid file name."); //$NON-NLS-1$ - } - return this.configurations.computeIfAbsent(file, (f) -> { - FileConfiguration fileConfig = null; - final File fobj = new File(this.plugin.getDataFolder(), file); - if (file.equals("config.yml")) //$NON-NLS-1$ - { - fileConfig = this.plugin.getConfig(); - } - else - { - fileConfig = YamlConfiguration.loadConfiguration(fobj); - } - - final List<ConfigurationValueInterface> list = this.defaultConfigs.get(file); - if (list != null) - { - for (final ConfigurationValueInterface cfg : list) - { - try - { - final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); - final Field field = cfg.getClass().getDeclaredField(((Enum<?>) cfg).name()); - // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); - if (clazzDef == null) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - - if (field.getAnnotation(ConfigurationBool.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationBool.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationBoolList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationBoolList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationByte.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationByte.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationByteList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationByteList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationCharacter.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationCharacter.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationCharacterList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationCharacterList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationDouble.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationDouble.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationDoubleList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationDoubleList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationFloat.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationFloat.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationFloatList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationFloatList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationInt.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationInt.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationIntList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationIntList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationLong.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationLong.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationLongList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationLongList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationShort.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationShort.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationShortList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationShortList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationString.class) != null) - { - fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationString.class).defaultValue()); - } - - if (field.getAnnotation(ConfigurationStringList.class) != null) - { - fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationStringList.class).defaultValue())); - } - - if (field.getAnnotation(ConfigurationColor.class) != null) - { - fileConfig.addDefault(cfg.path(), Color.fromRGB((field.getAnnotation(ConfigurationColor.class).defaultRgb()))); - } - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - fileConfig.options().copyDefaults(true); - try - { - fileConfig.save(fobj); - } - catch (IOException e) - { - // TODO logging - e.printStackTrace(); - } - } - - return fileConfig; - }); - } - - @Override - public void saveConfig(String file) - { - final File fobj = new File(this.plugin.getDataFolder(), file); - try - { - this.getConfig(file).save(fobj); - } - catch (IOException e) - { - // TODO logging - e.printStackTrace(); - } - } - - /** - * Initializes the messages with given localized messages. - * - * @param msgs - */ - void initMessage(List<LocalizedMessageInterface> msgs) - { - this.messages.initMessage(msgs); - } +// @Override +// public FileConfiguration getConfig(String file) +// { +// if (file.contains("/") || file.contains("..") || file.contains(":") || file.contains("\\")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ +// { +// throw new IllegalArgumentException("Invalid character in file name."); //$NON-NLS-1$ +// } +// if (file.equals("messages.yml")) //$NON-NLS-1$ +// { +// throw new IllegalArgumentException("Invalid file name."); //$NON-NLS-1$ +// } +// return this.configurations.computeIfAbsent(file, (f) -> { +// FileConfiguration fileConfig = null; +// final File fobj = new File(this.plugin.getDataFolder(), file); +// if (file.equals("config.yml")) //$NON-NLS-1$ +// { +// fileConfig = this.plugin.getConfig(); +// } +// else +// { +// fileConfig = YamlConfiguration.loadConfiguration(fobj); +// } +// +// final List<ConfigurationValueInterface> list = this.defaultConfigs.get(file); +// if (list != null) +// { +// for (final ConfigurationValueInterface cfg : list) +// { +// try +// { +// final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); +// final Field field = cfg.getClass().getDeclaredField(((Enum<?>) cfg).name()); +// // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); +// if (clazzDef == null) +// { +// throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ +// } +// +// if (field.getAnnotation(ConfigurationBool.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationBool.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationBoolList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationBoolList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationByte.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationByte.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationByteList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationByteList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationCharacter.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationCharacter.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationCharacterList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationCharacterList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationDouble.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationDouble.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationDoubleList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationDoubleList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationFloat.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationFloat.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationFloatList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationFloatList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationInt.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationInt.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationIntList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationIntList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationLong.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationLong.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationLongList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationLongList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationShort.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationShort.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationShortList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationShortList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationString.class) != null) +// { +// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationString.class).defaultValue()); +// } +// +// if (field.getAnnotation(ConfigurationStringList.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationStringList.class).defaultValue())); +// } +// +// if (field.getAnnotation(ConfigurationColor.class) != null) +// { +// fileConfig.addDefault(cfg.path(), Color.fromRGB((field.getAnnotation(ConfigurationColor.class).defaultRgb()))); +// } +// } +// catch (NoSuchFieldException ex) +// { +// throw new IllegalStateException(ex); +// } +// } +// fileConfig.options().copyDefaults(true); +// try +// { +// fileConfig.save(fobj); +// } +// catch (IOException e) +// { +// // TODO logging +// e.printStackTrace(); +// } +// } +// +// return fileConfig; +// }); +// } - /** - * Initializes the configuration files. - * - * @param configs - */ - void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) - { - this.defaultConfigs = configs; - } - - /** - * @param rules - */ - public void initRules(List<RuleId> rules) - { - // TODO Auto-generated method stub - - } - - /** - * @param components - */ - public void initComponents(List<ComponentId> components) - { - // TODO Auto-generated method stub - - } - - /** - * @param plist - */ - public void initPhases(List<MatchPhaseId> plist) - { - // TODO Auto-generated method stub - - } - - /** - * @param tlist - */ - public void initTeams(List<TeamId> tlist) - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() - */ - @Override - public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() - */ - @Override - public ArenaTypeDeclarationInterface getDefaultType() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) - */ - @Override - public ArenaTypeDeclarationInterface getType(String name) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() - */ - @Override - public Iterable<AdminRuleId> getAdminRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() - */ - @Override - public Iterable<MatchRuleId> getMatchRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() - */ - @Override - public Iterable<PlayerRuleId> getPlayerRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() - */ - @Override - public Iterable<TeamRuleId> getTeamRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() - */ - @Override - public Iterable<ComponentRuleId> getComponentRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() - */ - @Override - public Iterable<ArenaRuleId> getArenaRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() - */ - @Override - public Iterable<ComponentId> getComponents() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() - */ - @Override - public Iterable<MatchPhaseId> getMatchPhases() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() - */ - @Override - public Iterable<TeamId> getTeams() - { - // TODO Auto-generated method stub - return null; - } +// @Override +// public void saveConfig(String file) +// { +// final File fobj = new File(this.plugin.getDataFolder(), file); +// try +// { +// this.getConfig(file).save(fobj); +// } +// catch (IOException e) +// { +// // TODO logging +// e.printStackTrace(); +// } +// } +// +// /** +// * Initializes the messages with given localized messages. +// * +// * @param msgs +// */ +// void initMessage(List<LocalizedMessageInterface> msgs) +// { +// this.messages.initMessage(msgs); +// } +// +// /** +// * Initializes the configuration files. +// * +// * @param configs +// */ +// void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) +// { +// this.defaultConfigs = configs; +// } +// +// /** +// * @param rules +// */ +// public void initRules(List<RuleId> rules) +// { +// // TODO Auto-generated method stub +// +// } +// +// /** +// * @param components +// */ +// public void initComponents(List<ComponentId> components) +// { +// // TODO Auto-generated method stub +// +// } +// +// /** +// * @param plist +// */ +// public void initPhases(List<MatchPhaseId> plist) +// { +// // TODO Auto-generated method stub +// +// } +// +// /** +// * @param tlist +// */ +// public void initTeams(List<TeamId> tlist) +// { +// // TODO Auto-generated method stub +// +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() +// */ +// @Override +// public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() +// */ +// @Override +// public ArenaTypeDeclarationInterface getDefaultType() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) +// */ +// @Override +// public ArenaTypeDeclarationInterface getType(String name) +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() +// */ +// @Override +// public Iterable<AdminRuleId> getAdminRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() +// */ +// @Override +// public Iterable<MatchRuleId> getMatchRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() +// */ +// @Override +// public Iterable<PlayerRuleId> getPlayerRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() +// */ +// @Override +// public Iterable<TeamRuleId> getTeamRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() +// */ +// @Override +// public Iterable<ComponentRuleId> getComponentRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() +// */ +// @Override +// public Iterable<ArenaRuleId> getArenaRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() +// */ +// @Override +// public Iterable<ComponentId> getComponents() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() +// */ +// @Override +// public Iterable<MatchPhaseId> getMatchPhases() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() +// */ +// @Override +// public Iterable<TeamId> getTeams() +// { +// // TODO Auto-generated method stub +// return null; +// } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java deleted file mode 100644 index 0f40701f..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CommandImpl.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.util.Arrays; -import java.util.Locale; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.FalseStub; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.TrueStub; - -/** - * Implementation of command interface. - * - * @author mepeisen - */ -public class CommandImpl implements CommandInterface -{ - - /** - * the command sender. - */ - private final CommandSender sender; - - /** - * The main minigames plugin. - */ - private final MinigamesPlugin plugin; - - /** - * The original command. - */ - private final Command command; - - /** - * The original label. - */ - private final String label; - - /** - * The original command line arguments. - */ - private final String[] args; - - /** - * current command path. - */ - private final String commandPath; - - /** - * Constructor to create the command. - * - * @param sender - * the command sender. - * @param plugin - * The main minigames plugin. - * @param command - * the original command - * @param label - * the command label - * @param args - * the command arguments - * @param commandPath - * the current command path - */ - public CommandImpl(CommandSender sender, MinigamesPlugin plugin, Command command, String label, String[] args, String commandPath) - { - this.sender = sender; - this.plugin = plugin; - this.command = command; - this.label = label; - this.args = args; - this.commandPath = commandPath; - } - - @Override - public CommandSender getSender() - { - return this.sender; - } - - @Override - public ArenaPlayerInterface getPlayer() - { - if (this.getSender() instanceof Player) - { - return this.plugin.getPlayer((Player) this.getSender()); - } - return null; - } - - @Override - public Command getCommand() - { - return this.command; - } - - @Override - public String getLabel() - { - return this.label; - } - - @Override - public CommandInterface consumeArgs(int count) - { - final String[] args2 = Arrays.copyOfRange(this.args, count, this.args.length); - StringBuilder newPath = new StringBuilder(this.commandPath); - for (int i = 0; i < count; i++) - { - newPath.append(' '); - newPath.append(this.args[i]); - } - return new CommandImpl(this.sender, this.plugin, this.command, this.label, args2, newPath.toString()); - } - - @Override - public String[] getArgs() - { - return this.args; - } - - @Override - public MgOutgoingStubbing<CommandInterface> when(MgPredicate<CommandInterface> test) throws MinigameException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - - @Override - public String getCommandPath() - { - return this.commandPath; - } - - @Override - public Locale getLocale() - { - if (this.getPlayer() != null) - { - return this.getPlayer().getPreferredLocale(); - } - return Locale.ENGLISH; // TODO override by config? - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java index 3f9d0813..3fd76634 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java @@ -27,16 +27,17 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.PluginProviderInterface; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; import com.github.mce.minigames.impl.cmd.PartyCommandHandler; import com.github.mce.minigames.impl.cmd.StartCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandHandlerInterface; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.perms.PermissionsInterface; + /** * @author mepeisen * @@ -59,7 +60,8 @@ public CoreMinigame(MinigamesPlugin plugin) @Override public String getName() { - return MglibInterface.CORE_MINIGAME; +// return MglibInterface.CORE_MINIGAME; + return null; } @Override diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java index ff8f694e..86bc9b68 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java @@ -17,21 +17,12 @@ import java.io.Serializable; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.arena.rules.AdminRuleId; -import com.github.mce.minigames.api.arena.rules.ArenaRuleId; -import com.github.mce.minigames.api.arena.rules.MatchRuleId; -import com.github.mce.minigames.api.arena.rules.PlayerRuleId; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleId; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleId; + +import de.minigameslib.mclib.api.McException; /** * @@ -77,137 +68,17 @@ public Serializable getShortDescription() * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#disable() */ @Override - public void disable() throws MinigameException + public void disable() throws McException { // TODO Auto-generated method stub } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() - */ - @Override - public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() - */ - @Override - public ArenaTypeDeclarationInterface getDefaultType() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) - */ - @Override - public ArenaTypeDeclarationInterface getType(String name) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() - */ - @Override - public Iterable<AdminRuleId> getAdminRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() - */ - @Override - public Iterable<MatchRuleId> getMatchRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() - */ - @Override - public Iterable<PlayerRuleId> getPlayerRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() - */ - @Override - public Iterable<TeamRuleId> getTeamRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() - */ - @Override - public Iterable<ComponentRuleId> getComponentRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() - */ - @Override - public Iterable<ArenaRuleId> getArenaRules() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() - */ - @Override - public Iterable<ComponentId> getComponents() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() - */ - @Override - public Iterable<MatchPhaseId> getMatchPhases() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() - */ - @Override - public Iterable<TeamId> getTeams() - { - // TODO Auto-generated method stub - return null; - } - /* (non-Javadoc) * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#createArenaType(java.lang.String, com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) */ @Override - public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws MinigameException + public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException { // TODO Auto-generated method stub return null; @@ -217,10 +88,150 @@ public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#init() */ @Override - public void init() throws MinigameException + public void init() throws McException { // TODO Auto-generated method stub } + +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() +// */ +// @Override +// public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() +// */ +// @Override +// public ArenaTypeDeclarationInterface getDefaultType() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) +// */ +// @Override +// public ArenaTypeDeclarationInterface getType(String name) +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() +// */ +// @Override +// public Iterable<AdminRuleId> getAdminRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() +// */ +// @Override +// public Iterable<MatchRuleId> getMatchRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() +// */ +// @Override +// public Iterable<PlayerRuleId> getPlayerRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() +// */ +// @Override +// public Iterable<TeamRuleId> getTeamRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() +// */ +// @Override +// public Iterable<ComponentRuleId> getComponentRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() +// */ +// @Override +// public Iterable<ArenaRuleId> getArenaRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() +// */ +// @Override +// public Iterable<ComponentId> getComponents() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() +// */ +// @Override +// public Iterable<MatchPhaseId> getMatchPhases() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() +// */ +// @Override +// public Iterable<TeamId> getTeams() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#createArenaType(java.lang.String, com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) +// */ +// @Override +// public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#init() +// */ +// @Override +// public void init() throws McException +// { +// // TODO Auto-generated method stub +// +// } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index acde8f1d..6493bf53 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -20,26 +20,24 @@ import java.util.HashMap; import java.util.Map; import java.util.TreeMap; -import java.util.logging.Level; import java.util.logging.Logger; -import org.bukkit.Bukkit; -import org.bukkit.configuration.ConfigurationSection; - import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.ContextResolverInterface; import com.github.mce.minigames.impl.arena.ArenaImpl; import com.github.mce.minigames.impl.arena.ArenaTypeBuilderImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; +import de.minigameslib.mclib.api.McContext.ContextHandlerInterface; +import de.minigameslib.mclib.api.McContext.ContextResolverInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.shared.api.com.DataSection; + /** * The minigames plugin impl. * @@ -142,43 +140,37 @@ public void init() this.arenaTypesByName.clear(); // load arenas from config. - final ConfigurationSection arenasSection = this.getConfig("arenas.yml").getConfigurationSection("arenas"); //$NON-NLS-1$ //$NON-NLS-2$ - if (arenasSection != null) - { - for (final String key : arenasSection.getKeys(false)) - { - this.plugin.getLogger().log(Level.INFO, "Reloading arena " + key + " from config."); //$NON-NLS-1$ //$NON-NLS-2$ - try - { - final ArenaImpl arena = new ArenaImpl(key, this, this.components); - this.arenas.put(key.toLowerCase(), arena); - if (arena.isEnabled()) - { - synchronized (this) - { - Bukkit.getScheduler().runTaskLaterAsynchronously(this.plugin, () -> { - arena.tryRestart(); - }, 10L * restartArenaTaskCount); - restartArenaTaskCount++; - } - } - } - catch (Exception ex) - { - this.plugin.getLogger().log(Level.SEVERE, "Failed loading arena " + key + " from config.", ex); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - } +// final ConfigurationSection arenasSection = this.getConfig("arenas.yml").getConfigurationSection("arenas"); //$NON-NLS-1$ //$NON-NLS-2$ +// if (arenasSection != null) +// { +// for (final String key : arenasSection.getKeys(false)) +// { +// this.plugin.getLogger().log(Level.INFO, "Reloading arena " + key + " from config."); //$NON-NLS-1$ //$NON-NLS-2$ +// try +// { +// final ArenaImpl arena = new ArenaImpl(key, this, this.components); +// this.arenas.put(key.toLowerCase(), arena); +// if (arena.isEnabled()) +// { +// synchronized (this) +// { +// Bukkit.getScheduler().runTaskLaterAsynchronously(this.plugin, () -> { +// arena.tryRestart(); +// }, 10L * restartArenaTaskCount); +// restartArenaTaskCount++; +// } +// } +// } +// catch (Exception ex) +// { +// this.plugin.getLogger().log(Level.SEVERE, "Failed loading arena " + key + " from config.", ex); //$NON-NLS-1$ //$NON-NLS-2$ +// } +// } +// } this.initialized = true; } - @Override - public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() - { - return new ArrayList<>(this.arenaTypes.values()); - } - @Override public Iterable<ArenaInterface> getArenas() { @@ -198,15 +190,15 @@ public int getArenaCount() } @Override - public ArenaTypeBuilderInterface createArenaType(String typename, ArenaTypeInterface type, boolean isDefault) throws MinigameException + public ArenaTypeBuilderInterface createArenaType(String typename, ArenaTypeInterface type, boolean isDefault) throws McException { if (this.initialized) { - throw new MinigameException(CommonErrors.Cannot_Create_ArenaType_Wrong_State, typename, this.name); + throw new McException(CommonErrors.Cannot_Create_ArenaType_Wrong_State, typename, this.name); } if (this.arenaTypeBuildersByName.containsKey(typename.toLowerCase())) { - throw new MinigameException(CommonErrors.DuplicateArenaType, typename, this.name); + throw new McException(CommonErrors.DuplicateArenaType, typename, this.name); } final ArenaTypeBuilderImpl builder = new ArenaTypeBuilderImpl(typename, type, isDefault, this.components, this.arenas, this); @@ -221,15 +213,15 @@ public Logger getLogger() } @Override - public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException + public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws McException { - this.mgplugin.getApiContext().registerContextHandler(clazz, handler); +// this.mgplugin.getApiContext().registerContextHandler(clazz, handler); } @Override - public void registerContextResolver(ContextResolverInterface resolver) throws MinigameException + public void registerContextResolver(ContextResolverInterface resolver) throws McException { - this.mgplugin.getApiContext().registerContextResolver(resolver); +// this.mgplugin.getApiContext().registerContextResolver(resolver); } @Override @@ -243,25 +235,32 @@ public Serializable getLongDescription() { return this.longDescription; } - + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MinigamePluginInterface#disable() + */ @Override - public ArenaTypeDeclarationInterface getDefaultType() + public void disable() throws McException { - return this.defaultType; + // TODO Auto-generated method stub + } - + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.config.ConfigInterface#getConfig(java.lang.String) + */ @Override - public ArenaTypeDeclarationInterface getType(String typename) + public DataSection getConfig(String file) { - final ArenaTypeInterface type = this.arenaTypesByName.get(typename.toLowerCase()); - return type == null ? null : this.arenaTypes.get(type); + // TODO Auto-generated method stub + return null; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigamePluginInterface#disable() + * @see de.minigameslib.mclib.api.config.ConfigInterface#saveConfig(java.lang.String) */ @Override - public void disable() throws MinigameException + public void saveConfig(String file) { // TODO Auto-generated method stub diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java index 37ba4df4..e545579a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java @@ -18,22 +18,12 @@ import java.io.Serializable; import java.util.logging.Logger; -import org.bukkit.configuration.ConfigurationSection; - import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.arena.rules.AdminRuleId; -import com.github.mce.minigames.api.arena.rules.ArenaRuleId; -import com.github.mce.minigames.api.arena.rules.MatchRuleId; -import com.github.mce.minigames.api.arena.rules.PlayerRuleId; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleId; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleId; + +import de.minigameslib.mclib.api.locale.MessagesConfigInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; /** * A read-only wrapper around minigame plugin impl @@ -69,160 +59,240 @@ public MessagesConfigInterface getMessages() return this.delegate.getMessages(); } - @Override - public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() - { - return this.delegate.getDeclaredTypes(); - } - - @Override - public Iterable<ArenaInterface> getArenas() - { - return this.delegate.getArenas(); - } - - @Override - public ArenaInterface getArena(String name) - { - return this.delegate.getArena(name); - } - - @Override - public Logger getLogger() - { - return this.delegate.getLogger(); - } - - @Override - public ConfigurationSection getConfig(String file) - { - return this.delegate.getConfig(file); - } - - @Override - public void saveConfig(String file) - { - this.delegate.saveConfig(file); - } - - @Override - public Serializable getShortDescription() - { - return this.delegate.getShortDescription(); - } - - @Override - public Serializable getLongDescription() - { - return this.delegate.getLongDescription(); - } - - @Override - public int getArenaCount() - { - return this.delegate.getArenaCount(); - } - - @Override - public ArenaTypeDeclarationInterface getDefaultType() - { - return this.delegate.getDefaultType(); - } - - @Override - public ArenaTypeDeclarationInterface getType(String name) - { - return this.delegate.getType(name); - } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() + * @see de.minigameslib.mclib.api.config.ConfigInterface#getConfig(java.lang.String) */ @Override - public Iterable<AdminRuleId> getAdminRules() + public DataSection getConfig(String file) { // TODO Auto-generated method stub return null; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() + * @see de.minigameslib.mclib.api.config.ConfigInterface#saveConfig(java.lang.String) */ @Override - public Iterable<MatchRuleId> getMatchRules() + public void saveConfig(String file) { // TODO Auto-generated method stub - return null; + } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() + * @see com.github.mce.minigames.api.MinigameInterface#getArenas() */ @Override - public Iterable<PlayerRuleId> getPlayerRules() + public Iterable<ArenaInterface> getArenas() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() + * @see com.github.mce.minigames.api.MinigameInterface#getArenaCount() */ @Override - public Iterable<TeamRuleId> getTeamRules() + public int getArenaCount() { // TODO Auto-generated method stub - return null; + return 0; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() + * @see com.github.mce.minigames.api.MinigameInterface#getArena(java.lang.String) */ @Override - public Iterable<ComponentRuleId> getComponentRules() + public ArenaInterface getArena(String name) { // TODO Auto-generated method stub return null; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() + * @see com.github.mce.minigames.api.MinigameInterface#getLogger() */ @Override - public Iterable<ArenaRuleId> getArenaRules() + public Logger getLogger() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() + * @see com.github.mce.minigames.api.MinigameInterface#getShortDescription() */ @Override - public Iterable<ComponentId> getComponents() + public Serializable getShortDescription() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() + * @see com.github.mce.minigames.api.MinigameInterface#getLongDescription() */ @Override - public Iterable<MatchPhaseId> getMatchPhases() + public Serializable getLongDescription() { // TODO Auto-generated method stub return null; } - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() - */ - @Override - public Iterable<TeamId> getTeams() - { - // TODO Auto-generated method stub - return null; - } +// @Override +// public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() +// { +// return this.delegate.getDeclaredTypes(); +// } +// +// @Override +// public Iterable<ArenaInterface> getArenas() +// { +// return this.delegate.getArenas(); +// } +// +// @Override +// public ArenaInterface getArena(String name) +// { +// return this.delegate.getArena(name); +// } +// +// @Override +// public Logger getLogger() +// { +// return this.delegate.getLogger(); +// } +// +// @Override +// public ConfigurationSection getConfig(String file) +// { +// return this.delegate.getConfig(file); +// } +// +// @Override +// public void saveConfig(String file) +// { +// this.delegate.saveConfig(file); +// } +// +// @Override +// public Serializable getShortDescription() +// { +// return this.delegate.getShortDescription(); +// } +// +// @Override +// public Serializable getLongDescription() +// { +// return this.delegate.getLongDescription(); +// } +// +// @Override +// public int getArenaCount() +// { +// return this.delegate.getArenaCount(); +// } +// +// @Override +// public ArenaTypeDeclarationInterface getDefaultType() +// { +// return this.delegate.getDefaultType(); +// } +// +// @Override +// public ArenaTypeDeclarationInterface getType(String name) +// { +// return this.delegate.getType(name); +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() +// */ +// @Override +// public Iterable<AdminRuleId> getAdminRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() +// */ +// @Override +// public Iterable<MatchRuleId> getMatchRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() +// */ +// @Override +// public Iterable<PlayerRuleId> getPlayerRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() +// */ +// @Override +// public Iterable<TeamRuleId> getTeamRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() +// */ +// @Override +// public Iterable<ComponentRuleId> getComponentRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() +// */ +// @Override +// public Iterable<ArenaRuleId> getArenaRules() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() +// */ +// @Override +// public Iterable<ComponentId> getComponents() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() +// */ +// @Override +// public Iterable<MatchPhaseId> getMatchPhases() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() +// */ +// @Override +// public Iterable<TeamId> getTeams() +// { +// // TODO Auto-generated method stub +// return null; +// } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index 48f6d8d3..d2343055 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -15,20 +15,15 @@ package com.github.mce.minigames.impl; -import java.io.Serializable; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.TreeMap; import java.util.UUID; -import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; @@ -36,9 +31,6 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; @@ -48,7 +40,6 @@ import com.github.mce.minigames.api.LibState; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.PluginProviderInterface; @@ -58,54 +49,27 @@ import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.arena.ArenaTypeProvider; import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.arena.rules.AdminRuleId; -import com.github.mce.minigames.api.arena.rules.ArenaRuleId; -import com.github.mce.minigames.api.arena.rules.MatchRuleId; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.arena.rules.PlayerRuleId; -import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; -import com.github.mce.minigames.api.cmd.CommandHandlerInterface; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleId; -import com.github.mce.minigames.api.config.CommonConfig; -import com.github.mce.minigames.api.config.ConfigInterface; -import com.github.mce.minigames.api.config.ConfigurationValueInterface; -import com.github.mce.minigames.api.config.ConfigurationValues; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.services.ExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; -import com.github.mce.minigames.api.sign.SignInterface; import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleId; -import com.github.mce.minigames.api.util.function.MgRunnable; -import com.github.mce.minigames.api.util.function.MgSupplier; -import com.github.mce.minigames.api.zones.ZoneInterface; import com.github.mce.minigames.impl.component.AbstractCuboidComponent; import com.github.mce.minigames.impl.component.ComponentRegistry; import com.github.mce.minigames.impl.component.WorldChunk; -import com.github.mce.minigames.impl.context.ArenaInterfaceProvider; -import com.github.mce.minigames.impl.context.ArenaPlayerInterfaceProvider; -import com.github.mce.minigames.impl.context.DefaultResolver; -import com.github.mce.minigames.impl.context.MinigameContextImpl; -import com.github.mce.minigames.impl.context.MinigameInterfaceProvider; -import com.github.mce.minigames.impl.gui.GuiSessionImpl; -import com.github.mce.minigames.impl.nms.EventSystemInterface; -import com.github.mce.minigames.impl.nms.NmsFactory; -import com.github.mce.minigames.impl.nms.v1_10_1.NmsFactory1_10_1; -import com.github.mce.minigames.impl.nms.v1_8_1.NmsFactory1_8_1; -import com.github.mce.minigames.impl.nms.v1_8_2.NmsFactory1_8_2; -import com.github.mce.minigames.impl.nms.v1_8_3.NmsFactory1_8_3; -import com.github.mce.minigames.impl.nms.v1_9_1.NmsFactory1_9_1; -import com.github.mce.minigames.impl.nms.v1_9_2.NmsFactory1_9_2; -import com.github.mce.minigames.impl.player.ArenaPlayerImpl; import com.github.mce.minigames.impl.player.PlayerRegistry; import com.github.mce.minigames.impl.services.PremiumServiceProviderInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandHandlerInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.impl.comp.ComponentId; + /** * A plugin for minigames. * @@ -166,11 +130,6 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Liste */ private final PlayerRegistry players = new PlayerRegistry(); - /** - * the minigame context implementation. - */ - private MinigameContextImpl contextImpl = new MinigameContextImpl(); - /** * the premium extension (if available) */ @@ -181,12 +140,6 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Liste */ private final ComponentRegistry components = new ComponentRegistry(); - /** the event system. */ - private final EventSystemInterface events; - - /** Access to nms specific classes. */ - private final NmsFactory nmsFactory; - /** * Constructor to create the plugin. */ @@ -198,19 +151,19 @@ public MinigamesPlugin() final MinigamePluginInterface mg2 = this.register(new CoreMinigame(this)); // context provider - mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); - mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); - mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); - ArenaPlayerImpl.registerProvider(mg2); - - // resolver - mg2.registerContextResolver(new DefaultResolver()); - - mg2.init(); - - this.getLogger().log(Level.INFO, "MinigamesLib2 finihes initialization. Minecraft version: " + this.getMinecraftVersion()); //$NON-NLS-1$ +// mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); +// mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); +// mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); +// ArenaPlayerImpl.registerProvider(mg2); +// +// // resolver +// mg2.registerContextResolver(new DefaultResolver()); +// +// mg2.init(); +// +// this.getLogger().log(Level.INFO, "MinigamesLib2 finihes initialization. Minecraft version: " + this.getMinecraftVersion()); //$NON-NLS-1$ } - catch (MinigameException ex) + catch (McException ex) { // log it, although this should never happen // because in constructor we neither are in wrong state @@ -218,53 +171,18 @@ public MinigamesPlugin() this.getLogger().log(Level.SEVERE, "Error registering core minigame", ex); //$NON-NLS-1$ } - switch (SERVER_VERSION) - { - case V1_10: - case V1_10_R1: - this.nmsFactory = new NmsFactory1_10_1(); - break; - case V1_8: - case V1_8_R1: - this.nmsFactory = new NmsFactory1_8_1(); - break; - case V1_8_R2: - this.nmsFactory = new NmsFactory1_8_2(); - break; - case V1_8_R3: - this.nmsFactory = new NmsFactory1_8_3(); - break; - case V1_9: - case V1_9_R1: - this.nmsFactory = new NmsFactory1_9_1(); - break; - case V1_9_R2: - this.nmsFactory = new NmsFactory1_9_2(); - break; - case Unknown: - case V1_7: - case V1_7_R1: - case V1_7_R2: - case V1_7_R3: - case V1_7_R4: - default: - // no initialization. - this.nmsFactory = null; - break; - } - - this.events = this.nmsFactory == null ? null : this.nmsFactory.create(EventSystemInterface.class); +// this.events = this.nmsFactory == null ? null : this.nmsFactory.create(EventSystemInterface.class); } - /** - * Returns the nms factory. - * - * @return nms factory - */ - public static NmsFactory nms() - { - return ((MinigamesPlugin) MglibInterface.INSTANCE.get()).nmsFactory; - } +// /** +// * Returns the nms factory. +// * +// * @return nms factory +// */ +// public static NmsFactory nms() +// { +// return ((MinigamesPlugin) MglibInterface.INSTANCE.get()).nmsFactory; +// } @Override public void onDisable() @@ -276,18 +194,18 @@ public void onDisable() @Override public void onEnable() { - if (this.nmsFactory == null) - { - this.getLogger().severe("Running on non-supported minecraft version. Disabling minigames."); //$NON-NLS-1$ - } - else - { - getServer().getPluginManager().registerEvents(this, this); - getServer().getPluginManager().registerEvents(this.events, this); - Bukkit.getScheduler().runTaskLaterAsynchronously(this, () -> { - this.state = LibState.Running; - }, 1L); - } +// if (this.nmsFactory == null) +// { +// this.getLogger().severe("Running on non-supported minecraft version. Disabling minigames."); //$NON-NLS-1$ +// } +// else +// { +// getServer().getPluginManager().registerEvents(this, this); +// getServer().getPluginManager().registerEvents(this.events, this); +// Bukkit.getScheduler().runTaskLaterAsynchronously(this, () -> { +// this.state = LibState.Running; +// }, 1L); +// } } /** @@ -353,109 +271,109 @@ private static MinecraftVersionsType getServerVersion() @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (this.getState() != LibState.Running) - { - sender.sendMessage("MinigamesLib is disabled!"); //$NON-NLS-1$ - return false; - } - final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); - if (handler != null) - { - if (this.debug()) - { - this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ - } - final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); - - this.contextImpl.runInContext(cmd, () -> { - try - { - handler.handle(cmd); - } - catch (MinigameException ex) - { - if (this.debug()) - { - this.getLogger().log(Level.FINE, "Caught minigame exception during command execution: " + command.getName() + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$ - } - final Locale locale = this.getDefaultLocale(); - final boolean isAdmin = sender.isOp(); - String[] msgs = null; - if (ex.getCode().isSingleLine()) - { - msgs = new String[] { isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())) }; - } - else - { - msgs = isAdmin ? (ex.getCode().toAdminMessageLine(locale, ex.getArgs())) : (ex.getCode().toUserMessageLine(locale, ex.getArgs())); - } - for (final String msg : msgs) - { - switch (ex.getCode().getSeverity()) - { - default: - case Error: - sender.sendMessage(ChatColor.DARK_RED + msg); - break; - case Information: - sender.sendMessage(ChatColor.WHITE + msg); - break; - case Loser: - sender.sendMessage(ChatColor.RED + msg); - break; - case Success: - sender.sendMessage(ChatColor.GREEN + msg); - break; - case Warning: - sender.sendMessage(ChatColor.YELLOW + msg); - break; - case Winner: - sender.sendMessage(ChatColor.GOLD + msg); - break; - } - } - } - }); - return true; - } +// if (this.getState() != LibState.Running) +// { +// sender.sendMessage("MinigamesLib is disabled!"); //$NON-NLS-1$ +// return false; +// } +// final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); +// if (handler != null) +// { +// if (this.debug()) +// { +// this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ +// } +// final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); +// +// this.contextImpl.runInContext(cmd, () -> { +// try +// { +// handler.handle(cmd); +// } +// catch (McException ex) +// { +// if (this.debug()) +// { +// this.getLogger().log(Level.FINE, "Caught minigame exception during command execution: " + command.getName() + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$ +// } +// final Locale locale = this.getDefaultLocale(); +// final boolean isAdmin = sender.isOp(); +// String[] msgs = null; +// if (ex.getCode().isSingleLine()) +// { +// msgs = new String[] { isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())) }; +// } +// else +// { +// msgs = isAdmin ? (ex.getCode().toAdminMessageLine(locale, ex.getArgs())) : (ex.getCode().toUserMessageLine(locale, ex.getArgs())); +// } +// for (final String msg : msgs) +// { +// switch (ex.getCode().getSeverity()) +// { +// default: +// case Error: +// sender.sendMessage(ChatColor.DARK_RED + msg); +// break; +// case Information: +// sender.sendMessage(ChatColor.WHITE + msg); +// break; +// case Loser: +// sender.sendMessage(ChatColor.RED + msg); +// break; +// case Success: +// sender.sendMessage(ChatColor.GREEN + msg); +// break; +// case Warning: +// sender.sendMessage(ChatColor.YELLOW + msg); +// break; +// case Winner: +// sender.sendMessage(ChatColor.GOLD + msg); +// break; +// } +// } +// } +// }); +// return true; +// } return false; } @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - if (this.getState() != LibState.Running) - { - return null; - } - String lastArg = null; - String[] newArgs = null; - if (args.length > 0) - { - lastArg = args[args.length - 1].toLowerCase(); - newArgs = Arrays.copyOf(args, args.length - 1); - } - final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); - if (handler != null) - { - final CommandInterface cmd = new CommandImpl(sender, this, command, null, newArgs, '/' + command.getName()); - final AtomicReference<List<String>> ref = new AtomicReference<>(); - final String la = lastArg; - this.contextImpl.runInContext(cmd, () -> { - try - { - ref.set(handler.onTabComplete(cmd, la)); - } - catch (MinigameException ex) - { - if (this.debug()) - { - this.getLogger().log(Level.FINE, "Caught minigame exception during tab completion: " + command.getName() + " " + la + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ - } - } - }); - return ref.get(); - } +// if (this.getState() != LibState.Running) +// { +// return null; +// } +// String lastArg = null; +// String[] newArgs = null; +// if (args.length > 0) +// { +// lastArg = args[args.length - 1].toLowerCase(); +// newArgs = Arrays.copyOf(args, args.length - 1); +// } +// final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); +// if (handler != null) +// { +// final CommandInterface cmd = new CommandImpl(sender, this, command, null, newArgs, '/' + command.getName()); +// final AtomicReference<List<String>> ref = new AtomicReference<>(); +// final String la = lastArg; +// this.contextImpl.runInContext(cmd, () -> { +// try +// { +// ref.set(handler.onTabComplete(cmd, la)); +// } +// catch (McException ex) +// { +// if (this.debug()) +// { +// this.getLogger().log(Level.FINE, "Caught minigame exception during tab completion: " + command.getName() + " " + la + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ +// } +// } +// }); +// return ref.get(); +// } return null; } @@ -468,13 +386,7 @@ public LibState getState() } @Override - public MinecraftVersionsType getMinecraftVersion() - { - return SERVER_VERSION; - } - - @Override - public MinigamePluginInterface register(PluginProviderInterface provider) throws MinigameException + public MinigamePluginInterface register(PluginProviderInterface provider) throws McException { final String name = provider.getName(); @@ -484,11 +396,11 @@ public MinigamePluginInterface register(PluginProviderInterface provider) throws { if (this.state != LibState.Initializing && this.state != LibState.Sleeping) { - throw new MinigameException(CommonErrors.Cannot_Create_Game_Wrong_State, name, this.state.name()); + throw new McException(CommonErrors.Cannot_Create_Game_Wrong_State, name, this.state.name()); } if (this.minigames.containsKey(name.toLowerCase())) { - throw new MinigameException(CommonErrors.DuplicateMinigame, name); + throw new McException(CommonErrors.DuplicateMinigame, name); } impl = new MinigamePluginImpl(this, name, provider, this.components); @@ -563,106 +475,6 @@ public ArenaPlayerInterface getPlayer(UUID uuid) return this.players.getPlayer(uuid); } - @Override - public MessagesConfigInterface getMessagesFromMsg(LocalizedMessageInterface item) - { - String name = this.messagesToMinigame.get(item); - if (name != null) - { - return this.minigames.get(name).getMessages(); - } - name = this.messagesToExtension.get(item); - return name == null ? null : this.extensions.get(name).getMessages(); - } - - @Override - public ConfigInterface getConfigFromCfg(ConfigurationValueInterface item) - { - final ConfigurationValues values = item.getClass().getAnnotation(ConfigurationValues.class); - if (values.fixed()) - { - String name = this.optionsToMinigame.get(item); - if (name != null) - { - return this.minigames.get(name); - } - name = this.optionsToExtension.get(item); - return name == null ? null : this.extensions.get(name); - } - final MinigameInterface minigame = this.getContext(MinigameInterface.class); - return minigame; - } - - /** - * Returns the global context implementation. - * - * @return global context implementation. - */ - public MinigameContextImpl getApiContext() - { - return this.contextImpl; - } - - @Override - public <T> T getContext(Class<T> clazz) - { - return this.contextImpl.getContext(clazz); - } - - @Override - public String resolveContextVar(String src) - { - return this.contextImpl.resolveContextVar(src); - } - - @Override - public <T> void setContext(Class<T> clazz, T value) - { - this.contextImpl.setContext(clazz, value); - } - - @Override - public void runInNewContext(MgRunnable runnable) throws MinigameException - { - this.contextImpl.runInNewContext(runnable); - } - - @Override - public void runInCopiedContext(MgRunnable runnable) throws MinigameException - { - this.contextImpl.runInCopiedContext(runnable); - } - - @Override - public <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException - { - return this.contextImpl.calculateInNewContext(runnable); - } - - @Override - public <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException - { - return this.contextImpl.calculateInCopiedContext(runnable); - } - - @Override - public Serializable getLibVersionString() - { - return this.getDescription().getVersion(); - } - - @Override - public boolean debug() - { - return CommonConfig.DebugEnabled.getBoolean(); - } - - @Override - public Locale getDefaultLocale() - { - return new Locale(CommonConfig.DefaultLocale.getString(), ""); //$NON-NLS-1$ - } - /** * Returns the mode as string * @@ -686,7 +498,7 @@ public Iterable<ExtensionInterface> getExtensions() } @Override - public MinigameExtensionInterface register(MinigameExtensionProviderInterface provider) throws MinigameException + public MinigameExtensionInterface register(MinigameExtensionProviderInterface provider) throws McException { final String name = provider.getName(); @@ -696,11 +508,11 @@ public MinigameExtensionInterface register(MinigameExtensionProviderInterface pr { if (this.state != LibState.Initializing && this.state != LibState.Sleeping) { - throw new MinigameException(CommonErrors.Cannot_Create_Extension_Wrong_State, name, this.state.name()); + throw new McException(CommonErrors.Cannot_Create_Extension_Wrong_State, name, this.state.name()); } if (this.extensions.containsKey(name)) { - throw new MinigameException(CommonErrors.DuplicateExtension, name); + throw new McException(CommonErrors.DuplicateExtension, name); } impl = new ExtensionImpl(this, name, provider); @@ -762,20 +574,20 @@ private void registerTeams(CommonProviderInterface provider, final String name, { final List<TeamId> tlist = new ArrayList<>(); - final Iterable<Class<? extends TeamId>> teamIds = provider.getTeamIds(); - if (teamIds != null) - { - for (final Class<? extends TeamId> idClazz : teamIds) - { - for (final TeamId id : idClazz.getEnumConstants()) - { - teamMap.put(id, name); - tlist.add(id); - } - } - } - - impl.initTeams(tlist); +// final Iterable<Class<? extends TeamId>> teamIds = provider.getTeamIds(); +// if (teamIds != null) +// { +// for (final Class<? extends TeamId> idClazz : teamIds) +// { +// for (final TeamId id : idClazz.getEnumConstants()) +// { +// teamMap.put(id, name); +// tlist.add(id); +// } +// } +// } +// +// impl.initTeams(tlist); } @@ -790,20 +602,20 @@ private void registerComponents(CommonProviderInterface provider, final String n { final List<ComponentId> clist = new ArrayList<>(); - final Iterable<Class<? extends ComponentId>> compIds = provider.getComponentIds(); - if (compIds != null) - { - for (final Class<? extends ComponentId> idClazz : compIds) - { - for (final ComponentId id : idClazz.getEnumConstants()) - { - componentMap.put(id, name); - clist.add(id); - } - } - } - - impl.initComponents(clist); +// final Iterable<Class<? extends ComponentId>> compIds = provider.getComponentIds(); +// if (compIds != null) +// { +// for (final Class<? extends ComponentId> idClazz : compIds) +// { +// for (final ComponentId id : idClazz.getEnumConstants()) +// { +// componentMap.put(id, name); +// clist.add(id); +// } +// } +// } +// +// impl.initComponents(clist); } @@ -818,20 +630,20 @@ private void registerMatchPhases(CommonProviderInterface provider, final String { final List<MatchPhaseId> plist = new ArrayList<>(); - final Iterable<Class<? extends MatchPhaseId>> phasesIds = provider.getMatchPhaseIds(); - if (phasesIds != null) - { - for (final Class<? extends MatchPhaseId> idClazz : phasesIds) - { - for (final MatchPhaseId id : idClazz.getEnumConstants()) - { - phasesMap.put(id, name); - plist.add(id); - } - } - } - - impl.initPhases(plist); +// final Iterable<Class<? extends MatchPhaseId>> phasesIds = provider.getMatchPhaseIds(); +// if (phasesIds != null) +// { +// for (final Class<? extends MatchPhaseId> idClazz : phasesIds) +// { +// for (final MatchPhaseId id : idClazz.getEnumConstants()) +// { +// phasesMap.put(id, name); +// plist.add(id); +// } +// } +// } +// +// impl.initPhases(plist); } /** @@ -845,85 +657,85 @@ private void registerRules(CommonProviderInterface provider, final String name, { final List<RuleId> rules = new ArrayList<>(); - final Iterable<Class<? extends AdminRuleId>> adminRuleIds = provider.getAdminRuleIds(); - if (adminRuleIds != null) - { - for (final Class<? extends AdminRuleId> idClazz : adminRuleIds) - { - for (final AdminRuleId id : idClazz.getEnumConstants()) - { - ruleMap.put(id, name); - rules.add(id); - } - } - } - - final Iterable<Class<? extends ArenaRuleId>> arenaRuleIds = provider.getArenaRuleIds(); - if (arenaRuleIds != null) - { - for (final Class<? extends ArenaRuleId> idClazz : arenaRuleIds) - { - for (final ArenaRuleId id : idClazz.getEnumConstants()) - { - ruleMap.put(id, name); - rules.add(id); - } - } - } - - final Iterable<Class<? extends ComponentRuleId>> componentRuleIds = provider.getComponentRuleIds(); - if (componentRuleIds != null) - { - for (final Class<? extends ComponentRuleId> idClazz : componentRuleIds) - { - for (final ComponentRuleId id : idClazz.getEnumConstants()) - { - ruleMap.put(id, name); - rules.add(id); - } - } - } - - final Iterable<Class<? extends MatchRuleId>> matchRuleIds = provider.getMatchRuleIds(); - if (matchRuleIds != null) - { - for (final Class<? extends MatchRuleId> idClazz : matchRuleIds) - { - for (final MatchRuleId id : idClazz.getEnumConstants()) - { - ruleMap.put(id, name); - rules.add(id); - } - } - } - - final Iterable<Class<? extends PlayerRuleId>> playerRuleIds = provider.getPlayerRuleIds(); - if (playerRuleIds != null) - { - for (final Class<? extends PlayerRuleId> idClazz : playerRuleIds) - { - for (final PlayerRuleId id : idClazz.getEnumConstants()) - { - ruleMap.put(id, name); - rules.add(id); - } - } - } - - final Iterable<Class<? extends TeamRuleId>> teamRuleIds = provider.getTeamRuleIds(); - if (teamRuleIds != null) - { - for (final Class<? extends TeamRuleId> idClazz : teamRuleIds) - { - for (final TeamRuleId id : idClazz.getEnumConstants()) - { - ruleMap.put(id, name); - rules.add(id); - } - } - } - - impl.initRules(rules); +// final Iterable<Class<? extends AdminRuleId>> adminRuleIds = provider.getAdminRuleIds(); +// if (adminRuleIds != null) +// { +// for (final Class<? extends AdminRuleId> idClazz : adminRuleIds) +// { +// for (final AdminRuleId id : idClazz.getEnumConstants()) +// { +// ruleMap.put(id, name); +// rules.add(id); +// } +// } +// } +// +// final Iterable<Class<? extends ArenaRuleId>> arenaRuleIds = provider.getArenaRuleIds(); +// if (arenaRuleIds != null) +// { +// for (final Class<? extends ArenaRuleId> idClazz : arenaRuleIds) +// { +// for (final ArenaRuleId id : idClazz.getEnumConstants()) +// { +// ruleMap.put(id, name); +// rules.add(id); +// } +// } +// } +// +// final Iterable<Class<? extends ComponentRuleId>> componentRuleIds = provider.getComponentRuleIds(); +// if (componentRuleIds != null) +// { +// for (final Class<? extends ComponentRuleId> idClazz : componentRuleIds) +// { +// for (final ComponentRuleId id : idClazz.getEnumConstants()) +// { +// ruleMap.put(id, name); +// rules.add(id); +// } +// } +// } +// +// final Iterable<Class<? extends MatchRuleId>> matchRuleIds = provider.getMatchRuleIds(); +// if (matchRuleIds != null) +// { +// for (final Class<? extends MatchRuleId> idClazz : matchRuleIds) +// { +// for (final MatchRuleId id : idClazz.getEnumConstants()) +// { +// ruleMap.put(id, name); +// rules.add(id); +// } +// } +// } +// +// final Iterable<Class<? extends PlayerRuleId>> playerRuleIds = provider.getPlayerRuleIds(); +// if (playerRuleIds != null) +// { +// for (final Class<? extends PlayerRuleId> idClazz : playerRuleIds) +// { +// for (final PlayerRuleId id : idClazz.getEnumConstants()) +// { +// ruleMap.put(id, name); +// rules.add(id); +// } +// } +// } +// +// final Iterable<Class<? extends TeamRuleId>> teamRuleIds = provider.getTeamRuleIds(); +// if (teamRuleIds != null) +// { +// for (final Class<? extends TeamRuleId> idClazz : teamRuleIds) +// { +// for (final TeamRuleId id : idClazz.getEnumConstants()) +// { +// ruleMap.put(id, name); +// rules.add(id); +// } +// } +// } +// +// impl.initRules(rules); } /** @@ -935,20 +747,20 @@ private void registerRules(CommonProviderInterface provider, final String name, */ private void registerOptions(CommonProviderInterface provider, final String name, BaseImpl impl, Map<ConfigurationValueInterface, String> optMap) { - final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); - final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); - if (configClasses != null) - { - for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) - { - for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) - { - optMap.put(cfg, name); - configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); - } - } - } - impl.initConfgurations(configs); +// final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); +// final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); +// if (configClasses != null) +// { +// for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) +// { +// for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) +// { +// optMap.put(cfg, name); +// configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); +// } +// } +// } +// impl.initConfgurations(configs); } /** @@ -960,20 +772,20 @@ private void registerOptions(CommonProviderInterface provider, final String name */ private void registerMessages(CommonProviderInterface provider, final String name, BaseImpl impl, final Map<LocalizedMessageInterface, String> msgMap) { - final List<LocalizedMessageInterface> messages = new ArrayList<>(); - final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); - if (messageClasses != null) - { - for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) - { - for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) - { - msgMap.put(msg, name); - messages.add(msg); - } - } - } - impl.initMessage(messages); +// final List<LocalizedMessageInterface> messages = new ArrayList<>(); +// final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); +// if (messageClasses != null) +// { +// for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) +// { +// for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) +// { +// msgMap.put(msg, name); +// messages.add(msg); +// } +// } +// } +// impl.initMessage(messages); } /** @@ -1081,10 +893,10 @@ public Iterable<ArenaTypeInterface> getArenaTypes() final List<ArenaTypeInterface> result = new ArrayList<>(); for (final MinigamePluginImpl mg : this.minigames.values()) { - for (final ArenaTypeDeclarationInterface atdi : mg.getDeclaredTypes()) - { - result.add(atdi.getType()); - } +// for (final ArenaTypeDeclarationInterface atdi : mg.getDeclaredTypes()) +// { +// result.add(atdi.getType()); +// } } return result; } @@ -1107,13 +919,13 @@ public Iterable<ArenaInterface> getArenas() public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) { final List<ArenaInterface> arenas = new ArrayList<>(); - for (final ArenaInterface arena : this.getArenas()) - { - if (arena.getArenaType() == type) - { - arenas.add(arena); - } - } +// for (final ArenaInterface arena : this.getArenas()) +// { +// if (arena.getArenaType() == type) +// { +// arenas.add(arena); +// } +// } return arenas; } @@ -1211,72 +1023,12 @@ public void onPlayerJoin(PlayerJoinEvent evt) @EventHandler public void onPlayerQuit(PlayerQuitEvent evt) { - this.players.onPlayerQuit(evt); - final ArenaPlayerInterface player = this.getPlayer(evt.getPlayer()); - if (player.getGuiSession() != null) - { - ((ArenaPlayerImpl)player).onCloseGui(); - } - } - - /** - * Inventory close event - * - * @param evt - * inventory close event - */ - public void onInventoryClose(InventoryCloseEvent evt) - { - if (evt.getPlayer() instanceof Player) - { - final ArenaPlayerInterface player = this.getPlayer((Player) evt.getPlayer()); - if (player.getGuiSession() != null) - { - ((ArenaPlayerImpl)player).onCloseGui(); - } - } - } - - /** - * Inventory click event - * - * @param evt - * inventory click event - */ - @SuppressWarnings("cast") - @EventHandler - public void onInventoryClick(InventoryClickEvent evt) - { - if (evt.getWhoClicked() instanceof Player) - { - final ArenaPlayerInterface player = this.getPlayer((Player) evt.getWhoClicked()); - final GuiSessionImpl session = (GuiSessionImpl) player.getGuiSession(); - if (session != null) - { - this.contextImpl.runInContext((MinigameEvent<?, ?>) this.events.createEvent(evt), () -> { - session.onClick(evt); - }); - } - } - } - - /** - * Inventory drag event - * - * @param evt - * inventory drag event - */ - @EventHandler - public void onInventoryDrag(InventoryDragEvent evt) - { - if (evt.getWhoClicked() instanceof Player) - { - final ArenaPlayerInterface player = this.getPlayer((Player) evt.getWhoClicked()); - if (player.getGuiSession() != null) - { - evt.setCancelled(true); - } - } +// this.players.onPlayerQuit(evt); +// final ArenaPlayerInterface player = this.getPlayer(evt.getPlayer()); +// if (player.getGuiSession() != null) +// { +// ((ArenaPlayerImpl)player).onCloseGui(); +// } } @Override @@ -1368,5 +1120,25 @@ public ArenaInterface getArenaFromLocation(Location location) // TODO Auto-generated method stub return null; } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#debug() + */ + @Override + public boolean debug() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see com.github.mce.minigames.api.MglibInterface#getApiVersion() + */ + @Override + public int getApiVersion() + { + // TODO Auto-generated method stub + return 0; + } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java index 87563a7e..927471c7 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java @@ -19,7 +19,6 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; @@ -27,14 +26,16 @@ import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.arena.ArenasConfig; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.util.function.FalseStub; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.TrueStub; import com.github.mce.minigames.impl.MinigameWrapper; import com.github.mce.minigames.impl.component.ComponentRegistry; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; + /** * Implementation of arena interface. * @@ -74,9 +75,9 @@ public class ArenaImpl implements ArenaInterface * @param plugin * @param registry * @param type - * @throws MinigameException + * @throws McException */ - public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry, ArenaTypeDeclarationInterface type) throws MinigameException + public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry, ArenaTypeDeclarationInterface type) throws McException { this.internalName = arenaName; this.plugin = plugin; @@ -84,17 +85,17 @@ public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegi this.arenaType = type; final MglibInterface lib = MglibInterface.INSTANCE.get(); - lib.runInCopiedContext(() -> { - lib.setContext(ArenaInterface.class, this); - - // init minimal values. - ArenasConfig.Enabled.setBoolean(false); - ArenasConfig.ArenaType.setString(this.arenaType.getName()); - ArenasConfig.Maintenance.setBoolean(true); - - // save the config. - ArenasConfig.Maintenance.saveConfig(); - }); +// lib.runInCopiedContext(() -> { +// lib.setContext(ArenaInterface.class, this); +// +// // init minimal values. +// ArenasConfig.Enabled.setBoolean(false); +// ArenasConfig.ArenaType.setString(this.arenaType.getName()); +// ArenasConfig.Maintenance.setBoolean(true); +// +// // save the config. +// ArenasConfig.Maintenance.saveConfig(); +// }); this.maintenance = true; } @@ -104,178 +105,178 @@ public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegi * @param arenaName * @param plugin * @param registry - * @throws MinigameException + * @throws McException */ - public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry) throws MinigameException + public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry) throws McException { this.internalName = arenaName; this.plugin = plugin; this.registry = registry; final MglibInterface lib = MglibInterface.INSTANCE.get(); - lib.runInCopiedContext(() -> { - lib.setContext(ArenaInterface.class, this); - - this.enabled = ArenasConfig.Enabled.getBoolean(); - this.maintenance = ArenasConfig.Maintenance.getBoolean(); - this.displayName = ArenasConfig.DisplayName.getString(); - - final String typename = ArenasConfig.ArenaType.getString(); - this.arenaType = this.plugin.getType(typename); - if (this.arenaType == null) - { - throw new MinigameException(CommonErrors.Cannot_Load_Arena_Unknown_Type, typename, this.plugin.getName(), arenaName); - } - - // TODO Load components, options and rules - }); +// lib.runInCopiedContext(() -> { +// lib.setContext(ArenaInterface.class, this); +// +// this.enabled = ArenasConfig.Enabled.getBoolean(); +// this.maintenance = ArenasConfig.Maintenance.getBoolean(); +// this.displayName = ArenasConfig.DisplayName.getString(); +// +// final String typename = ArenasConfig.ArenaType.getString(); +// this.arenaType = this.plugin.getType(typename); +// if (this.arenaType == null) +// { +// throw new McException(CommonErrors.Cannot_Load_Arena_Unknown_Type, typename, this.plugin.getName(), arenaName); +// } +// +// // TODO Load components, options and rules +// }); } - @Override - public String getInternalName() - { - return this.internalName; - } +// @Override +// public String getInternalName() +// { +// return this.internalName; +// } +// +// @Override +// public String getDisplayName() +// { +// return this.displayName == null ? this.internalName : this.displayName; +// } - @Override - public String getDisplayName() - { - return this.displayName == null ? this.internalName : this.displayName; - } - - @Override - public void setDisplayName(String name) throws MinigameException - { - final MglibInterface lib = MglibInterface.INSTANCE.get(); - lib.runInCopiedContext(() -> { - lib.setContext(ArenaInterface.class, this); - ArenasConfig.DisplayName.setString(name); - ArenasConfig.DisplayName.saveConfig(); - }); - this.displayName = name; - } - - @Override - public Logger getLogger() - { - // TODO Arena Logger - return this.plugin.getLogger(); - } - - @Override - public MinigameInterface getMinigame() - { - return new MinigameWrapper(this.plugin); - } - - @Override - public ArenaState getState() - { - return this.maintenance ? ArenaState.Maintenance : this.state; - } - - @Override - public ArenaState getRealState() - { - return this.state; - } - - @Override - public boolean isEnabled() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isMaintenance() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws MinigameException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - - @Override - public boolean canStart() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public ArenaTypeInterface getArenaType() - { - return this.arenaType.getType(); - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.arena.ArenaInterface#start() - */ - @Override - public void start() - { - // TODO Auto-generated method stub - - } - - /** - * Try to restart the arena asynchronous (safe restart) - */ - public void tryRestart() - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaInterface#getAuthor() - */ - @Override - public String getAuthor() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaInterface#delete() - */ - @Override - public void delete() throws MinigameException - { - // TODO Auto-generated method stub - - } +// @Override +// public void setDisplayName(String name) throws McException +// { +// final MglibInterface lib = MglibInterface.INSTANCE.get(); +// lib.runInCopiedContext(() -> { +// lib.setContext(ArenaInterface.class, this); +// ArenasConfig.DisplayName.setString(name); +// ArenasConfig.DisplayName.saveConfig(); +// }); +// this.displayName = name; +// } +// +// @Override +// public Logger getLogger() +// { +// // TODO Arena Logger +// return this.plugin.getLogger(); +// } +// +// @Override +// public MinigameInterface getMinigame() +// { +// return new MinigameWrapper(this.plugin); +// } +// +// @Override +// public ArenaState getState() +// { +// return this.maintenance ? ArenaState.Maintenance : this.state; +// } +// +// @Override +// public ArenaState getRealState() +// { +// return this.state; +// } +// +// @Override +// public boolean isEnabled() +// { +// // TODO Auto-generated method stub +// return false; +// } +// +// @Override +// public boolean isMaintenance() +// { +// // TODO Auto-generated method stub +// return false; +// } +// +// @Override +// public McOutgoingStubbing<ArenaInterface> when(McPredicate<ArenaInterface> test) throws McException +// { +// if (test.test(this)) +// { +// return new TrueStub<>(this); +// } +// return new FalseStub<>(this); +// } +// +// @Override +// public boolean canStart() +// { +// // TODO Auto-generated method stub +// return false; +// } +// +// @Override +// public ArenaTypeInterface getArenaType() +// { +// return this.arenaType.getType(); +// } +// +// /* +// * (non-Javadoc) +// * +// * @see com.github.mce.minigames.api.arena.ArenaInterface#start() +// */ +// @Override +// public void start() +// { +// // TODO Auto-generated method stub +// +// } +// +// /** +// * Try to restart the arena asynchronous (safe restart) +// */ +// public void tryRestart() +// { +// // TODO Auto-generated method stub +// +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaInterface#getAuthor() +// */ +// @Override +// public String getAuthor() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaInterface#getShortDescription() +// */ +// @Override +// public LocalizedMessageInterface getShortDescription() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaInterface#getDescription() +// */ +// @Override +// public LocalizedMessageInterface getDescription() +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaInterface#delete() +// */ +// @Override +// public void delete() throws McException +// { +// // TODO Auto-generated method stub +// +// } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java index 2fa4c123..6db9b613 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java @@ -17,19 +17,9 @@ import java.util.Map; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.arena.rules.AdminRuleSet; -import com.github.mce.minigames.api.arena.rules.ArenaRuleSet; -import com.github.mce.minigames.api.arena.rules.MatchRuleSet; -import com.github.mce.minigames.api.arena.rules.PlayerRuleSet; -import com.github.mce.minigames.api.component.ComponentId; -import com.github.mce.minigames.api.component.ComponentRuleSet; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleSet; import com.github.mce.minigames.impl.MinigamePluginImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; @@ -85,411 +75,411 @@ public ArenaTypeDeclarationInterface build() return new ArenaTypeDeclarationImpl(this.typename, this.type, this.isDefault, this.arenas, this.registry, this.plugin); } - @Override - public ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) - { - // TODO Auto-generated method stub - return this; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyComponents(com.github.mce.minigames.api.component.ComponentId[]) - */ - @Override - public ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyTeam(com.github.mce.minigames.api.team.TeamId[]) - */ - @Override - public ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeams() - */ - @Override - public Iterable<TeamId> getTeams() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeTeams(com.github.mce.minigames.api.team.TeamId[]) - */ - @Override - public ArenaTypeBuilderInterface removeTeams(TeamId... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponents() - */ - @Override - public Iterable<ComponentId> getComponents() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeComponents(com.github.mce.minigames.api.component.ComponentId[]) - */ - @Override - public ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getArenaRuleSets() - */ - @Override - public Iterable<ArenaRuleSet> getArenaRuleSets() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.ArenaRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getAdminRuleSets() - */ - @Override - public Iterable<AdminRuleSet> getAdminRuleSets() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponentRuleSets() - */ - @Override - public Iterable<ComponentRuleSet> getComponentRuleSets() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getMatchRuleSets() - */ - @Override - public Iterable<MatchRuleSet> getMatchRuleSets() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPlayerRuleSets() - */ - @Override - public Iterable<PlayerRuleSet> getPlayerRuleSets() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeamRuleSets() - */ - @Override - public Iterable<TeamRuleSet> getTeamRuleSets() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) - */ - @Override - public ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#startsWith(com.github.mce.minigames.api.arena.MatchPhaseId) - */ - @Override - public ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#addPhases(com.github.mce.minigames.api.arena.MatchPhaseId[]) - */ - @Override - public ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getStartingPhase() - */ - @Override - public MatchPhaseId getStartingPhase() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPhases() - */ - @Override - public Iterable<MatchPhaseId> getPhases() throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhasesAndStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhases(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritArenaRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritMatchRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritPlayerRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeamRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAdminRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponentRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponents(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeams(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAll(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws MinigameException - { - // TODO Auto-generated method stub - return null; - } +// @Override +// public ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) +// { +// // TODO Auto-generated method stub +// return this; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyComponents(com.github.mce.minigames.api.component.ComponentId[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyTeam(com.github.mce.minigames.api.team.TeamId[]) +// */ +// @Override +// public ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeams() +// */ +// @Override +// public Iterable<TeamId> getTeams() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeTeams(com.github.mce.minigames.api.team.TeamId[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeTeams(TeamId... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponents() +// */ +// @Override +// public Iterable<ComponentId> getComponents() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeComponents(com.github.mce.minigames.api.component.ComponentId[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getArenaRuleSets() +// */ +// @Override +// public Iterable<ArenaRuleSet> getArenaRuleSets() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.ArenaRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getAdminRuleSets() +// */ +// @Override +// public Iterable<AdminRuleSet> getAdminRuleSets() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponentRuleSets() +// */ +// @Override +// public Iterable<ComponentRuleSet> getComponentRuleSets() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getMatchRuleSets() +// */ +// @Override +// public Iterable<MatchRuleSet> getMatchRuleSets() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPlayerRuleSets() +// */ +// @Override +// public Iterable<PlayerRuleSet> getPlayerRuleSets() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeamRuleSets() +// */ +// @Override +// public Iterable<TeamRuleSet> getTeamRuleSets() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) +// */ +// @Override +// public ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#startsWith(com.github.mce.minigames.api.arena.MatchPhaseId) +// */ +// @Override +// public ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#addPhases(com.github.mce.minigames.api.arena.MatchPhaseId[]) +// */ +// @Override +// public ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getStartingPhase() +// */ +// @Override +// public MatchPhaseId getStartingPhase() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPhases() +// */ +// @Override +// public Iterable<MatchPhaseId> getPhases() throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhasesAndStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhases(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritArenaRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritMatchRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritPlayerRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeamRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAdminRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponentRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponents(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeams(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } +// +// /* (non-Javadoc) +// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAll(com.github.mce.minigames.api.arena.ArenaTypeInterface) +// */ +// @Override +// public ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws McException +// { +// // TODO Auto-generated method stub +// return null; +// } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java index dbf3d4f6..91fa2b2b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java @@ -18,13 +18,14 @@ import java.util.Map; import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.impl.MinigamePluginImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; +import de.minigameslib.mclib.api.McException; + /** * Internal representation of an arena type. * @@ -101,11 +102,11 @@ public String getName() } @Override - public ArenaInterface createArena(String arenaName) throws MinigameException + public ArenaInterface createArena(String arenaName) throws McException { if (this.arenas.containsKey(arenaName.toLowerCase())) { - throw new MinigameException(CommonErrors.DuplicateArena, arenaName); + throw new McException(CommonErrors.DuplicateArena, arenaName); } // TODO Check for illegal names: ArenaInterface.ILLEGAL_NAMES // TODO Check for illegal characters diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java index ccac5de9..ec11f14c 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class AddCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java index 228ff06f..f134c488 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class AdminCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java index 46098d79..5cece0a4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java @@ -20,14 +20,15 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.CommonPermissions; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + /** * Command to create a new arena. * @@ -37,93 +38,93 @@ public class CreateCommandHandler implements SubCommandHandlerInterface { @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { - command.permThrowException(CommonPermissions.Create, command.getCommandPath()); - - if (command.getArgs().length < 2) - { - command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); - return; - } - - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final MinigameInterface minigame = lib.getMinigame(command.getArgs()[0]); - if (minigame == null) - { - command.send(CommonMessages.MinigameNotFound, command.getArgs()[0]); - command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); - return; - } - - ArenaTypeDeclarationInterface type = null; - String arenaName = null; - if (command.getArgs().length == 2) - { - type = minigame.getDefaultType(); - if (type == null) - { - command.send(CommonMessages.DefaultArenaTypeNotFound, command.getArgs()[0]); - command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); - return; - } - arenaName = command.getArgs()[1]; - } - else - { - type = minigame.getType(command.getArgs()[1]); - if (type == null) - { - command.send(CommonMessages.ArenaTypeNotFound, command.getArgs()[0], command.getArgs()[1]); - command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); - return; - } - arenaName = command.getArgs()[2]; - } - - type.createArena(arenaName); +// command.permThrowException(CommonPermissions.Create, command.getCommandPath()); +// +// if (command.getArgs().length < 2) +// { +// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); +// return; +// } +// +// final MglibInterface lib = MglibInterface.INSTANCE.get(); +// final MinigameInterface minigame = lib.getMinigame(command.getArgs()[0]); +// if (minigame == null) +// { +// command.send(CommonMessages.MinigameNotFound, command.getArgs()[0]); +// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); +// return; +// } +// +// ArenaTypeDeclarationInterface type = null; +// String arenaName = null; +// if (command.getArgs().length == 2) +// { +// type = minigame.getDefaultType(); +// if (type == null) +// { +// command.send(CommonMessages.DefaultArenaTypeNotFound, command.getArgs()[0]); +// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); +// return; +// } +// arenaName = command.getArgs()[1]; +// } +// else +// { +// type = minigame.getType(command.getArgs()[1]); +// if (type == null) +// { +// command.send(CommonMessages.ArenaTypeNotFound, command.getArgs()[0], command.getArgs()[1]); +// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); +// return; +// } +// arenaName = command.getArgs()[2]; +// } +// +// type.createArena(arenaName); } @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { - final MglibInterface lib = MglibInterface.INSTANCE.get(); - if (command.getArgs().length == 0) - { - final List<String> result = new ArrayList<>(); - for (final MinigameInterface mg : lib.getMinigames()) - { - if (lastArg == null) - { - result.add(mg.getName()); - } - else if (mg.getName().startsWith(lastArg)) - { - result.add(mg.getName()); - } - } - return result; - } - else if (command.getArgs().length == 1) - { - final List<String> result = new ArrayList<>(); - final MinigameInterface mg = lib.getMinigame(command.getArgs()[0]); - if (mg != null) - { - for (final ArenaTypeDeclarationInterface type : mg.getDeclaredTypes()) - { - if (lastArg == null) - { - result.add(type.getName()); - } - else if (type.getName().startsWith(lastArg)) - { - result.add(type.getName()); - } - } - } - return result; - } +// final MglibInterface lib = MglibInterface.INSTANCE.get(); +// if (command.getArgs().length == 0) +// { +// final List<String> result = new ArrayList<>(); +// for (final MinigameInterface mg : lib.getMinigames()) +// { +// if (lastArg == null) +// { +// result.add(mg.getName()); +// } +// else if (mg.getName().startsWith(lastArg)) +// { +// result.add(mg.getName()); +// } +// } +// return result; +// } +// else if (command.getArgs().length == 1) +// { +// final List<String> result = new ArrayList<>(); +// final MinigameInterface mg = lib.getMinigame(command.getArgs()[0]); +// if (mg != null) +// { +// for (final ArenaTypeDeclarationInterface type : mg.getDeclaredTypes()) +// { +// if (lastArg == null) +// { +// result.add(type.getName()); +// } +// else if (type.getName().startsWith(lastArg)) +// { +// result.add(type.getName()); +// } +// } +// } +// return result; +// } return null; } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java index 7297896e..d79ca7f0 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class DebugCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java index 298e00c1..ddf4f4a5 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class EditCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java index 9d1d48e1..af77cecd 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class GetOptCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java index cb291da8..6bf8b497 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java @@ -22,12 +22,13 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.perms.CommonPermissions; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; + /** * Command to display useful information. * @@ -37,7 +38,7 @@ public class InfoArenasCommandHandler extends AbstractPagableCommandHandler { @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { command.permThrowException(CommonPermissions.InfoArenas, command.getCommandPath() + " arenas"); //$NON-NLS-1$ super.handle(command); @@ -66,42 +67,42 @@ protected Serializable[] getLines(CommandInterface command, int start, int count i++; } final List<Serializable> result = new ArrayList<>(); - for (i = 0; i < count; i++) - { - if (arenas.hasNext()) - { - final ArenaInterface arena = arenas.next(); - Serializable state = null; - switch (arena.getState()) - { - case Disabled: - default: - state = CommonMessages.AraneStateDisabled.toArg(); - break; - case InGame: - state = CommonMessages.AraneStateInGame.toArg(); - break; - case Join: - state = CommonMessages.AraneStateJoin.toArg(); - break; - case Maintenance: - state = CommonMessages.AraneStateMeintenance.toArg(); - break; - case Restarting: - state = CommonMessages.AraneStateRestarting.toArg(); - break; - case Starting: - state = CommonMessages.AraneStateStarting.toArg(); - break; - } - result.add(CommonMessages.InfoArenaLine.toArg( - arena.getMinigame().getName(), - arena.getInternalName(), - state, - arena.getDisplayName() - )); - } - } +// for (i = 0; i < count; i++) +// { +// if (arenas.hasNext()) +// { +// final ArenaInterface arena = arenas.next(); +// Serializable state = null; +// switch (arena.getState()) +// { +// case Disabled: +// default: +// state = CommonMessages.AraneStateDisabled.toArg(); +// break; +// case InGame: +// state = CommonMessages.AraneStateInGame.toArg(); +// break; +// case Join: +// state = CommonMessages.AraneStateJoin.toArg(); +// break; +// case Maintenance: +// state = CommonMessages.AraneStateMeintenance.toArg(); +// break; +// case Restarting: +// state = CommonMessages.AraneStateRestarting.toArg(); +// break; +// case Starting: +// state = CommonMessages.AraneStateStarting.toArg(); +// break; +// } +// result.add(CommonMessages.InfoArenaLine.toArg( +// arena.getMinigame().getName(), +// arena.getInternalName(), +// state, +// arena.getDisplayName() +// )); +// } +// } return result.toArray(new Serializable[result.size()]); } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java index 46ff10cb..b77a3365 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java @@ -20,13 +20,14 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; import com.github.mce.minigames.api.perms.CommonPermissions; import com.github.mce.minigames.impl.MinigamesPlugin; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + /** * Command to display useful information. * @@ -36,7 +37,7 @@ public class InfoCommandHandler implements SubCommandHandlerInterface { @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { if (command.getArgs().length > 0) { @@ -63,20 +64,20 @@ public void handle(CommandInterface command) throws MinigameException final MglibInterface lib = MglibInterface.INSTANCE.get(); final String mode = ((MinigamesPlugin)lib).getModeString(); final String debug = lib.debug() ? "TRUE" : "FALSE"; //$NON-NLS-1$ //$NON-NLS-2$ - command.send(CommonMessages.InfoCommandOutput, - command.getCommandPath(), - lib.getMinecraftVersion().name(), - lib.getLibVersionString(), - mode, - debug - ); +// command.send(CommonMessages.InfoCommandOutput, +// command.getCommandPath(), +// lib.getMinecraftVersion().name(), +// lib.getLibVersionString(), +// mode, +// debug +// ); // TODO Info: Where Am I (which arena) // TODO Info: Which waiting queues // TODO Info on partys } @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { return Collections.emptyList(); } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java index 7e3751ff..5ca4d9ca 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java @@ -22,12 +22,13 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.perms.CommonPermissions; import com.github.mce.minigames.api.services.ExtensionInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; + /** * Command to display useful information. * @@ -37,7 +38,7 @@ public class InfoExtensionsCommandHandler extends AbstractPagableCommandHandler { @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { command.permThrowException(CommonPermissions.InfoExtensions, command.getCommandPath() + " extensions"); //$NON-NLS-1$ super.handle(command); diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java index b7b3a442..96d6f939 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java @@ -22,12 +22,13 @@ import com.github.mce.minigames.api.CommonMessages; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.cmd.AbstractPagableCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; import com.github.mce.minigames.api.perms.CommonPermissions; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; + /** * Command to display useful information. * @@ -37,7 +38,7 @@ public class InfoMinigamesCommandHandler extends AbstractPagableCommandHandler { @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { command.permThrowException(CommonPermissions.InfoMinigames, command.getCommandPath() + " minigames"); //$NON-NLS-1$ super.handle(command); diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java index bbe3cde5..3d32b515 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class JoinCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java index cf4b278a..27f6aebb 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class LeaveCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java index 565ceba2..56cbdbe1 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class ListCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java index cd1034c1..1158528b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java @@ -16,9 +16,10 @@ package com.github.mce.minigames.impl.cmd; import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.HelpCommandHandler; + +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; /** * A handler for the /mg2 command. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java index 17e49dbd..f444f088 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * @author mepeisen @@ -33,7 +33,7 @@ public class PartyAcceptCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java index ecaa15b5..4e39ac8a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java @@ -17,13 +17,14 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.AbstractCompositeCommandHandler; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.HelpCommandHandler; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.config.CommonConfig; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * A handler for the /party command. @@ -48,11 +49,11 @@ public PartyCommandHandler() } @Override - protected boolean pre(CommandInterface command) throws MinigameException + protected boolean pre(CommandInterface command) throws McException { if (!CommonConfig.PartyCommandEnabled.getBoolean()) { - throw new MinigameException(CommonErrors.PartyCommandDisabled); + throw new McException(CommonErrors.PartyCommandDisabled); } return super.pre(command); diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java index b4b2b6cc..34ab5d31 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * @author mepeisen @@ -33,7 +33,7 @@ public class PartyDisbandCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java index b41b0998..bb5b8b08 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * @author mepeisen @@ -33,7 +33,7 @@ public class PartyInviteCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java index f0fccf6a..314d5367 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * @author mepeisen @@ -33,7 +33,7 @@ public class PartyKickCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java index c31402f5..42aec948 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * @author mepeisen @@ -33,7 +33,7 @@ public class PartyLeaveCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java index a8344b19..ef953d5e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * @author mepeisen @@ -33,7 +33,7 @@ public class PartyListCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -63,7 +63,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java index 24be0ee0..0661f061 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class RemoveCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java index eb94cff4..849660ff 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class SaveCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java index a86e8ee9..7cd1d31e 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -34,7 +34,7 @@ public class SetOptCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java index 31b6cc34..5132da10 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java @@ -15,22 +15,15 @@ package com.github.mce.minigames.impl.cmd; -import static com.github.mce.minigames.api.cmd.CommandInterface.isPlayer; -import static com.github.mce.minigames.api.player.ArenaPlayerInterface.isInArena; - import java.util.Collections; import java.util.List; -import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * A handler for the /start command. @@ -41,7 +34,7 @@ public class StartCommandHandler implements SubCommandHandlerInterface { @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { if (command.getArgs().length > 0) { @@ -51,24 +44,24 @@ public void handle(CommandInterface command) throws MinigameException } // only in-game - command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); - - final ArenaPlayerInterface player = command.getPlayer(); - - // check permission - command.permThrowException(CommonPermissions.Start, command.getCommandPath()); - - // only inside arena - player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); - - // check if the arena can be started directly - final ArenaInterface arena = player.getArena(); - arena.when(ArenaInterface::canStart).thenThrow(CommonErrors.CannotStart); - - // start it, log and send success message - MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ - arena.start(); - player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); +// command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); +// +// final ArenaPlayerInterface player = command.getPlayer(); +// +// // check permission +// command.permThrowException(CommonPermissions.Start, command.getCommandPath()); +// +// // only inside arena +// player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); +// +// // check if the arena can be started directly +// final ArenaInterface arena = player.getArena(); +// arena.when(ArenaInterface::canStart).thenThrow(CommonErrors.CannotStart); +// +// // start it, log and send success message +// MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ +// arena.start(); +// player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); } @Override @@ -84,7 +77,7 @@ public LocalizedMessageInterface getDescription(CommandInterface command) } @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { return Collections.emptyList(); } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java index fe7b72f4..a4b40b0a 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java @@ -17,10 +17,10 @@ import java.util.List; -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** * Command to display useful information. @@ -35,7 +35,7 @@ public class TestCommandHandler implements SubCommandHandlerInterface * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) */ @Override - public void handle(CommandInterface command) throws MinigameException + public void handle(CommandInterface command) throws McException { // TODO Auto-generated method stub } @@ -44,7 +44,7 @@ public void handle(CommandInterface command) throws MinigameException * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) */ @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws MinigameException + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException { // TODO Auto-generated method stub return null; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java index c6fad9df..595f91aa 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java @@ -22,8 +22,8 @@ import org.bukkit.Location; import org.bukkit.util.Vector; -import com.github.mce.minigames.api.component.Cuboid; -import com.github.mce.minigames.api.zones.ZoneInterface; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; /** * Base class for all cuboid components. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java deleted file mode 100644 index b8399976..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaInterfaceProvider.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.context; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.MinigameContext; - -/** - * Provider to calculate arena for context. - * - * @author mepeisen - */ -public class ArenaInterfaceProvider implements ContextHandlerInterface<ArenaInterface> -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromCommand(com.github.mce.minigames.api.cmd.CommandInterface, com.github.mce.minigames.api.MinigameContext) - */ - @Override - public ArenaInterface calculateFromCommand(CommandInterface command, MinigameContext context) - { - // TODO Auto-generated method stub - return null; - } - - @Override - public ArenaInterface calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) - { - return event.getArena(); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java deleted file mode 100644 index 407d89b4..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/ArenaPlayerInterfaceProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.context; - -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.MinigameContext; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * Provider to calculate arena players for context. - * - * @author mepeisen - */ -public class ArenaPlayerInterfaceProvider implements ContextHandlerInterface<ArenaPlayerInterface> -{ - - @Override - public ArenaPlayerInterface calculateFromCommand(CommandInterface command, MinigameContext context) - { - // simply return the command sender - return command.getPlayer(); - } - - @Override - public ArenaPlayerInterface calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) - { - return event.getPlayer(); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java index 825dff62..b0109832 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java @@ -22,10 +22,11 @@ import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.config.CommonConfig; -import com.github.mce.minigames.api.context.ContextResolverInterface; -import com.github.mce.minigames.api.context.MinigameContext; import com.github.mce.minigames.api.player.ArenaPlayerInterface; +import de.minigameslib.mclib.api.McContext; +import de.minigameslib.mclib.api.McContext.ContextResolverInterface; + /** * Default implementation of context resolve. * @@ -61,7 +62,7 @@ public class DefaultResolver implements ContextResolverInterface { @Override - public String resolve(String varName, String[] args, MinigameContext context) + public String resolve(String varName, String[] args, McContext context) { switch (varName) { @@ -204,7 +205,7 @@ private String resolveVar(Object object, String path) final MglibInterface lib = MglibInterface.INSTANCE.get(); if (lib.debug()) { - lib.getLogger().log(Level.FINE, "Problems invoking " + getterName + " on " + cur, ex); //$NON-NLS-1$ //$NON-NLS-2$ +// lib.getLogger().log(Level.FINE, "Problems invoking " + getterName + " on " + cur, ex); //$NON-NLS-1$ //$NON-NLS-2$ } cur = null; } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java deleted file mode 100644 index 59c593a2..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameContextImpl.java +++ /dev/null @@ -1,332 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.context; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.ContextResolverInterface; -import com.github.mce.minigames.api.context.MinigameContext; -import com.github.mce.minigames.api.util.function.MgRunnable; -import com.github.mce.minigames.api.util.function.MgSupplier; - -/** - * Implementation of minigame context. - * - * @author mepeisen - */ -public class MinigameContextImpl implements MinigameContext -{ - - /** the registered context handlers. */ - private final Map<Class<?>, List<ContextHandlerInterface<?>>> handlers = new HashMap<>(); - - /** the thread local storage. */ - private final ThreadLocal<TLD> tls = ThreadLocal.withInitial(() -> new TLD()); - - /** context resolve helper. */ - private final List<ContextResolverInterface> resolvers = new ArrayList<>(); - - /** - * Registers a context handler to calculate context variables. - * - * @param clazz - * context class. - * @param handler - * the context handler. - * @throws MinigameException - * thrown if the class to register is already registered. - * @param <T> - * context class to register - */ - public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws MinigameException - { - this.handlers.computeIfAbsent(clazz, (key) -> new ArrayList<>()).add(handler); - } - - /** - * - * @param resolver - */ - public void registerContextResolver(ContextResolverInterface resolver) - { - this.resolvers.add(resolver); - } - - /** - * Runs given runnable with clean context. - * @param command - * @param runnable - */ - public void runInContext(CommandInterface command, Runnable runnable) - { - final TLD old = this.tls.get(); - final TLD tld = new TLD(); - this.tls.set(tld); - try - { - tld.clear(); - tld.command = command; - tld.event = null; - runnable.run(); - } - finally - { - this.tls.set(old); - tld.clear(); - tld.command = null; - tld.event = null; - } - } - - /** - * Runs given runnable with clean context. - * @param event - * @param runnable - */ - public void runInContext(MinigameEvent<?, ?> event, Runnable runnable) - { - final TLD old = this.tls.get(); - final TLD tld = new TLD(); - this.tls.set(tld); - try - { - tld.clear(); - tld.command = null; - tld.event = event; - runnable.run(); - } - finally - { - this.tls.set(old); - tld.clear(); - tld.command = null; - tld.event = null; - } - } - - @SuppressWarnings("unchecked") - @Override - public <T> T getContext(Class<T> clazz) - { - final TLD data = this.tls.get(); - if (data.containsKey(clazz)) - { - return (T) data.get(clazz); - } - if (data.computeStack.contains(clazz)) - { - return null; - } - data.computeStack.add(clazz); - try - { - if (this.handlers.containsKey(clazz)) - { - for (final ContextHandlerInterface<?> handler : this.handlers.get(clazz)) - { - Object result = null; - if (data.command != null) - { - result = handler.calculateFromCommand(data.command, this); - } - else if (data.event != null) - { - result = handler.calculateFromEvent(data.event, this); - } - if (result != null) - { - data.put(clazz, result); - return (T) result; - } - } - } - data.put(clazz, null); - return null; - } - finally - { - data.computeStack.remove(clazz); - } - } - - @Override - public <T> void setContext(Class<T> clazz, T value) - { - final TLD data = this.tls.get(); - data.put(clazz, value); - } - - @Override - public String resolveContextVar(String src) - { - if (!src.contains("$")) return src; //$NON-NLS-1$ - final StringBuilder builder = new StringBuilder(); - int start = src.indexOf('$'); - if (start > 0) builder.append(src, 0, start); - int end = src.indexOf('$', start + 1); - final String varWithArgs = src.substring(start + 1, end - 1); - final String[] splitted = varWithArgs.split(":"); //$NON-NLS-1$ - builder.append(resolve(splitted)); - builder.append(this.resolveContextVar(src.substring(end + 1))); - return builder.toString(); - } - - /** - * Resolve context var - * @param splitted - * @return resolved var - */ - private String resolve(String[] splitted) - { - final String varName = splitted[0]; - final String[] args = splitted.length == 1 ? new String[0] : Arrays.copyOfRange(splitted, 1, splitted.length); - for (final ContextResolverInterface resolver : this.resolvers) - { - final String result = resolver.resolve(varName, args, this); - if (result != null) return result; - } - return "?"; //$NON-NLS-1$ - } - - @Override - public void runInNewContext(MgRunnable runnable) throws MinigameException - { - final TLD old = this.tls.get(); - final TLD tld = new TLD(); - this.tls.set(tld); - try - { - tld.clear(); - tld.command = old.command; - tld.event = old.event; - runnable.run(); - } - finally - { - this.tls.set(old); - tld.clear(); - tld.command = null; - tld.event = null; - } - } - - @Override - public void runInCopiedContext(MgRunnable runnable) throws MinigameException - { - final TLD old = this.tls.get(); - final TLD tld = new TLD(); - this.tls.set(tld); - try - { - tld.clear(); - tld.putAll(old); - tld.command = old.command; - tld.event = old.event; - runnable.run(); - } - finally - { - this.tls.set(old); - tld.clear(); - tld.command = null; - tld.event = null; - } - } - - @Override - public <T> T calculateInNewContext(MgSupplier<T> runnable) throws MinigameException - { - final TLD old = this.tls.get(); - final TLD tld = new TLD(); - this.tls.set(tld); - try - { - tld.clear(); - tld.command = old.command; - tld.event = old.event; - return runnable.get(); - } - finally - { - this.tls.set(old); - tld.clear(); - tld.command = null; - tld.event = null; - } - } - - @Override - public <T> T calculateInCopiedContext(MgSupplier<T> runnable) throws MinigameException - { - final TLD old = this.tls.get(); - final TLD tld = new TLD(); - this.tls.set(tld); - try - { - tld.clear(); - tld.putAll(old); - tld.command = old.command; - tld.event = old.event; - return runnable.get(); - } - finally - { - this.tls.set(old); - tld.clear(); - tld.command = null; - tld.event = null; - } - } - - /** - * thread local data - */ - private static final class TLD extends HashMap<Class<?>, Object> - { - - /** - * serial version uid. - */ - private static final long serialVersionUID = 8827911884838600137L; - - /** the underlying command being executed. */ - public CommandInterface command; - /** the underlying event being executed. */ - public MinigameEvent<?, ?> event; - - /** stack of computes to detect endless loops. */ - public Set<Class<?>> computeStack = new HashSet<>(); - - /** - * Constructor. - */ - public TLD() - { - // empty - } - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java deleted file mode 100644 index ea8f64f6..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/MinigameInterfaceProvider.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.context; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.MinigameContext; - -/** - * Provider to calculate minigame for context. - * - * @author mepeisen - */ -public class MinigameInterfaceProvider implements ContextHandlerInterface<MinigameInterface> -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.ContextHandlerInterface#calculateFromCommand(com.github.mce.minigames.api.cmd.CommandInterface, com.github.mce.minigames.api.MinigameContext) - */ - @Override - public MinigameInterface calculateFromCommand(CommandInterface command, MinigameContext context) - { - // TODO Auto-generated method stub - return null; - } - - @Override - public MinigameInterface calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) - { - return event.getMinigame(); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java deleted file mode 100644 index db92ad70..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/gui/GuiSessionImpl.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.gui; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.Material; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import com.github.mce.minigames.api.MinigameException; -import com.github.mce.minigames.api.context.MinigameStorage; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.ClickGuiItem; -import com.github.mce.minigames.api.gui.ClickGuiPageInterface; -import com.github.mce.minigames.api.gui.GuiSessionInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.impl.MinigamesPlugin; -import com.github.mce.minigames.impl.nms.InventoryManagerInterface; - -/** - * Implementation of a gui session - * - * @author mepeisen - */ -public class GuiSessionImpl implements GuiSessionInterface -{ - - /** the gui interface. */ - private ClickGuiInterface gui; - /** the arena player. */ - private ArenaPlayerInterface player; - /** the current inventory name. */ - private LocalizedMessageInterface currentName; - /** the current items. */ - private ClickGuiItem[][] currentItems; - /** the line count. */ - private int lineCount; - - /** - * Constructor - * - * @param gui - * the gui to be used - * @param player - * the arena player to be used - */ - public GuiSessionImpl(ClickGuiInterface gui, ArenaPlayerInterface player) - { - this.gui = gui; - this.player = player; - this.currentName = gui.getInitialPage().getPageName(); - this.currentItems = gui.getInitialPage().getItems(); - this.lineCount = gui.getLineCount(); - - final String name = player.getBukkitPlayer().isOp() ? this.currentName.toAdminMessage(player.getPreferredLocale()) : this.currentName.toUserMessage(player.getPreferredLocale()); - final ItemStack[] items = this.toItemStack(); - MinigamesPlugin.nms().create(InventoryManagerInterface.class).openInventory(player.getBukkitPlayer(), name, items); - } - - /** - * Converts the existing items to item stack. - * @return item stack. - */ - private ItemStack[] toItemStack() - { - final List<ItemStack> result = new ArrayList<>(); - for (int line = 0; line < this.lineCount; line++) - { - final ClickGuiItem[] itemline = (this.currentItems == null || this.currentItems.length <= line) ? null : this.currentItems[line]; - for (int column = 0; column < 9; column++) - { - if (itemline == null || itemline.length <= column) - { - result.add(new ItemStack(Material.AIR)); - } - else - { - final ItemStack stack = itemline[column].getItemStack().clone(); - final ItemMeta meta = stack.getItemMeta(); - final String displayName = toColorsString( - this.player.getBukkitPlayer().isOp() ? itemline[column].getDisplayName().toAdminMessage(this.player.getPreferredLocale()) : itemline[column].getDisplayName().toUserMessage(this.player.getPreferredLocale()), - line + ":" + column //$NON-NLS-1$ - ); - meta.setDisplayName(displayName); - stack.setItemMeta(meta); - result.add(stack); - } - } - } - return result.toArray(new ItemStack[result.size()]); - } - - /** - * Returns a colored string that hides data from users view. - * @param name item name - * @param hiddenString the hidden string - * @return colored hidden text - */ - private static String toColorsString(String name, String hiddenString) - { - final String target = toHexString(hiddenString); - final StringBuilder builder = new StringBuilder(); - builder.append(name); - builder.append(' '); - for (int i = 0; i < target.length(); i++) - { - builder.append('§'); - builder.append(target.charAt(i)); - } - return builder.toString(); - } - - /** - * Strips the string that was originally encoded by toColorsString - * @param src - * @return hiddenString - */ - private static String stripColoredString(String src) - { - int index = src.lastIndexOf(' '); - final StringBuilder hex = new StringBuilder(); - for (int i = index + 1; i < src.length(); i+=3) - { - hex.append(src.substring(i + 1, i + 3)); - } - return fromHexString(hex.toString()); - } - - /** - * Converts given string to hey code. - * - * @param src - * source string - * @return hex string - */ - private static String toHexString(String src) - { - final byte[] ba = src.getBytes(); - StringBuilder str = new StringBuilder(); - for (int i = 0; i < ba.length; i++) - { - str.append(String.format("%02x", ba[i])); //$NON-NLS-1$ - } - return str.toString(); - } - - /** - * Converts given hex string to a normal string. - * - * @param hex - * hex string - * @return normal string. - */ - private static String fromHexString(String hex) - { - StringBuilder str = new StringBuilder(); - for (int i = 0; i < hex.length(); i += 2) - { - str.append((char) Integer.parseInt(hex.substring(i, i + 2), 16)); - } - return str.toString(); - } - - @Override - public void readFromConfig(ConfigurationSection section) - { - throw new UnsupportedOperationException(); - } - - @Override - public void writeToConfig(ConfigurationSection section) - { - throw new UnsupportedOperationException(); - } - - @Override - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - @Override - public ClickGuiInterface getGui() - { - return this.gui; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.gui.GuiSessionInterface#setNewPage(com.github.mce.minigames.api.gui.ClickGuiPageInterface) - */ - @Override - public void setNewPage(ClickGuiPageInterface page) - { - // TODO Auto-generated method stub - - } - - @Override - public void close() - { - this.player.getBukkitPlayer().closeInventory(); - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.gui.GuiSessionInterface#getGuiStorage() - */ - @Override - public MinigameStorage getGuiStorage() - { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.gui.GuiSessionInterface#getPlayerSessionStorage() - */ - @Override - public MinigameStorage getPlayerSessionStorage() - { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.gui.GuiSessionInterface#getPlayerPersistentStorage() - */ - @Override - public MinigameStorage getPlayerPersistentStorage() - { - // TODO Auto-generated method stub - return null; - } - - /** - * @param evt - */ - public void onClick(InventoryClickEvent evt) - { - final ItemStack stack = evt.getCurrentItem(); - if (stack.getItemMeta().hasDisplayName()) - { - final String item = stripColoredString(stack.getItemMeta().getDisplayName()); - final String[] splitted = item.split(":"); //$NON-NLS-1$ - if (splitted.length == 2) - { - try - { - final int line = Integer.parseInt(splitted[0]); - final int col = Integer.parseInt(splitted[1]); - final ClickGuiItem guiItem = this.currentItems[line][col]; - guiItem.handle(this.player, this, this.gui); - } - catch (MinigameException ex) - { - // TODO - } - catch (IndexOutOfBoundsException | NumberFormatException ex) - { - // TODO logging - } - } - else - { - // TODO Logging - } - } - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java index 3e8cb694..ae2b5c93 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java @@ -26,11 +26,11 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; -import com.github.mce.minigames.api.locale.LocalizedMessage; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageList; -import com.github.mce.minigames.api.locale.LocalizedMessages; -import com.github.mce.minigames.api.locale.MessagesConfigInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessagesConfigInterface; /** * Implementation of messages configuration diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java index 6acdc207..5d56c1f4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java @@ -15,38 +15,23 @@ package com.github.mce.minigames.impl.player; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; import java.util.UUID; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameException; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.arena.rules.MinigameEvent; -import com.github.mce.minigames.api.cmd.CommandInterface; -import com.github.mce.minigames.api.config.Configurable; -import com.github.mce.minigames.api.context.ContextHandlerInterface; -import com.github.mce.minigames.api.context.MinigameContext; -import com.github.mce.minigames.api.context.MinigameStorage; -import com.github.mce.minigames.api.gui.ClickGuiInterface; -import com.github.mce.minigames.api.gui.GuiSessionInterface; -import com.github.mce.minigames.api.locale.LocalizedMessageInterface; -import com.github.mce.minigames.api.perms.PermissionsInterface; import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.util.function.FalseStub; -import com.github.mce.minigames.api.util.function.MgOutgoingStubbing; -import com.github.mce.minigames.api.util.function.MgPredicate; -import com.github.mce.minigames.api.util.function.TrueStub; -import com.github.mce.minigames.impl.gui.GuiSessionImpl; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; /** * Implementation of arena players. @@ -63,9 +48,6 @@ public class ArenaPlayerImpl implements ArenaPlayerInterface /** the players name. */ private String name; - /** the session storage. */ - private StorageImpl sessionStorage = new StorageImpl(); - /** * Constructor * @@ -106,65 +88,6 @@ public UUID getPlayerUUID() return this.uuid; } - @Override - public void sendMessage(LocalizedMessageInterface msg, Serializable... args) - { - final Player player = this.getBukkitPlayer(); - if (player != null) - { - - String[] msgs = null; - if (msg.isSingleLine()) - { - msgs = new String[] { player.isOp() ? (msg.toAdminMessage(this.getPreferredLocale(), args)) : (msg.toUserMessage(this.getPreferredLocale(), args)) }; - } - else - { - msgs = player.isOp() ? (msg.toAdminMessageLine(this.getPreferredLocale(), args)) : (msg.toUserMessageLine(this.getPreferredLocale(), args)); - } - - for (final String smsg : msgs) - { - switch (msg.getSeverity()) - { - default: - case Error: - player.sendMessage(ChatColor.DARK_RED + smsg); - break; - case Information: - player.sendMessage(ChatColor.WHITE + smsg); - break; - case Loser: - player.sendMessage(ChatColor.RED + smsg); - break; - case Success: - player.sendMessage(ChatColor.GREEN + smsg); - break; - case Warning: - player.sendMessage(ChatColor.YELLOW + smsg); - break; - case Winner: - player.sendMessage(ChatColor.GOLD + smsg); - break; - } - } - } - } - - @Override - public Locale getPreferredLocale() - { - // TODO Auto-generated method stub - return Locale.ENGLISH; - } - - @Override - public void setPreferredLocale(Locale locale) throws MinigameException - { - // TODO Auto-generated method stub - - } - @Override public ArenaInterface getArena() { @@ -187,14 +110,7 @@ public void join(WaitQueue queue) } @Override - public boolean checkPermission(PermissionsInterface perm) - { - final Player player = this.getBukkitPlayer(); - return player == null ? false : player.hasPermission(perm.resolveName()); - } - - @Override - public MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInterface> test) throws MinigameException + public McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException { if (test.test(this)) { @@ -203,124 +119,28 @@ public MgOutgoingStubbing<ArenaPlayerInterface> when(MgPredicate<ArenaPlayerInte return new FalseStub<>(this); } - @Override - public MinigameStorage getContextStorage() - { - return MglibInterface.INSTANCE.get().getContext(ContextStorage.class).computeIfAbsent(this.uuid, (key) -> new StorageImpl()); - } - - @Override - public MinigameStorage getSessionStorage() - { - // TODO Clear on offline/online events - return this.sessionStorage; - } - - @Override - public MinigameStorage getPersistentStorage() - { - // TODO Auto-generated method stub - return null; - } - - /** - * Helper for context storage. - * - * @author mepeisen - */ - private static final class ContextStorage extends HashMap<UUID, StorageImpl> - { - - /** - * serial version uid - */ - private static final long serialVersionUID = 3803764167708189047L; - - /** - * Constructor - */ - public ContextStorage() - { - // empty - } - - } - - /** - * Simple implementation of storage map. - * - * @author mepeisen - */ - private static final class StorageImpl implements MinigameStorage - { - - /** the underlying data map. */ - private final Map<Class<?>, Configurable> data = new HashMap<>(); - - /** - * Constructor. - */ - public StorageImpl() - { - // empty - } - - @Override - public <T extends Configurable> T get(Class<T> clazz) - { - return clazz.cast(this.data.get(clazz)); - } - - @Override - public <T extends Configurable> void set(Class<T> clazz, T value) - { - this.data.put(clazz, value); - } - - } - /** * Registers the storage context provider. * * @param mg2 - * @throws MinigameException + * @throws McException */ - public static void registerProvider(MinigamePluginInterface mg2) throws MinigameException - { - mg2.registerContextHandler(ContextStorage.class, new ContextHandlerInterface<ContextStorage>() { - - @Override - public ContextStorage calculateFromCommand(CommandInterface command, MinigameContext context) - { - return new ContextStorage(); - } - - @Override - public ContextStorage calculateFromEvent(MinigameEvent<?, ?> event, MinigameContext context) - { - return new ContextStorage(); - } - }); - } - - @Override - public GuiSessionInterface getGuiSession() - { - return this.getSessionStorage().get(GuiSessionInterface.class); - } - - @Override - public GuiSessionInterface openGui(ClickGuiInterface gui) throws MinigameException - { - final MinigameStorage storage = this.getSessionStorage(); - final GuiSessionInterface oldSession = storage.get(GuiSessionInterface.class); - if (oldSession != null) - { - oldSession.close(); - } - final GuiSessionInterface newSession = new GuiSessionImpl(gui, this); - storage.set(GuiSessionInterface.class, newSession); - return newSession; + public static void registerProvider(MinigamePluginInterface mg2) throws McException + { +// mg2.registerContextHandler(ContextStorage.class, new ContextHandlerInterface<ContextStorage>() { +// +// @Override +// public ContextStorage calculateFromCommand(CommandInterface command, McContext context) +// { +// return new ContextStorage(); +// } +// +// @Override +// public ContextStorage calculateFromEvent(MinigameEvent<?, ?> event, McContext context) +// { +// return new ContextStorage(); +// } +// }); } /** @@ -328,8 +148,7 @@ public GuiSessionInterface openGui(ClickGuiInterface gui) throws MinigameExcepti */ public void onPlayerQuit() { - // clear session storage - this.sessionStorage = new StorageImpl(); + // TODO } /** @@ -337,17 +156,17 @@ public void onPlayerQuit() */ public void onPlayerJoin() { - // clear session storage - this.sessionStorage = new StorageImpl(); + // TODO } - /** - * Client closed the gui. + /* (non-Javadoc) + * @see com.github.mce.minigames.api.player.ArenaPlayerInterface#getMcPlayer() */ - public void onCloseGui() + @Override + public McPlayerInterface getMcPlayer() { - final MinigameStorage storage = this.getSessionStorage(); - storage.set(GuiSessionInterface.class, null); + // TODO Auto-generated method stub + return null; } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java index 1ac60225..169593e6 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java @@ -17,9 +17,10 @@ import java.util.Map; -import com.github.mce.minigames.api.cmd.SubCommandHandlerInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; + /** * A special extension to provide premium services; there can only be one premium extension. * From 49517a95182325fa9db949707f33b1b413e3ea71 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 14 Jan 2017 21:55:18 +0100 Subject: [PATCH 165/266] v2 --- APIv2/pom.xml | 198 ++---------------------------------- LIBv2/maxMcVersion.txt | 1 + LIBv2/minMcVersion.txt | 1 + LIBv2/pom.xml | 203 ++---------------------------------- PARENTv2/.project | 17 ++++ PARENTv2/pom.xml | 226 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 259 insertions(+), 387 deletions(-) create mode 100644 LIBv2/maxMcVersion.txt create mode 100644 LIBv2/minMcVersion.txt create mode 100644 PARENTv2/.project create mode 100644 PARENTv2/pom.xml diff --git a/APIv2/pom.xml b/APIv2/pom.xml index eccf5763..072efe72 100644 --- a/APIv2/pom.xml +++ b/APIv2/pom.xml @@ -1,210 +1,26 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>de.minigameslib.mglib</groupId> <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> <packaging>jar</packaging> - <name>MinigamesAPI</name> + <name>MinigamesPlugin</name> <description>Rich Minigames API V2</description> - - <properties> - <maven.source.plugin.version>3.0.0</maven.source.plugin.version> - <maven.javadoc.plugin.version>2.10.3</maven.javadoc.plugin.version> - <jacoco.plugin.version>0.7.6.201602180812</jacoco.plugin.version> - <maven.jxr.plugin.version>2.1</maven.jxr.plugin.version> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>1.8</maven.compiler.source> - <maven.compiler.target>1.8</maven.compiler.target> - <java.version>1.8</java.version> - </properties> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>spigot-1.11.2-R0.1-api-bom</artifactId> - <version>0.0.1-SNAPSHOT</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> + + <parent> + <groupId>de.minigameslib.mglib</groupId> + <artifactId>Minigames-Parent</artifactId> + <version>2.0.0-SNAPSHOT</version> + </parent> <dependencies> <dependency> <groupId>de.minigameslib.mclib</groupId> <artifactId>mclib-api</artifactId> - <version>0.0.1-SNAPSHOT</version> - <scope>provided</scope> </dependency> <dependency> <groupId>de.minigameslib.mclib</groupId> <artifactId>mclib</artifactId> - <version>0.0.1-SNAPSHOT</version> - <scope>runtime</scope> </dependency> - - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot-api</artifactId> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> </dependencies> - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <profiles> - <profile> - <id>mclib.withjavadocreport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - </plugin> - </plugins></reporting> - </profile> - <profile> - <id>mclib.withtestreport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> - </plugins></reporting> - </profile> - <profile> - <id>mclib.withsourcereport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jxr-plugin</artifactId> - <version>${maven.jxr.plugin.version}</version> - </plugin> - </plugins></reporting> - </profile> - - <profile> - <id>mclib.withsources</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <version>${maven.source.plugin.version}</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>mclib.withjavadoc</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <version>${maven.javadoc.plugin.version}</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>mclib.withcoverage</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.plugin.version}</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - <reporting><plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.plugin.version}</version> - <reportSets> - <reportSet> - <reports> - <report>report</report> - </reports> - </reportSet> - </reportSets> - </plugin> - </plugins></reporting> - </profile> - </profiles> - </project> \ No newline at end of file diff --git a/LIBv2/maxMcVersion.txt b/LIBv2/maxMcVersion.txt new file mode 100644 index 00000000..0c9cb695 --- /dev/null +++ b/LIBv2/maxMcVersion.txt @@ -0,0 +1 @@ +1.11.2 \ No newline at end of file diff --git a/LIBv2/minMcVersion.txt b/LIBv2/minMcVersion.txt new file mode 100644 index 00000000..46843749 --- /dev/null +++ b/LIBv2/minMcVersion.txt @@ -0,0 +1 @@ +1.8 \ No newline at end of file diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index 3ddaca81..c6e989bf 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -1,87 +1,26 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>de.minigameslib.mglib</groupId> <artifactId>MinigamesPlugin</artifactId> - <version>2.0.0-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesAPI</name> <description>Rich Minigames API V2</description> - - <properties> - <maven.source.plugin.version>3.0.0</maven.source.plugin.version> - <maven.javadoc.plugin.version>2.10.3</maven.javadoc.plugin.version> - <jacoco.plugin.version>0.7.6.201602180812</jacoco.plugin.version> - <maven.jxr.plugin.version>2.1</maven.jxr.plugin.version> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>1.8</maven.compiler.source> - <maven.compiler.target>1.8</maven.compiler.target> - <java.version>1.8</java.version> - </properties> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>spigot-1.11.2-R0.1-api-bom</artifactId> - <version>0.0.1-SNAPSHOT</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> + + <parent> + <groupId>de.minigameslib.mglib</groupId> + <artifactId>Minigames-Parent</artifactId> + <version>2.0.0-SNAPSHOT</version> + </parent> <dependencies> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib-api</artifactId> - <version>0.0.1-SNAPSHOT</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib</artifactId> - <version>0.0.1-SNAPSHOT</version> - <scope>runtime</scope> - </dependency> <dependency> <groupId>de.minigameslib.mglib</groupId> <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> + <scope>compile</scope> </dependency> - - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot-api</artifactId> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> </dependencies> <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -105,133 +44,5 @@ </plugin> </plugins> </build> - - <profiles> - <profile> - <id>mclib.withjavadocreport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - </plugin> - </plugins></reporting> - </profile> - <profile> - <id>mclib.withtestreport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> - </plugins></reporting> - </profile> - <profile> - <id>mclib.withsourcereport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jxr-plugin</artifactId> - <version>${maven.jxr.plugin.version}</version> - </plugin> - </plugins></reporting> - </profile> - - <profile> - <id>mclib.withsources</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <version>${maven.source.plugin.version}</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>mclib.withjavadoc</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <version>${maven.javadoc.plugin.version}</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>mclib.withcoverage</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.plugin.version}</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - <reporting><plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.plugin.version}</version> - <reportSets> - <reportSet> - <reports> - <report>report</report> - </reports> - </reportSet> - </reportSets> - </plugin> - </plugins></reporting> - </profile> - </profiles> </project> \ No newline at end of file diff --git a/PARENTv2/.project b/PARENTv2/.project new file mode 100644 index 00000000..96b2f558 --- /dev/null +++ b/PARENTv2/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MinigamesParent</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/PARENTv2/pom.xml b/PARENTv2/pom.xml new file mode 100644 index 00000000..23dd5e2a --- /dev/null +++ b/PARENTv2/pom.xml @@ -0,0 +1,226 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>de.minigameslib.mglib</groupId> + <artifactId>Minigames-Parent</artifactId> + <version>2.0.0-SNAPSHOT</version> + <packaging>pom</packaging> + <name>MinigamesAPI - parent</name> + <description>Rich Minigames API V2</description> + + <properties> + <maven.source.plugin.version>3.0.0</maven.source.plugin.version> + <maven.javadoc.plugin.version>2.10.3</maven.javadoc.plugin.version> + <jacoco.plugin.version>0.7.6.201602180812</jacoco.plugin.version> + <maven.jxr.plugin.version>2.1</maven.jxr.plugin.version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + <java.version>1.8</java.version> + <latest.spigot.version>1.11.2</latest.spigot.version> + <mclib.version>0.0.1-SNAPSHOT</mclib.version> + <mglib.version>2.0.0-SNAPSHOT</mglib.version> + </properties> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>spigot-${latest.spigot.version}-R0.1-api-bom</artifactId> + <version>${mclib.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib-api</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>de.minigameslib.mglib</groupId> + <artifactId>MinigamesAPI</artifactId> + <version>2.0.0-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>de.minigameslib.mglib</groupId> + <artifactId>MinigamesPlugin</artifactId> + <version>2.0.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.spigotmc</groupId> + <artifactId>spigot-api</artifactId> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-module-junit4</artifactId> + </dependency> + <dependency> + <groupId>org.powermock</groupId> + <artifactId>powermock-api-mockito</artifactId> + </dependency> + </dependencies> + + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <filtering>true</filtering> + </resource> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**/*.properties</include> + </includes> + </resource> + </resources> + </build> + + <profiles> + <profile> + <id>mclib.withjavadocreport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + </plugin> + </plugins></reporting> + </profile> + <profile> + <id>mclib.withtestreport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + </plugins></reporting> + </profile> + <profile> + <id>mclib.withsourcereport</id> + <activation><activeByDefault>true</activeByDefault></activation> + <reporting><plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>${maven.jxr.plugin.version}</version> + </plugin> + </plugins></reporting> + </profile> + + <profile> + <id>mclib.withsources</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> + <version>${maven.source.plugin.version}</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <executions> + <execution> + <id>attach-sources</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>mclib.withjavadoc</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> + <version>${maven.javadoc.plugin.version}</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <executions> + <execution> + <id>attach-javadoc</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>mclib.withcoverage</id> + <activation><activeByDefault>true</activeByDefault></activation> + <build> + <plugins> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco.plugin.version}</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals><goal>prepare-agent</goal></goals> + <configuration> + <propertyName>surefireArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-report</id> + <phase>test</phase> + <goals><goal>report</goal></goals> + <configuration> + <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>${surefireArgLine}</argLine> + </configuration> + </plugin> + </plugins> + </build> + <reporting><plugins> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco.plugin.version}</version> + <reportSets> + <reportSet> + <reports> + <report>report</report> + </reports> + </reportSet> + </reportSets> + </plugin> + </plugins></reporting> + </profile> + </profiles> + +</project> \ No newline at end of file From 00774644077f622c6ecfeebbae20a3e08d893896 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 16 Jan 2017 08:23:52 +0100 Subject: [PATCH 166/266] v2 --- APIv2/.settings/org.eclipse.jdt.ui.prefs | 2 +- .../mce/minigames/api/MglibInterface.java | 36 +- .../mce/minigames/api/MinigameInterface.java | 4 +- .../api/MinigamePluginInterface.java | 2 +- .../arena/ArenaTypeDeclarationInterface.java | 1 + .../api/arena/ArenaTypeProvider.java | 117 ----- .../services/MinigameExtensionInterface.java | 2 +- .../mgapi/api/ExtensionInterface.java | 66 +++ .../mgapi/api/ExtensionProvider.java | 67 +++ .../minigameslib/mgapi}/api/LibState.java | 79 ++-- .../de/minigameslib/mgapi/api/MglibCache.java | 53 +++ .../mgapi/api/MinigameInterface.java | 66 +++ .../mgapi/api/MinigameProvider.java | 67 +++ .../mgapi/api/MinigamesLibInterface.java | 371 +++++++++++++++ .../mgapi/api/arena/ArenaInterface.java} | 87 ++-- .../mgapi}/api/arena/ArenaType.java | 85 ++-- .../mgapi/api/arena/ArenaTypeInterface.java | 52 +++ .../mgapi/api/arena/ArenaTypeProvider.java | 55 +++ LIBv2/.settings/org.eclipse.jdt.ui.prefs | 2 +- LIBv2/pom.xml | 1 + .../github/mce/minigames/impl/BaseImpl.java | 65 ++- .../mce/minigames/impl/CoreMinigame.java | 1 - .../mce/minigames/impl/ExtensionImpl.java | 7 +- .../minigames/impl/MinigamePluginImpl.java | 7 +- .../mce/minigames/impl/MinigamesPlugin.java | 80 ++-- .../mce/minigames/impl/arena/ArenaImpl.java | 12 - .../impl/arena/ArenaTypeBuilderImpl.java | 3 +- .../impl/arena/ArenaTypeDeclarationImpl.java | 2 +- .../impl/cmd/InfoCommandHandler.java | 6 +- .../impl/context/DefaultResolver.java | 10 +- .../mgapi/impl/ExtensionImpl.java | 86 ++++ .../minigameslib/mgapi/impl/MglibConfig.java | 52 +++ .../mgapi/impl/MglibMessages.java | 139 ++++++ .../minigameslib/mgapi/impl/MglibPerms.java | 46 ++ .../minigameslib/mgapi/impl/MinigameImpl.java | 86 ++++ .../mgapi/impl/MinigamesPlugin.java | 440 ++++++++++++++++++ .../mgapi/impl/cmd/InfoCommand.java | 241 ++++++++++ .../mgapi/impl/cmd/InfoExtensionsCommand.java | 107 +++++ .../mgapi/impl/cmd/InfoMinigamesCommand.java | 107 +++++ .../mgapi/impl/cmd/Mg2Command.java | 85 ++++ .../mgapi/impl/tasks/InitTask.java | 83 ++-- LIBv2/src/main/resources/config.yml | 0 LIBv2/src/main/resources/plugin.yml | 5 +- 43 files changed, 2462 insertions(+), 423 deletions(-) delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java rename APIv2/src/main/java/{com/github/mce/minigames => de/minigameslib/mgapi}/api/LibState.java (72%) create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/MglibCache.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java rename APIv2/src/main/java/{com/github/mce/minigames/api/arena/ArenaTypeInterface.java => de/minigameslib/mgapi/api/arena/ArenaInterface.java} (55%) rename APIv2/src/main/java/{com/github/mce/minigames => de/minigameslib/mgapi}/api/arena/ArenaType.java (63%) create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java rename APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java => LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java (57%) delete mode 100644 LIBv2/src/main/resources/config.yml diff --git a/APIv2/.settings/org.eclipse.jdt.ui.prefs b/APIv2/.settings/org.eclipse.jdt.ui.prefs index 51307816..2d690b3c 100644 --- a/APIv2/.settings/org.eclipse.jdt.ui.prefs +++ b/APIv2/.settings/org.eclipse.jdt.ui.prefs @@ -64,4 +64,4 @@ org.eclipse.jdt.ui.gettersetter.use.is=true org.eclipse.jdt.ui.javadoc=true org.eclipse.jdt.ui.keywordthis=true org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n Copyright 2016 by minigameslib.de\r\n All rights reserved.\r\n If you do not own a hand-signed commercial license from minigames.de\r\n you are not allowed to use this software in any way except using\r\n GPL (see below).\r\n\r\n------\r\n\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java index 84ee1d6e..6ba2d626 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java @@ -25,8 +25,6 @@ import org.bukkit.plugin.java.JavaPlugin; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.arena.ArenaTypeProvider; import com.github.mce.minigames.api.arena.MatchPhaseId; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.services.ExtensionInterface; @@ -35,14 +33,13 @@ import com.github.mce.minigames.api.team.TeamId; import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.config.ConfigInterface; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.MessagesConfigInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.api.objects.ZoneInterface; import de.minigameslib.mclib.impl.comp.ComponentId; +import de.minigameslib.mgapi.api.LibState; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; /** * Base interface to access the minigames API. @@ -52,33 +49,6 @@ public interface MglibInterface { - // common methods - - /** - * Checks for debug flag. - * - * @return {@code true} if the library debugging is enabled. - */ - boolean debug(); - - /** - * Returns the current library state. - * - * @return library state. - */ - LibState getState(); - - /** - * the first api version, all versions up to first release, includes minecraft versions up to 1.11. - */ - int APIVERSION_1_0_0 = 10000; - - /** - * Returns the api version of MCLIB. - * @return api version. - */ - int getApiVersion(); - // initialization /** diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java index c6daee34..e3cfdccb 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java @@ -19,17 +19,17 @@ import java.util.logging.Logger; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeProvider; import de.minigameslib.mclib.api.config.ConfigInterface; import de.minigameslib.mclib.api.locale.MessagesConfigInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; /** * The plugin to access minigames. * * @author mepeisen */ -public interface MinigameInterface extends ConfigInterface, ArenaTypeProvider +public interface MinigameInterface extends ConfigInterface { // TODO Add support for default main lobby diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java index e00c43e4..4c22bc18 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java @@ -16,11 +16,11 @@ package com.github.mce.minigames.api; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; import de.minigameslib.mclib.api.McContext.ContextHandlerInterface; import de.minigameslib.mclib.api.McContext.ContextResolverInterface; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * The minigame plugin interface; administrational backend for the given minigame. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java index 5c531598..cd76ac93 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java @@ -16,6 +16,7 @@ package com.github.mce.minigames.api.arena; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * Interface for arena type declarations. diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java deleted file mode 100644 index 9dd0feeb..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeProvider.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleId; - -import de.minigameslib.mclib.impl.comp.ComponentId; - -/** - * A base interface for providing arena types. - * - * @author mepeisen - */ -public interface ArenaTypeProvider -{ - -// /** -// * Returns the type of arenas declared for this minigame -// * -// * @return arena types. -// */ -// Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes(); -// -// /** -// * Returns the default arena type. -// * -// * @return default arena type or {@code null} if it was not found. -// */ -// ArenaTypeDeclarationInterface getDefaultType(); -// -// /** -// * Returns the arena type with given name. -// * -// * @param name -// * arena type name. -// * @return arena type or {@code null} if it was not found. -// */ -// ArenaTypeDeclarationInterface getType(String name); -// -// /** -// * Returns the ids of declared administration rules. -// * -// * @return arena rules. -// */ -// Iterable<AdminRuleId> getAdminRules(); -// -// /** -// * Returns the ids of declared match rules. -// * -// * @return match rules. -// */ -// Iterable<MatchRuleId> getMatchRules(); -// -// /** -// * Returns the ids of declared player rules. -// * -// * @return player rules. -// */ -// Iterable<PlayerRuleId> getPlayerRules(); -// -// /** -// * Returns the ids of declared team rules. -// * -// * @return team rules. -// */ -// Iterable<TeamRuleId> getTeamRules(); -// -// /** -// * Returns the ids of declared component rules. -// * -// * @return component rules. -// */ -// Iterable<ComponentRuleId> getComponentRules(); -// -// /** -// * Returns the ids of declared arena rules. -// * -// * @return arena rules. -// */ -// Iterable<ArenaRuleId> getArenaRules(); -// -// /** -// * Returns the ids of declared components. -// * -// * @return components. -// */ -// Iterable<ComponentId> getComponents(); -// -// /** -// * Returns the ids of declared phases. -// * -// * @return phases. -// */ -// Iterable<MatchPhaseId> getMatchPhases(); -// -// /** -// * Returns the ids of teams. -// * -// * @return teams. -// */ -// Iterable<TeamId> getTeams(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java index 8852241e..735d345b 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java +++ b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java @@ -17,9 +17,9 @@ import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * A special extension for the minigames library. diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java new file mode 100644 index 00000000..08ba86da --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java @@ -0,0 +1,66 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * @author mepeisen + * + */ +public interface ExtensionInterface +{ + + /** + * returns the extensions internal/ technical name. + * @return extension name. + */ + String getName(); + + /** + * Returns a display name for the extension. + * @return extension display name. + */ + LocalizedMessageInterface getDisplayName(); + + /** + * Returns a short single-line description of the extension + * @return short single-line description + */ + LocalizedMessageInterface getShortDescription(); + + /** + * Returns a multi-line description of the extension + * @return multi-line description + */ + LocalizedMessageInterface getDescription(); + + /** + * Returns a how-to-play manual + * @return how-to-play manual + */ + LocalizedMessageInterface getManual(); + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java new file mode 100644 index 00000000..1acf5417 --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * A proider to describe an extension. + * + * @author mepeisen + */ +public interface ExtensionProvider +{ + + /** + * returns the extensions internal/ technical name. + * @return extension name. + */ + String getName(); + + /** + * Returns a display name for the extension. + * @return extension display name. + */ + LocalizedMessageInterface getDisplayName(); + + /** + * Returns a short single-line description of the extension + * @return short single-line description + */ + LocalizedMessageInterface getShortDescription(); + + /** + * Returns a multi-line description of the extension + * @return multi-line description + */ + LocalizedMessageInterface getDescription(); + + /** + * Returns a how-to-play manual + * @return how-to-play manual + */ + LocalizedMessageInterface getManual(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/LibState.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/LibState.java similarity index 72% rename from APIv2/src/main/java/com/github/mce/minigames/api/LibState.java rename to APIv2/src/main/java/de/minigameslib/mgapi/api/LibState.java index af377b39..71a38001 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/LibState.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/LibState.java @@ -1,35 +1,44 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -/** - * State of the library. - * - * @author mepeisen - */ -public enum LibState -{ - - /** Library is initializing. */ - Initializing, - /** Library is running. */ - Running, - /** Library is terminating. */ - Terminating, - /** Library is sleeping/ inactive. */ - Sleeping - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +/** + * Enumeration of possible library states. + * + * @author mepeisen + */ +public enum LibState +{ + + /** Library is initializing. */ + Initializing, + /** Library is running. */ + Running, + /** Library is terminating. */ + Terminating, + /** Library is sleeping/ inactive. */ + Sleeping + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MglibCache.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MglibCache.java new file mode 100644 index 00000000..68cd71e4 --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MglibCache.java @@ -0,0 +1,53 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import org.bukkit.Bukkit; + +/** + * Helper to cache the minigames library class. + * + * @author mepeisen + */ +class MglibCache +{ + + /** the minigames library. */ + private static MinigamesLibInterface SERVICES; + + /** + * Returns the minigames library instance. + * @return minigames library. + */ + static MinigamesLibInterface get() + { + if (SERVICES == null) + { + SERVICES = Bukkit.getServicesManager().load(MinigamesLibInterface.class); + } + return SERVICES; + } + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java new file mode 100644 index 00000000..e8f44e93 --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java @@ -0,0 +1,66 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * @author mepeisen + * + */ +public interface MinigameInterface +{ + + /** + * returns the minigames internal/ technical name. + * @return minigame name. + */ + String getName(); + + /** + * Returns a display name for the minigame. + * @return minigame display name. + */ + LocalizedMessageInterface getDisplayName(); + + /** + * Returns a short single-line description of the minigame + * @return short single-line description + */ + LocalizedMessageInterface getShortDescription(); + + /** + * Returns a multi-line description of the minigame + * @return multi-line description + */ + LocalizedMessageInterface getDescription(); + + /** + * Returns a how-to-play manual + * @return how-to-play manual + */ + LocalizedMessageInterface getManual(); + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java new file mode 100644 index 00000000..44d0f87b --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * A proider to describe a minigame. + * + * @author mepeisen + */ +public interface MinigameProvider +{ + + /** + * returns the minigames internal/ technical name. + * @return minigame name. + */ + String getName(); + + /** + * Returns a display name for the minigame. + * @return minigame display name. + */ + LocalizedMessageInterface getDisplayName(); + + /** + * Returns a short single-line description of the minigame + * @return short single-line description + */ + LocalizedMessageInterface getShortDescription(); + + /** + * Returns a multi-line description of the minigame + * @return multi-line description + */ + LocalizedMessageInterface getDescription(); + + /** + * Returns a how-to-play manual + * @return how-to-play manual + */ + LocalizedMessageInterface getManual(); + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java new file mode 100644 index 00000000..cdfa859b --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -0,0 +1,371 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import java.util.Collection; + +import org.bukkit.plugin.Plugin; + +import com.github.mce.minigames.api.arena.ArenaInterface; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; + +/** + * Base interface to access the minigames API. + * + * @author mepeisen + */ +public interface MinigamesLibInterface +{ + + // common methods + + /** + * Returns the library instance. + * + * @return library instance. + */ + static MinigamesLibInterface instance() + { + return MglibCache.get(); + } + + /** + * Checks for debug flag. + * + * @return {@code true} if the library debugging is enabled. + */ + boolean debug(); + + /** + * Returns the current library state. + * + * @return library state. + */ + LibState getState(); + + /** + * the first api version, all versions up to first release, includes minecraft versions up to 1.11. + */ + int APIVERSION_1_0_0 = 10000; + + /** + * Returns the api version of MCLIB. + * + * @return api version. + */ + int getApiVersion(); + + // initialization + + /** + * Initializes the given minigame. + * + * <p> + * This method must be invoked in onEnable of the minigame plugin. Invoke after all enumerations are registered. Each plugin is only allowed to register one minigame. + * </p> + * + * @param plugin + * the owning plugin object + * @param provider + * a provider describing the minigame. + * @throws McException + * thrown if library is in wrong state + */ + void initMinigame(Plugin plugin, MinigameProvider provider) throws McException; + + /** + * Returns the number of registered minigames. + * + * @return number of registered minigames + */ + int getMinigameCount(); + + /** + * Returns the number of registered minigames. + * + * @param prefix + * the prefix for the minigames (filter) + * @return number of registered minigames + */ + int getMinigameCount(String prefix); + + /** + * Returns the minigames + * + * @param index + * starting index + * @param limit + * maximum amount of minigames to return + * @return the minigames + */ + Collection<MinigameInterface> getMinigames(int index, int limit); + + /** + * Returns the minigames + * + * @param prefix + * the prefix for the minigames (filter) + * @param index + * starting index + * @param limit + * maximum amount of minigames to return + * @return the minigames + */ + Collection<MinigameInterface> getMinigames(String prefix, int index, int limit); + + /** + * Returns minigame for given internal name. + * + * @param name + * @return {@code null} if minigame was not found + */ + MinigameInterface getMinigame(String name); + + /** + * Initializes the given extension. + * + * <p> + * This method must be invoked in onEnable of the extension plugin. Invoke after all enumerations are registered. Each plugin is only allowed to register one extension. + * </p> + * + * @param plugin + * the owning plugin object + * @param provider + * a provider describing the extension. + * @throws McException + * thrown if library is in wrong state + */ + void initExtension(Plugin plugin, ExtensionProvider provider) throws McException; + + /** + * Returns the number of registered extensions. + * + * @return number of registered extensions + */ + int getExtensionCount(); + + /** + * Returns the number of registered extensions. + * + * @param prefix + * the prefix for the extensions (filter) + * @return number of registered extensions + */ + int getExtensionCount(String prefix); + + /** + * Returns the extensions + * + * @param index + * starting index + * @param limit + * maximum amount of extensions to return + * @return the extensions + */ + Collection<ExtensionInterface> getExtensions(int index, int limit); + + /** + * Returns the extensions + * + * @param prefix + * the prefix for the extensions (filter) + * @param index + * starting index + * @param limit + * maximum amount of extensions to return + * @return the extensions + */ + Collection<ExtensionInterface> getExtensions(String prefix, int index, int limit); + + /** + * Returns extension for given internal name. + * + * @param name + * @return {@code null} if extension was not found + */ + ExtensionInterface getExtension(String name); + + // Arenas + + /** + * Returns the number of registered arenas + * + * @return number of arenas + */ + int getArenaCount(); + + /** + * Returns the number of registered arenas + * + * @param prefix + * name prefix filter + * @return number of arenas + */ + int getArenaCount(String prefix); + + /** + * Returns the number of registered arenas + * + * @param plugin + * plugin filter + * @return number of arenas + */ + int getArenaCount(Plugin plugin); + + /** + * Returns the number of registered arenas + * + * @param plugin + * plugin filter + * @param prefix + * name prefix filter + * @return number of arenas + */ + int getArenaCount(Plugin plugin, String prefix); + + /** + * Returns the number of registered arenas + * + * @param type + * arena type filter + * @return number of arenas + */ + int getArenaCount(ArenaTypeInterface type); + + /** + * Returns the number of registered arenas + * + * @param type + * arena type filter + * @param prefix + * name prefix filter + * @return number of arenas + */ + int getArenaCount(ArenaTypeInterface type, String prefix); + + /** + * Returns the arenas + * + * @param index + * starting index + * @param limit + * maximum amount of arenas to return + * @return the arenas + */ + Collection<ArenaInterface> getArenas(int index, int limit); + + /** + * Returns the arenas + * + * @param prefix + * name prefix filter + * @param index + * starting index + * @param limit + * maximum amount of arenas to return + * @return the arenas + */ + Collection<ArenaInterface> getArenas(String prefix, int index, int limit); + + /** + * Returns the arenas + * + * @param plugin + * plugin filter + * @param index + * starting index + * @param limit + * maximum amount of arenas to return + * @return the arenas + */ + Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit); + + /** + * Returns the arenas + * + * @param plugin + * plugin filter + * @param prefix + * name prefix filter + * @param index + * starting index + * @param limit + * maximum amount of arenas to return + * @return the arenas + */ + Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit); + + /** + * Returns the arenas + * + * @param type + * arena type filter + * @param index + * starting index + * @param limit + * maximum amount of arenas to return + * @return the arenas + */ + Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit); + + /** + * Returns the arenas + * + * @param type + * arena type filter + * @param prefix + * name prefix filter + * @param index + * starting index + * @param limit + * maximum amount of arenas to return + * @return the arenas + */ + Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit); + + /** + * Returns the arena for given name + * + * @param name + * @return arena or {@code null} if the arena was not found + */ + ArenaInterface getArena(String name); + + /** + * Creates a new arena + * + * @param name + * arena name + * @param type + * arena type + * @return the arena interface + * @throws McException + * thrown if there are problems creating the arena. + */ + ArenaInterface create(String name, ArenaTypeInterface type) throws McException; + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java similarity index 55% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java rename to APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 81c79883..f2199549 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -1,38 +1,49 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import com.github.mce.minigames.api.MglibInterface; - -/** - * An interface for enumerations that represent arena types. - * - * @author mepeisen - */ -public interface ArenaTypeInterface -{ - - /** - * Returns the declaring provider. - * - * @return provider. - */ - default ArenaTypeProvider getProvider() - { - return MglibInterface.INSTANCE.get().getProviderFromArenaType(this); - } - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +/** + * Basic interface for arenas. + * + * @author mepeisen + */ +public interface ArenaInterface +{ + + /** + * Returns the arena name. + * + * @return internal arena name + */ + String getName(); + + /** + * Returns the arena type. + * + * @return arena type. + */ + ArenaTypeInterface getType(); + +} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java similarity index 63% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java rename to APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java index 9d7d26b5..73c31de8 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaType.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java @@ -1,36 +1,49 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * A single arena type. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ArenaType -{ - - // marker only - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Annotation for arena type enumeration value. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface ArenaType +{ + + /** + * Returns the associated arena type provider to control the given arena type. + * @return arena type provider + */ + Class<? extends ArenaTypeProvider> value(); + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java new file mode 100644 index 00000000..6382588d --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java @@ -0,0 +1,52 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +/** + * Interface implemented by enumerations for building arena types. + * + * @author mepeisen + */ +public interface ArenaTypeInterface +{ + + /** + * Returns the arena type provider for this type. + * @return arena type provider class + */ + default Class<? extends ArenaTypeProvider> getProvider() + { + try + { + final ArenaType type = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(ArenaType.class); + return type.value(); + } + catch (NoSuchFieldException ex) + { + throw new IllegalStateException(ex); + } + } + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java new file mode 100644 index 00000000..82c7661a --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java @@ -0,0 +1,55 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * An interface for arena types. + * + * @author mepeisen + */ +public interface ArenaTypeProvider +{ + + /** + * Returns a display name for the minigame. + * @return minigame display name. + */ + LocalizedMessageInterface getDisplayName(); + + /** + * Returns a short single-line description of the minigame + * @return short single-line description + */ + LocalizedMessageInterface getShortDescription(); + + /** + * Returns a multi-line description of the minigame + * @return multi-line description + */ + LocalizedMessageInterface getDescription(); + +} diff --git a/LIBv2/.settings/org.eclipse.jdt.ui.prefs b/LIBv2/.settings/org.eclipse.jdt.ui.prefs index 51307816..2d690b3c 100644 --- a/LIBv2/.settings/org.eclipse.jdt.ui.prefs +++ b/LIBv2/.settings/org.eclipse.jdt.ui.prefs @@ -64,4 +64,4 @@ org.eclipse.jdt.ui.gettersetter.use.is=true org.eclipse.jdt.ui.javadoc=true org.eclipse.jdt.ui.keywordthis=true org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n Copyright 2016 by minigameslib.de\r\n All rights reserved.\r\n If you do not own a hand-signed commercial license from minigames.de\r\n you are not allowed to use this software in any way except using\r\n GPL (see below).\r\n\r\n------\r\n\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/LIBv2/pom.xml b/LIBv2/pom.xml index c6e989bf..25d9c907 100644 --- a/LIBv2/pom.xml +++ b/LIBv2/pom.xml @@ -38,6 +38,7 @@ <include>de.minigameslib.mglib:*</include> </includes> </artifactSet> + <createSourcesJar>true</createSourcesJar> </configuration> </execution> </executions> diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java index af24ca8a..348a79ab 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java @@ -15,52 +15,19 @@ package com.github.mce.minigames.impl; -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.bukkit.Color; import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; -import com.github.mce.minigames.api.RuleId; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.ArenaTypeProvider; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleId; import com.github.mce.minigames.impl.msg.MessagesConfig; -import de.minigameslib.mclib.api.config.ConfigInterface; -import de.minigameslib.mclib.api.config.ConfigurationBool; -import de.minigameslib.mclib.api.config.ConfigurationBoolList; -import de.minigameslib.mclib.api.config.ConfigurationByte; -import de.minigameslib.mclib.api.config.ConfigurationByteList; -import de.minigameslib.mclib.api.config.ConfigurationCharacter; -import de.minigameslib.mclib.api.config.ConfigurationCharacterList; -import de.minigameslib.mclib.api.config.ConfigurationColor; -import de.minigameslib.mclib.api.config.ConfigurationDouble; -import de.minigameslib.mclib.api.config.ConfigurationDoubleList; -import de.minigameslib.mclib.api.config.ConfigurationFloat; -import de.minigameslib.mclib.api.config.ConfigurationFloatList; -import de.minigameslib.mclib.api.config.ConfigurationInt; -import de.minigameslib.mclib.api.config.ConfigurationIntList; -import de.minigameslib.mclib.api.config.ConfigurationLong; -import de.minigameslib.mclib.api.config.ConfigurationLongList; -import de.minigameslib.mclib.api.config.ConfigurationShort; -import de.minigameslib.mclib.api.config.ConfigurationShortList; -import de.minigameslib.mclib.api.config.ConfigurationString; -import de.minigameslib.mclib.api.config.ConfigurationStringList; import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.MessagesConfigInterface; -import de.minigameslib.mclib.impl.comp.ComponentId; +import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; /** * Basic support for extensions and minigames. @@ -117,6 +84,36 @@ public MessagesConfigInterface getMessages() { return this.messages; } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaTypeProvider#getDisplayName() + */ + @Override + public LocalizedMessageInterface getDisplayName() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaTypeProvider#getShortDescription() + */ + @Override + public LocalizedMessageInterface getShortDescription() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaTypeProvider#getDescription() + */ + @Override + public LocalizedMessageInterface getDescription() + { + // TODO Auto-generated method stub + return null; + } // @Override // public FileConfiguration getConfig(String file) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java index 3fd76634..3f234dc2 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java @@ -25,7 +25,6 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.PluginProviderInterface; import com.github.mce.minigames.api.config.CommonConfig; import com.github.mce.minigames.api.perms.CommonPermissions; diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java index 86bc9b68..a452642f 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java @@ -18,11 +18,12 @@ import java.io.Serializable; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.api.services.MinigameExtensionInterface; import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * @@ -59,9 +60,9 @@ public String getName() } @Override - public Serializable getShortDescription() + public LocalizedMessageInterface getShortDescription() { - return this.description; + return null; } /* (non-Javadoc) diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java index 6493bf53..86732d28 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java @@ -28,7 +28,6 @@ import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.impl.arena.ArenaImpl; import com.github.mce.minigames.impl.arena.ArenaTypeBuilderImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; @@ -36,7 +35,9 @@ import de.minigameslib.mclib.api.McContext.ContextHandlerInterface; import de.minigameslib.mclib.api.McContext.ContextResolverInterface; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * The minigames plugin impl. @@ -225,9 +226,9 @@ public void registerContextResolver(ContextResolverInterface resolver) throws Mc } @Override - public Serializable getShortDescription() + public LocalizedMessageInterface getShortDescription() { - return this.shortDescription; + return null; } @Override diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java index d2343055..68e2cfa4 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.TreeMap; import java.util.UUID; -import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -37,7 +36,6 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.CommonProviderInterface; -import com.github.mce.minigames.api.LibState; import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinecraftVersionsType; import com.github.mce.minigames.api.MinigameInterface; @@ -45,9 +43,6 @@ import com.github.mce.minigames.api.PluginProviderInterface; import com.github.mce.minigames.api.RuleId; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.arena.ArenaTypeProvider; import com.github.mce.minigames.api.arena.MatchPhaseId; import com.github.mce.minigames.api.player.ArenaPlayerInterface; import com.github.mce.minigames.api.services.ExtensionInterface; @@ -69,6 +64,9 @@ import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.api.objects.ZoneInterface; import de.minigameslib.mclib.impl.comp.ComponentId; +import de.minigameslib.mgapi.api.LibState; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; /** * A plugin for minigames. @@ -146,30 +144,30 @@ public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Liste public MinigamesPlugin() { // registers the core minigame. - try - { - final MinigamePluginInterface mg2 = this.register(new CoreMinigame(this)); - - // context provider -// mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); -// mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); -// mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); -// ArenaPlayerImpl.registerProvider(mg2); -// -// // resolver -// mg2.registerContextResolver(new DefaultResolver()); -// -// mg2.init(); +// try +// { +// final MinigamePluginInterface mg2 = this.register(new CoreMinigame(this)); // -// this.getLogger().log(Level.INFO, "MinigamesLib2 finihes initialization. Minecraft version: " + this.getMinecraftVersion()); //$NON-NLS-1$ - } - catch (McException ex) - { - // log it, although this should never happen - // because in constructor we neither are in wrong state - // nor do we already know the 'core' minigame - this.getLogger().log(Level.SEVERE, "Error registering core minigame", ex); //$NON-NLS-1$ - } +// // context provider +//// mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); +//// mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); +//// mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); +//// ArenaPlayerImpl.registerProvider(mg2); +//// +//// // resolver +//// mg2.registerContextResolver(new DefaultResolver()); +//// +//// mg2.init(); +//// +//// this.getLogger().log(Level.INFO, "MinigamesLib2 finihes initialization. Minecraft version: " + this.getMinecraftVersion()); //$NON-NLS-1$ +// } +// catch (McException ex) +// { +// // log it, although this should never happen +// // because in constructor we neither are in wrong state +// // nor do we already know the 'core' minigame +// this.getLogger().log(Level.SEVERE, "Error registering core minigame", ex); //$NON-NLS-1$ +// } // this.events = this.nmsFactory == null ? null : this.nmsFactory.create(EventSystemInterface.class); } @@ -379,12 +377,6 @@ public List<String> onTabComplete(CommandSender sender, Command command, String // api methods - @Override - public LibState getState() - { - return this.state; - } - @Override public MinigamePluginInterface register(PluginProviderInterface provider) throws McException { @@ -1120,25 +1112,5 @@ public ArenaInterface getArenaFromLocation(Location location) // TODO Auto-generated method stub return null; } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MglibInterface#debug() - */ - @Override - public boolean debug() - { - // TODO Auto-generated method stub - return false; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MglibInterface#getApiVersion() - */ - @Override - public int getApiVersion() - { - // TODO Auto-generated method stub - return 0; - } } diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java index 927471c7..15516ad5 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java @@ -15,26 +15,14 @@ package com.github.mce.minigames.impl.arena; -import java.util.logging.Logger; - -import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaState; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; -import com.github.mce.minigames.api.arena.ArenasConfig; -import com.github.mce.minigames.impl.MinigameWrapper; import com.github.mce.minigames.impl.component.ComponentRegistry; import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; /** * Implementation of arena interface. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java index 6db9b613..93897c51 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java @@ -19,10 +19,11 @@ import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.impl.MinigamePluginImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; + /** * Implementation of an arena type builder. * diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java index 91fa2b2b..9290f55b 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java @@ -20,11 +20,11 @@ import com.github.mce.minigames.api.CommonErrors; import com.github.mce.minigames.api.arena.ArenaInterface; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.arena.ArenaTypeInterface; import com.github.mce.minigames.impl.MinigamePluginImpl; import com.github.mce.minigames.impl.component.ComponentRegistry; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * Internal representation of an arena type. diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java index b77a3365..fbae7626 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java @@ -61,9 +61,9 @@ public void handle(CommandInterface command) throws McException command.permThrowException(CommonPermissions.Info, command.getCommandPath()); - final MglibInterface lib = MglibInterface.INSTANCE.get(); - final String mode = ((MinigamesPlugin)lib).getModeString(); - final String debug = lib.debug() ? "TRUE" : "FALSE"; //$NON-NLS-1$ //$NON-NLS-2$ +// final MglibInterface lib = MglibInterface.INSTANCE.get(); +// final String mode = ((MinigamesPlugin)lib).getModeString(); +// final String debug = lib.debug() ? "TRUE" : "FALSE"; //$NON-NLS-1$ //$NON-NLS-2$ // command.send(CommonMessages.InfoCommandOutput, // command.getCommandPath(), // lib.getMinecraftVersion().name(), diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java index b0109832..f89413d9 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java @@ -202,11 +202,11 @@ private String resolveVar(Object object, String path) } catch (Exception ex) { - final MglibInterface lib = MglibInterface.INSTANCE.get(); - if (lib.debug()) - { -// lib.getLogger().log(Level.FINE, "Problems invoking " + getterName + " on " + cur, ex); //$NON-NLS-1$ //$NON-NLS-2$ - } +// final MglibInterface lib = MglibInterface.INSTANCE.get(); +// if (lib.debug()) +// { +//// lib.getLogger().log(Level.FINE, "Problems invoking " + getterName + " on " + cur, ex); //$NON-NLS-1$ //$NON-NLS-2$ +// } cur = null; } i++; diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java new file mode 100644 index 00000000..82d36302 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java @@ -0,0 +1,86 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import org.bukkit.plugin.Plugin; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.ExtensionInterface; +import de.minigameslib.mgapi.api.ExtensionProvider; + +/** + * @author mepeisen + * + */ +class ExtensionImpl implements ExtensionInterface +{ + + /** owning plugin. */ + private final Plugin plugin; + + /** extension provider. */ + private final ExtensionProvider provider; + + /** + * @param plugin + * @param provider + */ + public ExtensionImpl(Plugin plugin, ExtensionProvider provider) + { + this.plugin = plugin; + this.provider = provider; + } + + @Override + public String getName() + { + return this.provider.getName(); + } + + @Override + public LocalizedMessageInterface getDisplayName() + { + return this.provider.getDisplayName(); + } + + @Override + public LocalizedMessageInterface getShortDescription() + { + return this.provider.getShortDescription(); + } + + @Override + public LocalizedMessageInterface getDescription() + { + return this.provider.getDescription(); + } + + @Override + public LocalizedMessageInterface getManual() + { + return this.provider.getManual(); + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java new file mode 100644 index 00000000..16f6f54c --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java @@ -0,0 +1,52 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import de.minigameslib.mclib.api.config.ConfigComment; +import de.minigameslib.mclib.api.config.ConfigurationBool; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; + +/** + * Common configuration + * + * @author mepeisen + */ +@ConfigurationValues(path = "core") +public enum MglibConfig implements ConfigurationValueInterface +{ + + /** + * Debug flag. + */ + @ConfigurationBool(defaultValue = false) + @ConfigComment({ + "Set this to true to enable some debugging output within minigames.", + "This can be useful to find problems and errors.", + "But be aware that debugging slows down the system." + }) + Debug, + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java new file mode 100644 index 00000000..83cdecd1 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -0,0 +1,139 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import de.minigameslib.mclib.api.enums.ChildEnum; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.impl.cmd.InfoCommand; +import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; + +/** + * The common messages. + * + * @author mepeisen + */ +@LocalizedMessages(value = "core") +@ChildEnum({ + Mg2Command.Messages.class, + InfoCommand.Messages.class, + InfoMinigamesCommand.Messages.class +}) +public enum MglibMessages implements LocalizedMessageInterface +{ + + /** + * Library is in wrong state; operation cannot proceed. + */ + @LocalizedMessage(defaultMessage = "Library in wrong state.") + @MessageComment({"Library is in wrong state; operation cannot proceed."}) + LibInWrongState, + + /** + * Plugin tries to register multiple minigames + */ + @LocalizedMessage(defaultMessage = "Plugin %1$s already registered a minigame") + @MessageComment( + value = {"Plugin tries to register multiple minigames"}, + args = {@Argument("Plugin name")}) + PluginMinigameDuplicate, + + /** + * Minigame with given name is already registered + */ + @LocalizedMessage(defaultMessage = "Minigame %1$s already registered") + @MessageComment( + value = {"Minigame with given name is already registered"}, + args = {@Argument("Minigame name")}) + MinigameAlreadyRegistered, + + /** + * Plugin tries to register multiple extensions + */ + @LocalizedMessage(defaultMessage = "Plugin %1$s already registered an extension") + @MessageComment( + value = {"Plugin tries to register multiple extensions"}, + args = {@Argument("Plugin name")}) + PluginExtensionDuplicate, + + /** + * Extension with given name is already registered + */ + @LocalizedMessage(defaultMessage = "Extension %1$s already registered") + @MessageComment( + value = {"Extension with given name is already registered"}, + args = {@Argument("Extension name")}) + ExtensionAlreadyRegistered, + + /** Library is initializing. */ + @LocalizedMessage(defaultMessage = "INIT", severity = MessageSeverityType.Error) + @MessageComment({"Library is initializing."}) + StateInitializing, + + /** Library is running. */ + @LocalizedMessage(defaultMessage = "RUNNING", severity = MessageSeverityType.Success) + @MessageComment({"Library is running."}) + StateRunning, + + /** Library is terminating. */ + @LocalizedMessage(defaultMessage = "TERMINATING", severity = MessageSeverityType.Error) + @MessageComment({"Library is terminating."}) + StateTerminating, + + /** Library is sleeping/ inactive. */ + @LocalizedMessage(defaultMessage = "SLEEPING", severity = MessageSeverityType.Error) + @MessageComment({"Library is sleeping."}) + StateSleeping, + + /** true flag */ + @LocalizedMessage(defaultMessage = "✓", severity = MessageSeverityType.Success) + @MessageComment({"true flag"}) + FlagTrue, + + /** false flag */ + @LocalizedMessage(defaultMessage = "✗", severity = MessageSeverityType.Error) + @MessageComment({"false flag"}) + FlagFalse, + + /** + * Standard plugin version + */ + @LocalizedMessage(defaultMessage = "default") + @MessageComment({"Standard plugin version"}) + ModeStandard, + + /** + * Premium plugin vrsion + */ + @LocalizedMessage(defaultMessage = "premium") + @MessageComment({"Premium plugin version"}) + ModePremium, + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java new file mode 100644 index 00000000..354de453 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java @@ -0,0 +1,46 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import de.minigameslib.mclib.api.perms.Permission; +import de.minigameslib.mclib.api.perms.Permissions; +import de.minigameslib.mclib.api.perms.PermissionsInterface; + +/** + * Permissions for minigames library + * + * @author mepeisen + */ +@Permissions("mg2") +public enum MglibPerms implements PermissionsInterface +{ + + /** + * Permission for info comment. + */ + @Permission("command.info") + CommandInfo + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java new file mode 100644 index 00000000..ab089eed --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java @@ -0,0 +1,86 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import org.bukkit.plugin.Plugin; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigameProvider; + +/** + * @author mepeisen + * + */ +class MinigameImpl implements MinigameInterface +{ + + /** owning plugin. */ + private final Plugin plugin; + + /** minigame provider. */ + private final MinigameProvider provider; + + /** + * @param plugin + * @param provider + */ + public MinigameImpl(Plugin plugin, MinigameProvider provider) + { + this.plugin = plugin; + this.provider = provider; + } + + @Override + public String getName() + { + return this.provider.getName(); + } + + @Override + public LocalizedMessageInterface getDisplayName() + { + return this.provider.getDisplayName(); + } + + @Override + public LocalizedMessageInterface getShortDescription() + { + return this.provider.getShortDescription(); + } + + @Override + public LocalizedMessageInterface getDescription() + { + return this.provider.getDescription(); + } + + @Override + public LocalizedMessageInterface getManual() + { + return this.provider.getManual(); + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java new file mode 100644 index 00000000..42b94a87 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -0,0 +1,440 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.stream.Collectors; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.ServicePriority; +import org.bukkit.plugin.java.JavaPlugin; + +import com.github.mce.minigames.api.arena.ArenaInterface; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.cmd.CommandImpl; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.ExtensionInterface; +import de.minigameslib.mgapi.api.ExtensionProvider; +import de.minigameslib.mgapi.api.LibState; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigameProvider; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.tasks.InitTask; + +/** + * Implementation of minigames plugin + * + * @author mepeisen + */ +public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface +{ + + /** + * the current library state. + */ + private LibState state = LibState.Initializing; + + /** + * the registered minigames per plugin + */ + private Map<String, MinigameImpl> minigamesPerPlugin = new HashMap<>(); + + /** + * the registered minigames per name + */ + private Map<String, MinigameImpl> minigamesPerName = new TreeMap<>(); + + /** + * the registered extensions per plugin + */ + private Map<String, ExtensionImpl> extensionsPerPlugin = new HashMap<>(); + + /** + * the registered extensions per name + */ + private Map<String, ExtensionImpl> extensionsPerName = new TreeMap<>(); + + /** the console commands. */ + private Mg2Command mg2Command = new Mg2Command(); + + @Override + public void onEnable() + { + // TODO check api version + EnumServiceInterface.instance().registerEnumClass(this, MglibConfig.class); + EnumServiceInterface.instance().registerEnumClass(this, MglibMessages.class); + EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); + + Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); + + new InitTask().runTaskLater(this, 10); + } + + @Override + public void onDisable() + { + EnumServiceInterface.instance().unregisterAllEnumerations(this); + } + + @Override + public int getApiVersion() + { + return APIVERSION_1_0_0; + } + + @Override + public boolean debug() + { + return MglibConfig.Debug.getBoolean(); + } + + @Override + public LibState getState() + { + return this.state; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) + { + switch (command.getName()) + { + case "mg2": //$NON-NLS-1$ + final CommandImpl cmd = new CommandImpl(sender, command, label, args, "/mg2"); //$NON-NLS-1$ + try + { + McLibInterface.instance().runInNewContext(null, cmd, cmd.getPlayer(), null, null, () -> { + this.mg2Command.handle(cmd); + }); + } + catch (McException e) + { + cmd.send(e.getErrorMessage(), e.getArgs()); + } + break; + default: + return false; + } + return true; + } + + @Override + public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) + { + String lastArg = null; + String[] newArgs = null; + if (args.length > 0) + { + lastArg = args[args.length - 1].toLowerCase(); + newArgs = Arrays.copyOf(args, args.length - 1); + } + + switch (command.getName()) + { + case "mg2": //$NON-NLS-1$ + final CommandImpl cmd = new CommandImpl(sender, command, null, newArgs, "/im"); //$NON-NLS-1$ + final String last = lastArg; + try + { + + return McLibInterface.instance().calculateInNewContext(null, cmd, cmd.getPlayer(), null, null, () -> { + McLibInterface.instance().setContext(McPlayerInterface.class, cmd.getPlayer()); + return this.mg2Command.onTabComplete(cmd, last); + }); + } + catch (McException e) + { + cmd.send(e.getErrorMessage(), e.getArgs()); + } + break; + default: + break; + } + return Collections.emptyList(); + } + + @Override + public void initMinigame(Plugin plugin, MinigameProvider provider) throws McException + { + if (this.state != LibState.Initializing) + { + throw new McException(MglibMessages.LibInWrongState); + } + if (this.minigamesPerPlugin.containsKey(plugin.getName())) + { + throw new McException(MglibMessages.PluginMinigameDuplicate, plugin.getName()); + } + if (this.minigamesPerName.containsKey(provider.getName())) + { + throw new McException(MglibMessages.MinigameAlreadyRegistered, provider.getName()); + } + final MinigameImpl minigame = new MinigameImpl(plugin, provider); + this.minigamesPerPlugin.put(plugin.getName(), minigame); + this.minigamesPerName.put(minigame.getName(), minigame); + } + + @Override + public int getMinigameCount() + { + return this.minigamesPerName.size(); + } + + @Override + public int getMinigameCount(String prefix) + { + return (int) this.minigamesPerName.keySet().stream().filter(p -> p.startsWith(prefix)).count(); + } + + @Override + public Collection<MinigameInterface> getMinigames(int index, int limit) + { + return this.minigamesPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); + } + + @Override + public Collection<MinigameInterface> getMinigames(String prefix, int index, int limit) + { + return this.minigamesPerName.values().stream().filter(p -> p.getName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + } + + @Override + public void initExtension(Plugin plugin, ExtensionProvider provider) throws McException + { + if (this.state != LibState.Initializing) + { + throw new McException(MglibMessages.LibInWrongState); + } + if (this.extensionsPerPlugin.containsKey(plugin.getName())) + { + throw new McException(MglibMessages.PluginExtensionDuplicate, plugin.getName()); + } + if (this.extensionsPerName.containsKey(provider.getName())) + { + throw new McException(MglibMessages.ExtensionAlreadyRegistered, provider.getName()); + } + final ExtensionImpl extension = new ExtensionImpl(plugin, provider); + this.extensionsPerPlugin.put(plugin.getName(), extension); + this.extensionsPerName.put(extension.getName(), extension); + } + + @Override + public int getExtensionCount() + { + return this.extensionsPerName.size(); + } + + @Override + public int getExtensionCount(String prefix) + { + return (int) this.extensionsPerName.keySet().stream().filter(p -> p.startsWith(prefix)).count(); + } + + @Override + public Collection<ExtensionInterface> getExtensions(int index, int limit) + { + return this.extensionsPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); + } + + @Override + public Collection<ExtensionInterface> getExtensions(String prefix, int index, int limit) + { + return this.extensionsPerName.values().stream().filter(p -> p.getName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getMinigame(java.lang.String) + */ + @Override + public MinigameInterface getMinigame(String name) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getExtension(java.lang.String) + */ + @Override + public ExtensionInterface getExtension(String name) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount() + */ + @Override + public int getArenaCount() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(java.lang.String) + */ + @Override + public int getArenaCount(String prefix) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(org.bukkit.plugin.Plugin) + */ + @Override + public int getArenaCount(Plugin plugin) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(org.bukkit.plugin.Plugin, java.lang.String) + */ + @Override + public int getArenaCount(Plugin plugin, String prefix) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(de.minigameslib.mgapi.api.arena.ArenaTypeInterface) + */ + @Override + public int getArenaCount(ArenaTypeInterface type) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(de.minigameslib.mgapi.api.arena.ArenaTypeInterface, java.lang.String) + */ + @Override + public int getArenaCount(ArenaTypeInterface type, String prefix) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(int, int) + */ + @Override + public Collection<ArenaInterface> getArenas(int index, int limit) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(java.lang.String, int, int) + */ + @Override + public Collection<ArenaInterface> getArenas(String prefix, int index, int limit) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(org.bukkit.plugin.Plugin, int, int) + */ + @Override + public Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(org.bukkit.plugin.Plugin, java.lang.String, int, int) + */ + @Override + public Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(de.minigameslib.mgapi.api.arena.ArenaTypeInterface, int, int) + */ + @Override + public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(de.minigameslib.mgapi.api.arena.ArenaTypeInterface, java.lang.String, int, int) + */ + @Override + public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArena(java.lang.String) + */ + @Override + public ArenaInterface getArena(String name) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#create(java.lang.String, de.minigameslib.mgapi.api.arena.ArenaTypeInterface) + */ + @Override + public ArenaInterface create(String name, ArenaTypeInterface type) throws McException + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java new file mode 100644 index 00000000..396ce5be --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java @@ -0,0 +1,241 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import org.bukkit.Bukkit; +import org.bukkit.plugin.Plugin; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mgapi.api.LibState; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.impl.MglibMessages; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Common information on minigames library + * + * @author mepeisen + */ +public class InfoCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface +{ + + /** + * Constructor to add sub commands + */ + public InfoCommand() + { + this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) (this))); //$NON-NLS-1$ + this.subCommands.put("minigames", new InfoMinigamesCommand()); //$NON-NLS-1$ + this.subCommands.put("extensions", new InfoExtensionsCommand()); //$NON-NLS-1$ + // TODO command: "minigame <name>" (detailed info about minigame) + // TODO command: "extension <name>" (detailed info about extension) + } + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || (command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandInfo)); + } + + @Override + public void handle(CommandInterface cmd) throws McException + { + cmd.permOpThrowException(MglibPerms.CommandInfo, cmd.getCommandPath()); + + if (cmd.getArgs().length > 0) + { + // pass to composite + super.handle(cmd); + return; + } + + // no argument, let us display info + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final McLibInterface mclib = McLibInterface.instance(); + + final String minigamesVersion = getPluginVersion("MinigamesLib"); //$NON-NLS-1$ + final String mclibVersion = getPluginVersion("mclib"); //$NON-NLS-1$ + final String bukkitVersion = Bukkit.getBukkitVersion(); + + // TODO get premium flag + final boolean isPremium = false; + final LocalizedMessageInterface mode = isPremium ? MglibMessages.ModePremium : MglibMessages.ModeStandard; + final LocalizedMessageInterface state = toString(mglib.getState()); + + cmd.send(Messages.CommandOutput, + cmd.getCommandPath(), + mclib.getMinecraftVersion().toString(), + minigamesVersion, + mode.toArg(), + mglib.debug() ? MglibMessages.FlagTrue.toArg() : MglibMessages.FlagFalse.toArg(), + mglib.getApiVersion(), + mclib.getApiVersion(), + state.toArg(), + mclibVersion, + bukkitVersion + ); + } + + /** + * Returns the string message for given lib state + * @param state + * @return string message + */ + private LocalizedMessageInterface toString(LibState state) + { + switch (state) + { + default: + case Initializing: + return MglibMessages.StateInitializing; + case Running: + return MglibMessages.StateRunning; + case Sleeping: + return MglibMessages.StateSleeping; + case Terminating: + return MglibMessages.StateTerminating; + } + } + + /** + * Returns plugin version for given plugin. + * @param name + * @return the plugin version. + */ + private String getPluginVersion(String name) + { + final Plugin plugin = Bukkit.getPluginManager().getPlugin(name); + if (plugin == null || plugin.getDescription() == null) return "?"; //$NON-NLS-1$ + return plugin.getDescription().getVersion(); + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface cmd) + { + return Messages.Description; + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface cmd) + { + return Messages.ShortDescription; + } + + @Override + protected void sendUsage(CommandInterface cmd) + { + cmd.send(Messages.Usage); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_info") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 info + */ + @LocalizedMessage(defaultMessage = "Prints common information on minigames library.") + @MessageComment({"Short description of /mg2 info"}) + ShortDescription, + + /** + * Long description of /mg2 info + */ + @LocalizedMessage(defaultMessage = "Prints common information on minigames library.") + @MessageComment({"Long description of /mg2 info"}) + Description, + + /** + * The command output of /mg2 info + * + * <p>Arguments:</p> + * + * <ol> + * <li>String: current command path</li> + * <li>String: spigot version</li> + * <li>String: minigames version</li> + * <li>String: mode</li> + * <li>String: debug</li> + * <li>Number: api version</li> + * <li>Number: mclib api version</li> + * <li>String: minigames lib state</li> + * <li>String: mclib version</li> + * <li>String: bukkit version</li> + * </ol> + */ + @LocalizedMessageList({ + "minigames lib version %3$s (%4$s/%10$s)", + "state: %8$s", + "api version: %6$d", + "mclib version: %7$d (%9$s)", + "running on minecraft %2$s", + "debugging: %5$s", + "----------", + "Run for additional information:", + " " + LocalizedMessage.BLUE + "%1$s extensions " + LocalizedMessage.GRAY + " to list the extensions.", + " " + LocalizedMessage.BLUE + "%1$s minigames " + LocalizedMessage.GRAY + " to list the minigames." + }) + @MessageComment(value = { + "The command output of /mg2 info" + },args = { + @Argument("current command path"), + @Argument("spigot version name"), + @Argument("minigames version"), + @Argument("minigames mode"), + @Argument("debug flag"), + @Argument(value="api version", type="number"), + @Argument(value="mclib api version", type="number"), + @Argument("minigames lib state"), + @Argument("mclib version"), + @Argument("bukkit version"), + }) + CommandOutput, + + /** + * Usage for command /mg2 info + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Enter " + LocalizedMessage.BLUE + "/mg2 info help" + LocalizedMessage.GRAY + " for detailed help") + @MessageComment({"Usage for command /mg2 info"}) + Usage + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java new file mode 100644 index 00000000..0c17e03e --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java @@ -0,0 +1,107 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.api.MinigamesLibInterface; + +/** + * Handle the extensions command info + * @author mepeisen + */ +public class InfoExtensionsCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface +{ + + @Override + protected Serializable getHeader(CommandInterface cmd) + { + return Messages.Header.toArg(); + } + + @Override + protected int getLineCount(CommandInterface cmd) + { + return MinigamesLibInterface.instance().getExtensionCount(); + } + + @Override + protected Serializable[] getLines(CommandInterface cmd, int start, int limit) + { + return MinigamesLibInterface.instance().getExtensions(start, limit).stream() + .map(ext -> ext.getDisplayName().toArg()).toArray(Serializable[]::new); + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface cmd) + { + return Messages.Description; + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface cmd) + { + return Messages.ShortDescription; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_info_extensions") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 info extensions + */ + @LocalizedMessage(defaultMessage = "Prints a list of registered extensions.") + @MessageComment({"Short description of /mg2 info extensions"}) + ShortDescription, + + /** + * Long description of /mg2 info extensions + */ + @LocalizedMessage(defaultMessage = "Prints a list of registered extensions.") + @MessageComment({"Long description of /mg2 info extensions"}) + Description, + + /** + * Paging header text + */ + @LocalizedMessage(defaultMessage = "Extensions") + @MessageComment({"Paging header text"}) + Header, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java new file mode 100644 index 00000000..a941a491 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java @@ -0,0 +1,107 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.api.MinigamesLibInterface; + +/** + * Handle the minigames command info + * @author mepeisen + */ +public class InfoMinigamesCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface +{ + + @Override + protected Serializable getHeader(CommandInterface cmd) + { + return Messages.Header.toArg(); + } + + @Override + protected int getLineCount(CommandInterface cmd) + { + return MinigamesLibInterface.instance().getMinigameCount(); + } + + @Override + protected Serializable[] getLines(CommandInterface cmd, int start, int limit) + { + return MinigamesLibInterface.instance().getMinigames(start, limit).stream() + .map(mg -> mg.getDisplayName().toArg()).toArray(Serializable[]::new); + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface cmd) + { + return Messages.Description; + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface cmd) + { + return Messages.ShortDescription; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_info_minigames") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 info minigames + */ + @LocalizedMessage(defaultMessage = "Prints a list of registered minigames.") + @MessageComment({"Short description of /mg2 info minigames"}) + ShortDescription, + + /** + * Long description of /mg2 info minigames + */ + @LocalizedMessage(defaultMessage = "Prints a list of registered minigames.") + @MessageComment({"Long description of /mg2 info minigames"}) + Description, + + /** + * Paging header text + */ + @LocalizedMessage(defaultMessage = "Minigames") + @MessageComment({"Paging header text"}) + Header, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java new file mode 100644 index 00000000..9734fbc5 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -0,0 +1,85 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; + +/** + * The mg2 main command + * + * @author mepeisen + */ +public class Mg2Command extends AbstractCompositeCommandHandler +{ + + /** + * Constructor to register the sub commands + */ + public Mg2Command() + { + this.subCommands.put("help", new HelpCommandHandler(this)); //$NON-NLS-1$ + + this.subCommands.put("info", new InfoCommand()); //$NON-NLS-1$ + } + + @Override + protected boolean pre(CommandInterface command) throws McException + { + // allowed from everywhere + return true; + } + + @Override + protected void sendUsage(CommandInterface cmd) + { + cmd.send(Messages.Usage); + } + + /** + * The /mg2 messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Usage for command /mg2 + */ + @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Enter " + LocalizedMessage.BLUE + "/mg2 help" + LocalizedMessage.GRAY + " for detailed help") + @MessageComment({"Usage for command /mg2"}) + Usage + + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java similarity index 57% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java rename to LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java index 751694ea..d976e5ea 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/LibStateTest.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java @@ -1,39 +1,44 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import org.junit.Test; - -import com.github.mce.minigames.api.LibState; - -/** - * test case for {@link LibState} - * - * @author mepeisen - */ -public class LibStateTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(LibState.class); - } - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.tasks; + +import org.bukkit.scheduler.BukkitRunnable; + +/** + * Initialization task for minigames. + * + * @author mepeisen + */ +public class InitTask extends BukkitRunnable +{ + + @Override + public void run() + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/resources/config.yml b/LIBv2/src/main/resources/config.yml deleted file mode 100644 index e69de29b..00000000 diff --git a/LIBv2/src/main/resources/plugin.yml b/LIBv2/src/main/resources/plugin.yml index babf64ee..cf96caca 100644 --- a/LIBv2/src/main/resources/plugin.yml +++ b/LIBv2/src/main/resources/plugin.yml @@ -1,8 +1,9 @@ -name: MinigamesLib2 -main: com.github.mce.minigames.impl.MinigamesPlugin +name: MinigamesLib +main: de.minigameslib.mgapi.impl.MinigamesPlugin version: ${minigames.releaseversion}-${minigames.timestamp} author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] softdepend: [Vault] +depend: [mclib] commands: mg2: description: Main command for minigames lib version 2 From f9da5537b2d62ed0601e767d79a78bb3511be813 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 18 Jan 2017 09:57:19 +0100 Subject: [PATCH 167/266] v2 --- .../mevents/MinigameArenaCreateEvent.java | 43 ---- .../mevents/MinigameArenaCreatedEvent.java | 43 ---- .../mevents/MinigameArenaDeleteEvent.java | 43 ---- .../mevents/MinigameArenaDeletedEvent.java | 43 ---- .../MinigameArenaMaintenanceEvent.java | 43 ---- .../mevents/MinigameArenaPlayerJoinEvent.java | 43 ---- .../MinigameArenaPlayerJoinedEvent.java | 43 ---- .../MinigameArenaPlayerJoinedQueueEvent.java | 43 ---- .../MinigameArenaPlayerLeavesQueueEvent.java | 43 ---- .../mevents/MinigameArenaStateEvent.java | 43 ---- .../minigames/api/event/ArenaCreateEvent.java | 84 ------- .../api/event/ArenaCreatedEvent.java | 79 ------ .../minigames/api/event/ArenaDeleteEvent.java | 84 ------- .../api/event/ArenaDeletedEvent.java | 80 ------ .../api/event/ArenaMaintenanceEvent.java | 79 ------ .../api/event/ArenaPlayerJoinEvent.java | 101 -------- .../api/event/ArenaPlayerJoinedEvent.java | 96 -------- .../event/ArenaPlayerJoinedQueueEvent.java | 97 -------- .../event/ArenaPlayerLeavesQueueEvent.java | 97 -------- .../minigames/api/event/ArenaStateEvent.java | 111 --------- .../mgapi/api/ExtensionInterface.java | 10 +- .../mgapi/api/ExtensionProvider.java | 6 - .../mgapi/api/MinigameInterface.java | 8 + .../mgapi/api/MinigamesLibInterface.java | 3 +- .../mgapi/api/arena/ArenaInterface.java | 93 ++++++- .../mgapi/api/arena/ArenaState.java | 77 ++++++ .../mgapi/api/arena/CheckFailure.java | 85 +++++++ .../mgapi/api/arena/CheckSeverity.java} | 94 +++---- .../api/player/ArenaPlayerInterface.java | 142 +++++++++++ .../api/test/arena/ArenaStateTest.java | 3 +- .../api/test/event/AbstractVetoEventTest.java | 106 -------- .../api/test/event/ArenaCreateEventTest.java | 50 ---- .../api/test/event/ArenaCreatedEventTest.java | 48 ---- .../api/test/event/ArenaDeleteEventTest.java | 50 ---- .../api/test/event/ArenaDeletedEventTest.java | 48 ---- .../test/event/ArenaMaintenanceEventTest.java | 48 ---- .../test/event/ArenaPlayerJoinEventTest.java | 53 ---- .../event/ArenaPlayerJoinedEventTest.java | 51 ---- .../ArenaPlayerJoinedQueueEventTest.java | 51 ---- .../ArenaPlayerLeavesQueueEventTest.java | 51 ---- .../api/test/event/ArenaStateEventTest.java | 51 ---- .../mce/minigames/impl/arena/ArenaImpl.java | 2 +- .../mgapi/impl/ExtensionImpl.java | 4 +- .../minigameslib/mgapi/impl/MglibConfig.java | 11 + .../mgapi/impl/MglibMessages.java | 133 ++++++---- .../minigameslib/mgapi/impl/MinigameImpl.java | 6 + .../mgapi/impl/MinigamesPlugin.java | 184 +++++++------- .../mgapi/impl/arena/ArenaData.java | 224 +++++++++++++++++ .../mgapi/impl/arena/ArenaImpl.java | 230 ++++++++++++++++++ .../mgapi/impl/cmd/InfoCommand.java | 4 +- .../mgapi/impl/cmd/InfoMinigameCommand.java | 201 +++++++++++++++ .../impl/cmd/MinigameArenaListCommand.java | 83 +++++++ .../org.eclipse.core.resources.prefs | 2 + PARENTv2/pom.xml | 11 + 54 files changed, 1408 insertions(+), 2153 deletions(-) delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java rename APIv2/src/main/java/{com/github/mce/minigames/api/arena/ArenaState.java => de/minigameslib/mgapi/api/arena/CheckSeverity.java} (54%) create mode 100644 APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java create mode 100644 PARENTv2/.settings/org.eclipse.core.resources.prefs diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java deleted file mode 100644 index cc63e239..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreateEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaCreateEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaCreateEvent extends MinecraftEvent<ArenaCreateEvent, MinigameArenaCreateEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java deleted file mode 100644 index 0a079a43..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaCreatedEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaCreatedEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaCreatedEvent extends MinecraftEvent<ArenaCreatedEvent, MinigameArenaCreatedEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java deleted file mode 100644 index 1208ac03..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeleteEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaDeleteEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaDeleteEvent extends MinecraftEvent<ArenaDeleteEvent, MinigameArenaDeleteEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java deleted file mode 100644 index 748aeb3e..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaDeletedEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaDeletedEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaDeletedEvent extends MinecraftEvent<ArenaDeletedEvent, MinigameArenaDeletedEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java deleted file mode 100644 index 358081f7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaMaintenanceEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaMaintenanceEvent extends MinecraftEvent<ArenaMaintenanceEvent, MinigameArenaMaintenanceEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java deleted file mode 100644 index 46410a63..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaPlayerJoinEvent extends MinecraftEvent<ArenaPlayerJoinEvent, MinigameArenaPlayerJoinEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java deleted file mode 100644 index a0cb072f..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaPlayerJoinedEvent extends MinecraftEvent<ArenaPlayerJoinedEvent, MinigameArenaPlayerJoinedEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java deleted file mode 100644 index 1d12608b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerJoinedQueueEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player</dd> - * <dt>Arena-Rule</dt> - * <dd>not supported</dd> - * <dt>Minigame-Rule</dt> - * <dd>not supported</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaPlayerJoinedQueueEvent extends MinecraftEvent<ArenaPlayerJoinedQueueEvent, MinigameArenaPlayerJoinedQueueEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java deleted file mode 100644 index b8b680c0..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaPlayerLeavesQueueEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>Passed to the affected player</dd> - * <dt>Arena-Rule</dt> - * <dd>not supported</dd> - * <dt>Minigame-Rule</dt> - * <dd>not supported</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaPlayerLeavesQueueEvent extends MinecraftEvent<ArenaPlayerLeavesQueueEvent, MinigameArenaPlayerLeavesQueueEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java deleted file mode 100644 index f967a5bc..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/rules/mevents/MinigameArenaStateEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena.rules.mevents; - -import com.github.mce.minigames.api.event.ArenaStateEvent; - -import de.minigameslib.mclib.api.event.MinecraftEvent; - -/** - * Minigame event representation of corresponding minigame event. - * - * <h3>Using this event as a rule</h3> - * - * <dl> - * <dt>Player-Rule</dt> - * <dd>not supported</dd> - * <dt>Arena-Rule</dt> - * <dd>Passed to the affected arena</dd> - * <dt>Minigame-Rule</dt> - * <dd>Passed to the minigame calculated from arena</dd> - * </dl> - * - * @author mepeisen - */ -public interface MinigameArenaStateEvent extends MinecraftEvent<ArenaStateEvent, MinigameArenaStateEvent> -{ - - // TODO default stubbings - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java deleted file mode 100644 index dad6cd55..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreateEvent.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; - -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; - -/** - * An event fired before a new arena is created. - * - * <p> - * This event can be cancelled. If cancelled the arena will not be created. - * </p> - * - * @author mepeisen - */ -public class ArenaCreateEvent extends AbstractVetoEvent -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we created. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param arena - * the created arena. - */ - public ArenaCreateEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * Returns the arena that will be created - * - * @return the created arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java deleted file mode 100644 index 60648326..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaCreatedEvent.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; - -/** - * An event showing up that an arena was created. - * - * @author mepeisen - */ -public class ArenaCreatedEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we created. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param arena - * the created arena. - */ - public ArenaCreatedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * Returns the arena that was created - * - * @return the created arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java deleted file mode 100644 index 11b9ed36..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeleteEvent.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; - -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; - -/** - * An event fired before an existing arena is deleted. - * - * <p> - * This event can be cancelled. If cancelled the arena will not be deleted. - * </p> - * - * @author mepeisen - */ -public class ArenaDeleteEvent extends AbstractVetoEvent -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we deleted. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param arena - * the deleted arena. - */ - public ArenaDeleteEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * Returns the arena that will be deleted - * - * @return the deleted arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java deleted file mode 100644 index a23e0112..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaDeletedEvent.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; - -/** - * An event showing up that an arena was deleted. - * - * @author mepeisen - * - */ -public class ArenaDeletedEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena we deleted. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param arena - * the deleted arena. - */ - public ArenaDeletedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * Returns the arena that was deleted - * - * @return the deleted arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java deleted file mode 100644 index 2ee6e500..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaMaintenanceEvent.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; - -/** - * Arena is going in maintenance mode. - * - * @author mepeisen - */ -public class ArenaMaintenanceEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena is under maintenance. */ - private final ArenaInterface arena; - - /** - * Constructor. - * - * @param arena - * the arena. - */ - public ArenaMaintenanceEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * Returns the arena that is under maintenance - * - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java deleted file mode 100644 index 5e9cdd92..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinEvent.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; - -/** - * An event fired before a player joins an arena. - * - * <p> - * This event can be cancelled. If cancelled the player is unable to join the arena. - * </p> - * - * @author mepeisen - */ -public class ArenaPlayerJoinEvent extends AbstractVetoEvent -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena the player joined. */ - private final ArenaInterface arena; - - /** the player that joined the arena. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param arena - * Target arena - * @param player - * Player joining the arena - */ - public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * Returns the arena that the player joined - * - * @return the arenaa the player joined. - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the joining player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java deleted file mode 100644 index 953d3c34..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedEvent.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * An event fired after a player joins an arena. - * - * @author mepeisen - */ -public class ArenaPlayerJoinedEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena the player joined. */ - private final ArenaInterface arena; - - /** the player that joined the arena. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param arena - * Target arena - * @param player - * Player joining the arena - */ - public ArenaPlayerJoinedEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * Returns the arena that the player joined - * - * @return the arenaa the player joined. - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the joining player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java deleted file mode 100644 index e8ed9733..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerJoinedQueueEvent.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * An event fired after a player joins a waiting queue. - * - * @author mepeisen - * - */ -public class ArenaPlayerJoinedQueueEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the queue the player joined. */ - private final WaitQueue queue; - - /** the player that joined the arena. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param queue - * Target queue - * @param player - * Player joining the queue - */ - public ArenaPlayerJoinedQueueEvent(WaitQueue queue, ArenaPlayerInterface player) - { - this.queue = queue; - this.player = player; - } - - /** - * Returns the queue that the player joined - * - * @return the queue the player joined. - */ - public WaitQueue getQueue() - { - return this.queue; - } - - /** - * Returns the joining player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java deleted file mode 100644 index 4ac684f9..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaPlayerLeavesQueueEvent.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * An event fired after a player leaves a waiting queue. - * - * @author mepeisen - * - */ -public class ArenaPlayerLeavesQueueEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the queue the player joined. */ - private final WaitQueue queue; - - /** the player that joined the arena. */ - private final ArenaPlayerInterface player; - - /** - * Constructor. - * - * @param queue - * Target queue - * @param player - * Player leaving the queue - */ - public ArenaPlayerLeavesQueueEvent(WaitQueue queue, ArenaPlayerInterface player) - { - this.queue = queue; - this.player = player; - } - - /** - * Returns the queue that the player joined - * - * @return the queue the player joined. - */ - public WaitQueue getQueue() - { - return this.queue; - } - - /** - * Returns the joining player - * - * @return the player - */ - public ArenaPlayerInterface getPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java b/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java deleted file mode 100644 index 9a966bd6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/event/ArenaStateEvent.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.event; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaState; - -/** - * @author mepeisen - * - */ -public class ArenaStateEvent extends Event -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena that changes the state. */ - private final ArenaInterface arena; - - /** the previous state. */ - private final ArenaState oldState; - - /** the next state. */ - private final ArenaState newState; - - /** - * Constructor. - * - * @param arena - * Target arena - * @param oldState - * previous state - * @param newState - * next state - */ - public ArenaStateEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) - { - this.arena = arena; - this.oldState = oldState; - this.newState = newState; - } - - /** - * Returns the arena that changes the state. - * - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the previous state. - * - * @return the oldState - */ - public ArenaState getOldState() - { - return this.oldState; - } - - /** - * Returns the new state. - * - * @return the newState - */ - public ArenaState getNewState() - { - return this.newState; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - -} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java index 08ba86da..0f13fe05 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java @@ -24,6 +24,8 @@ package de.minigameslib.mgapi.api; +import org.bukkit.plugin.Plugin; + import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** @@ -56,11 +58,11 @@ public interface ExtensionInterface * @return multi-line description */ LocalizedMessageInterface getDescription(); - + /** - * Returns a how-to-play manual - * @return how-to-play manual + * Returns the bukkit plugin owning the minigame. + * @return bukkit plugin. */ - LocalizedMessageInterface getManual(); + Plugin getPlugin(); } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java index 1acf5417..0fab796f 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java @@ -58,10 +58,4 @@ public interface ExtensionProvider */ LocalizedMessageInterface getDescription(); - /** - * Returns a how-to-play manual - * @return how-to-play manual - */ - LocalizedMessageInterface getManual(); - } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java index e8f44e93..ed1d08f3 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java @@ -24,6 +24,8 @@ package de.minigameslib.mgapi.api; +import org.bukkit.plugin.Plugin; + import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; /** @@ -62,5 +64,11 @@ public interface MinigameInterface * @return how-to-play manual */ LocalizedMessageInterface getManual(); + + /** + * Returns the bukkit plugin owning the minigame. + * @return bukkit plugin. + */ + Plugin getPlugin(); } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index cdfa859b..83a70543 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -28,9 +28,8 @@ import org.bukkit.plugin.Plugin; -import com.github.mce.minigames.api.arena.ArenaInterface; - import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index f2199549..867a4e3c 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -24,6 +24,13 @@ package de.minigameslib.mgapi.api.arena; +import java.util.Collection; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedConfigLine; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + /** * Basic interface for arenas. * @@ -37,7 +44,7 @@ public interface ArenaInterface * * @return internal arena name */ - String getName(); + String getInternalName(); /** * Returns the arena type. @@ -46,4 +53,88 @@ public interface ArenaInterface */ ArenaTypeInterface getType(); + /** + * Returns the display name of this arena + * @return display name + */ + LocalizedConfigString getDisplayName(); + + /** + * Returns a one line short description + * @return short arena description + */ + LocalizedConfigString getShortDescription(); + + /** + * Returns a multi-line description + * @return description of the arena + */ + LocalizedConfigLine getDescription(); + + /** + * Returns the how-to-play manual + * @return arena manual + */ + LocalizedConfigLine getManual(); + + /** + * Saves arena core data. + * @throws McException thrown if arena is in wrong state or saving data failed. + */ + void saveData() throws McException; + + /** + * Returns the current arena state. + * @return arena state. + */ + ArenaState getState(); + + /** + * Let the given player join the waiting lobby. + * @param player + * @throws McException thrown if the arena is in any other state except {@link ArenaState#Join} + */ + void join(ArenaPlayerInterface player) throws McException; + + /** + * Let the given player join the spectation area. + * @param player + * @throws McException thrown if the arena does not run games or is not in state {@link ArenaState#Join} + */ + void spectate(ArenaPlayerInterface player) throws McException; + + /** + * Sets enabled state; only allowed if arena is currently in states {@link ArenaState#Disabled} or {@link ArenaState#Maintenance}. + * @throws McException thrown if arena is in invalid state + */ + void setEnabledState() throws McException; + + /** + * Sets arena to disabled state; only allowed in states {@link ArenaState#Starting}, {@link ArenaState#Join} or {@link ArenaState#Maintenance}. + * If used in other situations the argument {@code force} must be set to {@code true}. + * @param force forces arena disable; if a match is running all players are kicked and the match is aborted. + * @throws McException thrown if arena is in invalid state or if config cannot be saved. + */ + void setDisabledState(boolean force) throws McException; + + /** + * Sets arena to maintenance state; only allowed in states {@link ArenaState#Starting}, {@link ArenaState#Join} or {@link ArenaState#Disabled}. + * If there is a running match the arena will be switching to disabled mode as soon as the match ended. + * @param force forces arena maintenance mode; if a match is running all players are kicked and the match is aborted. + * @throws McException thrown if arena is in invalid state or if config cannot be saved. + */ + void setMaintenance(boolean force) throws McException; + + /** + * Checks if arena is in maintenance mode or is going to maintenance mode as soon as possible. + * @return {@code true} if setMaintenance was called before or the arena is still in maintenance mode. + */ + boolean isMaintenance(); + + /** + * Checks for administration failures. + * @return list of arena failures. + */ + Collection<CheckFailure> check(); + } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java new file mode 100644 index 00000000..1a8dddff --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java @@ -0,0 +1,77 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +/** + * Common arena state. + * + * @author mepeisen + */ +public enum ArenaState +{ + + /** + * The arena is disabled. Cannot be used. + */ + Disabled, + + /** + * The arena is starting. Arena is checked. This is the common state if an arena + * is enabled or maintenance mode is stopped. Will be the first state after + * server restart. + */ + Starting, + + /** + * Players are ready to join. + */ + Join, + + /** + * A match is prepared, there are enough players. + */ + PreMatch, + + /** + * A match is running. + */ + Match, + + /** + * There is a winner; match is stopped + */ + PostMatch, + + /** + * The arena is restarting and will be switching to Join as soon as the reset is finished. + */ + Restarting, + + /** + * The arena is under maintenance. Administrators may change the arena. + */ + Maintenance, + +} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java new file mode 100644 index 00000000..4a294162 --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java @@ -0,0 +1,85 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * Single result of failure checks. + */ +public class CheckFailure +{ + + /** the failure severity. */ + private final CheckSeverity severity; + + /** the check title. */ + private final Serializable title; + + /** the check details. */ + private final Serializable details; + + /** + * Consturctor + * @param severity + * @param title + * @param titleArgs + * @param details + * @param detailArgs + */ + public CheckFailure(CheckSeverity severity, LocalizedMessageInterface title, Serializable[] titleArgs, LocalizedMessageInterface details, Serializable... detailArgs) + { + this.severity = severity; + this.title = title.toArg(titleArgs); + this.details = details.toArg(detailArgs); + } + + /** + * @return the severity + */ + public CheckSeverity getSeverity() + { + return this.severity; + } + + /** + * @return the title + */ + public Serializable getTitle() + { + return this.title; + } + + /** + * @return the details + */ + public Serializable getDetails() + { + return this.details; + } + +} \ No newline at end of file diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java similarity index 54% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java rename to APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java index 06d813be..174af800 100644 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaState.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java @@ -1,56 +1,38 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -/** - * Common arena states. - * - * @author mepeisen - */ -public enum ArenaState -{ - - /** - * Players can join the arena. - */ - Join, - - /** - * Arena is starting a match. - */ - Starting, - - /** - * A match is running. - */ - InGame, - - /** - * The arena is restarting. - */ - Restarting, - - /** - * The arena is disabled. - */ - Disabled, - - /** - * The arena is under maintenance. - */ - Maintenance - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +/** + * Check severity. + */ +public enum CheckSeverity +{ + /** An error disallowing to use the arena. */ + Error, + /** A warning that may result in game problems; arena can be started. */ + Warning, + /** Some information text. */ + Info +} \ No newline at end of file diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java new file mode 100644 index 00000000..e5fb72ab --- /dev/null +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java @@ -0,0 +1,142 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.player; + +import java.util.UUID; + +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * @author mepeisen + * + */ +public interface ArenaPlayerInterface +{ + + // common methods (player info) + + /** + * Returns the bukkit player (if this player is online). + * + * @return bukkit player. + */ + default Player getBukkitPlayer() + { + return this.getMcPlayer().getBukkitPlayer(); + } + + /** + * Returns the name of the player. + * + * @return name of the player. + */ + default String getName() + { + return this.getMcPlayer().getName(); + } + + /** + * Returns the bukkit offline player. + * + * @return bukkit offline player. + */ + default OfflinePlayer getOfflinePlayer() + { + return this.getMcPlayer().getOfflinePlayer(); + } + + /** + * Returns the mclib player. + * + * @return mclib player. + */ + McPlayerInterface getMcPlayer(); + + /** + * Returns the players uuid. + * + * @return uuid. + */ + default UUID getPlayerUUID() + { + return this.getMcPlayer().getPlayerUUID(); + } + + // arena data + + /** + * Returns the arena this player is currently in; within a match or waiting lobby. + * + * @return arena or {@code null} if this player is currently not within any arena. + */ + ArenaInterface getArena(); + + // stubbing + + /** + * Checks this player for given criteria and invokes either then or else statements. + * + * <p> + * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. + * </p> + * + * @param test + * test functions for testing the player matching any criteria. + * + * @return the outgoing stub to apply then or else consumers. + * + * @throws McException + * will be thrown if either the test function or then/else consumers throw the exception. + */ + McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException; + + /** + * Checks if the player is online + * + * @return true if player is online + */ + default boolean isOnline() + { + return this.getBukkitPlayer() != null; + } + + /** + * Checks if player is within arena + * + * @return true if player is within arena + */ + default boolean inArena() + { + return this.getArena() != null; + } + +} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java index a363b153..c86547e8 100644 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java +++ b/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java @@ -17,9 +17,10 @@ import org.junit.Test; -import com.github.mce.minigames.api.arena.ArenaState; import com.github.mce.minigames.api.test.SharedUtil; +import de.minigameslib.mgapi.api.arena.ArenaState; + /** * test case for {@link ArenaState} * diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java deleted file mode 100644 index 5a5183e6..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/AbstractVetoEventTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import java.io.Serializable; - -import org.bukkit.event.HandlerList; -import org.junit.Test; - -import com.github.mce.minigames.api.CommonMessages; - -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; - -/** - * test case for {@link AbstractVetoEvent} - * - * @author mepeisen - * - */ -public class AbstractVetoEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final VetoEvent evt = new VetoEvent(); - - assertFalse(evt.isCancelled()); - assertNull(evt.getVetoReason()); - assertNull(evt.getVetoReasonArgs()); - - evt.setCancelled(CommonMessages.AraneStateDisabled); - assertTrue(evt.isCancelled()); - assertEquals(CommonMessages.AraneStateDisabled, evt.getVetoReason()); - assertArrayEquals(new Serializable[0], evt.getVetoReasonArgs()); - - evt.setCancelled(CommonMessages.AraneStateDisabled, Integer.MAX_VALUE); - assertTrue(evt.isCancelled()); - assertEquals(CommonMessages.AraneStateDisabled, evt.getVetoReason()); - assertArrayEquals(new Serializable[]{Integer.MAX_VALUE}, evt.getVetoReasonArgs()); - } - - /** - * @author mepeisen - * - */ - public static class VetoEvent extends AbstractVetoEvent - { - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** - * Constructor. - */ - public VetoEvent() - { - // empty - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java deleted file mode 100644 index 758107fe..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreateEventTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaCreateEvent; - -/** - * test case for {@link ArenaCreateEvent} - * - * @author mepeisen - * - */ -public class ArenaCreateEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaCreateEvent evt = new ArenaCreateEvent(arena); - - assertEquals(evt.getHandlers(), ArenaCreateEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - assertFalse(evt.isCancelled()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java deleted file mode 100644 index 26202de1..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaCreatedEventTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaCreatedEvent; - -/** - * test case for {@link ArenaCreatedEvent} - * - * @author mepeisen - * - */ -public class ArenaCreatedEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaCreatedEvent evt = new ArenaCreatedEvent(arena); - - assertEquals(evt.getHandlers(), ArenaCreatedEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java deleted file mode 100644 index e8dc3751..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeleteEventTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaDeleteEvent; - -/** - * test case for {@link ArenaDeleteEvent} - * - * @author mepeisen - * - */ -public class ArenaDeleteEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaDeleteEvent evt = new ArenaDeleteEvent(arena); - - assertEquals(evt.getHandlers(), ArenaDeleteEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - assertFalse(evt.isCancelled()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java deleted file mode 100644 index 49c04390..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaDeletedEventTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaDeletedEvent; - -/** - * test case for {@link ArenaDeletedEvent} - * - * @author mepeisen - * - */ -public class ArenaDeletedEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaDeletedEvent evt = new ArenaDeletedEvent(arena); - - assertEquals(evt.getHandlers(), ArenaDeletedEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java deleted file mode 100644 index 60f39bb9..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaMaintenanceEventTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaMaintenanceEvent; - -/** - * test case for {@link ArenaMaintenanceEvent} - * - * @author mepeisen - * - */ -public class ArenaMaintenanceEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaMaintenanceEvent evt = new ArenaMaintenanceEvent(arena); - - assertEquals(evt.getHandlers(), ArenaMaintenanceEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java deleted file mode 100644 index cdcf127e..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinEventTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaPlayerJoinEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link ArenaPlayerJoinEvent} - * - * @author mepeisen - * - */ -public class ArenaPlayerJoinEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ArenaPlayerJoinEvent evt = new ArenaPlayerJoinEvent(arena, player); - - assertEquals(evt.getHandlers(), ArenaPlayerJoinEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - assertEquals(player, evt.getPlayer()); - assertFalse(evt.isCancelled()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java deleted file mode 100644 index a7a56932..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedEventTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link ArenaPlayerJoinedEvent} - * - * @author mepeisen - * - */ -public class ArenaPlayerJoinedEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final ArenaPlayerJoinedEvent evt = new ArenaPlayerJoinedEvent(arena, player); - - assertEquals(evt.getHandlers(), ArenaPlayerJoinedEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - assertEquals(player, evt.getPlayer()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java deleted file mode 100644 index b1eb6a57..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerJoinedQueueEventTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.event.ArenaPlayerJoinedQueueEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link ArenaPlayerJoinedQueueEvent} - * - * @author mepeisen - * - */ -public class ArenaPlayerJoinedQueueEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final WaitQueue queue = mock(WaitQueue.class); - final ArenaPlayerJoinedQueueEvent evt = new ArenaPlayerJoinedQueueEvent(queue, player); - - assertEquals(evt.getHandlers(), ArenaPlayerJoinedQueueEvent.getHandlerList()); - assertEquals(queue, evt.getQueue()); - assertEquals(player, evt.getPlayer()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java deleted file mode 100644 index 0ca6065b..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaPlayerLeavesQueueEventTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.event.ArenaPlayerLeavesQueueEvent; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -/** - * test case for {@link ArenaPlayerLeavesQueueEvent} - * - * @author mepeisen - * - */ -public class ArenaPlayerLeavesQueueEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaPlayerInterface player = mock(ArenaPlayerInterface.class); - final WaitQueue queue = mock(WaitQueue.class); - final ArenaPlayerLeavesQueueEvent evt = new ArenaPlayerLeavesQueueEvent(queue, player); - - assertEquals(evt.getHandlers(), ArenaPlayerLeavesQueueEvent.getHandlerList()); - assertEquals(queue, evt.getQueue()); - assertEquals(player, evt.getPlayer()); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java deleted file mode 100644 index 32618146..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/event/ArenaStateEventTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.event; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaState; -import com.github.mce.minigames.api.event.ArenaStateEvent; - -/** - * test case for {@link ArenaStateEvent} - * - * @author mepeisen - * - */ -public class ArenaStateEventTest -{ - - /** - * Tests the event class - */ - @Test - public void testMe() - { - final ArenaInterface arena = mock(ArenaInterface.class); - final ArenaStateEvent evt = new ArenaStateEvent(arena, ArenaState.Disabled, ArenaState.InGame); - - assertEquals(evt.getHandlers(), ArenaStateEvent.getHandlerList()); - assertEquals(arena, evt.getArena()); - assertEquals(ArenaState.Disabled, evt.getOldState()); - assertEquals(ArenaState.InGame, evt.getNewState()); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java index 15516ad5..18c12046 100644 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java @@ -18,11 +18,11 @@ import com.github.mce.minigames.api.MglibInterface; import com.github.mce.minigames.api.MinigamePluginInterface; import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaState; import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; import com.github.mce.minigames.impl.component.ComponentRegistry; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaState; /** * Implementation of arena interface. diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java index 82d36302..1290dc1a 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java @@ -78,9 +78,9 @@ public LocalizedMessageInterface getDescription() } @Override - public LocalizedMessageInterface getManual() + public Plugin getPlugin() { - return this.provider.getManual(); + return this.plugin; } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java index 16f6f54c..85ccf345 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java @@ -26,6 +26,7 @@ import de.minigameslib.mclib.api.config.ConfigComment; import de.minigameslib.mclib.api.config.ConfigurationBool; +import de.minigameslib.mclib.api.config.ConfigurationStringList; import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.config.ConfigurationValues; @@ -49,4 +50,14 @@ public enum MglibConfig implements ConfigurationValueInterface }) Debug, + /** + * Arena names. + */ + @ConfigurationStringList + @ConfigComment({ + "Contains the internal/ technical names of arenas. Each arena is listed here.", + "The arena core data is stored within arenas configuration folder." + }) + Arenas, + } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 83cdecd1..bca659b4 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -31,7 +31,10 @@ import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.cmd.InfoCommand; +import de.minigameslib.mgapi.impl.cmd.InfoExtensionsCommand; +import de.minigameslib.mgapi.impl.cmd.InfoMinigameCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; @@ -42,55 +45,18 @@ */ @LocalizedMessages(value = "core") @ChildEnum({ + MglibCoreErrors.class, Mg2Command.Messages.class, InfoCommand.Messages.class, - InfoMinigamesCommand.Messages.class + InfoMinigamesCommand.Messages.class, + InfoExtensionsCommand.Messages.class, + InfoMinigameCommand.Messages.class, + //InfoExtensionCommand.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { - /** - * Library is in wrong state; operation cannot proceed. - */ - @LocalizedMessage(defaultMessage = "Library in wrong state.") - @MessageComment({"Library is in wrong state; operation cannot proceed."}) - LibInWrongState, - - /** - * Plugin tries to register multiple minigames - */ - @LocalizedMessage(defaultMessage = "Plugin %1$s already registered a minigame") - @MessageComment( - value = {"Plugin tries to register multiple minigames"}, - args = {@Argument("Plugin name")}) - PluginMinigameDuplicate, - - /** - * Minigame with given name is already registered - */ - @LocalizedMessage(defaultMessage = "Minigame %1$s already registered") - @MessageComment( - value = {"Minigame with given name is already registered"}, - args = {@Argument("Minigame name")}) - MinigameAlreadyRegistered, - - /** - * Plugin tries to register multiple extensions - */ - @LocalizedMessage(defaultMessage = "Plugin %1$s already registered an extension") - @MessageComment( - value = {"Plugin tries to register multiple extensions"}, - args = {@Argument("Plugin name")}) - PluginExtensionDuplicate, - - /** - * Extension with given name is already registered - */ - @LocalizedMessage(defaultMessage = "Extension %1$s already registered") - @MessageComment( - value = {"Extension with given name is already registered"}, - args = {@Argument("Extension name")}) - ExtensionAlreadyRegistered, + // common error messages /** Library is initializing. */ @LocalizedMessage(defaultMessage = "INIT", severity = MessageSeverityType.Error) @@ -134,6 +100,85 @@ public enum MglibMessages implements LocalizedMessageInterface */ @LocalizedMessage(defaultMessage = "premium") @MessageComment({"Premium plugin version"}) - ModePremium, + ModePremium; + + /** + * Common error messages + */ + @LocalizedMessages(value = "core.errors") + public enum MglibCoreErrors implements LocalizedMessageInterface + { + + /** + * Library is in wrong state; operation cannot proceed. + */ + @LocalizedMessage(defaultMessage = "Library in wrong state.", severity = MessageSeverityType.Error) + @MessageComment({"Library is in wrong state; operation cannot proceed."}) + LibInWrongState, + + /** + * Arena name contains illegal characters. + */ + @LocalizedMessage(defaultMessage = "Arena name contains illegal characters.", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Arena name contains illegal characters."}, + args = {@Argument("Arena name")}) + InvalidArenaName, + + /** + * Arena data filename does not correspond to internal name. + */ + @LocalizedMessage(defaultMessage = "Arena data filename (" + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + ") does not correspond to internal name. Did you copy yml files?", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Arena data filename does not correspond to internal name."}, + args = {@Argument("Arena name")}) + ArenaNameMismatch, + + /** + * Arena is duplicate + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already exists", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Arena is duplicate"}, + args = {@Argument("Arena name")}) + ArenaDuplicate, + + /** + * Plugin tries to register multiple minigames + */ + @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered a minigame", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Plugin tries to register multiple minigames"}, + args = {@Argument("Plugin name")}) + PluginMinigameDuplicate, + + /** + * Minigame with given name is already registered + */ + @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Minigame with given name is already registered"}, + args = {@Argument("Minigame name")}) + MinigameAlreadyRegistered, + + /** + * Plugin tries to register multiple extensions + */ + @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered an extension", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Plugin tries to register multiple extensions"}, + args = {@Argument("Plugin name")}) + PluginExtensionDuplicate, + + /** + * Extension with given name is already registered + */ + @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered", severity = MessageSeverityType.Error) + @MessageComment( + value = {"Extension with given name is already registered"}, + args = {@Argument("Extension name")}) + ExtensionAlreadyRegistered, + + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java index ab089eed..5483b154 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java @@ -82,5 +82,11 @@ public LocalizedMessageInterface getManual() { return this.provider.getManual(); } + + @Override + public Plugin getPlugin() + { + return this.plugin; + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 42b94a87..1d40f908 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -24,13 +24,18 @@ package de.minigameslib.mgapi.impl; +import java.io.File; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TreeMap; +import java.util.logging.Level; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.bukkit.Bukkit; @@ -40,8 +45,7 @@ import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.java.JavaPlugin; -import com.github.mce.minigames.api.arena.ArenaInterface; - +import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.cmd.CommandImpl; @@ -53,7 +57,10 @@ import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigameProvider; import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.tasks.InitTask; @@ -92,20 +99,64 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** the console commands. */ private Mg2Command mg2Command = new Mg2Command(); + + /** arenas per name. */ + private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); + + /** arena name check pattern */ + private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ @Override public void onEnable() { - // TODO check api version + if (McLibInterface.instance().getApiVersion() != McLibInterface.APIVERSION_1_0_0) + { + throw new IllegalStateException("Cannot enable minigameslib. You installed an incompatible McLib-Version. " + McLibInterface.instance().getApiVersion()); //$NON-NLS-1$ + } + EnumServiceInterface.instance().registerEnumClass(this, MglibConfig.class); EnumServiceInterface.instance().registerEnumClass(this, MglibMessages.class); EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); + final String[] arenas = MglibConfig.Arenas.getStringList(); + for (final String arena : arenas) + { + try + { + this.checkArenaName(arena); + this.getLogger().log(Level.INFO, "Found arena " + arena); //$NON-NLS-1$ + final ArenaImpl arenaImpl = new ArenaImpl(new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ + if (!arenaImpl.getInternalName().equals(arena)) + { + throw new McException(MglibCoreErrors.ArenaNameMismatch, arena); + } + this.arenasPerName.put(arena, arenaImpl); + } + catch (McException ex) + { + this.getLogger().log(Level.WARNING, "Problems loading arena", ex); //$NON-NLS-1$ + } + } + this.getLogger().log(Level.INFO, "Enabled mglib. Loaded arenas: " + this.arenasPerName.size()); //$NON-NLS-1$ + new InitTask().runTaskLater(this, 10); } + /** + * Checks for valid arena name + * @param arena + * @throws McException thrown for invalid arena names. + */ + private void checkArenaName(String arena) throws McException + { + if (ARENA_NAME_PATTERN.matcher(arena).find()) + { + throw new McException(MglibCoreErrors.InvalidArenaName, arena); + } + } + @Override public void onDisable() { @@ -194,15 +245,15 @@ public void initMinigame(Plugin plugin, MinigameProvider provider) throws McExce { if (this.state != LibState.Initializing) { - throw new McException(MglibMessages.LibInWrongState); + throw new McException(MglibCoreErrors.LibInWrongState); } if (this.minigamesPerPlugin.containsKey(plugin.getName())) { - throw new McException(MglibMessages.PluginMinigameDuplicate, plugin.getName()); + throw new McException(MglibCoreErrors.PluginMinigameDuplicate, plugin.getName()); } if (this.minigamesPerName.containsKey(provider.getName())) { - throw new McException(MglibMessages.MinigameAlreadyRegistered, provider.getName()); + throw new McException(MglibCoreErrors.MinigameAlreadyRegistered, provider.getName()); } final MinigameImpl minigame = new MinigameImpl(plugin, provider); this.minigamesPerPlugin.put(plugin.getName(), minigame); @@ -238,15 +289,15 @@ public void initExtension(Plugin plugin, ExtensionProvider provider) throws McEx { if (this.state != LibState.Initializing) { - throw new McException(MglibMessages.LibInWrongState); + throw new McException(MglibCoreErrors.LibInWrongState); } if (this.extensionsPerPlugin.containsKey(plugin.getName())) { - throw new McException(MglibMessages.PluginExtensionDuplicate, plugin.getName()); + throw new McException(MglibCoreErrors.PluginExtensionDuplicate, plugin.getName()); } if (this.extensionsPerName.containsKey(provider.getName())) { - throw new McException(MglibMessages.ExtensionAlreadyRegistered, provider.getName()); + throw new McException(MglibCoreErrors.ExtensionAlreadyRegistered, provider.getName()); } final ExtensionImpl extension = new ExtensionImpl(plugin, provider); this.extensionsPerPlugin.put(plugin.getName(), extension); @@ -277,164 +328,119 @@ public Collection<ExtensionInterface> getExtensions(String prefix, int index, in return this.extensionsPerName.values().stream().filter(p -> p.getName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getMinigame(java.lang.String) - */ @Override public MinigameInterface getMinigame(String name) { - // TODO Auto-generated method stub - return null; + return this.minigamesPerName.get(name); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getExtension(java.lang.String) - */ @Override public ExtensionInterface getExtension(String name) { - // TODO Auto-generated method stub - return null; + return this.extensionsPerName.get(name); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount() - */ @Override public int getArenaCount() { - // TODO Auto-generated method stub - return 0; + return this.arenasPerName.size(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(java.lang.String) - */ @Override public int getArenaCount(String prefix) { - // TODO Auto-generated method stub - return 0; + return (int) this.arenasPerName.keySet().stream().filter(p -> p.startsWith(prefix)).count(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(org.bukkit.plugin.Plugin) - */ @Override public int getArenaCount(Plugin plugin) { - // TODO Auto-generated method stub - return 0; + return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).count(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(org.bukkit.plugin.Plugin, java.lang.String) - */ @Override public int getArenaCount(Plugin plugin, String prefix) { - // TODO Auto-generated method stub - return 0; + return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().startsWith(prefix)).count(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(de.minigameslib.mgapi.api.arena.ArenaTypeInterface) - */ @Override public int getArenaCount(ArenaTypeInterface type) { - // TODO Auto-generated method stub - return 0; + return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).count(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenaCount(de.minigameslib.mgapi.api.arena.ArenaTypeInterface, java.lang.String) - */ @Override public int getArenaCount(ArenaTypeInterface type, String prefix) { - // TODO Auto-generated method stub - return 0; + return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().startsWith(prefix)).count(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(int, int) - */ @Override public Collection<ArenaInterface> getArenas(int index, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(java.lang.String, int, int) - */ @Override public Collection<ArenaInterface> getArenas(String prefix, int index, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.values().stream().filter(p -> p.getInternalName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(org.bukkit.plugin.Plugin, int, int) - */ @Override public Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(org.bukkit.plugin.Plugin, java.lang.String, int, int) - */ @Override public Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(de.minigameslib.mgapi.api.arena.ArenaTypeInterface, int, int) - */ @Override public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.values().stream().filter(p -> p.getType() == type).skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArenas(de.minigameslib.mgapi.api.arena.ArenaTypeInterface, java.lang.String, int, int) - */ @Override public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getArena(java.lang.String) - */ @Override public ArenaInterface getArena(String name) { - // TODO Auto-generated method stub - return null; + return this.arenasPerName.get(name); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#create(java.lang.String, de.minigameslib.mgapi.api.arena.ArenaTypeInterface) - */ @Override public ArenaInterface create(String name, ArenaTypeInterface type) throws McException { - // TODO Auto-generated method stub - return null; + if (type == null) + { + throw new McException(CommonMessages.InternalError, "arena type must not be null"); //$NON-NLS-1$ + } + if (this.arenasPerName.containsKey(name)) + { + throw new McException(MglibCoreErrors.ArenaDuplicate, name); + } + + final ArenaImpl arena = new ArenaImpl(name, type, new File(this.getDataFolder(), "arenas/" + name + ".yml")); //$NON-NLS-1$ //$NON-NLS-2$ + arena.saveData(); + + final Set<String> arenas = new HashSet<>(this.arenasPerName.keySet()); + arenas.add(name); + MglibConfig.Arenas.setStringList(arenas.toArray(new String[arenas.size()])); + MglibConfig.Arenas.saveConfig(); + + // everything ok, now we can add the arena to our internal map. + this.arenasPerName.put(name, arena); + return arena; } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java new file mode 100644 index 00000000..eb089056 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java @@ -0,0 +1,224 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import de.minigameslib.mclib.api.locale.LocalizedConfigLine; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; +import de.minigameslib.mclib.shared.api.com.PersistentField; + +/** + * @author mepeisen + */ +public class ArenaData extends AnnotatedDataFragment +{ + + /** + * Arena name. + */ + @PersistentField + private String name; + + /** + * Display name + */ + @PersistentField + private LocalizedConfigString displayName = new LocalizedConfigString(); + + /** + * Short arena description + */ + @PersistentField + private LocalizedConfigString shortDescription = new LocalizedConfigString(); + + /** + * long (multiline) arena description + */ + @PersistentField + private LocalizedConfigLine description = new LocalizedConfigLine(); + + /** + * arena manual + */ + @PersistentField + private LocalizedConfigLine manual = new LocalizedConfigLine(); + + /** + * plugin name + */ + @PersistentField + private String pluginName; + + /** + * arena type + */ + @PersistentField + private String arenaType; + + /** + * flag to control if arena is enabled. + */ + @PersistentField + private boolean isEnabled; + + /** + * flag to control if arena is in maintenance mode. + */ + @PersistentField + private boolean isMaintenance; + + /** + * @param name + * @param pluginName + * @param arenaType + */ + public ArenaData(String name, String pluginName, String arenaType) + { + this.name = name; + this.pluginName = pluginName; + this.arenaType = arenaType; + } + + /** + * @return the displayName + */ + public LocalizedConfigString getDisplayName() + { + return this.displayName; + } + + /** + * @param displayName the displayName to set + */ + public void setDisplayName(LocalizedConfigString displayName) + { + this.displayName = displayName; + } + + /** + * @return the shortDescription + */ + public LocalizedConfigString getShortDescription() + { + return this.shortDescription; + } + + /** + * @param shortDescription the shortDescription to set + */ + public void setShortDescription(LocalizedConfigString shortDescription) + { + this.shortDescription = shortDescription; + } + + /** + * @return the description + */ + public LocalizedConfigLine getDescription() + { + return this.description; + } + + /** + * @param description the description to set + */ + public void setDescription(LocalizedConfigLine description) + { + this.description = description; + } + + /** + * @return the manual + */ + public LocalizedConfigLine getManual() + { + return this.manual; + } + + /** + * @param manual the manual to set + */ + public void setManual(LocalizedConfigLine manual) + { + this.manual = manual; + } + + /** + * @return the name + */ + public String getName() + { + return this.name; + } + + /** + * @return the pluginName + */ + public String getPluginName() + { + return this.pluginName; + } + + /** + * @return the arenaType + */ + public String getArenaType() + { + return this.arenaType; + } + + /** + * @return the isEnabled + */ + public boolean isEnabled() + { + return this.isEnabled; + } + + /** + * @param isEnabled the isEnabled to set + */ + public void setEnabled(boolean isEnabled) + { + this.isEnabled = isEnabled; + } + + /** + * @return the isMaintenance + */ + public boolean isMaintenance() + { + return this.isMaintenance; + } + + /** + * @param isMaintenance the isMaintenance to set + */ + public void setMaintenance(boolean isMaintenance) + { + this.isMaintenance = isMaintenance; + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java new file mode 100644 index 00000000..bedf5ff6 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -0,0 +1,230 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import java.io.File; +import java.util.Collection; + +import org.bukkit.plugin.Plugin; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedConfigLine; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.arena.CheckFailure; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Arena data. + * + * @author mepeisen + */ +public class ArenaImpl implements ArenaInterface +{ + + /** + * The associated arena data + */ + private ArenaData arenaData; + + /** + * the arena data file. + */ + private File dataFile; + + /** arena type. */ + private ArenaTypeInterface type; + + /** current arena state. */ + private ArenaState state; + + /** + * Constructor to create an arena by using given data file. + * @param dataFile + * @throws McException thrown if data file is invalid. + */ + public ArenaImpl(File dataFile) throws McException + { + this.dataFile = dataFile; + // TODO yml file + // TODO provide a way to detect server crashes during games and set a state to request hard reset asap + if (!this.arenaData.isEnabled()) + { + this.state = ArenaState.Disabled; + } + else if (this.arenaData.isMaintenance()) + { + this.state = ArenaState.Maintenance; + } + else + { + this.state = ArenaState.Starting; + } + } + + /** + * Constructor to create a new arena. + * @param name + * @param type + * @param dataFile + * @throws McException thrown if data file is invalid. + */ + public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McException + { + this.dataFile = dataFile; + // TODO Auto-generated constructor stub + } + + @Override + public String getInternalName() + { + return this.arenaData.getName(); + } + + @Override + public ArenaTypeInterface getType() + { + return this.type; + } + + @Override + public LocalizedConfigString getDisplayName() + { + return this.arenaData.getDisplayName(); + } + + @Override + public LocalizedConfigString getShortDescription() + { + return this.arenaData.getShortDescription(); + } + + @Override + public LocalizedConfigLine getDescription() + { + return this.arenaData.getDescription(); + } + + @Override + public LocalizedConfigLine getManual() + { + return this.arenaData.getManual(); + } + + @Override + public void saveData() throws McException + { + // TODO Auto-generated method stub + + } + + @Override + public ArenaState getState() + { + return this.state; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#join(de.minigameslib.mgapi.api.player.ArenaPlayerInterface) + */ + @Override + public void join(ArenaPlayerInterface player) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#spectate(de.minigameslib.mgapi.api.player.ArenaPlayerInterface) + */ + @Override + public void spectate(ArenaPlayerInterface player) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#setEnabledState() + */ + @Override + public void setEnabledState() throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#setDisabledState(boolean) + */ + @Override + public void setDisabledState(boolean force) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#setMaintenance(boolean) + */ + @Override + public void setMaintenance(boolean force) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#isMaintenance() + */ + @Override + public boolean isMaintenance() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#check() + */ + @Override + public Collection<CheckFailure> check() + { + // TODO Auto-generated method stub + return null; + } + + /** + * @return + */ + public Plugin getPlugin() + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java index 396ce5be..a454e6a8 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java @@ -60,8 +60,8 @@ public InfoCommand() this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) (this))); //$NON-NLS-1$ this.subCommands.put("minigames", new InfoMinigamesCommand()); //$NON-NLS-1$ this.subCommands.put("extensions", new InfoExtensionsCommand()); //$NON-NLS-1$ - // TODO command: "minigame <name>" (detailed info about minigame) - // TODO command: "extension <name>" (detailed info about extension) + this.subCommands.put("minigame", new InfoMinigameCommand()); //$NON-NLS-1$ + // this.subCommands.put("extension", new InfoExtensionCommand()); //$NON-NLS-1$ } @Override diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java new file mode 100644 index 00000000..bfed1344 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java @@ -0,0 +1,201 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; + +/** + * Handle the minigame command info + * @author mepeisen + */ +public class InfoMinigameCommand implements SubCommandHandlerInterface +{ + + @Override + public void handle(CommandInterface command) throws McException + { + if (command.getArgs().length == 0) + { + command.send(Messages.NameMissing); + command.send(Messages.Usage); + return; + } + + final String name = command.getArgs()[0]; + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final MinigameInterface minigame = mglib.getMinigame(name); + if (minigame == null) + { + command.send(Messages.MinigameNotFound, name); + return; + } + + if (command.getArgs().length > 2) + { + command.send(CommonMessages.TooManyArguments); + command.send(Messages.Usage); + return; + } + if (command.getArgs().length == 2) + { + switch (command.getArgs()[1]) + { + case "arenas": //$NON-NLS-1$ + new MinigameArenaListCommand(() -> mglib.getArenaCount(minigame.getPlugin()), () -> mglib.getArenas(minigame.getPlugin(), 0, Integer.MAX_VALUE).stream()).handle(command.consumeArgs(1)); + break; + case "manual": //$NON-NLS-1$ + // new InfoMinigameManualCommand(minigame).handle(command.consumeArgs(1)); + break; + default: + break; + } + } + + // print Info + final String version = minigame.getPlugin().getDescription().getVersion(); + command.send(Messages.CommandOutput, + minigame.getDisplayName().toArg(), + minigame.getShortDescription().toArg(), + version, + minigame.getDescription().toListArg(), + command.getCommandPath(), + name + ); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getMinigames(lastArg, 0, Integer.MAX_VALUE).stream().map(MinigameInterface::getName).collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + return Arrays.asList("arenas", "manual").stream().filter(p -> p.startsWith(lastArg)).collect(Collectors.toList()); //$NON-NLS-1$//$NON-NLS-2$ + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface cmd) + { + return Messages.Description; + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface cmd) + { + return Messages.ShortDescription; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_info_minigame") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 info minigame + */ + @LocalizedMessage(defaultMessage = "Prints details on given minigame.") + @MessageComment({"Short description of /mg2 info minigame"}) + ShortDescription, + + /** + * Long description of /mg2 info minigame + */ + @LocalizedMessage(defaultMessage = "Prints details of given minigame.") + @MessageComment({"Long description of /mg2 info minigame"}) + Description, + + /** + * Usage of /mg2 info minigame + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 info minigame <name>") + @MessageComment({"Usage of /mg2 info minigame"}) + Usage, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing minigame name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + NameMissing, + + /** + * Minigame was not found + */ + @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + MinigameNotFound, + + /** + * The command output of /mg2 info minigame + */ + @LocalizedMessageList({ + "minigame %1$s (%2$s)", + "version: %3$s", + "----------", + "%4$s", + "----------", + "Run for additional information:", + " " + LocalizedMessage.BLUE + "%5$s %6$s arenas " + LocalizedMessage.GRAY + " to list the minigame arenas.", + " " + LocalizedMessage.BLUE + "%5$s %6$s manual " + LocalizedMessage.GRAY + " to display a manual." + }) + @MessageComment(value = { + "The command output of /mg2 info minigame" + },args = { + @Argument("display name"), + @Argument("short description"), + @Argument("version number"), + @Argument("description"), + @Argument("command path"), + @Argument("minigame name"), + }) + CommandOutput, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java new file mode 100644 index 00000000..19661542 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java @@ -0,0 +1,83 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; +import java.util.function.IntSupplier; +import java.util.function.Supplier; +import java.util.stream.Stream; + +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Handle the minigame arenas list + * + * @author mepeisen + */ +public class MinigameArenaListCommand extends AbstractPagableCommandHandler +{ + + /** + * @param count + * @param arenas + */ + public MinigameArenaListCommand(IntSupplier count, Supplier<Stream<ArenaInterface>> arenas) + { + // TODO Auto-generated constructor stub + } + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler#getLineCount(de.minigameslib.mclib.api.cmd.CommandInterface) + */ + @Override + protected int getLineCount(CommandInterface command) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler#getHeader(de.minigameslib.mclib.api.cmd.CommandInterface) + */ + @Override + protected Serializable getHeader(CommandInterface command) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler#getLines(de.minigameslib.mclib.api.cmd.CommandInterface, int, int) + */ + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/PARENTv2/.settings/org.eclipse.core.resources.prefs b/PARENTv2/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..4824b802 --- /dev/null +++ b/PARENTv2/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/PARENTv2/pom.xml b/PARENTv2/pom.xml index 23dd5e2a..7964bb36 100644 --- a/PARENTv2/pom.xml +++ b/PARENTv2/pom.xml @@ -222,5 +222,16 @@ </plugins></reporting> </profile> </profiles> + + <repositories> + <repository> + <id>spigot-repo</id> + <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url> + </repository> + <repository> + <id>mce-repo</id> + <url>http://nexus.xworlds.eu/nexus/content/groups/mce</url> + </repository> + </repositories> </project> \ No newline at end of file From 4a0b77ad754c100536645d1a21804e808b5d00e5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 18 Jan 2017 14:21:14 +0100 Subject: [PATCH 168/266] v2 --- .../mce/minigames/api/MglibInterface.java | 437 ------- .../minigames/api/MinecraftVersionsType.java | 216 ---- .../api/MinigamePluginInterface.java | 98 -- .../com/github/mce/minigames/api/RuleId.java | 37 - .../api/arena/ArenaSessionTypeInterface.java | 28 - .../api/arena/ArenaTypeBuilderInterface.java | 487 ------- .../arena/ArenaTypeDeclarationInterface.java | 61 - .../mce/minigames/api/arena/ArenaTypes.java | 36 - .../api/perms/CommonPermissions.java | 67 - .../api/services/ExtensionInterface.java | 54 - .../services/MinigameExtensionInterface.java | 73 -- .../MinigameExtensionProviderInterface.java | 55 - .../mce/minigames/api/team/TeamRuleId.java | 37 - .../mgapi/api/ExtensionInterface.java | 6 + .../mgapi/api/ExtensionProvider.java | 6 + .../mgapi/api/MinigameInterface.java | 10 +- .../mgapi/api/MinigameProvider.java | 10 +- .../minigames/api/test/VersionTypeTest.java | 336 ----- .../api/test/perms/CommonPermissionsTest.java | 40 - .../github/mce/minigames/impl/BaseImpl.java | 463 ------- .../mce/minigames/impl/CoreMinigame.java | 118 -- .../mce/minigames/impl/ExtensionImpl.java | 238 ---- .../minigames/impl/MinigamePluginImpl.java | 270 ---- .../mce/minigames/impl/MinigameWrapper.java | 298 ----- .../mce/minigames/impl/MinigamesPlugin.java | 1116 ----------------- .../mce/minigames/impl/arena/ArenaImpl.java | 270 ---- .../impl/arena/ArenaTypeBuilderImpl.java | 486 ------- .../impl/arena/ArenaTypeDeclarationImpl.java | 118 -- .../minigames/impl/cmd/AddCommandHandler.java | 73 -- .../impl/cmd/AdminCommandHandler.java | 73 -- .../impl/cmd/CreateCommandHandler.java | 143 --- .../impl/cmd/DebugCommandHandler.java | 73 -- .../impl/cmd/EditCommandHandler.java | 73 -- .../impl/cmd/GetOptCommandHandler.java | 73 -- .../impl/cmd/InfoArenasCommandHandler.java | 109 -- .../impl/cmd/InfoCommandHandler.java | 97 -- .../cmd/InfoExtensionsCommandHandler.java | 81 -- .../impl/cmd/InfoMinigamesCommandHandler.java | 81 -- .../impl/cmd/JoinCommandHandler.java | 73 -- .../impl/cmd/LeaveCommandHandler.java | 73 -- .../impl/cmd/ListCommandHandler.java | 73 -- .../minigames/impl/cmd/Mg2CommandHandler.java | 66 - .../impl/cmd/PartyAcceptCommandHandler.java | 72 -- .../impl/cmd/PartyCommandHandler.java | 80 -- .../impl/cmd/PartyDisbandCommandHandler.java | 72 -- .../impl/cmd/PartyInviteCommandHandler.java | 72 -- .../impl/cmd/PartyKickCommandHandler.java | 72 -- .../impl/cmd/PartyLeaveCommandHandler.java | 72 -- .../impl/cmd/PartyListCommandHandler.java | 72 -- .../impl/cmd/RemoveCommandHandler.java | 73 -- .../impl/cmd/SaveCommandHandler.java | 73 -- .../impl/cmd/SetOptCommandHandler.java | 73 -- .../impl/cmd/StartCommandHandler.java | 85 -- .../impl/cmd/TestCommandHandler.java | 73 -- .../impl/component/AbstractComponent.java | 68 - .../component/AbstractCuboidComponent.java | 141 --- .../impl/component/ComponentRegistry.java | 106 -- .../minigames/impl/component/WorldChunk.java | 162 --- .../impl/context/DefaultResolver.java | 218 ---- .../minigames/impl/msg/MessagesConfig.java | 228 ---- .../impl/player/ArenaPlayerImpl.java | 172 --- .../minigames/impl/player/PlayerRegistry.java | 105 -- .../PremiumServiceProviderInterface.java | 38 - .../mgapi/impl/ExtensionImpl.java | 6 + .../mgapi/impl/MglibMessages.java | 5 +- .../minigameslib/mgapi/impl/MglibPerms.java | 8 +- .../minigameslib/mgapi/impl/MinigameImpl.java | 6 + ...ListCommand.java => ArenaListCommand.java} | 36 +- .../mgapi/impl/cmd/ArenasCommand.java | 112 ++ .../mgapi/impl/cmd/InfoExtensionCommand.java | 216 ++++ .../mgapi/impl/cmd/InfoMinigameCommand.java | 50 +- 71 files changed, 439 insertions(+), 8759 deletions(-) delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java delete mode 100644 APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java delete mode 100644 APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java delete mode 100644 LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java rename LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/{MinigameArenaListCommand.java => ArenaListCommand.java} (62%) create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java deleted file mode 100644 index 6ba2d626..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MglibInterface.java +++ /dev/null @@ -1,437 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.services.ExtensionInterface; -import com.github.mce.minigames.api.services.MinigameExtensionInterface; -import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; -import com.github.mce.minigames.api.team.TeamId; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.impl.comp.ComponentId; -import de.minigameslib.mgapi.api.LibState; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; - -/** - * Base interface to access the minigames API. - * - * @author mepeisen - */ -public interface MglibInterface -{ - - // initialization - - /** - * Registers a new extension. - * - * @param extension - * minigame extension to register. - * @return the minigame extension - * @throws McException - * thrown if the minigame with given name is already registered. - */ - MinigameExtensionInterface register(MinigameExtensionProviderInterface extension) throws McException; - - /** - * Registers a new minigame; should be called in {@link JavaPlugin#onEnable()}. - * - * <p> - * It is possible to let a plugin register multiple minigames at once. Simply call this method with multiple instances of providers. - * </p> - * - * @param provider - * the plugin provider class. - * @return The minigame plugin interface, some kind of administrational interface. - * - * @throws McException - * thrown if the minigame with given name is already registered. - */ - MinigamePluginInterface register(PluginProviderInterface provider) throws McException; - - // main api - - /** - * Returns the arena type provider for given arena type. - * - * @param type - * the arena type - * @return type provider or {@code null} if it was not defined. - */ - ArenaTypeProvider getProviderFromArenaType(ArenaTypeInterface type); - - /** - * Returns the arena type provider for given rule. - * - * @param rule - * the rule - * @return type provider or {@code null} if it was not defined. - */ - ArenaTypeProvider getProviderFromRule(RuleId rule); - - /** - * Returns the arena type provider for given team. - * - * @param team - * the team - * @return type provider or {@code null} if it was not defined. - */ - ArenaTypeProvider getProviderFromTeam(TeamId team); - - /** - * Returns the arena type provider for given component. - * - * @param component - * the component - * @return type provider or {@code null} if it was not defined. - */ - ArenaTypeProvider getProviderFromComponent(ComponentId component); - - /** - * Returns the arena type provider for given phase. - * - * @param phase - * the phase - * @return type provider or {@code null} if it was not defined. - */ - ArenaTypeProvider getProviderFromMatch(MatchPhaseId phase); - - /** - * Return the amount of installed extensions. - * - * @return extensions count. - */ - int getExtensionsCount(); - - /** - * Return the installed extensions. - * - * @return extensions. - */ - Iterable<ExtensionInterface> getExtensions(); - - /** - * Return the amount of installed minigames. - * - * @return minigames count. - */ - int getMinigamesCount(); - - /** - * Return the installed minigames. - * - * @return minigames. - */ - Iterable<MinigameInterface> getMinigames(); - - /** - * Returns the minigame with given name. - * - * @param minigame - * the minigames name - * - * @return the minigame or {@code null} if is not available. - */ - MinigameInterface getMinigame(String minigame); - - // zone api - - /** - * Finds a zone by location. - * - * <p> - * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. - * </p> - * - * <p> - * The method will return the first zone it finds. - * </p> - * - * @param location bukkit location - * - * @return Zone or {@code null} if no zone was found. - * - * @see Cuboid#containsLoc(Location) - */ - ZoneInterface findZone(Location location); - - /** - * Finds all zones by location. - * - * <p> - * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. - * </p> - * - * <p> - * The method will return every zone that contains given location. Even if multiple zones are overlapping. - * </p> - * - * @param location bukkit location - * - * @return Zone or {@code null} if no zone was found. - * - * @see Cuboid#containsLoc(Location) - */ - Iterable<ZoneInterface> findZones(Location location); - - /** - * Finds a zone by location. - * - * <p> - * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. - * </p> - * - * <p> - * The method will return the first zone it finds. - * </p> - * - * @param location bukkit location - * - * @return Zone or {@code null} if no zone was found. - * - * @see Cuboid#containsLocWithoutY(Location) - */ - ZoneInterface findZoneWithoutY(Location location); - - /** - * Finds all zones by location. - * - * <p> - * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. - * </p> - * - * <p> - * The method will return every zone that contains given location. Even if multiple zones are overlapping. - * </p> - * - * @param location bukkit location - * - * @return Zone or {@code null} if no zone was found. - * - * @see Cuboid#containsLocWithoutY(Location) - */ - Iterable<ZoneInterface> findZonesWithoutY(Location location); - - /** - * Finds a zone by location. - * - * <p> - * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. - * </p> - * - * <p> - * The method will return the first zone it finds. - * </p> - * - * @param location bukkit location - * - * @return Zone or {@code null} if no zone was found. - * - * @see Cuboid#containsLocWithoutYD(Location) - */ - ZoneInterface findZoneWithoutYD(Location location); - - /** - * Finds all zones by location. - * - * <p> - * Zones are parts of a minigame arena having bounds. If the given location is inside the bounds (inclusive) this method will return the zone. - * </p> - * - * <p> - * The method will return every zone that contains given location. Even if multiple zones are overlapping. - * </p> - * - * @param location bukkit location - * - * @return Zone or {@code null} if no zone was found. - * - * @see Cuboid#containsLocWithoutYD(Location) - */ - Iterable<ZoneInterface> findZonesWithoutYD(Location location); - - // player api - - /** - * Returns the player for given bukkit player. - * - * @param player bukkit online player - * @return arena player. - */ - ArenaPlayerInterface getPlayer(Player player); - - /** - * Returns the player for given bukkit player. - * - * @param player bukkit offline player - * @return arena player. - */ - ArenaPlayerInterface getPlayer(OfflinePlayer player); - - /** - * Returns the player for given bukkit player uuid. - * - * @param uuid player uuid - * @return arena player. - */ - ArenaPlayerInterface getPlayer(UUID uuid); - - // sign api - - /** - * Returns all declared arena/join signs - * - * @return arena signs. - */ - Iterable<SignInterface> getSigns(); - - /** - * Returns the sign on given location. - * - * @param l - * bukkit location - * @return sign or {@code null} if there is no sign. - */ - SignInterface getSignForLocation(Location l); - - /** - * Returns all declared arena/join signs for given arena type. - * - * @param type - * arena type. - * - * @return arena signs. - */ - Iterable<SignInterface> getSigns(ArenaTypeInterface type); - - /** - * Returns all declared arena/join signs for given arena - * - * @param arena - * the arena. - * - * @return arena signs. - */ - Iterable<SignInterface> getSigns(ArenaInterface arena); - - /** - * Returns all declared arena/join signs for given minigame - * - * @param minigame - * the minigame. - * - * @return arena signs. - */ - Iterable<SignInterface> getSigns(MinigameInterface minigame); - - // arena api - - /** - * Returns all known arena types. - * - * @return known arena types. - */ - Iterable<ArenaTypeInterface> getArenaTypes(); - - /** - * Returns all declared arenas. - * - * @return declared arenas. - */ - Iterable<ArenaInterface> getArenas(); - - /** - * Return the amount of arenas. - * - * @return amount of arenas. - */ - int getArenaCount(); - - /** - * Returns all arenas of given type. - * - * @param type - * arena type. - * @return the arenas of given type. - */ - Iterable<ArenaInterface> getArenas(ArenaTypeInterface type); - - /** - * Tries to find an arena from location. - * - * @param location - * bukkit location - * @return arena or {@code null} if the location does not match an arena - */ - ArenaInterface getArenaFromLocation(Location location); - - // common singleton getter - - /** - * Singleton access. - */ - public final class INSTANCE - { - - /** cached instance. */ - private static MglibInterface CACHED; - - /** - * hidden constructor. - */ - private INSTANCE() - { - // hidden constructor - } - - /** - * Returns the minigames lib plugin. - * - * @return minigames lib plugin. - */ - public static MglibInterface get() - { - if (CACHED == null) - { - final Plugin mgplugin = Bukkit.getServer().getPluginManager().getPlugin("MinigamesLib2"); //$NON-NLS-1$ - if (!(mgplugin instanceof MglibInterface)) - { - throw new IllegalStateException("Invalid minigames lib or inactive plugin."); //$NON-NLS-1$ - } - final MglibInterface mglib = (MglibInterface) mgplugin; - CACHED = mglib; - } - return CACHED; - } - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java deleted file mode 100644 index a51fdee3..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinecraftVersionsType.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -package com.github.mce.minigames.api; - -/** - * Supported versions of minecraft. - * - * @author mepeisen - */ -public enum MinecraftVersionsType -{ - /** an unknown version/ not supported. */ - Unknown(false, "invalid"), //$NON-NLS-1$ - - /** any 1.7 version. */ - V1_7(true, "v1_7_R1"), //$NON-NLS-1$ - - /** V1.7 R1 */ - V1_7_R1(true, "v1_7_R1"), //$NON-NLS-1$ - - /** V1.7 R2 */ - V1_7_R2(true, "v1_7_R2"), //$NON-NLS-1$ - - /** V1.7 R3 */ - V1_7_R3(true, "v1_7_R3"), //$NON-NLS-1$ - - /** V1.7 R4 */ - V1_7_R4(true, "v1_7_R4"), //$NON-NLS-1$ - - /** any 1.8 version. */ - V1_8(true, "v1_8_R1"), //$NON-NLS-1$ - - /** V1.8 R1 */ - V1_8_R1(true, "v1_8_R1"), //$NON-NLS-1$ - - /** V1.8 R2 */ - V1_8_R2(true, "v1_8_R2"), //$NON-NLS-1$ - - /** V1.8 R3 */ - V1_8_R3(true, "v1_8_R3"), //$NON-NLS-1$ - - /** any 1.9 version. */ - V1_9(true, "v1_9_R1"), //$NON-NLS-1$ - - /** V1.9 R1 */ - V1_9_R1(true, "v1_9_R1"), //$NON-NLS-1$ - - /** V1.9 R2 */ - V1_9_R2(true, "v1_9_R2"), //$NON-NLS-1$ - - /** any 1.10 version. */ - V1_10(true, "v1_10_R1"), //$NON-NLS-1$ - - /** V1.10 R1 */ - V1_10_R1(true, "v1_10_R1"); //$NON-NLS-1$ - - /** - * {@code true} if this version is still supported. - */ - private final boolean isSupported; - - /** the maven version string for update requests. */ - private final String mavenVersion; - - /** - * Constructor to create a version. - * - * @param supported - * true for support. - * @param mavenVersion - * the maven version string for update queries. - */ - private MinecraftVersionsType(final boolean supported, final String mavenVersion) - { - this.isSupported = supported; - this.mavenVersion = mavenVersion; - } - - /** - * {@code true} if this version is still supported. - * - * @return {@code true} if this version is still supported. - */ - public boolean isSupported() - { - return this.isSupported; - } - - /** - * Checks if this version equals given version. - * - * <p> - * Notice: Pseudo versions (V1_7) will match every V1_7_R* version. - * </p> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isEqual(final MinecraftVersionsType type) - { - switch (this) - { - case V1_10: - return type == V1_10 || type == V1_10_R1; - case V1_7: - return type == V1_7 || type == V1_7_R1 || type == V1_7_R2 || type == V1_7_R3 || type == V1_7_R4; - case V1_8: - return type == V1_8 || type == V1_8_R1 || type == V1_8_R2 || type == V1_8_R3; - case V1_9: - return type == V1_9 || type == V1_9_R1 || type == V1_9_R2; - // $CASES-OMITTED$ - default: - switch (type) - { - case V1_10: - return this == V1_10 || this == V1_10_R1; - case V1_7: - return this == V1_7 || this == V1_7_R1 || this == V1_7_R2 || this == V1_7_R3 || this == V1_7_R4; - case V1_8: - return this == V1_8 || this == V1_8_R1 || this == V1_8_R2 || this == V1_8_R3; - case V1_9: - return this == V1_9 || this == V1_9_R1 || this == V1_9_R2; - // $CASES-OMITTED$ - default: - return type == this; - } - } - } - - /** - * Checks if this version is below given version. - * - * <ul> - * <li>V1_7 will be below V1_8*.</li> - * <li>V1_7_R3 will be below V1_7_R4.</li> - * </ul> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isBelow(final MinecraftVersionsType type) - { - if (this.isEqual(type)) - { - return false; - } - return this.ordinal() < type.ordinal(); - } - - /** - * Checks if this version is after given version. - * - * <ul> - * <li>V1_8 will be after V1_7*.</li> - * <li>V1_7_R4 will be after V1_7_R3.</li> - * </ul> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isAfter(final MinecraftVersionsType type) - { - if (this.isEqual(type)) - { - return false; - } - return this.ordinal() > type.ordinal(); - } - - /** - * Checks if this version is at least given version. - * - * <ul> - * <li>V1_7_R4 will be at least V1_7.</li> - * <li>V1_7_R3 will be after V1_7_R2.</li> - * </ul> - * - * @param type - * version to compare to. - * @return {@code true} if this version matches given version. - */ - public boolean isAtLeast(final MinecraftVersionsType type) - { - if (this.isEqual(type)) - { - return true; - } - return this.ordinal() > type.ordinal(); - } - - /** - * Returns the maven version string for update queries. - * - * @return maven version string. - */ - public String mavenVersionString() - { - return this.mavenVersion; - } - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java deleted file mode 100644 index 4c22bc18..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/MinigamePluginInterface.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; - -import de.minigameslib.mclib.api.McContext.ContextHandlerInterface; -import de.minigameslib.mclib.api.McContext.ContextResolverInterface; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * The minigame plugin interface; administrational backend for the given minigame. - * - * <p> - * This interface is returned upon minigame initialization. - * </p> - * - * @author mepeisen - */ -public interface MinigamePluginInterface extends MinigameInterface -{ - - // initialization. - - /** - * Creates a new arena type. - * - * @param name - * internal name of the arena type. - * @param type - * arena type. - * @param isDefault - * {@code true} if this is the default arena type for this minigame. - * @return the type builder. - * @throws McException - * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. - */ - ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException; - - /** - * Registers a context handler to calculate context variables. - * - * @param clazz - * context class. - * @param handler - * the context handler. - * @throws McException - * thrown if the class to register is already registered. - * @param <T> - * context class to register - */ - <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws McException; - - /** - * Registers a helper to resolve context variables. - * - * @param resolver - * the context resolver - * @throws McException - * thrown on errors - */ - void registerContextResolver(ContextResolverInterface resolver) throws McException; - - /** - * Initialize this minigame. - * - * <p> - * This method must be called at the end of the initialization process. - * </p> - * - * @throws McException - * thrown if the minigame declarations are not valid. - */ - void init() throws McException; - - /** - * Will be called from plugin as soon as the plugin is disabled. - * - * @throws McException - * thrown if there are problems disabling the plugin. - */ - void disable() throws McException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java deleted file mode 100644 index d5124b87..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/RuleId.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -/** - * Base interface for all rules identifications. - * - * <p> - * You should not use this interface directly. Use the child interfaces instead. - * </p> - * - * @author mepeisen - */ -public interface RuleId -{ - - /** - * Returns the name of the enumeration value. - * - * @return enumeration value name. - */ - String name(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java deleted file mode 100644 index 0bab6bb7..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaSessionTypeInterface.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -/** - * An interface for enumerations that represent arena session types. - * - * @author mepeisen - */ -public interface ArenaSessionTypeInterface -{ - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java deleted file mode 100644 index 194b93c1..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeBuilderInterface.java +++ /dev/null @@ -1,487 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.api.team.TeamRuleSet; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.impl.comp.ComponentId; - -/** - * A builder to create arena types. - * - * <p> - * Get an instance of this object via {@link MinigamePluginInterface#createArenaType(String, ArenaTypeInterface, boolean)}. - * </p> - * - * @author mepeisen - */ -public interface ArenaTypeBuilderInterface -{ - -// /** -// * Applies rule sets to this arena type. -// * -// * @param set -// * the arena rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if the arena rule set was invalid. -// */ -// ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) throws McException; -// -// /** -// * Applies rule sets for administration. -// * -// * @param set -// * the admin rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if the admin rule set was invalid. -// */ -// ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws McException; -// -// /** -// * Applies rule sets for components. -// * -// * @param set -// * the component rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if the component rule set was invalid. -// */ -// ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws McException; -// -// /** -// * Applies rule sets for running match. -// * -// * @param set -// * the match rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if the match rule set was invalid. -// */ -// ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws McException; -// -// /** -// * Applies rule sets for players within arenas. -// * -// * @param set -// * the player rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if the player rule set was invalid. -// */ -// ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws McException; -// -// /** -// * Applies rule sets for teams within arenas. -// * -// * @param set -// * the team rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if the team rule set was invalid. -// */ -// ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws McException; -// -// /** -// * Applies components to this arena type. -// * -// * @param ids -// * the components set. -// * @return this object for chaining. -// * @throws McException -// * thrown if the components set was invalid. -// */ -// ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws McException; -// -// /** -// * Applies teams to this arena type. -// * -// * @param ids -// * the teams. -// * @return this object for chaining. -// * @throws McException -// * thrown if the teams set was invalid. -// */ -// ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws McException; -// -// /** -// * Returns the currently applied teams. -// * -// * @return components set; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<TeamId> getTeams() throws McException; -// -// /** -// * Removes components from this team. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the components. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeTeams(TeamId... set) throws McException; -// -// /** -// * Returns the currently applied components. -// * -// * @return components set; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<ComponentId> getComponents() throws McException; -// -// /** -// * Removes components from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the components. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws McException; -// -// /** -// * Returns the currently applied rule sets. -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<ArenaRuleSet> getArenaRuleSets() throws McException; -// -// /** -// * Removes rule sets from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the arena rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws McException; -// -// /** -// * Returns the currently applied rule sets. -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<AdminRuleSet> getAdminRuleSets() throws McException; -// -// /** -// * Removes rule sets from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the admin rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws McException; -// -// /** -// * Returns the currently component rule sets. -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<ComponentRuleSet> getComponentRuleSets() throws McException; -// -// /** -// * Removes rule sets from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the component rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws McException; -// -// /** -// * Returns the currently applied rule sets. -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<MatchRuleSet> getMatchRuleSets() throws McException; -// -// /** -// * Removes rule sets from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the arena rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws McException; -// -// /** -// * Returns the currently applied rule sets. -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<PlayerRuleSet> getPlayerRuleSets() throws McException; -// -// /** -// * Removes rule sets from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the arena rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws McException; -// -// /** -// * Returns the currently applied rule sets. -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<TeamRuleSet> getTeamRuleSets() throws McException; -// -// /** -// * Removes rule sets from this arena type. -// * -// * <p> -// * If this method is called with rule sets that are not applied to this type this method silently ignores it. That means: Removing unknown rule sets does not throw exceptions. -// * </p> -// * -// * @param set -// * the arena rule sets. -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws McException; -// -// /** -// * Selects the starting phase for this arena type. -// * -// * @param phase -// * starting phase -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws McException; -// -// /** -// * Adds a match phase -// * -// * @param phases -// * match phase -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws McException; -// -// /** -// * Returns the starting phase. -// * -// * @return starting phase. -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// MatchPhaseId getStartingPhase() throws McException; -// -// /** -// * Returns the currently applied phases (excluding start phase). -// * -// * @return rule sets; changes (remove) will be reflected back to this builder -// * @throws McException -// * thrown if this method is called after {@link MinigamePluginInterface#init()} was called. -// */ -// Iterable<MatchPhaseId> getPhases() throws McException; -// -// /** -// * Inherits all phases (including start phase) from given arena; this method must be called at first before manipulating the phases. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all phases (excluding start phase) from given arena; this method must be called at first before manipulating the phases. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits the start phase but not the other phases from given arena; this method must be called at first before manipulating the phases. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all arena rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all match rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all player rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all team rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all admin rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all component rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all rules from given arena; this method must be called at first before manipulating the rule sets. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all components from given arena; this method must be called at first before manipulating the components. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits all teams from given arena; this method must be called at first before manipulating the components. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws McException; -// -// /** -// * Inherits everything (all phases and all rules) from given arena. -// * -// * @param type the arena type to inherit from -// * @return this object for chaining. -// * @throws McException -// * thrown if this method is called twice or too late. -// */ -// ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws McException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java deleted file mode 100644 index cd76ac93..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypeDeclarationInterface.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * Interface for arena type declarations. - * - * @author mepeisen - */ -public interface ArenaTypeDeclarationInterface -{ - - /** - * Returns the type of this declaration. - * - * @return arena type - */ - ArenaTypeInterface getType(); - - /** - * Checks if this is the default of declaring minigame. - * - * @return {@code true} if this is the default type. - */ - boolean isDefault(); - - /** - * Creates a new arena - * - * @param arenaName - * the internal arena name to be created - * @return the newly created arena - * @throws McException - * thrown if the name is already in use or if the arena type is invalid - */ - ArenaInterface createArena(String arenaName) throws McException; - - /** - * Returns the arena type name - * - * @return arena type name - */ - String getName(); - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java b/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java deleted file mode 100644 index 1ea929c2..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaTypes.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Annotation for enumerations declaring arena types. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(TYPE) -public @interface ArenaTypes -{ - - // marker only - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java b/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java deleted file mode 100644 index add3ca07..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/perms/CommonPermissions.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.perms; - -import de.minigameslib.mclib.api.perms.Permission; -import de.minigameslib.mclib.api.perms.Permissions; -import de.minigameslib.mclib.api.perms.PermissionsInterface; - -/** - * Common permissions within minigames lib. - * - * @author mepeisen - */ -@Permissions("$PERM:MGLIB$") -public enum CommonPermissions implements PermissionsInterface -{ - - /** - * Permission to perform the start command. - */ - @Permission("command.start") - Start, - - /** - * Permission to perform the info command. - */ - @Permission("command.info.common") - Info, - - /** - * Permission to perform the info command. - */ - @Permission("command.info.extensions") - InfoExtensions, - - /** - * Permission to perform the info command. - */ - @Permission("command.info.minigames") - InfoMinigames, - - /** - * Permission to perform the info command. - */ - @Permission("command.info.arenas") - InfoArenas, - - /** - * Permission to perform the create command. - */ - @Permission("command.create") - Create, - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java deleted file mode 100644 index 69f07736..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/ExtensionInterface.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.services; - -import java.io.Serializable; - -import com.github.mce.minigames.api.MglibInterface; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * A special extension for the minigames library. - * - * <p> - * Extensions can be installed through {@link MglibInterface#register(MinigameExtensionProviderInterface)}. - * They behave different from minigames. Mainly they are responsible to add additional features to - * the library. They do not install any arena type nor do they provide any game. - * </p> - * - * @author mepeisen - */ -public interface ExtensionInterface -{ - - /** - * Returns the name of the extension. - * - * @return extension name. - */ - String getName(); - - /** - * Returns the short description of the extension. - * - * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. - */ - Serializable getShortDescription(); - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java deleted file mode 100644 index 735d345b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionInterface.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.services; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * A special extension for the minigames library. - * - * <p> - * Extensions can be installed through {@link MglibInterface#register(MinigameExtensionProviderInterface)}. - * They behave different from minigames. Mainly they are responsible to add additional features to - * the library. They do not install any arena type nor do they provide any game. - * </p> - * - * @author mepeisen - */ -public interface MinigameExtensionInterface extends ExtensionInterface -{ - - /** - * Creates a new arena type. - * - * @param name - * internal name of the arena type. - * @param type - * arena type. - * @param isDefault - * {@code true} if this is the default arena type for this minigame. - * @return the type builder. - * @throws McException - * thrown if the arena type is invalid or if the name is already taken or if you try to create two default arena types.. - */ - ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException; - - /** - * Will be called from plugin as soon as the plugin is disabled. - * - * @throws McException - * thrown if there are problems disabling the extension. - */ - void disable() throws McException; - - /** - * Initialize this extension. - * - * <p> - * This method must be called at the end of the initialization process. - * </p> - * - * @throws McException - * thrown if the extension declarations are not valid. - */ - void init() throws McException; - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java b/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java deleted file mode 100644 index 71593e2b..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/services/MinigameExtensionProviderInterface.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.services; - -import java.io.Serializable; - -import com.github.mce.minigames.api.CommonProviderInterface; -import com.github.mce.minigames.api.MglibInterface; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * A special extension for the minigames library. - * - * <p> - * Extensions can be installed through {@link MglibInterface#register(MinigameExtensionProviderInterface)}. - * They behave different from minigames. Mainly they are responsible to add additional features to - * the library. They do not install any arena type nor do they provide any game. - * </p> - * - * @author mepeisen - */ -public interface MinigameExtensionProviderInterface extends CommonProviderInterface -{ - - /** - * Returns the name of the extension. - * - * @return extension name. - */ - String getName(); - - /** - * Returns the short description of the extension. - * - * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. - */ - Serializable getShortDescription(); - - // TODO - -} diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java b/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java deleted file mode 100644 index 3f3ae2e6..00000000 --- a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleId.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.team; - -import com.github.mce.minigames.api.RuleId; - -/** - * - * An interface used in enumerations to identify the team rules. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * - * @author mepeisen - * - */ -public interface TeamRuleId extends RuleId -{ - - // marker only - -} diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java index 0f13fe05..6dfc7cb1 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java @@ -58,6 +58,12 @@ public interface ExtensionInterface * @return multi-line description */ LocalizedMessageInterface getDescription(); + + /** + * Returns a how-to-use manual, mainly for administrators + * @return how-to-use manual, mainly for adminstrators + */ + LocalizedMessageInterface getManual(); /** * Returns the bukkit plugin owning the minigame. diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java index 0fab796f..d299bffb 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java @@ -58,4 +58,10 @@ public interface ExtensionProvider */ LocalizedMessageInterface getDescription(); + /** + * Returns a how-to-use manual, mainly for administrators + * @return how-to-use manual, mainly for adminstrators + */ + LocalizedMessageInterface getManual(); + } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java index ed1d08f3..f7cded17 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java @@ -60,10 +60,16 @@ public interface MinigameInterface LocalizedMessageInterface getDescription(); /** - * Returns a how-to-play manual - * @return how-to-play manual + * Returns a how-to-use manual, mainly for administrators + * @return how-to-use manual, mainly for adminstrators */ LocalizedMessageInterface getManual(); + + /** + * Returns a how-to-play manual, default for arenas without customized manual + * @return how-to-play manual, default for arenas without customized manual + */ + LocalizedMessageInterface getHowToPlay(); /** * Returns the bukkit plugin owning the minigame. diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java index 44d0f87b..9cff6e7f 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java @@ -59,9 +59,15 @@ public interface MinigameProvider LocalizedMessageInterface getDescription(); /** - * Returns a how-to-play manual - * @return how-to-play manual + * Returns a how-to-use manual, mainly for administrators + * @return how-to-use manual, mainly for adminstrators */ LocalizedMessageInterface getManual(); + /** + * Returns a how-to-play manual, default for arenas without customized manual + * @return how-to-play manual, default for arenas without customized manual + */ + LocalizedMessageInterface getHowToPlay(); + } diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java deleted file mode 100644 index 30f64cec..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/VersionTypeTest.java +++ /dev/null @@ -1,336 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.github.mce.minigames.api.MinecraftVersionsType; - -/** - * Test for {@link MinecraftVersionsType}. - * - * @author mepeisen - * @see MinecraftVersionsType - */ -public class VersionTypeTest -{ - - /** - * tests the ordinal values. - */ - @Test - public void testOrdinals() - { - assertEquals(0, MinecraftVersionsType.Unknown.ordinal()); - assertEquals(1, MinecraftVersionsType.V1_7.ordinal()); - assertEquals(2, MinecraftVersionsType.V1_7_R1.ordinal()); - assertEquals(3, MinecraftVersionsType.V1_7_R2.ordinal()); - assertEquals(4, MinecraftVersionsType.V1_7_R3.ordinal()); - assertEquals(5, MinecraftVersionsType.V1_7_R4.ordinal()); - assertEquals(6, MinecraftVersionsType.V1_8.ordinal()); - assertEquals(7, MinecraftVersionsType.V1_8_R1.ordinal()); - assertEquals(8, MinecraftVersionsType.V1_8_R2.ordinal()); - assertEquals(9, MinecraftVersionsType.V1_8_R3.ordinal()); - assertEquals(10, MinecraftVersionsType.V1_9.ordinal()); - assertEquals(11, MinecraftVersionsType.V1_9_R1.ordinal()); - assertEquals(12, MinecraftVersionsType.V1_9_R2.ordinal()); - assertEquals(13, MinecraftVersionsType.V1_10.ordinal()); - assertEquals(14, MinecraftVersionsType.V1_10_R1.ordinal()); - } - - /** - * Tests the supported flags. - */ - @Test - public void testSupported() - { - assertFalse(MinecraftVersionsType.Unknown.isSupported()); - assertTrue(MinecraftVersionsType.V1_7.isSupported()); - assertTrue(MinecraftVersionsType.V1_7_R1.isSupported()); - assertTrue(MinecraftVersionsType.V1_7_R2.isSupported()); - assertTrue(MinecraftVersionsType.V1_7_R3.isSupported()); - assertTrue(MinecraftVersionsType.V1_7_R4.isSupported()); - assertTrue(MinecraftVersionsType.V1_8.isSupported()); - assertTrue(MinecraftVersionsType.V1_8_R1.isSupported()); - assertTrue(MinecraftVersionsType.V1_8_R2.isSupported()); - assertTrue(MinecraftVersionsType.V1_9.isSupported()); - assertTrue(MinecraftVersionsType.V1_9_R1.isSupported()); - assertTrue(MinecraftVersionsType.V1_9_R2.isSupported()); - assertTrue(MinecraftVersionsType.V1_10.isSupported()); - assertTrue(MinecraftVersionsType.V1_10_R1.isSupported()); - } - - /** - * tests the isEqual method - */ - @Test - public void testEquals() - { - assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R1)); - assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R2)); - assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R3)); - assertTrue(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_7_R4)); - assertTrue(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7_R1)); - assertTrue(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.V1_7_R2.isEqual(MinecraftVersionsType.V1_7_R2)); - assertTrue(MinecraftVersionsType.V1_7_R2.isEqual(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.V1_7_R3.isEqual(MinecraftVersionsType.V1_7_R3)); - assertTrue(MinecraftVersionsType.V1_7_R3.isEqual(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_7_R4)); - assertTrue(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_7)); - - assertTrue(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_8_R2)); - assertTrue(MinecraftVersionsType.V1_8_R1.isEqual(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.V1_8_R1.isEqual(MinecraftVersionsType.V1_8)); - assertTrue(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.V1_8_R2)); - assertTrue(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.V1_8)); - - assertTrue(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_9_R1)); - assertTrue(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_9_R2)); - assertTrue(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.V1_9_R1)); - assertTrue(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.V1_9)); - assertTrue(MinecraftVersionsType.V1_9_R2.isEqual(MinecraftVersionsType.V1_9_R2)); - assertTrue(MinecraftVersionsType.V1_9_R2.isEqual(MinecraftVersionsType.V1_9)); - - assertTrue(MinecraftVersionsType.V1_10.isEqual(MinecraftVersionsType.V1_10_R1)); - assertTrue(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_10_R1)); - assertTrue(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_10)); - - assertTrue(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.Unknown)); - - assertFalse(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_10.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_8_R2.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_9_R1.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_9)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_10)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.Unknown.isEqual(MinecraftVersionsType.V1_10_R1)); - - assertFalse(MinecraftVersionsType.V1_7.isEqual(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_9.isEqual(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_8.isEqual(MinecraftVersionsType.V1_10)); - assertFalse(MinecraftVersionsType.V1_7_R1.isEqual(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7_R4.isEqual(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.V1_10_R1.isEqual(MinecraftVersionsType.V1_9_R2)); - } - - /** - * tests the isBelow method - */ - @Test - public void testIsBelow() - { - assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R1)); - assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R3)); - assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7_R1)); - assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.V1_7_R2.isBelow(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7_R2.isBelow(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.V1_7_R3.isBelow(MinecraftVersionsType.V1_7_R3)); - assertFalse(MinecraftVersionsType.V1_7_R3.isBelow(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_7)); - - assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_8_R2)); - assertFalse(MinecraftVersionsType.V1_8_R1.isBelow(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.V1_8_R1.isBelow(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.V1_8_R2)); - assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.V1_8)); - - assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_9_R1)); - assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.V1_9_R1)); - assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.V1_9)); - assertFalse(MinecraftVersionsType.V1_9_R2.isBelow(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.V1_9_R2.isBelow(MinecraftVersionsType.V1_9)); - - assertFalse(MinecraftVersionsType.V1_10.isBelow(MinecraftVersionsType.V1_10_R1)); - assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_10_R1)); - assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_10)); - - assertFalse(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.Unknown)); - - assertFalse(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_10.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_8_R2.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_9_R1.isBelow(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_8)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_9)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_10)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_7_R4)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_9_R2)); - assertTrue(MinecraftVersionsType.Unknown.isBelow(MinecraftVersionsType.V1_10_R1)); - - assertTrue(MinecraftVersionsType.V1_7.isBelow(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_9.isBelow(MinecraftVersionsType.V1_8)); - assertTrue(MinecraftVersionsType.V1_8.isBelow(MinecraftVersionsType.V1_10)); - assertTrue(MinecraftVersionsType.V1_7_R1.isBelow(MinecraftVersionsType.V1_7_R2)); - assertTrue(MinecraftVersionsType.V1_7_R4.isBelow(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.V1_10_R1.isBelow(MinecraftVersionsType.V1_9_R2)); - } - - /** - * tests the isAfter method - */ - @Test - public void testIsAfter() - { - assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R1)); - assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R3)); - assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7_R1)); - assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.V1_7_R2.isAfter(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7_R2.isAfter(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.V1_7_R3.isAfter(MinecraftVersionsType.V1_7_R3)); - assertFalse(MinecraftVersionsType.V1_7_R3.isAfter(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_7)); - - assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_8_R2)); - assertFalse(MinecraftVersionsType.V1_8_R1.isAfter(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.V1_8_R1.isAfter(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.V1_8_R2)); - assertFalse(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.V1_8)); - - assertFalse(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_9_R1)); - assertFalse(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.V1_9_R1)); - assertFalse(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.V1_9)); - assertFalse(MinecraftVersionsType.V1_9_R2.isAfter(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.V1_9_R2.isAfter(MinecraftVersionsType.V1_9)); - - assertFalse(MinecraftVersionsType.V1_10.isAfter(MinecraftVersionsType.V1_10_R1)); - assertFalse(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_10_R1)); - assertFalse(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_10)); - - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.Unknown)); - - assertTrue(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_10.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_8_R2.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_9_R1.isAfter(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_9)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_10)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.Unknown.isAfter(MinecraftVersionsType.V1_10_R1)); - - assertFalse(MinecraftVersionsType.V1_7.isAfter(MinecraftVersionsType.V1_8)); - assertTrue(MinecraftVersionsType.V1_9.isAfter(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_8.isAfter(MinecraftVersionsType.V1_10)); - assertFalse(MinecraftVersionsType.V1_7_R1.isAfter(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7_R4.isAfter(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.V1_10_R1.isAfter(MinecraftVersionsType.V1_9_R2)); - } - - /** - * tests the isAtLeast method - */ - @Test - public void testIsAtLeast() - { - assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R1)); - assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R2)); - assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R3)); - assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_7_R4)); - assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7_R1)); - assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.V1_7_R2.isAtLeast(MinecraftVersionsType.V1_7_R2)); - assertTrue(MinecraftVersionsType.V1_7_R2.isAtLeast(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.V1_7_R3.isAtLeast(MinecraftVersionsType.V1_7_R3)); - assertTrue(MinecraftVersionsType.V1_7_R3.isAtLeast(MinecraftVersionsType.V1_7)); - assertTrue(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_7_R4)); - assertTrue(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_7)); - - assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_8_R2)); - assertTrue(MinecraftVersionsType.V1_8_R1.isAtLeast(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.V1_8_R1.isAtLeast(MinecraftVersionsType.V1_8)); - assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.V1_8_R2)); - assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.V1_8)); - - assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_9_R1)); - assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_9_R2)); - assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.V1_9_R1)); - assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.V1_9)); - assertTrue(MinecraftVersionsType.V1_9_R2.isAtLeast(MinecraftVersionsType.V1_9_R2)); - assertTrue(MinecraftVersionsType.V1_9_R2.isAtLeast(MinecraftVersionsType.V1_9)); - - assertTrue(MinecraftVersionsType.V1_10.isAtLeast(MinecraftVersionsType.V1_10_R1)); - assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_10_R1)); - assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_10)); - - assertTrue(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.Unknown)); - - assertTrue(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_10.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_8_R2.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_9_R1.isAtLeast(MinecraftVersionsType.Unknown)); - assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.Unknown)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_7)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_9)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_10)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_7_R4)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_8_R1)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_9_R2)); - assertFalse(MinecraftVersionsType.Unknown.isAtLeast(MinecraftVersionsType.V1_10_R1)); - - assertFalse(MinecraftVersionsType.V1_7.isAtLeast(MinecraftVersionsType.V1_8)); - assertTrue(MinecraftVersionsType.V1_9.isAtLeast(MinecraftVersionsType.V1_8)); - assertFalse(MinecraftVersionsType.V1_8.isAtLeast(MinecraftVersionsType.V1_10)); - assertFalse(MinecraftVersionsType.V1_7_R1.isAtLeast(MinecraftVersionsType.V1_7_R2)); - assertFalse(MinecraftVersionsType.V1_7_R4.isAtLeast(MinecraftVersionsType.V1_8_R1)); - assertTrue(MinecraftVersionsType.V1_10_R1.isAtLeast(MinecraftVersionsType.V1_9_R2)); - } - -} diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java b/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java deleted file mode 100644 index cc3941a1..00000000 --- a/APIv2/src/test/java/com/github/mce/minigames/api/test/perms/CommonPermissionsTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.perms; - -import org.junit.Test; - -import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.api.test.SharedUtil; - -/** - * test case for {@link CommonPermissions} - * - * @author mepeisen - */ -public class CommonPermissionsTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(CommonPermissions.class); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java deleted file mode 100644 index 348a79ab..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/BaseImpl.java +++ /dev/null @@ -1,463 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.plugin.java.JavaPlugin; - -import com.github.mce.minigames.impl.msg.MessagesConfig; - -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.MessagesConfigInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; - -/** - * Basic support for extensions and minigames. - * - * @author mepeisen - */ -class BaseImpl implements ArenaTypeProvider -{ - - /** - * the messages configuration. - */ - private final MessagesConfig messages; - - /** - * The declaring java plugin. - */ - protected final JavaPlugin plugin; - - /** - * The configuration files. - */ - private final Map<String, FileConfiguration> configurations = new HashMap<>(); - - /** - * The default configurations. - */ - private Map<String, List<ConfigurationValueInterface>> defaultConfigs; - - /** the minigames plugin. */ - protected final MinigamesPlugin mgplugin; - - /** - * Constructor to create the component. - * - * @param mgplugin - * minigames plugin - * @param plugin - * the java plugin. - */ - public BaseImpl(MinigamesPlugin mgplugin, JavaPlugin plugin) - { - this.plugin = plugin; - this.messages = new MessagesConfig(this.plugin); - this.mgplugin = mgplugin; - } - - /** - * Returns the messages config interface - * - * @return messages config - */ - public MessagesConfigInterface getMessages() - { - return this.messages; - } - - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaTypeProvider#getDisplayName() - */ - @Override - public LocalizedMessageInterface getDisplayName() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaTypeProvider#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaTypeProvider#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription() - { - // TODO Auto-generated method stub - return null; - } - -// @Override -// public FileConfiguration getConfig(String file) -// { -// if (file.contains("/") || file.contains("..") || file.contains(":") || file.contains("\\")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ -// { -// throw new IllegalArgumentException("Invalid character in file name."); //$NON-NLS-1$ -// } -// if (file.equals("messages.yml")) //$NON-NLS-1$ -// { -// throw new IllegalArgumentException("Invalid file name."); //$NON-NLS-1$ -// } -// return this.configurations.computeIfAbsent(file, (f) -> { -// FileConfiguration fileConfig = null; -// final File fobj = new File(this.plugin.getDataFolder(), file); -// if (file.equals("config.yml")) //$NON-NLS-1$ -// { -// fileConfig = this.plugin.getConfig(); -// } -// else -// { -// fileConfig = YamlConfiguration.loadConfiguration(fobj); -// } -// -// final List<ConfigurationValueInterface> list = this.defaultConfigs.get(file); -// if (list != null) -// { -// for (final ConfigurationValueInterface cfg : list) -// { -// try -// { -// final ConfigurationValues clazzDef = cfg.getClass().getAnnotation(ConfigurationValues.class); -// final Field field = cfg.getClass().getDeclaredField(((Enum<?>) cfg).name()); -// // final ConfigurationValue valueDef = .getAnnotation(LocalizedMessage.class); -// if (clazzDef == null) -// { -// throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ -// } -// -// if (field.getAnnotation(ConfigurationBool.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationBool.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationBoolList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationBoolList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationByte.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationByte.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationByteList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationByteList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationCharacter.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationCharacter.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationCharacterList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationCharacterList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationDouble.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationDouble.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationDoubleList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationDoubleList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationFloat.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationFloat.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationFloatList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationFloatList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationInt.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationInt.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationIntList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationIntList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationLong.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationLong.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationLongList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationLongList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationShort.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationShort.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationShortList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationShortList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationString.class) != null) -// { -// fileConfig.addDefault(cfg.path(), field.getAnnotation(ConfigurationString.class).defaultValue()); -// } -// -// if (field.getAnnotation(ConfigurationStringList.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Arrays.asList(field.getAnnotation(ConfigurationStringList.class).defaultValue())); -// } -// -// if (field.getAnnotation(ConfigurationColor.class) != null) -// { -// fileConfig.addDefault(cfg.path(), Color.fromRGB((field.getAnnotation(ConfigurationColor.class).defaultRgb()))); -// } -// } -// catch (NoSuchFieldException ex) -// { -// throw new IllegalStateException(ex); -// } -// } -// fileConfig.options().copyDefaults(true); -// try -// { -// fileConfig.save(fobj); -// } -// catch (IOException e) -// { -// // TODO logging -// e.printStackTrace(); -// } -// } -// -// return fileConfig; -// }); -// } - -// @Override -// public void saveConfig(String file) -// { -// final File fobj = new File(this.plugin.getDataFolder(), file); -// try -// { -// this.getConfig(file).save(fobj); -// } -// catch (IOException e) -// { -// // TODO logging -// e.printStackTrace(); -// } -// } -// -// /** -// * Initializes the messages with given localized messages. -// * -// * @param msgs -// */ -// void initMessage(List<LocalizedMessageInterface> msgs) -// { -// this.messages.initMessage(msgs); -// } -// -// /** -// * Initializes the configuration files. -// * -// * @param configs -// */ -// void initConfgurations(Map<String, List<ConfigurationValueInterface>> configs) -// { -// this.defaultConfigs = configs; -// } -// -// /** -// * @param rules -// */ -// public void initRules(List<RuleId> rules) -// { -// // TODO Auto-generated method stub -// -// } -// -// /** -// * @param components -// */ -// public void initComponents(List<ComponentId> components) -// { -// // TODO Auto-generated method stub -// -// } -// -// /** -// * @param plist -// */ -// public void initPhases(List<MatchPhaseId> plist) -// { -// // TODO Auto-generated method stub -// -// } -// -// /** -// * @param tlist -// */ -// public void initTeams(List<TeamId> tlist) -// { -// // TODO Auto-generated method stub -// -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() -// */ -// @Override -// public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() -// */ -// @Override -// public ArenaTypeDeclarationInterface getDefaultType() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) -// */ -// @Override -// public ArenaTypeDeclarationInterface getType(String name) -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() -// */ -// @Override -// public Iterable<AdminRuleId> getAdminRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() -// */ -// @Override -// public Iterable<MatchRuleId> getMatchRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() -// */ -// @Override -// public Iterable<PlayerRuleId> getPlayerRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() -// */ -// @Override -// public Iterable<TeamRuleId> getTeamRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() -// */ -// @Override -// public Iterable<ComponentRuleId> getComponentRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() -// */ -// @Override -// public Iterable<ArenaRuleId> getArenaRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() -// */ -// @Override -// public Iterable<ComponentId> getComponents() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() -// */ -// @Override -// public Iterable<MatchPhaseId> getMatchPhases() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() -// */ -// @Override -// public Iterable<TeamId> getTeams() -// { -// // TODO Auto-generated method stub -// return null; -// } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java deleted file mode 100644 index 3f234dc2..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/CoreMinigame.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.bukkit.plugin.java.JavaPlugin; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.PluginProviderInterface; -import com.github.mce.minigames.api.config.CommonConfig; -import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.impl.cmd.Mg2CommandHandler; -import com.github.mce.minigames.impl.cmd.PartyCommandHandler; -import com.github.mce.minigames.impl.cmd.StartCommandHandler; - -import de.minigameslib.mclib.api.cmd.CommandHandlerInterface; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.perms.PermissionsInterface; - -/** - * @author mepeisen - * - */ -final class CoreMinigame implements PluginProviderInterface -{ - - /** the core plugin. */ - private final MinigamesPlugin plugin; - - /** - * Constructor. - * @param plugin - */ - public CoreMinigame(MinigamesPlugin plugin) - { - this.plugin = plugin; - } - - @Override - public String getName() - { -// return MglibInterface.CORE_MINIGAME; - return null; - } - - @Override - public Iterable<Class<? extends LocalizedMessageInterface>> getMessageClasses() - { - final List<Class<? extends LocalizedMessageInterface>> result = new ArrayList<>(); - result.add(CommonErrors.class); - result.add(CommonMessages.class); - return result; - } - - @Override - public JavaPlugin getJavaPlugin() - { - return this.plugin; - } - - @Override - public Map<String, CommandHandlerInterface> getBukkitCommands() - { - final Map<String, CommandHandlerInterface> result = new HashMap<>(); - result.put("start", new StartCommandHandler()); //$NON-NLS-1$ - result.put("party", new PartyCommandHandler()); //$NON-NLS-1$ - result.put("mg2", new Mg2CommandHandler()); //$NON-NLS-1$ - return result; - } - - @Override - public Iterable<Class<? extends PermissionsInterface>> getPermissions() - { - final List<Class<? extends PermissionsInterface>> result = new ArrayList<>(); - result.add(CommonPermissions.class); - return result; - } - - @Override - public Iterable<Class<? extends ConfigurationValueInterface>> getConfigurations() - { - final List<Class<? extends ConfigurationValueInterface>> result = new ArrayList<>(); - result.add(CommonConfig.class); - return result; - } - - @Override - public Serializable getShortDescription() - { - return CommonMessages.CoreMinigameDescription.toArg(); - } - - @Override - public Serializable getDescription() - { - return CommonMessages.CoreMinigameLongDescription.toListArg(); - } -} \ No newline at end of file diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java deleted file mode 100644 index a452642f..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/ExtensionImpl.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.io.Serializable; - -import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.services.MinigameExtensionInterface; -import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * - * - * @author mepeisen - */ -class ExtensionImpl extends BaseImpl implements MinigameExtensionInterface -{ - - /** the extension name. */ - private final String name; - - /** the extension description. */ - private Serializable description; - - /** - * Constructor. - * - * @param name - * @param mgplugin - * @param provider - */ - public ExtensionImpl(MinigamesPlugin mgplugin, String name, MinigameExtensionProviderInterface provider) - { - super(mgplugin, provider.getJavaPlugin()); - this.name = name; - this.description = provider.getShortDescription(); - } - - @Override - public String getName() - { - return this.name; - } - - @Override - public LocalizedMessageInterface getShortDescription() - { - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#disable() - */ - @Override - public void disable() throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#createArenaType(java.lang.String, com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) - */ - @Override - public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#init() - */ - @Override - public void init() throws McException - { - // TODO Auto-generated method stub - - } - -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDeclaredTypes() -// */ -// @Override -// public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getDefaultType() -// */ -// @Override -// public ArenaTypeDeclarationInterface getDefaultType() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getType(java.lang.String) -// */ -// @Override -// public ArenaTypeDeclarationInterface getType(String name) -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() -// */ -// @Override -// public Iterable<AdminRuleId> getAdminRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() -// */ -// @Override -// public Iterable<MatchRuleId> getMatchRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() -// */ -// @Override -// public Iterable<PlayerRuleId> getPlayerRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() -// */ -// @Override -// public Iterable<TeamRuleId> getTeamRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() -// */ -// @Override -// public Iterable<ComponentRuleId> getComponentRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() -// */ -// @Override -// public Iterable<ArenaRuleId> getArenaRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() -// */ -// @Override -// public Iterable<ComponentId> getComponents() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() -// */ -// @Override -// public Iterable<MatchPhaseId> getMatchPhases() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() -// */ -// @Override -// public Iterable<TeamId> getTeams() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#createArenaType(java.lang.String, com.github.mce.minigames.api.arena.ArenaTypeInterface, boolean) -// */ -// @Override -// public ArenaTypeBuilderInterface createArenaType(String name, ArenaTypeInterface type, boolean isDefault) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.services.MinigameExtensionInterface#init() -// */ -// @Override -// public void init() throws McException -// { -// // TODO Auto-generated method stub -// -// } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java deleted file mode 100644 index 86732d28..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamePluginImpl.java +++ /dev/null @@ -1,270 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.TreeMap; -import java.util.logging.Logger; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.PluginProviderInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.impl.arena.ArenaImpl; -import com.github.mce.minigames.impl.arena.ArenaTypeBuilderImpl; -import com.github.mce.minigames.impl.component.ComponentRegistry; - -import de.minigameslib.mclib.api.McContext.ContextHandlerInterface; -import de.minigameslib.mclib.api.McContext.ContextResolverInterface; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * The minigames plugin impl. - * - * @author mepeisen - */ -public class MinigamePluginImpl extends BaseImpl implements MinigamePluginInterface -{ - - /** - * The minigame name. - */ - private final String name; - - /** - * the known arena types of this minigame. - */ - private final Map<ArenaTypeInterface, ArenaTypeDeclarationInterface> arenaTypes = new HashMap<>(); - - /** - * the known arena types of this minigame. - */ - private final Map<String, ArenaTypeInterface> arenaTypesByName = new HashMap<>(); - - /** - * the known arena types of this minigame. - */ - private final Map<String, ArenaTypeBuilderImpl> arenaTypeBuildersByName = new HashMap<>(); - - /** - * the default arena type to use. - */ - private ArenaTypeDeclarationInterface defaultType; - - /** - * Short description - */ - private Serializable shortDescription; - - /** - * Long multi line description - */ - private Serializable longDescription; - - /** - * The component registry to be used for registering components - */ - private final ComponentRegistry components; - - /** - * {@code true} if this plugin is already initialized. - */ - private boolean initialized; - - /** the arenas. */ - private final Map<String, ArenaImpl> arenas = new TreeMap<>(); - - /** a counter used for arena restart after booting. */ - private static int restartArenaTaskCount = 1; - - /** - * Constructor to create a minigame. - * - * @param mgplugin - * minigames plugin - * @param name - * internal name of the minigame. - * @param provider - * the provider. - * @param components - * the component registry to use for registering components - */ - public MinigamePluginImpl(MinigamesPlugin mgplugin, String name, PluginProviderInterface provider, ComponentRegistry components) - { - super(mgplugin, provider.getJavaPlugin()); - this.name = name; - this.shortDescription = provider.getShortDescription(); - this.longDescription = provider.getDescription(); - this.components = components; - } - - @Override - public String getName() - { - return this.name; - } - - @Override - public void init() - { - for (final Map.Entry<String, ArenaTypeBuilderImpl> entry : this.arenaTypeBuildersByName.entrySet()) - { - final ArenaTypeDeclarationInterface type = entry.getValue().build(); - if (type.isDefault()) - { - this.defaultType = type; - } - this.arenaTypesByName.put(entry.getKey(), type.getType()); - this.arenaTypes.put(type.getType(), type); - } - this.arenaTypesByName.clear(); - - // load arenas from config. -// final ConfigurationSection arenasSection = this.getConfig("arenas.yml").getConfigurationSection("arenas"); //$NON-NLS-1$ //$NON-NLS-2$ -// if (arenasSection != null) -// { -// for (final String key : arenasSection.getKeys(false)) -// { -// this.plugin.getLogger().log(Level.INFO, "Reloading arena " + key + " from config."); //$NON-NLS-1$ //$NON-NLS-2$ -// try -// { -// final ArenaImpl arena = new ArenaImpl(key, this, this.components); -// this.arenas.put(key.toLowerCase(), arena); -// if (arena.isEnabled()) -// { -// synchronized (this) -// { -// Bukkit.getScheduler().runTaskLaterAsynchronously(this.plugin, () -> { -// arena.tryRestart(); -// }, 10L * restartArenaTaskCount); -// restartArenaTaskCount++; -// } -// } -// } -// catch (Exception ex) -// { -// this.plugin.getLogger().log(Level.SEVERE, "Failed loading arena " + key + " from config.", ex); //$NON-NLS-1$ //$NON-NLS-2$ -// } -// } -// } - - this.initialized = true; - } - - @Override - public Iterable<ArenaInterface> getArenas() - { - return new ArrayList<>(this.arenas.values()); - } - - @Override - public ArenaInterface getArena(String arenaName) - { - return this.arenas.get(arenaName); - } - - @Override - public int getArenaCount() - { - return this.arenas.size(); - } - - @Override - public ArenaTypeBuilderInterface createArenaType(String typename, ArenaTypeInterface type, boolean isDefault) throws McException - { - if (this.initialized) - { - throw new McException(CommonErrors.Cannot_Create_ArenaType_Wrong_State, typename, this.name); - } - if (this.arenaTypeBuildersByName.containsKey(typename.toLowerCase())) - { - throw new McException(CommonErrors.DuplicateArenaType, typename, this.name); - } - - final ArenaTypeBuilderImpl builder = new ArenaTypeBuilderImpl(typename, type, isDefault, this.components, this.arenas, this); - this.arenaTypeBuildersByName.put(typename.toLowerCase(), builder); - return builder; - } - - @Override - public Logger getLogger() - { - return this.plugin.getLogger(); - } - - @Override - public <T> void registerContextHandler(Class<T> clazz, ContextHandlerInterface<T> handler) throws McException - { -// this.mgplugin.getApiContext().registerContextHandler(clazz, handler); - } - - @Override - public void registerContextResolver(ContextResolverInterface resolver) throws McException - { -// this.mgplugin.getApiContext().registerContextResolver(resolver); - } - - @Override - public LocalizedMessageInterface getShortDescription() - { - return null; - } - - @Override - public Serializable getLongDescription() - { - return this.longDescription; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigamePluginInterface#disable() - */ - @Override - public void disable() throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.config.ConfigInterface#getConfig(java.lang.String) - */ - @Override - public DataSection getConfig(String file) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.config.ConfigInterface#saveConfig(java.lang.String) - */ - @Override - public void saveConfig(String file) - { - // TODO Auto-generated method stub - - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java deleted file mode 100644 index e545579a..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigameWrapper.java +++ /dev/null @@ -1,298 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.io.Serializable; -import java.util.logging.Logger; - -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; - -import de.minigameslib.mclib.api.locale.MessagesConfigInterface; -import de.minigameslib.mclib.shared.api.com.DataSection; - -/** - * A read-only wrapper around minigame plugin impl - * - * @author mepeisen - * - */ -public class MinigameWrapper implements MinigameInterface -{ - - /** - * The underlying minigame plugin impl. - */ - private MinigamePluginInterface delegate; - - /** - * @param delegate The underlying minigame plugin impl. - */ - public MinigameWrapper(MinigamePluginInterface delegate) - { - this.delegate = delegate; - } - - @Override - public String getName() - { - return this.delegate.getName(); - } - - @Override - public MessagesConfigInterface getMessages() - { - return this.delegate.getMessages(); - } - - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.config.ConfigInterface#getConfig(java.lang.String) - */ - @Override - public DataSection getConfig(String file) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.config.ConfigInterface#saveConfig(java.lang.String) - */ - @Override - public void saveConfig(String file) - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getArenas() - */ - @Override - public Iterable<ArenaInterface> getArenas() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getArenaCount() - */ - @Override - public int getArenaCount() - { - // TODO Auto-generated method stub - return 0; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getArena(java.lang.String) - */ - @Override - public ArenaInterface getArena(String name) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getLogger() - */ - @Override - public Logger getLogger() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getShortDescription() - */ - @Override - public Serializable getShortDescription() - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MinigameInterface#getLongDescription() - */ - @Override - public Serializable getLongDescription() - { - // TODO Auto-generated method stub - return null; - } - -// @Override -// public Iterable<ArenaTypeDeclarationInterface> getDeclaredTypes() -// { -// return this.delegate.getDeclaredTypes(); -// } -// -// @Override -// public Iterable<ArenaInterface> getArenas() -// { -// return this.delegate.getArenas(); -// } -// -// @Override -// public ArenaInterface getArena(String name) -// { -// return this.delegate.getArena(name); -// } -// -// @Override -// public Logger getLogger() -// { -// return this.delegate.getLogger(); -// } -// -// @Override -// public ConfigurationSection getConfig(String file) -// { -// return this.delegate.getConfig(file); -// } -// -// @Override -// public void saveConfig(String file) -// { -// this.delegate.saveConfig(file); -// } -// -// @Override -// public Serializable getShortDescription() -// { -// return this.delegate.getShortDescription(); -// } -// -// @Override -// public Serializable getLongDescription() -// { -// return this.delegate.getLongDescription(); -// } -// -// @Override -// public int getArenaCount() -// { -// return this.delegate.getArenaCount(); -// } -// -// @Override -// public ArenaTypeDeclarationInterface getDefaultType() -// { -// return this.delegate.getDefaultType(); -// } -// -// @Override -// public ArenaTypeDeclarationInterface getType(String name) -// { -// return this.delegate.getType(name); -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getAdminRules() -// */ -// @Override -// public Iterable<AdminRuleId> getAdminRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchRules() -// */ -// @Override -// public Iterable<MatchRuleId> getMatchRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getPlayerRules() -// */ -// @Override -// public Iterable<PlayerRuleId> getPlayerRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeamRules() -// */ -// @Override -// public Iterable<TeamRuleId> getTeamRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponentRules() -// */ -// @Override -// public Iterable<ComponentRuleId> getComponentRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getArenaRules() -// */ -// @Override -// public Iterable<ArenaRuleId> getArenaRules() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getComponents() -// */ -// @Override -// public Iterable<ComponentId> getComponents() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getMatchPhases() -// */ -// @Override -// public Iterable<MatchPhaseId> getMatchPhases() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeProvider#getTeams() -// */ -// @Override -// public Iterable<TeamId> getTeams() -// { -// // TODO Auto-generated method stub -// return null; -// } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java deleted file mode 100644 index 68e2cfa4..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/MinigamesPlugin.java +++ /dev/null @@ -1,1116 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.OfflinePlayer; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.plugin.java.JavaPlugin; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.CommonProviderInterface; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinecraftVersionsType; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.PluginProviderInterface; -import com.github.mce.minigames.api.RuleId; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.MatchPhaseId; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; -import com.github.mce.minigames.api.services.ExtensionInterface; -import com.github.mce.minigames.api.services.MinigameExtensionInterface; -import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; -import com.github.mce.minigames.api.team.TeamId; -import com.github.mce.minigames.impl.component.AbstractCuboidComponent; -import com.github.mce.minigames.impl.component.ComponentRegistry; -import com.github.mce.minigames.impl.component.WorldChunk; -import com.github.mce.minigames.impl.player.PlayerRegistry; -import com.github.mce.minigames.impl.services.PremiumServiceProviderInterface; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandHandlerInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.impl.comp.ComponentId; -import de.minigameslib.mgapi.api.LibState; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; - -/** - * A plugin for minigames. - * - * @author mepeisen - */ -public class MinigamesPlugin extends JavaPlugin implements MglibInterface, Listener -{ - - /** the overall minecraft server versioon. */ - public static final MinecraftVersionsType SERVER_VERSION = MinigamesPlugin.getServerVersion(); - - /** the well known minigames. */ - private final Map<String, MinigamePluginImpl> minigames = new TreeMap<>(); - - /** the well known extensions. */ - private final Map<String, ExtensionImpl> extensions = new TreeMap<>(); - - /** Current library state. */ - private LibState state = LibState.Initializing; - - /** known command handlers by name. */ - private final Map<String, CommandHandlerInterface> commands = new HashMap<>(); - - /** messages to minigames. */ - private final Map<LocalizedMessageInterface, String> messagesToMinigame = new HashMap<>(); - - /** options to minigames. */ - private final Map<ConfigurationValueInterface, String> optionsToMinigame = new HashMap<>(); - - /** messages to extensions. */ - private final Map<LocalizedMessageInterface, String> messagesToExtension = new HashMap<>(); - - /** options to extensions. */ - private final Map<ConfigurationValueInterface, String> optionsToExtension = new HashMap<>(); - - private final Map<RuleId, String> rulesToMinigame = new HashMap<>(); - - private final Map<RuleId, String> rulesToExtension = new HashMap<>(); - - private final Map<ArenaTypeInterface, String> typesToMinigame = new HashMap<>(); - - private final Map<ArenaTypeInterface, String> typesToExtension = new HashMap<>(); - - private final Map<TeamId, String> teamsToMinigame = new HashMap<>(); - - private final Map<TeamId, String> teamsToExtension = new HashMap<>(); - - private final Map<ComponentId, String> componentsToMinigame = new HashMap<>(); - - private final Map<ComponentId, String> componentsToExtension = new HashMap<>(); - - private final Map<MatchPhaseId, String> phasesToMinigame = new HashMap<>(); - - private final Map<MatchPhaseId, String> phasesToExtension = new HashMap<>(); - - /** - * the players registry. - */ - private final PlayerRegistry players = new PlayerRegistry(); - - /** - * the premium extension (if available) - */ - private PremiumServiceProviderInterface premium; - - /** - * The component registry. - */ - private final ComponentRegistry components = new ComponentRegistry(); - - /** - * Constructor to create the plugin. - */ - public MinigamesPlugin() - { - // registers the core minigame. -// try -// { -// final MinigamePluginInterface mg2 = this.register(new CoreMinigame(this)); -// -// // context provider -//// mg2.registerContextHandler(ArenaPlayerInterface.class, new ArenaPlayerInterfaceProvider()); -//// mg2.registerContextHandler(MinigameInterface.class, new MinigameInterfaceProvider()); -//// mg2.registerContextHandler(ArenaInterface.class, new ArenaInterfaceProvider()); -//// ArenaPlayerImpl.registerProvider(mg2); -//// -//// // resolver -//// mg2.registerContextResolver(new DefaultResolver()); -//// -//// mg2.init(); -//// -//// this.getLogger().log(Level.INFO, "MinigamesLib2 finihes initialization. Minecraft version: " + this.getMinecraftVersion()); //$NON-NLS-1$ -// } -// catch (McException ex) -// { -// // log it, although this should never happen -// // because in constructor we neither are in wrong state -// // nor do we already know the 'core' minigame -// this.getLogger().log(Level.SEVERE, "Error registering core minigame", ex); //$NON-NLS-1$ -// } - -// this.events = this.nmsFactory == null ? null : this.nmsFactory.create(EventSystemInterface.class); - } - -// /** -// * Returns the nms factory. -// * -// * @return nms factory -// */ -// public static NmsFactory nms() -// { -// return ((MinigamesPlugin) MglibInterface.INSTANCE.get()).nmsFactory; -// } - - @Override - public void onDisable() - { - this.state = LibState.Terminating; - // TODO Auto-generated method stub - } - - @Override - public void onEnable() - { -// if (this.nmsFactory == null) -// { -// this.getLogger().severe("Running on non-supported minecraft version. Disabling minigames."); //$NON-NLS-1$ -// } -// else -// { -// getServer().getPluginManager().registerEvents(this, this); -// getServer().getPluginManager().registerEvents(this.events, this); -// Bukkit.getScheduler().runTaskLaterAsynchronously(this, () -> { -// this.state = LibState.Running; -// }, 1L); -// } - } - - /** - * Calculates the minecraft server version. - * - * @return Minecraft server version. - */ - private static MinecraftVersionsType getServerVersion() - { - try - { - final String v = Bukkit.getServer().getClass().getPackage().getName().substring(Bukkit.getServer().getClass().getPackage().getName().lastIndexOf(".") + 1); //$NON-NLS-1$ - if (v.startsWith("v1_7_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R1; - } - if (v.startsWith("v1_7_R2")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R2; - } - if (v.startsWith("v1_7_R3")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R3; - } - if (v.startsWith("v1_7_R4")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_7_R4; - } - if (v.startsWith("v1_8_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_8_R1; - } - if (v.startsWith("v1_8_R2")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_8_R2; - } - if (v.startsWith("v1_8_R3")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_8_R3; - } - if (v.startsWith("v1_9_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_9_R1; - } - if (v.startsWith("v1_9_R2")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_9_R2; - } - if (v.startsWith("v1_10_R1")) //$NON-NLS-1$ - { - return MinecraftVersionsType.V1_10_R1; - } - } - catch (@SuppressWarnings("unused") Exception ex) - { - // silently ignore - } - return MinecraftVersionsType.Unknown; - } - - // event handlersEventHandler - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) - { -// if (this.getState() != LibState.Running) -// { -// sender.sendMessage("MinigamesLib is disabled!"); //$NON-NLS-1$ -// return false; -// } -// final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); -// if (handler != null) -// { -// if (this.debug()) -// { -// this.getLogger().log(Level.FINE, sender + " calls command " + command.getName() + " - " + Arrays.toString(args)); //$NON-NLS-1$//$NON-NLS-2$ -// } -// final CommandInterface cmd = new CommandImpl(sender, this, command, label, args, '/' + command.getName()); -// -// this.contextImpl.runInContext(cmd, () -> { -// try -// { -// handler.handle(cmd); -// } -// catch (McException ex) -// { -// if (this.debug()) -// { -// this.getLogger().log(Level.FINE, "Caught minigame exception during command execution: " + command.getName() + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$ -// } -// final Locale locale = this.getDefaultLocale(); -// final boolean isAdmin = sender.isOp(); -// String[] msgs = null; -// if (ex.getCode().isSingleLine()) -// { -// msgs = new String[] { isAdmin ? (ex.getCode().toAdminMessage(locale, ex.getArgs())) : (ex.getCode().toUserMessage(locale, ex.getArgs())) }; -// } -// else -// { -// msgs = isAdmin ? (ex.getCode().toAdminMessageLine(locale, ex.getArgs())) : (ex.getCode().toUserMessageLine(locale, ex.getArgs())); -// } -// for (final String msg : msgs) -// { -// switch (ex.getCode().getSeverity()) -// { -// default: -// case Error: -// sender.sendMessage(ChatColor.DARK_RED + msg); -// break; -// case Information: -// sender.sendMessage(ChatColor.WHITE + msg); -// break; -// case Loser: -// sender.sendMessage(ChatColor.RED + msg); -// break; -// case Success: -// sender.sendMessage(ChatColor.GREEN + msg); -// break; -// case Warning: -// sender.sendMessage(ChatColor.YELLOW + msg); -// break; -// case Winner: -// sender.sendMessage(ChatColor.GOLD + msg); -// break; -// } -// } -// } -// }); -// return true; -// } - return false; - } - - @Override - public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) - { -// if (this.getState() != LibState.Running) -// { -// return null; -// } -// String lastArg = null; -// String[] newArgs = null; -// if (args.length > 0) -// { -// lastArg = args[args.length - 1].toLowerCase(); -// newArgs = Arrays.copyOf(args, args.length - 1); -// } -// final CommandHandlerInterface handler = this.commands.get(command.getName().toLowerCase()); -// if (handler != null) -// { -// final CommandInterface cmd = new CommandImpl(sender, this, command, null, newArgs, '/' + command.getName()); -// final AtomicReference<List<String>> ref = new AtomicReference<>(); -// final String la = lastArg; -// this.contextImpl.runInContext(cmd, () -> { -// try -// { -// ref.set(handler.onTabComplete(cmd, la)); -// } -// catch (McException ex) -// { -// if (this.debug()) -// { -// this.getLogger().log(Level.FINE, "Caught minigame exception during tab completion: " + command.getName() + " " + la + " - " + Arrays.toString(args), ex); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ -// } -// } -// }); -// return ref.get(); -// } - return null; - } - - // api methods - - @Override - public MinigamePluginInterface register(PluginProviderInterface provider) throws McException - { - final String name = provider.getName(); - - MinigamePluginImpl impl; - - synchronized (this.minigames) - { - if (this.state != LibState.Initializing && this.state != LibState.Sleeping) - { - throw new McException(CommonErrors.Cannot_Create_Game_Wrong_State, name, this.state.name()); - } - if (this.minigames.containsKey(name.toLowerCase())) - { - throw new McException(CommonErrors.DuplicateMinigame, name); - } - - impl = new MinigamePluginImpl(this, name, provider, this.components); - - // register commands - registerCommands(name, "minigame", provider.getBukkitCommands()); //$NON-NLS-1$ - - // register messages - this.registerMessages(provider, name, impl, this.messagesToMinigame); - - // register configurations - this.registerOptions(provider, name, impl, this.optionsToMinigame); - - // rules - this.registerRules(provider, name, impl, this.rulesToMinigame); - - // components - this.registerComponents(provider, name, impl, this.componentsToMinigame); - - // teams - this.registerTeams(provider, name, impl, this.teamsToMinigame); - - // match phases - this.registerMatchPhases(provider, name, impl, this.phasesToMinigame); - - // finally register it - this.minigames.put(name.toLowerCase(), impl); - } - - return impl; - } - - @Override - public MinigameInterface getMinigame(String minigame) - { - final MinigamePluginImpl impl = this.minigames.get(minigame.toLowerCase()); - return impl == null ? null : new MinigameWrapper(impl); - } - - @Override - public int getMinigamesCount() - { - return this.minigames.size(); - } - - @Override - public Iterable<MinigameInterface> getMinigames() - { - final List<MinigameInterface> result = new ArrayList<>(); - for (final MinigamePluginImpl plugin : this.minigames.values()) - { - result.add(new MinigameWrapper(plugin)); - } - return result; - } - - @Override - public ArenaPlayerInterface getPlayer(Player player) - { - return this.players.getPlayer(player); - } - - @Override - public ArenaPlayerInterface getPlayer(OfflinePlayer player) - { - return this.players.getPlayer(player); - } - - @Override - public ArenaPlayerInterface getPlayer(UUID uuid) - { - return this.players.getPlayer(uuid); - } - - /** - * Returns the mode as string - * - * @return either "OS" or "PREMIUM" - */ - public String getModeString() - { - return this.premium == null ? "OS" : "PREMIUM"; //$NON-NLS-1$ //$NON-NLS-2$ - } - - @Override - public int getExtensionsCount() - { - return this.extensions.size(); - } - - @Override - public Iterable<ExtensionInterface> getExtensions() - { - return new ArrayList<>(this.extensions.values()); - } - - @Override - public MinigameExtensionInterface register(MinigameExtensionProviderInterface provider) throws McException - { - final String name = provider.getName(); - - ExtensionImpl impl; - - synchronized (this.extensions) - { - if (this.state != LibState.Initializing && this.state != LibState.Sleeping) - { - throw new McException(CommonErrors.Cannot_Create_Extension_Wrong_State, name, this.state.name()); - } - if (this.extensions.containsKey(name)) - { - throw new McException(CommonErrors.DuplicateExtension, name); - } - - impl = new ExtensionImpl(this, name, provider); - - // register commands - registerCommands(name, "extension", provider.getBukkitCommands()); //$NON-NLS-1$ - - // register messages - registerMessages(provider, name, impl, this.messagesToExtension); - - // register configurations - registerOptions(provider, name, impl, this.optionsToExtension); - - // register rules - registerRules(provider, name, impl, this.rulesToExtension); - - // components - this.registerComponents(provider, name, impl, this.componentsToExtension); - - // teams - this.registerTeams(provider, name, impl, this.teamsToExtension); - - // match phases - this.registerMatchPhases(provider, name, impl, this.phasesToExtension); - - // premium support - if (provider instanceof PremiumServiceProviderInterface) - { - this.premium = (PremiumServiceProviderInterface) provider; - - for (final Map.Entry<String, SubCommandHandlerInterface> entry : this.premium.getAdditionalCommands().entrySet()) - { - final String[] path = entry.getKey().split("\\."); //$NON-NLS-1$ - AbstractCompositeCommandHandler cur = (AbstractCompositeCommandHandler) this.commands.get("mg2"); //$NON-NLS-1$ - for (int i = 0; i < path.length - 1; i++) - { - cur = (AbstractCompositeCommandHandler) cur.getSubCommand(path[i]); - } - cur.injectSubCommand(path[path.length - 1], entry.getValue()); - } - } - - // finally register it - this.extensions.put(name, impl); - } - - return impl; - } - - - /** - * Registers the team ids. - * @param provider - * @param name - * @param impl - * @param teamMap - */ - private void registerTeams(CommonProviderInterface provider, final String name, BaseImpl impl, Map<TeamId, String> teamMap) - { - final List<TeamId> tlist = new ArrayList<>(); - -// final Iterable<Class<? extends TeamId>> teamIds = provider.getTeamIds(); -// if (teamIds != null) -// { -// for (final Class<? extends TeamId> idClazz : teamIds) -// { -// for (final TeamId id : idClazz.getEnumConstants()) -// { -// teamMap.put(id, name); -// tlist.add(id); -// } -// } -// } -// -// impl.initTeams(tlist); - } - - - /** - * Registers the component ids. - * @param provider - * @param name - * @param impl - * @param componentMap - */ - private void registerComponents(CommonProviderInterface provider, final String name, BaseImpl impl, Map<ComponentId, String> componentMap) - { - final List<ComponentId> clist = new ArrayList<>(); - -// final Iterable<Class<? extends ComponentId>> compIds = provider.getComponentIds(); -// if (compIds != null) -// { -// for (final Class<? extends ComponentId> idClazz : compIds) -// { -// for (final ComponentId id : idClazz.getEnumConstants()) -// { -// componentMap.put(id, name); -// clist.add(id); -// } -// } -// } -// -// impl.initComponents(clist); - } - - - /** - * Registers the match phase ids. - * @param provider - * @param name - * @param impl - * @param phasesMap - */ - private void registerMatchPhases(CommonProviderInterface provider, final String name, BaseImpl impl, Map<MatchPhaseId, String> phasesMap) - { - final List<MatchPhaseId> plist = new ArrayList<>(); - -// final Iterable<Class<? extends MatchPhaseId>> phasesIds = provider.getMatchPhaseIds(); -// if (phasesIds != null) -// { -// for (final Class<? extends MatchPhaseId> idClazz : phasesIds) -// { -// for (final MatchPhaseId id : idClazz.getEnumConstants()) -// { -// phasesMap.put(id, name); -// plist.add(id); -// } -// } -// } -// -// impl.initPhases(plist); - } - - /** - * Registers the rule ids. - * @param provider - * @param name - * @param impl - * @param ruleMap - */ - private void registerRules(CommonProviderInterface provider, final String name, BaseImpl impl, Map<RuleId, String> ruleMap) - { - final List<RuleId> rules = new ArrayList<>(); - -// final Iterable<Class<? extends AdminRuleId>> adminRuleIds = provider.getAdminRuleIds(); -// if (adminRuleIds != null) -// { -// for (final Class<? extends AdminRuleId> idClazz : adminRuleIds) -// { -// for (final AdminRuleId id : idClazz.getEnumConstants()) -// { -// ruleMap.put(id, name); -// rules.add(id); -// } -// } -// } -// -// final Iterable<Class<? extends ArenaRuleId>> arenaRuleIds = provider.getArenaRuleIds(); -// if (arenaRuleIds != null) -// { -// for (final Class<? extends ArenaRuleId> idClazz : arenaRuleIds) -// { -// for (final ArenaRuleId id : idClazz.getEnumConstants()) -// { -// ruleMap.put(id, name); -// rules.add(id); -// } -// } -// } -// -// final Iterable<Class<? extends ComponentRuleId>> componentRuleIds = provider.getComponentRuleIds(); -// if (componentRuleIds != null) -// { -// for (final Class<? extends ComponentRuleId> idClazz : componentRuleIds) -// { -// for (final ComponentRuleId id : idClazz.getEnumConstants()) -// { -// ruleMap.put(id, name); -// rules.add(id); -// } -// } -// } -// -// final Iterable<Class<? extends MatchRuleId>> matchRuleIds = provider.getMatchRuleIds(); -// if (matchRuleIds != null) -// { -// for (final Class<? extends MatchRuleId> idClazz : matchRuleIds) -// { -// for (final MatchRuleId id : idClazz.getEnumConstants()) -// { -// ruleMap.put(id, name); -// rules.add(id); -// } -// } -// } -// -// final Iterable<Class<? extends PlayerRuleId>> playerRuleIds = provider.getPlayerRuleIds(); -// if (playerRuleIds != null) -// { -// for (final Class<? extends PlayerRuleId> idClazz : playerRuleIds) -// { -// for (final PlayerRuleId id : idClazz.getEnumConstants()) -// { -// ruleMap.put(id, name); -// rules.add(id); -// } -// } -// } -// -// final Iterable<Class<? extends TeamRuleId>> teamRuleIds = provider.getTeamRuleIds(); -// if (teamRuleIds != null) -// { -// for (final Class<? extends TeamRuleId> idClazz : teamRuleIds) -// { -// for (final TeamRuleId id : idClazz.getEnumConstants()) -// { -// ruleMap.put(id, name); -// rules.add(id); -// } -// } -// } -// -// impl.initRules(rules); - } - - /** - * Registers options - * @param provider - * @param name - * @param impl - * @param optMap - */ - private void registerOptions(CommonProviderInterface provider, final String name, BaseImpl impl, Map<ConfigurationValueInterface, String> optMap) - { -// final Map<String, List<ConfigurationValueInterface>> configs = new HashMap<>(); -// final Iterable<Class<? extends ConfigurationValueInterface>> configClasses = provider.getConfigurations(); -// if (configClasses != null) -// { -// for (final Class<? extends ConfigurationValueInterface> cfgClazz : configClasses) -// { -// for (final ConfigurationValueInterface cfg : cfgClazz.getEnumConstants()) -// { -// optMap.put(cfg, name); -// configs.computeIfAbsent(cfgClazz.getAnnotation(ConfigurationValues.class).file(), (key) -> new ArrayList<>()).add(cfg); -// } -// } -// } -// impl.initConfgurations(configs); - } - - /** - * Register the messages. - * @param provider - * @param name - * @param impl - * @param msgMap - */ - private void registerMessages(CommonProviderInterface provider, final String name, BaseImpl impl, final Map<LocalizedMessageInterface, String> msgMap) - { -// final List<LocalizedMessageInterface> messages = new ArrayList<>(); -// final Iterable<Class<? extends LocalizedMessageInterface>> messageClasses = provider.getMessageClasses(); -// if (messageClasses != null) -// { -// for (final Class<? extends LocalizedMessageInterface> msgClazz : messageClasses) -// { -// for (final LocalizedMessageInterface msg : msgClazz.getEnumConstants()) -// { -// msgMap.put(msg, name); -// messages.add(msg); -// } -// } -// } -// impl.initMessage(messages); - } - - /** - * Register the commands - * @param name - * @param type - * @param mgCommands - */ - private void registerCommands(final String name, final String type, final Map<String, CommandHandlerInterface> mgCommands) - { - if (mgCommands != null) - { - for (final Map.Entry<String, CommandHandlerInterface> entry : mgCommands.entrySet()) - { - if (this.commands.containsKey(entry.getKey())) - { - this.getLogger().warning("Duplicate command registration for command \"" + entry.getKey() + "\". Ignoring command from " + type + " \"" + name + "\""); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ - } - else - { - this.commands.put(entry.getKey(), entry.getValue()); - } - } - } - } - - @Override - public ZoneInterface findZone(Location location) - { - for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) - { - if (zone.containsLoc(location)) - return zone; - } - return null; - } - - @Override - public Iterable<ZoneInterface> findZones(Location location) - { - final List<ZoneInterface> result = new ArrayList<>(); - for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) - { - if (zone.containsLoc(location)) - { - result.add(zone); - } - } - return result; - } - - @Override - public ZoneInterface findZoneWithoutY(Location location) - { - for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) - { - if (zone.containsLocWithoutY(location)) - return zone; - } - return null; - } - - @Override - public Iterable<ZoneInterface> findZonesWithoutY(Location location) - { - final List<ZoneInterface> result = new ArrayList<>(); - for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) - { - if (zone.containsLocWithoutY(location)) - { - result.add(zone); - } - } - return result; - } - - @Override - public ZoneInterface findZoneWithoutYD(Location location) - { - for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) - { - if (zone.containsLocWithoutYD(location)) - return zone; - } - return null; - } - - @Override - public Iterable<ZoneInterface> findZonesWithoutYD(Location location) - { - final List<ZoneInterface> result = new ArrayList<>(); - for (final ZoneInterface zone : this.components.fetch(AbstractCuboidComponent.class, new WorldChunk(location))) - { - if (zone.containsLocWithoutYD(location)) - { - result.add(zone); - } - } - return result; - } - - @Override - public Iterable<ArenaTypeInterface> getArenaTypes() - { - final List<ArenaTypeInterface> result = new ArrayList<>(); - for (final MinigamePluginImpl mg : this.minigames.values()) - { -// for (final ArenaTypeDeclarationInterface atdi : mg.getDeclaredTypes()) -// { -// result.add(atdi.getType()); -// } - } - return result; - } - - @Override - public Iterable<ArenaInterface> getArenas() - { - final List<ArenaInterface> result = new ArrayList<>(); - for (final MinigamePluginImpl mg : this.minigames.values()) - { - for (final ArenaInterface arena : mg.getArenas()) - { - result.add(arena); - } - } - return result; - } - - @Override - public Iterable<ArenaInterface> getArenas(ArenaTypeInterface type) - { - final List<ArenaInterface> arenas = new ArrayList<>(); -// for (final ArenaInterface arena : this.getArenas()) -// { -// if (arena.getArenaType() == type) -// { -// arenas.add(arena); -// } -// } - return arenas; - } - - @Override - public int getArenaCount() - { - int count = 0; - for (final MinigamePluginImpl mg : this.minigames.values()) - { - count += mg.getArenaCount(); - } - return count; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getSigns() - */ - @Override - public Iterable<SignInterface> getSigns() - { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getSignForLocation(org.bukkit.Location) - */ - @Override - public SignInterface getSignForLocation(Location l) - { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.arena.ArenaTypeInterface) - */ - @Override - public Iterable<SignInterface> getSigns(ArenaTypeInterface type) - { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.arena.ArenaInterface) - */ - @Override - public Iterable<SignInterface> getSigns(ArenaInterface arena) - { - // TODO Auto-generated method stub - return null; - } - - /* - * (non-Javadoc) - * - * @see com.github.mce.minigames.api.MglibInterface#getSigns(com.github.mce.minigames.api.MinigameInterface) - */ - @Override - public Iterable<SignInterface> getSigns(MinigameInterface minigame) - { - // TODO Auto-generated method stub - return null; - } - - // events - - /** - * Player online event. - * - * @param evt - * player online event. - */ - @EventHandler - public void onPlayerJoin(PlayerJoinEvent evt) - { - this.players.onPlayerJoin(evt); - } - - /** - * Player online event. - * - * @param evt - * player online event. - */ - @EventHandler - public void onPlayerQuit(PlayerQuitEvent evt) - { -// this.players.onPlayerQuit(evt); -// final ArenaPlayerInterface player = this.getPlayer(evt.getPlayer()); -// if (player.getGuiSession() != null) -// { -// ((ArenaPlayerImpl)player).onCloseGui(); -// } - } - - @Override - public ArenaTypeProvider getProviderFromArenaType(ArenaTypeInterface type) - { - String name = this.typesToMinigame.get(type); - if (name != null) - { - return this.minigames.get(name); - } - name = this.typesToExtension.get(type); - if (name != null) - { - return this.extensions.get(name); - } - return null; - } - - @Override - public ArenaTypeProvider getProviderFromRule(RuleId rule) - { - String name = this.rulesToMinigame.get(rule); - if (name != null) - { - return this.minigames.get(name); - } - name = this.rulesToExtension.get(rule); - if (name != null) - { - return this.extensions.get(name); - } - return null; - } - - @Override - public ArenaTypeProvider getProviderFromTeam(TeamId team) - { - String name = this.teamsToMinigame.get(team); - if (name != null) - { - return this.minigames.get(name); - } - name = this.teamsToExtension.get(team); - if (name != null) - { - return this.extensions.get(name); - } - return null; - } - - @Override - public ArenaTypeProvider getProviderFromComponent(ComponentId component) - { - String name = this.componentsToMinigame.get(component); - if (name != null) - { - return this.minigames.get(name); - } - name = this.componentsToExtension.get(component); - if (name != null) - { - return this.extensions.get(name); - } - return null; - } - - @Override - public ArenaTypeProvider getProviderFromMatch(MatchPhaseId phase) - { - String name = this.phasesToMinigame.get(phase); - if (name != null) - { - return this.minigames.get(name); - } - name = this.phasesToExtension.get(phase); - if (name != null) - { - return this.extensions.get(name); - } - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.MglibInterface#getArenaFromLocation(org.bukkit.Location) - */ - @Override - public ArenaInterface getArenaFromLocation(Location location) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java deleted file mode 100644 index 18c12046..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaImpl.java +++ /dev/null @@ -1,270 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.arena; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.impl.component.ComponentRegistry; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaState; - -/** - * Implementation of arena interface. - * - * @author mepeisen - */ -public class ArenaImpl implements ArenaInterface -{ - - /** the internal name. */ - private String internalName; - - /** the display name. */ - private String displayName; - - /** the plugin. */ - private MinigamePluginInterface plugin; - - /** the component registry. */ - private ComponentRegistry registry; - - /** the used arena declaration. */ - private ArenaTypeDeclarationInterface arenaType; - - /** {@code true} if the arena is enabled. */ - private boolean enabled; - - /** {@code true} if the arena is in maintenance mode. */ - private boolean maintenance; - - /** current arena state. */ - private ArenaState state; - - /** - * Constructor for a new arena. - * - * @param arenaName - * @param plugin - * @param registry - * @param type - * @throws McException - */ - public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry, ArenaTypeDeclarationInterface type) throws McException - { - this.internalName = arenaName; - this.plugin = plugin; - this.registry = registry; - this.arenaType = type; - - final MglibInterface lib = MglibInterface.INSTANCE.get(); -// lib.runInCopiedContext(() -> { -// lib.setContext(ArenaInterface.class, this); -// -// // init minimal values. -// ArenasConfig.Enabled.setBoolean(false); -// ArenasConfig.ArenaType.setString(this.arenaType.getName()); -// ArenasConfig.Maintenance.setBoolean(true); -// -// // save the config. -// ArenasConfig.Maintenance.saveConfig(); -// }); - this.maintenance = true; - } - - /** - * Constructor for an existing arena. - * - * @param arenaName - * @param plugin - * @param registry - * @throws McException - */ - public ArenaImpl(String arenaName, MinigamePluginInterface plugin, ComponentRegistry registry) throws McException - { - this.internalName = arenaName; - this.plugin = plugin; - this.registry = registry; - - final MglibInterface lib = MglibInterface.INSTANCE.get(); -// lib.runInCopiedContext(() -> { -// lib.setContext(ArenaInterface.class, this); -// -// this.enabled = ArenasConfig.Enabled.getBoolean(); -// this.maintenance = ArenasConfig.Maintenance.getBoolean(); -// this.displayName = ArenasConfig.DisplayName.getString(); -// -// final String typename = ArenasConfig.ArenaType.getString(); -// this.arenaType = this.plugin.getType(typename); -// if (this.arenaType == null) -// { -// throw new McException(CommonErrors.Cannot_Load_Arena_Unknown_Type, typename, this.plugin.getName(), arenaName); -// } -// -// // TODO Load components, options and rules -// }); - } - -// @Override -// public String getInternalName() -// { -// return this.internalName; -// } -// -// @Override -// public String getDisplayName() -// { -// return this.displayName == null ? this.internalName : this.displayName; -// } - -// @Override -// public void setDisplayName(String name) throws McException -// { -// final MglibInterface lib = MglibInterface.INSTANCE.get(); -// lib.runInCopiedContext(() -> { -// lib.setContext(ArenaInterface.class, this); -// ArenasConfig.DisplayName.setString(name); -// ArenasConfig.DisplayName.saveConfig(); -// }); -// this.displayName = name; -// } -// -// @Override -// public Logger getLogger() -// { -// // TODO Arena Logger -// return this.plugin.getLogger(); -// } -// -// @Override -// public MinigameInterface getMinigame() -// { -// return new MinigameWrapper(this.plugin); -// } -// -// @Override -// public ArenaState getState() -// { -// return this.maintenance ? ArenaState.Maintenance : this.state; -// } -// -// @Override -// public ArenaState getRealState() -// { -// return this.state; -// } -// -// @Override -// public boolean isEnabled() -// { -// // TODO Auto-generated method stub -// return false; -// } -// -// @Override -// public boolean isMaintenance() -// { -// // TODO Auto-generated method stub -// return false; -// } -// -// @Override -// public McOutgoingStubbing<ArenaInterface> when(McPredicate<ArenaInterface> test) throws McException -// { -// if (test.test(this)) -// { -// return new TrueStub<>(this); -// } -// return new FalseStub<>(this); -// } -// -// @Override -// public boolean canStart() -// { -// // TODO Auto-generated method stub -// return false; -// } -// -// @Override -// public ArenaTypeInterface getArenaType() -// { -// return this.arenaType.getType(); -// } -// -// /* -// * (non-Javadoc) -// * -// * @see com.github.mce.minigames.api.arena.ArenaInterface#start() -// */ -// @Override -// public void start() -// { -// // TODO Auto-generated method stub -// -// } -// -// /** -// * Try to restart the arena asynchronous (safe restart) -// */ -// public void tryRestart() -// { -// // TODO Auto-generated method stub -// -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaInterface#getAuthor() -// */ -// @Override -// public String getAuthor() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaInterface#getShortDescription() -// */ -// @Override -// public LocalizedMessageInterface getShortDescription() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaInterface#getDescription() -// */ -// @Override -// public LocalizedMessageInterface getDescription() -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaInterface#delete() -// */ -// @Override -// public void delete() throws McException -// { -// // TODO Auto-generated method stub -// -// } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java deleted file mode 100644 index 93897c51..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeBuilderImpl.java +++ /dev/null @@ -1,486 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.arena; - -import java.util.Map; - -import com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.impl.MinigamePluginImpl; -import com.github.mce.minigames.impl.component.ComponentRegistry; - -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * Implementation of an arena type builder. - * - * @author mepeisen - */ -public class ArenaTypeBuilderImpl implements ArenaTypeBuilderInterface -{ - - /** name of the type. */ - private String typename; - /** the enum type. */ - private ArenaTypeInterface type; - /** {@code true} if this the default */ - private boolean isDefault; - - /** the arenas. */ - private Map<String, ArenaImpl> arenas; - - /** the registry. */ - private ComponentRegistry registry; - - /** the minigames plugin that declared this arena type. */ - private MinigamePluginImpl plugin; - - /** - * @param typename - * @param type - * @param isDefault - * @param registry - * @param arenas - * @param plugin - */ - public ArenaTypeBuilderImpl(String typename, ArenaTypeInterface type, boolean isDefault, ComponentRegistry registry, Map<String, ArenaImpl> arenas, MinigamePluginImpl plugin) - { - this.typename = typename; - this.type = type; - this.isDefault = isDefault; - this.registry = registry; - this.plugin = plugin; - this.arenas = arenas; - } - - /** - * Creates the arena type declaration. - * - * @return arena type declaration. - */ - public ArenaTypeDeclarationInterface build() - { - return new ArenaTypeDeclarationImpl(this.typename, this.type, this.isDefault, this.arenas, this.registry, this.plugin); - } - -// @Override -// public ArenaTypeBuilderInterface applyRulesets(ArenaRuleSet... set) -// { -// // TODO Auto-generated method stub -// return this; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyRulesets(AdminRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyRulesets(ComponentRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyRulesets(MatchRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyRulesets(PlayerRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyRulesets(TeamRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyComponents(com.github.mce.minigames.api.component.ComponentId[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyComponents(ComponentId... ids) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#applyTeam(com.github.mce.minigames.api.team.TeamId[]) -// */ -// @Override -// public ArenaTypeBuilderInterface applyTeam(TeamId... ids) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeams() -// */ -// @Override -// public Iterable<TeamId> getTeams() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeTeams(com.github.mce.minigames.api.team.TeamId[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeTeams(TeamId... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponents() -// */ -// @Override -// public Iterable<ComponentId> getComponents() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeComponents(com.github.mce.minigames.api.component.ComponentId[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeComponents(ComponentId... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getArenaRuleSets() -// */ -// @Override -// public Iterable<ArenaRuleSet> getArenaRuleSets() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.ArenaRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeRulesets(ArenaRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getAdminRuleSets() -// */ -// @Override -// public Iterable<AdminRuleSet> getAdminRuleSets() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.AdminRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeRulesets(AdminRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getComponentRuleSets() -// */ -// @Override -// public Iterable<ComponentRuleSet> getComponentRuleSets() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.component.ComponentRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeRulesets(ComponentRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getMatchRuleSets() -// */ -// @Override -// public Iterable<MatchRuleSet> getMatchRuleSets() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.MatchRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeRulesets(MatchRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPlayerRuleSets() -// */ -// @Override -// public Iterable<PlayerRuleSet> getPlayerRuleSets() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.arena.rules.PlayerRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeRulesets(PlayerRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getTeamRuleSets() -// */ -// @Override -// public Iterable<TeamRuleSet> getTeamRuleSets() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#removeRulesets(com.github.mce.minigames.api.team.TeamRuleSet[]) -// */ -// @Override -// public ArenaTypeBuilderInterface removeRulesets(TeamRuleSet... set) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#startsWith(com.github.mce.minigames.api.arena.MatchPhaseId) -// */ -// @Override -// public ArenaTypeBuilderInterface startsWith(MatchPhaseId phase) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#addPhases(com.github.mce.minigames.api.arena.MatchPhaseId[]) -// */ -// @Override -// public ArenaTypeBuilderInterface addPhases(MatchPhaseId... phases) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getStartingPhase() -// */ -// @Override -// public MatchPhaseId getStartingPhase() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#getPhases() -// */ -// @Override -// public Iterable<MatchPhaseId> getPhases() throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhasesAndStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritAllPhasesAndStartPhase(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllPhases(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritAllPhases(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritStartPhase(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritStartPhase(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritArenaRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritArenaRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritMatchRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritMatchRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritPlayerRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritPlayerRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeamRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritTeamRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAdminRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritAdminRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponentRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritComponentRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAllRules(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritAllRules(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritComponents(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritComponents(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritTeams(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritTeams(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } -// -// /* (non-Javadoc) -// * @see com.github.mce.minigames.api.arena.ArenaTypeBuilderInterface#inheritAll(com.github.mce.minigames.api.arena.ArenaTypeInterface) -// */ -// @Override -// public ArenaTypeBuilderInterface inheritAll(ArenaTypeInterface type) throws McException -// { -// // TODO Auto-generated method stub -// return null; -// } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java deleted file mode 100644 index 9290f55b..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/arena/ArenaTypeDeclarationImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.arena; - -import java.util.Map; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.impl.MinigamePluginImpl; -import com.github.mce.minigames.impl.component.ComponentRegistry; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * Internal representation of an arena type. - * - * @author mepeisen - */ -public class ArenaTypeDeclarationImpl implements ArenaTypeDeclarationInterface -{ - - /** - * Underlying arena type (enum) - */ - private ArenaTypeInterface enumType; - - /** - * {@code true} for default arena type. - */ - private boolean isDefault; - - /** - * The name of the arena type. - */ - private String typename; - - /** the arenas. */ - private Map<String, ArenaImpl> arenas; - - /** the registry. */ - private ComponentRegistry registry; - - /** the minigames plugin. */ - private MinigamePluginImpl plugin; - - /** - * Constructor to create arena type. - * - * @param typename - * name of the type. - * @param enumType - * Underlying arena type (enum) - * @param isDefault - * {@code true} for default arena type. - * @param arenas - * the minigame arenas - * @param registry - * the component registry - * @param plugin - */ - public ArenaTypeDeclarationImpl(String typename, ArenaTypeInterface enumType, boolean isDefault, Map<String, ArenaImpl> arenas, ComponentRegistry registry, MinigamePluginImpl plugin) - { - this.typename = typename; - this.enumType = enumType; - this.isDefault = isDefault; - this.arenas = arenas; - this.registry = registry; - this.plugin = plugin; - } - - @Override - public ArenaTypeInterface getType() - { - return this.enumType; - } - - @Override - public boolean isDefault() - { - return this.isDefault; - } - - @Override - public String getName() - { - return this.typename; - } - - @Override - public ArenaInterface createArena(String arenaName) throws McException - { - if (this.arenas.containsKey(arenaName.toLowerCase())) - { - throw new McException(CommonErrors.DuplicateArena, arenaName); - } - // TODO Check for illegal names: ArenaInterface.ILLEGAL_NAMES - // TODO Check for illegal characters - final ArenaImpl arena = new ArenaImpl(arenaName, this.plugin, this.registry); - this.arenas.put(arenaName.toLowerCase(), arena); - return arena; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java deleted file mode 100644 index ec11f14c..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AddCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class AddCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java deleted file mode 100644 index f134c488..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/AdminCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class AdminCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java deleted file mode 100644 index 5cece0a4..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/CreateCommandHandler.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.ArrayList; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaTypeDeclarationInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to create a new arena. - * - * @author mepeisen - */ -public class CreateCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public void handle(CommandInterface command) throws McException - { -// command.permThrowException(CommonPermissions.Create, command.getCommandPath()); -// -// if (command.getArgs().length < 2) -// { -// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); -// return; -// } -// -// final MglibInterface lib = MglibInterface.INSTANCE.get(); -// final MinigameInterface minigame = lib.getMinigame(command.getArgs()[0]); -// if (minigame == null) -// { -// command.send(CommonMessages.MinigameNotFound, command.getArgs()[0]); -// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); -// return; -// } -// -// ArenaTypeDeclarationInterface type = null; -// String arenaName = null; -// if (command.getArgs().length == 2) -// { -// type = minigame.getDefaultType(); -// if (type == null) -// { -// command.send(CommonMessages.DefaultArenaTypeNotFound, command.getArgs()[0]); -// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); -// return; -// } -// arenaName = command.getArgs()[1]; -// } -// else -// { -// type = minigame.getType(command.getArgs()[1]); -// if (type == null) -// { -// command.send(CommonMessages.ArenaTypeNotFound, command.getArgs()[0], command.getArgs()[1]); -// command.send(CommonMessages.CreateCommandUsage, command.getCommandPath()); -// return; -// } -// arenaName = command.getArgs()[2]; -// } -// -// type.createArena(arenaName); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { -// final MglibInterface lib = MglibInterface.INSTANCE.get(); -// if (command.getArgs().length == 0) -// { -// final List<String> result = new ArrayList<>(); -// for (final MinigameInterface mg : lib.getMinigames()) -// { -// if (lastArg == null) -// { -// result.add(mg.getName()); -// } -// else if (mg.getName().startsWith(lastArg)) -// { -// result.add(mg.getName()); -// } -// } -// return result; -// } -// else if (command.getArgs().length == 1) -// { -// final List<String> result = new ArrayList<>(); -// final MinigameInterface mg = lib.getMinigame(command.getArgs()[0]); -// if (mg != null) -// { -// for (final ArenaTypeDeclarationInterface type : mg.getDeclaredTypes()) -// { -// if (lastArg == null) -// { -// result.add(type.getName()); -// } -// else if (type.getName().startsWith(lastArg)) -// { -// result.add(type.getName()); -// } -// } -// } -// return result; -// } - return null; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return CommonMessages.InfoCommandShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return CommonMessages.InfoCommandDescription; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java deleted file mode 100644 index d79ca7f0..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/DebugCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class DebugCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java deleted file mode 100644 index ddf4f4a5..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/EditCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class EditCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java deleted file mode 100644 index af77cecd..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/GetOptCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class GetOptCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java deleted file mode 100644 index 6bf8b497..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoArenasCommandHandler.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class InfoArenasCommandHandler extends AbstractPagableCommandHandler -{ - - @Override - public void handle(CommandInterface command) throws McException - { - command.permThrowException(CommonPermissions.InfoArenas, command.getCommandPath() + " arenas"); //$NON-NLS-1$ - super.handle(command); - } - - @Override - protected int getLineCount(CommandInterface command) - { - return MglibInterface.INSTANCE.get().getArenaCount(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return CommonMessages.InfoArenasHeader.toArg(command.getCommandPath()); - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final Iterator<ArenaInterface> arenas = MglibInterface.INSTANCE.get().getArenas().iterator(); - int i = 0; - while (i < start && arenas.hasNext()) - { - arenas.next(); - i++; - } - final List<Serializable> result = new ArrayList<>(); -// for (i = 0; i < count; i++) -// { -// if (arenas.hasNext()) -// { -// final ArenaInterface arena = arenas.next(); -// Serializable state = null; -// switch (arena.getState()) -// { -// case Disabled: -// default: -// state = CommonMessages.AraneStateDisabled.toArg(); -// break; -// case InGame: -// state = CommonMessages.AraneStateInGame.toArg(); -// break; -// case Join: -// state = CommonMessages.AraneStateJoin.toArg(); -// break; -// case Maintenance: -// state = CommonMessages.AraneStateMeintenance.toArg(); -// break; -// case Restarting: -// state = CommonMessages.AraneStateRestarting.toArg(); -// break; -// case Starting: -// state = CommonMessages.AraneStateStarting.toArg(); -// break; -// } -// result.add(CommonMessages.InfoArenaLine.toArg( -// arena.getMinigame().getName(), -// arena.getInternalName(), -// state, -// arena.getDisplayName() -// )); -// } -// } - return result.toArray(new Serializable[result.size()]); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java deleted file mode 100644 index fbae7626..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoCommandHandler.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.Collections; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.impl.MinigamesPlugin; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class InfoCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public void handle(CommandInterface command) throws McException - { - if (command.getArgs().length > 0) - { - final String name = command.getArgs()[0].toLowerCase(); - switch (name) - { - case "extensions": //$NON-NLS-1$ - new InfoExtensionsCommandHandler().handle(command.consumeArgs(1)); - return; - case "minigames": //$NON-NLS-1$ - new InfoMinigamesCommandHandler().handle(command.consumeArgs(1)); - return; - case "arenas": //$NON-NLS-1$ - new InfoArenasCommandHandler().handle(command.consumeArgs(1)); - return; - default: - command.send(CommonMessages.InfoUnknownSubCommand, command.getCommandPath(), name); - return; - } - } - - command.permThrowException(CommonPermissions.Info, command.getCommandPath()); - -// final MglibInterface lib = MglibInterface.INSTANCE.get(); -// final String mode = ((MinigamesPlugin)lib).getModeString(); -// final String debug = lib.debug() ? "TRUE" : "FALSE"; //$NON-NLS-1$ //$NON-NLS-2$ -// command.send(CommonMessages.InfoCommandOutput, -// command.getCommandPath(), -// lib.getMinecraftVersion().name(), -// lib.getLibVersionString(), -// mode, -// debug -// ); - // TODO Info: Where Am I (which arena) - // TODO Info: Which waiting queues - // TODO Info on partys - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return CommonMessages.InfoCommandShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return CommonMessages.InfoCommandDescription; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java deleted file mode 100644 index 5ca4d9ca..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoExtensionsCommandHandler.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; -import com.github.mce.minigames.api.services.ExtensionInterface; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class InfoExtensionsCommandHandler extends AbstractPagableCommandHandler -{ - - @Override - public void handle(CommandInterface command) throws McException - { - command.permThrowException(CommonPermissions.InfoExtensions, command.getCommandPath() + " extensions"); //$NON-NLS-1$ - super.handle(command); - } - - @Override - protected int getLineCount(CommandInterface command) - { - return MglibInterface.INSTANCE.get().getExtensionsCount(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return CommonMessages.InfoExtensionsHeader.toArg(command.getCommandPath()); - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final Iterator<ExtensionInterface> extensions = MglibInterface.INSTANCE.get().getExtensions().iterator(); - int i = 0; - while (i < start && extensions.hasNext()) - { - extensions.next(); - i++; - } - final List<Serializable> result = new ArrayList<>(); - for (i = 0; i < count; i++) - { - if (extensions.hasNext()) - { - final ExtensionInterface extension = extensions.next(); - result.add(CommonMessages.InfoExtensionLine.toArg(extension.getName(), extension.getShortDescription())); - } - } - return result.toArray(new Serializable[result.size()]); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java deleted file mode 100644 index 96d6f939..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/InfoMinigamesCommandHandler.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.perms.CommonPermissions; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class InfoMinigamesCommandHandler extends AbstractPagableCommandHandler -{ - - @Override - public void handle(CommandInterface command) throws McException - { - command.permThrowException(CommonPermissions.InfoMinigames, command.getCommandPath() + " minigames"); //$NON-NLS-1$ - super.handle(command); - } - - @Override - protected int getLineCount(CommandInterface command) - { - return MglibInterface.INSTANCE.get().getMinigamesCount(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return CommonMessages.InfoMinigamesHeader.toArg(command.getCommandPath()); - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final Iterator<MinigameInterface> minigames = MglibInterface.INSTANCE.get().getMinigames().iterator(); - int i = 0; - while (i < start && minigames.hasNext()) - { - minigames.next(); - i++; - } - final List<Serializable> result = new ArrayList<>(); - for (i = 0; i < count; i++) - { - if (minigames.hasNext()) - { - final MinigameInterface minigame = minigames.next(); - result.add(CommonMessages.InfoMinigamesLine.toArg(minigame.getName(), minigame.getShortDescription())); - } - } - return result.toArray(new Serializable[result.size()]); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java deleted file mode 100644 index 3d32b515..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/JoinCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class JoinCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java deleted file mode 100644 index 27f6aebb..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/LeaveCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class LeaveCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java deleted file mode 100644 index 56cbdbe1..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/ListCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class ListCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java deleted file mode 100644 index 1158528b..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/Mg2CommandHandler.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import com.github.mce.minigames.api.CommonMessages; - -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; - -/** - * A handler for the /mg2 command. - * - * @author mepeisen - */ -public class Mg2CommandHandler extends AbstractCompositeCommandHandler -{ - - /** - * Constructor to create the mg2 command handler. - */ - public Mg2CommandHandler() - { - // user commands - this.injectSubCommand("party", new PartyCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("start", new StartCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("help", new HelpCommandHandler(this)); //$NON-NLS-1$ - this.injectSubCommand("info", new InfoCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("list", new ListCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("join", new JoinCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("leave", new LeaveCommandHandler()); //$NON-NLS-1$ - // TODO preferred locale command - - // admin commands - this.injectSubCommand("debug", new DebugCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("test", new TestCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("admin", new AdminCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("create", new CreateCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("add", new AddCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("edit", new EditCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("remove", new RemoveCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("setopt", new SetOptCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("getopt", new GetOptCommandHandler()); //$NON-NLS-1$ - this.injectSubCommand("save", new SaveCommandHandler()); //$NON-NLS-1$ - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(CommonMessages.Mg2CommandUsage); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java deleted file mode 100644 index f444f088..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyAcceptCommandHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public class PartyAcceptCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java deleted file mode 100644 index 4e39ac8a..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyCommandHandler.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import com.github.mce.minigames.api.CommonErrors; -import com.github.mce.minigames.api.CommonMessages; -import com.github.mce.minigames.api.config.CommonConfig; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * A handler for the /party command. - * - * @author mepeisen - */ -public class PartyCommandHandler extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface -{ - - /** - * Constructor - */ - public PartyCommandHandler() - { - this.subCommands.put("invite", new PartyInviteCommandHandler()); //$NON-NLS-1$ - this.subCommands.put("accept", new PartyAcceptCommandHandler()); //$NON-NLS-1$ - this.subCommands.put("kick", new PartyKickCommandHandler()); //$NON-NLS-1$ - this.subCommands.put("list", new PartyListCommandHandler()); //$NON-NLS-1$ - this.subCommands.put("disband", new PartyDisbandCommandHandler()); //$NON-NLS-1$ - this.subCommands.put("leave", new PartyLeaveCommandHandler()); //$NON-NLS-1$ - this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - if (!CommonConfig.PartyCommandEnabled.getBoolean()) - { - throw new McException(CommonErrors.PartyCommandDisabled); - } - - return super.pre(command); - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(CommonMessages.PartyCommandUsage, command.getCommandPath()); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return CommonMessages.PartyCommandShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return CommonMessages.PartyCommandDescription; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java deleted file mode 100644 index 34ab5d31..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyDisbandCommandHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public class PartyDisbandCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java deleted file mode 100644 index bb5b8b08..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyInviteCommandHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public class PartyInviteCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java deleted file mode 100644 index 314d5367..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyKickCommandHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public class PartyKickCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java deleted file mode 100644 index 42aec948..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyLeaveCommandHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public class PartyLeaveCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java deleted file mode 100644 index ef953d5e..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/PartyListCommandHandler.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public class PartyListCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription() - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription() - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java deleted file mode 100644 index 0661f061..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/RemoveCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class RemoveCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java deleted file mode 100644 index 849660ff..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SaveCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class SaveCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java deleted file mode 100644 index 7cd1d31e..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/SetOptCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class SetOptCommandHandler implements SubCommandHandlerInterface -{ - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java deleted file mode 100644 index 5132da10..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/StartCommandHandler.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.Collections; -import java.util.List; - -import com.github.mce.minigames.api.CommonMessages; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * A handler for the /start command. - * - * @author mepeisen - */ -public class StartCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public void handle(CommandInterface command) throws McException - { - if (command.getArgs().length > 0) - { - command.send(CommonMessages.TooManyArguments); - command.send(CommonMessages.StartCommandUsage, command.getCommandPath()); - return; - } - - // only in-game -// command.when(isPlayer().negate()).thenThrow(CommonErrors.InvokeIngame); -// -// final ArenaPlayerInterface player = command.getPlayer(); -// -// // check permission -// command.permThrowException(CommonPermissions.Start, command.getCommandPath()); -// -// // only inside arena -// player.when(isInArena().negate()).thenThrow(CommonErrors.StartNotWithinArena); -// -// // check if the arena can be started directly -// final ArenaInterface arena = player.getArena(); -// arena.when(ArenaInterface::canStart).thenThrow(CommonErrors.CannotStart); -// -// // start it, log and send success message -// MglibInterface.INSTANCE.get().getLogger().info("Arena " + arena.getInternalName() + " started because of start command from player " + player.getName()); //$NON-NLS-1$//$NON-NLS-2$ -// arena.start(); -// player.sendMessage(CommonMessages.ArenaStartedByCommand, arena.getDisplayName(), player.getName()); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return CommonMessages.StartCommandShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return CommonMessages.StartCommandDescription; - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - return Collections.emptyList(); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java deleted file mode 100644 index a4b40b0a..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/cmd/TestCommandHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.cmd; - -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Command to display useful information. - * - * @author mepeisen - */ -public class TestCommandHandler implements SubCommandHandlerInterface -{ - - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#handle(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public void handle(CommandInterface command) throws McException - { - // TODO Auto-generated method stub - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.CommandHandlerInterface#onTabComplete(com.github.mce.minigames.api.cmd.CommandInterface, java.lang.String) - */ - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getShortDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.cmd.SubCommandHandlerInterface#getDescription(com.github.mce.minigames.api.cmd.CommandInterface) - */ - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java deleted file mode 100644 index 7666fc9c..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractComponent.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.component; - -import java.util.HashSet; -import java.util.Set; - -/** - * Base class for all minigame components. - * - * @author mepeisen - */ -public abstract class AbstractComponent -{ - - /** the underlying component registry owning this component. */ - private final ComponentRegistry registry; - - /** the current world chunks this component is located in. */ - private final Set<WorldChunk> currentChunks = new HashSet<>(); - - /** - * Constructor to create the component. - * - * @param registry - * the owning registry. - */ - public AbstractComponent(ComponentRegistry registry) - { - this.registry = registry; - } - - /** - * Sets/Changes the world chunks this component is located in. - * @param chunks - */ - public void setWorldChunks(Set<WorldChunk> chunks) - { - final Set<WorldChunk> removed = new HashSet<>(this.currentChunks); - removed.removeAll(chunks); - final Set<WorldChunk> added = new HashSet<>(chunks); - added.removeAll(this.currentChunks); - if (removed.size() > 0) - { - this.registry.unregister(removed, this); - } - if (added.size() > 0) - { - this.registry.register(added, this); - } - this.currentChunks.clear(); - this.currentChunks.addAll(chunks); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java deleted file mode 100644 index 595f91aa..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/AbstractCuboidComponent.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.component; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import org.bukkit.Location; -import org.bukkit.util.Vector; - -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; - -/** - * Base class for all cuboid components. - * - * @author mepeisen - */ -public abstract class AbstractCuboidComponent extends AbstractComponent implements ZoneInterface -{ - - /** the cuboid. */ - private Cuboid cuboid; - - /** - * Constructor to create the component. - * - * @param registry - * the owning registry. - * @param cuboid - * the component bounds - */ - public AbstractCuboidComponent(ComponentRegistry registry, Cuboid cuboid) - { - super(registry); - this.cuboid = cuboid == null ? null : cuboid; - this.changeLocs(); - } - - /** - * Changes the locations depending on the given cuboid. - */ - private void changeLocs() - { - if (this.cuboid == null || this.cuboid.getLowLoc() == null) - { - this.setWorldChunks(Collections.emptySet()); - } - else - { - final Set<WorldChunk> chunks = new HashSet<>(); - final WorldChunk lowChunk = new WorldChunk(this.cuboid.getLowLoc().clone().add(new Vector(-2, -2, -2))); - final WorldChunk highChunk = new WorldChunk(this.cuboid.getHighLoc().clone().add(new Vector(2, 2, 2))); - for (int x = lowChunk.getX(); x <= highChunk.getX(); x++) - { - for (int z = highChunk.getZ(); z <= highChunk.getZ(); z++) - { - final WorldChunk chunk = new WorldChunk(lowChunk.getServerName(), lowChunk.getWorldName(), x, z); - chunks.add(chunk); - } - } - this.setWorldChunks(chunks); - } - } - - /** - * Returns the cuboid. - * @return cuboid of this component. - */ - @Override - public Cuboid getCuboid() - { - return this.cuboid; - } - - /** - * Sets the cuboid - * @param cub cuboid of the component. - */ - @Override - public void setCuboid(Cuboid cub) - { - // TODO save to config - this.cuboid = cub == null ? null : cub; - this.changeLocs(); - } - - /** - * Determines whether the this cuboid contains the passed location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid, otherwise false - */ - @Override - public boolean containsLoc(final Location loc) - { - return this.cuboid == null ? false : this.cuboid.containsLoc(loc); - } - - /** - * Determines whether the this cuboid contains the passed location without y coord. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid without y coord, otherwise false - */ - @Override - public boolean containsLocWithoutY(final Location loc) - { - return this.cuboid == null ? false : this.cuboid.containsLocWithoutY(loc); - } - - /** - * Determines whether the this cuboid contains the passed location without y coord and by including the 2 blocks beyond the location. - * - * @param loc - * the location to check - * @return true if the location is within this cuboid without y coord, otherwise false - */ - @Override - public boolean containsLocWithoutYD(final Location loc) - { - return this.cuboid == null ? false : this.cuboid.containsLocWithoutYD(loc); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java deleted file mode 100644 index 3ffccd37..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/ComponentRegistry.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.component; - -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * A registry for locating and managing components. - * - * @author mepeisen - */ -public class ComponentRegistry -{ - - /** the registered components per chunk. */ - private final Map<WorldChunk, Set<AbstractComponent>> components = new HashMap<>(); - - /** - * Registers a component in a world chunk. - * - * @param chunks - * Chunks to register - * @param component - * component to register. - */ - public void register(Set<WorldChunk> chunks, AbstractComponent component) - { - for (final WorldChunk chunk : chunks) - { - this.components.computeIfAbsent(chunk, (c) -> new HashSet<>()).add(component); - } - } - - /** - * Removes a component from world chunks. - * - * @param chunks - * Chunks to unregister - * @param component - * component to unregister - */ - public void unregister(Set<WorldChunk> chunks, AbstractComponent component) - { - for (final WorldChunk chunk : chunks) - { - final Set<AbstractComponent> set = this.components.get(chunk); - if (set != null) - { - set.remove(component); - } - } - } - - /** - * Fetches components within a world chunk. - * - * @param chunk - * world chunk - * @return components being in this world chunk. - */ - public Set<AbstractComponent> fetch(WorldChunk chunk) - { - final Set<AbstractComponent> result = this.components.get(chunk); - return result == null ? Collections.emptySet() : result; - } - - /** - * Fetches components within a world chunk and filters by given class - * - * @param clazz - * the class filter - * @param chunk - * world chunk - * @return components being in this world chunk. - */ - public <T extends AbstractComponent> Set<T> fetch(Class<T> clazz, WorldChunk chunk) - { - final Set<T> result = new HashSet<>(); - for (final AbstractComponent c : this.fetch(chunk)) - { - if (clazz.isInstance(c)) - { - result.add(clazz.cast(c)); - } - } - return result; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java deleted file mode 100644 index 9436459d..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/component/WorldChunk.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.component; - -import org.bukkit.Chunk; -import org.bukkit.Location; - -/** - * Helper class for minecraft chunks of different servers and worlds. - * - * @author mepeisen - * - */ -public class WorldChunk -{ - - /** the absolute server name; {@code null} for current/local server. */ - private final String serverName; - - /** the world name. */ - private final String worldName; - - /** x coordinate of the chunk. */ - private final int x; - - /** z coordinate of the chunk. */ - private final int z; - - /** pre calculated hash. */ - private final int hash; - - /** - * Constructor to create the world chunk. - * - * @param serverName - * @param worldName - * @param x - * @param z - */ - public WorldChunk(String serverName, String worldName, int x, int z) - { - this.serverName = serverName; - this.worldName = worldName; - this.x = x; - this.z = z; - - final int prime = 31; - int result = 1; - result = prime * result + ((this.serverName == null) ? 0 : this.serverName.hashCode()); - result = prime * result + ((this.worldName == null) ? 0 : this.worldName.hashCode()); - result = prime * result + this.x; - result = prime * result + this.z; - this.hash = result; - } - - /** - * Constructor to create the world chunk. - * - * @param chunk - * world chunk. - */ - public WorldChunk(Chunk chunk) - { - this(null, chunk.getWorld().getName(), chunk.getX(), chunk.getZ()); - } - - /** - * Constructor to create the world chunk. - * - * @param location - * world location. - */ - public WorldChunk(Location location) - { - this(location.getChunk()); - } - - @Override - public int hashCode() - { - return this.hash; - } - - /** - * @return the serverName - */ - public String getServerName() - { - return this.serverName; - } - - /** - * @return the worldName - */ - public String getWorldName() - { - return this.worldName; - } - - /** - * @return the x - */ - public int getX() - { - return this.x; - } - - /** - * @return the z - */ - public int getZ() - { - return this.z; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - WorldChunk other = (WorldChunk) obj; - if (this.hash != other.hash) - return false; - if (this.serverName == null) - { - if (other.serverName != null) - return false; - } - else if (!this.serverName.equals(other.serverName)) - return false; - if (this.worldName == null) - { - if (other.worldName != null) - return false; - } - else if (!this.worldName.equals(other.worldName)) - return false; - if (this.x != other.x) - return false; - if (this.z != other.z) - return false; - return true; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java deleted file mode 100644 index f89413d9..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/context/DefaultResolver.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.context; - -import java.lang.reflect.Method; -import java.util.logging.Level; - -import com.github.mce.minigames.api.MglibInterface; -import com.github.mce.minigames.api.MinigameInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.config.CommonConfig; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -import de.minigameslib.mclib.api.McContext; -import de.minigameslib.mclib.api.McContext.ContextResolverInterface; - -/** - * Default implementation of context resolve. - * - * <p> - * Resolves the following variables: - * </p> - * - * <ul> - * <li><b>PERM:MGLIB</b> to {@link CommonConfig#PermissionPrefix}</li> - * <li><b>PERM:MGLIB:KITS</b> to {@link CommonConfig#PermissionKitsPrefix}</li> - * <li><b>PERM:MGLIB:GUNS</b> to {@link CommonConfig#PermissionGunsPrefix}</li> - * <li><b>PERM:MGLIB:SHOPS</b> to {@link CommonConfig#PermissionShopsPrefix}</li> - * <li><b>PERM:MINIGAME</b> to {@link CommonConfig#PermissionGamesPrefix} and current context minigame</li> - * <li><b>PERM:MINIGAME:name</b> to {@link CommonConfig#PermissionGamesPrefix} and name string</li> - * <li><b>OPT:path</b> to config.yml variable of given name and for current context minigame</li> - * <li><b>OPT:name:path</b> to config.yml variable of given name and for minigame of given name</li> - * <li><b>CTX:type:name</b> to a common context variable of given type and variable name.</li> - * </ul> - * - * <p> - * Available context variable types are: - * </p> - * - * <ul> - * <li><b>PLAYER</b> maps to the current {@link ArenaPlayerInterface}.</li> - * <li><b>MINIGAME</b> maps to the current {@link MinigameInterface}.</li> - * <li><b>ARENA</b> maps to the current {@link ArenaInterface}.</li> - * </ul> - * - * @author mepeisen - */ -public class DefaultResolver implements ContextResolverInterface -{ - - @Override - public String resolve(String varName, String[] args, McContext context) - { - switch (varName) - { - case "PERM": //$NON-NLS-1$ - if (args.length > 0) - { - switch (args[0]) - { - case "MGLIB": //$NON-NLS-1$ - if (args.length > 2) - { - // failed - return null; - } - if (args.length > 1) - { - switch (args[1]) - { - case "KITS": //$NON-NLS-1$ - return CommonConfig.PermissionKitsPrefix.getString(); - case "GUNS": //$NON-NLS-1$ - return CommonConfig.PermissionGunsPrefix.getString(); - case "SHOPS": //$NON-NLS-1$ - return CommonConfig.PermissionShopsPrefix.getString(); - default: - // failed - return null; - } - } - return CommonConfig.PermissionPrefix.getString(); - case "MINIGAME": //$NON-NLS-1$ - if (args.length > 2) - { - // failed - return null; - } - if (args.length > 1) - { - return CommonConfig.PermissionGamesPrefix.getString() + '.' + args[1]; - } - final MinigameInterface minigame = context.getContext(MinigameInterface.class); - if (minigame == null) - { - // failed - return null; - } - return CommonConfig.PermissionGamesPrefix.getString() + '.' + minigame.getName(); - default: - // failed - return null; - } - } - // failed - return null; - case "OPT": //$NON-NLS-1$ - if (args.length == 1) - { - final MinigameInterface minigame = context.getContext(MinigameInterface.class); - if (minigame == null) - { - // failed - return null; - } - final String value = minigame.getConfig("config.yml").getString(args[0]); //$NON-NLS-1$ - return value; - } - if (args.length == 2) - { - final MinigameInterface minigame = MglibInterface.INSTANCE.get().getMinigame(args[0]); - if (minigame == null) - { - // failed - return null; - } - final String value = minigame.getConfig("config.yml").getString(args[1]); //$NON-NLS-1$ - return value; - } - // failed - return null; - case "CTX": //$NON-NLS-1$ - if (args.length == 2) - { - switch (args[0]) - { - case "PLAYER": //$NON-NLS-1$ - return resolveVar(context.getContext(ArenaPlayerInterface.class), args[1]); - case "MINIGAME": //$NON-NLS-1$ - return resolveVar(context.getContext(MinigameInterface.class), args[1]); - case "ARENA": //$NON-NLS-1$ - return resolveVar(context.getContext(ArenaInterface.class), args[1]); - default: - try - { - final Class<?> clazz = Class.forName(args[0]); - return resolveVar(context.getContext(clazz), args[1]); - } - catch (@SuppressWarnings("unused") Exception ex) - { - // ignore silently and let us return null (failed); maybe another resolver knows how to handle it - } - return null; - } - } - // failed - return null; - default: - // failed - return null; - } - } - - /** - * Resolves a variable by invoking getters. - * - * @param object - * the object to resolve the getter path against. - * @param path - * getter path - * @return resolved variable - */ - private String resolveVar(Object object, String path) - { - Object cur = object; - final String[] splitted = path.split("\\."); //$NON-NLS-1$ - int i = 0; - cur = object; - while (cur != null && i < splitted.length) - { - final String getterName = "get" + splitted[i].substring(0, 1).toUpperCase() + splitted[i].substring(1); //$NON-NLS-1$ - try - { - final Method mth = cur.getClass().getMethod(getterName); - if (mth != null) - { - cur = mth.invoke(cur); - } - } - catch (Exception ex) - { -// final MglibInterface lib = MglibInterface.INSTANCE.get(); -// if (lib.debug()) -// { -//// lib.getLogger().log(Level.FINE, "Problems invoking " + getterName + " on " + cur, ex); //$NON-NLS-1$ //$NON-NLS-2$ -// } - cur = null; - } - i++; - } - - return cur == null ? "NULL" : cur.toString(); //$NON-NLS-1$ - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java deleted file mode 100644 index ae2b5c93..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/msg/MessagesConfig.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.msg; - -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; -import java.util.logging.Level; - -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessagesConfigInterface; - -/** - * Implementation of messages configuration - * - * @author mepeisen - */ -public class MessagesConfig implements MessagesConfigInterface -{ - - // TODO check if there are messages that are not needed any more. - // TODO user defined messages for scripting, shops, classes etc. - - /** the file configuration. */ - private FileConfiguration config = null; - /** the yml file. */ - private File file = null; - /** the java plugin. */ - private JavaPlugin plugin = null; - - /** the defaults for this messages. */ - private List<LocalizedMessageInterface> defaults; - - /** - * Constructor to create the messages config. - * - * @param plugin - * java plugin - */ - public MessagesConfig(JavaPlugin plugin) - { - this.plugin = plugin; - } - - /** - * Initializes the messages with given localized messages. - * @param msgs - */ - public void initMessage(List<LocalizedMessageInterface> msgs) - { - this.defaults = msgs; - } - - @Override - public String getString(Locale locale, String path, String defaultValue) - { - final FileConfiguration config1 = this.getConfig(); - String result = config1.getString(path + ".user." + locale.toString()); //$NON-NLS-1$ - if (result == null) - { - final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ - if (defaultLocale != null) - { - result = config1.getString(path + ".user." + defaultLocale); //$NON-NLS-1$ - } - } - return result == null ? defaultValue : result; - } - - @Override - public String getAdminString(Locale locale, String path, String defaultValue) - { - final FileConfiguration config1 = this.getConfig(); - String result = config1.getString(path + ".admin." + locale.toString()); //$NON-NLS-1$ - if (result == null) - { - final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ - if (defaultLocale != null) - { - result = config1.getString(path + ".admin." + defaultLocale); //$NON-NLS-1$ - } - } - return result == null ? defaultValue : result; - } - - @Override - public String[] getStringList(Locale locale, String path, String[] defaultValue) - { - final FileConfiguration config1 = this.getConfig(); - List<String> result = config1.getStringList(path + ".user." + locale.toString()); //$NON-NLS-1$ - if (result == null) - { - final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ - if (defaultLocale != null) - { - result = config1.getStringList(path + ".user." + defaultLocale); //$NON-NLS-1$ - } - } - return result == null ? defaultValue : result.toArray(new String[result.size()]); - } - - @Override - public String[] getAdminStringList(Locale locale, String path, String[] defaultValue) - { - final FileConfiguration config1 = this.getConfig(); - List<String> result = config1.getStringList(path + ".admin." + locale.toString()); //$NON-NLS-1$ - if (result == null) - { - final String defaultLocale = config1.getString(path + ".default_locale"); //$NON-NLS-1$ - if (defaultLocale != null) - { - result = config1.getStringList(path + ".admin." + defaultLocale); //$NON-NLS-1$ - } - } - return result == null ? defaultValue : result.toArray(new String[result.size()]); - } - - /** - * Returns the file configuration. - * - * @return file configuration. - */ - public FileConfiguration getConfig() - { - if (this.config == null) - { - this.reloadConfig(); - } - return this.config; - } - - /** - * Saves the configuration. - */ - public void saveConfig() - { - if (this.config == null || this.file == null) - { - return; - } - try - { - this.getConfig().save(this.file); - } - catch (final IOException ex) - { - this.plugin.getLogger().log(Level.WARNING, "Cannot save messages configuration", ex); //$NON-NLS-1$ - } - } - - /** - * Reloads the configuration file. - */ - public void reloadConfig() - { - if (this.file == null) - { - this.file = new File(this.plugin.getDataFolder(), "messages.yml"); //$NON-NLS-1$ - } - this.config = YamlConfiguration.loadConfiguration(this.file); - - // add the defaults. - for (final LocalizedMessageInterface msg : this.defaults) - { - try - { - final LocalizedMessages clazzDef = msg.getClass().getAnnotation(LocalizedMessages.class); - final LocalizedMessage valueDef = msg.getClass().getDeclaredField(((Enum<?>)msg).name()).getAnnotation(LocalizedMessage.class); - final LocalizedMessageList listDef = msg.getClass().getDeclaredField(((Enum<?>)msg).name()).getAnnotation(LocalizedMessageList.class); - if (clazzDef == null || (listDef == null && valueDef == null)) - { - throw new IllegalStateException("Invalid message class."); //$NON-NLS-1$ - } - - if (valueDef == null && listDef != null) - { - final String path = clazzDef.value() + "." + ((Enum<?>)msg).name(); //$NON-NLS-1$ - this.config.addDefault(path + ".default_locale", clazzDef.defaultLocale()); //$NON-NLS-1$ - this.config.addDefault(path + ".user." + clazzDef.defaultLocale(), Arrays.asList(listDef.value())); //$NON-NLS-1$ - if (listDef.adminMessages().length > 0) - { - this.config.addDefault(path + ".admin." + clazzDef.defaultLocale(), Arrays.asList(listDef.adminMessages())); //$NON-NLS-1$ - } - } - else if (valueDef != null) - { - final String path = clazzDef.value() + "." + ((Enum<?>)msg).name(); //$NON-NLS-1$ - this.config.addDefault(path + ".default_locale", clazzDef.defaultLocale()); //$NON-NLS-1$ - this.config.addDefault(path + ".user." + clazzDef.defaultLocale(), valueDef.defaultMessage()); //$NON-NLS-1$ - if (valueDef.defaultAdminMessage().length() > 0) - { - this.config.addDefault(path + ".admin." + clazzDef.defaultLocale(), valueDef.defaultAdminMessage()); //$NON-NLS-1$ - } - } - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - this.config.options().copyDefaults(true); - this.saveConfig(); - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java deleted file mode 100644 index 5d56c1f4..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/ArenaPlayerImpl.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.player; - -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - -import com.github.mce.minigames.api.MinigamePluginInterface; -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.WaitQueue; -import com.github.mce.minigames.api.player.ArenaPlayerInterface; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; - -/** - * Implementation of arena players. - * - * @author mepeisen - * - */ -public class ArenaPlayerImpl implements ArenaPlayerInterface -{ - - /** players uuid. */ - private UUID uuid; - - /** the players name. */ - private String name; - - /** - * Constructor - * - * @param uuid - * players uuid - */ - public ArenaPlayerImpl(UUID uuid) - { - this.uuid = uuid; - final OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); - if (player != null) - { - this.name = player.getName(); - } - } - - @Override - public Player getBukkitPlayer() - { - return Bukkit.getPlayer(this.uuid); - } - - @Override - public String getName() - { - return this.name; - } - - @Override - public OfflinePlayer getOfflinePlayer() - { - return Bukkit.getOfflinePlayer(this.uuid); - } - - @Override - public UUID getPlayerUUID() - { - return this.uuid; - } - - @Override - public ArenaInterface getArena() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public Iterable<WaitQueue> getWaitingQueues() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public void join(WaitQueue queue) - { - // TODO Auto-generated method stub - - } - - @Override - public McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - - /** - * Registers the storage context provider. - * - * @param mg2 - * @throws McException - */ - public static void registerProvider(MinigamePluginInterface mg2) throws McException - { -// mg2.registerContextHandler(ContextStorage.class, new ContextHandlerInterface<ContextStorage>() { -// -// @Override -// public ContextStorage calculateFromCommand(CommandInterface command, McContext context) -// { -// return new ContextStorage(); -// } -// -// @Override -// public ContextStorage calculateFromEvent(MinigameEvent<?, ?> event, McContext context) -// { -// return new ContextStorage(); -// } -// }); - } - - /** - * Player quit event - */ - public void onPlayerQuit() - { - // TODO - } - - /** - * Player join event - */ - public void onPlayerJoin() - { - // TODO - } - - /* (non-Javadoc) - * @see com.github.mce.minigames.api.player.ArenaPlayerInterface#getMcPlayer() - */ - @Override - public McPlayerInterface getMcPlayer() - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java deleted file mode 100644 index 89a8b84e..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/player/PlayerRegistry.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.player; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; - -/** - * A helper class to register player interfaces. - * - * @author mepeisen - */ -public class PlayerRegistry -{ - - /** the well known players. */ - private final Map<UUID, ArenaPlayerImpl> players = new HashMap<>(); - - /** - * Returns the player for given bukkit player. - * - * @param player - * @return arena player. - */ - public ArenaPlayerImpl getPlayer(Player player) - { - final UUID uuid = player.getUniqueId(); - return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); - } - - /** - * Returns the player for given bukkit player. - * - * @param player - * @return arena player. - */ - public ArenaPlayerImpl getPlayer(OfflinePlayer player) - { - final UUID uuid = player.getUniqueId(); - return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); - } - - /** - * Returns the player for given bukkit player uuid. - * - * @param uuid - * @return arena player. - */ - public ArenaPlayerImpl getPlayer(UUID uuid) - { - return this.players.computeIfAbsent(uuid, (key) -> new ArenaPlayerImpl(uuid)); - } - - /** - * Player join event - * @param evt - */ - public void onPlayerJoin(PlayerJoinEvent evt) - { - if (evt.getPlayer() != null) - { - final ArenaPlayerImpl impl = this.players.get(evt.getPlayer().getUniqueId()); - if (impl != null) - { - impl.onPlayerJoin(); - } - } - } - - /** - * Player quit event. - * @param evt - */ - public void onPlayerQuit(PlayerQuitEvent evt) - { - if (evt.getPlayer() != null) - { - final ArenaPlayerImpl impl = this.players.get(evt.getPlayer().getUniqueId()); - if (impl != null) - { - impl.onPlayerQuit(); - } - } - } - -} diff --git a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java b/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java deleted file mode 100644 index 169593e6..00000000 --- a/LIBv2/src/main/java/com/github/mce/minigames/impl/services/PremiumServiceProviderInterface.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.impl.services; - -import java.util.Map; - -import com.github.mce.minigames.api.services.MinigameExtensionProviderInterface; - -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; - -/** - * A special extension to provide premium services; there can only be one premium extension. - * - * @author mepeisen - */ -public interface PremiumServiceProviderInterface extends MinigameExtensionProviderInterface -{ - - /** - * Returns additional commands being present in the mg2 commands. - * @return map containing additional mg2 commands; key is the command path and value is the sub command handler. - */ - Map<String, SubCommandHandlerInterface> getAdditionalCommands(); - -} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java index 1290dc1a..cc843b56 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java @@ -77,6 +77,12 @@ public LocalizedMessageInterface getDescription() return this.provider.getDescription(); } + @Override + public LocalizedMessageInterface getManual() + { + return this.provider.getManual(); + } + @Override public Plugin getPlugin() { diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index bca659b4..628b7755 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -32,7 +32,9 @@ import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; +import de.minigameslib.mgapi.impl.cmd.ArenasCommand; import de.minigameslib.mgapi.impl.cmd.InfoCommand; +import de.minigameslib.mgapi.impl.cmd.InfoExtensionCommand; import de.minigameslib.mgapi.impl.cmd.InfoExtensionsCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigameCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; @@ -51,7 +53,8 @@ InfoMinigamesCommand.Messages.class, InfoExtensionsCommand.Messages.class, InfoMinigameCommand.Messages.class, - //InfoExtensionCommand.Messages.class, + InfoExtensionCommand.Messages.class, + ArenasCommand.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java index 354de453..ffd5bd59 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java @@ -41,6 +41,12 @@ public enum MglibPerms implements PermissionsInterface * Permission for info comment. */ @Permission("command.info") - CommandInfo + CommandInfo, + + /** + * Permission for arenas comment. + */ + @Permission("command.arenas") + CommandArenas } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java index 5483b154..d86e9a85 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java @@ -83,6 +83,12 @@ public LocalizedMessageInterface getManual() return this.provider.getManual(); } + @Override + public LocalizedMessageInterface getHowToPlay() + { + return this.provider.getHowToPlay(); + } + @Override public Plugin getPlugin() { diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java similarity index 62% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java rename to LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java index 19661542..5718ed48 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/MinigameArenaListCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java @@ -38,46 +38,44 @@ * * @author mepeisen */ -public class MinigameArenaListCommand extends AbstractPagableCommandHandler +public class ArenaListCommand extends AbstractPagableCommandHandler { + /** supplier for arena count. */ + private IntSupplier count; + /** supplier for arena stream. */ + private Supplier<Stream<ArenaInterface>> arenas; + /** header line. */ + private Serializable header; + /** * @param count * @param arenas + * @param header */ - public MinigameArenaListCommand(IntSupplier count, Supplier<Stream<ArenaInterface>> arenas) + public ArenaListCommand(IntSupplier count, Supplier<Stream<ArenaInterface>> arenas, Serializable header) { - // TODO Auto-generated constructor stub + this.count = count; + this.arenas = arenas; + this.header = header; } - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler#getLineCount(de.minigameslib.mclib.api.cmd.CommandInterface) - */ @Override protected int getLineCount(CommandInterface command) { - // TODO Auto-generated method stub - return 0; + return this.count.getAsInt(); } - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler#getHeader(de.minigameslib.mclib.api.cmd.CommandInterface) - */ @Override protected Serializable getHeader(CommandInterface command) { - // TODO Auto-generated method stub - return null; + return this.header; } - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler#getLines(de.minigameslib.mclib.api.cmd.CommandInterface, int, int) - */ @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) + protected Serializable[] getLines(CommandInterface command, int start, int limit) { - // TODO Auto-generated method stub - return null; + return this.arenas.get().skip(start).limit(limit).map(p -> p.getDisplayName().toArg()).toArray(Serializable[]::new); } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java new file mode 100644 index 00000000..5d70a3a1 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java @@ -0,0 +1,112 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Arena list command + * + * @author mepeisen + */ +public class ArenasCommand extends ArenaListCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandArenas); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandArenas, command.getCommandPath()); + super.handle(command); + } + + /** + * Constructor + */ + public ArenasCommand() + { + super( + () -> MinigamesLibInterface.instance().getArenaCount(), + () -> MinigamesLibInterface.instance().getArenas(0, Integer.MAX_VALUE).stream(), + Messages.Header); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_arenas") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 arenas + */ + @LocalizedMessage(defaultMessage = "Prints a list of arenas.") + @MessageComment({"Short description of /mg2 arenas"}) + ShortDescription, + + /** + * Long description of /mg2 arenas + */ + @LocalizedMessage(defaultMessage = "Prints a list of arenas.") + @MessageComment({"Long description of /mg2 arenas"}) + Description, + + /** + * Paging header text + */ + @LocalizedMessage(defaultMessage = "Arenas") + @MessageComment({"Paging header text"}) + Header, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java new file mode 100644 index 00000000..b8750730 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java @@ -0,0 +1,216 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.LocalizedPagableCommand; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.ExtensionInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; + +/** + * Handle the minigame command info + * @author mepeisen + */ +public class InfoExtensionCommand implements SubCommandHandlerInterface +{ + + @Override + public void handle(CommandInterface command) throws McException + { + if (command.getArgs().length == 0) + { + command.send(Messages.NameMissing); + command.send(Messages.Usage); + return; + } + + final String name = command.getArgs()[0]; + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ExtensionInterface extension = mglib.getExtension(name); + if (extension == null) + { + command.send(Messages.ExtensionNotFound, name); + return; + } + + if (command.getArgs().length > 2) + { + command.send(CommonMessages.TooManyArguments); + command.send(Messages.Usage); + return; + } + if (command.getArgs().length == 2) + { + switch (command.getArgs()[1]) + { + case "manual": //$NON-NLS-1$ + new LocalizedPagableCommand( + extension.getManual(), + Messages.ManualPagedHeader.toArg(name) + ).handle(command.consumeArgs(1)); + return; + default: + command.send(CommonMessages.CompositeUnknownSubCommand, command.getCommandPath(), command.getArgs()[1]); + return; + } + } + + // print Info + final String version = extension.getPlugin().getDescription().getVersion(); + command.send(Messages.CommandOutput, + extension.getDisplayName().toArg(), + extension.getShortDescription().toArg(), + version, + extension.getDescription().toListArg(), + command.getCommandPath(), + name + ); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getExtensions(lastArg, 0, Integer.MAX_VALUE).stream().map(ExtensionInterface::getName).collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + return Arrays.asList("manual").stream().filter(p -> p.startsWith(lastArg)).collect(Collectors.toList()); //$NON-NLS-1$ + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface cmd) + { + return Messages.Description; + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface cmd) + { + return Messages.ShortDescription; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_info_extension") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 info extension + */ + @LocalizedMessage(defaultMessage = "Prints details on given extension.") + @MessageComment({"Short description of /mg2 info extension"}) + ShortDescription, + + /** + * Long description of /mg2 info extension + */ + @LocalizedMessage(defaultMessage = "Prints details of given extension.") + @MessageComment({"Long description of /mg2 info extension"}) + Description, + + /** + * Usage of /mg2 info extension + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 info extension <name>") + @MessageComment({"Usage of /mg2 info extension"}) + Usage, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing extension name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + NameMissing, + + /** + * Extension was not found + */ + @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"Extension was not found"}, args = @Argument("minigame name")) + ExtensionNotFound, + + /** + * The command output of /mg2 info extension + */ + @LocalizedMessageList({ + "extension %1$s (%2$s)", + "version: %3$s", + "----------", + "%4$s", + "----------", + "Run for additional information:", + " " + LocalizedMessage.BLUE + "%5$s %6$s manual " + LocalizedMessage.GRAY + " to display a manual." + }) + @MessageComment(value = { + "The command output of /mg2 info extension" + },args = { + @Argument("display name"), + @Argument("short description"), + @Argument("version number"), + @Argument("description"), + @Argument("command path"), + @Argument("extension name"), + }) + CommandOutput, + + /** + * Header line for /mg2 extension ... manual + */ + @LocalizedMessageList({ + "Manual for extension %1$s." + }) + @MessageComment(value = { + "Header line for /mg2 extension ... manual" + },args = { + @Argument("extension name"), + }) + ManualPagedHeader, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java index bfed1344..07e0c53c 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java @@ -32,14 +32,15 @@ import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.LocalizedPagableCommand; import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessageList; import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigamesLibInterface; @@ -80,13 +81,21 @@ public void handle(CommandInterface command) throws McException switch (command.getArgs()[1]) { case "arenas": //$NON-NLS-1$ - new MinigameArenaListCommand(() -> mglib.getArenaCount(minigame.getPlugin()), () -> mglib.getArenas(minigame.getPlugin(), 0, Integer.MAX_VALUE).stream()).handle(command.consumeArgs(1)); - break; + new ArenaListCommand( + () -> mglib.getArenaCount(minigame.getPlugin()), + () -> mglib.getArenas(minigame.getPlugin(), 0, Integer.MAX_VALUE).stream(), + Messages.ArenasPagedHeader.toArg(name) + ).handle(command.consumeArgs(1)); + return; case "manual": //$NON-NLS-1$ - // new InfoMinigameManualCommand(minigame).handle(command.consumeArgs(1)); - break; + new LocalizedPagableCommand( + minigame.getManual(), + Messages.ManualPagedHeader.toArg(name) + ).handle(command.consumeArgs(1)); + return; default: - break; + command.send(CommonMessages.CompositeUnknownSubCommand, command.getCommandPath(), command.getArgs()[1]); + return; } } @@ -169,7 +178,7 @@ public enum Messages implements LocalizedMessageInterface * Minigame was not found */ @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) + @MessageComment(value = {"Minigame was not found"}, args = @Argument("minigame name")) MinigameNotFound, /** @@ -196,6 +205,33 @@ public enum Messages implements LocalizedMessageInterface @Argument("minigame name"), }) CommandOutput, + + /** + * Header line for /mg2 minigame ... arenas + */ + @LocalizedMessageList({ + "Arenas for minigame %1$s." + }) + @MessageComment(value = { + "Header line for /mg2 minigame ... arenas" + },args = { + @Argument("minigame name"), + }) + ArenasPagedHeader, + + /** + * Header line for /mg2 minigame ... manual + */ + @LocalizedMessageList({ + "Manual for minigame %1$s." + }) + @MessageComment(value = { + "Header line for /mg2 minigame ... manual" + },args = { + @Argument("minigame name"), + }) + ManualPagedHeader, + } } From a2136c8e8d71dc32a356ab2cbf32a36cb31e1a9b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 19 Jan 2017 09:13:07 +0100 Subject: [PATCH 169/266] v2 --- .../mgapi/api/MinigamesLibInterface.java | 17 + .../mgapi/api/arena/ArenaInterface.java | 7 + .../mgapi/api/arena/ArenaTypeInterface.java | 30 ++ .../mgapi/impl/MglibMessages.java | 46 ++- .../minigameslib/mgapi/impl/MglibPerms.java | 18 +- .../mgapi/impl/MinigamesPlugin.java | 33 +- .../mgapi/impl/arena/ArenaData.java | 22 ++ .../mgapi/impl/arena/ArenaImpl.java | 300 ++++++++++++++++-- .../mgapi/impl/arena/TeamImpl.java | 40 +++ .../mgapi/impl/cmd/ArenaCommand.java | 228 +++++++++++++ .../mgapi/impl/cmd/JoinCommand.java | 158 +++++++++ .../mgapi/impl/cmd/Mg2Command.java | 2 + .../mgapi/impl/internal/TaskManager.java | 58 ++++ .../impl/tasks/ArenaRecoverCrashTask.java | 57 ++++ .../mgapi/impl/tasks/ArenaRestartTask.java | 57 ++++ .../mgapi/impl/tasks/ArenaStartTask.java | 57 ++++ .../mgapi/impl/tasks/InitTask.java | 23 +- 17 files changed, 1107 insertions(+), 46 deletions(-) create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 83a70543..9d20fef6 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -29,8 +29,10 @@ import org.bukkit.plugin.Plugin; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** * Base interface to access the minigames API. @@ -144,6 +146,14 @@ static MinigamesLibInterface instance() */ MinigameInterface getMinigame(String name); + /** + * Returns minigame for given plugin. + * + * @param plugin + * @return {@code null} if minigame was not found + */ + MinigameInterface getMinigame(Plugin plugin); + /** * Initializes the given extension. * @@ -366,5 +376,12 @@ static MinigamesLibInterface instance() * thrown if there are problems creating the arena. */ ArenaInterface create(String name, ArenaTypeInterface type) throws McException; + + /** + * Returns the arena player for given mclib player + * @param player + * @return arena player + */ + ArenaPlayerInterface getPlayer(McPlayerInterface player); } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 867a4e3c..09fa0d92 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -29,6 +29,7 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.locale.LocalizedConfigLine; import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** @@ -136,5 +137,11 @@ public interface ArenaInterface * @return list of arena failures. */ Collection<CheckFailure> check(); + + /** + * The minigame of the arena. + * @return arena minigame; may be null for invalid arenas. + */ + MinigameInterface getMinigame(); } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java index 6382588d..39e88a87 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java @@ -24,6 +24,12 @@ package de.minigameslib.mgapi.api.arena; +import org.bukkit.plugin.Plugin; + +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; + /** * Interface implemented by enumerations for building arena types. * @@ -32,6 +38,12 @@ public interface ArenaTypeInterface { + /** + * Returns the name of the enum + * @return enum name + */ + String name(); + /** * Returns the arena type provider for this type. * @return arena type provider class @@ -49,4 +61,22 @@ default Class<? extends ArenaTypeProvider> getProvider() } } + /** + * Returns the plugin owning this type. + * @return plugin. + */ + default Plugin getPlugin() + { + return EnumServiceInterface.instance().getPlugin((Enum<?>) this); + } + + /** + * Returns the minigame owning this type. + * @return minigame. + */ + default MinigameInterface getMinigame() + { + return MinigamesLibInterface.instance().getMinigame(getPlugin()); + } + } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 628b7755..4c5921ac 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -32,12 +32,15 @@ import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.ArenaCommand; import de.minigameslib.mgapi.impl.cmd.ArenasCommand; import de.minigameslib.mgapi.impl.cmd.InfoCommand; import de.minigameslib.mgapi.impl.cmd.InfoExtensionCommand; import de.minigameslib.mgapi.impl.cmd.InfoExtensionsCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigameCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; +import de.minigameslib.mgapi.impl.cmd.JoinCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; /** @@ -55,11 +58,52 @@ InfoMinigameCommand.Messages.class, InfoExtensionCommand.Messages.class, ArenasCommand.Messages.class, + ArenaCommand.Messages.class, + ArenaImpl.Messages.class, + JoinCommand.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { - // common error messages + /** Arena is disabled. */ + @LocalizedMessage(defaultMessage = "DISABLED", severity = MessageSeverityType.Error) + @MessageComment({"Arena is disabled."}) + ArenaStateDisabled, + + /** Arena is under maintenance. */ + @LocalizedMessage(defaultMessage = "MAINTENANCE", severity = MessageSeverityType.Error) + @MessageComment({"Arena is under meintenance."}) + ArenaStateMaintenance, + + /** Arena is in join state. */ + @LocalizedMessage(defaultMessage = "JOIN", severity = MessageSeverityType.Success) + @MessageComment({"Arena is in join state."}) + ArenaStateJoin, + + /** Arena is starting. */ + @LocalizedMessage(defaultMessage = "START", severity = MessageSeverityType.Warning) + @MessageComment({"Arena is starting."}) + ArenaStateStarting, + + /** Arena is in PreMatch state. */ + @LocalizedMessage(defaultMessage = "PRE-MATCH", severity = MessageSeverityType.Winner) + @MessageComment({"Arena is in pre-match state."}) + ArenaStatePreMatch, + + /** Arena is in Match state. */ + @LocalizedMessage(defaultMessage = "MATCH", severity = MessageSeverityType.Winner) + @MessageComment({"Arena is in match state."}) + ArenaStateMatch, + + /** Arena is in PostMatch state. */ + @LocalizedMessage(defaultMessage = "POST-MATCH", severity = MessageSeverityType.Winner) + @MessageComment({"Arena is in post-match state."}) + ArenaStatePostMatch, + + /** Arena is resetting. */ + @LocalizedMessage(defaultMessage = "RESET", severity = MessageSeverityType.Warning) + @MessageComment({"Arena is resetting."}) + ArenaStateRestarting, /** Library is initializing. */ @LocalizedMessage(defaultMessage = "INIT", severity = MessageSeverityType.Error) diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java index ffd5bd59..ff9ae8b4 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java @@ -38,15 +38,27 @@ public enum MglibPerms implements PermissionsInterface { /** - * Permission for info comment. + * Permission for info command. */ @Permission("command.info") CommandInfo, /** - * Permission for arenas comment. + * Permission for arenas command. */ @Permission("command.arenas") - CommandArenas + CommandArenas, + + /** + * Permission for arena command. + */ + @Permission("command.arena") + CommandArena, + + /** + * Permission for join command. + */ + @Permission("command.join") + CommandJoin } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 1d40f908..96febfde 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -59,9 +59,11 @@ import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.tasks.InitTask; /** @@ -103,6 +105,8 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** arenas per name. */ private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); + // TODO Watch for disabled plugins + /** arena name check pattern */ private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ @@ -119,6 +123,7 @@ public void onEnable() EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); + Bukkit.getServicesManager().register(TaskManager.class, new TaskManager(), this, ServicePriority.Highest); final String[] arenas = MglibConfig.Arenas.getStringList(); for (final String arena : arenas) @@ -260,6 +265,18 @@ public void initMinigame(Plugin plugin, MinigameProvider provider) throws McExce this.minigamesPerName.put(minigame.getName(), minigame); } + @Override + public MinigameInterface getMinigame(String name) + { + return this.minigamesPerName.get(name); + } + + @Override + public MinigameInterface getMinigame(Plugin plugin) + { + return this.minigamesPerPlugin.get(plugin.getName()); + } + @Override public int getMinigameCount() { @@ -328,12 +345,6 @@ public Collection<ExtensionInterface> getExtensions(String prefix, int index, in return this.extensionsPerName.values().stream().filter(p -> p.getName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); } - @Override - public MinigameInterface getMinigame(String name) - { - return this.minigamesPerName.get(name); - } - @Override public ExtensionInterface getExtension(String name) { @@ -442,5 +453,15 @@ public ArenaInterface create(String name, ArenaTypeInterface type) throws McExce this.arenasPerName.put(name, arena); return arena; } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getPlayer(de.minigameslib.mclib.api.objects.McPlayerInterface) + */ + @Override + public ArenaPlayerInterface getPlayer(McPlayerInterface player) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java index eb089056..5e4260be 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java @@ -88,6 +88,12 @@ public class ArenaData extends AnnotatedDataFragment */ @PersistentField private boolean isMaintenance; + + /** + * True if a match is pending. + */ + @PersistentField + private boolean matchPending; /** * @param name @@ -220,5 +226,21 @@ public void setMaintenance(boolean isMaintenance) { this.isMaintenance = isMaintenance; } + + /** + * @return the matchPending + */ + public boolean isMatchPending() + { + return this.matchPending; + } + + /** + * @param matchPending the matchPending to set + */ + public void setMatchPending(boolean matchPending) + { + this.matchPending = matchPending; + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index bedf5ff6..8c0f2781 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -25,18 +25,39 @@ package de.minigameslib.mgapi.impl.arena; import java.io.File; +import java.io.IOException; import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; import org.bukkit.plugin.Plugin; +import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedConfigLine; import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mclib.shared.api.com.MemoryDataSection; +import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaState; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.arena.CheckFailure; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.impl.internal.TaskManager; +import de.minigameslib.mgapi.impl.tasks.ArenaRestartTask; +import de.minigameslib.mgapi.impl.tasks.ArenaStartTask; /** * Arena data. @@ -62,6 +83,12 @@ public class ArenaImpl implements ArenaInterface /** current arena state. */ private ArenaState state; + /** the players within this arena. */ + private final Set<UUID> players = new HashSet<>(); + + /** the spectators. */ + private final Set<UUID> spectators = new HashSet<>(); + /** * Constructor to create an arena by using given data file. * @param dataFile @@ -70,8 +97,16 @@ public class ArenaImpl implements ArenaInterface public ArenaImpl(File dataFile) throws McException { this.dataFile = dataFile; - // TODO yml file - // TODO provide a way to detect server crashes during games and set a state to request hard reset asap + try + { + final DataSection section = McLibInterface.instance().readYmlFile(dataFile); + this.arenaData = section.getFragment(ArenaData.class, "data"); //$NON-NLS-1$ + } + catch (IOException e) + { + throw new McException(CommonMessages.InternalError, e, e.getMessage()); + } + if (!this.arenaData.isEnabled()) { this.state = ArenaState.Disabled; @@ -96,7 +131,17 @@ else if (this.arenaData.isMaintenance()) public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McException { this.dataFile = dataFile; - // TODO Auto-generated constructor stub + this.arenaData = new ArenaData(name, EnumServiceInterface.instance().getPlugin((Enum<?>) type).getName(), type.name()); + this.saveData(); + } + + /** + * Checks if a match is pending; a flag to recover after server crashes. + * @return {@code true} if a match is pending + */ + public boolean isMatchPending() + { + return this.arenaData.isMatchPending(); } @Override @@ -138,8 +183,16 @@ public LocalizedConfigLine getManual() @Override public void saveData() throws McException { - // TODO Auto-generated method stub - + final DataSection section = new MemoryDataSection(); + section.set("data", this.arenaData); //$NON-NLS-1$ + try + { + McLibInterface.instance().saveYmlFile(section, this.dataFile); + } + catch (IOException e) + { + throw new McException(CommonMessages.InternalError, e, e.getMessage()); + } } @Override @@ -148,64 +201,156 @@ public ArenaState getState() return this.state; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#join(de.minigameslib.mgapi.api.player.ArenaPlayerInterface) - */ @Override public void join(ArenaPlayerInterface player) throws McException { - // TODO Auto-generated method stub + if (this.state != ArenaState.Join) + { + throw new McException(Messages.JoinWrongState); + } + this.players.add(player.getPlayerUUID()); + // TODO port to waiting lobby etc. + player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName().toArg()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#spectate(de.minigameslib.mgapi.api.player.ArenaPlayerInterface) - */ @Override public void spectate(ArenaPlayerInterface player) throws McException { - // TODO Auto-generated method stub - + switch (this.state) + { + case Disabled: + case Join: + case Maintenance: + case Restarting: + case Starting: + default: + throw new McException(Messages.SpectateWrongState); + case Match: + case PostMatch: + case PreMatch: + this.spectators.add(player.getPlayerUUID()); + // TODO port to spectator spawn etc. + player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName().toArg()); + break; + } } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#setEnabledState() - */ @Override public void setEnabledState() throws McException { - // TODO Auto-generated method stub + if (this.state != ArenaState.Disabled && this.state != ArenaState.Maintenance) + { + throw new McException(Messages.EnableWrongState); + } + + this.arenaData.setEnabled(true); + this.saveData(); + this.state = ArenaState.Starting; + TaskManager.instance().queue(new ArenaStartTask(this)); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#setDisabledState(boolean) - */ @Override public void setDisabledState(boolean force) throws McException { - // TODO Auto-generated method stub + switch (this.state) + { + default: + case Disabled: + throw new McException(Messages.DisableWrongState); + case Maintenance: + case Starting: + this.arenaData.setMaintenance(false); + this.arenaData.setEnabled(false); + this.saveData(); + this.state = ArenaState.Disabled; + break; + case Join: + case Match: + case PostMatch: + case PreMatch: + case Restarting: + this.arenaData.setEnabled(false); + this.saveData(); + if (force) + { + // abort current game. + this.abortGame(Messages.KickReasonDisable); + this.state = ArenaState.Restarting; + TaskManager.instance().queue(new ArenaRestartTask(this)); + } + break; + } + } + + /** + * Aborts a current game and kicks all players + * @param kickReason + */ + private void abortGame(LocalizedMessageInterface kickReason) + { + for (final UUID uuid : this.players) + { + this.kick(uuid, kickReason); + } + this.players.clear(); + for (final UUID uuid : this.spectators) + { + this.kick(uuid, kickReason); + } + this.spectators.clear(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#setMaintenance(boolean) + /** + * Kicks a single player with given reason + * @param uuid + * @param kickReason */ + private void kick(UUID uuid, LocalizedMessageInterface kickReason) + { + final McPlayerInterface player = ObjectServiceInterface.instance().getPlayer(uuid); + player.sendMessage(Messages.YouWereKicked, kickReason.toArg()); + } + @Override public void setMaintenance(boolean force) throws McException { - // TODO Auto-generated method stub - + switch (this.state) + { + default: + case Maintenance: + throw new McException(Messages.MaintenanceWrongState); + case Disabled: + case Starting: + this.arenaData.setMaintenance(true); + this.arenaData.setEnabled(true); + this.saveData(); + this.state = ArenaState.Maintenance; + break; + case Join: + case Match: + case PostMatch: + case PreMatch: + case Restarting: + this.arenaData.setMaintenance(true); + this.saveData(); + if (force) + { + // abort current game. + this.abortGame(Messages.KickReasonMaintenance); + this.state = ArenaState.Restarting; + TaskManager.instance().queue(new ArenaRestartTask(this)); + } + break; + } } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#isMaintenance() - */ @Override public boolean isMaintenance() { - // TODO Auto-generated method stub - return false; + return this.arenaData.isMaintenance(); } /* (non-Javadoc) @@ -219,12 +364,99 @@ public Collection<CheckFailure> check() } /** - * @return + * Returns the owning plugin. + * @return owning plugin */ public Plugin getPlugin() { - // TODO Auto-generated method stub - return null; + return this.type.getPlugin(); + } + + @Override + public MinigameInterface getMinigame() + { + return this.type.getMinigame(); + } + + /** + * The arena messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "arena") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Cannot join because of wrong state + */ + @LocalizedMessage(defaultMessage = "Cannot join because arena is unavailable or a match is already running.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot join because of wrong state"}) + JoinWrongState, + + /** + * Join Succeeded + */ + @LocalizedMessage(defaultMessage = "You joined arena %1$s.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Join Succeeded"}, args = {@Argument("arena display name")}) + JoinedArena, + + /** + * Cannot join because of wrong state + */ + @LocalizedMessage(defaultMessage = "Cannot spectate because arena is unavailable or there is no pending match.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot spectate because of wrong state"}) + SpectateWrongState, + + /** + * Spectate Succeeded + */ + @LocalizedMessage(defaultMessage = "You are spectating arena %1$s.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Spectate Succeeded"}, args = {@Argument("arena display name")}) + SpectatingArena, + + /** + * Cannot enable because arena is not suspended + */ + @LocalizedMessage(defaultMessage = "Cannot enable arena because it is not suspended.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot spectate because of wrong state"}) + EnableWrongState, + + /** + * Cannot disable because arena is already disabled + */ + @LocalizedMessage(defaultMessage = "Cannot disable arena because it is already disabled.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot disable because arena is already disabled"}) + DisableWrongState, + + /** + * Kick reason: Arena was disabled by admin + */ + @LocalizedMessage(defaultMessage = "Arena was disabled by admin") + @MessageComment({"Kick reason: arena was disabled by admin"}) + KickReasonDisable, + + /** + * Cannot maintain because arena is already under maintenance + */ + @LocalizedMessage(defaultMessage = "Cannot maintain arena because it is already under maintenance.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot maintain because arena is already under maintenance"}) + MaintenanceWrongState, + + /** + * Kick reason: Arena is maintained by admin + */ + @LocalizedMessage(defaultMessage = "Arena is going into maintenance") + @MessageComment({"Kick reason: arena is maintained by admin"}) + KickReasonMaintenance, + + /** + * You were kicked + */ + @LocalizedMessage(defaultMessage = "You were kicked. Reason: %1$s", severity = MessageSeverityType.Error) + @MessageComment({"You were kicked"}) + YouWereKicked, + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java new file mode 100644 index 00000000..856fb713 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java @@ -0,0 +1,40 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import java.util.UUID; + +/** + * Basic team implementation. + * + * @author mepeisen + */ +public class TeamImpl +{ + + /** a generic uuid to identify a team. */ + private final UUID teamUuid = UUID.randomUUID(); + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java new file mode 100644 index 00000000..b9442aad --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java @@ -0,0 +1,228 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibMessages; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Prints info on arenas. + * + * @author mepeisen + */ +public class ArenaCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandArena); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandArena, command.getCommandPath()); + + if (command.getArgs().length == 0) + { + command.send(Messages.NameMissing); + command.send(Messages.Usage); + return; + } + + final String name = command.getArgs()[0]; + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ArenaInterface arena = mglib.getArena(name); + if (arena == null) + { + command.send(Messages.ArenaNotFound, name); + return; + } + + if (command.getArgs().length > 1) + { + command.send(CommonMessages.TooManyArguments); + command.send(Messages.Usage); + return; + } + + // print Info + final MinigameInterface minigame = arena.getMinigame(); + final Serializable mgName = minigame == null ? "<invalid>" : arena.getMinigame().getDisplayName().toArg(); //$NON-NLS-1$ + command.send(Messages.CommandOutput, + mgName, + arena.getDisplayName().toArg(), + arena.getShortDescription().toArg(), + toString(arena.getState()), + arena.getDescription().toArg(), + name + ); + } + + /** + * Returns the string message for given arena state + * @param state + * @return string message + */ + private LocalizedMessageInterface toString(ArenaState state) + { + switch (state) + { + default: + case Disabled: + return MglibMessages.ArenaStateDisabled; + case Join: + return MglibMessages.ArenaStateJoin; + case Starting: + return MglibMessages.ArenaStateStarting; + case PreMatch: + return MglibMessages.ArenaStatePreMatch; + case Match: + return MglibMessages.ArenaStateMatch; + case PostMatch: + return MglibMessages.ArenaStatePostMatch; + case Restarting: + return MglibMessages.ArenaStateRestarting; + case Maintenance: + return MglibMessages.ArenaStateMaintenance; + } + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_arena") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 arena + */ + @LocalizedMessage(defaultMessage = "Prints detailed info on arenas.") + @MessageComment({"Short description of /mg2 arena"}) + ShortDescription, + + /** + * Long description of /mg2 arena + */ + @LocalizedMessage(defaultMessage = "Prints detailed info on arenas.") + @MessageComment({"Long description of /mg2 arena"}) + Description, + + /** + * Usage of /mg2 arena + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 arena <name>") + @MessageComment({"Usage of /mg2 arena"}) + Usage, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + NameMissing, + + /** + * Arena was not found + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) + ArenaNotFound, + + /** + * The command output of /mg2 arena + */ + @LocalizedMessageList({ + "minigame: %1$s", + "arena: %2$s - %3$s", + "state: %4$s", + "----------", + "%5$s", + "----------", + "Additional commands:", + " " + LocalizedMessage.BLUE + "/mg2 join %6$s " + LocalizedMessage.GRAY + " to join the arena.", + " " + LocalizedMessage.BLUE + "/mg2 spectate %6$s " + LocalizedMessage.GRAY + " to spectate an active match.", + " " + LocalizedMessage.BLUE + "/mg2 manual %6$s " + LocalizedMessage.GRAY + " to display a manual." + }) + @MessageComment(value = { + "The command output of /mg2 arena" + },args = { + @Argument("minigame display name"), + @Argument("arena display name"), + @Argument("arena short description"), + @Argument("arena state"), + @Argument("arena long description"), + @Argument("arena internal name"), + }) + CommandOutput, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java new file mode 100644 index 00000000..1f73d3d3 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Let users join an arena. + * + * @author mepeisen + */ +public class JoinCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandJoin); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandJoin, command.getCommandPath()); + + if (command.getArgs().length == 0) + { + command.send(Messages.NameMissing); + command.send(Messages.Usage); + return; + } + + final String name = command.getArgs()[0]; + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ArenaInterface arena = mglib.getArena(name); + if (arena == null) + { + command.send(Messages.ArenaNotFound, name); + return; + } + + if (command.getArgs().length > 1) + { + command.send(CommonMessages.TooManyArguments); + command.send(Messages.Usage); + return; + } + + // do the join + arena.join(mglib.getPlayer(command.getPlayer())); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_join") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 join + */ + @LocalizedMessage(defaultMessage = "Joins an arena.") + @MessageComment({"Short description of /mg2 join"}) + ShortDescription, + + /** + * Long description of /mg2 join + */ + @LocalizedMessage(defaultMessage = "Joins an arena.") + @MessageComment({"Long description of /mg2 join"}) + Description, + + /** + * Usage of /mg2 join + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 join <name>") + @MessageComment({"Usage of /mg2 join"}) + Usage, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + NameMissing, + + /** + * Arena was not found + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) + ArenaNotFound, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java index 9734fbc5..f28b2fa2 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -49,6 +49,8 @@ public Mg2Command() this.subCommands.put("help", new HelpCommandHandler(this)); //$NON-NLS-1$ this.subCommands.put("info", new InfoCommand()); //$NON-NLS-1$ + this.subCommands.put("arenas", new ArenasCommand()); //$NON-NLS-1$ + this.subCommands.put("arena", new ArenaCommand()); //$NON-NLS-1$ } @Override diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java new file mode 100644 index 00000000..34c17b5f --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java @@ -0,0 +1,58 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.internal; + +import org.bukkit.Bukkit; + +import de.minigameslib.mclib.api.util.function.McRunnable; + +/** + * A task manager to queue periodic work tasks. + * + * @author mepeisen + */ +public class TaskManager +{ + + /** + * Returns the task manager instance. + * @return task manager + */ + public static TaskManager instance() + { + // TODO caching. + return Bukkit.getServicesManager().load(TaskManager.class); + } + + /** + * Queues a new task to be runned asap. + * @param task + */ + public void queue(McRunnable task) + { + // TODO Auto-generated method stub + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java new file mode 100644 index 00000000..b667c13d --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java @@ -0,0 +1,57 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.tasks; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; + +/** + * A task to check and start a arena. + * + * @author mepeisen + */ +public class ArenaRecoverCrashTask implements McRunnable +{ + + /** + * @param arenaImpl + */ + public ArenaRecoverCrashTask(ArenaImpl arenaImpl) + { + // TODO Auto-generated constructor stub + } + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.util.function.McRunnable#run() + */ + @Override + public void run() throws McException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java new file mode 100644 index 00000000..13b236cb --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java @@ -0,0 +1,57 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.tasks; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; + +/** + * A task to check and start a arena. + * + * @author mepeisen + */ +public class ArenaRestartTask implements McRunnable +{ + + /** + * @param arenaImpl + */ + public ArenaRestartTask(ArenaImpl arenaImpl) + { + // TODO Auto-generated constructor stub + } + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.util.function.McRunnable#run() + */ + @Override + public void run() throws McException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java new file mode 100644 index 00000000..b1720695 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java @@ -0,0 +1,57 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.tasks; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; + +/** + * A task to check and start a arena. + * + * @author mepeisen + */ +public class ArenaStartTask implements McRunnable +{ + + /** + * @param arenaImpl + */ + public ArenaStartTask(ArenaImpl arenaImpl) + { + // TODO Auto-generated constructor stub + } + + /* (non-Javadoc) + * @see de.minigameslib.mclib.api.util.function.McRunnable#run() + */ + @Override + public void run() throws McException + { + // TODO Auto-generated method stub + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java index d976e5ea..940add21 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java @@ -26,6 +26,12 @@ import org.bukkit.scheduler.BukkitRunnable; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.internal.TaskManager; + /** * Initialization task for minigames. * @@ -37,8 +43,21 @@ public class InitTask extends BukkitRunnable @Override public void run() { - // TODO Auto-generated method stub - + for (final ArenaInterface arena : MinigamesLibInterface.instance().getArenas(0, Integer.MAX_VALUE)) + { + if (arena.getState() == ArenaState.Starting) + { + final ArenaImpl impl = (ArenaImpl) arena; + if (impl.isMatchPending()) + { + TaskManager.instance().queue(new ArenaRecoverCrashTask((ArenaImpl) arena)); + } + else + { + TaskManager.instance().queue(new ArenaStartTask((ArenaImpl) arena)); + } + } + } } } From a5bf1d46b1b468dcbafe24f88d840d57a65408b6 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 20 Jan 2017 12:20:33 +0100 Subject: [PATCH 170/266] v2 --- .../mgapi/impl/MglibMessages.java | 8 +- .../minigameslib/mgapi/impl/MglibPerms.java | 14 +- .../mgapi/impl/cmd/ManualCommand.java | 177 ++++++++++++++++++ .../mgapi/impl/cmd/Mg2Command.java | 2 + .../mgapi/impl/cmd/SpectateCommand.java | 158 ++++++++++++++++ 5 files changed, 357 insertions(+), 2 deletions(-) create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 4c5921ac..6e8df5a4 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -41,7 +41,9 @@ import de.minigameslib.mgapi.impl.cmd.InfoMinigameCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; import de.minigameslib.mgapi.impl.cmd.JoinCommand; +import de.minigameslib.mgapi.impl.cmd.ManualCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.cmd.SpectateCommand; /** * The common messages. @@ -50,7 +52,10 @@ */ @LocalizedMessages(value = "core") @ChildEnum({ + // core MglibCoreErrors.class, + ArenaImpl.Messages.class, + // commands Mg2Command.Messages.class, InfoCommand.Messages.class, InfoMinigamesCommand.Messages.class, @@ -59,8 +64,9 @@ InfoExtensionCommand.Messages.class, ArenasCommand.Messages.class, ArenaCommand.Messages.class, - ArenaImpl.Messages.class, JoinCommand.Messages.class, + SpectateCommand.Messages.class, + ManualCommand.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java index ff9ae8b4..ea4d254f 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java @@ -59,6 +59,18 @@ public enum MglibPerms implements PermissionsInterface * Permission for join command. */ @Permission("command.join") - CommandJoin + CommandJoin, + + /** + * Permission for spectate command. + */ + @Permission("command.spectate") + CommandSpectate, + + /** + * Permission for manual command. + */ + @Permission("command.manual") + CommandManual } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java new file mode 100644 index 00000000..f3a4629c --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java @@ -0,0 +1,177 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.LocalizedPagableCommand; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Prints info on arenas. + * + * @author mepeisen + */ +public class ManualCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandManual); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandManual, command.getCommandPath()); + + if (command.getArgs().length == 0) + { + command.send(Messages.NameMissing); + command.send(Messages.Usage); + return; + } + + final String name = command.getArgs()[0]; + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ArenaInterface arena = mglib.getArena(name); + if (arena == null) + { + command.send(Messages.ArenaNotFound, name); + return; + } + + if (command.getArgs().length > 1) + { + command.send(CommonMessages.TooManyArguments); + command.send(Messages.Usage); + return; + } + + // print manual + new LocalizedPagableCommand( + arena.getManual() == null ? arena.getMinigame().getHowToPlay() : arena.getManual(), + Messages.ManualPagedHeader.toArg(arena.getDisplayName()) + ).handle(command.consumeArgs(1)); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_manual") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 manual + */ + @LocalizedMessage(defaultMessage = "Prints how-to-play manual on arenas.") + @MessageComment({"Short description of /mg2 manual"}) + ShortDescription, + + /** + * Long description of /mg2 manual + */ + @LocalizedMessage(defaultMessage = "Prints how-to-play manual on arenas.") + @MessageComment({"Long description of /mg2 manual"}) + Description, + + /** + * Usage of /mg2 manual + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 manual <name>") + @MessageComment({"Usage of /mg2 manual"}) + Usage, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + NameMissing, + + /** + * Arena was not found + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) + ArenaNotFound, + + /** + * Header line for /mg2 manual ... + */ + @LocalizedMessageList({ + "How-to-play for arena %1$s." + }) + @MessageComment(value = { + "Header line for /mg2 manual ..." + },args = { + @Argument("arena display name"), + }) + ManualPagedHeader, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java index f28b2fa2..ef311d04 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -51,6 +51,8 @@ public Mg2Command() this.subCommands.put("info", new InfoCommand()); //$NON-NLS-1$ this.subCommands.put("arenas", new ArenasCommand()); //$NON-NLS-1$ this.subCommands.put("arena", new ArenaCommand()); //$NON-NLS-1$ + this.subCommands.put("join", new JoinCommand()); //$NON-NLS-1$ + this.subCommands.put("spectate", new SpectateCommand()); //$NON-NLS-1$ } @Override diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java new file mode 100644 index 00000000..f820b5db --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Let users spectate a match. + * + * @author mepeisen + */ +public class SpectateCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandSpectate); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandSpectate, command.getCommandPath()); + + if (command.getArgs().length == 0) + { + command.send(Messages.NameMissing); + command.send(Messages.Usage); + return; + } + + final String name = command.getArgs()[0]; + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ArenaInterface arena = mglib.getArena(name); + if (arena == null) + { + command.send(Messages.ArenaNotFound, name); + return; + } + + if (command.getArgs().length > 1) + { + command.send(CommonMessages.TooManyArguments); + command.send(Messages.Usage); + return; + } + + // do the spectate + arena.spectate(mglib.getPlayer(command.getPlayer())); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_spectate") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 spectate + */ + @LocalizedMessage(defaultMessage = "Spectates an arena match.") + @MessageComment({"Short description of /mg2 spectate"}) + ShortDescription, + + /** + * Long description of /mg2 spectate + */ + @LocalizedMessage(defaultMessage = "Spectates an arena match.") + @MessageComment({"Long description of /mg2 spectate"}) + Description, + + /** + * Usage of /mg2 spectate + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 spectate <name>") + @MessageComment({"Usage of /mg2 spectate"}) + Usage, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + NameMissing, + + /** + * Arena was not found + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) + ArenaNotFound, + } + +} From b2b541203bdde1d344803fa0b319a569047e290d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 21 Jan 2017 09:52:54 +0100 Subject: [PATCH 171/266] v2 --- .../mgapi/api/MinigameInterface.java | 19 ++ .../mgapi/api/arena/ArenaInterface.java | 43 ++- .../api/player/ArenaPlayerInterface.java | 12 + .../mgapi/impl/MglibMessages.java | 29 ++ .../minigameslib/mgapi/impl/MglibPerms.java | 86 +++++- .../minigameslib/mgapi/impl/MinigameImpl.java | 30 ++ .../mgapi/impl/MinigamesPlugin.java | 20 +- .../mgapi/impl/arena/ArenaImpl.java | 178 +++++++++++- .../mgapi/impl/arena/ArenaPlayerImpl.java | 152 ++++++++++ .../impl/arena/ArenaPlayerPersistentData.java | 82 ++++++ .../mgapi/impl/cmd/AdminCheckCommand.java | 161 +++++++++++ .../mgapi/impl/cmd/AdminCommand.java | 127 ++++++++ .../mgapi/impl/cmd/AdminCreateCommand.java | 155 ++++++++++ .../mgapi/impl/cmd/AdminDeleteCommand.java | 130 +++++++++ .../mgapi/impl/cmd/AdminDisableCommand.java | 129 +++++++++ .../mgapi/impl/cmd/AdminEnableCommand.java | 129 +++++++++ .../mgapi/impl/cmd/AdminGuiCommand.java | 110 +++++++ .../mgapi/impl/cmd/AdminInviteCommand.java | 138 +++++++++ .../mgapi/impl/cmd/AdminMaintainCommand.java | 129 +++++++++ .../mgapi/impl/cmd/AdminSGuiCommand.java | 110 +++++++ .../mgapi/impl/cmd/AdminStartCommand.java | 130 +++++++++ .../mgapi/impl/cmd/AdminStopCommand.java | 129 +++++++++ .../mgapi/impl/cmd/AdminTestCommand.java | 130 +++++++++ .../mgapi/impl/cmd/ArenaCommand.java | 37 +-- .../mgapi/impl/cmd/ArenaListCommand.java | 2 +- .../mgapi/impl/cmd/ArenasCommand.java | 2 +- .../mgapi/impl/cmd/InfoCommand.java | 6 +- .../mgapi/impl/cmd/InfoExtensionCommand.java | 51 +--- .../mgapi/impl/cmd/InfoExtensionsCommand.java | 4 +- .../mgapi/impl/cmd/InfoMinigameCommand.java | 54 +--- .../mgapi/impl/cmd/InfoMinigamesCommand.java | 4 +- .../mgapi/impl/cmd/JoinCommand.java | 45 +-- .../mgapi/impl/cmd/LeaveCommand.java | 131 +++++++++ .../mgapi/impl/cmd/ManualCommand.java | 40 +-- .../mgapi/impl/cmd/Mg2Command.java | 270 +++++++++++++++++- .../mgapi/impl/cmd/SpectateCommand.java | 46 +-- PARENTv2/pom.xml | 6 +- 37 files changed, 2804 insertions(+), 252 deletions(-) create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java create mode 100644 LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java index f7cded17..4bcd0d69 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java @@ -24,9 +24,12 @@ package de.minigameslib.mgapi.api; +import java.util.Collection; + import org.bukkit.plugin.Plugin; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * @author mepeisen @@ -76,5 +79,21 @@ public interface MinigameInterface * @return bukkit plugin. */ Plugin getPlugin(); + + /** + * @param typeName + * @return + */ + ArenaTypeInterface getType(String typeName); + + int getTypeCount(); + + /** + * @param prefix + * @param start + * @param limit + * @return + */ + Collection<ArenaTypeInterface> getTypes(String prefix, int start, int limit); } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 09fa0d92..0fdc2866 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -91,14 +91,21 @@ public interface ArenaInterface ArenaState getState(); /** - * Let the given player join the waiting lobby. + * Let the given player leave the arena. Prints a text message to player on success. + * @param player + * @throws McException thrown if the player is not inside given arena + */ + void leave(ArenaPlayerInterface player) throws McException; + + /** + * Let the given player join the waiting lobby. Prints a text message to player on success. * @param player * @throws McException thrown if the arena is in any other state except {@link ArenaState#Join} */ void join(ArenaPlayerInterface player) throws McException; /** - * Let the given player join the spectation area. + * Let the given player join the spectation area. Prints a text message to player on success. * @param player * @throws McException thrown if the arena does not run games or is not in state {@link ArenaState#Join} */ @@ -131,6 +138,18 @@ public interface ArenaInterface * @return {@code true} if setMaintenance was called before or the arena is still in maintenance mode. */ boolean isMaintenance(); + + /** + * Checks if arena is in disabled state mode or is going to disabled mode as soon as possible. + * @return {@code true} if setDisabledState was called before or the arena is still in disabled mode. + */ + boolean isDisabled(); + + /** + * Checks if arena is running a match. + * @return {@code true} if arena is in one of the match states: PRE_MATCH, MATCH, POST_MATCH + */ + boolean isMatch(); /** * Checks for administration failures. @@ -143,5 +162,23 @@ public interface ArenaInterface * @return arena minigame; may be null for invalid arenas. */ MinigameInterface getMinigame(); - + + /** + * Delete arena + * @throws McException thrown if arena could not be deleted or if arena is not in maintenance state + */ + void delete() throws McException; + + /** + * Starts a match + * @throws McException thrown if arena is not in join state or if there is no player. + */ + void start() throws McException; + + /** + * Sets test mode for a maintained arena; ensures that arena gets to maintenance mode one the match was finished. + * @throws McException thrown if arena is not in maintenance state. + */ + void setTestState() throws McException; + } diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java index e5fb72ab..1f07eb54 100644 --- a/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java +++ b/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java @@ -139,4 +139,16 @@ default boolean inArena() return this.getArena() != null; } + /** + * Checks if player is within arena and if he is spectating + * @return {@code true} if player is spectating an arena + */ + boolean isSpectating(); + + /** + * Checks if player is within arena and if he is playing a match (or waiting in the lobby) + * @return {@code true} if player is playing a match or waiting inside an arena + */ + boolean isPlaying(); + } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 6e8df5a4..342e2e22 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -33,6 +33,19 @@ import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.AdminCheckCommand; +import de.minigameslib.mgapi.impl.cmd.AdminCommand; +import de.minigameslib.mgapi.impl.cmd.AdminCreateCommand; +import de.minigameslib.mgapi.impl.cmd.AdminDeleteCommand; +import de.minigameslib.mgapi.impl.cmd.AdminDisableCommand; +import de.minigameslib.mgapi.impl.cmd.AdminEnableCommand; +import de.minigameslib.mgapi.impl.cmd.AdminGuiCommand; +import de.minigameslib.mgapi.impl.cmd.AdminInviteCommand; +import de.minigameslib.mgapi.impl.cmd.AdminMaintainCommand; +import de.minigameslib.mgapi.impl.cmd.AdminSGuiCommand; +import de.minigameslib.mgapi.impl.cmd.AdminStartCommand; +import de.minigameslib.mgapi.impl.cmd.AdminStopCommand; +import de.minigameslib.mgapi.impl.cmd.AdminTestCommand; import de.minigameslib.mgapi.impl.cmd.ArenaCommand; import de.minigameslib.mgapi.impl.cmd.ArenasCommand; import de.minigameslib.mgapi.impl.cmd.InfoCommand; @@ -41,6 +54,7 @@ import de.minigameslib.mgapi.impl.cmd.InfoMinigameCommand; import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; import de.minigameslib.mgapi.impl.cmd.JoinCommand; +import de.minigameslib.mgapi.impl.cmd.LeaveCommand; import de.minigameslib.mgapi.impl.cmd.ManualCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.cmd.SpectateCommand; @@ -67,6 +81,21 @@ JoinCommand.Messages.class, SpectateCommand.Messages.class, ManualCommand.Messages.class, + LeaveCommand.Messages.class, + // admin commands + AdminCommand.Messages.class, + AdminCreateCommand.Messages.class, + AdminDeleteCommand.Messages.class, + AdminEnableCommand.Messages.class, + AdminDisableCommand.Messages.class, + AdminCheckCommand.Messages.class, + AdminMaintainCommand.Messages.class, + AdminStartCommand.Messages.class, + AdminStopCommand.Messages.class, + AdminTestCommand.Messages.class, + AdminInviteCommand.Messages.class, + AdminGuiCommand.Messages.class, + AdminSGuiCommand.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java index ea4d254f..f53cd838 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java @@ -71,6 +71,90 @@ public enum MglibPerms implements PermissionsInterface * Permission for manual command. */ @Permission("command.manual") - CommandManual + CommandManual, + + /** + * Permission for leave command. + */ + @Permission("command.leave") + CommandLeave, + + /** + * Permission for admin command. + */ + @Permission("command.admin") + CommandAdmin, + + /** + * Permission for admin create command. + */ + @Permission("command.admin.create") + CommandAdminCreate, + + /** + * Permission for admin delete command. + */ + @Permission("command.admin.delete") + CommandAdminDelete, + + /** + * Permission for admin enable command. + */ + @Permission("command.admin.enable") + CommandAdminEnable, + + /** + * Permission for admin disable command. + */ + @Permission("command.admin.disable") + CommandAdminDisable, + + /** + * Permission for admin check command. + */ + @Permission("command.admin.check") + CommandAdminCheck, + + /** + * Permission for admin maintain command. + */ + @Permission("command.admin.maintain") + CommandAdminMaintain, + + /** + * Permission for admin start command. + */ + @Permission("command.admin.start") + CommandAdminStart, + + /** + * Permission for admin stop command. + */ + @Permission("command.admin.stop") + CommandAdminStop, + + /** + * Permission for admin test command. + */ + @Permission("command.admin.test") + CommandAdminTest, + + /** + * Permission for admin invite command. + */ + @Permission("command.admin.invite") + CommandAdminInvite, + + /** + * Permission for admin gui command. + */ + @Permission("command.admin.gui") + CommandAdminGui, + + /** + * Permission for admin sgui command. + */ + @Permission("command.admin.sgui") + CommandAdminSGui } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java index d86e9a85..19cecf69 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java @@ -24,11 +24,16 @@ package de.minigameslib.mgapi.impl; +import java.util.Collection; +import java.util.stream.Collectors; + import org.bukkit.plugin.Plugin; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigameProvider; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * @author mepeisen @@ -94,5 +99,30 @@ public Plugin getPlugin() { return this.plugin; } + + @Override + public ArenaTypeInterface getType(String typeName) + { + for (final ArenaTypeInterface type : EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class)) + { + if (type.name().equals(typeName)) + { + return type; + } + } + return null; + } + + @Override + public int getTypeCount() + { + return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).size(); + } + + @Override + public Collection<ArenaTypeInterface> getTypes(String prefix, int start, int limit) + { + return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).stream().filter(t -> t.name().startsWith(prefix)).skip(start).limit(limit).collect(Collectors.toList()); + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 96febfde..c0ce9582 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -62,6 +62,8 @@ import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; +import de.minigameslib.mgapi.impl.arena.ArenaPlayerPersistentData; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.tasks.InitTask; @@ -454,14 +456,22 @@ public ArenaInterface create(String name, ArenaTypeInterface type) throws McExce return arena; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.MinigamesLibInterface#getPlayer(de.minigameslib.mclib.api.objects.McPlayerInterface) - */ @Override public ArenaPlayerInterface getPlayer(McPlayerInterface player) { - // TODO Auto-generated method stub - return null; + ArenaPlayerImpl impl = player.getSessionStorage().get(ArenaPlayerImpl.class); + if (impl == null) + { + ArenaPlayerPersistentData persistent = player.getPersistentStorage().get(ArenaPlayerPersistentData.class); + if (persistent == null) + { + persistent = new ArenaPlayerPersistentData(); + player.getPersistentStorage().set(ArenaPlayerPersistentData.class, persistent); + } + impl = new ArenaPlayerImpl(player, persistent); + player.getSessionStorage().set(ArenaPlayerImpl.class, impl); + } + return impl; } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 8c0f2781..8126f342 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -27,6 +27,7 @@ import java.io.File; import java.io.IOException; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.UUID; @@ -50,10 +51,12 @@ import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mclib.shared.api.com.MemoryDataSection; import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaState; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.arena.CheckFailure; +import de.minigameslib.mgapi.api.arena.CheckSeverity; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.tasks.ArenaRestartTask; @@ -201,22 +204,73 @@ public ArenaState getState() return this.state; } + @Override + public void leave(ArenaPlayerInterface player) throws McException + { + final UUID uuid = player.getPlayerUUID(); + if (this.players.contains(uuid)) + { + this.leaveMatch(player); + } + else if (this.spectators.contains(uuid)) + { + this.leaveSpec(player); + } + else + { + throw new McException(Messages.CannotLeaveNotInArena, this.getDisplayName()); + } + } + + /** + * Leave spectator mode + * @param player + */ + private void leaveSpec(ArenaPlayerInterface player) + { + ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); + // TODO port to main lobby.... + this.spectators.remove(player.getPlayerUUID()); + player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); + } + + /** + * Leaves a running match + * @param player + */ + private void leaveMatch(ArenaPlayerInterface player) + { + ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); + // TODO port to main lobby.... + this.players.remove(player.getPlayerUUID()); + player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); + } + @Override public void join(ArenaPlayerInterface player) throws McException { + if (player.inArena()) + { + throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); + } if (this.state != ArenaState.Join) { throw new McException(Messages.JoinWrongState); } this.players.add(player.getPlayerUUID()); + ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), false); // TODO port to waiting lobby etc. - player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName().toArg()); + player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName()); } @Override public void spectate(ArenaPlayerInterface player) throws McException { + if (player.inArena()) + { + throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); + } switch (this.state) { case Disabled: @@ -230,8 +284,9 @@ public void spectate(ArenaPlayerInterface player) throws McException case PostMatch: case PreMatch: this.spectators.add(player.getPlayerUUID()); + ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), true); // TODO port to spectator spawn etc. - player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName().toArg()); + player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName()); break; } } @@ -267,6 +322,13 @@ public void setDisabledState(boolean force) throws McException this.state = ArenaState.Disabled; break; case Join: + this.arenaData.setEnabled(false); + this.saveData(); + // abort current game to kick players being in waiting lobby. + this.abortGame(Messages.KickReasonDisable); + this.state = ArenaState.Restarting; + TaskManager.instance().queue(new ArenaRestartTask(this)); + break; case Match: case PostMatch: case PreMatch: @@ -311,7 +373,9 @@ private void abortGame(LocalizedMessageInterface kickReason) private void kick(UUID uuid, LocalizedMessageInterface kickReason) { final McPlayerInterface player = ObjectServiceInterface.instance().getPlayer(uuid); - player.sendMessage(Messages.YouWereKicked, kickReason.toArg()); + // TODO port to main lobby.... + ((ArenaPlayerImpl)MinigamesLibInterface.instance().getPlayer(player)).switchArenaOrMode(null, false); + player.sendMessage(Messages.YouWereKicked, kickReason); } @Override @@ -347,20 +411,80 @@ public void setMaintenance(boolean force) throws McException } } + @Override + public void start() throws McException + { + if (this.state != ArenaState.Join) + { + throw new McException(Messages.StartWrongState); + } + this.state = ArenaState.PreMatch; + // TODO Start pre match phase, teleport to spawns etc. + } + + @Override + public void setTestState() throws McException + { + if (this.state != ArenaState.Maintenance) + { + throw new McException(Messages.TestWrongState); + } + for (final CheckFailure failure : this.check()) + { + if (failure.getSeverity() == CheckSeverity.Error) + { + throw new McException(Messages.TestCheckFailure); + } + } + this.state = ArenaState.Join; + } + @Override public boolean isMaintenance() { return this.arenaData.isMaintenance(); } + @Override + public boolean isDisabled() + { + return !this.arenaData.isEnabled(); + } + + @Override + public boolean isMatch() + { + switch (this.state) + { + case Join: + case Disabled: + case Maintenance: + case Restarting: + case Starting: + default: + return false; + case Match: + case PostMatch: + case PreMatch: + return true; + } + } + /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#check() + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#delete() */ + @Override + public void delete() throws McException + { + // TODO Auto-generated method stub + + } + @Override public Collection<CheckFailure> check() { // TODO Auto-generated method stub - return null; + return Collections.emptyList(); } /** @@ -443,6 +567,27 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Cannot maintain because arena is already under maintenance"}) MaintenanceWrongState, + /** + * Cannot start test match because arena is not in maintenance mode + */ + @LocalizedMessage(defaultMessage = "Cannot start test match because arena ist not in maintenance.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot start test match because arena is not in maintenance mode"}) + TestWrongState, + + /** + * Cannot start match because arena is not in join mode + */ + @LocalizedMessage(defaultMessage = "Cannot start match because arena ist not in join mode.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot start test match because arena is not in join mode"}) + StartWrongState, + + /** + * Cannot start test match because arena has errors + */ + @LocalizedMessage(defaultMessage = "Cannot start test match because arena has errors.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot start test match because arena has errors"}) + TestCheckFailure, + /** * Kick reason: Arena is maintained by admin */ @@ -454,9 +599,30 @@ public enum Messages implements LocalizedMessageInterface * You were kicked */ @LocalizedMessage(defaultMessage = "You were kicked. Reason: %1$s", severity = MessageSeverityType.Error) - @MessageComment({"You were kicked"}) + @MessageComment(value = {"You were kicked"}, args = @Argument("reason text")) YouWereKicked, + /** + * You cannot leave because not in arena + */ + @LocalizedMessage(defaultMessage = "You cannot leave because you are not within arena %1$s.", severity = MessageSeverityType.Error) + @MessageComment(value = {"You cannot leave because not in arena"}, args = @Argument("arena display name")) + CannotLeaveNotInArena, + + /** + * You are already in arena + */ + @LocalizedMessage(defaultMessage = "You cannot join because you are in arena %1$s.", severity = MessageSeverityType.Error) + @MessageComment(value = {"You are already in arena"}, args = @Argument("arena display name")) + AlreadyInArena, + + /** + * You left the arena + */ + @LocalizedMessage(defaultMessage = "You left arena %1$s.", severity = MessageSeverityType.Error) + @MessageComment(value = {"You left the arena"}, args = @Argument("arena display name")) + YouLeft, + } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java new file mode 100644 index 00000000..f1f14734 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java @@ -0,0 +1,152 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; +import de.minigameslib.mclib.shared.api.com.PersistentField; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * @author mepeisen + */ +public class ArenaPlayerImpl extends AnnotatedDataFragment implements ArenaPlayerInterface +{ + + /** + * Player back reference. + */ + @PersistentField + protected McPlayerInterface player; + + /** + * Persistent data storage. + */ + private ArenaPlayerPersistentData persistent; + + /** + * Constructor + */ + public ArenaPlayerImpl() + { + // constructor + } + + /** + * @param player + * @param persistent + */ + public ArenaPlayerImpl(McPlayerInterface player, ArenaPlayerPersistentData persistent) + { + this.player = player; + this.persistent = persistent; + } + + /** + * Returns persistent data storage. + * @return persistent player data + */ + private ArenaPlayerPersistentData getData() + { + if (this.persistent == null) + { + this.persistent = this.player.getPersistentStorage().get(ArenaPlayerPersistentData.class); + if (this.persistent == null) + { + this.persistent = new ArenaPlayerPersistentData(); + this.player.getPersistentStorage().set(ArenaPlayerPersistentData.class, this.persistent); + } + } + return this.persistent; + } + + @Override + public McPlayerInterface getMcPlayer() + { + return this.player; + } + + @Override + public ArenaInterface getArena() + { + final ArenaPlayerPersistentData data = this.getData(); + if (data.getArenaName() == null) + { + return null; + } + return MinigamesLibInterface.instance().getArena(data.getArenaName()); + } + + /** + * Saves persistent data + */ + private void saveData() + { + this.player.getPersistentStorage().set(ArenaPlayerPersistentData.class, this.persistent); + } + + /** + * Switches arena name or mode + * @param arena + * @param isSpectating + */ + void switchArenaOrMode(String arena, boolean isSpectating) + { + final ArenaPlayerPersistentData data = this.getData(); + data.setArenaName(arena); + data.setSpectator(isSpectating); + this.saveData(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + + @Override + public boolean isSpectating() + { + return this.getData().isSpectator(); + } + + @Override + public boolean isPlaying() + { + return this.getData().getArenaName() != null; + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java new file mode 100644 index 00000000..286b7832 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java @@ -0,0 +1,82 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; +import de.minigameslib.mclib.shared.api.com.PersistentField; + +/** + * Persistent player data. + * + * @author mepeisen + */ +public class ArenaPlayerPersistentData extends AnnotatedDataFragment +{ + + /** + * The arena this player has joined + */ + @PersistentField + protected String arenaName; + + /** + * Spectator flag. + */ + @PersistentField + protected boolean isSpectator; + + /** + * @return the arenaName + */ + public String getArenaName() + { + return this.arenaName; + } + + /** + * @param arenaName the arenaName to set + */ + public void setArenaName(String arenaName) + { + this.arenaName = arenaName; + } + + /** + * @return the isSpectator + */ + public boolean isSpectator() + { + return this.isSpectator; + } + + /** + * @param isSpectator the isSpectator to set + */ + public void setSpectator(boolean isSpectator) + { + this.isSpectator = isSpectator; + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java new file mode 100644 index 00000000..3c9c03fe --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java @@ -0,0 +1,161 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.arena.CheckFailure; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminCheckCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminCheck); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminCheck, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + final Collection<CheckFailure> checks = arena.check(); + for (final CheckFailure failure : checks) + { + switch (failure.getSeverity()) + { + default: + case Error: + command.send(Messages.ArenaError, arena.getDisplayName(), failure.getTitle()); + break; + case Info: + command.send(Messages.ArenaInfo, arena.getDisplayName(), failure.getTitle()); + break; + case Warning: + command.send(Messages.ArenaWarning, arena.getDisplayName(), failure.getTitle()); + break; + } + } + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance || a.getState() == ArenaState.Disabled).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_check") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin check + */ + @LocalizedMessage(defaultMessage = "checks an existing arena") + @MessageComment({"Short description of /mg2 admin check"}) + ShortDescription, + + /** + * Long description of /mg2 admin check + */ + @LocalizedMessage(defaultMessage = "checks an existing arena") + @MessageComment({"Long description of /mg2 admin check"}) + Description, + + /** + * Usage of /mg2 admin check + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin check <internal-name>") + @MessageComment({"Usage of /mg2 admin check"}) + Usage, + + /** + * Arena check error line + */ + @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + "] %2$s", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena check error line"}, args = {@Argument("arena display name"), @Argument("title text")}) + ArenaError, + + /** + * Arena check warning line + */ + @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.YELLOW + "] %2$s", severity = MessageSeverityType.Warning) + @MessageComment(value = {"Arena check warning line"}, args = {@Argument("arena display name"), @Argument("title text")}) + ArenaWarning, + + /** + * Arena check info line + */ + @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.GREEN + "] %2$s", severity = MessageSeverityType.Information) + @MessageComment(value = {"Arena check info line"}, args = {@Argument("arena display name"), @Argument("title text")}) + ArenaInfo, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java new file mode 100644 index 00000000..0db8de82 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java @@ -0,0 +1,127 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * Adminitartion command + * + * @author mepeisen + */ +public class AdminCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOp() || (command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandAdmin)); + } + + /** + * Constructor to register sub commands. + */ + public AdminCommand() + { + this.subCommands.put("create", new AdminCreateCommand()); //$NON-NLS-1$ + this.subCommands.put("delete", new AdminDeleteCommand()); //$NON-NLS-1$ + this.subCommands.put("enable", new AdminEnableCommand()); //$NON-NLS-1$ + this.subCommands.put("disable", new AdminDisableCommand()); //$NON-NLS-1$ + this.subCommands.put("check", new AdminCheckCommand()); //$NON-NLS-1$ + this.subCommands.put("maintain", new AdminMaintainCommand()); //$NON-NLS-1$ + this.subCommands.put("start", new AdminStartCommand()); //$NON-NLS-1$ + this.subCommands.put("stop", new AdminStopCommand()); //$NON-NLS-1$ + this.subCommands.put("test", new AdminTestCommand()); //$NON-NLS-1$ + this.subCommands.put("invite", new AdminInviteCommand()); //$NON-NLS-1$ + this.subCommands.put("gui", new AdminGuiCommand()); //$NON-NLS-1$ + this.subCommands.put("sgui", new AdminSGuiCommand()); //$NON-NLS-1$ + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdmin, command.getCommandPath()); + + super.handle(command); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected void sendUsage(CommandInterface command) + { + command.send(Messages.Usage); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin + */ + @LocalizedMessage(defaultMessage = "Administration commands.") + @MessageComment({"Short description of /mg2 admin"}) + ShortDescription, + + /** + * Long description of /mg2 admin + */ + @LocalizedMessage(defaultMessage = "Administration commands.") + @MessageComment({"Long description of /mg2 admin"}) + Description, + + /** + * Usage of /mg2 admin + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin <sub-command>") + @MessageComment({"Usage of /mg2 admin"}) + Usage, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java new file mode 100644 index 00000000..4023035a --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java @@ -0,0 +1,155 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminCreateCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminCreate); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminCreate, command.getCommandPath()); + + command.checkMaxArgCount(3, CommonMessages.TooManyArguments); + + final String arenaName = command.fetchString(Mg2Command.Messages.ArenaNameMissing, Messages.Usage); + command.checkMinArgCount(1, Mg2Command.Messages.MinigameNameMissing, Messages.Usage); + final MinigameInterface minigame = command.fetch(Mg2Command::getMinigame).get(); + command.checkMinArgCount(1, Mg2Command.Messages.TypeNameMissing, Messages.Usage); + final ArenaTypeInterface type = command.fetch((c, n) -> Mg2Command.getType(c, n, minigame)).get(); + + final ArenaInterface arena = MinigamesLibInterface.instance().create(arenaName, type); + command.send(Messages.ArenaCreated, arena.getInternalName()); + // TODO Start creation guide. + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 1) + { + return MinigamesLibInterface.instance().getMinigames(lastArg, 0, Integer.MAX_VALUE).stream().map(MinigameInterface::getName).collect(Collectors.toList()); + } + if (command.getArgs().length == 2) + { + final String minigameName = command.getArgs()[1]; + final MinigameInterface minigame = MinigamesLibInterface.instance().getMinigame(minigameName); + if (minigame != null) + { + return minigame.getTypes(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaTypeInterface::name).collect(Collectors.toList()); + } + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_create") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin create + */ + @LocalizedMessage(defaultMessage = "Creates a new arena") + @MessageComment({"Short description of /mg2 admin create"}) + ShortDescription, + + /** + * Long description of /mg2 admin create + */ + @LocalizedMessage(defaultMessage = "Creates a new arena") + @MessageComment({"Long description of /mg2 admin create"}) + Description, + + /** + * Usage of /mg2 admin create + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin create <internal-name> <minigame> <type>") + @MessageComment({"Usage of /mg2 admin create"}) + Usage, + + /** + * Type was not found + */ + @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"Type was not found"}, args = @Argument("type name")) + TypeNotFound, + + /** + * Arena created + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was created.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena created"}, args = @Argument("type name")) + ArenaCreated, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java new file mode 100644 index 00000000..afc0b087 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java @@ -0,0 +1,130 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminDeleteCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminDelete); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminDelete, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.delete(); + command.send(Messages.ArenaDeleted, arena.getDisplayName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_delete") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin delete + */ + @LocalizedMessage(defaultMessage = "deletes an existing arena") + @MessageComment({"Short description of /mg2 admin delete"}) + ShortDescription, + + /** + * Long description of /mg2 admin delete + */ + @LocalizedMessage(defaultMessage = "deletes an existing arena") + @MessageComment({"Long description of /mg2 admin delete"}) + Description, + + /** + * Usage of /mg2 admin delete + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin delete <internal-name>") + @MessageComment({"Usage of /mg2 admin delete"}) + Usage, + + /** + * Arena deleted + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was deleted.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena deleted"}, args = @Argument("arena display name")) + ArenaDeleted, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java new file mode 100644 index 00000000..3f31409f --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java @@ -0,0 +1,129 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminDisableCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminDisable); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminDisable, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.setDisabledState(false); // TODO support force argument + command.send(Messages.ArenaDisabled, arena.getDisplayName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> !a.isDisabled()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_disable") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin disable + */ + @LocalizedMessage(defaultMessage = "disables an existing arena") + @MessageComment({"Short description of /mg2 admin disable"}) + ShortDescription, + + /** + * Long description of /mg2 admin disable + */ + @LocalizedMessage(defaultMessage = "disables an existing arena") + @MessageComment({"Long description of /mg2 admin disable"}) + Description, + + /** + * Usage of /mg2 admin disable + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin disable <internal-name>") + @MessageComment({"Usage of /mg2 admin disable"}) + Usage, + + /** + * Arena disabled + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was disabled. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena disabled"}, args = @Argument("arena name")) + ArenaDisabled, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java new file mode 100644 index 00000000..344f24f6 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java @@ -0,0 +1,129 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminEnableCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminEnable); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminEnable, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.setEnabledState(); + command.send(Messages.ArenaEnabled, arena.getDisplayName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.isDisabled() || a.isMaintenance()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_enable") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin enable + */ + @LocalizedMessage(defaultMessage = "enables an existing arena") + @MessageComment({"Short description of /mg2 admin enable"}) + ShortDescription, + + /** + * Long description of /mg2 admin enable + */ + @LocalizedMessage(defaultMessage = "enables an existing arena") + @MessageComment({"Long description of /mg2 admin enable"}) + Description, + + /** + * Usage of /mg2 admin enable + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin enable <internal-name>") + @MessageComment({"Usage of /mg2 admin enable"}) + Usage, + + /** + * Arena enabled + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was enabled. Players can join after starting was finished.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena enabled"}, args = @Argument("arena name")) + ArenaEnabled, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java new file mode 100644 index 00000000..55ba0aae --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java @@ -0,0 +1,110 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminGuiCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminGui); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminGui, command.getCommandPath()); + + // TODO Support gui + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_gui") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin gui + */ + @LocalizedMessage(defaultMessage = "Display simple admin gui") + @MessageComment({"Short description of /mg2 admin gui"}) + ShortDescription, + + /** + * Long description of /mg2 admin gui + */ + @LocalizedMessage(defaultMessage = "Display simple admin gui") + @MessageComment({"Long description of /mg2 admin gui"}) + Description, + + /** + * Usage of /mg2 admin gui + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin gui") + @MessageComment({"Usage of /mg2 admin gui"}) + Usage + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java new file mode 100644 index 00000000..bd8e1a8d --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java @@ -0,0 +1,138 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminInviteCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminInvite); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminInvite, command.getCommandPath()); + + command.checkMinArgCount(1, Mg2Command.Messages.PlayerNameMissing, Messages.Usage); + final ArenaPlayerInterface player = command.fetch(Mg2Command::getPlayer).get(); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.join(player); + command.send(Messages.PlayerInvited, arena.getInternalName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return null; // player list + } + if (command.getArgs().length == 1) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Join && a.isMaintenance()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_invite") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin invite + */ + @LocalizedMessage(defaultMessage = "invites an existing arena") + @MessageComment({"Short description of /mg2 admin invite"}) + ShortDescription, + + /** + * Long description of /mg2 admin invite + */ + @LocalizedMessage(defaultMessage = "invites an existing arena") + @MessageComment({"Long description of /mg2 admin invite"}) + Description, + + /** + * Usage of /mg2 admin invite + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin invite <player> <internal-name>") + @MessageComment({"Usage of /mg2 admin invite"}) + Usage, + + /** + * Arena invite succeded + */ + @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was invited to arena " + LocalizedMessage.BLUE + "%2$s " + LocalizedMessage.GREEN + ".", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena invite succeeded"}, args = {@Argument("player name"), @Argument("arena name")}) + PlayerInvited, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java new file mode 100644 index 00000000..b21e4e8e --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java @@ -0,0 +1,129 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminMaintainCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminMaintain); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminMaintain, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.setMaintenance(false); // TODO support force argument + command.send(Messages.ArenaUnderMaintenance, arena.getInternalName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> !a.isMaintenance()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_maintain") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin maintain + */ + @LocalizedMessage(defaultMessage = "maintains an existing arena") + @MessageComment({"Short description of /mg2 admin maintain"}) + ShortDescription, + + /** + * Long description of /mg2 admin maintain + */ + @LocalizedMessage(defaultMessage = "maintains an existing arena") + @MessageComment({"Long description of /mg2 admin maintain"}) + Description, + + /** + * Usage of /mg2 admin maintain + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin maintain <internal-name>") + @MessageComment({"Usage of /mg2 admin maintain"}) + Usage, + + /** + * Arena is under maintenance + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " is now under maintenance. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena is under maintenance"}, args = @Argument("arena name")) + ArenaUnderMaintenance, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java new file mode 100644 index 00000000..fc77aeb9 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java @@ -0,0 +1,110 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminSGuiCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSGui); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminSGui, command.getCommandPath()); + + // TODO Support gui + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_sgui") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin sgui + */ + @LocalizedMessage(defaultMessage = "Display advanced admin gui") + @MessageComment({"Short description of /mg2 admin sgui"}) + ShortDescription, + + /** + * Long description of /mg2 admin sgui + */ + @LocalizedMessage(defaultMessage = "Display advanced admin gui") + @MessageComment({"Long description of /mg2 admin sgui"}) + Description, + + /** + * Usage of /mg2 admin sgui + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin sgui") + @MessageComment({"Usage of /mg2 admin sgui"}) + Usage + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java new file mode 100644 index 00000000..f1c9e36a --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java @@ -0,0 +1,130 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminStartCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminStart); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminStart, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.start(); + command.send(Messages.ArenaStarted, arena.getInternalName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Join).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_start") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin start + */ + @LocalizedMessage(defaultMessage = "starts an existing arena match") + @MessageComment({"Short description of /mg2 admin start"}) + ShortDescription, + + /** + * Long description of /mg2 admin start + */ + @LocalizedMessage(defaultMessage = "starts an existing arena match") + @MessageComment({"Long description of /mg2 admin start"}) + Description, + + /** + * Usage of /mg2 admin start + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin start <internal-name>") + @MessageComment({"Usage of /mg2 admin start"}) + Usage, + + /** + * Arena started + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " match was started. Players can join after starting was finished.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena started"}, args = @Argument("arena name")) + ArenaStarted, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java new file mode 100644 index 00000000..d55b7671 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java @@ -0,0 +1,129 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminStopCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminStop); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminStop, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.start(); + command.send(Messages.ArenaStopped, arena.getInternalName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.isMatch()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_stop") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin stop + */ + @LocalizedMessage(defaultMessage = "stops an existing arena match") + @MessageComment({"Short description of /mg2 admin stop"}) + ShortDescription, + + /** + * Long description of /mg2 admin stop + */ + @LocalizedMessage(defaultMessage = "stops an existing arena match") + @MessageComment({"Long description of /mg2 admin stop"}) + Description, + + /** + * Usage of /mg2 admin stop + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin stop <internal-name>") + @MessageComment({"Usage of /mg2 admin stop"}) + Usage, + + /** + * Arena stopped + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " match was stopped. Players can join after starting was finished.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena stopped"}, args = @Argument("arena name")) + ArenaStopped, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java new file mode 100644 index 00000000..b2a85e95 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java @@ -0,0 +1,130 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminTestCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminTest); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminTest, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + arena.setTestState(); + command.send(Messages.ArenaTestStarted, arena.getInternalName()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_test") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin test + */ + @LocalizedMessage(defaultMessage = "tests an existing arena") + @MessageComment({"Short description of /mg2 admin test"}) + ShortDescription, + + /** + * Long description of /mg2 admin test + */ + @LocalizedMessage(defaultMessage = "tests an existing arena") + @MessageComment({"Long description of /mg2 admin test"}) + Description, + + /** + * Usage of /mg2 admin test + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin test <internal-name>") + @MessageComment({"Usage of /mg2 admin test"}) + Usage, + + /** + * Arena test started + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " test match was started. Players can be invited after starting was finished.", severity = MessageSeverityType.Success) + @MessageComment(value = {"Arena test started"}, args = @Argument("arena name")) + ArenaTestStarted, + + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java index b9442aad..ba767f40 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java @@ -29,7 +29,6 @@ import java.util.List; import java.util.stream.Collectors; -import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.cmd.CommandInterface; import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; @@ -58,7 +57,7 @@ public class ArenaCommand implements SubCommandHandlerInterface @Override public boolean visible(CommandInterface command) { - return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandArena); + return command.checkOpPermission(MglibPerms.CommandArena); } @Override @@ -66,39 +65,19 @@ public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandArena, command.getCommandPath()); - if (command.getArgs().length == 0) - { - command.send(Messages.NameMissing); - command.send(Messages.Usage); - return; - } - - final String name = command.getArgs()[0]; - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ArenaInterface arena = mglib.getArena(name); - if (arena == null) - { - command.send(Messages.ArenaNotFound, name); - return; - } - - if (command.getArgs().length > 1) - { - command.send(CommonMessages.TooManyArguments); - command.send(Messages.Usage); - return; - } + command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); + final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); // print Info final MinigameInterface minigame = arena.getMinigame(); - final Serializable mgName = minigame == null ? "<invalid>" : arena.getMinigame().getDisplayName().toArg(); //$NON-NLS-1$ + final Serializable mgName = minigame == null ? "<invalid>" : arena.getMinigame().getDisplayName(); //$NON-NLS-1$ command.send(Messages.CommandOutput, mgName, - arena.getDisplayName().toArg(), - arena.getShortDescription().toArg(), + arena.getDisplayName(), + arena.getShortDescription(), toString(arena.getState()), - arena.getDescription().toArg(), - name + arena.getDescription(), + arena.getInternalName() ); } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java index 5718ed48..0fbb463b 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java @@ -75,7 +75,7 @@ protected Serializable getHeader(CommandInterface command) @Override protected Serializable[] getLines(CommandInterface command, int start, int limit) { - return this.arenas.get().skip(start).limit(limit).map(p -> p.getDisplayName().toArg()).toArray(Serializable[]::new); + return this.arenas.get().skip(start).limit(limit).map(p -> p.getDisplayName()).toArray(Serializable[]::new); } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java index 5d70a3a1..82321a97 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java @@ -45,7 +45,7 @@ public class ArenasCommand extends ArenaListCommand implements SubCommandHandler @Override public boolean visible(CommandInterface command) { - return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandArenas); + return command.checkOpPermission(MglibPerms.CommandArenas); } @Override diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java index a454e6a8..9eaa5c88 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java @@ -99,11 +99,11 @@ public void handle(CommandInterface cmd) throws McException cmd.getCommandPath(), mclib.getMinecraftVersion().toString(), minigamesVersion, - mode.toArg(), - mglib.debug() ? MglibMessages.FlagTrue.toArg() : MglibMessages.FlagFalse.toArg(), + mode, + mglib.debug() ? MglibMessages.FlagTrue : MglibMessages.FlagFalse, mglib.getApiVersion(), mclib.getApiVersion(), - state.toArg(), + state, mclibVersion, bukkitVersion ); diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java index b8750730..b0b52e58 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java @@ -40,7 +40,6 @@ import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.ExtensionInterface; import de.minigameslib.mgapi.api.MinigamesLibInterface; @@ -54,36 +53,18 @@ public class InfoExtensionCommand implements SubCommandHandlerInterface @Override public void handle(CommandInterface command) throws McException { - if (command.getArgs().length == 0) - { - command.send(Messages.NameMissing); - command.send(Messages.Usage); - return; - } - - final String name = command.getArgs()[0]; - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ExtensionInterface extension = mglib.getExtension(name); - if (extension == null) - { - command.send(Messages.ExtensionNotFound, name); - return; - } + command.checkMinArgCount(1, Mg2Command.Messages.ExtensionNameMissing, Messages.Usage); + final ExtensionInterface extension = command.fetch(Mg2Command::getExtension).get(); + command.checkMaxArgCount(1, CommonMessages.TooManyArguments); - if (command.getArgs().length > 2) - { - command.send(CommonMessages.TooManyArguments); - command.send(Messages.Usage); - return; - } - if (command.getArgs().length == 2) + if (command.getArgs().length == 1) { - switch (command.getArgs()[1]) + switch (command.getArgs()[0]) { case "manual": //$NON-NLS-1$ new LocalizedPagableCommand( extension.getManual(), - Messages.ManualPagedHeader.toArg(name) + Messages.ManualPagedHeader.toArg(extension.getDisplayName()) ).handle(command.consumeArgs(1)); return; default: @@ -95,12 +76,12 @@ public void handle(CommandInterface command) throws McException // print Info final String version = extension.getPlugin().getDescription().getVersion(); command.send(Messages.CommandOutput, - extension.getDisplayName().toArg(), - extension.getShortDescription().toArg(), + extension.getDisplayName(), + extension.getShortDescription(), version, extension.getDescription().toListArg(), command.getCommandPath(), - name + extension.getName() ); } @@ -160,20 +141,6 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Usage of /mg2 info extension"}) Usage, - /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing extension name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - NameMissing, - - /** - * Extension was not found - */ - @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"Extension was not found"}, args = @Argument("minigame name")) - ExtensionNotFound, - /** * The command output of /mg2 info extension */ diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java index 0c17e03e..2de154cb 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java @@ -45,7 +45,7 @@ public class InfoExtensionsCommand extends AbstractPagableCommandHandler impleme @Override protected Serializable getHeader(CommandInterface cmd) { - return Messages.Header.toArg(); + return Messages.Header; } @Override @@ -58,7 +58,7 @@ protected int getLineCount(CommandInterface cmd) protected Serializable[] getLines(CommandInterface cmd, int start, int limit) { return MinigamesLibInterface.instance().getExtensions(start, limit).stream() - .map(ext -> ext.getDisplayName().toArg()).toArray(Serializable[]::new); + .map(ext -> ext.getDisplayName()).toArray(Serializable[]::new); } @Override diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java index 07e0c53c..50f4dc84 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java @@ -40,7 +40,6 @@ import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigamesLibInterface; @@ -54,43 +53,26 @@ public class InfoMinigameCommand implements SubCommandHandlerInterface @Override public void handle(CommandInterface command) throws McException { - if (command.getArgs().length == 0) - { - command.send(Messages.NameMissing); - command.send(Messages.Usage); - return; - } - - final String name = command.getArgs()[0]; - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final MinigameInterface minigame = mglib.getMinigame(name); - if (minigame == null) - { - command.send(Messages.MinigameNotFound, name); - return; - } + command.checkMinArgCount(1, Mg2Command.Messages.MinigameNameMissing, Messages.Usage); + final MinigameInterface minigame = command.fetch(Mg2Command::getMinigame).get(); + command.checkMaxArgCount(1, CommonMessages.TooManyArguments); - if (command.getArgs().length > 2) - { - command.send(CommonMessages.TooManyArguments); - command.send(Messages.Usage); - return; - } - if (command.getArgs().length == 2) + if (command.getArgs().length == 1) { - switch (command.getArgs()[1]) + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + switch (command.getArgs()[0]) { case "arenas": //$NON-NLS-1$ new ArenaListCommand( () -> mglib.getArenaCount(minigame.getPlugin()), () -> mglib.getArenas(minigame.getPlugin(), 0, Integer.MAX_VALUE).stream(), - Messages.ArenasPagedHeader.toArg(name) + Messages.ArenasPagedHeader.toArg(minigame.getDisplayName()) ).handle(command.consumeArgs(1)); return; case "manual": //$NON-NLS-1$ new LocalizedPagableCommand( minigame.getManual(), - Messages.ManualPagedHeader.toArg(name) + Messages.ManualPagedHeader.toArg(minigame.getDisplayName()) ).handle(command.consumeArgs(1)); return; default: @@ -102,12 +84,12 @@ public void handle(CommandInterface command) throws McException // print Info final String version = minigame.getPlugin().getDescription().getVersion(); command.send(Messages.CommandOutput, - minigame.getDisplayName().toArg(), - minigame.getShortDescription().toArg(), + minigame.getDisplayName(), + minigame.getShortDescription(), version, minigame.getDescription().toListArg(), command.getCommandPath(), - name + minigame.getName() ); } @@ -167,20 +149,6 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Usage of /mg2 info minigame"}) Usage, - /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing minigame name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - NameMissing, - - /** - * Minigame was not found - */ - @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"Minigame was not found"}, args = @Argument("minigame name")) - MinigameNotFound, - /** * The command output of /mg2 info minigame */ diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java index a941a491..fe345d7c 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java @@ -45,7 +45,7 @@ public class InfoMinigamesCommand extends AbstractPagableCommandHandler implemen @Override protected Serializable getHeader(CommandInterface cmd) { - return Messages.Header.toArg(); + return Messages.Header; } @Override @@ -58,7 +58,7 @@ protected int getLineCount(CommandInterface cmd) protected Serializable[] getLines(CommandInterface cmd, int start, int limit) { return MinigamesLibInterface.instance().getMinigames(start, limit).stream() - .map(mg -> mg.getDisplayName().toArg()).toArray(Serializable[]::new); + .map(mg -> mg.getDisplayName()).toArray(Serializable[]::new); } @Override diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java index 1f73d3d3..791f70e2 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java @@ -36,8 +36,6 @@ import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.impl.MglibPerms; @@ -53,39 +51,27 @@ public class JoinCommand implements SubCommandHandlerInterface @Override public boolean visible(CommandInterface command) { - return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandJoin); + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandJoin); } @Override public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandJoin, command.getCommandPath()); + command.checkOnline(); - if (command.getArgs().length == 0) - { - command.send(Messages.NameMissing); - command.send(Messages.Usage); - return; - } + command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); + final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); + command.checkMaxArgCount(0, CommonMessages.TooManyArguments); - final String name = command.getArgs()[0]; - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ArenaInterface arena = mglib.getArena(name); - if (arena == null) + if (arena.isMaintenance()) { - command.send(Messages.ArenaNotFound, name); - return; - } - - if (command.getArgs().length > 1) - { - command.send(CommonMessages.TooManyArguments); - command.send(Messages.Usage); + command.send(Messages.ArenaUnderMaintenance, arena.getDisplayName()); return; } // do the join - arena.join(mglib.getPlayer(command.getPlayer())); + arena.join(MinigamesLibInterface.instance().getPlayer(command.getPlayer())); } @Override @@ -141,18 +127,11 @@ public enum Messages implements LocalizedMessageInterface Usage, /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - NameMissing, - - /** - * Arena was not found + * Arena is under maintenance */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) - ArenaNotFound, + @LocalizedMessage(defaultMessage = "Cannot join. Arena is under maintenance.") + @MessageComment({"Arena is under maintenance"}) + ArenaUnderMaintenance } } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java new file mode 100644 index 00000000..bc3567c5 --- /dev/null +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java @@ -0,0 +1,131 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class LeaveCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandLeave); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandLeave, command.getCommandPath()); + command.checkOnline(); + + command.checkMaxArgCount(0, CommonMessages.TooManyArguments); + + final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(command.getPlayer()); + if (player.inArena()) + { + player.getArena().leave(player); + } + else + { + throw new McException(Messages.NotWithinArena); + } + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_leave") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 leave + */ + @LocalizedMessage(defaultMessage = "Leave current arena.") + @MessageComment({"Short description of /mg2 leave"}) + ShortDescription, + + /** + * Long description of /mg2 leave + */ + @LocalizedMessage(defaultMessage = "Leave current arena.") + @MessageComment({"Long description of /mg2 leave"}) + Description, + + /** + * Usage of /mg2 leave + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 leave") + @MessageComment({"Usage of /mg2 leave"}) + Usage, + + /** + * You are not inside an arena + */ + @LocalizedMessage(defaultMessage = "You are not inside any arena", severity = MessageSeverityType.Error) + @MessageComment({"You are not inside an arena"}) + NotWithinArena, + } + +} diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java index f3a4629c..15a33e65 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java @@ -39,7 +39,6 @@ import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.impl.MglibPerms; @@ -63,28 +62,9 @@ public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandManual, command.getCommandPath()); - if (command.getArgs().length == 0) - { - command.send(Messages.NameMissing); - command.send(Messages.Usage); - return; - } - - final String name = command.getArgs()[0]; - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ArenaInterface arena = mglib.getArena(name); - if (arena == null) - { - command.send(Messages.ArenaNotFound, name); - return; - } - - if (command.getArgs().length > 1) - { - command.send(CommonMessages.TooManyArguments); - command.send(Messages.Usage); - return; - } + command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); + final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); + command.checkMaxArgCount(0, CommonMessages.TooManyArguments); // print manual new LocalizedPagableCommand( @@ -145,20 +125,6 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Usage of /mg2 manual"}) Usage, - /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - NameMissing, - - /** - * Arena was not found - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) - ArenaNotFound, - /** * Header line for /mg2 manual ... */ diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java index ef311d04..0b6f28b4 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -24,14 +24,28 @@ package de.minigameslib.mgapi.impl.cmd; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; import de.minigameslib.mclib.api.cmd.CommandInterface; import de.minigameslib.mclib.api.cmd.HelpCommandHandler; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.ExtensionInterface; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** * The mg2 main command @@ -53,6 +67,8 @@ public Mg2Command() this.subCommands.put("arena", new ArenaCommand()); //$NON-NLS-1$ this.subCommands.put("join", new JoinCommand()); //$NON-NLS-1$ this.subCommands.put("spectate", new SpectateCommand()); //$NON-NLS-1$ + this.subCommands.put("leave", new LeaveCommand()); //$NON-NLS-1$ + this.subCommands.put("admin", new AdminCommand()); //$NON-NLS-1$ } @Override @@ -68,6 +84,188 @@ protected void sendUsage(CommandInterface cmd) cmd.send(Messages.Usage); } + /** + * Maps argument to arena interface; returns players arena if no argument was given + * @param command + * @param usage + * @return arena instance + * @throws McException thrown if arena was not found + */ + public static ArenaInterface getArenaFromPlayer(CommandInterface command, LocalizedMessageInterface usage) throws McException + { + if (command.getArgs().length == 0) + { + if (command.isPlayer()) + { + final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(command.getPlayer()); + if (!player.inArena()) + { + throw new McException(Messages.ArenaNameMissing, usage); + } + return player.getArena(); + } + throw new McException(Messages.ArenaNameMissing, usage); + } + return getArena(command, command.fetchString(Messages.ArenaNameMissing, usage)); + } + + /** + * Maps argument to arena interface + * @param command + * @param arenaName + * @return arena instance + * @throws McException thrown if arena was not found + */ + public static ArenaInterface getArena(CommandInterface command, String arenaName) throws McException + { + final ArenaInterface arena = getArenaOptional(command, arenaName); + if (arena == null) + { + throw new McException(Messages.ArenaNotFound, arenaName); + } + return arena; + } + + /** + * Maps argument to arena interface + * @param command + * @param arenaName + * @return arena instance or {@code null} if it was not found + */ + public static ArenaInterface getArenaOptional(CommandInterface command, String arenaName) + { + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ArenaInterface arena = mglib.getArena(arenaName); + return arena; + } + + /** + * Maps argument to minigame interface + * @param command + * @param minigameName + * @return minigame instance + * @throws McException thrown if minigame was not found + */ + public static MinigameInterface getMinigame(CommandInterface command, String minigameName) throws McException + { + final MinigameInterface minigame = getMinigameOptional(command, minigameName); + if (minigame == null) + { + throw new McException(Messages.MinigameNotFound, minigameName); + } + return minigame; + } + + /** + * Maps argument to minigame interface + * @param command + * @param minigameName + * @return minigame instance or {@code null} if it was not found + */ + public static MinigameInterface getMinigameOptional(CommandInterface command, String minigameName) + { + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final MinigameInterface minigame = mglib.getMinigame(minigameName); + return minigame; + } + + /** + * Maps argument to arena type interface + * @param command + * @param typeName + * @param minigame + * @return type instance + * @throws McException thrown if type was not found + */ + public static ArenaTypeInterface getType(CommandInterface command, String typeName, MinigameInterface minigame) throws McException + { + final ArenaTypeInterface type = getTypeOptional(command, typeName, minigame); + if (type == null) + { + throw new McException(Messages.TypeNotFound, typeName); + } + return type; + } + + /** + * Maps argument to arena type interface + * @param command + * @param typeName + * @param minigame + * @return type instance or {@code null} if it was not found + */ + public static ArenaTypeInterface getTypeOptional(CommandInterface command, String typeName, MinigameInterface minigame) + { + final ArenaTypeInterface type = minigame.getType(typeName); + return type; + } + + /** + * Maps argument to extension interface + * @param command + * @param extensionName + * @return extension instance + * @throws McException thrown if extension was not found + */ + public static ExtensionInterface getExtension(CommandInterface command, String extensionName) throws McException + { + final ExtensionInterface extension = getExtensionOptional(command, extensionName); + if (extension == null) + { + throw new McException(Messages.ExtensionNotFound, extensionName); + } + return extension; + } + + /** + * Maps argument to extension interface + * @param command + * @param extensionName + * @return extension instance or {@code null} if it was not found + */ + public static ExtensionInterface getExtensionOptional(CommandInterface command, String extensionName) + { + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ExtensionInterface extension = mglib.getExtension(extensionName); + return extension; + } + + /** + * Maps argument to player interface + * @param command + * @param playerName + * @return player instance + * @throws McException thrown if player was not found + */ + public static ArenaPlayerInterface getPlayer(CommandInterface command, String playerName) throws McException + { + final ArenaPlayerInterface player = getPlayerOptional(command, playerName); + if (player == null) + { + throw new McException(Messages.PlayerNotFound, playerName); + } + return player; + } + + /** + * Maps argument to player interface + * @param command + * @param playerName + * @return player instance or {@code null} if it was not found + */ + public static ArenaPlayerInterface getPlayerOptional(CommandInterface command, String playerName) + { + final Player bukkitPlayer = Bukkit.getPlayerExact(playerName); + if (bukkitPlayer != null) + { + final McPlayerInterface mcPlayer = ObjectServiceInterface.instance().getPlayer(bukkitPlayer); + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + final ArenaPlayerInterface player = mglib.getPlayer(mcPlayer); + return player; + } + return null; + } + /** * The /mg2 messages. * @@ -82,7 +280,77 @@ public enum Messages implements LocalizedMessageInterface */ @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Enter " + LocalizedMessage.BLUE + "/mg2 help" + LocalizedMessage.GRAY + " for detailed help") @MessageComment({"Usage for command /mg2"}) - Usage + Usage, + + /** + * Arena was not found + */ + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) + ArenaNotFound, + + /** + * Player was not found + */ + @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"player was not found"}, args = @Argument("player name")) + PlayerNotFound, + + /** + * Minigame was not found + */ + @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"minigame was not found"}, args = @Argument("minigame name")) + MinigameNotFound, + + /** + * Arena type was not found + */ + @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"arena type was not found"}, args = @Argument("type name")) + TypeNotFound, + + /** + * Extension was not found + */ + @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"extension was not found"}, args = @Argument("extension name")) + ExtensionNotFound, + + /** + * Name argument is missing + */ + @LocalizedMessageList(value = {"Missing player name", "%1$s"}, severity = MessageSeverityType.Error) + @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) + PlayerNameMissing, + + /** + * Name argument is missing + */ + @LocalizedMessageList(value = {"Missing arena name", "%1$s"}, severity = MessageSeverityType.Error) + @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) + ArenaNameMissing, + + /** + * Name argument is missing + */ + @LocalizedMessageList(value = {"Missing minigame name", "%1$s"}, severity = MessageSeverityType.Error) + @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) + MinigameNameMissing, + + /** + * Name argument is missing + */ + @LocalizedMessage(defaultMessage = "Missing extension name", severity = MessageSeverityType.Error) + @MessageComment({"Name argument is missing"}) + ExtensionNameMissing, + + /** + * Name argument is missing + */ + @LocalizedMessageList(value = {"Missing arena type", "%1$s"}, severity = MessageSeverityType.Error) + @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) + TypeNameMissing, } diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java index f820b5db..dfb6393f 100644 --- a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java +++ b/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java @@ -36,8 +36,6 @@ import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.impl.MglibPerms; @@ -53,39 +51,21 @@ public class SpectateCommand implements SubCommandHandlerInterface @Override public boolean visible(CommandInterface command) { - return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandSpectate); + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandSpectate); } @Override public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandSpectate, command.getCommandPath()); + command.checkOnline(); - if (command.getArgs().length == 0) - { - command.send(Messages.NameMissing); - command.send(Messages.Usage); - return; - } - - final String name = command.getArgs()[0]; - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ArenaInterface arena = mglib.getArena(name); - if (arena == null) - { - command.send(Messages.ArenaNotFound, name); - return; - } - - if (command.getArgs().length > 1) - { - command.send(CommonMessages.TooManyArguments); - command.send(Messages.Usage); - return; - } + command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); + final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); + command.checkMaxArgCount(0, CommonMessages.TooManyArguments); // do the spectate - arena.spectate(mglib.getPlayer(command.getPlayer())); + arena.spectate(MinigamesLibInterface.instance().getPlayer(command.getPlayer())); } @Override @@ -139,20 +119,6 @@ public enum Messages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 spectate <name>") @MessageComment({"Usage of /mg2 spectate"}) Usage, - - /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - NameMissing, - - /** - * Arena was not found - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) - ArenaNotFound, } } diff --git a/PARENTv2/pom.xml b/PARENTv2/pom.xml index 7964bb36..066e71c5 100644 --- a/PARENTv2/pom.xml +++ b/PARENTv2/pom.xml @@ -18,7 +18,7 @@ <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> <latest.spigot.version>1.11.2</latest.spigot.version> - <mclib.version>0.0.1-SNAPSHOT</mclib.version> + <mclib.version>0.0.2-SNAPSHOT</mclib.version> <mglib.version>2.0.0-SNAPSHOT</mglib.version> </properties> @@ -35,13 +35,13 @@ <dependency> <groupId>de.minigameslib.mclib</groupId> <artifactId>mclib-api</artifactId> - <version>0.0.1-SNAPSHOT</version> + <version>${mclib.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>de.minigameslib.mclib</groupId> <artifactId>mclib</artifactId> - <version>0.0.1-SNAPSHOT</version> + <version>${mclib.version}</version> <scope>runtime</scope> </dependency> From 4ec05ef5018e65e17fba3dffb0509b01e231dc5a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 21 Jan 2017 09:57:14 +0100 Subject: [PATCH 172/266] changed folder structure --- {PARENTv2 => v2}/.project | 0 {PARENTv2 => v2}/.settings/org.eclipse.core.resources.prefs | 0 {APIv2 => v2/api}/.classpath | 0 {APIv2 => v2/api}/.project | 0 {APIv2 => v2/api}/.settings/org.eclipse.core.resources.prefs | 0 {APIv2 => v2/api}/.settings/org.eclipse.jdt.core.prefs | 0 {APIv2 => v2/api}/.settings/org.eclipse.jdt.ui.prefs | 0 {APIv2 => v2/api}/.settings/org.eclipse.m2e.core.prefs | 0 {APIv2 => v2/api}/pom.xml | 0 .../main/java/com/github/mce/minigames/api/CommonErrors.java | 0 .../java/com/github/mce/minigames/api/CommonMessages.java | 0 .../github/mce/minigames/api/CommonProviderInterface.java | 0 .../java/com/github/mce/minigames/api/MinigameInterface.java | 0 .../github/mce/minigames/api/PluginProviderInterface.java | 0 .../com/github/mce/minigames/api/arena/ArenaInterface.java | 0 .../com/github/mce/minigames/api/arena/ArenasConfig.java | 0 .../com/github/mce/minigames/api/arena/MatchPhaseId.java | 0 .../java/com/github/mce/minigames/api/arena/WaitQueue.java | 0 .../com/github/mce/minigames/api/config/CommonConfig.java | 0 .../mce/minigames/api/player/ArenaPlayerInterface.java | 0 .../main/java/com/github/mce/minigames/api/team/TeamId.java | 0 .../java/com/github/mce/minigames/api/team/TeamRuleSet.java | 0 .../java/de/minigameslib/mgapi/api/ExtensionInterface.java | 0 .../java/de/minigameslib/mgapi/api/ExtensionProvider.java | 0 .../src/main/java/de/minigameslib/mgapi/api/LibState.java | 0 .../src/main/java/de/minigameslib/mgapi/api/MglibCache.java | 0 .../java/de/minigameslib/mgapi/api/MinigameInterface.java | 0 .../java/de/minigameslib/mgapi/api/MinigameProvider.java | 0 .../de/minigameslib/mgapi/api/MinigamesLibInterface.java | 0 .../java/de/minigameslib/mgapi/api/arena/ArenaInterface.java | 0 .../java/de/minigameslib/mgapi/api/arena/ArenaState.java | 0 .../main/java/de/minigameslib/mgapi/api/arena/ArenaType.java | 0 .../de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java | 0 .../de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java | 0 .../java/de/minigameslib/mgapi/api/arena/CheckFailure.java | 0 .../java/de/minigameslib/mgapi/api/arena/CheckSeverity.java | 0 .../minigameslib/mgapi/api/player/ArenaPlayerInterface.java | 0 .../api}/src/site/markdown/dev_advanced_achievement.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_arcade.md | 0 .../api}/src/site/markdown/dev_advanced_bungee_basics.md | 0 .../api}/src/site/markdown/dev_advanced_custom_components.md | 0 .../api}/src/site/markdown/dev_advanced_custom_signs.md | 0 .../api}/src/site/markdown/dev_advanced_extensions.md | 0 .../api}/src/site/markdown/dev_advanced_guns_animations.md | 0 .../api}/src/site/markdown/dev_advanced_holograms.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_kits.md | 0 .../api}/src/site/markdown/dev_advanced_leader_boards.md | 0 .../api}/src/site/markdown/dev_advanced_mob_control.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_power_up.md | 0 .../api}/src/site/markdown/dev_advanced_score_boards.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_shop.md | 0 .../api}/src/site/markdown/dev_advanced_smart_gui.md | 0 .../api}/src/site/markdown/dev_advanced_smart_reset.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_stats.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_tasks.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_teams.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_advanced_trading.md | 0 .../src/site/markdown/dev_advanced_variable_substitution.md | 0 .../api}/src/site/markdown/dev_advanced_waiting_queues.md | 0 .../api}/src/site/markdown/dev_minigame_arena_types.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_minigame_config.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_minigame_context.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_minigame_messages.md | 0 .../api}/src/site/markdown/dev_minigame_own_rules.md | 0 .../api}/src/site/markdown/dev_minigame_permissions.md | 0 .../api}/src/site/markdown/dev_minigame_pluginmain.md | 0 .../api}/src/site/markdown/dev_minigame_pluginyml.md | 0 .../api}/src/site/markdown/dev_minigame_using_rules.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_setup_eclipse.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_setup_maven.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_setup_project.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_theory_arenas.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_theory_match.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_theory_minigame.md | 0 {APIv2 => v2/api}/src/site/markdown/dev_theory_rules.md | 0 {APIv2 => v2/api}/src/site/markdown/development.md | 0 {APIv2 => v2/api}/src/site/markdown/features.md | 0 {APIv2 => v2/api}/src/site/markdown/gamerules.md | 0 {APIv2 => v2/api}/src/site/markdown/index.md | 0 {APIv2 => v2/api}/src/site/markdown/migrationList.md | 0 {APIv2 => v2/api}/src/site/markdown/roadmap.md | 0 {APIv2 => v2/api}/src/site/markdown/stories.md | 0 {APIv2 => v2/api}/src/site/site.xml | 0 .../com/github/mce/minigames/api/test/CommonConfigTest.java | 0 .../com/github/mce/minigames/api/test/CommonErrorsTest.java | 0 .../github/mce/minigames/api/test/CommonMessagesTest.java | 0 .../java/com/github/mce/minigames/api/test/SharedUtil.java | 0 .../github/mce/minigames/api/test/arena/ArenaStateTest.java | 0 .../mce/minigames/api/test/arena/ArenasConfigTest.java | 0 {LIBv2 => v2}/maxMcVersion.txt | 0 {LIBv2 => v2}/minMcVersion.txt | 0 {LIBv2 => v2/plugin}/.classpath | 0 {LIBv2 => v2/plugin}/.project | 0 .../plugin}/.settings/org.eclipse.core.resources.prefs | 0 {LIBv2 => v2/plugin}/.settings/org.eclipse.jdt.core.prefs | 0 {LIBv2 => v2/plugin}/.settings/org.eclipse.jdt.ui.prefs | 0 {LIBv2 => v2/plugin}/.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.wst.common.project.facet.core.xml | 0 {LIBv2 => v2/plugin}/pom.xml | 0 .../main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java | 0 .../main/java/de/minigameslib/mgapi/impl/MglibConfig.java | 0 .../main/java/de/minigameslib/mgapi/impl/MglibMessages.java | 0 .../src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java | 0 .../main/java/de/minigameslib/mgapi/impl/MinigameImpl.java | 0 .../java/de/minigameslib/mgapi/impl/MinigamesPlugin.java | 0 .../java/de/minigameslib/mgapi/impl/arena/ArenaData.java | 0 .../java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java | 0 .../de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java | 0 .../mgapi/impl/arena/ArenaPlayerPersistentData.java | 0 .../main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java | 0 .../minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java | 0 .../de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java | 0 .../main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java | 0 .../java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java | 0 .../de/minigameslib/mgapi/impl/internal/TaskManager.java | 0 .../minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java | 0 .../de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java | 0 .../de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java | 0 .../main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java | 0 {LIBv2 => v2/plugin}/src/main/resources/plugin.yml | 0 {PARENTv2 => v2}/pom.xml | 5 +++++ 143 files changed, 5 insertions(+) rename {PARENTv2 => v2}/.project (100%) rename {PARENTv2 => v2}/.settings/org.eclipse.core.resources.prefs (100%) rename {APIv2 => v2/api}/.classpath (100%) rename {APIv2 => v2/api}/.project (100%) rename {APIv2 => v2/api}/.settings/org.eclipse.core.resources.prefs (100%) rename {APIv2 => v2/api}/.settings/org.eclipse.jdt.core.prefs (100%) rename {APIv2 => v2/api}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {APIv2 => v2/api}/.settings/org.eclipse.m2e.core.prefs (100%) rename {APIv2 => v2/api}/pom.xml (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/CommonErrors.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/CommonMessages.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/MinigameInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/team/TeamId.java (100%) rename {APIv2 => v2/api}/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/LibState.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/MglibCache.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java (100%) rename {APIv2 => v2/api}/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_achievement.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_arcade.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_bungee_basics.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_custom_components.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_custom_signs.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_extensions.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_guns_animations.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_holograms.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_kits.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_leader_boards.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_mob_control.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_power_up.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_score_boards.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_shop.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_smart_gui.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_smart_reset.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_stats.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_tasks.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_teams.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_trading.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_variable_substitution.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_advanced_waiting_queues.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_arena_types.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_config.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_context.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_messages.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_own_rules.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_permissions.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_pluginmain.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_pluginyml.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_minigame_using_rules.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_setup_eclipse.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_setup_maven.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_setup_project.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_theory_arenas.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_theory_match.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_theory_minigame.md (100%) rename {APIv2 => v2/api}/src/site/markdown/dev_theory_rules.md (100%) rename {APIv2 => v2/api}/src/site/markdown/development.md (100%) rename {APIv2 => v2/api}/src/site/markdown/features.md (100%) rename {APIv2 => v2/api}/src/site/markdown/gamerules.md (100%) rename {APIv2 => v2/api}/src/site/markdown/index.md (100%) rename {APIv2 => v2/api}/src/site/markdown/migrationList.md (100%) rename {APIv2 => v2/api}/src/site/markdown/roadmap.md (100%) rename {APIv2 => v2/api}/src/site/markdown/stories.md (100%) rename {APIv2 => v2/api}/src/site/site.xml (100%) rename {APIv2 => v2/api}/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java (100%) rename {APIv2 => v2/api}/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java (100%) rename {APIv2 => v2/api}/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java (100%) rename {APIv2 => v2/api}/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java (100%) rename {APIv2 => v2/api}/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java (100%) rename {APIv2 => v2/api}/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java (100%) rename {LIBv2 => v2}/maxMcVersion.txt (100%) rename {LIBv2 => v2}/minMcVersion.txt (100%) rename {LIBv2 => v2/plugin}/.classpath (100%) rename {LIBv2 => v2/plugin}/.project (100%) rename {LIBv2 => v2/plugin}/.settings/org.eclipse.core.resources.prefs (100%) rename {LIBv2 => v2/plugin}/.settings/org.eclipse.jdt.core.prefs (100%) rename {LIBv2 => v2/plugin}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {LIBv2 => v2/plugin}/.settings/org.eclipse.m2e.core.prefs (100%) rename {LIBv2 => v2/plugin}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {LIBv2 => v2/plugin}/pom.xml (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java (100%) rename {LIBv2 => v2/plugin}/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java (100%) rename {LIBv2 => v2/plugin}/src/main/resources/plugin.yml (100%) rename {PARENTv2 => v2}/pom.xml (98%) diff --git a/PARENTv2/.project b/v2/.project similarity index 100% rename from PARENTv2/.project rename to v2/.project diff --git a/PARENTv2/.settings/org.eclipse.core.resources.prefs b/v2/.settings/org.eclipse.core.resources.prefs similarity index 100% rename from PARENTv2/.settings/org.eclipse.core.resources.prefs rename to v2/.settings/org.eclipse.core.resources.prefs diff --git a/APIv2/.classpath b/v2/api/.classpath similarity index 100% rename from APIv2/.classpath rename to v2/api/.classpath diff --git a/APIv2/.project b/v2/api/.project similarity index 100% rename from APIv2/.project rename to v2/api/.project diff --git a/APIv2/.settings/org.eclipse.core.resources.prefs b/v2/api/.settings/org.eclipse.core.resources.prefs similarity index 100% rename from APIv2/.settings/org.eclipse.core.resources.prefs rename to v2/api/.settings/org.eclipse.core.resources.prefs diff --git a/APIv2/.settings/org.eclipse.jdt.core.prefs b/v2/api/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from APIv2/.settings/org.eclipse.jdt.core.prefs rename to v2/api/.settings/org.eclipse.jdt.core.prefs diff --git a/APIv2/.settings/org.eclipse.jdt.ui.prefs b/v2/api/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from APIv2/.settings/org.eclipse.jdt.ui.prefs rename to v2/api/.settings/org.eclipse.jdt.ui.prefs diff --git a/APIv2/.settings/org.eclipse.m2e.core.prefs b/v2/api/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from APIv2/.settings/org.eclipse.m2e.core.prefs rename to v2/api/.settings/org.eclipse.m2e.core.prefs diff --git a/APIv2/pom.xml b/v2/api/pom.xml similarity index 100% rename from APIv2/pom.xml rename to v2/api/pom.xml diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/v2/api/src/main/java/com/github/mce/minigames/api/CommonErrors.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/CommonErrors.java rename to v2/api/src/main/java/com/github/mce/minigames/api/CommonErrors.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/v2/api/src/main/java/com/github/mce/minigames/api/CommonMessages.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/CommonMessages.java rename to v2/api/src/main/java/com/github/mce/minigames/api/CommonMessages.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java rename to v2/api/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/MinigameInterface.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/MinigameInterface.java rename to v2/api/src/main/java/com/github/mce/minigames/api/MinigameInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java rename to v2/api/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java rename to v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java b/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java rename to v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java b/v2/api/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java rename to v2/api/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java b/v2/api/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java rename to v2/api/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java b/v2/api/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java rename to v2/api/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java rename to v2/api/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamId.java b/v2/api/src/main/java/com/github/mce/minigames/api/team/TeamId.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/team/TeamId.java rename to v2/api/src/main/java/com/github/mce/minigames/api/team/TeamId.java diff --git a/APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java b/v2/api/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java similarity index 100% rename from APIv2/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java rename to v2/api/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/LibState.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/LibState.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/LibState.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/LibState.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MglibCache.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MglibCache.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/MglibCache.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/MglibCache.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java diff --git a/APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java similarity index 100% rename from APIv2/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java diff --git a/APIv2/src/site/markdown/dev_advanced_achievement.md b/v2/api/src/site/markdown/dev_advanced_achievement.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_achievement.md rename to v2/api/src/site/markdown/dev_advanced_achievement.md diff --git a/APIv2/src/site/markdown/dev_advanced_arcade.md b/v2/api/src/site/markdown/dev_advanced_arcade.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_arcade.md rename to v2/api/src/site/markdown/dev_advanced_arcade.md diff --git a/APIv2/src/site/markdown/dev_advanced_bungee_basics.md b/v2/api/src/site/markdown/dev_advanced_bungee_basics.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_bungee_basics.md rename to v2/api/src/site/markdown/dev_advanced_bungee_basics.md diff --git a/APIv2/src/site/markdown/dev_advanced_custom_components.md b/v2/api/src/site/markdown/dev_advanced_custom_components.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_custom_components.md rename to v2/api/src/site/markdown/dev_advanced_custom_components.md diff --git a/APIv2/src/site/markdown/dev_advanced_custom_signs.md b/v2/api/src/site/markdown/dev_advanced_custom_signs.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_custom_signs.md rename to v2/api/src/site/markdown/dev_advanced_custom_signs.md diff --git a/APIv2/src/site/markdown/dev_advanced_extensions.md b/v2/api/src/site/markdown/dev_advanced_extensions.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_extensions.md rename to v2/api/src/site/markdown/dev_advanced_extensions.md diff --git a/APIv2/src/site/markdown/dev_advanced_guns_animations.md b/v2/api/src/site/markdown/dev_advanced_guns_animations.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_guns_animations.md rename to v2/api/src/site/markdown/dev_advanced_guns_animations.md diff --git a/APIv2/src/site/markdown/dev_advanced_holograms.md b/v2/api/src/site/markdown/dev_advanced_holograms.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_holograms.md rename to v2/api/src/site/markdown/dev_advanced_holograms.md diff --git a/APIv2/src/site/markdown/dev_advanced_kits.md b/v2/api/src/site/markdown/dev_advanced_kits.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_kits.md rename to v2/api/src/site/markdown/dev_advanced_kits.md diff --git a/APIv2/src/site/markdown/dev_advanced_leader_boards.md b/v2/api/src/site/markdown/dev_advanced_leader_boards.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_leader_boards.md rename to v2/api/src/site/markdown/dev_advanced_leader_boards.md diff --git a/APIv2/src/site/markdown/dev_advanced_mob_control.md b/v2/api/src/site/markdown/dev_advanced_mob_control.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_mob_control.md rename to v2/api/src/site/markdown/dev_advanced_mob_control.md diff --git a/APIv2/src/site/markdown/dev_advanced_power_up.md b/v2/api/src/site/markdown/dev_advanced_power_up.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_power_up.md rename to v2/api/src/site/markdown/dev_advanced_power_up.md diff --git a/APIv2/src/site/markdown/dev_advanced_score_boards.md b/v2/api/src/site/markdown/dev_advanced_score_boards.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_score_boards.md rename to v2/api/src/site/markdown/dev_advanced_score_boards.md diff --git a/APIv2/src/site/markdown/dev_advanced_shop.md b/v2/api/src/site/markdown/dev_advanced_shop.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_shop.md rename to v2/api/src/site/markdown/dev_advanced_shop.md diff --git a/APIv2/src/site/markdown/dev_advanced_smart_gui.md b/v2/api/src/site/markdown/dev_advanced_smart_gui.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_smart_gui.md rename to v2/api/src/site/markdown/dev_advanced_smart_gui.md diff --git a/APIv2/src/site/markdown/dev_advanced_smart_reset.md b/v2/api/src/site/markdown/dev_advanced_smart_reset.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_smart_reset.md rename to v2/api/src/site/markdown/dev_advanced_smart_reset.md diff --git a/APIv2/src/site/markdown/dev_advanced_stats.md b/v2/api/src/site/markdown/dev_advanced_stats.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_stats.md rename to v2/api/src/site/markdown/dev_advanced_stats.md diff --git a/APIv2/src/site/markdown/dev_advanced_tasks.md b/v2/api/src/site/markdown/dev_advanced_tasks.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_tasks.md rename to v2/api/src/site/markdown/dev_advanced_tasks.md diff --git a/APIv2/src/site/markdown/dev_advanced_teams.md b/v2/api/src/site/markdown/dev_advanced_teams.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_teams.md rename to v2/api/src/site/markdown/dev_advanced_teams.md diff --git a/APIv2/src/site/markdown/dev_advanced_trading.md b/v2/api/src/site/markdown/dev_advanced_trading.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_trading.md rename to v2/api/src/site/markdown/dev_advanced_trading.md diff --git a/APIv2/src/site/markdown/dev_advanced_variable_substitution.md b/v2/api/src/site/markdown/dev_advanced_variable_substitution.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_variable_substitution.md rename to v2/api/src/site/markdown/dev_advanced_variable_substitution.md diff --git a/APIv2/src/site/markdown/dev_advanced_waiting_queues.md b/v2/api/src/site/markdown/dev_advanced_waiting_queues.md similarity index 100% rename from APIv2/src/site/markdown/dev_advanced_waiting_queues.md rename to v2/api/src/site/markdown/dev_advanced_waiting_queues.md diff --git a/APIv2/src/site/markdown/dev_minigame_arena_types.md b/v2/api/src/site/markdown/dev_minigame_arena_types.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_arena_types.md rename to v2/api/src/site/markdown/dev_minigame_arena_types.md diff --git a/APIv2/src/site/markdown/dev_minigame_config.md b/v2/api/src/site/markdown/dev_minigame_config.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_config.md rename to v2/api/src/site/markdown/dev_minigame_config.md diff --git a/APIv2/src/site/markdown/dev_minigame_context.md b/v2/api/src/site/markdown/dev_minigame_context.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_context.md rename to v2/api/src/site/markdown/dev_minigame_context.md diff --git a/APIv2/src/site/markdown/dev_minigame_messages.md b/v2/api/src/site/markdown/dev_minigame_messages.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_messages.md rename to v2/api/src/site/markdown/dev_minigame_messages.md diff --git a/APIv2/src/site/markdown/dev_minigame_own_rules.md b/v2/api/src/site/markdown/dev_minigame_own_rules.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_own_rules.md rename to v2/api/src/site/markdown/dev_minigame_own_rules.md diff --git a/APIv2/src/site/markdown/dev_minigame_permissions.md b/v2/api/src/site/markdown/dev_minigame_permissions.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_permissions.md rename to v2/api/src/site/markdown/dev_minigame_permissions.md diff --git a/APIv2/src/site/markdown/dev_minigame_pluginmain.md b/v2/api/src/site/markdown/dev_minigame_pluginmain.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_pluginmain.md rename to v2/api/src/site/markdown/dev_minigame_pluginmain.md diff --git a/APIv2/src/site/markdown/dev_minigame_pluginyml.md b/v2/api/src/site/markdown/dev_minigame_pluginyml.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_pluginyml.md rename to v2/api/src/site/markdown/dev_minigame_pluginyml.md diff --git a/APIv2/src/site/markdown/dev_minigame_using_rules.md b/v2/api/src/site/markdown/dev_minigame_using_rules.md similarity index 100% rename from APIv2/src/site/markdown/dev_minigame_using_rules.md rename to v2/api/src/site/markdown/dev_minigame_using_rules.md diff --git a/APIv2/src/site/markdown/dev_setup_eclipse.md b/v2/api/src/site/markdown/dev_setup_eclipse.md similarity index 100% rename from APIv2/src/site/markdown/dev_setup_eclipse.md rename to v2/api/src/site/markdown/dev_setup_eclipse.md diff --git a/APIv2/src/site/markdown/dev_setup_maven.md b/v2/api/src/site/markdown/dev_setup_maven.md similarity index 100% rename from APIv2/src/site/markdown/dev_setup_maven.md rename to v2/api/src/site/markdown/dev_setup_maven.md diff --git a/APIv2/src/site/markdown/dev_setup_project.md b/v2/api/src/site/markdown/dev_setup_project.md similarity index 100% rename from APIv2/src/site/markdown/dev_setup_project.md rename to v2/api/src/site/markdown/dev_setup_project.md diff --git a/APIv2/src/site/markdown/dev_theory_arenas.md b/v2/api/src/site/markdown/dev_theory_arenas.md similarity index 100% rename from APIv2/src/site/markdown/dev_theory_arenas.md rename to v2/api/src/site/markdown/dev_theory_arenas.md diff --git a/APIv2/src/site/markdown/dev_theory_match.md b/v2/api/src/site/markdown/dev_theory_match.md similarity index 100% rename from APIv2/src/site/markdown/dev_theory_match.md rename to v2/api/src/site/markdown/dev_theory_match.md diff --git a/APIv2/src/site/markdown/dev_theory_minigame.md b/v2/api/src/site/markdown/dev_theory_minigame.md similarity index 100% rename from APIv2/src/site/markdown/dev_theory_minigame.md rename to v2/api/src/site/markdown/dev_theory_minigame.md diff --git a/APIv2/src/site/markdown/dev_theory_rules.md b/v2/api/src/site/markdown/dev_theory_rules.md similarity index 100% rename from APIv2/src/site/markdown/dev_theory_rules.md rename to v2/api/src/site/markdown/dev_theory_rules.md diff --git a/APIv2/src/site/markdown/development.md b/v2/api/src/site/markdown/development.md similarity index 100% rename from APIv2/src/site/markdown/development.md rename to v2/api/src/site/markdown/development.md diff --git a/APIv2/src/site/markdown/features.md b/v2/api/src/site/markdown/features.md similarity index 100% rename from APIv2/src/site/markdown/features.md rename to v2/api/src/site/markdown/features.md diff --git a/APIv2/src/site/markdown/gamerules.md b/v2/api/src/site/markdown/gamerules.md similarity index 100% rename from APIv2/src/site/markdown/gamerules.md rename to v2/api/src/site/markdown/gamerules.md diff --git a/APIv2/src/site/markdown/index.md b/v2/api/src/site/markdown/index.md similarity index 100% rename from APIv2/src/site/markdown/index.md rename to v2/api/src/site/markdown/index.md diff --git a/APIv2/src/site/markdown/migrationList.md b/v2/api/src/site/markdown/migrationList.md similarity index 100% rename from APIv2/src/site/markdown/migrationList.md rename to v2/api/src/site/markdown/migrationList.md diff --git a/APIv2/src/site/markdown/roadmap.md b/v2/api/src/site/markdown/roadmap.md similarity index 100% rename from APIv2/src/site/markdown/roadmap.md rename to v2/api/src/site/markdown/roadmap.md diff --git a/APIv2/src/site/markdown/stories.md b/v2/api/src/site/markdown/stories.md similarity index 100% rename from APIv2/src/site/markdown/stories.md rename to v2/api/src/site/markdown/stories.md diff --git a/APIv2/src/site/site.xml b/v2/api/src/site/site.xml similarity index 100% rename from APIv2/src/site/site.xml rename to v2/api/src/site/site.xml diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java similarity index 100% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java rename to v2/api/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java similarity index 100% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java rename to v2/api/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java similarity index 100% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java rename to v2/api/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java similarity index 100% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java rename to v2/api/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java similarity index 100% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java rename to v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java diff --git a/APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java similarity index 100% rename from APIv2/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java rename to v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java diff --git a/LIBv2/maxMcVersion.txt b/v2/maxMcVersion.txt similarity index 100% rename from LIBv2/maxMcVersion.txt rename to v2/maxMcVersion.txt diff --git a/LIBv2/minMcVersion.txt b/v2/minMcVersion.txt similarity index 100% rename from LIBv2/minMcVersion.txt rename to v2/minMcVersion.txt diff --git a/LIBv2/.classpath b/v2/plugin/.classpath similarity index 100% rename from LIBv2/.classpath rename to v2/plugin/.classpath diff --git a/LIBv2/.project b/v2/plugin/.project similarity index 100% rename from LIBv2/.project rename to v2/plugin/.project diff --git a/LIBv2/.settings/org.eclipse.core.resources.prefs b/v2/plugin/.settings/org.eclipse.core.resources.prefs similarity index 100% rename from LIBv2/.settings/org.eclipse.core.resources.prefs rename to v2/plugin/.settings/org.eclipse.core.resources.prefs diff --git a/LIBv2/.settings/org.eclipse.jdt.core.prefs b/v2/plugin/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from LIBv2/.settings/org.eclipse.jdt.core.prefs rename to v2/plugin/.settings/org.eclipse.jdt.core.prefs diff --git a/LIBv2/.settings/org.eclipse.jdt.ui.prefs b/v2/plugin/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from LIBv2/.settings/org.eclipse.jdt.ui.prefs rename to v2/plugin/.settings/org.eclipse.jdt.ui.prefs diff --git a/LIBv2/.settings/org.eclipse.m2e.core.prefs b/v2/plugin/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from LIBv2/.settings/org.eclipse.m2e.core.prefs rename to v2/plugin/.settings/org.eclipse.m2e.core.prefs diff --git a/LIBv2/.settings/org.eclipse.wst.common.project.facet.core.xml b/v2/plugin/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from LIBv2/.settings/org.eclipse.wst.common.project.facet.core.xml rename to v2/plugin/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/LIBv2/pom.xml b/v2/plugin/pom.xml similarity index 100% rename from LIBv2/pom.xml rename to v2/plugin/pom.xml diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java diff --git a/LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java similarity index 100% rename from LIBv2/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java diff --git a/LIBv2/src/main/resources/plugin.yml b/v2/plugin/src/main/resources/plugin.yml similarity index 100% rename from LIBv2/src/main/resources/plugin.yml rename to v2/plugin/src/main/resources/plugin.yml diff --git a/PARENTv2/pom.xml b/v2/pom.xml similarity index 98% rename from PARENTv2/pom.xml rename to v2/pom.xml index 066e71c5..8a0f4340 100644 --- a/PARENTv2/pom.xml +++ b/v2/pom.xml @@ -22,6 +22,11 @@ <mglib.version>2.0.0-SNAPSHOT</mglib.version> </properties> + <modules> + <module>api</module> + <module>plugin</module> + </modules> + <dependencyManagement> <dependencies> <dependency> From 597bb268153196c1e35d62c6eab7a9076fca4e7a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 21 Jan 2017 10:05:54 +0100 Subject: [PATCH 173/266] build fix --- v2/plugin/pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/v2/plugin/pom.xml b/v2/plugin/pom.xml index 25d9c907..024488f0 100644 --- a/v2/plugin/pom.xml +++ b/v2/plugin/pom.xml @@ -18,6 +18,14 @@ <artifactId>MinigamesAPI</artifactId> <scope>compile</scope> </dependency> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib-api</artifactId> + </dependency> + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>mclib</artifactId> + </dependency> </dependencies> <build> From 750dff7da0dbab9314d23a684f24d1984d75b307 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 21 Jan 2017 10:10:56 +0100 Subject: [PATCH 174/266] build fix --- v2/{ => plugin}/maxMcVersion.txt | 0 v2/{ => plugin}/minMcVersion.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename v2/{ => plugin}/maxMcVersion.txt (100%) rename v2/{ => plugin}/minMcVersion.txt (100%) diff --git a/v2/maxMcVersion.txt b/v2/plugin/maxMcVersion.txt similarity index 100% rename from v2/maxMcVersion.txt rename to v2/plugin/maxMcVersion.txt diff --git a/v2/minMcVersion.txt b/v2/plugin/minMcVersion.txt similarity index 100% rename from v2/minMcVersion.txt rename to v2/plugin/minMcVersion.txt From 4bb0d657b247d44e4f1289f507c8ed0e1337b3d4 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 23 Jan 2017 09:01:01 +0100 Subject: [PATCH 175/266] fixes --- .../mgapi/api/MinigameInterface.java | 16 ++++++++++----- .../minigameslib/mgapi/impl/MinigameImpl.java | 2 +- .../mgapi/impl/MinigamesPlugin.java | 20 +++++++++---------- .../mgapi/impl/cmd/AdminCommand.java | 2 ++ .../mgapi/impl/cmd/InfoExtensionCommand.java | 2 +- .../mgapi/impl/cmd/InfoMinigameCommand.java | 2 +- .../mgapi/impl/cmd/Mg2Command.java | 10 +++++----- 7 files changed, 31 insertions(+), 23 deletions(-) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java index 4bcd0d69..287b5bff 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java @@ -81,18 +81,24 @@ public interface MinigameInterface Plugin getPlugin(); /** + * Returns the arena type per name. * @param typeName - * @return + * @return type instance or {@code null} if the type was not found */ ArenaTypeInterface getType(String typeName); + /** + * Returns the type count. + * @return type count + */ int getTypeCount(); /** - * @param prefix - * @param start - * @param limit - * @return + * Returns the arena types + * @param prefix type name prefix + * @param start starting index + * @param limit maximum countt return + * @return collection of arena types. */ Collection<ArenaTypeInterface> getTypes(String prefix, int start, int limit); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java index 19cecf69..d679c0c0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java @@ -122,7 +122,7 @@ public int getTypeCount() @Override public Collection<ArenaTypeInterface> getTypes(String prefix, int start, int limit) { - return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).stream().filter(t -> t.name().startsWith(prefix)).skip(start).limit(limit).collect(Collectors.toList()); + return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).stream().filter(t -> t.name().toLowerCase().startsWith(prefix.toLowerCase())).skip(start).limit(limit).collect(Collectors.toList()); } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index c0ce9582..58c451ab 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -288,7 +288,7 @@ public int getMinigameCount() @Override public int getMinigameCount(String prefix) { - return (int) this.minigamesPerName.keySet().stream().filter(p -> p.startsWith(prefix)).count(); + return (int) this.minigamesPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); } @Override @@ -300,7 +300,7 @@ public Collection<MinigameInterface> getMinigames(int index, int limit) @Override public Collection<MinigameInterface> getMinigames(String prefix, int index, int limit) { - return this.minigamesPerName.values().stream().filter(p -> p.getName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + return this.minigamesPerName.values().stream().filter(p -> p.getName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } @Override @@ -332,7 +332,7 @@ public int getExtensionCount() @Override public int getExtensionCount(String prefix) { - return (int) this.extensionsPerName.keySet().stream().filter(p -> p.startsWith(prefix)).count(); + return (int) this.extensionsPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); } @Override @@ -344,7 +344,7 @@ public Collection<ExtensionInterface> getExtensions(int index, int limit) @Override public Collection<ExtensionInterface> getExtensions(String prefix, int index, int limit) { - return this.extensionsPerName.values().stream().filter(p -> p.getName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + return this.extensionsPerName.values().stream().filter(p -> p.getName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } @Override @@ -362,7 +362,7 @@ public int getArenaCount() @Override public int getArenaCount(String prefix) { - return (int) this.arenasPerName.keySet().stream().filter(p -> p.startsWith(prefix)).count(); + return (int) this.arenasPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); } @Override @@ -374,7 +374,7 @@ public int getArenaCount(Plugin plugin) @Override public int getArenaCount(Plugin plugin, String prefix) { - return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().startsWith(prefix)).count(); + return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).count(); } @Override @@ -386,7 +386,7 @@ public int getArenaCount(ArenaTypeInterface type) @Override public int getArenaCount(ArenaTypeInterface type, String prefix) { - return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().startsWith(prefix)).count(); + return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).count(); } @Override @@ -398,7 +398,7 @@ public Collection<ArenaInterface> getArenas(int index, int limit) @Override public Collection<ArenaInterface> getArenas(String prefix, int index, int limit) { - return this.arenasPerName.values().stream().filter(p -> p.getInternalName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + return this.arenasPerName.values().stream().filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } @Override @@ -410,7 +410,7 @@ public Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit) @Override public Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) { - return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } @Override @@ -422,7 +422,7 @@ public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, @Override public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) { - return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().startsWith(prefix)).skip(index).limit(limit).collect(Collectors.toList()); + return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java index 0db8de82..125262d1 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java @@ -27,6 +27,7 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; @@ -53,6 +54,7 @@ public boolean visible(CommandInterface command) */ public AdminCommand() { + this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ this.subCommands.put("create", new AdminCreateCommand()); //$NON-NLS-1$ this.subCommands.put("delete", new AdminDeleteCommand()); //$NON-NLS-1$ this.subCommands.put("enable", new AdminEnableCommand()); //$NON-NLS-1$ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java index b0b52e58..945c4d2d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java @@ -94,7 +94,7 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro } if (command.getArgs().length == 1) { - return Arrays.asList("manual").stream().filter(p -> p.startsWith(lastArg)).collect(Collectors.toList()); //$NON-NLS-1$ + return Arrays.asList("manual").stream().filter(p -> p.startsWith(lastArg.toLowerCase())).collect(Collectors.toList()); //$NON-NLS-1$ } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java index 50f4dc84..716e1443 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java @@ -102,7 +102,7 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro } if (command.getArgs().length == 1) { - return Arrays.asList("arenas", "manual").stream().filter(p -> p.startsWith(lastArg)).collect(Collectors.toList()); //$NON-NLS-1$//$NON-NLS-2$ + return Arrays.asList("arenas", "manual").stream().filter(p -> p.startsWith(lastArg.toLowerCase())).collect(Collectors.toList()); //$NON-NLS-1$//$NON-NLS-2$ } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java index 0b6f28b4..649d8c77 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -285,35 +285,35 @@ public enum Messages implements LocalizedMessageInterface /** * Arena was not found */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) ArenaNotFound, /** * Player was not found */ - @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"player was not found"}, args = @Argument("player name")) PlayerNotFound, /** * Minigame was not found */ - @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"minigame was not found"}, args = @Argument("minigame name")) MinigameNotFound, /** * Arena type was not found */ - @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"arena type was not found"}, args = @Argument("type name")) TypeNotFound, /** * Extension was not found */ - @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"extension was not found"}, args = @Argument("extension name")) ExtensionNotFound, From 72e221092a0de4db6c7a98ef9c467e0697f9e88f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 25 Jan 2017 18:50:18 +0100 Subject: [PATCH 176/266] v2 --- .../mce/minigames/api/CommonErrors.java | 210 ------- .../mce/minigames/api/CommonMessages.java | 591 ------------------ .../api/CommonProviderInterface.java | 199 ------ .../mce/minigames/api/MinigameInterface.java | 99 --- .../api/PluginProviderInterface.java | 53 -- .../minigames/api/arena/ArenaInterface.java | 173 ----- .../api/player/ArenaPlayerInterface.java | 150 ----- .../mgapi/api/arena/ArenaInterface.java | 4 +- .../mgapi/api/arena/ArenaTypeProvider.java | 24 + .../api/arena/ClassicSinglePlayerArena.java | 63 ++ .../mgapi/api/arena/ClassicTeamArena.java | 63 ++ .../mgapi/api/obj/ArenaComponentHandler.java | 60 ++ .../mgapi/api/obj/ArenaSignHandler.java | 60 ++ .../mgapi/api/obj/ArenaZoneHandler.java | 60 ++ .../mgapi/api/obj/BasicComponentTypes.java | 53 ++ .../mgapi/api/obj/BasicMatchConfig.java | 66 ++ .../mgapi/api/obj/BasicSignTypes.java | 59 ++ .../mgapi/api/obj/BasicZoneTypes.java | 77 +++ .../mgapi/api/obj/BattleZoneHandler.java | 38 ++ .../mgapi/api/obj/EmptyComponentHandler.java | 38 ++ .../mgapi/api/obj/EmptySignHandler.java | 38 ++ .../mgapi/api/obj/EmptyZoneHandler.java | 38 ++ .../api/obj/GenericComponentHandler.java | 38 ++ .../mgapi/api/obj/GenericSignHandler.java | 38 ++ .../mgapi/api/obj/GenericZoneHandler.java | 38 ++ .../mgapi/api/obj/JoinSignInterface.java} | 76 ++- .../mgapi/api/obj/JoinZoneHandler.java | 38 ++ .../mgapi/api/obj/LeaveSignInterface.java | 37 ++ .../mgapi/api/obj/LeaveZoneHandler.java | 38 ++ .../mgapi/api/obj/LobbyZoneHandler.java | 38 ++ .../mgapi/api/obj/MainZoneHandler.java | 38 ++ .../mgapi/api/obj/SpawnComponentHandler.java | 64 ++ .../mgapi/api/obj/SpectatorZoneHandler.java | 38 ++ .../api/rules/ArenaRuleSetInterface.java | 49 ++ .../mgapi/api/rules/ArenaRuleSetType.java | 41 ++ .../mgapi/api/rules/BasicArenaRuleSets.java | 48 ++ .../api/rules/BasicComponentRuleSets.java | 44 ++ .../mgapi/api/rules/BasicSignRuleSets.java} | 76 ++- .../mgapi/api/rules/BasicZoneRuleSets.java | 65 ++ .../api/rules/ComponentRuleSetInterface.java} | 76 ++- .../mgapi/api/rules/ComponentRuleSetType.java | 41 ++ .../mgapi/api/rules/RuleSetConfigurable.java | 49 ++ .../api/rules/RuleSetContainerInterface.java | 88 +++ .../mgapi/api/rules/RuleSetType.java} | 72 +-- .../api/rules/SignRuleSetInterface.java} | 65 +- .../mgapi/api/rules/SignRuleSetType.java | 41 ++ .../api/rules/ZoneRuleSetInterface.java} | 65 +- .../mgapi/api/rules/ZoneRuleSetType.java | 41 ++ .../mgapi/api/team/CommonTeams.java | 161 +++++ .../mgapi/api/team/TeamIdType.java | 41 ++ .../mgapi/impl/MinigamesPlugin.java | 15 + .../mgapi/impl/arena/ArenaImpl.java | 61 ++ .../mgapi/impl/cmd/AdminSGuiCommand.java | 1 + 53 files changed, 2160 insertions(+), 1677 deletions(-) delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/CommonErrors.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/CommonMessages.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/MinigameInterface.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java rename v2/api/src/{test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java => main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java} (63%) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java rename v2/api/src/main/java/{com/github/mce/minigames/api/arena/MatchPhaseId.java => de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java} (58%) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java rename v2/api/src/{test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java => main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java} (63%) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java rename v2/api/src/main/java/{com/github/mce/minigames/api/team/TeamId.java => de/minigameslib/mgapi/api/rules/RuleSetType.java} (65%) rename v2/api/src/main/java/{com/github/mce/minigames/api/team/TeamRuleSet.java => de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java} (65%) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java rename v2/api/src/main/java/{com/github/mce/minigames/api/arena/WaitQueue.java => de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java} (64%) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/CommonErrors.java b/v2/api/src/main/java/com/github/mce/minigames/api/CommonErrors.java deleted file mode 100644 index 05a2ef4f..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/CommonErrors.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageSeverityType; - -/** - * Common errors within minigames lib. - * - * @author mepeisen - */ -@LocalizedMessages("errors") -public enum CommonErrors implements LocalizedMessageInterface -{ - - /** - * Game cannot be initialized because minigames-lib has wrong state. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * <li>String: current plugin lib state</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because of wrong MinigamesLib plugin state: %2$s.", severity = MessageSeverityType.Error) - Cannot_Create_Game_Wrong_State, - - /** - * Extension cannot be initialized because minigames-lib has wrong state. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: extension name</li> - * <li>String: current plugin lib state</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because of wrong MinigamesLib plugin state: %2$s.", severity = MessageSeverityType.Error) - Cannot_Create_Extension_Wrong_State, - - /** - * Arena type cannot be initialized because minigames has wrong state. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: arena type name</li> - * <li>String: minigame name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create arena type %1$s for minigame %2$s because of wrong state.", severity = MessageSeverityType.Error) - Cannot_Create_ArenaType_Wrong_State, - - /** - * Arena cannot be creeated because of invalid characters. - * - * <p>No arguments.</p> - */ - @LocalizedMessage(defaultMessage = "Unable to create arena because name contains invalid characters.", severity = MessageSeverityType.Error) - Cannot_Create_Arena_Invalid_Name, - - /** - * Arena cannot be loaded because of invalid arena type. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: arena type name</li> - * <li>String: minigame name</li> - * <li>String: arena name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to load arena %3$s for minigame %2$s because of missing arena type %1$s.", severity = MessageSeverityType.Error) - Cannot_Load_Arena_Unknown_Type, - - /** - * Game cannot be initialized because of internal errors. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because of internal errors, see previous log output.", severity = MessageSeverityType.Error) - MinigameRegistrationError, - - /** - * Extension cannot be initialized because of internal errors. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: extension name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because of internal errors, see previous log output.", severity = MessageSeverityType.Error) - ExtensionRegistrationError, - - /** - * Game cannot be initialized because it already exists. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create minigame %1$s because it already exists.", severity = MessageSeverityType.Error) - DuplicateMinigame, - - /** - * Extension cannot be initialized because it already exists. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: extension name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create extension %1$s because it already exists.", severity = MessageSeverityType.Error) - DuplicateExtension, - - /** - * Arena cannot be created because it already exists. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: arena name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create arena %1$s because it already exists.", severity = MessageSeverityType.Error) - DuplicateArena, - - /** - * Arena type cannot be initialized because it already exists. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: type name</li> - * <li>String: minigame name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unable to create arena type %1$s for minigame %2$s because it already exists.", severity = MessageSeverityType.Error) - DuplicateArenaType, - - /** - * Command must be executed in game. - * - * <p>No Arguments</p> - */ - @LocalizedMessage(defaultMessage = "Invoke this command in-game.", severity = MessageSeverityType.Error) - InvokeIngame, - - /** - * No permissions for a command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: command name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "No permission for %1$s command.", severity = MessageSeverityType.Error) - NoPermissionForCommand, - - /** - * Start command outside arena. - * - * <p>No Arguments</p> - */ - @LocalizedMessage(defaultMessage = "You are not inside an arena.", severity = MessageSeverityType.Error) - StartNotWithinArena, - - /** - * Arena cannot be started. - * - * <p>No Arguments</p> - */ - @LocalizedMessage(defaultMessage = "Arena cannot be started directly.", severity = MessageSeverityType.Error) - CannotStart, - - /** - * The party command is disabled. - * - * <p>No Arguments</p> - */ - @LocalizedMessage(defaultMessage = "Party command disabled.", severity = MessageSeverityType.Error) - PartyCommandDisabled, - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/CommonMessages.java b/v2/api/src/main/java/com/github/mce/minigames/api/CommonMessages.java deleted file mode 100644 index af7c18d6..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/CommonMessages.java +++ /dev/null @@ -1,591 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageSeverityType; - -/** - * Common messages within minigames lib. - * - * @author mepeisen - */ -@LocalizedMessages("messages") -public enum CommonMessages implements LocalizedMessageInterface -{ - - /** - * Game was started by command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * <li>String: player name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Arena %1$s was started by player: %2$s.", severity = MessageSeverityType.Success) - ArenaStartedByCommand, - - /** - * arena join state - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GREEN + "Join") - AraneStateJoin, - - /** - * arena join state - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.YELLOW + "Starting") - AraneStateStarting, - - /** - * arena ingame state - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.YELLOW + "InGame") - AraneStateInGame, - - /** - * arena restarting state - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.YELLOW + "Restarting") - AraneStateRestarting, - - /** - * arena disabled state - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.RED + "Disabled") - AraneStateDisabled, - - /** - * arena meintenance state - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.RED + "Maintenance") - AraneStateMeintenance, - - /** - * The core minigame description - * - * <p>no arguments.</p> - */ - @LocalizedMessage(defaultMessage = "CORE (MinigamesLib)") - CoreMinigameDescription, - - /** - * The core minigame description - * - * <p>no arguments.</p> - */ - @LocalizedMessageList({ - "The CORE minigame does not provide any game.", - "It is part of the library itself.", - "You cannot create arenas for minigame CORE." - }) - CoreMinigameLongDescription, - - // ***** commands, usages etc. - - /** - * Usage of party command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s [subcommand] " + LocalizedMessage.GRAY + "Call party sub commands.") - PartyCommandUsage, - - /** - * Short description of party command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Control your party and invites.") - PartyCommandShortDescription, - - /** - * Long description of party command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessageList({ - "Build a party with your friends.", - "One player can create a party by starting invites.", - "As soon as all friends are invited and accepted the invite", - "the party owner can join an arena with the entire party." - }) - PartyCommandDescription, - - /** - * Minigame was not found. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Minigame %1$s not found.", severity = MessageSeverityType.Error) - MinigameNotFound, - - /** - * Default arena type was not found. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Minigame %1$s does not declare a default arena type.", severity = MessageSeverityType.Error) - DefaultArenaTypeNotFound, - - /** - * Default arena type was not found. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: minigame name</li> - * <li>String: arena type name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Minigame %1$s does not declare arena type %2$s.", severity = MessageSeverityType.Error) - ArenaTypeNotFound, - - /** - * Usage of create command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s [minigame] [type] [name] " + LocalizedMessage.GRAY + "Create a new arena.") - CreateCommandUsage, - - /** - * Short description of create command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Create a new arena.") - CreateCommandShortDescription, - - /** - * Long description of create command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessageList({ - "Creates a new arena.", - "As first argument give the internal name of the minigame.", - "As second argument give the arena type name.", - "As third argument give the unique name of the arena.", - "The arena type is optional. If it is missing the default type is used.", - " Example: " + LocalizedMessage.BLUE + "%1$s Snake Sheeps Snake1", - "The new arena will automatically be in maintenance mode." - }) - CreateCommandDescription, - - /** - * The command output of /mg2 info. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * <li>String: spigot version</li> - * <li>String: minigames version</li> - * <li>String: mode</li> - * <li>String: debug</li> - * </ol> - */ - @LocalizedMessageList({ - "minigames lib version %3$s (%4$s)", - "running on minecraft %2$s", - "debugging: %5$s", - "----------", - "Run for additional information:", - " " + LocalizedMessage.BLUE + "%1$s extensions " + LocalizedMessage.GRAY + " to list the extensions.", - " " + LocalizedMessage.BLUE + "%1$s minigames " + LocalizedMessage.GRAY + " to list the minigames.", - " " + LocalizedMessage.BLUE + "%1$s arenas " + LocalizedMessage.GRAY + " to list the arenas." - }) - InfoCommandOutput, - - /** - * Usage of info command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "Information on minigames lib.") - InfoCommandUsage, - - /** - * Short description of info command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Information on minigames lib.") - InfoCommandShortDescription, - - /** - * Long description of info command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessageList({ - "Display some useful information on the minigames library.", - "Version information, important options etc.", - "This command requires an administrator permission.", - " " + LocalizedMessage.BLUE + "%1$s extensions " + LocalizedMessage.GRAY + " to list the extensions.", - " " + LocalizedMessage.BLUE + "%1$s minigames " + LocalizedMessage.GRAY + " to list the minigames.", - " " + LocalizedMessage.BLUE + "%1$s arenas " + LocalizedMessage.GRAY + " to list the arenas." - }) - InfoCommandDescription, - - /** - * Info with unknown sub command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command line</li> - * <li>String: The sub command</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) - InfoUnknownSubCommand, - - /** - * Info minigames command header. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "minigames") - InfoMinigamesHeader, - - /** - * Info minigames line. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The minigame name</li> - * <li>String: The short description</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "%2$s") - InfoMinigamesLine, - - /** - * Info extensions command header. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "extensions") - InfoExtensionsHeader, - - /** - * Info extensions line. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The extension name</li> - * <li>String: The short description</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "%2$s") - InfoExtensionLine, - - /** - * Info arenas command header. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "arenas") - InfoArenasHeader, - - /** - * Info arenas line. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The minigame name</li> - * <li>String: The internal name</li> - * <li>String: The arena state</li> - * <li>String: The display name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s %2$s " + LocalizedMessage.GRAY + "[%3$s" + LocalizedMessage.GRAY + "] %4$s") - InfoArenaLine, - - /** - * Usage of start command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "Force the current arena to start.") - StartCommandUsage, - - /** - * Short description of start command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Force the current arena to start.") - StartCommandShortDescription, - - /** - * Long description of start command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * </ol> - */ - @LocalizedMessageList({ - "Forces the arena you are part of to start.", - "The arena can only be started while you are in the waiting lobby.", - "This command requires a start permission." - }) - StartCommandDescription, - - /** - * Error message for invalid commands (too many arguments) - * - * <p>No arguments.</p> - */ - @LocalizedMessage(defaultMessage = "Too many arguments", severity = MessageSeverityType.Error) - TooManyArguments, - - /** - * Mg2 command usage. - * - * <p>No arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Type " + LocalizedMessage.BLUE + "/mg2 help " + LocalizedMessage.GRAY + "for detailed help", severity = MessageSeverityType.Success) - Mg2CommandUsage, - - /** - * Invalid sub command in composite command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * <li>String: current sub command</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) - CompositeUnknownSubCommand, - - /** - * Paged output; header. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: info text</li> - * <li>Integer: current page</li> - * <li>Integer: total pages</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "=====" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.GRAY + "====" + LocalizedMessage.BLUE + "Page " + LocalizedMessage.DARK_BLUE + "%2$d " + LocalizedMessage.BLUE + " from " + LocalizedMessage.DARK_BLUE + "%3$d" + LocalizedMessage.GRAY + "=====") - PagedHeader, - - /** - * Paged output; line. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: line text</li> - * <li>Integer: line number</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = " " + LocalizedMessage.GRAY + "%1$s") - PagedLine, - - /** - * Paged output; wrong page number. - * - * <p>Arguments:</p> - * - * <ol> - * <li>Integer: Page number that was entered by user</li> - * <li>Integer: Total page count being available</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Page %1$d out of range. Only values from 1 to %2$d allowed.", severity = MessageSeverityType.Error) - PagedWrongPageNum, - - - /** - * Paged output; invalid page number (not numeric). - * - * <p>No arguments.</p> - */ - @LocalizedMessage(defaultMessage = "Invalid page number/ number format error.", severity = MessageSeverityType.Error) - PagedInvalidNumber, - - /** - * Paged output; usage information - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Usage: " + LocalizedMessage.BLUE + "%1$s [page] " + LocalizedMessage.GRAY + "Display the given page.") - PageUsage, - - /** - * Help command header. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "help") - HelpHeader, - - /** - * Help line. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command line</li> - * <li>String: The short description</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GRAY + "%2$s") - HelpLineUsage, - - /** - * Help command short description. - * - * <p>No arguments.</p> - */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Display command help") - HelpShortDescription, - - /** - * Help on unknown sub command. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command line</li> - * <li>String: The sub command</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Unknown command " + LocalizedMessage.BLUE + "%1$s %2$s", severity = MessageSeverityType.Error) - HelpUnknownSubCommand, - - /** - * Help command long description. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: The command that was entered</li> - * <li>String: The usage of this command</li> - * </ol> - */ - @LocalizedMessageList({ - LocalizedMessageList.GRAY + "Displays command help for command " + LocalizedMessageList.BLUE + "%1$s", - LocalizedMessageList.GRAY + "Usage: " + LocalizedMessageList.BLUE + "%1$s [command] [page] " + LocalizedMessageList.GRAY + "Display the given help page.", - LocalizedMessageList.GRAY + "The argument " + LocalizedMessageList.BLUE + "page is optional. If not entered it", - LocalizedMessageList.GRAY + "will always display the first help page.", - LocalizedMessageList.GRAY + "If a command name is given it will display help on that command.", - }) - HelpLongDescription; - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java deleted file mode 100644 index dd89a261..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/CommonProviderInterface.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import java.util.Map; - -import org.bukkit.plugin.java.JavaPlugin; - -import de.minigameslib.mclib.api.cmd.CommandHandlerInterface; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.gui.ClickGuiId; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.perms.PermissionsInterface; - -/** - * Basic interface for providers, either minigame plugins or extensions. - * - * @author mepeisen - */ -public interface CommonProviderInterface -{ - - /** - * Returns the java plugin that creates the component. - * - * @return java plugin. - */ - JavaPlugin getJavaPlugin(); - - /** - * Returns the messages classes for predefined messages. - * - * <p> - * Simple return {@code null} if you only use the default messages from minigames library. - * </p> - * - * @return message classes for predefined messages. - */ - default Iterable<Class<? extends LocalizedMessageInterface>> getMessageClasses() - { - return null; - } - - /** - * Returns the permission classes. - * - * <p> - * Simple return {@code null} if you only use the default permissions from minigames library. - * </p> - * - * @return permission classes for predefined permissions. - */ - default Iterable<Class<? extends PermissionsInterface>> getPermissions() - { - return null; - } - - /** - * Returns the bukkit (main) commands registered by this minigame. - * - * <p> - * Simply return {@code null} if there are no additional bukkit commands to register. - * </p> - * - * @return bukkit (main) commands. - */ - default Map<String, CommandHandlerInterface> getBukkitCommands() - { - return null; - } - - /** - * Returns the configuration classes. - * - * <p> - * Simple return {@code null} if you only use the default configuration options from minigames library. - * </p> - * - * @return configuration classes for predefined configurations. - */ - default Iterable<Class<? extends ConfigurationValueInterface>> getConfigurations() - { - return null; - } - - /** - * Returns the additional gui ids for this provider. - * - * @return additional gui ids. - */ - default Iterable<Class<? extends ClickGuiId>> getGuiIds() - { - return null; - } - -// /** -// * Returns the additional gui ids for this provider. -// * -// * @return additional gui ids. -// */ -// default Iterable<Class<? extends ArenaRuleId>> getArenaRuleIds() -// { -// return null; -// } -// -// /** -// * Returns the additional gui ids for this provider. -// * -// * @return additional gui ids. -// */ -// default Iterable<Class<? extends MatchRuleId>> getMatchRuleIds() -// { -// return null; -// } -// -// /** -// * Returns the additional gui ids for this provider. -// * -// * @return additional gui ids. -// */ -// default Iterable<Class<? extends PlayerRuleId>> getPlayerRuleIds() -// { -// return null; -// } -// -// /** -// * Returns the administration rules for this provider. -// * -// * @return administration rule ids. -// */ -// default Iterable<Class<? extends AdminRuleId>> getAdminRuleIds() -// { -// return null; -// } -// -// /** -// * Returns the team rules for this provider. -// * -// * @return team rule ids. -// */ -// default Iterable<Class<? extends TeamRuleId>> getTeamRuleIds() -// { -// return null; -// } -// -// /** -// * Returns the components rules for this provider. -// * -// * @return component rule ids. -// */ -// default Iterable<Class<? extends ComponentRuleId>> getComponentRuleIds() -// { -// return null; -// } -// -// /** -// * Returns the components for this provider. -// * -// * @return component ids. -// */ -// default Iterable<Class<? extends ComponentId>> getComponentIds() -// { -// return null; -// } -// -// /** -// * Returns the teams for this provider. -// * -// * @return teams. -// */ -// default Iterable<Class<? extends TeamId>> getTeamIds() -// { -// return null; -// } -// -// /** -// * Returns the match phases for this provider. -// * -// * @return match phases. -// */ -// default Iterable<Class<? extends MatchPhaseId>> getMatchPhaseIds() -// { -// return null; -// } - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/MinigameInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/MinigameInterface.java deleted file mode 100644 index e3cfdccb..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/MinigameInterface.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import java.io.Serializable; -import java.util.logging.Logger; - -import com.github.mce.minigames.api.arena.ArenaInterface; - -import de.minigameslib.mclib.api.config.ConfigInterface; -import de.minigameslib.mclib.api.locale.MessagesConfigInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeProvider; - -/** - * The plugin to access minigames. - * - * @author mepeisen - */ -public interface MinigameInterface extends ConfigInterface -{ - - // TODO Add support for default main lobby - - /** - * Returns the technical name of the minigame. - * - * <p> - * Will be the name returned by {@link PluginProviderInterface#getName()}. - * </p> - * - * @return minigame name. - */ - String getName(); - - /** - * Returns the file configuration for the messages. - * - * @return file configuration for messages. - */ - MessagesConfigInterface getMessages(); - - /** - * Returns all declared arenas within this minigame. - * - * @return all minigame arenas. - */ - Iterable<ArenaInterface> getArenas(); - - /** - * Return the amount of arenas. - * - * @return amount of arenas. - */ - int getArenaCount(); - - /** - * Returns the minigame arena with given internal name. - * - * @param name - * internal arena name - * @return arena or {@code null} if the arena does not exist. - */ - ArenaInterface getArena(String name); - - /** - * Returns a logger for the library. - * - * @return logger instance. - */ - Logger getLogger(); - - /** - * Returns the short description of the minigame - * - * @return minigame short description - */ - Serializable getShortDescription(); - - /** - * Returns the long description of the minigame - * - * @return minigame long description (multi line) - */ - Serializable getLongDescription(); - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java deleted file mode 100644 index 1163c1b3..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/PluginProviderInterface.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api; - -import java.io.Serializable; - -import org.bukkit.plugin.java.JavaPlugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * An interface that should be implemented by the {@link JavaPlugin} of a specific minigame. - * - * @author mepeisen - */ -public interface PluginProviderInterface extends CommonProviderInterface -{ - - /** - * Returns the technical name of the minigame. - * - * @return minigame name. - */ - String getName(); - - /** - * Returns the short description of the minigame. - * - * @return A short description; use method {@link LocalizedMessageInterface#toArg(Serializable...)} on the message. - */ - Serializable getShortDescription(); - - /** - * Returns the long multi line description of the minigame. - * - * @return A long multi line description; use method {@link LocalizedMessageInterface#toListArg(Serializable...)} on the message. - */ - Serializable getDescription(); - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java deleted file mode 100644 index 22b8d2c0..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenaInterface.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -/** - * A arena inside the gaming world. - * - * @author mepeisen - */ -public interface ArenaInterface -{ -// -// /** -// * List of illegal arena names; names starting with on of these strings are disallowed. -// */ -// String[] ILLEGAL_NAMES = { "core", "join", "leave", "mg" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ -// -// // arena information -// -// /** -// * Returns the internal name of this arena. -// * -// * @return internal name. -// */ -// String getInternalName(); -// -// /** -// * Returns the display name of this arena. -// * -// * @return arena display name; defaults to internal name. -// */ -// String getDisplayName(); -// -// /** -// * Returns the author of this arena. -// * -// * @return author or {@code null} if no author was set. -// */ -// String getAuthor(); -// -// /** -// * Returns a short description (single line) of the arena. -// * -// * @return short description or {@code null} if no short description was set. -// */ -// LocalizedMessageInterface getShortDescription(); -// -// /** -// * Returns a description (multi line) of the arena. -// * -// * @return multi line description or {@code null} if no description was set. -// */ -// LocalizedMessageInterface getDescription(); -// -// /** -// * Changes the display name -// * -// * @param name -// * new display name of the arena -// * @throws McException -// * thrown if save failed. -// */ -// void setDisplayName(String name) throws McException; -// -// // states -// -// /** -// * Starts the arena (forces the start if needed). -// */ -// void start(); -// -// // common methods -// -// /** -// * Returns a logger for the library. -// * -// * @return logger instance. -// */ -// Logger getLogger(); -// -// /** -// * Returns the declaring minigame -// * -// * @return minigame -// */ -// MinigameInterface getMinigame(); -// -// /** -// * Returns the arena state. -// * -// * <p> -// * WARNING: You should not use this method to query the arena state. Instead either use the predicates or use the {@link #getRealState()} method. -// * </p> -// * -// * @return arena state -// */ -// ArenaState getState(); -// -// /** -// * Returns the real arena state. -// * -// * <p> -// * While {@link #getState()} will return the public visible state this method returns the real state for gaming rules etc. While the arena state being MAINTENANCE the administrator is still able -// * to start a single match to test the arena. Thus the real state may be {@link ArenaState#InGame} during tests while the arena state still shows up {@link ArenaState#Maintenance}. -// * </p> -// * -// * @return arena state -// */ -// ArenaState getRealState(); -// -// /** -// * Returns the arena type for this arena. -// * -// * @return arena type. -// */ -// ArenaTypeInterface getArenaType(); -// -// /** -// * Checks if the arena is enabled. -// * -// * @return {@code true} if the arena is enabled. -// */ -// boolean isEnabled(); -// -// /** -// * Checks if the arena is in maintenance mode. -// * -// * @return {@code true} if the arena is under maintenance. -// */ -// boolean isMaintenance(); -// -// /** -// * Checks if the arena can be started by command; checks the gaming rules. -// * -// * @return {@code true} if the arena can be started. -// */ -// boolean canStart(); -// -// void delete() throws McException; -// -// // stubbing -// -// /** -// * Checks this arena for given criteria and invokes either then or else statements. -// * -// * <p> -// * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. -// * </p> -// * -// * @param test -// * test functions for testing the arena matching any criteria. -// * -// * @return the outgoing stub to apply then or else consumers. -// * -// * @throws McException -// * will be thrown if either the test function or then/else consumers throw the exception. -// */ -// MgOutgoingStubbing<ArenaInterface> when(MgPredicate<ArenaInterface> test) throws McException; - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java deleted file mode 100644 index bd061a30..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/player/ArenaPlayerInterface.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.player; - -import java.util.UUID; - -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - -import com.github.mce.minigames.api.arena.ArenaInterface; -import com.github.mce.minigames.api.arena.WaitQueue; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; - -/** - * Interface representing players, maybe inside arenas. - * - * @author mepeisen - */ -public interface ArenaPlayerInterface -{ - - // common methods (player info) - - /** - * Returns the bukkit player (if this player is online). - * - * @return bukkit player. - */ - default Player getBukkitPlayer() - { - return this.getMcPlayer().getBukkitPlayer(); - } - - /** - * Returns the name of the player. - * - * @return name of the player. - */ - default String getName() - { - return this.getMcPlayer().getName(); - } - - /** - * Returns the bukkit offline player. - * - * @return bukkit offline player. - */ - default OfflinePlayer getOfflinePlayer() - { - return this.getMcPlayer().getOfflinePlayer(); - } - - /** - * Returns the mclib player. - * - * @return mclib player. - */ - McPlayerInterface getMcPlayer(); - - /** - * Returns the players uuid. - * - * @return uuid. - */ - default UUID getPlayerUUID() - { - return this.getMcPlayer().getPlayerUUID(); - } - - // arena data - - /** - * Returns the arena this player is currently in; within a match. - * - * @return arena or {@code null} if this player is currently not within any arena. - */ - ArenaInterface getArena(); - - /** - * Get the waiting queues this player joined. - * - * @return waiting queues. - */ - Iterable<WaitQueue> getWaitingQueues(); - - /** - * Joins a waiting queue for the next match. - * - * @param queue Queue to join - */ - void join(WaitQueue queue); - - // stubbing - - /** - * Checks this player for given criteria and invokes either then or else statements. - * - * <p> - * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. - * </p> - * - * @param test - * test functions for testing the player matching any criteria. - * - * @return the outgoing stub to apply then or else consumers. - * - * @throws McException - * will be thrown if either the test function or then/else consumers throw the exception. - */ - McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException; - - /** - * Returns a test function to check if the user is online on the current server. - * - * @return predicate to return {@code true} if the arena player is online. - */ - static McPredicate<ArenaPlayerInterface> isOnline() - { - return (pl) -> pl.getBukkitPlayer() != null; - } - - /** - * Returns a test function to check if the user is inside any arena on the current server. - * - * @return predicate to return {@code true} if the player is inside any arena on the current server. - */ - static McPredicate<ArenaPlayerInterface> isInArena() - { - return (pl) -> pl.getArena() != null; - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 0fdc2866..9d987aa5 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -31,13 +31,15 @@ import de.minigameslib.mclib.api.locale.LocalizedConfigString; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; /** * Basic interface for arenas. * * @author mepeisen */ -public interface ArenaInterface +public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetType> { /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java index 82c7661a..fdcbf984 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java @@ -24,7 +24,12 @@ package de.minigameslib.mgapi.api.arena; +import java.util.Collection; + +import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; /** * An interface for arena types. @@ -52,4 +57,23 @@ public interface ArenaTypeProvider */ LocalizedMessageInterface getDescription(); + /** + * Returns the fixed arena rule set types. + * @return fixed arena rule sets. + */ + Collection<ArenaRuleSetType> getFixedArenaRules(); + + /** + * Returns optional arena rule sets + * @return optional arena rule sets. + */ + Collection<ArenaRuleSetType> getOptionalArenaRules(); + + /** + * Creates a configuration with defaults for given rule set + * @param ruleSet + * @throws McException thrown for problems. + */ + void configure(ArenaRuleSetInterface ruleSet) throws McException; + } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java new file mode 100644 index 00000000..8faa917f --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java @@ -0,0 +1,63 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; + +/** + * Basic class for classic arenas behaving similar to minigameslib version 1. + * + * @author mepeisen + */ +public abstract class ClassicSinglePlayerArena implements ArenaTypeProvider +{ + + @Override + public Collection<ArenaRuleSetType> getFixedArenaRules() + { + return Arrays.asList(BasicArenaRuleSets.BasicMatch); + } + + @Override + public Collection<ArenaRuleSetType> getOptionalArenaRules() + { + // TODO Auto-generated method stub + return Collections.emptyList(); + } + + @Override + public void configure(ArenaRuleSetInterface ruleSet) throws McException + { + // TODO Auto-generated method stub + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java new file mode 100644 index 00000000..90660921 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java @@ -0,0 +1,63 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.arena; + +import java.util.Collection; +import java.util.Collections; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; + +/** + * Basic class for classic arenas behaving similar to minigameslib version 1. + * + * @author mepeisen + */ +public abstract class ClassicTeamArena implements ArenaTypeProvider +{ + + @Override + public Collection<ArenaRuleSetType> getFixedArenaRules() + { + // TODO Auto-generated method stub + return Collections.emptyList(); + } + + @Override + public Collection<ArenaRuleSetType> getOptionalArenaRules() + { + // TODO Auto-generated method stub + return Collections.emptyList(); + } + + @Override + public void configure(ArenaRuleSetInterface ruleSet) throws McException + { + // TODO Auto-generated method stub + + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java new file mode 100644 index 00000000..bd8a2f3e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java @@ -0,0 +1,60 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentHandlerInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; + +/** + * A base interface for arena component handlers + * + * @author mepeisen + */ +public interface ArenaComponentHandler extends ComponentHandlerInterface, RuleSetContainerInterface<ComponentRuleSetType> +{ + + /** + * Returns a unique name of the component zone. + * @return unique name. + */ + String getName(); + + /** + * Sets the unique component name. + * @param newName new name + * @throws McException thrown if arena is not in maintenance mode or if name is already in use. + */ + void setName(String newName) throws McException; + + /** + * Returns the arena this component belongs to + * @return associated arena + */ + ArenaInterface getArena(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java new file mode 100644 index 00000000..7dce960b --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java @@ -0,0 +1,60 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.SignHandlerInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; + +/** + * A base interface for arena sign handlers + * + * @author mepeisen + */ +public interface ArenaSignHandler extends SignHandlerInterface, RuleSetContainerInterface<SignRuleSetType> +{ + + /** + * Returns a unique name of the component zone. + * @return unique name. + */ + String getName(); + + /** + * Sets the unique component name. + * @param newName new name + * @throws McException thrown if arena is not in maintenance mode or if name is already in use. + */ + void setName(String newName) throws McException; + + /** + * Returns the arena this sign belongs to + * @return associated arena + */ + ArenaInterface getArena(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java new file mode 100644 index 00000000..b6e9510e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java @@ -0,0 +1,60 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ZoneHandlerInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * A base interface for arena zone handlers + * + * @author mepeisen + */ +public interface ArenaZoneHandler extends ZoneHandlerInterface, RuleSetContainerInterface<ZoneRuleSetType> +{ + + /** + * Returns a unique name of the component zone. + * @return unique name. + */ + String getName(); + + /** + * Sets the unique component name. + * @param newName new name + * @throws McException thrown if arena is not in maintenance mode or if name is already in use. + */ + void setName(String newName) throws McException; + + /** + * Returns the arena this component belongs to + * @return associated arena + */ + ArenaInterface getArena(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java new file mode 100644 index 00000000..d7999ee0 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java @@ -0,0 +1,53 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.objects.ComponentTypeId; + +/** + * The arenas default component types. + * + * @author mepeisen + */ +public enum BasicComponentTypes implements ComponentTypeId +{ + + /** + * A generic spawn block. + * @See SpawnInterface + */ + Spawn, + + /** + * Some empty component that can be used with new rule sets for minigame developers. + */ + Empty, + + /** + * A special generic component used by administrators with individual rule sets. + */ + Generic, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java new file mode 100644 index 00000000..2a656e84 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java @@ -0,0 +1,66 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.config.ConfigComment; +import de.minigameslib.mclib.api.config.ConfigurationInt; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; + +/** + * Basic match configurations + * + * @author mepeisen + * + * @see BasicArenaRuleSets#BasicMatch + */ +// TODO external provider to read from rule set config +@ConfigurationValues(path = "core") +public enum BasicMatchConfig implements ConfigurationValueInterface +{ + + /** + * The minimum players to start a match + */ + @ConfigurationInt(defaultValue = 2) + @ConfigComment({"The minimum players to start a match"}) + MinPlayers, + + /** + * The maximum players inside an arena + */ + @ConfigurationInt(defaultValue = 10) + @ConfigComment({"The maximum players allowed per match"}) + MaxPlayers, + + /** + * The seconds for lobby count down before match starts + */ + @ConfigurationInt(defaultValue = 30) + @ConfigComment({"The seconds for lobby count down before match starts"}) + LobbyCountdown + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java new file mode 100644 index 00000000..af1007a3 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java @@ -0,0 +1,59 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.objects.SignTypeId; + +/** + * The arenas default sign types. + * + * @author mepeisen + */ +public enum BasicSignTypes implements SignTypeId +{ + + /** + * A join sign + * @see JoinSignInterface + */ + Join, + + /** + * A leave sign + * @see LeaveSignInterface + */ + Leave, + + /** + * Some empty sign that can be used with new rule sets for minigame developers. + */ + Empty, + + /** + * A special generic sign used by administrators with individual rule sets. + */ + Generic, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java new file mode 100644 index 00000000..25333837 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java @@ -0,0 +1,77 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.objects.ZoneTypeId; + +/** + * The minigames arena default zone types. + * + * @author mepeisen + */ +public enum BasicZoneTypes implements ZoneTypeId +{ + + /** + * Main zone for an arena. + */ + Main, + + /** + * Battle zone (where the action goes on). + */ + Battle, + + /** + * Join zone to automatically join an arena if possible. + */ + Join, + + /** + * Leave zone to automatically leave an arena. + */ + Leave, + + /** + * Lobby zone where players can wait for matches. + */ + Lobby, + + /** + * Zone allowed for spectators + */ + Spectator, + + /** + * Some empty zone that can be used with new rule sets for minigame developers. + */ + Empty, + + /** + * A special generic zone used by administrators with individual rule sets. + */ + Generic, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java new file mode 100644 index 00000000..d5b6dd0e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The battle arena zone. + * + * @author mepeisen + * + */ +public interface BattleZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java new file mode 100644 index 00000000..af2580c2 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The empty arena zone. + * + * @author mepeisen + * + */ +public interface EmptyComponentHandler extends ArenaComponentHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java new file mode 100644 index 00000000..6a7e8d8f --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The empty arena zone. + * + * @author mepeisen + * + */ +public interface EmptySignHandler extends ArenaSignHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java new file mode 100644 index 00000000..aa1b6291 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The empty arena zone. + * + * @author mepeisen + * + */ +public interface EmptyZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java new file mode 100644 index 00000000..d32d9939 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The generic arena zone. + * + * @author mepeisen + * + */ +public interface GenericComponentHandler extends ArenaComponentHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java new file mode 100644 index 00000000..107d09c3 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The generic arena zone. + * + * @author mepeisen + * + */ +public interface GenericSignHandler extends ArenaSignHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java new file mode 100644 index 00000000..4e6e7ce4 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The generic arena zone. + * + * @author mepeisen + * + */ +public interface GenericZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java similarity index 63% rename from v2/api/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java index c1bdf5c7..5d22fe00 100644 --- a/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonMessagesTest.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java @@ -1,39 +1,37 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import org.junit.Test; - -import com.github.mce.minigames.api.CommonMessages; - -/** - * test case for {@link CommonMessages} - * - * @author mepeisen - */ -public class CommonMessagesTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(CommonMessages.class); - } - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * A join sign. + * + * @author mepeisen + */ +public interface JoinSignInterface extends ArenaSignHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java new file mode 100644 index 00000000..70272064 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The join arena zone. + * + * @author mepeisen + * + */ +public interface JoinZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java new file mode 100644 index 00000000..9b13c204 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java @@ -0,0 +1,37 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * A leave sign. + * + * @author mepeisen + */ +public interface LeaveSignInterface extends ArenaSignHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java new file mode 100644 index 00000000..1605efe8 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The leave arena zone. + * + * @author mepeisen + * + */ +public interface LeaveZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java new file mode 100644 index 00000000..df24b853 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The lobby arena zone. + * + * @author mepeisen + * + */ +public interface LobbyZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java new file mode 100644 index 00000000..43036985 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The main arena zone. + * + * @author mepeisen + * + */ +public interface MainZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java new file mode 100644 index 00000000..c9b1164d --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java @@ -0,0 +1,64 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * A spawn component handler. + * + * @author mepeisen + */ +public interface SpawnComponentHandler extends ArenaComponentHandler +{ + + /** + * Returns the team using this spawn. + * @return team using this spawn. + */ + TeamIdType getTeam(); + + /** + * Sets the team that uses this spawn + * @param team + * @throws McException thrown if arena is not in maintenance mode or the data could not be saved. + */ + void setTeam(TeamIdType team) throws McException; + + /** + * Return an (optional) ordering for this spawn; used in arenas with fixed spawn positions. + * @return spawn ordering. + */ + int getOrdering(); + + /** + * sets an (optional) ordering for this spawn; used in arenas with fixed spawn positions. + * @param order + * @throws McException thrown if arena is not in maintenance mode or the data could not be saved. + */ + void setOrdering(int order) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java new file mode 100644 index 00000000..360aca11 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * The spectator arena zone. + * + * @author mepeisen + * + */ +public interface SpectatorZoneHandler extends ArenaZoneHandler +{ + + // marker only + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java new file mode 100644 index 00000000..88077dce --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java @@ -0,0 +1,49 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Interface for arena rule sets. + * + * @author mepeisen + */ +public interface ArenaRuleSetInterface +{ + + /** + * Returns the underlying arena. + * @return arena + */ + ArenaInterface getArena(); + + /** + * EReturns the underlying type + * @return rule set type + */ + ArenaRuleSetType getType(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java new file mode 100644 index 00000000..232cc058 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java @@ -0,0 +1,41 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * A rule set for arenas identified by enumeration values. + * + * @author mepeisen + */ +public interface ArenaRuleSetType extends RuleSetType +{ + + /** + * Returns the enumeration value name + * @return enumeration value name. + */ + String name(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java new file mode 100644 index 00000000..fbcf0050 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java @@ -0,0 +1,48 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.enums.ChildEnum; +import de.minigameslib.mgapi.api.obj.BasicMatchConfig; + +/** + * Basic arena rule sets + * + * @author mepeisen + */ +@ChildEnum({ + BasicMatchConfig.class +}) +public enum BasicArenaRuleSets implements ArenaRuleSetType +{ + + /** + * A basic match rule containing: + * - min player handling + * - max player handling + */ + BasicMatch, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java new file mode 100644 index 00000000..6ee0a6a3 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java @@ -0,0 +1,44 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Basic component rule sets + * + * @author mepeisen + */ +public enum BasicComponentRuleSets implements ComponentRuleSetType +{ + + + NoWorldMobs, + + NoWorldPets, + + NoEntry, + + LoseOnLeave, + +} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java similarity index 58% rename from v2/api/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java index e8ce3cd1..99b42676 100644 --- a/v2/api/src/main/java/com/github/mce/minigames/api/arena/MatchPhaseId.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java @@ -1,32 +1,44 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -/** - * An interface used in enumerations to identify the match phases. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * @author mepeisen - */ -public interface MatchPhaseId -{ - - // marker interface - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Basic component rule sets + * + * @author mepeisen + */ +public enum BasicSignRuleSets implements SignRuleSetType +{ + + + NoWorldMobs, + + NoWorldPets, + + NoEntry, + + LoseOnLeave, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java new file mode 100644 index 00000000..d093d127 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java @@ -0,0 +1,65 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Basic zone rule sets + * + * @author mepeisen + */ +public enum BasicZoneRuleSets implements ZoneRuleSetType +{ + + /** + * No free spawn of mobs; only forced spawns in maintenance mode or from minigames code + */ + NoWorldMobs, + + /** + * No free spawn of pets; only forced spawns in maintenance mode or from minigames code + */ + NoWorldPets, + + /** + * Players are not allowed to enter the zone from outside except they join the arena + */ + PlayerNoEntry, + + /** + * Leaving the zone causes to automatically lose the game + */ + LoseOnLeave, + + /** + * Leaving the zone causes to automatically die; can be used for games where players have multiple lives. + */ + DieOnLeave, + + /** + * Pvp-Rules + */ + PvPMode, + +} diff --git a/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java similarity index 63% rename from v2/api/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java index 8b15f96f..befe5dcd 100644 --- a/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonErrorsTest.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java @@ -1,39 +1,37 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import org.junit.Test; - -import com.github.mce.minigames.api.CommonErrors; - -/** - * test case for {@link CommonErrors} - * - * @author mepeisen - */ -public class CommonErrorsTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(CommonErrors.class); - } - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Interface for component rule sets. + * + * @author mepeisen + */ +public interface ComponentRuleSetInterface +{ + + // TODO + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java new file mode 100644 index 00000000..d0d44ab5 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java @@ -0,0 +1,41 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * A rule set for components identified by enumeration values. + * + * @author mepeisen + */ +public interface ComponentRuleSetType extends RuleSetType +{ + + /** + * Returns the enumeration value name + * @return enumeration value name. + */ + String name(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java new file mode 100644 index 00000000..4b33bd13 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java @@ -0,0 +1,49 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Configuration rule set annotation for enum values reresenting a rule set. + * + * @author mepeisen + */ +@Retention(RUNTIME) +@Target(FIELD) +public @interface RuleSetConfigurable +{ + + /** + * Returns the configuration values enum used by this rule set. + * @return configuration values class + */ + Class<? extends Enum<?>> config(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java new file mode 100644 index 00000000..13091a3c --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java @@ -0,0 +1,88 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import java.util.Collection; + +import de.minigameslib.mclib.api.McException; + +/** + * Basic interface helper for classes owning rule sets. + * + * @author mepeisen + * @param <T> type of rule sets + */ +public interface RuleSetContainerInterface<T extends RuleSetType> +{ + + /** + * Returns the rule sets applied to this element. + * The resulting collection contains fixed rule sets (not removable becuase the minigame code relies on it) or + * optional rule sets. + * @return applied rule sets + */ + Collection<T> getAppliedRuleSets(); + + /** + * Returns the rule sets available to this element. + * @return available rule sets + */ + Collection<T> getAvailableRuleSets(); + + /** + * Checks if given rule set is fixed and thus cannot be removed + * @param ruleset + * @return true if given ruleset is fixed. + */ + boolean isFixed(T ruleset); + + /** + * Checks if given rule set is available + * @param ruleset + * @return true if given ruleset is not yet applied and if it is allowed to apply it to this element. + */ + boolean isAvailable(T ruleset); + + /** + * Adds rule sets to this element. The rule set can be removed later on. + * @param rulesets new rule sets + * @throws McException thrown if one of the rule sets already is applied, + * if the rule sets are illegal (not in available list), + * if the arena is not in maintainence mode + * or if the configuration cannot be saved. + */ + void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; + + /** + * Removes rule sets from this element. + * @param rulesets existing rule sets + * @throws McException thrown if one of the rule sets is not applied, + * if the rule sets must not be removed (fixed rule set), + * if the arena is not in maintainence mode + * or if the configuration cannot be saved. + */ + void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; + +} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/team/TeamId.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java similarity index 65% rename from v2/api/src/main/java/com/github/mce/minigames/api/team/TeamId.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java index 77b0d301..378dd648 100644 --- a/v2/api/src/main/java/com/github/mce/minigames/api/team/TeamId.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java @@ -1,35 +1,37 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.team; - -/** - * - * An interface used in enumerations to identify the team. - * - * <p> - * Inherit this interface in your enumeration classes. - * </p> - * - * - * @author mepeisen - * - */ -public interface TeamId -{ - - // marker only - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Base interface for rule sets + * + * @author mepeisen + */ +public interface RuleSetType +{ + + // marker only + +} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java similarity index 65% rename from v2/api/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java index 6e45a631..077ff11b 100644 --- a/v2/api/src/main/java/com/github/mce/minigames/api/team/TeamRuleSet.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java @@ -1,28 +1,37 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.team; - -/** - * Base interface for team rule sets. - * - * @author mepeisen - */ -public interface TeamRuleSet -{ - - // TODO - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Interface for sign rule sets. + * + * @author mepeisen + */ +public interface SignRuleSetInterface +{ + + // TODO + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java new file mode 100644 index 00000000..73e16079 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java @@ -0,0 +1,41 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * A rule set for signs identified by enumeration values. + * + * @author mepeisen + */ +public interface SignRuleSetType extends RuleSetType +{ + + /** + * Returns the enumeration value name + * @return enumeration value name. + */ + String name(); + +} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java similarity index 64% rename from v2/api/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java index 9d014622..cc949848 100644 --- a/v2/api/src/main/java/com/github/mce/minigames/api/arena/WaitQueue.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java @@ -1,28 +1,37 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -/** - * A waiting queue for one or multiple arenas. - * - * @author mepeisen - */ -public interface WaitQueue -{ - - // TODO - -} +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Interface for zone rule sets. + * + * @author mepeisen + */ +public interface ZoneRuleSetInterface +{ + + // TODO + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java new file mode 100644 index 00000000..4a3d7f71 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java @@ -0,0 +1,41 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * A rule set for zones identified by enumeration values. + * + * @author mepeisen + */ +public interface ZoneRuleSetType extends RuleSetType +{ + + /** + * Returns the enumeration value name + * @return enumeration value name. + */ + String name(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java new file mode 100644 index 00000000..f6ef926f --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java @@ -0,0 +1,161 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.team; + +import org.bukkit.Color; + +/** + * Common team enumeration + * + * @author mepeisen + */ +public enum CommonTeams implements TeamIdType +{ + + /** + * this is an unknown team. This is used for games the players do not belong to any team. + */ + Unknown, + + /** + * Special team for spectators. + */ + Spectators, + + /** + * A team with players losing the current match. + */ + Losers, + + /** + * A team with playrs winning the current match. + */ + Winners, + + // common colored teams + + /** + * White + * @see Color#WHITE + */ + White, + + /** + * White + * @see Color#SILVER + */ + Silver, + + /** + * White + * @see Color#GRAY + */ + Gray, + + /** + * White + * @see Color#BLACK + */ + Black, + + /** + * White + * @see Color#RED + */ + Red, + + /** + * White + * @see Color#MAROON + */ + Maroon, + + /** + * White + * @see Color#YELLOW + */ + Yellow, + + /** + * White + * @see Color#OLIVE + */ + Olive, + + /** + * White + * @see Color#LIME + */ + Lime, + + /** + * White + * @see Color#GREEN + */ + Green, + + /** + * White + * @see Color#AQUA + */ + Aqua, + + /** + * White + * @see Color#TEAL + */ + Teal, + + /** + * White + * @see Color#BLUE + */ + Blue, + + /** + * White + * @see Color#NAVY + */ + Navy, + + /** + * White + * @see Color#FUCHSIA + */ + Fuchsia, + + /** + * White + * @see Color#PURPLE + */ + Purple, + + /** + * White + * @see Color#ORANGE + */ + Orange, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java new file mode 100644 index 00000000..11fdc81e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java @@ -0,0 +1,41 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.team; + +/** + * Use this interface on ernumerations to declare team types. + * + * @author mepeisen + */ +public interface TeamIdType +{ + + /** + * Returns the internal team name. + * @return internal team name. + */ + String name(); + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 58c451ab..36f6b74a 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -59,7 +59,14 @@ import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.obj.BasicSignTypes; +import de.minigameslib.mgapi.api.obj.BasicZoneTypes; +import de.minigameslib.mgapi.api.obj.BasicComponentTypes; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; +import de.minigameslib.mgapi.api.rules.BasicComponentRuleSets; +import de.minigameslib.mgapi.api.rules.BasicSignRuleSets; +import de.minigameslib.mgapi.api.rules.BasicZoneRuleSets; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; @@ -124,6 +131,14 @@ public void onEnable() EnumServiceInterface.instance().registerEnumClass(this, MglibMessages.class); EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicArenaRuleSets.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicComponentRuleSets.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicComponentTypes.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicSignRuleSets.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicSignTypes.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicZoneRuleSets.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicZoneTypes.class); + Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); Bukkit.getServicesManager().register(TaskManager.class, new TaskManager(), this, ServicePriority.Highest); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 8126f342..048244a5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -58,6 +58,7 @@ import de.minigameslib.mgapi.api.arena.CheckFailure; import de.minigameslib.mgapi.api.arena.CheckSeverity; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.tasks.ArenaRestartTask; import de.minigameslib.mgapi.impl.tasks.ArenaStartTask; @@ -501,6 +502,66 @@ public MinigameInterface getMinigame() { return this.type.getMinigame(); } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#getAppliedRuleSets() + */ + @Override + public Collection<ArenaRuleSetType> getAppliedRuleSets() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#getAvailableRuleSets() + */ + @Override + public Collection<ArenaRuleSetType> getAvailableRuleSets() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#isFixed(de.minigameslib.mgapi.api.rules.RuleSetType) + */ + @Override + public boolean isFixed(ArenaRuleSetType ruleset) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#isAvailable(de.minigameslib.mgapi.api.rules.RuleSetType) + */ + @Override + public boolean isAvailable(ArenaRuleSetType ruleset) + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#applyRuleSets(de.minigameslib.mgapi.api.rules.RuleSetType[]) + */ + @Override + public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#removeRuleSets(de.minigameslib.mgapi.api.rules.RuleSetType[]) + */ + @Override + public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException + { + // TODO Auto-generated method stub + + } /** * The arena messages. diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java index fc77aeb9..abab0a08 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java @@ -53,6 +53,7 @@ public boolean visible(CommandInterface command) public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandAdminSGui, command.getCommandPath()); + command.checkOnline(); // TODO Support gui } From 337d693083e22f321ee24a20c6d4b1722ee96af5 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 27 Jan 2017 04:46:18 +0100 Subject: [PATCH 177/266] v2 --- .../mgapi/api/MinigamesLibInterface.java | 12 + .../mgapi/api/arena/ArenaInterface.java | 22 ++ .../mgapi/api/arena/ArenaTypeInterface.java | 21 +- .../mgapi/api/events/ArenaCreateEvent.java | 134 ++++++++ .../mgapi/api/events/ArenaCreatedEvent.java | 121 ++++++++ .../api/events/ArenaPlayerJoinEvent.java | 134 ++++++++ .../ArenaPlayerJoinSpectatorsEvent.java | 134 ++++++++ .../api/events/ArenaPlayerJoinedEvent.java | 134 ++++++++ .../ArenaPlayerJoinedSpectatorsEvent.java | 134 ++++++++ .../api/events/ArenaPlayerLeftEvent.java | 134 ++++++++ .../ArenaPlayerLeftSpectatorsEvent.java | 134 ++++++++ .../api/rules/ArenaRuleSetInterface.java | 8 +- .../mgapi/api/rules/ArenaRuleSetType.java | 6 +- .../api/rules/ComponentRuleSetInterface.java | 2 +- .../mgapi/api/rules/RuleSetInterface.java | 44 +++ .../mgapi/api/rules/RuleSetType.java | 4 +- .../mgapi/api/rules/SignRuleSetInterface.java | 2 +- .../mgapi/api/rules/ZoneRuleSetInterface.java | 2 +- .../mgapi/impl/MglibMessages.java | 12 +- .../mgapi/impl/MinigamesPlugin.java | 41 ++- .../mgapi/impl/arena/ArenaData.java | 23 +- .../mgapi/impl/arena/ArenaImpl.java | 89 ++++-- .../mgapi/impl/rules/BasicMatch.java | 290 ++++++++++++++++++ .../mgapi/impl/tasks/ArenaStartTask.java | 13 +- 24 files changed, 1559 insertions(+), 91 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 9d20fef6..47317a41 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -30,9 +30,12 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McBiFunction; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; /** * Base interface to access the minigames API. @@ -98,6 +101,15 @@ static MinigamesLibInterface instance() */ void initMinigame(Plugin plugin, MinigameProvider provider) throws McException; + /** + * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create + * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. + * @param plugin + * @param ruleset + * @param creator + */ + void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator); + /** * Returns the number of registered minigames. * diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 9d987aa5..4764dcb7 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -183,4 +183,26 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy */ void setTestState() throws McException; + /** + * Returns the players being in the arena (excluding spectators) + * @return player count + */ + int getPlayerCount(); + + /** + * Returns the spectators being in the arena + * @return spectators count + */ + int getSpectatorCount(); + + /** + * @return + */ + Collection<ArenaPlayerInterface> getPlayers(); + + /** + * @return + */ + Collection<ArenaPlayerInterface> getSpectators(); + } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java index 39e88a87..8a57bea9 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java @@ -24,9 +24,7 @@ package de.minigameslib.mgapi.api.arena; -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigamesLibInterface; @@ -35,15 +33,9 @@ * * @author mepeisen */ -public interface ArenaTypeInterface +public interface ArenaTypeInterface extends McUniqueEnumInterface { - /** - * Returns the name of the enum - * @return enum name - */ - String name(); - /** * Returns the arena type provider for this type. * @return arena type provider class @@ -61,15 +53,6 @@ default Class<? extends ArenaTypeProvider> getProvider() } } - /** - * Returns the plugin owning this type. - * @return plugin. - */ - default Plugin getPlugin() - { - return EnumServiceInterface.instance().getPlugin((Enum<?>) this); - } - /** * Returns the minigame owning this type. * @return minigame. diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java new file mode 100644 index 00000000..3f466126 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; + +/** + * Event fired before an arena is created. + * + * @author mepeisen + */ +public class ArenaCreateEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaCreateEvent, ArenaCreateEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena name. */ + private final String arenaName; + + /** the arena type. */ + private final ArenaTypeInterface type; + + /** + * @param arenaName + * @param type + */ + public ArenaCreateEvent(String arenaName, ArenaTypeInterface type) + { + this.arenaName = arenaName; + this.type = type; + } + + /** + * @return the arenaName + */ + public String getArenaName() + { + return this.arenaName; + } + + /** + * @return the type + */ + public ArenaTypeInterface getType() + { + return this.type; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaCreateEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + // no player support + return null; + } + + @Override + public McOutgoingStubbing<ArenaCreateEvent> when(McPredicate<ArenaCreateEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java new file mode 100644 index 00000000..a8114ba7 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java @@ -0,0 +1,121 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Event fired after an arena is created. + * + * @author mepeisen + */ +public class ArenaCreatedEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaCreatedEvent, ArenaCreatedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** + * @param arena + */ + public ArenaCreatedEvent(ArenaInterface arena) + { + this.arena = arena; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaCreatedEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + // no player support + return null; + } + + @Override + public McOutgoingStubbing<ArenaCreatedEvent> when(McPredicate<ArenaCreatedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java new file mode 100644 index 00000000..5027ab70 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired before an arena player joined. + * + * @author mepeisen + */ +public class ArenaPlayerJoinEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinEvent, ArenaPlayerJoinEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerJoinEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerJoinEvent> when(McPredicate<ArenaPlayerJoinEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java new file mode 100644 index 00000000..fb943a08 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired before an arena player joined spectators team. + * + * @author mepeisen + */ +public class ArenaPlayerJoinSpectatorsEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinSpectatorsEvent, ArenaPlayerJoinSpectatorsEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerJoinSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerJoinSpectatorsEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerJoinSpectatorsEvent> when(McPredicate<ArenaPlayerJoinSpectatorsEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java new file mode 100644 index 00000000..ae20998b --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired after a player joined an arena. + * + * @author mepeisen + */ +public class ArenaPlayerJoinedEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinedEvent, ArenaPlayerJoinedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerJoinedEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerJoinedEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerJoinedEvent> when(McPredicate<ArenaPlayerJoinedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java new file mode 100644 index 00000000..0adffae6 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired after a player joines spectators. + * + * @author mepeisen + */ +public class ArenaPlayerJoinedSpectatorsEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinedSpectatorsEvent, ArenaPlayerJoinedSpectatorsEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerJoinedSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerJoinedSpectatorsEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerJoinedSpectatorsEvent> when(McPredicate<ArenaPlayerJoinedSpectatorsEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java new file mode 100644 index 00000000..42dbee33 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired after a player left an arena. + * + * @author mepeisen + */ +public class ArenaPlayerLeftEvent extends Event implements MinecraftEvent<ArenaPlayerLeftEvent, ArenaPlayerLeftEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerLeftEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerLeftEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerLeftEvent> when(McPredicate<ArenaPlayerLeftEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java new file mode 100644 index 00000000..f15af240 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java @@ -0,0 +1,134 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired after a player left an arena spectators team. + * + * @author mepeisen + */ +public class ArenaPlayerLeftSpectatorsEvent extends Event implements MinecraftEvent<ArenaPlayerLeftSpectatorsEvent, ArenaPlayerLeftSpectatorsEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerLeftSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerLeftSpectatorsEvent getBukkitEvent() + { + return this; + } + + @Override + public ZoneInterface getZone() + { + // no zone support + return null; + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerLeftSpectatorsEvent> when(McPredicate<ArenaPlayerLeftSpectatorsEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java index 88077dce..abc9ea9f 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java @@ -31,7 +31,7 @@ * * @author mepeisen */ -public interface ArenaRuleSetInterface +public interface ArenaRuleSetInterface extends RuleSetInterface<ArenaRuleSetType> { /** @@ -40,10 +40,4 @@ public interface ArenaRuleSetInterface */ ArenaInterface getArena(); - /** - * EReturns the underlying type - * @return rule set type - */ - ArenaRuleSetType getType(); - } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java index 232cc058..4dd782b1 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java @@ -32,10 +32,6 @@ public interface ArenaRuleSetType extends RuleSetType { - /** - * Returns the enumeration value name - * @return enumeration value name. - */ - String name(); + // marker only } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java index befe5dcd..55707526 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java @@ -29,7 +29,7 @@ * * @author mepeisen */ -public interface ComponentRuleSetInterface +public interface ComponentRuleSetInterface extends RuleSetInterface<ComponentRuleSetType> { // TODO diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java new file mode 100644 index 00000000..9d771b96 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java @@ -0,0 +1,44 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.event.McListener; + +/** + * A common base interface for rule sets + * + * @author mepeisen + * @param <T> the rule set class. + */ +public interface RuleSetInterface<T extends RuleSetType> extends McListener +{ + + /** + * Returns the rule set. + * @return associated ruleset + */ + T getType(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java index 378dd648..08d83bfc 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java @@ -24,12 +24,14 @@ package de.minigameslib.mgapi.api.rules; +import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; + /** * Base interface for rule sets * * @author mepeisen */ -public interface RuleSetType +public interface RuleSetType extends McUniqueEnumInterface { // marker only diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java index 077ff11b..d69df628 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java @@ -29,7 +29,7 @@ * * @author mepeisen */ -public interface SignRuleSetInterface +public interface SignRuleSetInterface extends RuleSetInterface<SignRuleSetType> { // TODO diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java index cc949848..a9d81f76 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java @@ -29,7 +29,7 @@ * * @author mepeisen */ -public interface ZoneRuleSetInterface +public interface ZoneRuleSetInterface extends RuleSetInterface<ZoneRuleSetType> { // TODO diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 342e2e22..bbcda1f3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -58,6 +58,7 @@ import de.minigameslib.mgapi.impl.cmd.ManualCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.cmd.SpectateCommand; +import de.minigameslib.mgapi.impl.rules.BasicMatch; /** * The common messages. @@ -96,6 +97,8 @@ AdminInviteCommand.Messages.class, AdminGuiCommand.Messages.class, AdminSGuiCommand.Messages.class, + // rules + BasicMatch.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { @@ -207,15 +210,6 @@ public enum MglibCoreErrors implements LocalizedMessageInterface args = {@Argument("Arena name")}) InvalidArenaName, - /** - * Arena data filename does not correspond to internal name. - */ - @LocalizedMessage(defaultMessage = "Arena data filename (" + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + ") does not correspond to internal name. Did you copy yml files?", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Arena data filename does not correspond to internal name."}, - args = {@Argument("Arena name")}) - ArenaNameMismatch, - /** * Arena is duplicate */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 36f6b74a..5d103cbd 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -51,6 +51,8 @@ import de.minigameslib.mclib.api.cmd.CommandImpl; import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McBiFunction; +import de.minigameslib.mclib.api.util.function.McFunction; import de.minigameslib.mgapi.api.ExtensionInterface; import de.minigameslib.mgapi.api.ExtensionProvider; import de.minigameslib.mgapi.api.LibState; @@ -59,14 +61,20 @@ import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.events.ArenaCreateEvent; +import de.minigameslib.mgapi.api.events.ArenaCreatedEvent; import de.minigameslib.mgapi.api.obj.BasicSignTypes; import de.minigameslib.mgapi.api.obj.BasicZoneTypes; import de.minigameslib.mgapi.api.obj.BasicComponentTypes; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; import de.minigameslib.mgapi.api.rules.BasicComponentRuleSets; import de.minigameslib.mgapi.api.rules.BasicSignRuleSets; import de.minigameslib.mgapi.api.rules.BasicZoneRuleSets; +import de.minigameslib.mgapi.api.rules.RuleSetInterface; +import de.minigameslib.mgapi.api.rules.RuleSetType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; @@ -118,10 +126,14 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** arena name check pattern */ private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ + + /** plugin instance. */ + private static MinigamesPlugin INSTANCE; @Override public void onEnable() { + INSTANCE = this; if (McLibInterface.instance().getApiVersion() != McLibInterface.APIVERSION_1_0_0) { throw new IllegalStateException("Cannot enable minigameslib. You installed an incompatible McLib-Version. " + McLibInterface.instance().getApiVersion()); //$NON-NLS-1$ @@ -150,10 +162,6 @@ public void onEnable() this.checkArenaName(arena); this.getLogger().log(Level.INFO, "Found arena " + arena); //$NON-NLS-1$ final ArenaImpl arenaImpl = new ArenaImpl(new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ - if (!arenaImpl.getInternalName().equals(arena)) - { - throw new McException(MglibCoreErrors.ArenaNameMismatch, arena); - } this.arenasPerName.put(arena, arenaImpl); } catch (McException ex) @@ -166,6 +174,15 @@ public void onEnable() new InitTask().runTaskLater(this, 10); } + /** + * Returns the minigame plugin instance + * @return singleton instance + */ + public static MinigamesPlugin instance() + { + return INSTANCE; + } + /** * Checks for valid arena name * @param arena @@ -458,6 +475,12 @@ public ArenaInterface create(String name, ArenaTypeInterface type) throws McExce throw new McException(MglibCoreErrors.ArenaDuplicate, name); } + final ArenaCreateEvent createEvent = new ArenaCreateEvent(name, type); + Bukkit.getPluginManager().callEvent(createEvent); + if (createEvent.isCancelled()) + { + throw new McException(createEvent.getVetoReason(), createEvent.getVetoReasonArgs()); + } final ArenaImpl arena = new ArenaImpl(name, type, new File(this.getDataFolder(), "arenas/" + name + ".yml")); //$NON-NLS-1$ //$NON-NLS-2$ arena.saveData(); @@ -468,6 +491,9 @@ public ArenaInterface create(String name, ArenaTypeInterface type) throws McExce // everything ok, now we can add the arena to our internal map. this.arenasPerName.put(name, arena); + + final ArenaCreatedEvent createdEvent = new ArenaCreatedEvent(arena); + Bukkit.getPluginManager().callEvent(createdEvent); return arena; } @@ -488,5 +514,12 @@ public ArenaPlayerInterface getPlayer(McPlayerInterface player) } return impl; } + + @Override + public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) + { + // TODO Auto-generated method stub + + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java index 5e4260be..5b237fe0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java @@ -28,6 +28,7 @@ import de.minigameslib.mclib.api.locale.LocalizedConfigString; import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; import de.minigameslib.mclib.shared.api.com.PersistentField; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; /** * @author mepeisen @@ -65,17 +66,11 @@ public class ArenaData extends AnnotatedDataFragment @PersistentField private LocalizedConfigLine manual = new LocalizedConfigLine(); - /** - * plugin name - */ - @PersistentField - private String pluginName; - /** * arena type */ @PersistentField - private String arenaType; + private ArenaTypeInterface arenaType; /** * flag to control if arena is enabled. @@ -97,13 +92,11 @@ public class ArenaData extends AnnotatedDataFragment /** * @param name - * @param pluginName * @param arenaType */ - public ArenaData(String name, String pluginName, String arenaType) + public ArenaData(String name, ArenaTypeInterface arenaType) { this.name = name; - this.pluginName = pluginName; this.arenaType = arenaType; } @@ -179,18 +172,10 @@ public String getName() return this.name; } - /** - * @return the pluginName - */ - public String getPluginName() - { - return this.pluginName; - } - /** * @return the arenaType */ - public String getArenaType() + public ArenaTypeInterface getArenaType() { return this.arenaType; } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 048244a5..6aca6c42 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -31,13 +31,13 @@ import java.util.HashSet; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; import org.bukkit.plugin.Plugin; import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedConfigLine; import de.minigameslib.mclib.api.locale.LocalizedConfigString; import de.minigameslib.mclib.api.locale.LocalizedMessage; @@ -85,7 +85,7 @@ public class ArenaImpl implements ArenaInterface private ArenaTypeInterface type; /** current arena state. */ - private ArenaState state; + private ArenaState state = ArenaState.Disabled; /** the players within this arena. */ private final Set<UUID> players = new HashSet<>(); @@ -96,14 +96,37 @@ public class ArenaImpl implements ArenaInterface /** * Constructor to create an arena by using given data file. * @param dataFile + */ + public ArenaImpl(File dataFile) + { + this.dataFile = dataFile; + } + + /** + * Constructor to create a new arena. + * @param name + * @param type + * @param dataFile * @throws McException thrown if data file is invalid. */ - public ArenaImpl(File dataFile) throws McException + public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McException { this.dataFile = dataFile; + this.arenaData = new ArenaData(name, type); + this.arenaData.setMaintenance(true); + this.state = ArenaState.Maintenance; + this.saveData(); + } + + /** + * Resume the arena and load arena data file. + * @throws McException thrown if data file is invalid. + */ + public void resume() throws McException + { try { - final DataSection section = McLibInterface.instance().readYmlFile(dataFile); + final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); this.arenaData = section.getFragment(ArenaData.class, "data"); //$NON-NLS-1$ } catch (IOException e) @@ -125,20 +148,6 @@ else if (this.arenaData.isMaintenance()) } } - /** - * Constructor to create a new arena. - * @param name - * @param type - * @param dataFile - * @throws McException thrown if data file is invalid. - */ - public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McException - { - this.dataFile = dataFile; - this.arenaData = new ArenaData(name, EnumServiceInterface.instance().getPlugin((Enum<?>) type).getName(), type.name()); - this.saveData(); - } - /** * Checks if a match is pending; a flag to recover after server crashes. * @return {@code true} if a match is pending @@ -299,6 +308,10 @@ public void setEnabledState() throws McException { throw new McException(Messages.EnableWrongState); } + if (this.arenaData.getArenaType() == null) + { + throw new McException(Messages.InvalidArenaType); + } this.arenaData.setEnabled(true); this.saveData(); @@ -388,6 +401,11 @@ public void setMaintenance(boolean force) throws McException case Maintenance: throw new McException(Messages.MaintenanceWrongState); case Disabled: + if (this.arenaData.getArenaType() == null) + { + throw new McException(Messages.InvalidArenaType); + } + //$FALL-THROUGH$ case Starting: this.arenaData.setMaintenance(true); this.arenaData.setEnabled(true); @@ -562,6 +580,34 @@ public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException // TODO Auto-generated method stub } + + @Override + public int getPlayerCount() + { + return this.players.size(); + } + + @Override + public int getSpectatorCount() + { + return this.spectators.size(); + } + + @Override + public Collection<ArenaPlayerInterface> getPlayers() + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + return this.players.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + } + + @Override + public Collection<ArenaPlayerInterface> getSpectators() + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + return this.spectators.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + } /** * The arena messages. @@ -572,6 +618,13 @@ public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException public enum Messages implements LocalizedMessageInterface { + /** + * Invalid arena type detected + */ + @LocalizedMessage(defaultMessage = "Invalid arena type detected. Did you uninstall/deactivate the minigame plugin?", severity = MessageSeverityType.Error) + @MessageComment({"Invalid arena type detected"}) + InvalidArenaType, + /** * Cannot join because of wrong state */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java new file mode 100644 index 00000000..ac168d69 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -0,0 +1,290 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import org.bukkit.event.EventHandler; +import org.bukkit.scheduler.BukkitTask; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.obj.BasicMatchConfig; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * The implementation of BasicMatch rule set + * + * @see BasicArenaRuleSets#BasicMatch + * + * @author mepeisen + */ +public class BasicMatch implements ArenaRuleSetInterface +{ + + /** + * the underlying arena. + */ + private final ArenaInterface arena; + + /** + * rule set type. + */ + private final ArenaRuleSetType type; + + /** + * Min players + */ + private final int minPlayers; + + /** + * Max players + */ + private final int maxPlayers; + + /** + * Lobby countdown in seconds + */ + private final int lobbyCountdown; + + /** + * The countdown timer + */ + private int countdownTimer; + + /** + * The countdown task + */ + private BukkitTask countdownTask; + + /** + * @param type + * @param arena + * @throws McException thrown if config is invalid + */ + public BasicMatch(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + this.type = type; + this.arena = arena; + this.minPlayers = BasicMatchConfig.MinPlayers.getInt(); + this.maxPlayers = BasicMatchConfig.MaxPlayers.getInt(); + this.lobbyCountdown = BasicMatchConfig.LobbyCountdown.getInt(); + if (this.minPlayers <= 0) + { + throw new McException(Messages.InvalidConfigMinPlayers, this.minPlayers); + } + if (this.maxPlayers > 100) + { + throw new McException(Messages.InvalidConfigMaxPlayers, this.maxPlayers); + } + if (this.minPlayers > this.maxPlayers) + { + throw new McException(Messages.InvalidConfigMinMaxPlayers, this.minPlayers, this.maxPlayers); + } + if (this.lobbyCountdown <= 1) + { + throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); + } + if (this.lobbyCountdown > 60) + { + throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); + } + } + + @Override + public ArenaRuleSetType getType() + { + return this.type; + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Invoked once a player tries to join. + * @param evt + */ + @McEventHandler + public void onPlayerJoin(ArenaPlayerJoinEvent evt) + { + // check max players + if (this.arena.getPlayerCount() >= this.maxPlayers) + { + evt.setCancelled(Messages.MaxPlayersReached, this.maxPlayers); + } + } + + /** + * Invoked once a player successfully joined the arena + * @param evt + */ + @EventHandler + public void onPlayerJoined(ArenaPlayerJoinedEvent evt) + { + // check min players + if (this.arena.getPlayerCount() == this.minPlayers) + { + // start lobby countdown + this.countdownTimer = this.lobbyCountdown - 1; + McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance(), 20, 20, this::onCountdown); + + // notify all players + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); + } + } + + /** + * Invoked once a player left. + * @param evt + */ + @McEventHandler + public void onPlayerLeft(ArenaPlayerLeftEvent evt) + { + // check min players + if (this.arena.getPlayerCount() < this.minPlayers && this.countdownTask != null) + { + this.countdownTask.cancel(); + this.countdownTask = null; + + // notify all players + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownAborted)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownAborted)); + } + } + + /** + * On lobby countdown + * @param task + */ + private void onCountdown(BukkitTask task) + { + if (this.countdownTimer <= 0) + { + try + { + this.arena.start(); + } + catch (McException e) + { + // should never happen because the countdown gets cancelled before all players are left. + // TODO Logging + } + this.countdownTask.cancel(); + this.countdownTask = null; + } + + if (this.countdownTimer <= 10 || this.countdownTimer % 10 == 0) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownTick, this.countdownTimer)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownTick, this.countdownTimer)); + } + + this.countdownTimer--; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.rules.BasicMatch") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Max player count reached + */ + @LocalizedMessage(defaultMessage = "You cannot join because there are already %1$d players in arena.", severity = MessageSeverityType.Error) + @MessageComment(value = {"Max player count reached"}, args = {@Argument(type = "Numeric", value = "configured max players.")}) + MaxPlayersReached, + + /** + * Countdown started + */ + @LocalizedMessage(defaultMessage = "Countdown started. Match will start in " + LocalizedMessage.BLUE + "%1$d " + LocalizedMessage.GRAY + "seconds.", severity = MessageSeverityType.Information) + @MessageComment(value = {"Lobby countdown started"}, args = {@Argument(type = "Numeric", value = "countdown seconds")}) + CountdownStarted, + + /** + * Countdown tick + */ + @LocalizedMessage(defaultMessage = "Match will start in " + LocalizedMessage.BLUE + "%1$d " + LocalizedMessage.GRAY + "seconds.", severity = MessageSeverityType.Information) + @MessageComment(value = {"countdown tick"}, args = {@Argument(type = "Numeric", value = "countdown seconds")}) + CountdownTick, + + /** + * Countdown aborted + */ + @LocalizedMessage(defaultMessage = "Countdown aborted because too many players left the arena.", severity = MessageSeverityType.Error) + @MessageComment(value = {"countdown aborted"}) + CountdownAborted, + + /** + * Invalid config value (min players) + */ + @LocalizedMessage(defaultMessage = "Invalid config value (min players): " + LocalizedMessage.BLUE + "%1$d", severity = MessageSeverityType.Information) + @MessageComment(value = {"Invalid config value (min players)"}, args = {@Argument(type = "Numeric", value = "min players config value")}) + InvalidConfigMinPlayers, + + /** + * Invalid config value (min players > max players) + */ + @LocalizedMessage(defaultMessage = "Invalid config value (min players > max players): " + LocalizedMessage.BLUE + "%1$d > %2$d", severity = MessageSeverityType.Information) + @MessageComment(value = {"Invalid config value (min players > max players)"}, args = {@Argument(type = "Numeric", value = "min players config value"), @Argument(type = "Numeric", value = "max players config value")}) + InvalidConfigMinMaxPlayers, + + /** + * Invalid config value (max players) + */ + @LocalizedMessage(defaultMessage = "Invalid config value (max players): " + LocalizedMessage.BLUE + "%1$d", severity = MessageSeverityType.Information) + @MessageComment(value = {"Invalid config value (max players)"}, args = {@Argument(type = "Numeric", value = "max players config value")}) + InvalidConfigMaxPlayers, + + /** + * Invalid config value (lobby countdown) + */ + @LocalizedMessage(defaultMessage = "Invalid config value (lobby countdown): " + LocalizedMessage.BLUE + "%1$d", severity = MessageSeverityType.Information) + @MessageComment(value = {"Invalid config value (lobby countdown)"}, args = {@Argument(type = "Numeric", value = "lobby countdown config value")}) + InvalidConfigLobbyCountdown + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java index b1720695..4a3a8555 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java @@ -36,22 +36,23 @@ public class ArenaStartTask implements McRunnable { + /** arena implementation. */ + private ArenaImpl arena; + /** + * Constructor * @param arenaImpl */ public ArenaStartTask(ArenaImpl arenaImpl) { - // TODO Auto-generated constructor stub + this.arena = arenaImpl; } - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.util.function.McRunnable#run() - */ @Override public void run() throws McException { - // TODO Auto-generated method stub - + this.arena.resume(); + // TODO check arena } } From 3b6aedaddab3a98995f984316b7be74bc3ae2fa1 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 27 Jan 2017 07:55:13 +0100 Subject: [PATCH 178/266] javadoc --- .../mgapi/api/obj/BasicComponentTypes.java | 4 +++- .../de/minigameslib/mgapi/api/obj/BasicSignTypes.java | 2 ++ .../de/minigameslib/mgapi/api/obj/BasicZoneTypes.java | 10 +++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java index d7999ee0..f8b8e952 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java @@ -36,17 +36,19 @@ public enum BasicComponentTypes implements ComponentTypeId /** * A generic spawn block. - * @See SpawnInterface + * @see SpawnComponentHandler */ Spawn, /** * Some empty component that can be used with new rule sets for minigame developers. + * @see EmptyComponentHandler */ Empty, /** * A special generic component used by administrators with individual rule sets. + * @see GenericComponentHandler */ Generic, diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java index af1007a3..0559daac 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java @@ -48,11 +48,13 @@ public enum BasicSignTypes implements SignTypeId /** * Some empty sign that can be used with new rule sets for minigame developers. + * @see EmptySignHandler */ Empty, /** * A special generic sign used by administrators with individual rule sets. + * @see GenericSignHandler */ Generic, diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java index 25333837..c918c501 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java @@ -36,41 +36,49 @@ public enum BasicZoneTypes implements ZoneTypeId /** * Main zone for an arena. + * @see MainZoneHandler */ Main, /** * Battle zone (where the action goes on). + * @see BattleZoneHandler */ Battle, /** - * Join zone to automatically join an arena if possible. + * Join zone to automatically join an arena if possible. + * @see JoinZoneHandler */ Join, /** * Leave zone to automatically leave an arena. + * @see LeaveZoneHandler */ Leave, /** * Lobby zone where players can wait for matches. + * @see LobbyZoneHandler */ Lobby, /** * Zone allowed for spectators + * @see SpectatorZoneHandler */ Spectator, /** * Some empty zone that can be used with new rule sets for minigame developers. + * @see EmptyZoneHandler */ Empty, /** * A special generic zone used by administrators with individual rule sets. + * @see GenericZoneHandler */ Generic, From 173b662e6ff8382c8448fa6aef99c35c70937166 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 27 Jan 2017 16:13:33 +0100 Subject: [PATCH 179/266] v2 --- .../mgapi/api/arena/ArenaInterface.java | 16 +- .../mgapi/api/arena/ArenaTypeInterface.java | 18 ++ .../mgapi/api/events/ArenaCreateEvent.java | 16 -- .../mgapi/api/events/ArenaCreatedEvent.java | 15 +- .../mgapi/api/events/ArenaDeleteEvent.java | 118 ++++++++ .../mgapi/api/events/ArenaDeletedEvent.java | 112 ++++++++ .../api/events/ArenaPlayerJoinEvent.java | 7 +- .../ArenaPlayerJoinSpectatorsEvent.java | 7 +- .../api/events/ArenaPlayerJoinedEvent.java | 7 +- .../ArenaPlayerJoinedSpectatorsEvent.java | 7 +- .../api/events/ArenaPlayerLeftEvent.java | 7 +- .../ArenaPlayerLeftSpectatorsEvent.java | 7 +- .../mgapi/api/obj/ArenaComponentHandler.java | 3 +- .../mgapi/api/obj/ArenaSignHandler.java | 3 +- .../mgapi/api/obj/ArenaZoneHandler.java | 3 +- .../api/rules/RuleSetContainerInterface.java | 35 ++- .../mgapi/impl/MglibObjectTypes.java | 42 +++ .../mgapi/impl/MinigamesPlugin.java | 161 +++++++---- .../mgapi/impl/arena/ArenaImpl.java | 252 ++++++++++++++---- .../impl/rules/AbstractRuleSetContainer.java | 247 +++++++++++++++++ .../mgapi/impl/rules/BasicMatch.java | 3 +- 21 files changed, 921 insertions(+), 165 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 4764dcb7..b8d21a72 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -29,8 +29,10 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.locale.LocalizedConfigLine; import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; @@ -39,7 +41,7 @@ * * @author mepeisen */ -public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetType> +public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetType, ArenaRuleSetInterface> { /** @@ -196,13 +198,21 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy int getSpectatorCount(); /** - * @return + * Returns the players being within waiting lobby or within match + * @return current player list */ Collection<ArenaPlayerInterface> getPlayers(); /** - * @return + * Returns the spectators + * @return spectators list */ Collection<ArenaPlayerInterface> getSpectators(); + + /** + * Returns the internal object representing the arena. + * @return arena object + */ + ObjectInterface getObject(); } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java index 8a57bea9..60b32309 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java @@ -24,6 +24,8 @@ package de.minigameslib.mgapi.api.arena; +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigamesLibInterface; @@ -52,6 +54,22 @@ default Class<? extends ArenaTypeProvider> getProvider() throw new IllegalStateException(ex); } } + /** + * Creates arena type provider. + * @return arena type provider. + * @throws McException + */ + default ArenaTypeProvider safeCreateProvider() throws McException + { + try + { + return this.getProvider().newInstance(); + } + catch (InstantiationException | IllegalAccessException | IllegalStateException e) + { + throw new McException(CommonMessages.InternalError, e, e.getMessage()); + } + } /** * Returns the minigame owning this type. diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java index 3f466126..e349c075 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java @@ -29,8 +29,6 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -107,20 +105,6 @@ public ArenaCreateEvent getBukkitEvent() return this; } - @Override - public ZoneInterface getZone() - { - // no zone support - return null; - } - - @Override - public McPlayerInterface getPlayer() - { - // no player support - return null; - } - @Override public McOutgoingStubbing<ArenaCreateEvent> when(McPredicate<ArenaCreateEvent> test) throws McException { diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java index a8114ba7..266e1e53 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java @@ -29,8 +29,7 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -95,17 +94,9 @@ public ArenaCreatedEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; - } - - @Override - public McPlayerInterface getPlayer() - { - // no player support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java new file mode 100644 index 00000000..e0593b8d --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java @@ -0,0 +1,118 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; + +/** + * Event fired before an arena is deleted. + * + * @author mepeisen + */ +public class ArenaDeleteEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaDeleteEvent, ArenaDeleteEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena name. */ + private final String arenaName; + + /** the arena type. */ + private final ArenaTypeInterface type; + + /** + * @param arenaName + * @param type + */ + public ArenaDeleteEvent(String arenaName, ArenaTypeInterface type) + { + this.arenaName = arenaName; + this.type = type; + } + + /** + * @return the arenaName + */ + public String getArenaName() + { + return this.arenaName; + } + + /** + * @return the type + */ + public ArenaTypeInterface getType() + { + return this.type; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaDeleteEvent getBukkitEvent() + { + return this; + } + + @Override + public McOutgoingStubbing<ArenaDeleteEvent> when(McPredicate<ArenaDeleteEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java new file mode 100644 index 00000000..84a52af6 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java @@ -0,0 +1,112 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Event fired after an arena is deleted. + * + * @author mepeisen + */ +public class ArenaDeletedEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaDeletedEvent, ArenaDeletedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** + * @param arena + */ + public ArenaDeletedEvent(ArenaInterface arena) + { + this.arena = arena; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaDeletedEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McOutgoingStubbing<ArenaDeletedEvent> when(McPredicate<ArenaDeletedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java index 5027ab70..0aafb237 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java @@ -30,7 +30,7 @@ import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -109,10 +109,9 @@ public ArenaPlayerJoinEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java index fb943a08..d59f7b17 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java @@ -30,7 +30,7 @@ import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -109,10 +109,9 @@ public ArenaPlayerJoinSpectatorsEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java index ae20998b..de932d38 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java @@ -30,7 +30,7 @@ import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -109,10 +109,9 @@ public ArenaPlayerJoinedEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java index 0adffae6..2ff14c16 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java @@ -30,7 +30,7 @@ import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -109,10 +109,9 @@ public ArenaPlayerJoinedSpectatorsEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java index 42dbee33..432f6b96 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java @@ -30,7 +30,7 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -109,10 +109,9 @@ public ArenaPlayerLeftEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java index f15af240..74b71124 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java @@ -30,7 +30,7 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; @@ -109,10 +109,9 @@ public ArenaPlayerLeftSpectatorsEvent getBukkitEvent() } @Override - public ZoneInterface getZone() + public ObjectInterface getObject() { - // no zone support - return null; + return this.arena.getObject(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java index bd8a2f3e..3196268b 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java @@ -27,6 +27,7 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.ComponentHandlerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; @@ -35,7 +36,7 @@ * * @author mepeisen */ -public interface ArenaComponentHandler extends ComponentHandlerInterface, RuleSetContainerInterface<ComponentRuleSetType> +public interface ArenaComponentHandler extends ComponentHandlerInterface, RuleSetContainerInterface<ComponentRuleSetType, ComponentRuleSetInterface> { /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java index 7dce960b..252232ea 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java @@ -28,6 +28,7 @@ import de.minigameslib.mclib.api.objects.SignHandlerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; /** @@ -35,7 +36,7 @@ * * @author mepeisen */ -public interface ArenaSignHandler extends SignHandlerInterface, RuleSetContainerInterface<SignRuleSetType> +public interface ArenaSignHandler extends SignHandlerInterface, RuleSetContainerInterface<SignRuleSetType, SignRuleSetInterface> { /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java index b6e9510e..a13b79b7 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java @@ -28,6 +28,7 @@ import de.minigameslib.mclib.api.objects.ZoneHandlerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** @@ -35,7 +36,7 @@ * * @author mepeisen */ -public interface ArenaZoneHandler extends ZoneHandlerInterface, RuleSetContainerInterface<ZoneRuleSetType> +public interface ArenaZoneHandler extends ZoneHandlerInterface, RuleSetContainerInterface<ZoneRuleSetType, ZoneRuleSetInterface> { /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java index 13091a3c..376f63d1 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java @@ -33,23 +33,31 @@ * * @author mepeisen * @param <T> type of rule sets + * @param <Q> rule set interface */ -public interface RuleSetContainerInterface<T extends RuleSetType> +public interface RuleSetContainerInterface<T extends RuleSetType, Q extends RuleSetInterface<T>> { + /** + * Returns rule set from type + * @param type + * @return rule set or {@code null} if rule set is not applied + */ + Q getRuleSet(T type); + /** * Returns the rule sets applied to this element. * The resulting collection contains fixed rule sets (not removable becuase the minigame code relies on it) or * optional rule sets. * @return applied rule sets */ - Collection<T> getAppliedRuleSets(); + Collection<T> getAppliedRuleSetTypes(); /** * Returns the rule sets available to this element. * @return available rule sets */ - Collection<T> getAvailableRuleSets(); + Collection<T> getAvailableRuleSetTypes(); /** * Checks if given rule set is fixed and thus cannot be removed @@ -58,6 +66,20 @@ public interface RuleSetContainerInterface<T extends RuleSetType> */ boolean isFixed(T ruleset); + /** + * Checks if given rule set is optional and thus can be removed + * @param ruleset + * @return true if given ruleset is fixed. + */ + boolean isOptional(T ruleset); + + /** + * Checks if given rule set is applied + * @param ruleset + * @return true if given ruleset is fixed. + */ + boolean isApplied(T ruleset); + /** * Checks if given rule set is available * @param ruleset @@ -65,6 +87,13 @@ public interface RuleSetContainerInterface<T extends RuleSetType> */ boolean isAvailable(T ruleset); + /** + * Reconfigure applied rule sets. + * @param rulesets + * @throws McException + */ + void reconfigure(@SuppressWarnings("unchecked") T... rulesets) throws McException; + /** * Adds rule sets to this element. The rule set can be removed later on. * @param rulesets new rule sets diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java new file mode 100644 index 00000000..54de4a84 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java @@ -0,0 +1,42 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import de.minigameslib.mclib.api.objects.ObjectTypeId; + +/** + * The object types for minigames. + * + * @author mepeisen + */ +public enum MglibObjectTypes implements ObjectTypeId +{ + + /** + * the arena object type. + */ + Arena, + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 5d103cbd..580ca689 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -51,8 +51,8 @@ import de.minigameslib.mclib.api.cmd.CommandImpl; import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; import de.minigameslib.mclib.api.util.function.McBiFunction; -import de.minigameslib.mclib.api.util.function.McFunction; import de.minigameslib.mgapi.api.ExtensionInterface; import de.minigameslib.mgapi.api.ExtensionProvider; import de.minigameslib.mgapi.api.LibState; @@ -63,9 +63,17 @@ import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.events.ArenaCreateEvent; import de.minigameslib.mgapi.api.events.ArenaCreatedEvent; +import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; +import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.obj.BasicComponentTypes; import de.minigameslib.mgapi.api.obj.BasicSignTypes; import de.minigameslib.mgapi.api.obj.BasicZoneTypes; -import de.minigameslib.mgapi.api.obj.BasicComponentTypes; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; @@ -73,7 +81,6 @@ import de.minigameslib.mgapi.api.rules.BasicComponentRuleSets; import de.minigameslib.mgapi.api.rules.BasicSignRuleSets; import de.minigameslib.mgapi.api.rules.BasicZoneRuleSets; -import de.minigameslib.mgapi.api.rules.RuleSetInterface; import de.minigameslib.mgapi.api.rules.RuleSetType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; @@ -81,6 +88,7 @@ import de.minigameslib.mgapi.impl.arena.ArenaPlayerPersistentData; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.internal.TaskManager; +import de.minigameslib.mgapi.impl.rules.BasicMatch; import de.minigameslib.mgapi.impl.tasks.InitTask; /** @@ -94,17 +102,17 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * the current library state. */ - private LibState state = LibState.Initializing; + private LibState state = LibState.Initializing; /** * the registered minigames per plugin */ - private Map<String, MinigameImpl> minigamesPerPlugin = new HashMap<>(); + private Map<String, MinigameImpl> minigamesPerPlugin = new HashMap<>(); /** * the registered minigames per name */ - private Map<String, MinigameImpl> minigamesPerName = new TreeMap<>(); + private Map<String, MinigameImpl> minigamesPerName = new TreeMap<>(); /** * the registered extensions per plugin @@ -114,22 +122,32 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * the registered extensions per name */ - private Map<String, ExtensionImpl> extensionsPerName = new TreeMap<>(); + private Map<String, ExtensionImpl> extensionsPerName = new TreeMap<>(); /** the console commands. */ - private Mg2Command mg2Command = new Mg2Command(); + private Mg2Command mg2Command = new Mg2Command(); /** arenas per name. */ - private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); + private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); + + /** + * The rule sets per plugin. + */ + private final Map<String, Set<RuleSetType>> ruleSetsPerPlugin = new HashMap<>(); + + /** + * The creator func by arena rule set type + */ + private final Map<ArenaRuleSetType, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface>> arenaRuleSetTypes = new HashMap<>(); // TODO Watch for disabled plugins /** arena name check pattern */ - private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ + private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ /** plugin instance. */ - private static MinigamesPlugin INSTANCE; - + private static MinigamesPlugin INSTANCE; + @Override public void onEnable() { @@ -142,6 +160,7 @@ public void onEnable() EnumServiceInterface.instance().registerEnumClass(this, MglibConfig.class); EnumServiceInterface.instance().registerEnumClass(this, MglibMessages.class); EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); + EnumServiceInterface.instance().registerEnumClass(this, MglibObjectTypes.class); EnumServiceInterface.instance().registerEnumClass(this, BasicArenaRuleSets.class); EnumServiceInterface.instance().registerEnumClass(this, BasicComponentRuleSets.class); @@ -154,6 +173,28 @@ public void onEnable() Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); Bukkit.getServicesManager().register(TaskManager.class, new TaskManager(), this, ServicePriority.Highest); + McLibInterface.instance().registerEvent(this, ArenaCreatedEvent.class); + McLibInterface.instance().registerEvent(this, ArenaCreateEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerJoinedEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerJoinedSpectatorsEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerJoinEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerJoinSpectatorsEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerLeftEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerLeftSpectatorsEvent.class); + McLibInterface.instance().registerEvent(this, ArenaDeletedEvent.class); + McLibInterface.instance().registerEvent(this, ArenaDeleteEvent.class); + + this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); + + try + { + ObjectServiceInterface.instance().register(MglibObjectTypes.Arena, ArenaImpl.class); + } + catch (McException ex) + { + this.getLogger().log(Level.SEVERE, "Problems registering object types", ex); //$NON-NLS-1$ + } + final String[] arenas = MglibConfig.Arenas.getStringList(); for (final String arena : arenas) { @@ -161,7 +202,7 @@ public void onEnable() { this.checkArenaName(arena); this.getLogger().log(Level.INFO, "Found arena " + arena); //$NON-NLS-1$ - final ArenaImpl arenaImpl = new ArenaImpl(new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ + final ArenaImpl arenaImpl = new ArenaImpl(new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ this.arenasPerName.put(arena, arenaImpl); } catch (McException ex) @@ -176,6 +217,7 @@ public void onEnable() /** * Returns the minigame plugin instance + * * @return singleton instance */ public static MinigamesPlugin instance() @@ -185,8 +227,10 @@ public static MinigamesPlugin instance() /** * Checks for valid arena name + * * @param arena - * @throws McException thrown for invalid arena names. + * @throws McException + * thrown for invalid arena names. */ private void checkArenaName(String arena) throws McException { @@ -195,19 +239,19 @@ private void checkArenaName(String arena) throws McException throw new McException(MglibCoreErrors.InvalidArenaName, arena); } } - + @Override public void onDisable() { EnumServiceInterface.instance().unregisterAllEnumerations(this); } - + @Override public int getApiVersion() { return APIVERSION_1_0_0; } - + @Override public boolean debug() { @@ -219,7 +263,7 @@ public LibState getState() { return this.state; } - + @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { @@ -243,7 +287,7 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } return true; } - + @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { @@ -254,7 +298,7 @@ public List<String> onTabComplete(CommandSender sender, Command command, String lastArg = args[args.length - 1].toLowerCase(); newArgs = Arrays.copyOf(args, args.length - 1); } - + switch (command.getName()) { case "mg2": //$NON-NLS-1$ @@ -298,43 +342,43 @@ public void initMinigame(Plugin plugin, MinigameProvider provider) throws McExce this.minigamesPerPlugin.put(plugin.getName(), minigame); this.minigamesPerName.put(minigame.getName(), minigame); } - + @Override public MinigameInterface getMinigame(String name) { return this.minigamesPerName.get(name); } - + @Override public MinigameInterface getMinigame(Plugin plugin) { return this.minigamesPerPlugin.get(plugin.getName()); } - + @Override public int getMinigameCount() { return this.minigamesPerName.size(); } - + @Override public int getMinigameCount(String prefix) { return (int) this.minigamesPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); } - + @Override public Collection<MinigameInterface> getMinigames(int index, int limit) { return this.minigamesPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public Collection<MinigameInterface> getMinigames(String prefix, int index, int limit) { return this.minigamesPerName.values().stream().filter(p -> p.getName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public void initExtension(Plugin plugin, ExtensionProvider provider) throws McException { @@ -354,115 +398,117 @@ public void initExtension(Plugin plugin, ExtensionProvider provider) throws McEx this.extensionsPerPlugin.put(plugin.getName(), extension); this.extensionsPerName.put(extension.getName(), extension); } - + @Override public int getExtensionCount() { return this.extensionsPerName.size(); } - + @Override public int getExtensionCount(String prefix) { return (int) this.extensionsPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); } - + @Override public Collection<ExtensionInterface> getExtensions(int index, int limit) { return this.extensionsPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public Collection<ExtensionInterface> getExtensions(String prefix, int index, int limit) { return this.extensionsPerName.values().stream().filter(p -> p.getName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public ExtensionInterface getExtension(String name) { return this.extensionsPerName.get(name); } - + @Override public int getArenaCount() { return this.arenasPerName.size(); } - + @Override public int getArenaCount(String prefix) { return (int) this.arenasPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); } - + @Override public int getArenaCount(Plugin plugin) { return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).count(); } - + @Override public int getArenaCount(Plugin plugin, String prefix) { return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).count(); } - + @Override public int getArenaCount(ArenaTypeInterface type) { return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).count(); } - + @Override public int getArenaCount(ArenaTypeInterface type, String prefix) { return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).count(); } - + @Override public Collection<ArenaInterface> getArenas(int index, int limit) { return this.arenasPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public Collection<ArenaInterface> getArenas(String prefix, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) { - return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); + return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit) + .collect(Collectors.toList()); } - + @Override public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getType() == type).skip(index).limit(limit).collect(Collectors.toList()); } - + @Override public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) { - return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); + return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit) + .collect(Collectors.toList()); } - + @Override public ArenaInterface getArena(String name) { return this.arenasPerName.get(name); } - + @Override public ArenaInterface create(String name, ArenaTypeInterface type) throws McException { @@ -496,7 +542,7 @@ public ArenaInterface create(String name, ArenaTypeInterface type) throws McExce Bukkit.getPluginManager().callEvent(createdEvent); return arena; } - + @Override public ArenaPlayerInterface getPlayer(McPlayerInterface player) { @@ -514,12 +560,23 @@ public ArenaPlayerInterface getPlayer(McPlayerInterface player) } return impl; } - + @Override public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) { - // TODO Auto-generated method stub - + this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()); + this.arenaRuleSetTypes.put(ruleset, creator); + } + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + public McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator(ArenaRuleSetType type) + { + return this.arenaRuleSetTypes.get(type); } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 6aca6c42..fa49d09b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -47,6 +47,8 @@ import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectHandlerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.objects.ObjectServiceInterface; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mclib.shared.api.com.MemoryDataSection; @@ -58,8 +60,12 @@ import de.minigameslib.mgapi.api.arena.CheckFailure; import de.minigameslib.mgapi.api.arena.CheckSeverity; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.impl.MglibObjectTypes; +import de.minigameslib.mgapi.impl.MinigamesPlugin; import de.minigameslib.mgapi.impl.internal.TaskManager; +import de.minigameslib.mgapi.impl.rules.AbstractRuleSetContainer; import de.minigameslib.mgapi.impl.tasks.ArenaRestartTask; import de.minigameslib.mgapi.impl.tasks.ArenaStartTask; @@ -68,7 +74,7 @@ * * @author mepeisen */ -public class ArenaImpl implements ArenaInterface +public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface { /** @@ -92,6 +98,42 @@ public class ArenaImpl implements ArenaInterface /** the spectators. */ private final Set<UUID> spectators = new HashSet<>(); + + /** the mclib object */ + ObjectInterface object; + + /** + * rule set container + */ + private AbstractRuleSetContainer<ArenaRuleSetType, ArenaRuleSetInterface> ruleSets = new AbstractRuleSetContainer<ArenaRuleSetType, ArenaRuleSetInterface>() { + + @Override + protected void checkModifications() throws McException + { + if (ArenaImpl.this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + } + + @Override + protected void applyListeners(ArenaRuleSetInterface listeners) + { + ArenaImpl.this.object.registerHandlers(getPlugin(), listeners); + } + + @Override + protected void removeListeners(ArenaRuleSetInterface listeners) + { + ArenaImpl.this.object.unregisterHandlers(getPlugin(), listeners); + } + + @Override + protected ArenaRuleSetInterface create(ArenaRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, ArenaImpl.this); + } + }; /** * Constructor to create an arena by using given data file. @@ -115,6 +157,20 @@ public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McE this.arenaData = new ArenaData(name, type); this.arenaData.setMaintenance(true); this.state = ArenaState.Maintenance; + this.object = ObjectServiceInterface.instance().createObject(MglibObjectTypes.Arena, this, false); + try + { + for (final ArenaRuleSetType ruleset : type.safeCreateProvider().getFixedArenaRules()) + { + this.ruleSets.applyFixedRuleSet(ruleset); + } + } + catch (McException ex) + { + this.object.delete(); + this.object = null; + throw ex; + } this.saveData(); } @@ -128,6 +184,21 @@ public void resume() throws McException { final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); this.arenaData = section.getFragment(ArenaData.class, "data"); //$NON-NLS-1$ + this.type = this.arenaData.getArenaType(); + this.object = ObjectServiceInterface.instance().createObject(MglibObjectTypes.Arena, this, false); + try + { + for (final ArenaRuleSetType ruleset : this.type.safeCreateProvider().getFixedArenaRules()) + { + this.ruleSets.applyFixedRuleSet(ruleset); + } + } + catch (McException ex) + { + this.object.delete(); + this.object = null; + throw ex; + } } catch (IOException e) { @@ -489,11 +560,16 @@ public boolean isMatch() } } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#delete() - */ @Override public void delete() throws McException + { + this.object.delete(); + } + + /** + * Do deletion + */ + private void delete0() { // TODO Auto-generated method stub @@ -521,92 +597,161 @@ public MinigameInterface getMinigame() return this.type.getMinigame(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#getAppliedRuleSets() - */ @Override - public Collection<ArenaRuleSetType> getAppliedRuleSets() + public int getPlayerCount() { - // TODO Auto-generated method stub - return null; + return this.players.size(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#getAvailableRuleSets() - */ @Override - public Collection<ArenaRuleSetType> getAvailableRuleSets() + public int getSpectatorCount() { - // TODO Auto-generated method stub - return null; + return this.spectators.size(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#isFixed(de.minigameslib.mgapi.api.rules.RuleSetType) - */ @Override - public boolean isFixed(ArenaRuleSetType ruleset) + public Collection<ArenaPlayerInterface> getPlayers() { - // TODO Auto-generated method stub - return false; + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + return this.players.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#isAvailable(de.minigameslib.mgapi.api.rules.RuleSetType) - */ @Override - public boolean isAvailable(ArenaRuleSetType ruleset) + public Collection<ArenaPlayerInterface> getSpectators() { - // TODO Auto-generated method stub + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + return this.spectators.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + } + + @Override + public void read(DataSection section) + { + // not used + } + + @Override + public void write(DataSection section) + { + // not used + } + + @Override + public boolean test(DataSection section) + { + // not used return false; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#applyRuleSets(de.minigameslib.mgapi.api.rules.RuleSetType[]) - */ @Override - public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException + public void canDelete() throws McException { - // TODO Auto-generated method stub - + if (ArenaImpl.this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.rules.RuleSetContainerInterface#removeRuleSets(de.minigameslib.mgapi.api.rules.RuleSetType[]) - */ @Override - public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException + public void onCreate(ObjectInterface arg0) throws McException + { + this.object = arg0; + } + + @Override + public void onDelete() + { + this.delete0(); + } + + @Override + public void onPause(ObjectInterface arg0) + { + // not used + } + + @Override + public void onResume(ObjectInterface arg0) throws McException + { + // not used + } + + @Override + public ObjectInterface getObject() + { + return this.object; + } + + @Override + public ArenaRuleSetInterface getRuleSet(ArenaRuleSetType t) + { + return this.ruleSets.getRuleSet(t); + } + + @Override + public Collection<ArenaRuleSetType> getAppliedRuleSetTypes() + { + return this.ruleSets.getAppliedRuleSetTypes(); + } + + @Override + public Collection<ArenaRuleSetType> getAvailableRuleSetTypes() { // TODO Auto-generated method stub - + return Collections.emptyList(); } @Override - public int getPlayerCount() + public boolean isFixed(ArenaRuleSetType ruleset) { - return this.players.size(); + return this.ruleSets.isFixed(ruleset); } @Override - public int getSpectatorCount() + public boolean isOptional(ArenaRuleSetType ruleset) { - return this.spectators.size(); + return this.ruleSets.isOptional(ruleset); } @Override - public Collection<ArenaPlayerInterface> getPlayers() + public boolean isApplied(ArenaRuleSetType ruleset) { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.players.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + return this.ruleSets.isApplied(ruleset); } @Override - public Collection<ArenaPlayerInterface> getSpectators() + public boolean isAvailable(ArenaRuleSetType ruleset) { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.spectators.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + // TODO Auto-generated method stub + return false; + } + + @Override + public void reconfigure(ArenaRuleSetType... rulesets) throws McException + { + for (final ArenaRuleSetType t : rulesets) + { + this.ruleSets.reapplyRuleSet(t); + } + } + + @Override + public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException + { + for (final ArenaRuleSetType t : rulesets) + { + this.ruleSets.applyOptionalRuleSet(t); + } + } + + @Override + public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException + { + for (final ArenaRuleSetType t : rulesets) + { + this.ruleSets.removeOptionalRuleSet(t); + } } /** @@ -688,6 +833,13 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Cannot start test match because arena is not in maintenance mode"}) TestWrongState, + /** + * Cannot modify arena because of wrong state + */ + @LocalizedMessage(defaultMessage = "Cannot modify arena because of wrong state.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot modify arena because of wrong state"}) + ModificationWrongState, + /** * Cannot start match because arena is not in join mode */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java new file mode 100644 index 00000000..bc8c3f59 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java @@ -0,0 +1,247 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.rules.RuleSetInterface; +import de.minigameslib.mgapi.api.rules.RuleSetType; + +/** + * Abstract base class for rule set container + * + * @author mepeisen + * @param <T> rule set type + * @param <Q> rule set + */ +public abstract class AbstractRuleSetContainer<T extends RuleSetType, Q extends RuleSetInterface<T>> +{ + + /** the applied fixed rule sets that cannot be removed by administrators. */ + private Set<T> fixedRuleSets = new HashSet<>(); + + /** the optional rule set being removable by administrators. */ + private Set<T> optionalRuleSets = new HashSet<>(); + + /** the rule sets applied to this component */ + private Map<T, Q> ruleSets = new HashMap<>(); + + /** + * Checks the object of this container for possible modifications. + * @throws McException thrown if modifications are not allowed. + */ + protected abstract void checkModifications() throws McException; + + /** + * Applies listeners + * @param listeners + */ + protected abstract void applyListeners(Q listeners); + + /** + * Removes listeners + * @param listeners + */ + protected abstract void removeListeners(Q listeners); + + /** + * Creates a ruleset from type + * @param ruleset + * @return rule set impl + * @throws McException thrown if rule set is invalid + */ + protected abstract Q create(T ruleset) throws McException; + + /** + * Returns rule set for given type + * @param type + * @return rule set + */ + public Q getRuleSet(T type) + { + return this.ruleSets.get(type); + } + + /** + * Checks for applied rule set + * @param ruleset + * @return true for applied ruleset + */ + public boolean isApplied(T ruleset) + { + return this.isFixed(ruleset) || this.isOptional(ruleset); + } + + /** + * Gets applied rule set + * @return applied rule set + */ + public Collection<T> getAppliedRuleSetTypes() + { + final List<T> result = new ArrayList<>(this.fixedRuleSets); + result.addAll(this.optionalRuleSets); + return result; + } + + /** + * Checks for fixed rule set + * @param ruleset + * @return fixed rule set + */ + public boolean isFixed(T ruleset) + { + return this.fixedRuleSets.contains(ruleset); + } + + /** + * Checks for optional rule set + * @param ruleset + * @return true if rulset is optional + */ + public boolean isOptional(T ruleset) + { + return this.optionalRuleSets.contains(ruleset); + } + + /** + * Adds fixed rule sets. + * @param rulesets + * @throws McException + */ + public void applyFixedRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException + { + for (final T ruleset : rulesets) + { + this.fixedRuleSets.add(ruleset); + } + } + + /** + * Clears all rulesets + * @throws McException + */ + public void clearRuleSets() throws McException + { + for (final T type : this.fixedRuleSets) + { + this.removeFixedRuleSet(type); + } + for (final T type : this.optionalRuleSets) + { + this.removeOptionalRuleSet(type); + } + } + + /** + * Applies new rule set + * @param ruleset + * @return new rule set + * @throws McException + */ + public Q applyFixedRuleSet(T ruleset) throws McException + { + this.checkModifications(); + if (this.isApplied(ruleset)) return this.getRuleSet(ruleset); + final Q result = create(ruleset); + this.fixedRuleSets.add(ruleset); + this.ruleSets.put(ruleset, result); + this.applyListeners(result); + return result; + } + + /** + * Applies new rule set + * @param ruleset + * @return new rule set + * @throws McException + */ + public Q applyOptionalRuleSet(T ruleset) throws McException + { + this.checkModifications(); + if (this.isApplied(ruleset)) return this.getRuleSet(ruleset); + final Q result = create(ruleset); + this.optionalRuleSets.add(ruleset); + this.ruleSets.put(ruleset, result); + this.applyListeners(result); + return result; + } + + /** + * Re-applies given rule set(f.e. after config changes) + * @param ruleset + * @return new rule set + * @throws McException + */ + public Q reapplyRuleSet(T ruleset) throws McException + { + this.checkModifications(); + if (!this.isApplied(ruleset)) throw new IllegalStateException(); // TODO throw mcexception instead + final Q result = create(ruleset); + this.removeListeners(this.ruleSets.get(ruleset)); + this.ruleSets.put(ruleset, result); + this.applyListeners(result); + return result; + } + + /** + * removes optional rule set + * @param ruleset + * @return rule set instance + * @throws McException + */ + public Q removeOptionalRuleSet(T ruleset) throws McException + { + this.checkModifications(); + if (!this.isOptional(ruleset)) return null; + this.optionalRuleSets.remove(ruleset); + final Q result = this.ruleSets.remove(ruleset); + this.removeListeners(result); + return result; + } + + /** + * removes fixed rule set + * @param ruleset + * @return rule set instance + * @throws McException + */ + public Q removeFixedRuleSet(T ruleset) throws McException + { + this.checkModifications(); + if (!this.isFixed(ruleset)) return null; + this.fixedRuleSets.remove(ruleset); + final Q result = this.ruleSets.remove(ruleset); + this.removeListeners(result); + return result; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index ac168d69..6a930602 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -24,7 +24,6 @@ package de.minigameslib.mgapi.impl.rules; -import org.bukkit.event.EventHandler; import org.bukkit.scheduler.BukkitTask; import de.minigameslib.mclib.api.McException; @@ -155,7 +154,7 @@ public void onPlayerJoin(ArenaPlayerJoinEvent evt) * Invoked once a player successfully joined the arena * @param evt */ - @EventHandler + @McEventHandler public void onPlayerJoined(ArenaPlayerJoinedEvent evt) { // check min players From a06ad92862d47071ce9220fa476f38ed65a95a15 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 29 Jan 2017 14:54:41 +0100 Subject: [PATCH 180/266] v2 --- .../mgapi/api/MinigamesLibInterface.java | 64 +++++ .../mgapi/api/arena/ArenaInterface.java | 154 +++++++++++ .../mgapi/api/arena/ArenaTypeInterface.java | 1 + .../mgapi/api/obj/ArenaComponentHandler.java | 24 +- .../mgapi/api/obj/ArenaSignHandler.java | 24 +- .../mgapi/api/obj/ArenaZoneHandler.java | 24 +- .../mgapi/api/obj/BaseArenaObjectHandler.java | 69 +++++ .../mgapi/api/rules/ComponentRuleSetType.java | 6 +- .../mgapi/api/rules/SignRuleSetType.java | 6 +- .../mgapi/api/rules/ZoneRuleSetType.java | 6 +- .../mgapi/impl/MinigamesPlugin.java | 221 +++++++++++++++- .../mgapi/impl/arena/ArenaData.java | 92 +++++++ .../mgapi/impl/arena/ArenaImpl.java | 239 +++++++++++++++++- .../mgapi/impl/arena/ArenaLogger.java | 62 +++++ .../obj/AbstractBaseArenaObjectHandler.java | 226 +++++++++++++++++ .../mgapi/impl/obj/AbstractObjectData.java | 93 +++++++ .../mgapi/impl/obj/BattleZone.java | 158 ++++++++++++ .../mgapi/impl/obj/BattleZoneData.java | 36 +++ .../mgapi/impl/obj/EmptyComponent.java | 159 ++++++++++++ .../mgapi/impl/obj/EmptyComponentData.java | 36 +++ .../mgapi/impl/obj/EmptySign.java | 145 +++++++++++ .../mgapi/impl/obj/EmptySignData.java | 36 +++ .../mgapi/impl/obj/EmptyZone.java | 158 ++++++++++++ .../mgapi/impl/obj/EmptyZoneData.java | 36 +++ .../mgapi/impl/obj/GenericComponent.java | 159 ++++++++++++ .../mgapi/impl/obj/GenericComponentData.java | 36 +++ .../mgapi/impl/obj/GenericSign.java | 145 +++++++++++ .../mgapi/impl/obj/GenericSignData.java | 36 +++ .../mgapi/impl/obj/GenericZone.java | 158 ++++++++++++ .../mgapi/impl/obj/GenericZoneData.java | 36 +++ .../minigameslib/mgapi/impl/obj/JoinSign.java | 145 +++++++++++ .../mgapi/impl/obj/JoinSignData.java | 36 +++ .../minigameslib/mgapi/impl/obj/JoinZone.java | 158 ++++++++++++ .../mgapi/impl/obj/JoinZoneData.java | 36 +++ .../mgapi/impl/obj/LeaveSign.java | 145 +++++++++++ .../mgapi/impl/obj/LeaveSignData.java | 36 +++ .../mgapi/impl/obj/LeaveZone.java | 158 ++++++++++++ .../mgapi/impl/obj/LeaveZoneData.java | 36 +++ .../mgapi/impl/obj/LobbyZone.java | 158 ++++++++++++ .../mgapi/impl/obj/LobbyZoneData.java | 36 +++ .../minigameslib/mgapi/impl/obj/MainZone.java | 158 ++++++++++++ .../mgapi/impl/obj/MainZoneData.java | 36 +++ .../mgapi/impl/obj/SpawnComponent.java | 188 ++++++++++++++ .../mgapi/impl/obj/SpawnComponentData.java | 82 ++++++ .../mgapi/impl/obj/SpectatorZone.java | 158 ++++++++++++ .../mgapi/impl/obj/SpectatorZoneData.java | 36 +++ .../mgapi/impl/rules/BasicMatch.java | 4 +- 47 files changed, 4151 insertions(+), 100 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 47317a41..e5e32980 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -29,13 +29,26 @@ import org.bukkit.plugin.Plugin; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentTypeId; import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.objects.ZoneTypeId; import de.minigameslib.mclib.api.util.function.McBiFunction; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * Base interface to access the minigames API. @@ -110,6 +123,57 @@ static MinigamesLibInterface instance() */ void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator); + /** + * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create + * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. + * @param plugin + * @param ruleset + * @param creator + */ + void registerRuleset(Plugin plugin, ComponentRuleSetType ruleset, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator); + + /** + * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create + * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. + * @param plugin + * @param ruleset + * @param creator + */ + void registerRuleset(Plugin plugin, SignRuleSetType ruleset, McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator); + + /** + * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create + * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. + * @param plugin + * @param ruleset + * @param creator + */ + void registerRuleset(Plugin plugin, ZoneRuleSetType ruleset, McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator); + + /** + * Registers a new component with arena support. + * @param plugin + * @param type + * @param creator + */ + void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<ArenaComponentHandler> creator); + + /** + * Registers a new zone with arena support. + * @param plugin + * @param type + * @param creator + */ + void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<ArenaZoneHandler> creator); + + /** + * Registers a new sign with arena support. + * @param plugin + * @param type + * @param creator + */ + void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<ArenaSignHandler> creator); + /** * Returns the number of registered minigames. * diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index b8d21a72..ec64796b 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -25,12 +25,28 @@ package de.minigameslib.mgapi.api.arena; import java.util.Collection; +import java.util.logging.Logger; + +import org.bukkit.Location; +import org.bukkit.block.Sign; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.locale.LocalizedConfigLine; import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mclib.api.objects.ComponentTypeId; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.EntityIdInterface; +import de.minigameslib.mclib.api.objects.EntityTypeId; import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.objects.SignIdInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.objects.ZoneIdInterface; +import de.minigameslib.mclib.api.objects.ZoneTypeId; import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; @@ -214,5 +230,143 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy * @return arena object */ ObjectInterface getObject(); + + /** + * Returns a logger to log arena messages + * @return logger + */ + Logger getLogger(); + + // components and objects + + /** + * Returns the components used in this arena + * + * @return Components of this arena. + */ + Collection<ComponentIdInterface> getComponents(); + + /** + * Returns the zones used in this arena + * + * @return Zones of this arena. + */ + Collection<ZoneIdInterface> getZones(); + + /** + * Returns the signs used in this arena + * + * @return Signs of this arena. + */ + Collection<SignIdInterface> getSigns(); + + /** + * Returns the entities used in this arena + * + * @return entities of this arena. + */ + Collection<EntityIdInterface> getEntities(); + + /** + * Returns the components used in this arena + * + * @param types component types for filtering + * @return Components of this arena. + */ + Collection<ComponentIdInterface> getComponents(ComponentTypeId... types); + + /** + * Returns the zones used in this arena + * + * @param types zone types for filtering + * @return Zones of this arena. + */ + Collection<ZoneIdInterface> getZones(ZoneTypeId... types); + + /** + * Returns the signs used in this arena + * + * @param types sign types for filtering + * @return Signs of this arena. + */ + Collection<SignIdInterface> getSigns(SignTypeId... types); + + /** + * Returns the entities used in this arena + * + * @param types entity types for filtering + * @return entities of this arena. + */ + Collection<EntityIdInterface> getEntities(EntityTypeId... types); + + /** + * Returns handler for given id. + * @param id + * @return handler for given id + */ + <T extends ArenaComponentHandler> T getHandler(ComponentIdInterface id); + + /** + * Returns handler for given id. + * @param id + * @return handler for given id + */ + <T extends ArenaSignHandler> T getHandler(SignIdInterface id); + + /** + * Returns handler for given id. + * @param id + * @return handler for given id + */ + <T extends ArenaZoneHandler> T getHandler(ZoneIdInterface id); + + /** + * Creates a new component. + * + * @param location + * the initial location of the component. + * @param type component type + * @return created component + * @throws McException + * thrown if the component could not be created + */ + <T extends ArenaComponentHandler> T createComponent(Location location, ComponentTypeId type) throws McException; + + /** + * Creates a new sign. + * + * @param sign + * the initial bukkit sign + * @param type sign type + * @return created sign + * @throws McException + * thrown if the sign could not be created + */ + <T extends ArenaSignHandler> T createSign(Sign sign, SignTypeId type) throws McException; + + /** + * Creates a new zone. + * + * @param cuboid + * the initial cuboid of the zone. + * @param type the zone type + * @return created zone + * @throws McException + * thrown if the zone could not be created + */ + <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId type) throws McException; + + // TODO Entity support +// /** +// * Creates a new entity. +// * +// * @param entity +// * the initial bukkit entity +// * @param fixedRuleSets the fixed rule sets to apply to this entity +// * @return created entity +// * @throws McException +// * thrown if the entity could not be created +// */ +// EntityInterface createEntity(Entity entity, EntityRuleSetType... fixedRuleSets) throws McException; } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java index 60b32309..1a016a01 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java @@ -54,6 +54,7 @@ default Class<? extends ArenaTypeProvider> getProvider() throw new IllegalStateException(ex); } } + /** * Creates arena type provider. * @return arena type provider. diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java index 3196268b..78926c53 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java @@ -24,38 +24,18 @@ package de.minigameslib.mgapi.api.obj; -import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.ComponentHandlerInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; /** * A base interface for arena component handlers * * @author mepeisen */ -public interface ArenaComponentHandler extends ComponentHandlerInterface, RuleSetContainerInterface<ComponentRuleSetType, ComponentRuleSetInterface> +public interface ArenaComponentHandler extends ComponentHandlerInterface, BaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface> { - /** - * Returns a unique name of the component zone. - * @return unique name. - */ - String getName(); - - /** - * Sets the unique component name. - * @param newName new name - * @throws McException thrown if arena is not in maintenance mode or if name is already in use. - */ - void setName(String newName) throws McException; - - /** - * Returns the arena this component belongs to - * @return associated arena - */ - ArenaInterface getArena(); + // empty } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java index 252232ea..6c5bac1b 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java @@ -24,10 +24,7 @@ package de.minigameslib.mgapi.api.obj; -import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.SignHandlerInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -36,26 +33,9 @@ * * @author mepeisen */ -public interface ArenaSignHandler extends SignHandlerInterface, RuleSetContainerInterface<SignRuleSetType, SignRuleSetInterface> +public interface ArenaSignHandler extends SignHandlerInterface, BaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface> { - /** - * Returns a unique name of the component zone. - * @return unique name. - */ - String getName(); - - /** - * Sets the unique component name. - * @param newName new name - * @throws McException thrown if arena is not in maintenance mode or if name is already in use. - */ - void setName(String newName) throws McException; - - /** - * Returns the arena this sign belongs to - * @return associated arena - */ - ArenaInterface getArena(); + // empty } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java index a13b79b7..bc2a2187 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java @@ -24,10 +24,7 @@ package de.minigameslib.mgapi.api.obj; -import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.ZoneHandlerInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -36,26 +33,9 @@ * * @author mepeisen */ -public interface ArenaZoneHandler extends ZoneHandlerInterface, RuleSetContainerInterface<ZoneRuleSetType, ZoneRuleSetInterface> +public interface ArenaZoneHandler extends ZoneHandlerInterface, BaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface> { - /** - * Returns a unique name of the component zone. - * @return unique name. - */ - String getName(); - - /** - * Sets the unique component name. - * @param newName new name - * @throws McException thrown if arena is not in maintenance mode or if name is already in use. - */ - void setName(String newName) throws McException; - - /** - * Returns the arena this component belongs to - * @return associated arena - */ - ArenaInterface getArena(); + // empty } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java new file mode 100644 index 00000000..d4a15f91 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java @@ -0,0 +1,69 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.RuleSetInterface; +import de.minigameslib.mgapi.api.rules.RuleSetType; + +/** + * Common base interface for arena objects. + * + * @author mepeisen + * @param <T> type of rule sets + * @param <Q> rule set interface + */ +public interface BaseArenaObjectHandler<T extends RuleSetType, Q extends RuleSetInterface<T>> extends RuleSetContainerInterface<T, Q> +{ + + /** + * Returns a unique name of the component zone. + * @return unique name. + */ + String getName(); + + /** + * Sets the unique component name. + * @param newName new name + * @throws McException thrown if arena is not in maintenance mode or if name is already in use. + */ + void setName(String newName) throws McException; + + /** + * Returns the arena this component belongs to + * @return associated arena + */ + ArenaInterface getArena(); + + /** + * Initialized the arena for this component + * @param arena + * @throws McException + */ + void initArena(ArenaInterface arena) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java index d0d44ab5..ac995a99 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java @@ -32,10 +32,6 @@ public interface ComponentRuleSetType extends RuleSetType { - /** - * Returns the enumeration value name - * @return enumeration value name. - */ - String name(); + // marker only } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java index 73e16079..b005764d 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java @@ -32,10 +32,6 @@ public interface SignRuleSetType extends RuleSetType { - /** - * Returns the enumeration value name - * @return enumeration value name. - */ - String name(); + // marker only } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java index 4a3d7f71..2a13ba32 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java @@ -32,10 +32,6 @@ public interface ZoneRuleSetType extends RuleSetType { - /** - * Returns the enumeration value name - * @return enumeration value name. - */ - String name(); + // marker only } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 580ca689..e1e4b83c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -50,9 +50,13 @@ import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.cmd.CommandImpl; import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.objects.ComponentTypeId; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.objects.ZoneTypeId; import de.minigameslib.mclib.api.util.function.McBiFunction; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mgapi.api.ExtensionInterface; import de.minigameslib.mgapi.api.ExtensionProvider; import de.minigameslib.mgapi.api.LibState; @@ -71,6 +75,9 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.BasicComponentTypes; import de.minigameslib.mgapi.api.obj.BasicSignTypes; import de.minigameslib.mgapi.api.obj.BasicZoneTypes; @@ -81,13 +88,34 @@ import de.minigameslib.mgapi.api.rules.BasicComponentRuleSets; import de.minigameslib.mgapi.api.rules.BasicSignRuleSets; import de.minigameslib.mgapi.api.rules.BasicZoneRuleSets; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; import de.minigameslib.mgapi.api.rules.RuleSetType; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerPersistentData; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.internal.TaskManager; +import de.minigameslib.mgapi.impl.obj.BattleZone; +import de.minigameslib.mgapi.impl.obj.EmptyComponent; +import de.minigameslib.mgapi.impl.obj.EmptySign; +import de.minigameslib.mgapi.impl.obj.EmptyZone; +import de.minigameslib.mgapi.impl.obj.GenericComponent; +import de.minigameslib.mgapi.impl.obj.GenericSign; +import de.minigameslib.mgapi.impl.obj.GenericZone; +import de.minigameslib.mgapi.impl.obj.JoinSign; +import de.minigameslib.mgapi.impl.obj.JoinZone; +import de.minigameslib.mgapi.impl.obj.LeaveSign; +import de.minigameslib.mgapi.impl.obj.LeaveZone; +import de.minigameslib.mgapi.impl.obj.LobbyZone; +import de.minigameslib.mgapi.impl.obj.MainZone; +import de.minigameslib.mgapi.impl.obj.SpawnComponent; +import de.minigameslib.mgapi.impl.obj.SpectatorZone; import de.minigameslib.mgapi.impl.rules.BasicMatch; import de.minigameslib.mgapi.impl.tasks.InitTask; @@ -102,51 +130,96 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * the current library state. */ - private LibState state = LibState.Initializing; + private LibState state = LibState.Initializing; /** * the registered minigames per plugin */ - private Map<String, MinigameImpl> minigamesPerPlugin = new HashMap<>(); + private Map<String, MinigameImpl> minigamesPerPlugin = new HashMap<>(); /** * the registered minigames per name */ - private Map<String, MinigameImpl> minigamesPerName = new TreeMap<>(); + private Map<String, MinigameImpl> minigamesPerName = new TreeMap<>(); /** * the registered extensions per plugin */ - private Map<String, ExtensionImpl> extensionsPerPlugin = new HashMap<>(); + private Map<String, ExtensionImpl> extensionsPerPlugin = new HashMap<>(); /** * the registered extensions per name */ - private Map<String, ExtensionImpl> extensionsPerName = new TreeMap<>(); + private Map<String, ExtensionImpl> extensionsPerName = new TreeMap<>(); /** the console commands. */ - private Mg2Command mg2Command = new Mg2Command(); + private Mg2Command mg2Command = new Mg2Command(); /** arenas per name. */ - private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); + private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); /** * The rule sets per plugin. */ - private final Map<String, Set<RuleSetType>> ruleSetsPerPlugin = new HashMap<>(); + private final Map<String, Set<RuleSetType>> ruleSetsPerPlugin = new HashMap<>(); /** * The creator func by arena rule set type */ - private final Map<ArenaRuleSetType, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface>> arenaRuleSetTypes = new HashMap<>(); + private final Map<ArenaRuleSetType, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface>> arenaRuleSetTypes = new HashMap<>(); + + /** + * The creator func by zone rule set type + */ + private final Map<ZoneRuleSetType, McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface>> zoneRuleSetTypes = new HashMap<>(); + + /** + * The creator func by component rule set type + */ + private final Map<ComponentRuleSetType, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface>> componentRuleSetTypes = new HashMap<>(); + + /** + * The creator func by sign rule set type + */ + private final Map<SignRuleSetType, McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface>> signRuleSetTypes = new HashMap<>(); + + /** + * Components per plugin + */ + private final Map<String, Set<ComponentTypeId>> componentsPerPlugin = new HashMap<>(); + + /** + * Component creator functions + */ + private final Map<ComponentTypeId, McSupplier<ArenaComponentHandler>> components = new HashMap<>(); + + /** + * Zones per plugin + */ + private final Map<String, Set<ZoneTypeId>> zonesPerPlugin = new HashMap<>(); + + /** + * Zone creator functions + */ + private final Map<ZoneTypeId, McSupplier<ArenaZoneHandler>> zones = new HashMap<>(); + + /** + * Signs per plugin + */ + private final Map<String, Set<SignTypeId>> signsPerPlugin = new HashMap<>(); + + /** + * Sign creator functions + */ + private final Map<SignTypeId, McSupplier<ArenaSignHandler>> signs = new HashMap<>(); // TODO Watch for disabled plugins /** arena name check pattern */ - private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ + private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ /** plugin instance. */ - private static MinigamesPlugin INSTANCE; + private static MinigamesPlugin INSTANCE; @Override public void onEnable() @@ -186,6 +259,22 @@ public void onEnable() this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); + this.registerArenaComponent(this, BasicComponentTypes.Empty, EmptyComponent::new); + this.registerArenaComponent(this, BasicComponentTypes.Generic, GenericComponent::new); + this.registerArenaComponent(this, BasicComponentTypes.Spawn, SpawnComponent::new); + this.registerArenaSign(this, BasicSignTypes.Empty, EmptySign::new); + this.registerArenaSign(this, BasicSignTypes.Generic, GenericSign::new); + this.registerArenaSign(this, BasicSignTypes.Join, JoinSign::new); + this.registerArenaSign(this, BasicSignTypes.Leave, LeaveSign::new); + this.registerArenaZone(this, BasicZoneTypes.Empty, EmptyZone::new); + this.registerArenaZone(this, BasicZoneTypes.Generic, GenericZone::new); + this.registerArenaZone(this, BasicZoneTypes.Battle, BattleZone::new); + this.registerArenaZone(this, BasicZoneTypes.Join, JoinZone::new); + this.registerArenaZone(this, BasicZoneTypes.Leave, LeaveZone::new); + this.registerArenaZone(this, BasicZoneTypes.Lobby, LobbyZone::new); + this.registerArenaZone(this, BasicZoneTypes.Main, MainZone::new); + this.registerArenaZone(this, BasicZoneTypes.Spectator, SpectatorZone::new); + try { ObjectServiceInterface.instance().register(MglibObjectTypes.Arena, ArenaImpl.class); @@ -564,7 +653,7 @@ public ArenaPlayerInterface getPlayer(McPlayerInterface player) @Override public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) { - this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()); + this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); this.arenaRuleSetTypes.put(ruleset, creator); } @@ -579,4 +668,112 @@ public McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> cre return this.arenaRuleSetTypes.get(type); } + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + public McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator(ComponentRuleSetType type) + { + return this.componentRuleSetTypes.get(type); + } + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + public McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator(SignRuleSetType type) + { + return this.signRuleSetTypes.get(type); + } + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + public McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator(ZoneRuleSetType type) + { + return this.zoneRuleSetTypes.get(type); + } + + /** + * Returns the create function for given type + * + * @param type + * @return creator function + */ + public McSupplier<ArenaComponentHandler> creator(ComponentTypeId type) + { + return this.components.get(type); + } + + /** + * Returns the create function for given type + * + * @param type + * @return creator function + */ + public McSupplier<ArenaZoneHandler> creator(ZoneTypeId type) + { + return this.zones.get(type); + } + + /** + * Returns the create function for given type + * + * @param type + * @return creator function + */ + public McSupplier<ArenaSignHandler> creator(SignTypeId type) + { + return this.signs.get(type); + } + + @Override + public void registerRuleset(Plugin plugin, ComponentRuleSetType ruleset, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator) + { + this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); + this.componentRuleSetTypes.put(ruleset, creator); + } + + @Override + public void registerRuleset(Plugin plugin, SignRuleSetType ruleset, McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator) + { + this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); + this.signRuleSetTypes.put(ruleset, creator); + } + + @Override + public void registerRuleset(Plugin plugin, ZoneRuleSetType ruleset, McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator) + { + this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); + this.zoneRuleSetTypes.put(ruleset, creator); + } + + @Override + public void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<ArenaComponentHandler> creator) + { + this.componentsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); + this.components.put(type, creator); + } + + @Override + public void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<ArenaZoneHandler> creator) + { + this.zonesPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); + this.zones.put(type, creator); + } + + @Override + public void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<ArenaSignHandler> creator) + { + this.signsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); + this.signs.put(type, creator); + } + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java index 5b237fe0..f271bccc 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java @@ -24,11 +24,19 @@ package de.minigameslib.mgapi.impl.arena; +import java.util.HashSet; +import java.util.Set; + import de.minigameslib.mclib.api.locale.LocalizedConfigLine; import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mclib.api.objects.EntityIdInterface; +import de.minigameslib.mclib.api.objects.SignIdInterface; +import de.minigameslib.mclib.api.objects.ZoneIdInterface; import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; import de.minigameslib.mclib.shared.api.com.PersistentField; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; /** * @author mepeisen @@ -89,6 +97,42 @@ public class ArenaData extends AnnotatedDataFragment */ @PersistentField private boolean matchPending; + + /** + * fixed rule set types. + */ + @PersistentField + private Set<ArenaRuleSetType> fixedRules = new HashSet<>(); + + /** + * optional rule set types. + */ + @PersistentField + private Set<ArenaRuleSetType> optionalRules = new HashSet<>(); + + /** + * The components of this arena + */ + @PersistentField + private Set<ComponentIdInterface> components = new HashSet<>(); + + /** + * The zones of this arena + */ + @PersistentField + private Set<ZoneIdInterface> zones = new HashSet<>(); + + /** + * The signs of this arena + */ + @PersistentField + private Set<SignIdInterface> signs = new HashSet<>(); + + /** + * The entities of this arena + */ + @PersistentField + private Set<EntityIdInterface> entities = new HashSet<>(); /** * @param name @@ -227,5 +271,53 @@ public void setMatchPending(boolean matchPending) { this.matchPending = matchPending; } + + /** + * @return the fixedRules + */ + public Set<ArenaRuleSetType> getFixedRules() + { + return this.fixedRules; + } + + /** + * @return the optionalRules + */ + public Set<ArenaRuleSetType> getOptionalRules() + { + return this.optionalRules; + } + + /** + * @return the components + */ + public Set<ComponentIdInterface> getComponents() + { + return this.components; + } + + /** + * @return the zones + */ + public Set<ZoneIdInterface> getZones() + { + return this.zones; + } + + /** + * @return the signs + */ + public Set<SignIdInterface> getSigns() + { + return this.signs; + } + + /** + * @return the entities + */ + public Set<EntityIdInterface> getEntities() + { + return this.entities; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index fa49d09b..b6d1cf09 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -26,13 +26,17 @@ import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.UUID; +import java.util.logging.Logger; import java.util.stream.Collectors; +import org.bukkit.Location; +import org.bukkit.block.Sign; import org.bukkit.plugin.Plugin; import de.minigameslib.mclib.api.CommonMessages; @@ -46,10 +50,23 @@ import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.objects.ComponentTypeId; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.EntityIdInterface; +import de.minigameslib.mclib.api.objects.EntityInterface; +import de.minigameslib.mclib.api.objects.EntityTypeId; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectHandlerInterface; import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.objects.SignIdInterface; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.objects.ZoneIdInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.objects.ZoneTypeId; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mclib.shared.api.com.MemoryDataSection; import de.minigameslib.mgapi.api.MinigameInterface; @@ -59,6 +76,9 @@ import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.arena.CheckFailure; import de.minigameslib.mgapi.api.arena.CheckSeverity; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; @@ -102,6 +122,9 @@ public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface /** the mclib object */ ObjectInterface object; + /** arena logger */ + private ArenaLogger logger; + /** * rule set container */ @@ -153,6 +176,7 @@ public ArenaImpl(File dataFile) */ public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McException { + this.logger = new ArenaLogger(name); this.dataFile = dataFile; this.arenaData = new ArenaData(name, type); this.arenaData.setMaintenance(true); @@ -163,6 +187,7 @@ public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McE for (final ArenaRuleSetType ruleset : type.safeCreateProvider().getFixedArenaRules()) { this.ruleSets.applyFixedRuleSet(ruleset); + this.arenaData.getFixedRules().add(ruleset); } } catch (McException ex) @@ -184,14 +209,15 @@ public void resume() throws McException { final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); this.arenaData = section.getFragment(ArenaData.class, "data"); //$NON-NLS-1$ + this.logger = new ArenaLogger(this.getInternalName()); this.type = this.arenaData.getArenaType(); this.object = ObjectServiceInterface.instance().createObject(MglibObjectTypes.Arena, this, false); try { - for (final ArenaRuleSetType ruleset : this.type.safeCreateProvider().getFixedArenaRules()) - { - this.ruleSets.applyFixedRuleSet(ruleset); - } + resumeRuleSets(); + resumeComponents(); + resumeSigns(); + resumeZones(); } catch (McException ex) { @@ -218,7 +244,77 @@ else if (this.arenaData.isMaintenance()) this.state = ArenaState.Starting; } } + + /** + * @throws McException + */ + private void resumeComponents() throws McException + { + for (final ComponentIdInterface id : this.getComponents()) + { + final ArenaComponentHandler handler = (ArenaComponentHandler) ObjectServiceInterface.instance().findComponent(id); + handler.initArena(this); + } + } + + /** + * @throws McException + */ + private void resumeSigns() throws McException + { + for (final SignIdInterface id : this.getSigns()) + { + final ArenaSignHandler handler = (ArenaSignHandler) ObjectServiceInterface.instance().findSign(id); + handler.initArena(this); + } + } + + /** + * @throws McException + */ + private void resumeZones() throws McException + { + for (final ZoneIdInterface id : this.getZones()) + { + final ArenaZoneHandler handler = (ArenaZoneHandler) ObjectServiceInterface.instance().findZone(id); + handler.initArena(this); + } + } + + /** + * @throws McException + */ + private void resumeRuleSets() throws McException + { + final Set<ArenaRuleSetType> oldfixed = new HashSet<>(this.arenaData.getFixedRules()); + for (final ArenaRuleSetType ruleset : this.type.safeCreateProvider().getFixedArenaRules()) + { + if (!oldfixed.remove(ruleset)) + { + this.arenaData.getOptionalRules().remove(ruleset); + this.arenaData.getFixedRules().add(ruleset); + this.saveData(); + } + this.ruleSets.applyFixedRuleSet(ruleset); + } + for (final ArenaRuleSetType ruleset : oldfixed) + { + this.arenaData.getFixedRules().remove(ruleset); + this.arenaData.getOptionalRules().add(ruleset); + this.saveData(); + } + for (final ArenaRuleSetType ruleset : this.arenaData.getOptionalRules()) + { + this.ruleSets.applyOptionalRuleSet(ruleset); + } + } + @Override + public Logger getLogger() + { + return this.logger; + } + /** * Checks if a match is pending; a flag to recover after server crashes. * @return {@code true} if a match is pending @@ -741,7 +837,12 @@ public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException { for (final ArenaRuleSetType t : rulesets) { - this.ruleSets.applyOptionalRuleSet(t); + if (!this.ruleSets.isApplied(t)) + { + this.ruleSets.applyOptionalRuleSet(t); + this.arenaData.getOptionalRules().add(t); + this.saveData(); + } } } @@ -750,8 +851,134 @@ public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException { for (final ArenaRuleSetType t : rulesets) { - this.ruleSets.removeOptionalRuleSet(t); + if (this.ruleSets.isOptional(t)) + { + this.ruleSets.removeOptionalRuleSet(t); + this.arenaData.getOptionalRules().remove(t); + this.saveData(); + } + } + } + + @Override + public Collection<ComponentIdInterface> getComponents() + { + return new ArrayList<>(this.arenaData.getComponents()); + } + + @Override + public Collection<ZoneIdInterface> getZones() + { + return new ArrayList<>(this.arenaData.getZones()); + } + + @Override + public Collection<SignIdInterface> getSigns() + { + return new ArrayList<>(this.arenaData.getSigns()); + } + + @Override + public Collection<EntityIdInterface> getEntities() + { + return new ArrayList<>(this.arenaData.getEntities()); + } + + @Override + public Collection<ComponentIdInterface> getComponents(ComponentTypeId... types) + { + final Set<ComponentIdInterface> ids = this.arenaData.getComponents(); + return ObjectServiceInterface.instance().findComponents(types).stream().map(ComponentInterface::getComponentId).filter(ids::contains).collect(Collectors.toList()); + } + + @Override + public Collection<ZoneIdInterface> getZones(ZoneTypeId... types) + { + final Set<ZoneIdInterface> ids = this.arenaData.getZones(); + return ObjectServiceInterface.instance().findZones(types).stream().map(ZoneInterface::getZoneId).filter(ids::contains).collect(Collectors.toList()); + } + + @Override + public Collection<SignIdInterface> getSigns(SignTypeId... types) + { + final Set<SignIdInterface> ids = this.arenaData.getSigns(); + return ObjectServiceInterface.instance().findSigns(types).stream().map(SignInterface::getSignId).filter(ids::contains).collect(Collectors.toList()); + } + + @Override + public Collection<EntityIdInterface> getEntities(EntityTypeId... types) + { + final Set<EntityIdInterface> ids = this.arenaData.getEntities(); + return ObjectServiceInterface.instance().findEntities(types).stream().map(EntityInterface::getEntityId).filter(ids::contains).collect(Collectors.toList()); + } + + @SuppressWarnings("unchecked") + @Override + public <T extends ArenaComponentHandler> T getHandler(ComponentIdInterface id) + { + return (T) ObjectServiceInterface.instance().findComponent(id).getHandler(); + } + + @SuppressWarnings("unchecked") + @Override + public <T extends ArenaSignHandler> T getHandler(SignIdInterface id) + { + return (T) ObjectServiceInterface.instance().findSign(id).getHandler(); + } + + @SuppressWarnings("unchecked") + @Override + public <T extends ArenaZoneHandler> T getHandler(ZoneIdInterface id) + { + return (T) ObjectServiceInterface.instance().findZone(id).getHandler(); + } + + @SuppressWarnings("unchecked") + @Override + public <T extends ArenaComponentHandler> T createComponent(Location location, ComponentTypeId t) throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); } + final ArenaComponentHandler handler = MinigamesPlugin.instance().creator(t).get(); + final ComponentInterface component = ObjectServiceInterface.instance().createComponent(t, location, handler, true); + handler.initArena(this); + this.arenaData.getComponents().add(component.getComponentId()); + this.saveData(); + return (T) handler; + } + + @SuppressWarnings("unchecked") + @Override + public <T extends ArenaSignHandler> T createSign(Sign sign, SignTypeId t) throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + final ArenaSignHandler handler = MinigamesPlugin.instance().creator(t).get(); + final SignInterface mcsign = ObjectServiceInterface.instance().createSign(t, sign, handler, true); + handler.initArena(this); + this.arenaData.getSigns().add(mcsign.getSignId()); + this.saveData(); + return (T) handler; + } + + @SuppressWarnings("unchecked") + @Override + public <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId t) throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + final ArenaZoneHandler handler = MinigamesPlugin.instance().creator(t).get(); + final ZoneInterface zone = ObjectServiceInterface.instance().createZone(t, cuboid, handler, true); + handler.initArena(this); + this.arenaData.getZones().add(zone.getZoneId()); + this.saveData(); + return (T) handler; } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java new file mode 100644 index 00000000..98d84e22 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java @@ -0,0 +1,62 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * Special logger for arenas. + * + * @author mepeisen + */ +public class ArenaLogger extends Logger +{ + + /** logger prefix */ + private String prefix; + + /** + * Arena logger + * + * @param internalName + */ + protected ArenaLogger(String internalName) + { + super(ArenaLogger.class.getName(), null); + setParent(MinigamesPlugin.instance().getLogger()); + this.prefix = "[arena:" + internalName + "] "; //$NON-NLS-1$ //$NON-NLS-2$ + } + + @Override + public void log(LogRecord logRecord) + { + logRecord.setMessage(this.prefix + logRecord.getMessage()); + super.log(logRecord); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java new file mode 100644 index 00000000..780feb25 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java @@ -0,0 +1,226 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.Collections; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mclib.shared.api.com.MemoryDataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.BaseArenaObjectHandler; +import de.minigameslib.mgapi.api.rules.RuleSetInterface; +import de.minigameslib.mgapi.api.rules.RuleSetType; +import de.minigameslib.mgapi.impl.arena.ArenaImpl.Messages; +import de.minigameslib.mgapi.impl.rules.AbstractRuleSetContainer; + +/** + * base implementation of arena objects + * + * @author mepeisen + * @param <T> rule set type + * @param <Q> rule set interface + * @param <D> rule set data type + */ +public abstract class AbstractBaseArenaObjectHandler< + T extends RuleSetType, + Q extends RuleSetInterface<T>, + D extends AbstractObjectData<T>> extends AbstractRuleSetContainer<T, Q> implements BaseArenaObjectHandler<T, Q> +{ + + /** + * Returns the data class to be used for persistent data. + * @return data class + */ + protected abstract Class<D> getDataClass(); + + /** + * Creates a new empty data value. + * @return data value. + */ + protected abstract D createData(); + + /** + * persistent data + */ + protected D data; + + /** + * the data file to store persistent data + */ + protected File dataFile; + + /** + * the associated arena. + */ + protected ArenaInterface arena; + + /** + * Saves persistent object data + * @throws McException + */ + public void saveData() throws McException + { + final DataSection section = new MemoryDataSection(); + section.set("data", this.data); //$NON-NLS-1$ + try + { + McLibInterface.instance().saveYmlFile(section, this.dataFile); + } + catch (IOException e) + { + throw new McException(CommonMessages.InternalError, e, e.getMessage()); + } + } + + /** + * Loads persistent data + * @throws McException + */ + public void loadData() throws McException + { + try + { + final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); + this.data = section.getFragment(this.getDataClass(), "data"); //$NON-NLS-1$ + + this.resumeRuleSets(); + } + catch (IOException e) + { + throw new McException(CommonMessages.InternalError, e, e.getMessage()); + } + } + + /** + * Resumes the rule sets after loading the config + * @throws McException + */ + private void resumeRuleSets() throws McException + { + for (final T ruleset : this.data.getFixedRules()) + { + this.applyFixedRuleSet(ruleset); + } + for (final T ruleset : this.data.getOptionalRules()) + { + this.applyOptionalRuleSet(ruleset); + } + } + + @Override + public Collection<T> getAvailableRuleSetTypes() + { + // TODO Auto-generated method stub + return Collections.emptyList(); + } + + @Override + public boolean isAvailable(T ruleset) + { + // TODO Auto-generated method stub + return false; + } + + @Override + public void reconfigure(@SuppressWarnings("unchecked") T... rulesets) throws McException + { + for (final T t : rulesets) + { + this.reapplyRuleSet(t); + } + } + + @Override + public void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException + { + for (final T t : rulesets) + { + if (!this.isApplied(t)) + { + this.applyOptionalRuleSet(t); + this.data.getOptionalRules().add(t); + this.saveData(); + } + } + } + + @Override + public void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException + { + for (final T t : rulesets) + { + if (this.isOptional(t)) + { + this.removeOptionalRuleSet(t); + this.data.getOptionalRules().remove(t); + this.saveData(); + } + } + } + + @Override + public String getName() + { + return this.data.getName(); + } + + @Override + public void setName(String newName) throws McException + { + this.checkModifications(); + this.data.setName(newName); + this.saveData(); + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + @Override + public void initArena(ArenaInterface a) throws McException + { + this.arena = a; + this.data = this.createData(); + } + + @Override + protected void checkModifications() throws McException + { + if (this.arena.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java new file mode 100644 index 00000000..09be4158 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java @@ -0,0 +1,93 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.util.HashSet; +import java.util.Set; + +import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; +import de.minigameslib.mclib.shared.api.com.PersistentField; +import de.minigameslib.mgapi.api.rules.RuleSetType; + +/** + * The abstract data fragment to hold persistent object data. + * + * @author mepeisen + * @param <T> + */ +public abstract class AbstractObjectData<T extends RuleSetType> extends AnnotatedDataFragment +{ + + /** + * fixed rule set types. + */ + @PersistentField + protected Set<T> fixedRules = new HashSet<>(); + + /** + * optional rule set types. + */ + @PersistentField + protected Set<T> optionalRules = new HashSet<>(); + + /** + * The object name + */ + @PersistentField + protected String name; + + /** + * @return the fixedRules + */ + public Set<T> getFixedRules() + { + return this.fixedRules; + } + + /** + * @return the optionalRules + */ + public Set<T> getOptionalRules() + { + return this.optionalRules; + } + + /** + * @return the name + */ + public String getName() + { + return this.name; + } + + /** + * @param name the name to set + */ + public void setName(String name) + { + this.name = name; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java new file mode 100644 index 00000000..b5b352da --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.BattleZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class BattleZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, BattleZoneData> implements BattleZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<BattleZoneData> getDataClass() + { + return BattleZoneData.class; + } + + @Override + protected BattleZoneData createData() + { + return new BattleZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java new file mode 100644 index 00000000..9861cff8 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class BattleZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java new file mode 100644 index 00000000..5a3b01f3 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java @@ -0,0 +1,159 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import org.bukkit.Location; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.EmptyComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class EmptyComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, EmptyComponentData> implements EmptyComponentHandler +{ + + /** the underlying component. */ + protected ComponentInterface component; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onResume(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onPause(ComponentInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<EmptyComponentData> getDataClass() + { + return EmptyComponentData.class; + } + + @Override + protected EmptyComponentData createData() + { + return new EmptyComponentData(); + } + + @Override + protected void applyListeners(ComponentRuleSetInterface listeners) + { + this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ComponentRuleSetInterface listeners) + { + this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java new file mode 100644 index 00000000..a8064dad --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; + +/** + * @author mepeisen + * + */ +public class EmptyComponentData extends AbstractObjectData<ComponentRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java new file mode 100644 index 00000000..10169a2f --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java @@ -0,0 +1,145 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.EmptySignHandler; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class EmptySign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, EmptySignData> implements EmptySignHandler +{ + + /** the underlying sign. */ + protected SignInterface sign; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onResume(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onPause(SignInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<EmptySignData> getDataClass() + { + return EmptySignData.class; + } + + @Override + protected EmptySignData createData() + { + return new EmptySignData(); + } + + @Override + protected void applyListeners(SignRuleSetInterface listeners) + { + this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(SignRuleSetInterface listeners) + { + this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java new file mode 100644 index 00000000..fdb5cc6b --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.SignRuleSetType; + +/** + * @author mepeisen + * + */ +public class EmptySignData extends AbstractObjectData<SignRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java new file mode 100644 index 00000000..9d7588d7 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.EmptyZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class EmptyZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, EmptyZoneData> implements EmptyZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<EmptyZoneData> getDataClass() + { + return EmptyZoneData.class; + } + + @Override + protected EmptyZoneData createData() + { + return new EmptyZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java new file mode 100644 index 00000000..90d95dc0 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class EmptyZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java new file mode 100644 index 00000000..206abc7e --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java @@ -0,0 +1,159 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import org.bukkit.Location; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.GenericComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class GenericComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, GenericComponentData> implements GenericComponentHandler +{ + + /** the underlying component. */ + protected ComponentInterface component; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onResume(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onPause(ComponentInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<GenericComponentData> getDataClass() + { + return GenericComponentData.class; + } + + @Override + protected GenericComponentData createData() + { + return new GenericComponentData(); + } + + @Override + protected void applyListeners(ComponentRuleSetInterface listeners) + { + this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ComponentRuleSetInterface listeners) + { + this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java new file mode 100644 index 00000000..2e7867e3 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; + +/** + * @author mepeisen + * + */ +public class GenericComponentData extends AbstractObjectData<ComponentRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java new file mode 100644 index 00000000..b4a42878 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java @@ -0,0 +1,145 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.GenericSignHandler; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class GenericSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, GenericSignData> implements GenericSignHandler +{ + + /** the underlying sign. */ + protected SignInterface sign; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onResume(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onPause(SignInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<GenericSignData> getDataClass() + { + return GenericSignData.class; + } + + @Override + protected GenericSignData createData() + { + return new GenericSignData(); + } + + @Override + protected void applyListeners(SignRuleSetInterface listeners) + { + this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(SignRuleSetInterface listeners) + { + this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java new file mode 100644 index 00000000..49bd2036 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.SignRuleSetType; + +/** + * @author mepeisen + * + */ +public class GenericSignData extends AbstractObjectData<SignRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java new file mode 100644 index 00000000..bdacae82 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.GenericZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class GenericZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, GenericZoneData> implements GenericZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<GenericZoneData> getDataClass() + { + return GenericZoneData.class; + } + + @Override + protected GenericZoneData createData() + { + return new GenericZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java new file mode 100644 index 00000000..2dde2e84 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class GenericZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java new file mode 100644 index 00000000..cf82713a --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java @@ -0,0 +1,145 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.JoinSignInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class JoinSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, JoinSignData> implements JoinSignInterface +{ + + /** the underlying sign. */ + protected SignInterface sign; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onResume(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onPause(SignInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<JoinSignData> getDataClass() + { + return JoinSignData.class; + } + + @Override + protected JoinSignData createData() + { + return new JoinSignData(); + } + + @Override + protected void applyListeners(SignRuleSetInterface listeners) + { + this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(SignRuleSetInterface listeners) + { + this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java new file mode 100644 index 00000000..c5c6fd3d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.SignRuleSetType; + +/** + * @author mepeisen + * + */ +public class JoinSignData extends AbstractObjectData<SignRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java new file mode 100644 index 00000000..9586315f --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.JoinZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class JoinZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, JoinZoneData> implements JoinZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<JoinZoneData> getDataClass() + { + return JoinZoneData.class; + } + + @Override + protected JoinZoneData createData() + { + return new JoinZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java new file mode 100644 index 00000000..7afbbfb3 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class JoinZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java new file mode 100644 index 00000000..27f91089 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java @@ -0,0 +1,145 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.LeaveSignInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class LeaveSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, LeaveSignData> implements LeaveSignInterface +{ + + /** the underlying sign. */ + protected SignInterface sign; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onResume(SignInterface c) throws McException + { + this.sign = c; + } + + @Override + public void onPause(SignInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<LeaveSignData> getDataClass() + { + return LeaveSignData.class; + } + + @Override + protected LeaveSignData createData() + { + return new LeaveSignData(); + } + + @Override + protected void applyListeners(SignRuleSetInterface listeners) + { + this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(SignRuleSetInterface listeners) + { + this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java new file mode 100644 index 00000000..d435aa36 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.SignRuleSetType; + +/** + * @author mepeisen + * + */ +public class LeaveSignData extends AbstractObjectData<SignRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java new file mode 100644 index 00000000..d806b03a --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.LeaveZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class LeaveZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, LeaveZoneData> implements LeaveZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<LeaveZoneData> getDataClass() + { + return LeaveZoneData.class; + } + + @Override + protected LeaveZoneData createData() + { + return new LeaveZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java new file mode 100644 index 00000000..0399dfa1 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class LeaveZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java new file mode 100644 index 00000000..31772af8 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.LobbyZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class LobbyZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, LobbyZoneData> implements LobbyZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<LobbyZoneData> getDataClass() + { + return LobbyZoneData.class; + } + + @Override + protected LobbyZoneData createData() + { + return new LobbyZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java new file mode 100644 index 00000000..89db3f4d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class LobbyZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java new file mode 100644 index 00000000..cf5a41e7 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.MainZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class MainZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, MainZoneData> implements MainZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<MainZoneData> getDataClass() + { + return MainZoneData.class; + } + + @Override + protected MainZoneData createData() + { + return new MainZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java new file mode 100644 index 00000000..e265c628 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class MainZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java new file mode 100644 index 00000000..f567f223 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java @@ -0,0 +1,188 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import org.bukkit.Location; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.SpawnComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.team.TeamIdType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class SpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, SpawnComponentData> implements SpawnComponentHandler +{ + + /** the underlying component. */ + protected ComponentInterface component; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onResume(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onPause(ComponentInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<SpawnComponentData> getDataClass() + { + return SpawnComponentData.class; + } + + @Override + protected SpawnComponentData createData() + { + return new SpawnComponentData(); + } + + @Override + protected void applyListeners(ComponentRuleSetInterface listeners) + { + this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ComponentRuleSetInterface listeners) + { + this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + + @Override + public TeamIdType getTeam() + { + return this.data.team; + } + + @Override + public void setTeam(TeamIdType team) throws McException + { + this.checkModifications(); + this.data.setTeam(team); + this.saveData(); + } + + @Override + public int getOrdering() + { + return this.data.getSpawnOrdering(); + } + + @Override + public void setOrdering(int order) throws McException + { + this.checkModifications(); + this.data.setSpawnOrdering(order); + this.saveData(); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java new file mode 100644 index 00000000..6f90ab52 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java @@ -0,0 +1,82 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mclib.shared.api.com.PersistentField; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * @author mepeisen + * + */ +public class SpawnComponentData extends AbstractObjectData<ComponentRuleSetType> +{ + + /** + * The team this spawn is associated to + */ + @PersistentField + protected TeamIdType team; + + /** + * the spawn ordering to sort multiple spawns + */ + @PersistentField + protected int spawnOrdering; + + /** + * @return the team + */ + public TeamIdType getTeam() + { + return this.team; + } + + /** + * @param team the team to set + */ + public void setTeam(TeamIdType team) + { + this.team = team; + } + + /** + * @return the spawnOrdering + */ + public int getSpawnOrdering() + { + return this.spawnOrdering; + } + + /** + * @param spawnOrdering the spawnOrdering to set + */ + public void setSpawnOrdering(int spawnOrdering) + { + this.spawnOrdering = spawnOrdering; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java new file mode 100644 index 00000000..aa5973a9 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java @@ -0,0 +1,158 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.Cuboid; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.SpectatorZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class SpectatorZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, SpectatorZoneData> implements SpectatorZoneHandler +{ + + /** the underlying Zone. */ + protected ZoneInterface zone; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onResume(ZoneInterface c) throws McException + { + this.zone = c; + } + + @Override + public void onPause(ZoneInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeCuboid(Cuboid newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onCuboidChange(Cuboid newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<SpectatorZoneData> getDataClass() + { + return SpectatorZoneData.class; + } + + @Override + protected SpectatorZoneData createData() + { + return new SpectatorZoneData(); + } + + @Override + protected void applyListeners(ZoneRuleSetInterface listeners) + { + this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ZoneRuleSetInterface listeners) + { + this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java new file mode 100644 index 00000000..1fc5d23e --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java @@ -0,0 +1,36 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class SpectatorZoneData extends AbstractObjectData<ZoneRuleSetType> +{ + // empty +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index 6a930602..48f88b1b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -24,6 +24,8 @@ package de.minigameslib.mgapi.impl.rules; +import java.util.logging.Level; + import org.bukkit.scheduler.BukkitTask; import de.minigameslib.mclib.api.McException; @@ -204,7 +206,7 @@ private void onCountdown(BukkitTask task) catch (McException e) { // should never happen because the countdown gets cancelled before all players are left. - // TODO Logging + this.arena.getLogger().log(Level.WARNING, "Problems starting arena match", e); //$NON-NLS-1$ } this.countdownTask.cancel(); this.countdownTask = null; From c18bab0170f624509bcbe06801de449f0eed20b3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 29 Jan 2017 15:40:07 +0100 Subject: [PATCH 181/266] v2 --- .../mgapi/api/arena/ArenaTypeProvider.java | 48 +++++++++++++ .../api/arena/ClassicSinglePlayerArena.java | 44 +++++++++++- .../mgapi/api/arena/ClassicTeamArena.java | 45 ++++++++++++- .../mgapi/api/obj/ArenaComponentHandler.java | 7 +- .../mgapi/api/obj/ArenaSignHandler.java | 7 +- .../mgapi/api/obj/ArenaZoneHandler.java | 7 +- .../mgapi/api/rules/BasicArenaRuleSets.java | 2 +- .../api/rules/BasicComponentRuleSets.java | 9 +-- .../api/{obj => rules}/BasicMatchConfig.java | 3 +- .../mgapi/api/rules/BasicSignRuleSets.java | 9 +-- .../mgapi/impl/MinigamesPlugin.java | 12 ++++ .../mgapi/impl/obj/BattleZone.java | 6 ++ .../mgapi/impl/obj/EmptyComponent.java | 6 ++ .../mgapi/impl/obj/EmptySign.java | 6 ++ .../mgapi/impl/obj/EmptyZone.java | 6 ++ .../mgapi/impl/obj/GenericComponent.java | 6 ++ .../mgapi/impl/obj/GenericSign.java | 6 ++ .../mgapi/impl/obj/GenericZone.java | 6 ++ .../minigameslib/mgapi/impl/obj/JoinSign.java | 6 ++ .../minigameslib/mgapi/impl/obj/JoinZone.java | 6 ++ .../mgapi/impl/obj/LeaveSign.java | 6 ++ .../mgapi/impl/obj/LeaveZone.java | 6 ++ .../mgapi/impl/obj/LobbyZone.java | 6 ++ .../minigameslib/mgapi/impl/obj/MainZone.java | 6 ++ .../mgapi/impl/obj/SpawnComponent.java | 6 ++ .../mgapi/impl/obj/SpectatorZone.java | 6 ++ .../mgapi/impl/rules/BasicMatch.java | 4 +- .../mgapi/impl/rules/DieOnLeave.java | 67 +++++++++++++++++++ .../mgapi/impl/rules/LoseOnLeave.java | 67 +++++++++++++++++++ .../mgapi/impl/rules/NoWorldMobs.java | 67 +++++++++++++++++++ .../mgapi/impl/rules/NoWorldPets.java | 67 +++++++++++++++++++ .../mgapi/impl/rules/PlayerNoEntry.java | 67 +++++++++++++++++++ .../mgapi/impl/rules/PvPMode.java | 67 +++++++++++++++++++ 33 files changed, 662 insertions(+), 27 deletions(-) rename v2/api/src/main/java/de/minigameslib/mgapi/api/{obj => rules}/BasicMatchConfig.java (92%) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java index fdcbf984..8dc0dedc 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java @@ -28,8 +28,14 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; /** * An interface for arena types. @@ -76,4 +82,46 @@ public interface ArenaTypeProvider */ void configure(ArenaRuleSetInterface ruleSet) throws McException; + /** + * Creates a configuration with defaults for given rule set + * @param ruleSet + * @throws McException thrown for problems. + */ + void configure(ComponentRuleSetInterface ruleSet) throws McException; + + /** + * Creates a configuration with defaults for given rule set + * @param ruleSet + * @throws McException thrown for problems. + */ + void configure(ZoneRuleSetInterface ruleSet) throws McException; + + /** + * Creates a configuration with defaults for given rule set + * @param ruleSet + * @throws McException thrown for problems. + */ + void configure(SignRuleSetInterface ruleSet) throws McException; + + /** + * Creates a configuration for given component + * @param handler + * @throws McException thrown for problems. + */ + void configure(ArenaComponentHandler handler) throws McException; + + /** + * Creates a configuration for given zone + * @param handler + * @throws McException thrown for problems. + */ + void configure(ArenaZoneHandler handler) throws McException; + + /** + * Creates a configuration for given sign + * @param handler + * @throws McException thrown for problems. + */ + void configure(ArenaSignHandler handler) throws McException; + } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java index 8faa917f..131f4695 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java @@ -29,9 +29,15 @@ import java.util.Collections; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; /** * Basic class for classic arenas behaving similar to minigameslib version 1. @@ -57,7 +63,43 @@ public Collection<ArenaRuleSetType> getOptionalArenaRules() @Override public void configure(ArenaRuleSetInterface ruleSet) throws McException { - // TODO Auto-generated method stub + // no configuration + } + + @Override + public void configure(ComponentRuleSetInterface ruleSet) throws McException + { + // no configuration + } + + @Override + public void configure(ZoneRuleSetInterface ruleSet) throws McException + { + // no configuration + } + + @Override + public void configure(SignRuleSetInterface ruleSet) throws McException + { + // no configuration + } + + @Override + public void configure(ArenaComponentHandler handler) throws McException + { + // no configuration + } + + @Override + public void configure(ArenaZoneHandler handler) throws McException + { + // TODO if (handler.getZone().getChildZones()) + } + + @Override + public void configure(ArenaSignHandler handler) throws McException + { + // no configuration } } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java index 90660921..78d3bcd8 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java @@ -28,8 +28,14 @@ import java.util.Collections; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; /** * Basic class for classic arenas behaving similar to minigameslib version 1. @@ -56,8 +62,43 @@ public Collection<ArenaRuleSetType> getOptionalArenaRules() @Override public void configure(ArenaRuleSetInterface ruleSet) throws McException { - // TODO Auto-generated method stub - + // no configuration + } + + @Override + public void configure(ComponentRuleSetInterface ruleSet) throws McException + { + // no configuration + } + + @Override + public void configure(ZoneRuleSetInterface ruleSet) throws McException + { + // no configuration + } + + @Override + public void configure(SignRuleSetInterface ruleSet) throws McException + { + // no configuration + } + + @Override + public void configure(ArenaComponentHandler handler) throws McException + { + // no configuration + } + + @Override + public void configure(ArenaZoneHandler handler) throws McException + { + // no configuration + } + + @Override + public void configure(ArenaSignHandler handler) throws McException + { + // no configuration } } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java index 78926c53..d195724a 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api.obj; import de.minigameslib.mclib.api.objects.ComponentHandlerInterface; +import de.minigameslib.mclib.api.objects.ComponentInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -36,6 +37,10 @@ public interface ArenaComponentHandler extends ComponentHandlerInterface, BaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface> { - // empty + /** + * Returns the underlying component + * @return component + */ + ComponentInterface getComponent(); } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java index 6c5bac1b..30fe22d8 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api.obj; import de.minigameslib.mclib.api.objects.SignHandlerInterface; +import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -36,6 +37,10 @@ public interface ArenaSignHandler extends SignHandlerInterface, BaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface> { - // empty + /** + * Returns the underlying sign + * @return sign + */ + SignInterface getSign(); } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java index bc2a2187..eb83e7b3 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api.obj; import de.minigameslib.mclib.api.objects.ZoneHandlerInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -36,6 +37,10 @@ public interface ArenaZoneHandler extends ZoneHandlerInterface, BaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface> { - // empty + /** + * Returns the underlying zone + * @return zone + */ + ZoneInterface getZone(); } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java index fbcf0050..0ec45c38 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java @@ -25,7 +25,6 @@ package de.minigameslib.mgapi.api.rules; import de.minigameslib.mclib.api.enums.ChildEnum; -import de.minigameslib.mgapi.api.obj.BasicMatchConfig; /** * Basic arena rule sets @@ -43,6 +42,7 @@ public enum BasicArenaRuleSets implements ArenaRuleSetType * - min player handling * - max player handling */ + @RuleSetConfigurable(config = BasicMatchConfig.class) BasicMatch, } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java index 6ee0a6a3..41e5ea30 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java @@ -32,13 +32,6 @@ public enum BasicComponentRuleSets implements ComponentRuleSetType { - - NoWorldMobs, - - NoWorldPets, - - NoEntry, - - LoseOnLeave, + // no default rules yet } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java similarity index 92% rename from v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java rename to v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java index 2a656e84..d383a917 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicMatchConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java @@ -22,13 +22,12 @@ */ -package de.minigameslib.mgapi.api.obj; +package de.minigameslib.mgapi.api.rules; import de.minigameslib.mclib.api.config.ConfigComment; import de.minigameslib.mclib.api.config.ConfigurationInt; import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.config.ConfigurationValues; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; /** * Basic match configurations diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java index 99b42676..5eec9597 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java @@ -32,13 +32,6 @@ public enum BasicSignRuleSets implements SignRuleSetType { - - NoWorldMobs, - - NoWorldPets, - - NoEntry, - - LoseOnLeave, + // no default rules yet } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index e1e4b83c..4a6ab16b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -117,6 +117,12 @@ import de.minigameslib.mgapi.impl.obj.SpawnComponent; import de.minigameslib.mgapi.impl.obj.SpectatorZone; import de.minigameslib.mgapi.impl.rules.BasicMatch; +import de.minigameslib.mgapi.impl.rules.DieOnLeave; +import de.minigameslib.mgapi.impl.rules.LoseOnLeave; +import de.minigameslib.mgapi.impl.rules.NoWorldMobs; +import de.minigameslib.mgapi.impl.rules.NoWorldPets; +import de.minigameslib.mgapi.impl.rules.PlayerNoEntry; +import de.minigameslib.mgapi.impl.rules.PvPMode; import de.minigameslib.mgapi.impl.tasks.InitTask; /** @@ -258,6 +264,12 @@ public void onEnable() McLibInterface.instance().registerEvent(this, ArenaDeleteEvent.class); this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); + this.registerRuleset(this, BasicZoneRuleSets.DieOnLeave, DieOnLeave::new); + this.registerRuleset(this, BasicZoneRuleSets.LoseOnLeave, LoseOnLeave::new); + this.registerRuleset(this, BasicZoneRuleSets.NoWorldMobs, NoWorldMobs::new); + this.registerRuleset(this, BasicZoneRuleSets.NoWorldPets, NoWorldPets::new); + this.registerRuleset(this, BasicZoneRuleSets.PlayerNoEntry, PlayerNoEntry::new); + this.registerRuleset(this, BasicZoneRuleSets.PvPMode, PvPMode::new); this.registerArenaComponent(this, BasicComponentTypes.Empty, EmptyComponent::new); this.registerArenaComponent(this, BasicComponentTypes.Generic, GenericComponent::new); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java index b5b352da..e24d08fb 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java index 5a3b01f3..53edee0f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java @@ -155,5 +155,11 @@ protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ComponentInterface getComponent() + { + return this.component; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java index 10169a2f..75f18db9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java @@ -141,5 +141,11 @@ protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public SignInterface getSign() + { + return this.sign; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java index 9d7588d7..a840acf7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java index 206abc7e..febf0ef8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java @@ -155,5 +155,11 @@ protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ComponentInterface getComponent() + { + return this.component; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java index b4a42878..09f72b06 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java @@ -141,5 +141,11 @@ protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public SignInterface getSign() + { + return this.sign; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java index bdacae82..f6748681 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java index cf82713a..cb796ceb 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java @@ -141,5 +141,11 @@ protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public SignInterface getSign() + { + return this.sign; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java index 9586315f..dc3e7146 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java index 27f91089..fa5d7905 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java @@ -141,5 +141,11 @@ protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public SignInterface getSign() + { + return this.sign; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java index d806b03a..86c2484d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java index 31772af8..0b903f9e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java index cf5a41e7..d7acfd9b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java index f567f223..d9d3b566 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java @@ -184,5 +184,11 @@ public void setOrdering(int order) throws McException this.data.setSpawnOrdering(order); this.saveData(); } + + @Override + public ComponentInterface getComponent() + { + return this.component; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java index aa5973a9..9a1d40ff 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java @@ -154,5 +154,11 @@ protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McExceptio { return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); } + + @Override + public ZoneInterface getZone() + { + return this.zone; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index 48f88b1b..5ebbdae9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -41,10 +41,10 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.obj.BasicMatchConfig; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; +import de.minigameslib.mgapi.api.rules.BasicMatchConfig; import de.minigameslib.mgapi.impl.MinigamesPlugin; /** @@ -266,7 +266,7 @@ public enum Messages implements LocalizedMessageInterface InvalidConfigMinPlayers, /** - * Invalid config value (min players > max players) + * Invalid config value (min players > max players) */ @LocalizedMessage(defaultMessage = "Invalid config value (min players > max players): " + LocalizedMessage.BLUE + "%1$d > %2$d", severity = MessageSeverityType.Information) @MessageComment(value = {"Invalid config value (min players > max players)"}, args = {@Argument(type = "Numeric", value = "min players config value"), @Argument(type = "Numeric", value = "max players config value")}) diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java new file mode 100644 index 00000000..81fbdef7 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class DieOnLeave implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public DieOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java new file mode 100644 index 00000000..82f21d2e --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class LoseOnLeave implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public LoseOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java new file mode 100644 index 00000000..e6876a6b --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class NoWorldMobs implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public NoWorldMobs(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java new file mode 100644 index 00000000..b6490e97 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class NoWorldPets implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public NoWorldPets(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java new file mode 100644 index 00000000..46371e86 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class PlayerNoEntry implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public PlayerNoEntry(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java new file mode 100644 index 00000000..7e277273 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -0,0 +1,67 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class PvPMode implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public PvPMode(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + +} From 425e84349251877ed1aad3cdb75c0dfdf849bbef Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 30 Jan 2017 18:55:42 +0100 Subject: [PATCH 182/266] v2 --- .../mgapi/api/arena/ArenaInterface.java | 31 ++++++- .../mgapi/api/events/ArenaDeleteEvent.java | 38 ++++----- .../api/player/ArenaPlayerInterface.java | 17 +++- .../mgapi/api/rules/BasicZoneRuleSets.java | 5 ++ .../mgapi/impl/MinigamesPlugin.java | 8 +- .../mgapi/impl/arena/ArenaImpl.java | 80 ++++++++++++++++- .../mgapi/impl/arena/ArenaPlayerImpl.java | 21 +++++ .../mgapi/impl/rules/DieOnLeave.java | 22 ++++- .../mgapi/impl/rules/LoseOnLeave.java | 22 ++++- .../mgapi/impl/rules/NoMobsTargets.java | 85 +++++++++++++++++++ .../mgapi/impl/rules/NoWorldMobs.java | 43 +++++++++- .../mgapi/impl/rules/NoWorldPets.java | 42 ++++++++- .../mgapi/impl/rules/PlayerNoEntry.java | 2 + .../mgapi/impl/rules/PvPMode.java | 2 + 14 files changed, 386 insertions(+), 32 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index ec64796b..386c0dad 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -38,6 +38,7 @@ import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.EntityIdInterface; import de.minigameslib.mclib.api.objects.EntityTypeId; +import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.objects.SignIdInterface; import de.minigameslib.mclib.api.objects.SignTypeId; @@ -170,7 +171,35 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy * @return {@code true} if arena is in one of the match states: PRE_MATCH, MATCH, POST_MATCH */ boolean isMatch(); - + + /** + * Checks if given player is playing a match or waiting for the main game (lobby) + * @param player + * @return {@code true} if player is playing + */ + boolean isPlaying(McPlayerInterface player); + + /** + * Checks if given player is spetating a match + * @param player + * @return {@code true} if player is spectating + */ + boolean isSpectating(McPlayerInterface player); + + /** + * Checks if given player is playing a match or waiting for the main game (lobby) + * @param player + * @return {@code true} if player is playing + */ + boolean isPlaying(ArenaPlayerInterface player); + + /** + * Checks if given player is spetating a match + * @param player + * @return {@code true} if player is spectating + */ + boolean isSpectating(ArenaPlayerInterface player); + /** * Checks for administration failures. * @return list of arena failures. diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java index e0593b8d..b618f3dd 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java @@ -29,11 +29,12 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; /** * Event fired before an arena is deleted. @@ -46,36 +47,23 @@ public class ArenaDeleteEvent extends AbstractVetoEvent implements MinecraftEven /** handlers list. */ private static final HandlerList handlers = new HandlerList(); - /** the arena name. */ - private final String arenaName; + /** the arena instance. */ + private final ArenaInterface arena; - /** the arena type. */ - private final ArenaTypeInterface type; - - /** - * @param arenaName - * @param type - */ - public ArenaDeleteEvent(String arenaName, ArenaTypeInterface type) - { - this.arenaName = arenaName; - this.type = type; - } - /** - * @return the arenaName + * @param arena */ - public String getArenaName() + public ArenaDeleteEvent(ArenaInterface arena) { - return this.arenaName; + this.arena = arena; } /** - * @return the type + * @return the arena */ - public ArenaTypeInterface getType() + public ArenaInterface getArena() { - return this.type; + return this.arena; } /** @@ -105,6 +93,12 @@ public ArenaDeleteEvent getBukkitEvent() return this; } + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + @Override public McOutgoingStubbing<ArenaDeleteEvent> when(McPredicate<ArenaDeleteEvent> test) throws McException { diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java index 1f07eb54..8cc527c5 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java @@ -91,7 +91,7 @@ default UUID getPlayerUUID() return this.getMcPlayer().getPlayerUUID(); } - // arena data + // arena data and match /** * Returns the arena this player is currently in; within a match or waiting lobby. @@ -100,6 +100,21 @@ default UUID getPlayerUUID() */ ArenaInterface getArena(); + /** + * Let the player die; does nothing if there is no game pending + */ + void die(); + + /** + * Let the player lose the game; does nothing if there is no game pending + */ + void lose(); + + /** + * Let the player win the game; does nothing if there is no game pending + */ + void win(); + // stubbing /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java index d093d127..be2294dd 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java @@ -42,6 +42,11 @@ public enum BasicZoneRuleSets implements ZoneRuleSetType */ NoWorldPets, + /** + * mobs are not allowed to target players inside the zone + */ + NoMobTargets, + /** * Players are not allowed to enter the zone from outside except they join the arena */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 4a6ab16b..e9d6ccc7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -119,6 +119,7 @@ import de.minigameslib.mgapi.impl.rules.BasicMatch; import de.minigameslib.mgapi.impl.rules.DieOnLeave; import de.minigameslib.mgapi.impl.rules.LoseOnLeave; +import de.minigameslib.mgapi.impl.rules.NoMobsTargets; import de.minigameslib.mgapi.impl.rules.NoWorldMobs; import de.minigameslib.mgapi.impl.rules.NoWorldPets; import de.minigameslib.mgapi.impl.rules.PlayerNoEntry; @@ -197,7 +198,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * Component creator functions */ - private final Map<ComponentTypeId, McSupplier<ArenaComponentHandler>> components = new HashMap<>(); + private final Map<ComponentTypeId, McSupplier<ArenaComponentHandler>> components = new HashMap<>(); /** * Zones per plugin @@ -207,7 +208,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * Zone creator functions */ - private final Map<ZoneTypeId, McSupplier<ArenaZoneHandler>> zones = new HashMap<>(); + private final Map<ZoneTypeId, McSupplier<ArenaZoneHandler>> zones = new HashMap<>(); /** * Signs per plugin @@ -217,7 +218,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * Sign creator functions */ - private final Map<SignTypeId, McSupplier<ArenaSignHandler>> signs = new HashMap<>(); + private final Map<SignTypeId, McSupplier<ArenaSignHandler>> signs = new HashMap<>(); // TODO Watch for disabled plugins @@ -268,6 +269,7 @@ public void onEnable() this.registerRuleset(this, BasicZoneRuleSets.LoseOnLeave, LoseOnLeave::new); this.registerRuleset(this, BasicZoneRuleSets.NoWorldMobs, NoWorldMobs::new); this.registerRuleset(this, BasicZoneRuleSets.NoWorldPets, NoWorldPets::new); + this.registerRuleset(this, BasicZoneRuleSets.NoMobTargets, NoMobsTargets::new); this.registerRuleset(this, BasicZoneRuleSets.PlayerNoEntry, PlayerNoEntry::new); this.registerRuleset(this, BasicZoneRuleSets.PvPMode, PvPMode::new); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index b6d1cf09..422bb0b5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -35,6 +35,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.block.Sign; import org.bukkit.plugin.Plugin; @@ -76,6 +77,8 @@ import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.arena.CheckFailure; import de.minigameslib.mgapi.api.arena.CheckSeverity; +import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; +import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; @@ -667,8 +670,34 @@ public void delete() throws McException */ private void delete0() { - // TODO Auto-generated method stub + try + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + for (final ComponentIdInterface id : this.getComponents()) + { + osi.findComponent(id).delete(); + } + for (final SignIdInterface id : this.getSigns()) + { + osi.findSign(id).delete(); + } + for (final ZoneIdInterface id : this.getZones()) + { + osi.findZone(id).delete(); + } + for (final EntityIdInterface id : this.getEntities()) + { + osi.findEntity(id).delete(); + } + } + catch (McException ex) + { + // should never happen because we checked deletion in canDelete + throw new IllegalStateException(ex); + } + final ArenaDeletedEvent deletedEvent = new ArenaDeletedEvent(this); + Bukkit.getPluginManager().callEvent(deletedEvent); } @Override @@ -721,6 +750,30 @@ public Collection<ArenaPlayerInterface> getSpectators() return this.spectators.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); } + @Override + public boolean isPlaying(McPlayerInterface player) + { + return this.players.contains(player.getPlayerUUID()); + } + + @Override + public boolean isSpectating(McPlayerInterface player) + { + return this.spectators.contains(player.getPlayerUUID()); + } + + @Override + public boolean isPlaying(ArenaPlayerInterface player) + { + return this.players.contains(player.getPlayerUUID()); + } + + @Override + public boolean isSpectating(ArenaPlayerInterface player) + { + return this.spectators.contains(player.getPlayerUUID()); + } + @Override public void read(DataSection section) { @@ -747,6 +800,31 @@ public void canDelete() throws McException { throw new McException(Messages.ModificationWrongState); } + + final ArenaDeleteEvent deleteEvent = new ArenaDeleteEvent(this); + Bukkit.getPluginManager().callEvent(deleteEvent); + if (deleteEvent.isCancelled()) + { + throw new McException(deleteEvent.getVetoReason(), deleteEvent.getVetoReasonArgs()); + } + + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + for (final ComponentIdInterface id : this.getComponents()) + { + osi.findComponent(id).getHandler().canDelete(); + } + for (final SignIdInterface id : this.getSigns()) + { + osi.findSign(id).getHandler().canDelete(); + } + for (final ZoneIdInterface id : this.getZones()) + { + osi.findZone(id).getHandler().canDelete(); + } + for (final EntityIdInterface id : this.getEntities()) + { + osi.findEntity(id).getHandler().canDelete(); + } } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java index f1f14734..cc1c8033 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java @@ -148,5 +148,26 @@ public boolean isPlaying() { return this.getData().getArenaName() != null; } + + @Override + public void die() + { + // TODO Auto-generated method stub + + } + + @Override + public void lose() + { + // TODO Auto-generated method stub + + } + + @Override + public void win() + { + // TODO Auto-generated method stub + + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java index 81fbdef7..fb5ceb96 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java @@ -25,6 +25,10 @@ package de.minigameslib.mgapi.impl.rules; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.mcevent.PlayerLeftZoneEvent; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -39,7 +43,6 @@ public class DieOnLeave implements ZoneRuleSetInterface /** * the underlying zone. */ - @SuppressWarnings("unused") private final ArenaZoneHandler zone; /** @@ -64,4 +67,21 @@ public ZoneRuleSetType getType() return this.type; } + /** + * Event on player zone leave + * @param evt + */ + @McEventHandler + public void onLeave(PlayerLeftZoneEvent evt) + { + final ArenaInterface arena = this.zone.getArena(); + if (arena.isMatch()) + { + if (arena.isPlaying(evt.getPlayer())) + { + MinigamesLibInterface.instance().getPlayer(evt.getPlayer()).die(); + } + } + } + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java index 82f21d2e..fef388bd 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java @@ -25,6 +25,10 @@ package de.minigameslib.mgapi.impl.rules; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.mcevent.PlayerLeftZoneEvent; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -39,7 +43,6 @@ public class LoseOnLeave implements ZoneRuleSetInterface /** * the underlying zone. */ - @SuppressWarnings("unused") private final ArenaZoneHandler zone; /** @@ -64,4 +67,21 @@ public ZoneRuleSetType getType() return this.type; } + /** + * Event on player zone leave + * @param evt + */ + @McEventHandler + public void onLeave(PlayerLeftZoneEvent evt) + { + final ArenaInterface arena = this.zone.getArena(); + if (arena.isMatch()) + { + if (arena.isPlaying(evt.getPlayer())) + { + MinigamesLibInterface.instance().getPlayer(evt.getPlayer()).lose(); + } + } + } + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java new file mode 100644 index 00000000..08d8477f --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java @@ -0,0 +1,85 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import org.bukkit.entity.Player; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEntityTargetEvent; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * @author mepeisen + * + */ +public class NoMobsTargets implements ZoneRuleSetInterface +{ + + /** + * the underlying zone. + */ + @SuppressWarnings("unused") + private final ArenaZoneHandler zone; + + /** + * rule set type. + */ + private final ZoneRuleSetType type; + + /** + * @param type + * @param zone + * @throws McException thrown if config is invalid + */ + public NoMobsTargets(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + + /** + * Invoked on mob target selection + * @param evt + */ + @McEventHandler + public void onMobTarget(McEntityTargetEvent evt) + { + if (evt.getBukkitEvent().getTarget() instanceof Player) + { + // TODO check for minigames entities + evt.getBukkitEvent().setCancelled(true); + } + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java index e6876a6b..9e4065ee 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java @@ -24,7 +24,15 @@ package de.minigameslib.mgapi.impl.rules; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Golem; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Monster; + import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McCreatureSpawnEvent; +import de.minigameslib.mclib.api.event.McEntityTeleportEvent; +import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -39,7 +47,6 @@ public class NoWorldMobs implements ZoneRuleSetInterface /** * the underlying zone. */ - @SuppressWarnings("unused") private final ArenaZoneHandler zone; /** @@ -64,4 +71,38 @@ public ZoneRuleSetType getType() return this.type; } + /** + * Invoked on mob spawn events within this zone + * @param evt + */ + @McEventHandler + public void onMobSpawn(McCreatureSpawnEvent evt) + { + final LivingEntity entity = evt.getBukkitEvent().getEntity(); + if (entity instanceof Monster || entity instanceof Golem) + { + // TODO check for minigames forced spawns + evt.getBukkitEvent().setCancelled(true); + } + } + + /** + * Invoked on mob teleports + * @param evt + */ + @McEventHandler + public void onMobTeleport(McEntityTeleportEvent evt) + { + final Entity entity = evt.getBukkitEvent().getEntity(); + if (entity instanceof Monster || entity instanceof Golem) + { + if (this.zone.getZone().containsLoc(evt.getBukkitEvent().getTo())) + { + // this zone is target zone + // TODO check for minigames forced teleports + evt.getBukkitEvent().setCancelled(true); + } + } + } + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java index b6490e97..f5e099df 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java @@ -24,7 +24,14 @@ package de.minigameslib.mgapi.impl.rules; +import org.bukkit.entity.Animals; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; + import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McCreatureSpawnEvent; +import de.minigameslib.mclib.api.event.McEntityTeleportEvent; +import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -39,7 +46,6 @@ public class NoWorldPets implements ZoneRuleSetInterface /** * the underlying zone. */ - @SuppressWarnings("unused") private final ArenaZoneHandler zone; /** @@ -64,4 +70,38 @@ public ZoneRuleSetType getType() return this.type; } + /** + * Invoked on admin spawn events within this zone + * @param evt + */ + @McEventHandler + public void onPetSpawn(McCreatureSpawnEvent evt) + { + final LivingEntity entity = evt.getBukkitEvent().getEntity(); + if (entity instanceof Animals) + { + // TODO check for minigames forced spawns + evt.getBukkitEvent().setCancelled(true); + } + } + + /** + * Invoked on animal teleports + * @param evt + */ + @McEventHandler + public void onPetTeleport(McEntityTeleportEvent evt) + { + final Entity entity = evt.getBukkitEvent().getEntity(); + if (entity instanceof Animals) + { + if (this.zone.getZone().containsLoc(evt.getBukkitEvent().getTo())) + { + // this zone is target zone + // TODO check for minigames forced teleports + evt.getBukkitEvent().setCancelled(true); + } + } + } + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java index 46371e86..005cd96d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java @@ -64,4 +64,6 @@ public ZoneRuleSetType getType() return this.type; } + // TODO + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java index 7e277273..67e7eaf8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -64,4 +64,6 @@ public ZoneRuleSetType getType() return this.type; } + // TODO + } From 908a98b6ad1480ccc4b95a965ce4bbd0e9ec5b87 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 31 Jan 2017 08:46:12 +0100 Subject: [PATCH 183/266] v2 --- .../mgapi/api/rules/BasicArenaRuleSets.java | 16 +++- .../mgapi/api/rules/BasicLosingRuleSets.java | 40 ++++++++++ .../api/rules/BasicMatchTimerConfig.java | 49 ++++++++++++ .../mgapi/api/rules/BasicPvpModeConfig.java | 72 +++++++++++++++++ .../mgapi/api/rules/BasicSpawnsConfig.java | 72 +++++++++++++++++ .../mgapi/api/rules/BasicWinningRuleSets.java | 40 ++++++++++ .../mgapi/api/rules/BasicZoneRuleSets.java | 6 ++ .../mgapi/impl/MinigamesPlugin.java | 12 +++ .../mgapi/impl/rules/BasicMatchTime.java | 78 +++++++++++++++++++ .../mgapi/impl/rules/BasicSpawns.java | 78 +++++++++++++++++++ .../mgapi/impl/rules/LastManStanding.java | 78 +++++++++++++++++++ .../mgapi/impl/rules/LoseOnDeath.java | 78 +++++++++++++++++++ .../mgapi/impl/rules/PvPMode.java | 12 +++ 13 files changed, 630 insertions(+), 1 deletion(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java index 0ec45c38..9ba05dc0 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java @@ -32,7 +32,9 @@ * @author mepeisen */ @ChildEnum({ - BasicMatchConfig.class + BasicMatchConfig.class, + BasicSpawnsConfig.class, + BasicMatchTimerConfig.class }) public enum BasicArenaRuleSets implements ArenaRuleSetType { @@ -45,4 +47,16 @@ public enum BasicArenaRuleSets implements ArenaRuleSetType @RuleSetConfigurable(config = BasicMatchConfig.class) BasicMatch, + /** + * Spawn modes + */ + @RuleSetConfigurable(config = BasicSpawnsConfig.class) + BasicSpawns, + + /** + * Maximum timer for matches + */ + @RuleSetConfigurable(config = BasicMatchTimerConfig.class) + BasicMatchTimer, + } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java new file mode 100644 index 00000000..c7aee7aa --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java @@ -0,0 +1,40 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Rule sets for losing + * + * @author mepeisen + */ +public enum BasicLosingRuleSets implements ArenaRuleSetType +{ + + /** + * To die means to lose + */ + LoseOnDeath + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java new file mode 100644 index 00000000..8aea1130 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java @@ -0,0 +1,49 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.config.ConfigComment; +import de.minigameslib.mclib.api.config.ConfigurationInt; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; + +/** + * Basic match timer configurations + * + * @author mepeisen + * + * @see BasicArenaRuleSets#BasicMatchTimer + */ +@ConfigurationValues(path = "core") +public enum BasicMatchTimerConfig implements ConfigurationValueInterface +{ + /** + * The maximum match time in seconds + */ + @ConfigurationInt(defaultValue = 120) + @ConfigComment({"The maximum match time in seconds"}) + MaxSeconds + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java new file mode 100644 index 00000000..eb0f4a78 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java @@ -0,0 +1,72 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.config.ConfigComment; +import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; + +/** + * Basic pvp configurations + * + * @author mepeisen + * + * @see BasicZoneRuleSets#PvPMode + */ +@ConfigurationValues(path = "core") +public enum BasicPvpModeConfig implements ConfigurationValueInterface +{ + + // TODO enumeration value + /** + * The pvp option + */ + @ConfigurationString(defaultValue = "NoPvp") + @ConfigComment({"The pvp option"}) + PvpOption; + + /** + * Enumeration for type of pvp modes + */ + public enum PvpModes + { + /** + * No Pvp at all + */ + NoPvp, + + /** + * Pvp only during match but no damage + */ + PvpDuringMatch, + + /** + * Normal pvp with damage + */ + Normal, + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java new file mode 100644 index 00000000..b1f06001 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java @@ -0,0 +1,72 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.config.ConfigComment; +import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.config.ConfigurationValues; + +/** + * Basic spawns configurations + * + * @author mepeisen + * + * @see BasicArenaRuleSets#BasicSpawns + */ +@ConfigurationValues(path = "core") +public enum BasicSpawnsConfig implements ConfigurationValueInterface +{ + + // TODO enumeration value + /** + * The spawn option + */ + @ConfigurationString(defaultValue = "RandomAtStart") + @ConfigComment({"The spawn option"}) + SpawnOption; + + /** + * Enumeration for type of spawns + */ + public enum SpawnType + { + /** + * fully fixed spawns, first players gets first spawn etc. + */ + Fixed, + + /** + * Spawns are chosen randomly at match start but players will never loose their spawn. + */ + RandomAtStart, + + /** + * Random spawn at match start and each time a player dies he spawns at a random location. + */ + FullyRandom, + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java new file mode 100644 index 00000000..4da90b9e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java @@ -0,0 +1,40 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +/** + * Rule sets for winning + * + * @author mepeisen + */ +public enum BasicWinningRuleSets implements ArenaRuleSetType +{ + + /** + * The last man standing is winning + */ + LastManStanding + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java index be2294dd..4a8f0342 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java @@ -24,11 +24,16 @@ package de.minigameslib.mgapi.api.rules; +import de.minigameslib.mclib.api.enums.ChildEnum; + /** * Basic zone rule sets * * @author mepeisen */ +@ChildEnum({ + BasicPvpModeConfig.class +}) public enum BasicZoneRuleSets implements ZoneRuleSetType { @@ -65,6 +70,7 @@ public enum BasicZoneRuleSets implements ZoneRuleSetType /** * Pvp-Rules */ + @RuleSetConfigurable(config = BasicPvpModeConfig.class) PvPMode, } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index e9d6ccc7..fe240fc6 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -86,7 +86,9 @@ import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; import de.minigameslib.mgapi.api.rules.BasicComponentRuleSets; +import de.minigameslib.mgapi.api.rules.BasicLosingRuleSets; import de.minigameslib.mgapi.api.rules.BasicSignRuleSets; +import de.minigameslib.mgapi.api.rules.BasicWinningRuleSets; import de.minigameslib.mgapi.api.rules.BasicZoneRuleSets; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -117,7 +119,11 @@ import de.minigameslib.mgapi.impl.obj.SpawnComponent; import de.minigameslib.mgapi.impl.obj.SpectatorZone; import de.minigameslib.mgapi.impl.rules.BasicMatch; +import de.minigameslib.mgapi.impl.rules.BasicMatchTime; +import de.minigameslib.mgapi.impl.rules.BasicSpawns; import de.minigameslib.mgapi.impl.rules.DieOnLeave; +import de.minigameslib.mgapi.impl.rules.LastManStanding; +import de.minigameslib.mgapi.impl.rules.LoseOnDeath; import de.minigameslib.mgapi.impl.rules.LoseOnLeave; import de.minigameslib.mgapi.impl.rules.NoMobsTargets; import de.minigameslib.mgapi.impl.rules.NoWorldMobs; @@ -243,6 +249,8 @@ public void onEnable() EnumServiceInterface.instance().registerEnumClass(this, MglibObjectTypes.class); EnumServiceInterface.instance().registerEnumClass(this, BasicArenaRuleSets.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicWinningRuleSets.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicLosingRuleSets.class); EnumServiceInterface.instance().registerEnumClass(this, BasicComponentRuleSets.class); EnumServiceInterface.instance().registerEnumClass(this, BasicComponentTypes.class); EnumServiceInterface.instance().registerEnumClass(this, BasicSignRuleSets.class); @@ -265,6 +273,10 @@ public void onEnable() McLibInterface.instance().registerEvent(this, ArenaDeleteEvent.class); this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); + this.registerRuleset(this, BasicArenaRuleSets.BasicSpawns, BasicSpawns::new); + this.registerRuleset(this, BasicArenaRuleSets.BasicMatchTimer, BasicMatchTime::new); + this.registerRuleset(this, BasicWinningRuleSets.LastManStanding, LastManStanding::new); + this.registerRuleset(this, BasicLosingRuleSets.LoseOnDeath, LoseOnDeath::new); this.registerRuleset(this, BasicZoneRuleSets.DieOnLeave, DieOnLeave::new); this.registerRuleset(this, BasicZoneRuleSets.LoseOnLeave, LoseOnLeave::new); this.registerRuleset(this, BasicZoneRuleSets.NoWorldMobs, NoWorldMobs::new); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java new file mode 100644 index 00000000..0d0ac320 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java @@ -0,0 +1,78 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; + +/** + * The implementation of BasicMatchTime rule set + * + * @see BasicArenaRuleSets#BasicMatchTimer + * + * @author mepeisen + */ +public class BasicMatchTime implements ArenaRuleSetInterface +{ + + /** + * the underlying arena. + */ + private final ArenaInterface arena; + + /** + * rule set type. + */ + private final ArenaRuleSetType type; + + /** + * @param type + * @param arena + * @throws McException thrown if config is invalid + */ + public BasicMatchTime(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + this.type = type; + this.arena = arena; + } + + @Override + public ArenaRuleSetType getType() + { + return this.type; + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + // TODO + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java new file mode 100644 index 00000000..d8a0950f --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java @@ -0,0 +1,78 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; + +/** + * The implementation of BasicSpawns rule set + * + * @see BasicArenaRuleSets#BasicSpawns + * + * @author mepeisen + */ +public class BasicSpawns implements ArenaRuleSetInterface +{ + + /** + * the underlying arena. + */ + private final ArenaInterface arena; + + /** + * rule set type. + */ + private final ArenaRuleSetType type; + + /** + * @param type + * @param arena + * @throws McException thrown if config is invalid + */ + public BasicSpawns(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + this.type = type; + this.arena = arena; + } + + @Override + public ArenaRuleSetType getType() + { + return this.type; + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + // TODO + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java new file mode 100644 index 00000000..deb98e3d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java @@ -0,0 +1,78 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicWinningRuleSets; + +/** + * The implementation of LastManStanding rule set + * + * @see BasicWinningRuleSets#LastManStanding + * + * @author mepeisen + */ +public class LastManStanding implements ArenaRuleSetInterface +{ + + /** + * the underlying arena. + */ + private final ArenaInterface arena; + + /** + * rule set type. + */ + private final ArenaRuleSetType type; + + /** + * @param type + * @param arena + * @throws McException thrown if config is invalid + */ + public LastManStanding(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + this.type = type; + this.arena = arena; + } + + @Override + public ArenaRuleSetType getType() + { + return this.type; + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + // TODO + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java new file mode 100644 index 00000000..afe1017a --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java @@ -0,0 +1,78 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicLosingRuleSets; + +/** + * The implementation of LoseOnDeath rule set + * + * @see BasicLosingRuleSets#LoseOnDeath + * + * @author mepeisen + */ +public class LoseOnDeath implements ArenaRuleSetInterface +{ + + /** + * the underlying arena. + */ + private final ArenaInterface arena; + + /** + * rule set type. + */ + private final ArenaRuleSetType type; + + /** + * @param type + * @param arena + * @throws McException thrown if config is invalid + */ + public LoseOnDeath(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + this.type = type; + this.arena = arena; + } + + @Override + public ArenaRuleSetType getType() + { + return this.type; + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + // TODO + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java index 67e7eaf8..7062c90c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -26,6 +26,8 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig; +import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig.PvpModes; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -47,6 +49,11 @@ public class PvPMode implements ZoneRuleSetInterface */ private final ZoneRuleSetType type; + /** + * the current pvp mode. + */ + private PvpModes mode; + /** * @param type * @param zone @@ -56,6 +63,11 @@ public PvPMode(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { this.type = type; this.zone = zone; + this.mode = PvpModes.valueOf(BasicPvpModeConfig.PvpOption.getString()); + if (this.mode == null) + { + // TODO + } } @Override From c0d462f7d30fde126d7a9d66c23af29484d1f59a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 8 Feb 2017 06:46:54 +0100 Subject: [PATCH 184/266] v2 --- .../mgapi/api/arena/ArenaInterface.java | 11 + .../api/events/ArenaPlayerJoinEvent.java | 24 +- .../api/events/ArenaStateChangeEvent.java | 139 ++++++++ .../api/events/ArenaStateChangedEvent.java | 139 ++++++++ .../mgapi/api/events/MatchStartedEvent.java | 113 ++++++ .../mgapi/api/events/MatchStoppedEvent.java | 112 ++++++ .../mgapi/api/match/ArenaMatchInterface.java | 336 ++++++++++++++++++ .../api/match/CommonMatchStatistics.java | 47 +++ .../mgapi/api/match/MatchStatisticId.java | 39 ++ .../api/player/ArenaPlayerInterface.java | 18 +- .../mgapi/api/team/TeamIdType.java | 10 +- .../mgapi/impl/MinigamesPlugin.java | 9 + .../mgapi/impl/arena/ArenaImpl.java | 11 + .../mgapi/impl/arena/ArenaPlayerImpl.java | 10 + 14 files changed, 1009 insertions(+), 9 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 386c0dad..6673c9e7 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -45,6 +45,7 @@ import de.minigameslib.mclib.api.objects.ZoneIdInterface; import de.minigameslib.mclib.api.objects.ZoneTypeId; import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; @@ -266,6 +267,16 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy */ Logger getLogger(); + // match + + /** + * Returns the current arena match + * @return arena match or {@ode null} if arena is not in JOIN or MATCH state. + */ + ArenaMatchInterface getCurrentMatch(); + + // TODO historic matches + // components and objects /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java index 0aafb237..f7ea11f1 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java @@ -37,6 +37,7 @@ import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.TeamIdType; /** * Event fired before an arena player joined. @@ -54,15 +55,20 @@ public class ArenaPlayerJoinEvent extends AbstractVetoEvent implements Minecraft /** the arena player. */ private final ArenaPlayerInterface player; + + /** the pre-selected team */ + private TeamIdType preSelectedTeam; /** * @param arena * @param player + * @param preSelectedTeam */ - public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player) + public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player, TeamIdType preSelectedTeam) { this.arena = arena; this.player = player; + this.preSelectedTeam = preSelectedTeam; } /** @@ -81,6 +87,22 @@ public ArenaPlayerInterface getArenaPlayer() return this.player; } + /** + * @return the preSelectedTeam + */ + public TeamIdType getPreSelectedTeam() + { + return this.preSelectedTeam; + } + + /** + * @param preSelectedTeam the preSelectedTeam to set + */ + public void setPreSelectedTeam(TeamIdType preSelectedTeam) + { + this.preSelectedTeam = preSelectedTeam; + } + /** * Returns the handlers list * diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java new file mode 100644 index 00000000..9b152606 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java @@ -0,0 +1,139 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; + +/** + * Event fired before an arena state is changed. + * + * @author mepeisen + */ +public class ArenaStateChangeEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaStateChangeEvent, ArenaStateChangeEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the old state. */ + private final ArenaState oldState; + + /** the new state. */ + private final ArenaState newState; + + /** + * @param arena + * @param oldState the old state + * @param newState the new state + */ + public ArenaStateChangeEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) + { + this.arena = arena; + this.oldState = oldState; + this.newState = newState; + } + + /** + * @return the oldState + */ + public ArenaState getOldState() + { + return this.oldState; + } + + /** + * @return the newState + */ + public ArenaState getNewState() + { + return this.newState; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaStateChangeEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McOutgoingStubbing<ArenaStateChangeEvent> when(McPredicate<ArenaStateChangeEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java new file mode 100644 index 00000000..28361e08 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java @@ -0,0 +1,139 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; + +/** + * Event fired after an arena state is changed. + * + * @author mepeisen + */ +public class ArenaStateChangedEvent extends Event implements MinecraftEvent<ArenaStateChangedEvent, ArenaStateChangedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the old state. */ + private final ArenaState oldState; + + /** the new state. */ + private final ArenaState newState; + + /** + * @param arena + * @param oldState the old state + * @param newState the new state + */ + public ArenaStateChangedEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) + { + this.arena = arena; + this.oldState = oldState; + this.newState = newState; + } + + /** + * @return the oldState + */ + public ArenaState getOldState() + { + return this.oldState; + } + + /** + * @return the newState + */ + public ArenaState getNewState() + { + return this.newState; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaStateChangedEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McOutgoingStubbing<ArenaStateChangedEvent> when(McPredicate<ArenaStateChangedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java new file mode 100644 index 00000000..92b2ea13 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java @@ -0,0 +1,113 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Event right before the match started. Can be used to select player spawns + * or to initialize the battle field. + * + * @author mepeisen + */ +public class MatchStartedEvent extends Event implements MinecraftEvent<MatchStartedEvent, MatchStartedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** + * @param arena + */ + public MatchStartedEvent(ArenaInterface arena) + { + this.arena = arena; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public MatchStartedEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McOutgoingStubbing<MatchStartedEvent> when(McPredicate<MatchStartedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java new file mode 100644 index 00000000..574e7289 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java @@ -0,0 +1,112 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Event right after the match stopped. + * + * @author mepeisen + */ +public class MatchStoppedEvent extends Event implements MinecraftEvent<MatchStoppedEvent, MatchStoppedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** + * @param arena + */ + public MatchStoppedEvent(ArenaInterface arena) + { + this.arena = arena; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public MatchStoppedEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McOutgoingStubbing<MatchStoppedEvent> when(McPredicate<MatchStoppedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java new file mode 100644 index 00000000..884f82bb --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -0,0 +1,336 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.match; + +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.UUID; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * A pending arena match + * + * @author mepeisen + */ +public interface ArenaMatchInterface +{ + + // match common data + + /** + * Returns the match created timestamp + * @return match creation timestamp; timestamp the first player joined + */ + LocalDateTime getCreated(); + + /** + * Returns the match started timestamp + * @return match started timestamp; timestamp the match itself was started + */ + LocalDateTime getStarted(); + + /** + * Returns the match finished timestamp + * @return match finished timestamp; {@code null} if the match did not finish + */ + LocalDateTime getFinished(); + + /** + * Checks if match was aborted by admins or server crash + * @return {@ode true} if match was aborted by admins or server crash + */ + boolean isAborted(); + + // teams + + /** + * Returns members of given team. + * @param team + * @return team members. + */ + Collection<UUID> getTeamMembers(TeamIdType team); + + /** + * Returns the available teams. Will return {@link CommonTeams#Unknown} for single player arenas. + * Will never return {@link CommonTeams#Winners}, {@link CommonTeams#Losers} or {@code CommonTeams#Spectators} because + * these are very special teams not representing an "ingame" team. + * @return list of available teams. + */ + Collection<TeamIdType> getTeams(); + + /** + * Returns a preferred team for new players. The preferred team is chosen for new joining players. + * @return the preferred team to join a new user + */ + TeamIdType getPreferredTeam(); + + /** + * Let the given user join the given team + * @param player + * @param team the team to join + * @throws McException thrown if the current match is not a team match and if + */ + void join(ArenaPlayerInterface player, TeamIdType team) throws McException; + + /** + * Returns {@code true} if this match is a team match + * @return {@code true} for team matches; {@code false} for single player matches + */ + boolean isTeamMatch(); + + /** + * Returns the team of given player. Notes on special teams: + * <ul> + * <li>Will only return {@link CommonTeams#Spectators} if player did only spectate the game and did not participate as a player.</li> + * <li>Will return {@link CommonTeams#Unknown} if player is in waiting lobby and a team was not chosen or this is a single player match.</li> + * <li>Will return {@link CommonTeams#Winners} if player is already marked as a winner.</li> + * <li>Will return {@link CommonTeams#Losers} if player is already marked as a loser.</li> + * <li>Will return {@link CommonTeams#Unknown} if the match is pending and the player did not win or lose.</li> + * </ul> + * @param uuid player uuid + * @return team or {@code null} if player is not involved in this match + */ + TeamIdType getTeam(UUID uuid); + + // results + + /** + * Returns the match participants + * @return match participants; player uuids + */ + Collection<UUID> getParticipants(); + + /** + * Returns the winners + * @return match winners; player uuids + */ + Collection<UUID> getWinners(); + + /** + * Returns the match losers + * @return mosers; player uuids + */ + Collection<UUID> getLosers(); + + /** + * Returns the match results, first entry is the "first place". + * @return match results. + */ + Collection<MatchResult> getResults(); + + /** + * Returns the result count + * @return count of match results or places + */ + int getResultCount(); + + /** + * Returns the match results for given place + * @param place the place starting with 1 for the best winner + * @return match result or {@code null} if place number is invalid + */ + MatchResult getResult(int place); + + /** + * Match result interface. + * + * Each invocation of {@link ArenaMatchInterface#setWinner(UUID...)} or {@link ArenaMatchInterface#setLoser(UUID...)} will create a new place + * and match result. The first winner will be on place #1 followed by later on winners and the first loser will be on last place preceded by + * later losers. + */ + interface MatchResult + { + + /** + * Returns the place number + * @return the place starting with 1 for the best winner + */ + int getPlace(); + + /** + * Players sharing this place + * @return the players sharing this place + */ + Collection<UUID> getPlayers(); + + /** + * Returns {@code true} for a winning place + * @return {@code true} for winning place. + */ + boolean isWin(); + + } + + // spawns + + /** + * Returns the spawn for given player. Only works on pending games. + * @param uuid + * @return player spawn. + */ + ComponentIdInterface getSpawn(UUID uuid); + + /** + * Selects the spawn for given player. + * @param player + * @param spawn + * @throws McException thrown if match is not pending. + */ + void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException; + + // match statistics + + /** + * Returns the match statistic for given player and statistic id. + * @param player + * @param statistic + * @return statistics number + */ + int getStatistic(UUID player, MatchStatisticId statistic); + + /** + * Returns the match statistic for given team and statistic id. + * @param team + * @param statistic + * @return statistics number + */ + int getStatistic(TeamIdType team, MatchStatisticId statistic); + + /** + * Changes the match statistic for given player and statistic id. + * @param player + * @param statistic + * @param value the new statistic value + */ + void setStatistic(UUID player, MatchStatisticId statistic, int value); + + /** + * Changes the match statistic for given team and statistic id. + * @param team + * @param statistic + * @param value the new statistic value + */ + void setStatistic(TeamIdType team, MatchStatisticId statistic, int value); + + /** + * Adds the match statistic for given player and statistic id. + * @param player + * @param statistic + * @param amount delta value; positive to increase statistics and negativ to decrease statistics + */ + void addStatistic(UUID player, MatchStatisticId statistic, int amount); + + /** + * Adds the match statistic for given team and statistic id. + * @param team + * @param statistic + * @param amount delta value; positive to increase statistics and negativ to decrease statistics + */ + void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + + /** + * Returns the play time of given player in seconds + * @param player + * @return play time in seconds + */ + int getPlayTime(UUID player); + + // killer tracking + + /** + * Interface for tracking the last damager + */ + interface KillerTracking + { + /** + * UUId of the player that was damaged or killed + * @return player that was killed + */ + UUID getPlayer(); + + /** + * The last damager + * @return last damager + */ + UUID getLastDamager(); + + /** + * The timestamp the last damage was recorded + * @return last damage + */ + LocalDateTime getDamageTimestamp(); + } + + /** + * Returns the killer tracking; only works on pending matches + * @param player + * @return killer tracking or {@code null} if no killer tracking was registered for given player. + */ + KillerTracking getKillerTracking(UUID player); + + /** + * Tracks last damage for killer detection + * @param targetPlayer the player that was hit + * @param damager the last damager + * @throws McException thrown if match is not pending. + */ + void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException; + + // winning and losing + + /** + * Marks one or more players for losing the game + * @param players + * @throws McException thrown if match is not pending. + */ + void setLoser(UUID... players) throws McException; + + /** + * Marks one or more players for winning the game + * @param players + * @throws McException thrown if match is not pending. + */ + void setWinner(UUID... players) throws McException; + + /** + * Marks one or more teams for losing the game + * @param teams + * @throws McException thrown if match is not pending. + */ + void setLoser(TeamIdType... teams) throws McException; + + /** + * Marks one or more teams for winning the game + * @param teams + * @throws McException thrown if match is not pending. + */ + void setWinner(TeamIdType... teams) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java new file mode 100644 index 00000000..f39cb8b0 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java @@ -0,0 +1,47 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.match; + +/** + * Common match statistics. + * + * @author mepeisen + */ +public enum CommonMatchStatistics implements MatchStatisticId +{ + + /** common points for a single player or a team. */ + Points, + + /** Number of player/team deaths. */ + Deaths, + + /** Number of player/team kills. */ + Kills, + + /** Number of player/team lives. */ + Lives, + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java new file mode 100644 index 00000000..8c69e544 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java @@ -0,0 +1,39 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.match; + +import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; + +/** + * Interface for match statistic enumerations + * + * @author mepeisen + */ +public interface MatchStatisticId extends McUniqueEnumInterface +{ + + // marker interface + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java index 8cc527c5..de65ae1f 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java @@ -34,6 +34,7 @@ import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; /** * @author mepeisen @@ -101,17 +102,30 @@ default UUID getPlayerUUID() ArenaInterface getArena(); /** - * Let the player die; does nothing if there is no game pending + * Let the player die; does nothing if there is no game pending. + * Adds a new kill to kill statistic and performs a kill. */ void die(); /** - * Let the player lose the game; does nothing if there is no game pending + * Let the player die; does nothing if there is no game pending. + * Adds a new kill to kill statistic and performs a kill while the killer gets a statistic bonus + * for killing this player. + * @param killer the opposite player causing the death + */ + void die(ArenaPlayerInterface killer); + + /** + * Let the player lose the game; does nothing if there is no game pending. + * May cause to end the game (depending on gaming rules). + * Identical to invoke {@link ArenaMatchInterface#setLoser(UUID...)} with this players uuid. */ void lose(); /** * Let the player win the game; does nothing if there is no game pending + * May cause to end the game (depending on gaming rules). + * Identical to invoke {@link ArenaMatchInterface#setWinner(UUID...)} with this players uuid. */ void win(); diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java index 11fdc81e..1bc7ab7d 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java @@ -24,18 +24,16 @@ package de.minigameslib.mgapi.api.team; +import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; + /** * Use this interface on ernumerations to declare team types. * * @author mepeisen */ -public interface TeamIdType +public interface TeamIdType extends McUniqueEnumInterface { - /** - * Returns the internal team name. - * @return internal team name. - */ - String name(); + // marker only } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index fe240fc6..e3323986 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -75,6 +75,9 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaStateChangeEvent; +import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; +import de.minigameslib.mgapi.api.match.CommonMatchStatistics; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; @@ -97,6 +100,7 @@ import de.minigameslib.mgapi.api.rules.SignRuleSetType; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; @@ -258,6 +262,9 @@ public void onEnable() EnumServiceInterface.instance().registerEnumClass(this, BasicZoneRuleSets.class); EnumServiceInterface.instance().registerEnumClass(this, BasicZoneTypes.class); + EnumServiceInterface.instance().registerEnumClass(this, CommonTeams.class); + EnumServiceInterface.instance().registerEnumClass(this, CommonMatchStatistics.class); + Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); Bukkit.getServicesManager().register(TaskManager.class, new TaskManager(), this, ServicePriority.Highest); @@ -271,6 +278,8 @@ public void onEnable() McLibInterface.instance().registerEvent(this, ArenaPlayerLeftSpectatorsEvent.class); McLibInterface.instance().registerEvent(this, ArenaDeletedEvent.class); McLibInterface.instance().registerEvent(this, ArenaDeleteEvent.class); + McLibInterface.instance().registerEvent(this, ArenaStateChangedEvent.class); + McLibInterface.instance().registerEvent(this, ArenaStateChangeEvent.class); this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); this.registerRuleset(this, BasicArenaRuleSets.BasicSpawns, BasicSpawns::new); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 422bb0b5..a5d14967 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -79,6 +79,7 @@ import de.minigameslib.mgapi.api.arena.CheckSeverity; import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; @@ -1195,5 +1196,15 @@ public enum Messages implements LocalizedMessageInterface YouLeft, } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#getCurrentMatch() + */ + @Override + public ArenaMatchInterface getCurrentMatch() + { + // TODO Auto-generated method stub + return null; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java index cc1c8033..9dbf8dc5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java @@ -169,5 +169,15 @@ public void win() // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.player.ArenaPlayerInterface#die(de.minigameslib.mgapi.api.player.ArenaPlayerInterface) + */ + @Override + public void die(ArenaPlayerInterface killer) + { + // TODO Auto-generated method stub + + } } From 1e48ced0b57e058c775b5e5fe33f85efa5d173f0 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 10 Feb 2017 08:37:33 +0100 Subject: [PATCH 185/266] v2 --- .../mgapi/api/match/ArenaMatchInterface.java | 2 +- .../mgapi/impl/arena/ArenaImpl.java | 23 +- .../mgapi/impl/arena/ArenaMatchImpl.java | 389 ++++++++++++++++++ .../mgapi/impl/arena/MatchPlayer.java | 97 +++++ .../mgapi/impl/arena/MatchTeam.java | 73 ++++ 5 files changed, 573 insertions(+), 11 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java index 884f82bb..2317ceac 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -52,7 +52,7 @@ public interface ArenaMatchInterface /** * Returns the match started timestamp - * @return match started timestamp; timestamp the match itself was started + * @return match started timestamp; {@code null} for non-started matches. */ LocalDateTime getStarted(); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index a5d14967..6a5e0c96 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -129,6 +129,9 @@ public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface /** arena logger */ private ArenaLogger logger; + /** the current arena match. */ + private ArenaMatchImpl match; + /** * rule set container */ @@ -1059,6 +1062,16 @@ public <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId t) th this.saveData(); return (T) handler; } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.arena.ArenaInterface#getCurrentMatch() + */ + @Override + public ArenaMatchInterface getCurrentMatch() + { + // TODO Auto-generated method stub + return null; + } /** * The arena messages. @@ -1196,15 +1209,5 @@ public enum Messages implements LocalizedMessageInterface YouLeft, } - - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#getCurrentMatch() - */ - @Override - public ArenaMatchInterface getCurrentMatch() - { - // TODO Auto-generated method stub - return null; - } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java new file mode 100644 index 00000000..03f51b54 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -0,0 +1,389 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.MatchStatisticId; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * Arena Match implementation + * + * @author mepeisen + */ +public class ArenaMatchImpl implements ArenaMatchInterface +{ + + /** creation timestamp. */ + private final LocalDateTime created = LocalDateTime.now(); + + /** match start timestamp. */ + private LocalDateTime started; + + /** match finish timestamp. */ + private LocalDateTime finished; + + /** aborted flag. */ + private boolean aborted; + + /** players. */ + private Map<UUID, MatchPlayer> players = new HashMap<>(); + + /** teams. */ + private Map<TeamIdType, MatchTeam> teams = new HashMap<>(); + + /** + * Constructor + */ + public ArenaMatchImpl() + { + this.teams.put(CommonTeams.Unknown, new MatchTeam(CommonTeams.Unknown)); + this.teams.put(CommonTeams.Spectators, new MatchTeam(CommonTeams.Spectators)); + this.teams.put(CommonTeams.Losers, new MatchTeam(CommonTeams.Losers)); + this.teams.put(CommonTeams.Winners, new MatchTeam(CommonTeams.Winners)); + } + + @Override + public LocalDateTime getCreated() + { + return this.created; + } + + @Override + public LocalDateTime getStarted() + { + return this.started; + } + + @Override + public LocalDateTime getFinished() + { + return this.finished; + } + + @Override + public boolean isAborted() + { + return this.aborted; + } + + /** + * Starts this match + */ + public void start() + { + this.started = LocalDateTime.now(); + } + + /** + * Fnishes this match (regular finish) + */ + public void finish() + { + this.finished = LocalDateTime.now(); + } + + /** + * Aborts this match + */ + public void abort() + { + this.finished = LocalDateTime.now(); + this.aborted = true; + } + + @Override + public Collection<UUID> getTeamMembers(TeamIdType team) + { + return this.teams.computeIfAbsent(team, MatchTeam::new).getTeamMembers(); + } + + @Override + public Collection<TeamIdType> getTeams() + { + return this.teams.keySet(); + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getPreferredTeam() + */ + @Override + public TeamIdType getPreferredTeam() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#join(de.minigameslib.mgapi.api.player.ArenaPlayerInterface, de.minigameslib.mgapi.api.team.TeamIdType) + */ + @Override + public void join(ArenaPlayerInterface player, TeamIdType team) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#isTeamMatch() + */ + @Override + public boolean isTeamMatch() + { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getTeam(java.util.UUID) + */ + @Override + public TeamIdType getTeam(UUID uuid) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getParticipants() + */ + @Override + public Collection<UUID> getParticipants() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getWinners() + */ + @Override + public Collection<UUID> getWinners() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getLosers() + */ + @Override + public Collection<UUID> getLosers() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getResults() + */ + @Override + public Collection<MatchResult> getResults() + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getResultCount() + */ + @Override + public int getResultCount() + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getResult(int) + */ + @Override + public MatchResult getResult(int place) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getSpawn(java.util.UUID) + */ + @Override + public ComponentIdInterface getSpawn(UUID uuid) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#selectSpawn(java.util.UUID, de.minigameslib.mclib.api.objects.ComponentIdInterface) + */ + @Override + public void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getStatistic(java.util.UUID, de.minigameslib.mgapi.api.match.MatchStatisticId) + */ + @Override + public int getStatistic(UUID player, MatchStatisticId statistic) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getStatistic(de.minigameslib.mgapi.api.team.TeamIdType, de.minigameslib.mgapi.api.match.MatchStatisticId) + */ + @Override + public int getStatistic(TeamIdType team, MatchStatisticId statistic) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setStatistic(java.util.UUID, de.minigameslib.mgapi.api.match.MatchStatisticId, int) + */ + @Override + public void setStatistic(UUID player, MatchStatisticId statistic, int value) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setStatistic(de.minigameslib.mgapi.api.team.TeamIdType, de.minigameslib.mgapi.api.match.MatchStatisticId, int) + */ + @Override + public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#addStatistic(java.util.UUID, de.minigameslib.mgapi.api.match.MatchStatisticId, int) + */ + @Override + public void addStatistic(UUID player, MatchStatisticId statistic, int amount) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#addStatistic(de.minigameslib.mgapi.api.team.TeamIdType, de.minigameslib.mgapi.api.match.MatchStatisticId, int) + */ + @Override + public void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getPlayTime(java.util.UUID) + */ + @Override + public int getPlayTime(UUID player) + { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getKillerTracking(java.util.UUID) + */ + @Override + public KillerTracking getKillerTracking(UUID player) + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#trackDamageForKill(java.util.UUID, java.util.UUID) + */ + @Override + public void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setLoser(java.util.UUID[]) + */ + @Override + public void setLoser(UUID... players) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setWinner(java.util.UUID[]) + */ + @Override + public void setWinner(UUID... players) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setLoser(de.minigameslib.mgapi.api.team.TeamIdType[]) + */ + @Override + public void setLoser(TeamIdType... teams) throws McException + { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setWinner(de.minigameslib.mgapi.api.team.TeamIdType[]) + */ + @Override + public void setWinner(TeamIdType... teams) throws McException + { + // TODO Auto-generated method stub + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java new file mode 100644 index 00000000..67b1062e --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java @@ -0,0 +1,97 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import java.time.LocalDateTime; +import java.util.UUID; + +/** + * Data class for players being present in a match + * + * @author mepeisen + * + */ +class MatchPlayer +{ + + /** join timestamp */ + private LocalDateTime joined; + + /** the players uuid. */ + private final UUID playerUuid; + + /** left timestamp */ + private LocalDateTime left; + + /** + * Constructor + * @param playerUuid + */ + public MatchPlayer(UUID playerUuid) + { + this.playerUuid = playerUuid; + } + + /** + * @return the joined + */ + public LocalDateTime getJoined() + { + return this.joined; + } + + /** + * @param joined the joined to set + */ + public void setJoined(LocalDateTime joined) + { + this.joined = joined; + } + + /** + * @return the left + */ + public LocalDateTime getLeft() + { + return this.left; + } + + /** + * @param left the left to set + */ + public void setLeft(LocalDateTime left) + { + this.left = left; + } + + /** + * @return the playerUuid + */ + public UUID getPlayerUuid() + { + return this.playerUuid; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java new file mode 100644 index 00000000..e1689690 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java @@ -0,0 +1,73 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.arena; + +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; + +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * Data class for teams being present in a match + * + * @author mepeisen + * + */ +class MatchTeam +{ + + /** the team id. */ + private final TeamIdType teamId; + + /** registered team members. */ + private final Set<UUID> teamMembers = new HashSet<>(); + + /** + * Constructor + * @param teamId + */ + public MatchTeam(TeamIdType teamId) + { + this.teamId = teamId; + } + + /** + * @return the teamId + */ + public TeamIdType getTeamId() + { + return this.teamId; + } + + /** + * @return the teamMembers + */ + public Set<UUID> getTeamMembers() + { + return this.teamMembers; + } + +} From dbed2ae685b8aef358d4588191248014aeffcd36 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 08:49:36 +0100 Subject: [PATCH 186/266] fixes #212 --- .../java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java | 1 + changelog.md | 1 + 2 files changed, 2 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index b5f58d9b..c80acbdc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -744,6 +744,7 @@ public static PluginInstance setupRaw(final JavaPlugin plugin_, final String min Classes.loadClasses(plugin_); pli.getShopHandler().loadShopItems(); Guns.loadGuns(plugin_); + new DefaultConfig(plugin_, false); // force initialization of config.yml return pli; } diff --git a/changelog.md b/changelog.md index 3edca11c..d923ff4a 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ ###### All * fixed bungeecord signs +* fixed config.yml generation for "old" setupAPI (https://github.com/MysticCity/MinigamesAPI/issues/212) #### 1.14.14 From 3a7a21ef4f4628370e2b6730c92a24390d11822d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 09:48:15 +0100 Subject: [PATCH 187/266] fixed spectator signs --- .../com/comze_instancelabs/minigamesapi/Arena.java | 1 + .../minigamesapi/ArenaListener.java | 2 +- .../comze_instancelabs/minigamesapi/util/Util.java | 13 +++++++++++++ changelog.md | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index d1b51240..e84688cc 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -308,6 +308,7 @@ public void init(final Location signloc, final ArrayList<Location> spawns, final { // TODO Disallow duplicate init; reloading should create a new arena instance. this.signloc = signloc; + this.specsignloc = Util.getSpecSignLocationFromArena(this.plugin, this.getInternalName()); this.spawns.clear(); if (spawns != null) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 73ca7998..58d48fa5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1822,7 +1822,7 @@ else if (arena.equalsIgnoreCase("leave")) final Arena a = this.pli.getArenaByName(arena); if (a != null) { - a.setSignLocation(event.getBlock().getLocation()); + a.setSpecSignLocation(event.getBlock().getLocation()); Util.updateSpecSign(this.plugin, a, event); } else diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index a71f59fe..8e21d454 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -448,6 +448,19 @@ public static Location getSignLocationFromArena(final JavaPlugin plugin, final S } } + public static Location getSpecSignLocationFromArena(final JavaPlugin plugin, final String arena) + { + final Sign s = Util.getSpecSignFromArena(plugin, arena); + if (s != null) + { + return s.getBlock().getLocation(); + } + else + { + return null; + } + } + public static Arena getArenaBySignLocation(final JavaPlugin plugin, final Location sign) { for (final Arena arena : MinigamesAPI.getAPI().getPluginInstance(plugin).getArenas()) diff --git a/changelog.md b/changelog.md index d923ff4a..84f1b7cf 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ * fixed bungeecord signs * fixed config.yml generation for "old" setupAPI (https://github.com/MysticCity/MinigamesAPI/issues/212) +* fixed specator signs (https://github.com/MysticCity/MinigamesAPI/issues/188) #### 1.14.14 From 316632e3ce56a6b52967107a117c7279699766d0 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 10:11:29 +0100 Subject: [PATCH 188/266] fixes hologram removal --- .../minigamesapi/statsholograms/Holograms.java | 1 + changelog.md | 1 + 2 files changed, 2 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java index 6f64c85e..3fa04f63 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/statsholograms/Holograms.java @@ -112,6 +112,7 @@ public boolean removeHologram(final Location ploc) { this.destroyHologram(p, this.holo.get(l)); } + this.holo.remove(l); } return true; } diff --git a/changelog.md b/changelog.md index 84f1b7cf..d7441c27 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ * fixed bungeecord signs * fixed config.yml generation for "old" setupAPI (https://github.com/MysticCity/MinigamesAPI/issues/212) * fixed specator signs (https://github.com/MysticCity/MinigamesAPI/issues/188) +* fixed hologram removal (https://github.com/MysticCity/MinigamesAPI/issues/191) #### 1.14.14 From 031987453858bb4247263ff11e1deaa65ea9a387 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 10:15:56 +0100 Subject: [PATCH 189/266] fixed console spams --- .../java/com/comze_instancelabs/minigamesapi/SmartReset.java | 2 +- changelog.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index 06b50377..f5ae8f14 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -242,7 +242,7 @@ public void run() try { - MinigamesAPI.getAPI().getLogger().info("resetting block " + ablock.getBlock().getLocation()); + if (MinigamesAPI.debug) MinigamesAPI.getAPI().getLogger().info("resetting block " + ablock.getBlock().getLocation()); this.resetSmartResetBlock(ablock); it.remove(); } diff --git a/changelog.md b/changelog.md index d7441c27..33ebbb2e 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,7 @@ * fixed config.yml generation for "old" setupAPI (https://github.com/MysticCity/MinigamesAPI/issues/212) * fixed specator signs (https://github.com/MysticCity/MinigamesAPI/issues/188) * fixed hologram removal (https://github.com/MysticCity/MinigamesAPI/issues/191) +* fixed "console spams"/ checking for debug config option (https://github.com/MysticCity/MinigamesAPI/issues/200) #### 1.14.14 From 5c429842c728409d89312f60adc634c85b32e3c3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 10:24:11 +0100 Subject: [PATCH 190/266] fixed NPE if main lobby is missing --- .../minigamesapi/commands/CommandHandler.java | 25 +++++++++++++------ .../minigamesapi/util/Util.java | 1 + changelog.md | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index d09a6a5d..94da1a8e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -537,18 +537,27 @@ public boolean saveArena(final PluginInstance pli, final CommandSender sender, f } if (args.length > 1) { - final Arena temp = pli.arenaSetup.saveArena(plugin, args[1]); - if (temp != null) + if (Util.getMainLobby(plugin) == null) { - sender.sendMessage(pli.getMessagesConfig().successfully_saved_arena.replaceAll("<arena>", args[1])); + sender.sendMessage(pli.getMessagesConfig().failed_saving_arena.replaceAll("<arena>", args[1])); + sender.sendMessage(ChatColor.GRAY + "++ Debug Info ++"); + sender.sendMessage(ChatColor.GRAY + "MAIN LOBBY MISSING"); } else { - sender.sendMessage(pli.getMessagesConfig().failed_saving_arena.replaceAll("<arena>", args[1])); - sender.sendMessage(ChatColor.GRAY + "++ Debug Info ++"); - sender.sendMessage(ChatColor.GRAY + "LOBBY:" + Util.isComponentForArenaValidRaw(plugin, args[1], "lobby") + ChatColor.RED + ";" + ChatColor.GRAY + " SPAWN0:" - + Util.isComponentForArenaValidRaw(plugin, args[1], "spawns.spawn0") + ChatColor.RED + ";" + ChatColor.GRAY + " BOUNDARIES(possibly needed): low:" - + Util.isComponentForArenaValidRaw(plugin, args[1], ArenaConfigStrings.BOUNDS_LOW) + ", high:" + Util.isComponentForArenaValidRaw(plugin, args[1], ArenaConfigStrings.BOUNDS_HIGH)); + final Arena temp = pli.arenaSetup.saveArena(plugin, args[1]); + if (temp != null) + { + sender.sendMessage(pli.getMessagesConfig().successfully_saved_arena.replaceAll("<arena>", args[1])); + } + else + { + sender.sendMessage(pli.getMessagesConfig().failed_saving_arena.replaceAll("<arena>", args[1])); + sender.sendMessage(ChatColor.GRAY + "++ Debug Info ++"); + sender.sendMessage(ChatColor.GRAY + "LOBBY:" + Util.isComponentForArenaValidRaw(plugin, args[1], "lobby") + ChatColor.RED + ";" + ChatColor.GRAY + " SPAWN0:" + + Util.isComponentForArenaValidRaw(plugin, args[1], "spawns.spawn0") + ChatColor.RED + ";" + ChatColor.GRAY + " BOUNDARIES(possibly needed): low:" + + Util.isComponentForArenaValidRaw(plugin, args[1], ArenaConfigStrings.BOUNDS_LOW) + ", high:" + Util.isComponentForArenaValidRaw(plugin, args[1], ArenaConfigStrings.BOUNDS_HIGH)); + } } } else diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java index 8e21d454..b6aa6fdd 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Util.java @@ -298,6 +298,7 @@ public static Location getMainLobby(final JavaPlugin plugin) if (!config.isSet("mainlobby")) { Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "You forgot to set the mainlobby!"); + return null; } return new Location(plugin.getServer().getWorld(config.getString("mainlobby.world")), config.getDouble("mainlobby.location.x"), config.getDouble("mainlobby.location.y"), config.getDouble("mainlobby.location.z"), (float) config.getDouble("mainlobby.location.yaw"), (float) config.getDouble("mainlobby.location.pitch")); diff --git a/changelog.md b/changelog.md index 33ebbb2e..63f1c70b 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ * fixed specator signs (https://github.com/MysticCity/MinigamesAPI/issues/188) * fixed hologram removal (https://github.com/MysticCity/MinigamesAPI/issues/191) * fixed "console spams"/ checking for debug config option (https://github.com/MysticCity/MinigamesAPI/issues/200) +* fixed NPE if main lobby is missing (https://github.com/MysticCity/MinigamesAPI/issues/201) #### 1.14.14 From 27a510b5cc31624ce6a29ed57cf4a2e2dc5c9dc2 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 10:36:19 +0100 Subject: [PATCH 191/266] api extension --- .../minigamesapi/MinigamesAPI.java | 15 +++++++++++++++ changelog.md | 1 + 2 files changed, 16 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index c80acbdc..2a0590aa 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -399,6 +399,21 @@ public int getValue() Bukkit.getPluginManager().registerEvents(this, this); } + /** + * Returns the arena for player if already playing + * @param playerName players name + * @return arena or {@code null} if not inside an arena + */ + public Arena getArenaForPlayer(String playerName) + { + for (final PluginInstance pli : this.pinstances.values()) + { + final Arena arena = pli.global_players.get(playerName); + if (arena != null) return arena; + } + return null; + } + /** * Checks if crackshot is available. * diff --git a/changelog.md b/changelog.md index 63f1c70b..a81abfac 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,7 @@ * fixed hologram removal (https://github.com/MysticCity/MinigamesAPI/issues/191) * fixed "console spams"/ checking for debug config option (https://github.com/MysticCity/MinigamesAPI/issues/200) * fixed NPE if main lobby is missing (https://github.com/MysticCity/MinigamesAPI/issues/201) +* some api extension (https://github.com/MysticCity/MinigamesAPI/issues/203) #### 1.14.14 From dc36e167a9bd8add3598a7941d2326ddd8d444b7 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 10:41:10 +0100 Subject: [PATCH 192/266] api extension --- .../de/minigameslib/mgapi/api/MinigamesLibInterface.java | 8 ++++++++ .../java/de/minigameslib/mgapi/impl/MinigamesPlugin.java | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index e5e32980..470a104b 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api; import java.util.Collection; +import java.util.UUID; import org.bukkit.plugin.Plugin; @@ -459,5 +460,12 @@ static MinigamesLibInterface instance() * @return arena player */ ArenaPlayerInterface getPlayer(McPlayerInterface player); + + /** + * Returns the arena player for given player uuid + * @param uuid + * @return arena player + */ + ArenaPlayerInterface getPlayer(UUID uuid); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index e3323986..09fdf1c6 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -34,6 +34,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeMap; +import java.util.UUID; import java.util.logging.Level; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -685,6 +686,12 @@ public ArenaPlayerInterface getPlayer(McPlayerInterface player) return impl; } + @Override + public ArenaPlayerInterface getPlayer(UUID uuid) + { + return this.getPlayer(ObjectServiceInterface.instance().getPlayer(uuid)); + } + @Override public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) { From d5d2e8907f32c9eb878a06638684fb99cbd7fb04 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 10:42:45 +0100 Subject: [PATCH 193/266] javadoc fix --- .../java/de/minigameslib/mgapi/api/arena/ArenaInterface.java | 2 +- .../de/minigameslib/mgapi/api/match/ArenaMatchInterface.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 6673c9e7..f0730f8d 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -271,7 +271,7 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy /** * Returns the current arena match - * @return arena match or {@ode null} if arena is not in JOIN or MATCH state. + * @return arena match or {@code null} if arena is not in JOIN or MATCH state. */ ArenaMatchInterface getCurrentMatch(); diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java index 2317ceac..b2ad4137 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -64,7 +64,7 @@ public interface ArenaMatchInterface /** * Checks if match was aborted by admins or server crash - * @return {@ode true} if match was aborted by admins or server crash + * @return {@code true} if match was aborted by admins or server crash */ boolean isAborted(); From 1b33b9ce86b254fcdb35fa6e712177c67a375d54 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 15 Feb 2017 11:04:54 +0100 Subject: [PATCH 194/266] compass tracking fixed --- .../java/com/comze_instancelabs/minigamesapi/ArenaListener.java | 2 +- changelog.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 58d48fa5..48644558 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1702,7 +1702,7 @@ else if (event.getItem().getTypeId() == this.plugin.getConfig() if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_COMPASS_TRACKING_ENABLED)) { final CompassPlayer temp = Util.getNearestPlayer(p, a); - if (temp.getPlayer() != null) + if (temp != null && temp.getPlayer() != null) { p.sendMessage(this.pli.getMessagesConfig().compass_player_found.replaceAll("<player>", temp.getPlayer().getName()).replaceAll("<distance>", Integer.toString((int) Math.round(temp.getDistance())))); diff --git a/changelog.md b/changelog.md index a81abfac..1db97993 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ * fixed "console spams"/ checking for debug config option (https://github.com/MysticCity/MinigamesAPI/issues/200) * fixed NPE if main lobby is missing (https://github.com/MysticCity/MinigamesAPI/issues/201) * some api extension (https://github.com/MysticCity/MinigamesAPI/issues/203) +* compass tracking fixed (https://github.com/MysticCity/MinigamesAPI/issues/206) #### 1.14.14 From 5ef47cb9af9873239dd0b230ea80b6dd670118ac Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 19 Feb 2017 12:39:20 +0100 Subject: [PATCH 195/266] v2 --- .../mgapi/api/arena/ArenaState.java | 5 + .../api/arena/ClassicSinglePlayerArena.java | 2 +- .../mgapi/api/arena/ClassicTeamArena.java | 4 +- .../api/rules/ComponentRuleSetInterface.java | 2 +- .../mgapi/api/rules/SignRuleSetInterface.java | 2 +- .../mgapi/api/rules/ZoneRuleSetInterface.java | 2 +- .../mgapi/impl/MglibMessages.java | 25 +- .../minigameslib/mgapi/impl/MglibPerms.java | 18 ++ .../mgapi/impl/MinigamesPlugin.java | 3 +- .../mgapi/impl/arena/ArenaData.java | 8 + .../mgapi/impl/arena/ArenaImpl.java | 96 ++++++-- .../mgapi/impl/arena/ArenaMatchImpl.java | 136 ++--------- .../mgapi/impl/arena/ArenaPlayerImpl.java | 15 +- .../mgapi/impl/cmd/AdminCheckCommand.java | 17 +- .../mgapi/impl/cmd/AdminCommand.java | 22 +- .../mgapi/impl/cmd/AdminCreateCommand.java | 6 +- .../mgapi/impl/cmd/AdminDeleteCommand.java | 4 +- .../mgapi/impl/cmd/AdminDisableCommand.java | 4 +- .../mgapi/impl/cmd/AdminEnableCommand.java | 4 +- .../mgapi/impl/cmd/AdminGuiCommand.java | 2 +- .../mgapi/impl/cmd/AdminInviteCommand.java | 4 +- .../mgapi/impl/cmd/AdminMaintainCommand.java | 4 +- .../mgapi/impl/cmd/AdminSGuiCommand.java | 2 +- .../mgapi/impl/cmd/AdminSignCommand.java | 121 ++++++++++ .../impl/cmd/AdminSignCreateCommand.java | 156 ++++++++++++ .../mgapi/impl/cmd/AdminSignListCommand.java | 160 +++++++++++++ .../mgapi/impl/cmd/AdminStartCommand.java | 4 +- .../mgapi/impl/cmd/AdminStopCommand.java | 4 +- .../mgapi/impl/cmd/AdminTestCommand.java | 4 +- .../mgapi/impl/cmd/ArenaCommand.java | 12 +- .../mgapi/impl/cmd/ArenaListCommand.java | 2 +- .../mgapi/impl/cmd/InfoCommand.java | 12 +- .../mgapi/impl/cmd/InfoExtensionCommand.java | 4 +- .../mgapi/impl/cmd/InfoMinigameCommand.java | 6 +- .../mgapi/impl/cmd/JoinCommand.java | 2 +- .../mgapi/impl/cmd/LeaveCommand.java | 2 +- .../mgapi/impl/cmd/ManualCommand.java | 2 +- .../mgapi/impl/cmd/Mg2Command.java | 72 +++++- .../mgapi/impl/cmd/SpectateCommand.java | 2 +- .../mgapi/impl/cmd/tool/AdminToolHelper.java | 222 ++++++++++++++++++ .../mgapi/impl/internal/TaskManager.java | 29 ++- .../obj/AbstractBaseArenaObjectHandler.java | 4 +- .../mgapi/impl/obj/EmptySign.java | 14 ++ .../mgapi/impl/obj/GenericSign.java | 14 ++ .../minigameslib/mgapi/impl/obj/JoinSign.java | 14 ++ .../mgapi/impl/obj/LeaveSign.java | 14 ++ .../mgapi/impl/rules/BasicMatch.java | 12 +- .../mgapi/impl/rules/BasicMatchTime.java | 2 +- .../mgapi/impl/rules/BasicSpawns.java | 2 +- .../mgapi/impl/rules/LastManStanding.java | 2 +- .../mgapi/impl/rules/LoseOnDeath.java | 2 +- .../mgapi/impl/rules/PlayerNoEntry.java | 2 +- .../mgapi/impl/rules/PvPMode.java | 4 +- ...tTask.java => AbstractAsyncArenaTask.java} | 18 +- .../tasks/AsyncArenaRecoverCrashTask.java | 68 ++++++ ...shTask.java => AsyncArenaRestartTask.java} | 25 +- .../mgapi/impl/tasks/AsyncArenaStartTask.java | 95 ++++++++ ...startTask.java => AsyncTaskInterface.java} | 26 +- .../mgapi/impl/tasks/InitTask.java | 19 +- v2/pom.xml | 2 +- 60 files changed, 1261 insertions(+), 281 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java rename v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/{ArenaStartTask.java => AbstractAsyncArenaTask.java} (72%) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java rename v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/{ArenaRecoverCrashTask.java => AsyncArenaRestartTask.java} (69%) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java rename v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/{ArenaRestartTask.java => AsyncTaskInterface.java} (62%) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java index 1a8dddff..cd29a155 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java @@ -32,6 +32,11 @@ public enum ArenaState { + /** + * The arena is booting. This is only an internal state during server startup. + */ + Booting, + /** * The arena is disabled. Cannot be used. */ diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java index 131f4695..bf239f8e 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java @@ -56,7 +56,7 @@ public Collection<ArenaRuleSetType> getFixedArenaRules() @Override public Collection<ArenaRuleSetType> getOptionalArenaRules() { - // TODO Auto-generated method stub + // TODO optional rules for classic simple player arena return Collections.emptyList(); } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java index 78d3bcd8..1cf9277f 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java @@ -48,14 +48,14 @@ public abstract class ClassicTeamArena implements ArenaTypeProvider @Override public Collection<ArenaRuleSetType> getFixedArenaRules() { - // TODO Auto-generated method stub + // TODO implement oitc team arena return Collections.emptyList(); } @Override public Collection<ArenaRuleSetType> getOptionalArenaRules() { - // TODO Auto-generated method stub + // TODO implement oitc team arena return Collections.emptyList(); } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java index 55707526..436bb982 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java @@ -32,6 +32,6 @@ public interface ComponentRuleSetInterface extends RuleSetInterface<ComponentRuleSetType> { - // TODO + // TODO api for ComponentRuleSetInterface } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java index d69df628..3acdfad2 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java @@ -32,6 +32,6 @@ public interface SignRuleSetInterface extends RuleSetInterface<SignRuleSetType> { - // TODO + // TODO api for SignRuleSetInterface } diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java index a9d81f76..e19d1629 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java @@ -32,6 +32,6 @@ public interface ZoneRuleSetInterface extends RuleSetInterface<ZoneRuleSetType> { - // TODO + // TODO api for ZoneRuleSetInterface } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index bbcda1f3..2e39e1ab 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -43,6 +43,9 @@ import de.minigameslib.mgapi.impl.cmd.AdminInviteCommand; import de.minigameslib.mgapi.impl.cmd.AdminMaintainCommand; import de.minigameslib.mgapi.impl.cmd.AdminSGuiCommand; +import de.minigameslib.mgapi.impl.cmd.AdminSignCommand; +import de.minigameslib.mgapi.impl.cmd.AdminSignCreateCommand; +import de.minigameslib.mgapi.impl.cmd.AdminSignListCommand; import de.minigameslib.mgapi.impl.cmd.AdminStartCommand; import de.minigameslib.mgapi.impl.cmd.AdminStopCommand; import de.minigameslib.mgapi.impl.cmd.AdminTestCommand; @@ -58,6 +61,7 @@ import de.minigameslib.mgapi.impl.cmd.ManualCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.cmd.SpectateCommand; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; import de.minigameslib.mgapi.impl.rules.BasicMatch; /** @@ -97,12 +101,23 @@ AdminInviteCommand.Messages.class, AdminGuiCommand.Messages.class, AdminSGuiCommand.Messages.class, + // admin sign commands + AdminSignCommand.Messages.class, + AdminSignListCommand.Messages.class, + AdminSignCreateCommand.Messages.class, + // admin tools + AdminToolHelper.Messages.class, // rules BasicMatch.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { + /** Arena is booting. */ + @LocalizedMessage(defaultMessage = "BOOTING/ERROR", severity = MessageSeverityType.Error) + @MessageComment({"Arena is booting or has loading errors."}) + ArenaStateBooting, + /** Arena is disabled. */ @LocalizedMessage(defaultMessage = "DISABLED", severity = MessageSeverityType.Error) @MessageComment({"Arena is disabled."}) @@ -213,7 +228,7 @@ public enum MglibCoreErrors implements LocalizedMessageInterface /** * Arena is duplicate */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already exists", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already exists", severity = MessageSeverityType.Error) @MessageComment( value = {"Arena is duplicate"}, args = {@Argument("Arena name")}) @@ -222,7 +237,7 @@ public enum MglibCoreErrors implements LocalizedMessageInterface /** * Plugin tries to register multiple minigames */ - @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered a minigame", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered a minigame", severity = MessageSeverityType.Error) @MessageComment( value = {"Plugin tries to register multiple minigames"}, args = {@Argument("Plugin name")}) @@ -231,7 +246,7 @@ public enum MglibCoreErrors implements LocalizedMessageInterface /** * Minigame with given name is already registered */ - @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered", severity = MessageSeverityType.Error) @MessageComment( value = {"Minigame with given name is already registered"}, args = {@Argument("Minigame name")}) @@ -240,7 +255,7 @@ public enum MglibCoreErrors implements LocalizedMessageInterface /** * Plugin tries to register multiple extensions */ - @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered an extension", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered an extension", severity = MessageSeverityType.Error) @MessageComment( value = {"Plugin tries to register multiple extensions"}, args = {@Argument("Plugin name")}) @@ -249,7 +264,7 @@ public enum MglibCoreErrors implements LocalizedMessageInterface /** * Extension with given name is already registered */ - @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s.yml" + LocalizedMessage.DARK_RED + " already registered", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered", severity = MessageSeverityType.Error) @MessageComment( value = {"Extension with given name is already registered"}, args = {@Argument("Extension name")}) diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java index f53cd838..dcf711c5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java @@ -145,6 +145,24 @@ public enum MglibPerms implements PermissionsInterface @Permission("command.admin.invite") CommandAdminInvite, + /** + * Permission for admin signs. + */ + @Permission("command.admin.sign") + CommandAdminSign, + + /** + * Permission for admin zones. + */ + @Permission("command.admin.zone") + CommandAdminZone, + + /** + * Permission for admin components. + */ + @Permission("command.admin.comp") + CommandAdminComp, + /** * Permission for admin gui command. */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 09fdf1c6..d5adfe02 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -314,6 +314,7 @@ public void onEnable() try { ObjectServiceInterface.instance().register(MglibObjectTypes.Arena, ArenaImpl.class); + ObjectServiceInterface.instance().resumeObjects(this); } catch (McException ex) { @@ -327,7 +328,7 @@ public void onEnable() { this.checkArenaName(arena); this.getLogger().log(Level.INFO, "Found arena " + arena); //$NON-NLS-1$ - final ArenaImpl arenaImpl = new ArenaImpl(new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ + final ArenaImpl arenaImpl = new ArenaImpl(arena, new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ this.arenasPerName.put(arena, arenaImpl); } catch (McException ex) diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java index f271bccc..dec41f24 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java @@ -133,6 +133,14 @@ public class ArenaData extends AnnotatedDataFragment */ @PersistentField private Set<EntityIdInterface> entities = new HashSet<>(); + + /** + * Constructor + */ + public ArenaData() + { + // constructor for loading from data sections + } /** * @param name diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 6a5e0c96..2aaf5898 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -90,8 +90,8 @@ import de.minigameslib.mgapi.impl.MinigamesPlugin; import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.rules.AbstractRuleSetContainer; -import de.minigameslib.mgapi.impl.tasks.ArenaRestartTask; -import de.minigameslib.mgapi.impl.tasks.ArenaStartTask; +import de.minigameslib.mgapi.impl.tasks.AsyncArenaRestartTask; +import de.minigameslib.mgapi.impl.tasks.AsyncArenaStartTask; /** * Arena data. @@ -140,7 +140,7 @@ public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface @Override protected void checkModifications() throws McException { - if (ArenaImpl.this.getState() != ArenaState.Maintenance) + if (ArenaImpl.this.getState() != ArenaState.Maintenance && ArenaImpl.this.getState() != ArenaState.Booting) { throw new McException(Messages.ModificationWrongState); } @@ -167,11 +167,14 @@ protected ArenaRuleSetInterface create(ArenaRuleSetType ruleset) throws McExcept /** * Constructor to create an arena by using given data file. + * @param name * @param dataFile */ - public ArenaImpl(File dataFile) + public ArenaImpl(String name, File dataFile) { this.dataFile = dataFile; + this.state = ArenaState.Booting; + this.arenaData = new ArenaData(name, null); } /** @@ -218,6 +221,10 @@ public void resume() throws McException this.arenaData = section.getFragment(ArenaData.class, "data"); //$NON-NLS-1$ this.logger = new ArenaLogger(this.getInternalName()); this.type = this.arenaData.getArenaType(); + if (this.type == null) + { + throw new McException(CommonMessages.InternalError, "Missing arena type. Did you install the minigame plugin? Arena: " + this.getInternalName()); //$NON-NLS-1$ + } this.object = ObjectServiceInterface.instance().createObject(MglibObjectTypes.Arena, this, false); try { @@ -232,8 +239,14 @@ public void resume() throws McException this.object = null; throw ex; } + catch (RuntimeException ex) + { + this.object.delete(); + this.object = null; + throw new McException(CommonMessages.InternalError, ex, ex.getMessage()); + } } - catch (IOException e) + catch (IOException | RuntimeException e) { throw new McException(CommonMessages.InternalError, e, e.getMessage()); } @@ -300,7 +313,7 @@ private void resumeRuleSets() throws McException { this.arenaData.getOptionalRules().remove(ruleset); this.arenaData.getFixedRules().add(ruleset); - this.saveData(); + this.saveDataInternal(); } this.ruleSets.applyFixedRuleSet(ruleset); } @@ -308,7 +321,7 @@ private void resumeRuleSets() throws McException { this.arenaData.getFixedRules().remove(ruleset); this.arenaData.getOptionalRules().add(ruleset); - this.saveData(); + this.saveDataInternal(); } for (final ArenaRuleSetType ruleset : this.arenaData.getOptionalRules()) { @@ -369,6 +382,19 @@ public LocalizedConfigLine getManual() @Override public void saveData() throws McException + { + if (this.state == ArenaState.Booting) + { + // booting arenas will never be ready for manipulation or save. + throw new McException(Messages.InvalidArenaType); + } + saveDataInternal(); + } + + /** + * @throws McException + */ + private void saveDataInternal() throws McException { final DataSection section = new MemoryDataSection(); section.set("data", this.arenaData); //$NON-NLS-1$ @@ -457,6 +483,7 @@ public void spectate(ArenaPlayerInterface player) throws McException } switch (this.state) { + case Booting: case Disabled: case Join: case Maintenance: @@ -491,7 +518,38 @@ public void setEnabledState() throws McException this.saveData(); this.state = ArenaState.Starting; - TaskManager.instance().queue(new ArenaStartTask(this)); + TaskManager.instance().queue(new AsyncArenaStartTask(this)); + } + + /** + * Non-api function to force disabled state, not meant to be called by minigames. + * @throws McException + */ + public void setDisabled0() throws McException + { + this.arenaData.setEnabled(false); + this.saveDataInternal(); + this.state = ArenaState.Disabled; + } + + /** + * Non-api function to force maintenance state, not meant to be called by minigames. + * @throws McException + */ + public void setMaintenance0() throws McException + { + this.arenaData.setMaintenance(true); + this.saveDataInternal(); + this.state = ArenaState.Maintenance; + } + + /** + * Non-api function to force join state, not meant to be called by minigames. + * @throws McException + */ + public void setJoin0() throws McException + { + this.state = ArenaState.Join; } @Override @@ -500,6 +558,7 @@ public void setDisabledState(boolean force) throws McException switch (this.state) { default: + case Booting: case Disabled: throw new McException(Messages.DisableWrongState); case Maintenance: @@ -515,7 +574,7 @@ public void setDisabledState(boolean force) throws McException // abort current game to kick players being in waiting lobby. this.abortGame(Messages.KickReasonDisable); this.state = ArenaState.Restarting; - TaskManager.instance().queue(new ArenaRestartTask(this)); + TaskManager.instance().queue(new AsyncArenaRestartTask(this)); break; case Match: case PostMatch: @@ -528,7 +587,7 @@ public void setDisabledState(boolean force) throws McException // abort current game. this.abortGame(Messages.KickReasonDisable); this.state = ArenaState.Restarting; - TaskManager.instance().queue(new ArenaRestartTask(this)); + TaskManager.instance().queue(new AsyncArenaRestartTask(this)); } break; } @@ -573,6 +632,7 @@ public void setMaintenance(boolean force) throws McException { default: case Maintenance: + case Booting: throw new McException(Messages.MaintenanceWrongState); case Disabled: if (this.arenaData.getArenaType() == null) @@ -598,7 +658,7 @@ public void setMaintenance(boolean force) throws McException // abort current game. this.abortGame(Messages.KickReasonMaintenance); this.state = ArenaState.Restarting; - TaskManager.instance().queue(new ArenaRestartTask(this)); + TaskManager.instance().queue(new AsyncArenaRestartTask(this)); } break; } @@ -649,6 +709,7 @@ public boolean isMatch() { switch (this.state) { + case Booting: case Join: case Disabled: case Maintenance: @@ -707,7 +768,7 @@ private void delete0() @Override public Collection<CheckFailure> check() { - // TODO Auto-generated method stub + // TODO implement checkup return Collections.emptyList(); } @@ -800,7 +861,7 @@ public boolean test(DataSection section) @Override public void canDelete() throws McException { - if (ArenaImpl.this.getState() != ArenaState.Maintenance) + if (ArenaImpl.this.getState() != ArenaState.Maintenance && ArenaImpl.this.getState() != ArenaState.Booting) { throw new McException(Messages.ModificationWrongState); } @@ -876,7 +937,7 @@ public Collection<ArenaRuleSetType> getAppliedRuleSetTypes() @Override public Collection<ArenaRuleSetType> getAvailableRuleSetTypes() { - // TODO Auto-generated method stub + // TODO implement available rule sets return Collections.emptyList(); } @@ -901,7 +962,7 @@ public boolean isApplied(ArenaRuleSetType ruleset) @Override public boolean isAvailable(ArenaRuleSetType ruleset) { - // TODO Auto-generated method stub + // TODO implement available rule sets return false; } @@ -1063,13 +1124,10 @@ public <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId t) th return (T) handler; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.arena.ArenaInterface#getCurrentMatch() - */ @Override public ArenaMatchInterface getCurrentMatch() { - // TODO Auto-generated method stub + // TODO implement current matches return null; } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index 03f51b54..a28f83bf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -136,254 +136,168 @@ public Collection<TeamIdType> getTeams() return this.teams.keySet(); } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getPreferredTeam() - */ @Override public TeamIdType getPreferredTeam() { - // TODO Auto-generated method stub + // TODO implement team mode return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#join(de.minigameslib.mgapi.api.player.ArenaPlayerInterface, de.minigameslib.mgapi.api.team.TeamIdType) - */ @Override public void join(ArenaPlayerInterface player, TeamIdType team) throws McException { - // TODO Auto-generated method stub - + // TODO implement joins } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#isTeamMatch() - */ @Override public boolean isTeamMatch() { - // TODO Auto-generated method stub + // TODO implement team mode return false; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getTeam(java.util.UUID) - */ @Override public TeamIdType getTeam(UUID uuid) { - // TODO Auto-generated method stub + // TODO implement team mode return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getParticipants() - */ @Override public Collection<UUID> getParticipants() { - // TODO Auto-generated method stub + // TODO implement participants return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getWinners() - */ @Override public Collection<UUID> getWinners() { - // TODO Auto-generated method stub + // TODO implement winners/losers return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getLosers() - */ @Override public Collection<UUID> getLosers() { - // TODO Auto-generated method stub + // TODO implement winners/losers return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getResults() - */ @Override public Collection<MatchResult> getResults() { - // TODO Auto-generated method stub + // TODO implement match results return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getResultCount() - */ @Override public int getResultCount() { - // TODO Auto-generated method stub + // TODO implement match results return 0; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getResult(int) - */ @Override public MatchResult getResult(int place) { - // TODO Auto-generated method stub + // TODO implement match results return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getSpawn(java.util.UUID) - */ @Override public ComponentIdInterface getSpawn(UUID uuid) { - // TODO Auto-generated method stub + // TODO implement spawn selector return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#selectSpawn(java.util.UUID, de.minigameslib.mclib.api.objects.ComponentIdInterface) - */ @Override public void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException { - // TODO Auto-generated method stub - + // TODO implement spawn selector } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getStatistic(java.util.UUID, de.minigameslib.mgapi.api.match.MatchStatisticId) - */ @Override public int getStatistic(UUID player, MatchStatisticId statistic) { - // TODO Auto-generated method stub + // TODO implement statistics return 0; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getStatistic(de.minigameslib.mgapi.api.team.TeamIdType, de.minigameslib.mgapi.api.match.MatchStatisticId) - */ @Override public int getStatistic(TeamIdType team, MatchStatisticId statistic) { - // TODO Auto-generated method stub + // TODO implement statistics return 0; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setStatistic(java.util.UUID, de.minigameslib.mgapi.api.match.MatchStatisticId, int) - */ @Override public void setStatistic(UUID player, MatchStatisticId statistic, int value) { - // TODO Auto-generated method stub - + // TODO implement statistics } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setStatistic(de.minigameslib.mgapi.api.team.TeamIdType, de.minigameslib.mgapi.api.match.MatchStatisticId, int) - */ @Override public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) { - // TODO Auto-generated method stub - + // TODO implement statistics } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#addStatistic(java.util.UUID, de.minigameslib.mgapi.api.match.MatchStatisticId, int) - */ @Override public void addStatistic(UUID player, MatchStatisticId statistic, int amount) { - // TODO Auto-generated method stub - + // TODO implement statistics } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#addStatistic(de.minigameslib.mgapi.api.team.TeamIdType, de.minigameslib.mgapi.api.match.MatchStatisticId, int) - */ @Override public void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) { - // TODO Auto-generated method stub - + // TODO implement statistics } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getPlayTime(java.util.UUID) - */ @Override public int getPlayTime(UUID player) { - // TODO Auto-generated method stub + // TODO implement played time return 0; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getKillerTracking(java.util.UUID) - */ @Override public KillerTracking getKillerTracking(UUID player) { - // TODO Auto-generated method stub + // TODO implement killer tracker return null; } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#trackDamageForKill(java.util.UUID, java.util.UUID) - */ @Override public void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException { - // TODO Auto-generated method stub - + // TODO implement dmg tracker } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setLoser(java.util.UUID[]) - */ @Override public void setLoser(UUID... players) throws McException { - // TODO Auto-generated method stub - + // TODO implement setting losers } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setWinner(java.util.UUID[]) - */ @Override public void setWinner(UUID... players) throws McException { - // TODO Auto-generated method stub - + // TODO implement setting winners } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setLoser(de.minigameslib.mgapi.api.team.TeamIdType[]) - */ @Override public void setLoser(TeamIdType... teams) throws McException { - // TODO Auto-generated method stub - + // TODO implement setting losers } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#setWinner(de.minigameslib.mgapi.api.team.TeamIdType[]) - */ @Override public void setWinner(TeamIdType... teams) throws McException { - // TODO Auto-generated method stub - + // TODO implement setting winners } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java index 9dbf8dc5..8e1bbbd8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java @@ -152,32 +152,25 @@ public boolean isPlaying() @Override public void die() { - // TODO Auto-generated method stub - + // TODO implement player die } @Override public void lose() { - // TODO Auto-generated method stub - + // TODO implement player lose } @Override public void win() { - // TODO Auto-generated method stub - + // TODO implement player win } - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.player.ArenaPlayerInterface#die(de.minigameslib.mgapi.api.player.ArenaPlayerInterface) - */ @Override public void die(ArenaPlayerInterface killer) { - // TODO Auto-generated method stub - + // TODO implement player die } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java index 3c9c03fe..0f1c00d7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java @@ -64,7 +64,9 @@ public void handle(CommandInterface command) throws McException final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + // TODO maybe async? final Collection<CheckFailure> checks = arena.check(); + command.send(Messages.CheckHeader, arena.getDisplayName()); for (final CheckFailure failure : checks) { switch (failure.getSeverity()) @@ -131,28 +133,35 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin check */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin check <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin check <internal-name>") @MessageComment({"Usage of /mg2 admin check"}) Usage, + /** + * Arena check result + */ + @LocalizedMessage(defaultMessage = "check results (arena " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.INFORMATION_COLOR + ")", severity = MessageSeverityType.Information) + @MessageComment(value = {"Arena check result"}, args = {@Argument("arena display name")}) + CheckHeader, + /** * Arena check error line */ - @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + "] %2$s", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + "] %2$s", severity = MessageSeverityType.Error) @MessageComment(value = {"Arena check error line"}, args = {@Argument("arena display name"), @Argument("title text")}) ArenaError, /** * Arena check warning line */ - @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.YELLOW + "] %2$s", severity = MessageSeverityType.Warning) + @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.WARNING_COLOR + "] %2$s", severity = MessageSeverityType.Warning) @MessageComment(value = {"Arena check warning line"}, args = {@Argument("arena display name"), @Argument("title text")}) ArenaWarning, /** * Arena check info line */ - @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.GREEN + "] %2$s", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.INFORMATION_COLOR + "] %2$s", severity = MessageSeverityType.Information) @MessageComment(value = {"Arena check info line"}, args = {@Argument("arena display name"), @Argument("title text")}) ArenaInfo, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java index 125262d1..65cfaec0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java @@ -46,7 +46,14 @@ public class AdminCommand extends AbstractCompositeCommandHandler implements Sub @Override public boolean visible(CommandInterface command) { - return command.isOp() || (command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandAdmin)); + return command.checkOpPermission(MglibPerms.CommandAdmin); + } + + @Override + protected boolean pre(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdmin, command.getCommandPath()); + return true; } /** @@ -65,18 +72,13 @@ public AdminCommand() this.subCommands.put("stop", new AdminStopCommand()); //$NON-NLS-1$ this.subCommands.put("test", new AdminTestCommand()); //$NON-NLS-1$ this.subCommands.put("invite", new AdminInviteCommand()); //$NON-NLS-1$ + this.subCommands.put("sign", new AdminSignCommand()); //$NON-NLS-1$ +// TODO this.subCommands.put("zone", new AdminZoneCommand()); //$NON-NLS-1$ +// TODO this.subCommands.put("comp", new AdminCompCommand()); //$NON-NLS-1$ this.subCommands.put("gui", new AdminGuiCommand()); //$NON-NLS-1$ this.subCommands.put("sgui", new AdminSGuiCommand()); //$NON-NLS-1$ } - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdmin, command.getCommandPath()); - - super.handle(command); - } - @Override public LocalizedMessageInterface getShortDescription(CommandInterface command) { @@ -121,7 +123,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin <sub-command>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin <sub-command>") @MessageComment({"Usage of /mg2 admin"}) Usage, } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java index 4023035a..bfac2881 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java @@ -132,21 +132,21 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin create */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin create <internal-name> <minigame> <type>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin create <internal-name> <minigame> <type>") @MessageComment({"Usage of /mg2 admin create"}) Usage, /** * Type was not found */ - @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"Type was not found"}, args = @Argument("type name")) TypeNotFound, /** * Arena created */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was created.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was created.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena created"}, args = @Argument("type name")) ArenaCreated, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java index afc0b087..c7e255bd 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java @@ -114,14 +114,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin delete */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin delete <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin delete <internal-name>") @MessageComment({"Usage of /mg2 admin delete"}) Usage, /** * Arena deleted */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was deleted.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was deleted.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena deleted"}, args = @Argument("arena display name")) ArenaDeleted, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java index 3f31409f..b3eed6c0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java @@ -113,14 +113,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin disable */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin disable <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin disable <internal-name>") @MessageComment({"Usage of /mg2 admin disable"}) Usage, /** * Arena disabled */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was disabled. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was disabled. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena disabled"}, args = @Argument("arena name")) ArenaDisabled, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java index 344f24f6..535c4a37 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java @@ -113,14 +113,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin enable */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin enable <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin enable <internal-name>") @MessageComment({"Usage of /mg2 admin enable"}) Usage, /** * Arena enabled */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was enabled. Players can join after starting was finished.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was enabled. Players can join after starting was finished.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena enabled"}, args = @Argument("arena name")) ArenaEnabled, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java index 55ba0aae..4f3a5222 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java @@ -101,7 +101,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin gui */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin gui") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin gui") @MessageComment({"Usage of /mg2 admin gui"}) Usage diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java index bd8e1a8d..6cfc7c75 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java @@ -122,14 +122,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin invite */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin invite <player> <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin invite <player> <internal-name>") @MessageComment({"Usage of /mg2 admin invite"}) Usage, /** * Arena invite succeded */ - @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " was invited to arena " + LocalizedMessage.BLUE + "%2$s " + LocalizedMessage.GREEN + ".", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.GREEN + " was invited to arena " + LocalizedMessage.CODE_COLOR + "%2$s " + LocalizedMessage.SUCCESS_COLOR + ".", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena invite succeeded"}, args = {@Argument("player name"), @Argument("arena name")}) PlayerInvited, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java index b21e4e8e..6b7f45db 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java @@ -113,14 +113,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin maintain */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin maintain <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin maintain <internal-name>") @MessageComment({"Usage of /mg2 admin maintain"}) Usage, /** * Arena is under maintenance */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " is now under maintenance. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " is now under maintenance. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena is under maintenance"}, args = @Argument("arena name")) ArenaUnderMaintenance, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java index abab0a08..659a91c4 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java @@ -102,7 +102,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin sgui */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin sgui") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sgui") @MessageComment({"Usage of /mg2 admin sgui"}) Usage diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java new file mode 100644 index 00000000..fe4ac47a --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java @@ -0,0 +1,121 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminSignCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminSign); + } + + @Override + protected boolean pre(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); + return true; + } + + /** + * Constructor to register sub commands. + */ + public AdminSignCommand() + { + this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ + this.subCommands.put("list", new AdminSignListCommand()); //$NON-NLS-1$ + this.subCommands.put("create", new AdminSignCreateCommand()); //$NON-NLS-1$ +// this.subCommands.put("delete", new AdminSignDeleteCommand()); //$NON-NLS-1$ +// this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ +// this.subCommands.put("tp", new AdminSignTpCommand()); //$NON-NLS-1$ + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected void sendUsage(CommandInterface command) + { + command.send(Messages.Usage); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_sign") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin sign + */ + @LocalizedMessage(defaultMessage = "Manipulate arena signs") + @MessageComment({"Short description of /mg2 admin sign"}) + ShortDescription, + + /** + * Long description of /mg2 admin sign + */ + @LocalizedMessage(defaultMessage = "Display simple admin sign") + @MessageComment({"Long description of /mg2 admin sign"}) + Description, + + /** + * Usage of /mg2 admin sign + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign <sub-command>") + @MessageComment({"Usage of /mg2 admin sign"}) + Usage + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java new file mode 100644 index 00000000..6482a7c9 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java @@ -0,0 +1,156 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.impl.MglibPerms; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; + +/** + * @author mepeisen + * + */ +public class AdminSignCreateCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSign); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); + final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); + + @SuppressWarnings("cast") + final Optional<ArenaSignHandler> handler = arena.getSigns().stream(). + map(s -> (ArenaSignHandler) arena.getHandler(s)). + filter(s -> s.getName().equals(name)). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + final SignTypeId type = Mg2Command.getEnum(command, SignTypeId.class, typeName); + + AdminToolHelper.onCreateSign(command.getPlayer(), arena, name, type, null); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + if (command.getArgs().length == 2) + { + final Set<String> result = new TreeSet<>(); + for (final SignTypeId signType : EnumServiceInterface.instance().getEnumValues(SignTypeId.class)) + { + result.add(signType.getPluginName() + "/" + signType.name()); //$NON-NLS-1$ + } + System.out.println(lastArg); + return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_delete") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin delete + */ + @LocalizedMessage(defaultMessage = "deletes an existing arena") + @MessageComment({"Short description of /mg2 admin delete"}) + ShortDescription, + + /** + * Long description of /mg2 admin delete + */ + @LocalizedMessage(defaultMessage = "deletes an existing arena") + @MessageComment({"Long description of /mg2 admin delete"}) + Description, + + /** + * Usage of /mg2 admin delete + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign create <arena> <name> <type>") + @MessageComment({"Usage of /mg2 admin delete"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java new file mode 100644 index 00000000..ea551da8 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java @@ -0,0 +1,160 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminSignListCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminSign); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + + McLibInterface.instance().setContext(ArenaInterface.class, arena); + super.handle(command); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected int getLineCount(CommandInterface command) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return arena.getSigns().size(); + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return Messages.Header.toArg(arena.getInternalName()); + } + + @SuppressWarnings("cast") + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return arena.getSigns().stream(). + skip(start). + limit(count). + map(s -> (ArenaSignHandler) arena.getHandler(s)). + map(ArenaSignHandler::getName). + toArray(Serializable[]::new); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_sign_list") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin sign list + */ + @LocalizedMessage(defaultMessage = "lists arena signs") + @MessageComment({"Short description of /mg2 admin sign list"}) + ShortDescription, + + /** + * Long description of /mg2 admin sign list + */ + @LocalizedMessage(defaultMessage = "lists arena signs") + @MessageComment({"Long description of /mg2 admin sign list"}) + Description, + + /** + * Usage of /mg2 admin sign list + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign list <arena-name> [page]") + @MessageComment({"Usage of /mg2 admin sign list"}) + Usage, + + /** + * Pageable header line + */ + @LocalizedMessage(defaultMessage = "Signs of " + LocalizedMessage.CODE_COLOR + "%1$s") + @MessageComment(value = {"Pageable header line of /mg2 admin sign list"}, args=@Argument("arena internal name")) + Header + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java index f1c9e36a..26855570 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java @@ -114,14 +114,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin start */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin start <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin start <internal-name>") @MessageComment({"Usage of /mg2 admin start"}) Usage, /** * Arena started */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " match was started. Players can join after starting was finished.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " match was started. Players can join after starting was finished.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena started"}, args = @Argument("arena name")) ArenaStarted, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java index d55b7671..6e78e7e8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java @@ -113,14 +113,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin stop */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin stop <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin stop <internal-name>") @MessageComment({"Usage of /mg2 admin stop"}) Usage, /** * Arena stopped */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " match was stopped. Players can join after starting was finished.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " match was stopped. Players can join after starting was finished.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena stopped"}, args = @Argument("arena name")) ArenaStopped, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java index b2a85e95..6bcdd943 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java @@ -114,14 +114,14 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 admin test */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 admin test <internal-name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin test <internal-name>") @MessageComment({"Usage of /mg2 admin test"}) Usage, /** * Arena test started */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.GREEN + " test match was started. Players can be invited after starting was finished.", severity = MessageSeverityType.Success) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " test match was started. Players can be invited after starting was finished.", severity = MessageSeverityType.Success) @MessageComment(value = {"Arena test started"}, args = @Argument("arena name")) ArenaTestStarted, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java index ba767f40..69e562fc 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java @@ -91,6 +91,8 @@ private LocalizedMessageInterface toString(ArenaState state) switch (state) { default: + case Booting: + return MglibMessages.ArenaStateBooting; case Disabled: return MglibMessages.ArenaStateDisabled; case Join: @@ -158,7 +160,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 arena */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 arena <name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 arena <name>") @MessageComment({"Usage of /mg2 arena"}) Usage, @@ -172,7 +174,7 @@ public enum Messages implements LocalizedMessageInterface /** * Arena was not found */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s " + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) ArenaNotFound, @@ -187,9 +189,9 @@ public enum Messages implements LocalizedMessageInterface "%5$s", "----------", "Additional commands:", - " " + LocalizedMessage.BLUE + "/mg2 join %6$s " + LocalizedMessage.GRAY + " to join the arena.", - " " + LocalizedMessage.BLUE + "/mg2 spectate %6$s " + LocalizedMessage.GRAY + " to spectate an active match.", - " " + LocalizedMessage.BLUE + "/mg2 manual %6$s " + LocalizedMessage.GRAY + " to display a manual." + " " + LocalizedMessage.CODE_COLOR + "/mg2 join %6$s " + LocalizedMessage.INFORMATION_COLOR + " to join the arena.", + " " + LocalizedMessage.CODE_COLOR + "/mg2 spectate %6$s " + LocalizedMessage.INFORMATION_COLOR + " to spectate an active match.", + " " + LocalizedMessage.CODE_COLOR + "/mg2 manual %6$s " + LocalizedMessage.INFORMATION_COLOR + " to display a manual." }) @MessageComment(value = { "The command output of /mg2 arena" diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java index 0fbb463b..6675b0ef 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java @@ -75,7 +75,7 @@ protected Serializable getHeader(CommandInterface command) @Override protected Serializable[] getLines(CommandInterface command, int start, int limit) { - return this.arenas.get().skip(start).limit(limit).map(p -> p.getDisplayName()).toArray(Serializable[]::new); + return this.arenas.get().skip(start).limit(limit).map(p -> p.getInternalName()).toArray(Serializable[]::new); } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java index 9eaa5c88..ef0ea6cd 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java @@ -63,11 +63,11 @@ public InfoCommand() this.subCommands.put("minigame", new InfoMinigameCommand()); //$NON-NLS-1$ // this.subCommands.put("extension", new InfoExtensionCommand()); //$NON-NLS-1$ } - + @Override - public boolean visible(CommandInterface command) + protected boolean pre(CommandInterface command) throws McException { - return command.isOp() || (command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandInfo)); + return true; } @Override @@ -210,8 +210,8 @@ public enum Messages implements LocalizedMessageInterface "debugging: %5$s", "----------", "Run for additional information:", - " " + LocalizedMessage.BLUE + "%1$s extensions " + LocalizedMessage.GRAY + " to list the extensions.", - " " + LocalizedMessage.BLUE + "%1$s minigames " + LocalizedMessage.GRAY + " to list the minigames." + " " + LocalizedMessage.CODE_COLOR + "%1$s extensions " + LocalizedMessage.INFORMATION_COLOR + " to list the extensions.", + " " + LocalizedMessage.CODE_COLOR + "%1$s minigames " + LocalizedMessage.INFORMATION_COLOR + " to list the minigames." }) @MessageComment(value = { "The command output of /mg2 info" @@ -232,7 +232,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage for command /mg2 info */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Enter " + LocalizedMessage.BLUE + "/mg2 info help" + LocalizedMessage.GRAY + " for detailed help") + @LocalizedMessage(defaultMessage = "Enter " + LocalizedMessage.CODE_COLOR + "/mg2 info help" + LocalizedMessage.INFORMATION_COLOR + " for detailed help") @MessageComment({"Usage for command /mg2 info"}) Usage diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java index 945c4d2d..7fc9cf85 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java @@ -137,7 +137,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 info extension */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 info extension <name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 info extension <name>") @MessageComment({"Usage of /mg2 info extension"}) Usage, @@ -151,7 +151,7 @@ public enum Messages implements LocalizedMessageInterface "%4$s", "----------", "Run for additional information:", - " " + LocalizedMessage.BLUE + "%5$s %6$s manual " + LocalizedMessage.GRAY + " to display a manual." + " " + LocalizedMessage.CODE_COLOR + "%5$s %6$s manual " + LocalizedMessage.INFORMATION_COLOR + " to display a manual." }) @MessageComment(value = { "The command output of /mg2 info extension" diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java index 716e1443..485acbf3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java @@ -145,7 +145,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 info minigame */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 info minigame <name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 info minigame <name>") @MessageComment({"Usage of /mg2 info minigame"}) Usage, @@ -159,8 +159,8 @@ public enum Messages implements LocalizedMessageInterface "%4$s", "----------", "Run for additional information:", - " " + LocalizedMessage.BLUE + "%5$s %6$s arenas " + LocalizedMessage.GRAY + " to list the minigame arenas.", - " " + LocalizedMessage.BLUE + "%5$s %6$s manual " + LocalizedMessage.GRAY + " to display a manual." + " " + LocalizedMessage.CODE_COLOR + "%5$s %6$s arenas " + LocalizedMessage.INFORMATION_COLOR + " to list the minigame arenas.", + " " + LocalizedMessage.CODE_COLOR + "%5$s %6$s manual " + LocalizedMessage.INFORMATION_COLOR + " to display a manual." }) @MessageComment(value = { "The command output of /mg2 info minigame" diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java index 791f70e2..b41b9c06 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java @@ -122,7 +122,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 join */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 join <name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 join <name>") @MessageComment({"Usage of /mg2 join"}) Usage, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java index bc3567c5..c63b7edf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java @@ -116,7 +116,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 leave */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 leave") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 leave") @MessageComment({"Usage of /mg2 leave"}) Usage, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java index 15a33e65..1f9653db 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java @@ -121,7 +121,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 manual */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 manual <name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 manual <name>") @MessageComment({"Usage of /mg2 manual"}) Usage, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java index 649d8c77..38380556 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -31,6 +31,7 @@ import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; import de.minigameslib.mclib.api.cmd.CommandInterface; import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessageList; @@ -39,6 +40,7 @@ import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.shared.api.com.UniqueEnumerationValue; import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.ExtensionInterface; import de.minigameslib.mgapi.api.MinigameInterface; @@ -169,6 +171,29 @@ public static MinigameInterface getMinigameOptional(CommandInterface command, St return minigame; } + /** + * Maps argument to unique enum value + * @param command + * @param clazz + * @param typeName + * @return type enum + * @throws McException thrown if type enum was not found + */ + public static <T extends UniqueEnumerationValue> T getEnum(CommandInterface command, Class<T> clazz, String typeName) throws McException + { + final String[] splitted = typeName.split("\\/", 2); //$NON-NLS-1$ + if (splitted.length == 1) + { + throw new McException(Messages.ComponentTypeNotFound, typeName); + } + final T result = EnumServiceInterface.instance().getEnumValue(clazz, splitted[0], splitted[1]); + if (result == null) + { + throw new McException(Messages.ComponentTypeNotFound, typeName); + } + return result; + } + /** * Maps argument to arena type interface * @param command @@ -278,42 +303,42 @@ public enum Messages implements LocalizedMessageInterface /** * Usage for command /mg2 */ - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "Enter " + LocalizedMessage.BLUE + "/mg2 help" + LocalizedMessage.GRAY + " for detailed help") + @LocalizedMessage(defaultMessage = "Enter " + LocalizedMessage.CODE_COLOR + "/mg2 help" + LocalizedMessage.INFORMATION_COLOR + " for detailed help") @MessageComment({"Usage for command /mg2"}) Usage, /** * Arena was not found */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) ArenaNotFound, /** * Player was not found */ - @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"player was not found"}, args = @Argument("player name")) PlayerNotFound, /** * Minigame was not found */ - @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"minigame was not found"}, args = @Argument("minigame name")) MinigameNotFound, /** * Arena type was not found */ - @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"arena type was not found"}, args = @Argument("type name")) TypeNotFound, /** * Extension was not found */ - @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.BLUE + "%1$s" + LocalizedMessage.DARK_RED + " not found", severity = MessageSeverityType.Error) + @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) @MessageComment(value = {"extension was not found"}, args = @Argument("extension name")) ExtensionNotFound, @@ -324,6 +349,41 @@ public enum Messages implements LocalizedMessageInterface @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) PlayerNameMissing, + /** + * Component argument is missing + */ + @LocalizedMessageList(value = {"Missing component name", "%1$s"}, severity = MessageSeverityType.Error) + @MessageComment(value = {"Component argument is missing"}, args = @Argument("command usage")) + ComponentNameMissing, + + /** + * Component already exists + */ + @LocalizedMessage(defaultMessage = "Component " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + "already exists", severity = MessageSeverityType.Error) + @MessageComment(value = {"Component already exists"}, args = @Argument("component name")) + ComponentAlreadyExists, + + /** + * Component not found + */ + @LocalizedMessage(defaultMessage = "Component " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + "not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"Component not found"}, args = @Argument("component name")) + ComponentNotFound, + + /** + * Component type argument is missing + */ + @LocalizedMessageList(value = {"Missing component type name", "%1$s"}, severity = MessageSeverityType.Error) + @MessageComment(value = {"Component type argument is missing"}, args = @Argument("command usage")) + ComponentTypeNameMissing, + + /** + * Component type not found + */ + @LocalizedMessage(defaultMessage = "Component type " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + "not found", severity = MessageSeverityType.Error) + @MessageComment(value = {"Component type not found"}, args = @Argument("component type name")) + ComponentTypeNotFound, + /** * Name argument is missing */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java index dfb6393f..bbb821a4 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java @@ -116,7 +116,7 @@ public enum Messages implements LocalizedMessageInterface /** * Usage of /mg2 spectate */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.BLUE + "/mg2 spectate <name>") + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 spectate <name>") @MessageComment({"Usage of /mg2 spectate"}) Usage, } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java new file mode 100644 index 00000000..0982f795 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java @@ -0,0 +1,222 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.tool; + +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Sign; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McPlayerInteractEvent; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.util.function.McConsumer; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.impl.MglibPerms; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; + +/** + * Admin tooling helper. + * + * @author mepeisen + */ +public class AdminToolHelper +{ + + /** + * Registers the tooling to select a block for sign creation. + * @param player + * @param arena + * @param name + * @param type + * @param finish the finish action + */ + public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) + { + final ItemServiceInterface itemService = ItemServiceInterface.instance(); + itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateSign_Title) + .onLeftClick((p, evt) -> onCreateSign(evt, p, arena, name, type, finish)) + .onRightClick((p, evt) -> onCreateSign(evt, p, arena, name, type, finish)) + .description(Messages.CreateSign_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) + .build(); + } + + /** + * Registers the tooling to select a block for sign creation. + * @param evt + * @param player + * @param arena + * @param name + * @param type + * @param finish the finish action + * @throws McException + */ + private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) throws McException + { + // security checks + if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminSign))) + { + throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin sign create"); //$NON-NLS-1$ + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + System.out.println(evt.getBukkitEvent().getClickedBlock() + " / " + evt.getBukkitEvent().getBlockFace()); //$NON-NLS-1$ + + Block target = null; + byte opposite; + switch (evt.getBukkitEvent().getBlockFace()) + { + case DOWN: + throw new McException(Messages.CreateSign_CannotCreateDownFace); + + case EAST: + case EAST_NORTH_EAST: + case EAST_SOUTH_EAST: + target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.EAST); + opposite = (byte) 0x05; + break; + + case NORTH: + case NORTH_EAST: + case NORTH_NORTH_EAST: + case NORTH_NORTH_WEST: + case NORTH_WEST: + target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.NORTH); + opposite = (byte) 0x02; + break; + + case SOUTH: + case SOUTH_EAST: + case SOUTH_SOUTH_EAST: + case SOUTH_SOUTH_WEST: + case SOUTH_WEST: + target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.SOUTH); + opposite = (byte) 0x03; + break; + + case UP: + target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.UP); + double i = ((player.getBukkitPlayer().getLocation().getYaw() + 180.0f) * 16.0f / 360.0f) + 0.5d; + int j = (int) i; + if (i < j) + { + j = j - 1; + } + opposite = (byte) (j & 15); + break; + + case WEST: + case WEST_NORTH_WEST: + case WEST_SOUTH_WEST: + target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.WEST); + opposite = (byte) 0x04; + break; + + case SELF: + default: + throw new McException(Messages.CreateSign_CannotCreateBlocked); + } + + if (!target.isEmpty()) + { + throw new McException(Messages.CreateSign_CannotCreateBlocked); + } + + if (evt.getBukkitEvent().getBlockFace() == BlockFace.UP) + { + target.setType(Material.SIGN_POST); + target.setData(opposite); + } + else + { + target.setType(Material.WALL_SIGN); + target.setData(opposite); + } + +// final Sign sign = evt.getBukkitEvent().getClickedBlock(); +// final ArenaSignHandler result = arena.createSign(sign, type); +// finish.accept(result); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admintool") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Title for create sign + */ + @LocalizedMessage(defaultMessage = "Creating sign") + @MessageComment({"Create sign title"}) + CreateSign_Title, + + /** + * Description for create sign + */ + @LocalizedMessageList({ + "Sign type: " + LocalizedMessage.CODE_COLOR + "%1$s", + "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s", + "Name: " + LocalizedMessage.CODE_COLOR + "%3$s"}) + @MessageComment(value = "Create sign description", args = { + @Argument("sign type name"), + @Argument("arena internal name"), + @Argument("new sign name") + }) + CreateSign_Description, + + /** + * Cannot create sign down face + */ + @LocalizedMessage(defaultMessage = "Cannot create sign below blocks") + @MessageComment({"Cannot create sign down face"}) + CreateSign_CannotCreateDownFace, + + /** + * Cannot create sign because block in way + */ + @LocalizedMessage(defaultMessage = "Cannot replace solid blocks with signs") + @MessageComment({"Cannot create solid blocks with signs"}) + CreateSign_CannotCreateBlocked, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java index 34c17b5f..740c73e8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java @@ -24,9 +24,15 @@ package de.minigameslib.mgapi.impl.internal; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.logging.Level; +import java.util.logging.Logger; + import org.bukkit.Bukkit; -import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.impl.tasks.AsyncTaskInterface; /** * A task manager to queue periodic work tasks. @@ -36,13 +42,19 @@ public class TaskManager { + /** concurrent executors. */ + private final ExecutorService executor = Executors.newSingleThreadExecutor(); + + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(TaskManager.class.getName()); + /** * Returns the task manager instance. * @return task manager */ public static TaskManager instance() { - // TODO caching. + // TODO caching of task manager interface return Bukkit.getServicesManager().load(TaskManager.class); } @@ -50,9 +62,18 @@ public static TaskManager instance() * Queues a new task to be runned asap. * @param task */ - public void queue(McRunnable task) + public void queue(AsyncTaskInterface task) { - // TODO Auto-generated method stub + this.executor.execute(() -> { + try + { + task.run(); + } + catch (McException ex) + { + LOGGER.log(Level.WARNING, "Caught exception while executing task: " + task, ex); //$NON-NLS-1$ + } + }); } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java index 780feb25..52eb1c1f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java @@ -139,14 +139,14 @@ private void resumeRuleSets() throws McException @Override public Collection<T> getAvailableRuleSetTypes() { - // TODO Auto-generated method stub + // TODO implement available rule sets return Collections.emptyList(); } @Override public boolean isAvailable(T ruleset) { - // TODO Auto-generated method stub + // TODO implement available rule sets return false; } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java index 75f18db9..ebc261f4 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java @@ -26,6 +26,8 @@ import java.io.File; +import org.bukkit.Location; + import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; @@ -147,5 +149,17 @@ public SignInterface getSign() { return this.sign; } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java index 09f72b06..edc9559a 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java @@ -26,6 +26,8 @@ import java.io.File; +import org.bukkit.Location; + import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; @@ -147,5 +149,17 @@ public SignInterface getSign() { return this.sign; } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java index cb796ceb..757109b8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java @@ -26,6 +26,8 @@ import java.io.File; +import org.bukkit.Location; + import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; @@ -147,5 +149,17 @@ public SignInterface getSign() { return this.sign; } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java index fa5d7905..4bd988d5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java @@ -26,6 +26,8 @@ import java.io.File; +import org.bukkit.Location; + import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; @@ -147,5 +149,17 @@ public SignInterface getSign() { return this.sign; } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index 5ebbdae9..19dbb2cf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -240,14 +240,14 @@ public enum Messages implements LocalizedMessageInterface /** * Countdown started */ - @LocalizedMessage(defaultMessage = "Countdown started. Match will start in " + LocalizedMessage.BLUE + "%1$d " + LocalizedMessage.GRAY + "seconds.", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "Countdown started. Match will start in " + LocalizedMessage.CODE_COLOR + "%1$d " + LocalizedMessage.INFORMATION_COLOR + "seconds.", severity = MessageSeverityType.Information) @MessageComment(value = {"Lobby countdown started"}, args = {@Argument(type = "Numeric", value = "countdown seconds")}) CountdownStarted, /** * Countdown tick */ - @LocalizedMessage(defaultMessage = "Match will start in " + LocalizedMessage.BLUE + "%1$d " + LocalizedMessage.GRAY + "seconds.", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "Match will start in " + LocalizedMessage.CODE_COLOR + "%1$d " + LocalizedMessage.INFORMATION_COLOR + "seconds.", severity = MessageSeverityType.Information) @MessageComment(value = {"countdown tick"}, args = {@Argument(type = "Numeric", value = "countdown seconds")}) CountdownTick, @@ -261,28 +261,28 @@ public enum Messages implements LocalizedMessageInterface /** * Invalid config value (min players) */ - @LocalizedMessage(defaultMessage = "Invalid config value (min players): " + LocalizedMessage.BLUE + "%1$d", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "Invalid config value (min players): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) @MessageComment(value = {"Invalid config value (min players)"}, args = {@Argument(type = "Numeric", value = "min players config value")}) InvalidConfigMinPlayers, /** * Invalid config value (min players > max players) */ - @LocalizedMessage(defaultMessage = "Invalid config value (min players > max players): " + LocalizedMessage.BLUE + "%1$d > %2$d", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "Invalid config value (min players > max players): " + LocalizedMessage.CODE_COLOR + "%1$d > %2$d", severity = MessageSeverityType.Information) @MessageComment(value = {"Invalid config value (min players > max players)"}, args = {@Argument(type = "Numeric", value = "min players config value"), @Argument(type = "Numeric", value = "max players config value")}) InvalidConfigMinMaxPlayers, /** * Invalid config value (max players) */ - @LocalizedMessage(defaultMessage = "Invalid config value (max players): " + LocalizedMessage.BLUE + "%1$d", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "Invalid config value (max players): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) @MessageComment(value = {"Invalid config value (max players)"}, args = {@Argument(type = "Numeric", value = "max players config value")}) InvalidConfigMaxPlayers, /** * Invalid config value (lobby countdown) */ - @LocalizedMessage(defaultMessage = "Invalid config value (lobby countdown): " + LocalizedMessage.BLUE + "%1$d", severity = MessageSeverityType.Information) + @LocalizedMessage(defaultMessage = "Invalid config value (lobby countdown): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) @MessageComment(value = {"Invalid config value (lobby countdown)"}, args = {@Argument(type = "Numeric", value = "lobby countdown config value")}) InvalidConfigLobbyCountdown diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java index 0d0ac320..e1f6e437 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java @@ -73,6 +73,6 @@ public ArenaInterface getArena() return this.arena; } - // TODO + // TODO implement BasicMatchTimeRule } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java index d8a0950f..f71521e6 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java @@ -73,6 +73,6 @@ public ArenaInterface getArena() return this.arena; } - // TODO + // TODO implement BasicSpawnsRule } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java index deb98e3d..7432c3ac 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java @@ -73,6 +73,6 @@ public ArenaInterface getArena() return this.arena; } - // TODO + // TODO implement last man standing rule } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java index afe1017a..19da6be9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java @@ -73,6 +73,6 @@ public ArenaInterface getArena() return this.arena; } - // TODO + // TODO implement lose on death rule } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java index 005cd96d..94208a80 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java @@ -64,6 +64,6 @@ public ZoneRuleSetType getType() return this.type; } - // TODO + // TODO implement player no entry rule } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java index 7062c90c..aad925da 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -66,7 +66,7 @@ public PvPMode(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException this.mode = PvpModes.valueOf(BasicPvpModeConfig.PvpOption.getString()); if (this.mode == null) { - // TODO + // TODO implement pvp mode rule } } @@ -76,6 +76,6 @@ public ZoneRuleSetType getType() return this.type; } - // TODO + // TODO implement pvp mode rule } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java similarity index 72% rename from v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java index 4a3a8555..da06d075 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaStartTask.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java @@ -24,8 +24,6 @@ package de.minigameslib.mgapi.impl.tasks; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.util.function.McRunnable; import de.minigameslib.mgapi.impl.arena.ArenaImpl; /** @@ -33,26 +31,24 @@ * * @author mepeisen */ -public class ArenaStartTask implements McRunnable +public abstract class AbstractAsyncArenaTask implements AsyncTaskInterface { - /** arena implementation. */ - private ArenaImpl arena; - + /** the arena */ + protected ArenaImpl arena; + /** - * Constructor * @param arenaImpl */ - public ArenaStartTask(ArenaImpl arenaImpl) + public AbstractAsyncArenaTask(ArenaImpl arenaImpl) { this.arena = arenaImpl; } @Override - public void run() throws McException + public String toString() { - this.arena.resume(); - // TODO check arena + return this.getClass().getSimpleName() + " [arena=" + this.arena.getInternalName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java new file mode 100644 index 00000000..b261593e --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java @@ -0,0 +1,68 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.tasks; + +import java.util.logging.Level; +import java.util.logging.Logger; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.internal.TaskManager; + +/** + * A task to check and start a arena. + * + * @author mepeisen + */ +public class AsyncArenaRecoverCrashTask extends AbstractAsyncArenaTask +{ + + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(AsyncArenaRecoverCrashTask.class.getName()); + + /** + * @param arenaImpl + */ + public AsyncArenaRecoverCrashTask(ArenaImpl arenaImpl) + { + super(arenaImpl); + } + + @Override + public void run() throws McException + { + LOGGER.log(Level.INFO, "loading crashed arena " + this.arena.getInternalName()); //$NON-NLS-1$ + if (this.arena.getState() == ArenaState.Booting) + { + this.arena.resume(); + } + + // TODO do some crash recovery + + TaskManager.instance().queue(new AsyncArenaStartTask(this.arena)); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java similarity index 69% rename from v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java index b667c13d..5dd4009e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRecoverCrashTask.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java @@ -25,7 +25,6 @@ package de.minigameslib.mgapi.impl.tasks; import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.util.function.McRunnable; import de.minigameslib.mgapi.impl.arena.ArenaImpl; /** @@ -33,25 +32,33 @@ * * @author mepeisen */ -public class ArenaRecoverCrashTask implements McRunnable +public class AsyncArenaRestartTask extends AbstractAsyncArenaTask { /** * @param arenaImpl */ - public ArenaRecoverCrashTask(ArenaImpl arenaImpl) + public AsyncArenaRestartTask(ArenaImpl arenaImpl) { - // TODO Auto-generated constructor stub + super(arenaImpl); } - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.util.function.McRunnable#run() - */ @Override public void run() throws McException { - // TODO Auto-generated method stub - + if (this.arena.isDisabled()) + { + this.arena.setDisabled0(); + } + else if (this.arena.isMaintenance()) + { + this.arena.setMaintenance0(); + } + else + { + this.arena.setJoin0(); + } + // TODO invoke state change event in bukkit } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java new file mode 100644 index 00000000..b7484e0b --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java @@ -0,0 +1,95 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.tasks; + +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.arena.CheckFailure; +import de.minigameslib.mgapi.api.arena.CheckSeverity; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; + +/** + * A task to check and start a arena. + * + * @author mepeisen + */ +public class AsyncArenaStartTask extends AbstractAsyncArenaTask +{ + + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(AsyncArenaStartTask.class.getName()); + + /** + * Constructor + * @param arenaImpl + */ + public AsyncArenaStartTask(ArenaImpl arenaImpl) + { + super(arenaImpl); + } + + @Override + public void run() throws McException + { + if (this.arena.getState() == ArenaState.Booting) + { + LOGGER.log(Level.INFO, "loading arena " + this.arena.getInternalName()); //$NON-NLS-1$ + this.arena.resume(); + } + + LOGGER.log(Level.INFO, "arena " + this.arena.getInternalName() + " config loaded."); //$NON-NLS-1$ //$NON-NLS-2$ + + if (this.arena.getState() == ArenaState.Starting) + { + LOGGER.log(Level.INFO, "checking arena " + this.arena.getInternalName() + " for errors..."); //$NON-NLS-1$ //$NON-NLS-2$ + + final Collection<CheckFailure> checks = this.arena.check(); + if (!checks.isEmpty()) + { + final StringBuilder builder = new StringBuilder(); + boolean hadError = false; + builder.append("arena ").append(this.arena.getInternalName()).append(" maybe broken. Got followng results:\n"); //$NON-NLS-1$ //$NON-NLS-2$ + for (final CheckFailure failure : checks) + { + builder.append("--> ").append(failure.getSeverity()).append(": ").append(failure.getTitle()).append("\n").append(failure.getDetails()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + hadError |= failure.getSeverity() == CheckSeverity.Error; + } + LOGGER.log(Level.WARNING, builder.toString()); + if (hadError) + { + LOGGER.log(Level.WARNING, "disabling arena " + this.arena.getInternalName() + " caused by errors."); //$NON-NLS-1$ //$NON-NLS-2$ + this.arena.setDisabled0(); + } + } + } + + LOGGER.log(Level.INFO, "arena " + this.arena.getInternalName() + " loaded. State: " + this.arena.getState()); //$NON-NLS-1$ //$NON-NLS-2$ + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java similarity index 62% rename from v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java rename to v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java index 13b236cb..0c88f2ba 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/ArenaRestartTask.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java @@ -24,34 +24,14 @@ package de.minigameslib.mgapi.impl.tasks; -import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; /** - * A task to check and start a arena. + * An interface marker for executing asynchronous tasks. * * @author mepeisen */ -public class ArenaRestartTask implements McRunnable +public interface AsyncTaskInterface extends McRunnable { - - /** - * @param arenaImpl - */ - public ArenaRestartTask(ArenaImpl arenaImpl) - { - // TODO Auto-generated constructor stub - } - - /* (non-Javadoc) - * @see de.minigameslib.mclib.api.util.function.McRunnable#run() - */ - @Override - public void run() throws McException - { - // TODO Auto-generated method stub - - } - + // marker only } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java index 940add21..8c972db8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java @@ -24,6 +24,9 @@ package de.minigameslib.mgapi.impl.tasks; +import java.util.logging.Level; +import java.util.logging.Logger; + import org.bukkit.scheduler.BukkitRunnable; import de.minigameslib.mgapi.api.MinigamesLibInterface; @@ -39,24 +42,34 @@ */ public class InitTask extends BukkitRunnable { + + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(InitTask.class.getName()); @Override public void run() { for (final ArenaInterface arena : MinigamesLibInterface.instance().getArenas(0, Integer.MAX_VALUE)) { - if (arena.getState() == ArenaState.Starting) + LOGGER.log(Level.INFO, "initializing arena " + arena.getInternalName()); //$NON-NLS-1$ + if (arena.getState() == ArenaState.Booting) { final ArenaImpl impl = (ArenaImpl) arena; if (impl.isMatchPending()) { - TaskManager.instance().queue(new ArenaRecoverCrashTask((ArenaImpl) arena)); + LOGGER.log(Level.INFO, "trying crash recovery of arena " + arena.getInternalName()); //$NON-NLS-1$ + TaskManager.instance().queue(new AsyncArenaRecoverCrashTask((ArenaImpl) arena)); } else { - TaskManager.instance().queue(new ArenaStartTask((ArenaImpl) arena)); + LOGGER.log(Level.INFO, "trying to start arena " + arena.getInternalName()); //$NON-NLS-1$ + TaskManager.instance().queue(new AsyncArenaStartTask((ArenaImpl) arena)); } } + else + { + LOGGER.log(Level.WARNING, "Wrong arena state. Expected booting for arena " + arena.getInternalName()); //$NON-NLS-1$ + } } } diff --git a/v2/pom.xml b/v2/pom.xml index 8a0f4340..ad3795e6 100644 --- a/v2/pom.xml +++ b/v2/pom.xml @@ -18,7 +18,7 @@ <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> <latest.spigot.version>1.11.2</latest.spigot.version> - <mclib.version>0.0.2-SNAPSHOT</mclib.version> + <mclib.version>0.0.4-SNAPSHOT</mclib.version> <mglib.version>2.0.0-SNAPSHOT</mglib.version> </properties> From 2dc4c8b3c6b625d430afd6cd01e5044dccb3c6db Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 21 Feb 2017 08:17:02 +0100 Subject: [PATCH 196/266] fixes scoreboard performance --- .../minigamesapi/util/ArenaScoreboard.java | 37 ++++++++++++++++++- changelog.md | 36 ++++++++++++++++++ 2 files changed, 71 insertions(+), 2 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java index c90157fb..2bedb05f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java @@ -25,11 +25,13 @@ import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.Objective; +import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.ScoreboardManager; import com.comze_instancelabs.minigamesapi.Arena; import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; +import com.comze_instancelabs.minigamesapi.MinecraftVersionsType; import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; @@ -275,6 +277,27 @@ public void removeScoreboard(final String arena, final Player p) } } + public static Score get(Objective objective, String name) + { + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_7_R3)) + { + return objective.getScore(name); + } + return objective.getScore(Bukkit.getOfflinePlayer(name)); + } + + public static void reset(Scoreboard sb, String name) + { + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_7_R3)) + { + sb.resetScores(name); + } + else + { + sb.resetScores(Bukkit.getOfflinePlayer(name)); + } + } + public void clearScoreboard(final String arenaname) { if (this.ascore.containsKey(arenaname)) @@ -282,9 +305,19 @@ public void clearScoreboard(final String arenaname) try { final Scoreboard sc = this.ascore.get(arenaname); - for (final OfflinePlayer player : sc.getPlayers()) + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_7_R3)) { - sc.resetScores(player); + for (final String player : sc.getEntries()) + { + sc.resetScores(player); + } + } + else + { + for (final OfflinePlayer player : sc.getPlayers()) + { + sc.resetScores(player); + } } } catch (final Exception e) diff --git a/changelog.md b/changelog.md index 1db97993..1c688545 100644 --- a/changelog.md +++ b/changelog.md @@ -13,6 +13,42 @@ * some api extension (https://github.com/MysticCity/MinigamesAPI/issues/203) * compass tracking fixed (https://github.com/MysticCity/MinigamesAPI/issues/206) +###### BedWars + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### BowBash + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### ColorMatch + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### Conquer + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### GunGame + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### MobEscape + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### OITC + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### SeaBattle + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + +###### Snake + +* fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) + #### 1.14.14 ###### All From b35a32f2abf5d2f8db2f620f0398778fcb887b34 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 22 Feb 2017 06:33:49 +0100 Subject: [PATCH 197/266] added scoreboard text to messages.yml --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 1c688545..d3529998 100644 --- a/changelog.md +++ b/changelog.md @@ -36,6 +36,7 @@ ###### MobEscape * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) +* added scoreboard text to messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/218) ###### OITC From cd094983449cbdc91f14eff375dde5bb0b02ddff Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 22 Feb 2017 07:14:37 +0100 Subject: [PATCH 198/266] Flag to control use of spectators scoreboard team --- .../minigamesapi/ArenaConfigStrings.java | 2 ++ .../minigamesapi/SpectatorManager.java | 26 +++++++++++++++---- .../minigamesapi/config/DefaultConfig.java | 1 + changelog.md | 1 + 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java index 32f8cd0b..9981581e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -197,6 +197,8 @@ public interface ArenaConfigStrings /** TODO: describe config option. */ String CONFIG_USE_CUSTOM_SCOREBOARD = "config.use_custom_scoreboard"; //$NON-NLS-1$ /** TODO: describe config option. */ + String CONFIG_USE_SPECTATOR_SCOREBOARD = "config.use_spectator_scoreboard"; //$NON-NLS-1$ + /** TODO: describe config option. */ String CONFIG_DELAY_ENABLED = "config.delay.enabled"; //$NON-NLS-1$ /** TODO: describe config option. */ String CONFIG_DELAY_AMOUNT_SECONDS = "config.delay.amount_seconds"; //$NON-NLS-1$ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java index 91ce589e..1f605142 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java @@ -17,6 +17,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -42,6 +45,8 @@ public class SpectatorManager JavaPlugin plugin; private final HashMap<String, IconMenu> lasticonm = new HashMap<>(); + private static final Set<UUID> spectators = new HashSet<>(); + public SpectatorManager(final JavaPlugin plugin) { this.plugin = plugin; @@ -62,17 +67,28 @@ public void setSpectate(final Player p, final boolean spectate) { try { + boolean useScoreboard = this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_USE_SPECTATOR_SCOREBOARD); if (spectate) { + spectators.add(p.getUniqueId()); p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 9999999, 5), true); - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").addPlayer(p); + if (useScoreboard) + { + Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").addPlayer(p); + } } else { - if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p)) + if (spectators.remove(p.getUniqueId())) { - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").removePlayer(p); p.removePotionEffect(PotionEffectType.INVISIBILITY); + if (useScoreboard) + { + if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p)) + { + Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").removePlayer(p); + } + } } } } @@ -85,17 +101,17 @@ public void setSpectate(final Player p, final boolean spectate) @Deprecated public static boolean isSpectating(final Player p) { - return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); + return spectators.contains(p.getUniqueId()); } private void clear() { + spectators.clear(); final Team t = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators"); final ArrayList<OfflinePlayer> offp_set = new ArrayList<>(t.getPlayers()); for (final OfflinePlayer offp : offp_set) { t.removePlayer(offp); - } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index c9151987..43707d44 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -110,6 +110,7 @@ public static void init(final JavaPlugin plugin, final boolean custom) config.addDefault(ArenaConfigStrings.CONFIG_POWERUP_BROADCAST, false); config.addDefault(ArenaConfigStrings.CONFIG_POWERUP_FIREWORKS, false); config.addDefault(ArenaConfigStrings.CONFIG_USE_CUSTOM_SCOREBOARD, false); + config.addDefault(ArenaConfigStrings.CONFIG_USE_SPECTATOR_SCOREBOARD, true); config.addDefault(ArenaConfigStrings.CONFIG_DELAY_ENABLED, false); config.addDefault(ArenaConfigStrings.CONFIG_DELAY_AMOUNT_SECONDS, 5); config.addDefault(ArenaConfigStrings.CONFIG_SEND_GAME_STARTED_MSG, false); diff --git a/changelog.md b/changelog.md index d3529998..f5b258a9 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,7 @@ * fixed NPE if main lobby is missing (https://github.com/MysticCity/MinigamesAPI/issues/201) * some api extension (https://github.com/MysticCity/MinigamesAPI/issues/203) * compass tracking fixed (https://github.com/MysticCity/MinigamesAPI/issues/206) +* new config flag: "use\_spectator\_scoreboard" (https://github.com/MysticCity/MinigamesAPI/issues/194) ###### BedWars From a7ae56fd651263c84d70d768c0f6cb2f91796150 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 22 Feb 2017 07:55:28 +0100 Subject: [PATCH 199/266] v2 --- .../mgapi/api/MinigamesLibInterface.java | 17 + .../mgapi/api/arena/ArenaInterface.java | 40 ++ .../api/events/ArenaStateChangeEvent.java | 139 ------- .../mgapi/api/match/ArenaMatchInterface.java | 24 +- .../mgapi/api/obj/BasicComponentTypes.java | 18 + .../api/obj/JoinSpawnComponentHandler.java | 37 ++ .../obj/MainLobbySpawnComponentHandler.java | 37 ++ .../obj/SpectatorSpawnComponentHandler.java | 51 +++ .../mgapi/api/team/ArenaTeamInterface.java | 64 ++++ .../mgapi/api/team/TeamIdType.java | 12 +- .../mgapi/impl/MinigamesPlugin.java | 19 +- .../mgapi/impl/arena/ArenaData.java | 108 ++++++ .../mgapi/impl/arena/ArenaImpl.java | 247 +++++++++++- .../mgapi/impl/arena/ArenaMatchImpl.java | 356 ++++++++++++++++-- .../mgapi/impl/arena/MatchPlayer.java | 136 ++++++- .../mgapi/impl/arena/MatchTeam.java | 49 +++ .../mgapi/impl/obj/JoinSpawnComponent.java | 165 ++++++++ .../impl/obj/JoinSpawnComponentData.java | 38 ++ .../impl/obj/MainLobbySpawnComponent.java | 165 ++++++++ .../impl/obj/MainLobbySpawnComponentData.java | 38 ++ .../impl/obj/SpectatorSpawnComponent.java | 180 +++++++++ .../impl/obj/SpectatorSpawnComponentData.java | 60 +++ 22 files changed, 1797 insertions(+), 203 deletions(-) delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 470a104b..10cca285 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -50,6 +50,8 @@ import de.minigameslib.mgapi.api.rules.SignRuleSetType; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; +import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; /** * Base interface to access the minigames API. @@ -97,6 +99,21 @@ static MinigamesLibInterface instance() */ int getApiVersion(); + // teams + + /** + * Checks if given team is a special team. + * A "special" team is a team not being a real party on team arenas. "special" teams cannnot be confiugured as teams on arenas. + * Instead they are used for special features on arenas, for example the "Winners" and "Spectators" have their own team. + * @param id + * @return {@code true} for special teams + * @see CommonTeams#Winners + * @see CommonTeams#Losers + * @see CommonTeams#Unknown + * @see CommonTeams#Spectators + */ + boolean isSpecialTeam(TeamIdType id); + // initialization /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index f0730f8d..29bf207e 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -53,6 +53,9 @@ import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.team.ArenaTeamInterface; +import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; /** * Basic interface for arenas. @@ -277,6 +280,43 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy // TODO historic matches + // team support + + /** + * Sets the single player mode (removes all teams) + * @throws McException thrown if arena is not in maintenance state + */ + void setSinglePlayerMode() throws McException; + + /** + * Adds team with given name + * @param team + * @param name the team name to be used for display + * @throws McException thrown if arena is not in maintenance state; thrown for special teams + * @see TeamIdType#isSpecial() + */ + void addTeam(TeamIdType team, LocalizedConfigString name) throws McException; + + /** + * Removes given team + * @param team + * @throws McException thrown if arena is not in maintenance state + */ + void removeTeam(TeamIdType team) throws McException; + + /** + * Returns all preconfigured teams. + * @return all preconfigured teams; empty list for single player arenas + */ + Collection<TeamIdType> getTeams(); + + /** + * Returns the arena team object for given team id + * @param team + * @return arena team object or {@code null} if team is not configured via {@link #addTeam(TeamIdType, LocalizedConfigString)} + */ + ArenaTeamInterface getTeam(TeamIdType team); + // components and objects /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java deleted file mode 100644 index 9b152606..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangeEvent.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; - -/** - * Event fired before an arena state is changed. - * - * @author mepeisen - */ -public class ArenaStateChangeEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaStateChangeEvent, ArenaStateChangeEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the old state. */ - private final ArenaState oldState; - - /** the new state. */ - private final ArenaState newState; - - /** - * @param arena - * @param oldState the old state - * @param newState the new state - */ - public ArenaStateChangeEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) - { - this.arena = arena; - this.oldState = oldState; - this.newState = newState; - } - - /** - * @return the oldState - */ - public ArenaState getOldState() - { - return this.oldState; - } - - /** - * @return the newState - */ - public ArenaState getNewState() - { - return this.newState; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaStateChangeEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<ArenaStateChangeEvent> when(McPredicate<ArenaStateChangeEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java index b2ad4137..93498c2a 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -243,7 +243,7 @@ interface MatchResult * Adds the match statistic for given player and statistic id. * @param player * @param statistic - * @param amount delta value; positive to increase statistics and negativ to decrease statistics + * @param amount delta value */ void addStatistic(UUID player, MatchStatisticId statistic, int amount); @@ -251,16 +251,32 @@ interface MatchResult * Adds the match statistic for given team and statistic id. * @param team * @param statistic - * @param amount delta value; positive to increase statistics and negativ to decrease statistics + * @param amount delta value */ void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + /** + * Decrement the match statistic for given player and statistic id. + * @param player + * @param statistic + * @param amount delta value + */ + void decStatistic(UUID player, MatchStatisticId statistic, int amount); + + /** + * Decrement the match statistic for given team and statistic id. + * @param team + * @param statistic + * @param amount delta value + */ + void decStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + /** * Returns the play time of given player in seconds * @param player * @return play time in seconds */ - int getPlayTime(UUID player); + long getPlayTime(UUID player); // killer tracking @@ -291,7 +307,7 @@ interface KillerTracking /** * Returns the killer tracking; only works on pending matches * @param player - * @return killer tracking or {@code null} if no killer tracking was registered for given player. + * @return killer tracking or {@code null} if player is not registered in this arena match */ KillerTracking getKillerTracking(UUID player); diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java index f8b8e952..30f716bf 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java @@ -40,6 +40,24 @@ public enum BasicComponentTypes implements ComponentTypeId */ Spawn, + /** + * A generic spawn block used for spectators. + * @see SpawnComponentHandler + */ + SpectatorSpawn, + + /** + * A generic spawn block used for join phase. + * @see JoinSpawnComponentHandler + */ + JoinSpawn, + + /** + * A generic spawn block used after match. + * @see MainLobbySpawnComponentHandler + */ + MainLobbySpawn, + /** * Some empty component that can be used with new rule sets for minigame developers. * @see EmptyComponentHandler diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java new file mode 100644 index 00000000..ba7455f7 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java @@ -0,0 +1,37 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * A spawn component handler used for players joining an arena. + * + * @author mepeisen + */ +public interface JoinSpawnComponentHandler extends ArenaComponentHandler +{ + + // marker interface + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java new file mode 100644 index 00000000..d201d8d3 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java @@ -0,0 +1,37 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +/** + * A spawn component handler used for players after leaving the match. + * + * @author mepeisen + */ +public interface MainLobbySpawnComponentHandler extends ArenaComponentHandler +{ + + // marker interface + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java new file mode 100644 index 00000000..23e41ca2 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java @@ -0,0 +1,51 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.obj; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * A spawn component handler. + * + * @author mepeisen + */ +public interface SpectatorSpawnComponentHandler extends ArenaComponentHandler +{ + + /** + * Returns the team using this spawn. + * @return team using this spawn. + */ + TeamIdType getTeam(); + + /** + * Sets the team that uses this spawn + * @param team + * @throws McException thrown if arena is not in maintenance mode or the data could not be saved. + */ + void setTeam(TeamIdType team) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java new file mode 100644 index 00000000..b30b2dad --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java @@ -0,0 +1,64 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.team; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Represents a team configured for an arena. + * + * @author mepeisen + */ +public interface ArenaTeamInterface +{ + + /** + * Returns the underlying team id + * @return team id + */ + TeamIdType getId(); + + /** + * Returns the arena of this team + * @return arena team + */ + ArenaInterface getArena(); + + /** + * Returns the display name of the team + * @return display name of the team + */ + LocalizedConfigString getName(); + + /** + * Sets the team name + * @param name + * @throws McException thrown if arena is not in maintenance state + */ + void setName(LocalizedConfigString name) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java index 1bc7ab7d..1cfd4700 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api.team; import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; /** * Use this interface on ernumerations to declare team types. @@ -34,6 +35,15 @@ public interface TeamIdType extends McUniqueEnumInterface { - // marker only + /** + * Checks if this team is a special team. + * A "special" team is a team not being a real party on team arenas. "special" teams cannnot be confiugured as teams on arenas. + * Instead they are used for special features on arenas, for example the "Winners" and "Spectators" have their own team. + * @return {@code true} for special teams + */ + default boolean isSpecial() + { + return MinigamesLibInterface.instance().isSpecialTeam(this); + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index d5adfe02..9eae4931 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -76,8 +76,9 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaStateChangeEvent; import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; +import de.minigameslib.mgapi.api.events.MatchStartedEvent; +import de.minigameslib.mgapi.api.events.MatchStoppedEvent; import de.minigameslib.mgapi.api.match.CommonMatchStatistics; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; @@ -102,6 +103,7 @@ import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; @@ -116,12 +118,15 @@ import de.minigameslib.mgapi.impl.obj.GenericSign; import de.minigameslib.mgapi.impl.obj.GenericZone; import de.minigameslib.mgapi.impl.obj.JoinSign; +import de.minigameslib.mgapi.impl.obj.JoinSpawnComponent; import de.minigameslib.mgapi.impl.obj.JoinZone; import de.minigameslib.mgapi.impl.obj.LeaveSign; import de.minigameslib.mgapi.impl.obj.LeaveZone; import de.minigameslib.mgapi.impl.obj.LobbyZone; +import de.minigameslib.mgapi.impl.obj.MainLobbySpawnComponent; import de.minigameslib.mgapi.impl.obj.MainZone; import de.minigameslib.mgapi.impl.obj.SpawnComponent; +import de.minigameslib.mgapi.impl.obj.SpectatorSpawnComponent; import de.minigameslib.mgapi.impl.obj.SpectatorZone; import de.minigameslib.mgapi.impl.rules.BasicMatch; import de.minigameslib.mgapi.impl.rules.BasicMatchTime; @@ -280,7 +285,8 @@ public void onEnable() McLibInterface.instance().registerEvent(this, ArenaDeletedEvent.class); McLibInterface.instance().registerEvent(this, ArenaDeleteEvent.class); McLibInterface.instance().registerEvent(this, ArenaStateChangedEvent.class); - McLibInterface.instance().registerEvent(this, ArenaStateChangeEvent.class); + McLibInterface.instance().registerEvent(this, MatchStartedEvent.class); + McLibInterface.instance().registerEvent(this, MatchStoppedEvent.class); this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); this.registerRuleset(this, BasicArenaRuleSets.BasicSpawns, BasicSpawns::new); @@ -298,6 +304,9 @@ public void onEnable() this.registerArenaComponent(this, BasicComponentTypes.Empty, EmptyComponent::new); this.registerArenaComponent(this, BasicComponentTypes.Generic, GenericComponent::new); this.registerArenaComponent(this, BasicComponentTypes.Spawn, SpawnComponent::new); + this.registerArenaComponent(this, BasicComponentTypes.JoinSpawn, JoinSpawnComponent::new); + this.registerArenaComponent(this, BasicComponentTypes.MainLobbySpawn, MainLobbySpawnComponent::new); + this.registerArenaComponent(this, BasicComponentTypes.SpectatorSpawn, SpectatorSpawnComponent::new); this.registerArenaSign(this, BasicSignTypes.Empty, EmptySign::new); this.registerArenaSign(this, BasicSignTypes.Generic, GenericSign::new); this.registerArenaSign(this, BasicSignTypes.Join, JoinSign::new); @@ -818,5 +827,11 @@ public void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<ArenaSi this.signsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); this.signs.put(type, creator); } + + @Override + public boolean isSpecialTeam(TeamIdType id) + { + return id == CommonTeams.Unknown || id == CommonTeams.Winners || id == CommonTeams.Losers || id == CommonTeams.Spectators; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java index dec41f24..a630388c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java @@ -37,6 +37,7 @@ import de.minigameslib.mclib.shared.api.com.PersistentField; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.team.TeamIdType; /** * @author mepeisen @@ -134,6 +135,10 @@ public class ArenaData extends AnnotatedDataFragment @PersistentField private Set<EntityIdInterface> entities = new HashSet<>(); + /** the teams used in this arena; empty set for non-team mode. */ + @PersistentField + private Set<TeamData> teams = new HashSet<>(); + /** * Constructor */ @@ -327,5 +332,108 @@ public Set<EntityIdInterface> getEntities() { return this.entities; } + + /** + * @return the teams + */ + public Set<TeamData> getTeams() + { + return this.teams; + } + + /** + * Team data. + */ + public static final class TeamData extends AnnotatedDataFragment + { + + /** the team id. */ + @PersistentField + private TeamIdType id; + + /** the team display name. */ + @PersistentField + private LocalizedConfigString name; + + /** + * Constructor + */ + public TeamData() + { + super(); + } + + /** + * @param id + * @param name + */ + public TeamData(TeamIdType id, LocalizedConfigString name) + { + this.id = id; + this.name = name; + } + + /** + * @return the id + */ + public TeamIdType getId() + { + return this.id; + } + + /** + * @param id the id to set + */ + public void setId(TeamIdType id) + { + this.id = id; + } + + /** + * @return the name + */ + public LocalizedConfigString getName() + { + return this.name; + } + + /** + * @param name the name to set + */ + public void setName(LocalizedConfigString name) + { + this.name = name; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((this.id == null) ? 0 : this.id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + TeamData other = (TeamData) obj; + if (this.id == null) + { + if (other.id != null) + return false; + } + else if (!this.id.equals(other.id)) + return false; + return true; + } + + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 2aaf5898..1a9a4d07 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -30,6 +30,8 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import java.util.Optional; +import java.util.Random; import java.util.Set; import java.util.UUID; import java.util.logging.Logger; @@ -79,15 +81,21 @@ import de.minigameslib.mgapi.api.arena.CheckSeverity; import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; +import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.obj.BasicComponentTypes; +import de.minigameslib.mgapi.api.obj.SpectatorSpawnComponentHandler; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.team.ArenaTeamInterface; +import de.minigameslib.mgapi.api.team.TeamIdType; import de.minigameslib.mgapi.impl.MglibObjectTypes; import de.minigameslib.mgapi.impl.MinigamesPlugin; +import de.minigameslib.mgapi.impl.arena.ArenaData.TeamData; import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.rules.AbstractRuleSetContainer; import de.minigameslib.mgapi.impl.tasks.AsyncArenaRestartTask; @@ -132,6 +140,9 @@ public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface /** the current arena match. */ private ArenaMatchImpl match; + /** current random. */ + private Random random = new Random(); + /** * rule set container */ @@ -253,15 +264,21 @@ public void resume() throws McException if (!this.arenaData.isEnabled()) { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); this.state = ArenaState.Disabled; + Bukkit.getPluginManager().callEvent(changedEvent); } else if (this.arenaData.isMaintenance()) { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Maintenance); this.state = ArenaState.Maintenance; + Bukkit.getPluginManager().callEvent(changedEvent); } else { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Starting); this.state = ArenaState.Starting; + Bukkit.getPluginManager().callEvent(changedEvent); } } @@ -439,9 +456,62 @@ else if (this.spectators.contains(uuid)) private void leaveSpec(ArenaPlayerInterface player) { ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); - // TODO port to main lobby.... this.spectators.remove(player.getPlayerUUID()); player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); + // port to main lobby + this.teleportRandom(player, this.getComponents(BasicComponentTypes.MainLobbySpawn)); + } + + /** + * Port player to a random component taken from given list + * @param player + * @param components + * @return {@code true} if player was ported + */ + private boolean teleportRandom(ArenaPlayerInterface player, Collection<?> components) + { + if (components.size() > 0) + { + final Object id = components.stream().skip(this.random.nextInt(components.size())).findFirst().get(); + ComponentInterface comp = null; + if (id instanceof ComponentInterface) + { + comp = (ComponentInterface) id; + } + else + { + comp = ObjectServiceInterface.instance().findComponent((ComponentIdInterface) id); + } + player.getMcPlayer().getBukkitPlayer().teleport(comp.getLocation()); + return true; + } + return false; + } + + /** + * Port player to a component + * @param player + * @param component + */ + private void teleport(ArenaPlayerInterface player, ComponentIdInterface component) + { + if (component != null) + { + player.getMcPlayer().getBukkitPlayer().teleport(ObjectServiceInterface.instance().findComponent(component).getLocation()); + } + } + + /** + * Port player to a component + * @param player + * @param component + */ + private void teleport(ArenaPlayerInterface player, ComponentInterface component) + { + if (component != null) + { + player.getMcPlayer().getBukkitPlayer().teleport(component.getLocation()); + } } /** @@ -451,9 +521,10 @@ private void leaveSpec(ArenaPlayerInterface player) private void leaveMatch(ArenaPlayerInterface player) { ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); - // TODO port to main lobby.... this.players.remove(player.getPlayerUUID()); player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); + // port to main lobby + this.teleportRandom(player, this.getComponents(BasicComponentTypes.MainLobbySpawn)); } @Override @@ -470,8 +541,9 @@ public void join(ArenaPlayerInterface player) throws McException this.players.add(player.getPlayerUUID()); ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), false); - // TODO port to waiting lobby etc. player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName()); + // port to main lobby + this.teleportRandom(player, this.getComponents(BasicComponentTypes.JoinSpawn)); } @Override @@ -496,12 +568,39 @@ public void spectate(ArenaPlayerInterface player) throws McException case PreMatch: this.spectators.add(player.getPlayerUUID()); ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), true); - // TODO port to spectator spawn etc. player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName()); + this.teleportToSpectate(player); break; } } + /** + * Teleports given player to spectators + * @param player + */ + private void teleportToSpectate(ArenaPlayerInterface player) + { + if (this.isMatch()) + { + // match in progress + final TeamIdType team = this.match.getTeam(player.getPlayerUUID()); + if (team != null) + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + final Collection<ComponentInterface> teamspawns = this.getComponents(BasicComponentTypes.SpectatorSpawn).stream() + .map(osi::findComponent) + .filter(c -> ((SpectatorSpawnComponentHandler)c.getHandler()).getTeam() == team) + .collect(Collectors.toList()); + if (this.teleportRandom(player, teamspawns)) + { + // succeeded + return; + } + } + } + this.teleportRandom(player, this.getComponents(BasicComponentTypes.SpectatorSpawn)); + } + @Override public void setEnabledState() throws McException { @@ -516,8 +615,10 @@ public void setEnabledState() throws McException this.arenaData.setEnabled(true); this.saveData(); - + + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Starting); this.state = ArenaState.Starting; + Bukkit.getPluginManager().callEvent(changedEvent); TaskManager.instance().queue(new AsyncArenaStartTask(this)); } @@ -529,7 +630,10 @@ public void setDisabled0() throws McException { this.arenaData.setEnabled(false); this.saveDataInternal(); + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); + this.match = null; this.state = ArenaState.Disabled; + Bukkit.getPluginManager().callEvent(changedEvent); } /** @@ -540,7 +644,10 @@ public void setMaintenance0() throws McException { this.arenaData.setMaintenance(true); this.saveDataInternal(); + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Maintenance); + this.match = null; this.state = ArenaState.Maintenance; + Bukkit.getPluginManager().callEvent(changedEvent); } /** @@ -549,7 +656,15 @@ public void setMaintenance0() throws McException */ public void setJoin0() throws McException { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Join); this.state = ArenaState.Join; + final Set<TeamData> teams = this.arenaData.getTeams(); + this.match = new ArenaMatchImpl(teams.size() > 0); + for (final TeamData team : teams) + { + this.match.createTeam(team); + } + Bukkit.getPluginManager().callEvent(changedEvent); } @Override @@ -566,15 +681,24 @@ public void setDisabledState(boolean force) throws McException this.arenaData.setMaintenance(false); this.arenaData.setEnabled(false); this.saveData(); - this.state = ArenaState.Disabled; + { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); + this.match = null; + this.state = ArenaState.Disabled; + Bukkit.getPluginManager().callEvent(changedEvent); + } break; case Join: this.arenaData.setEnabled(false); this.saveData(); // abort current game to kick players being in waiting lobby. this.abortGame(Messages.KickReasonDisable); - this.state = ArenaState.Restarting; - TaskManager.instance().queue(new AsyncArenaRestartTask(this)); + { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); + this.state = ArenaState.Restarting; + Bukkit.getPluginManager().callEvent(changedEvent); + TaskManager.instance().queue(new AsyncArenaRestartTask(this)); + } break; case Match: case PostMatch: @@ -586,7 +710,9 @@ public void setDisabledState(boolean force) throws McException { // abort current game. this.abortGame(Messages.KickReasonDisable); + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); this.state = ArenaState.Restarting; + Bukkit.getPluginManager().callEvent(changedEvent); TaskManager.instance().queue(new AsyncArenaRestartTask(this)); } break; @@ -620,9 +746,10 @@ private void abortGame(LocalizedMessageInterface kickReason) private void kick(UUID uuid, LocalizedMessageInterface kickReason) { final McPlayerInterface player = ObjectServiceInterface.instance().getPlayer(uuid); - // TODO port to main lobby.... - ((ArenaPlayerImpl)MinigamesLibInterface.instance().getPlayer(player)).switchArenaOrMode(null, false); + final ArenaPlayerImpl arenaPlayerImpl = (ArenaPlayerImpl)MinigamesLibInterface.instance().getPlayer(player); + arenaPlayerImpl.switchArenaOrMode(null, false); player.sendMessage(Messages.YouWereKicked, kickReason); + this.teleportRandom(arenaPlayerImpl, this.getComponents(BasicComponentTypes.MainLobbySpawn)); } @Override @@ -644,7 +771,11 @@ public void setMaintenance(boolean force) throws McException this.arenaData.setMaintenance(true); this.arenaData.setEnabled(true); this.saveData(); - this.state = ArenaState.Maintenance; + { + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Maintenance); + this.state = ArenaState.Maintenance; + Bukkit.getPluginManager().callEvent(changedEvent); + } break; case Join: case Match: @@ -657,7 +788,9 @@ public void setMaintenance(boolean force) throws McException { // abort current game. this.abortGame(Messages.KickReasonMaintenance); + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); this.state = ArenaState.Restarting; + Bukkit.getPluginManager().callEvent(changedEvent); TaskManager.instance().queue(new AsyncArenaRestartTask(this)); } break; @@ -671,7 +804,9 @@ public void start() throws McException { throw new McException(Messages.StartWrongState); } + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.PreMatch); this.state = ArenaState.PreMatch; + Bukkit.getPluginManager().callEvent(changedEvent); // TODO Start pre match phase, teleport to spawns etc. } @@ -689,7 +824,7 @@ public void setTestState() throws McException throw new McException(Messages.TestCheckFailure); } } - this.state = ArenaState.Join; + this.setJoin0(); } @Override @@ -1127,8 +1262,92 @@ public <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId t) th @Override public ArenaMatchInterface getCurrentMatch() { - // TODO implement current matches - return null; + return this.match; + } + + @Override + public void setSinglePlayerMode() throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + this.arenaData.getTeams().clear(); + this.saveData(); + } + + @Override + public void addTeam(TeamIdType team, LocalizedConfigString name) throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + if (team.isSpecial()) + { + // TODO disallow special teams + } + this.arenaData.getTeams().removeIf(t -> t.getId() == team); + this.arenaData.getTeams().add(new TeamData(team, name)); + this.saveData(); + } + + @Override + public void removeTeam(TeamIdType team) throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + this.arenaData.getTeams().removeIf(t -> t.getId() == team); + this.saveData(); + } + + @Override + public Collection<TeamIdType> getTeams() + { + return this.arenaData.getTeams().stream().map(TeamData::getId).collect(Collectors.toList()); + } + + @Override + public ArenaTeamInterface getTeam(TeamIdType team) + { + final Optional<TeamData> data = this.arenaData.getTeams().stream().filter(t -> t.getId() == team).findFirst(); + return !data.isPresent() ? null : new ArenaTeamInterface() { + + @Override + public void setName(LocalizedConfigString name) throws McException + { + if (ArenaImpl.this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + if (team.isSpecial()) + { + // TODO disallow special teams + } + data.get().setName(name); + ArenaImpl.this.saveData(); + } + + @Override + public LocalizedConfigString getName() + { + return data.get().getName(); + } + + @Override + public TeamIdType getId() + { + return team; + } + + @Override + public ArenaInterface getArena() + { + return ArenaImpl.this; + } + }; } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index a28f83bf..8de6d50c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -25,9 +25,15 @@ package de.minigameslib.mgapi.impl.arena; import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; import java.util.Map; +import java.util.Optional; +import java.util.Set; import java.util.UUID; import de.minigameslib.mclib.api.McException; @@ -37,6 +43,7 @@ import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; +import de.minigameslib.mgapi.impl.arena.ArenaData.TeamData; /** * Arena Match implementation @@ -63,16 +70,42 @@ public class ArenaMatchImpl implements ArenaMatchInterface /** teams. */ private Map<TeamIdType, MatchTeam> teams = new HashMap<>(); + + /** + * the current results. + * The first entry represents the first place. + */ + private final List<MatchResultImpl> results = new ArrayList<>(); + + /** + * the position of the first loser. + */ + private int firstLoser; + + /** + * flag for team match + */ + private boolean teamMatch; /** * Constructor + * @param teamMatch flag for team matches + */ + public ArenaMatchImpl(boolean teamMatch) + { + this.getOrCreate(CommonTeams.Unknown); + this.getOrCreate(CommonTeams.Spectators); + this.getOrCreate(CommonTeams.Losers); + this.getOrCreate(CommonTeams.Winners); + this.teamMatch = teamMatch; + } + + /** + * @param team */ - public ArenaMatchImpl() + public void createTeam(TeamData team) { - this.teams.put(CommonTeams.Unknown, new MatchTeam(CommonTeams.Unknown)); - this.teams.put(CommonTeams.Spectators, new MatchTeam(CommonTeams.Spectators)); - this.teams.put(CommonTeams.Losers, new MatchTeam(CommonTeams.Losers)); - this.teams.put(CommonTeams.Winners, new MatchTeam(CommonTeams.Winners)); + this.getOrCreate(team.getId()); } @Override @@ -139,165 +172,406 @@ public Collection<TeamIdType> getTeams() @Override public TeamIdType getPreferredTeam() { - // TODO implement team mode - return null; + final Optional<MatchTeam> team = this.teams.values().stream() + .filter(t -> !t.getTeamId().isSpecial()) + .min((t1, t2) -> Integer.compare(t1.getTeamMembers().size(), t2.getTeamMembers().size())); + return team.isPresent() ? team.get().getTeamId() : null; } @Override public void join(ArenaPlayerInterface player, TeamIdType team) throws McException { - // TODO implement joins + this.getOrCreate(player.getPlayerUUID()).setTeam(team); } @Override public boolean isTeamMatch() { - // TODO implement team mode - return false; + return this.teamMatch; } @Override public TeamIdType getTeam(UUID uuid) { - // TODO implement team mode + final MatchPlayer player = this.players.get(uuid); + if (player != null) + { + return player.getTeam(); + } return null; } @Override public Collection<UUID> getParticipants() { - // TODO implement participants - return null; + return this.players.keySet(); } @Override public Collection<UUID> getWinners() { - // TODO implement winners/losers - return null; + return this.teams.get(CommonTeams.Winners).getTeamMembers(); } @Override public Collection<UUID> getLosers() { - // TODO implement winners/losers - return null; + return this.teams.get(CommonTeams.Losers).getTeamMembers(); } @Override public Collection<MatchResult> getResults() { - // TODO implement match results - return null; + return new ArrayList<>(this.results); } @Override public int getResultCount() { - // TODO implement match results - return 0; + return this.results.size(); } @Override public MatchResult getResult(int place) { - // TODO implement match results - return null; + int pos = place - 1; + return this.results.size() >= pos ? null : this.results.get(pos); } @Override public ComponentIdInterface getSpawn(UUID uuid) { - // TODO implement spawn selector - return null; + final MatchPlayer player = this.players.get(uuid); + return player == null ? null : player.getSpawn(); + } + + /** + * Get or creates a match player. + * @param uuid + * @return match player. + */ + private MatchPlayer getOrCreate(UUID uuid) + { + return this.players.computeIfAbsent(uuid, MatchPlayer::new); } @Override public void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException { - // TODO implement spawn selector + final MatchPlayer p = this.players.get(player); + if (p != null) + { + p.setSpawn(spawn); + } } @Override public int getStatistic(UUID player, MatchStatisticId statistic) { - // TODO implement statistics + final MatchPlayer p = this.players.get(player); + if (p != null) + { + return p.getStatistic(statistic); + } return 0; } + + /** + * Get or creates a match player. + * @param team + * @return match player. + */ + private MatchTeam getOrCreate(TeamIdType team) + { + return this.teams.computeIfAbsent(team, MatchTeam::new); + } @Override public int getStatistic(TeamIdType team, MatchStatisticId statistic) { - // TODO implement statistics + final MatchTeam p = this.teams.get(team); + if (p != null) + { + return p.getStatistic(statistic); + } return 0; } @Override public void setStatistic(UUID player, MatchStatisticId statistic, int value) { - // TODO implement statistics + final MatchPlayer p = this.players.get(player); + if (p != null) + { + p.setStatistic(statistic, value); + } } @Override public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) { - // TODO implement statistics + final MatchTeam p = this.teams.get(team); + if (p != null) + { + p.setStatistic(statistic, value); + } } @Override public void addStatistic(UUID player, MatchStatisticId statistic, int amount) { - // TODO implement statistics + final MatchPlayer p = this.players.get(player); + if (p != null) + { + p.addStatistic(statistic, amount); + } } @Override public void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) { - // TODO implement statistics + final MatchTeam p = this.teams.get(team); + if (p != null) + { + p.addStatistic(statistic, amount); + } + } + + @Override + public void decStatistic(UUID player, MatchStatisticId statistic, int amount) + { + final MatchPlayer p = this.players.get(player); + if (p != null) + { + p.decStatistic(statistic, amount); + } } @Override - public int getPlayTime(UUID player) + public void decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) { - // TODO implement played time + final MatchTeam p = this.teams.get(team); + if (p != null) + { + p.decStatistic(statistic, amount); + } + } + + @Override + public long getPlayTime(UUID player) + { + if (this.started != null) + { + return 0; + } + final MatchPlayer p = this.players.get(player); + if (player != null) + { + if (p.getLeft() != null) + { + return this.started.until(p.getLeft(), ChronoUnit.SECONDS); + } + return this.started.until(LocalDateTime.now(), ChronoUnit.SECONDS); + } return 0; } @Override public KillerTracking getKillerTracking(UUID player) { - // TODO implement killer tracker - return null; + return this.players.get(player); } @Override public void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException { - // TODO implement dmg tracker + final MatchPlayer p = this.players.get(targetPlayer); + if (p != null) + { + p.setKillerTracking(damager); + } } @Override public void setLoser(UUID... players) throws McException { - // TODO implement setting losers + if (players != null && players.length > 0) + { + final MatchTeam team = this.teams.get(CommonTeams.Losers); + for (final UUID uuid : players) + { + final MatchPlayer p = this.players.get(uuid); + if (p != null) + { + p.setTeam(CommonTeams.Losers); + p.setLeft(LocalDateTime.now()); + team.getTeamMembers().add(uuid); + } + } + final MatchResultImpl result = new MatchResultImpl(false, players); + this.results.add(this.firstLoser, result); + for (int i = this.firstLoser; i < this.results.size(); i++) + { + this.results.get(i).setPlace(i + 1); + } + } } @Override public void setWinner(UUID... players) throws McException { - // TODO implement setting winners + if (players != null && players.length > 0) + { + final MatchTeam team = this.teams.get(CommonTeams.Winners); + for (final UUID uuid : players) + { + final MatchPlayer p = this.players.get(uuid); + if (p != null) + { + p.setTeam(CommonTeams.Winners); + p.setLeft(LocalDateTime.now()); + team.getTeamMembers().add(uuid); + } + } + final MatchResultImpl result = new MatchResultImpl(true, players); + this.results.add(this.firstLoser, result); + for (int i = this.firstLoser; i < this.results.size(); i++) + { + this.results.get(i).setPlace(i + 1); + } + this.firstLoser++; + } } @Override public void setLoser(TeamIdType... teams) throws McException { - // TODO implement setting losers + if (teams != null && teams.length > 0) + { + final Set<UUID> playerSet = new HashSet<>(); + for (final TeamIdType team : teams) + { + final MatchTeam t = this.teams.get(team); + if (t != null) + { + playerSet.addAll(t.getTeamMembers()); + } + } + if (playerSet.size() > 0) + { + final MatchTeam team = this.teams.get(CommonTeams.Losers); + for (final UUID uuid : playerSet) + { + final MatchPlayer p = this.players.get(uuid); + if (p != null) + { + p.setTeam(CommonTeams.Losers); + p.setLeft(LocalDateTime.now()); + team.getTeamMembers().add(uuid); + } + } + final MatchResultImpl result = new MatchResultImpl(false, playerSet.toArray(new UUID[playerSet.size()])); + this.results.add(this.firstLoser, result); + for (int i = this.firstLoser; i < this.results.size(); i++) + { + this.results.get(i).setPlace(i + 1); + } + } + } } @Override public void setWinner(TeamIdType... teams) throws McException { - // TODO implement setting winners + if (teams != null && teams.length > 0) + { + final Set<UUID> playerSet = new HashSet<>(); + for (final TeamIdType team : teams) + { + final MatchTeam t = this.teams.get(team); + if (t != null) + { + playerSet.addAll(t.getTeamMembers()); + } + } + if (playerSet.size() > 0) + { + final MatchTeam team = this.teams.get(CommonTeams.Winners); + for (final UUID uuid : playerSet) + { + final MatchPlayer p = this.players.get(uuid); + if (p != null) + { + p.setTeam(CommonTeams.Winners); + p.setLeft(LocalDateTime.now()); + team.getTeamMembers().add(uuid); + } + } + final MatchResultImpl result = new MatchResultImpl(true, playerSet.toArray(new UUID[playerSet.size()])); + this.results.add(this.firstLoser, result); + for (int i = this.firstLoser; i < this.results.size(); i++) + { + this.results.get(i).setPlace(i + 1); + } + this.firstLoser++; + } + } + } + + /** + * Implementation of match results. + */ + private final static class MatchResultImpl implements MatchResult + { + + /** the place this result represents. */ + private int place; + + /** winning flag. */ + private final boolean isWin; + + /** players on this place. */ + private final List<UUID> players = new ArrayList<>(); + + /** + * @param isWin + * @param uuids + */ + public MatchResultImpl(boolean isWin, UUID... uuids) + { + this.isWin = isWin; + for (final UUID player : uuids) + { + this.players.add(player); + } + } + + /** + * @param place the place to set + */ + public void setPlace(int place) + { + this.place = place; + } + + @Override + public int getPlace() + { + return this.place; + } + + @Override + public Collection<UUID> getPlayers() + { + return this.players; + } + + @Override + public boolean isWin() + { + return this.isWin; + } + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java index 67b1062e..4189abd3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java @@ -25,25 +25,56 @@ package de.minigameslib.mgapi.impl.arena; import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; import java.util.UUID; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.MatchStatisticId; +import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; + /** * Data class for players being present in a match * * @author mepeisen * */ -class MatchPlayer +class MatchPlayer implements ArenaMatchInterface.KillerTracking { /** join timestamp */ - private LocalDateTime joined; + private LocalDateTime joined = LocalDateTime.now(); /** the players uuid. */ private final UUID playerUuid; /** left timestamp */ private LocalDateTime left; + + /** the associated team. */ + private TeamIdType team = CommonTeams.Unknown; + + /** + * the match statistics. + */ + private final Map<MatchStatisticId, Integer> statistics = new HashMap<>(); + + /** + * the selected spawn. + */ + private ComponentIdInterface spawn; + + /** + * Last damager for killer tracking + */ + private UUID lastDamager; + + /** + * Last damage timestamp + */ + private LocalDateTime damageTimestamp; /** * Constructor @@ -93,5 +124,106 @@ public UUID getPlayerUuid() { return this.playerUuid; } + + /** + * @return the spawn + */ + public ComponentIdInterface getSpawn() + { + return this.spawn; + } + + /** + * @param spawn the spawn to set + */ + public void setSpawn(ComponentIdInterface spawn) + { + this.spawn = spawn; + } + + /** + * Statistic function + * @param statistic + * @return current statistic + */ + public int getStatistic(MatchStatisticId statistic) + { + final Integer result = this.statistics.get(statistic); + return result == null ? 0 : result.intValue(); + } + + /** + * Statistic function + * @param statistic + * @param newValue + */ + public void setStatistic(MatchStatisticId statistic, int newValue) + { + this.statistics.put(statistic, Integer.valueOf(newValue)); + } + + /** + * Adds the match statistic for given statistic id. + * @param statistic + * @param amount delta value + */ + void addStatistic(MatchStatisticId statistic, int amount) + { + this.setStatistic(statistic, this.getStatistic(statistic) + amount); + } + + /** + * Decrements the match statistic for given statistic id. + * @param statistic + * @param amount delta value + */ + void decStatistic(MatchStatisticId statistic, int amount) + { + this.setStatistic(statistic, this.getStatistic(statistic) - amount); + } + + @Override + public UUID getPlayer() + { + return this.playerUuid; + } + + @Override + public UUID getLastDamager() + { + return this.lastDamager; + } + + @Override + public LocalDateTime getDamageTimestamp() + { + return this.damageTimestamp; + } + + /** + * Sets the killer tracking + * @param damager + */ + public void setKillerTracking(UUID damager) + { + this.lastDamager = damager; + this.damageTimestamp = LocalDateTime.now(); + } + + /** + * @return the team + */ + public TeamIdType getTeam() + { + return this.team; + } + + /** + * @param team the team to set + */ + public void setTeam(TeamIdType team) + { + this.team = team; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java index e1689690..06393fcf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java @@ -24,10 +24,13 @@ package de.minigameslib.mgapi.impl.arena; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; import java.util.UUID; +import de.minigameslib.mgapi.api.match.MatchStatisticId; import de.minigameslib.mgapi.api.team.TeamIdType; /** @@ -44,6 +47,11 @@ class MatchTeam /** registered team members. */ private final Set<UUID> teamMembers = new HashSet<>(); + + /** + * the match statistics. + */ + private final Map<MatchStatisticId, Integer> statistics = new HashMap<>(); /** * Constructor @@ -69,5 +77,46 @@ public Set<UUID> getTeamMembers() { return this.teamMembers; } + + /** + * Statistic function + * @param statistic + * @return current statistic + */ + public int getStatistic(MatchStatisticId statistic) + { + final Integer result = this.statistics.get(statistic); + return result == null ? 0 : result.intValue(); + } + + /** + * Statistic function + * @param statistic + * @param newValue + */ + public void setStatistic(MatchStatisticId statistic, int newValue) + { + this.statistics.put(statistic, Integer.valueOf(newValue)); + } + + /** + * Adds the match statistic for given statistic id. + * @param statistic + * @param amount delta value + */ + void addStatistic(MatchStatisticId statistic, int amount) + { + this.setStatistic(statistic, this.getStatistic(statistic) + amount); + } + + /** + * Decrements the match statistic for given statistic id. + * @param statistic + * @param amount delta value + */ + void decStatistic(MatchStatisticId statistic, int amount) + { + this.setStatistic(statistic, this.getStatistic(statistic) - amount); + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java new file mode 100644 index 00000000..02c47d1d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java @@ -0,0 +1,165 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import org.bukkit.Location; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.JoinSpawnComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class JoinSpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, JoinSpawnComponentData> implements JoinSpawnComponentHandler +{ + + /** the underlying component. */ + protected ComponentInterface component; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onResume(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onPause(ComponentInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<JoinSpawnComponentData> getDataClass() + { + return JoinSpawnComponentData.class; + } + + @Override + protected JoinSpawnComponentData createData() + { + return new JoinSpawnComponentData(); + } + + @Override + protected void applyListeners(ComponentRuleSetInterface listeners) + { + this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ComponentRuleSetInterface listeners) + { + this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + + @Override + public ComponentInterface getComponent() + { + return this.component; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java new file mode 100644 index 00000000..95ce0cd6 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; + +/** + * @author mepeisen + * + */ +public class JoinSpawnComponentData extends AbstractObjectData<ComponentRuleSetType> +{ + + // marker only + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java new file mode 100644 index 00000000..b0f4c1ce --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java @@ -0,0 +1,165 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import org.bukkit.Location; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.MainLobbySpawnComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class MainLobbySpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, MainLobbySpawnComponentData> implements MainLobbySpawnComponentHandler +{ + + /** the underlying component. */ + protected ComponentInterface component; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onResume(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onPause(ComponentInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<MainLobbySpawnComponentData> getDataClass() + { + return MainLobbySpawnComponentData.class; + } + + @Override + protected MainLobbySpawnComponentData createData() + { + return new MainLobbySpawnComponentData(); + } + + @Override + protected void applyListeners(ComponentRuleSetInterface listeners) + { + this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ComponentRuleSetInterface listeners) + { + this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + + @Override + public ComponentInterface getComponent() + { + return this.component; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java new file mode 100644 index 00000000..46b0e07c --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java @@ -0,0 +1,38 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; + +/** + * @author mepeisen + * + */ +public class MainLobbySpawnComponentData extends AbstractObjectData<ComponentRuleSetType> +{ + + // marker only + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java new file mode 100644 index 00000000..e883c6b8 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java @@ -0,0 +1,180 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import java.io.File; + +import org.bukkit.Location; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.SpectatorSpawnComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.team.TeamIdType; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * @author mepeisen + * + */ +public class SpectatorSpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, SpectatorSpawnComponentData> implements SpectatorSpawnComponentHandler +{ + + /** the underlying component. */ + protected ComponentInterface component; + + @Override + public void initArena(ArenaInterface a) throws McException + { + super.initArena(a); + this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ + if (this.dataFile.exists()) + { + this.loadData(); + } + else + { + this.saveData(); + } + } + + @Override + public void onCreate(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onResume(ComponentInterface c) throws McException + { + this.component = c; + } + + @Override + public void onPause(ComponentInterface c) + { + // do nothing + } + + @Override + public void canDelete() throws McException + { + this.checkModifications(); + } + + @Override + public void onDelete() + { + if (this.dataFile.exists()) + { + this.dataFile.delete(); + } + } + + @Override + public void canChangeLocation(Location newValue) throws McException + { + this.checkModifications(); + } + + @Override + public void onLocationChange(Location newValue) + { + // do nothing + } + + @Override + public void read(DataSection section) + { + // no additional data in mclib files + } + + @Override + public void write(DataSection section) + { + // no additional data in mclib files + } + + @Override + public boolean test(DataSection section) + { + // no additional data in mclib files + return true; + } + + @Override + protected Class<SpectatorSpawnComponentData> getDataClass() + { + return SpectatorSpawnComponentData.class; + } + + @Override + protected SpectatorSpawnComponentData createData() + { + return new SpectatorSpawnComponentData(); + } + + @Override + protected void applyListeners(ComponentRuleSetInterface listeners) + { + this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected void removeListeners(ComponentRuleSetInterface listeners) + { + this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + } + + @Override + protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException + { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + } + + @Override + public TeamIdType getTeam() + { + return this.data.team; + } + + @Override + public void setTeam(TeamIdType team) throws McException + { + this.checkModifications(); + this.data.setTeam(team); + this.saveData(); + } + + @Override + public ComponentInterface getComponent() + { + return this.component; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java new file mode 100644 index 00000000..fea4281b --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java @@ -0,0 +1,60 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.obj; + +import de.minigameslib.mclib.shared.api.com.PersistentField; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * @author mepeisen + * + */ +public class SpectatorSpawnComponentData extends AbstractObjectData<ComponentRuleSetType> +{ + + /** + * The team this spawn is associated to + */ + @PersistentField + protected TeamIdType team; + + /** + * @return the team + */ + public TeamIdType getTeam() + { + return this.team; + } + + /** + * @param team the team to set + */ + public void setTeam(TeamIdType team) + { + this.team = team; + } + +} From c50f3c16b89e9d50fce09fb170d4e4867ea82fca Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 23 Feb 2017 08:50:17 +0100 Subject: [PATCH 200/266] v2 --- .../de/minigameslib/mgapi/api/ApiVersion.java | 56 +++++++++++++++++++ .../mgapi/api/MinigamesLibInterface.java | 48 +++++++++++++++- .../mgapi/api/arena/ArenaInterface.java | 1 - .../mgapi/api/arena/ArenaTypeProvider.java | 6 +- .../api/arena/ClassicSinglePlayerArena.java | 11 ++-- .../mgapi/api/arena/ClassicTeamArena.java | 10 ++-- .../mgapi/api/match/ArenaMatchInterface.java | 22 ++++++-- .../mgapi/impl/arena/ArenaMatchImpl.java | 24 ++++++-- 8 files changed, 153 insertions(+), 25 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java new file mode 100644 index 00000000..f4dede8d --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java @@ -0,0 +1,56 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api; + +import static java.lang.annotation.ElementType.ANNOTATION_TYPE; +import static java.lang.annotation.ElementType.CONSTRUCTOR; +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.SOURCE; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * This annotation is used for information only. + * It shows the minimum api version of a method or entire type. + * + * @author mepeisen + * + * @see MinigamesLibInterface#getApiVersion() + */ +@Retention(SOURCE) +@Target({ TYPE, FIELD, METHOD, CONSTRUCTOR, ANNOTATION_TYPE }) +public @interface ApiVersion +{ + + /** + * Returns the minimum version + * @return minimum version + */ + int value(); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 10cca285..1c91f65e 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -93,9 +93,55 @@ static MinigamesLibInterface instance() int APIVERSION_1_0_0 = 10000; /** - * Returns the api version of MCLIB. + * This api version is not yet used; the api version is compatible to {@link #APIVERSION_1_0_0} but + * may introduce new features or methods. Use this for version checks (getApiVersion < APIVERSION_1_1_0). + */ + int APIVERSION_1_1_0 = 10100; + + /** + * This api version is not yet used; the api version is incompatible to {@link #APIVERSION_1_0_0}. + * Use this for version checks (getApiVersion < APIVERSION_2_0_0). + */ + int APIVERSION_2_0_0 = 20000; + + /** + * Returns the api version of MinigamesLib. + * + * <p> + * The api version is found with int constants on this interface. The integer is built with following schematic: + * <ul> + * <li>major version number</li> + * <li>minor version number (to digits)</li> + * <li>fix level (two digits)</li> + * </ul> + * </p> + * + * <p> + * Different fix levels are returned for new minecraft versions. It indicates that the mclib version type enum + * contains new entries and that MinigamesLib supports a new minecraft version. For most situations you need not + * take care about fix levels. You need only check for fix levels if you require a special feature found at newest + * minecraft versions. + * </p> + * + * <p> + * The minor version number is changed if MinigamesLib adds new features or methods to the existing API. + * You will find an informative annotation (@ApiVersion) for methods being present in a specific api version. + * </p> + * + * <p> + * The major version number is changed if MinigamesLib API is completly rewritten. + * </p> + * + * <p> + * <b>In most situations it is ok to check for any version below the newest major version. (getApiVersion() < APIVERSION_2_0_0). + * </p> * * @return api version. + * + * @see #APIVERSION_1_0_0 + * @see #APIVERSION_1_1_0 + * @see #APIVERSION_2_0_0 + * @see ApiVersion */ int getApiVersion(); diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 29bf207e..ade3ff6c 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -54,7 +54,6 @@ import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; import de.minigameslib.mgapi.api.team.ArenaTeamInterface; -import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java index 8dc0dedc..7c09e8a4 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java @@ -24,7 +24,7 @@ package de.minigameslib.mgapi.api.arena; -import java.util.Collection; +import java.util.Set; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; @@ -67,13 +67,13 @@ public interface ArenaTypeProvider * Returns the fixed arena rule set types. * @return fixed arena rule sets. */ - Collection<ArenaRuleSetType> getFixedArenaRules(); + Set<ArenaRuleSetType> getFixedArenaRules(); /** * Returns optional arena rule sets * @return optional arena rule sets. */ - Collection<ArenaRuleSetType> getOptionalArenaRules(); + Set<ArenaRuleSetType> getOptionalArenaRules(); /** * Creates a configuration with defaults for given rule set diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java index bf239f8e..491de2f9 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java @@ -25,8 +25,9 @@ package de.minigameslib.mgapi.api.arena; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; +import java.util.HashSet; +import java.util.Set; import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; @@ -48,16 +49,16 @@ public abstract class ClassicSinglePlayerArena implements ArenaTypeProvider { @Override - public Collection<ArenaRuleSetType> getFixedArenaRules() + public Set<ArenaRuleSetType> getFixedArenaRules() { - return Arrays.asList(BasicArenaRuleSets.BasicMatch); + return new HashSet<>(Arrays.asList(BasicArenaRuleSets.BasicMatch)); } @Override - public Collection<ArenaRuleSetType> getOptionalArenaRules() + public Set<ArenaRuleSetType> getOptionalArenaRules() { // TODO optional rules for classic simple player arena - return Collections.emptyList(); + return Collections.emptySet(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java index 1cf9277f..e88b3504 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java @@ -24,8 +24,8 @@ package de.minigameslib.mgapi.api.arena; -import java.util.Collection; import java.util.Collections; +import java.util.Set; import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; @@ -46,17 +46,17 @@ public abstract class ClassicTeamArena implements ArenaTypeProvider { @Override - public Collection<ArenaRuleSetType> getFixedArenaRules() + public Set<ArenaRuleSetType> getFixedArenaRules() { // TODO implement oitc team arena - return Collections.emptyList(); + return Collections.emptySet(); } @Override - public Collection<ArenaRuleSetType> getOptionalArenaRules() + public Set<ArenaRuleSetType> getOptionalArenaRules() { // TODO implement oitc team arena - return Collections.emptyList(); + return Collections.emptySet(); } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java index 93498c2a..9a3c26d1 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -123,9 +123,17 @@ public interface ArenaMatchInterface /** * Returns the match participants + * @param returnSpectators {@code true} to return spectators not being active within the game, {@code false} to filter and only return players being active * @return match participants; player uuids */ - Collection<UUID> getParticipants(); + Collection<UUID> getParticipants(boolean returnSpectators); + + /** + * Returns the number of remaining players + * @param returnSpectators {@code true} to return spectators not being active within the game, {@code false} to filter and only return players being active + * @return match participants count + */ + int getParticipantCount(boolean returnSpectators); /** * Returns the winners @@ -244,32 +252,36 @@ interface MatchResult * @param player * @param statistic * @param amount delta value + * @return the new statistic value */ - void addStatistic(UUID player, MatchStatisticId statistic, int amount); + int addStatistic(UUID player, MatchStatisticId statistic, int amount); /** * Adds the match statistic for given team and statistic id. * @param team * @param statistic * @param amount delta value + * @return the new statistic value */ - void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount); /** * Decrement the match statistic for given player and statistic id. * @param player * @param statistic * @param amount delta value + * @return the new statistic value */ - void decStatistic(UUID player, MatchStatisticId statistic, int amount); + int decStatistic(UUID player, MatchStatisticId statistic, int amount); /** * Decrement the match statistic for given team and statistic id. * @param team * @param statistic * @param amount delta value + * @return the new statistic value */ - void decStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount); /** * Returns the play time of given player in seconds diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index 8de6d50c..1d7916a8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -202,7 +202,7 @@ public TeamIdType getTeam(UUID uuid) } @Override - public Collection<UUID> getParticipants() + public Collection<UUID> getParticipants(boolean flg) // TODO { return this.players.keySet(); } @@ -318,43 +318,47 @@ public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) } @Override - public void addStatistic(UUID player, MatchStatisticId statistic, int amount) + public int addStatistic(UUID player, MatchStatisticId statistic, int amount) { final MatchPlayer p = this.players.get(player); if (p != null) { p.addStatistic(statistic, amount); } + return 0; // TODO } @Override - public void addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) + public int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) { final MatchTeam p = this.teams.get(team); if (p != null) { p.addStatistic(statistic, amount); } + return 0; // TODO } @Override - public void decStatistic(UUID player, MatchStatisticId statistic, int amount) + public int decStatistic(UUID player, MatchStatisticId statistic, int amount) { final MatchPlayer p = this.players.get(player); if (p != null) { p.decStatistic(statistic, amount); } + return 0; // TODO } @Override - public void decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) + public int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) { final MatchTeam p = this.teams.get(team); if (p != null) { p.decStatistic(statistic, amount); } + return 0; // TODO } @Override @@ -573,5 +577,15 @@ public boolean isWin() } } + + /* (non-Javadoc) + * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getParticipantCount(boolean) + */ + @Override + public int getParticipantCount(boolean returnSpectators) + { + // TODO Auto-generated method stub + return 0; + } } From 3734d218be4dd711f84347aefc5ca5e5f3533d2a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 4 Mar 2017 08:11:20 +0100 Subject: [PATCH 201/266] added title on end #187 --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index f5b258a9..6a59d199 100644 --- a/changelog.md +++ b/changelog.md @@ -34,6 +34,11 @@ * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) +###### HorseRacing + +* moved hard coded strings to config (for translation) +* added config option announce\_title (https://github.com/MysticCity/MinigamesAPI/issues/187) + ###### MobEscape * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) From 8a40e9e0c0e4fbc638f7e1e606072f7ed7a64e31 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 4 Mar 2017 09:08:48 +0100 Subject: [PATCH 202/266] fixed particle spawn --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 6a59d199..40400fdc 100644 --- a/changelog.md +++ b/changelog.md @@ -43,6 +43,7 @@ * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) * added scoreboard text to messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/218) +* fixed crack particle spawn (https://github.com/MysticCity/MinigamesAPI/issues/146) ###### OITC From 23705791ef12fd529c4131844d71883c31484b70 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 4 Mar 2017 10:42:49 +0100 Subject: [PATCH 203/266] mob escape: destroy mode --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 40400fdc..2b27b2e2 100644 --- a/changelog.md +++ b/changelog.md @@ -44,6 +44,7 @@ * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) * added scoreboard text to messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/218) * fixed crack particle spawn (https://github.com/MysticCity/MinigamesAPI/issues/146) +* new config: destroy\_mode with possible values "sphere" and "cuboid" (https://github.com/MysticCity/MinigamesAPI/issues/125) ###### OITC From 13c30f1302f94b4118c1a2054803ade210edeb9e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 4 Mar 2017 14:01:52 +0100 Subject: [PATCH 204/266] fixed unbalanced bedwars teams --- .../minigamesapi/Arena.java | 80 ++++++++++++------- changelog.md | 1 + 2 files changed, 53 insertions(+), 28 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index e84688cc..c13bf0c8 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -1631,37 +1631,12 @@ public void startLobby(final boolean countdown) if (Arena.this.currentlobbycount == 60 || Arena.this.currentlobbycount == 30 || Arena.this.currentlobbycount == 15 || Arena.this.currentlobbycount == 10 || Arena.this.currentlobbycount < 6) { - for (final String p_1 : a.getAllPlayers()) - { - if (Validator.isPlayerOnline(p_1)) - { - final Player p1 = Bukkit.getPlayer(p_1); - if (countdown) - { - Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll(ArenaMessageStrings.COUNT, Integer.toString(Arena.this.currentlobbycount))); - if (lobbycountdown_sound != null) - { - p1.playSound(p1.getLocation(), lobbycountdown_sound, 1F, 0F); - } - } - } - } - } - for (final String p_2 : a.getAllPlayers()) - { - if (Validator.isPlayerOnline(p_2)) - { - final Player p2 = Bukkit.getPlayer(p_2); - p2.setExp(1F * ((1F * Arena.this.currentlobbycount) / (1F * Arena.this.pli.getLobbyCountdown()))); - if (Arena.this.pli.use_xp_bar_level) - { - p2.setLevel(Arena.this.currentlobbycount); - } - } + sendLobbyCountdownMsg(countdown, a, lobbycountdown_sound); } + setLobbyCountdownLevel(a); if (Arena.this.currentlobbycount < 1) { - Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.start(true), 10L); + onLobbyCountdownComplete(); try { Bukkit.getScheduler().cancelTask(Arena.this.currenttaskid); @@ -1673,6 +1648,46 @@ public void startLobby(final boolean countdown) } }, 5L, 20).getTaskId(); } + + protected void onLobbyCountdownComplete() + { + Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.start(true), 10L); + } + + protected void setLobbyCountdownLevel(final Arena a) + { + for (final String p_2 : a.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_2)) + { + final Player p2 = Bukkit.getPlayer(p_2); + p2.setExp(1F * ((1F * Arena.this.currentlobbycount) / (1F * Arena.this.pli.getLobbyCountdown()))); + if (Arena.this.pli.use_xp_bar_level) + { + p2.setLevel(Arena.this.currentlobbycount); + } + } + } + } + + protected void sendLobbyCountdownMsg(final boolean countdown, final Arena a, final Sound lobbycountdown_sound) + { + for (final String p_1 : a.getAllPlayers()) + { + if (Validator.isPlayerOnline(p_1)) + { + final Player p1 = Bukkit.getPlayer(p_1); + if (countdown) + { + Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll(ArenaMessageStrings.COUNT, Integer.toString(Arena.this.currentlobbycount))); + if (lobbycountdown_sound != null) + { + p1.playSound(p1.getLocation(), lobbycountdown_sound, 1F, 0F); + } + } + } + } + } /** * Instantly starts the arena, teleports players and udpates the arena. @@ -2127,6 +2142,15 @@ protected void stop() } + protected void abortStarting() + { + if (this.currentstate == ArenaState.STARTING) + { + this.currentstate = ArenaState.JOIN; + Util.updateSign(this.plugin, this); + } + } + /** * Rebuilds an arena from file (only for arenas of REGENERATION type) */ diff --git a/changelog.md b/changelog.md index 2b27b2e2..5b4699dd 100644 --- a/changelog.md +++ b/changelog.md @@ -17,6 +17,7 @@ ###### BedWars * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) +* fixed unbalanced teams (https://github.com/MysticCity/MinigamesAPI/issues/215) ###### BowBash From b9fc044f846f58bd451be33bc19a87bbc8d2ef6d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 5 Mar 2017 07:40:42 +0100 Subject: [PATCH 205/266] bedwars localization --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 5b4699dd..f6bb0c99 100644 --- a/changelog.md +++ b/changelog.md @@ -18,6 +18,7 @@ * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) * fixed unbalanced teams (https://github.com/MysticCity/MinigamesAPI/issues/215) +* fixed localization/ hard coded strings (https://github.com/MysticCity/MinigamesAPI/issues/215) ###### BowBash From 016ca7e828c6ca8a422b7097c8bfa2e94eb67ed9 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 5 Mar 2017 08:35:20 +0100 Subject: [PATCH 206/266] moving boat under water will now lose --- .../minigamesapi/ArenaListener.java | 16 ++++++++-------- changelog.md | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 48644558..7f572a3c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -866,10 +866,10 @@ public void onVMove(final VehicleMoveEvent event) { if (a.getArenaState() == ArenaState.INGAME) { - if (MinigamesAPI.debug) - { - plugin.getLogger().log(Level.INFO, "Player " + p + " moved ingame to " + event.getTo()); - } +// if (MinigamesAPI.debug) +// { +// plugin.getLogger().log(Level.INFO, "Player " + p + " moved ingame to " + event.getTo()); +// } if (event.getTo().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) { // if (a.getArenaType() == ArenaType.JUMPNRUN) @@ -924,10 +924,10 @@ public void onMove(final PlayerMoveEvent event) { if (a.getArenaState() == ArenaState.INGAME) { - if (MinigamesAPI.debug) - { - plugin.getLogger().log(Level.INFO, "Player " + p + " moved ingame to " + p.getLocation()); - } +// if (MinigamesAPI.debug) +// { +// plugin.getLogger().log(Level.INFO, "Player " + p + " moved ingame to " + p.getLocation()); +// } if (p.getLocation().getBlockY() + this.loseY < a.getSpawns().get(0).getBlockY()) { if (a.getArenaType() == ArenaType.JUMPNRUN) diff --git a/changelog.md b/changelog.md index f6bb0c99..01736c31 100644 --- a/changelog.md +++ b/changelog.md @@ -55,6 +55,7 @@ ###### SeaBattle * fixed lags/performance issues (https://github.com/MysticCity/MinigamesAPI/issues/198, https://github.com/MysticCity/MinigamesAPI/issues/207, https://github.com/MysticCity/MinigamesAPI/issues/213) +* fixed boat under water (https://github.com/MysticCity/MinigamesAPI/issues/185) ###### Snake From 36167f81c438182ae520793fde299f66fe8713d6 Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sun, 5 Mar 2017 08:55:47 +0100 Subject: [PATCH 207/266] preparing 1.14.15 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 8134cb08..0f26d0d4 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.15-SNAPSHOT</version> + <version>1.14.15</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> + <version>1.14.15</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index e5b2c6b8..342caa41 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.15-SNAPSHOT</version> + <version>1.14.15</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> + <version>1.14.15</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 19b29879..d62cc1cf 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15-SNAPSHOT</version> + <version>1.14.15</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.15-SNAPSHOT</version> + <version>1.14.15</version> <scope>provided</scope> </dependency> <dependency> From 83017a4e6813a92754251a462f4147419716b4b5 Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sun, 5 Mar 2017 08:55:47 +0100 Subject: [PATCH 208/266] switching to 1.14.16 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 0f26d0d4..4dccabdb 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.15</version> + <version>1.14.16-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15</version> + <version>1.14.16-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 342caa41..19546fed 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.15</version> + <version>1.14.16-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15</version> + <version>1.14.16-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index d62cc1cf..07225836 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.15</version> + <version>1.14.16-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.15</minigames.releaseversion> + <minigames.releaseversion>1.14.16</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.11-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.15</version> + <version>1.14.16-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From f7bb66d5aa18d39cf8bccecbabaceee00a3bbe4a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 9 Mar 2017 18:10:00 +0100 Subject: [PATCH 209/266] v2 --- .../mgapi/api/events/ArenaLoseEvent.java | 148 ++ .../api/events/ArenaPlayerJoinEvent.java | 4 + .../ArenaPlayerJoinSpectatorsEvent.java | 19 +- .../api/events/ArenaPlayerJoinedEvent.java | 11 +- .../ArenaPlayerJoinedSpectatorsEvent.java | 23 +- .../events/ArenaPlayerJoinedTeamEvent.java | 150 ++ .../api/events/ArenaPlayerLeftEvent.java | 6 +- .../ArenaPlayerLeftSpectatorsEvent.java | 6 +- .../api/events/ArenaPlayerLeftTeamEvent.java | 150 ++ .../mgapi/api/events/ArenaWinEvent.java | 148 ++ .../mgapi/api/match/ArenaMatchInterface.java | 124 +- .../mgapi/api/match/MatchPlayerInterface.java | 112 ++ .../mgapi/api/match/MatchTeamInterface.java | 82 + v2/plugin/pom.xml | 7 + .../mgapi/impl/MinigamesPlugin.java | 61 +- .../mgapi/impl/MinigamesPluginInterface.java | 132 ++ .../mgapi/impl/arena/ArenaImpl.java | 161 +- .../mgapi/impl/arena/ArenaMatchImpl.java | 579 ++++++- .../mgapi/impl/arena/MatchPlayer.java | 122 +- .../mgapi/impl/arena/MatchTeam.java | 50 +- .../mgapi/impl/obj/BattleZone.java | 4 +- .../mgapi/impl/obj/EmptyComponent.java | 4 +- .../mgapi/impl/obj/EmptySign.java | 4 +- .../mgapi/impl/obj/EmptyZone.java | 4 +- .../mgapi/impl/obj/GenericComponent.java | 4 +- .../mgapi/impl/obj/GenericSign.java | 4 +- .../mgapi/impl/obj/GenericZone.java | 4 +- .../minigameslib/mgapi/impl/obj/JoinSign.java | 4 +- .../mgapi/impl/obj/JoinSpawnComponent.java | 4 +- .../minigameslib/mgapi/impl/obj/JoinZone.java | 4 +- .../mgapi/impl/obj/LeaveSign.java | 4 +- .../mgapi/impl/obj/LeaveZone.java | 4 +- .../mgapi/impl/obj/LobbyZone.java | 4 +- .../impl/obj/MainLobbySpawnComponent.java | 4 +- .../minigameslib/mgapi/impl/obj/MainZone.java | 4 +- .../mgapi/impl/obj/SpawnComponent.java | 4 +- .../impl/obj/SpectatorSpawnComponent.java | 4 +- .../mgapi/impl/obj/SpectatorZone.java | 4 +- .../mgapi/impl/rules/BasicMatch.java | 2 +- .../mgapi/impl/test/ArenaImplTest.java | 70 + .../mgapi/impl/test/ArenaMatchImplTest.java | 1524 +++++++++++++++++ .../mgapi/impl/test/plugin/TestArenas.java | 70 + .../mgapi/impl/test/plugin/TestMessages.java} | 21 +- .../mgapi/impl/test/plugin/TestPlugin.java | 101 ++ 44 files changed, 3638 insertions(+), 317 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java create mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java create mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java create mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java rename v2/plugin/src/{main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java => test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java} (66%) create mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java new file mode 100644 index 00000000..37e39c1f --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java @@ -0,0 +1,148 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import java.util.stream.Collectors; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface.MatchResult; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * One or more player were marked as loser + * + * @author mepeisen + * + * @see ArenaMatchInterface#setLoser(TeamIdType...) + * @see ArenaMatchInterface#setLoser(java.util.UUID...) + */ +public class ArenaLoseEvent extends Event implements MinecraftEvent<ArenaLoseEvent, ArenaLoseEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena players. */ + private final MatchResult result; + + /** + * @param arena + * @param result + */ + public ArenaLoseEvent(ArenaInterface arena, MatchResult result) + { + this.arena = arena; + this.result = result; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the match result + */ + public MatchResult getMatchResult() + { + return this.result; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaLoseEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McPlayerInterface getPlayer() + { + return ObjectServiceInterface.instance().getPlayer(this.result.getPlayers().iterator().next()); + } + + @Override + public Iterable<McPlayerInterface> getPlayers() + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + return this.result.getPlayers().stream().map(osi::getPlayer).collect(Collectors.toList()); + } + + @Override + public McOutgoingStubbing<ArenaLoseEvent> when(McPredicate<ArenaLoseEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java index f7ea11f1..9dd99c7e 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java @@ -36,6 +36,7 @@ import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.team.TeamIdType; @@ -43,6 +44,9 @@ * Event fired before an arena player joined. * * @author mepeisen + * + * @see ArenaMatchInterface#join(ArenaPlayerInterface, TeamIdType) + * @see ArenaInterface#join(ArenaPlayerInterface) */ public class ArenaPlayerJoinEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinEvent, ArenaPlayerJoinEvent> { diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java index d59f7b17..87d8e806 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java @@ -36,12 +36,16 @@ import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** * Event fired before an arena player joined spectators team. * * @author mepeisen + * + * @see ArenaMatchInterface#spectate(ArenaPlayerInterface) + * @see ArenaInterface#spectate(ArenaPlayerInterface) */ public class ArenaPlayerJoinSpectatorsEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinSpectatorsEvent, ArenaPlayerJoinSpectatorsEvent> { @@ -54,15 +58,28 @@ public class ArenaPlayerJoinSpectatorsEvent extends AbstractVetoEvent implements /** the arena player. */ private final ArenaPlayerInterface player; + + /** {@code true} if player had played before joining spectators. */ + private final boolean playedBefore; /** * @param arena * @param player + * @param playedBefore */ - public ArenaPlayerJoinSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player) + public ArenaPlayerJoinSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player, boolean playedBefore) { this.arena = arena; this.player = player; + this.playedBefore = playedBefore; + } + + /** + * @return the playedBefore + */ + public boolean isPlayedBefore() + { + return this.playedBefore; } /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java index de932d38..b0a2b6f4 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java @@ -24,11 +24,11 @@ package de.minigameslib.mgapi.api.events; +import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; @@ -36,14 +36,19 @@ import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.TeamIdType; /** * Event fired after a player joined an arena. * * @author mepeisen + * + * @see ArenaMatchInterface#join(ArenaPlayerInterface, TeamIdType) + * @see ArenaInterface#join(ArenaPlayerInterface) */ -public class ArenaPlayerJoinedEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinedEvent, ArenaPlayerJoinedEvent> +public class ArenaPlayerJoinedEvent extends Event implements MinecraftEvent<ArenaPlayerJoinedEvent, ArenaPlayerJoinedEvent> { /** handlers list. */ @@ -53,7 +58,7 @@ public class ArenaPlayerJoinedEvent extends AbstractVetoEvent implements Minecra private final ArenaInterface arena; /** the arena player. */ - private final ArenaPlayerInterface player; + private final ArenaPlayerInterface player; /** * @param arena diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java index 2ff14c16..8a2788d8 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java @@ -24,11 +24,11 @@ package de.minigameslib.mgapi.api.events; +import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectInterface; import de.minigameslib.mclib.api.util.function.FalseStub; @@ -36,14 +36,18 @@ import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** * Event fired after a player joines spectators. * * @author mepeisen + * + * @see ArenaMatchInterface#spectate(ArenaPlayerInterface) + * @see ArenaInterface#spectate(ArenaPlayerInterface) */ -public class ArenaPlayerJoinedSpectatorsEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinedSpectatorsEvent, ArenaPlayerJoinedSpectatorsEvent> +public class ArenaPlayerJoinedSpectatorsEvent extends Event implements MinecraftEvent<ArenaPlayerJoinedSpectatorsEvent, ArenaPlayerJoinedSpectatorsEvent> { /** handlers list. */ @@ -54,15 +58,28 @@ public class ArenaPlayerJoinedSpectatorsEvent extends AbstractVetoEvent implemen /** the arena player. */ private final ArenaPlayerInterface player; + + /** {@code true} if player had played before joining spectators. */ + private final boolean playedBefore; /** * @param arena * @param player + * @param playedBefore */ - public ArenaPlayerJoinedSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player) + public ArenaPlayerJoinedSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player, boolean playedBefore) { this.arena = arena; this.player = player; + this.playedBefore = playedBefore; + } + + /** + * @return the playedBefore + */ + public boolean isPlayedBefore() + { + return this.playedBefore; } /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java new file mode 100644 index 00000000..8f9f19a0 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java @@ -0,0 +1,150 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * Event fired after a player joined a team. + * + * @author mepeisen + * + * @see ArenaMatchInterface#join(ArenaPlayerInterface, TeamIdType) + */ +public class ArenaPlayerJoinedTeamEvent extends Event implements MinecraftEvent<ArenaPlayerJoinedTeamEvent, ArenaPlayerJoinedTeamEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** pre selected team. */ + private final TeamIdType team; + + /** + * @param arena + * @param player + * @param team + */ + public ArenaPlayerJoinedTeamEvent(ArenaInterface arena, ArenaPlayerInterface player, TeamIdType team) + { + this.arena = arena; + this.player = player; + this.team = team; + } + + /** + * @return the team + */ + public TeamIdType getTeam() + { + return this.team; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerJoinedTeamEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerJoinedTeamEvent> when(McPredicate<ArenaPlayerJoinedTeamEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java index 432f6b96..ecd4ec42 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java @@ -36,12 +36,16 @@ import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** - * Event fired after a player left an arena. + * Event fired after a player left an arena. The player has played before leaving. * * @author mepeisen + * + * @see ArenaMatchInterface#leave(ArenaPlayerInterface) + * @see ArenaInterface#leave(ArenaPlayerInterface) */ public class ArenaPlayerLeftEvent extends Event implements MinecraftEvent<ArenaPlayerLeftEvent, ArenaPlayerLeftEvent> { diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java index 74b71124..10c21b33 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java @@ -36,12 +36,16 @@ import de.minigameslib.mclib.api.util.function.McPredicate; import de.minigameslib.mclib.api.util.function.TrueStub; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** - * Event fired after a player left an arena spectators team. + * Event fired after a player left an arena spectators team. The player was spectator before leaving. * * @author mepeisen + * + * @see ArenaMatchInterface#leave(ArenaPlayerInterface) + * @see ArenaInterface#leave(ArenaPlayerInterface) */ public class ArenaPlayerLeftSpectatorsEvent extends Event implements MinecraftEvent<ArenaPlayerLeftSpectatorsEvent, ArenaPlayerLeftSpectatorsEvent> { diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java new file mode 100644 index 00000000..3ec5126e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java @@ -0,0 +1,150 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * Event fired after a player left a team. + * + * @author mepeisen + * + * @see ArenaMatchInterface#leave(ArenaPlayerInterface, TeamIdType) + */ +public class ArenaPlayerLeftTeamEvent extends Event implements MinecraftEvent<ArenaPlayerLeftTeamEvent, ArenaPlayerLeftTeamEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** pre selected team. */ + private final TeamIdType team; + + /** + * @param arena + * @param player + * @param team + */ + public ArenaPlayerLeftTeamEvent(ArenaInterface arena, ArenaPlayerInterface player, TeamIdType team) + { + this.arena = arena; + this.player = player; + this.team = team; + } + + /** + * @return the team + */ + public TeamIdType getTeam() + { + return this.team; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerLeftTeamEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerLeftTeamEvent> when(McPredicate<ArenaPlayerLeftTeamEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java new file mode 100644 index 00000000..7a3c10a5 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java @@ -0,0 +1,148 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import java.util.stream.Collectors; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface.MatchResult; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * One or more player were marked as winner + * + * @author mepeisen + * + * @see ArenaMatchInterface#setWinner(TeamIdType...) + * @see ArenaMatchInterface#setWinner(java.util.UUID...) + */ +public class ArenaWinEvent extends Event implements MinecraftEvent<ArenaWinEvent, ArenaWinEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena players. */ + private final MatchResult result; + + /** + * @param arena + * @param result + */ + public ArenaWinEvent(ArenaInterface arena, MatchResult result) + { + this.arena = arena; + this.result = result; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the match result + */ + public MatchResult getMatchResult() + { + return this.result; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaWinEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McPlayerInterface getPlayer() + { + return ObjectServiceInterface.instance().getPlayer(this.result.getPlayers().iterator().next()); + } + + @Override + public Iterable<McPlayerInterface> getPlayers() + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + return this.result.getPlayers().stream().map(osi::getPlayer).collect(Collectors.toList()); + } + + @Override + public McOutgoingStubbing<ArenaWinEvent> when(McPredicate<ArenaWinEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java index 9a3c26d1..07946b84 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -68,6 +68,13 @@ public interface ArenaMatchInterface */ boolean isAborted(); + /** + * Returns the match player for given player uuid + * @param uuid + * @return player or {@code null} if player is not registered in match + */ + MatchPlayerInterface get(UUID uuid); + // teams /** @@ -92,13 +99,51 @@ public interface ArenaMatchInterface TeamIdType getPreferredTeam(); /** - * Let the given user join the given team + * Let the given user join the match; on team matches the best team will be selected + * @param player + * @throws McException thrown if the current match is already finished + */ + void join(ArenaPlayerInterface player) throws McException; + + /** + * Let the given user join the given team; does NOT remove it from previous/current team; will remove from UNKNOWN team * @param player - * @param team the team to join - * @throws McException thrown if the current match is not a team match and if + * @param team the team to join; must not be used with special teams + * @throws McException thrown if the current match is not a team match or if match is already finished */ void join(ArenaPlayerInterface player, TeamIdType team) throws McException; + /** + * Let the given user leave the given team; will join the UNKNOWN team if the player leaves the last team + * @param player + * @param team the team to join; must not be used with special teams + * @throws McException thrown if the current match is not a team match or if match is already finished + */ + void leave(ArenaPlayerInterface player, TeamIdType team) throws McException; + + /** + * Let the given user join the given team; removes from previous/current team + * @param player + * @param team the team to join; must not be used with special teams + * @throws McException thrown if the current match is not a team match or if match is already finished + */ + void switchTeam(ArenaPlayerInterface player, TeamIdType team) throws McException; + + /** + * Let the user join spectators. NOTE: Does not mark the player as winner or loser. If the player wins or loses you should + * invoke the methods setWinner or setLoser instead. + * @param player + * @throws McException thrown if the match is already finished + */ + void spectate(ArenaPlayerInterface player) throws McException; + + /** + * Let the user leave the match. Player will automatically use when playing and leaving during match + * @param player + * @throws McException thrown if the match is already finished + */ + void leave(ArenaPlayerInterface player) throws McException; + /** * Returns {@code true} if this match is a team match * @return {@code true} for team matches; {@code false} for single player matches @@ -119,10 +164,38 @@ public interface ArenaMatchInterface */ TeamIdType getTeam(UUID uuid); + /** + * Return the match team interface for given team + * @param team + * @return team or {@code null} if team is not registered in match + */ + MatchTeamInterface get(TeamIdType team); + + /** + * Get or creates a match player. + * @param team + * @return match player. + * @throws McException thrown if the current match is not a team match or if match is already finished + */ + MatchTeamInterface getOrCreate(TeamIdType team) throws McException; + // results /** - * Returns the match participants + * Returns the match participants/ active players + * @return match participants/ active players; player uuids + */ + Collection<UUID> getPlayers(); + + /** + * Returns the number of match participants/ active players + * @return match participants count + */ + int getPlayerCount(); + + /** + * Returns the match participants (players having played or spectated the game). + * This method includes players already marked as winners or losers. * @param returnSpectators {@code true} to return spectators not being active within the game, {@code false} to filter and only return players being active * @return match participants; player uuids */ @@ -141,12 +214,24 @@ public interface ArenaMatchInterface */ Collection<UUID> getWinners(); + /** + * Returns the number of match winners + * @return match winner count + */ + int getWinnerCount(); + /** * Returns the match losers * @return mosers; player uuids */ Collection<UUID> getLosers(); + /** + * Returns the number of match loser players + * @return match loser count + */ + int getLoserCount(); + /** * Returns the match results, first entry is the "first place". * @return match results. @@ -236,16 +321,18 @@ interface MatchResult * @param player * @param statistic * @param value the new statistic value + * @throws McException thrown if match is not pending. */ - void setStatistic(UUID player, MatchStatisticId statistic, int value); + void setStatistic(UUID player, MatchStatisticId statistic, int value) throws McException; /** * Changes the match statistic for given team and statistic id. * @param team * @param statistic * @param value the new statistic value + * @throws McException thrown if the current match is not a team match or if match is not pending. */ - void setStatistic(TeamIdType team, MatchStatisticId statistic, int value); + void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) throws McException; /** * Adds the match statistic for given player and statistic id. @@ -253,8 +340,9 @@ interface MatchResult * @param statistic * @param amount delta value * @return the new statistic value + * @throws McException thrown if match is not pending. */ - int addStatistic(UUID player, MatchStatisticId statistic, int amount); + int addStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException; /** * Adds the match statistic for given team and statistic id. @@ -262,8 +350,9 @@ interface MatchResult * @param statistic * @param amount delta value * @return the new statistic value + * @throws McException thrown if the current match is not a team match or if match is not pending. */ - int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException; /** * Decrement the match statistic for given player and statistic id. @@ -271,8 +360,9 @@ interface MatchResult * @param statistic * @param amount delta value * @return the new statistic value + * @throws McException thrown if match is not pending. */ - int decStatistic(UUID player, MatchStatisticId statistic, int amount); + int decStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException; /** * Decrement the match statistic for given team and statistic id. @@ -280,13 +370,14 @@ interface MatchResult * @param statistic * @param amount delta value * @return the new statistic value + * @throws McException thrown if the current match is not a team match or if match is not pending. */ - int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount); + int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException; /** - * Returns the play time of given player in seconds + * Returns the play time of given player in milli seconds * @param player - * @return play time in seconds + * @return play time in milli seconds */ long getPlayTime(UUID player); @@ -317,12 +408,19 @@ interface KillerTracking } /** - * Returns the killer tracking; only works on pending matches + * Returns the killer tracking for given target player; only works on pending matches * @param player * @return killer tracking or {@code null} if player is not registered in this arena match */ KillerTracking getKillerTracking(UUID player); + /** + * Resets the killer tracking for given target player + * @param player + * @throws McException thrown if match is not pending. + */ + void resetKillerTracking(UUID player) throws McException; + /** * Tracks last damage for killer detection * @param targetPlayer the player that was hit diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java new file mode 100644 index 00000000..3abaf0f3 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java @@ -0,0 +1,112 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.match; + +import java.time.LocalDateTime; + +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface.KillerTracking; +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * Interface representing a player in a match. + * + * @author mepeisen + * + */ +public interface MatchPlayerInterface extends KillerTracking +{ + + /** + * Returns the join timestamp of the user + * @return join timestamp + */ + LocalDateTime getJoined(); + + /** + * Returns the left timestamp (when player leaves/loses/wins the match). + * @return left timestamp + */ + LocalDateTime getLeft(); + + /** + * @return the spawn + */ + ComponentIdInterface getSpawn(); + + /** + * @param spawn the spawn to set + */ + void setSpawn(ComponentIdInterface spawn); + + /** + * Returns the primary team of the player when using team play + * @return the team + */ + TeamIdType getTeam(); + + /** + * Checks if player is still playing the match + * @return {@code true} if player is still playing + */ + boolean isPlaying(); + + /** + * Checks if player is in spectator mode + * @return {@code true} if player is in spectator mode + */ + boolean isSpec(); + + /** + * Statistic function + * @param statistic + * @return current statistic + */ + int getStatistic(MatchStatisticId statistic); + + /** + * Statistic function + * @param statistic + * @param newValue + */ + void setStatistic(MatchStatisticId statistic, int newValue); + + /** + * Adds the match statistic for given statistic id. + * @param statistic + * @param amount delta value + * @return new value + */ + int addStatistic(MatchStatisticId statistic, int amount); + + /** + * Decrements the match statistic for given statistic id. + * @param statistic + * @param amount delta value + * @return new value + */ + int decStatistic(MatchStatisticId statistic, int amount); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java new file mode 100644 index 00000000..613ddc82 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java @@ -0,0 +1,82 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.match; + +import java.util.Set; +import java.util.UUID; + +import de.minigameslib.mgapi.api.team.TeamIdType; + +/** + * Interface representing a team in a match. + * + * @author mepeisen + * + */ +public interface MatchTeamInterface +{ + + /** + * @return the teamId + */ + TeamIdType getTeamId(); + + /** + * Returns a read only list of team members. + * @return the teamMembers (player uuids) + */ + Set<UUID> getMembers(); + + /** + * Statistic function + * @param statistic + * @return current statistic + */ + int getStatistic(MatchStatisticId statistic); + + /** + * Statistic function + * @param statistic + * @param newValue + */ + void setStatistic(MatchStatisticId statistic, int newValue); + + /** + * Adds the match statistic for given statistic id. + * @param statistic + * @param amount delta value + * @return new value + */ + int addStatistic(MatchStatisticId statistic, int amount); + + /** + * Decrements the match statistic for given statistic id. + * @param statistic + * @param amount delta value + * @return new value + */ + int decStatistic(MatchStatisticId statistic, int amount); + +} diff --git a/v2/plugin/pom.xml b/v2/plugin/pom.xml index 024488f0..f0105f7b 100644 --- a/v2/plugin/pom.xml +++ b/v2/plugin/pom.xml @@ -26,6 +26,13 @@ <groupId>de.minigameslib.mclib</groupId> <artifactId>mclib</artifactId> </dependency> + + <dependency> + <groupId>de.minigameslib.mclib</groupId> + <artifactId>spigot-testsupport</artifactId> + <version>${mclib.version}</version> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 9eae4931..01109823 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -147,7 +147,7 @@ * * @author mepeisen */ -public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface +public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface, MinigamesPluginInterface { /** @@ -242,7 +242,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ /** plugin instance. */ - private static MinigamesPlugin INSTANCE; + private static MinigamesPluginInterface INSTANCE; @Override public void onEnable() @@ -355,7 +355,7 @@ public void onEnable() * * @return singleton instance */ - public static MinigamesPlugin instance() + public static MinigamesPluginInterface instance() { return INSTANCE; } @@ -709,78 +709,43 @@ public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunctio this.arenaRuleSetTypes.put(ruleset, creator); } - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ + @Override public McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator(ArenaRuleSetType type) { return this.arenaRuleSetTypes.get(type); } - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ + @Override public McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator(ComponentRuleSetType type) { return this.componentRuleSetTypes.get(type); } - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ + @Override public McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator(SignRuleSetType type) { return this.signRuleSetTypes.get(type); } - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ + @Override public McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator(ZoneRuleSetType type) { return this.zoneRuleSetTypes.get(type); } - /** - * Returns the create function for given type - * - * @param type - * @return creator function - */ + @Override public McSupplier<ArenaComponentHandler> creator(ComponentTypeId type) { return this.components.get(type); } - /** - * Returns the create function for given type - * - * @param type - * @return creator function - */ + @Override public McSupplier<ArenaZoneHandler> creator(ZoneTypeId type) { return this.zones.get(type); } - /** - * Returns the create function for given type - * - * @param type - * @return creator function - */ + @Override public McSupplier<ArenaSignHandler> creator(SignTypeId type) { return this.signs.get(type); @@ -833,5 +798,11 @@ public boolean isSpecialTeam(TeamIdType id) { return id == CommonTeams.Unknown || id == CommonTeams.Winners || id == CommonTeams.Losers || id == CommonTeams.Spectators; } + + @Override + public Plugin getPlugin() + { + return this; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java new file mode 100644 index 00000000..36d585d6 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java @@ -0,0 +1,132 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl; + +import java.io.File; +import java.util.logging.Logger; + +import org.bukkit.plugin.Plugin; + +import de.minigameslib.mclib.api.objects.ComponentTypeId; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.objects.ZoneTypeId; +import de.minigameslib.mclib.api.util.function.McBiFunction; +import de.minigameslib.mclib.api.util.function.McSupplier; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; +import de.minigameslib.mgapi.api.rules.SignRuleSetType; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; + +/** + * An internal plugin interface + * + * @author mepeisen + */ +public interface MinigamesPluginInterface +{ + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator(ArenaRuleSetType type); + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator(ComponentRuleSetType type); + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator(SignRuleSetType type); + + /** + * Returns the create function for given rule set type + * + * @param type + * @return creator function + */ + McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator(ZoneRuleSetType type); + + /** + * Returns the create function for given type + * + * @param type + * @return creator function + */ + McSupplier<ArenaComponentHandler> creator(ComponentTypeId type); + + /** + * Returns the create function for given type + * + * @param type + * @return creator function + */ + McSupplier<ArenaZoneHandler> creator(ZoneTypeId type); + + /** + * Returns the create function for given type + * + * @param type + * @return creator function + */ + McSupplier<ArenaSignHandler> creator(SignTypeId type); + + /** + * Returns the plugin logger + * @return plugin logger + */ + Logger getLogger(); + + /** + * Returns the java plugin. + * @return java plugin + */ + Plugin getPlugin(); + + /** + * Returns the data folder. + * @return data folder. + */ + File getDataFolder(); + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 1a9a4d07..40ce45da 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -83,6 +83,7 @@ import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.MatchPlayerInterface; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; @@ -92,6 +93,7 @@ import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.team.ArenaTeamInterface; +import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; import de.minigameslib.mgapi.impl.MglibObjectTypes; import de.minigameslib.mgapi.impl.MinigamesPlugin; @@ -124,12 +126,6 @@ public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface /** current arena state. */ private ArenaState state = ArenaState.Disabled; - - /** the players within this arena. */ - private final Set<UUID> players = new HashSet<>(); - - /** the spectators. */ - private final Set<UUID> spectators = new HashSet<>(); /** the mclib object */ ObjectInterface object; @@ -435,28 +431,20 @@ public ArenaState getState() public void leave(ArenaPlayerInterface player) throws McException { final UUID uuid = player.getPlayerUUID(); - if (this.players.contains(uuid)) + if (this.match == null) { - this.leaveMatch(player); - } - else if (this.spectators.contains(uuid)) - { - this.leaveSpec(player); + throw new McException(Messages.CannotLeaveNotInArena, this.getDisplayName()); } - else + + final MatchPlayerInterface mp = this.match.get(uuid); + if (mp == null || (!mp.isPlaying() && !mp.isSpec())) { throw new McException(Messages.CannotLeaveNotInArena, this.getDisplayName()); } - } - - /** - * Leave spectator mode - * @param player - */ - private void leaveSpec(ArenaPlayerInterface player) - { + + this.match.leave(player); + ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); - this.spectators.remove(player.getPlayerUUID()); player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); // port to main lobby this.teleportRandom(player, this.getComponents(BasicComponentTypes.MainLobbySpawn)); @@ -514,19 +502,6 @@ private void teleport(ArenaPlayerInterface player, ComponentInterface component) } } - /** - * Leaves a running match - * @param player - */ - private void leaveMatch(ArenaPlayerInterface player) - { - ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); - this.players.remove(player.getPlayerUUID()); - player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); - // port to main lobby - this.teleportRandom(player, this.getComponents(BasicComponentTypes.MainLobbySpawn)); - } - @Override public void join(ArenaPlayerInterface player) throws McException { @@ -539,7 +514,7 @@ public void join(ArenaPlayerInterface player) throws McException throw new McException(Messages.JoinWrongState); } - this.players.add(player.getPlayerUUID()); + this.match.join(player); ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), false); player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName()); // port to main lobby @@ -566,7 +541,7 @@ public void spectate(ArenaPlayerInterface player) throws McException case Match: case PostMatch: case PreMatch: - this.spectators.add(player.getPlayerUUID()); + this.match.spectate(player); ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), true); player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName()); this.teleportToSpectate(player); @@ -659,7 +634,7 @@ public void setJoin0() throws McException final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Join); this.state = ArenaState.Join; final Set<TeamData> teams = this.arenaData.getTeams(); - this.match = new ArenaMatchImpl(teams.size() > 0); + this.match = new ArenaMatchImpl(this, teams.size() > 0); for (final TeamData team : teams) { this.match.createTeam(team); @@ -725,17 +700,10 @@ public void setDisabledState(boolean force) throws McException */ private void abortGame(LocalizedMessageInterface kickReason) { - for (final UUID uuid : this.players) + for (final UUID uuid : this.match.getParticipants(true)) { this.kick(uuid, kickReason); } - this.players.clear(); - - for (final UUID uuid : this.spectators) - { - this.kick(uuid, kickReason); - } - this.spectators.clear(); } /** @@ -925,53 +893,89 @@ public MinigameInterface getMinigame() @Override public int getPlayerCount() { - return this.players.size(); + if (this.match == null) + { + return 0; + } + return this.match.getParticipantCount(false); } @Override public int getSpectatorCount() { - return this.spectators.size(); + if (this.match == null) + { + return 0; + } + return ((MatchTeam) this.match.get(CommonTeams.Spectators)).getTeamMembers().size(); } @Override public Collection<ArenaPlayerInterface> getPlayers() { + if (this.match == null) + { + return Collections.emptyList(); + } final ObjectServiceInterface osi = ObjectServiceInterface.instance(); final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.players.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + return this.match.getParticipants(false).stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); } @Override public Collection<ArenaPlayerInterface> getSpectators() { + if (this.match == null) + { + return Collections.emptyList(); + } final ObjectServiceInterface osi = ObjectServiceInterface.instance(); final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.spectators.stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + return ((MatchTeam) this.match.get(CommonTeams.Spectators)).getTeamMembers().stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); } @Override public boolean isPlaying(McPlayerInterface player) { - return this.players.contains(player.getPlayerUUID()); + if (this.match == null) + { + return false; + } + final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); + return p == null ? false : p.isPlaying(); } @Override public boolean isSpectating(McPlayerInterface player) { - return this.spectators.contains(player.getPlayerUUID()); + if (this.match == null) + { + return false; + } + final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); + return p == null ? false : p.isSpec(); } @Override public boolean isPlaying(ArenaPlayerInterface player) { - return this.players.contains(player.getPlayerUUID()); + if (this.match == null) + { + return false; + } + final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); + return p == null ? false : p.isPlaying(); } @Override public boolean isSpectating(ArenaPlayerInterface player) { - return this.spectators.contains(player.getPlayerUUID()); + if (this.match == null) + { + return false; + } + final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); + return p == null ? false : p.isSpec(); } @Override @@ -1485,6 +1489,55 @@ public enum Messages implements LocalizedMessageInterface @MessageComment(value = {"You left the arena"}, args = @Argument("arena display name")) YouLeft, + /** + * There was an invalid modification after match was finished + */ + @LocalizedMessage(defaultMessage = "Invalid modification within arena match (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"There was an invalid modification after match was finished"}, args = @Argument("arena display name")) + InvalidModificationAfterFinish, + + /** + * There was an invalid modification before match was started + */ + @LocalizedMessage(defaultMessage = "Invalid modification before arena match starts (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"There was an invalid modification before match was started"}, args = @Argument("arena display name")) + InvalidModificationBeforeStart, + + /** + * There was an invalid team action on single player matches + */ + @LocalizedMessage(defaultMessage = "Invalid team action in single player arena match (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"There was an invalid team action on single player matches"}, args = @Argument("arena display name")) + InvalidTeamActionOnSinglePlayerMatch, + + /** + * There was an invalid leave action + */ + @LocalizedMessage(defaultMessage = "Invalid team leave action in arena match (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"There was an invalid leave action"}, args = @Argument("arena display name")) + InvalidLeaveAction, + + /** + * There was an invalid join action + */ + @LocalizedMessage(defaultMessage = "Invalid team join action in arena match (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"There was an invalid join action"}, args = @Argument("arena display name")) + InvalidJoinAction, + + /** + * There was an invalid team switch + */ + @LocalizedMessage(defaultMessage = "Invalid team switch action in arena match (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"There was an invalid team switch"}, args = @Argument("arena display name")) + InvalidTeamSwitch, + + /** + * Cannot rejoin same match + */ + @LocalizedMessage(defaultMessage = "Unable to re-join a match you already played (%1$s).", severity = MessageSeverityType.Error) + @MessageComment(value = {"Cannot rejoin same match"}, args = @Argument("arena display name")) + CannotRejoin, + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index 1d7916a8..21b4b6e2 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -28,6 +28,7 @@ import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -35,11 +36,26 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; + +import org.bukkit.Bukkit; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaLoseEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedTeamEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftTeamEvent; import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.MatchPlayerInterface; import de.minigameslib.mgapi.api.match.MatchStatisticId; +import de.minigameslib.mgapi.api.match.MatchTeamInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; @@ -53,6 +69,8 @@ public class ArenaMatchImpl implements ArenaMatchInterface { + // TODO fire bukkit events for statistics + /** creation timestamp. */ private final LocalDateTime created = LocalDateTime.now(); @@ -87,25 +105,40 @@ public class ArenaMatchImpl implements ArenaMatchInterface */ private boolean teamMatch; + /** + * the associated arena + */ + private ArenaInterface arena; + /** * Constructor + * @param arena the associated arena * @param teamMatch flag for team matches */ - public ArenaMatchImpl(boolean teamMatch) + public ArenaMatchImpl(ArenaInterface arena, boolean teamMatch) { - this.getOrCreate(CommonTeams.Unknown); - this.getOrCreate(CommonTeams.Spectators); - this.getOrCreate(CommonTeams.Losers); - this.getOrCreate(CommonTeams.Winners); + this.teams.computeIfAbsent(CommonTeams.Unknown, MatchTeam::new); + this.teams.computeIfAbsent(CommonTeams.Spectators, MatchTeam::new); + this.teams.computeIfAbsent(CommonTeams.Losers, MatchTeam::new); + this.teams.computeIfAbsent(CommonTeams.Winners, MatchTeam::new); this.teamMatch = teamMatch; + this.arena = arena; + } + + /** + * @return the associated arena + */ + private ArenaInterface getArena() + { + return this.arena; } /** * @param team */ - public void createTeam(TeamData team) + void createTeam(TeamData team) { - this.getOrCreate(team.getId()); + this.teams.computeIfAbsent(team.getId(), MatchTeam::new); } @Override @@ -134,25 +167,76 @@ public boolean isAborted() /** * Starts this match + * @throws McException thrown if match was already started */ - public void start() + public void start() throws McException { + if (this.started != null) + { + throw new McException(ArenaImpl.Messages.StartWrongState, this.arena.getDisplayName()); + } this.started = LocalDateTime.now(); } /** * Fnishes this match (regular finish) + * @throws McException thrown if match is not pending */ - public void finish() + public void finish() throws McException { + checkMatchPending(); this.finished = LocalDateTime.now(); } + + /** + * @throws McException thrown if match is not pending + */ + private void checkMatchPending() throws McException + { + this.checkMatchStarted(); + this.checkMatchNotFinished(); + } + + /** + * @throws McException thrown if match is not finsihed + */ + private void checkMatchNotFinished() throws McException + { + if (this.finished != null) + { + throw new McException(ArenaImpl.Messages.InvalidModificationAfterFinish, this.arena.getDisplayName()); + } + } + + /** + * @throws McException thrown if match is started + */ + private void checkMatchStarted() throws McException + { + if (this.started == null) + { + throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, this.arena.getDisplayName()); + } + } + + /** + * @throws McException thrown if match is not a team match + */ + private void checkTeamMatch() throws McException + { + if (!this.teamMatch) + { + throw new McException(ArenaImpl.Messages.InvalidTeamActionOnSinglePlayerMatch, this.arena.getDisplayName()); + } + } /** * Aborts this match + * @throws McException thrown if match is not pending */ - public void abort() + public void abort() throws McException { + checkMatchPending(); this.finished = LocalDateTime.now(); this.aborted = true; } @@ -160,13 +244,14 @@ public void abort() @Override public Collection<UUID> getTeamMembers(TeamIdType team) { - return this.teams.computeIfAbsent(team, MatchTeam::new).getTeamMembers(); + final MatchTeamInterface t = this.get(team); + return t == null ? Collections.emptyList() : t.getMembers(); } @Override public Collection<TeamIdType> getTeams() { - return this.teams.keySet(); + return this.teams.keySet().stream().filter(t -> !t.isSpecial()).collect(Collectors.toList()); } @Override @@ -178,10 +263,273 @@ public TeamIdType getPreferredTeam() return team.isPresent() ? team.get().getTeamId() : null; } + @Override + public void spectate(ArenaPlayerInterface player) throws McException + { + // TODO move some code from ArenaImpl to this method. (invocation of switchArenaOrMode and save) + checkMatchNotFinished(); + final MatchPlayer mplayer = this.players.computeIfAbsent(player.getPlayerUUID(), MatchPlayer::new); + + if (mplayer.getTeam() == null) + { + // player never played, only spectating + mplayer.setTeam(CommonTeams.Spectators); + mplayer.setLeft(mplayer.getJoined()); + mplayer.setPlaying(false); + mplayer.setSpec(true); + + final ArenaPlayerJoinSpectatorsEvent joinEvent = new ArenaPlayerJoinSpectatorsEvent(this.getArena(), player, false); + Bukkit.getPluginManager().callEvent(joinEvent); + if (joinEvent.isCancelled()) + { + this.players.remove(player.getPlayerUUID()); + throw new McException(joinEvent.getVetoReason(), joinEvent.getVetoReasonArgs()); + } + } + else + { + // player was playing within the match + mplayer.setLeft(LocalDateTime.now()); + mplayer.setPlaying(false); + mplayer.setSpec(true); + + final ArenaPlayerJoinSpectatorsEvent joinEvent = new ArenaPlayerJoinSpectatorsEvent(this.getArena(), player, true); + Bukkit.getPluginManager().callEvent(joinEvent); + if (joinEvent.isCancelled()) + { + throw new McException(joinEvent.getVetoReason(), joinEvent.getVetoReasonArgs()); + } + } + this.teams.get(CommonTeams.Spectators).getTeamMembers().add(player.getPlayerUUID()); + + final ArenaPlayerJoinedSpectatorsEvent joinEvent = new ArenaPlayerJoinedSpectatorsEvent(this.getArena(), player, mplayer.getTeam() != null); + Bukkit.getPluginManager().callEvent(joinEvent); + } + + @Override + public void leave(ArenaPlayerInterface player) throws McException + { + // TODO move some code from ArenaImpl to this method. (invocation of switchArenaOrMode and save) + checkMatchNotFinished(); + final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); + if (mplayer != null) + { + if (mplayer.isPlaying() && this.started != null) + { + // match was started, mark player as loser + final MatchTeam losers = this.teams.get(CommonTeams.Losers); + + mplayer.setTeam(CommonTeams.Losers); + mplayer.setLeft(LocalDateTime.now()); + losers.getTeamMembers().add(player.getPlayerUUID()); + + final MatchResultImpl result = new MatchResultImpl(false, new UUID[]{player.getPlayerUUID()}); + this.results.add(this.firstLoser, result); + for (int i = this.firstLoser; i < this.results.size(); i++) + { + this.results.get(i).setPlace(i + 1); + } + mplayer.setSpec(false); + mplayer.setPlaying(false); + + final ArenaPlayerLeftEvent leftEvent = new ArenaPlayerLeftEvent(this.getArena(), player); + Bukkit.getPluginManager().callEvent(leftEvent); + + final ArenaLoseEvent loseEvent = new ArenaLoseEvent(this.getArena(), result); + Bukkit.getPluginManager().callEvent(loseEvent); + } + else if (mplayer.getLeft() == null) + { + mplayer.setSpec(false); + mplayer.setPlaying(false); + mplayer.setLeft(LocalDateTime.now()); + + if (mplayer.getTeam() == CommonTeams.Spectators) + { + final ArenaPlayerLeftSpectatorsEvent leftEvent = new ArenaPlayerLeftSpectatorsEvent(this.getArena(), player); + Bukkit.getPluginManager().callEvent(leftEvent); + } + else + { + final ArenaPlayerLeftEvent leftEvent = new ArenaPlayerLeftEvent(this.getArena(), player); + Bukkit.getPluginManager().callEvent(leftEvent); + } + } + } + else + { + // non playing users will leave silently + } + } + + @Override + public void join(ArenaPlayerInterface player) throws McException + { + // TODO move some code from ArenaImpl to this method. (invocation of switchArenaOrMode and save) + checkMatchNotFinished(); + TeamIdType preTeam = this.isTeamMatch() ? this.getPreferredTeam() : CommonTeams.Unknown; + if (preTeam == null) preTeam = CommonTeams.Unknown; + + final MatchPlayer mplayer = this.players.computeIfAbsent(player.getPlayerUUID(), MatchPlayer::new); + if (mplayer.getTeam() != null && mplayer.getTeam() != CommonTeams.Spectators) + { + throw new McException(ArenaImpl.Messages.CannotRejoin, this.arena.getDisplayName()); + } + + final ArenaPlayerJoinEvent joinEvent = new ArenaPlayerJoinEvent(this.getArena(), player, preTeam); + Bukkit.getPluginManager().callEvent(joinEvent); + if (joinEvent.isCancelled()) + { + this.players.remove(player.getPlayerUUID()); + throw new McException(joinEvent.getVetoReason(), joinEvent.getVetoReasonArgs()); + } + mplayer.setPlaying(true); + + if (mplayer.isSpec()) + { + this.teams.get(CommonTeams.Spectators).getTeamMembers().remove(player.getPlayerUUID()); + } + + if (this.isTeamMatch()) + { + if (joinEvent.getPreSelectedTeam() == null || joinEvent.getPreSelectedTeam().isSpecial()) + { + mplayer.setTeam(preTeam); + } + else + { + mplayer.setTeam(joinEvent.getPreSelectedTeam()); + } + } + else + { + mplayer.setTeam(CommonTeams.Unknown); + } + + this.teams.computeIfAbsent(mplayer.getTeam(), MatchTeam::new).getTeamMembers().add(player.getPlayerUUID()); + + final ArenaPlayerJoinedEvent joinedEvent = new ArenaPlayerJoinedEvent(this.getArena(), player); + Bukkit.getPluginManager().callEvent(joinedEvent); + + final ArenaPlayerJoinedTeamEvent join2Event = new ArenaPlayerJoinedTeamEvent(this.getArena(), player, mplayer.getTeam()); + Bukkit.getPluginManager().callEvent(join2Event); + } + @Override public void join(ArenaPlayerInterface player, TeamIdType team) throws McException { - this.getOrCreate(player.getPlayerUUID()).setTeam(team); + if (!this.players.containsKey(player.getPlayerUUID())) + { + this.join(player); + if (team != this.getTeam(player.getPlayerUUID())) + { + this.switchTeam(player, team); + } + return; + } + checkMatchNotFinished(); + checkTeamMatch(); + if (team.isSpecial()) + { + throw new McException(ArenaImpl.Messages.InvalidJoinAction, this.arena.getDisplayName()); + } + + final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); + if (mplayer.getTeam() == team || mplayer.getAdditionalTeams().contains(team)) + { + // already joined. do nothing + return; + } + if (mplayer.isSpec()) + { + // remove from spectators + this.teams.get(CommonTeams.Spectators).getTeamMembers().remove(player.getPlayerUUID()); + mplayer.setSpec(false); + } + mplayer.setPlaying(true); + mplayer.setTeam(team); + this.teams.computeIfAbsent(team, MatchTeam::new).getTeamMembers().add(player.getPlayerUUID()); + + final ArenaPlayerJoinedTeamEvent joinEvent = new ArenaPlayerJoinedTeamEvent(this.getArena(), player, team); + Bukkit.getPluginManager().callEvent(joinEvent); + } + + @Override + public void leave(ArenaPlayerInterface player, TeamIdType team) throws McException + { + if (!this.teams.containsKey(player.getPlayerUUID())) + { + throw new McException(ArenaImpl.Messages.CannotLeaveNotInArena, this.arena.getDisplayName()); + } + checkMatchNotFinished(); + checkTeamMatch(); + if (team.isSpecial()) + { + throw new McException(ArenaImpl.Messages.InvalidLeaveAction, this.arena.getDisplayName()); + } + + final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); + mplayer.getAdditionalTeams().remove(team); // remove from additional teams on demand + this.teams.get(team).getTeamMembers().remove(player.getPlayerUUID()); + if (mplayer.getTeam() == team) + { + // removed from primary team + if (mplayer.getAdditionalTeams().isEmpty()) + { + // switch to unkown + this.teams.get(CommonTeams.Unknown).getTeamMembers().add(player.getPlayerUUID()); + mplayer.setTeam(CommonTeams.Unknown); + } + else + { + // switch to first additional team + mplayer.setTeam(mplayer.getAdditionalTeams().iterator().next()); + mplayer.getAdditionalTeams().remove(mplayer.getTeam()); + } + } + + if (mplayer.isSpec()) + { + // remove from spectators + this.teams.get(CommonTeams.Spectators).getTeamMembers().remove(player.getPlayerUUID()); + mplayer.setSpec(false); + } + + final ArenaPlayerLeftTeamEvent leftEvent = new ArenaPlayerLeftTeamEvent(this.getArena(), player, team); + Bukkit.getPluginManager().callEvent(leftEvent); + } + + @Override + public void switchTeam(ArenaPlayerInterface player, TeamIdType team) throws McException + { + checkMatchNotFinished(); + checkTeamMatch(); + if (team.isSpecial()) + { + throw new McException(ArenaImpl.Messages.InvalidTeamSwitch, this.arena.getDisplayName()); + } + final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); + if (mplayer == null) + { + throw new McException(ArenaImpl.Messages.InvalidTeamSwitch, this.arena.getDisplayName()); + } + else if (mplayer.getTeam() == CommonTeams.Winners || mplayer.getTeam() == CommonTeams.Losers) + { + throw new McException(ArenaImpl.Messages.InvalidTeamSwitch, this.arena.getDisplayName()); + } + else + { + final ArenaPlayerLeftTeamEvent leftEvent = new ArenaPlayerLeftTeamEvent(this.getArena(), player, mplayer.getTeam()); + Bukkit.getPluginManager().callEvent(leftEvent); + + this.teams.get(mplayer.getTeam()).getTeamMembers().remove(player.getPlayerUUID()); + mplayer.setPlaying(true); + mplayer.setTeam(team); + this.teams.computeIfAbsent(team, MatchTeam::new).getTeamMembers().add(player.getPlayerUUID()); + + final ArenaPlayerJoinedTeamEvent joinEvent = new ArenaPlayerJoinedTeamEvent(this.getArena(), player, team); + Bukkit.getPluginManager().callEvent(joinEvent); + } } @Override @@ -202,21 +550,71 @@ public TeamIdType getTeam(UUID uuid) } @Override - public Collection<UUID> getParticipants(boolean flg) // TODO + public Collection<UUID> getParticipants(boolean returnSpectators) + { + if (returnSpectators) + { + return this.players.keySet(); + } + return this.players.entrySet().stream() + .filter(p -> p.getValue().getTeam() != CommonTeams.Spectators) + .map(p -> p.getKey()) + .collect(Collectors.toList()); + } + + @Override + public int getParticipantCount(boolean returnSpectators) + { + if (returnSpectators) + { + return this.players.size(); + } + return (int) this.players.values().stream() + .filter(p -> p.getTeam() != CommonTeams.Spectators) + .count(); + } + + @Override + public Collection<UUID> getPlayers() + { + return this.players.entrySet().stream() + .filter(p -> p.getValue().isPlaying()) + .filter(p -> p.getValue().getTeam() != CommonTeams.Spectators) + .map(p -> p.getKey()) + .collect(Collectors.toList()); + } + + @Override + public int getPlayerCount() + { + return (int) this.players.entrySet().stream() + .filter(p -> p.getValue().isPlaying()) + .filter(p -> p.getValue().getTeam() != CommonTeams.Spectators) + .count(); + } + + @Override + public int getWinnerCount() { - return this.players.keySet(); + return this.teams.get(CommonTeams.Winners).getTeamMembers().size(); + } + + @Override + public int getLoserCount() + { + return this.teams.get(CommonTeams.Losers).getTeamMembers().size(); } @Override public Collection<UUID> getWinners() { - return this.teams.get(CommonTeams.Winners).getTeamMembers(); + return this.teams.get(CommonTeams.Winners).getMembers(); } @Override public Collection<UUID> getLosers() { - return this.teams.get(CommonTeams.Losers).getTeamMembers(); + return this.teams.get(CommonTeams.Losers).getMembers(); } @Override @@ -235,7 +633,7 @@ public int getResultCount() public MatchResult getResult(int place) { int pos = place - 1; - return this.results.size() >= pos ? null : this.results.get(pos); + return pos < 0 || this.results.size() <= pos ? null : this.results.get(pos); } @Override @@ -244,16 +642,6 @@ public ComponentIdInterface getSpawn(UUID uuid) final MatchPlayer player = this.players.get(uuid); return player == null ? null : player.getSpawn(); } - - /** - * Get or creates a match player. - * @param uuid - * @return match player. - */ - private MatchPlayer getOrCreate(UUID uuid) - { - return this.players.computeIfAbsent(uuid, MatchPlayer::new); - } @Override public void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException @@ -275,14 +663,24 @@ public int getStatistic(UUID player, MatchStatisticId statistic) } return 0; } + + @Override + public MatchPlayerInterface get(UUID uuid) + { + return this.players.get(uuid); + } + + @Override + public MatchTeamInterface get(TeamIdType team) + { + return this.teams.get(team); + } - /** - * Get or creates a match player. - * @param team - * @return match player. - */ - private MatchTeam getOrCreate(TeamIdType team) + @Override + public MatchTeamInterface getOrCreate(TeamIdType team) throws McException { + this.checkMatchNotFinished(); + this.checkTeamMatch(); return this.teams.computeIfAbsent(team, MatchTeam::new); } @@ -298,8 +696,9 @@ public int getStatistic(TeamIdType team, MatchStatisticId statistic) } @Override - public void setStatistic(UUID player, MatchStatisticId statistic, int value) + public void setStatistic(UUID player, MatchStatisticId statistic, int value) throws McException { + this.checkMatchNotFinished(); final MatchPlayer p = this.players.get(player); if (p != null) { @@ -308,8 +707,10 @@ public void setStatistic(UUID player, MatchStatisticId statistic, int value) } @Override - public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) + public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) throws McException { + this.checkMatchNotFinished(); + this.checkTeamMatch(); final MatchTeam p = this.teams.get(team); if (p != null) { @@ -318,64 +719,76 @@ public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) } @Override - public int addStatistic(UUID player, MatchStatisticId statistic, int amount) + public int addStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException { + this.checkMatchNotFinished(); final MatchPlayer p = this.players.get(player); if (p != null) { - p.addStatistic(statistic, amount); + return p.addStatistic(statistic, amount); } - return 0; // TODO + return 0; } @Override - public int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) + public int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException { + this.checkMatchNotFinished(); + this.checkTeamMatch(); final MatchTeam p = this.teams.get(team); if (p != null) { - p.addStatistic(statistic, amount); + return p.addStatistic(statistic, amount); } - return 0; // TODO + return 0; } @Override - public int decStatistic(UUID player, MatchStatisticId statistic, int amount) + public int decStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException { + this.checkMatchNotFinished(); final MatchPlayer p = this.players.get(player); if (p != null) { - p.decStatistic(statistic, amount); + return p.decStatistic(statistic, amount); } - return 0; // TODO + return 0; } @Override - public int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) + public int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException { + this.checkMatchNotFinished(); + this.checkTeamMatch(); final MatchTeam p = this.teams.get(team); if (p != null) { - p.decStatistic(statistic, amount); + return p.decStatistic(statistic, amount); } - return 0; // TODO + return 0; } @Override public long getPlayTime(UUID player) { - if (this.started != null) + if (this.started == null) { return 0; } final MatchPlayer p = this.players.get(player); - if (player != null) + if (p != null) { + LocalDateTime start = p.getJoined().isBefore(this.started) ? this.started : p.getJoined(); + long result = 0; if (p.getLeft() != null) { - return this.started.until(p.getLeft(), ChronoUnit.SECONDS); + result = start.until(p.getLeft(), ChronoUnit.MILLIS); + } + else + { + result = start.until(LocalDateTime.now(), ChronoUnit.MILLIS); } - return this.started.until(LocalDateTime.now(), ChronoUnit.SECONDS); + return result < 0 ? 0 : result; } return 0; } @@ -386,9 +799,21 @@ public KillerTracking getKillerTracking(UUID player) return this.players.get(player); } + @Override + public void resetKillerTracking(UUID player) throws McException + { + this.checkMatchPending(); + final MatchPlayer p = this.players.get(player); + if (p != null) + { + p.setKillerTracking(null); + } + } + @Override public void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException { + this.checkMatchPending(); final MatchPlayer p = this.players.get(targetPlayer); if (p != null) { @@ -399,17 +824,23 @@ public void trackDamageForKill(UUID targetPlayer, UUID damager) throws McExcepti @Override public void setLoser(UUID... players) throws McException { + this.checkMatchPending(); if (players != null && players.length > 0) { - final MatchTeam team = this.teams.get(CommonTeams.Losers); + final MatchTeam losers = this.teams.get(CommonTeams.Losers); + final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); for (final UUID uuid : players) { final MatchPlayer p = this.players.get(uuid); if (p != null) { p.setTeam(CommonTeams.Losers); + // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics p.setLeft(LocalDateTime.now()); - team.getTeamMembers().add(uuid); + p.setSpec(true); + p.setPlaying(false); + losers.getTeamMembers().add(uuid); + spectators.getTeamMembers().add(uuid); } } final MatchResultImpl result = new MatchResultImpl(false, players); @@ -424,17 +855,23 @@ public void setLoser(UUID... players) throws McException @Override public void setWinner(UUID... players) throws McException { + this.checkMatchPending(); if (players != null && players.length > 0) { - final MatchTeam team = this.teams.get(CommonTeams.Winners); + final MatchTeam winners = this.teams.get(CommonTeams.Winners); + final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); for (final UUID uuid : players) { final MatchPlayer p = this.players.get(uuid); if (p != null) { p.setTeam(CommonTeams.Winners); + // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics p.setLeft(LocalDateTime.now()); - team.getTeamMembers().add(uuid); + p.setSpec(true); + p.setPlaying(false); + winners.getTeamMembers().add(uuid); + spectators.getTeamMembers().add(uuid); } } final MatchResultImpl result = new MatchResultImpl(true, players); @@ -450,6 +887,7 @@ public void setWinner(UUID... players) throws McException @Override public void setLoser(TeamIdType... teams) throws McException { + this.checkMatchPending(); if (teams != null && teams.length > 0) { final Set<UUID> playerSet = new HashSet<>(); @@ -463,15 +901,20 @@ public void setLoser(TeamIdType... teams) throws McException } if (playerSet.size() > 0) { - final MatchTeam team = this.teams.get(CommonTeams.Losers); + final MatchTeam losers = this.teams.get(CommonTeams.Losers); + final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); for (final UUID uuid : playerSet) { final MatchPlayer p = this.players.get(uuid); if (p != null) { p.setTeam(CommonTeams.Losers); + // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics p.setLeft(LocalDateTime.now()); - team.getTeamMembers().add(uuid); + p.setSpec(true); + p.setPlaying(false); + losers.getTeamMembers().add(uuid); + spectators.getTeamMembers().add(uuid); } } final MatchResultImpl result = new MatchResultImpl(false, playerSet.toArray(new UUID[playerSet.size()])); @@ -487,6 +930,7 @@ public void setLoser(TeamIdType... teams) throws McException @Override public void setWinner(TeamIdType... teams) throws McException { + this.checkMatchPending(); if (teams != null && teams.length > 0) { final Set<UUID> playerSet = new HashSet<>(); @@ -500,15 +944,20 @@ public void setWinner(TeamIdType... teams) throws McException } if (playerSet.size() > 0) { - final MatchTeam team = this.teams.get(CommonTeams.Winners); + final MatchTeam winners = this.teams.get(CommonTeams.Winners); + final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); for (final UUID uuid : playerSet) { final MatchPlayer p = this.players.get(uuid); if (p != null) { p.setTeam(CommonTeams.Winners); + // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics p.setLeft(LocalDateTime.now()); - team.getTeamMembers().add(uuid); + p.setSpec(true); + p.setPlaying(false); + winners.getTeamMembers().add(uuid); + spectators.getTeamMembers().add(uuid); } } final MatchResultImpl result = new MatchResultImpl(true, playerSet.toArray(new UUID[playerSet.size()])); @@ -577,15 +1026,5 @@ public boolean isWin() } } - - /* (non-Javadoc) - * @see de.minigameslib.mgapi.api.match.ArenaMatchInterface#getParticipantCount(boolean) - */ - @Override - public int getParticipantCount(boolean returnSpectators) - { - // TODO Auto-generated method stub - return 0; - } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java index 4189abd3..f7846e44 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java @@ -26,13 +26,14 @@ import java.time.LocalDateTime; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.UUID; import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.MatchPlayerInterface; import de.minigameslib.mgapi.api.match.MatchStatisticId; -import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; /** @@ -41,7 +42,7 @@ * @author mepeisen * */ -class MatchPlayer implements ArenaMatchInterface.KillerTracking +class MatchPlayer implements MatchPlayerInterface { /** join timestamp */ @@ -50,11 +51,20 @@ class MatchPlayer implements ArenaMatchInterface.KillerTracking /** the players uuid. */ private final UUID playerUuid; - /** left timestamp */ + /** left timestamp (leaving the match itself) */ private LocalDateTime left; /** the associated team. */ - private TeamIdType team = CommonTeams.Unknown; + private TeamIdType team; + + /** flag to control if player is playing. */ + private boolean isPlaying = false; + + /** flag to control if player is spectator. */ + private boolean isSpec = false; + + /** the additional team array. */ + private final Set<TeamIdType> additionalTeams = new HashSet<>(); /** * the match statistics. @@ -85,9 +95,7 @@ public MatchPlayer(UUID playerUuid) this.playerUuid = playerUuid; } - /** - * @return the joined - */ + @Override public LocalDateTime getJoined() { return this.joined; @@ -101,9 +109,7 @@ public void setJoined(LocalDateTime joined) this.joined = joined; } - /** - * @return the left - */ + @Override public LocalDateTime getLeft() { return this.left; @@ -117,69 +123,45 @@ public void setLeft(LocalDateTime left) this.left = left; } - /** - * @return the playerUuid - */ - public UUID getPlayerUuid() - { - return this.playerUuid; - } - - /** - * @return the spawn - */ + @Override public ComponentIdInterface getSpawn() { return this.spawn; } - /** - * @param spawn the spawn to set - */ + @Override public void setSpawn(ComponentIdInterface spawn) { this.spawn = spawn; } - /** - * Statistic function - * @param statistic - * @return current statistic - */ + @Override public int getStatistic(MatchStatisticId statistic) { final Integer result = this.statistics.get(statistic); return result == null ? 0 : result.intValue(); } - /** - * Statistic function - * @param statistic - * @param newValue - */ + @Override public void setStatistic(MatchStatisticId statistic, int newValue) { this.statistics.put(statistic, Integer.valueOf(newValue)); } - /** - * Adds the match statistic for given statistic id. - * @param statistic - * @param amount delta value - */ - void addStatistic(MatchStatisticId statistic, int amount) + @Override + public int addStatistic(MatchStatisticId statistic, int amount) { - this.setStatistic(statistic, this.getStatistic(statistic) + amount); + final int newvalue = this.getStatistic(statistic) + amount; + this.setStatistic(statistic, newvalue); + return newvalue; } - /** - * Decrements the match statistic for given statistic id. - * @param statistic - * @param amount delta value - */ - void decStatistic(MatchStatisticId statistic, int amount) + @Override + public int decStatistic(MatchStatisticId statistic, int amount) { - this.setStatistic(statistic, this.getStatistic(statistic) - amount); + final int newValue = this.getStatistic(statistic) - amount; + this.setStatistic(statistic, newValue); + return newValue; } @Override @@ -207,17 +189,23 @@ public LocalDateTime getDamageTimestamp() public void setKillerTracking(UUID damager) { this.lastDamager = damager; - this.damageTimestamp = LocalDateTime.now(); + this.damageTimestamp = damager == null ? null : LocalDateTime.now(); } - /** - * @return the team - */ + @Override public TeamIdType getTeam() { return this.team; } + /** + * @return the additionalTeams + */ + public Set<TeamIdType> getAdditionalTeams() + { + return this.additionalTeams; + } + /** * @param team the team to set */ @@ -225,5 +213,33 @@ public void setTeam(TeamIdType team) { this.team = team; } + + @Override + public boolean isPlaying() + { + return this.isPlaying; + } + + /** + * @param isPlaying the isPlaying to set + */ + public void setPlaying(boolean isPlaying) + { + this.isPlaying = isPlaying; + } + + @Override + public boolean isSpec() + { + return this.isSpec; + } + + /** + * @param isSpec the isSpec to set + */ + public void setSpec(boolean isSpec) + { + this.isSpec = isSpec; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java index 06393fcf..e0651040 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java @@ -24,6 +24,7 @@ package de.minigameslib.mgapi.impl.arena; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -31,6 +32,7 @@ import java.util.UUID; import de.minigameslib.mgapi.api.match.MatchStatisticId; +import de.minigameslib.mgapi.api.match.MatchTeamInterface; import de.minigameslib.mgapi.api.team.TeamIdType; /** @@ -39,7 +41,7 @@ * @author mepeisen * */ -class MatchTeam +class MatchTeam implements MatchTeamInterface { /** the team id. */ @@ -62,13 +64,17 @@ public MatchTeam(TeamIdType teamId) this.teamId = teamId; } - /** - * @return the teamId - */ + @Override public TeamIdType getTeamId() { return this.teamId; } + + @Override + public Set<UUID> getMembers() + { + return Collections.unmodifiableSet(this.teamMembers); + } /** * @return the teamMembers @@ -78,45 +84,33 @@ public Set<UUID> getTeamMembers() return this.teamMembers; } - /** - * Statistic function - * @param statistic - * @return current statistic - */ + @Override public int getStatistic(MatchStatisticId statistic) { final Integer result = this.statistics.get(statistic); return result == null ? 0 : result.intValue(); } - /** - * Statistic function - * @param statistic - * @param newValue - */ + @Override public void setStatistic(MatchStatisticId statistic, int newValue) { this.statistics.put(statistic, Integer.valueOf(newValue)); } - /** - * Adds the match statistic for given statistic id. - * @param statistic - * @param amount delta value - */ - void addStatistic(MatchStatisticId statistic, int amount) + @Override + public int addStatistic(MatchStatisticId statistic, int amount) { - this.setStatistic(statistic, this.getStatistic(statistic) + amount); + final int newvalue = this.getStatistic(statistic) + amount; + this.setStatistic(statistic, newvalue); + return newvalue; } - /** - * Decrements the match statistic for given statistic id. - * @param statistic - * @param amount delta value - */ - void decStatistic(MatchStatisticId statistic, int amount) + @Override + public int decStatistic(MatchStatisticId statistic, int amount) { - this.setStatistic(statistic, this.getStatistic(statistic) - amount); + final int newvalue = this.getStatistic(statistic) - amount; + this.setStatistic(statistic, newvalue); + return newvalue; } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java index e24d08fb..83daee99 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java @@ -140,13 +140,13 @@ protected BattleZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java index 53edee0f..70c68cab 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java @@ -141,13 +141,13 @@ protected EmptyComponentData createData() @Override protected void applyListeners(ComponentRuleSetInterface listeners) { - this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ComponentRuleSetInterface listeners) { - this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java index ebc261f4..a53a76a5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java @@ -129,13 +129,13 @@ protected EmptySignData createData() @Override protected void applyListeners(SignRuleSetInterface listeners) { - this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(SignRuleSetInterface listeners) { - this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java index a840acf7..fa4793a7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java @@ -140,13 +140,13 @@ protected EmptyZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java index febf0ef8..b461e199 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java @@ -141,13 +141,13 @@ protected GenericComponentData createData() @Override protected void applyListeners(ComponentRuleSetInterface listeners) { - this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ComponentRuleSetInterface listeners) { - this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java index edc9559a..b3d48bb7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java @@ -129,13 +129,13 @@ protected GenericSignData createData() @Override protected void applyListeners(SignRuleSetInterface listeners) { - this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(SignRuleSetInterface listeners) { - this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java index f6748681..0b31341d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java @@ -140,13 +140,13 @@ protected GenericZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java index 757109b8..4f31d58c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java @@ -129,13 +129,13 @@ protected JoinSignData createData() @Override protected void applyListeners(SignRuleSetInterface listeners) { - this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(SignRuleSetInterface listeners) { - this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java index 02c47d1d..07b329f0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java @@ -141,13 +141,13 @@ protected JoinSpawnComponentData createData() @Override protected void applyListeners(ComponentRuleSetInterface listeners) { - this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ComponentRuleSetInterface listeners) { - this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java index dc3e7146..7105a76f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java @@ -140,13 +140,13 @@ protected JoinZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java index 4bd988d5..8ac5e325 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java @@ -129,13 +129,13 @@ protected LeaveSignData createData() @Override protected void applyListeners(SignRuleSetInterface listeners) { - this.sign.registerHandlers(MinigamesPlugin.instance(), listeners); + this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(SignRuleSetInterface listeners) { - this.sign.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java index 86c2484d..c7f01bd7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java @@ -140,13 +140,13 @@ protected LeaveZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java index 0b903f9e..e9e0fa6e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java @@ -140,13 +140,13 @@ protected LobbyZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java index b0f4c1ce..966d0198 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java @@ -141,13 +141,13 @@ protected MainLobbySpawnComponentData createData() @Override protected void applyListeners(ComponentRuleSetInterface listeners) { - this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ComponentRuleSetInterface listeners) { - this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java index d7acfd9b..bdb0faae 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java @@ -140,13 +140,13 @@ protected MainZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java index d9d3b566..11d48b90 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java @@ -142,13 +142,13 @@ protected SpawnComponentData createData() @Override protected void applyListeners(ComponentRuleSetInterface listeners) { - this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ComponentRuleSetInterface listeners) { - this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java index e883c6b8..5a4772eb 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java @@ -142,13 +142,13 @@ protected SpectatorSpawnComponentData createData() @Override protected void applyListeners(ComponentRuleSetInterface listeners) { - this.component.registerHandlers(MinigamesPlugin.instance(), listeners); + this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ComponentRuleSetInterface listeners) { - this.component.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java index 9a1d40ff..071bc6a7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java @@ -140,13 +140,13 @@ protected SpectatorZoneData createData() @Override protected void applyListeners(ZoneRuleSetInterface listeners) { - this.zone.registerHandlers(MinigamesPlugin.instance(), listeners); + this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override protected void removeListeners(ZoneRuleSetInterface listeners) { - this.zone.unregisterHandlers(MinigamesPlugin.instance(), listeners); + this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index 19dbb2cf..ba9241fa 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -164,7 +164,7 @@ public void onPlayerJoined(ArenaPlayerJoinedEvent evt) { // start lobby countdown this.countdownTimer = this.lobbyCountdown - 1; - McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance(), 20, 20, this::onCountdown); + McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onCountdown); // notify all players this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java new file mode 100644 index 00000000..b31d7edb --- /dev/null +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java @@ -0,0 +1,70 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.test; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +import de.minigameslib.mclib.spigottest.SpigotInject; +import de.minigameslib.mclib.spigottest.SpigotServer; +import de.minigameslib.mclib.spigottest.SpigotTest; +import de.minigameslib.mclib.spigottest.SpigotTestRunner; + +/** + * Test case for arena impl. + * + * @author mepeisen + */ +@RunWith(SpigotTestRunner.class) +@SpigotTest(all = true) +public class ArenaImplTest +{ + + /** + * the spigot server. + */ + @SpigotInject + private SpigotServer server; + + /** + * Loads the test plugin. + */ + @Before + public void loadPlugin() + { + // TODO assertTrue(this.server.loadTestPlugin("JUNIT", TestPlugin.class)); //$NON-NLS-1$ + } + + /** + * Tests constructor to create new arenas + */ + @Test + public void testConstructorNew() + { + // TODO + } + +} diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java new file mode 100644 index 00000000..5f41df18 --- /dev/null +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java @@ -0,0 +1,1524 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Locale; +import java.util.UUID; + +import org.bukkit.Bukkit; +import org.bukkit.Server; +import org.bukkit.plugin.PluginManager; +import org.junit.Before; +import org.junit.Test; +import org.powermock.reflect.Whitebox; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.match.MatchStatisticId; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.team.CommonTeams; +import de.minigameslib.mgapi.api.team.TeamIdType; +import de.minigameslib.mgapi.impl.arena.ArenaMatchImpl; + +/** + * Test case for {@link ArenaMatchImpl} + * + * @author mepeisen + */ +public class ArenaMatchImplTest +{ + + /** plugin manager mock. */ + private PluginManager pluginManager; + + /** + * Tests constructor defaults + */ + @Test + public void testConstructorDefaults() + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + assertFalse(spmatch.isTeamMatch()); + + assertFalse(spmatch.isAborted()); + assertNotNull(spmatch.get(CommonTeams.Unknown)); + assertNotNull(spmatch.get(CommonTeams.Winners)); + assertNotNull(spmatch.get(CommonTeams.Losers)); + assertNotNull(spmatch.get(CommonTeams.Spectators)); + assertNotNull(spmatch.getCreated()); + assertNull(spmatch.getStarted()); + assertNull(spmatch.getFinished()); + assertNull(spmatch.getPreferredTeam()); + assertEquals(0, spmatch.getParticipants(false).size()); + assertEquals(0, spmatch.getParticipants(true).size()); + assertEquals(0, spmatch.getParticipantCount(false)); + assertEquals(0, spmatch.getParticipantCount(true)); + assertEquals(0, spmatch.getWinners().size()); + assertEquals(0, spmatch.getLosers().size()); + assertEquals(0, spmatch.getResults().size()); + assertEquals(0, spmatch.getResultCount()); + assertEquals(0, spmatch.get(CommonTeams.Unknown).getMembers().size()); + assertEquals(0, spmatch.get(CommonTeams.Winners).getMembers().size()); + assertEquals(0, spmatch.get(CommonTeams.Losers).getMembers().size()); + assertEquals(0, spmatch.get(CommonTeams.Spectators).getMembers().size()); + + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); + assertTrue(teamMatch.isTeamMatch()); + + assertFalse(teamMatch.isAborted()); + assertNotNull(teamMatch.get(CommonTeams.Unknown)); + assertNotNull(teamMatch.get(CommonTeams.Winners)); + assertNotNull(teamMatch.get(CommonTeams.Losers)); + assertNotNull(teamMatch.get(CommonTeams.Spectators)); + assertNotNull(teamMatch.getCreated()); + assertNull(teamMatch.getStarted()); + assertNull(teamMatch.getFinished()); + assertNull(teamMatch.getPreferredTeam()); + assertEquals(0, teamMatch.getParticipants(false).size()); + assertEquals(0, teamMatch.getParticipants(true).size()); + assertEquals(0, teamMatch.getParticipantCount(false)); + assertEquals(0, teamMatch.getParticipantCount(true)); + assertEquals(0, teamMatch.getWinners().size()); + assertEquals(0, teamMatch.getLosers().size()); + assertEquals(0, teamMatch.getResults().size()); + assertEquals(0, teamMatch.getResultCount()); + assertEquals(0, teamMatch.get(CommonTeams.Unknown).getMembers().size()); + assertEquals(0, teamMatch.get(CommonTeams.Winners).getMembers().size()); + assertEquals(0, teamMatch.get(CommonTeams.Losers).getMembers().size()); + assertEquals(0, teamMatch.get(CommonTeams.Spectators).getMembers().size()); + } + + /** + * Tests the match date filling + * @throws McException + */ + @Test + public void testMatchFinishDates() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + spmatch.start(); + sleep(50); + + spmatch.finish(); + assertNotNull(spmatch.getStarted()); + assertNotNull(spmatch.getFinished()); + assertFalse(spmatch.isAborted()); + final long units = spmatch.getStarted().until(spmatch.getFinished(), ChronoUnit.NANOS); + assertTrue(0 < units); + } + + /** + * Tests the match date filling + * @throws McException + */ + @Test + public void testMatchAbortedDates() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + spmatch.start(); + sleep(50); + + spmatch.abort(); + assertNotNull(spmatch.getStarted()); + assertNotNull(spmatch.getFinished()); + assertTrue(spmatch.isAborted()); + final long units = spmatch.getStarted().until(spmatch.getFinished(), ChronoUnit.NANOS); + assertTrue(0 < units); + } + + /** + * Tests the team creation + * @throws McException + */ + @Test + public void testTeamCreation() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); + assertEquals(0, teamMatch.getTeams().size()); + + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.getOrCreate(CommonTeams.Black); + assertEquals(2, teamMatch.getTeams().size()); + + assertTrue(teamMatch.getTeams().contains(CommonTeams.Aqua)); + assertTrue(teamMatch.getTeams().contains(CommonTeams.Black)); + } + + /** + * Tests the getTeam method + * @throws McException + */ + @Test + public void testGetTeam() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.getOrCreate(CommonTeams.Black); + + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + final ArenaPlayerInterface player3 = this.createPlayer(); + final ArenaPlayerInterface player4 = this.createPlayer(); + + assertNull(teamMatch.getTeam(player1.getPlayerUUID())); + assertNull(teamMatch.getTeam(player2.getPlayerUUID())); + assertNull(teamMatch.getTeam(player3.getPlayerUUID())); + assertNull(teamMatch.getTeam(player4.getPlayerUUID())); + + teamMatch.join(player1, CommonTeams.Aqua); + assertEquals(CommonTeams.Aqua, teamMatch.getTeam(player1.getPlayerUUID())); + + teamMatch.join(player2, CommonTeams.Black); + assertEquals(CommonTeams.Black, teamMatch.getTeam(player2.getPlayerUUID())); + + teamMatch.join(player3, CommonTeams.Black); + assertEquals(CommonTeams.Black, teamMatch.getTeam(player3.getPlayerUUID())); + + teamMatch.join(player3, CommonTeams.Blue); + assertEquals(CommonTeams.Blue, teamMatch.getTeam(player3.getPlayerUUID())); + + teamMatch.join(player4, CommonTeams.Aqua); + assertEquals(CommonTeams.Aqua, teamMatch.getTeam(player4.getPlayerUUID())); + + } + + /** + * Tests the getPreferredTeam method + * @throws McException + */ + @Test + public void testGetPreferredTeam() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.getOrCreate(CommonTeams.Black); + + TeamIdType team = teamMatch.getPreferredTeam(); + assertTrue(team == CommonTeams.Aqua || team == CommonTeams.Black); + + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + final ArenaPlayerInterface player3 = this.createPlayer(); + final ArenaPlayerInterface player4 = this.createPlayer(); + + teamMatch.join(player1, CommonTeams.Aqua); + team = teamMatch.getPreferredTeam(); + assertTrue(team == CommonTeams.Black); + + teamMatch.join(player2, CommonTeams.Black); + team = teamMatch.getPreferredTeam(); + assertTrue(team == CommonTeams.Aqua || team == CommonTeams.Black); + + teamMatch.join(player3, CommonTeams.Black); + team = teamMatch.getPreferredTeam(); + assertTrue(team == CommonTeams.Aqua); + + teamMatch.join(player3, CommonTeams.Blue); + team = teamMatch.getPreferredTeam(); + assertTrue(team == CommonTeams.Aqua || team == CommonTeams.Blue); + + teamMatch.join(player4, CommonTeams.Aqua); + team = teamMatch.getPreferredTeam(); + assertTrue(team == CommonTeams.Blue); + } + + /** + * Tests the getTeam method + * @throws McException + */ + @Test + public void testGetTeamMembers() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.getOrCreate(CommonTeams.Black); + assertEquals(0, teamMatch.getTeamMembers(CommonTeams.Aqua).size()); + assertEquals(0, teamMatch.getTeamMembers(CommonTeams.Black).size()); + assertEquals(0, teamMatch.getTeamMembers(CommonTeams.Blue).size()); + + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + final ArenaPlayerInterface player3 = this.createPlayer(); + + teamMatch.join(player1, CommonTeams.Aqua); + teamMatch.join(player2, CommonTeams.Black); + teamMatch.join(player3, CommonTeams.Black); + teamMatch.join(player3, CommonTeams.Blue); + + // blue was created on demand, we have 3 teams + assertEquals(3, teamMatch.getTeams().size()); + assertTrue(teamMatch.getTeams().contains(CommonTeams.Aqua)); + assertTrue(teamMatch.getTeams().contains(CommonTeams.Black)); + assertTrue(teamMatch.getTeams().contains(CommonTeams.Blue)); + + assertEquals(1, teamMatch.get(CommonTeams.Aqua).getMembers().size()); + assertTrue(teamMatch.get(CommonTeams.Aqua).getMembers().contains(player1.getPlayerUUID())); + assertEquals(2, teamMatch.get(CommonTeams.Black).getMembers().size()); + assertTrue(teamMatch.get(CommonTeams.Black).getMembers().contains(player2.getPlayerUUID())); + assertTrue(teamMatch.get(CommonTeams.Black).getMembers().contains(player3.getPlayerUUID())); + assertEquals(1, teamMatch.get(CommonTeams.Blue).getMembers().size()); + assertTrue(teamMatch.get(CommonTeams.Blue).getMembers().contains(player3.getPlayerUUID())); + + assertEquals(1, teamMatch.getTeamMembers(CommonTeams.Aqua).size()); + assertTrue(teamMatch.getTeamMembers(CommonTeams.Aqua).contains(player1.getPlayerUUID())); + assertEquals(2, teamMatch.getTeamMembers(CommonTeams.Black).size()); + assertTrue(teamMatch.getTeamMembers(CommonTeams.Black).contains(player2.getPlayerUUID())); + assertTrue(teamMatch.getTeamMembers(CommonTeams.Black).contains(player3.getPlayerUUID())); + assertEquals(1, teamMatch.getTeamMembers(CommonTeams.Blue).size()); + assertTrue(teamMatch.getTeamMembers(CommonTeams.Blue).contains(player3.getPlayerUUID())); + + assertEquals(CommonTeams.Aqua, teamMatch.get(player1.getPlayerUUID()).getTeam()); + assertEquals(CommonTeams.Black, teamMatch.get(player2.getPlayerUUID()).getTeam()); + assertEquals(CommonTeams.Blue, teamMatch.get(player3.getPlayerUUID()).getTeam()); + } + + /** + * Tests the spectate method + * @throws McException + */ + @Test + public void testSpectate() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + spmatch.start(); + sleep(50); + + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + spmatch.join(player1, CommonTeams.Unknown); + + sleep(50); + spmatch.spectate(player1); + spmatch.spectate(player2); + + assertFalse(spmatch.get(player1.getPlayerUUID()).isPlaying()); + assertFalse(spmatch.get(player2.getPlayerUUID()).isPlaying()); + assertTrue(spmatch.get(player1.getPlayerUUID()).isSpec()); + assertTrue(spmatch.get(player2.getPlayerUUID()).isSpec()); + assertEquals(CommonTeams.Unknown, spmatch.getTeam(player1.getPlayerUUID())); + assertEquals(CommonTeams.Spectators, spmatch.getTeam(player2.getPlayerUUID())); + + assertEquals(1, spmatch.getTeamMembers(CommonTeams.Unknown).size()); + assertTrue(spmatch.getTeamMembers(CommonTeams.Unknown).contains(player1.getPlayerUUID())); + + assertTrue(50 <= spmatch.getPlayTime(player1.getPlayerUUID())); + assertEquals(0, spmatch.getPlayTime(player2.getPlayerUUID())); + + assertEquals(2, spmatch.getTeamMembers(CommonTeams.Spectators).size()); + assertTrue(spmatch.getTeamMembers(CommonTeams.Spectators).contains(player1.getPlayerUUID())); + assertTrue(spmatch.getTeamMembers(CommonTeams.Spectators).contains(player2.getPlayerUUID())); + } + + /** + * tests winners and losers + * @throws McException + */ + @Test + public void testWinningAndLosing() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + spmatch.start(); + final ArenaPlayerInterface winner1 = this.createPlayer(); + final ArenaPlayerInterface winner2a = this.createPlayer(); + final ArenaPlayerInterface winner2b = this.createPlayer(); + final ArenaPlayerInterface winner3 = this.createPlayer(); + final ArenaPlayerInterface loser4 = this.createPlayer(); + final ArenaPlayerInterface loser5a = this.createPlayer(); + final ArenaPlayerInterface loser5b = this.createPlayer(); + final ArenaPlayerInterface loser6 = this.createPlayer(); + final ArenaPlayerInterface loser7a = this.createPlayer(); + final ArenaPlayerInterface loser7b = this.createPlayer(); + spmatch.join(winner1, CommonTeams.Unknown); + spmatch.join(winner2a, CommonTeams.Unknown); + spmatch.join(winner2b, CommonTeams.Unknown); + spmatch.join(winner3, CommonTeams.Unknown); + spmatch.join(loser4, CommonTeams.Unknown); + spmatch.join(loser5a, CommonTeams.Unknown); + spmatch.join(loser5b, CommonTeams.Unknown); + spmatch.join(loser6, CommonTeams.Unknown); + spmatch.join(loser7a, CommonTeams.Unknown); + spmatch.join(loser7b, CommonTeams.Unknown); + + // let the players win or lose + spmatch.setWinner(winner1.getPlayerUUID()); + spmatch.setLoser(loser7a.getPlayerUUID(), loser7b.getPlayerUUID()); + spmatch.setWinner(winner2a.getPlayerUUID(), winner2b.getPlayerUUID()); + spmatch.setLoser(loser6.getPlayerUUID()); + spmatch.setLoser(loser5a.getPlayerUUID(), loser5b.getPlayerUUID()); + spmatch.setWinner(winner3.getPlayerUUID()); + spmatch.setLoser(loser4.getPlayerUUID()); + + // dummy method invocation + spmatch.setWinner(new UUID[0]); + spmatch.setWinner((UUID[]) null); + spmatch.setLoser(new UUID[0]); + spmatch.setLoser((UUID[]) null); + // TODO following two lines should work (marking non playing players as winner/losers should be silently ignored)... +// spmatch.setWinner(UUID.randomUUID()); +// spmatch.setLoser(UUID.randomUUID()); + // TODO check with players only being a spectator + + // check results + assertEquals(7, spmatch.getResultCount()); + assertEquals(7, spmatch.getResults().size()); + + ArenaMatchInterface.MatchResult result = spmatch.getResult(1); + assertTrue(result.isWin()); + assertEquals(1, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(winner1.getPlayerUUID())); + + result = spmatch.getResult(2); + assertTrue(result.isWin()); + assertEquals(2, result.getPlace()); + assertEquals(2, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(winner2a.getPlayerUUID())); + assertTrue(result.getPlayers().contains(winner2b.getPlayerUUID())); + + result = spmatch.getResult(3); + assertTrue(result.isWin()); + assertEquals(3, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(winner3.getPlayerUUID())); + + result = spmatch.getResult(4); + assertFalse(result.isWin()); + assertEquals(4, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser4.getPlayerUUID())); + + result = spmatch.getResult(5); + assertFalse(result.isWin()); + assertEquals(5, result.getPlace()); + assertEquals(2, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser5a.getPlayerUUID())); + assertTrue(result.getPlayers().contains(loser5b.getPlayerUUID())); + + result = spmatch.getResult(6); + assertFalse(result.isWin()); + assertEquals(6, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser6.getPlayerUUID())); + + result = spmatch.getResult(7); + assertFalse(result.isWin()); + assertEquals(7, result.getPlace()); + assertEquals(2, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser7a.getPlayerUUID())); + assertTrue(result.getPlayers().contains(loser7b.getPlayerUUID())); + + assertNull(spmatch.getResult(0)); + assertNull(spmatch.getResult(8)); + + assertEquals(4, spmatch.getWinnerCount()); + assertEquals(6, spmatch.getLoserCount()); + } + + /** + * tests winning and losing for teams + * @throws McException + */ + @Test + public void testTeamWinningAndLosing() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); + teamMatch.start(); + final ArenaPlayerInterface winner1 = this.createPlayer(); + final ArenaPlayerInterface winner2a = this.createPlayer(); + final ArenaPlayerInterface winner2b = this.createPlayer(); + final ArenaPlayerInterface winner3 = this.createPlayer(); + final ArenaPlayerInterface loser4 = this.createPlayer(); + final ArenaPlayerInterface loser5a = this.createPlayer(); + final ArenaPlayerInterface loser5b = this.createPlayer(); + final ArenaPlayerInterface loser6 = this.createPlayer(); + final ArenaPlayerInterface loser7a = this.createPlayer(); + final ArenaPlayerInterface loser7b = this.createPlayer(); + teamMatch.join(winner1, CommonTeams.Aqua); + teamMatch.join(winner2a, CommonTeams.Black); + teamMatch.join(winner2b, CommonTeams.Black); + teamMatch.join(winner3, CommonTeams.Blue); + teamMatch.join(loser4, CommonTeams.Fuchsia); + teamMatch.join(loser5a, CommonTeams.Gray); + teamMatch.join(loser5b, CommonTeams.Gray); + teamMatch.join(loser6, CommonTeams.Green); + teamMatch.join(loser7a, CommonTeams.Lime); + teamMatch.join(loser7b, CommonTeams.Lime); + + // let the players win or lose + teamMatch.setWinner(CommonTeams.Aqua); + teamMatch.setLoser(CommonTeams.Lime); + teamMatch.setWinner(CommonTeams.Black); + teamMatch.setLoser(CommonTeams.Green); + teamMatch.setLoser(CommonTeams.Gray); + teamMatch.setWinner(CommonTeams.Blue); + teamMatch.setLoser(CommonTeams.Fuchsia); + + // dummy method invocation + teamMatch.setWinner(new TeamIdType[0]); + teamMatch.setWinner((TeamIdType[]) null); + teamMatch.setLoser(new TeamIdType[0]); + teamMatch.setLoser((TeamIdType[]) null); + teamMatch.setWinner(CommonTeams.White); + teamMatch.setLoser(CommonTeams.White); + + // check results + assertEquals(7, teamMatch.getResultCount()); + assertEquals(7, teamMatch.getResults().size()); + + ArenaMatchInterface.MatchResult result = teamMatch.getResult(1); + assertTrue(result.isWin()); + assertEquals(1, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(winner1.getPlayerUUID())); + + result = teamMatch.getResult(2); + assertTrue(result.isWin()); + assertEquals(2, result.getPlace()); + assertEquals(2, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(winner2a.getPlayerUUID())); + assertTrue(result.getPlayers().contains(winner2b.getPlayerUUID())); + + result = teamMatch.getResult(3); + assertTrue(result.isWin()); + assertEquals(3, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(winner3.getPlayerUUID())); + + result = teamMatch.getResult(4); + assertFalse(result.isWin()); + assertEquals(4, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser4.getPlayerUUID())); + + result = teamMatch.getResult(5); + assertFalse(result.isWin()); + assertEquals(5, result.getPlace()); + assertEquals(2, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser5a.getPlayerUUID())); + assertTrue(result.getPlayers().contains(loser5b.getPlayerUUID())); + + result = teamMatch.getResult(6); + assertFalse(result.isWin()); + assertEquals(6, result.getPlace()); + assertEquals(1, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser6.getPlayerUUID())); + + result = teamMatch.getResult(7); + assertFalse(result.isWin()); + assertEquals(7, result.getPlace()); + assertEquals(2, result.getPlayers().size()); + assertTrue(result.getPlayers().contains(loser7a.getPlayerUUID())); + assertTrue(result.getPlayers().contains(loser7b.getPlayerUUID())); + + assertNull(teamMatch.getResult(0)); + assertNull(teamMatch.getResult(8)); + + assertEquals(4, teamMatch.getWinnerCount()); + assertEquals(6, teamMatch.getLoserCount()); + } + + /** + * Tests the statistics + * @throws McException + */ + @Test + public void testTeamStatistics() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, true); + spmatch.start(); + spmatch.getOrCreate(CommonTeams.Aqua); + spmatch.getOrCreate(CommonTeams.Black); + + assertEquals(0, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); + + assertEquals(2, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 2)); + assertEquals(3, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 3)); + assertEquals(4, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat1, 4)); + assertEquals(5, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat2, 5)); + assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 6)); + assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 7)); + assertEquals(2, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); + assertEquals(3, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); + assertEquals(4, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); + assertEquals(5, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); + + assertEquals(4, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 2)); + assertEquals(6, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 3)); + assertEquals(8, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat1, 4)); + assertEquals(10, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat2, 5)); + assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 6)); + assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 7)); + assertEquals(4, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); + assertEquals(6, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); + assertEquals(8, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); + assertEquals(10, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); + + assertEquals(3, spmatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1)); + assertEquals(4, spmatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 2)); + assertEquals(5, spmatch.decStatistic(CommonTeams.Black, DummyStatistics.Stat1, 3)); + assertEquals(6, spmatch.decStatistic(CommonTeams.Black, DummyStatistics.Stat2, 4)); + assertEquals(0, spmatch.decStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 5)); + assertEquals(0, spmatch.decStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 6)); + assertEquals(3, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); + assertEquals(4, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); + assertEquals(5, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); + assertEquals(6, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); + + spmatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + spmatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 2); + spmatch.setStatistic(CommonTeams.Black, DummyStatistics.Stat1, 3); + spmatch.setStatistic(CommonTeams.Black, DummyStatistics.Stat2, 4); + spmatch.setStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 5); + spmatch.setStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 6); + assertEquals(1, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); + assertEquals(2, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); + assertEquals(3, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); + assertEquals(4, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); + } + + /** + * Tests the statistics + * @throws McException + */ + @Test + public void testStatistics() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + spmatch.start(); + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + final ArenaPlayerInterface player3 = this.createPlayer(); + spmatch.join(player1, CommonTeams.Unknown); + spmatch.join(player2, CommonTeams.Unknown); + + assertEquals(0, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); + + assertEquals(2, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 2)); + assertEquals(3, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 3)); + assertEquals(4, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 4)); + assertEquals(5, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 5)); + assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 6)); + assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 7)); + assertEquals(2, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(3, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(4, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(5, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); + + assertEquals(4, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 2)); + assertEquals(6, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 3)); + assertEquals(8, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 4)); + assertEquals(10, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 5)); + assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 6)); + assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 7)); + assertEquals(4, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(6, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(8, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(10, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); + + assertEquals(3, spmatch.decStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 1)); + assertEquals(4, spmatch.decStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 2)); + assertEquals(5, spmatch.decStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 3)); + assertEquals(6, spmatch.decStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 4)); + assertEquals(0, spmatch.decStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 5)); + assertEquals(0, spmatch.decStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 6)); + assertEquals(3, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(4, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(5, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(6, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); + + spmatch.setStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 1); + spmatch.setStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 2); + spmatch.setStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 3); + spmatch.setStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 4); + spmatch.setStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 5); + spmatch.setStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 6); + assertEquals(1, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(2, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(3, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(4, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); + assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); + } + + /** + * Tests the get play time + * @throws McException + */ + @Test + public void testGetPlayTime() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + final ArenaPlayerInterface player1 = this.createPlayer(); // joined before start + final ArenaPlayerInterface player2 = this.createPlayer(); // joined after start + final ArenaPlayerInterface player3 = this.createPlayer(); // spectator + final ArenaPlayerInterface player4 = this.createPlayer(); // unknown player + final ArenaPlayerInterface player5 = this.createPlayer(); // joined and left before start + spmatch.join(player1, CommonTeams.Unknown); + spmatch.join(player5, CommonTeams.Unknown); + sleep(20); + spmatch.leave(player5); + sleep(30); + + assertEquals(0, spmatch.getPlayTime(player1.getPlayerUUID())); + assertEquals(0, spmatch.getPlayTime(player2.getPlayerUUID())); + assertEquals(0, spmatch.getPlayTime(player3.getPlayerUUID())); + assertEquals(0, spmatch.getPlayTime(player4.getPlayerUUID())); + assertEquals(0, spmatch.getPlayTime(player5.getPlayerUUID())); + + spmatch.start(); + sleep(10); + spmatch.join(player2, CommonTeams.Unknown); + + // match is in progress + sleep(10); + + // player2 joined 10 milliseconds after player1 + // on a slow ide the test may measure some more milliseconds... + // the asser ensures that the 50 millis before the match starts are not respected by getPlayTime. + assertTrue(15 >= spmatch.getPlayTime(player2.getPlayerUUID()) - spmatch.getPlayTime(player2.getPlayerUUID())); + + sleep(50); + spmatch.spectate(player3); + sleep(50); + spmatch.setWinner(player2.getPlayerUUID(), player1.getPlayerUUID()); + + // player 3 was only spectating (no play time) + assertEquals(0, spmatch.getPlayTime(player3.getPlayerUUID())); + + // match is finished/ players have left + + // player2 joined 10 milliseconds after player1 + // on a slow ide the test may measure some more milliseconds... + // the asser ensures that the 50 millis before the match starts are not respected by getPlayTime. + assertTrue(15 >= spmatch.getPlayTime(player2.getPlayerUUID()) - spmatch.getPlayTime(player2.getPlayerUUID())); + + // unknown player + assertEquals(0, spmatch.getPlayTime(player4.getPlayerUUID())); + + // player left before start + assertEquals(0, spmatch.getPlayTime(player5.getPlayerUUID())); + } + + /** + * Tests the killer tracking + * @throws McException + */ + @Test + public void testKillerTracking() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + final ArenaPlayerInterface player3 = this.createPlayer(); + final ArenaPlayerInterface player4 = this.createPlayer(); + final ArenaPlayerInterface player5 = this.createPlayer(); + final ArenaPlayerInterface player6 = this.createPlayer(); + spmatch.start(); + spmatch.join(player1, CommonTeams.Unknown); + spmatch.join(player2, CommonTeams.Unknown); + spmatch.join(player3, CommonTeams.Unknown); + spmatch.join(player4, CommonTeams.Unknown); + spmatch.join(player5, CommonTeams.Unknown); + + spmatch.trackDamageForKill(player1.getPlayerUUID(), player2.getPlayerUUID()); + sleep(10); + spmatch.trackDamageForKill(player2.getPlayerUUID(), player3.getPlayerUUID()); + sleep(10); + spmatch.trackDamageForKill(player1.getPlayerUUID(), player3.getPlayerUUID()); + sleep(10); + spmatch.trackDamageForKill(player2.getPlayerUUID(), player4.getPlayerUUID()); + sleep(10); + spmatch.trackDamageForKill(player2.getPlayerUUID(), player4.getPlayerUUID()); + sleep(10); + spmatch.trackDamageForKill(player2.getPlayerUUID(), player4.getPlayerUUID()); + spmatch.trackDamageForKill(player5.getPlayerUUID(), player4.getPlayerUUID()); + sleep(10); + spmatch.trackDamageForKill(player6.getPlayerUUID(), player4.getPlayerUUID()); + + final LocalDateTime now = LocalDateTime.now(); + + assertEquals(player3.getPlayerUUID(), spmatch.getKillerTracking(player1.getPlayerUUID()).getLastDamager()); + assertEquals(player4.getPlayerUUID(), spmatch.getKillerTracking(player2.getPlayerUUID()).getLastDamager()); + assertNull(spmatch.getKillerTracking(player3.getPlayerUUID()).getLastDamager()); + assertNull(spmatch.getKillerTracking(player4.getPlayerUUID()).getLastDamager()); + assertEquals(player4.getPlayerUUID(), spmatch.getKillerTracking(player5.getPlayerUUID()).getLastDamager()); + + assertNull(spmatch.getKillerTracking(player6.getPlayerUUID())); + + assertTrue(15 >= spmatch.getKillerTracking(player5.getPlayerUUID()).getDamageTimestamp().until(now, ChronoUnit.MILLIS)); + assertTrue(15 >= spmatch.getKillerTracking(player2.getPlayerUUID()).getDamageTimestamp().until(now, ChronoUnit.MILLIS)); + assertTrue(45 >= spmatch.getKillerTracking(player1.getPlayerUUID()).getDamageTimestamp().until(now, ChronoUnit.MILLIS)); + + sleep(10); + + spmatch.resetKillerTracking(player1.getPlayerUUID()); + spmatch.resetKillerTracking(player6.getPlayerUUID()); + + assertNull(spmatch.getKillerTracking(player6.getPlayerUUID())); + } + + /** + * Failes with exception on duplicate startup. + * @throws McException + */ + @Test(expected = McException.class) + public void failDoubleStart() throws McException + { + final ArenaMatchImpl spmatch = new ArenaMatchImpl(this.createDummyArena(), false); + try + { + spmatch.start(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + + spmatch.start(); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failStatisticsAfterFinish1() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); + try + { + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.start(); + teamMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + teamMatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failStatisticsAfterFinish2() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); + try + { + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.start(); + teamMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + teamMatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failStatisticsAfterFinish3() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); + try + { + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.start(); + teamMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + teamMatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failStatisticsAfterFinish4() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.setStatistic(player.getPlayerUUID(), DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failStatisticsAfterFinish5() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.addStatistic(player.getPlayerUUID(), DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failStatisticsAfterFinish6() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.decStatistic(player.getPlayerUUID(), DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failJoinAfterFinish1() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + try + { + spMatch.join(player1); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.join(player2); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failJoinAfterFinish2() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.join(player, CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSwitchAfterFinish() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.getOrCreate(CommonTeams.Aqua); + spMatch.getOrCreate(CommonTeams.Black); + spMatch.join(player, CommonTeams.Aqua); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.switchTeam(player, CommonTeams.Black); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSpectateAfterFinish() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.spectate(player); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failLeaveAfterFinish1() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.leave(player); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failLeaveAfterFinish2() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player, CommonTeams.Aqua); + spMatch.join(player, CommonTeams.Black); + spMatch.start(); + spMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.leave(player, CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamAfterFinish() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); + try + { + teamMatch.getOrCreate(CommonTeams.Aqua); + teamMatch.start(); + teamMatch.finish(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + teamMatch.getOrCreate(CommonTeams.Black); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failAbortBeforeStart() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + spMatch.abort(); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failFinishBeforeStart() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + spMatch.finish(); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failResetKillerBeforeStart() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.resetKillerTracking(player.getPlayerUUID()); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSetKillerBeforeStart() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player1 = this.createPlayer(); + final ArenaPlayerInterface player2 = this.createPlayer(); + try + { + spMatch.join(player1); + spMatch.join(player2); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.trackDamageForKill(player1.getPlayerUUID(), player2.getPlayerUUID()); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSetLoserBeforeStart1() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.setLoser(player.getPlayerUUID()); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSetLoserBeforeStart2() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + teamMatch.join(player, CommonTeams.Aqua); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + teamMatch.setLoser(CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSetWinnerBeforeStart1() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.setWinner(player.getPlayerUUID()); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failSetWinnerBeforeStart2() throws McException + { + final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + teamMatch.join(player, CommonTeams.Aqua); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + teamMatch.setWinner(CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP1() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + try + { + spMatch.start(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP2() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + try + { + spMatch.start(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP3() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + try + { + spMatch.start(); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP4() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + spMatch.getOrCreate(CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP5() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + spMatch.join(player, CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP6() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.join(player, CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP7() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.leave(player, CommonTeams.Aqua); + } + + /** + * Failes with exception + * @throws McException + */ + @Test(expected = McException.class) + public void failTeamMethodOnSP8() throws McException + { + final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); + final ArenaPlayerInterface player = this.createPlayer(); + try + { + spMatch.join(player); + } + catch (McException e) + { + e.printStackTrace(); + fail("Unexpected exception"); //$NON-NLS-1$ + } + spMatch.switchTeam(player, CommonTeams.Aqua); + } + + /** + * Mock mglib interface + * @throws ClassNotFoundException + */ + @Before + public void mockMglib() throws ClassNotFoundException + { + MinigamesLibInterface mglib = mock(MinigamesLibInterface.class); + Whitebox.setInternalState(Class.forName("de.minigameslib.mgapi.api.MglibCache"), "SERVICES", mglib); //$NON-NLS-1$ //$NON-NLS-2$ + when(mglib.isSpecialTeam(CommonTeams.Unknown)).thenReturn(true); + when(mglib.isSpecialTeam(CommonTeams.Winners)).thenReturn(true); + when(mglib.isSpecialTeam(CommonTeams.Losers)).thenReturn(true); + when(mglib.isSpecialTeam(CommonTeams.Spectators)).thenReturn(true); + } + + /** + * Mock bukkit server + */ + @Before + public void mockServer() + { + final Server server = mock(Server.class); + Whitebox.setInternalState(Bukkit.class, "server", server); //$NON-NLS-1$ + this.pluginManager = mock(PluginManager.class); + when(server.getPluginManager()).thenReturn(this.pluginManager); + } + + /** + * Creates an arena mock with dummy name + * @return dummy arena + */ + private ArenaInterface createDummyArena() + { + return this.createArena("dummy"); //$NON-NLS-1$ + } + + /** + * Creates an arena mock + * @param name + * @return arena mock + */ + private ArenaInterface createArena(String name) + { + final ArenaInterface arena = mock(ArenaInterface.class); + final LocalizedConfigString namestring = new LocalizedConfigString(); + namestring.setUserMessage(Locale.ENGLISH, name); + when(arena.getDisplayName()).thenReturn(namestring); + return arena; + } + + /** + * Creates a random arena player + * @return arena player + */ + private ArenaPlayerInterface createPlayer() + { + final ArenaPlayerInterface result = mock(ArenaPlayerInterface.class); + when(result.getPlayerUUID()).thenReturn(UUID.randomUUID()); + return result; + } + + /** + * Sleeps for given millis and ignores any error + * @param millis + */ + private void sleep(long millis) + { + try + { + Thread.sleep(millis); + } + catch (@SuppressWarnings("unused") InterruptedException e) + { + // silently ignore + } + } + + /** + * Some statistics helper + */ + private enum DummyStatistics implements MatchStatisticId + { + /** dummy statistic */ + Stat1, + /** dummy statistic */ + Stat2 + } + +} diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java new file mode 100644 index 00000000..2674498e --- /dev/null +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java @@ -0,0 +1,70 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.test.plugin; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.arena.ArenaType; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.arena.ClassicSinglePlayerArena; + +/** + * @author mepeisen + * + */ +public enum TestArenas implements ArenaTypeInterface +{ + + /** + * Basic test. + */ + @ArenaType(BasicTest.class) + BasicTest; + + /** + * Basic test provider. + */ + public static final class BasicTest extends ClassicSinglePlayerArena + { + + @Override + public LocalizedMessageInterface getDisplayName() + { + return null; + } + + @Override + public LocalizedMessageInterface getShortDescription() + { + return null; + } + + @Override + public LocalizedMessageInterface getDescription() + { + return null; + } + + } +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java similarity index 66% rename from v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java rename to v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java index 856fb713..69da4406 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/TeamImpl.java +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java @@ -22,19 +22,24 @@ */ -package de.minigameslib.mgapi.impl.arena; +package de.minigameslib.mgapi.impl.test.plugin; -import java.util.UUID; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; /** - * Basic team implementation. - * * @author mepeisen + * */ -public class TeamImpl +@LocalizedMessages("core") +public enum TestMessages implements LocalizedMessageInterface { - - /** a generic uuid to identify a team. */ - private final UUID teamUuid = UUID.randomUUID(); + + /** + * dummy msg + */ + @LocalizedMessage(defaultMessage = "dummy") + Dummy, } diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java new file mode 100644 index 00000000..f6ad4a9a --- /dev/null +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java @@ -0,0 +1,101 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.test.plugin; + +import org.bukkit.plugin.java.JavaPlugin; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mgapi.api.MinigameProvider; +import de.minigameslib.mgapi.api.MinigamesLibInterface; + +/** + * @author mepeisen + * + */ +public class TestPlugin extends JavaPlugin +{ + + @Override + public void onEnable() + { + EnumServiceInterface.instance().registerEnumClass(this, TestMessages.class); + EnumServiceInterface.instance().registerEnumClass(this, TestArenas.class); + + try + { + MinigamesLibInterface.instance().initMinigame(this, new MinigameProvider() { + + @Override + public LocalizedMessageInterface getShortDescription() + { + return TestMessages.Dummy; + } + + @Override + public String getName() + { + return "Test"; //$NON-NLS-1$ + } + + @Override + public LocalizedMessageInterface getManual() + { + return TestMessages.Dummy; + } + + @Override + public LocalizedMessageInterface getHowToPlay() + { + return TestMessages.Dummy; + } + + @Override + public LocalizedMessageInterface getDisplayName() + { + return TestMessages.Dummy; + } + + @Override + public LocalizedMessageInterface getDescription() + { + return TestMessages.Dummy; + } + }); + } + catch (McException e) + { + throw new IllegalStateException(e); + } + } + + @Override + public void onDisable() + { + EnumServiceInterface.instance().unregisterAllEnumerations(this); + } + +} From cfc1d3d04d0bdeb642ff24d3f9d3a258c37b3520 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 11 Mar 2017 08:05:57 +0100 Subject: [PATCH 210/266] v2 --- .../mgapi/api/MinigamesLibInterface.java | 12 +- .../mgapi/impl/MinigamesPlugin.java | 59 ++++----- .../mgapi/impl/arena/ArenaImpl.java | 9 +- .../impl/cmd/AdminSignCreateCommand.java | 16 +-- .../mgapi/impl/cmd/tool/AdminToolHelper.java | 14 ++- .../obj/AbstractBaseArenaObjectHandler.java | 6 +- .../mgapi/impl/obj/EmptySign.java | 91 ++++++++++++++ .../mgapi/impl/obj/GenericSign.java | 91 ++++++++++++++ .../minigameslib/mgapi/impl/obj/JoinSign.java | 117 +++++++++++++++++- .../mgapi/impl/obj/LeaveSign.java | 91 ++++++++++++++ 10 files changed, 457 insertions(+), 49 deletions(-) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 1c91f65e..3eba443e 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -219,24 +219,30 @@ static MinigamesLibInterface instance() * @param plugin * @param type * @param creator + * @param clazz + * @throws McException */ - void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<ArenaComponentHandler> creator); + <T extends ArenaComponentHandler> void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException; /** * Registers a new zone with arena support. * @param plugin * @param type * @param creator + * @param clazz + * @throws McException */ - void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<ArenaZoneHandler> creator); + <T extends ArenaZoneHandler> void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException; /** * Registers a new sign with arena support. * @param plugin * @param type * @param creator + * @param clazz + * @throws McException */ - void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<ArenaSignHandler> creator); + <T extends ArenaSignHandler> void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException; /** * Returns the number of registered minigames. diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 9eae4931..1d1fb7a5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -214,7 +214,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * Component creator functions */ - private final Map<ComponentTypeId, McSupplier<ArenaComponentHandler>> components = new HashMap<>(); + private final Map<ComponentTypeId, McSupplier<? extends ArenaComponentHandler>> components = new HashMap<>(); /** * Zones per plugin @@ -224,7 +224,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * Zone creator functions */ - private final Map<ZoneTypeId, McSupplier<ArenaZoneHandler>> zones = new HashMap<>(); + private final Map<ZoneTypeId, McSupplier<? extends ArenaZoneHandler>> zones = new HashMap<>(); /** * Signs per plugin @@ -234,7 +234,7 @@ public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface /** * Sign creator functions */ - private final Map<SignTypeId, McSupplier<ArenaSignHandler>> signs = new HashMap<>(); + private final Map<SignTypeId, McSupplier<? extends ArenaSignHandler>> signs = new HashMap<>(); // TODO Watch for disabled plugins @@ -301,27 +301,27 @@ public void onEnable() this.registerRuleset(this, BasicZoneRuleSets.PlayerNoEntry, PlayerNoEntry::new); this.registerRuleset(this, BasicZoneRuleSets.PvPMode, PvPMode::new); - this.registerArenaComponent(this, BasicComponentTypes.Empty, EmptyComponent::new); - this.registerArenaComponent(this, BasicComponentTypes.Generic, GenericComponent::new); - this.registerArenaComponent(this, BasicComponentTypes.Spawn, SpawnComponent::new); - this.registerArenaComponent(this, BasicComponentTypes.JoinSpawn, JoinSpawnComponent::new); - this.registerArenaComponent(this, BasicComponentTypes.MainLobbySpawn, MainLobbySpawnComponent::new); - this.registerArenaComponent(this, BasicComponentTypes.SpectatorSpawn, SpectatorSpawnComponent::new); - this.registerArenaSign(this, BasicSignTypes.Empty, EmptySign::new); - this.registerArenaSign(this, BasicSignTypes.Generic, GenericSign::new); - this.registerArenaSign(this, BasicSignTypes.Join, JoinSign::new); - this.registerArenaSign(this, BasicSignTypes.Leave, LeaveSign::new); - this.registerArenaZone(this, BasicZoneTypes.Empty, EmptyZone::new); - this.registerArenaZone(this, BasicZoneTypes.Generic, GenericZone::new); - this.registerArenaZone(this, BasicZoneTypes.Battle, BattleZone::new); - this.registerArenaZone(this, BasicZoneTypes.Join, JoinZone::new); - this.registerArenaZone(this, BasicZoneTypes.Leave, LeaveZone::new); - this.registerArenaZone(this, BasicZoneTypes.Lobby, LobbyZone::new); - this.registerArenaZone(this, BasicZoneTypes.Main, MainZone::new); - this.registerArenaZone(this, BasicZoneTypes.Spectator, SpectatorZone::new); - try { + this.registerArenaComponent(this, BasicComponentTypes.Empty, EmptyComponent::new, EmptyComponent.class); + this.registerArenaComponent(this, BasicComponentTypes.Generic, GenericComponent::new, GenericComponent.class); + this.registerArenaComponent(this, BasicComponentTypes.Spawn, SpawnComponent::new, SpawnComponent.class); + this.registerArenaComponent(this, BasicComponentTypes.JoinSpawn, JoinSpawnComponent::new, JoinSpawnComponent.class); + this.registerArenaComponent(this, BasicComponentTypes.MainLobbySpawn, MainLobbySpawnComponent::new, MainLobbySpawnComponent.class); + this.registerArenaComponent(this, BasicComponentTypes.SpectatorSpawn, SpectatorSpawnComponent::new, SpectatorSpawnComponent.class); + this.registerArenaSign(this, BasicSignTypes.Empty, EmptySign::new, EmptySign.class); + this.registerArenaSign(this, BasicSignTypes.Generic, GenericSign::new, GenericSign.class); + this.registerArenaSign(this, BasicSignTypes.Join, JoinSign::new, JoinSign.class); + this.registerArenaSign(this, BasicSignTypes.Leave, LeaveSign::new, LeaveSign.class); + this.registerArenaZone(this, BasicZoneTypes.Empty, EmptyZone::new, EmptyZone.class); + this.registerArenaZone(this, BasicZoneTypes.Generic, GenericZone::new, GenericZone.class); + this.registerArenaZone(this, BasicZoneTypes.Battle, BattleZone::new, BattleZone.class); + this.registerArenaZone(this, BasicZoneTypes.Join, JoinZone::new, JoinZone.class); + this.registerArenaZone(this, BasicZoneTypes.Leave, LeaveZone::new, LeaveZone.class); + this.registerArenaZone(this, BasicZoneTypes.Lobby, LobbyZone::new, LobbyZone.class); + this.registerArenaZone(this, BasicZoneTypes.Main, MainZone::new, MainZone.class); + this.registerArenaZone(this, BasicZoneTypes.Spectator, SpectatorZone::new, SpectatorZone.class); + ObjectServiceInterface.instance().register(MglibObjectTypes.Arena, ArenaImpl.class); ObjectServiceInterface.instance().resumeObjects(this); } @@ -759,7 +759,7 @@ public McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> cre * @param type * @return creator function */ - public McSupplier<ArenaComponentHandler> creator(ComponentTypeId type) + public McSupplier<? extends ArenaComponentHandler> creator(ComponentTypeId type) { return this.components.get(type); } @@ -770,7 +770,7 @@ public McSupplier<ArenaComponentHandler> creator(ComponentTypeId type) * @param type * @return creator function */ - public McSupplier<ArenaZoneHandler> creator(ZoneTypeId type) + public McSupplier<? extends ArenaZoneHandler> creator(ZoneTypeId type) { return this.zones.get(type); } @@ -781,7 +781,7 @@ public McSupplier<ArenaZoneHandler> creator(ZoneTypeId type) * @param type * @return creator function */ - public McSupplier<ArenaSignHandler> creator(SignTypeId type) + public McSupplier<? extends ArenaSignHandler> creator(SignTypeId type) { return this.signs.get(type); } @@ -808,22 +808,25 @@ public void registerRuleset(Plugin plugin, ZoneRuleSetType ruleset, McBiFunction } @Override - public void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<ArenaComponentHandler> creator) + public <T extends ArenaComponentHandler> void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException { + ObjectServiceInterface.instance().register(type, clazz); this.componentsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); this.components.put(type, creator); } @Override - public void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<ArenaZoneHandler> creator) + public <T extends ArenaZoneHandler> void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException { + ObjectServiceInterface.instance().register(type, clazz); this.zonesPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); this.zones.put(type, creator); } @Override - public void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<ArenaSignHandler> creator) + public <T extends ArenaSignHandler> void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException { + ObjectServiceInterface.instance().register(type, clazz); this.signsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); this.signs.put(type, creator); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 1a9a4d07..649e6067 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -34,6 +34,7 @@ import java.util.Random; import java.util.Set; import java.util.UUID; +import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -246,12 +247,14 @@ public void resume() throws McException } catch (McException ex) { + this.logger.log(Level.WARNING, "Error while resume", ex); //$NON-NLS-1$ this.object.delete(); this.object = null; throw ex; } catch (RuntimeException ex) { + this.logger.log(Level.WARNING, "Error while resume", ex); //$NON-NLS-1$ this.object.delete(); this.object = null; throw new McException(CommonMessages.InternalError, ex, ex.getMessage()); @@ -289,7 +292,7 @@ private void resumeComponents() throws McException { for (final ComponentIdInterface id : this.getComponents()) { - final ArenaComponentHandler handler = (ArenaComponentHandler) ObjectServiceInterface.instance().findComponent(id); + final ArenaComponentHandler handler = (ArenaComponentHandler) ObjectServiceInterface.instance().findComponent(id).getHandler(); handler.initArena(this); } } @@ -301,7 +304,7 @@ private void resumeSigns() throws McException { for (final SignIdInterface id : this.getSigns()) { - final ArenaSignHandler handler = (ArenaSignHandler) ObjectServiceInterface.instance().findSign(id); + final ArenaSignHandler handler = (ArenaSignHandler) ObjectServiceInterface.instance().findSign(id).getHandler(); handler.initArena(this); } } @@ -313,7 +316,7 @@ private void resumeZones() throws McException { for (final ZoneIdInterface id : this.getZones()) { - final ArenaZoneHandler handler = (ArenaZoneHandler) ObjectServiceInterface.instance().findZone(id); + final ArenaZoneHandler handler = (ArenaZoneHandler) ObjectServiceInterface.instance().findZone(id).getHandler(); handler.initArena(this); } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java index 6482a7c9..4dfa2a3e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java @@ -74,7 +74,7 @@ public void handle(CommandInterface command) throws McException @SuppressWarnings("cast") final Optional<ArenaSignHandler> handler = arena.getSigns().stream(). map(s -> (ArenaSignHandler) arena.getHandler(s)). - filter(s -> s.getName().equals(name)). + filter(s -> name.equals(s.getName())). findFirst(); if (handler.isPresent()) { @@ -126,29 +126,29 @@ public LocalizedMessageInterface getDescription(CommandInterface command) * * @author mepeisen */ - @LocalizedMessages(value = "cmd.mg2_admin_delete") + @LocalizedMessages(value = "cmd.mg2_admin_sign_create") public enum Messages implements LocalizedMessageInterface { /** - * Short description of /mg2 admin delete + * Short description of /mg2 admin sign create */ - @LocalizedMessage(defaultMessage = "deletes an existing arena") - @MessageComment({"Short description of /mg2 admin delete"}) + @LocalizedMessage(defaultMessage = "Creates a new arena sign") + @MessageComment({"Short description of /mg2 sign create"}) ShortDescription, /** * Long description of /mg2 admin delete */ - @LocalizedMessage(defaultMessage = "deletes an existing arena") - @MessageComment({"Long description of /mg2 admin delete"}) + @LocalizedMessage(defaultMessage = "Creates a new arena sign") + @MessageComment({"Long description of /mg2 admin sign create"}) Description, /** * Usage of /mg2 admin delete */ @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign create <arena> <name> <type>") - @MessageComment({"Usage of /mg2 admin delete"}) + @MessageComment({"Usage of /mg2 admin sign create"}) Usage, } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java index 0982f795..4d8bdaeb 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java @@ -71,6 +71,7 @@ public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, .onLeftClick((p, evt) -> onCreateSign(evt, p, arena, name, type, finish)) .onRightClick((p, evt) -> onCreateSign(evt, p, arena, name, type, finish)) .description(Messages.CreateSign_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) + .singleUse() .build(); } @@ -86,6 +87,7 @@ public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, */ private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) throws McException { + // TODO set sign name // security checks if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminSign))) { @@ -96,8 +98,6 @@ private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface pl throw new McException(ArenaImpl.Messages.ModificationWrongState); } - System.out.println(evt.getBukkitEvent().getClickedBlock() + " / " + evt.getBukkitEvent().getBlockFace()); //$NON-NLS-1$ - Block target = null; byte opposite; switch (evt.getBukkitEvent().getBlockFace()) @@ -169,9 +169,13 @@ private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface pl target.setData(opposite); } -// final Sign sign = evt.getBukkitEvent().getClickedBlock(); -// final ArenaSignHandler result = arena.createSign(sign, type); -// finish.accept(result); + final Sign sign = (Sign) target.getState(); + final ArenaSignHandler result = arena.createSign(sign, type); + result.setName(name); + if (finish != null) + { + finish.accept(result); + } } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java index 52eb1c1f..c0cead4e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java @@ -111,6 +111,10 @@ public void loadData() throws McException { final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); this.data = section.getFragment(this.getDataClass(), "data"); //$NON-NLS-1$ + if (this.data == null) + { + this.data = this.createData(); + } this.resumeRuleSets(); } @@ -217,7 +221,7 @@ public void initArena(ArenaInterface a) throws McException @Override protected void checkModifications() throws McException { - if (this.arena.getState() != ArenaState.Maintenance) + if (this.arena != null && this.arena.getState() != ArenaState.Maintenance) { throw new McException(Messages.ModificationWrongState); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java index ebc261f4..53b77ff9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java @@ -29,9 +29,14 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; import de.minigameslib.mgapi.api.obj.EmptySignHandler; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -60,6 +65,92 @@ public void initArena(ArenaInterface a) throws McException { this.saveData(); } + this.updateSign(); + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerJoin(ArenaPlayerJoinedEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeft(ArenaPlayerLeftEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Returns the sign text to set + * @return sign text + */ + protected String[] getLines() + { + // TODO join lines + return new String[]{ + "EMPTY", + this.getArena().getInternalName(), + String.valueOf(System.currentTimeMillis()) + }; + } + + /** + * Set sign text + */ + private void updateSign() + { + final String[] lines = this.getLines(); + for (int i = 0; i < 4; i++) + { + if (i < lines.length) + { + this.sign.setLine(i, lines[i]); + } + else + { + this.sign.setLine(i, ""); //$NON-NLS-1$ + } + } } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java index edc9559a..8e65b1ab 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java @@ -29,9 +29,14 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; import de.minigameslib.mgapi.api.obj.GenericSignHandler; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -60,6 +65,92 @@ public void initArena(ArenaInterface a) throws McException { this.saveData(); } + this.updateSign(); + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerJoin(ArenaPlayerJoinedEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeft(ArenaPlayerLeftEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Returns the sign text to set + * @return sign text + */ + protected String[] getLines() + { + // TODO join lines + return new String[]{ + "GENERIC", + this.getArena().getInternalName(), + String.valueOf(System.currentTimeMillis()) + }; + } + + /** + * Set sign text + */ + private void updateSign() + { + final String[] lines = this.getLines(); + for (int i = 0; i < 4; i++) + { + if (i < lines.length) + { + this.sign.setLine(i, lines[i]); + } + else + { + this.sign.setLine(i, ""); //$NON-NLS-1$ + } + } } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java index 757109b8..a18c958b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java @@ -29,9 +29,17 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.event.McListener; +import de.minigameslib.mclib.api.event.McPlayerInteractEvent; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; +import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; import de.minigameslib.mgapi.api.obj.JoinSignInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -41,9 +49,13 @@ * @author mepeisen * */ -public class JoinSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, JoinSignData> implements JoinSignInterface +public class JoinSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, JoinSignData> implements JoinSignInterface, McListener { + // TODO clear out what variables will be shown on signs. + // TODO clear out what events will be caught to update signs + // TODO change the code of other signs as well + /** the underlying sign. */ protected SignInterface sign; @@ -60,6 +72,109 @@ public void initArena(ArenaInterface a) throws McException { this.saveData(); } + this.updateSign(); + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerJoin(ArenaPlayerJoinedEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeft(ArenaPlayerLeftEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * right click event + * @param evt + */ + @McEventHandler + public void onRightClick(McPlayerInteractEvent evt) + { + try + { + this.arena.join(MinigamesLibInterface.instance().getPlayer(evt.getPlayer())); + } + catch (McException ex) + { + evt.getPlayer().sendMessage(ex.getErrorMessage(), ex.getArgs()); + } + } + + /** + * Returns the sign text to set + * @return sign text + */ + protected String[] getLines() + { + // TODO join lines + return new String[]{ + "JOIN", + this.getArena().getInternalName(), + String.valueOf(System.currentTimeMillis()) + }; + } + + /** + * Set sign text + */ + private void updateSign() + { + final String[] lines = this.getLines(); + for (int i = 0; i < 4; i++) + { + if (i < lines.length) + { + this.sign.setLine(i, lines[i]); + } + else + { + this.sign.setLine(i, ""); //$NON-NLS-1$ + } + } } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java index 4bd988d5..7d6983b7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java @@ -29,9 +29,14 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.objects.SignInterface; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; import de.minigameslib.mgapi.api.obj.LeaveSignInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -60,6 +65,92 @@ public void initArena(ArenaInterface a) throws McException { this.saveData(); } + this.updateSign(); + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerJoin(ArenaPlayerJoinedEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player joined event + * @param evt + */ + @McEventHandler + public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeft(ArenaPlayerLeftEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Player left event + * @param evt + */ + @McEventHandler + public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) + { + if (evt.getArena() == this.getArena()) + { + this.updateSign(); + } + } + + /** + * Returns the sign text to set + * @return sign text + */ + protected String[] getLines() + { + // TODO join lines + return new String[]{ + "LEAVE", + this.getArena().getInternalName(), + String.valueOf(System.currentTimeMillis()) + }; + } + + /** + * Set sign text + */ + private void updateSign() + { + final String[] lines = this.getLines(); + for (int i = 0; i < 4; i++) + { + if (i < lines.length) + { + this.sign.setLine(i, lines[i]); + } + else + { + this.sign.setLine(i, ""); //$NON-NLS-1$ + } + } } @Override From 1e2121fa0f5b57ec34f55dfd7b8039068138b4a2 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 11 Mar 2017 11:58:37 +0100 Subject: [PATCH 211/266] v2 --- .../mgapi/api/MinigamesLibInterface.java | 6 +- .../mgapi/impl/MglibMessages.java | 26 ++ .../mgapi/impl/cmd/AdminCheckCommand.java | 6 +- .../mgapi/impl/cmd/AdminCommand.java | 4 +- .../mgapi/impl/cmd/AdminComponentCommand.java | 121 +++++++++ .../impl/cmd/AdminComponentCreateCommand.java | 159 ++++++++++++ .../impl/cmd/AdminComponentDeleteCommand.java | 142 ++++++++++ .../impl/cmd/AdminComponentListCommand.java | 164 ++++++++++++ .../impl/cmd/AdminComponentTpCommand.java | 142 ++++++++++ .../mgapi/impl/cmd/AdminDeleteCommand.java | 6 +- .../mgapi/impl/cmd/AdminDisableCommand.java | 6 +- .../mgapi/impl/cmd/AdminEnableCommand.java | 6 +- .../mgapi/impl/cmd/AdminInviteCommand.java | 6 +- .../mgapi/impl/cmd/AdminMaintainCommand.java | 6 +- .../mgapi/impl/cmd/AdminSignCommand.java | 6 +- .../impl/cmd/AdminSignCreateCommand.java | 13 +- .../impl/cmd/AdminSignDeleteCommand.java | 147 +++++++++++ .../mgapi/impl/cmd/AdminSignListCommand.java | 8 +- .../mgapi/impl/cmd/AdminSignTpCommand.java | 142 ++++++++++ .../mgapi/impl/cmd/AdminStartCommand.java | 6 +- .../mgapi/impl/cmd/AdminStopCommand.java | 6 +- .../mgapi/impl/cmd/AdminTestCommand.java | 6 +- .../mgapi/impl/cmd/AdminZoneCommand.java | 121 +++++++++ .../impl/cmd/AdminZoneCreateCommand.java | 159 ++++++++++++ .../impl/cmd/AdminZoneDeleteCommand.java | 142 ++++++++++ .../mgapi/impl/cmd/AdminZoneListCommand.java | 164 ++++++++++++ .../mgapi/impl/cmd/AdminZoneTpCommand.java | 157 +++++++++++ .../mgapi/impl/cmd/ArenaCommand.java | 5 +- .../mgapi/impl/cmd/JoinCommand.java | 5 +- .../mgapi/impl/cmd/ManualCommand.java | 5 +- .../mgapi/impl/cmd/Mg2Command.java | 111 +++++++- .../mgapi/impl/cmd/SpectateCommand.java | 5 +- .../mgapi/impl/cmd/tool/AdminToolHelper.java | 244 +++++++++++++++++- 33 files changed, 2222 insertions(+), 30 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index 3eba443e..df602b07 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -105,16 +105,16 @@ static MinigamesLibInterface instance() int APIVERSION_2_0_0 = 20000; /** - * Returns the api version of MinigamesLib. + * Returns the api version of McLib. * * <p> * The api version is found with int constants on this interface. The integer is built with following schematic: + * </p> * <ul> * <li>major version number</li> * <li>minor version number (to digits)</li> * <li>fix level (two digits)</li> * </ul> - * </p> * * <p> * Different fix levels are returned for new minecraft versions. It indicates that the mclib version type enum @@ -133,7 +133,7 @@ static MinigamesLibInterface instance() * </p> * * <p> - * <b>In most situations it is ok to check for any version below the newest major version. (getApiVersion() < APIVERSION_2_0_0). + * In most situations it is ok to check for any version below the newest major version. (getApiVersion() < APIVERSION_2_0_0). * </p> * * @return api version. diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 2e39e1ab..7f8c85ec 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -35,6 +35,11 @@ import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.AdminCheckCommand; import de.minigameslib.mgapi.impl.cmd.AdminCommand; +import de.minigameslib.mgapi.impl.cmd.AdminComponentCommand; +import de.minigameslib.mgapi.impl.cmd.AdminComponentCreateCommand; +import de.minigameslib.mgapi.impl.cmd.AdminComponentDeleteCommand; +import de.minigameslib.mgapi.impl.cmd.AdminComponentListCommand; +import de.minigameslib.mgapi.impl.cmd.AdminComponentTpCommand; import de.minigameslib.mgapi.impl.cmd.AdminCreateCommand; import de.minigameslib.mgapi.impl.cmd.AdminDeleteCommand; import de.minigameslib.mgapi.impl.cmd.AdminDisableCommand; @@ -45,10 +50,17 @@ import de.minigameslib.mgapi.impl.cmd.AdminSGuiCommand; import de.minigameslib.mgapi.impl.cmd.AdminSignCommand; import de.minigameslib.mgapi.impl.cmd.AdminSignCreateCommand; +import de.minigameslib.mgapi.impl.cmd.AdminSignDeleteCommand; import de.minigameslib.mgapi.impl.cmd.AdminSignListCommand; +import de.minigameslib.mgapi.impl.cmd.AdminSignTpCommand; import de.minigameslib.mgapi.impl.cmd.AdminStartCommand; import de.minigameslib.mgapi.impl.cmd.AdminStopCommand; import de.minigameslib.mgapi.impl.cmd.AdminTestCommand; +import de.minigameslib.mgapi.impl.cmd.AdminZoneCommand; +import de.minigameslib.mgapi.impl.cmd.AdminZoneCreateCommand; +import de.minigameslib.mgapi.impl.cmd.AdminZoneDeleteCommand; +import de.minigameslib.mgapi.impl.cmd.AdminZoneListCommand; +import de.minigameslib.mgapi.impl.cmd.AdminZoneTpCommand; import de.minigameslib.mgapi.impl.cmd.ArenaCommand; import de.minigameslib.mgapi.impl.cmd.ArenasCommand; import de.minigameslib.mgapi.impl.cmd.InfoCommand; @@ -105,6 +117,20 @@ AdminSignCommand.Messages.class, AdminSignListCommand.Messages.class, AdminSignCreateCommand.Messages.class, + AdminSignDeleteCommand.Messages.class, + AdminSignTpCommand.Messages.class, + // admin zone commands + AdminZoneCommand.Messages.class, + AdminZoneListCommand.Messages.class, + AdminZoneCreateCommand.Messages.class, + AdminZoneDeleteCommand.Messages.class, + AdminZoneTpCommand.Messages.class, + // admin component commands + AdminComponentCommand.Messages.class, + AdminComponentListCommand.Messages.class, + AdminComponentCreateCommand.Messages.class, + AdminComponentDeleteCommand.Messages.class, + AdminComponentTpCommand.Messages.class, // admin tools AdminToolHelper.Messages.class, // rules diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java index 0f1c00d7..4a44fc20 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java @@ -90,7 +90,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance || a.getState() == ArenaState.Disabled).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance || a.getState() == ArenaState.Disabled) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java index 65cfaec0..f9f63192 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java @@ -73,8 +73,8 @@ public AdminCommand() this.subCommands.put("test", new AdminTestCommand()); //$NON-NLS-1$ this.subCommands.put("invite", new AdminInviteCommand()); //$NON-NLS-1$ this.subCommands.put("sign", new AdminSignCommand()); //$NON-NLS-1$ -// TODO this.subCommands.put("zone", new AdminZoneCommand()); //$NON-NLS-1$ -// TODO this.subCommands.put("comp", new AdminCompCommand()); //$NON-NLS-1$ + this.subCommands.put("zone", new AdminZoneCommand()); //$NON-NLS-1$ + this.subCommands.put("comp", new AdminComponentCommand()); //$NON-NLS-1$ this.subCommands.put("gui", new AdminGuiCommand()); //$NON-NLS-1$ this.subCommands.put("sgui", new AdminSGuiCommand()); //$NON-NLS-1$ } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java new file mode 100644 index 00000000..c329e6b5 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java @@ -0,0 +1,121 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminComponentCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminComp); + } + + @Override + protected boolean pre(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); + return true; + } + + /** + * Constructor to register sub commands. + */ + public AdminComponentCommand() + { + this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ + this.subCommands.put("list", new AdminComponentListCommand()); //$NON-NLS-1$ + this.subCommands.put("create", new AdminComponentCreateCommand()); //$NON-NLS-1$ + this.subCommands.put("delete", new AdminComponentDeleteCommand()); //$NON-NLS-1$ +// this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ + this.subCommands.put("tp", new AdminComponentTpCommand()); //$NON-NLS-1$ + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected void sendUsage(CommandInterface command) + { + command.send(Messages.Usage); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_component") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin component + */ + @LocalizedMessage(defaultMessage = "Manipulate arena components") + @MessageComment({"Short description of /mg2 admin comp"}) + ShortDescription, + + /** + * Long description of /mg2 admin component + */ + @LocalizedMessage(defaultMessage = "Manipulate arena components") + @MessageComment({"Long description of /mg2 admin comp"}) + Description, + + /** + * Usage of /mg2 admin component + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp <sub-command>") + @MessageComment({"Usage of /mg2 admin comp"}) + Usage + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java new file mode 100644 index 00000000..5ef5d5c4 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java @@ -0,0 +1,159 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-Zoneed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.ZoneTypeId; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.impl.MglibPerms; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; + +/** + * @author mepeisen + * + */ +public class AdminComponentCreateCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminComp); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); + final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); + + @SuppressWarnings("cast") + final Optional<ArenaZoneHandler> handler = arena.getZones().stream(). + map(s -> (ArenaZoneHandler) arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); + + AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 2) + { + final Set<String> result = new TreeSet<>(); + for (final ZoneTypeId ZoneType : EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class)) + { + result.add(ZoneType.getPluginName() + "/" + ZoneType.name()); //$NON-NLS-1$ + } + return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_zone_create") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin zone create + */ + @LocalizedMessage(defaultMessage = "Creates a new arena zone") + @MessageComment({"Short description of /mg2 zone create"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone create + */ + @LocalizedMessage(defaultMessage = "Creates a new arena zone") + @MessageComment({"Long description of /mg2 admin zone create"}) + Description, + + /** + * Usage of /mg2 admin zone create + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone create <arena> <name> <type>") + @MessageComment({"Usage of /mg2 admin zone create"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java new file mode 100644 index 00000000..b07c25ff --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java @@ -0,0 +1,142 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminComponentDeleteCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminComp); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final ComponentInterface comp = Mg2Command.getComponent(arena, command, Messages.Usage); + comp.delete(); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + final Set<String> result = new TreeSet<>(); + final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); + if (arena != null) + { + arena.getComponents().stream(). + map(s -> arena.getHandler(s).getName()). + filter(s -> s.toLowerCase().startsWith(lastArg)). + forEach(result::add); + } + return new ArrayList<>(result); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_component_delete") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin component delete + */ + @LocalizedMessage(defaultMessage = "Delete a component") + @MessageComment({"Short description of /mg2 comp delete"}) + ShortDescription, + + /** + * Long description of /mg2 admin component delete + */ + @LocalizedMessage(defaultMessage = "Delete a component") + @MessageComment({"Long description of /mg2 admin comp delete"}) + Description, + + /** + * Usage of /mg2 admin component delete + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp delete <arena> <name>") + @MessageComment({"Usage of /mg2 admin comp delete"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java new file mode 100644 index 00000000..94f36122 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java @@ -0,0 +1,164 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminComponentListCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminComp); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + + McLibInterface.instance().setContext(ArenaInterface.class, arena); + super.handle(command); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected int getLineCount(CommandInterface command) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return arena.getZones().size(); + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return Messages.Header.toArg(arena.getInternalName()); + } + + @SuppressWarnings("cast") + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return arena.getComponents().stream(). + skip(start). + limit(count). + map(s -> (ArenaComponentHandler) arena.getHandler(s)). + map(ArenaComponentHandler::getName). + toArray(Serializable[]::new); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_component_list") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin comp list + */ + @LocalizedMessage(defaultMessage = "lists arena components") + @MessageComment({"Short description of /mg2 admin comp list"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone list + */ + @LocalizedMessage(defaultMessage = "lists arena components") + @MessageComment({"Long description of /mg2 admin comp list"}) + Description, + + /** + * Usage of /mg2 admin zone list + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp list <arena-name> [page]") + @MessageComment({"Usage of /mg2 admin comp list"}) + Usage, + + /** + * Pageable header line + */ + @LocalizedMessage(defaultMessage = "Components of " + LocalizedMessage.CODE_COLOR + "%1$s") + @MessageComment(value = {"Pageable header line of /mg2 admin comp list"}, args=@Argument("arena internal name")) + Header + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java new file mode 100644 index 00000000..8ff9c05a --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java @@ -0,0 +1,142 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminComponentTpCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminComp); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final ComponentInterface comp = Mg2Command.getComponent(arena, command, Messages.Usage); + command.getPlayer().getBukkitPlayer().teleport(comp.getLocation()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + final Set<String> result = new TreeSet<>(); + final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); + if (arena != null) + { + arena.getComponents().stream(). + map(s -> arena.getHandler(s).getName()). + filter(s -> s.toLowerCase().startsWith(lastArg)). + forEach(result::add); + } + return new ArrayList<>(result); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_component_tp") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin comp tp + */ + @LocalizedMessage(defaultMessage = "Teleport to a component") + @MessageComment({"Short description of /mg2 admin comp tp"}) + ShortDescription, + + /** + * Long description of /mg2 admin comp tp + */ + @LocalizedMessage(defaultMessage = "Teleport to a sign") + @MessageComment({"Long description of /mg2 admin comp tp"}) + Description, + + /** + * Usage of /mg2 admin comp tp + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp tp <arena> <name>") + @MessageComment({"Usage of /mg2 admin comp tp"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java index c7e255bd..c5db5764 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java @@ -71,7 +71,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java index b3eed6c0..bd9f83e8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java @@ -70,7 +70,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> !a.isDisabled()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> !a.isDisabled()) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java index 535c4a37..87662a8f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java @@ -70,7 +70,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.isDisabled() || a.isMaintenance()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.isDisabled() || a.isMaintenance()) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java index 6cfc7c75..c6a15ef7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java @@ -79,7 +79,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro } if (command.getArgs().length == 1) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Join && a.isMaintenance()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Join && a.isMaintenance()) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java index 6b7f45db..58e7bd69 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java @@ -70,7 +70,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> !a.isMaintenance()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> !a.isMaintenance()) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java index fe4ac47a..01c24c0f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java @@ -63,9 +63,9 @@ public AdminSignCommand() this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ this.subCommands.put("list", new AdminSignListCommand()); //$NON-NLS-1$ this.subCommands.put("create", new AdminSignCreateCommand()); //$NON-NLS-1$ -// this.subCommands.put("delete", new AdminSignDeleteCommand()); //$NON-NLS-1$ + this.subCommands.put("delete", new AdminSignDeleteCommand()); //$NON-NLS-1$ // this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ -// this.subCommands.put("tp", new AdminSignTpCommand()); //$NON-NLS-1$ + this.subCommands.put("tp", new AdminSignTpCommand()); //$NON-NLS-1$ } @Override @@ -105,7 +105,7 @@ public enum Messages implements LocalizedMessageInterface /** * Long description of /mg2 admin sign */ - @LocalizedMessage(defaultMessage = "Display simple admin sign") + @LocalizedMessage(defaultMessage = "Manipulate arena signs") @MessageComment({"Long description of /mg2 admin sign"}) Description, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java index 4dfa2a3e..55921518 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java @@ -67,7 +67,7 @@ public void handle(CommandInterface command) throws McException command.checkOnline(); command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); @@ -94,7 +94,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } if (command.getArgs().length == 2) { @@ -103,7 +107,6 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { result.add(signType.getPluginName() + "/" + signType.name()); //$NON-NLS-1$ } - System.out.println(lastArg); return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); } return Collections.emptyList(); @@ -138,14 +141,14 @@ public enum Messages implements LocalizedMessageInterface ShortDescription, /** - * Long description of /mg2 admin delete + * Long description of /mg2 admin sign create */ @LocalizedMessage(defaultMessage = "Creates a new arena sign") @MessageComment({"Long description of /mg2 admin sign create"}) Description, /** - * Usage of /mg2 admin delete + * Usage of /mg2 admin sign create */ @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign create <arena> <name> <type>") @MessageComment({"Usage of /mg2 admin sign create"}) diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java new file mode 100644 index 00000000..e18f5b0b --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java @@ -0,0 +1,147 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import org.bukkit.Material; +import org.bukkit.block.Block; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminSignDeleteCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSign); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final SignInterface sign = Mg2Command.getSign(arena, command, Messages.Usage); + final Block block = sign.getBukkitSign().getBlock(); + sign.delete(); + block.setType(Material.AIR); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + final Set<String> result = new TreeSet<>(); + final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); + if (arena != null) + { + arena.getSigns().stream(). + map(s -> arena.getHandler(s).getName()). + filter(s -> s.toLowerCase().startsWith(lastArg)). + forEach(result::add); + } + return new ArrayList<>(result); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_sign_delete") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin sign delete + */ + @LocalizedMessage(defaultMessage = "Delete a sign") + @MessageComment({"Short description of /mg2 sign delete"}) + ShortDescription, + + /** + * Long description of /mg2 admin sign delete + */ + @LocalizedMessage(defaultMessage = "Delete a sign") + @MessageComment({"Long description of /mg2 admin sign delete"}) + Description, + + /** + * Usage of /mg2 admin sign delete + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign delete <arena> <name>") + @MessageComment({"Usage of /mg2 admin sign delete"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java index ea551da8..a998939c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java @@ -63,7 +63,7 @@ public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); McLibInterface.instance().setContext(ArenaInterface.class, arena); super.handle(command); @@ -74,7 +74,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java new file mode 100644 index 00000000..c22e8db3 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java @@ -0,0 +1,142 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminSignTpCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSign); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final SignInterface sign = Mg2Command.getSign(arena, command, Messages.Usage); + command.getPlayer().getBukkitPlayer().teleport(sign.getLocation()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + final Set<String> result = new TreeSet<>(); + final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); + if (arena != null) + { + arena.getSigns().stream(). + map(s -> arena.getHandler(s).getName()). + filter(s -> s.toLowerCase().startsWith(lastArg)). + forEach(result::add); + } + return new ArrayList<>(result); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_sign_tp") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin sign tp + */ + @LocalizedMessage(defaultMessage = "Teleport to a sign") + @MessageComment({"Short description of /mg2 admin sign tp"}) + ShortDescription, + + /** + * Long description of /mg2 admin sign tp + */ + @LocalizedMessage(defaultMessage = "Teleport to a sign") + @MessageComment({"Long description of /mg2 admin sign tp"}) + Description, + + /** + * Usage of /mg2 admin sign tp + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign tp <arena> <name>") + @MessageComment({"Usage of /mg2 admin sign tp"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java index 26855570..b83597ce 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java @@ -71,7 +71,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Join).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Join) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java index 6e78e7e8..5986f82f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java @@ -70,7 +70,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.isMatch()).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.isMatch()) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java index 6bcdd943..64cdbe19 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java @@ -71,7 +71,11 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().filter(a -> a.getState() == ArenaState.Maintenance).map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java new file mode 100644 index 00000000..1e03545d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java @@ -0,0 +1,121 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.HelpCommandHandler; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminZoneCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminZone); + } + + @Override + protected boolean pre(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); + return true; + } + + /** + * Constructor to register sub commands. + */ + public AdminZoneCommand() + { + this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ + this.subCommands.put("list", new AdminZoneListCommand()); //$NON-NLS-1$ + this.subCommands.put("create", new AdminZoneCreateCommand()); //$NON-NLS-1$ + this.subCommands.put("delete", new AdminZoneDeleteCommand()); //$NON-NLS-1$ +// this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ + this.subCommands.put("tp", new AdminZoneTpCommand()); //$NON-NLS-1$ + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected void sendUsage(CommandInterface command) + { + command.send(Messages.Usage); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_zone") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin zone + */ + @LocalizedMessage(defaultMessage = "Manipulate arena zones") + @MessageComment({"Short description of /mg2 admin zone"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone + */ + @LocalizedMessage(defaultMessage = "Manipulate arena zones") + @MessageComment({"Long description of /mg2 admin zone"}) + Description, + + /** + * Usage of /mg2 admin zone + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone <sub-command>") + @MessageComment({"Usage of /mg2 admin zone"}) + Usage + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java new file mode 100644 index 00000000..b14df9a8 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java @@ -0,0 +1,159 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-Zoneed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.ZoneTypeId; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.impl.MglibPerms; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; + +/** + * @author mepeisen + * + */ +public class AdminZoneCreateCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminZone); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); + final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); + + @SuppressWarnings("cast") + final Optional<ArenaZoneHandler> handler = arena.getZones().stream(). + map(s -> (ArenaZoneHandler) arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); + + AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 2) + { + final Set<String> result = new TreeSet<>(); + for (final ZoneTypeId ZoneType : EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class)) + { + result.add(ZoneType.getPluginName() + "/" + ZoneType.name()); //$NON-NLS-1$ + } + return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_zone_create") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin zone create + */ + @LocalizedMessage(defaultMessage = "Creates a new arena zone") + @MessageComment({"Short description of /mg2 zone create"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone create + */ + @LocalizedMessage(defaultMessage = "Creates a new arena zone") + @MessageComment({"Long description of /mg2 admin zone create"}) + Description, + + /** + * Usage of /mg2 admin zone create + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone create <arena> <name> <type>") + @MessageComment({"Usage of /mg2 admin zone create"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java new file mode 100644 index 00000000..feb2072e --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java @@ -0,0 +1,142 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminZoneDeleteCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminZone); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final ZoneInterface zone = Mg2Command.getZone(arena, command, Messages.Usage); + zone.delete(); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + final Set<String> result = new TreeSet<>(); + final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); + if (arena != null) + { + arena.getZones().stream(). + map(s -> arena.getHandler(s).getName()). + filter(s -> s.toLowerCase().startsWith(lastArg)). + forEach(result::add); + } + return new ArrayList<>(result); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_zone_delete") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin zone delete + */ + @LocalizedMessage(defaultMessage = "Delete a zone") + @MessageComment({"Short description of /mg2 zone delete"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone delete + */ + @LocalizedMessage(defaultMessage = "Delete a zone") + @MessageComment({"Long description of /mg2 admin zone delete"}) + Description, + + /** + * Usage of /mg2 admin zone delete + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone delete <arena> <name>") + @MessageComment({"Usage of /mg2 admin zone delete"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java new file mode 100644 index 00000000..a172e5f4 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java @@ -0,0 +1,164 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminZoneListCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.checkOpPermission(MglibPerms.CommandAdminZone); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + + McLibInterface.instance().setContext(ArenaInterface.class, arena); + super.handle(command); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + @Override + protected int getLineCount(CommandInterface command) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return arena.getZones().size(); + } + + @Override + protected Serializable getHeader(CommandInterface command) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return Messages.Header.toArg(arena.getInternalName()); + } + + @SuppressWarnings("cast") + @Override + protected Serializable[] getLines(CommandInterface command, int start, int count) + { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + return arena.getZones().stream(). + skip(start). + limit(count). + map(s -> (ArenaZoneHandler) arena.getHandler(s)). + map(ArenaZoneHandler::getName). + toArray(Serializable[]::new); + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_zone_list") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin zone list + */ + @LocalizedMessage(defaultMessage = "lists arena zones") + @MessageComment({"Short description of /mg2 admin zone list"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone list + */ + @LocalizedMessage(defaultMessage = "lists arena zones") + @MessageComment({"Long description of /mg2 admin zone list"}) + Description, + + /** + * Usage of /mg2 admin zone list + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone list <arena-name> [page]") + @MessageComment({"Usage of /mg2 admin zone list"}) + Usage, + + /** + * Pageable header line + */ + @LocalizedMessage(defaultMessage = "Zones of " + LocalizedMessage.CODE_COLOR + "%1$s") + @MessageComment(value = {"Pageable header line of /mg2 admin zone list"}, args=@Argument("arena internal name")) + Header + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java new file mode 100644 index 00000000..1aacfc00 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java @@ -0,0 +1,157 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.cmd.CommandInterface; +import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.MglibPerms; + +/** + * @author mepeisen + * + */ +public class AdminZoneTpCommand implements SubCommandHandlerInterface +{ + + @Override + public boolean visible(CommandInterface command) + { + return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminZone); + } + + @Override + public void handle(CommandInterface command) throws McException + { + command.checkOnline(); + command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); + + final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); + final ZoneInterface zone = Mg2Command.getZone(arena, command, Messages.Usage); + + boolean highLoc = true; + if (command.getArgs().length > 0) + { + highLoc = command.getArgs()[0].equalsIgnoreCase("high"); //$NON-NLS-1$ + } + command.getPlayer().getBukkitPlayer().teleport(highLoc ? zone.getCuboid().getHighLoc() : zone.getCuboid().getLowLoc()); + } + + @Override + public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException + { + if (command.getArgs().length == 0) + { + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .filter(a -> a.getState() == ArenaState.Maintenance) + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + if (command.getArgs().length == 1) + { + final Set<String> result = new TreeSet<>(); + final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); + if (arena != null) + { + arena.getZones().stream(). + map(s -> arena.getHandler(s).getName()). + filter(s -> s.toLowerCase().startsWith(lastArg)). + forEach(result::add); + } + return new ArrayList<>(result); + } + if (command.getArgs().length == 2) + { + final Set<String> result = new TreeSet<>(); + result.add("high"); //$NON-NLS-1$ + result.add("low"); //$NON-NLS-1$ + return result.stream() + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + @Override + public LocalizedMessageInterface getShortDescription(CommandInterface command) + { + return Messages.ShortDescription; + } + + @Override + public LocalizedMessageInterface getDescription(CommandInterface command) + { + return Messages.Description; + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.mg2_admin_zone_tp") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Short description of /mg2 admin zone tp + */ + @LocalizedMessage(defaultMessage = "Teleport to a zone") + @MessageComment({"Short description of /mg2 admin zone tp"}) + ShortDescription, + + /** + * Long description of /mg2 admin zone tp + */ + @LocalizedMessage(defaultMessage = "Teleport to a zone") + @MessageComment({"Long description of /mg2 admin zone tp"}) + Description, + + /** + * Usage of /mg2 admin zone tp + */ + @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone tp <arena> <name> [high|low]") + @MessageComment({"Usage of /mg2 admin zone tp"}) + Usage, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java index 69e562fc..28e780a3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java @@ -117,7 +117,10 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java index b41b9c06..056c62df 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java @@ -79,7 +79,10 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java index 1f9653db..7b891d06 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java @@ -78,7 +78,10 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java index 38380556..f12ff14a 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java @@ -24,6 +24,8 @@ package de.minigameslib.mgapi.impl.cmd; +import java.util.Optional; + import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -38,15 +40,21 @@ import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.objects.ComponentInterface; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; import de.minigameslib.mclib.shared.api.com.UniqueEnumerationValue; -import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.ExtensionInterface; import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** @@ -111,6 +119,107 @@ public static ArenaInterface getArenaFromPlayer(CommandInterface command, Locali return getArena(command, command.fetchString(Messages.ArenaNameMissing, usage)); } + /** + * Maps argument to sign interface + * @param arena + * @param command + * @param usage + * @return sign instance + * @throws McException thrown if sign was not found + */ + public static SignInterface getSign(ArenaInterface arena, CommandInterface command, LocalizedMessageInterface usage) throws McException + { + final String name = command.fetchString(Messages.ComponentNameMissing, usage); + @SuppressWarnings("cast") + final Optional<ArenaSignHandler> handler = arena.getSigns().stream(). + map(s -> (ArenaSignHandler) arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + return handler.get().getSign(); + } + throw new McException(Messages.ComponentNotFound, usage); + } + + /** + * Maps argument to zone interface + * @param arena + * @param command + * @param usage + * @return sign instance + * @throws McException thrown if zone was not found + */ + public static ZoneInterface getZone(ArenaInterface arena, CommandInterface command, LocalizedMessageInterface usage) throws McException + { + final String name = command.fetchString(Messages.ComponentNameMissing, usage); + @SuppressWarnings("cast") + final Optional<ArenaZoneHandler> handler = arena.getZones().stream(). + map(s -> (ArenaZoneHandler) arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + return handler.get().getZone(); + } + throw new McException(Messages.ComponentNotFound, usage); + } + + /** + * Maps argument to component interface + * @param arena + * @param command + * @param usage + * @return sign instance + * @throws McException thrown if zone was not found + */ + public static ComponentInterface getComponent(ArenaInterface arena, CommandInterface command, LocalizedMessageInterface usage) throws McException + { + final String name = command.fetchString(Messages.ComponentNameMissing, usage); + @SuppressWarnings("cast") + final Optional<ArenaComponentHandler> handler = arena.getComponents().stream(). + map(s -> (ArenaComponentHandler) arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + return handler.get().getComponent(); + } + throw new McException(Messages.ComponentNotFound, usage); + } + + /** + * Maps argument to arena interface + * @param command + * @param usage + * @return arena instance + * @throws McException thrown if arena was not found + */ + public static ArenaInterface getArena(CommandInterface command, LocalizedMessageInterface usage) throws McException + { + return getArena(command, command.fetchString(Messages.ArenaNameMissing, usage)); + } + + /** + * Maps argument to arena interface + * @param command + * @param usage + * @return arena instance + */ + public static ArenaInterface getArenaOptional(CommandInterface command, LocalizedMessageInterface usage) + { + if (command.getArgs().length == 0) return null; + try + { + return getArenaOptional(command, command.fetchString(Messages.ArenaNameMissing, usage)); + } + catch (@SuppressWarnings("unused") McException e) + { + // silently ignore (will not happen) + return null; + } + } + /** * Maps argument to arena interface * @param command diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java index bbb821a4..2a510706 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java @@ -73,7 +73,10 @@ public List<String> onTabComplete(CommandInterface command, String lastArg) thro { if (command.getArgs().length == 0) { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaInterface::getInternalName).collect(Collectors.toList()); + return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() + .map(ArenaInterface::getInternalName) + .filter(a -> a.toLowerCase().startsWith(lastArg)) + .collect(Collectors.toList()); } return Collections.emptyList(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java index 4d8bdaeb..08f8cb1c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java @@ -24,6 +24,7 @@ package de.minigameslib.mgapi.impl.cmd.tool; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -40,11 +41,17 @@ import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.objects.ComponentTypeId; +import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.objects.ZoneTypeId; import de.minigameslib.mclib.api.util.function.McConsumer; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.impl.MglibPerms; import de.minigameslib.mgapi.impl.arena.ArenaImpl; @@ -56,6 +63,143 @@ public class AdminToolHelper { + /** + * Registers the tooling to select a block for component creation. + * @param player + * @param arena + * @param name + * @param type + * @param finish the finish action + */ + public static void onCreateComponent(McPlayerInterface player, ArenaInterface arena, String name, ComponentTypeId type, McConsumer<ArenaComponentHandler> finish) + { + final ItemServiceInterface itemService = ItemServiceInterface.instance(); + itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateComponent_Title) + .onLeftClick((p, evt) -> onCreateComponent(evt, p, arena, name, type, finish)) + .onRightClick((p, evt) -> onCreateComponent(evt, p, arena, name, type, finish)) + .description(Messages.CreateComponent_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) + .build(); + player.sendMessage(Messages.CreateComponent_ClickBlock); + } + + /** + * Registers the tooling to select the block for component creation. + * @param evt + * @param player + * @param arena + * @param name + * @param type + * @param finish the finish action + * @throws McException + */ + private static void onCreateComponent(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, ComponentTypeId type, McConsumer<ArenaComponentHandler> finish) throws McException + { + // security checks + if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminComp))) + { + throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin comp create"); //$NON-NLS-1$ + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + final Location loc = evt.getBukkitEvent().getClickedBlock().getLocation(); + final ArenaComponentHandler result = arena.createComponent(loc, type); + result.setName(name); + player.sendMessage(Messages.CreateComponent_Created); + if (finish != null) + { + finish.accept(result); + } + } + + /** + * Registers the tooling to select a block for zone creation. + * @param player + * @param arena + * @param name + * @param type + * @param finish the finish action + */ + public static void onCreateZone(McPlayerInterface player, ArenaInterface arena, String name, ZoneTypeId type, McConsumer<ArenaZoneHandler> finish) + { + final ItemServiceInterface itemService = ItemServiceInterface.instance(); + itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) + .onLeftClick((p, evt) -> onCreateZone1(evt, p, arena, name, type, finish)) + .onRightClick((p, evt) -> onCreateZone1(evt, p, arena, name, type, finish)) + .description(Messages.CreateZone_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) + .build(); + player.sendMessage(Messages.CreateZone_ClickBlockLower); + } + + /** + * Registers the tooling to select the lower block for zone creation. + * @param evt + * @param player + * @param arena + * @param name + * @param type + * @param finish the finish action + * @throws McException + */ + private static void onCreateZone1(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, ZoneTypeId type, McConsumer<ArenaZoneHandler> finish) throws McException + { + // security checks + if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) + { + throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + final Location lower = evt.getBukkitEvent().getClickedBlock().getLocation(); + final ItemServiceInterface itemService = ItemServiceInterface.instance(); + itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) + .onLeftClick((p, evt2) -> onCreateZone2(evt2, p, arena, name, type, lower, finish)) + .onRightClick((p, evt2) -> onCreateZone2(evt2, p, arena, name, type, lower, finish)) + .description(Messages.CreateZone_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) + .singleUse() + .build(); + player.sendMessage(Messages.CreateZone_ClickBlockHigher); + } + + /** + * Registers the tooling to select the higher block for zone creation. + * @param evt + * @param player + * @param arena + * @param name + * @param type + * @param lower + * @param finish the finish action + * @throws McException + */ + private static void onCreateZone2(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, ZoneTypeId type, Location lower, McConsumer<ArenaZoneHandler> finish) throws McException + { + // security checks + if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) + { + throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ + } + if (!arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + final Location higher = evt.getBukkitEvent().getClickedBlock().getLocation(); + + final ArenaZoneHandler result = arena.createZone(new Cuboid(lower, higher), type); + result.setName(name); + player.sendMessage(Messages.CreateZone_Created); + if (finish != null) + { + finish.accept(result); + } + } + /** * Registers the tooling to select a block for sign creation. * @param player @@ -73,6 +217,7 @@ public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, .description(Messages.CreateSign_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) .singleUse() .build(); + player.sendMessage(Messages.CreateSign_ClickBlock); } /** @@ -87,7 +232,6 @@ public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, */ private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) throws McException { - // TODO set sign name // security checks if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminSign))) { @@ -172,6 +316,7 @@ private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface pl final Sign sign = (Sign) target.getState(); final ArenaSignHandler result = arena.createSign(sign, type); result.setName(name); + player.sendMessage(Messages.CreateSign_Created); if (finish != null) { finish.accept(result); @@ -187,6 +332,8 @@ private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface pl public enum Messages implements LocalizedMessageInterface { + // signs + /** * Title for create sign */ @@ -221,6 +368,101 @@ public enum Messages implements LocalizedMessageInterface @LocalizedMessage(defaultMessage = "Cannot replace solid blocks with signs") @MessageComment({"Cannot create solid blocks with signs"}) CreateSign_CannotCreateBlocked, + + /** + * Message to advice the user to click the block + */ + @LocalizedMessage(defaultMessage = "Use the Pinion tool and click a block to create the sign") + @MessageComment({"Message to advice the user to click the block"}) + CreateSign_ClickBlock, + + /** + * Sign was created + */ + @LocalizedMessage(defaultMessage = "Sign created", severity = MessageSeverityType.Success) + @MessageComment({"Sign was created"}) + CreateSign_Created, + + // zones + + /** + * Title for create zone + */ + @LocalizedMessage(defaultMessage = "Creating zone") + @MessageComment({"Create zone title"}) + CreateZone_Title, + + /** + * Description for create zone + */ + @LocalizedMessageList({ + "Zone type: " + LocalizedMessage.CODE_COLOR + "%1$s", + "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s", + "Name: " + LocalizedMessage.CODE_COLOR + "%3$s"}) + @MessageComment(value = "Create zone description", args = { + @Argument("zone type name"), + @Argument("arena internal name"), + @Argument("new zone name") + }) + CreateZone_Description, + + /** + * Message to advice the user to click the block + */ + @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the lower bound of your zone") + @MessageComment({"Message to advice the user to click the block"}) + CreateZone_ClickBlockLower, + + /** + * Message to advice the user to click the block + */ + @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the higher bound of your zone") + @MessageComment({"Message to advice the user to click the block"}) + CreateZone_ClickBlockHigher, + + /** + * Zone was created + */ + @LocalizedMessage(defaultMessage = "Zone created", severity = MessageSeverityType.Success) + @MessageComment({"Zone was created"}) + CreateZone_Created, + + // components + + /** + * Title for create component + */ + @LocalizedMessage(defaultMessage = "Creating component") + @MessageComment({"Create component title"}) + CreateComponent_Title, + + /** + * Description for create component + */ + @LocalizedMessageList({ + "Component type: " + LocalizedMessage.CODE_COLOR + "%1$s", + "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s", + "Name: " + LocalizedMessage.CODE_COLOR + "%3$s"}) + @MessageComment(value = "Create component description", args = { + @Argument("component type name"), + @Argument("arena internal name"), + @Argument("new component name") + }) + CreateComponent_Description, + + /** + * Message to advice the user to click the block + */ + @LocalizedMessage(defaultMessage = "Use the Pinion tool and click a block to create the component") + @MessageComment({"Message to advice the user to click the block"}) + CreateComponent_ClickBlock, + + /** + * Component was created + */ + @LocalizedMessage(defaultMessage = "Component created", severity = MessageSeverityType.Success) + @MessageComment({"Component was created"}) + CreateComponent_Created, } } From ac2fa5e47350591f82c6009febe8ca76422d575d Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 13 Mar 2017 14:55:33 +0100 Subject: [PATCH 212/266] v2 --- .../mgapi/api/arena/ArenaInterface.java | 18 ++ .../mgapi/api/events/ArenaPlayerDieEvent.java | 137 ++++++++ .../api/events/ArenaPlayerDiesEvent.java | 169 ++++++++++ .../mgapi/api/rules/AbstractArenaRule.java | 149 +++++++++ .../api/rules/AbstractComponentRule.java | 154 +++++++++ .../mgapi/api/rules/AbstractSignRule.java | 154 +++++++++ .../mgapi/api/rules/AbstractZoneRule.java | 154 +++++++++ .../mgapi/api/rules/BasicArenaRuleSets.java | 10 +- .../api/rules/BasicMatchRuleInterface.java | 69 +++++ .../rules/BasicMatchTimerRuleInterface.java | 119 +++++++ .../mgapi/api/rules/BasicPvpModeConfig.java | 5 +- .../mgapi/api/rules/BasicSpawnsConfig.java | 8 +- .../api/rules/BasicSpawnsRuleInterface.java | 50 +++ .../mgapi/api/rules/BasicZoneRuleSets.java | 6 +- .../mgapi/api/rules/PvPModeRuleInterface.java | 50 +++ .../mgapi/api/rules/RuleSetType.java | 24 +- .../mgapi/impl/MinigamesPlugin.java | 76 ++++- .../mgapi/impl/arena/ArenaImpl.java | 129 +++++++- .../mgapi/impl/arena/ArenaMatchImpl.java | 9 + .../mgapi/impl/obj/BattleZone.java | 82 ++++- .../mgapi/impl/obj/EmptyComponent.java | 82 ++++- .../mgapi/impl/obj/EmptySign.java | 82 ++++- .../mgapi/impl/obj/EmptyZone.java | 82 ++++- .../mgapi/impl/obj/GenericComponent.java | 82 ++++- .../mgapi/impl/obj/GenericSign.java | 82 ++++- .../mgapi/impl/obj/GenericZone.java | 82 ++++- .../minigameslib/mgapi/impl/obj/JoinSign.java | 82 ++++- .../mgapi/impl/obj/JoinSpawnComponent.java | 82 ++++- .../minigameslib/mgapi/impl/obj/JoinZone.java | 82 ++++- .../mgapi/impl/obj/LeaveSign.java | 82 ++++- .../mgapi/impl/obj/LeaveZone.java | 82 ++++- .../mgapi/impl/obj/LobbyZone.java | 82 ++++- .../impl/obj/MainLobbySpawnComponent.java | 82 ++++- .../minigameslib/mgapi/impl/obj/MainZone.java | 82 ++++- .../mgapi/impl/obj/SpawnComponent.java | 82 ++++- .../impl/obj/SpectatorSpawnComponent.java | 82 ++++- .../mgapi/impl/obj/SpectatorZone.java | 82 ++++- .../mgapi/impl/rules/BasicMatch.java | 146 ++++++--- .../mgapi/impl/rules/BasicMatchTime.java | 78 ----- .../mgapi/impl/rules/BasicMatchTimer.java | 292 ++++++++++++++++++ .../mgapi/impl/rules/BasicSpawns.java | 157 +++++++++- .../mgapi/impl/rules/DieOnLeave.java | 29 +- .../mgapi/impl/rules/LastManStanding.java | 45 ++- .../mgapi/impl/rules/LoseOnDeath.java | 45 ++- .../mgapi/impl/rules/LoseOnLeave.java | 29 +- .../mgapi/impl/rules/NoMobsTargets.java | 24 +- .../mgapi/impl/rules/NoWorldMobs.java | 23 +- .../mgapi/impl/rules/NoWorldPets.java | 23 +- .../mgapi/impl/rules/PlayerNoEntry.java | 24 +- .../mgapi/impl/rules/PvPMode.java | 18 +- v2/src/doc/minigames.docx | Bin 0 -> 52377 bytes v2/src/doc/minigames.pdf | Bin 0 -> 724037 bytes 52 files changed, 3523 insertions(+), 376 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java create mode 100644 v2/src/doc/minigames.docx create mode 100644 v2/src/doc/minigames.pdf diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index ade3ff6c..0bc8061f 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -227,6 +227,18 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy */ void start() throws McException; + /** + * Finish a match regularly + * @throws McException thrown if arena is not in match state + */ + void finish() throws McException; + + /** + * Abort a match + * @throws McException thrown if arena is not in match state + */ + void abort() throws McException; + /** * Sets test mode for a maintained arena; ensures that arena gets to maintenance mode one the match was finished. * @throws McException thrown if arena is not in maintenance state. @@ -434,6 +446,12 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy * thrown if the zone could not be created */ <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId type) throws McException; + + /** + * Checks if arena can be modified. + * @throws McException thrown if arena is in invalid state for modifications + */ + void checkModifications() throws McException; // TODO Entity support // /** diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java new file mode 100644 index 00000000..12a4a391 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java @@ -0,0 +1,137 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired before an arena player dies caused by dmg. + * Allows rules to perform a valid action. + * + * @author mepeisen + * + * @see ArenaPlayerInterface#die() + * @see ArenaPlayerInterface#die(ArenaPlayerInterface) + */ +public class ArenaPlayerDieEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerDieEvent, ArenaPlayerDieEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** + * @param arena + * @param player + */ + public ArenaPlayerDieEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerDieEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerDieEvent> when(McPredicate<ArenaPlayerDieEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java new file mode 100644 index 00000000..8ff88e94 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java @@ -0,0 +1,169 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; + +/** + * Event fired before an arena player dies caused by dmg. + * Allows rules to perform a valid action. + * + * @author mepeisen + */ +public class ArenaPlayerDiesEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerDiesEvent, ArenaPlayerDiesEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** the arena player. */ + private final ArenaPlayerInterface player; + + /** the pre-selected team */ + private PlayerAction action = PlayerAction.Die; + + /** + * @param arena + * @param player + */ + public ArenaPlayerDiesEvent(ArenaInterface arena, ArenaPlayerInterface player) + { + this.arena = arena; + this.player = player; + } + + /** + * Action to be performed on player die + * @author mepeisen + */ + public enum PlayerAction + { + /** the player autuomatically wins. */ + Win, + /** the player automatically loses. */ + Lose, + /** the ArenaPlayerDieEvent is played; delegates action to other rules fetching this event */ + Die, + /** The player is respawning without playing the ArenaPlayerDieEvent */ + SilentRespawn, + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * @return the arena player + */ + public ArenaPlayerInterface getArenaPlayer() + { + return this.player; + } + + /** + * @return the action + */ + public PlayerAction getAction() + { + return this.action; + } + + /** + * @param action the action to set + */ + public void setAction(PlayerAction action) + { + this.action = action; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaPlayerDiesEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McPlayerInterface getPlayer() + { + return this.player.getMcPlayer(); + } + + @Override + public McOutgoingStubbing<ArenaPlayerDiesEvent> when(McPredicate<ArenaPlayerDiesEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java new file mode 100644 index 00000000..e0f6c349 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java @@ -0,0 +1,149 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Abstract base class for rule sets + * + * @author mepeisen + */ +public abstract class AbstractArenaRule implements ArenaRuleSetInterface +{ + + /** + * the underlying arena. + */ + protected final ArenaInterface arena; + + /** + * rule set type. + */ + protected final ArenaRuleSetType type; + + /** + * @param type + * @param arena + * @throws McException + * thrown if config is invalid + */ + public AbstractArenaRule(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + this.type = type; + this.arena = arena; + } + + @Override + public ArenaRuleSetType getType() + { + return this.type; + } + + @Override + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); + return runnable.get(); + }); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java new file mode 100644 index 00000000..5e8ee03e --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java @@ -0,0 +1,154 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; + +/** + * Abstract base class for rule sets + * + * @author mepeisen + */ +public abstract class AbstractComponentRule implements ComponentRuleSetInterface +{ + + /** + * the underlying arena. + */ + protected final ArenaInterface arena; + + /** + * rule set type. + */ + protected final ComponentRuleSetType type; + + /** + * The underlying component. + */ + protected final ArenaComponentHandler component; + + /** + * @param type + * @param component + * @throws McException + * thrown if config is invalid + */ + public AbstractComponentRule(ComponentRuleSetType type, ArenaComponentHandler component) throws McException + { + this.type = type; + this.arena = component.getArena(); + this.component = component; + } + + @Override + public ComponentRuleSetType getType() + { + return this.type; + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); + McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); + McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); + McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); + McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); + return runnable.get(); + }); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java new file mode 100644 index 00000000..6f785eb9 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java @@ -0,0 +1,154 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; + +/** + * Abstract base class for rule sets + * + * @author mepeisen + */ +public abstract class AbstractSignRule implements SignRuleSetInterface +{ + + /** + * the underlying arena. + */ + protected final ArenaInterface arena; + + /** + * rule set type. + */ + protected final SignRuleSetType type; + + /** + * the underlying sign. + */ + protected final ArenaSignHandler sign; + + /** + * @param type + * @param sign + * @throws McException + * thrown if config is invalid + */ + public AbstractSignRule(SignRuleSetType type, ArenaSignHandler sign) throws McException + { + this.type = type; + this.arena = sign.getArena(); + this.sign = sign; + } + + @Override + public SignRuleSetType getType() + { + return this.type; + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); + McLibInterface.instance().setContext(SignRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); + McLibInterface.instance().setContext(SignRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); + McLibInterface.instance().setContext(SignRuleSetInterface.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); + McLibInterface.instance().setContext(SignRuleSetInterface.class, this); + return runnable.get(); + }); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java new file mode 100644 index 00000000..e37b98e6 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java @@ -0,0 +1,154 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; + +/** + * Abstract base class for rule sets + * + * @author mepeisen + */ +public abstract class AbstractZoneRule implements ZoneRuleSetInterface +{ + + /** + * the underlying arena. + */ + protected final ArenaInterface arena; + + /** + * rule set type. + */ + protected final ZoneRuleSetType type; + + /** + * The underlying zone. + */ + protected final ArenaZoneHandler zone; + + /** + * @param type + * @param zone + * @throws McException + * thrown if config is invalid + */ + public AbstractZoneRule(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException + { + this.type = type; + this.arena = zone.getArena(); + this.zone = zone; + } + + @Override + public ZoneRuleSetType getType() + { + return this.type; + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); + McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + protected void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); + McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); + McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); + McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); + return runnable.get(); + }); + } + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java index 9ba05dc0..681a3c14 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java @@ -24,18 +24,11 @@ package de.minigameslib.mgapi.api.rules; -import de.minigameslib.mclib.api.enums.ChildEnum; - /** * Basic arena rule sets * * @author mepeisen */ -@ChildEnum({ - BasicMatchConfig.class, - BasicSpawnsConfig.class, - BasicMatchTimerConfig.class -}) public enum BasicArenaRuleSets implements ArenaRuleSetType { @@ -43,18 +36,21 @@ public enum BasicArenaRuleSets implements ArenaRuleSetType * A basic match rule containing: * - min player handling * - max player handling + * @see BasicMatchRuleInterface */ @RuleSetConfigurable(config = BasicMatchConfig.class) BasicMatch, /** * Spawn modes + * @see BasicSpawnsRuleInterface */ @RuleSetConfigurable(config = BasicSpawnsConfig.class) BasicSpawns, /** * Maximum timer for matches + * @see BasicMatchTimerRuleInterface */ @RuleSetConfigurable(config = BasicMatchTimerConfig.class) BasicMatchTimer, diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java new file mode 100644 index 00000000..4635d682 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java @@ -0,0 +1,69 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; + +/** + * @author mepeisen + * + */ +public interface BasicMatchRuleInterface extends ArenaRuleSetInterface +{ + + /** + * Returns the minimum players when the match countdown starts + * @return the minPlayers + */ + int getMinPlayers(); + + /** + * Returns the maximum players allowed in a match + * @return the maxPlayers + */ + int getMaxPlayers(); + + /** + * Returns the lobby countdown in seconds + * @return the lobbyCountdown + */ + int getLobbyCountdown(); + + /** + * Sets the min and max players + * @param minPlayers + * @param maxPlayers + * @throws McException thrown if the config is invalid or if arena is not in maintenance mode + */ + void setPlayers(int minPlayers, int maxPlayers) throws McException; + + /** + * Sets the lobby countdown + * @param seconds + * @throws McException thrown if the config is invalid or if arena is not in maintenance mode + */ + void setLobbyCountdown(int seconds) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java new file mode 100644 index 00000000..6b2039d2 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java @@ -0,0 +1,119 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; + +/** + * @author mepeisen + * + */ +public interface BasicMatchTimerRuleInterface extends ArenaRuleSetInterface +{ + + /** + * Returns the max seconds before the game will be ended + * @return the max seconds; 0 or negative value means: time is inactive + */ + int getMaxSeconds(); + + /** + * Sets the max seconds value the game will end + * @param seconds + * @throws McException thrown if the config is invalid or if arena is not in maintenance mode + */ + void setMaxSeconds(int seconds) throws McException; + + // following methods are callable DURING running matches to influence the timer, for example from other threads + + /** + * Pauses the current match; causing the timer to halt + */ + void pause(); + + /** + * Resumes the current match; causing the timer to restart after {@link #pause()} was called + */ + void resume(); + + /** + * Resets the timer; starting the timer from zero + */ + void resetAndResume(); + + /** + * Resets the timer; pausing the timer at zero + */ + void resetAndPause(); + + /** + * Returns the current match time in millis + * @return match time; respects any call to the methods on this interface + */ + long getDurationMillis(); + + /** + * Returns the maximum time in millis + * @return maximum time; respects any call to the methods on this interface + */ + long getMaxMillis(); + + /** + * Adds milliseconds to maximum time + * @param millis + */ + void addMaxMillis(long millis); + + /** + * Substracts milliseconds from maximum time; if duration gets below max millis the game ends + * @param millis + */ + void substractMaxMillis(long millis); + + /** + * Sets the maximum time milliseconds + * @param millis new millis; zero or below zero to stop timer; if set to positive value and previous value was set to zero or below zero the timer starts + */ + void setMaxMillis(long millis); + + /** + * Adds milliseconds to played time + * @param millis + */ + void addDurationMillis(long millis); + + /** + * Substracts milliseconds from played time; if duration gets below max millis the game ends + * @param millis + */ + void substractDurationMillis(long millis); + + /** + * Sets the played time milliseconds + * @param millis new millis + */ + void setDurationMillis(long millis); + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java index eb0f4a78..9c89801d 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java @@ -25,7 +25,7 @@ package de.minigameslib.mgapi.api.rules; import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationEnum; import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.config.ConfigurationValues; @@ -40,11 +40,10 @@ public enum BasicPvpModeConfig implements ConfigurationValueInterface { - // TODO enumeration value /** * The pvp option */ - @ConfigurationString(defaultValue = "NoPvp") + @ConfigurationEnum @ConfigComment({"The pvp option"}) PvpOption; diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java index b1f06001..d023adc8 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java @@ -25,9 +25,10 @@ package de.minigameslib.mgapi.api.rules; import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationString; +import de.minigameslib.mclib.api.config.ConfigurationEnum; import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.config.ConfigurationValues; +import de.minigameslib.mclib.shared.api.com.EnumerationValue; /** * Basic spawns configurations @@ -40,18 +41,17 @@ public enum BasicSpawnsConfig implements ConfigurationValueInterface { - // TODO enumeration value /** * The spawn option */ - @ConfigurationString(defaultValue = "RandomAtStart") + @ConfigurationEnum() @ConfigComment({"The spawn option"}) SpawnOption; /** * Enumeration for type of spawns */ - public enum SpawnType + public enum SpawnType implements EnumerationValue { /** * fully fixed spawns, first players gets first spawn etc. diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java new file mode 100644 index 00000000..84a26993 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java @@ -0,0 +1,50 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.rules.BasicSpawnsConfig.SpawnType; + +/** + * @author mepeisen + * + */ +public interface BasicSpawnsRuleInterface extends ArenaRuleSetInterface +{ + + /** + * Returns the spawn rule + * @return the spawn rule + */ + SpawnType getSpawnType(); + + /** + * Sets the spawn type + * @param type + * @throws McException thrown if the config is invalid or if arena is not in maintenance mode + */ + void setSpawnType(SpawnType type) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java index 4a8f0342..90b6d180 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java @@ -24,16 +24,11 @@ package de.minigameslib.mgapi.api.rules; -import de.minigameslib.mclib.api.enums.ChildEnum; - /** * Basic zone rule sets * * @author mepeisen */ -@ChildEnum({ - BasicPvpModeConfig.class -}) public enum BasicZoneRuleSets implements ZoneRuleSetType { @@ -69,6 +64,7 @@ public enum BasicZoneRuleSets implements ZoneRuleSetType /** * Pvp-Rules + * @see PvPModeRuleInterface */ @RuleSetConfigurable(config = BasicPvpModeConfig.class) PvPMode, diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java new file mode 100644 index 00000000..7d538a27 --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java @@ -0,0 +1,50 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.rules; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig.PvpModes; + +/** + * @author mepeisen + * + */ +public interface PvPModeRuleInterface +{ + + /** + * Returns the pvp mode. + * @return pvp mode. + */ + PvpModes getPvpMode(); + + /** + * Sets the pvp mode + * @param mode + * @throws McException + */ + void setPvpMode(PvpModes mode) throws McException; + +} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java index 08d83bfc..ff59860e 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api.rules; import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; +import de.minigameslib.mclib.shared.api.com.EnumerationValue; /** * Base interface for rule sets @@ -34,6 +35,27 @@ public interface RuleSetType extends McUniqueEnumInterface { - // marker only + /** + * Returns the configuration class used for rule set configuration. + * @return confuiguration class or {@code null} if this types has no configuration. + */ + @SuppressWarnings("unchecked") + default <T extends Enum<?> & EnumerationValue> Class<T> getConfigClass() + { + RuleSetConfigurable result; + try + { + result = this.getClass().getDeclaredField(this.name()).getAnnotation(RuleSetConfigurable.class); + if (result != null) + { + return (Class<T>) result.config(); + } + } + catch (@SuppressWarnings("unused") NoSuchFieldException | SecurityException e) + { + // silently ignore + } + return null; + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 4de4a54e..819a8079 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -50,6 +50,8 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.cmd.CommandImpl; +import de.minigameslib.mclib.api.config.ConfigServiceInterface; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.enums.EnumServiceInterface; import de.minigameslib.mclib.api.objects.ComponentTypeId; import de.minigameslib.mclib.api.objects.McPlayerInterface; @@ -70,6 +72,9 @@ import de.minigameslib.mgapi.api.events.ArenaCreatedEvent; import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; +import de.minigameslib.mgapi.api.events.ArenaLoseEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; +import de.minigameslib.mgapi.api.events.ArenaPlayerDiesEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; @@ -77,6 +82,7 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; +import de.minigameslib.mgapi.api.events.ArenaWinEvent; import de.minigameslib.mgapi.api.events.MatchStartedEvent; import de.minigameslib.mgapi.api.events.MatchStoppedEvent; import de.minigameslib.mgapi.api.match.CommonMatchStatistics; @@ -129,7 +135,7 @@ import de.minigameslib.mgapi.impl.obj.SpectatorSpawnComponent; import de.minigameslib.mgapi.impl.obj.SpectatorZone; import de.minigameslib.mgapi.impl.rules.BasicMatch; -import de.minigameslib.mgapi.impl.rules.BasicMatchTime; +import de.minigameslib.mgapi.impl.rules.BasicMatchTimer; import de.minigameslib.mgapi.impl.rules.BasicSpawns; import de.minigameslib.mgapi.impl.rules.DieOnLeave; import de.minigameslib.mgapi.impl.rules.LastManStanding; @@ -287,10 +293,14 @@ public void onEnable() McLibInterface.instance().registerEvent(this, ArenaStateChangedEvent.class); McLibInterface.instance().registerEvent(this, MatchStartedEvent.class); McLibInterface.instance().registerEvent(this, MatchStoppedEvent.class); + McLibInterface.instance().registerEvent(this, ArenaWinEvent.class); + McLibInterface.instance().registerEvent(this, ArenaLoseEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerDieEvent.class); + McLibInterface.instance().registerEvent(this, ArenaPlayerDiesEvent.class); this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); this.registerRuleset(this, BasicArenaRuleSets.BasicSpawns, BasicSpawns::new); - this.registerRuleset(this, BasicArenaRuleSets.BasicMatchTimer, BasicMatchTime::new); + this.registerRuleset(this, BasicArenaRuleSets.BasicMatchTimer, BasicMatchTimer::new); this.registerRuleset(this, BasicWinningRuleSets.LastManStanding, LastManStanding::new); this.registerRuleset(this, BasicLosingRuleSets.LoseOnDeath, LoseOnDeath::new); this.registerRuleset(this, BasicZoneRuleSets.DieOnLeave, DieOnLeave::new); @@ -702,13 +712,6 @@ public ArenaPlayerInterface getPlayer(UUID uuid) return this.getPlayer(ObjectServiceInterface.instance().getPlayer(uuid)); } - @Override - public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) - { - this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); - this.arenaRuleSetTypes.put(ruleset, creator); - } - @Override public McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator(ArenaRuleSetType type) { @@ -751,11 +754,50 @@ public McSupplier<? extends ArenaSignHandler> creator(SignTypeId type) return this.signs.get(type); } + @Override + public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) + { + this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); + this.arenaRuleSetTypes.put(ruleset, creator); + final String pluginName = ruleset.getPluginName(); + final String ruleSetName = ruleset.name(); + this.registerConfigEnum(plugin, ruleset, () -> { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + // final ArenaRuleSetInterface ruleSet = McLibInterface.instance().getContext(ArenaRuleSetInterface.class); + final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/arenarule-" + pluginName + "-" + ruleSetName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return folder; + }); + } + + /** + * registers config from rule set + * @param plugin + * @param ruleset + * @param supplier + */ + private <T extends Enum<?> & ConfigurationValueInterface> void registerConfigEnum(Plugin plugin, RuleSetType ruleset, McSupplier<File> supplier) + { + final Class<T> configEnum = ruleset.getConfigClass(); + if (configEnum != null) + { + EnumServiceInterface.instance().registerEnumClass(plugin, configEnum); + ConfigServiceInterface.instance().registerFileProvider(plugin, configEnum, supplier); + } + } + @Override public void registerRuleset(Plugin plugin, ComponentRuleSetType ruleset, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator) { this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); this.componentRuleSetTypes.put(ruleset, creator); + final String pluginName = ruleset.getPluginName(); + final String ruleSetName = ruleset.name(); + this.registerConfigEnum(plugin, ruleset, () -> { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + final ArenaComponentHandler component = McLibInterface.instance().getContext(ArenaComponentHandler.class); + final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/componentrule-" + pluginName + "-" + ruleSetName + "/" + component.getComponent().getComponentId().toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + return folder; + }); } @Override @@ -763,6 +805,14 @@ public void registerRuleset(Plugin plugin, SignRuleSetType ruleset, McBiFunction { this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); this.signRuleSetTypes.put(ruleset, creator); + final String pluginName = ruleset.getPluginName(); + final String ruleSetName = ruleset.name(); + this.registerConfigEnum(plugin, ruleset, () -> { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + final ArenaSignHandler sign = McLibInterface.instance().getContext(ArenaSignHandler.class); + final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/signrule-" + pluginName + "-" + ruleSetName + "/" + sign.getSign().getSignId().toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + return folder; + }); } @Override @@ -770,6 +820,14 @@ public void registerRuleset(Plugin plugin, ZoneRuleSetType ruleset, McBiFunction { this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); this.zoneRuleSetTypes.put(ruleset, creator); + final String pluginName = ruleset.getPluginName(); + final String ruleSetName = ruleset.name(); + this.registerConfigEnum(plugin, ruleset, () -> { + final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); + final ArenaZoneHandler zone = McLibInterface.instance().getContext(ArenaZoneHandler.class); + final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/componentrule-" + pluginName + "-" + ruleSetName + "/" + zone.getZone().getZoneId().toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + return folder; + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 05820924..eae06e7e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -71,6 +71,8 @@ import de.minigameslib.mclib.api.objects.ZoneIdInterface; import de.minigameslib.mclib.api.objects.ZoneInterface; import de.minigameslib.mclib.api.objects.ZoneTypeId; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mclib.shared.api.com.MemoryDataSection; import de.minigameslib.mgapi.api.MinigameInterface; @@ -169,7 +171,9 @@ protected void removeListeners(ArenaRuleSetInterface listeners) @Override protected ArenaRuleSetInterface create(ArenaRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, ArenaImpl.this); + return ArenaImpl.this.calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, ArenaImpl.this); + }); } }; @@ -217,6 +221,15 @@ public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McE this.saveData(); } + @Override + public void checkModifications() throws McException + { + if (this.getState() != ArenaState.Maintenance) + { + throw new McException(Messages.ModificationWrongState); + } + } + /** * Resume the arena and load arena data file. * @throws McException thrown if data file is invalid. @@ -781,6 +794,34 @@ public void start() throws McException // TODO Start pre match phase, teleport to spawns etc. } + @Override + public void finish() throws McException + { + if (!this.isMatch()) + { + throw new McException(Messages.FinishWrongState); + } + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); + this.state = ArenaState.Restarting; + this.match.finish(); + Bukkit.getPluginManager().callEvent(changedEvent); + // TODO Teleport players back to main lobby + } + + @Override + public void abort() throws McException + { + if (!this.isMatch()) + { + throw new McException(Messages.AbortWrongState); + } + final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); + this.state = ArenaState.Restarting; + this.match.abort(); + Bukkit.getPluginManager().callEvent(changedEvent); + // TODO Teleport players back to main lobby + } + @Override public void setTestState() throws McException { @@ -1315,6 +1356,76 @@ public Collection<TeamIdType> getTeams() { return this.arenaData.getTeams().stream().map(TeamData::getId).collect(Collectors.toList()); } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this); + return runnable.get(); + }); + } @Override public ArenaTeamInterface getTeam(TeamIdType team) @@ -1447,9 +1558,23 @@ public enum Messages implements LocalizedMessageInterface * Cannot start match because arena is not in join mode */ @LocalizedMessage(defaultMessage = "Cannot start match because arena ist not in join mode.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot start test match because arena is not in join mode"}) + @MessageComment({"Cannot start match because arena is not in join mode"}) StartWrongState, + /** + * Cannot abort match because arena is not in match mode + */ + @LocalizedMessage(defaultMessage = "Cannot abort match because arena ist not running a match.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot abort match because arena is not running a match"}) + AbortWrongState, + + /** + * Cannot finish match because arena is not in match mode + */ + @LocalizedMessage(defaultMessage = "Cannot start match because arena ist not running a match.", severity = MessageSeverityType.Error) + @MessageComment({"Cannot finish match because arena is not in match mode"}) + FinishWrongState, + /** * Cannot start test match because arena has errors */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index 21b4b6e2..88f1c7f3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -52,6 +52,7 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftTeamEvent; +import de.minigameslib.mgapi.api.events.ArenaWinEvent; import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.match.MatchPlayerInterface; import de.minigameslib.mgapi.api.match.MatchStatisticId; @@ -849,6 +850,8 @@ public void setLoser(UUID... players) throws McException { this.results.get(i).setPlace(i + 1); } + final ArenaLoseEvent event = new ArenaLoseEvent(this.getArena(), result); + Bukkit.getPluginManager().callEvent(event); } } @@ -881,6 +884,8 @@ public void setWinner(UUID... players) throws McException this.results.get(i).setPlace(i + 1); } this.firstLoser++; + final ArenaWinEvent event = new ArenaWinEvent(this.getArena(), result); + Bukkit.getPluginManager().callEvent(event); } } @@ -923,6 +928,8 @@ public void setLoser(TeamIdType... teams) throws McException { this.results.get(i).setPlace(i + 1); } + final ArenaLoseEvent event = new ArenaLoseEvent(this.getArena(), result); + Bukkit.getPluginManager().callEvent(event); } } } @@ -967,6 +974,8 @@ public void setWinner(TeamIdType... teams) throws McException this.results.get(i).setPlace(i + 1); } this.firstLoser++; + final ArenaWinEvent event = new ArenaWinEvent(this.getArena(), result); + Bukkit.getPluginManager().callEvent(event); } } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java index 83daee99..3c8166b0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.BattleZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java index 70c68cab..ad437415 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java @@ -29,9 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.EmptyComponentHandler; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -153,7 +157,83 @@ protected void removeListeners(ComponentRuleSetInterface listeners) @Override protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java index 4eb9f566..be27e044 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java @@ -29,14 +29,18 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.EmptySignHandler; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -232,7 +236,83 @@ protected void removeListeners(SignRuleSetInterface listeners) @Override protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java index fa4793a7..c7439630 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.EmptyZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java index b461e199..ba164055 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java @@ -29,9 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.GenericComponentHandler; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -153,7 +157,83 @@ protected void removeListeners(ComponentRuleSetInterface listeners) @Override protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java index 086c438d..a5b314e8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java @@ -29,14 +29,18 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.GenericSignHandler; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -232,7 +236,83 @@ protected void removeListeners(SignRuleSetInterface listeners) @Override protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java index 0b31341d..921fd97c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.GenericZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java index cf746868..7d8ec2cf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java @@ -29,10 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.event.McListener; import de.minigameslib.mclib.api.event.McPlayerInteractEvent; import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; @@ -40,6 +43,7 @@ import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.JoinSignInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -256,7 +260,83 @@ protected void removeListeners(SignRuleSetInterface listeners) @Override protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java index 07b329f0..4fde6459 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java @@ -29,9 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.JoinSpawnComponentHandler; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -153,7 +157,83 @@ protected void removeListeners(ComponentRuleSetInterface listeners) @Override protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java index 7105a76f..cce219a1 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.JoinZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java index 12b74d98..b5e53610 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java @@ -29,14 +29,18 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.api.obj.LeaveSignInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.api.rules.SignRuleSetType; @@ -232,7 +236,83 @@ protected void removeListeners(SignRuleSetInterface listeners) @Override protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java index c7f01bd7..df4eb9bf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.LeaveZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java index e9e0fa6e..4fce76ff 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.LobbyZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java index 966d0198..35a7dac0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java @@ -29,9 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.MainLobbySpawnComponentHandler; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -153,7 +157,83 @@ protected void removeListeners(ComponentRuleSetInterface listeners) @Override protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java index bdb0faae..5d3f01c9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.MainZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java index 11d48b90..bf3de2b5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java @@ -29,9 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.SpawnComponentHandler; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -154,7 +158,83 @@ protected void removeListeners(ComponentRuleSetInterface listeners) @Override protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java index 5a4772eb..e28f6452 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java @@ -29,9 +29,13 @@ import org.bukkit.Location; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; import de.minigameslib.mgapi.api.obj.SpectatorSpawnComponentHandler; import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; @@ -154,7 +158,83 @@ protected void removeListeners(ComponentRuleSetInterface listeners) @Override protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java index 071bc6a7..63266572 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java @@ -27,10 +27,14 @@ import java.io.File; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.objects.Cuboid; import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mclib.api.util.function.McSupplier; import de.minigameslib.mclib.shared.api.com.DataSection; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.obj.SpectatorZoneHandler; import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; @@ -152,7 +156,83 @@ protected void removeListeners(ZoneRuleSetInterface listeners) @Override protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + return calculateInCopiedContext(() -> { + return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInNewContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @throws McException + * rethrown from runnable. + */ + void runInCopiedContext(McRunnable runnable) throws McException + { + McLibInterface.instance().runInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + runnable.run(); + }); + } + + /** + * Runs the code in new context; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInNewContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInNewContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); + } + + /** + * Runs the code but copies all context variables before; changes made inside the runnable will be undone. + * + * @param runnable + * the runnable to execute. + * @return result from runnable + * @throws McException + * rethrown from runnable. + * @param <T> + * Type of return value + */ + <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException + { + return McLibInterface.instance().calculateInCopiedContext(() -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this); + return runnable.get(); + }); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index ba9241fa..409c61e1 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -38,13 +38,16 @@ import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; +import de.minigameslib.mgapi.api.rules.AbstractArenaRule; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; import de.minigameslib.mgapi.api.rules.BasicMatchConfig; +import de.minigameslib.mgapi.api.rules.BasicMatchRuleInterface; import de.minigameslib.mgapi.impl.MinigamesPlugin; /** @@ -54,38 +57,28 @@ * * @author mepeisen */ -public class BasicMatch implements ArenaRuleSetInterface +public class BasicMatch extends AbstractArenaRule implements BasicMatchRuleInterface { - /** - * the underlying arena. - */ - private final ArenaInterface arena; - - /** - * rule set type. - */ - private final ArenaRuleSetType type; - /** * Min players */ - private final int minPlayers; + private int minPlayers; /** * Max players */ - private final int maxPlayers; + private int maxPlayers; /** * Lobby countdown in seconds */ - private final int lobbyCountdown; + private int lobbyCountdown; /** * The countdown timer */ - private int countdownTimer; + private int countdownTimer; /** * The countdown task @@ -95,20 +88,22 @@ public class BasicMatch implements ArenaRuleSetInterface /** * @param type * @param arena - * @throws McException thrown if config is invalid + * @throws McException + * thrown if config is invalid */ public BasicMatch(ArenaRuleSetType type, ArenaInterface arena) throws McException { - this.type = type; - this.arena = arena; - this.minPlayers = BasicMatchConfig.MinPlayers.getInt(); - this.maxPlayers = BasicMatchConfig.MaxPlayers.getInt(); - this.lobbyCountdown = BasicMatchConfig.LobbyCountdown.getInt(); + super(type, arena); + this.runInCopiedContext(() -> { + this.minPlayers = BasicMatchConfig.MinPlayers.getInt(); + this.maxPlayers = BasicMatchConfig.MaxPlayers.getInt(); + this.lobbyCountdown = BasicMatchConfig.LobbyCountdown.getInt(); + }); if (this.minPlayers <= 0) { throw new McException(Messages.InvalidConfigMinPlayers, this.minPlayers); } - if (this.maxPlayers > 100) + if (this.maxPlayers > 100) // TODO Query from global config (maybe someone likes more than 100 players) { throw new McException(Messages.InvalidConfigMaxPlayers, this.maxPlayers); } @@ -120,26 +115,41 @@ public BasicMatch(ArenaRuleSetType type, ArenaInterface arena) throws McExceptio { throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); } - if (this.lobbyCountdown > 60) + if (this.lobbyCountdown > 60) // TODO Query from global config (maybe someone likes more than 60 seconds) { throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); } } - + @Override public ArenaRuleSetType getType() { return this.type; } - + @Override public ArenaInterface getArena() { return this.arena; } + /** + * Arena state change + * @param evt + */ + @McEventHandler + public void onArenaState(ArenaStateChangedEvent evt) + { + if (evt.getNewState() != ArenaState.Join && this.countdownTask != null) + { + this.countdownTask.cancel(); + this.countdownTask = null; + } + } + /** * Invoked once a player tries to join. + * * @param evt */ @McEventHandler @@ -154,6 +164,7 @@ public void onPlayerJoin(ArenaPlayerJoinEvent evt) /** * Invoked once a player successfully joined the arena + * * @param evt */ @McEventHandler @@ -164,7 +175,7 @@ public void onPlayerJoined(ArenaPlayerJoinedEvent evt) { // start lobby countdown this.countdownTimer = this.lobbyCountdown - 1; - McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onCountdown); + this.countdownTask = McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onCountdown); // notify all players this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); @@ -174,6 +185,7 @@ public void onPlayerJoined(ArenaPlayerJoinedEvent evt) /** * Invoked once a player left. + * * @param evt */ @McEventHandler @@ -193,12 +205,15 @@ public void onPlayerLeft(ArenaPlayerLeftEvent evt) /** * On lobby countdown + * * @param task */ private void onCountdown(BukkitTask task) { if (this.countdownTimer <= 0) { + this.countdownTask.cancel(); + this.countdownTask = null; try { this.arena.start(); @@ -208,8 +223,6 @@ private void onCountdown(BukkitTask task) // should never happen because the countdown gets cancelled before all players are left. this.arena.getLogger().log(Level.WARNING, "Problems starting arena match", e); //$NON-NLS-1$ } - this.countdownTask.cancel(); - this.countdownTask = null; } if (this.countdownTimer <= 10 || this.countdownTimer % 10 == 0) @@ -221,6 +234,65 @@ private void onCountdown(BukkitTask task) this.countdownTimer--; } + @Override + public int getMinPlayers() + { + return this.minPlayers; + } + + @Override + public int getMaxPlayers() + { + return this.maxPlayers; + } + + @Override + public int getLobbyCountdown() + { + return this.lobbyCountdown; + } + + @Override + public void setPlayers(int minPlayers, int maxPlayers) throws McException + { + this.arena.checkModifications(); + if (minPlayers <= 0) + { + throw new McException(Messages.InvalidConfigMinPlayers, this.minPlayers); + } + if (maxPlayers > 100) // TODO Query from global config (maybe someone likes more than 100 players) + { + throw new McException(Messages.InvalidConfigMaxPlayers, this.maxPlayers); + } + if (minPlayers > maxPlayers) + { + throw new McException(Messages.InvalidConfigMinMaxPlayers, this.minPlayers, this.maxPlayers); + } + this.runInCopiedContext(() -> { + BasicMatchConfig.MinPlayers.setInt(minPlayers); + BasicMatchConfig.MaxPlayers.setInt(maxPlayers); + }); + this.arena.reconfigure(this.type); + } + + @Override + public void setLobbyCountdown(int lobbyCountdown) throws McException + { + this.arena.checkModifications(); + if (lobbyCountdown <= 1) + { + throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); + } + if (lobbyCountdown > 60) // TODO Query from global config (maybe someone likes more than 60 seconds) + { + throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); + } + this.runInCopiedContext(() -> { + BasicMatchConfig.LobbyCountdown.setInt(lobbyCountdown); + }); + this.arena.reconfigure(this.type); + } + /** * The common messages. * @@ -234,56 +306,56 @@ public enum Messages implements LocalizedMessageInterface * Max player count reached */ @LocalizedMessage(defaultMessage = "You cannot join because there are already %1$d players in arena.", severity = MessageSeverityType.Error) - @MessageComment(value = {"Max player count reached"}, args = {@Argument(type = "Numeric", value = "configured max players.")}) + @MessageComment(value = { "Max player count reached" }, args = { @Argument(type = "Numeric", value = "configured max players.") }) MaxPlayersReached, /** * Countdown started */ @LocalizedMessage(defaultMessage = "Countdown started. Match will start in " + LocalizedMessage.CODE_COLOR + "%1$d " + LocalizedMessage.INFORMATION_COLOR + "seconds.", severity = MessageSeverityType.Information) - @MessageComment(value = {"Lobby countdown started"}, args = {@Argument(type = "Numeric", value = "countdown seconds")}) + @MessageComment(value = { "Lobby countdown started" }, args = { @Argument(type = "Numeric", value = "countdown seconds") }) CountdownStarted, /** * Countdown tick */ @LocalizedMessage(defaultMessage = "Match will start in " + LocalizedMessage.CODE_COLOR + "%1$d " + LocalizedMessage.INFORMATION_COLOR + "seconds.", severity = MessageSeverityType.Information) - @MessageComment(value = {"countdown tick"}, args = {@Argument(type = "Numeric", value = "countdown seconds")}) + @MessageComment(value = { "countdown tick" }, args = { @Argument(type = "Numeric", value = "countdown seconds") }) CountdownTick, /** * Countdown aborted */ @LocalizedMessage(defaultMessage = "Countdown aborted because too many players left the arena.", severity = MessageSeverityType.Error) - @MessageComment(value = {"countdown aborted"}) + @MessageComment(value = { "countdown aborted" }) CountdownAborted, /** * Invalid config value (min players) */ @LocalizedMessage(defaultMessage = "Invalid config value (min players): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) - @MessageComment(value = {"Invalid config value (min players)"}, args = {@Argument(type = "Numeric", value = "min players config value")}) + @MessageComment(value = { "Invalid config value (min players)" }, args = { @Argument(type = "Numeric", value = "min players config value") }) InvalidConfigMinPlayers, /** * Invalid config value (min players > max players) */ @LocalizedMessage(defaultMessage = "Invalid config value (min players > max players): " + LocalizedMessage.CODE_COLOR + "%1$d > %2$d", severity = MessageSeverityType.Information) - @MessageComment(value = {"Invalid config value (min players > max players)"}, args = {@Argument(type = "Numeric", value = "min players config value"), @Argument(type = "Numeric", value = "max players config value")}) + @MessageComment(value = { "Invalid config value (min players > max players)" }, args = { @Argument(type = "Numeric", value = "min players config value"), @Argument(type = "Numeric", value = "max players config value") }) InvalidConfigMinMaxPlayers, /** * Invalid config value (max players) */ @LocalizedMessage(defaultMessage = "Invalid config value (max players): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) - @MessageComment(value = {"Invalid config value (max players)"}, args = {@Argument(type = "Numeric", value = "max players config value")}) + @MessageComment(value = { "Invalid config value (max players)" }, args = { @Argument(type = "Numeric", value = "max players config value") }) InvalidConfigMaxPlayers, /** * Invalid config value (lobby countdown) */ @LocalizedMessage(defaultMessage = "Invalid config value (lobby countdown): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) - @MessageComment(value = {"Invalid config value (lobby countdown)"}, args = {@Argument(type = "Numeric", value = "lobby countdown config value")}) + @MessageComment(value = { "Invalid config value (lobby countdown)" }, args = { @Argument(type = "Numeric", value = "lobby countdown config value") }) InvalidConfigLobbyCountdown } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java deleted file mode 100644 index e1f6e437..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTime.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; - -/** - * The implementation of BasicMatchTime rule set - * - * @see BasicArenaRuleSets#BasicMatchTimer - * - * @author mepeisen - */ -public class BasicMatchTime implements ArenaRuleSetInterface -{ - - /** - * the underlying arena. - */ - private final ArenaInterface arena; - - /** - * rule set type. - */ - private final ArenaRuleSetType type; - - /** - * @param type - * @param arena - * @throws McException thrown if config is invalid - */ - public BasicMatchTime(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - this.type = type; - this.arena = arena; - } - - @Override - public ArenaRuleSetType getType() - { - return this.type; - } - - @Override - public ArenaInterface getArena() - { - return this.arena; - } - - // TODO implement BasicMatchTimeRule - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java new file mode 100644 index 00000000..48651500 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java @@ -0,0 +1,292 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.rules; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; + +import org.bukkit.scheduler.BukkitTask; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; +import de.minigameslib.mgapi.api.rules.AbstractArenaRule; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; +import de.minigameslib.mgapi.api.rules.BasicMatchTimerConfig; +import de.minigameslib.mgapi.api.rules.BasicMatchTimerRuleInterface; +import de.minigameslib.mgapi.impl.MinigamesPlugin; + +/** + * The implementation of BasicMatchTime rule set + * + * @see BasicArenaRuleSets#BasicMatchTimer + * + * @author mepeisen + */ +public class BasicMatchTimer extends AbstractArenaRule implements BasicMatchTimerRuleInterface +{ + + /** + * maximum seconds + */ + private int seconds; + + /** + * the current match duration in millis + */ + private long matchDuration; + + /** + * the current match maxmimum time + */ + private long matchTime; + + /** + * Flag for paused or running timers; {@code true} if timer is paused + */ + private boolean paused; + + /** + * Last start of timer + */ + private LocalDateTime lastStart = LocalDateTime.now(); + + /** + * The timer task + */ + private BukkitTask timerTask; + + /** + * @param type + * @param arena + * @throws McException thrown if config is invalid + */ + public BasicMatchTimer(ArenaRuleSetType type, ArenaInterface arena) throws McException + { + super(type, arena); + this.runInCopiedContext(() -> { + this.seconds = BasicMatchTimerConfig.MaxSeconds.getInt(); + this.matchTime = this.seconds * 1000L; + }); + } + + @Override + public int getMaxSeconds() + { + return this.seconds; + } + + @Override + public void setMaxSeconds(int seconds) throws McException + { + this.arena.checkModifications(); + this.runInCopiedContext(() -> { + BasicMatchTimerConfig.MaxSeconds.setInt(this.seconds); + }); + this.arena.reconfigure(this.type); + } + + @Override + public void pause() + { + if (!this.paused) + { + this.paused = true; + this.matchDuration += this.lastStart.until(LocalDateTime.now(), ChronoUnit.MILLIS); + } + } + + @Override + public void resume() + { + if (this.paused) + { + this.paused = false; + this.lastStart = LocalDateTime.now(); + } + } + + @Override + public void resetAndResume() + { + this.paused = false; + this.lastStart = LocalDateTime.now(); + this.matchDuration = 0; + } + + @Override + public void resetAndPause() + { + this.paused = true; + this.matchDuration = 0; + } + + @Override + public long getDurationMillis() + { + if (this.paused) + { + return this.matchDuration; + } + return this.matchDuration + this.lastStart.until(LocalDateTime.now(), ChronoUnit.MILLIS); + } + + @Override + public long getMaxMillis() + { + return this.matchTime; + } + + @Override + public void addMaxMillis(long millis) + { + this.matchTime += millis; + if (this.matchTime > 0 && this.timerTask == null) + { + this.startTimer(); + } + } + + @Override + public void substractMaxMillis(long millis) + { + this.matchTime -= millis; + if (this.matchTime <= 0) + { + this.stopTimer(); + } + } + + @Override + public void setMaxMillis(long millis) + { + this.matchTime = millis; + if (this.matchTime <= 0) + { + this.stopTimer(); + } + } + + @Override + public void addDurationMillis(long millis) + { + this.matchDuration += millis; + } + + @Override + public void substractDurationMillis(long millis) + { + this.matchDuration -= millis; + } + + @Override + public void setDurationMillis(long millis) + { + this.matchDuration = millis; + } + + /** + * Arena state change + * @param evt + */ + @McEventHandler + public void onArenaState(ArenaStateChangedEvent evt) + { + if (evt.getNewState() == ArenaState.Match) + { + this.matchTime = this.seconds * 1000L; + this.matchDuration = 0; + this.lastStart = LocalDateTime.now(); + this.paused = false; + if (this.matchTime > 0) + { + this.startTimer(); + } + } + else + { + this.stopTimer(); + } + } + + /** + * Starts the bukkit timer task + */ + private void startTimer() + { + if (this.timerTask == null) + { + this.timerTask = McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onTimer); + } + } + + /** + * Stops the bukkit timer task + */ + private void stopTimer() + { + if (this.timerTask != null) + { + this.timerTask.cancel(); + this.timerTask = null; + } + } + + /** + * On timer tick + * + * @param task + */ + private void onTimer(BukkitTask task) + { + if (!this.paused) + { + long delta = this.getMaxMillis() - this.getDurationMillis(); + if (delta <= 0) + { + this.timerTask.cancel(); + this.timerTask = null; + try + { + this.arena.abort(); + } + catch (McException e) + { + // TODO logging + } + } + else + { + // TODO send messages to players about the pending game time + // TODO interval: before ending: 1 minute, 30 seconds, 20 seconds, 10 seconds, 5 seconds, 4 seconds, 3 seconds, 2 seconds, 1 second... Respect game time changes... + } + } + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java index f71521e6..6c68e73c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java @@ -24,11 +24,25 @@ package de.minigameslib.mgapi.impl.rules; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Random; +import java.util.UUID; + import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; +import de.minigameslib.mgapi.api.obj.BasicComponentTypes; +import de.minigameslib.mgapi.api.rules.AbstractArenaRule; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; +import de.minigameslib.mgapi.api.rules.BasicSpawnsConfig; +import de.minigameslib.mgapi.api.rules.BasicSpawnsConfig.SpawnType; +import de.minigameslib.mgapi.api.rules.BasicSpawnsRuleInterface; /** * The implementation of BasicSpawns rule set @@ -37,18 +51,19 @@ * * @author mepeisen */ -public class BasicSpawns implements ArenaRuleSetInterface +public class BasicSpawns extends AbstractArenaRule implements BasicSpawnsRuleInterface { - /** - * the underlying arena. - */ - private final ArenaInterface arena; + /** the spawn type. */ + private SpawnType spawnType; /** - * rule set type. + * the current spawns */ - private final ArenaRuleSetType type; + private List<ComponentIdInterface> currentSpawns = new ArrayList<>(); + + /** random number generator. */ + private final Random random = new Random(); /** * @param type @@ -57,22 +72,134 @@ public class BasicSpawns implements ArenaRuleSetInterface */ public BasicSpawns(ArenaRuleSetType type, ArenaInterface arena) throws McException { - this.type = type; - this.arena = arena; + super(type, arena); + this.runInCopiedContext(() -> { + this.spawnType = BasicSpawnsConfig.SpawnOption.getEnum(SpawnType.class); + if (this.spawnType == null) + { + this.spawnType = SpawnType.RandomAtStart; + } + }); } @Override - public ArenaRuleSetType getType() + public SpawnType getSpawnType() { - return this.type; + return this.spawnType; } @Override - public ArenaInterface getArena() + public void setSpawnType(SpawnType type) throws McException + { + this.arena.checkModifications(); + this.runInCopiedContext(() -> { + BasicSpawnsConfig.SpawnOption.setEnum(this.spawnType); + }); + this.arena.reconfigure(this.type); + } + + /** + * Arena state change + * @param evt + */ + @McEventHandler + public void onArenaState(ArenaStateChangedEvent evt) { - return this.arena; + if (evt.getNewState() == ArenaState.PreMatch) + { + this.shuffleSpawns(); + } } + + /** + * Shuffle spawns + */ + private void shuffleSpawns() + { + switch (this.spawnType) + { + case Fixed: + this.fillSpawns(); + this.setPlayerSpawns(); + break; + default: + case RandomAtStart: + this.fillShuffledSpawns(); + this.setPlayerSpawns(); + break; + case FullyRandom: + this.fillShuffledSpawns(); + this.setPlayerSpawnsAndReshuffle(); + break; + } + } + + /** + * Sets the players spawns using the current spawns list + */ + private void setPlayerSpawns() + { + int i = 0; + for (final UUID player : this.arena.getCurrentMatch().getPlayers()) + { + try + { + this.arena.getCurrentMatch().selectSpawn(player, this.currentSpawns.get(i)); + } + catch (McException e) + { + // TODO Logging + } + i++; + if (i >= this.currentSpawns.size()) + { + i = 0; + } + } + } + + /** + * Sets the players spawns using the current spawns list, reshuffle if spawns are exceeded + */ + private void setPlayerSpawnsAndReshuffle() + { + for (final UUID player : this.arena.getCurrentMatch().getPlayers()) + { + try + { + this.arena.getCurrentMatch().selectSpawn(player, this.currentSpawns.remove(0)); + } + catch (McException e) + { + // TODO Logging + } + if (this.currentSpawns.size() == 0) + { + this.setPlayerSpawnsAndReshuffle(); + } + } + } + + /** + * Fills the spawns in order + */ + private void fillSpawns() + { + this.currentSpawns.clear(); + this.currentSpawns.addAll(this.arena.getComponents(BasicComponentTypes.Spawn)); + } + + /** + * Fills the spawns in order + */ + private void fillShuffledSpawns() + { + this.fillSpawns(); + Collections.shuffle(this.currentSpawns, this.random); + } + + // TODO watch for player die event and re-select a spawn - // TODO implement BasicSpawnsRule + // TODO implement spawns for Team mode } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java index fb5ceb96..d92fd851 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java @@ -28,28 +28,17 @@ import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.mcevent.PlayerLeftZoneEvent; import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class DieOnLeave implements ZoneRuleSetInterface +public class DieOnLeave extends AbstractZoneRule { - /** - * the underlying zone. - */ - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * @param type * @param zone @@ -57,14 +46,7 @@ public class DieOnLeave implements ZoneRuleSetInterface */ public DieOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; + super(type, zone); } /** @@ -74,10 +56,9 @@ public ZoneRuleSetType getType() @McEventHandler public void onLeave(PlayerLeftZoneEvent evt) { - final ArenaInterface arena = this.zone.getArena(); - if (arena.isMatch()) + if (this.arena.isMatch()) { - if (arena.isPlaying(evt.getPlayer())) + if (this.arena.isPlaying(evt.getPlayer())) { MinigamesLibInterface.instance().getPlayer(evt.getPlayer()).die(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java index 7432c3ac..2f33684b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java @@ -25,8 +25,11 @@ package de.minigameslib.mgapi.impl.rules; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.events.ArenaLoseEvent; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; +import de.minigameslib.mgapi.api.rules.AbstractArenaRule; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicWinningRuleSets; @@ -37,19 +40,9 @@ * * @author mepeisen */ -public class LastManStanding implements ArenaRuleSetInterface +public class LastManStanding extends AbstractArenaRule { - /** - * the underlying arena. - */ - private final ArenaInterface arena; - - /** - * rule set type. - */ - private final ArenaRuleSetType type; - /** * @param type * @param arena @@ -57,22 +50,22 @@ public class LastManStanding implements ArenaRuleSetInterface */ public LastManStanding(ArenaRuleSetType type, ArenaInterface arena) throws McException { - this.type = type; - this.arena = arena; - } - - @Override - public ArenaRuleSetType getType() - { - return this.type; + super(type, arena); } - - @Override - public ArenaInterface getArena() + + /** + * On player lose. + * @param evt + * @throws McException + */ + @McEventHandler + public void onLose(ArenaLoseEvent evt) throws McException { - return this.arena; + final ArenaMatchInterface match = evt.getArena().getCurrentMatch(); + if (match.getPlayerCount() == 1) + { + match.setWinner(match.getPlayers().iterator().next()); + } } - // TODO implement last man standing rule - } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java index 19da6be9..545d8e4d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java @@ -25,8 +25,12 @@ package de.minigameslib.mgapi.impl.rules; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; +import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; +import de.minigameslib.mgapi.api.rules.AbstractArenaRule; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.rules.BasicLosingRuleSets; @@ -37,19 +41,9 @@ * * @author mepeisen */ -public class LoseOnDeath implements ArenaRuleSetInterface +public class LoseOnDeath extends AbstractArenaRule { - /** - * the underlying arena. - */ - private final ArenaInterface arena; - - /** - * rule set type. - */ - private final ArenaRuleSetType type; - /** * @param type * @param arena @@ -57,22 +51,21 @@ public class LoseOnDeath implements ArenaRuleSetInterface */ public LoseOnDeath(ArenaRuleSetType type, ArenaInterface arena) throws McException { - this.type = type; - this.arena = arena; - } - - @Override - public ArenaRuleSetType getType() - { - return this.type; + super(type, arena); } - - @Override - public ArenaInterface getArena() + + /** + * On player die. + * @param evt + */ + @McEventHandler + public void onPlayerDie(ArenaPlayerDieEvent evt) { - return this.arena; + final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(evt.getPlayer()); + if (player.isPlaying()) + { + player.lose(); + } } - // TODO implement lose on death rule - } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java index fef388bd..6ba8b42d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java @@ -28,28 +28,17 @@ import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mclib.api.mcevent.PlayerLeftZoneEvent; import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class LoseOnLeave implements ZoneRuleSetInterface +public class LoseOnLeave extends AbstractZoneRule { - /** - * the underlying zone. - */ - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * @param type * @param zone @@ -57,14 +46,7 @@ public class LoseOnLeave implements ZoneRuleSetInterface */ public LoseOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; + super(type, zone); } /** @@ -74,10 +56,9 @@ public ZoneRuleSetType getType() @McEventHandler public void onLeave(PlayerLeftZoneEvent evt) { - final ArenaInterface arena = this.zone.getArena(); - if (arena.isMatch()) + if (this.arena.isMatch()) { - if (arena.isPlaying(evt.getPlayer())) + if (this.arena.isPlaying(evt.getPlayer())) { MinigamesLibInterface.instance().getPlayer(evt.getPlayer()).lose(); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java index 08d8477f..d611fcc8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java @@ -30,27 +30,16 @@ import de.minigameslib.mclib.api.event.McEntityTargetEvent; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class NoMobsTargets implements ZoneRuleSetInterface +public class NoMobsTargets extends AbstractZoneRule { - /** - * the underlying zone. - */ - @SuppressWarnings("unused") - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * @param type * @param zone @@ -58,14 +47,7 @@ public class NoMobsTargets implements ZoneRuleSetInterface */ public NoMobsTargets(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; + super(type, zone); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java index 9e4065ee..294e07ec 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java @@ -34,26 +34,16 @@ import de.minigameslib.mclib.api.event.McEntityTeleportEvent; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class NoWorldMobs implements ZoneRuleSetInterface +public class NoWorldMobs extends AbstractZoneRule { - /** - * the underlying zone. - */ - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * @param type * @param zone @@ -61,14 +51,7 @@ public class NoWorldMobs implements ZoneRuleSetInterface */ public NoWorldMobs(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; + super(type, zone); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java index f5e099df..eca1fd19 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java @@ -33,26 +33,16 @@ import de.minigameslib.mclib.api.event.McEntityTeleportEvent; import de.minigameslib.mclib.api.event.McEventHandler; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class NoWorldPets implements ZoneRuleSetInterface +public class NoWorldPets extends AbstractZoneRule { - /** - * the underlying zone. - */ - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * @param type * @param zone @@ -60,14 +50,7 @@ public class NoWorldPets implements ZoneRuleSetInterface */ public NoWorldPets(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; + super(type, zone); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java index 94208a80..cf88d1a5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java @@ -26,27 +26,16 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class PlayerNoEntry implements ZoneRuleSetInterface +public class PlayerNoEntry extends AbstractZoneRule { - /** - * the underlying zone. - */ - @SuppressWarnings("unused") - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * @param type * @param zone @@ -54,14 +43,7 @@ public class PlayerNoEntry implements ZoneRuleSetInterface */ public PlayerNoEntry(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; + super(type, zone); } // TODO implement player no entry rule diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java index aad925da..75f6a3c9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -26,29 +26,18 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig; import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig.PvpModes; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class PvPMode implements ZoneRuleSetInterface +public class PvPMode extends AbstractZoneRule { - /** - * the underlying zone. - */ - @SuppressWarnings("unused") - private final ArenaZoneHandler zone; - - /** - * rule set type. - */ - private final ZoneRuleSetType type; - /** * the current pvp mode. */ @@ -61,8 +50,7 @@ public class PvPMode implements ZoneRuleSetInterface */ public PvPMode(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { - this.type = type; - this.zone = zone; + super(type, zone); this.mode = PvpModes.valueOf(BasicPvpModeConfig.PvpOption.getString()); if (this.mode == null) { diff --git a/v2/src/doc/minigames.docx b/v2/src/doc/minigames.docx new file mode 100644 index 0000000000000000000000000000000000000000..39b7539acc0111c185a667c1a3292f73e20f2e49 GIT binary patch literal 52377 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 literal 0 HcmV?d00001 diff --git a/v2/src/doc/minigames.pdf b/v2/src/doc/minigames.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9cfd76fed5688417ca634b6f56734cfeec93d44a GIT binary patch literal 724037 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 p1>%ZnTts7 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 S>W<#Z>P<dy)IXVzf&T}!<L3nc literal 0 HcmV?d00001 From 6bd9186a8571a752b79f522ed1cda182f988e3c1 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 27 Mar 2017 08:28:19 +0200 Subject: [PATCH 213/266] v2 - beginning gui --- .../mgapi/api/MinigamesLibInterface.java | 13 +- .../api/arena/ClassicSinglePlayerArena.java | 2 +- .../api/player/ArenaPlayerInterface.java | 12 +- .../mgapi/api/rules/BasicMatchConfig.java | 1 - .../mgapi/api/rules/BasicPvpModeConfig.java | 3 +- .../mgapi/impl/MinigamesPlugin.java | 17 +- .../mgapi/impl/arena/ArenaImpl.java | 19 +- .../mgapi/impl/arena/ArenaMatchImpl.java | 25 +- .../mgapi/impl/arena/ArenaPlayerImpl.java | 58 +- .../mgapi/impl/cmd/AdminCommand.java | 3 + .../mgapi/impl/cmd/AdminGuiCommand.java | 11 +- .../mgapi/impl/cmd/ArenaCommand.java | 2 +- .../mgapi/impl/cmd/gui/AbstractPage.java | 182 +++++ .../mgapi/impl/cmd/gui/ArenaCreate.java | 65 ++ .../mgapi/impl/cmd/gui/ArenaEdit.java | 678 ++++++++++++++++++ .../mgapi/impl/cmd/gui/ArenasPage.java | 172 +++++ .../impl/cmd/gui/LocalizedStringEditor.java | 240 +++++++ .../impl/cmd/gui/LocalizedStringList.java | 259 +++++++ .../minigameslib/mgapi/impl/cmd/gui/Main.java | 510 +++++++++++++ .../mgapi/impl/cmd/gui/MgAnvilGuis.java | 43 ++ .../mgapi/impl/cmd/gui/MgClickGuis.java | 50 ++ .../mgapi/impl/cmd/gui/QueryLocale.java | 106 +++ .../mgapi/impl/cmd/gui/QueryText.java | 110 +++ .../mgapi/impl/cmd/gui/YesNoQuestion.java | 162 +++++ .../mgapi/impl/internal/TaskManager.java | 5 +- .../mgapi/impl/internal/TaskManagerCache.java | 53 ++ .../impl/rules/AbstractRuleSetContainer.java | 3 +- .../mgapi/impl/rules/BasicMatchTimer.java | 7 +- .../mgapi/impl/rules/BasicSpawns.java | 9 +- .../mgapi/impl/rules/DieOnLeave.java | 3 +- .../mgapi/impl/rules/LoseOnDeath.java | 3 +- .../mgapi/impl/rules/LoseOnLeave.java | 3 +- .../mgapi/impl/rules/PvPMode.java | 69 +- .../mgapi/impl/test/ArenaImplTest.java | 4 +- v2/pom.xml | 2 +- 35 files changed, 2846 insertions(+), 58 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java index df602b07..8f8697d7 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.api; import java.util.Collection; +import java.util.List; import java.util.UUID; import org.bukkit.plugin.Plugin; @@ -431,7 +432,7 @@ static MinigamesLibInterface instance() * maximum amount of arenas to return * @return the arenas */ - Collection<ArenaInterface> getArenas(int index, int limit); + List<ArenaInterface> getArenas(int index, int limit); /** * Returns the arenas @@ -444,7 +445,7 @@ static MinigamesLibInterface instance() * maximum amount of arenas to return * @return the arenas */ - Collection<ArenaInterface> getArenas(String prefix, int index, int limit); + List<ArenaInterface> getArenas(String prefix, int index, int limit); /** * Returns the arenas @@ -457,7 +458,7 @@ static MinigamesLibInterface instance() * maximum amount of arenas to return * @return the arenas */ - Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit); + List<ArenaInterface> getArenas(Plugin plugin, int index, int limit); /** * Returns the arenas @@ -472,7 +473,7 @@ static MinigamesLibInterface instance() * maximum amount of arenas to return * @return the arenas */ - Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit); + List<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit); /** * Returns the arenas @@ -485,7 +486,7 @@ static MinigamesLibInterface instance() * maximum amount of arenas to return * @return the arenas */ - Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit); + List<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit); /** * Returns the arenas @@ -500,7 +501,7 @@ static MinigamesLibInterface instance() * maximum amount of arenas to return * @return the arenas */ - Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit); + List<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit); /** * Returns the arena for given name diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java index 491de2f9..a50c5141 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java @@ -94,7 +94,7 @@ public void configure(ArenaComponentHandler handler) throws McException @Override public void configure(ArenaZoneHandler handler) throws McException { - // TODO if (handler.getZone().getChildZones()) + // no configuration } @Override diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java index de65ae1f..646f44e5 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java @@ -104,30 +104,34 @@ default UUID getPlayerUUID() /** * Let the player die; does nothing if there is no game pending. * Adds a new kill to kill statistic and performs a kill. + * @throws McException thrown if no match is running. */ - void die(); + void die() throws McException; /** * Let the player die; does nothing if there is no game pending. * Adds a new kill to kill statistic and performs a kill while the killer gets a statistic bonus * for killing this player. * @param killer the opposite player causing the death + * @throws McException thrown if no match is running. */ - void die(ArenaPlayerInterface killer); + void die(ArenaPlayerInterface killer) throws McException; /** * Let the player lose the game; does nothing if there is no game pending. * May cause to end the game (depending on gaming rules). * Identical to invoke {@link ArenaMatchInterface#setLoser(UUID...)} with this players uuid. + * @throws McException thrown if no match is running. */ - void lose(); + void lose() throws McException; /** * Let the player win the game; does nothing if there is no game pending * May cause to end the game (depending on gaming rules). * Identical to invoke {@link ArenaMatchInterface#setWinner(UUID...)} with this players uuid. + * @throws McException thrown if no match is running. */ - void win(); + void win() throws McException; // stubbing diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java index d383a917..7140e959 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java @@ -36,7 +36,6 @@ * * @see BasicArenaRuleSets#BasicMatch */ -// TODO external provider to read from rule set config @ConfigurationValues(path = "core") public enum BasicMatchConfig implements ConfigurationValueInterface { diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java index 9c89801d..e613815d 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java @@ -28,6 +28,7 @@ import de.minigameslib.mclib.api.config.ConfigurationEnum; import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.config.ConfigurationValues; +import de.minigameslib.mclib.shared.api.com.EnumerationValue; /** * Basic pvp configurations @@ -50,7 +51,7 @@ public enum BasicPvpModeConfig implements ConfigurationValueInterface /** * Enumeration for type of pvp modes */ - public enum PvpModes + public enum PvpModes implements EnumerationValue { /** * No Pvp at all diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 819a8079..64732123 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -115,6 +115,8 @@ import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; import de.minigameslib.mgapi.impl.arena.ArenaPlayerPersistentData; import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.cmd.gui.MgAnvilGuis; +import de.minigameslib.mgapi.impl.cmd.gui.MgClickGuis; import de.minigameslib.mgapi.impl.internal.TaskManager; import de.minigameslib.mgapi.impl.obj.BattleZone; import de.minigameslib.mgapi.impl.obj.EmptyComponent; @@ -264,6 +266,9 @@ public void onEnable() EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); EnumServiceInterface.instance().registerEnumClass(this, MglibObjectTypes.class); + EnumServiceInterface.instance().registerEnumClass(this, MgClickGuis.class); + EnumServiceInterface.instance().registerEnumClass(this, MgAnvilGuis.class); + EnumServiceInterface.instance().registerEnumClass(this, BasicArenaRuleSets.class); EnumServiceInterface.instance().registerEnumClass(this, BasicWinningRuleSets.class); EnumServiceInterface.instance().registerEnumClass(this, BasicLosingRuleSets.class); @@ -611,38 +616,38 @@ public int getArenaCount(ArenaTypeInterface type, String prefix) } @Override - public Collection<ArenaInterface> getArenas(int index, int limit) + public List<ArenaInterface> getArenas(int index, int limit) { return this.arenasPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); } @Override - public Collection<ArenaInterface> getArenas(String prefix, int index, int limit) + public List<ArenaInterface> getArenas(String prefix, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); } @Override - public Collection<ArenaInterface> getArenas(Plugin plugin, int index, int limit) + public List<ArenaInterface> getArenas(Plugin plugin, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).skip(index).limit(limit).collect(Collectors.toList()); } @Override - public Collection<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) + public List<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit) .collect(Collectors.toList()); } @Override - public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit) + public List<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getType() == type).skip(index).limit(limit).collect(Collectors.toList()); } @Override - public Collection<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) + public List<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) { return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit) .collect(Collectors.toList()); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index eae06e7e..54bc0885 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -460,7 +460,6 @@ public void leave(ArenaPlayerInterface player) throws McException this.match.leave(player); - ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); // port to main lobby this.teleportRandom(player, this.getComponents(BasicComponentTypes.MainLobbySpawn)); @@ -531,7 +530,6 @@ public void join(ArenaPlayerInterface player) throws McException } this.match.join(player); - ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), false); player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName()); // port to main lobby this.teleportRandom(player, this.getComponents(BasicComponentTypes.JoinSpawn)); @@ -558,7 +556,7 @@ public void spectate(ArenaPlayerInterface player) throws McException case PostMatch: case PreMatch: this.match.spectate(player); - ((ArenaPlayerImpl)player).switchArenaOrMode(this.getInternalName(), true); + player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName()); this.teleportToSpectate(player); break; @@ -731,6 +729,17 @@ private void kick(UUID uuid, LocalizedMessageInterface kickReason) { final McPlayerInterface player = ObjectServiceInterface.instance().getPlayer(uuid); final ArenaPlayerImpl arenaPlayerImpl = (ArenaPlayerImpl)MinigamesLibInterface.instance().getPlayer(player); + if (this.match != null) + { + try + { + this.match.leave(arenaPlayerImpl); + } + catch (McException ex) + { + this.getLogger().log(Level.WARNING, "Problems kicking player", ex); //$NON-NLS-1$ + } + } arenaPlayerImpl.switchArenaOrMode(null, false); player.sendMessage(Messages.YouWereKicked, kickReason); this.teleportRandom(arenaPlayerImpl, this.getComponents(BasicComponentTypes.MainLobbySpawn)); @@ -1333,7 +1342,7 @@ public void addTeam(TeamIdType team, LocalizedConfigString name) throws McExcept } if (team.isSpecial()) { - // TODO disallow special teams + throw new McException(CommonMessages.InternalError, "Unable to add special teams"); //$NON-NLS-1$ } this.arenaData.getTeams().removeIf(t -> t.getId() == team); this.arenaData.getTeams().add(new TeamData(team, name)); @@ -1442,7 +1451,7 @@ public void setName(LocalizedConfigString name) throws McException } if (team.isSpecial()) { - // TODO disallow special teams + throw new McException(CommonMessages.InternalError, "Unable to rename special teams"); //$NON-NLS-1$ } data.get().setName(name); ArenaImpl.this.saveData(); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index 88f1c7f3..e9b193b5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -61,6 +61,7 @@ import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; import de.minigameslib.mgapi.impl.arena.ArenaData.TeamData; +import de.minigameslib.mgapi.impl.arena.ArenaImpl.Messages; /** * Arena Match implementation @@ -267,8 +268,14 @@ public TeamIdType getPreferredTeam() @Override public void spectate(ArenaPlayerInterface player) throws McException { - // TODO move some code from ArenaImpl to this method. (invocation of switchArenaOrMode and save) checkMatchNotFinished(); + + if (player.inArena() && player.getArena() != this.getArena()) + { + throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); + } + ((ArenaPlayerImpl)player).switchArenaOrMode(this.getArena().getInternalName(), false); + final MatchPlayer mplayer = this.players.computeIfAbsent(player.getPlayerUUID(), MatchPlayer::new); if (mplayer.getTeam() == null) @@ -310,8 +317,14 @@ public void spectate(ArenaPlayerInterface player) throws McException @Override public void leave(ArenaPlayerInterface player) throws McException { - // TODO move some code from ArenaImpl to this method. (invocation of switchArenaOrMode and save) checkMatchNotFinished(); + + if (player.getArena() != this.getArena()) + { + throw new McException(Messages.CannotLeaveNotInArena, this.getArena().getDisplayName()); + } + ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); + final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); if (mplayer != null) { @@ -366,8 +379,14 @@ else if (mplayer.getLeft() == null) @Override public void join(ArenaPlayerInterface player) throws McException { - // TODO move some code from ArenaImpl to this method. (invocation of switchArenaOrMode and save) checkMatchNotFinished(); + + if (player.inArena()) + { + throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); + } + ((ArenaPlayerImpl)player).switchArenaOrMode(this.getArena().getInternalName(), false); + TeamIdType preTeam = this.isTeamMatch() ? this.getPreferredTeam() : CommonTeams.Unknown; if (preTeam == null) preTeam = CommonTeams.Unknown; diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java index 8e1bbbd8..9ed75efa 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java @@ -24,6 +24,8 @@ package de.minigameslib.mgapi.impl.arena; +import org.bukkit.Bukkit; + import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.util.function.FalseStub; @@ -34,6 +36,8 @@ import de.minigameslib.mclib.shared.api.com.PersistentField; import de.minigameslib.mgapi.api.MinigamesLibInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; +import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; /** @@ -150,27 +154,65 @@ public boolean isPlaying() } @Override - public void die() + public void die() throws McException { - // TODO implement player die + this.die(null); } @Override - public void lose() + public void die(ArenaPlayerInterface killer) throws McException { - // TODO implement player lose + if (this.inArena()) + { + final ArenaMatchInterface match = this.getArena().getCurrentMatch(); + if (match != null) + { + if (killer != null) + { + match.trackDamageForKill(this.getPlayerUUID(), killer.getPlayerUUID()); + } + + final ArenaPlayerDieEvent event = new ArenaPlayerDieEvent(this.getArena(), this); + Bukkit.getPluginManager().callEvent(event); + + // TODO do respawn if player is still in match + return; + } + } + + throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, "?"); //$NON-NLS-1$ } @Override - public void win() + public void lose() throws McException { - // TODO implement player win + if (this.inArena()) + { + final ArenaMatchInterface match = this.getArena().getCurrentMatch(); + if (match != null) + { + match.setLoser(this.getPlayerUUID()); + return; + } + } + + throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, "?"); //$NON-NLS-1$ } @Override - public void die(ArenaPlayerInterface killer) + public void win() throws McException { - // TODO implement player die + if (this.inArena()) + { + final ArenaMatchInterface match = this.getArena().getCurrentMatch(); + if (match != null) + { + match.setWinner(this.getPlayerUUID()); + return; + } + } + + throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, "?"); //$NON-NLS-1$ } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java index f9f63192..326efe04 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java @@ -77,6 +77,9 @@ public AdminCommand() this.subCommands.put("comp", new AdminComponentCommand()); //$NON-NLS-1$ this.subCommands.put("gui", new AdminGuiCommand()); //$NON-NLS-1$ this.subCommands.put("sgui", new AdminSGuiCommand()); //$NON-NLS-1$ + // TODO missing command: change display name/ short desc/ desc/ manual + // TODO missing command: export/ import + // TODO missing command: marketplace } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java index 4f3a5222..be4b9482 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java @@ -30,11 +30,13 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.cmd.CommandInterface; import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; +import de.minigameslib.mclib.api.items.ResourceServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mgapi.impl.MglibPerms; +import de.minigameslib.mgapi.impl.cmd.gui.Main; /** * @author mepeisen @@ -54,7 +56,14 @@ public void handle(CommandInterface command) throws McException { command.permOpThrowException(MglibPerms.CommandAdminGui, command.getCommandPath()); - // TODO Support gui + if (ResourceServiceInterface.instance().hasResourcePack(command.getPlayer())) + { + command.getPlayer().openClickGui(new Main()); + } + else + { + ResourceServiceInterface.instance().forceDownload(command.getPlayer(), () -> { command.getPlayer().openClickGui(new Main()); }); + } } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java index 28e780a3..86cdde63 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java @@ -86,7 +86,7 @@ public void handle(CommandInterface command) throws McException * @param state * @return string message */ - private LocalizedMessageInterface toString(ArenaState state) + public static LocalizedMessageInterface toString(ArenaState state) { switch (state) { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java new file mode 100644 index 00000000..91fec6c6 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java @@ -0,0 +1,182 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.util.Collection; +import java.util.List; + +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.objects.McPlayerInterface; + +/** + * Abstract base class for pagable elements. + * + * @author mepeisen + * @param <T> element type + */ +public abstract class AbstractPage<T> implements ClickGuiPageInterface +{ + + /** number of items per page */ + private static final int ITEMS_PER_LINE = Main.COL_COUNT; + + /** number of items per page */ + private static final int ITEMS_PER_PAGE = ITEMS_PER_LINE * 4; + + /** numeric page num */ + private int pageNum = 1; + + /** + * Constructor to create the first page + */ + public AbstractPage() + { + // empty + } + + /** + * Constructor to create given page + * @param pageNum + */ + public AbstractPage(int pageNum) + { + this.pageNum = pageNum; + } + + /** + * Returns the number of elements + * @return count of elements + */ + protected abstract int count(); + + /** + * Returns total number of pages. + * @return total page number. + */ + protected int totalPages() + { + return (int) Math.ceil(this.count() / ITEMS_PER_PAGE); + } + + /** + * Returns current page + * @return current page. + */ + protected int page() + { + return this.pageNum; + } + + /** + * Returns the elements for this page + * @param start start index + * @param limit maximum limit + * @return list of elements to be displayed + */ + protected abstract List<T> getElements(int start, int limit); + + /** + * Maps elements to click gui item + * @param elm + * @return click gui item + */ + protected abstract ClickGuiItem map(T elm); + + @Override + public ClickGuiItem[][] getItems() + { + final List<T> list = this.getElements((this.pageNum - 1) * ITEMS_PER_PAGE, ITEMS_PER_PAGE); + return Main.withFillers(new ClickGuiItem[][]{ + firstLine(), + null, + // arenas + itemsLine(list, 0), + itemsLine(list, ITEMS_PER_LINE), + itemsLine(list, ITEMS_PER_LINE * 2), + itemsLine(list, ITEMS_PER_LINE * 3), + }); + } + + /** + * Returns the first line + * @return first line + */ + protected abstract ClickGuiItem[] firstLine(); + + /** + * @param items + * @param start + * @return line of icons + */ + private ClickGuiItem[] itemsLine(Collection<T> items, int start) + { + return items.stream().skip(start).limit(ITEMS_PER_LINE).map(this::map).toArray(ClickGuiItem[]::new); + } + + /** + * refresh gui + * @param player + * @param session + * @param gui + */ + protected void onRefresh(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this); + } + + /** + * prev page + * @param player + * @param session + * @param gui + */ + protected void onPrevPage(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + if (this.pageNum > 1) + { + this.pageNum--; + session.setNewPage(this); + } + } + + /** + * next page + * @param player + * @param session + * @param gui + */ + protected void onNextPage(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + if (this.pageNum < this.totalPages()) + { + this.pageNum++; + session.setNewPage(this); + } + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java new file mode 100644 index 00000000..f0440d5f --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java @@ -0,0 +1,65 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; + +/** + * Click gui for creating arenas. + * + * @author mepeisen + */ +public class ArenaCreate implements ClickGuiPageInterface +{ + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** + * @param prevPage + */ + public ArenaCreate(ClickGuiPageInterface prevPage) + { + this.prevPage = prevPage; + } + + @Override + public ClickGuiItem[][] getItems() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public Serializable getPageName() + { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java new file mode 100644 index 00000000..29adb9ba --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java @@ -0,0 +1,678 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.impl.cmd.ArenaCommand; + +/** + * Click gui for editing arenas. + * + * @author mepeisen + */ +public class ArenaEdit implements ClickGuiPageInterface +{ + + /** arena to be edited. */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** + * @param arena + * @param prevPage + */ + public ArenaEdit(ArenaInterface arena, ClickGuiPageInterface prevPage) + { + this.arena = arena; + this.prevPage = prevPage; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + Main.itemHome(), + Main.itemBack(this::onBack, Messages.IconBack), + null, + Main.itemRefresh(this::onRefresh), + null, + null, + null, + null, + Main.itemCloseGui() + }, + null, + { + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info, ""), Messages.IconInfo, this::onInfo), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconDisplayName, this::onDisplayName), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconShortDescription, this::onShortDescription), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconLongDescription, this::onLongDescription), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconManual, this::onManual), //$NON-NLS-1$ + }, + { + this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Question, ""), Messages.IconCheck, this::onCheck) : null, //$NON-NLS-1$ + this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Apply, ""), Messages.IconEnable, this::onEnable) : null, //$NON-NLS-1$ + !this.arena.isDisabled() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Flag, ""), Messages.IconDisable, this::onDisable) : null, //$NON-NLS-1$ + this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save, ""), Messages.IconExport, this::onExport) : null, //$NON-NLS-1$, + !this.arena.isDisabled() && !this.arena.isMaintenance() && !this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Play, ""), Messages.IconStart, this::onStart) : null, //$NON-NLS-1$ + this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Stop, ""), Messages.IconStop, this::onStop) : null, //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Redo, ""), Messages.IconHardReset, this::onHardReset), //$NON-NLS-1$ + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People, ""), Messages.IconPlayers, this::onPlayers), //$NON-NLS-1$ + }, + { + !this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Modify, ""), Messages.IconMaintenance, this::onMaintenance) : null, //$NON-NLS-1$ + null, + this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Erase, ""), Messages.IconDelete, this::onDelete) : null, //$NON-NLS-1$ + this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Retort, ""), Messages.IconTest, this::onTest) : null, //$NON-NLS-1$ + this.arena.getState() == ArenaState.Join ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Person, ""), Messages.IconInvite, this::onInvite) : null, //$NON-NLS-1$ + null, + this.arena.getTeams().size() > 0 ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_User_group, ""), Messages.IconTeams, this::onTeams) : null, //$NON-NLS-1$ + }, + { + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script, ""), Messages.IconRules, this::onRules), //$NON-NLS-1$ + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconComponents, this::onComponents), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconZones, this::onZones), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconSigns, this::onSigns), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconEntities, this::onEntities), //$NON-NLS-1$ + } + }); + } + + /** + * entites + * @param player + * @param session + * @param gui + */ + private void onEntities(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * signs + * @param player + * @param session + * @param gui + */ + private void onSigns(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * zones + * @param player + * @param session + * @param gui + */ + private void onZones(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * components + * @param player + * @param session + * @param gui + */ + private void onComponents(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * rules + * @param player + * @param session + * @param gui + */ + private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * teams + * @param player + * @param session + * @param gui + */ + private void onTeams(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * arena invite + * @param player + * @param session + * @param gui + */ + private void onInvite(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * test mode + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onTest(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + this.arena.setTestState(); + this.onRefresh(player, session, gui); + } + + /** + * delete + * @param player + * @param session + * @param gui + */ + private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new YesNoQuestion(Messages.QuestionReallyDelete, this::onDeleteEx, this::onRefresh, Messages.QuestionReallyDeleteDetails)); + } + + /** + * delete + * @param player + * @param session + * @param gui + */ + private void onDeleteEx(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * Maintenance + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onMaintenance(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + // TODO support force parameter + this.arena.setMaintenance(false); + this.onRefresh(player, session, gui); + } + + /** + * players overview + * @param player + * @param session + * @param gui + */ + private void onPlayers(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * hard reset arena + * @param player + * @param session + * @param gui + */ + private void onHardReset(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * stop match + * @param player + * @param session + * @param gui + */ + private void onStop(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * start match + * @param player + * @param session + * @param gui + */ + private void onStart(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * disable arena + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onDisable(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + // TODO support force parameter + this.arena.setDisabledState(false); + this.onRefresh(player, session, gui); + } + + /** + * enable arena + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onEnable(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + this.arena.setEnabledState(); + this.onRefresh(player, session, gui); + } + + /** + * check arena + * @param player + * @param session + * @param gui + */ + private void onCheck(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * edit manual + * @param player + * @param session + * @param gui + */ + private void onManual(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * edit long description + * @param player + * @param session + * @param gui + */ + private void onLongDescription(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * edit short description + * @param player + * @param session + * @param gui + */ + private void onShortDescription(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new LocalizedStringList( + Messages.IconShortDescription, + this.arena.getShortDescription(), (s) -> { this.arena.saveData(); }, + this)); + } + + /** + * edit display name + * @param player + * @param session + * @param gui + */ + private void onDisplayName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new LocalizedStringList( + Messages.IconDisplayName, + this.arena.getDisplayName(), (s) -> { this.arena.saveData(); }, + this)); + } + + /** + * arena info + * @param player + * @param session + * @param gui + */ + private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + final MinigameInterface minigame = this.arena.getMinigame(); + final Serializable mgName = minigame == null ? "<invalid>" : this.arena.getMinigame().getDisplayName(); //$NON-NLS-1$ + player.sendMessage(Messages.InfoOutput, + mgName, + this.arena.getDisplayName(), + this.arena.getShortDescription(), + ArenaCommand.toString(this.arena.getState()), + this.arena.getDescription() + ); + } + + /** + * arena export + * @param player + * @param session + * @param gui + */ + private void onExport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * refresh gui + * @param player + * @param session + * @param gui + */ + private void onRefresh(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this); + } + + /** + * back to previous gui + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.arena.getDisplayName()); + } + + /** + * The arena create messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.arena_edit") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (arena edit page) + */ + @LocalizedMessage(defaultMessage = "Arena %1$d - %2$d") + @MessageComment(value = {"Gui title (arena edit)"}, args = {@Argument("internal name"), @Argument("display name")}) + Title, + + /** + * back to arenas + */ + @LocalizedMessage(defaultMessage = "Back to arenas list") + @MessageComment({"back to arenas"}) + IconBack, + + /** + * info + */ + @LocalizedMessage(defaultMessage = "Arena info") + @MessageComment({"info"}) + IconInfo, + + /** + * display name + */ + @LocalizedMessage(defaultMessage = "Display name") + @MessageComment({"display name"}) + IconDisplayName, + + /** + * short description + */ + @LocalizedMessage(defaultMessage = "Short description") + @MessageComment({"short description"}) + IconShortDescription, + + /** + * long description + */ + @LocalizedMessage(defaultMessage = "Long description") + @MessageComment({"long description"}) + IconLongDescription, + + /** + * Manual + */ + @LocalizedMessage(defaultMessage = "Manual") + @MessageComment({"manual"}) + IconManual, + + /** + * check + */ + @LocalizedMessage(defaultMessage = "Arena check") + @MessageComment({"check"}) + IconCheck, + + /** + * enable + */ + @LocalizedMessage(defaultMessage = "Enable") + @MessageComment({"enable"}) + IconEnable, + + /** + * disable + */ + @LocalizedMessage(defaultMessage = "Disable") + @MessageComment({"disable"}) + IconDisable, + + /** + * start match + */ + @LocalizedMessage(defaultMessage = "Start match") + @MessageComment({"start match"}) + IconStart, + + /** + * stop match + */ + @LocalizedMessage(defaultMessage = "Stop match") + @MessageComment({"stop match"}) + IconStop, + + /** + * hard reset + */ + @LocalizedMessage(defaultMessage = "Hard reset") + @MessageComment({"hard reset"}) + IconHardReset, + + /** + * players + */ + @LocalizedMessage(defaultMessage = "Players") + @MessageComment({"players"}) + IconPlayers, + + /** + * maintenance + */ + @LocalizedMessage(defaultMessage = "Maintenance (edit arena)") + @MessageComment({"maintenance"}) + IconMaintenance, + + /** + * delete + */ + @LocalizedMessage(defaultMessage = "Delete") + @MessageComment({"delete"}) + IconDelete, + + /** + * test + */ + @LocalizedMessage(defaultMessage = "Test mode") + @MessageComment({"test"}) + IconTest, + + /** + * invite + */ + @LocalizedMessage(defaultMessage = "Invite") + @MessageComment({"invite"}) + IconInvite, + + /** + * rules + */ + @LocalizedMessage(defaultMessage = "Rules") + @MessageComment({"rules"}) + IconRules, + + /** + * components + */ + @LocalizedMessage(defaultMessage = "Components") + @MessageComment({"components"}) + IconComponents, + + /** + * zones + */ + @LocalizedMessage(defaultMessage = "Zones") + @MessageComment({"zones"}) + IconZones, + + /** + * signs + */ + @LocalizedMessage(defaultMessage = "Signs") + @MessageComment({"Signs"}) + IconSigns, + + /** + * entites + */ + @LocalizedMessage(defaultMessage = "Entities") + @MessageComment({"entities"}) + IconEntities, + + /** + * teams + */ + @LocalizedMessage(defaultMessage = "Teams") + @MessageComment({"teams"}) + IconTeams, + + /** + * export + */ + @LocalizedMessage(defaultMessage = "Export") + @MessageComment({"export"}) + IconExport, + + /** + * question: really delete arena + */ + @LocalizedMessage(defaultMessage = "Really delete arena?") + @MessageComment({"question: Really delete arena"}) + QuestionReallyDelete, + + /** + * question: really delete arena + */ + @LocalizedMessageList({"Do you really want to delete this arena?", "The deletion can not be undone.", "If you want to use the arena later please export it first."}) + @MessageComment({"question: Really delete arena"}) + QuestionReallyDeleteDetails, + + /** + * The command output of /mg2 arena + * @see ArenaEdit (onInfo) + */ + @LocalizedMessageList({ + "minigame: %1$s", + "arena: %2$s - %3$s", + "state: %4$s", + "----------", + "%5$s" + }) + @MessageComment(value = { + "The command output of /mg2 arena" + },args = { + @Argument("minigame display name"), + @Argument("arena display name"), + @Argument("arena short description"), + @Argument("arena state"), + @Argument("arena long description"), + }) + InfoOutput, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java new file mode 100644 index 00000000..adca28db --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java @@ -0,0 +1,172 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; + +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Page with arena options + * + * @author mepeisen + */ +public class ArenasPage extends AbstractPage<ArenaInterface> +{ + + /** + * Constructor to create the first page + */ + public ArenasPage() + { + // empty + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return MinigamesLibInterface.instance().getArenaCount(); + } + + @Override + protected List<ArenaInterface> getElements(int start, int limit) + { + return MinigamesLibInterface.instance().getArenas(start, limit); + } + + @Override + protected ClickGuiItem map(ArenaInterface elm) + { + return Main.itemArena(elm, (p, s, g) -> onArena(p, s, g, elm)); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + Main.itemNew(this::onNew, Messages.IconNewArena), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save, ""), Messages.IconImport, this::onImport), //$NON-NLS-1$ + null, + Main.itemCloseGui() + }; + } + + /** + * arena import + * @param player + * @param session + * @param gui + */ + private void onImport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * arena + * @param player + * @param session + * @param gui + * @param arena + */ + private void onArena(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaInterface arena) + { + session.setNewPage(new ArenaEdit(arena, this)); + } + + /** + * new arena + * @param player + * @param session + * @param gui + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new ArenaCreate(this)); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.arenas") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (arenas page) + */ + @LocalizedMessage(defaultMessage = "Arenas (page %1$d from %2$d)") + @MessageComment(value = {"Gui title (arenas page)"}, args = {@Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The new icon + */ + @LocalizedMessage(defaultMessage = "New arena") + @MessageComment({"new arena icon"}) + IconNewArena, + + /** + * The arena icon + */ + @LocalizedMessage(defaultMessage = "arena %1$s") + @MessageComment(value = {"arena icon"}, args=@Argument("arena display name")) + IconArena, + + /** + * The arena import + */ + @LocalizedMessage(defaultMessage = "import") + @MessageComment({"arena import"}) + IconImport, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java new file mode 100644 index 00000000..9e480759 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java @@ -0,0 +1,240 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiItem.GuiItemHandler; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; + +/** + * Click gui for editing localized strings; single locale + * + * @author mepeisen + */ +public class LocalizedStringEditor implements ClickGuiPageInterface +{ + + /** consumer to save user strings */ + private McConsumer<String> onSaveUserString; + + /** consumer to save admin strings */ + private McConsumer<String> onSaveAdminString; + + /** consumer to display prev page */ + private ClickGuiItem.GuiItemHandler onPrev; + + /** consumer to delete language */ + private ClickGuiItem.GuiItemHandler onDelete; + + /** current admin string */ + private String adminString; + + /** current user string */ + private String userString; + + /** title */ + private Serializable title; + + /** locale */ + private String locale; + + /** + * @param title + * @param locale + * @param userString + * @param adminString + * @param onSaveUserString + * @param onSaveAdminString + * @param onPrev + * @param onDelete + */ + public LocalizedStringEditor(Serializable title, String locale, String userString, String adminString, McConsumer<String> onSaveUserString, McConsumer<String> onSaveAdminString, GuiItemHandler onPrev, + GuiItemHandler onDelete) + { + this.title = title; + this.locale = locale; + this.userString = userString; + this.adminString = adminString; + this.onSaveUserString = onSaveUserString; + this.onSaveAdminString = onSaveAdminString; + this.onPrev = onPrev; + this.onDelete = onDelete; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + Main.itemHome(), + Main.itemBack(this.onPrev, Messages.IconBack), + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Delete, ""), Messages.IconDelete, this.onDelete), //$NON-NLS-1$ + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People, ""), Messages.IconEditUser, this::onUserString, this.title, this.locale), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Boss, ""), Messages.IconEditAdmin, this::onAdminString, this.title, this.locale), //$NON-NLS-1$ + null, + Main.itemCloseGui() + }, + }); + } + + @Override + public Serializable getPageName() + { + return this.title; + } + + /** + * edit user string + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onUserString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.openAnvilGui(new QueryText( + this.userString == null ? "" : this.userString, //$NON-NLS-1$ + () -> {player.openClickGui(new Main(this));}, + (s) -> this.onUserString(player, session, gui, s), + player.encodeMessage(Messages.EditTextDescription, this.title, this.locale))); + } + + /** + * edit user string + * @param player + * @param session + * @param gui + * @param content + * @throws McException + */ + private void onUserString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String content) throws McException + { + this.userString = content != null && content.length() == 0 ? null : content; + this.onSaveUserString.accept(this.userString); + player.openClickGui(new Main(this)); + } + + /** + * edit admin string + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onAdminString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.openAnvilGui(new QueryText( + this.adminString == null ? "" : this.adminString, //$NON-NLS-1$ + () -> {player.openClickGui(new Main(this));}, + (s) -> this.onAdminString(player, session, gui, s), + player.encodeMessage(Messages.EditAdminDescription, this.title, this.locale))); + } + + /** + * edit admin string + * @param player + * @param session + * @param gui + * @param content + * @throws McException + */ + private void onAdminString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String content) throws McException + { + this.adminString = content != null && content.length() == 0 ? null : content; + this.onSaveAdminString.accept(this.adminString); + player.openClickGui(new Main(this)); + } + + /** + * Editor to create strings. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.string_edit") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment("back icon") + IconBack, + + /** + * Delete icon + */ + @LocalizedMessage(defaultMessage = "Delete language") + @MessageComment("Delete icon") + IconDelete, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit user text for %1$s - %2$s") + @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) + IconEditUser, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit admin text for %1$s - %2$s") + @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) + IconEditAdmin, + + /** + * Edit existing: user text description + */ + @LocalizedMessageList({"Edit user text for %1$s - %2$s.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) + @MessageComment(value = "Edit existing: user text description", args = {@Argument("title"), @Argument("locale")}) + EditTextDescription, + + /** + * Edit existing: admin text description + */ + @LocalizedMessageList({"Edit admin text for %1$s - %2$s.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) + @MessageComment(value = "Edit existing: admin text description", args = {@Argument("title"), @Argument("locale")}) + EditAdminDescription, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java new file mode 100644 index 00000000..1be17d8a --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java @@ -0,0 +1,259 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedConfigString; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; + +/** + * Click gui for editing localized strings + * + * @author mepeisen + */ +public class LocalizedStringList extends AbstractPage<Locale> +{ + + /** title */ + private Serializable title; + + /** config string */ + private LocalizedConfigString string; + + /** save function */ + private McConsumer<LocalizedConfigString> save; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** + * @param title + * @param string + * @param save + * @param prevPage + */ + public LocalizedStringList(Serializable title, LocalizedConfigString string, McConsumer<LocalizedConfigString> save, ClickGuiPageInterface prevPage) + { + this.title = title; + this.string = string; + this.save = save; + this.prevPage = prevPage; + } + + @Override + protected int count() + { + return this.string.getLanguages().size(); + } + + @Override + protected List<Locale> getElements(int start, int limit) + { + return this.string.getLanguages().stream().sorted((a, b) -> a.toString().compareTo(b.toString())).skip(start).limit(limit).collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(Locale elm) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, elm), elm.toString()); //$NON-NLS-1$ + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + Main.itemBack(this::onBack, Messages.IconBack), + null, + Main.itemNew(this::onNew, Messages.IconCreate), + null, + Main.itemCloseGui() + }; + } + + /** + * new language + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.openAnvilGui(new QueryLocale( + () -> {player.openClickGui(new Main(this));}, + (l) -> this.onNew(player, session, gui, l), + player.encodeMessage(Messages.CreateLocaleDescription, this.title))); + } + + /** + * new language + * @param player + * @param session + * @param gui + * @param locale + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) throws McException + { + session.close(); + player.openAnvilGui(new QueryText( + "<text>", //$NON-NLS-1$ + () -> {player.openClickGui(new Main(this));}, + (str2) -> this.onNew(player, session, gui, locale, str2), + player.encodeMessage(Messages.CreateTextDescription, this.title, locale.toString()))); + } + + /** + * new language + * @param player + * @param session + * @param gui + * @param locale + * @param content + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale, String content) throws McException + { + this.string.setUserMessage(locale, content); + player.openClickGui(new Main(this)); + this.save.accept(this.string); + } + + /** + * edit language + * @param player + * @param session + * @param gui + * @param locale + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) + { + session.setNewPage(new LocalizedStringEditor( + this.title, + locale.toString(), + this.string.getUnformattedUserMessage(locale), + this.string.getUnformattedAdminMessage(locale), + (s) -> { + this.string.setUserMessage(locale, s); + this.save.accept(this.string); + }, + (s) -> { + this.string.setAdminMessage(locale, s); + this.save.accept(this.string); + }, + this::onRefresh, + (p, s, g) -> { + this.string.setUserMessage(locale, null); + this.string.setAdminMessage(locale, null); + this.onRefresh(p, s, g); + })); + } + + /** + * back + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return this.title; + } + + /** + * Editor to create strings. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.string_editor") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment("back icon") + IconBack, + + /** + * Create icon + */ + @LocalizedMessage(defaultMessage = "New language") + @MessageComment("Create icon (new language)") + IconCreate, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit %1$s") + @MessageComment(value = "Edit icon", args = @Argument("locale name")) + IconEdit, + + /** + * Create new: locale description + */ + @LocalizedMessageList({"Enter a new language for %1$s.", "Use 2 or 3 letter iso codes.", "For example: 'en' or 'de'."}) + @MessageComment(value = "Create new: locale description", args = @Argument("title")) + CreateLocaleDescription, + + /** + * Create new: text description + */ + @LocalizedMessageList({"Enter a new user text for %1$s - %2$s.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) + @MessageComment(value = "Create new: text description", args = {@Argument("title"), @Argument("locale")}) + CreateTextDescription, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java new file mode 100644 index 00000000..1e498eb6 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java @@ -0,0 +1,510 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; + +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.gui.ClickGuiId; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.ExtensionInterface; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * The main menu. + * + * @author mepeisen + */ +public class Main implements ClickGuiInterface, ClickGuiPageInterface +{ + + /** the max line count. */ + public static int LINE_COUNT = 6; + + /** the max col count. */ + public static int COL_COUNT = 9; + + /** initial page. */ + private ClickGuiPageInterface initialPage = this; + + /** + * Constructor + */ + public Main() + { + super(); + } + + /** + * Constructor + * @param initialPage + */ + public Main(ClickGuiPageInterface initialPage) + { + super(); + this.initialPage = initialPage; + } + + @Override + public ClickGuiId getUniqueId() + { + return MgClickGuis.Main; + } + + @Override + public ClickGuiPageInterface getInitialPage() + { + return this.initialPage; + } + + @Override + public int getLineCount() + { + return LINE_COUNT; + } + + @Override + public LocalizedMessageInterface getPageName() + { + return Messages.Title; + } + + @Override + public ClickGuiItem[][] getItems() + { + return withFillers(new ClickGuiItem[][]{ + { + itemOptions(this::onOptions), + null, + itemMinigames(this::onMinigames), + itemExtensions(this::onExtensions), + null, + itemMarketplace(this::onMarketplace), + null, + null, + itemCloseGui() + }, + null, + { + itemArenas(this::onArenas), + } + }); + } + + /** + * Creates an inventory with filler icons + * @param src + * @return inventory + */ + public static ClickGuiItem[][] withFillers(ClickGuiItem[][] src) + { + final ClickGuiItem[][] result = new ClickGuiItem[LINE_COUNT][]; + for (int line = 0; line < LINE_COUNT; line++) + { + final ClickGuiItem[] lineArr = new ClickGuiItem[COL_COUNT]; + for (int col = 0; col < COL_COUNT; col++) + { + if (line < src.length && src[line] != null && col < src[line].length) + { + lineArr[col] = src[line][col]; + } + else + { + lineArr[col] = itemFill(line, col); + } + } + result[line] = lineArr; + } + return result; + + } + + /** + * Close gui + * @param player + * @param session + * @param gui + */ + private static void onClose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.close(); + } + + /** + * Home + * @param player + * @param session + * @param gui + */ + private static void onHome(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new Main()); + } + + /** + * Arenas icon + * @param player + * @param session + * @param gui + */ + private void onArenas(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new ArenasPage()); + } + + /** + * Options icon + * @param player + * @param session + * @param gui + */ + private void onOptions(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Messages.NotAvailable); + } + + /** + * Options icon + * @param player + * @param session + * @param gui + */ + private void onMinigames(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Messages.NotAvailable); + } + + /** + * Options icon + * @param player + * @param session + * @param gui + */ + private void onExtensions(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Messages.NotAvailable); + } + + /** + * Options icon + * @param player + * @param session + * @param gui + */ + private void onMarketplace(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Messages.NotAvailable); + } + + /** + * market place icon + * @param handler + * @return market place icon + */ + public static ClickGuiItem itemMarketplace(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Euro, ""), Messages.IconMarketplace, handler); //$NON-NLS-1$ + } + + /** + * dummy fill item + * @param line + * @param col + * @return dummy fill icon + */ + public static ClickGuiItem itemFill(int line, int col) + { + byte color = 0; + if ((line * COL_COUNT + col) % 2 == 1) color = 1; + return new ClickGuiItem(new ItemStack(Material.STAINED_GLASS_PANE, 1, color), Messages.IconFill, (player, session, gui) -> {/*empty*/}); + } + + /** + * arenas icon + * @param handler + * @return arenas icon + */ + public static ClickGuiItem itemArenas(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(new ItemStack(Material.DIAMOND_SWORD), Messages.IconArenas, handler); + } + + /** + * arenas icon + * @param arena + * @param handler + * @return arenas icon + */ + public static ClickGuiItem itemArena(ArenaInterface arena, ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(new ItemStack(Material.DIAMOND_SWORD), arena.getDisplayName(), handler); + } + + /** + * minigames icon + * @param handler + * @return minigames icon + */ + public static ClickGuiItem itemMinigames(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(new ItemStack(Material.REDSTONE), Messages.IconMinigames, handler); + } + + /** + * minigames icon + * @param minigame + * @param handler + * @return minigames icon + */ + public static ClickGuiItem itemMinigame(MinigameInterface minigame, ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(new ItemStack(Material.REDSTONE), minigame.getDisplayName(), handler); + } + + /** + * extensions icon + * @param handler + * @return extensions icon + */ + public static ClickGuiItem itemExtensions(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox, ""), Messages.IconExtensions, handler); //$NON-NLS-1$ + } + + /** + * extensions icon + * @param extension + * @param handler + * @return extensions icon + */ + public static ClickGuiItem itemExtension(ExtensionInterface extension, ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox, ""), extension.getDisplayName(), handler); //$NON-NLS-1$ + } + + /** + * home icon + * @return home icon + */ + public static ClickGuiItem itemHome() + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Home, ""), Messages.IconBackToMainMenu, Main::onHome); //$NON-NLS-1$ + } + + /** + * options icon + * @param handler + * @return options icon + */ + public static ClickGuiItem itemOptions(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion, ""), Messages.IconOptions, handler); //$NON-NLS-1$ + } + + /** + * close gui icon + * @return close gui icon + */ + public static ClickGuiItem itemCloseGui() + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Close, ""), Messages.IconClose, Main::onClose); //$NON-NLS-1$ + } + + /** + * new icon + * @param handler + * @param name + * @param nameargs + * @return new icon + */ + public static ClickGuiItem itemNew(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_New, ""), name, handler, nameargs); //$NON-NLS-1$ + } + + /** + * back icon + * @param handler + * @param name + * @param nameargs + * @return back icon + */ + public static ClickGuiItem itemBack(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Back, ""), name, handler, nameargs); //$NON-NLS-1$ + } + + /** + * back icon + * @param handler + * @return back icon + */ + public static ClickGuiItem itemRefresh(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Refresh, ""), Messages.IconRefresh, handler); //$NON-NLS-1$ + } + + /** + * prev page icon + * @param handler + * @return prev page icon + */ + public static ClickGuiItem itemPrevPage(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Previous, ""), Messages.IconPreviousPage, handler); //$NON-NLS-1$ + } + + /** + * next page icon + * @param handler + * @return next page icon + */ + public static ClickGuiItem itemNextPage(ClickGuiItem.GuiItemHandler handler) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Next, ""), Messages.IconNextPage, handler); //$NON-NLS-1$ + } + + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.main") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (main menu) + */ + @LocalizedMessage(defaultMessage = "MAIN - Minigames v2") + @MessageComment({"Gui title (main menu)"}) + Title, + + /** + * A dummy filler + */ + @LocalizedMessage(defaultMessage = "") + @MessageComment({"dummy filler icon"}) + IconFill, + + /** + * The arenas icon + */ + @LocalizedMessage(defaultMessage = "Arenas") + @MessageComment({"Arenas icon"}) + IconArenas, + + /** + * The options icon + */ + @LocalizedMessage(defaultMessage = "Options/Configuration") + @MessageComment({"Options icon"}) + IconOptions, + + /** + * The minigames icon + */ + @LocalizedMessage(defaultMessage = "Minigames") + @MessageComment({"Minigames icon"}) + IconMinigames, + + /** + * The extensions icon + */ + @LocalizedMessage(defaultMessage = "Extensions") + @MessageComment({"Extensions icon"}) + IconExtensions, + + /** + * The marketplace icon + */ + @LocalizedMessage(defaultMessage = "Marketplace") + @MessageComment({"Marketplace icon"}) + IconMarketplace, + + /** + * option not available + */ + @LocalizedMessage(defaultMessage = "This option is not available", severity = MessageSeverityType.Error) + @MessageComment({"Error message: option not available"}) + NotAvailable, + + // common messages + + /** + * The main menu icon + */ + @LocalizedMessage(defaultMessage = "Back to main menu") + @MessageComment({"main menu icon"}) + IconBackToMainMenu, + + /** + * The close gui icon + */ + @LocalizedMessage(defaultMessage = "Close GUI") + @MessageComment({"close icon"}) + IconClose, + + /** + * The prev page icon + */ + @LocalizedMessage(defaultMessage = "Previous page") + @MessageComment({"prev page icon"}) + IconPreviousPage, + + /** + * The next page icon + */ + @LocalizedMessage(defaultMessage = "Next page") + @MessageComment({"next page icon"}) + IconNextPage, + + /** + * The refresh icon + */ + @LocalizedMessage(defaultMessage = "Refresh") + @MessageComment({"refresh icon"}) + IconRefresh, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java new file mode 100644 index 00000000..f959a505 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java @@ -0,0 +1,43 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import de.minigameslib.mclib.api.gui.AnvilGuiId; + +/** + * Enumeration to identify guis. + * + * @author mepeisen + */ +public enum MgAnvilGuis implements AnvilGuiId +{ + + /** query locale name. */ + QueryLocale, + + /** query some text. */ + QueryText, + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java new file mode 100644 index 00000000..2fe0db86 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java @@ -0,0 +1,50 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import de.minigameslib.mclib.api.enums.ChildEnum; +import de.minigameslib.mclib.api.gui.ClickGuiId; + +/** + * Enumeration to identify guis. + * + * @author mepeisen + */ +@ChildEnum({ + Main.Messages.class, + ArenasPage.Messages.class, + ArenaEdit.Messages.class, + // ArenaCreate.Messages.class, + YesNoQuestion.Messages.class, + LocalizedStringList.Messages.class, + LocalizedStringEditor.Messages.class, +}) +public enum MgClickGuis implements ClickGuiId +{ + + /** the main gui. */ + Main + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java new file mode 100644 index 00000000..2d7145d6 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java @@ -0,0 +1,106 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.util.Arrays; +import java.util.Locale; + +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.AnvilGuiId; +import de.minigameslib.mclib.api.gui.AnvilGuiInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; +import de.minigameslib.mclib.api.util.function.McRunnable; + +/** + * Query a locale. + * + * @author mepeisen + */ +public class QueryLocale implements AnvilGuiInterface +{ + + /** cancel func */ + private McRunnable onCancel; + + /** input func */ + private McConsumer<Locale> onInput; + + /** description */ + private String[] description; + + /** + * Constructor + * @param onCancel + * @param onInput + * @param description + */ + public QueryLocale(McRunnable onCancel, McConsumer<Locale> onInput, String[] description) + { + this.onCancel = onCancel; + this.onInput = onInput; + this.description = description; + } + + @Override + public ItemStack getItem() + { + final ItemStack stack = ItemServiceInterface.instance().createItem(CommonItems.App_Text, "iso-code"); //$NON-NLS-1$ + final ItemMeta meta = stack.getItemMeta(); + meta.setLore(Arrays.asList(this.description)); + stack.setItemMeta(meta); + return stack; + } + + @Override + public AnvilGuiId getUniqueId() + { + return MgAnvilGuis.QueryLocale; + } + + @Override + public void onCancel() + { + try + { + this.onCancel.run(); + } + catch (McException e) + { + // TODO logging + } + } + + @Override + public void onInput(String arg0) throws McException + { + this.onInput.accept(new Locale(arg0)); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java new file mode 100644 index 00000000..1dac164d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java @@ -0,0 +1,110 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.util.Arrays; + +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.AnvilGuiId; +import de.minigameslib.mclib.api.gui.AnvilGuiInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; +import de.minigameslib.mclib.api.util.function.McRunnable; + +/** + * Query a text. + * + * @author mepeisen + */ +public class QueryText implements AnvilGuiInterface +{ + + /** cancel func */ + private McRunnable onCancel; + + /** input func */ + private McConsumer<String> onInput; + + /** source text. */ + private String src; + + /** description */ + private String[] description; + + /** + * Constructor + * @param src + * @param onCancel + * @param onInput + * @param description + */ + public QueryText(String src, McRunnable onCancel, McConsumer<String> onInput, String[] description) + { + this.src = src; + this.onCancel = onCancel; + this.onInput = onInput; + this.description = description; + } + + @Override + public ItemStack getItem() + { + final ItemStack stack = ItemServiceInterface.instance().createItem(CommonItems.App_Text, this.src); + final ItemMeta meta = stack.getItemMeta(); + meta.setLore(Arrays.asList(this.description)); + stack.setItemMeta(meta); + return stack; + } + + @Override + public AnvilGuiId getUniqueId() + { + return MgAnvilGuis.QueryText; + } + + @Override + public void onCancel() + { + try + { + this.onCancel.run(); + } + catch (McException e) + { + // TODO logging + } + } + + @Override + public void onInput(String arg0) throws McException + { + this.onInput.accept(arg0); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java new file mode 100644 index 00000000..7ce987f3 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java @@ -0,0 +1,162 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.objects.McPlayerInterface; + +/** + * Click gui for asking a simple question + * + * @author mepeisen + */ +public class YesNoQuestion implements ClickGuiPageInterface +{ + + /** question */ + private Serializable question; + + /** details */ + private LocalizedMessageInterface details; + + /** details */ + private Serializable[] detailsArgs; + + /** yes action. */ + private ClickGuiItem.GuiItemHandler onYes; + + /** no action. */ + private ClickGuiItem.GuiItemHandler onNo; + + /** + * @param question + * @param onYes + * @param onNo + * @param details + * @param detailsArgs + */ + public YesNoQuestion(Serializable question, ClickGuiItem.GuiItemHandler onYes, ClickGuiItem.GuiItemHandler onNo, LocalizedMessageInterface details, Serializable... detailsArgs) + { + this.onYes = onYes; + this.onNo = onNo; + this.details = details; + this.detailsArgs = detailsArgs; + this.question = question; + } + + /** + * @param question + * @param onYes + * @param onNo + */ + public YesNoQuestion(Serializable question, ClickGuiItem.GuiItemHandler onYes, ClickGuiItem.GuiItemHandler onNo) + { + this.onYes = onYes; + this.onNo = onNo; + this.question = question; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + this.details == null ? null : new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Help, ""), Messages.IconHelp, this::onHelp), //$NON-NLS-1$ + }, + null, + null, + { + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Yes, ""), Messages.IconYes, this.onYes), //$NON-NLS-1$ + null, + null, + null, + null, + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_No, ""), Messages.IconNo, this.onNo), //$NON-NLS-1$ + null + } + }); + } + + /** + * help + * @param player + * @param session + * @param gui + */ + private void onHelp(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + player.sendMessage(this.details, this.detailsArgs); + } + + @Override + public Serializable getPageName() + { + return this.question; + } + + /** + * The arena create messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.yes_no") + public enum Messages implements LocalizedMessageInterface + { + /** + * help icon + */ + @LocalizedMessage(defaultMessage = "CLICK for help") + @MessageComment("help icon") + IconHelp, + + /** + * yes icon + */ + @LocalizedMessage(defaultMessage = "Yes") + @MessageComment("yes icon") + IconYes, + + /** + * Gui title (arena edit page) + */ + @LocalizedMessage(defaultMessage = "No") + @MessageComment("no icon") + IconNo, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java index 740c73e8..1280a6cf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java @@ -29,8 +29,6 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.bukkit.Bukkit; - import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.impl.tasks.AsyncTaskInterface; @@ -54,8 +52,7 @@ public class TaskManager */ public static TaskManager instance() { - // TODO caching of task manager interface - return Bukkit.getServicesManager().load(TaskManager.class); + return TaskManagerCache.get(); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java new file mode 100644 index 00000000..0d0c7bce --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java @@ -0,0 +1,53 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.internal; + +import org.bukkit.Bukkit; + +/** + * Helper to cache the task manager class. + * + * @author mepeisen + */ +class TaskManagerCache +{ + + /** the task manager services. */ + private static TaskManager SERVICES; + + /** + * Returns the task manager instance. + * @return task manager. + */ + static TaskManager get() + { + if (SERVICES == null) + { + SERVICES = Bukkit.getServicesManager().load(TaskManager.class); + } + return SERVICES; + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java index bc8c3f59..2c7dd885 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Set; +import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; import de.minigameslib.mgapi.api.rules.RuleSetInterface; import de.minigameslib.mgapi.api.rules.RuleSetType; @@ -204,7 +205,7 @@ public Q applyOptionalRuleSet(T ruleset) throws McException public Q reapplyRuleSet(T ruleset) throws McException { this.checkModifications(); - if (!this.isApplied(ruleset)) throw new IllegalStateException(); // TODO throw mcexception instead + if (!this.isApplied(ruleset)) throw new McException(CommonMessages.InternalError, "Cannot reconfigure unapplied rule"); //$NON-NLS-1$ final Q result = create(ruleset); this.removeListeners(this.ruleSets.get(ruleset)); this.ruleSets.put(ruleset, result); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java index 48651500..3d047469 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java @@ -26,6 +26,8 @@ import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; +import java.util.logging.Level; +import java.util.logging.Logger; import org.bukkit.scheduler.BukkitTask; @@ -82,6 +84,9 @@ public class BasicMatchTimer extends AbstractArenaRule implements BasicMatchTime */ private BukkitTask timerTask; + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(BasicMatchTimer.class.getName()); + /** * @param type * @param arena @@ -278,7 +283,7 @@ private void onTimer(BukkitTask task) } catch (McException e) { - // TODO logging + LOGGER.log(Level.WARNING, "Unable to abort arena after reaching maximum game time", e); //$NON-NLS-1$ } } else diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java index 6c68e73c..467232e7 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java @@ -29,6 +29,8 @@ import java.util.List; import java.util.Random; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.event.McEventHandler; @@ -65,6 +67,9 @@ public class BasicSpawns extends AbstractArenaRule implements BasicSpawnsRuleInt /** random number generator. */ private final Random random = new Random(); + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(BasicSpawns.class.getName()); + /** * @param type * @param arena @@ -148,7 +153,7 @@ private void setPlayerSpawns() } catch (McException e) { - // TODO Logging + LOGGER.log(Level.WARNING, "Unable to select player spawn", e); //$NON-NLS-1$ } i++; if (i >= this.currentSpawns.size()) @@ -171,7 +176,7 @@ private void setPlayerSpawnsAndReshuffle() } catch (McException e) { - // TODO Logging + LOGGER.log(Level.WARNING, "Unable to select player spawn", e); //$NON-NLS-1$ } if (this.currentSpawns.size() == 0) { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java index d92fd851..46ef01ca 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java @@ -52,9 +52,10 @@ public DieOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McExceptio /** * Event on player zone leave * @param evt + * @throws McException */ @McEventHandler - public void onLeave(PlayerLeftZoneEvent evt) + public void onLeave(PlayerLeftZoneEvent evt) throws McException { if (this.arena.isMatch()) { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java index 545d8e4d..88b127b4 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java @@ -57,9 +57,10 @@ public LoseOnDeath(ArenaRuleSetType type, ArenaInterface arena) throws McExcepti /** * On player die. * @param evt + * @throws McException */ @McEventHandler - public void onPlayerDie(ArenaPlayerDieEvent evt) + public void onPlayerDie(ArenaPlayerDieEvent evt) throws McException { final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(evt.getPlayer()); if (player.isPlaying()) diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java index 6ba8b42d..2ef2bc65 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java @@ -52,9 +52,10 @@ public LoseOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McExcepti /** * Event on player zone leave * @param evt + * @throws McException */ @McEventHandler - public void onLeave(PlayerLeftZoneEvent evt) + public void onLeave(PlayerLeftZoneEvent evt) throws McException { if (this.arena.isMatch()) { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java index 75f6a3c9..5f261e2f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -24,18 +24,25 @@ package de.minigameslib.mgapi.impl.rules; +import org.bukkit.entity.Player; + import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.McEntityDamageByEntityEvent; +import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; import de.minigameslib.mgapi.api.rules.AbstractZoneRule; import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig; import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig.PvpModes; +import de.minigameslib.mgapi.api.rules.PvPModeRuleInterface; import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; /** * @author mepeisen * */ -public class PvPMode extends AbstractZoneRule +public class PvPMode extends AbstractZoneRule implements PvPModeRuleInterface { /** @@ -51,11 +58,13 @@ public class PvPMode extends AbstractZoneRule public PvPMode(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException { super(type, zone); - this.mode = PvpModes.valueOf(BasicPvpModeConfig.PvpOption.getString()); - if (this.mode == null) - { - // TODO implement pvp mode rule - } + this.runInCopiedContext(() -> { + this.mode = BasicPvpModeConfig.PvpOption.getEnum(PvpModes.class); + if (this.mode == null) + { + this.mode = PvpModes.NoPvp; + } + }); } @Override @@ -63,7 +72,53 @@ public ZoneRuleSetType getType() { return this.type; } + + @Override + public PvpModes getPvpMode() + { + return this.mode; + } + + @Override + public void setPvpMode(PvpModes mode) throws McException + { + this.arena.checkModifications(); + this.runInCopiedContext(() -> { + BasicPvpModeConfig.PvpOption.setEnum(mode); + }); + this.zone.reconfigure(this.type); + } - // TODO implement pvp mode rule + /** + * Player dmg event + * @param evt + */ + @McEventHandler + public void onPlayerDmg(McEntityDamageByEntityEvent evt) + { + if (evt.getPlayer() != null && evt.getBukkitEvent().getDamager() instanceof Player) + { + final Player damager = (Player) evt.getBukkitEvent().getDamager(); + if (!ObjectServiceInterface.instance().isHuman(damager)) + { + switch (this.mode) + { + default: + case NoPvp: + evt.getBukkitEvent().setCancelled(true); + break; + case Normal: + // allow everything + break; + case PvpDuringMatch: + if (this.arena.getState() != ArenaState.Match) + { + evt.getBukkitEvent().setCancelled(true); + } + break; + } + } + } + } } diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java index b31d7edb..5b812e5d 100644 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java @@ -29,16 +29,16 @@ import org.junit.runner.RunWith; import de.minigameslib.mclib.spigottest.SpigotInject; +import de.minigameslib.mclib.spigottest.SpigotJunit4Runner; import de.minigameslib.mclib.spigottest.SpigotServer; import de.minigameslib.mclib.spigottest.SpigotTest; -import de.minigameslib.mclib.spigottest.SpigotTestRunner; /** * Test case for arena impl. * * @author mepeisen */ -@RunWith(SpigotTestRunner.class) +@RunWith(SpigotJunit4Runner.class) @SpigotTest(all = true) public class ArenaImplTest { diff --git a/v2/pom.xml b/v2/pom.xml index ad3795e6..63cda261 100644 --- a/v2/pom.xml +++ b/v2/pom.xml @@ -18,7 +18,7 @@ <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> <latest.spigot.version>1.11.2</latest.spigot.version> - <mclib.version>0.0.4-SNAPSHOT</mclib.version> + <mclib.version>0.0.5-SNAPSHOT</mclib.version> <mglib.version>2.0.0-SNAPSHOT</mglib.version> </properties> From d86a63f05263dbc182419dd5ac3ad929aef9e99e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 9 Apr 2017 14:19:18 +0200 Subject: [PATCH 214/266] (Bungeecord) Joining with party members --- .../minigamesapi/MinigamesAPI.java | 89 +++++++++++++------ changelog.md | 12 +++ 2 files changed, 76 insertions(+), 25 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 2a0590aa..b1c082b6 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -68,6 +68,7 @@ import com.comze_instancelabs.minigamesapi.util.Signs; import com.comze_instancelabs.minigamesapi.util.UpdaterNexus; import com.comze_instancelabs.minigamesapi.util.Util; +import com.comze_instancelabs.minigamesapi.util.Validator; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; @@ -1519,40 +1520,78 @@ public void onSignUse(PlayerInteractEvent event) String server = getServerBySignLocation(s.getLocation()); if (server != null && server != "") { - try + final Player player = event.getPlayer(); + final String signInfo = getInfoBySignLocation(s.getLocation()); + + if (MinigamesAPI.getAPI().global_party.containsKey(player.getName())) { - ByteArrayDataOutput out = ByteStreams.newDataOutput(); - try - { - out.writeUTF("Forward"); - out.writeUTF("ALL"); - out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK); - - ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); - DataOutputStream msgout = new DataOutputStream(msgbytes); - String info = getInfoBySignLocation(s.getLocation()) + ":" + event.getPlayer().getName(); - msgout.writeUTF(info); - - out.writeShort(msgbytes.toByteArray().length); - out.write(msgbytes.toByteArray()); - - Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); - } - catch (Exception e) + final Party party = MinigamesAPI.getAPI().global_party.remove(player.getName()); + for (final String p_ : party.getPlayers()) { - this.getLogger().log(Level.WARNING, "error sending message", e); + if (Validator.isPlayerOnline(p_)) + { + boolean cont = true; + MinigamesAPI.getAPI(); + for (final PluginInstance pli_ : MinigamesAPI.pinstances.values()) + { + if (pli_.containsGlobalPlayer(p_)) + { + cont = false; + } + } + if (cont) + { + letPlayerJoinServer(server, Bukkit.getPlayer(p_), signInfo); + } + } } } - catch (Exception e) - { - this.getLogger().log(Level.WARNING, "Error occurred while sending first sign request - Invalid server/minigame/arena?", e); - } - connectToServer(this, event.getPlayer().getName(), server); + + letPlayerJoinServer(server, player, signInfo); } } } } + + /** + * Let a player join a server over bungeecord network + * @param server + * @param player + * @param signInfo + */ + private void letPlayerJoinServer(String server, final Player player, final String signInfo) + { + try + { + ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); + out.writeUTF("ALL"); + out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_BACK); + + ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + DataOutputStream msgout = new DataOutputStream(msgbytes); + String info = signInfo + ":" + player.getName(); + msgout.writeUTF(info); + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); + } + catch (Exception e) + { + this.getLogger().log(Level.WARNING, "error sending message", e); + } + } + catch (Exception e) + { + this.getLogger().log(Level.WARNING, "Error occurred while sending first sign request - Invalid server/minigame/arena?", e); + } + connectToServer(this, player.getName(), server); + } @EventHandler public void onSignChange(SignChangeEvent event) diff --git a/changelog.md b/changelog.md index 01736c31..60c51772 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,17 @@ # Changelog +#### 1.14.16 + +###### All + +* (Bungeecord) Clicking a join sign will now throw all players of a party to the minigame server (https://github.com/MysticCity/MinigamesAPI/issues/208) + +###### MobEscape + +* Fixed runtime error in 1.8.5 to 1.8.9 + + + #### 1.14.15 ###### All From 62ab1dc6e38d49cfefd937d5efa70a2034fd5e2a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 9 Apr 2017 14:21:22 +0200 Subject: [PATCH 215/266] v2 (gui) --- .../mgapi/impl/MinigamesPlugin.java | 2 +- .../impl/cmd/AdminComponentCreateCommand.java | 2 +- .../impl/cmd/AdminSignCreateCommand.java | 2 +- .../impl/cmd/AdminZoneCreateCommand.java | 2 +- .../mgapi/impl/cmd/gui/AbstractPage.java | 23 +- .../mgapi/impl/cmd/gui/ArenaEdit.java | 70 +-- .../mgapi/impl/cmd/gui/ArenasPage.java | 4 +- .../cmd/gui/LocalizedLinesEditLocale.java | 204 +++++++++ .../cmd/gui/LocalizedLinesEditLocaleList.java | 302 +++++++++++++ .../impl/cmd/gui/LocalizedLinesList.java | 243 +++++++++++ .../impl/cmd/gui/LocalizedStringEditor.java | 6 +- .../impl/cmd/gui/LocalizedStringList.java | 4 +- .../minigameslib/mgapi/impl/cmd/gui/Main.java | 46 +- .../mgapi/impl/cmd/gui/MgClickGuis.java | 6 + .../mgapi/impl/cmd/gui/SignEdit.java | 413 ++++++++++++++++++ .../impl/cmd/gui/SignsCreateChooseType.java | 237 ++++++++++ .../mgapi/impl/cmd/gui/SignsPage.java | 218 +++++++++ .../mgapi/impl/cmd/gui/YesNoQuestion.java | 6 +- v2/pom.xml | 2 +- 19 files changed, 1729 insertions(+), 63 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 64732123..5ba15337 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -338,7 +338,7 @@ public void onEnable() this.registerArenaZone(this, BasicZoneTypes.Spectator, SpectatorZone::new, SpectatorZone.class); ObjectServiceInterface.instance().register(MglibObjectTypes.Arena, ArenaImpl.class); - ObjectServiceInterface.instance().resumeObjects(this); + ObjectServiceInterface.instance().resumeObjects(this, null); // TODO check for resume errors } catch (McException ex) { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java index 5ef5d5c4..28e054b9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java @@ -84,7 +84,7 @@ public void handle(CommandInterface command) throws McException { throw new McException(ArenaImpl.Messages.ModificationWrongState); } - final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); + final ZoneTypeId type = Mg2Command.getEnum(ZoneTypeId.class, typeName); AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java index 55921518..7a3b7dba 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java @@ -84,7 +84,7 @@ public void handle(CommandInterface command) throws McException { throw new McException(ArenaImpl.Messages.ModificationWrongState); } - final SignTypeId type = Mg2Command.getEnum(command, SignTypeId.class, typeName); + final SignTypeId type = Mg2Command.getEnum(SignTypeId.class, typeName); AdminToolHelper.onCreateSign(command.getPlayer(), arena, name, type, null); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java index b14df9a8..6702e601 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java @@ -84,7 +84,7 @@ public void handle(CommandInterface command) throws McException { throw new McException(ArenaImpl.Messages.ModificationWrongState); } - final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); + final ZoneTypeId type = Mg2Command.getEnum(ZoneTypeId.class, typeName); AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java index 91fec6c6..d0473d2e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java @@ -24,7 +24,9 @@ package de.minigameslib.mgapi.impl.cmd.gui; +import java.util.ArrayList; import java.util.Collection; +import java.util.Iterator; import java.util.List; import de.minigameslib.mclib.api.gui.ClickGuiInterface; @@ -43,10 +45,10 @@ public abstract class AbstractPage<T> implements ClickGuiPageInterface { /** number of items per page */ - private static final int ITEMS_PER_LINE = Main.COL_COUNT; + protected static final int ITEMS_PER_LINE = Main.COL_COUNT; /** number of items per page */ - private static final int ITEMS_PER_PAGE = ITEMS_PER_LINE * 4; + protected static final int ITEMS_PER_PAGE = ITEMS_PER_LINE * 4; /** numeric page num */ private int pageNum = 1; @@ -102,10 +104,13 @@ protected int page() /** * Maps elements to click gui item + * @param line + * @param col + * @param index * @param elm * @return click gui item */ - protected abstract ClickGuiItem map(T elm); + protected abstract ClickGuiItem map(int line, int col, int index, T elm); @Override public ClickGuiItem[][] getItems() @@ -135,7 +140,17 @@ public ClickGuiItem[][] getItems() */ private ClickGuiItem[] itemsLine(Collection<T> items, int start) { - return items.stream().skip(start).limit(ITEMS_PER_LINE).map(this::map).toArray(ClickGuiItem[]::new); + int col = 0; + int i = start + (this.pageNum - 1) * ITEMS_PER_PAGE; + final List<ClickGuiItem> result = new ArrayList<>(); + final Iterator<T> iter = items.stream().skip(start).limit(ITEMS_PER_LINE).iterator(); + while (iter.hasNext()) + { + result.add(this.map(start / ITEMS_PER_LINE, col, i, iter.next())); + col++; + i++; + } + return result.toArray(new ClickGuiItem[result.size()]); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java index 29adb9ba..5a5b3165 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java @@ -86,39 +86,39 @@ public ClickGuiItem[][] getItems() }, null, { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info, ""), Messages.IconInfo, this::onInfo), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconDisplayName, this::onDisplayName), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconShortDescription, this::onShortDescription), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconLongDescription, this::onLongDescription), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconManual, this::onManual), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconDisplayName, this::onDisplayName), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconShortDescription, this::onShortDescription), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconLongDescription, this::onLongDescription), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconManual, this::onManual), }, { - this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Question, ""), Messages.IconCheck, this::onCheck) : null, //$NON-NLS-1$ - this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Apply, ""), Messages.IconEnable, this::onEnable) : null, //$NON-NLS-1$ - !this.arena.isDisabled() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Flag, ""), Messages.IconDisable, this::onDisable) : null, //$NON-NLS-1$ - this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save, ""), Messages.IconExport, this::onExport) : null, //$NON-NLS-1$, - !this.arena.isDisabled() && !this.arena.isMaintenance() && !this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Play, ""), Messages.IconStart, this::onStart) : null, //$NON-NLS-1$ - this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Stop, ""), Messages.IconStop, this::onStop) : null, //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Redo, ""), Messages.IconHardReset, this::onHardReset), //$NON-NLS-1$ + this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Question), Messages.IconCheck, this::onCheck) : null, + this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Apply), Messages.IconEnable, this::onEnable) : null, + !this.arena.isDisabled() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Flag), Messages.IconDisable, this::onDisable) : null, + this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save), Messages.IconExport, this::onExport) : null, //, + !this.arena.isDisabled() && !this.arena.isMaintenance() && !this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Play), Messages.IconStart, this::onStart) : null, + this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Stop), Messages.IconStop, this::onStop) : null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Redo), Messages.IconHardReset, this::onHardReset), null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People, ""), Messages.IconPlayers, this::onPlayers), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People), Messages.IconPlayers, this::onPlayers), }, { - !this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Modify, ""), Messages.IconMaintenance, this::onMaintenance) : null, //$NON-NLS-1$ + !this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Modify), Messages.IconMaintenance, this::onMaintenance) : null, null, - this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Erase, ""), Messages.IconDelete, this::onDelete) : null, //$NON-NLS-1$ - this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Retort, ""), Messages.IconTest, this::onTest) : null, //$NON-NLS-1$ - this.arena.getState() == ArenaState.Join ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Person, ""), Messages.IconInvite, this::onInvite) : null, //$NON-NLS-1$ + this.arena.isMaintenance() ? Main.itemDelete(this::onDelete, Messages.IconDelete) : null, + this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Retort), Messages.IconTest, this::onTest) : null, + this.arena.getState() == ArenaState.Join ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Person), Messages.IconInvite, this::onInvite) : null, null, - this.arena.getTeams().size() > 0 ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_User_group, ""), Messages.IconTeams, this::onTeams) : null, //$NON-NLS-1$ + this.arena.getTeams().size() > 0 ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_User_group), Messages.IconTeams, this::onTeams) : null, }, { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script, ""), Messages.IconRules, this::onRules), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules), null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconComponents, this::onComponents), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconZones, this::onZones), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconSigns, this::onSigns), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench, ""), Messages.IconEntities, this::onEntities), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconComponents, this::onComponents), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconZones, this::onZones), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconSigns, this::onSigns), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconEntities, this::onEntities), } }); } @@ -143,8 +143,7 @@ private void onEntities(McPlayerInterface player, GuiSessionInterface session, C */ private void onSigns(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new SignsPage(this.arena, this)); } /** @@ -236,11 +235,12 @@ private void onDelete(McPlayerInterface player, GuiSessionInterface session, Cli * @param player * @param session * @param gui + * @throws McException */ - private void onDeleteEx(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + private void onDeleteEx(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + this.arena.delete(); + session.setNewPage(this.prevPage); } /** @@ -352,8 +352,10 @@ private void onCheck(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onManual(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new LocalizedLinesList( + Messages.IconManual, + this.arena.getManual(), (s) -> { this.arena.saveData(); }, + this)); } /** @@ -364,8 +366,10 @@ private void onManual(McPlayerInterface player, GuiSessionInterface session, Cli */ private void onLongDescription(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new LocalizedLinesList( + Messages.IconLongDescription, + this.arena.getDescription(), (s) -> { this.arena.saveData(); }, + this)); } /** @@ -466,7 +470,7 @@ public enum Messages implements LocalizedMessageInterface /** * Gui title (arena edit page) */ - @LocalizedMessage(defaultMessage = "Arena %1$d - %2$d") + @LocalizedMessage(defaultMessage = "Arena %1$s - %2$s") @MessageComment(value = {"Gui title (arena edit)"}, args = {@Argument("internal name"), @Argument("display name")}) Title, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java index adca28db..ca034f6e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java @@ -76,7 +76,7 @@ protected List<ArenaInterface> getElements(int start, int limit) } @Override - protected ClickGuiItem map(ArenaInterface elm) + protected ClickGuiItem map(int line, int col, int index, ArenaInterface elm) { return Main.itemArena(elm, (p, s, g) -> onArena(p, s, g, elm)); } @@ -91,7 +91,7 @@ protected ClickGuiItem[] firstLine() Main.itemNextPage(this::onNextPage), null, Main.itemNew(this::onNew, Messages.IconNewArena), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save, ""), Messages.IconImport, this::onImport), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save), Messages.IconImport, this::onImport), null, Main.itemCloseGui() }; diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java new file mode 100644 index 00000000..c51db857 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java @@ -0,0 +1,204 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.Locale; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiItem.GuiItemHandler; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedConfigLine; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; + +/** + * Click gui for editing localized lines; single locale + * + * @author mepeisen + */ +public class LocalizedLinesEditLocale implements ClickGuiPageInterface +{ + + /** consumer to save strings */ + private McConsumer<LocalizedConfigLine> onSave; + + /** consumer to display prev page */ + private ClickGuiItem.GuiItemHandler onPrev; + + /** consumer to delete language */ + private ClickGuiItem.GuiItemHandler onDelete; + + /** title */ + private Serializable title; + + /** locale */ + private Locale locale; + + /** the config line. */ + private LocalizedConfigLine line; + + /** + * @param title + * @param locale + * @param line + * @param onSave + * @param onPrev + * @param onDelete + */ + public LocalizedLinesEditLocale(Serializable title, Locale locale, LocalizedConfigLine line, McConsumer<LocalizedConfigLine> onSave, GuiItemHandler onPrev, GuiItemHandler onDelete) + { + this.title = title; + this.locale = locale; + this.line = line; + this.onSave = onSave; + this.onPrev = onPrev; + this.onDelete = onDelete; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + Main.itemHome(), + Main.itemBack(this.onPrev, Messages.IconBack), + null, + Main.itemDelete(this.onDelete, Messages.IconDelete), + null, + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People), Messages.IconEditUser, this::onUserString, this.title, this.locale.toString()), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Boss), Messages.IconEditAdmin, this::onAdminString, this.title, this.locale.toString()), + null, + Main.itemCloseGui() + }, + }); + } + + @Override + public Serializable getPageName() + { + return this.title; + } + + /** + * edit user string + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onUserString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + final String[] lines = this.line.getUnformattedUserMessageLine(this.locale); + session.setNewPage(new LocalizedLinesEditLocaleList( + this.title, + lines, + (p, s, g) -> s.setNewPage(this), + (p, s, g) -> { + this.line.setUserMessages(this.locale, null); + this.onSave.accept(this.line); + s.setNewPage(this); + }, + (s) -> { + this.line.setUserMessages(this.locale, s); + this.onSave.accept(this.line); + })); + } + + /** + * edit admin string + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onAdminString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + final String[] lines = this.line.getUnformattedAdminMessageLine(this.locale); + session.setNewPage(new LocalizedLinesEditLocaleList( + this.title, + lines, + (p, s, g) -> s.setNewPage(this), + (p, s, g) -> { + this.line.setAdminMessages(this.locale, null); + this.onSave.accept(this.line); + s.setNewPage(this); + }, + (s) -> { + this.line.setAdminMessages(this.locale, s); + this.onSave.accept(this.line); + })); + } + + /** + * Editor to create strings. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.line_edit_locale") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment("back icon") + IconBack, + + /** + * Delete icon + */ + @LocalizedMessage(defaultMessage = "Delete language") + @MessageComment("Delete icon") + IconDelete, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit user text for %1$s - %2$s") + @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) + IconEditUser, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit admin text for %1$s - %2$s") + @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) + IconEditAdmin, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java new file mode 100644 index 00000000..a8db0af9 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java @@ -0,0 +1,302 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiItem.GuiItemHandler; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; + +/** + * Click gui for editing localized lines; single locale and type + * + * @author mepeisen + */ +public class LocalizedLinesEditLocaleList extends AbstractPage<String> +{ + + /** consumer to display prev page */ + private ClickGuiItem.GuiItemHandler onPrev; + + /** consumer to delete language */ + private ClickGuiItem.GuiItemHandler onDelete; + + /** title */ + private Serializable title; + + /** the lines. */ + private List<String> lines; + + /** save function. */ + private McConsumer<String[]> onSave; + + /** string marker */ + private static final String DELETE_MARKER = "$DELETE$"; //$NON-NLS-1$ + + /** string marker */ + private static final String CREATE_BEFORE_MARKER = "$CREATE-BEFORE$"; //$NON-NLS-1$ + + /** string marker */ + private static final String CREATE_AFTER_MARKER = "$CREATE-AFTER"; //$NON-NLS-1$ + + /** + * @param title + * @param lines + * @param onPrev + * @param onDelete + * @param save + */ + public LocalizedLinesEditLocaleList(Serializable title, String[] lines, GuiItemHandler onPrev, GuiItemHandler onDelete, McConsumer<String[]> save) + { + this.lines = Arrays.asList(lines); + this.title = title; + this.onPrev = onPrev; + this.onDelete = onDelete; + this.onSave = save; + } + + @Override + protected int count() + { + return this.lines.size() * ITEMS_PER_LINE; + } + + @Override + protected List<String> getElements(int start, int limit) + { + final List<String> result = new ArrayList<>(); + final int index = start / ITEMS_PER_LINE; + if (index < this.lines.size()) + { + result.add(CREATE_BEFORE_MARKER); + result.add(this.lines.get(index)); + result.add(CREATE_AFTER_MARKER); + result.add(null); + result.add(DELETE_MARKER); + } + return result; + } + + @Override + protected ClickGuiItem map(int line, int col, int index, String elm) + { + if (elm == null) + { + return null; + } + int realLine = (index - col) / ITEMS_PER_LINE; + if (elm == CREATE_BEFORE_MARKER) + { + return Main.itemNew((p, s, g) -> this.onCreateBefore(p, s, g, realLine), Messages.IconCreateBefore); + } + if (elm == CREATE_AFTER_MARKER) + { + return Main.itemNew((p, s, g) -> this.onCreateAfter(p, s, g, realLine), Messages.IconCreateAfter); + } + if (elm == DELETE_MARKER) + { + return Main.itemDelete((p, s, g) -> this.onDeleteLine(p, s, g, realLine), Messages.IconDeleteLine); + } + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, realLine), realLine); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + null, + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + Main.itemBack(this.onPrev, Messages.IconBack), + null, + Main.itemDelete(this.onDelete, Messages.IconDeleteAll), + null, + Main.itemCloseGui() + }; + } + + @Override + public Serializable getPageName() + { + return this.title; + } + + /** + * insert before + * @param player + * @param session + * @param gui + * @param realLine + * @throws McException + */ + private void onCreateBefore(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException + { + this.lines.add(realLine, "<text>"); //$NON-NLS-1$ + this.onSave.accept(this.lines.toArray(new String[this.lines.size()])); + this.onEdit(player, session, gui, realLine); + } + + /** + * insert after + * @param player + * @param session + * @param gui + * @param realLine + * @throws McException + */ + private void onCreateAfter(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException + { + this.lines.add(realLine + 1, "<text>"); //$NON-NLS-1$ + this.onSave.accept(this.lines.toArray(new String[this.lines.size()])); + this.onEdit(player, session, gui, realLine + 1); + } + + /** + * delete line + * @param player + * @param session + * @param gui + * @param realLine + * @throws McException + */ + private void onDeleteLine(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException + { + this.lines.remove(realLine); + this.onRefresh(player, session, gui); + } + + /** + * edit line + * @param player + * @param session + * @param gui + * @param realLine + * @throws McException + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException + { + final String text = this.lines.get(realLine); + + player.openAnvilGui(new QueryText( + text, + () -> {player.openClickGui(new Main(this));}, + (s) -> this.onEdit(player, session, gui, realLine, s), + player.encodeMessage(Messages.EditTextDescription, this.title, realLine))); + } + + /** + * edit line + * @param player + * @param session + * @param gui + * @param realLine + * @param content + * @throws McException + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine, String content) throws McException + { + this.lines.set(realLine, content == null ? "" : content); //$NON-NLS-1$ + this.onSave.accept(this.lines.toArray(new String[this.lines.size()])); + player.openClickGui(new Main(this)); + } + + /** + * Editor to create strings. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.line_edit_locale_list") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment("back icon") + IconBack, + + /** + * Create icon + */ + @LocalizedMessage(defaultMessage = "Create new line before #%1$d") + @MessageComment(value = "Create before icon", args=@Argument("line number")) + IconCreateBefore, + + /** + * Create icon + */ + @LocalizedMessage(defaultMessage = "Create new line after #%1$d") + @MessageComment(value = "Create after icon", args=@Argument("line number")) + IconCreateAfter, + + /** + * Delete icon + */ + @LocalizedMessage(defaultMessage = "Delete line #%1$d") + @MessageComment(value = "Delete line", args=@Argument("line number")) + IconDeleteLine, + + /** + * Delete all + */ + @LocalizedMessage(defaultMessage = "Delete all") + @MessageComment(value = "Delete all") + IconDeleteAll, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit line #%1$d") + @MessageComment(value = "Edit icon", args=@Argument("line number")) + IconEdit, + + /** + * Edit existing: text description + */ + @LocalizedMessageList({"Edit text line for %1$s - %2$d.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) + @MessageComment(value = "Edit existing: text description", args = {@Argument("title"), @Argument("line number")}) + EditTextDescription, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java new file mode 100644 index 00000000..e51a4fda --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java @@ -0,0 +1,243 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedConfigLine; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; + +/** + * Click gui for editing localized lines + * + * @author mepeisen + */ +public class LocalizedLinesList extends AbstractPage<Locale> +{ + + /** title */ + private Serializable title; + + /** config string */ + private LocalizedConfigLine string; + + /** save function */ + private McConsumer<LocalizedConfigLine> save; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** + * @param title + * @param string + * @param save + * @param prevPage + */ + public LocalizedLinesList(Serializable title, LocalizedConfigLine string, McConsumer<LocalizedConfigLine> save, ClickGuiPageInterface prevPage) + { + this.title = title; + this.string = string; + this.save = save; + this.prevPage = prevPage; + } + + @Override + protected int count() + { + return this.string.getLanguages().size(); + } + + @Override + protected List<Locale> getElements(int start, int limit) + { + return this.string.getLanguages().stream().sorted((a, b) -> a.toString().compareTo(b.toString())).skip(start).limit(limit).collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, Locale elm) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, elm), elm.toString()); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + Main.itemBack(this::onBack, Messages.IconBack), + null, + Main.itemNew(this::onNew, Messages.IconCreate), + null, + Main.itemCloseGui() + }; + } + + /** + * new language + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.openAnvilGui(new QueryLocale( + () -> {player.openClickGui(new Main(this));}, + (l) -> this.onNew(player, session, gui, l), + player.encodeMessage(Messages.CreateLocaleDescription, this.title))); + } + + /** + * new language + * @param player + * @param session + * @param gui + * @param locale + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) throws McException + { + this.string.setUserMessages(locale, new String[]{"<text>"}); //$NON-NLS-1$ + this.save.accept(this.string); + session.close(); + player.openClickGui(new Main(new LocalizedLinesEditLocale( + this.title, + locale, + this.string, + this.save, + this::onRefresh, + (p, s, g) -> this.onDelete(p, s, g, locale)))); + } + + /** + * @param p + * @param s + * @param g + * @param locale + * @throws McException + */ + private void onDelete(McPlayerInterface p, GuiSessionInterface s, ClickGuiInterface g, Locale locale) throws McException + { + this.string.setUserMessages(locale, null); + this.string.setAdminMessages(locale, null); + this.save.accept(this.string); + s.setNewPage(this); + } + + /** + * edit language + * @param player + * @param session + * @param gui + * @param locale + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) + { + session.setNewPage(new LocalizedLinesEditLocale( + this.title, + locale, + this.string, + this.save, + this::onRefresh, + (p, s, g) -> this.onDelete(p, s, g, locale))); + } + + /** + * back + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return this.title; + } + + /** + * Editor to create strings. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.lines_editor") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment("back icon") + IconBack, + + /** + * Create icon + */ + @LocalizedMessage(defaultMessage = "New language") + @MessageComment("Create icon (new language)") + IconCreate, + + /** + * Edit icon + */ + @LocalizedMessage(defaultMessage = "Edit %1$s") + @MessageComment(value = "Edit icon", args = @Argument("locale name")) + IconEdit, + + /** + * Create new: locale description + */ + @LocalizedMessageList({"Enter a new language for %1$s.", "Use 2 or 3 letter iso codes.", "For example: 'en' or 'de'."}) + @MessageComment(value = "Create new: locale description", args = @Argument("title")) + CreateLocaleDescription, + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java index 9e480759..2fe0d566 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java @@ -106,10 +106,10 @@ public ClickGuiItem[][] getItems() Main.itemHome(), Main.itemBack(this.onPrev, Messages.IconBack), null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Delete, ""), Messages.IconDelete, this.onDelete), //$NON-NLS-1$ + Main.itemDelete(this.onDelete, Messages.IconDelete), null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People, ""), Messages.IconEditUser, this::onUserString, this.title, this.locale), //$NON-NLS-1$ - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Boss, ""), Messages.IconEditAdmin, this::onAdminString, this.title, this.locale), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People), Messages.IconEditUser, this::onUserString, this.title, this.locale), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Boss), Messages.IconEditAdmin, this::onAdminString, this.title, this.locale), null, Main.itemCloseGui() }, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java index 1be17d8a..004cfcfc 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java @@ -93,9 +93,9 @@ protected List<Locale> getElements(int start, int limit) } @Override - protected ClickGuiItem map(Locale elm) + protected ClickGuiItem map(int line, int col, int index, Locale elm) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text, ""), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, elm), elm.toString()); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, elm), elm.toString()); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java index 1e498eb6..eb9133b3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java @@ -243,7 +243,7 @@ private void onMarketplace(McPlayerInterface player, GuiSessionInterface session */ public static ClickGuiItem itemMarketplace(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Euro, ""), Messages.IconMarketplace, handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Euro), Messages.IconMarketplace, handler); } /** @@ -308,7 +308,7 @@ public static ClickGuiItem itemMinigame(MinigameInterface minigame, ClickGuiItem */ public static ClickGuiItem itemExtensions(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox, ""), Messages.IconExtensions, handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox), Messages.IconExtensions, handler); } /** @@ -319,7 +319,7 @@ public static ClickGuiItem itemExtensions(ClickGuiItem.GuiItemHandler handler) */ public static ClickGuiItem itemExtension(ExtensionInterface extension, ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox, ""), extension.getDisplayName(), handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox), extension.getDisplayName(), handler); } /** @@ -328,7 +328,7 @@ public static ClickGuiItem itemExtension(ExtensionInterface extension, ClickGuiI */ public static ClickGuiItem itemHome() { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Home, ""), Messages.IconBackToMainMenu, Main::onHome); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Home), Messages.IconBackToMainMenu, Main::onHome); } /** @@ -338,7 +338,7 @@ public static ClickGuiItem itemHome() */ public static ClickGuiItem itemOptions(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion, ""), Messages.IconOptions, handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion), Messages.IconOptions, handler); } /** @@ -347,7 +347,31 @@ public static ClickGuiItem itemOptions(ClickGuiItem.GuiItemHandler handler) */ public static ClickGuiItem itemCloseGui() { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Close, ""), Messages.IconClose, Main::onClose); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Close), Messages.IconClose, Main::onClose); + } + + /** + * delete icon + * @param handler + * @param name + * @param nameargs + * @return new icon + */ + public static ClickGuiItem itemDelete(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Erase), name, handler, nameargs); + } + + /** + * cancel icon + * @param handler + * @param name + * @param nameargs + * @return new icon + */ + public static ClickGuiItem itemCancel(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) + { + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Erase), name, handler, nameargs); } /** @@ -359,7 +383,7 @@ public static ClickGuiItem itemCloseGui() */ public static ClickGuiItem itemNew(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_New, ""), name, handler, nameargs); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_New), name, handler, nameargs); } /** @@ -371,7 +395,7 @@ public static ClickGuiItem itemNew(ClickGuiItem.GuiItemHandler handler, Localize */ public static ClickGuiItem itemBack(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Back, ""), name, handler, nameargs); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Back), name, handler, nameargs); } /** @@ -381,7 +405,7 @@ public static ClickGuiItem itemBack(ClickGuiItem.GuiItemHandler handler, Localiz */ public static ClickGuiItem itemRefresh(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Refresh, ""), Messages.IconRefresh, handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Refresh), Messages.IconRefresh, handler); } /** @@ -391,7 +415,7 @@ public static ClickGuiItem itemRefresh(ClickGuiItem.GuiItemHandler handler) */ public static ClickGuiItem itemPrevPage(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Previous, ""), Messages.IconPreviousPage, handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Previous), Messages.IconPreviousPage, handler); } /** @@ -401,7 +425,7 @@ public static ClickGuiItem itemPrevPage(ClickGuiItem.GuiItemHandler handler) */ public static ClickGuiItem itemNextPage(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Next, ""), Messages.IconNextPage, handler); //$NON-NLS-1$ + return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Next), Messages.IconNextPage, handler); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java index 2fe0db86..83d75236 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java @@ -38,8 +38,14 @@ ArenaEdit.Messages.class, // ArenaCreate.Messages.class, YesNoQuestion.Messages.class, + LocalizedLinesList.Messages.class, + LocalizedLinesEditLocale.Messages.class, + LocalizedLinesEditLocaleList.Messages.class, LocalizedStringList.Messages.class, LocalizedStringEditor.Messages.class, + SignsPage.Messages.class, + SignEdit.Messages.class, + SignsCreateChooseType.Messages.class, }) public enum MgClickGuis implements ClickGuiId { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java new file mode 100644 index 00000000..8d8d1146 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java @@ -0,0 +1,413 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.impl.cmd.ArenaCommand; + +/** + * Click gui for editing signs. + * + * @author mepeisen + */ +public class SignEdit implements ClickGuiPageInterface +{ + + /** arena to be edited. */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** sign to be edited. */ + private ArenaSignHandler sign; + + /** + * @param arena + * @param sign + * @param prevPage + */ + public SignEdit(ArenaInterface arena, ArenaSignHandler sign, ClickGuiPageInterface prevPage) + { + this.arena = arena; + this.sign = sign; + this.prevPage = prevPage; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + Main.itemHome(), + Main.itemBack(this::onBack, Messages.IconBack), + null, + Main.itemDelete(this::onDelete, Messages.IconDelete), + null, + null, + null, + null, + Main.itemCloseGui() + }, + null, + { + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleport, this::onTeleport), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) + } + }); + } + + /** + * info + * @param player + * @param session + * @param gui + */ + private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * name + * @param player + * @param session + * @param gui + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * display marker + * @param player + * @param session + * @param gui + */ + private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * teleport + * @param player + * @param session + * @param gui + */ + private void onTeleport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * rules + * @param player + * @param session + * @param gui + */ + private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * delete + * @param player + * @param session + * @param gui + */ + private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + // TODO + player.sendMessage(Main.Messages.NotAvailable); + } + + /** + * back to previous gui + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.sign.getName()); + } + + /** + * The sign create messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.signs_edit") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (sign edit page) + */ + @LocalizedMessage(defaultMessage = "Sign %1$s - %2$s") + @MessageComment(value = {"Gui title (arena edit)"}, args = {@Argument("internal name"), @Argument("display name")}) + Title, + + /** + * back to arenas + */ + @LocalizedMessage(defaultMessage = "Back to arenas list") + @MessageComment({"back to arenas"}) + IconBack, + + /** + * info + */ + @LocalizedMessage(defaultMessage = "Arena info") + @MessageComment({"info"}) + IconInfo, + + /** + * display name + */ + @LocalizedMessage(defaultMessage = "Display name") + @MessageComment({"display name"}) + IconDisplayName, + + /** + * short description + */ + @LocalizedMessage(defaultMessage = "Short description") + @MessageComment({"short description"}) + IconShortDescription, + + /** + * long description + */ + @LocalizedMessage(defaultMessage = "Long description") + @MessageComment({"long description"}) + IconLongDescription, + + /** + * Manual + */ + @LocalizedMessage(defaultMessage = "Manual") + @MessageComment({"manual"}) + IconManual, + + /** + * check + */ + @LocalizedMessage(defaultMessage = "Arena check") + @MessageComment({"check"}) + IconCheck, + + /** + * enable + */ + @LocalizedMessage(defaultMessage = "Enable") + @MessageComment({"enable"}) + IconEnable, + + /** + * disable + */ + @LocalizedMessage(defaultMessage = "Disable") + @MessageComment({"disable"}) + IconDisable, + + /** + * start match + */ + @LocalizedMessage(defaultMessage = "Start match") + @MessageComment({"start match"}) + IconStart, + + /** + * stop match + */ + @LocalizedMessage(defaultMessage = "Stop match") + @MessageComment({"stop match"}) + IconStop, + + /** + * hard reset + */ + @LocalizedMessage(defaultMessage = "Hard reset") + @MessageComment({"hard reset"}) + IconHardReset, + + /** + * players + */ + @LocalizedMessage(defaultMessage = "Players") + @MessageComment({"players"}) + IconPlayers, + + /** + * maintenance + */ + @LocalizedMessage(defaultMessage = "Maintenance (edit arena)") + @MessageComment({"maintenance"}) + IconMaintenance, + + /** + * delete + */ + @LocalizedMessage(defaultMessage = "Delete") + @MessageComment({"delete"}) + IconDelete, + + /** + * test + */ + @LocalizedMessage(defaultMessage = "Test mode") + @MessageComment({"test"}) + IconTest, + + /** + * invite + */ + @LocalizedMessage(defaultMessage = "Invite") + @MessageComment({"invite"}) + IconInvite, + + /** + * rules + */ + @LocalizedMessage(defaultMessage = "Rules") + @MessageComment({"rules"}) + IconRules, + + /** + * components + */ + @LocalizedMessage(defaultMessage = "Components") + @MessageComment({"components"}) + IconComponents, + + /** + * zones + */ + @LocalizedMessage(defaultMessage = "Zones") + @MessageComment({"zones"}) + IconZones, + + /** + * signs + */ + @LocalizedMessage(defaultMessage = "Signs") + @MessageComment({"Signs"}) + IconSigns, + + /** + * entites + */ + @LocalizedMessage(defaultMessage = "Entities") + @MessageComment({"entities"}) + IconEntities, + + /** + * teams + */ + @LocalizedMessage(defaultMessage = "Teams") + @MessageComment({"teams"}) + IconTeams, + + /** + * export + */ + @LocalizedMessage(defaultMessage = "Export") + @MessageComment({"export"}) + IconExport, + + /** + * question: really delete arena + */ + @LocalizedMessage(defaultMessage = "Really delete arena?") + @MessageComment({"question: Really delete arena"}) + QuestionReallyDelete, + + /** + * question: really delete arena + */ + @LocalizedMessageList({"Do you really want to delete this arena?", "The deletion can not be undone.", "If you want to use the arena later please export it first."}) + @MessageComment({"question: Really delete arena"}) + QuestionReallyDeleteDetails, + + /** + * The command output of /mg2 arena + * @see ArenaEdit (onInfo) + */ + @LocalizedMessageList({ + "minigame: %1$s", + "arena: %2$s - %3$s", + "state: %4$s", + "----------", + "%5$s" + }) + @MessageComment(value = { + "The command output of /mg2 arena" + },args = { + @Argument("minigame display name"), + @Argument("arena display name"), + @Argument("arena short description"), + @Argument("arena state"), + @Argument("arena long description"), + }) + InfoOutput, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java new file mode 100644 index 00000000..418e49e5 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java @@ -0,0 +1,237 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.api.util.function.McBiConsumer; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; + +/** + * Page with arena signs; choose type for new sign + * + * @author mepeisen + */ +public class SignsCreateChooseType extends AbstractPage<SignTypeId> +{ + + /** the arena */ + private McBiConsumer<SignTypeId, String> onSave; + + /** previous page */ + private ClickGuiPageInterface prev; + + /** the underlying arena. */ + private ArenaInterface arena; + + /** + * @param arena + * @param onSave + * @param prev + */ + public SignsCreateChooseType(ArenaInterface arena, McBiConsumer<SignTypeId, String> onSave, ClickGuiPageInterface prev) + { + this.arena = arena; + this.onSave = onSave; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return EnumServiceInterface.instance().getEnumValues(SignTypeId.class).size(); + } + + /** + * Converts sign type to string + * @param signType + * @return sign type + */ + private String toString(SignTypeId signType) + { + return signType.getPluginName() + "/" + signType.name(); //$NON-NLS-1$ + } + + @Override + protected List<SignTypeId> getElements(int start, int limit) + { + final Set<SignTypeId> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); + result.addAll(EnumServiceInterface.instance().getEnumValues(SignTypeId.class)); + return result. + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, SignTypeId elm) + { + final ItemStack item = new ItemStack(Material.SIGN); + return new ClickGuiItem(item, Messages.IconSign, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + null, + null, + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + null, + null, + null, + Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) + }; + } + + /** + * Returns a free name with given prefix. + * @param prefix + * @return free name + */ + private String getFreeName(String prefix) + { + int i = 1; + while (true) + { + final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ + + @SuppressWarnings("cast") + final Optional<ArenaSignHandler> handler = this.arena.getSigns().stream(). + map(s -> (ArenaSignHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + + if (!handler.isPresent()) + { + return name; + } + + i++; + } + } + + /** + * type chosen + * @param player + * @param session + * @param gui + * @param type + * @throws McException + */ + private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, SignTypeId type) throws McException + { + final String text = this.getFreeName(type.name().toLowerCase()); + + player.openAnvilGui(new QueryText( + text, + () -> {player.openClickGui(new Main(this.prev));}, + (s) -> this.onName(player, session, gui, type, s), + player.encodeMessage(Messages.TextDescription))); + } + + /** + * name selected + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, SignTypeId type, String name) throws McException + { + this.onSave.accept(type, name); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.sign_create_choose_type") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (sign types page) + */ + @LocalizedMessage(defaultMessage = "Type for new sign in arena %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (sign types page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The Cancel + */ + @LocalizedMessage(defaultMessage = "Cancel creation") + @MessageComment({"cancel icon"}) + IconCancel, + + /** + * The sign icon + */ + @LocalizedMessage(defaultMessage = "type %1$s") + @MessageComment(value = {"sign type icon"}, args=@Argument("sign name")) + IconSign, + + /** + * Text description + */ + @LocalizedMessageList({"Enter the name of the new sign.", "The name is only used internal."}) + @MessageComment("Text description for sign name") + TextDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java new file mode 100644 index 00000000..a98de879 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java @@ -0,0 +1,218 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.objects.SignTypeId; +import de.minigameslib.mclib.impl.skin.SkinFromPlayer; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.cmd.gui.LocalizedLinesEditLocaleList.Messages; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; + +/** + * Page with arena signs + * + * @author mepeisen + */ +public class SignsPage extends AbstractPage<ArenaSignHandler> +{ + + /** the arena */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prev; + + /** + * Constructor to create the first page + * @param arena + * @param prev + */ + public SignsPage(ArenaInterface arena, ClickGuiPageInterface prev) + { + this.arena = arena; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return this.arena.getSigns().size(); + } + + @Override + protected List<ArenaSignHandler> getElements(int start, int limit) + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + return this.arena.getSigns(). + stream(). + skip(start).limit(limit). + map(osi::findSign). + map(s -> (ArenaSignHandler) s.getHandler()). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, ArenaSignHandler elm) + { + final ItemStack item = new ItemStack(Material.SIGN); + return new ClickGuiItem(item, Messages.IconSign, (p, s, g) -> this.onEdit(p, s, g, elm), elm.getName()); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + Main.itemNew(this::onNew, Messages.IconNewSign), + null, + Main.itemCloseGui() + }; + } + + /** + * sign edit + * @param player + * @param session + * @param gui + * @param sign + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaSignHandler sign) + { + session.setNewPage(new SignEdit(this.arena, sign, this)); + } + + /** + * new sign + * @param player + * @param session + * @param gui + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new SignsCreateChooseType(this.arena, (type, name) -> onNew(player, session, gui, type, name), this)); + } + + /** + * new sign + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, SignTypeId type, String name) throws McException + { + @SuppressWarnings("cast") + final Optional<ArenaSignHandler> handler = this.arena.getSigns().stream(). + map(s -> (ArenaSignHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + AdminToolHelper.onCreateSign(player, this.arena, name, type, s -> player.openClickGui(new Main(new SignEdit(this.arena, s, this)))); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.signs") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (signs page) + */ + @LocalizedMessage(defaultMessage = "Signs for arena %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (signs page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment({"back icon"}) + IconBack, + + /** + * The new sign + */ + @LocalizedMessage(defaultMessage = "New sign") + @MessageComment({"new sign icon"}) + IconNewSign, + + /** + * The sign icon + */ + @LocalizedMessage(defaultMessage = "sign %1$s") + @MessageComment(value = {"sign icon"}, args=@Argument("sign name")) + IconSign, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java index 7ce987f3..036ba468 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java @@ -94,19 +94,19 @@ public ClickGuiItem[][] getItems() { return Main.withFillers(new ClickGuiItem[][]{ { - this.details == null ? null : new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Help, ""), Messages.IconHelp, this::onHelp), //$NON-NLS-1$ + this.details == null ? null : new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Help), Messages.IconHelp, this::onHelp), }, null, null, { null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Yes, ""), Messages.IconYes, this.onYes), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Yes), Messages.IconYes, this.onYes), null, null, null, null, null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_No, ""), Messages.IconNo, this.onNo), //$NON-NLS-1$ + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_No), Messages.IconNo, this.onNo), null } }); diff --git a/v2/pom.xml b/v2/pom.xml index 63cda261..2f21dbaf 100644 --- a/v2/pom.xml +++ b/v2/pom.xml @@ -18,7 +18,7 @@ <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> <latest.spigot.version>1.11.2</latest.spigot.version> - <mclib.version>0.0.5-SNAPSHOT</mclib.version> + <mclib.version>0.0.6-SNAPSHOT</mclib.version> <mglib.version>2.0.0-SNAPSHOT</mglib.version> </properties> From 64feefafcba239aec0a1b316d5fa473b23bd7236 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 9 Apr 2017 15:14:40 +0200 Subject: [PATCH 216/266] Conquer team selector gui --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 60c51772..a47a9d0d 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,10 @@ * (Bungeecord) Clicking a join sign will now throw all players of a party to the minigame server (https://github.com/MysticCity/MinigamesAPI/issues/208) +###### Conquer + +* Team selector gui (https://github.com/MysticCity/MinigamesAPI/issues/216) + ###### MobEscape * Fixed runtime error in 1.8.5 to 1.8.9 From 4ae294b726066687fbd89a37b0a6c7511dfff50e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 9 Apr 2017 15:26:59 +0200 Subject: [PATCH 217/266] fixed NPE --- .../com/comze_instancelabs/minigamesapi/util/Cuboid.java | 6 +++--- changelog.md | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java index a4fe8995..329cfbbb 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java @@ -88,7 +88,7 @@ public boolean isAreaWithinArea(final Cuboid area) */ public boolean containsLoc(final Location loc) { - if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + if (loc == null || loc.getWorld() == null || !loc.getWorld().equals(this.highPoints.getWorld())) { return false; } @@ -103,7 +103,7 @@ public boolean containsLocWithoutY(final Location loc) { return false; } - if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + if (loc == null || loc.getWorld() == null || !loc.getWorld().equals(this.highPoints.getWorld())) { return false; } @@ -118,7 +118,7 @@ public boolean containsLocWithoutYD(final Location loc) { return false; } - if (loc == null || !loc.getWorld().equals(this.highPoints.getWorld())) + if (loc == null || loc.getWorld() == null || !loc.getWorld().equals(this.highPoints.getWorld())) { return false; } diff --git a/changelog.md b/changelog.md index a47a9d0d..166f36b5 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ ###### All * (Bungeecord) Clicking a join sign will now throw all players of a party to the minigame server (https://github.com/MysticCity/MinigamesAPI/issues/208) +* fixed NullPointerException (https://github.com/MysticCity/MinigamesAPI/issues/243) ###### Conquer From 148192894898d656a731f0f239018cb9ec83078c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 11 Apr 2017 08:04:08 +0200 Subject: [PATCH 218/266] backport of match timer --- .../minigamesapi/Arena.java | 204 +++++++++-- .../minigamesapi/MatchTimer.java | 341 ++++++++++++++++++ .../minigamesapi/config/MessagesConfig.java | 9 +- changelog.md | 3 + 4 files changed, 521 insertions(+), 36 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/MatchTimer.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index c13bf0c8..7c713c98 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -34,7 +34,6 @@ import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import org.bukkit.scheduler.BukkitTask; import com.comze_instancelabs.minigamesapi.arcade.ArcadeInstance; import com.comze_instancelabs.minigamesapi.events.ArenaStartEvent; @@ -231,7 +230,7 @@ public class Arena int global_coin_multiplier = 1; - private BukkitTask maximum_game_time; + // private BukkitTask maximum_game_time; ArrayList<ItemStack> global_drops = new ArrayList<>(); @@ -251,6 +250,8 @@ public class Arena /** the arenam logger. */ protected ArenaLogger logger; + protected MatchTimer timer; + /** * Creates a normal singlespawn arena * @@ -266,6 +267,26 @@ public Arena(final JavaPlugin plugin, final String name) this.sr = new SmartReset(this); this.pli = MinigamesAPI.getAPI().getPluginInstance(plugin); this.logger = new ArenaLogger(this.plugin.getLogger(), this.name); + + // Maximum game time: + this.timer = new MatchTimer((int) this.plugin.getConfig().getDouble(ArenaConfigStrings.CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES) * 60, () -> { + for (final String p_ : Arena.this.getAllPlayers()) + { + if (Validator.isPlayerValid(Arena.this.plugin, p_, Arena.this)) + { + Bukkit.getPlayer(p_).sendMessage(Arena.this.pli.getMessagesConfig().stop_cause_maximum_game_time_now); + } + } + Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> this.stopArena(), 1); + }, (sec) -> { + for (final String p_ : Arena.this.getAllPlayers()) + { + if (Validator.isPlayerValid(Arena.this.plugin, p_, Arena.this)) + { + Bukkit.getPlayer(p_).sendMessage(Arena.this.pli.getMessagesConfig().stop_cause_maximum_game_time_sec.replace("<sec>", String.valueOf(sec))); + } + } + }); } /** @@ -814,7 +835,8 @@ public void joinPlayerLobby(final UUID playerUuid) // arena full // if player vip -> kick someone and continue - this.logger.fine(playername + " is vip: " + player.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)); //$NON-NLS-1$ + this.logger.fine(playername + " is vip: " //$NON-NLS-1$ + + player.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)); if (!player.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)) { // no VIP. @@ -829,7 +851,8 @@ public void joinPlayerLobby(final UUID playerUuid) if (Validator.isPlayerOnline(p_)) { final Player player_ = Bukkit.getPlayer(p_); - if (!player_.hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)) + if (!player_ + .hasPermission(MinigamesAPI.getAPI().getPermissionGamePrefix(this.plugin.getName()) + ArenaPermissionStrings.PREFIX + this.getInternalName() + ArenaPermissionStrings.VIP)) { this.leavePlayer(p_, false, true); player_.sendMessage(this.pli.getMessagesConfig().you_got_kicked_because_vip_joined); @@ -1186,7 +1209,7 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) { this.pli.global_arcade_spectator.remove(playername); } - + p.removePotionEffect(PotionEffectType.JUMP); p.removePotionEffect(PotionEffectType.INVISIBILITY); Util.teleportPlayerFixed(p, this.mainlobby); @@ -1196,8 +1219,10 @@ private void leavePlayerRaw(final String playername, final boolean fullLeave) { p.setAllowFlight(false); } - if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_GAMEMMODE)) p.setGameMode(ap.getOriginalGamemode()); - if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_XP)) p.setLevel(ap.getOriginalXplvl()); + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_GAMEMMODE)) + p.setGameMode(ap.getOriginalGamemode()); + if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_XP)) + p.setLevel(ap.getOriginalXplvl()); if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.RESET_INVENTORY)) { p.getInventory().setContents(ap.getInventory()); @@ -1561,6 +1586,7 @@ public void startLobby() /** * Checks if the items should be removed from lobby bounds during lobby startup + * * @return clears items during arena startup */ protected boolean removeItemsOnLobbyStartup() @@ -1570,6 +1596,7 @@ protected boolean removeItemsOnLobbyStartup() /** * Checks if the items should be removed from arena bounds during game startup + * * @return clears items during arena startup */ protected boolean removeItemsOnGameStartup() @@ -1579,6 +1606,7 @@ protected boolean removeItemsOnGameStartup() /** * Checks if the items should be removed from arena bounds during game stop + * * @return clears items during arena stop */ protected boolean removeItemsOnGameStop() @@ -1648,12 +1676,12 @@ public void startLobby(final boolean countdown) } }, 5L, 20).getTaskId(); } - + protected void onLobbyCountdownComplete() { Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> Arena.this.start(true), 10L); } - + protected void setLobbyCountdownLevel(final Arena a) { for (final String p_2 : a.getAllPlayers()) @@ -1669,7 +1697,7 @@ protected void setLobbyCountdownLevel(final Arena a) } } } - + protected void sendLobbyCountdownMsg(final boolean countdown, final Arena a, final Sound lobbycountdown_sound) { for (final String p_1 : a.getAllPlayers()) @@ -1679,7 +1707,8 @@ protected void sendLobbyCountdownMsg(final boolean countdown, final Arena a, fin final Player p1 = Bukkit.getPlayer(p_1); if (countdown) { - Util.sendMessage(Arena.this.plugin, p1, Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll(ArenaMessageStrings.COUNT, Integer.toString(Arena.this.currentlobbycount))); + Util.sendMessage(Arena.this.plugin, p1, + Arena.this.pli.getMessagesConfig().teleporting_to_arena_in.replaceAll(ArenaMessageStrings.COUNT, Integer.toString(Arena.this.currentlobbycount))); if (lobbycountdown_sound != null) { p1.playSound(p1.getLocation(), lobbycountdown_sound, 1F, 0F); @@ -1692,7 +1721,8 @@ protected void sendLobbyCountdownMsg(final boolean countdown, final Arena a, fin /** * Instantly starts the arena, teleports players and udpates the arena. * - * @param tp {@code true} to teleport players to spawns + * @param tp + * {@code true} to teleport players to spawns */ public void start(final boolean tp) { @@ -1866,16 +1896,7 @@ void startRaw() } // Maximum game time: - this.maximum_game_time = Bukkit.getScheduler().runTaskLater(this.plugin, () -> { - for (final String p_ : Arena.this.getAllPlayers()) - { - if (Validator.isPlayerValid(Arena.this.plugin, p_, Arena.this)) - { - Bukkit.getPlayer(p_).sendMessage(Arena.this.pli.getMessagesConfig().stop_cause_maximum_game_time); - } - } - Bukkit.getScheduler().runTaskLater(Arena.this.plugin, () -> this.stopArena(), 5 * 20L); - }, 20L * 60L * (long) this.plugin.getConfig().getDouble(ArenaConfigStrings.CONFIG_DEFAULT_MAX_GAME_TIME_IN_MINUTES) - 5 * 20L); + this.timer.onArenaStart(this.plugin); } /** @@ -1899,6 +1920,7 @@ public synchronized void stopArena() /** * Returns the possible entites to be removed for reset + * * @param player * @return entites */ @@ -1909,6 +1931,7 @@ protected List<Entity> getResetEntitiesOnPlayerLeave(String player) /** * Checks if given entity is removed for resetting the map + * * @param player * @param e * @return {@code true} for removing the entity @@ -1920,6 +1943,7 @@ protected boolean isEntityResetOnPlayerLeave(String player, Entity e) /** * Returns the possible entites to be removed for reset + * * @param player * @return entites */ @@ -1930,15 +1954,16 @@ protected List<Entity> getResetEntities(String player) /** * Checks if given entity is removed for resetting the map + * * @param player * @param e * @return {@code true} for removing the entity */ protected boolean isEntityReset(String player, Entity e) { - return e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.ENDERMAN || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE - || e.getType() == EntityType.SKELETON || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER - || e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.ARROW; + return e.getType() == EntityType.DROPPED_ITEM || e.getType() == EntityType.ENDERMAN || e.getType() == EntityType.SLIME || e.getType() == EntityType.ZOMBIE || e.getType() == EntityType.SKELETON + || e.getType() == EntityType.SPIDER || e.getType() == EntityType.CREEPER || e.getType() == EntityType.VILLAGER || e.getType() == EntityType.ARMOR_STAND + || e.getType() == EntityType.ARROW; } /** @@ -1948,10 +1973,7 @@ protected void stop() { Bukkit.getServer().getPluginManager().callEvent(new ArenaStopEvent(this.plugin, this)); final Arena a = this; - if (this.maximum_game_time != null) - { - this.maximum_game_time.cancel(); - } + this.timer.onArenaStop(); this.temp_players = new ArrayList<>(this.players); if (!this.temp_delay_stopped) { @@ -2199,8 +2221,8 @@ public void onEliminated(final String playername) { if (Validator.isPlayerOnline(p_)) { - Bukkit.getPlayer(p_).sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().player_was_killed_by.replaceAll(ArenaMessageStrings.PLAYER, playername) - .replaceAll(ArenaMessageStrings.KILLER, killer.getName())); + Bukkit.getPlayer(p_).sendMessage(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().player_was_killed_by + .replaceAll(ArenaMessageStrings.PLAYER, playername).replaceAll(ArenaMessageStrings.KILLER, killer.getName())); } } } @@ -2440,9 +2462,125 @@ public void joinSpectate(Player p) ap.setInventories(p.getInventory().getContents(), p.getInventory().getArmorContents()); ap.setOriginalGamemode(p.getGameMode()); ap.setOriginalXplvl(p.getLevel()); - pli.global_players.put(playername, this); - pli.global_lost.put(playername, this); + this.pli.global_players.put(playername, this); + this.pli.global_lost.put(playername, this); this.spectateGame(playername); } + // match timer + + /** + * Pauses the current match; causing the timer to halt + */ + public void timerPause() + { + this.timer.pause(); + } + + /** + * Resumes the current match; causing the timer to restart after {@link #pause()} was called + */ + public void timerResume() + { + this.timer.resume(); + } + + /** + * Resets the timer; starting the timer from zero + */ + public void timerResetAndResume() + { + this.timer.resetAndResume(); + } + + /** + * Resets the timer; pausing the timer at zero + */ + public void timerResetAndPause() + { + this.timer.resetAndPause(); + } + + /** + * Returns the current match time in millis + * + * @return match time; respects any call to the methods on this interface + */ + public long timerGetDurationMillis() + { + return this.timer.getDurationMillis(); + } + + /** + * Returns the maximum time in millis + * + * @return maximum time; respects any call to the methods on this interface + */ + public long timerGetMaxMillis() + { + return this.timer.getMaxMillis(); + } + + /** + * Adds milliseconds to maximum time + * + * @param millis + */ + public void timerAddMaxMillis(long millis) + { + this.timer.addMaxMillis(this.plugin, millis); + } + + /** + * Substracts milliseconds from maximum time; if duration gets below max millis the game ends + * + * @param millis + */ + public void timerSubstractMaxMillis(long millis) + { + this.timer.substractMaxMillis(millis); + } + + /** + * Sets the maximum time milliseconds + * + * @param millis + * new millis; zero or below zero to stop timer; if set to positive value and previous value was set to zero or below zero the timer starts + */ + public void timerSetMaxMillis(long millis) + { + this.timer.setMaxMillis(millis); + } + + /** + * Adds milliseconds to played time + * + * @param millis + */ + public void timerAddDurationMillis(long millis) + { + this.timer.addDurationMillis(millis); + } + + /** + * Substracts milliseconds from played time; if duration gets below max millis the game ends + * + * @param millis + */ + public void timerSubstractDurationMillis(long millis) + { + this.timer.substractDurationMillis(millis); + } + + /** + * Sets the played time milliseconds + * + * @param millis + * new millis + */ + public void timerSetDurationMillis(long millis) + { + this.timer.setDurationMillis(millis); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MatchTimer.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MatchTimer.java new file mode 100644 index 00000000..42f84cda --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MatchTimer.java @@ -0,0 +1,341 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.function.Consumer; +import java.util.logging.Logger; + +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.scheduler.BukkitTask; + +/** + * Backport of v2 BasicMatchTimer rule + * + * @author mepeisen + * + */ +public class MatchTimer +{ + + + /** + * maximum seconds + */ + private int seconds; + + /** + * the current match duration in millis + */ + private long matchDuration; + + /** + * the current match maxmimum time + */ + private long matchTime; + + /** + * Flag for paused or running timers; {@code true} if timer is paused + */ + private boolean paused; + + /** + * Last start of timer + */ + private LocalDateTime lastStart = LocalDateTime.now(); + + /** + * The timer task + */ + private BukkitTask timerTask; + + private Runnable arenaAbort; + + private Consumer<Integer> arenaNotify; + + private boolean warn60 = true; + + private boolean warn30 = true; + + private boolean warn20 = true; + + private boolean warn10 = true; + + private boolean warn5 = true; + + private boolean warn4 = true; + + private boolean warn3 = true; + + private boolean warn2 = true; + + private boolean warn1 = true; + + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(MatchTimer.class.getName()); + + /** + */ + public MatchTimer(int maxSeconds, Runnable arenaAbort, Consumer<Integer> arenaNotify) + { + this.setMaxSeconds(maxSeconds); + this.arenaAbort = arenaAbort; + this.arenaNotify = arenaNotify; + } + + public int getMaxSeconds() + { + return this.seconds; + } + + public void setMaxSeconds(int seconds) + { + this.seconds = seconds; + this.matchTime = this.seconds * 1000L; + } + + public void pause() + { + if (!this.paused) + { + this.paused = true; + this.matchDuration += this.lastStart.until(LocalDateTime.now(), ChronoUnit.MILLIS); + } + } + + public void resume() + { + if (this.paused) + { + this.paused = false; + this.lastStart = LocalDateTime.now(); + } + } + + public void resetAndResume() + { + this.paused = false; + this.lastStart = LocalDateTime.now(); + this.matchDuration = 0; + this.fixWarnings(); + } + + public void resetAndPause() + { + this.paused = true; + this.matchDuration = 0; + this.fixWarnings(); + } + + public long getDurationMillis() + { + if (this.paused) + { + return this.matchDuration; + } + return this.matchDuration + this.lastStart.until(LocalDateTime.now(), ChronoUnit.MILLIS); + } + + public long getMaxMillis() + { + return this.matchTime; + } + + public void addMaxMillis(Plugin plugin, long millis) + { + this.matchTime += millis; + if (this.matchTime > 0 && this.timerTask == null) + { + this.startTimer(plugin); + } + this.fixWarnings(); + } + + public void substractMaxMillis(long millis) + { + this.matchTime -= millis; + if (this.matchTime <= 0) + { + this.stopTimer(); + } + this.fixWarnings(); + } + + public void setMaxMillis(long millis) + { + this.matchTime = millis; + if (this.matchTime <= 0) + { + this.stopTimer(); + } + this.fixWarnings(); + } + + public void addDurationMillis(long millis) + { + this.matchDuration += millis; + this.fixWarnings(); + } + + public void substractDurationMillis(long millis) + { + this.matchDuration -= millis; + this.fixWarnings(); + } + + public void setDurationMillis(long millis) + { + this.matchDuration = millis; + this.fixWarnings(); + } + + public void onArenaStart(Plugin plugin) + { + this.matchTime = this.seconds * 1000L; + this.matchDuration = 0; + this.lastStart = LocalDateTime.now(); + this.paused = false; + if (this.matchTime > 0) + { + this.startTimer(plugin); + } + this.fixWarnings(); + } + + + public void onArenaStop() + { + this.stopTimer(); + } + + /** + * Starts the bukkit timer task + */ + private void startTimer(Plugin plugin) + { + if (this.timerTask == null) + { + this.timerTask = new BukkitRunnable() { + + @Override + public void run() + { + MatchTimer.this.onTimer(MatchTimer.this.timerTask); + } + }.runTaskTimer(plugin, 20L, 20L); + } + } + + /** + * Stops the bukkit timer task + */ + private void stopTimer() + { + if (this.timerTask != null) + { + this.timerTask.cancel(); + this.timerTask = null; + } + } + + /** + * Fixes warnings depending on remaining game time + */ + private void fixWarnings() + { + long delta = this.getMaxMillis() - this.getDurationMillis(); + final int sec = (int) (delta / 1000); + this.warn60 = sec >= 60; + this.warn30 = sec >= 30; + this.warn20 = sec >= 20; + this.warn10 = sec >= 10; + this.warn5 = sec >= 5; + this.warn4 = sec >= 4; + this.warn3 = sec >= 3; + this.warn2 = sec >= 2; + this.warn1 = sec >= 1; + } + + /** + * On timer tick + * + * @param task + */ + private void onTimer(BukkitTask task) + { + if (!this.paused) + { + long delta = this.getMaxMillis() - this.getDurationMillis(); + if (delta <= 0) + { + this.timerTask.cancel(); + this.timerTask = null; + this.arenaAbort.run(); + } + else + { + final int sec = (int) (delta / 1000); + if (this.warn60 && sec <= 60) + { + this.arenaNotify.accept(60); + this.warn60 = false; + } + else if (this.warn30 && sec <= 30) + { + this.arenaNotify.accept(30); + this.warn30 = false; + } + else if (this.warn20 && sec <= 20) + { + this.arenaNotify.accept(20); + this.warn20 = false; + } + else if (this.warn10 && sec <= 10) + { + this.arenaNotify.accept(10); + this.warn10 = false; + } + else if (this.warn5 && sec <= 5) + { + this.arenaNotify.accept(5); + this.warn5 = false; + } + else if (this.warn4 && sec <= 4) + { + this.arenaNotify.accept(4); + this.warn4 = false; + } + else if (this.warn3 && sec <= 3) + { + this.arenaNotify.accept(3); + this.warn3 = false; + } + else if (this.warn2 && sec <= 2) + { + this.arenaNotify.accept(2); + this.warn2 = false; + } + else if (this.warn1 && sec <= 1) + { + this.arenaNotify.accept(1); + this.warn1 = false; + } + } + } + } +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index 46c23d91..8f450327 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -152,7 +152,8 @@ public void init() this.getConfig().addDefault("messages.you_received_rewards_2", this.you_received_rewards_2); this.getConfig().addDefault("messages.you_received_rewards_3", this.you_received_rewards_3); this.getConfig().addDefault("messages.already_in_arena", this.already_in_arena); - this.getConfig().addDefault("messages.stop_cause_maximum_game_time", this.stop_cause_maximum_game_time); + this.getConfig().addDefault("messages.stop_cause_maximum_game_time_sec", this.stop_cause_maximum_game_time_sec); + this.getConfig().addDefault("messages.stop_cause_maximum_game_time_now", this.stop_cause_maximum_game_time_now); this.getConfig().addDefault("messages.compass.no_player_found", this.compass_no_player_found); this.getConfig().addDefault("messages.compass.found_player", this.compass_player_found); this.getConfig().addDefault("messages.you_got_a_participation_reward", this.you_got_a_participation_reward); @@ -233,7 +234,8 @@ public void init() this.you_received_rewards_2 = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_received_rewards_2")); this.you_received_rewards_3 = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_received_rewards_3")); this.already_in_arena = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.already_in_arena")); - this.stop_cause_maximum_game_time = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.stop_cause_maximum_game_time")); + this.stop_cause_maximum_game_time_sec = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.stop_cause_maximum_game_time_sec")); + this.stop_cause_maximum_game_time_now = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.stop_cause_maximum_game_time_now")); this.compass_no_player_found = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.compass.no_player_found")); this.compass_player_found = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.compass.found_player")); this.you_got_a_participation_reward = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.you_got_a_participation_reward")); @@ -314,7 +316,8 @@ public void init() public String you_received_rewards_2 = " &aand "; public String you_received_rewards_3 = "&2<itemreward>&a!"; public String already_in_arena = "&cYou are already in an arena."; - public String stop_cause_maximum_game_time = "&cThe game is stopping in 5 seconds because the maximum game time was reached."; + public String stop_cause_maximum_game_time_now = "&cThe game is stopping now because the maximum game time was reached."; + public String stop_cause_maximum_game_time_sec = "&cThe game is stopping in <sec> seconds because the maximum game time was reached."; public String compass_no_player_found = "&cNo near players found!"; public String compass_player_found = "&aThe compass is tracking &3<player> &anow. Distance: <distance>"; public String you_got_a_participation_reward = "&aYou received &2<economyreward> &afor participating!"; diff --git a/changelog.md b/changelog.md index 166f36b5..89d80946 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,9 @@ * (Bungeecord) Clicking a join sign will now throw all players of a party to the minigame server (https://github.com/MysticCity/MinigamesAPI/issues/208) * fixed NullPointerException (https://github.com/MysticCity/MinigamesAPI/issues/243) +* *v2-backport* new chat countdown while reaching max game time (https://github.com/MysticCity/MinigamesAPI/issues/224) +* *v2-backport* api extension for minigames that want to influence the max game time (https://github.com/MysticCity/MinigamesAPI/issues/224) +* *v2-backport* support for unlimited games (max game time set to zero) (https://github.com/MysticCity/MinigamesAPI/issues/224) ###### Conquer From 41f4bbf9a489bffb227139fe5a7a872e5cfb951f Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 11 Apr 2017 20:14:52 +0200 Subject: [PATCH 219/266] javadoc --- .../main/java/com/comze_instancelabs/minigamesapi/Arena.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 7c713c98..44e7499e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -2478,7 +2478,7 @@ public void timerPause() } /** - * Resumes the current match; causing the timer to restart after {@link #pause()} was called + * Resumes the current match; causing the timer to restart after {@link #timerPause()} was called */ public void timerResume() { From a4ed8c587815dd9271c78afb5bb91cd3c3d5b8f3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 11 Apr 2017 20:34:47 +0200 Subject: [PATCH 220/266] fixed false positive (destroy mode) --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 89d80946..d099d007 100644 --- a/changelog.md +++ b/changelog.md @@ -17,6 +17,7 @@ ###### MobEscape * Fixed runtime error in 1.8.5 to 1.8.9 +* Fixed false positive error: Destroy mode invalid (https://github.com/MysticCity/MinigamesAPI/issues/225) From 4213e9d39a74e9810bbfc6f9e82dfb28e8480fe3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 12 Apr 2017 06:23:51 +0200 Subject: [PATCH 221/266] bugfixes --- .../minigamesapi/Effects.java | 37 ++++++++++--------- .../minigamesapi/commands/CommandHandler.java | 29 +++++++++------ changelog.md | 2 + 3 files changed, 40 insertions(+), 28 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java index 7d1e2182..a5c63c26 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Effects.java @@ -121,29 +121,36 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, final int id = -p.getEntityId() - 1000; - final Object packet = packetPlayOutNamedEntityConstr.newInstance(getHandle.invoke(p)); - Effects.setValue(packet, "a", id); + final Object packetNamedEntity = packetPlayOutNamedEntityConstr.newInstance(getHandle.invoke(p)); + Effects.setValue(packetNamedEntity, "a", id); - final Object packet_ = packetPlayOutBedConstr.newInstance(); - Effects.setValue(packet_, "a", id); + final Object packetFakeBed = packetPlayOutBedConstr.newInstance(); + Effects.setValue(packetFakeBed, "a", id); + final Object packetFakeBed2 = packetPlayOutBedConstr.newInstance(); + Effects.setValue(packetFakeBed2, "a", id); if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_8_R1)) { final Class<?> bpClazz = Class.forName("net.minecraft.server." + MinigamesAPI.getAPI().internalServerVersion + ".BlockPosition"); - final Constructor<?> ctor = bpClazz.getDeclaredConstructor(Integer.class, Integer.class, Integer.class); - Effects.setValue(packet_, "b", ctor.newInstance(x, y, z)); + final Constructor<?> ctor = bpClazz.getDeclaredConstructor(int.class, int.class, int.class); + Effects.setValue(packetFakeBed, "b", ctor.newInstance(x, y, z)); + + Effects.setValue(packetFakeBed2, "b", ctor.newInstance(0, 0, 0)); } else { - Effects.setValue(packet_, "b", x); - Effects.setValue(packet_, "c", y); - Effects.setValue(packet_, "d", z); + Effects.setValue(packetFakeBed, "b", x); + Effects.setValue(packetFakeBed, "c", y); + Effects.setValue(packetFakeBed, "d", z); + Effects.setValue(packetFakeBed2, "b", 0); + Effects.setValue(packetFakeBed2, "c", 0); + Effects.setValue(packetFakeBed2, "d", 0); } for (final String p_ : a.getAllPlayers()) { final Player p__ = Bukkit.getPlayer(p_); - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet); - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet_); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packetNamedEntity); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packetFakeBed); } // Move the effect (fake player) to 0 0 0 after 4 seconds @@ -152,10 +159,6 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, return Bukkit.getScheduler().runTaskLater(MinigamesAPI.getAPI(), () -> { try { - Effects.setValue(packet_, "a", id); - Effects.setValue(packet_, "b", 0); - Effects.setValue(packet_, "c", 0); - Effects.setValue(packet_, "d", 0); for (final String p_ : tempp) { if (Validator.isPlayerOnline(p_)) @@ -163,8 +166,8 @@ public static BukkitTask playFakeBed(final Arena a, final Player p, final int x, final Player p__ = Bukkit.getPlayer(p_); if (p__.getWorld() == currentworld) { - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet); - sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packet_); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packetNamedEntity); + sendPacket.invoke(playerConnection.get(getHandle.invoke(p__)), packetFakeBed2); } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 94da1a8e..4a567bb0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -793,7 +793,7 @@ public boolean stopArena(final PluginInstance pli, final CommandSender sender, f { final Arena a = pli.global_players.get(p.getName()); a.stopArena(); - sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", args[1]).replaceAll("<action>", "stopped")); + sender.sendMessage(pli.getMessagesConfig().arena_action.replaceAll("<arena>", a.getInternalName()).replaceAll("<action>", "stopped")); return true; } sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); @@ -1080,35 +1080,42 @@ public boolean spectate(final PluginInstance pli, final CommandSender sender, fi playername = args[2]; } } - final Arena temp = pli.getArenaByName(args[1]); - if (temp != null) + else if (args.length > 1) { - if (temp.getArenaState() == ArenaState.INGAME) + final Arena temp = pli.getArenaByName(args[1]); + if (temp != null) { - if (!temp.containsPlayer(playername)) + if (temp.getArenaState() == ArenaState.INGAME) { - if (!sender.hasPermission(uber_permission + ".spectate")) + if (!temp.containsPlayer(playername)) { - sender.sendMessage(pli.getMessagesConfig().no_perm); + if (!sender.hasPermission(uber_permission + ".spectate")) + { + sender.sendMessage(pli.getMessagesConfig().no_perm); + } + else + { + temp.joinSpectate(p); + } } else { - temp.joinSpectate(p); + sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); } } else { - sender.sendMessage(pli.getMessagesConfig().you_already_are_in_arena.replaceAll("<arena>", temp.getInternalName())); + sender.sendMessage(pli.getMessagesConfig().no_game_started.replaceAll("<arena>", args[1])); } } else { - sender.sendMessage(pli.getMessagesConfig().no_game_started.replaceAll("<arena>", args[1])); + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); } } else { - sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", args[1])); + sender.sendMessage(pli.getMessagesConfig().arena_invalid.replaceAll("<arena>", "Arena")); } } return true; diff --git a/changelog.md b/changelog.md index d099d007..0aa19887 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,8 @@ * *v2-backport* new chat countdown while reaching max game time (https://github.com/MysticCity/MinigamesAPI/issues/224) * *v2-backport* api extension for minigames that want to influence the max game time (https://github.com/MysticCity/MinigamesAPI/issues/224) * *v2-backport* support for unlimited games (max game time set to zero) (https://github.com/MysticCity/MinigamesAPI/issues/224) +* Fixed ArrayIndexOutOfBounds in stop and spectate command +* Fixed exceptions and several bugs related to spectation (https://github.com/MysticCity/MinigamesAPI/issues/230) ###### Conquer From 536948aade57680ab52cfec59c5456649fbaccbb Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 12 Apr 2017 06:37:54 +0200 Subject: [PATCH 222/266] fixes in splegg --- changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.md b/changelog.md index 0aa19887..24bcf8bc 100644 --- a/changelog.md +++ b/changelog.md @@ -21,7 +21,9 @@ * Fixed runtime error in 1.8.5 to 1.8.9 * Fixed false positive error: Destroy mode invalid (https://github.com/MysticCity/MinigamesAPI/issues/225) +###### Splegg +* Fixed exception plaxying projectile sound in 1.7.X/1.8.X (https://github.com/MysticCity/MinigamesAPI/issues/241) #### 1.14.15 From f3757738052e2b8083879feae2966e8e44472756 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 13 Apr 2017 06:32:08 +0200 Subject: [PATCH 223/266] fixed NPE --- .../java/com/comze_instancelabs/minigamesapi/util/Cuboid.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java index 329cfbbb..b5175078 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Cuboid.java @@ -88,6 +88,10 @@ public boolean isAreaWithinArea(final Cuboid area) */ public boolean containsLoc(final Location loc) { + if (this.highPoints == null || this.lowPoints == null) + { + return false; + } if (loc == null || loc.getWorld() == null || !loc.getWorld().equals(this.highPoints.getWorld())) { return false; From cce9b203d4d03868543155176dd29d6f2b3ad2d0 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 14 Apr 2017 09:38:34 +0200 Subject: [PATCH 224/266] v2 --- .../mgapi/api/arena/ArenaInterface.java | 12 + .../mgapi/api/match/ArenaMatchInterface.java | 12 + .../mgapi/impl/MglibMessages.java | 4 + .../mgapi/impl/arena/ArenaImpl.java | 26 +- .../mgapi/impl/arena/ArenaMatchImpl.java | 17 + .../impl/cmd/AdminComponentCreateCommand.java | 2 +- .../impl/cmd/AdminSignCreateCommand.java | 2 +- .../impl/cmd/AdminZoneCreateCommand.java | 2 +- .../minigameslib/mgapi/impl/cmd/gui/Main.java | 14 +- .../mgapi/impl/cmd/gui/MgClickGuis.java | 4 + .../mgapi/impl/cmd/gui/SelectMarkerPage.java | 270 ++++++++++++++++ .../mgapi/impl/cmd/gui/SignEdit.java | 268 ++++++--------- .../mgapi/impl/cmd/gui/SignsPage.java | 7 +- .../impl/cmd/marker/MarkerColorInterface.java | 75 +++++ .../impl/cmd/marker/MarkerColorProvider.java | 305 ++++++++++++++++++ .../mgapi/impl/cmd/tool/MarkerToolHelper.java | 259 +++++++++++++++ .../mgapi/impl/rules/BasicMatchTimer.java | 144 ++++++++- 17 files changed, 1236 insertions(+), 187 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index 0bc8061f..f60c0c3a 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -251,6 +251,12 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy */ int getPlayerCount(); + /** + * Returns the players playing the match + * @return player count + */ + int getActivePlayerCount(); + /** * Returns the spectators being in the arena * @return spectators count @@ -263,6 +269,12 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy */ Collection<ArenaPlayerInterface> getPlayers(); + /** + * Returns the players playing the match + * @return current player list + */ + Collection<ArenaPlayerInterface> getActivePlayers(); + /** * Returns the spectators * @return spectators list diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java index 07946b84..3d129526 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java @@ -193,6 +193,18 @@ public interface ArenaMatchInterface */ int getPlayerCount(); + /** + * Returns the current spectators + * @return spectators + */ + Collection<UUID> getSpectators(); + + /** + * Returns the number of current spectators + * @return match spectators count + */ + int getSpectatorCount(); + /** * Returns the match participants (players having played or spectated the game). * This method includes players already marked as winners or losers. diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java index 7f8c85ec..78bf44e0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java @@ -73,8 +73,10 @@ import de.minigameslib.mgapi.impl.cmd.ManualCommand; import de.minigameslib.mgapi.impl.cmd.Mg2Command; import de.minigameslib.mgapi.impl.cmd.SpectateCommand; +import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorProvider; import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; import de.minigameslib.mgapi.impl.rules.BasicMatch; +import de.minigameslib.mgapi.impl.rules.BasicMatchTimer; /** * The common messages. @@ -86,6 +88,7 @@ // core MglibCoreErrors.class, ArenaImpl.Messages.class, + MarkerColorProvider.Messages.class, // commands Mg2Command.Messages.class, InfoCommand.Messages.class, @@ -135,6 +138,7 @@ AdminToolHelper.Messages.class, // rules BasicMatch.Messages.class, + BasicMatchTimer.Messages.class, }) public enum MglibMessages implements LocalizedMessageInterface { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 54bc0885..fd459e15 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -953,6 +953,16 @@ public int getPlayerCount() return this.match.getParticipantCount(false); } + @Override + public int getActivePlayerCount() + { + if (this.match == null) + { + return 0; + } + return this.match.getPlayerCount(); + } + @Override public int getSpectatorCount() { @@ -960,7 +970,7 @@ public int getSpectatorCount() { return 0; } - return ((MatchTeam) this.match.get(CommonTeams.Spectators)).getTeamMembers().size(); + return this.match.getSpectators().size(); } @Override @@ -975,6 +985,18 @@ public Collection<ArenaPlayerInterface> getPlayers() return this.match.getParticipants(false).stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); } + @Override + public Collection<ArenaPlayerInterface> getActivePlayers() + { + if (this.match == null) + { + return Collections.emptyList(); + } + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); + return this.match.getPlayers().stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + } + @Override public Collection<ArenaPlayerInterface> getSpectators() { @@ -984,7 +1006,7 @@ public Collection<ArenaPlayerInterface> getSpectators() } final ObjectServiceInterface osi = ObjectServiceInterface.instance(); final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return ((MatchTeam) this.match.get(CommonTeams.Spectators)).getTeamMembers().stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); + return this.match.getSpectators().stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java index e9b193b5..888d6434 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java @@ -613,6 +613,23 @@ public int getPlayerCount() .count(); } + @Override + public Collection<UUID> getSpectators() + { + return this.players.entrySet().stream() + .filter(p -> p.getValue().isSpec()) + .map(p -> p.getKey()) + .collect(Collectors.toList()); + } + + @Override + public int getSpectatorCount() + { + return (int) this.players.entrySet().stream() + .filter(p -> p.getValue().isSpec()) + .count(); + } + @Override public int getWinnerCount() { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java index 28e054b9..5ef5d5c4 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java @@ -84,7 +84,7 @@ public void handle(CommandInterface command) throws McException { throw new McException(ArenaImpl.Messages.ModificationWrongState); } - final ZoneTypeId type = Mg2Command.getEnum(ZoneTypeId.class, typeName); + final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java index 7a3b7dba..55921518 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java @@ -84,7 +84,7 @@ public void handle(CommandInterface command) throws McException { throw new McException(ArenaImpl.Messages.ModificationWrongState); } - final SignTypeId type = Mg2Command.getEnum(SignTypeId.class, typeName); + final SignTypeId type = Mg2Command.getEnum(command, SignTypeId.class, typeName); AdminToolHelper.onCreateSign(command.getPlayer(), arena, name, type, null); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java index 6702e601..b14df9a8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java @@ -84,7 +84,7 @@ public void handle(CommandInterface command) throws McException { throw new McException(ArenaImpl.Messages.ModificationWrongState); } - final ZoneTypeId type = Mg2Command.getEnum(ZoneTypeId.class, typeName); + final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java index eb9133b3..802fae4f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java @@ -27,7 +27,9 @@ import java.io.Serializable; import org.bukkit.Material; +import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import de.minigameslib.mclib.api.gui.ClickGuiId; import de.minigameslib.mclib.api.gui.ClickGuiInterface; @@ -266,7 +268,11 @@ public static ClickGuiItem itemFill(int line, int col) */ public static ClickGuiItem itemArenas(ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(new ItemStack(Material.DIAMOND_SWORD), Messages.IconArenas, handler); + final ItemStack itemStack = new ItemStack(Material.DIAMOND_SWORD); + final ItemMeta meta = itemStack.getItemMeta(); + meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); + itemStack.setItemMeta(meta); + return new ClickGuiItem(itemStack, Messages.IconArenas, handler); } /** @@ -277,7 +283,11 @@ public static ClickGuiItem itemArenas(ClickGuiItem.GuiItemHandler handler) */ public static ClickGuiItem itemArena(ArenaInterface arena, ClickGuiItem.GuiItemHandler handler) { - return new ClickGuiItem(new ItemStack(Material.DIAMOND_SWORD), arena.getDisplayName(), handler); + final ItemStack itemStack = new ItemStack(Material.DIAMOND_SWORD); + final ItemMeta meta = itemStack.getItemMeta(); + meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); + itemStack.setItemMeta(meta); + return new ClickGuiItem(itemStack, arena.getDisplayName(), handler); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java index 83d75236..9c83a8d5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java @@ -37,12 +37,16 @@ ArenasPage.Messages.class, ArenaEdit.Messages.class, // ArenaCreate.Messages.class, + YesNoQuestion.Messages.class, + SelectMarkerPage.Messages.class, + LocalizedLinesList.Messages.class, LocalizedLinesEditLocale.Messages.class, LocalizedLinesEditLocaleList.Messages.class, LocalizedStringList.Messages.class, LocalizedStringEditor.Messages.class, + SignsPage.Messages.class, SignEdit.Messages.class, SignsCreateChooseType.Messages.class, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java new file mode 100644 index 00000000..770d5a45 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java @@ -0,0 +1,270 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; + +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorInterface; +import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorProvider; +import de.minigameslib.mgapi.impl.cmd.tool.MarkerToolHelper; + +/** + * Page to set display markers + * + * @author mepeisen + */ +public class SelectMarkerPage extends AbstractPage<MarkerColorInterface> +{ + + /** previous page */ + private ClickGuiPageInterface prev; + + /** the target component. */ + private ComponentInterface component; + + /** the target sign. */ + private SignInterface sign; + + /** the target zone. */ + private ZoneInterface zone; + + /** the underlying player */ + private McPlayerInterface player; + + /** + * @param player + * @param sign + * @param prev + */ + public SelectMarkerPage(McPlayerInterface player, SignInterface sign, ClickGuiPageInterface prev) + { + this.player = player; + this.sign = sign; + this.prev = prev; + } + + /** + * @param player + * @param zone + * @param prev + */ + public SelectMarkerPage(McPlayerInterface player, ZoneInterface zone, ClickGuiPageInterface prev) + { + this.player = player; + this.zone = zone; + this.prev = prev; + } + + /** + * @param player + * @param component + * @param prev + */ + public SelectMarkerPage(McPlayerInterface player, ComponentInterface component, ClickGuiPageInterface prev) + { + this.player = player; + this.component = component; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(page(), count()); + } + + @Override + protected int count() + { + return MarkerColorProvider.getColors().size(); + } + + @Override + protected List<MarkerColorInterface> getElements(int start, int limit) + { + return MarkerColorProvider.getColors(). + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, MarkerColorInterface elm) + { + final MarkerToolHelper helper = MarkerToolHelper.instance(this.player); + final ItemStack icon = elm.getIcon(); + + final boolean isSet = (this.sign != null && helper.getColor(this.sign) == elm) || + (this.component != null && helper.getColor(this.component) == elm) || + (this.zone != null && helper.getColor(this.zone) == elm); + + if (isSet) + { + final ItemMeta meta = icon.getItemMeta(); + meta.addEnchant(Enchantment.LURE, 1, false); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + icon.setItemMeta(meta); + } + + return new ClickGuiItem(icon, elm.getTitle(), (p, s, g) -> { + if (isSet) + { + this.onRemove(p, s, g, elm); + } + else + { + this.onChoose(p, s, g, elm); + } + }); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + null, + null, + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + null, + null, + null, + Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) + }; + } + + /** + * color chosen + * @param p + * @param session + * @param gui + * @param color + * @throws McException + */ + private void onChoose(McPlayerInterface p, GuiSessionInterface session, ClickGuiInterface gui, MarkerColorInterface color) throws McException + { + final MarkerToolHelper helper = MarkerToolHelper.instance(p); + if (this.sign != null) + { + helper.createMarker(this.sign, color); + } + else if (this.component != null) + { + helper.createMarker(this.component, color); + } + else if (this.zone != null) + { + helper.createMarker(this.zone, color); + } + p.openClickGui(new Main(this.prev)); + } + + /** + * color remove + * @param p + * @param session + * @param gui + * @param color + * @throws McException + */ + private void onRemove(McPlayerInterface p, GuiSessionInterface session, ClickGuiInterface gui, MarkerColorInterface color) throws McException + { + final MarkerToolHelper helper = MarkerToolHelper.instance(p); + if (this.sign != null) + { + helper.clearMarker(this.sign); + } + else if (this.component != null) + { + helper.clearMarker(this.component); + } + else if (this.zone != null) + { + helper.clearMarker(this.zone); + } + session.setNewPage(this.prev); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.select_marker") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (marker colors page) + */ + @LocalizedMessage(defaultMessage = "Select marker color - page %1$d of %2$d") + @MessageComment(value = {"Gui title (marker colors page)"}, args = {@Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The Cancel + */ + @LocalizedMessage(defaultMessage = "Cancel creation") + @MessageComment({"cancel icon"}) + IconCancel, + + /** + * The sign icon + */ + @LocalizedMessage(defaultMessage = "type %1$s") + @MessageComment(value = {"sign type icon"}, args=@Argument("sign name")) + IconSign, + + /** + * Text description + */ + @LocalizedMessageList({"Enter the name of the new sign.", "The name is only used internal."}) + @MessageComment("Text description for sign name") + TextDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java index 8d8d1146..2815fc80 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java @@ -25,7 +25,9 @@ package de.minigameslib.mgapi.impl.cmd.gui; import java.io.Serializable; +import java.util.Optional; +import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; @@ -40,11 +42,10 @@ import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.impl.cmd.ArenaCommand; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; /** * Click gui for editing signs. @@ -109,8 +110,12 @@ public ClickGuiItem[][] getItems() */ private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + player.sendMessage(Messages.InfoOutput, + this.arena.getDisplayName().toArg(), + this.arena.getShortDescription().toArg(), + this.sign.getName(), + this.sign.getSign().getTypeId().getPluginName(), + this.sign.getSign().getTypeId().name()); } /** @@ -118,11 +123,50 @@ private void onInfo(McPlayerInterface player, GuiSessionInterface session, Click * @param player * @param session * @param gui + * @throws McException */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + player.openAnvilGui(new QueryText( + this.sign.getName(), + () -> {player.openClickGui(new Main(this));}, + (s) -> this.onName(player, session, gui, s), + player.encodeMessage(Messages.NameDescription))); + } + + /** + * name + * @param player + * @param session + * @param gui + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String name) throws McException + { + if (name.equals(this.sign.getName())) + { + player.openClickGui(new Main(this)); + return; + } + + @SuppressWarnings("cast") + final Optional<ArenaSignHandler> handler = this.arena.getSigns().stream(). + map(s -> (ArenaSignHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + this.sign.setName(name); + this.sign.getSign().saveConfig(); + player.openClickGui(new Main(this)); } /** @@ -133,8 +177,14 @@ private void onName(McPlayerInterface player, GuiSessionInterface session, Click */ private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + if (!player.hasSmartGui()) + { + player.sendMessage(CommonMessages.NoSmartGui); + } + else + { + session.setNewPage(new SelectMarkerPage(player, this.sign.getSign(), this)); + } } /** @@ -142,11 +192,12 @@ private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface sessi * @param player * @param session * @param gui + * @throws McException */ - private void onTeleport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + private void onTeleport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + player.getBukkitPlayer().teleport(this.sign.getSign().getLocation()); + player.openClickGui(new Main(this)); } /** @@ -202,106 +253,43 @@ public enum Messages implements LocalizedMessageInterface * Gui title (sign edit page) */ @LocalizedMessage(defaultMessage = "Sign %1$s - %2$s") - @MessageComment(value = {"Gui title (arena edit)"}, args = {@Argument("internal name"), @Argument("display name")}) + @MessageComment(value = {"Gui title (sign edit)"}, args = {@Argument("arena internal name"), @Argument("sign name")}) Title, /** * back to arenas */ - @LocalizedMessage(defaultMessage = "Back to arenas list") - @MessageComment({"back to arenas"}) + @LocalizedMessage(defaultMessage = "Back to signs list") + @MessageComment({"back to signs"}) IconBack, /** * info */ - @LocalizedMessage(defaultMessage = "Arena info") + @LocalizedMessage(defaultMessage = "Sign info") @MessageComment({"info"}) IconInfo, /** - * display name - */ - @LocalizedMessage(defaultMessage = "Display name") - @MessageComment({"display name"}) - IconDisplayName, - - /** - * short description - */ - @LocalizedMessage(defaultMessage = "Short description") - @MessageComment({"short description"}) - IconShortDescription, - - /** - * long description - */ - @LocalizedMessage(defaultMessage = "Long description") - @MessageComment({"long description"}) - IconLongDescription, - - /** - * Manual - */ - @LocalizedMessage(defaultMessage = "Manual") - @MessageComment({"manual"}) - IconManual, - - /** - * check - */ - @LocalizedMessage(defaultMessage = "Arena check") - @MessageComment({"check"}) - IconCheck, - - /** - * enable - */ - @LocalizedMessage(defaultMessage = "Enable") - @MessageComment({"enable"}) - IconEnable, - - /** - * disable - */ - @LocalizedMessage(defaultMessage = "Disable") - @MessageComment({"disable"}) - IconDisable, - - /** - * start match + * name */ - @LocalizedMessage(defaultMessage = "Start match") - @MessageComment({"start match"}) - IconStart, + @LocalizedMessage(defaultMessage = "Sign name") + @MessageComment({"sign name"}) + IconName, /** - * stop match + * display marker */ - @LocalizedMessage(defaultMessage = "Stop match") - @MessageComment({"stop match"}) - IconStop, + @LocalizedMessage(defaultMessage = "Show display marker") + @MessageComment({"display marker"}) + IconDisplayMarker, /** - * hard reset + * teleport */ - @LocalizedMessage(defaultMessage = "Hard reset") - @MessageComment({"hard reset"}) - IconHardReset, - - /** - * players - */ - @LocalizedMessage(defaultMessage = "Players") - @MessageComment({"players"}) - IconPlayers, - - /** - * maintenance - */ - @LocalizedMessage(defaultMessage = "Maintenance (edit arena)") - @MessageComment({"maintenance"}) - IconMaintenance, + @LocalizedMessage(defaultMessage = "Teleport to sign") + @MessageComment({"teleport"}) + IconTeleport, /** * delete @@ -310,20 +298,6 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"delete"}) IconDelete, - /** - * test - */ - @LocalizedMessage(defaultMessage = "Test mode") - @MessageComment({"test"}) - IconTest, - - /** - * invite - */ - @LocalizedMessage(defaultMessage = "Invite") - @MessageComment({"invite"}) - IconInvite, - /** * rules */ @@ -332,82 +306,30 @@ public enum Messages implements LocalizedMessageInterface IconRules, /** - * components - */ - @LocalizedMessage(defaultMessage = "Components") - @MessageComment({"components"}) - IconComponents, - - /** - * zones - */ - @LocalizedMessage(defaultMessage = "Zones") - @MessageComment({"zones"}) - IconZones, - - /** - * signs - */ - @LocalizedMessage(defaultMessage = "Signs") - @MessageComment({"Signs"}) - IconSigns, - - /** - * entites - */ - @LocalizedMessage(defaultMessage = "Entities") - @MessageComment({"entities"}) - IconEntities, - - /** - * teams - */ - @LocalizedMessage(defaultMessage = "Teams") - @MessageComment({"teams"}) - IconTeams, - - /** - * export - */ - @LocalizedMessage(defaultMessage = "Export") - @MessageComment({"export"}) - IconExport, - - /** - * question: really delete arena - */ - @LocalizedMessage(defaultMessage = "Really delete arena?") - @MessageComment({"question: Really delete arena"}) - QuestionReallyDelete, - - /** - * question: really delete arena - */ - @LocalizedMessageList({"Do you really want to delete this arena?", "The deletion can not be undone.", "If you want to use the arena later please export it first."}) - @MessageComment({"question: Really delete arena"}) - QuestionReallyDeleteDetails, - - /** - * The command output of /mg2 arena - * @see ArenaEdit (onInfo) + * The info */ @LocalizedMessageList({ - "minigame: %1$s", - "arena: %2$s - %3$s", - "state: %4$s", - "----------", - "%5$s" + "arena: %1$s - %2$s", + "sign-name: %3$s", + "sign-type: %4$s/%5$s" }) @MessageComment(value = { - "The command output of /mg2 arena" + "The info" },args = { - @Argument("minigame display name"), @Argument("arena display name"), @Argument("arena short description"), - @Argument("arena state"), - @Argument("arena long description"), + @Argument("sign name"), + @Argument("sign type plugin"), + @Argument("sign type name"), }) InfoOutput, + + /** + * Name description + */ + @LocalizedMessageList({"Enter the name of the sign.", "The name is only used internal."}) + @MessageComment("Text description for sign name") + NameDescription, } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java index a98de879..b3ec3b70 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java @@ -37,8 +37,6 @@ import de.minigameslib.mclib.api.gui.ClickGuiItem; import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessages; @@ -47,12 +45,10 @@ import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mclib.api.objects.ObjectServiceInterface; import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.impl.skin.SkinFromPlayer; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.gui.LocalizedLinesEditLocaleList.Messages; import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; /** @@ -98,9 +94,10 @@ protected List<ArenaSignHandler> getElements(int start, int limit) final ObjectServiceInterface osi = ObjectServiceInterface.instance(); return this.arena.getSigns(). stream(). - skip(start).limit(limit). map(osi::findSign). map(s -> (ArenaSignHandler) s.getHandler()). + sorted((a, b) -> a.getName().compareTo(b.getName())). + skip(start).limit(limit). collect(Collectors.toList()); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java new file mode 100644 index 00000000..c2d4da79 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java @@ -0,0 +1,75 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.marker; + +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; + +/** + * Common marker colors. Implementing classes must implement hashcode and equals. + * + * @author mepeisen + */ +public interface MarkerColorInterface +{ + + /** + * Title of this color + * @return color title + */ + LocalizedMessageInterface getTitle(); + + /** + * Red color component + * @return red color + */ + int getR(); + + /** + * Green color component + * @return green color + */ + int getG(); + + /** + * Blue color component + * @return blue color + */ + int getB(); + + /** + * Alpha color component + * @return alpha color + */ + int getAlpha(); + + /** + * Returns gui icon + * @return gui icon + */ + ItemStack getIcon(); + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java new file mode 100644 index 00000000..b16f5b52 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java @@ -0,0 +1,305 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.marker; + +import java.util.Arrays; +import java.util.List; + +import org.bukkit.DyeColor; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; + +/** + * A helper class to create marker colors + * + * @author mepeisen + */ +public class MarkerColorProvider +{ + + /** + * Returns the available colors. + * @return available colors. + */ + public static List<MarkerColorInterface> getColors() + { + return Arrays.asList(MarkerColor.values()); + } + + /** + * The marker colors. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.marker_colors") + public enum Messages implements LocalizedMessageInterface + { + /** + * white marker color + */ + @LocalizedMessage(defaultMessage = "white") + @MessageComment({"white marker color"}) + White, + /** + * orange marker color + */ + @LocalizedMessage(defaultMessage = "orange") + @MessageComment({"orange marker color"}) + Orange, + /** + * magenta marker color + */ + @LocalizedMessage(defaultMessage = "magenta") + @MessageComment({"magenta marker color"}) + Magenta, + /** + * light blue marker color + */ + @LocalizedMessage(defaultMessage = "light blue") + @MessageComment({"light blue marker color"}) + LightBlue, + /** + * yellow marker color + */ + @LocalizedMessage(defaultMessage = "yellow") + @MessageComment({"yellow marker color"}) + Yellow, + /** + * lime marker color + */ + @LocalizedMessage(defaultMessage = "lime") + @MessageComment({"lime marker color"}) + Lime, + /** + * pink marker color + */ + @LocalizedMessage(defaultMessage = "pink") + @MessageComment({"pink marker color"}) + Pink, + /** + * gray marker color + */ + @LocalizedMessage(defaultMessage = "gray") + @MessageComment({"gray marker color"}) + Gray, + /** + * silver marker color + */ + @LocalizedMessage(defaultMessage = "silver") + @MessageComment({"silver marker color"}) + Silver, + /** + * cyan marker color + */ + @LocalizedMessage(defaultMessage = "cyan") + @MessageComment({"cyan marker color"}) + Cyan, + /** + * purple marker color + */ + @LocalizedMessage(defaultMessage = "purple") + @MessageComment({"purple marker color"}) + Purple, + /** + * blue marker color + */ + @LocalizedMessage(defaultMessage = "blue") + @MessageComment({"blue marker color"}) + Blue, + /** + * brown marker color + */ + @LocalizedMessage(defaultMessage = "brown") + @MessageComment({"brown marker color"}) + Brown, + /** + * green marker color + */ + @LocalizedMessage(defaultMessage = "green") + @MessageComment({"green marker color"}) + Green, + /** + * red marker color + */ + @LocalizedMessage(defaultMessage = "white") + @MessageComment({"white marker color"}) + Red, + /** + * white marker color + */ + @LocalizedMessage(defaultMessage = "white") + @MessageComment({"white marker color"}) + Black + } + + /** + * marker colors. + * @author mepeisen + */ + private enum MarkerColor implements MarkerColorInterface + { + + /** + * Represents white dye. + */ + WHITE(Messages.White, DyeColor.WHITE), + /** + * Represents orange dye. + */ + ORANGE(Messages.Orange, DyeColor.ORANGE), + /** + * Represents magenta dye. + */ + MAGENTA(Messages.Magenta, DyeColor.MAGENTA), + /** + * Represents light blue dye. + */ + LIGHT_BLUE(Messages.LightBlue, DyeColor.LIGHT_BLUE), + /** + * Represents yellow dye. + */ + YELLOW(Messages.Yellow, DyeColor.YELLOW), + /** + * Represents lime dye. + */ + LIME(Messages.Lime, DyeColor.LIME), + /** + * Represents pink dye. + */ + PINK(Messages.Pink, DyeColor.PINK), + /** + * Represents gray dye. + */ + GRAY(Messages.Gray, DyeColor.GRAY), + /** + * Represents silver dye. + */ + SILVER(Messages.Silver, DyeColor.SILVER), + /** + * Represents cyan dye. + */ + CYAN(Messages.Cyan, DyeColor.CYAN), + /** + * Represents purple dye. + */ + PURPLE(Messages.Purple, DyeColor.PURPLE), + /** + * Represents blue dye. + */ + BLUE(Messages.Blue, DyeColor.BLUE), + /** + * Represents brown dye. + */ + BROWN(Messages.Brown, DyeColor.BROWN), + /** + * Represents green dye. + */ + GREEN(Messages.Green, DyeColor.GREEN), + /** + * Represents red dye. + */ + RED(Messages.Red, DyeColor.RED), + /** + * Represents black dye. + */ + BLACK(Messages.Black, DyeColor.BLACK); + + /** red */ + private final int r; + + /** green */ + private final int g; + + /** blue */ + private final int b; + + /** alpha value */ + private final int alpha; + + /** name */ + private LocalizedMessageInterface name; + + /** wool color */ + private DyeColor color; + + /** + * @param name + * @param color + */ + private MarkerColor(LocalizedMessageInterface name, DyeColor color) + { + this.r = color.getColor().getRed(); + this.g = color.getColor().getGreen(); + this.b = color.getColor().getBlue(); + this.alpha = 0x7f; + this.name = name; + this.color = color; + } + + @Override + public LocalizedMessageInterface getTitle() + { + return this.name; + } + + @Override + public int getR() + { + return this.r; + } + + @Override + public int getG() + { + return this.g; + } + + @Override + public int getB() + { + return this.b; + } + + @Override + public int getAlpha() + { + return this.alpha; + } + + @SuppressWarnings("deprecation") + @Override + public ItemStack getIcon() + { + return new ItemStack(Material.WOOL, 1, this.color.getWoolData()); + } + + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java new file mode 100644 index 00000000..8ee062cc --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java @@ -0,0 +1,259 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.tool; + +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.GuiSessionInterface.SGuiMarkerInterface; +import de.minigameslib.mclib.api.objects.ComponentIdInterface; +import de.minigameslib.mclib.api.objects.ComponentInterface; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.SignIdInterface; +import de.minigameslib.mclib.api.objects.SignInterface; +import de.minigameslib.mclib.api.objects.ZoneIdInterface; +import de.minigameslib.mclib.api.objects.ZoneInterface; +import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; +import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorInterface; + +/** + * @author mepeisen + * + */ +public class MarkerToolHelper extends AnnotatedDataFragment +{ + + /** object to colors. */ + private final Map<Object, MarkerColorInterface> objectsToColors = new HashMap<>(); + + /** colors to objects */ + private final Map<MarkerColorInterface, Object> colorsToObjects = new HashMap<>(); + + /** colors to markers */ + private final Map<MarkerColorInterface, SGuiMarkerInterface> colorsToMarkers = new HashMap<>(); + + /** the underlying player */ + private McPlayerInterface player; + + /** logger. */ + private static final Logger LOGGER = Logger.getLogger(MarkerToolHelper.class.getName()); + + /** + * @param player + */ + private MarkerToolHelper(McPlayerInterface player) + { + this.player = player; + } + + /** + * Returns helper tool for given player. + * + * @param player + * @return helper tool. + */ + public static MarkerToolHelper instance(McPlayerInterface player) + { + MarkerToolHelper instance = player.getSessionStorage().get(MarkerToolHelper.class); + if (instance == null) + { + instance = new MarkerToolHelper(player); + player.getSessionStorage().set(MarkerToolHelper.class, instance); + } + return instance; + } + + /** + * Clears all markers + */ + public void clearMarkers() + { + this.colorsToMarkers.values().forEach(t -> { + try + { + t.remove(); + } + catch (McException e) + { + LOGGER.log(Level.WARNING, "Error while removing marker", e); //$NON-NLS-1$ + } + }); + this.colorsToMarkers.clear(); + this.colorsToObjects.clear(); + this.objectsToColors.clear(); + } + + /** + * Creates a new marker for given sign and color + * @param sign + * @param color + * @throws McException + */ + public void createMarker(SignInterface sign, MarkerColorInterface color) throws McException + { + this.clearMarker(sign); + this.clearMarker(color); + final SignIdInterface id = sign.getSignId(); + final SGuiMarkerInterface marker = this.player.openSmartGui().sguiShowMarker(sign, color.getR(), color.getG(), color.getB(), color.getAlpha(), color.getTitle()); + this.colorsToMarkers.put(color, marker); + this.colorsToObjects.put(color, id); + this.objectsToColors.put(id, color); + } + + /** + * Creates a new marker for given zone and color + * @param zone + * @param color + * @throws McException + */ + public void createMarker(ZoneInterface zone, MarkerColorInterface color) throws McException + { + this.clearMarker(zone); + this.clearMarker(color); + final ZoneIdInterface id = zone.getZoneId(); + final SGuiMarkerInterface marker = this.player.openSmartGui().sguiShowMarker(zone, color.getR(), color.getG(), color.getB(), color.getAlpha(), color.getTitle()); + this.colorsToMarkers.put(color, marker); + this.colorsToObjects.put(color, id); + this.objectsToColors.put(id, color); + } + + /** + * Creates a new marker for given component and color + * @param component + * @param color + * @throws McException + */ + public void createMarker(ComponentInterface component, MarkerColorInterface color) throws McException + { + this.clearMarker(component); + this.clearMarker(color); + final ComponentIdInterface id = component.getComponentId(); + final SGuiMarkerInterface marker = this.player.openSmartGui().sguiShowMarker(component, color.getR(), color.getG(), color.getB(), color.getAlpha(), color.getTitle()); + this.colorsToMarkers.put(color, marker); + this.colorsToObjects.put(color, id); + this.objectsToColors.put(id, color); + } + + /** + * Returns marker color for given sign + * @param sign + * @return color or {@code null} if no marker is set + */ + public MarkerColorInterface getColor(SignInterface sign) + { + return this.objectsToColors.get(sign.getSignId()); + } + + /** + * Returns marker color for given zone + * @param zone + * @return color or {@code null} if no marker is set + */ + public MarkerColorInterface getColor(ZoneInterface zone) + { + return this.objectsToColors.get(zone.getZoneId()); + } + + /** + * Returns marker color for given component + * @param component + * @return color or {@code null} if no marker is set + */ + public MarkerColorInterface getColor(ComponentInterface component) + { + return this.objectsToColors.get(component.getComponentId()); + } + + /** + * Returns the object id for given color + * @param color + * @return object id or {@code null} if color is not used; instance of {@link SignIdInterface}, {@code ZoneIdInterface} or {@code ComponentIdInterface} + */ + public Object getObjectId(MarkerColorInterface color) + { + return this.colorsToObjects.get(color); + } + + /** + * Clears marker for given color + * @param color + * @throws McException + */ + public void clearMarker(MarkerColorInterface color) throws McException + { + final SGuiMarkerInterface marker = this.colorsToMarkers.remove(color); + if (marker != null) + { + marker.remove(); + this.objectsToColors.remove(this.colorsToObjects.remove(color)); + } + } + + /** + * Clears marker for given sign + * @param sign + * @throws McException + */ + public void clearMarker(SignInterface sign) throws McException + { + final MarkerColorInterface color = this.getColor(sign); + if (color != null) + { + this.clearMarker(color); + } + } + + /** + * Clears marker for given zone + * @param zone + * @throws McException + */ + public void clearMarker(ZoneInterface zone) throws McException + { + final MarkerColorInterface color = this.getColor(zone); + if (color != null) + { + this.clearMarker(color); + } + } + + /** + * Clears marker for given component + * @param component + * @throws McException + */ + public void clearMarker(ComponentInterface component) throws McException + { + final MarkerColorInterface color = this.getColor(component); + if (color != null) + { + this.clearMarker(color); + } + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java index 3d047469..97580214 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java @@ -34,6 +34,12 @@ import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.event.McEventHandler; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageSeverityType; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaState; import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; @@ -87,6 +93,33 @@ public class BasicMatchTimer extends AbstractArenaRule implements BasicMatchTime /** logger. */ private static final Logger LOGGER = Logger.getLogger(BasicMatchTimer.class.getName()); + /** {@code true} for warning about 60 seconds left */ + private boolean warn60 = true; + + /** {@code true} for warning about 30 seconds left */ + private boolean warn30 = true; + + /** {@code true} for warning about 20 seconds left */ + private boolean warn20 = true; + + /** {@code true} for warning about 10 seconds left */ + private boolean warn10 = true; + + /** {@code true} for warning about 5 seconds left */ + private boolean warn5 = true; + + /** {@code true} for warning about 4 seconds left */ + private boolean warn4 = true; + + /** {@code true} for warning about 3 seconds left */ + private boolean warn3 = true; + + /** {@code true} for warning about 2 seconds left */ + private boolean warn2 = true; + + /** {@code true} for warning about 1 seconds left */ + private boolean warn1 = true; + /** * @param type * @param arena @@ -143,6 +176,7 @@ public void resetAndResume() this.paused = false; this.lastStart = LocalDateTime.now(); this.matchDuration = 0; + this.fixWarnings(); } @Override @@ -150,6 +184,7 @@ public void resetAndPause() { this.paused = true; this.matchDuration = 0; + this.fixWarnings(); } @Override @@ -176,6 +211,7 @@ public void addMaxMillis(long millis) { this.startTimer(); } + this.fixWarnings(); } @Override @@ -186,6 +222,7 @@ public void substractMaxMillis(long millis) { this.stopTimer(); } + this.fixWarnings(); } @Override @@ -196,24 +233,28 @@ public void setMaxMillis(long millis) { this.stopTimer(); } + this.fixWarnings(); } @Override public void addDurationMillis(long millis) { this.matchDuration += millis; + this.fixWarnings(); } @Override public void substractDurationMillis(long millis) { this.matchDuration -= millis; + this.fixWarnings(); } @Override public void setDurationMillis(long millis) { this.matchDuration = millis; + this.fixWarnings(); } /** @@ -233,6 +274,7 @@ public void onArenaState(ArenaStateChangedEvent evt) { this.startTimer(); } + this.fixWarnings(); } else { @@ -263,6 +305,24 @@ private void stopTimer() } } + /** + * Fixes warnings depending on remaining game time + */ + private void fixWarnings() + { + long delta = this.getMaxMillis() - this.getDurationMillis(); + final int sec = (int) (delta / 1000); + this.warn60 = sec >= 60; + this.warn30 = sec >= 30; + this.warn20 = sec >= 20; + this.warn10 = sec >= 10; + this.warn5 = sec >= 5; + this.warn4 = sec >= 4; + this.warn3 = sec >= 3; + this.warn2 = sec >= 2; + this.warn1 = sec >= 1; + } + /** * On timer tick * @@ -279,6 +339,8 @@ private void onTimer(BukkitTask task) this.timerTask = null; try { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.Abort)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.Abort)); this.arena.abort(); } catch (McException e) @@ -288,10 +350,88 @@ private void onTimer(BukkitTask task) } else { - // TODO send messages to players about the pending game time - // TODO interval: before ending: 1 minute, 30 seconds, 20 seconds, 10 seconds, 5 seconds, 4 seconds, 3 seconds, 2 seconds, 1 second... Respect game time changes... + final int sec = (int) (delta / 1000); + if (this.warn60 && sec <= 60) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 60)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 60)); + this.warn60 = false; + } + else if (this.warn30 && sec <= 30) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 30)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 30)); + this.warn30 = false; + } + else if (this.warn20 && sec <= 20) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 20)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 20)); + this.warn20 = false; + } + else if (this.warn10 && sec <= 10) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 10)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 10)); + this.warn10 = false; + } + else if (this.warn5 && sec <= 5) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 5)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 5)); + this.warn5 = false; + } + else if (this.warn4 && sec <= 4) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 4)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 4)); + this.warn4 = false; + } + else if (this.warn3 && sec <= 3) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 3)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 3)); + this.warn3 = false; + } + else if (this.warn2 && sec <= 2) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 2)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 2)); + this.warn2 = false; + } + else if (this.warn1 && sec <= 1) + { + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 1)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 1)); + this.warn1 = false; + } } } } + /** + * The common messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "cmd.rules.BasicMatchTimer") + public enum Messages implements LocalizedMessageInterface + { + + /** + * Warning of match timer + */ + @LocalizedMessage(defaultMessage = "The match is stopping in %1$d seconds because the maximum game time was reached.", severity = MessageSeverityType.Warning) + @MessageComment(value = { "Warning of match timer" }, args = { @Argument(type = "Numeric", value = "Remaining seconds") }) + WarnSeconds, + + /** + * match timer expired + */ + @LocalizedMessage(defaultMessage = "The match is stopping now because the maximum game time was reached.", severity = MessageSeverityType.Loser) + @MessageComment(value = { "match timer expired" }) + Abort, + + } + } From e92a6760d6a4d8b50c099eddb477766c6401c1ac Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Fri, 14 Apr 2017 11:58:25 +0200 Subject: [PATCH 225/266] v2 gui --- .../mgapi/impl/cmd/gui/ArenaEdit.java | 6 +- .../mgapi/impl/cmd/gui/ComponentEdit.java | 339 +++++++++++++++++ .../cmd/gui/ComponentsCreateChooseType.java | 238 ++++++++++++ .../mgapi/impl/cmd/gui/ComponentsPage.java | 216 +++++++++++ .../mgapi/impl/cmd/gui/MgClickGuis.java | 10 + .../mgapi/impl/cmd/gui/RulesPage.java | 162 ++++++++ .../mgapi/impl/cmd/gui/SignEdit.java | 14 +- .../impl/cmd/gui/SignsCreateChooseType.java | 2 +- .../mgapi/impl/cmd/gui/ZoneEdit.java | 360 ++++++++++++++++++ .../impl/cmd/gui/ZonesCreateChooseType.java | 238 ++++++++++++ .../mgapi/impl/cmd/gui/ZonesPage.java | 216 +++++++++++ 11 files changed, 1791 insertions(+), 10 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java index 5a5b3165..ceff3431 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java @@ -154,8 +154,7 @@ private void onSigns(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onZones(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new ZonesPage(this.arena, this)); } /** @@ -178,8 +177,7 @@ private void onComponents(McPlayerInterface player, GuiSessionInterface session, */ private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new RulesPage<>(this.getPageName(), this.arena, this)); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java new file mode 100644 index 00000000..3dacdf81 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java @@ -0,0 +1,339 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.Optional; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; + +/** + * Click gui for editing components. + * + * @author mepeisen + */ +public class ComponentEdit implements ClickGuiPageInterface +{ + + /** arena to be edited. */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** component to be edited. */ + private ArenaComponentHandler component; + + /** + * @param arena + * @param component + * @param prevPage + */ + public ComponentEdit(ArenaInterface arena, ArenaComponentHandler component, ClickGuiPageInterface prevPage) + { + this.arena = arena; + this.component = component; + this.prevPage = prevPage; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + Main.itemHome(), + Main.itemBack(this::onBack, Messages.IconBack), + null, + Main.itemDelete(this::onDelete, Messages.IconDelete), + null, + null, + null, + null, + Main.itemCloseGui() + }, + null, + { + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleport, this::onTeleport), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) + } + }); + } + + /** + * info + * @param player + * @param session + * @param gui + */ + private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + player.sendMessage(Messages.InfoOutput, + this.arena.getDisplayName().toArg(), + this.arena.getShortDescription().toArg(), + this.component.getName(), + this.component.getComponent().getTypeId().getPluginName(), + this.component.getComponent().getTypeId().name()); + } + + /** + * name + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.openAnvilGui(new QueryText( + this.component.getName(), + () -> {player.openClickGui(new Main(this));}, + (s) -> this.onName(player, session, gui, s), + player.encodeMessage(Messages.NameDescription))); + } + + /** + * name + * @param player + * @param session + * @param gui + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String name) throws McException + { + if (name.equals(this.component.getName())) + { + player.openClickGui(new Main(this)); + return; + } + + @SuppressWarnings("cast") + final Optional<ArenaComponentHandler> handler = this.arena.getComponents().stream(). + map(s -> (ArenaComponentHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + this.component.setName(name); + this.component.getComponent().saveConfig(); + player.openClickGui(new Main(this)); + } + + /** + * display marker + * @param player + * @param session + * @param gui + */ + private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + if (!player.hasSmartGui()) + { + player.sendMessage(CommonMessages.NoSmartGui); + } + else + { + session.setNewPage(new SelectMarkerPage(player, this.component.getComponent(), this)); + } + } + + /** + * teleport + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onTeleport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.getBukkitPlayer().teleport(this.component.getComponent().getLocation()); + player.openClickGui(new Main(this)); + } + + /** + * rules + * @param player + * @param session + * @param gui + */ + private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new RulesPage<>(this.getPageName(), this.component, this)); + } + + /** + * delete + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + this.component.getComponent().delete(); + session.setNewPage(this.prevPage); + } + + /** + * back to previous gui + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.component.getName()); + } + + /** + * The component create messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.components_edit") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (component edit page) + */ + @LocalizedMessage(defaultMessage = "Component %1$s - %2$s") + @MessageComment(value = {"Gui title (component edit)"}, args = {@Argument("arena internal name"), @Argument("component name")}) + Title, + + /** + * back to arenas + */ + @LocalizedMessage(defaultMessage = "Back to components list") + @MessageComment({"back to components"}) + IconBack, + + /** + * info + */ + @LocalizedMessage(defaultMessage = "Component info") + @MessageComment({"info"}) + IconInfo, + + /** + * name + */ + @LocalizedMessage(defaultMessage = "Component name") + @MessageComment({"component name"}) + IconName, + + /** + * display marker + */ + @LocalizedMessage(defaultMessage = "Show display marker") + @MessageComment({"display marker"}) + IconDisplayMarker, + + /** + * teleport + */ + @LocalizedMessage(defaultMessage = "Teleport to component") + @MessageComment({"teleport"}) + IconTeleport, + + /** + * delete + */ + @LocalizedMessage(defaultMessage = "Delete") + @MessageComment({"delete"}) + IconDelete, + + /** + * rules + */ + @LocalizedMessage(defaultMessage = "Rules") + @MessageComment({"rules"}) + IconRules, + + /** + * The info + */ + @LocalizedMessageList({ + "arena: %1$s - %2$s", + "component-name: %3$s", + "component-type: %4$s/%5$s" + }) + @MessageComment(value = { + "The info" + },args = { + @Argument("arena display name"), + @Argument("arena short description"), + @Argument("component name"), + @Argument("component type plugin"), + @Argument("component type name"), + }) + InfoOutput, + + /** + * Name description + */ + @LocalizedMessageList({"Enter the name of the component.", "The name is only used internal."}) + @MessageComment("Text description for component name") + NameDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java new file mode 100644 index 00000000..48ca6cb4 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java @@ -0,0 +1,238 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.ComponentTypeId; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McBiConsumer; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; + +/** + * Page with arena components; choose type for new component + * + * @author mepeisen + */ +public class ComponentsCreateChooseType extends AbstractPage<ComponentTypeId> +{ + + /** the arena */ + private McBiConsumer<ComponentTypeId, String> onSave; + + /** previous page */ + private ClickGuiPageInterface prev; + + /** the underlying arena. */ + private ArenaInterface arena; + + /** + * @param arena + * @param onSave + * @param prev + */ + public ComponentsCreateChooseType(ArenaInterface arena, McBiConsumer<ComponentTypeId, String> onSave, ClickGuiPageInterface prev) + { + this.arena = arena; + this.onSave = onSave; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return EnumServiceInterface.instance().getEnumValues(ComponentTypeId.class).size(); + } + + /** + * Converts component type to string + * @param compType + * @return component type + */ + private String toString(ComponentTypeId compType) + { + return compType.getPluginName() + "/" + compType.name(); //$NON-NLS-1$ + } + + @Override + protected List<ComponentTypeId> getElements(int start, int limit) + { + final Set<ComponentTypeId> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); + result.addAll(EnumServiceInterface.instance().getEnumValues(ComponentTypeId.class)); + return result. + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, ComponentTypeId elm) + { + final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Component); + return new ClickGuiItem(item, Messages.IconComponent, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + null, + null, + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + null, + null, + null, + Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) + }; + } + + /** + * Returns a free name with given prefix. + * @param prefix + * @return free name + */ + private String getFreeName(String prefix) + { + int i = 1; + while (true) + { + final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ + + @SuppressWarnings("cast") + final Optional<ArenaComponentHandler> handler = this.arena.getComponents().stream(). + map(s -> (ArenaComponentHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + + if (!handler.isPresent()) + { + return name; + } + + i++; + } + } + + /** + * type chosen + * @param player + * @param session + * @param gui + * @param type + * @throws McException + */ + private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ComponentTypeId type) throws McException + { + final String text = this.getFreeName(type.name().toLowerCase()); + + player.openAnvilGui(new QueryText( + text, + () -> {player.openClickGui(new Main(this.prev));}, + (s) -> this.onName(player, session, gui, type, s), + player.encodeMessage(Messages.TextDescription))); + } + + /** + * name selected + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ComponentTypeId type, String name) throws McException + { + this.onSave.accept(type, name); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.component_create_choose_type") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (component types page) + */ + @LocalizedMessage(defaultMessage = "Type for new component in arena %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (component types page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The Cancel + */ + @LocalizedMessage(defaultMessage = "Cancel creation") + @MessageComment({"cancel icon"}) + IconCancel, + + /** + * The component icon + */ + @LocalizedMessage(defaultMessage = "type %1$s") + @MessageComment(value = {"component type icon"}, args=@Argument("type name")) + IconComponent, + + /** + * Text description + */ + @LocalizedMessageList({"Enter the name of the new component.", "The name is only used internal."}) + @MessageComment("Text description for component name") + TextDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java new file mode 100644 index 00000000..90ae6b3f --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java @@ -0,0 +1,216 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.ComponentTypeId; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; + +/** + * Page with arena components + * + * @author mepeisen + */ +public class ComponentsPage extends AbstractPage<ArenaComponentHandler> +{ + + /** the arena */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prev; + + /** + * Constructor to create the first page + * @param arena + * @param prev + */ + public ComponentsPage(ArenaInterface arena, ClickGuiPageInterface prev) + { + this.arena = arena; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return this.arena.getComponents().size(); + } + + @Override + protected List<ArenaComponentHandler> getElements(int start, int limit) + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + return this.arena.getComponents(). + stream(). + map(osi::findComponent). + map(s -> (ArenaComponentHandler) s.getHandler()). + sorted((a, b) -> a.getName().compareTo(b.getName())). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, ArenaComponentHandler elm) + { + final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Component); + return new ClickGuiItem(item, Messages.IconComponent, (p, s, g) -> this.onEdit(p, s, g, elm), elm.getName()); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + Main.itemNew(this::onNew, Messages.IconNewComponent), + null, + Main.itemCloseGui() + }; + } + + /** + * component edit + * @param player + * @param session + * @param gui + * @param component + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaComponentHandler component) + { + session.setNewPage(new ComponentEdit(this.arena, component, this)); + } + + /** + * new component + * @param player + * @param session + * @param gui + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new ComponentsCreateChooseType(this.arena, (type, name) -> onNew(player, session, gui, type, name), this)); + } + + /** + * new component + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ComponentTypeId type, String name) throws McException + { + @SuppressWarnings("cast") + final Optional<ArenaComponentHandler> handler = this.arena.getComponents().stream(). + map(s -> (ArenaComponentHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + AdminToolHelper.onCreateComponent(player, this.arena, name, type, c -> player.openClickGui(new Main(new ComponentEdit(this.arena, c, this)))); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.components") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (components page) + */ + @LocalizedMessage(defaultMessage = "Components for arena %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (components page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment({"back icon"}) + IconBack, + + /** + * The new component + */ + @LocalizedMessage(defaultMessage = "New component") + @MessageComment({"new component icon"}) + IconNewComponent, + + /** + * The component icon + */ + @LocalizedMessage(defaultMessage = "component %1$s") + @MessageComment(value = {"component icon"}, args=@Argument("component name")) + IconComponent, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java index 9c83a8d5..0b206f1f 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java @@ -41,6 +41,8 @@ YesNoQuestion.Messages.class, SelectMarkerPage.Messages.class, + RulesPage.Messages.class, + LocalizedLinesList.Messages.class, LocalizedLinesEditLocale.Messages.class, LocalizedLinesEditLocaleList.Messages.class, @@ -50,6 +52,14 @@ SignsPage.Messages.class, SignEdit.Messages.class, SignsCreateChooseType.Messages.class, + + ComponentsPage.Messages.class, + ComponentEdit.Messages.class, + ComponentsCreateChooseType.Messages.class, + + ZonesPage.Messages.class, + ZoneEdit.Messages.class, + ZonesCreateChooseType.Messages.class, }) public enum MgClickGuis implements ClickGuiId { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java new file mode 100644 index 00000000..31a0857d --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java @@ -0,0 +1,162 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.Collections; +import java.util.List; + +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.RuleSetInterface; +import de.minigameslib.mgapi.api.rules.RuleSetType; + +/** + * Page with object rules + * + * @author mepeisen + * @param <T> rule set type class + * @param <Q> rule set class + */ +public class RulesPage<T extends RuleSetType, Q extends RuleSetInterface<T>> extends AbstractPage<T> +{ + + /** previous page */ + private ClickGuiPageInterface prev; + + /** container */ + private RuleSetContainerInterface<T, Q> container; + + /** page title */ + private Serializable title; + + /** + * @param title + * @param container + * @param prev + */ + public RulesPage(Serializable title, RuleSetContainerInterface<T, Q> container, ClickGuiPageInterface prev) + { + this.title = title; + this.container = container; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.title, this.page(), this.totalPages()); + } + + @Override + protected int count() + { + // TODO + return 0; + } + + @Override + protected List<T> getElements(int start, int limit) + { + // TODO + return Collections.emptyList(); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, T elm) + { + // return Main.itemArena(elm, (p, s, g) -> onArena(p, s, g, elm)); + // TODO + return null; + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemBack((p, s, g) -> s.setNewPage(this.prev), Messages.IconBack, this.title), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + null, + null, + Main.itemCloseGui() + }; + } + + /** + * rule + * @param player + * @param session + * @param gui + * @param rule + */ + private void onRule(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, T rule) + { + // TODO session.setNewPage(new ArenaEdit(arena, this)); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.rules") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (rules page) + */ + @LocalizedMessage(defaultMessage = "Rules of %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (rules page)"}, args = {@Argument("title"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The rules icon + */ + @LocalizedMessage(defaultMessage = "rule %1$s/%2$s") + @MessageComment(value = {"rule icon"}, args={@Argument("rule plugin name"), @Argument("rule enum name")}) + IconRule, + + /** + * The back icon + */ + @LocalizedMessage(defaultMessage = "back to %1$s") + @MessageComment(value = {"back icon"}, args = {@Argument("title")}) + IconBack, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java index 2815fc80..4513a092 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java @@ -208,8 +208,7 @@ private void onTeleport(McPlayerInterface player, GuiSessionInterface session, C */ private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new RulesPage<>(this.getPageName(), this.sign, this)); } /** @@ -217,11 +216,16 @@ private void onRules(McPlayerInterface player, GuiSessionInterface session, Clic * @param player * @param session * @param gui + * @throws McException */ - private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + this.sign.getSign().delete(); + session.setNewPage(this.prevPage); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java index 418e49e5..533b9b37 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java @@ -223,7 +223,7 @@ public enum Messages implements LocalizedMessageInterface * The sign icon */ @LocalizedMessage(defaultMessage = "type %1$s") - @MessageComment(value = {"sign type icon"}, args=@Argument("sign name")) + @MessageComment(value = {"sign type icon"}, args=@Argument("type name")) IconSign, /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java new file mode 100644 index 00000000..c0a6d722 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java @@ -0,0 +1,360 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.Optional; + +import de.minigameslib.mclib.api.CommonMessages; +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; + +/** + * Click gui for editing zones. + * + * @author mepeisen + */ +public class ZoneEdit implements ClickGuiPageInterface +{ + + /** arena to be edited. */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** zone to be edited. */ + private ArenaZoneHandler zone; + + /** + * @param arena + * @param zone + * @param prevPage + */ + public ZoneEdit(ArenaInterface arena, ArenaZoneHandler zone, ClickGuiPageInterface prevPage) + { + this.arena = arena; + this.zone = zone; + this.prevPage = prevPage; + } + + @Override + public ClickGuiItem[][] getItems() + { + return Main.withFillers(new ClickGuiItem[][]{ + { + Main.itemHome(), + Main.itemBack(this::onBack, Messages.IconBack), + null, + Main.itemDelete(this::onDelete, Messages.IconDelete), + null, + null, + null, + null, + Main.itemCloseGui() + }, + null, + { + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportLower, this::onTeleportLower), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportHigher, this::onTeleportHigher), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) + } + }); + } + + /** + * info + * @param player + * @param session + * @param gui + */ + private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + player.sendMessage(Messages.InfoOutput, + this.arena.getDisplayName().toArg(), + this.arena.getShortDescription().toArg(), + this.zone.getName(), + this.zone.getZone().getTypeId().getPluginName(), + this.zone.getZone().getTypeId().name()); + } + + /** + * name + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.openAnvilGui(new QueryText( + this.zone.getName(), + () -> {player.openClickGui(new Main(this));}, + (s) -> this.onName(player, session, gui, s), + player.encodeMessage(Messages.NameDescription))); + } + + /** + * name + * @param player + * @param session + * @param gui + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String name) throws McException + { + if (name.equals(this.zone.getName())) + { + player.openClickGui(new Main(this)); + return; + } + + @SuppressWarnings("cast") + final Optional<ArenaZoneHandler> handler = this.arena.getZones().stream(). + map(s -> (ArenaZoneHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + this.zone.setName(name); + this.zone.getZone().saveConfig(); + player.openClickGui(new Main(this)); + } + + /** + * display marker + * @param player + * @param session + * @param gui + */ + private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + if (!player.hasSmartGui()) + { + player.sendMessage(CommonMessages.NoSmartGui); + } + else + { + session.setNewPage(new SelectMarkerPage(player, this.zone.getZone(), this)); + } + } + + /** + * teleport + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onTeleportLower(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.getBukkitPlayer().teleport(this.zone.getZone().getCuboid().getLowLoc()); + player.openClickGui(new Main(this)); + } + + /** + * teleport + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onTeleportHigher(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + player.getBukkitPlayer().teleport(this.zone.getZone().getCuboid().getHighLoc()); + player.openClickGui(new Main(this)); + } + + /** + * rules + * @param player + * @param session + * @param gui + */ + private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new RulesPage<>(this.getPageName(), this.zone, this)); + } + + /** + * delete + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + this.zone.getZone().delete(); + session.setNewPage(this.prevPage); + } + + /** + * back to previous gui + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.zone.getName()); + } + + /** + * The zone create messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.zones_edit") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (zone edit page) + */ + @LocalizedMessage(defaultMessage = "Zone %1$s - %2$s") + @MessageComment(value = {"Gui title (zone edit)"}, args = {@Argument("arena internal name"), @Argument("zone name")}) + Title, + + /** + * back to arenas + */ + @LocalizedMessage(defaultMessage = "Back to zones list") + @MessageComment({"back to zones"}) + IconBack, + + /** + * info + */ + @LocalizedMessage(defaultMessage = "Zone info") + @MessageComment({"info"}) + IconInfo, + + /** + * name + */ + @LocalizedMessage(defaultMessage = "Zone name") + @MessageComment({"zone name"}) + IconName, + + /** + * display marker + */ + @LocalizedMessage(defaultMessage = "Show display marker") + @MessageComment({"display marker"}) + IconDisplayMarker, + + /** + * teleport + */ + @LocalizedMessage(defaultMessage = "Teleport to zone (lower bounds)") + @MessageComment({"teleport"}) + IconTeleportLower, + + /** + * teleport + */ + @LocalizedMessage(defaultMessage = "Teleport to zone (higher bounds)") + @MessageComment({"teleport"}) + IconTeleportHigher, + + /** + * delete + */ + @LocalizedMessage(defaultMessage = "Delete") + @MessageComment({"delete"}) + IconDelete, + + /** + * rules + */ + @LocalizedMessage(defaultMessage = "Rules") + @MessageComment({"rules"}) + IconRules, + + /** + * The info + */ + @LocalizedMessageList({ + "arena: %1$s - %2$s", + "zone-name: %3$s", + "zone-type: %4$s/%5$s" + }) + @MessageComment(value = { + "The info" + },args = { + @Argument("arena display name"), + @Argument("arena short description"), + @Argument("zone name"), + @Argument("zone type plugin"), + @Argument("zone type name"), + }) + InfoOutput, + + /** + * Name description + */ + @LocalizedMessageList({"Enter the name of the zone.", "The name is only used internal."}) + @MessageComment("Text description for zone name") + NameDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java new file mode 100644 index 00000000..1a1da0a1 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java @@ -0,0 +1,238 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.enums.EnumServiceInterface; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ZoneTypeId; +import de.minigameslib.mclib.api.util.function.McBiConsumer; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; + +/** + * Page with arena zones; choose type for new zones + * + * @author mepeisen + */ +public class ZonesCreateChooseType extends AbstractPage<ZoneTypeId> +{ + + /** the arena */ + private McBiConsumer<ZoneTypeId, String> onSave; + + /** previous page */ + private ClickGuiPageInterface prev; + + /** the underlying arena. */ + private ArenaInterface arena; + + /** + * @param arena + * @param onSave + * @param prev + */ + public ZonesCreateChooseType(ArenaInterface arena, McBiConsumer<ZoneTypeId, String> onSave, ClickGuiPageInterface prev) + { + this.arena = arena; + this.onSave = onSave; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class).size(); + } + + /** + * Converts zone type to string + * @param zoneType + * @return zone type + */ + private String toString(ZoneTypeId zoneType) + { + return zoneType.getPluginName() + "/" + zoneType.name(); //$NON-NLS-1$ + } + + @Override + protected List<ZoneTypeId> getElements(int start, int limit) + { + final Set<ZoneTypeId> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); + result.addAll(EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class)); + return result. + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, ZoneTypeId elm) + { + final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Globe); + return new ClickGuiItem(item, Messages.IconZone, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + null, + null, + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + null, + null, + null, + Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) + }; + } + + /** + * Returns a free name with given prefix. + * @param prefix + * @return free name + */ + private String getFreeName(String prefix) + { + int i = 1; + while (true) + { + final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ + + @SuppressWarnings("cast") + final Optional<ArenaZoneHandler> handler = this.arena.getZones().stream(). + map(s -> (ArenaZoneHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + + if (!handler.isPresent()) + { + return name; + } + + i++; + } + } + + /** + * type chosen + * @param player + * @param session + * @param gui + * @param type + * @throws McException + */ + private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ZoneTypeId type) throws McException + { + final String text = this.getFreeName(type.name().toLowerCase()); + + player.openAnvilGui(new QueryText( + text, + () -> {player.openClickGui(new Main(this.prev));}, + (s) -> this.onName(player, session, gui, type, s), + player.encodeMessage(Messages.TextDescription))); + } + + /** + * name selected + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ZoneTypeId type, String name) throws McException + { + this.onSave.accept(type, name); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.zone_create_choose_type") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (zone types page) + */ + @LocalizedMessage(defaultMessage = "Type for new zone in arena %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (zone types page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The Cancel + */ + @LocalizedMessage(defaultMessage = "Cancel creation") + @MessageComment({"cancel icon"}) + IconCancel, + + /** + * The zone icon + */ + @LocalizedMessage(defaultMessage = "type %1$s") + @MessageComment(value = {"zone type icon"}, args=@Argument("type name")) + IconZone, + + /** + * Text description + */ + @LocalizedMessageList({"Enter the name of the new zone.", "The name is only used internal."}) + @MessageComment("Text description for zone name") + TextDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java new file mode 100644 index 00000000..c3b53161 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java @@ -0,0 +1,216 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.objects.ObjectServiceInterface; +import de.minigameslib.mclib.api.objects.ZoneTypeId; +import de.minigameslib.mgapi.api.arena.ArenaInterface; +import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.impl.arena.ArenaImpl; +import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; + +/** + * Page with arena zones + * + * @author mepeisen + */ +public class ZonesPage extends AbstractPage<ArenaZoneHandler> +{ + + /** the arena */ + private ArenaInterface arena; + + /** previous page. */ + private ClickGuiPageInterface prev; + + /** + * Constructor to create the first page + * @param arena + * @param prev + */ + public ZonesPage(ArenaInterface arena, ClickGuiPageInterface prev) + { + this.arena = arena; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return this.arena.getZones().size(); + } + + @Override + protected List<ArenaZoneHandler> getElements(int start, int limit) + { + final ObjectServiceInterface osi = ObjectServiceInterface.instance(); + return this.arena.getZones(). + stream(). + map(osi::findZone). + map(s -> (ArenaZoneHandler) s.getHandler()). + sorted((a, b) -> a.getName().compareTo(b.getName())). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, ArenaZoneHandler elm) + { + final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Globe); + return new ClickGuiItem(item, Messages.IconZone, (p, s, g) -> this.onEdit(p, s, g, elm), elm.getName()); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), + Main.itemRefresh(this::onRefresh), + Main.itemPrevPage(this::onPrevPage), + Main.itemNextPage(this::onNextPage), + null, + Main.itemNew(this::onNew, Messages.IconNewZone), + null, + Main.itemCloseGui() + }; + } + + /** + * zone edit + * @param player + * @param session + * @param gui + * @param zone + */ + private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaZoneHandler zone) + { + session.setNewPage(new ZoneEdit(this.arena, zone, this)); + } + + /** + * new zone + * @param player + * @param session + * @param gui + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(new ZonesCreateChooseType(this.arena, (type, name) -> onNew(player, session, gui, type, name), this)); + } + + /** + * new zone + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ZoneTypeId type, String name) throws McException + { + @SuppressWarnings("cast") + final Optional<ArenaZoneHandler> handler = this.arena.getZones().stream(). + map(s -> (ArenaZoneHandler) this.arena.getHandler(s)). + filter(s -> name.equals(s.getName())). + findFirst(); + if (handler.isPresent()) + { + throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); + } + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + AdminToolHelper.onCreateZone(player, this.arena, name, type, z -> player.openClickGui(new Main(new ZoneEdit(this.arena, z, this)))); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.zones") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (zones page) + */ + @LocalizedMessage(defaultMessage = "Zones for arena %1$s (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (zones page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * back icon + */ + @LocalizedMessage(defaultMessage = "Back") + @MessageComment({"back icon"}) + IconBack, + + /** + * The new zone + */ + @LocalizedMessage(defaultMessage = "New zone") + @MessageComment({"new zone icon"}) + IconNewZone, + + /** + * The zone icon + */ + @LocalizedMessage(defaultMessage = "zone %1$s") + @MessageComment(value = {"zone icon"}, args=@Argument("zone name")) + IconZone, + } + +} From f49eccb6eed16d8cfce1c80be97dbea6499bf24c Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 15 Apr 2017 16:46:29 +0200 Subject: [PATCH 226/266] v2 rule set editor --- .../mgapi/api/rules/BasicPvpModeConfig.java | 2 +- .../mgapi/api/rules/BasicSpawnsConfig.java | 2 +- .../mgapi/api/rules/RuleSetType.java | 4 +- .../mgapi/impl/arena/ArenaImpl.java | 1 - .../mgapi/impl/cmd/gui/AbstractPage.java | 141 +---------- .../mgapi/impl/cmd/gui/ArenaEdit.java | 7 +- .../mgapi/impl/cmd/gui/ArenasPage.java | 4 +- .../mgapi/impl/cmd/gui/ComponentEdit.java | 8 +- .../cmd/gui/ComponentsCreateChooseType.java | 4 +- .../mgapi/impl/cmd/gui/ComponentsPage.java | 4 +- .../cmd/gui/LocalizedLinesEditLocaleList.java | 4 +- .../impl/cmd/gui/LocalizedLinesList.java | 4 +- .../impl/cmd/gui/LocalizedStringList.java | 4 +- .../mgapi/impl/cmd/gui/MgClickGuis.java | 1 + .../mgapi/impl/cmd/gui/RuleEdit.java | 221 ++++++++++++++++++ .../mgapi/impl/cmd/gui/RulesPage.java | 87 ++++++- .../mgapi/impl/cmd/gui/SelectMarkerPage.java | 4 +- .../mgapi/impl/cmd/gui/SignEdit.java | 8 +- .../impl/cmd/gui/SignsCreateChooseType.java | 4 +- .../mgapi/impl/cmd/gui/SignsPage.java | 4 +- .../mgapi/impl/cmd/gui/ZoneEdit.java | 8 +- .../impl/cmd/gui/ZonesCreateChooseType.java | 4 +- .../mgapi/impl/cmd/gui/ZonesPage.java | 4 +- 23 files changed, 362 insertions(+), 172 deletions(-) create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java index e613815d..7b697b5c 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java @@ -44,7 +44,7 @@ public enum BasicPvpModeConfig implements ConfigurationValueInterface /** * The pvp option */ - @ConfigurationEnum + @ConfigurationEnum(clazz = PvpModes.class) @ConfigComment({"The pvp option"}) PvpOption; diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java index d023adc8..fe8e7ea1 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java @@ -44,7 +44,7 @@ public enum BasicSpawnsConfig implements ConfigurationValueInterface /** * The spawn option */ - @ConfigurationEnum() + @ConfigurationEnum(clazz = SpawnType.class) @ConfigComment({"The spawn option"}) SpawnOption; diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java index ff59860e..fe873d9d 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java @@ -24,8 +24,8 @@ package de.minigameslib.mgapi.api.rules; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; -import de.minigameslib.mclib.shared.api.com.EnumerationValue; /** * Base interface for rule sets @@ -40,7 +40,7 @@ public interface RuleSetType extends McUniqueEnumInterface * @return confuiguration class or {@code null} if this types has no configuration. */ @SuppressWarnings("unchecked") - default <T extends Enum<?> & EnumerationValue> Class<T> getConfigClass() + default <T extends Enum<?> & ConfigurationValueInterface> Class<T> getConfigClass() { RuleSetConfigurable result; try diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index fd459e15..68850afa 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -96,7 +96,6 @@ import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; import de.minigameslib.mgapi.api.team.ArenaTeamInterface; -import de.minigameslib.mgapi.api.team.CommonTeams; import de.minigameslib.mgapi.api.team.TeamIdType; import de.minigameslib.mgapi.impl.MglibObjectTypes; import de.minigameslib.mgapi.impl.MinigamesPlugin; diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java index d0473d2e..8a95b7b2 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java @@ -24,16 +24,8 @@ package de.minigameslib.mgapi.impl.cmd.gui; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.gui.PagableClickGuiPage; /** * Abstract base class for pagable elements. @@ -41,18 +33,9 @@ * @author mepeisen * @param <T> element type */ -public abstract class AbstractPage<T> implements ClickGuiPageInterface +public abstract class AbstractPage<T> extends PagableClickGuiPage<T> { - /** number of items per page */ - protected static final int ITEMS_PER_LINE = Main.COL_COUNT; - - /** number of items per page */ - protected static final int ITEMS_PER_PAGE = ITEMS_PER_LINE * 4; - - /** numeric page num */ - private int pageNum = 1; - /** * Constructor to create the first page */ @@ -67,131 +50,31 @@ public AbstractPage() */ public AbstractPage(int pageNum) { - this.pageNum = pageNum; - } - - /** - * Returns the number of elements - * @return count of elements - */ - protected abstract int count(); - - /** - * Returns total number of pages. - * @return total page number. - */ - protected int totalPages() - { - return (int) Math.ceil(this.count() / ITEMS_PER_PAGE); + super(pageNum); } - - /** - * Returns current page - * @return current page. - */ - protected int page() - { - return this.pageNum; - } - - /** - * Returns the elements for this page - * @param start start index - * @param limit maximum limit - * @return list of elements to be displayed - */ - protected abstract List<T> getElements(int start, int limit); - - /** - * Maps elements to click gui item - * @param line - * @param col - * @param index - * @param elm - * @return click gui item - */ - protected abstract ClickGuiItem map(int line, int col, int index, T elm); @Override public ClickGuiItem[][] getItems() { - final List<T> list = this.getElements((this.pageNum - 1) * ITEMS_PER_PAGE, ITEMS_PER_PAGE); - return Main.withFillers(new ClickGuiItem[][]{ - firstLine(), - null, - // arenas - itemsLine(list, 0), - itemsLine(list, ITEMS_PER_LINE), - itemsLine(list, ITEMS_PER_LINE * 2), - itemsLine(list, ITEMS_PER_LINE * 3), - }); - } - - /** - * Returns the first line - * @return first line - */ - protected abstract ClickGuiItem[] firstLine(); - - /** - * @param items - * @param start - * @return line of icons - */ - private ClickGuiItem[] itemsLine(Collection<T> items, int start) - { - int col = 0; - int i = start + (this.pageNum - 1) * ITEMS_PER_PAGE; - final List<ClickGuiItem> result = new ArrayList<>(); - final Iterator<T> iter = items.stream().skip(start).limit(ITEMS_PER_LINE).iterator(); - while (iter.hasNext()) - { - result.add(this.map(start / ITEMS_PER_LINE, col, i, iter.next())); - col++; - i++; - } - return result.toArray(new ClickGuiItem[result.size()]); + return Main.withFillers(super.getItems()); } /** - * refresh gui - * @param player - * @param session - * @param gui - */ - protected void onRefresh(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this); - } - - /** - * prev page - * @param player - * @param session - * @param gui + * prev page icon + * @return prev page icon */ - protected void onPrevPage(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + public ClickGuiItem itemPrevPage() { - if (this.pageNum > 1) - { - this.pageNum--; - session.setNewPage(this); - } + return this.page() > 1 ? Main.itemPrevPage(this::onPrevPage) : null; } /** - * next page - * @param player - * @param session - * @param gui + * next page icon + * @return next page icon */ - protected void onNextPage(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + public ClickGuiItem itemNextPage() { - if (this.pageNum < this.totalPages()) - { - this.pageNum++; - session.setNewPage(this); - } + return this.page() < this.totalPages() ? Main.itemNextPage(this::onNextPage) : null; } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java index ceff3431..6fe813cd 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java @@ -27,6 +27,7 @@ import java.io.Serializable; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; @@ -43,6 +44,7 @@ import de.minigameslib.mgapi.api.MinigameInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.impl.cmd.ArenaCommand; /** @@ -177,7 +179,10 @@ private void onComponents(McPlayerInterface player, GuiSessionInterface session, */ private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - session.setNewPage(new RulesPage<>(this.getPageName(), this.arena, this)); + session.setNewPage(new RulesPage<>(this.getPageName(), this.arena, this, rt -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this.arena.getRuleSet(rt)); + })); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java index ca034f6e..d753e3ab 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java @@ -87,8 +87,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ Main.itemHome(), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, Main.itemNew(this::onNew, Messages.IconNewArena), new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save), Messages.IconImport, this::onImport), diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java index 3dacdf81..43d6daaa 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java @@ -29,6 +29,7 @@ import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; @@ -44,6 +45,7 @@ import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; +import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; @@ -208,7 +210,11 @@ private void onTeleport(McPlayerInterface player, GuiSessionInterface session, C */ private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - session.setNewPage(new RulesPage<>(this.getPageName(), this.component, this)); + session.setNewPage(new RulesPage<>(this.getPageName(), this.component, this, rt -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); + McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this.component.getRuleSet(rt)); + })); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java index 48ca6cb4..9349e966 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java @@ -128,8 +128,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ null, null, - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, null, null, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java index 90ae6b3f..f3ca7eef 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java @@ -116,8 +116,8 @@ protected ClickGuiItem[] firstLine() Main.itemHome(), Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, Main.itemNew(this::onNew, Messages.IconNewComponent), null, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java index a8db0af9..4f511fb8 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java @@ -144,8 +144,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ Main.itemHome(), null, - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), Main.itemBack(this.onPrev, Messages.IconBack), null, Main.itemDelete(this.onDelete, Messages.IconDeleteAll), diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java index e51a4fda..f5ebb297 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java @@ -104,8 +104,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ Main.itemHome(), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), Main.itemBack(this::onBack, Messages.IconBack), null, Main.itemNew(this::onNew, Messages.IconCreate), diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java index 004cfcfc..1c0a1f41 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java @@ -104,8 +104,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ Main.itemHome(), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), Main.itemBack(this::onBack, Messages.IconBack), null, Main.itemNew(this::onNew, Messages.IconCreate), diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java index 0b206f1f..d0e0a0de 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java @@ -42,6 +42,7 @@ SelectMarkerPage.Messages.class, RulesPage.Messages.class, + RuleEdit.Messages.class, LocalizedLinesList.Messages.class, LocalizedLinesEditLocale.Messages.class, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java new file mode 100644 index 00000000..0030d749 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java @@ -0,0 +1,221 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.config.ConfigServiceInterface; +import de.minigameslib.mclib.api.config.ConfigurationValueInterface; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McRunnable; +import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; +import de.minigameslib.mgapi.api.rules.RuleSetInterface; +import de.minigameslib.mgapi.api.rules.RuleSetType; + +/** + * Click gui for editing rules. + * + * @author mepeisen + * @param <T> rule set type class + * @param <Q> rule set class + */ +public class RuleEdit<T extends RuleSetType, Q extends RuleSetInterface<T>> extends AbstractPage<ConfigurationValueInterface> +{ + + /** container to be edited. */ + private RuleSetContainerInterface<T, Q> container; + + /** previous page. */ + private ClickGuiPageInterface prevPage; + + /** rule to be edited. */ + private T rule; + + /** the rule set type configuration options. */ + private List<ConfigurationValueInterface> configOptions = new ArrayList<>(); + + /** context provider */ + private McRunnable contextProvider; + + /** title */ + private Serializable title; + + /** + * @param title + * @param container + * @param rule + * @param prevPage + * @param contextProvider + */ + public RuleEdit(Serializable title, RuleSetContainerInterface<T, Q> container, T rule, ClickGuiPageInterface prevPage, McRunnable contextProvider) + { + this.title = title; + this.container = container; + this.rule = rule; + this.prevPage = prevPage; + + final Class<? extends ConfigurationValueInterface> clazz = rule.getConfigClass(); + if (clazz != null) + { + for (final ConfigurationValueInterface value : clazz.getEnumConstants()) + { + this.configOptions.add(value); + } + } + this.contextProvider = contextProvider; + } + + @Override + protected int count() + { + return this.configOptions.size(); + } + + @Override + protected List<ConfigurationValueInterface> getElements(int start, int limit) + { + return this.configOptions.stream().skip(start).limit(limit).collect(Collectors.toList()); + } + + @SuppressWarnings("unchecked") + @Override + protected ClickGuiItem map(int line, int col, int index, ConfigurationValueInterface elm) + { + try + { + return ConfigServiceInterface.instance().createGuiEditorItem( + elm, + () -> { + try + { + this.container.reconfigure(this.rule); + } + catch (McException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }, + this.contextProvider); + } + catch (McException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + return null; + } + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + Main.itemHome(), + Main.itemBack(this::onBack, Messages.IconBack, this.title), + null, + Main.itemDelete(this::onDelete, Messages.IconDelete), + null, + null, + null, + null, + Main.itemCloseGui() + }; + } + + /** + * delete + * @param player + * @param session + * @param gui + * @throws McException + */ + @SuppressWarnings("unchecked") + private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + this.container.removeRuleSets(this.rule); + session.setNewPage(this.prevPage); + } + + /** + * back to previous gui + * @param player + * @param session + * @param gui + */ + private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + { + session.setNewPage(this.prevPage); + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.title); + } + + /** + * The sign create messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.rules_edit") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (sign edit page) + */ + @LocalizedMessage(defaultMessage = "Rules for %1$s") + @MessageComment(value = {"Gui title (rules edit)"}, args = {@Argument("component name")}) + Title, + + /** + * back to prev + */ + @LocalizedMessage(defaultMessage = "Back to %1$s") + @MessageComment(value = {"back to prev"}, args = {@Argument("component name")}) + IconBack, + + /** + * delete + */ + @LocalizedMessage(defaultMessage = "Delete") + @MessageComment({"delete"}) + IconDelete, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java index 31a0857d..0ff94ba3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java @@ -25,19 +25,30 @@ package de.minigameslib.mgapi.impl.cmd.gui; import java.io.Serializable; -import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import de.minigameslib.mclib.api.McException; import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; import de.minigameslib.mclib.api.locale.LocalizedMessage; import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; import de.minigameslib.mclib.api.locale.LocalizedMessages; import de.minigameslib.mclib.api.locale.MessageComment; import de.minigameslib.mclib.api.locale.MessageComment.Argument; import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McConsumer; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; import de.minigameslib.mgapi.api.rules.RuleSetInterface; import de.minigameslib.mgapi.api.rules.RuleSetType; @@ -61,16 +72,21 @@ public class RulesPage<T extends RuleSetType, Q extends RuleSetInterface<T>> ext /** page title */ private Serializable title; + /** context provider */ + private McConsumer<T> contextProvider; + /** * @param title * @param container * @param prev + * @param contextProvider */ - public RulesPage(Serializable title, RuleSetContainerInterface<T, Q> container, ClickGuiPageInterface prev) + public RulesPage(Serializable title, RuleSetContainerInterface<T, Q> container, ClickGuiPageInterface prev, McConsumer<T> contextProvider) { this.title = title; this.container = container; this.prev = prev; + this.contextProvider = contextProvider; } @Override @@ -82,23 +98,55 @@ public Serializable getPageName() @Override protected int count() { - // TODO - return 0; + return this.container.getAppliedRuleSetTypes().size() + this.container.getAvailableRuleSetTypes().size(); + } + + /** + * Converts ruleset type to string + * @param type + * @return ruleset type + */ + private String toString(T type) + { + return type.getPluginName() + "/" + type.name(); //$NON-NLS-1$ } @Override protected List<T> getElements(int start, int limit) { - // TODO - return Collections.emptyList(); + final Set<T> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); + result.addAll(this.container.getAppliedRuleSetTypes()); + result.addAll(this.container.getAvailableRuleSetTypes()); + return result. + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); } @Override protected ClickGuiItem map(int line, int col, int index, T elm) { - // return Main.itemArena(elm, (p, s, g) -> onArena(p, s, g, elm)); - // TODO - return null; + final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Script); + final boolean isSet = this.container.isApplied(elm); + + if (isSet) + { + final ItemMeta meta = item.getItemMeta(); + meta.addEnchant(Enchantment.LURE, 1, false); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + item.setItemMeta(meta); + } + + return new ClickGuiItem(item, Messages.IconRule, (p, s, g) -> { + if (isSet) + { + this.onRule(p, s, g, elm); + } + else + { + this.onCreate(p, s, g, elm); + } + }, toString(elm)); } @Override @@ -108,8 +156,8 @@ protected ClickGuiItem[] firstLine() Main.itemHome(), Main.itemBack((p, s, g) -> s.setNewPage(this.prev), Messages.IconBack, this.title), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, null, null, @@ -117,6 +165,21 @@ protected ClickGuiItem[] firstLine() }; } + /** + * rule + * @param player + * @param session + * @param gui + * @param rule + * @throws McException + */ + @SuppressWarnings("unchecked") + private void onCreate(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, T rule) throws McException + { + this.container.applyRuleSets(rule); + session.setNewPage(new RuleEdit<>(this.title, this.container, rule, this, () -> this.contextProvider.accept(rule))); + } + /** * rule * @param player @@ -126,7 +189,7 @@ protected ClickGuiItem[] firstLine() */ private void onRule(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, T rule) { - // TODO session.setNewPage(new ArenaEdit(arena, this)); + session.setNewPage(new RuleEdit<>(this.title, this.container, rule, this, () -> this.contextProvider.accept(rule))); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java index 770d5a45..d510521a 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java @@ -168,8 +168,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ null, null, - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, null, null, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java index 4513a092..4ae04488 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java @@ -29,6 +29,7 @@ import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; @@ -44,6 +45,7 @@ import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaSignHandler; +import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; @@ -208,7 +210,11 @@ private void onTeleport(McPlayerInterface player, GuiSessionInterface session, C */ private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - session.setNewPage(new RulesPage<>(this.getPageName(), this.sign, this)); + session.setNewPage(new RulesPage<>(this.getPageName(), this.sign, this, rt -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); + McLibInterface.instance().setContext(SignRuleSetInterface.class, this.sign.getRuleSet(rt)); + })); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java index 533b9b37..142cf01c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java @@ -127,8 +127,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ null, null, - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, null, null, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java index b3ec3b70..57729b6e 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java @@ -115,8 +115,8 @@ protected ClickGuiItem[] firstLine() Main.itemHome(), Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, Main.itemNew(this::onNew, Messages.IconNewSign), null, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java index c0a6d722..b38d66a0 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java @@ -29,6 +29,7 @@ import de.minigameslib.mclib.api.CommonMessages; import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.McLibInterface; import de.minigameslib.mclib.api.gui.ClickGuiInterface; import de.minigameslib.mclib.api.gui.ClickGuiItem; import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; @@ -44,6 +45,7 @@ import de.minigameslib.mclib.api.objects.McPlayerInterface; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; +import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; @@ -222,7 +224,11 @@ private void onTeleportHigher(McPlayerInterface player, GuiSessionInterface sess */ private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - session.setNewPage(new RulesPage<>(this.getPageName(), this.zone, this)); + session.setNewPage(new RulesPage<>(this.getPageName(), this.zone, this, rt -> { + McLibInterface.instance().setContext(ArenaInterface.class, this.arena); + McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); + McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this.zone.getRuleSet(rt)); + })); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java index 1a1da0a1..c4356ac6 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java @@ -128,8 +128,8 @@ protected ClickGuiItem[] firstLine() return new ClickGuiItem[]{ null, null, - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, null, null, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java index c3b53161..d4900976 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java @@ -116,8 +116,8 @@ protected ClickGuiItem[] firstLine() Main.itemHome(), Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), Main.itemRefresh(this::onRefresh), - Main.itemPrevPage(this::onPrevPage), - Main.itemNextPage(this::onNextPage), + this.itemPrevPage(), + this.itemNextPage(), null, Main.itemNew(this::onNew, Messages.IconNewZone), null, From 7bfc9d5d0c4759d575cd16f02d492c7e9ca7c29a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 15 Apr 2017 21:49:21 +0200 Subject: [PATCH 227/266] v2 --- .../mgapi/api/MinigameInterface.java | 8 + .../minigameslib/mgapi/impl/MinigameImpl.java | 6 + .../mgapi/impl/cmd/gui/ArenaCreate.java | 65 ----- .../cmd/gui/ArenaCreateChooseArenaType.java | 230 ++++++++++++++++++ .../cmd/gui/ArenaCreateChooseMinigame.java | 154 ++++++++++++ .../mgapi/impl/cmd/gui/ArenaEdit.java | 21 +- .../mgapi/impl/cmd/gui/ArenasPage.java | 7 +- .../minigameslib/mgapi/impl/cmd/gui/Main.java | 8 +- .../mgapi/impl/cmd/gui/MgClickGuis.java | 3 +- .../mgapi/impl/cmd/gui/QueryLocale.java | 12 +- .../mgapi/impl/cmd/gui/QueryText.java | 12 +- .../mgapi/impl/cmd/gui/RuleEdit.java | 11 +- .../mgapi/impl/cmd/tool/AdminToolHelper.java | 1 + .../mgapi/impl/test/ArenaImplTest.java | 2 +- 14 files changed, 448 insertions(+), 92 deletions(-) delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java create mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java index 287b5bff..430c0244 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java @@ -93,6 +93,14 @@ public interface MinigameInterface */ int getTypeCount(); + /** + * Returns the arena types + * @param start starting index + * @param limit maximum countt return + * @return collection of arena types. + */ + Collection<ArenaTypeInterface> getTypes(int start, int limit); + /** * Returns the arena types * @param prefix type name prefix diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java index d679c0c0..aa336bf3 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java @@ -124,5 +124,11 @@ public Collection<ArenaTypeInterface> getTypes(String prefix, int start, int lim { return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).stream().filter(t -> t.name().toLowerCase().startsWith(prefix.toLowerCase())).skip(start).limit(limit).collect(Collectors.toList()); } + + @Override + public Collection<ArenaTypeInterface> getTypes(int start, int limit) + { + return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class); + } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java deleted file mode 100644 index f0440d5f..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreate.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; - -/** - * Click gui for creating arenas. - * - * @author mepeisen - */ -public class ArenaCreate implements ClickGuiPageInterface -{ - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** - * @param prevPage - */ - public ArenaCreate(ClickGuiPageInterface prevPage) - { - this.prevPage = prevPage; - } - - @Override - public ClickGuiItem[][] getItems() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public Serializable getPageName() - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java new file mode 100644 index 00000000..0544eb4b --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java @@ -0,0 +1,230 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import org.bukkit.inventory.ItemStack; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.items.CommonItems; +import de.minigameslib.mclib.api.items.ItemServiceInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessageList; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McBiConsumer; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; + +/** + * Page with arena type; choose type for new arena + * + * @author mepeisen + */ +public class ArenaCreateChooseArenaType extends AbstractPage<ArenaTypeInterface> +{ + + /** the arena */ + private McBiConsumer<ArenaTypeInterface, String> onSave; + + /** previous page */ + private ClickGuiPageInterface prev; + + /** the underlying minigame. */ + private MinigameInterface minigame; + + /** + * @param minigame + * @param onSave + * @param prev + */ + public ArenaCreateChooseArenaType(MinigameInterface minigame, McBiConsumer<ArenaTypeInterface, String> onSave, ClickGuiPageInterface prev) + { + this.minigame = minigame; + this.onSave = onSave; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.minigame.getName(), this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return this.minigame.getTypeCount(); + } + + /** + * Converts arena type to string + * @param compType + * @return arena type + */ + private String toString(ArenaTypeInterface compType) + { + return compType.getPluginName() + "/" + compType.name(); //$NON-NLS-1$ + } + + @Override + protected List<ArenaTypeInterface> getElements(int start, int limit) + { + final Set<ArenaTypeInterface> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); + result.addAll(this.minigame.getTypes(0, Integer.MAX_VALUE)); + return result. + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, ArenaTypeInterface elm) + { + final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Component); + return new ClickGuiItem(item, Messages.IconComponent, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + null, + null, + this.itemPrevPage(), + this.itemNextPage(), + null, + null, + null, + null, + Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) + }; + } + + /** + * Returns a free name with given prefix. + * @param prefix + * @return free name + */ + private String getFreeName(String prefix) + { + int i = 1; + while (true) + { + final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ + + if (MinigamesLibInterface.instance().getArena(name) == null) + { + return name; + } + + i++; + } + } + + /** + * type chosen + * @param player + * @param session + * @param gui + * @param type + * @throws McException + */ + private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaTypeInterface type) throws McException + { + final String text = this.getFreeName(type.name().toLowerCase()); + + player.openAnvilGui(new QueryText( + text, + () -> {player.openClickGui(new Main(this.prev));}, + (s) -> this.onName(player, session, gui, type, s), + player.encodeMessage(Messages.TextDescription))); + } + + /** + * name selected + * @param player + * @param session + * @param gui + * @param type + * @param name + * @throws McException + */ + private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaTypeInterface type, String name) throws McException + { + this.onSave.accept(type, name); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.arena_create_choose_type") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (arena types page) + */ + @LocalizedMessage(defaultMessage = "Type for new %1$s arena (page %2$d from %3$d)") + @MessageComment(value = {"Gui title (arena types page)"}, args = {@Argument("minigame name"), @Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The Cancel + */ + @LocalizedMessage(defaultMessage = "Cancel creation") + @MessageComment({"cancel icon"}) + IconCancel, + + /** + * The component icon + */ + @LocalizedMessage(defaultMessage = "type %1$s") + @MessageComment(value = {"component type icon"}, args=@Argument("type name")) + IconComponent, + + /** + * Text description + */ + @LocalizedMessageList({"Enter the name of the new arena.", "The name is only used internal."}) + @MessageComment("Text description for arena name") + TextDescription, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java new file mode 100644 index 00000000..331beea4 --- /dev/null +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java @@ -0,0 +1,154 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.impl.cmd.gui; + +import java.io.Serializable; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.gui.ClickGuiInterface; +import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; +import de.minigameslib.mclib.api.gui.GuiSessionInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessage; +import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; +import de.minigameslib.mclib.api.locale.LocalizedMessages; +import de.minigameslib.mclib.api.locale.MessageComment; +import de.minigameslib.mclib.api.locale.MessageComment.Argument; +import de.minigameslib.mclib.api.objects.McPlayerInterface; +import de.minigameslib.mclib.api.util.function.McBiConsumer; +import de.minigameslib.mgapi.api.MinigameInterface; +import de.minigameslib.mgapi.api.MinigamesLibInterface; +import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; + +/** + * Page with minigames; choose minigame for new arena + * + * @author mepeisen + */ +public class ArenaCreateChooseMinigame extends AbstractPage<MinigameInterface> +{ + + /** the arena */ + private McBiConsumer<ArenaTypeInterface, String> onSave; + + /** previous page */ + private ClickGuiPageInterface prev; + + /** + * @param onSave + * @param prev + */ + public ArenaCreateChooseMinigame(McBiConsumer<ArenaTypeInterface, String> onSave, ClickGuiPageInterface prev) + { + this.onSave = onSave; + this.prev = prev; + } + + @Override + public Serializable getPageName() + { + return Messages.Title.toArg(this.page(), this.totalPages()); + } + + @Override + protected int count() + { + return MinigamesLibInterface.instance().getMinigameCount(); + } + + @Override + protected List<MinigameInterface> getElements(int start, int limit) + { + final Set<MinigameInterface> result = new TreeSet<>((a, b) -> a.getName().compareTo(b.getName())); + result.addAll(MinigamesLibInterface.instance().getMinigames(0, Integer.MAX_VALUE)); + return result. + stream(). + skip(start).limit(limit). + collect(Collectors.toList()); + } + + @Override + protected ClickGuiItem map(int line, int col, int index, MinigameInterface elm) + { + return Main.itemMinigame(elm, (p, s, g) -> this.onChoose(p, s, g, elm)); + } + + @Override + protected ClickGuiItem[] firstLine() + { + return new ClickGuiItem[]{ + null, + null, + this.itemPrevPage(), + this.itemNextPage(), + null, + null, + null, + null, + Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) + }; + } + + /** + * minigame chosen + * @param player + * @param session + * @param gui + * @param mg + * @throws McException + */ + private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, MinigameInterface mg) throws McException + { + session.setNewPage(new ArenaCreateChooseArenaType(mg, this.onSave, this.prev)); + } + + /** + * The arenas messages. + * + * @author mepeisen + */ + @LocalizedMessages(value = "admingui.arena_create_choose_minigame") + public enum Messages implements LocalizedMessageInterface + { + /** + * Gui title (minigames page) + */ + @LocalizedMessage(defaultMessage = "Minigame for new arena (page %1$d from %2$d)") + @MessageComment(value = {"Gui title (minigames page)"}, args = {@Argument("page number"), @Argument("total pages")}) + Title, + + /** + * The Cancel + */ + @LocalizedMessage(defaultMessage = "Cancel creation") + @MessageComment({"cancel icon"}) + IconCancel, + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java index 6fe813cd..5730f99d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java @@ -133,7 +133,7 @@ public ClickGuiItem[][] getItems() */ private void onEntities(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui edit entities player.sendMessage(Main.Messages.NotAvailable); } @@ -167,8 +167,7 @@ private void onZones(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onComponents(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO - player.sendMessage(Main.Messages.NotAvailable); + session.setNewPage(new ComponentsPage(this.arena, this)); } /** @@ -193,7 +192,7 @@ private void onRules(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onTeams(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui edit teams player.sendMessage(Main.Messages.NotAvailable); } @@ -205,7 +204,7 @@ private void onTeams(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onInvite(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui invite player.sendMessage(Main.Messages.NotAvailable); } @@ -268,7 +267,7 @@ private void onMaintenance(McPlayerInterface player, GuiSessionInterface session */ private void onPlayers(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui edit players player.sendMessage(Main.Messages.NotAvailable); } @@ -280,7 +279,7 @@ private void onPlayers(McPlayerInterface player, GuiSessionInterface session, Cl */ private void onHardReset(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui edit hard reset player.sendMessage(Main.Messages.NotAvailable); } @@ -292,7 +291,7 @@ private void onHardReset(McPlayerInterface player, GuiSessionInterface session, */ private void onStop(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support stop player.sendMessage(Main.Messages.NotAvailable); } @@ -304,7 +303,7 @@ private void onStop(McPlayerInterface player, GuiSessionInterface session, Click */ private void onStart(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support start player.sendMessage(Main.Messages.NotAvailable); } @@ -343,7 +342,7 @@ private void onEnable(McPlayerInterface player, GuiSessionInterface session, Cli */ private void onCheck(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support check player.sendMessage(Main.Messages.NotAvailable); } @@ -430,7 +429,7 @@ private void onInfo(McPlayerInterface player, GuiSessionInterface session, Click */ private void onExport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support export player.sendMessage(Main.Messages.NotAvailable); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java index d753e3ab..b0c7dff5 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java @@ -105,7 +105,7 @@ protected ClickGuiItem[] firstLine() */ private void onImport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support import player.sendMessage(Main.Messages.NotAvailable); } @@ -129,7 +129,10 @@ private void onArena(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - session.setNewPage(new ArenaCreate(this)); + session.setNewPage(new ArenaCreateChooseMinigame((type, name) -> { + final ArenaInterface arena = MinigamesLibInterface.instance().create(name, type); + player.openClickGui(new Main(new ArenaEdit(arena, this))); + },this)); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java index 802fae4f..5324428a 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java @@ -198,7 +198,7 @@ private void onArenas(McPlayerInterface player, GuiSessionInterface session, Cli */ private void onOptions(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support options player.sendMessage(Messages.NotAvailable); } @@ -210,7 +210,7 @@ private void onOptions(McPlayerInterface player, GuiSessionInterface session, Cl */ private void onMinigames(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support minigames player.sendMessage(Messages.NotAvailable); } @@ -222,7 +222,7 @@ private void onMinigames(McPlayerInterface player, GuiSessionInterface session, */ private void onExtensions(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support extensions player.sendMessage(Messages.NotAvailable); } @@ -234,7 +234,7 @@ private void onExtensions(McPlayerInterface player, GuiSessionInterface session, */ private void onMarketplace(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) { - // TODO + // TODO gui support marketplace player.sendMessage(Messages.NotAvailable); } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java index d0e0a0de..a870e087 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java @@ -35,8 +35,9 @@ @ChildEnum({ Main.Messages.class, ArenasPage.Messages.class, + ArenaCreateChooseMinigame.Messages.class, + ArenaCreateChooseArenaType.Messages.class, ArenaEdit.Messages.class, - // ArenaCreate.Messages.class, YesNoQuestion.Messages.class, SelectMarkerPage.Messages.class, diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java index 2d7145d6..b68ba9c1 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java @@ -26,6 +26,8 @@ import java.util.Arrays; import java.util.Locale; +import java.util.logging.Level; +import java.util.logging.Logger; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -54,6 +56,9 @@ public class QueryLocale implements AnvilGuiInterface /** description */ private String[] description; + + /** logger */ + private static final Logger LOGGER = Logger.getLogger(QueryLocale.class.getName()); /** * Constructor @@ -89,11 +94,14 @@ public void onCancel() { try { - this.onCancel.run(); + if (this.onCancel != null) + { + this.onCancel.run(); + } } catch (McException e) { - // TODO logging + LOGGER.log(Level.WARNING, "Problems on cancelling query locale", e); //$NON-NLS-1$ } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java index 1dac164d..5af36816 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java @@ -25,6 +25,8 @@ package de.minigameslib.mgapi.impl.cmd.gui; import java.util.Arrays; +import java.util.logging.Level; +import java.util.logging.Logger; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -56,6 +58,9 @@ public class QueryText implements AnvilGuiInterface /** description */ private String[] description; + + /** logger */ + private static final Logger LOGGER = Logger.getLogger(QueryText.class.getName()); /** * Constructor @@ -93,11 +98,14 @@ public void onCancel() { try { - this.onCancel.run(); + if (this.onCancel != null) + { + this.onCancel.run(); + } } catch (McException e) { - // TODO logging + LOGGER.log(Level.WARNING, "Problems on cancelling query text", e); //$NON-NLS-1$ } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java index 0030d749..32a51190 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java @@ -27,6 +27,8 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.stream.Collectors; import de.minigameslib.mclib.api.McException; @@ -74,6 +76,9 @@ public class RuleEdit<T extends RuleSetType, Q extends RuleSetInterface<T>> exte /** title */ private Serializable title; + + /** logger */ + private static final Logger LOGGER = Logger.getLogger(RuleEdit.class.getName()); /** * @param title @@ -127,16 +132,14 @@ protected ClickGuiItem map(int line, int col, int index, ConfigurationValueInter } catch (McException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + LOGGER.log(Level.WARNING, "problems while reconfigure rule " + this.rule, e); //$NON-NLS-1$ } }, this.contextProvider); } catch (McException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + LOGGER.log(Level.WARNING, "problems while mapping config element " + elm, e); //$NON-NLS-1$ return null; } } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java index 08f8cb1c..130d67c1 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java @@ -230,6 +230,7 @@ public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, * @param finish the finish action * @throws McException */ + @SuppressWarnings("deprecation") private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) throws McException { // security checks diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java index 5b812e5d..4566ca85 100644 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java +++ b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java @@ -64,7 +64,7 @@ public void loadPlugin() @Test public void testConstructorNew() { - // TODO + // TODO test case } } From b15d9466f445dbbe453d159614e31288e6ca7504 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 22 Apr 2017 10:37:50 +0200 Subject: [PATCH 228/266] v2 --- .../mgapi/api/arena/ArenaInterface.java | 9 +- .../events/ArenaForceStartRequestedEvent.java | 112 +++++++++++++++ .../mgapi/impl/arena/ArenaImpl.java | 9 ++ .../mgapi/impl/cmd/gui/AbstractPage.java | 3 +- .../mgapi/impl/cmd/gui/ArenaEdit.java | 106 ++++++++++++-- .../mgapi/impl/cmd/gui/ComponentEdit.java | 4 +- .../cmd/gui/LocalizedLinesEditLocale.java | 4 +- .../impl/cmd/gui/LocalizedStringEditor.java | 4 +- .../minigameslib/mgapi/impl/cmd/gui/Main.java | 52 +------ .../mgapi/impl/cmd/gui/SignEdit.java | 7 +- .../mgapi/impl/cmd/gui/YesNoQuestion.java | 4 +- .../mgapi/impl/cmd/gui/ZoneEdit.java | 89 +++++++++++- .../mgapi/impl/cmd/tool/AdminToolHelper.java | 136 ++++++++++++++++++ .../mgapi/impl/rules/BasicMatch.java | 39 +++-- 14 files changed, 495 insertions(+), 83 deletions(-) create mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java index f60c0c3a..8dfa2c18 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java @@ -52,6 +52,7 @@ import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; +import de.minigameslib.mgapi.api.rules.BasicMatchRuleInterface; import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; import de.minigameslib.mgapi.api.team.ArenaTeamInterface; import de.minigameslib.mgapi.api.team.TeamIdType; @@ -222,11 +223,17 @@ public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetTy void delete() throws McException; /** - * Starts a match + * Starts a match (without countdown); will be invoked on game rules, f.e.{@link BasicMatchRuleInterface} * @throws McException thrown if arena is not in join state or if there is no player. */ void start() throws McException; + /** + * Forces a match start even if match rules may not allow this; will request the gaming rules to start countdown + * @throws McException thrown if arena is not in JOIN state + */ + void forceStart() throws McException; + /** * Finish a match regularly * @throws McException thrown if arena is not in match state diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java new file mode 100644 index 00000000..9be030ce --- /dev/null +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java @@ -0,0 +1,112 @@ +/* + Copyright 2016 by minigameslib.de + All rights reserved. + If you do not own a hand-signed commercial license from minigames.de + you are not allowed to use this software in any way except using + GPL (see below). + +------ + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +*/ + +package de.minigameslib.mgapi.api.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import de.minigameslib.mclib.api.McException; +import de.minigameslib.mclib.api.event.MinecraftEvent; +import de.minigameslib.mclib.api.objects.ObjectInterface; +import de.minigameslib.mclib.api.util.function.FalseStub; +import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; +import de.minigameslib.mclib.api.util.function.McPredicate; +import de.minigameslib.mclib.api.util.function.TrueStub; +import de.minigameslib.mgapi.api.arena.ArenaInterface; + +/** + * Event fired to request arena rules to force starting the arena + * + * @author mepeisen + */ +public class ArenaForceStartRequestedEvent extends Event implements MinecraftEvent<ArenaForceStartRequestedEvent, ArenaForceStartRequestedEvent> +{ + + /** handlers list. */ + private static final HandlerList handlers = new HandlerList(); + + /** the arena instance. */ + private final ArenaInterface arena; + + /** + * @param arena + */ + public ArenaForceStartRequestedEvent(ArenaInterface arena) + { + this.arena = arena; + } + + /** + * @return the arena + */ + public ArenaInterface getArena() + { + return this.arena; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + @Override + public HandlerList getHandlers() + { + return handlers; + } + + /** + * Returns the handlers list + * + * @return handlers + */ + public static HandlerList getHandlerList() + { + return handlers; + } + + @Override + public ArenaForceStartRequestedEvent getBukkitEvent() + { + return this; + } + + @Override + public ObjectInterface getObject() + { + return this.arena.getObject(); + } + + @Override + public McOutgoingStubbing<ArenaForceStartRequestedEvent> when(McPredicate<ArenaForceStartRequestedEvent> test) throws McException + { + if (test.test(this)) + { + return new TrueStub<>(this); + } + return new FalseStub<>(this); + } + +} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 68850afa..21643dd6 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -84,6 +84,7 @@ import de.minigameslib.mgapi.api.arena.CheckSeverity; import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; +import de.minigameslib.mgapi.api.events.ArenaForceStartRequestedEvent; import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; import de.minigameslib.mgapi.api.match.ArenaMatchInterface; import de.minigameslib.mgapi.api.match.MatchPlayerInterface; @@ -830,6 +831,14 @@ public void abort() throws McException // TODO Teleport players back to main lobby } + @Override + public void forceStart() throws McException + { + // raise event and let the gaming rules do the rest + final ArenaForceStartRequestedEvent event = new ArenaForceStartRequestedEvent(this); + Bukkit.getPluginManager().callEvent(event); + } + @Override public void setTestState() throws McException { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java index 8a95b7b2..22e4238b 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java @@ -25,6 +25,7 @@ package de.minigameslib.mgapi.impl.cmd.gui; import de.minigameslib.mclib.api.gui.ClickGuiItem; +import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; import de.minigameslib.mclib.api.gui.PagableClickGuiPage; /** @@ -56,7 +57,7 @@ public AbstractPage(int pageNum) @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(super.getItems()); + return ClickGuiPageInterface.withFillers(super.getItems(), 6); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java index 5730f99d..574d8e30 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java @@ -74,7 +74,7 @@ public ArenaEdit(ArenaInterface arena, ClickGuiPageInterface prevPage) @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { Main.itemHome(), Main.itemBack(this::onBack, Messages.IconBack), @@ -122,7 +122,7 @@ public ClickGuiItem[][] getItems() new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconSigns, this::onSigns), new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconEntities, this::onEntities), } - }); + }, 6); } /** @@ -254,7 +254,35 @@ private void onDeleteEx(McPlayerInterface player, GuiSessionInterface session, C */ private void onMaintenance(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO support force parameter + session.setNewPage(new YesNoQuestion( + Messages.QuestionMaintenanceKickPlayers, + this::onMaintenanceForce, + this::onMaintenanceAfterMatch, + Messages.QuestionMaintenanceKickPlayersDetails)); + } + + /** + * Maintenance + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onMaintenanceForce(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + this.arena.setMaintenance(true); + this.onRefresh(player, session, gui); + } + + /** + * Maintenance + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onMaintenanceAfterMatch(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { this.arena.setMaintenance(false); this.onRefresh(player, session, gui); } @@ -288,11 +316,12 @@ private void onHardReset(McPlayerInterface player, GuiSessionInterface session, * @param player * @param session * @param gui + * @throws McException */ - private void onStop(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + private void onStop(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO gui support stop - player.sendMessage(Main.Messages.NotAvailable); + this.arena.abort(); + this.onRefresh(player, session, gui); } /** @@ -300,11 +329,12 @@ private void onStop(McPlayerInterface player, GuiSessionInterface session, Click * @param player * @param session * @param gui + * @throws McException */ - private void onStart(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) + private void onStart(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO gui support start - player.sendMessage(Main.Messages.NotAvailable); + this.arena.forceStart(); + this.onRefresh(player, session, gui); } /** @@ -316,7 +346,35 @@ private void onStart(McPlayerInterface player, GuiSessionInterface session, Clic */ private void onDisable(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException { - // TODO support force parameter + session.setNewPage(new YesNoQuestion( + Messages.QuestionDisableKickPlayers, + this::onDisableForce, + this::onDisableAfterMatch, + Messages.QuestionDisableKickPlayersDetails)); + } + + /** + * disable arena + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onDisableForce(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + this.arena.setDisabledState(true); + this.onRefresh(player, session, gui); + } + + /** + * disable arena + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onDisableAfterMatch(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { this.arena.setDisabledState(false); this.onRefresh(player, session, gui); } @@ -658,6 +716,34 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"question: Really delete arena"}) QuestionReallyDeleteDetails, + /** + * question: kick players + */ + @LocalizedMessage(defaultMessage = "Kick players in lobby/match?") + @MessageComment({"question: kick players"}) + QuestionMaintenanceKickPlayers, + + /** + * question: kick players + */ + @LocalizedMessageList({"Do you want to kick all players?", "If you choose yes all players are kicked and the arena is going to maintenance asap.", "If you choose no the arena is going to maintenance after current match."}) + @MessageComment({"question: kick players"}) + QuestionMaintenanceKickPlayersDetails, + + /** + * question: kick players + */ + @LocalizedMessage(defaultMessage = "Kick players in lobby/match?") + @MessageComment({"question: kick players"}) + QuestionDisableKickPlayers, + + /** + * question: kick players + */ + @LocalizedMessageList({"Do you want to kick all players?", "If you choose yes all players are kicked and the arena is disabled asap.", "If you choose no the arena is disabled after current match."}) + @MessageComment({"question: kick players"}) + QuestionDisableKickPlayersDetails, + /** * The command output of /mg2 arena * @see ArenaEdit (onInfo) diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java index 43d6daaa..dca72abf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java @@ -81,7 +81,7 @@ public ComponentEdit(ArenaInterface arena, ArenaComponentHandler component, Clic @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { Main.itemHome(), Main.itemBack(this::onBack, Messages.IconBack), @@ -101,7 +101,7 @@ public ClickGuiItem[][] getItems() new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleport, this::onTeleport), new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) } - }); + }, 6); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java index c51db857..a4605437 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java @@ -91,7 +91,7 @@ public LocalizedLinesEditLocale(Serializable title, Locale locale, LocalizedConf @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { Main.itemHome(), Main.itemBack(this.onPrev, Messages.IconBack), @@ -103,7 +103,7 @@ public ClickGuiItem[][] getItems() null, Main.itemCloseGui() }, - }); + }, 6); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java index 2fe0d566..af130040 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java @@ -101,7 +101,7 @@ public LocalizedStringEditor(Serializable title, String locale, String userStrin @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { Main.itemHome(), Main.itemBack(this.onPrev, Messages.IconBack), @@ -113,7 +113,7 @@ public ClickGuiItem[][] getItems() null, Main.itemCloseGui() }, - }); + }, 6); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java index 5324428a..248e3620 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java @@ -110,7 +110,7 @@ public LocalizedMessageInterface getPageName() @Override public ClickGuiItem[][] getItems() { - return withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { itemOptions(this::onOptions), null, @@ -126,35 +126,7 @@ public ClickGuiItem[][] getItems() { itemArenas(this::onArenas), } - }); - } - - /** - * Creates an inventory with filler icons - * @param src - * @return inventory - */ - public static ClickGuiItem[][] withFillers(ClickGuiItem[][] src) - { - final ClickGuiItem[][] result = new ClickGuiItem[LINE_COUNT][]; - for (int line = 0; line < LINE_COUNT; line++) - { - final ClickGuiItem[] lineArr = new ClickGuiItem[COL_COUNT]; - for (int col = 0; col < COL_COUNT; col++) - { - if (line < src.length && src[line] != null && col < src[line].length) - { - lineArr[col] = src[line][col]; - } - else - { - lineArr[col] = itemFill(line, col); - } - } - result[line] = lineArr; - } - return result; - + }, 6); } /** @@ -248,19 +220,6 @@ public static ClickGuiItem itemMarketplace(ClickGuiItem.GuiItemHandler handler) return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Euro), Messages.IconMarketplace, handler); } - /** - * dummy fill item - * @param line - * @param col - * @return dummy fill icon - */ - public static ClickGuiItem itemFill(int line, int col) - { - byte color = 0; - if ((line * COL_COUNT + col) % 2 == 1) color = 1; - return new ClickGuiItem(new ItemStack(Material.STAINED_GLASS_PANE, 1, color), Messages.IconFill, (player, session, gui) -> {/*empty*/}); - } - /** * arenas icon * @param handler @@ -453,13 +412,6 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Gui title (main menu)"}) Title, - /** - * A dummy filler - */ - @LocalizedMessage(defaultMessage = "") - @MessageComment({"dummy filler icon"}) - IconFill, - /** * The arenas icon */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java index 4ae04488..65b2314c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java @@ -81,7 +81,7 @@ public SignEdit(ArenaInterface arena, ArenaSignHandler sign, ClickGuiPageInterfa @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { Main.itemHome(), Main.itemBack(this::onBack, Messages.IconBack), @@ -101,7 +101,10 @@ public ClickGuiItem[][] getItems() new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleport, this::onTeleport), new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) } - }); + // TODO export/import signs + // TODO copy&paste signs + // TODO move/relocate signs with content (destroy original)/ without content (leave original untouched) + }, 6); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java index 036ba468..d800eb9d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java @@ -92,7 +92,7 @@ public YesNoQuestion(Serializable question, ClickGuiItem.GuiItemHandler onYes, C @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { this.details == null ? null : new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Help), Messages.IconHelp, this::onHelp), }, @@ -109,7 +109,7 @@ public ClickGuiItem[][] getItems() new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_No), Messages.IconNo, this.onNo), null } - }); + }, 6); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java index b38d66a0..fb495bbf 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java @@ -48,6 +48,9 @@ import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; import de.minigameslib.mgapi.impl.arena.ArenaImpl; import de.minigameslib.mgapi.impl.cmd.Mg2Command; +import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorInterface; +import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; +import de.minigameslib.mgapi.impl.cmd.tool.MarkerToolHelper; /** * Click gui for editing zones. @@ -81,7 +84,7 @@ public ZoneEdit(ArenaInterface arena, ArenaZoneHandler zone, ClickGuiPageInterfa @Override public ClickGuiItem[][] getItems() { - return Main.withFillers(new ClickGuiItem[][]{ + return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ { Main.itemHome(), Main.itemBack(this::onBack, Messages.IconBack), @@ -99,10 +102,16 @@ public ClickGuiItem[][] getItems() new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportLower, this::onTeleportLower), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportHigher, this::onTeleportHigher), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportHigher, this::onTeleportHigher), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion), Messages.IconRelocateLower, this::onRelocateLower), + new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion), Messages.IconRelocateHigher, this::onRelocateHigher), + null, new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) } - }); + // TODO export/import zones + // TODO copy&paste zones + // TODO move zones with content/ without content + }, 6); } /** @@ -190,6 +199,66 @@ private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface sessi } } + /** + * relocate + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onRelocateLower(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + session.close(); + AdminToolHelper.onRelocateZoneLower(player, this.zone, z -> { + // change (=re-create) marker if displayed + if (player.hasSmartGui()) + { + final MarkerToolHelper helper = MarkerToolHelper.instance(player); + final MarkerColorInterface color = helper.getColor(z.getZone()); + if (color != null) + { + helper.clearMarker(z.getZone()); + helper.createMarker(z.getZone(), color); + } + } + player.openClickGui(new Main(this)); + }); + } + + /** + * relocate + * @param player + * @param session + * @param gui + * @throws McException + */ + private void onRelocateHigher(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException + { + if (!this.arena.isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + session.close(); + AdminToolHelper.onRelocateZoneHigher(player, this.zone, z -> { + // change (=re-create) marker if displayed + if (player.hasSmartGui()) + { + final MarkerToolHelper helper = MarkerToolHelper.instance(player); + final MarkerColorInterface color = helper.getColor(z.getZone()); + if (color != null) + { + helper.clearMarker(z.getZone()); + helper.createMarker(z.getZone(), color); + } + } + player.openClickGui(new Main(this)); + }); + } + /** * teleport * @param player @@ -322,6 +391,20 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"teleport"}) IconTeleportHigher, + /** + * relocate + */ + @LocalizedMessage(defaultMessage = "Relocate lower bounds") + @MessageComment({"relocate"}) + IconRelocateLower, + + /** + * relocate + */ + @LocalizedMessage(defaultMessage = "Relocate higher bounds") + @MessageComment({"relocate"}) + IconRelocateHigher, + /** * delete */ diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java index 130d67c1..8dd61013 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java @@ -114,6 +114,102 @@ private static void onCreateComponent(McPlayerInteractEvent evt, McPlayerInterfa } } + /** + * Registers the tooling to select a block for changing zone lower bounds. + * @param player + * @param zone + * @param finish the finish action + */ + public static void onRelocateZoneLower(McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) + { + final ItemServiceInterface itemService = ItemServiceInterface.instance(); + itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) + .onLeftClick((p, evt) -> onRelocateZoneLower1(evt, p, zone, finish)) + .onRightClick((p, evt) -> onRelocateZoneLower1(evt, p, zone, finish)) + .description(Messages.RelocateZone_Description, zone.getName(), zone.getArena().getInternalName()) + .singleUse() + .build(); + player.sendMessage(Messages.RelocateZone_ClickBlockLower); + } + + /** + * Registers the tooling to select a block for changing zone higher bounds. + * @param player + * @param zone + * @param finish the finish action + */ + public static void onRelocateZoneHigher(McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) + { + final ItemServiceInterface itemService = ItemServiceInterface.instance(); + itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) + .onLeftClick((p, evt) -> onRelocateZoneHigher1(evt, p, zone, finish)) + .onRightClick((p, evt) -> onRelocateZoneHigher1(evt, p, zone, finish)) + .description(Messages.RelocateZone_Description, zone.getName(), zone.getArena().getInternalName()) + .singleUse() + .build(); + player.sendMessage(Messages.RelocateZone_ClickBlockHigher); + } + + /** + * Registers the tooling to select the lower block for zone relocation. + * @param evt + * @param player + * @param zone + * @param finish the finish action + * @throws McException + */ + private static void onRelocateZoneLower1(McPlayerInteractEvent evt, McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) throws McException + { + // security checks + if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) + { + throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ + } + if (!zone.getArena().isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + final Location loc = evt.getBukkitEvent().getClickedBlock().getLocation(); + zone.getZone().setCuboid(new Cuboid(loc, zone.getZone().getCuboid().getHighLoc())); + zone.getZone().saveConfig(); + player.sendMessage(Messages.RelocateZone_Relocated); + if (finish != null) + { + finish.accept(zone); + } + } + + /** + * Registers the tooling to select the higher block for zone relocation. + * @param evt + * @param player + * @param zone + * @param finish the finish action + * @throws McException + */ + private static void onRelocateZoneHigher1(McPlayerInteractEvent evt, McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) throws McException + { + // security checks + if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) + { + throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ + } + if (!zone.getArena().isMaintenance()) + { + throw new McException(ArenaImpl.Messages.ModificationWrongState); + } + + final Location loc = evt.getBukkitEvent().getClickedBlock().getLocation(); + zone.getZone().setCuboid(new Cuboid(zone.getZone().getCuboid().getLowLoc(), loc)); + zone.getZone().saveConfig(); + player.sendMessage(Messages.RelocateZone_Relocated); + if (finish != null) + { + finish.accept(zone); + } + } + /** * Registers the tooling to select a block for zone creation. * @param player @@ -393,6 +489,13 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Create zone title"}) CreateZone_Title, + /** + * Title for relocating zone + */ + @LocalizedMessage(defaultMessage = "Relocating zone") + @MessageComment({"Relocate zone title"}) + RelocateZone_Title, + /** * Description for create zone */ @@ -407,6 +510,18 @@ public enum Messages implements LocalizedMessageInterface }) CreateZone_Description, + /** + * Description for relocate zone + */ + @LocalizedMessageList({ + "Zone: " + LocalizedMessage.CODE_COLOR + "%1$s", + "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s"}) + @MessageComment(value = "Create zone description", args = { + @Argument("zone name"), + @Argument("arena internal name") + }) + RelocateZone_Description, + /** * Message to advice the user to click the block */ @@ -421,6 +536,20 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Message to advice the user to click the block"}) CreateZone_ClickBlockHigher, + /** + * Message to advice the user to click the block + */ + @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the new lower bound of your zone") + @MessageComment({"Message to advice the user to click the block"}) + RelocateZone_ClickBlockLower, + + /** + * Message to advice the user to click the block + */ + @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the new higher bound of your zone") + @MessageComment({"Message to advice the user to click the block"}) + RelocateZone_ClickBlockHigher, + /** * Zone was created */ @@ -428,6 +557,13 @@ public enum Messages implements LocalizedMessageInterface @MessageComment({"Zone was created"}) CreateZone_Created, + /** + * Zone was relocated + */ + @LocalizedMessage(defaultMessage = "Zone relocated", severity = MessageSeverityType.Success) + @MessageComment({"Zone was relocated"}) + RelocateZone_Relocated, + // components /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index 409c61e1..1db85684 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -39,6 +39,7 @@ import de.minigameslib.mclib.api.locale.MessageSeverityType; import de.minigameslib.mgapi.api.arena.ArenaInterface; import de.minigameslib.mgapi.api.arena.ArenaState; +import de.minigameslib.mgapi.api.events.ArenaForceStartRequestedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; @@ -171,15 +172,37 @@ public void onPlayerJoin(ArenaPlayerJoinEvent evt) public void onPlayerJoined(ArenaPlayerJoinedEvent evt) { // check min players - if (this.arena.getPlayerCount() == this.minPlayers) + if (this.arena.getPlayerCount() >= this.minPlayers && this.countdownTask == null) { - // start lobby countdown - this.countdownTimer = this.lobbyCountdown - 1; - this.countdownTask = McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onCountdown); - - // notify all players - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); + startCountdown(); + } + } + + /** + * Starts game countdown + */ + private void startCountdown() + { + // start lobby countdown + this.countdownTimer = this.lobbyCountdown - 1; + this.countdownTask = McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onCountdown); + + // notify all players + this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); + this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); + } + + /** + * Invoked to force arena start + * + * @param evt + */ + @McEventHandler + public void onForceStart(ArenaForceStartRequestedEvent evt) + { + if (this.countdownTask == null) + { + startCountdown(); } } From 7129e3d2c61758f9af66904b521d7b7196ab837e Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Tue, 2 May 2017 18:49:19 +0200 Subject: [PATCH 229/266] v2 --- .../api/rules/RuleSetContainerInterface.java | 29 ++++++- .../mgapi/impl/MinigamesPlugin.java | 2 + .../mgapi/impl/arena/ArenaImpl.java | 84 +++++++++++++++++-- .../mgapi/impl/cmd/gui/RuleEdit.java | 4 +- .../mgapi/impl/cmd/gui/RulesPage.java | 4 +- .../obj/AbstractBaseArenaObjectHandler.java | 30 ++++++- .../mgapi/impl/rules/BasicMatch.java | 4 +- .../mgapi/impl/rules/BasicMatchTimer.java | 2 +- .../mgapi/impl/rules/BasicSpawns.java | 2 +- .../mgapi/impl/rules/PvPMode.java | 2 +- 10 files changed, 143 insertions(+), 20 deletions(-) diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java index 376f63d1..2f0774c1 100644 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java +++ b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java @@ -92,7 +92,14 @@ public interface RuleSetContainerInterface<T extends RuleSetType, Q extends Rule * @param rulesets * @throws McException */ - void reconfigure(@SuppressWarnings("unchecked") T... rulesets) throws McException; + void reconfigureRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; + + /** + * Reconfigure applied rule set. + * @param ruleset + * @throws McException + */ + void reconfigureRuleSet(T ruleset) throws McException; /** * Adds rule sets to this element. The rule set can be removed later on. @@ -104,6 +111,16 @@ public interface RuleSetContainerInterface<T extends RuleSetType, Q extends Rule */ void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; + /** + * Adds rule sets to this element. The rule set can be removed later on. + * @param ruleset new rule sets + * @throws McException thrown if one of the rule sets already is applied, + * if the rule sets are illegal (not in available list), + * if the arena is not in maintainence mode + * or if the configuration cannot be saved. + */ + void applyRuleSet(T ruleset) throws McException; + /** * Removes rule sets from this element. * @param rulesets existing rule sets @@ -114,4 +131,14 @@ public interface RuleSetContainerInterface<T extends RuleSetType, Q extends Rule */ void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; + /** + * Removes rule sets from this element. + * @param ruleset existing rule sets + * @throws McException thrown if one of the rule sets is not applied, + * if the rule sets must not be removed (fixed rule set), + * if the arena is not in maintainence mode + * or if the configuration cannot be saved. + */ + void removeRuleSet(T ruleset) throws McException; + } diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java index 5ba15337..42bffeb9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java @@ -72,6 +72,7 @@ import de.minigameslib.mgapi.api.events.ArenaCreatedEvent; import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; +import de.minigameslib.mgapi.api.events.ArenaForceStartRequestedEvent; import de.minigameslib.mgapi.api.events.ArenaLoseEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; import de.minigameslib.mgapi.api.events.ArenaPlayerDiesEvent; @@ -302,6 +303,7 @@ public void onEnable() McLibInterface.instance().registerEvent(this, ArenaLoseEvent.class); McLibInterface.instance().registerEvent(this, ArenaPlayerDieEvent.class); McLibInterface.instance().registerEvent(this, ArenaPlayerDiesEvent.class); + McLibInterface.instance().registerEvent(this, ArenaForceStartRequestedEvent.class); this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); this.registerRuleset(this, BasicArenaRuleSets.BasicSpawns, BasicSpawns::new); diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java index 21643dd6..72118fd9 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java @@ -257,14 +257,28 @@ public void resume() throws McException catch (McException ex) { this.logger.log(Level.WARNING, "Error while resume", ex); //$NON-NLS-1$ - this.object.delete(); + try + { + this.object.delete(); + } + catch (RuntimeException ex2) + { + this.logger.log(Level.WARNING, "Error while deleting", ex2); //$NON-NLS-1$ + } this.object = null; throw ex; } catch (RuntimeException ex) { this.logger.log(Level.WARNING, "Error while resume", ex); //$NON-NLS-1$ - this.object.delete(); + try + { + this.object.delete(); + } + catch (RuntimeException ex2) + { + this.logger.log(Level.WARNING, "Error while deleting", ex2); //$NON-NLS-1$ + } this.object = null; throw new McException(CommonMessages.InternalError, ex, ex.getMessage()); } @@ -301,8 +315,16 @@ private void resumeComponents() throws McException { for (final ComponentIdInterface id : this.getComponents()) { - final ArenaComponentHandler handler = (ArenaComponentHandler) ObjectServiceInterface.instance().findComponent(id).getHandler(); - handler.initArena(this); + final ComponentInterface comp = ObjectServiceInterface.instance().findComponent(id); + if (comp == null) + { + this.logger.warning("Unable to find arena component " + id); //$NON-NLS-1$ + } + else + { + final ArenaComponentHandler handler = (ArenaComponentHandler) comp.getHandler(); + handler.initArena(this); + } } } @@ -313,8 +335,16 @@ private void resumeSigns() throws McException { for (final SignIdInterface id : this.getSigns()) { - final ArenaSignHandler handler = (ArenaSignHandler) ObjectServiceInterface.instance().findSign(id).getHandler(); - handler.initArena(this); + final SignInterface sign = ObjectServiceInterface.instance().findSign(id); + if (sign == null) + { + this.logger.warning("Unable to find arena sign " + id); //$NON-NLS-1$ + } + else + { + final ArenaSignHandler handler = (ArenaSignHandler) sign.getHandler(); + handler.initArena(this); + } } } @@ -325,8 +355,16 @@ private void resumeZones() throws McException { for (final ZoneIdInterface id : this.getZones()) { - final ArenaZoneHandler handler = (ArenaZoneHandler) ObjectServiceInterface.instance().findZone(id).getHandler(); - handler.initArena(this); + final ZoneInterface zone = ObjectServiceInterface.instance().findZone(id); + if (zone == null) + { + this.logger.warning("Unable to find arena zone " + id); //$NON-NLS-1$ + } + else + { + final ArenaZoneHandler handler = (ArenaZoneHandler) zone.getHandler(); + handler.initArena(this); + } } } @@ -1189,7 +1227,7 @@ public boolean isAvailable(ArenaRuleSetType ruleset) } @Override - public void reconfigure(ArenaRuleSetType... rulesets) throws McException + public void reconfigureRuleSets(ArenaRuleSetType... rulesets) throws McException { for (final ArenaRuleSetType t : rulesets) { @@ -1197,6 +1235,12 @@ public void reconfigure(ArenaRuleSetType... rulesets) throws McException } } + @Override + public void reconfigureRuleSet(ArenaRuleSetType ruleset) throws McException + { + this.ruleSets.reapplyRuleSet(ruleset); + } + @Override public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException { @@ -1211,6 +1255,17 @@ public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException } } + @Override + public void applyRuleSet(ArenaRuleSetType ruleset) throws McException + { + if (!this.ruleSets.isApplied(ruleset)) + { + this.ruleSets.applyOptionalRuleSet(ruleset); + this.arenaData.getOptionalRules().add(ruleset); + this.saveData(); + } + } + @Override public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException { @@ -1225,6 +1280,17 @@ public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException } } + @Override + public void removeRuleSet(ArenaRuleSetType ruleset) throws McException + { + if (this.ruleSets.isOptional(ruleset)) + { + this.ruleSets.removeOptionalRuleSet(ruleset); + this.arenaData.getOptionalRules().remove(ruleset); + this.saveData(); + } + } + @Override public Collection<ComponentIdInterface> getComponents() { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java index 32a51190..f99f744c 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java @@ -117,7 +117,6 @@ protected List<ConfigurationValueInterface> getElements(int start, int limit) return this.configOptions.stream().skip(start).limit(limit).collect(Collectors.toList()); } - @SuppressWarnings("unchecked") @Override protected ClickGuiItem map(int line, int col, int index, ConfigurationValueInterface elm) { @@ -128,7 +127,8 @@ protected ClickGuiItem map(int line, int col, int index, ConfigurationValueInter () -> { try { - this.container.reconfigure(this.rule); + // TODO let components check the rule before being saved to config file + this.container.reconfigureRuleSet(this.rule); } catch (McException e) { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java index 0ff94ba3..725b167d 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java @@ -210,8 +210,8 @@ public enum Messages implements LocalizedMessageInterface /** * The rules icon */ - @LocalizedMessage(defaultMessage = "rule %1$s/%2$s") - @MessageComment(value = {"rule icon"}, args={@Argument("rule plugin name"), @Argument("rule enum name")}) + @LocalizedMessage(defaultMessage = "rule %1$s") + @MessageComment(value = {"rule icon"}, args={@Argument("rule type name")}) IconRule, /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java index c0cead4e..4c022139 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java @@ -155,7 +155,7 @@ public boolean isAvailable(T ruleset) } @Override - public void reconfigure(@SuppressWarnings("unchecked") T... rulesets) throws McException + public void reconfigureRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException { for (final T t : rulesets) { @@ -163,6 +163,12 @@ public void reconfigure(@SuppressWarnings("unchecked") T... rulesets) throws McE } } + @Override + public void reconfigureRuleSet(T t) throws McException + { + this.reapplyRuleSet(t); + } + @Override public void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException { @@ -177,6 +183,17 @@ public void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws M } } + @Override + public void applyRuleSet(T t) throws McException + { + if (!this.isApplied(t)) + { + this.applyOptionalRuleSet(t); + this.data.getOptionalRules().add(t); + this.saveData(); + } + } + @Override public void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException { @@ -191,6 +208,17 @@ public void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws } } + @Override + public void removeRuleSet(T t) throws McException + { + if (this.isOptional(t)) + { + this.removeOptionalRuleSet(t); + this.data.getOptionalRules().remove(t); + this.saveData(); + } + } + @Override public String getName() { diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java index 1db85684..bc87b8ef 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java @@ -295,7 +295,7 @@ public void setPlayers(int minPlayers, int maxPlayers) throws McException BasicMatchConfig.MinPlayers.setInt(minPlayers); BasicMatchConfig.MaxPlayers.setInt(maxPlayers); }); - this.arena.reconfigure(this.type); + this.arena.reconfigureRuleSets(this.type); } @Override @@ -313,7 +313,7 @@ public void setLobbyCountdown(int lobbyCountdown) throws McException this.runInCopiedContext(() -> { BasicMatchConfig.LobbyCountdown.setInt(lobbyCountdown); }); - this.arena.reconfigure(this.type); + this.arena.reconfigureRuleSets(this.type); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java index 97580214..be3c2f11 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java @@ -147,7 +147,7 @@ public void setMaxSeconds(int seconds) throws McException this.runInCopiedContext(() -> { BasicMatchTimerConfig.MaxSeconds.setInt(this.seconds); }); - this.arena.reconfigure(this.type); + this.arena.reconfigureRuleSets(this.type); } @Override diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java index 467232e7..512052eb 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java @@ -100,7 +100,7 @@ public void setSpawnType(SpawnType type) throws McException this.runInCopiedContext(() -> { BasicSpawnsConfig.SpawnOption.setEnum(this.spawnType); }); - this.arena.reconfigure(this.type); + this.arena.reconfigureRuleSets(this.type); } /** diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java index 5f261e2f..613e1004 100644 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java @@ -86,7 +86,7 @@ public void setPvpMode(PvpModes mode) throws McException this.runInCopiedContext(() -> { BasicPvpModeConfig.PvpOption.setEnum(mode); }); - this.zone.reconfigure(this.type); + this.zone.reconfigureRuleSets(this.type); } /** From d74cad73987f1f5e8ba7c66dab7941c0fe8e5311 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 3 May 2017 06:21:21 +0200 Subject: [PATCH 230/266] moved v2 to seperate repository --- v2/.project | 17 - v2/.settings/org.eclipse.core.resources.prefs | 2 - v2/api/.classpath | 26 - v2/api/.project | 23 - .../org.eclipse.core.resources.prefs | 6 - v2/api/.settings/org.eclipse.jdt.core.prefs | 433 ---- v2/api/.settings/org.eclipse.jdt.ui.prefs | 67 - v2/api/.settings/org.eclipse.m2e.core.prefs | 4 - v2/api/pom.xml | 26 - .../mce/minigames/api/arena/ArenasConfig.java | 77 - .../minigames/api/config/CommonConfig.java | 80 - .../de/minigameslib/mgapi/api/ApiVersion.java | 56 - .../mgapi/api/ExtensionInterface.java | 74 - .../mgapi/api/ExtensionProvider.java | 67 - .../de/minigameslib/mgapi/api/LibState.java | 44 - .../de/minigameslib/mgapi/api/MglibCache.java | 53 - .../mgapi/api/MinigameInterface.java | 113 -- .../mgapi/api/MinigameProvider.java | 73 - .../mgapi/api/MinigamesLibInterface.java | 541 ----- .../mgapi/api/arena/ArenaInterface.java | 488 ----- .../mgapi/api/arena/ArenaState.java | 82 - .../mgapi/api/arena/ArenaType.java | 49 - .../mgapi/api/arena/ArenaTypeInterface.java | 84 - .../mgapi/api/arena/ArenaTypeProvider.java | 127 -- .../mgapi/api/arena/CheckFailure.java | 85 - .../mgapi/api/arena/CheckSeverity.java | 38 - .../api/arena/ClassicSinglePlayerArena.java | 106 - .../mgapi/api/arena/ClassicTeamArena.java | 104 - .../mgapi/api/events/ArenaCreateEvent.java | 118 -- .../mgapi/api/events/ArenaCreatedEvent.java | 112 -- .../mgapi/api/events/ArenaDeleteEvent.java | 112 -- .../mgapi/api/events/ArenaDeletedEvent.java | 112 -- .../events/ArenaForceStartRequestedEvent.java | 112 -- .../mgapi/api/events/ArenaLoseEvent.java | 148 -- .../mgapi/api/events/ArenaPlayerDieEvent.java | 137 -- .../api/events/ArenaPlayerDiesEvent.java | 169 -- .../api/events/ArenaPlayerJoinEvent.java | 159 -- .../ArenaPlayerJoinSpectatorsEvent.java | 150 -- .../api/events/ArenaPlayerJoinedEvent.java | 138 -- .../ArenaPlayerJoinedSpectatorsEvent.java | 150 -- .../events/ArenaPlayerJoinedTeamEvent.java | 150 -- .../api/events/ArenaPlayerLeftEvent.java | 137 -- .../ArenaPlayerLeftSpectatorsEvent.java | 137 -- .../api/events/ArenaPlayerLeftTeamEvent.java | 150 -- .../api/events/ArenaStateChangedEvent.java | 139 -- .../mgapi/api/events/ArenaWinEvent.java | 148 -- .../mgapi/api/events/MatchStartedEvent.java | 113 -- .../mgapi/api/events/MatchStoppedEvent.java | 112 -- .../mgapi/api/match/ArenaMatchInterface.java | 474 ----- .../api/match/CommonMatchStatistics.java | 47 - .../mgapi/api/match/MatchPlayerInterface.java | 112 -- .../mgapi/api/match/MatchStatisticId.java | 39 - .../mgapi/api/match/MatchTeamInterface.java | 82 - .../mgapi/api/obj/ArenaComponentHandler.java | 46 - .../mgapi/api/obj/ArenaSignHandler.java | 46 - .../mgapi/api/obj/ArenaZoneHandler.java | 46 - .../mgapi/api/obj/BaseArenaObjectHandler.java | 69 - .../mgapi/api/obj/BasicComponentTypes.java | 73 - .../mgapi/api/obj/BasicSignTypes.java | 61 - .../mgapi/api/obj/BasicZoneTypes.java | 85 - .../mgapi/api/obj/BattleZoneHandler.java | 38 - .../mgapi/api/obj/EmptyComponentHandler.java | 38 - .../mgapi/api/obj/EmptySignHandler.java | 38 - .../mgapi/api/obj/EmptyZoneHandler.java | 38 - .../api/obj/GenericComponentHandler.java | 38 - .../mgapi/api/obj/GenericSignHandler.java | 38 - .../mgapi/api/obj/GenericZoneHandler.java | 38 - .../mgapi/api/obj/JoinSignInterface.java | 37 - .../api/obj/JoinSpawnComponentHandler.java | 37 - .../mgapi/api/obj/JoinZoneHandler.java | 38 - .../mgapi/api/obj/LeaveSignInterface.java | 37 - .../mgapi/api/obj/LeaveZoneHandler.java | 38 - .../mgapi/api/obj/LobbyZoneHandler.java | 38 - .../obj/MainLobbySpawnComponentHandler.java | 37 - .../mgapi/api/obj/MainZoneHandler.java | 38 - .../mgapi/api/obj/SpawnComponentHandler.java | 64 - .../obj/SpectatorSpawnComponentHandler.java | 51 - .../mgapi/api/obj/SpectatorZoneHandler.java | 38 - .../api/player/ArenaPlayerInterface.java | 187 -- .../mgapi/api/rules/AbstractArenaRule.java | 149 -- .../api/rules/AbstractComponentRule.java | 154 -- .../mgapi/api/rules/AbstractSignRule.java | 154 -- .../mgapi/api/rules/AbstractZoneRule.java | 154 -- .../api/rules/ArenaRuleSetInterface.java | 43 - .../mgapi/api/rules/ArenaRuleSetType.java | 37 - .../mgapi/api/rules/BasicArenaRuleSets.java | 58 - .../api/rules/BasicComponentRuleSets.java | 37 - .../mgapi/api/rules/BasicLosingRuleSets.java | 40 - .../mgapi/api/rules/BasicMatchConfig.java | 64 - .../api/rules/BasicMatchRuleInterface.java | 69 - .../api/rules/BasicMatchTimerConfig.java | 49 - .../rules/BasicMatchTimerRuleInterface.java | 119 -- .../mgapi/api/rules/BasicPvpModeConfig.java | 72 - .../mgapi/api/rules/BasicSignRuleSets.java | 37 - .../mgapi/api/rules/BasicSpawnsConfig.java | 72 - .../api/rules/BasicSpawnsRuleInterface.java | 50 - .../mgapi/api/rules/BasicWinningRuleSets.java | 40 - .../mgapi/api/rules/BasicZoneRuleSets.java | 72 - .../api/rules/ComponentRuleSetInterface.java | 37 - .../mgapi/api/rules/ComponentRuleSetType.java | 37 - .../mgapi/api/rules/PvPModeRuleInterface.java | 50 - .../mgapi/api/rules/RuleSetConfigurable.java | 49 - .../api/rules/RuleSetContainerInterface.java | 144 -- .../mgapi/api/rules/RuleSetInterface.java | 44 - .../mgapi/api/rules/RuleSetType.java | 61 - .../mgapi/api/rules/SignRuleSetInterface.java | 37 - .../mgapi/api/rules/SignRuleSetType.java | 37 - .../mgapi/api/rules/ZoneRuleSetInterface.java | 37 - .../mgapi/api/rules/ZoneRuleSetType.java | 37 - .../mgapi/api/team/ArenaTeamInterface.java | 64 - .../mgapi/api/team/CommonTeams.java | 161 -- .../mgapi/api/team/TeamIdType.java | 49 - .../site/markdown/dev_advanced_achievement.md | 5 - .../src/site/markdown/dev_advanced_arcade.md | 5 - .../markdown/dev_advanced_bungee_basics.md | 5 - .../dev_advanced_custom_components.md | 5 - .../markdown/dev_advanced_custom_signs.md | 5 - .../site/markdown/dev_advanced_extensions.md | 5 - .../markdown/dev_advanced_guns_animations.md | 5 - .../site/markdown/dev_advanced_holograms.md | 5 - v2/api/src/site/markdown/dev_advanced_kits.md | 5 - .../markdown/dev_advanced_leader_boards.md | 5 - .../site/markdown/dev_advanced_mob_control.md | 5 - .../site/markdown/dev_advanced_power_up.md | 5 - .../markdown/dev_advanced_score_boards.md | 5 - v2/api/src/site/markdown/dev_advanced_shop.md | 5 - .../site/markdown/dev_advanced_smart_gui.md | 50 - .../site/markdown/dev_advanced_smart_reset.md | 5 - .../src/site/markdown/dev_advanced_stats.md | 5 - .../src/site/markdown/dev_advanced_tasks.md | 5 - .../src/site/markdown/dev_advanced_teams.md | 5 - .../src/site/markdown/dev_advanced_trading.md | 5 - .../dev_advanced_variable_substitution.md | 58 - .../markdown/dev_advanced_waiting_queues.md | 5 - .../site/markdown/dev_minigame_arena_types.md | 56 - .../src/site/markdown/dev_minigame_config.md | 152 -- .../src/site/markdown/dev_minigame_context.md | 135 -- .../site/markdown/dev_minigame_messages.md | 248 --- .../site/markdown/dev_minigame_own_rules.md | 5 - .../site/markdown/dev_minigame_permissions.md | 77 - .../site/markdown/dev_minigame_pluginmain.md | 5 - .../site/markdown/dev_minigame_pluginyml.md | 5 - .../site/markdown/dev_minigame_using_rules.md | 5 - v2/api/src/site/markdown/dev_setup_eclipse.md | 5 - v2/api/src/site/markdown/dev_setup_maven.md | 5 - v2/api/src/site/markdown/dev_setup_project.md | 5 - v2/api/src/site/markdown/dev_theory_arenas.md | 153 -- v2/api/src/site/markdown/dev_theory_match.md | 25 - .../src/site/markdown/dev_theory_minigame.md | 78 - v2/api/src/site/markdown/dev_theory_rules.md | 76 - v2/api/src/site/markdown/development.md | 51 - v2/api/src/site/markdown/features.md | 169 -- v2/api/src/site/markdown/gamerules.md | 48 - v2/api/src/site/markdown/index.md | 45 - v2/api/src/site/markdown/migrationList.md | 1379 ------------- v2/api/src/site/markdown/roadmap.md | 50 - v2/api/src/site/markdown/stories.md | 593 ------ v2/api/src/site/site.xml | 30 - .../minigames/api/test/CommonConfigTest.java | 39 - .../mce/minigames/api/test/SharedUtil.java | 48 - .../api/test/arena/ArenaStateTest.java | 41 - .../api/test/arena/ArenasConfigTest.java | 40 - v2/plugin/.classpath | 31 - v2/plugin/.project | 29 - .../org.eclipse.core.resources.prefs | 6 - .../.settings/org.eclipse.jdt.core.prefs | 433 ---- v2/plugin/.settings/org.eclipse.jdt.ui.prefs | 67 - .../.settings/org.eclipse.m2e.core.prefs | 4 - ....eclipse.wst.common.project.facet.core.xml | 5 - v2/plugin/maxMcVersion.txt | 1 - v2/plugin/minMcVersion.txt | 1 - v2/plugin/pom.xml | 64 - .../mgapi/impl/ExtensionImpl.java | 92 - .../minigameslib/mgapi/impl/MglibConfig.java | 63 - .../mgapi/impl/MglibMessages.java | 305 --- .../mgapi/impl/MglibObjectTypes.java | 42 - .../minigameslib/mgapi/impl/MglibPerms.java | 178 -- .../minigameslib/mgapi/impl/MinigameImpl.java | 134 -- .../mgapi/impl/MinigamesPlugin.java | 876 -------- .../mgapi/impl/MinigamesPluginInterface.java | 132 -- .../mgapi/impl/arena/ArenaData.java | 439 ---- .../mgapi/impl/arena/ArenaImpl.java | 1776 ----------------- .../mgapi/impl/arena/ArenaLogger.java | 62 - .../mgapi/impl/arena/ArenaMatchImpl.java | 1075 ---------- .../mgapi/impl/arena/ArenaPlayerImpl.java | 218 -- .../impl/arena/ArenaPlayerPersistentData.java | 82 - .../mgapi/impl/arena/MatchPlayer.java | 245 --- .../mgapi/impl/arena/MatchTeam.java | 116 -- .../mgapi/impl/cmd/AdminCheckCommand.java | 174 -- .../mgapi/impl/cmd/AdminCommand.java | 134 -- .../mgapi/impl/cmd/AdminComponentCommand.java | 121 -- .../impl/cmd/AdminComponentCreateCommand.java | 159 -- .../impl/cmd/AdminComponentDeleteCommand.java | 142 -- .../impl/cmd/AdminComponentListCommand.java | 164 -- .../impl/cmd/AdminComponentTpCommand.java | 142 -- .../mgapi/impl/cmd/AdminCreateCommand.java | 155 -- .../mgapi/impl/cmd/AdminDeleteCommand.java | 134 -- .../mgapi/impl/cmd/AdminDisableCommand.java | 133 -- .../mgapi/impl/cmd/AdminEnableCommand.java | 133 -- .../mgapi/impl/cmd/AdminGuiCommand.java | 119 -- .../mgapi/impl/cmd/AdminInviteCommand.java | 142 -- .../mgapi/impl/cmd/AdminMaintainCommand.java | 133 -- .../mgapi/impl/cmd/AdminSGuiCommand.java | 111 -- .../mgapi/impl/cmd/AdminSignCommand.java | 121 -- .../impl/cmd/AdminSignCreateCommand.java | 159 -- .../impl/cmd/AdminSignDeleteCommand.java | 147 -- .../mgapi/impl/cmd/AdminSignListCommand.java | 164 -- .../mgapi/impl/cmd/AdminSignTpCommand.java | 142 -- .../mgapi/impl/cmd/AdminStartCommand.java | 134 -- .../mgapi/impl/cmd/AdminStopCommand.java | 133 -- .../mgapi/impl/cmd/AdminTestCommand.java | 134 -- .../mgapi/impl/cmd/AdminZoneCommand.java | 121 -- .../impl/cmd/AdminZoneCreateCommand.java | 159 -- .../impl/cmd/AdminZoneDeleteCommand.java | 142 -- .../mgapi/impl/cmd/AdminZoneListCommand.java | 164 -- .../mgapi/impl/cmd/AdminZoneTpCommand.java | 157 -- .../mgapi/impl/cmd/ArenaCommand.java | 212 -- .../mgapi/impl/cmd/ArenaListCommand.java | 81 - .../mgapi/impl/cmd/ArenasCommand.java | 112 -- .../mgapi/impl/cmd/InfoCommand.java | 241 --- .../mgapi/impl/cmd/InfoExtensionCommand.java | 183 -- .../mgapi/impl/cmd/InfoExtensionsCommand.java | 107 - .../mgapi/impl/cmd/InfoMinigameCommand.java | 205 -- .../mgapi/impl/cmd/InfoMinigamesCommand.java | 107 - .../mgapi/impl/cmd/JoinCommand.java | 140 -- .../mgapi/impl/cmd/LeaveCommand.java | 131 -- .../mgapi/impl/cmd/ManualCommand.java | 146 -- .../mgapi/impl/cmd/Mg2Command.java | 526 ----- .../mgapi/impl/cmd/SpectateCommand.java | 127 -- .../mgapi/impl/cmd/gui/AbstractPage.java | 81 - .../cmd/gui/ArenaCreateChooseArenaType.java | 230 --- .../cmd/gui/ArenaCreateChooseMinigame.java | 154 -- .../mgapi/impl/cmd/gui/ArenaEdit.java | 770 ------- .../mgapi/impl/cmd/gui/ArenasPage.java | 175 -- .../mgapi/impl/cmd/gui/ComponentEdit.java | 345 ---- .../cmd/gui/ComponentsCreateChooseType.java | 238 --- .../mgapi/impl/cmd/gui/ComponentsPage.java | 216 -- .../cmd/gui/LocalizedLinesEditLocale.java | 204 -- .../cmd/gui/LocalizedLinesEditLocaleList.java | 302 --- .../impl/cmd/gui/LocalizedLinesList.java | 243 --- .../impl/cmd/gui/LocalizedStringEditor.java | 240 --- .../impl/cmd/gui/LocalizedStringList.java | 259 --- .../minigameslib/mgapi/impl/cmd/gui/Main.java | 496 ----- .../mgapi/impl/cmd/gui/MgAnvilGuis.java | 43 - .../mgapi/impl/cmd/gui/MgClickGuis.java | 72 - .../mgapi/impl/cmd/gui/QueryLocale.java | 114 -- .../mgapi/impl/cmd/gui/QueryText.java | 118 -- .../mgapi/impl/cmd/gui/RuleEdit.java | 224 --- .../mgapi/impl/cmd/gui/RulesPage.java | 225 --- .../mgapi/impl/cmd/gui/SelectMarkerPage.java | 270 --- .../mgapi/impl/cmd/gui/SignEdit.java | 348 ---- .../impl/cmd/gui/SignsCreateChooseType.java | 237 --- .../mgapi/impl/cmd/gui/SignsPage.java | 215 -- .../mgapi/impl/cmd/gui/YesNoQuestion.java | 162 -- .../mgapi/impl/cmd/gui/ZoneEdit.java | 449 ----- .../impl/cmd/gui/ZonesCreateChooseType.java | 238 --- .../mgapi/impl/cmd/gui/ZonesPage.java | 216 -- .../impl/cmd/marker/MarkerColorInterface.java | 75 - .../impl/cmd/marker/MarkerColorProvider.java | 305 --- .../mgapi/impl/cmd/tool/AdminToolHelper.java | 605 ------ .../mgapi/impl/cmd/tool/MarkerToolHelper.java | 259 --- .../mgapi/impl/internal/TaskManager.java | 76 - .../mgapi/impl/internal/TaskManagerCache.java | 53 - .../obj/AbstractBaseArenaObjectHandler.java | 258 --- .../mgapi/impl/obj/AbstractObjectData.java | 93 - .../mgapi/impl/obj/BattleZone.java | 244 --- .../mgapi/impl/obj/BattleZoneData.java | 36 - .../mgapi/impl/obj/EmptyComponent.java | 245 --- .../mgapi/impl/obj/EmptyComponentData.java | 36 - .../mgapi/impl/obj/EmptySign.java | 336 ---- .../mgapi/impl/obj/EmptySignData.java | 36 - .../mgapi/impl/obj/EmptyZone.java | 244 --- .../mgapi/impl/obj/EmptyZoneData.java | 36 - .../mgapi/impl/obj/GenericComponent.java | 245 --- .../mgapi/impl/obj/GenericComponentData.java | 36 - .../mgapi/impl/obj/GenericSign.java | 336 ---- .../mgapi/impl/obj/GenericSignData.java | 36 - .../mgapi/impl/obj/GenericZone.java | 244 --- .../mgapi/impl/obj/GenericZoneData.java | 36 - .../minigameslib/mgapi/impl/obj/JoinSign.java | 360 ---- .../mgapi/impl/obj/JoinSignData.java | 36 - .../mgapi/impl/obj/JoinSpawnComponent.java | 245 --- .../impl/obj/JoinSpawnComponentData.java | 38 - .../minigameslib/mgapi/impl/obj/JoinZone.java | 244 --- .../mgapi/impl/obj/JoinZoneData.java | 36 - .../mgapi/impl/obj/LeaveSign.java | 336 ---- .../mgapi/impl/obj/LeaveSignData.java | 36 - .../mgapi/impl/obj/LeaveZone.java | 244 --- .../mgapi/impl/obj/LeaveZoneData.java | 36 - .../mgapi/impl/obj/LobbyZone.java | 244 --- .../mgapi/impl/obj/LobbyZoneData.java | 36 - .../impl/obj/MainLobbySpawnComponent.java | 245 --- .../impl/obj/MainLobbySpawnComponentData.java | 38 - .../minigameslib/mgapi/impl/obj/MainZone.java | 244 --- .../mgapi/impl/obj/MainZoneData.java | 36 - .../mgapi/impl/obj/SpawnComponent.java | 274 --- .../mgapi/impl/obj/SpawnComponentData.java | 82 - .../impl/obj/SpectatorSpawnComponent.java | 260 --- .../impl/obj/SpectatorSpawnComponentData.java | 60 - .../mgapi/impl/obj/SpectatorZone.java | 244 --- .../mgapi/impl/obj/SpectatorZoneData.java | 36 - .../impl/rules/AbstractRuleSetContainer.java | 248 --- .../mgapi/impl/rules/BasicMatch.java | 386 ---- .../mgapi/impl/rules/BasicMatchTimer.java | 437 ---- .../mgapi/impl/rules/BasicSpawns.java | 210 -- .../mgapi/impl/rules/DieOnLeave.java | 69 - .../mgapi/impl/rules/LastManStanding.java | 71 - .../mgapi/impl/rules/LoseOnDeath.java | 72 - .../mgapi/impl/rules/LoseOnLeave.java | 69 - .../mgapi/impl/rules/NoMobsTargets.java | 67 - .../mgapi/impl/rules/NoWorldMobs.java | 91 - .../mgapi/impl/rules/NoWorldPets.java | 90 - .../mgapi/impl/rules/PlayerNoEntry.java | 51 - .../mgapi/impl/rules/PvPMode.java | 124 -- .../impl/tasks/AbstractAsyncArenaTask.java | 54 - .../tasks/AsyncArenaRecoverCrashTask.java | 68 - .../impl/tasks/AsyncArenaRestartTask.java | 64 - .../mgapi/impl/tasks/AsyncArenaStartTask.java | 95 - .../mgapi/impl/tasks/AsyncTaskInterface.java | 37 - .../mgapi/impl/tasks/InitTask.java | 76 - v2/plugin/src/main/resources/plugin.yml | 10 - .../mgapi/impl/test/ArenaImplTest.java | 70 - .../mgapi/impl/test/ArenaMatchImplTest.java | 1524 -------------- .../mgapi/impl/test/plugin/TestArenas.java | 70 - .../mgapi/impl/test/plugin/TestMessages.java | 45 - .../mgapi/impl/test/plugin/TestPlugin.java | 101 - v2/pom.xml | 242 --- v2/src/doc/minigames.docx | Bin 52377 -> 0 bytes v2/src/doc/minigames.pdf | Bin 724037 -> 0 bytes 329 files changed, 45196 deletions(-) delete mode 100644 v2/.project delete mode 100644 v2/.settings/org.eclipse.core.resources.prefs delete mode 100644 v2/api/.classpath delete mode 100644 v2/api/.project delete mode 100644 v2/api/.settings/org.eclipse.core.resources.prefs delete mode 100644 v2/api/.settings/org.eclipse.jdt.core.prefs delete mode 100644 v2/api/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 v2/api/.settings/org.eclipse.m2e.core.prefs delete mode 100644 v2/api/pom.xml delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java delete mode 100644 v2/api/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/LibState.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/MglibCache.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java delete mode 100644 v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java delete mode 100644 v2/api/src/site/markdown/dev_advanced_achievement.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_arcade.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_bungee_basics.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_custom_components.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_custom_signs.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_extensions.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_guns_animations.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_holograms.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_kits.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_leader_boards.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_mob_control.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_power_up.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_score_boards.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_shop.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_smart_gui.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_smart_reset.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_stats.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_tasks.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_teams.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_trading.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_variable_substitution.md delete mode 100644 v2/api/src/site/markdown/dev_advanced_waiting_queues.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_arena_types.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_config.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_context.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_messages.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_own_rules.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_permissions.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_pluginmain.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_pluginyml.md delete mode 100644 v2/api/src/site/markdown/dev_minigame_using_rules.md delete mode 100644 v2/api/src/site/markdown/dev_setup_eclipse.md delete mode 100644 v2/api/src/site/markdown/dev_setup_maven.md delete mode 100644 v2/api/src/site/markdown/dev_setup_project.md delete mode 100644 v2/api/src/site/markdown/dev_theory_arenas.md delete mode 100644 v2/api/src/site/markdown/dev_theory_match.md delete mode 100644 v2/api/src/site/markdown/dev_theory_minigame.md delete mode 100644 v2/api/src/site/markdown/dev_theory_rules.md delete mode 100644 v2/api/src/site/markdown/development.md delete mode 100644 v2/api/src/site/markdown/features.md delete mode 100644 v2/api/src/site/markdown/gamerules.md delete mode 100644 v2/api/src/site/markdown/index.md delete mode 100644 v2/api/src/site/markdown/migrationList.md delete mode 100644 v2/api/src/site/markdown/roadmap.md delete mode 100644 v2/api/src/site/markdown/stories.md delete mode 100644 v2/api/src/site/site.xml delete mode 100644 v2/api/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java delete mode 100644 v2/api/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java delete mode 100644 v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java delete mode 100644 v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java delete mode 100644 v2/plugin/.classpath delete mode 100644 v2/plugin/.project delete mode 100644 v2/plugin/.settings/org.eclipse.core.resources.prefs delete mode 100644 v2/plugin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 v2/plugin/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 v2/plugin/.settings/org.eclipse.m2e.core.prefs delete mode 100644 v2/plugin/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 v2/plugin/maxMcVersion.txt delete mode 100644 v2/plugin/minMcVersion.txt delete mode 100644 v2/plugin/pom.xml delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java delete mode 100644 v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java delete mode 100644 v2/plugin/src/main/resources/plugin.yml delete mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java delete mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java delete mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java delete mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java delete mode 100644 v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java delete mode 100644 v2/pom.xml delete mode 100644 v2/src/doc/minigames.docx delete mode 100644 v2/src/doc/minigames.pdf diff --git a/v2/.project b/v2/.project deleted file mode 100644 index 96b2f558..00000000 --- a/v2/.project +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesParent</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/v2/.settings/org.eclipse.core.resources.prefs b/v2/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 4824b802..00000000 --- a/v2/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/<project>=UTF-8 diff --git a/v2/api/.classpath b/v2/api/.classpath deleted file mode 100644 index 7200bb42..00000000 --- a/v2/api/.classpath +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/v2/api/.project b/v2/api/.project deleted file mode 100644 index eaef9635..00000000 --- a/v2/api/.project +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesAPI</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - </natures> -</projectDescription> diff --git a/v2/api/.settings/org.eclipse.core.resources.prefs b/v2/api/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/v2/api/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/v2/api/.settings/org.eclipse.jdt.core.prefs b/v2/api/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/v2/api/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/v2/api/.settings/org.eclipse.jdt.ui.prefs b/v2/api/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 2d690b3c..00000000 --- a/v2/api/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n Copyright 2016 by minigameslib.de\r\n All rights reserved.\r\n If you do not own a hand-signed commercial license from minigames.de\r\n you are not allowed to use this software in any way except using\r\n GPL (see below).\r\n\r\n------\r\n\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/v2/api/.settings/org.eclipse.m2e.core.prefs b/v2/api/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/v2/api/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/v2/api/pom.xml b/v2/api/pom.xml deleted file mode 100644 index 072efe72..00000000 --- a/v2/api/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>MinigamesAPI</artifactId> - <packaging>jar</packaging> - <name>MinigamesPlugin</name> - <description>Rich Minigames API V2</description> - - <parent> - <groupId>de.minigameslib.mglib</groupId> - <artifactId>Minigames-Parent</artifactId> - <version>2.0.0-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib-api</artifactId> - </dependency> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib</artifactId> - </dependency> - </dependencies> - -</project> \ No newline at end of file diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java b/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java deleted file mode 100644 index 8820d1a7..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/arena/ArenasConfig.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.arena; - -import de.minigameslib.mclib.api.config.ConfigurationBool; -import de.minigameslib.mclib.api.config.ConfigurationObject; -import de.minigameslib.mclib.api.config.ConfigurationString; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; -import de.minigameslib.mclib.api.locale.LocalizedConfigLine; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; - -/** - * The common arenas config file. - * - * @author mepeisen - */ -@ConfigurationValues(path = "arenas.$CTX:ARENA:internalName$", file = "arenas.yml") -public enum ArenasConfig implements ConfigurationValueInterface -{ - - /** - * The arena display name. - */ - @ConfigurationString(defaultValue = "") - DisplayName, - - /** - * The arena type. - */ - @ConfigurationString(defaultValue = "") - ArenaType, - - /** - * Is the arena enabled? - */ - @ConfigurationBool(defaultValue = false) - Enabled, - - /** - * Is the arena in maintenance? - */ - @ConfigurationBool(defaultValue = false) - Maintenance, - - /** - * Author information of this arena. - */ - @ConfigurationString(defaultValue = "") - Author, - - /** - * Short description of this arena. - */ - @ConfigurationObject(clazz = LocalizedConfigString.class) - ShortDescription, - - /** - * Long (multi line) description of this arena. - */ - @ConfigurationObject(clazz = LocalizedConfigLine.class) - Description - -} diff --git a/v2/api/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java b/v2/api/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java deleted file mode 100644 index aa961942..00000000 --- a/v2/api/src/main/java/com/github/mce/minigames/api/config/CommonConfig.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.config; - -import de.minigameslib.mclib.api.config.ConfigurationBool; -import de.minigameslib.mclib.api.config.ConfigurationString; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; - -/** - * Common permissions within minigames lib. - * - * @author mepeisen - */ -@ConfigurationValues(path = "config") -public enum CommonConfig implements ConfigurationValueInterface -{ - - // command options - - /** - * Is party command enabled? - */ - @ConfigurationBool(name = "party_command_enabled", defaultValue = true) - PartyCommandEnabled, - - // permission prefix - - /** - * Prefix for core permissions. - */ - @ConfigurationString(name = "permissions_prefix", defaultValue = "ancient.core") - PermissionPrefix, - - /** - * Prefix for core permissions. - */ - @ConfigurationString(name = "permissions_kits_prefix", defaultValue = "ancient.core.kits") - PermissionKitsPrefix, - - /** - * Prefix for core permissions. - */ - @ConfigurationString(name = "permissions_gun_prefix", defaultValue = "ancient.core.guns") - PermissionGunsPrefix, - - /** - * Prefix for core permissions. - */ - @ConfigurationString(name = "permissions_shop_prefix", defaultValue = "ancient.core.shop") - PermissionShopsPrefix, - - /** - * Prefix for core permissions. - */ - @ConfigurationString(name = "permissions_game_prefix", defaultValue = "ancient") - PermissionGamesPrefix, - - // common options - - /** - * Is debug mode enabled? - */ - @ConfigurationBool(name = "debug", defaultValue = false) - DebugEnabled, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java deleted file mode 100644 index f4dede8d..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/ApiVersion.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import static java.lang.annotation.ElementType.ANNOTATION_TYPE; -import static java.lang.annotation.ElementType.CONSTRUCTOR; -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.SOURCE; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * This annotation is used for information only. - * It shows the minimum api version of a method or entire type. - * - * @author mepeisen - * - * @see MinigamesLibInterface#getApiVersion() - */ -@Retention(SOURCE) -@Target({ TYPE, FIELD, METHOD, CONSTRUCTOR, ANNOTATION_TYPE }) -public @interface ApiVersion -{ - - /** - * Returns the minimum version - * @return minimum version - */ - int value(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java deleted file mode 100644 index 6dfc7cb1..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionInterface.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * @author mepeisen - * - */ -public interface ExtensionInterface -{ - - /** - * returns the extensions internal/ technical name. - * @return extension name. - */ - String getName(); - - /** - * Returns a display name for the extension. - * @return extension display name. - */ - LocalizedMessageInterface getDisplayName(); - - /** - * Returns a short single-line description of the extension - * @return short single-line description - */ - LocalizedMessageInterface getShortDescription(); - - /** - * Returns a multi-line description of the extension - * @return multi-line description - */ - LocalizedMessageInterface getDescription(); - - /** - * Returns a how-to-use manual, mainly for administrators - * @return how-to-use manual, mainly for adminstrators - */ - LocalizedMessageInterface getManual(); - - /** - * Returns the bukkit plugin owning the minigame. - * @return bukkit plugin. - */ - Plugin getPlugin(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java deleted file mode 100644 index d299bffb..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/ExtensionProvider.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * A proider to describe an extension. - * - * @author mepeisen - */ -public interface ExtensionProvider -{ - - /** - * returns the extensions internal/ technical name. - * @return extension name. - */ - String getName(); - - /** - * Returns a display name for the extension. - * @return extension display name. - */ - LocalizedMessageInterface getDisplayName(); - - /** - * Returns a short single-line description of the extension - * @return short single-line description - */ - LocalizedMessageInterface getShortDescription(); - - /** - * Returns a multi-line description of the extension - * @return multi-line description - */ - LocalizedMessageInterface getDescription(); - - /** - * Returns a how-to-use manual, mainly for administrators - * @return how-to-use manual, mainly for adminstrators - */ - LocalizedMessageInterface getManual(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/LibState.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/LibState.java deleted file mode 100644 index 71a38001..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/LibState.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -/** - * Enumeration of possible library states. - * - * @author mepeisen - */ -public enum LibState -{ - - /** Library is initializing. */ - Initializing, - /** Library is running. */ - Running, - /** Library is terminating. */ - Terminating, - /** Library is sleeping/ inactive. */ - Sleeping - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MglibCache.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MglibCache.java deleted file mode 100644 index 68cd71e4..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MglibCache.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import org.bukkit.Bukkit; - -/** - * Helper to cache the minigames library class. - * - * @author mepeisen - */ -class MglibCache -{ - - /** the minigames library. */ - private static MinigamesLibInterface SERVICES; - - /** - * Returns the minigames library instance. - * @return minigames library. - */ - static MinigamesLibInterface get() - { - if (SERVICES == null) - { - SERVICES = Bukkit.getServicesManager().load(MinigamesLibInterface.class); - } - return SERVICES; - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java deleted file mode 100644 index 430c0244..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameInterface.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import java.util.Collection; - -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * @author mepeisen - * - */ -public interface MinigameInterface -{ - - /** - * returns the minigames internal/ technical name. - * @return minigame name. - */ - String getName(); - - /** - * Returns a display name for the minigame. - * @return minigame display name. - */ - LocalizedMessageInterface getDisplayName(); - - /** - * Returns a short single-line description of the minigame - * @return short single-line description - */ - LocalizedMessageInterface getShortDescription(); - - /** - * Returns a multi-line description of the minigame - * @return multi-line description - */ - LocalizedMessageInterface getDescription(); - - /** - * Returns a how-to-use manual, mainly for administrators - * @return how-to-use manual, mainly for adminstrators - */ - LocalizedMessageInterface getManual(); - - /** - * Returns a how-to-play manual, default for arenas without customized manual - * @return how-to-play manual, default for arenas without customized manual - */ - LocalizedMessageInterface getHowToPlay(); - - /** - * Returns the bukkit plugin owning the minigame. - * @return bukkit plugin. - */ - Plugin getPlugin(); - - /** - * Returns the arena type per name. - * @param typeName - * @return type instance or {@code null} if the type was not found - */ - ArenaTypeInterface getType(String typeName); - - /** - * Returns the type count. - * @return type count - */ - int getTypeCount(); - - /** - * Returns the arena types - * @param start starting index - * @param limit maximum countt return - * @return collection of arena types. - */ - Collection<ArenaTypeInterface> getTypes(int start, int limit); - - /** - * Returns the arena types - * @param prefix type name prefix - * @param start starting index - * @param limit maximum countt return - * @return collection of arena types. - */ - Collection<ArenaTypeInterface> getTypes(String prefix, int start, int limit); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java deleted file mode 100644 index 9cff6e7f..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigameProvider.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * A proider to describe a minigame. - * - * @author mepeisen - */ -public interface MinigameProvider -{ - - /** - * returns the minigames internal/ technical name. - * @return minigame name. - */ - String getName(); - - /** - * Returns a display name for the minigame. - * @return minigame display name. - */ - LocalizedMessageInterface getDisplayName(); - - /** - * Returns a short single-line description of the minigame - * @return short single-line description - */ - LocalizedMessageInterface getShortDescription(); - - /** - * Returns a multi-line description of the minigame - * @return multi-line description - */ - LocalizedMessageInterface getDescription(); - - /** - * Returns a how-to-use manual, mainly for administrators - * @return how-to-use manual, mainly for adminstrators - */ - LocalizedMessageInterface getManual(); - - /** - * Returns a how-to-play manual, default for arenas without customized manual - * @return how-to-play manual, default for arenas without customized manual - */ - LocalizedMessageInterface getHowToPlay(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java deleted file mode 100644 index 8f8697d7..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/MinigamesLibInterface.java +++ /dev/null @@ -1,541 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api; - -import java.util.Collection; -import java.util.List; -import java.util.UUID; - -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mclib.api.util.function.McBiFunction; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.api.team.CommonTeams; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Base interface to access the minigames API. - * - * @author mepeisen - */ -public interface MinigamesLibInterface -{ - - // common methods - - /** - * Returns the library instance. - * - * @return library instance. - */ - static MinigamesLibInterface instance() - { - return MglibCache.get(); - } - - /** - * Checks for debug flag. - * - * @return {@code true} if the library debugging is enabled. - */ - boolean debug(); - - /** - * Returns the current library state. - * - * @return library state. - */ - LibState getState(); - - /** - * the first api version, all versions up to first release, includes minecraft versions up to 1.11. - */ - int APIVERSION_1_0_0 = 10000; - - /** - * This api version is not yet used; the api version is compatible to {@link #APIVERSION_1_0_0} but - * may introduce new features or methods. Use this for version checks (getApiVersion < APIVERSION_1_1_0). - */ - int APIVERSION_1_1_0 = 10100; - - /** - * This api version is not yet used; the api version is incompatible to {@link #APIVERSION_1_0_0}. - * Use this for version checks (getApiVersion < APIVERSION_2_0_0). - */ - int APIVERSION_2_0_0 = 20000; - - /** - * Returns the api version of McLib. - * - * <p> - * The api version is found with int constants on this interface. The integer is built with following schematic: - * </p> - * <ul> - * <li>major version number</li> - * <li>minor version number (to digits)</li> - * <li>fix level (two digits)</li> - * </ul> - * - * <p> - * Different fix levels are returned for new minecraft versions. It indicates that the mclib version type enum - * contains new entries and that MinigamesLib supports a new minecraft version. For most situations you need not - * take care about fix levels. You need only check for fix levels if you require a special feature found at newest - * minecraft versions. - * </p> - * - * <p> - * The minor version number is changed if MinigamesLib adds new features or methods to the existing API. - * You will find an informative annotation (@ApiVersion) for methods being present in a specific api version. - * </p> - * - * <p> - * The major version number is changed if MinigamesLib API is completly rewritten. - * </p> - * - * <p> - * In most situations it is ok to check for any version below the newest major version. (getApiVersion() < APIVERSION_2_0_0). - * </p> - * - * @return api version. - * - * @see #APIVERSION_1_0_0 - * @see #APIVERSION_1_1_0 - * @see #APIVERSION_2_0_0 - * @see ApiVersion - */ - int getApiVersion(); - - // teams - - /** - * Checks if given team is a special team. - * A "special" team is a team not being a real party on team arenas. "special" teams cannnot be confiugured as teams on arenas. - * Instead they are used for special features on arenas, for example the "Winners" and "Spectators" have their own team. - * @param id - * @return {@code true} for special teams - * @see CommonTeams#Winners - * @see CommonTeams#Losers - * @see CommonTeams#Unknown - * @see CommonTeams#Spectators - */ - boolean isSpecialTeam(TeamIdType id); - - // initialization - - /** - * Initializes the given minigame. - * - * <p> - * This method must be invoked in onEnable of the minigame plugin. Invoke after all enumerations are registered. Each plugin is only allowed to register one minigame. - * </p> - * - * @param plugin - * the owning plugin object - * @param provider - * a provider describing the minigame. - * @throws McException - * thrown if library is in wrong state - */ - void initMinigame(Plugin plugin, MinigameProvider provider) throws McException; - - /** - * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create - * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. - * @param plugin - * @param ruleset - * @param creator - */ - void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator); - - /** - * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create - * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. - * @param plugin - * @param ruleset - * @param creator - */ - void registerRuleset(Plugin plugin, ComponentRuleSetType ruleset, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator); - - /** - * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create - * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. - * @param plugin - * @param ruleset - * @param creator - */ - void registerRuleset(Plugin plugin, SignRuleSetType ruleset, McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator); - - /** - * Registers a new rule set to be used with minigames library; once a rule set is applied or changed the creator is asked to create - * a new rule set instance. The instance lives as long as the underlying object lives or as long as it is not removed. - * @param plugin - * @param ruleset - * @param creator - */ - void registerRuleset(Plugin plugin, ZoneRuleSetType ruleset, McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator); - - /** - * Registers a new component with arena support. - * @param plugin - * @param type - * @param creator - * @param clazz - * @throws McException - */ - <T extends ArenaComponentHandler> void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException; - - /** - * Registers a new zone with arena support. - * @param plugin - * @param type - * @param creator - * @param clazz - * @throws McException - */ - <T extends ArenaZoneHandler> void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException; - - /** - * Registers a new sign with arena support. - * @param plugin - * @param type - * @param creator - * @param clazz - * @throws McException - */ - <T extends ArenaSignHandler> void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException; - - /** - * Returns the number of registered minigames. - * - * @return number of registered minigames - */ - int getMinigameCount(); - - /** - * Returns the number of registered minigames. - * - * @param prefix - * the prefix for the minigames (filter) - * @return number of registered minigames - */ - int getMinigameCount(String prefix); - - /** - * Returns the minigames - * - * @param index - * starting index - * @param limit - * maximum amount of minigames to return - * @return the minigames - */ - Collection<MinigameInterface> getMinigames(int index, int limit); - - /** - * Returns the minigames - * - * @param prefix - * the prefix for the minigames (filter) - * @param index - * starting index - * @param limit - * maximum amount of minigames to return - * @return the minigames - */ - Collection<MinigameInterface> getMinigames(String prefix, int index, int limit); - - /** - * Returns minigame for given internal name. - * - * @param name - * @return {@code null} if minigame was not found - */ - MinigameInterface getMinigame(String name); - - /** - * Returns minigame for given plugin. - * - * @param plugin - * @return {@code null} if minigame was not found - */ - MinigameInterface getMinigame(Plugin plugin); - - /** - * Initializes the given extension. - * - * <p> - * This method must be invoked in onEnable of the extension plugin. Invoke after all enumerations are registered. Each plugin is only allowed to register one extension. - * </p> - * - * @param plugin - * the owning plugin object - * @param provider - * a provider describing the extension. - * @throws McException - * thrown if library is in wrong state - */ - void initExtension(Plugin plugin, ExtensionProvider provider) throws McException; - - /** - * Returns the number of registered extensions. - * - * @return number of registered extensions - */ - int getExtensionCount(); - - /** - * Returns the number of registered extensions. - * - * @param prefix - * the prefix for the extensions (filter) - * @return number of registered extensions - */ - int getExtensionCount(String prefix); - - /** - * Returns the extensions - * - * @param index - * starting index - * @param limit - * maximum amount of extensions to return - * @return the extensions - */ - Collection<ExtensionInterface> getExtensions(int index, int limit); - - /** - * Returns the extensions - * - * @param prefix - * the prefix for the extensions (filter) - * @param index - * starting index - * @param limit - * maximum amount of extensions to return - * @return the extensions - */ - Collection<ExtensionInterface> getExtensions(String prefix, int index, int limit); - - /** - * Returns extension for given internal name. - * - * @param name - * @return {@code null} if extension was not found - */ - ExtensionInterface getExtension(String name); - - // Arenas - - /** - * Returns the number of registered arenas - * - * @return number of arenas - */ - int getArenaCount(); - - /** - * Returns the number of registered arenas - * - * @param prefix - * name prefix filter - * @return number of arenas - */ - int getArenaCount(String prefix); - - /** - * Returns the number of registered arenas - * - * @param plugin - * plugin filter - * @return number of arenas - */ - int getArenaCount(Plugin plugin); - - /** - * Returns the number of registered arenas - * - * @param plugin - * plugin filter - * @param prefix - * name prefix filter - * @return number of arenas - */ - int getArenaCount(Plugin plugin, String prefix); - - /** - * Returns the number of registered arenas - * - * @param type - * arena type filter - * @return number of arenas - */ - int getArenaCount(ArenaTypeInterface type); - - /** - * Returns the number of registered arenas - * - * @param type - * arena type filter - * @param prefix - * name prefix filter - * @return number of arenas - */ - int getArenaCount(ArenaTypeInterface type, String prefix); - - /** - * Returns the arenas - * - * @param index - * starting index - * @param limit - * maximum amount of arenas to return - * @return the arenas - */ - List<ArenaInterface> getArenas(int index, int limit); - - /** - * Returns the arenas - * - * @param prefix - * name prefix filter - * @param index - * starting index - * @param limit - * maximum amount of arenas to return - * @return the arenas - */ - List<ArenaInterface> getArenas(String prefix, int index, int limit); - - /** - * Returns the arenas - * - * @param plugin - * plugin filter - * @param index - * starting index - * @param limit - * maximum amount of arenas to return - * @return the arenas - */ - List<ArenaInterface> getArenas(Plugin plugin, int index, int limit); - - /** - * Returns the arenas - * - * @param plugin - * plugin filter - * @param prefix - * name prefix filter - * @param index - * starting index - * @param limit - * maximum amount of arenas to return - * @return the arenas - */ - List<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit); - - /** - * Returns the arenas - * - * @param type - * arena type filter - * @param index - * starting index - * @param limit - * maximum amount of arenas to return - * @return the arenas - */ - List<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit); - - /** - * Returns the arenas - * - * @param type - * arena type filter - * @param prefix - * name prefix filter - * @param index - * starting index - * @param limit - * maximum amount of arenas to return - * @return the arenas - */ - List<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit); - - /** - * Returns the arena for given name - * - * @param name - * @return arena or {@code null} if the arena was not found - */ - ArenaInterface getArena(String name); - - /** - * Creates a new arena - * - * @param name - * arena name - * @param type - * arena type - * @return the arena interface - * @throws McException - * thrown if there are problems creating the arena. - */ - ArenaInterface create(String name, ArenaTypeInterface type) throws McException; - - /** - * Returns the arena player for given mclib player - * @param player - * @return arena player - */ - ArenaPlayerInterface getPlayer(McPlayerInterface player); - - /** - * Returns the arena player for given player uuid - * @param uuid - * @return arena player - */ - ArenaPlayerInterface getPlayer(UUID uuid); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java deleted file mode 100644 index 8dfa2c18..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaInterface.java +++ /dev/null @@ -1,488 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import java.util.Collection; -import java.util.logging.Logger; - -import org.bukkit.Location; -import org.bukkit.block.Sign; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedConfigLine; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.EntityIdInterface; -import de.minigameslib.mclib.api.objects.EntityTypeId; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.objects.SignIdInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.objects.ZoneIdInterface; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicMatchRuleInterface; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; -import de.minigameslib.mgapi.api.team.ArenaTeamInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Basic interface for arenas. - * - * @author mepeisen - */ -public interface ArenaInterface extends RuleSetContainerInterface<ArenaRuleSetType, ArenaRuleSetInterface> -{ - - /** - * Returns the arena name. - * - * @return internal arena name - */ - String getInternalName(); - - /** - * Returns the arena type. - * - * @return arena type. - */ - ArenaTypeInterface getType(); - - /** - * Returns the display name of this arena - * @return display name - */ - LocalizedConfigString getDisplayName(); - - /** - * Returns a one line short description - * @return short arena description - */ - LocalizedConfigString getShortDescription(); - - /** - * Returns a multi-line description - * @return description of the arena - */ - LocalizedConfigLine getDescription(); - - /** - * Returns the how-to-play manual - * @return arena manual - */ - LocalizedConfigLine getManual(); - - /** - * Saves arena core data. - * @throws McException thrown if arena is in wrong state or saving data failed. - */ - void saveData() throws McException; - - /** - * Returns the current arena state. - * @return arena state. - */ - ArenaState getState(); - - /** - * Let the given player leave the arena. Prints a text message to player on success. - * @param player - * @throws McException thrown if the player is not inside given arena - */ - void leave(ArenaPlayerInterface player) throws McException; - - /** - * Let the given player join the waiting lobby. Prints a text message to player on success. - * @param player - * @throws McException thrown if the arena is in any other state except {@link ArenaState#Join} - */ - void join(ArenaPlayerInterface player) throws McException; - - /** - * Let the given player join the spectation area. Prints a text message to player on success. - * @param player - * @throws McException thrown if the arena does not run games or is not in state {@link ArenaState#Join} - */ - void spectate(ArenaPlayerInterface player) throws McException; - - /** - * Sets enabled state; only allowed if arena is currently in states {@link ArenaState#Disabled} or {@link ArenaState#Maintenance}. - * @throws McException thrown if arena is in invalid state - */ - void setEnabledState() throws McException; - - /** - * Sets arena to disabled state; only allowed in states {@link ArenaState#Starting}, {@link ArenaState#Join} or {@link ArenaState#Maintenance}. - * If used in other situations the argument {@code force} must be set to {@code true}. - * @param force forces arena disable; if a match is running all players are kicked and the match is aborted. - * @throws McException thrown if arena is in invalid state or if config cannot be saved. - */ - void setDisabledState(boolean force) throws McException; - - /** - * Sets arena to maintenance state; only allowed in states {@link ArenaState#Starting}, {@link ArenaState#Join} or {@link ArenaState#Disabled}. - * If there is a running match the arena will be switching to disabled mode as soon as the match ended. - * @param force forces arena maintenance mode; if a match is running all players are kicked and the match is aborted. - * @throws McException thrown if arena is in invalid state or if config cannot be saved. - */ - void setMaintenance(boolean force) throws McException; - - /** - * Checks if arena is in maintenance mode or is going to maintenance mode as soon as possible. - * @return {@code true} if setMaintenance was called before or the arena is still in maintenance mode. - */ - boolean isMaintenance(); - - /** - * Checks if arena is in disabled state mode or is going to disabled mode as soon as possible. - * @return {@code true} if setDisabledState was called before or the arena is still in disabled mode. - */ - boolean isDisabled(); - - /** - * Checks if arena is running a match. - * @return {@code true} if arena is in one of the match states: PRE_MATCH, MATCH, POST_MATCH - */ - boolean isMatch(); - - /** - * Checks if given player is playing a match or waiting for the main game (lobby) - * @param player - * @return {@code true} if player is playing - */ - boolean isPlaying(McPlayerInterface player); - - /** - * Checks if given player is spetating a match - * @param player - * @return {@code true} if player is spectating - */ - boolean isSpectating(McPlayerInterface player); - - /** - * Checks if given player is playing a match or waiting for the main game (lobby) - * @param player - * @return {@code true} if player is playing - */ - boolean isPlaying(ArenaPlayerInterface player); - - /** - * Checks if given player is spetating a match - * @param player - * @return {@code true} if player is spectating - */ - boolean isSpectating(ArenaPlayerInterface player); - - /** - * Checks for administration failures. - * @return list of arena failures. - */ - Collection<CheckFailure> check(); - - /** - * The minigame of the arena. - * @return arena minigame; may be null for invalid arenas. - */ - MinigameInterface getMinigame(); - - /** - * Delete arena - * @throws McException thrown if arena could not be deleted or if arena is not in maintenance state - */ - void delete() throws McException; - - /** - * Starts a match (without countdown); will be invoked on game rules, f.e.{@link BasicMatchRuleInterface} - * @throws McException thrown if arena is not in join state or if there is no player. - */ - void start() throws McException; - - /** - * Forces a match start even if match rules may not allow this; will request the gaming rules to start countdown - * @throws McException thrown if arena is not in JOIN state - */ - void forceStart() throws McException; - - /** - * Finish a match regularly - * @throws McException thrown if arena is not in match state - */ - void finish() throws McException; - - /** - * Abort a match - * @throws McException thrown if arena is not in match state - */ - void abort() throws McException; - - /** - * Sets test mode for a maintained arena; ensures that arena gets to maintenance mode one the match was finished. - * @throws McException thrown if arena is not in maintenance state. - */ - void setTestState() throws McException; - - /** - * Returns the players being in the arena (excluding spectators) - * @return player count - */ - int getPlayerCount(); - - /** - * Returns the players playing the match - * @return player count - */ - int getActivePlayerCount(); - - /** - * Returns the spectators being in the arena - * @return spectators count - */ - int getSpectatorCount(); - - /** - * Returns the players being within waiting lobby or within match - * @return current player list - */ - Collection<ArenaPlayerInterface> getPlayers(); - - /** - * Returns the players playing the match - * @return current player list - */ - Collection<ArenaPlayerInterface> getActivePlayers(); - - /** - * Returns the spectators - * @return spectators list - */ - Collection<ArenaPlayerInterface> getSpectators(); - - /** - * Returns the internal object representing the arena. - * @return arena object - */ - ObjectInterface getObject(); - - /** - * Returns a logger to log arena messages - * @return logger - */ - Logger getLogger(); - - // match - - /** - * Returns the current arena match - * @return arena match or {@code null} if arena is not in JOIN or MATCH state. - */ - ArenaMatchInterface getCurrentMatch(); - - // TODO historic matches - - // team support - - /** - * Sets the single player mode (removes all teams) - * @throws McException thrown if arena is not in maintenance state - */ - void setSinglePlayerMode() throws McException; - - /** - * Adds team with given name - * @param team - * @param name the team name to be used for display - * @throws McException thrown if arena is not in maintenance state; thrown for special teams - * @see TeamIdType#isSpecial() - */ - void addTeam(TeamIdType team, LocalizedConfigString name) throws McException; - - /** - * Removes given team - * @param team - * @throws McException thrown if arena is not in maintenance state - */ - void removeTeam(TeamIdType team) throws McException; - - /** - * Returns all preconfigured teams. - * @return all preconfigured teams; empty list for single player arenas - */ - Collection<TeamIdType> getTeams(); - - /** - * Returns the arena team object for given team id - * @param team - * @return arena team object or {@code null} if team is not configured via {@link #addTeam(TeamIdType, LocalizedConfigString)} - */ - ArenaTeamInterface getTeam(TeamIdType team); - - // components and objects - - /** - * Returns the components used in this arena - * - * @return Components of this arena. - */ - Collection<ComponentIdInterface> getComponents(); - - /** - * Returns the zones used in this arena - * - * @return Zones of this arena. - */ - Collection<ZoneIdInterface> getZones(); - - /** - * Returns the signs used in this arena - * - * @return Signs of this arena. - */ - Collection<SignIdInterface> getSigns(); - - /** - * Returns the entities used in this arena - * - * @return entities of this arena. - */ - Collection<EntityIdInterface> getEntities(); - - /** - * Returns the components used in this arena - * - * @param types component types for filtering - * @return Components of this arena. - */ - Collection<ComponentIdInterface> getComponents(ComponentTypeId... types); - - /** - * Returns the zones used in this arena - * - * @param types zone types for filtering - * @return Zones of this arena. - */ - Collection<ZoneIdInterface> getZones(ZoneTypeId... types); - - /** - * Returns the signs used in this arena - * - * @param types sign types for filtering - * @return Signs of this arena. - */ - Collection<SignIdInterface> getSigns(SignTypeId... types); - - /** - * Returns the entities used in this arena - * - * @param types entity types for filtering - * @return entities of this arena. - */ - Collection<EntityIdInterface> getEntities(EntityTypeId... types); - - /** - * Returns handler for given id. - * @param id - * @return handler for given id - */ - <T extends ArenaComponentHandler> T getHandler(ComponentIdInterface id); - - /** - * Returns handler for given id. - * @param id - * @return handler for given id - */ - <T extends ArenaSignHandler> T getHandler(SignIdInterface id); - - /** - * Returns handler for given id. - * @param id - * @return handler for given id - */ - <T extends ArenaZoneHandler> T getHandler(ZoneIdInterface id); - - /** - * Creates a new component. - * - * @param location - * the initial location of the component. - * @param type component type - * @return created component - * @throws McException - * thrown if the component could not be created - */ - <T extends ArenaComponentHandler> T createComponent(Location location, ComponentTypeId type) throws McException; - - /** - * Creates a new sign. - * - * @param sign - * the initial bukkit sign - * @param type sign type - * @return created sign - * @throws McException - * thrown if the sign could not be created - */ - <T extends ArenaSignHandler> T createSign(Sign sign, SignTypeId type) throws McException; - - /** - * Creates a new zone. - * - * @param cuboid - * the initial cuboid of the zone. - * @param type the zone type - * @return created zone - * @throws McException - * thrown if the zone could not be created - */ - <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId type) throws McException; - - /** - * Checks if arena can be modified. - * @throws McException thrown if arena is in invalid state for modifications - */ - void checkModifications() throws McException; - - // TODO Entity support -// /** -// * Creates a new entity. -// * -// * @param entity -// * the initial bukkit entity -// * @param fixedRuleSets the fixed rule sets to apply to this entity -// * @return created entity -// * @throws McException -// * thrown if the entity could not be created -// */ -// EntityInterface createEntity(Entity entity, EntityRuleSetType... fixedRuleSets) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java deleted file mode 100644 index cd29a155..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaState.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -/** - * Common arena state. - * - * @author mepeisen - */ -public enum ArenaState -{ - - /** - * The arena is booting. This is only an internal state during server startup. - */ - Booting, - - /** - * The arena is disabled. Cannot be used. - */ - Disabled, - - /** - * The arena is starting. Arena is checked. This is the common state if an arena - * is enabled or maintenance mode is stopped. Will be the first state after - * server restart. - */ - Starting, - - /** - * Players are ready to join. - */ - Join, - - /** - * A match is prepared, there are enough players. - */ - PreMatch, - - /** - * A match is running. - */ - Match, - - /** - * There is a winner; match is stopped - */ - PostMatch, - - /** - * The arena is restarting and will be switching to Join as soon as the reset is finished. - */ - Restarting, - - /** - * The arena is under maintenance. Administrators may change the arena. - */ - Maintenance, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java deleted file mode 100644 index 73c31de8..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaType.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Annotation for arena type enumeration value. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface ArenaType -{ - - /** - * Returns the associated arena type provider to control the given arena type. - * @return arena type provider - */ - Class<? extends ArenaTypeProvider> value(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java deleted file mode 100644 index 1a016a01..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeInterface.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * Interface implemented by enumerations for building arena types. - * - * @author mepeisen - */ -public interface ArenaTypeInterface extends McUniqueEnumInterface -{ - - /** - * Returns the arena type provider for this type. - * @return arena type provider class - */ - default Class<? extends ArenaTypeProvider> getProvider() - { - try - { - final ArenaType type = this.getClass().getDeclaredField(((Enum<?>) this).name()).getAnnotation(ArenaType.class); - return type.value(); - } - catch (NoSuchFieldException ex) - { - throw new IllegalStateException(ex); - } - } - - /** - * Creates arena type provider. - * @return arena type provider. - * @throws McException - */ - default ArenaTypeProvider safeCreateProvider() throws McException - { - try - { - return this.getProvider().newInstance(); - } - catch (InstantiationException | IllegalAccessException | IllegalStateException e) - { - throw new McException(CommonMessages.InternalError, e, e.getMessage()); - } - } - - /** - * Returns the minigame owning this type. - * @return minigame. - */ - default MinigameInterface getMinigame() - { - return MinigamesLibInterface.instance().getMinigame(getPlugin()); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java deleted file mode 100644 index 7c09e8a4..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ArenaTypeProvider.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import java.util.Set; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; - -/** - * An interface for arena types. - * - * @author mepeisen - */ -public interface ArenaTypeProvider -{ - - /** - * Returns a display name for the minigame. - * @return minigame display name. - */ - LocalizedMessageInterface getDisplayName(); - - /** - * Returns a short single-line description of the minigame - * @return short single-line description - */ - LocalizedMessageInterface getShortDescription(); - - /** - * Returns a multi-line description of the minigame - * @return multi-line description - */ - LocalizedMessageInterface getDescription(); - - /** - * Returns the fixed arena rule set types. - * @return fixed arena rule sets. - */ - Set<ArenaRuleSetType> getFixedArenaRules(); - - /** - * Returns optional arena rule sets - * @return optional arena rule sets. - */ - Set<ArenaRuleSetType> getOptionalArenaRules(); - - /** - * Creates a configuration with defaults for given rule set - * @param ruleSet - * @throws McException thrown for problems. - */ - void configure(ArenaRuleSetInterface ruleSet) throws McException; - - /** - * Creates a configuration with defaults for given rule set - * @param ruleSet - * @throws McException thrown for problems. - */ - void configure(ComponentRuleSetInterface ruleSet) throws McException; - - /** - * Creates a configuration with defaults for given rule set - * @param ruleSet - * @throws McException thrown for problems. - */ - void configure(ZoneRuleSetInterface ruleSet) throws McException; - - /** - * Creates a configuration with defaults for given rule set - * @param ruleSet - * @throws McException thrown for problems. - */ - void configure(SignRuleSetInterface ruleSet) throws McException; - - /** - * Creates a configuration for given component - * @param handler - * @throws McException thrown for problems. - */ - void configure(ArenaComponentHandler handler) throws McException; - - /** - * Creates a configuration for given zone - * @param handler - * @throws McException thrown for problems. - */ - void configure(ArenaZoneHandler handler) throws McException; - - /** - * Creates a configuration for given sign - * @param handler - * @throws McException thrown for problems. - */ - void configure(ArenaSignHandler handler) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java deleted file mode 100644 index 4a294162..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckFailure.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Single result of failure checks. - */ -public class CheckFailure -{ - - /** the failure severity. */ - private final CheckSeverity severity; - - /** the check title. */ - private final Serializable title; - - /** the check details. */ - private final Serializable details; - - /** - * Consturctor - * @param severity - * @param title - * @param titleArgs - * @param details - * @param detailArgs - */ - public CheckFailure(CheckSeverity severity, LocalizedMessageInterface title, Serializable[] titleArgs, LocalizedMessageInterface details, Serializable... detailArgs) - { - this.severity = severity; - this.title = title.toArg(titleArgs); - this.details = details.toArg(detailArgs); - } - - /** - * @return the severity - */ - public CheckSeverity getSeverity() - { - return this.severity; - } - - /** - * @return the title - */ - public Serializable getTitle() - { - return this.title; - } - - /** - * @return the details - */ - public Serializable getDetails() - { - return this.details; - } - -} \ No newline at end of file diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java deleted file mode 100644 index 174af800..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/CheckSeverity.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -/** - * Check severity. - */ -public enum CheckSeverity -{ - /** An error disallowing to use the arena. */ - Error, - /** A warning that may result in game problems; arena can be started. */ - Warning, - /** Some information text. */ - Info -} \ No newline at end of file diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java deleted file mode 100644 index a50c5141..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicSinglePlayerArena.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; - -/** - * Basic class for classic arenas behaving similar to minigameslib version 1. - * - * @author mepeisen - */ -public abstract class ClassicSinglePlayerArena implements ArenaTypeProvider -{ - - @Override - public Set<ArenaRuleSetType> getFixedArenaRules() - { - return new HashSet<>(Arrays.asList(BasicArenaRuleSets.BasicMatch)); - } - - @Override - public Set<ArenaRuleSetType> getOptionalArenaRules() - { - // TODO optional rules for classic simple player arena - return Collections.emptySet(); - } - - @Override - public void configure(ArenaRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(ComponentRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(ZoneRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(SignRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(ArenaComponentHandler handler) throws McException - { - // no configuration - } - - @Override - public void configure(ArenaZoneHandler handler) throws McException - { - // no configuration - } - - @Override - public void configure(ArenaSignHandler handler) throws McException - { - // no configuration - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java deleted file mode 100644 index e88b3504..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/arena/ClassicTeamArena.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.arena; - -import java.util.Collections; -import java.util.Set; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; - -/** - * Basic class for classic arenas behaving similar to minigameslib version 1. - * - * @author mepeisen - */ -public abstract class ClassicTeamArena implements ArenaTypeProvider -{ - - @Override - public Set<ArenaRuleSetType> getFixedArenaRules() - { - // TODO implement oitc team arena - return Collections.emptySet(); - } - - @Override - public Set<ArenaRuleSetType> getOptionalArenaRules() - { - // TODO implement oitc team arena - return Collections.emptySet(); - } - - @Override - public void configure(ArenaRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(ComponentRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(ZoneRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(SignRuleSetInterface ruleSet) throws McException - { - // no configuration - } - - @Override - public void configure(ArenaComponentHandler handler) throws McException - { - // no configuration - } - - @Override - public void configure(ArenaZoneHandler handler) throws McException - { - // no configuration - } - - @Override - public void configure(ArenaSignHandler handler) throws McException - { - // no configuration - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java deleted file mode 100644 index e349c075..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreateEvent.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * Event fired before an arena is created. - * - * @author mepeisen - */ -public class ArenaCreateEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaCreateEvent, ArenaCreateEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena name. */ - private final String arenaName; - - /** the arena type. */ - private final ArenaTypeInterface type; - - /** - * @param arenaName - * @param type - */ - public ArenaCreateEvent(String arenaName, ArenaTypeInterface type) - { - this.arenaName = arenaName; - this.type = type; - } - - /** - * @return the arenaName - */ - public String getArenaName() - { - return this.arenaName; - } - - /** - * @return the type - */ - public ArenaTypeInterface getType() - { - return this.type; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaCreateEvent getBukkitEvent() - { - return this; - } - - @Override - public McOutgoingStubbing<ArenaCreateEvent> when(McPredicate<ArenaCreateEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java deleted file mode 100644 index 266e1e53..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaCreatedEvent.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Event fired after an arena is created. - * - * @author mepeisen - */ -public class ArenaCreatedEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaCreatedEvent, ArenaCreatedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** - * @param arena - */ - public ArenaCreatedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaCreatedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<ArenaCreatedEvent> when(McPredicate<ArenaCreatedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java deleted file mode 100644 index b618f3dd..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeleteEvent.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Event fired before an arena is deleted. - * - * @author mepeisen - */ -public class ArenaDeleteEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaDeleteEvent, ArenaDeleteEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** - * @param arena - */ - public ArenaDeleteEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaDeleteEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<ArenaDeleteEvent> when(McPredicate<ArenaDeleteEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java deleted file mode 100644 index 84a52af6..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaDeletedEvent.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Event fired after an arena is deleted. - * - * @author mepeisen - */ -public class ArenaDeletedEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaDeletedEvent, ArenaDeletedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** - * @param arena - */ - public ArenaDeletedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaDeletedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<ArenaDeletedEvent> when(McPredicate<ArenaDeletedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java deleted file mode 100644 index 9be030ce..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaForceStartRequestedEvent.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Event fired to request arena rules to force starting the arena - * - * @author mepeisen - */ -public class ArenaForceStartRequestedEvent extends Event implements MinecraftEvent<ArenaForceStartRequestedEvent, ArenaForceStartRequestedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** - * @param arena - */ - public ArenaForceStartRequestedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaForceStartRequestedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<ArenaForceStartRequestedEvent> when(McPredicate<ArenaForceStartRequestedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java deleted file mode 100644 index 37e39c1f..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaLoseEvent.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import java.util.stream.Collectors; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface.MatchResult; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * One or more player were marked as loser - * - * @author mepeisen - * - * @see ArenaMatchInterface#setLoser(TeamIdType...) - * @see ArenaMatchInterface#setLoser(java.util.UUID...) - */ -public class ArenaLoseEvent extends Event implements MinecraftEvent<ArenaLoseEvent, ArenaLoseEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena players. */ - private final MatchResult result; - - /** - * @param arena - * @param result - */ - public ArenaLoseEvent(ArenaInterface arena, MatchResult result) - { - this.arena = arena; - this.result = result; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the match result - */ - public MatchResult getMatchResult() - { - return this.result; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaLoseEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return ObjectServiceInterface.instance().getPlayer(this.result.getPlayers().iterator().next()); - } - - @Override - public Iterable<McPlayerInterface> getPlayers() - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - return this.result.getPlayers().stream().map(osi::getPlayer).collect(Collectors.toList()); - } - - @Override - public McOutgoingStubbing<ArenaLoseEvent> when(McPredicate<ArenaLoseEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java deleted file mode 100644 index 12a4a391..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDieEvent.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * Event fired before an arena player dies caused by dmg. - * Allows rules to perform a valid action. - * - * @author mepeisen - * - * @see ArenaPlayerInterface#die() - * @see ArenaPlayerInterface#die(ArenaPlayerInterface) - */ -public class ArenaPlayerDieEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerDieEvent, ArenaPlayerDieEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** - * @param arena - * @param player - */ - public ArenaPlayerDieEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerDieEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerDieEvent> when(McPredicate<ArenaPlayerDieEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java deleted file mode 100644 index 8ff88e94..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerDiesEvent.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * Event fired before an arena player dies caused by dmg. - * Allows rules to perform a valid action. - * - * @author mepeisen - */ -public class ArenaPlayerDiesEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerDiesEvent, ArenaPlayerDiesEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** the pre-selected team */ - private PlayerAction action = PlayerAction.Die; - - /** - * @param arena - * @param player - */ - public ArenaPlayerDiesEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * Action to be performed on player die - * @author mepeisen - */ - public enum PlayerAction - { - /** the player autuomatically wins. */ - Win, - /** the player automatically loses. */ - Lose, - /** the ArenaPlayerDieEvent is played; delegates action to other rules fetching this event */ - Die, - /** The player is respawning without playing the ArenaPlayerDieEvent */ - SilentRespawn, - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * @return the action - */ - public PlayerAction getAction() - { - return this.action; - } - - /** - * @param action the action to set - */ - public void setAction(PlayerAction action) - { - this.action = action; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerDiesEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerDiesEvent> when(McPredicate<ArenaPlayerDiesEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java deleted file mode 100644 index 9dd99c7e..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinEvent.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Event fired before an arena player joined. - * - * @author mepeisen - * - * @see ArenaMatchInterface#join(ArenaPlayerInterface, TeamIdType) - * @see ArenaInterface#join(ArenaPlayerInterface) - */ -public class ArenaPlayerJoinEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinEvent, ArenaPlayerJoinEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** the pre-selected team */ - private TeamIdType preSelectedTeam; - - /** - * @param arena - * @param player - * @param preSelectedTeam - */ - public ArenaPlayerJoinEvent(ArenaInterface arena, ArenaPlayerInterface player, TeamIdType preSelectedTeam) - { - this.arena = arena; - this.player = player; - this.preSelectedTeam = preSelectedTeam; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * @return the preSelectedTeam - */ - public TeamIdType getPreSelectedTeam() - { - return this.preSelectedTeam; - } - - /** - * @param preSelectedTeam the preSelectedTeam to set - */ - public void setPreSelectedTeam(TeamIdType preSelectedTeam) - { - this.preSelectedTeam = preSelectedTeam; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerJoinEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerJoinEvent> when(McPredicate<ArenaPlayerJoinEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java deleted file mode 100644 index 87d8e806..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinSpectatorsEvent.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.mcevent.AbstractVetoEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * Event fired before an arena player joined spectators team. - * - * @author mepeisen - * - * @see ArenaMatchInterface#spectate(ArenaPlayerInterface) - * @see ArenaInterface#spectate(ArenaPlayerInterface) - */ -public class ArenaPlayerJoinSpectatorsEvent extends AbstractVetoEvent implements MinecraftEvent<ArenaPlayerJoinSpectatorsEvent, ArenaPlayerJoinSpectatorsEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** {@code true} if player had played before joining spectators. */ - private final boolean playedBefore; - - /** - * @param arena - * @param player - * @param playedBefore - */ - public ArenaPlayerJoinSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player, boolean playedBefore) - { - this.arena = arena; - this.player = player; - this.playedBefore = playedBefore; - } - - /** - * @return the playedBefore - */ - public boolean isPlayedBefore() - { - return this.playedBefore; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerJoinSpectatorsEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerJoinSpectatorsEvent> when(McPredicate<ArenaPlayerJoinSpectatorsEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java deleted file mode 100644 index b0a2b6f4..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedEvent.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Event fired after a player joined an arena. - * - * @author mepeisen - * - * @see ArenaMatchInterface#join(ArenaPlayerInterface, TeamIdType) - * @see ArenaInterface#join(ArenaPlayerInterface) - */ -public class ArenaPlayerJoinedEvent extends Event implements MinecraftEvent<ArenaPlayerJoinedEvent, ArenaPlayerJoinedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** - * @param arena - * @param player - */ - public ArenaPlayerJoinedEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerJoinedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerJoinedEvent> when(McPredicate<ArenaPlayerJoinedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java deleted file mode 100644 index 8a2788d8..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedSpectatorsEvent.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * Event fired after a player joines spectators. - * - * @author mepeisen - * - * @see ArenaMatchInterface#spectate(ArenaPlayerInterface) - * @see ArenaInterface#spectate(ArenaPlayerInterface) - */ -public class ArenaPlayerJoinedSpectatorsEvent extends Event implements MinecraftEvent<ArenaPlayerJoinedSpectatorsEvent, ArenaPlayerJoinedSpectatorsEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** {@code true} if player had played before joining spectators. */ - private final boolean playedBefore; - - /** - * @param arena - * @param player - * @param playedBefore - */ - public ArenaPlayerJoinedSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player, boolean playedBefore) - { - this.arena = arena; - this.player = player; - this.playedBefore = playedBefore; - } - - /** - * @return the playedBefore - */ - public boolean isPlayedBefore() - { - return this.playedBefore; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerJoinedSpectatorsEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerJoinedSpectatorsEvent> when(McPredicate<ArenaPlayerJoinedSpectatorsEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java deleted file mode 100644 index 8f9f19a0..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerJoinedTeamEvent.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Event fired after a player joined a team. - * - * @author mepeisen - * - * @see ArenaMatchInterface#join(ArenaPlayerInterface, TeamIdType) - */ -public class ArenaPlayerJoinedTeamEvent extends Event implements MinecraftEvent<ArenaPlayerJoinedTeamEvent, ArenaPlayerJoinedTeamEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** pre selected team. */ - private final TeamIdType team; - - /** - * @param arena - * @param player - * @param team - */ - public ArenaPlayerJoinedTeamEvent(ArenaInterface arena, ArenaPlayerInterface player, TeamIdType team) - { - this.arena = arena; - this.player = player; - this.team = team; - } - - /** - * @return the team - */ - public TeamIdType getTeam() - { - return this.team; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerJoinedTeamEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerJoinedTeamEvent> when(McPredicate<ArenaPlayerJoinedTeamEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java deleted file mode 100644 index ecd4ec42..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftEvent.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * Event fired after a player left an arena. The player has played before leaving. - * - * @author mepeisen - * - * @see ArenaMatchInterface#leave(ArenaPlayerInterface) - * @see ArenaInterface#leave(ArenaPlayerInterface) - */ -public class ArenaPlayerLeftEvent extends Event implements MinecraftEvent<ArenaPlayerLeftEvent, ArenaPlayerLeftEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** - * @param arena - * @param player - */ - public ArenaPlayerLeftEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerLeftEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerLeftEvent> when(McPredicate<ArenaPlayerLeftEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java deleted file mode 100644 index 10c21b33..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftSpectatorsEvent.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * Event fired after a player left an arena spectators team. The player was spectator before leaving. - * - * @author mepeisen - * - * @see ArenaMatchInterface#leave(ArenaPlayerInterface) - * @see ArenaInterface#leave(ArenaPlayerInterface) - */ -public class ArenaPlayerLeftSpectatorsEvent extends Event implements MinecraftEvent<ArenaPlayerLeftSpectatorsEvent, ArenaPlayerLeftSpectatorsEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** - * @param arena - * @param player - */ - public ArenaPlayerLeftSpectatorsEvent(ArenaInterface arena, ArenaPlayerInterface player) - { - this.arena = arena; - this.player = player; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerLeftSpectatorsEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerLeftSpectatorsEvent> when(McPredicate<ArenaPlayerLeftSpectatorsEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java deleted file mode 100644 index 3ec5126e..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaPlayerLeftTeamEvent.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Event fired after a player left a team. - * - * @author mepeisen - * - * @see ArenaMatchInterface#leave(ArenaPlayerInterface, TeamIdType) - */ -public class ArenaPlayerLeftTeamEvent extends Event implements MinecraftEvent<ArenaPlayerLeftTeamEvent, ArenaPlayerLeftTeamEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena player. */ - private final ArenaPlayerInterface player; - - /** pre selected team. */ - private final TeamIdType team; - - /** - * @param arena - * @param player - * @param team - */ - public ArenaPlayerLeftTeamEvent(ArenaInterface arena, ArenaPlayerInterface player, TeamIdType team) - { - this.arena = arena; - this.player = player; - this.team = team; - } - - /** - * @return the team - */ - public TeamIdType getTeam() - { - return this.team; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the arena player - */ - public ArenaPlayerInterface getArenaPlayer() - { - return this.player; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaPlayerLeftTeamEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return this.player.getMcPlayer(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerLeftTeamEvent> when(McPredicate<ArenaPlayerLeftTeamEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java deleted file mode 100644 index 28361e08..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaStateChangedEvent.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; - -/** - * Event fired after an arena state is changed. - * - * @author mepeisen - */ -public class ArenaStateChangedEvent extends Event implements MinecraftEvent<ArenaStateChangedEvent, ArenaStateChangedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the old state. */ - private final ArenaState oldState; - - /** the new state. */ - private final ArenaState newState; - - /** - * @param arena - * @param oldState the old state - * @param newState the new state - */ - public ArenaStateChangedEvent(ArenaInterface arena, ArenaState oldState, ArenaState newState) - { - this.arena = arena; - this.oldState = oldState; - this.newState = newState; - } - - /** - * @return the oldState - */ - public ArenaState getOldState() - { - return this.oldState; - } - - /** - * @return the newState - */ - public ArenaState getNewState() - { - return this.newState; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaStateChangedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<ArenaStateChangedEvent> when(McPredicate<ArenaStateChangedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java deleted file mode 100644 index 7a3c10a5..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/ArenaWinEvent.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import java.util.stream.Collectors; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface.MatchResult; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * One or more player were marked as winner - * - * @author mepeisen - * - * @see ArenaMatchInterface#setWinner(TeamIdType...) - * @see ArenaMatchInterface#setWinner(java.util.UUID...) - */ -public class ArenaWinEvent extends Event implements MinecraftEvent<ArenaWinEvent, ArenaWinEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** the arena players. */ - private final MatchResult result; - - /** - * @param arena - * @param result - */ - public ArenaWinEvent(ArenaInterface arena, MatchResult result) - { - this.arena = arena; - this.result = result; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * @return the match result - */ - public MatchResult getMatchResult() - { - return this.result; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public ArenaWinEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McPlayerInterface getPlayer() - { - return ObjectServiceInterface.instance().getPlayer(this.result.getPlayers().iterator().next()); - } - - @Override - public Iterable<McPlayerInterface> getPlayers() - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - return this.result.getPlayers().stream().map(osi::getPlayer).collect(Collectors.toList()); - } - - @Override - public McOutgoingStubbing<ArenaWinEvent> when(McPredicate<ArenaWinEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java deleted file mode 100644 index 92b2ea13..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStartedEvent.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Event right before the match started. Can be used to select player spawns - * or to initialize the battle field. - * - * @author mepeisen - */ -public class MatchStartedEvent extends Event implements MinecraftEvent<MatchStartedEvent, MatchStartedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** - * @param arena - */ - public MatchStartedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public MatchStartedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<MatchStartedEvent> when(McPredicate<MatchStartedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java deleted file mode 100644 index 574e7289..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/events/MatchStoppedEvent.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.events; - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.MinecraftEvent; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Event right after the match stopped. - * - * @author mepeisen - */ -public class MatchStoppedEvent extends Event implements MinecraftEvent<MatchStoppedEvent, MatchStoppedEvent> -{ - - /** handlers list. */ - private static final HandlerList handlers = new HandlerList(); - - /** the arena instance. */ - private final ArenaInterface arena; - - /** - * @param arena - */ - public MatchStoppedEvent(ArenaInterface arena) - { - this.arena = arena; - } - - /** - * @return the arena - */ - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - @Override - public HandlerList getHandlers() - { - return handlers; - } - - /** - * Returns the handlers list - * - * @return handlers - */ - public static HandlerList getHandlerList() - { - return handlers; - } - - @Override - public MatchStoppedEvent getBukkitEvent() - { - return this; - } - - @Override - public ObjectInterface getObject() - { - return this.arena.getObject(); - } - - @Override - public McOutgoingStubbing<MatchStoppedEvent> when(McPredicate<MatchStoppedEvent> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java deleted file mode 100644 index 3d129526..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/ArenaMatchInterface.java +++ /dev/null @@ -1,474 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.match; - -import java.time.LocalDateTime; -import java.util.Collection; -import java.util.UUID; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.CommonTeams; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * A pending arena match - * - * @author mepeisen - */ -public interface ArenaMatchInterface -{ - - // match common data - - /** - * Returns the match created timestamp - * @return match creation timestamp; timestamp the first player joined - */ - LocalDateTime getCreated(); - - /** - * Returns the match started timestamp - * @return match started timestamp; {@code null} for non-started matches. - */ - LocalDateTime getStarted(); - - /** - * Returns the match finished timestamp - * @return match finished timestamp; {@code null} if the match did not finish - */ - LocalDateTime getFinished(); - - /** - * Checks if match was aborted by admins or server crash - * @return {@code true} if match was aborted by admins or server crash - */ - boolean isAborted(); - - /** - * Returns the match player for given player uuid - * @param uuid - * @return player or {@code null} if player is not registered in match - */ - MatchPlayerInterface get(UUID uuid); - - // teams - - /** - * Returns members of given team. - * @param team - * @return team members. - */ - Collection<UUID> getTeamMembers(TeamIdType team); - - /** - * Returns the available teams. Will return {@link CommonTeams#Unknown} for single player arenas. - * Will never return {@link CommonTeams#Winners}, {@link CommonTeams#Losers} or {@code CommonTeams#Spectators} because - * these are very special teams not representing an "ingame" team. - * @return list of available teams. - */ - Collection<TeamIdType> getTeams(); - - /** - * Returns a preferred team for new players. The preferred team is chosen for new joining players. - * @return the preferred team to join a new user - */ - TeamIdType getPreferredTeam(); - - /** - * Let the given user join the match; on team matches the best team will be selected - * @param player - * @throws McException thrown if the current match is already finished - */ - void join(ArenaPlayerInterface player) throws McException; - - /** - * Let the given user join the given team; does NOT remove it from previous/current team; will remove from UNKNOWN team - * @param player - * @param team the team to join; must not be used with special teams - * @throws McException thrown if the current match is not a team match or if match is already finished - */ - void join(ArenaPlayerInterface player, TeamIdType team) throws McException; - - /** - * Let the given user leave the given team; will join the UNKNOWN team if the player leaves the last team - * @param player - * @param team the team to join; must not be used with special teams - * @throws McException thrown if the current match is not a team match or if match is already finished - */ - void leave(ArenaPlayerInterface player, TeamIdType team) throws McException; - - /** - * Let the given user join the given team; removes from previous/current team - * @param player - * @param team the team to join; must not be used with special teams - * @throws McException thrown if the current match is not a team match or if match is already finished - */ - void switchTeam(ArenaPlayerInterface player, TeamIdType team) throws McException; - - /** - * Let the user join spectators. NOTE: Does not mark the player as winner or loser. If the player wins or loses you should - * invoke the methods setWinner or setLoser instead. - * @param player - * @throws McException thrown if the match is already finished - */ - void spectate(ArenaPlayerInterface player) throws McException; - - /** - * Let the user leave the match. Player will automatically use when playing and leaving during match - * @param player - * @throws McException thrown if the match is already finished - */ - void leave(ArenaPlayerInterface player) throws McException; - - /** - * Returns {@code true} if this match is a team match - * @return {@code true} for team matches; {@code false} for single player matches - */ - boolean isTeamMatch(); - - /** - * Returns the team of given player. Notes on special teams: - * <ul> - * <li>Will only return {@link CommonTeams#Spectators} if player did only spectate the game and did not participate as a player.</li> - * <li>Will return {@link CommonTeams#Unknown} if player is in waiting lobby and a team was not chosen or this is a single player match.</li> - * <li>Will return {@link CommonTeams#Winners} if player is already marked as a winner.</li> - * <li>Will return {@link CommonTeams#Losers} if player is already marked as a loser.</li> - * <li>Will return {@link CommonTeams#Unknown} if the match is pending and the player did not win or lose.</li> - * </ul> - * @param uuid player uuid - * @return team or {@code null} if player is not involved in this match - */ - TeamIdType getTeam(UUID uuid); - - /** - * Return the match team interface for given team - * @param team - * @return team or {@code null} if team is not registered in match - */ - MatchTeamInterface get(TeamIdType team); - - /** - * Get or creates a match player. - * @param team - * @return match player. - * @throws McException thrown if the current match is not a team match or if match is already finished - */ - MatchTeamInterface getOrCreate(TeamIdType team) throws McException; - - // results - - /** - * Returns the match participants/ active players - * @return match participants/ active players; player uuids - */ - Collection<UUID> getPlayers(); - - /** - * Returns the number of match participants/ active players - * @return match participants count - */ - int getPlayerCount(); - - /** - * Returns the current spectators - * @return spectators - */ - Collection<UUID> getSpectators(); - - /** - * Returns the number of current spectators - * @return match spectators count - */ - int getSpectatorCount(); - - /** - * Returns the match participants (players having played or spectated the game). - * This method includes players already marked as winners or losers. - * @param returnSpectators {@code true} to return spectators not being active within the game, {@code false} to filter and only return players being active - * @return match participants; player uuids - */ - Collection<UUID> getParticipants(boolean returnSpectators); - - /** - * Returns the number of remaining players - * @param returnSpectators {@code true} to return spectators not being active within the game, {@code false} to filter and only return players being active - * @return match participants count - */ - int getParticipantCount(boolean returnSpectators); - - /** - * Returns the winners - * @return match winners; player uuids - */ - Collection<UUID> getWinners(); - - /** - * Returns the number of match winners - * @return match winner count - */ - int getWinnerCount(); - - /** - * Returns the match losers - * @return mosers; player uuids - */ - Collection<UUID> getLosers(); - - /** - * Returns the number of match loser players - * @return match loser count - */ - int getLoserCount(); - - /** - * Returns the match results, first entry is the "first place". - * @return match results. - */ - Collection<MatchResult> getResults(); - - /** - * Returns the result count - * @return count of match results or places - */ - int getResultCount(); - - /** - * Returns the match results for given place - * @param place the place starting with 1 for the best winner - * @return match result or {@code null} if place number is invalid - */ - MatchResult getResult(int place); - - /** - * Match result interface. - * - * Each invocation of {@link ArenaMatchInterface#setWinner(UUID...)} or {@link ArenaMatchInterface#setLoser(UUID...)} will create a new place - * and match result. The first winner will be on place #1 followed by later on winners and the first loser will be on last place preceded by - * later losers. - */ - interface MatchResult - { - - /** - * Returns the place number - * @return the place starting with 1 for the best winner - */ - int getPlace(); - - /** - * Players sharing this place - * @return the players sharing this place - */ - Collection<UUID> getPlayers(); - - /** - * Returns {@code true} for a winning place - * @return {@code true} for winning place. - */ - boolean isWin(); - - } - - // spawns - - /** - * Returns the spawn for given player. Only works on pending games. - * @param uuid - * @return player spawn. - */ - ComponentIdInterface getSpawn(UUID uuid); - - /** - * Selects the spawn for given player. - * @param player - * @param spawn - * @throws McException thrown if match is not pending. - */ - void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException; - - // match statistics - - /** - * Returns the match statistic for given player and statistic id. - * @param player - * @param statistic - * @return statistics number - */ - int getStatistic(UUID player, MatchStatisticId statistic); - - /** - * Returns the match statistic for given team and statistic id. - * @param team - * @param statistic - * @return statistics number - */ - int getStatistic(TeamIdType team, MatchStatisticId statistic); - - /** - * Changes the match statistic for given player and statistic id. - * @param player - * @param statistic - * @param value the new statistic value - * @throws McException thrown if match is not pending. - */ - void setStatistic(UUID player, MatchStatisticId statistic, int value) throws McException; - - /** - * Changes the match statistic for given team and statistic id. - * @param team - * @param statistic - * @param value the new statistic value - * @throws McException thrown if the current match is not a team match or if match is not pending. - */ - void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) throws McException; - - /** - * Adds the match statistic for given player and statistic id. - * @param player - * @param statistic - * @param amount delta value - * @return the new statistic value - * @throws McException thrown if match is not pending. - */ - int addStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException; - - /** - * Adds the match statistic for given team and statistic id. - * @param team - * @param statistic - * @param amount delta value - * @return the new statistic value - * @throws McException thrown if the current match is not a team match or if match is not pending. - */ - int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException; - - /** - * Decrement the match statistic for given player and statistic id. - * @param player - * @param statistic - * @param amount delta value - * @return the new statistic value - * @throws McException thrown if match is not pending. - */ - int decStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException; - - /** - * Decrement the match statistic for given team and statistic id. - * @param team - * @param statistic - * @param amount delta value - * @return the new statistic value - * @throws McException thrown if the current match is not a team match or if match is not pending. - */ - int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException; - - /** - * Returns the play time of given player in milli seconds - * @param player - * @return play time in milli seconds - */ - long getPlayTime(UUID player); - - // killer tracking - - /** - * Interface for tracking the last damager - */ - interface KillerTracking - { - /** - * UUId of the player that was damaged or killed - * @return player that was killed - */ - UUID getPlayer(); - - /** - * The last damager - * @return last damager - */ - UUID getLastDamager(); - - /** - * The timestamp the last damage was recorded - * @return last damage - */ - LocalDateTime getDamageTimestamp(); - } - - /** - * Returns the killer tracking for given target player; only works on pending matches - * @param player - * @return killer tracking or {@code null} if player is not registered in this arena match - */ - KillerTracking getKillerTracking(UUID player); - - /** - * Resets the killer tracking for given target player - * @param player - * @throws McException thrown if match is not pending. - */ - void resetKillerTracking(UUID player) throws McException; - - /** - * Tracks last damage for killer detection - * @param targetPlayer the player that was hit - * @param damager the last damager - * @throws McException thrown if match is not pending. - */ - void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException; - - // winning and losing - - /** - * Marks one or more players for losing the game - * @param players - * @throws McException thrown if match is not pending. - */ - void setLoser(UUID... players) throws McException; - - /** - * Marks one or more players for winning the game - * @param players - * @throws McException thrown if match is not pending. - */ - void setWinner(UUID... players) throws McException; - - /** - * Marks one or more teams for losing the game - * @param teams - * @throws McException thrown if match is not pending. - */ - void setLoser(TeamIdType... teams) throws McException; - - /** - * Marks one or more teams for winning the game - * @param teams - * @throws McException thrown if match is not pending. - */ - void setWinner(TeamIdType... teams) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java deleted file mode 100644 index f39cb8b0..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/CommonMatchStatistics.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.match; - -/** - * Common match statistics. - * - * @author mepeisen - */ -public enum CommonMatchStatistics implements MatchStatisticId -{ - - /** common points for a single player or a team. */ - Points, - - /** Number of player/team deaths. */ - Deaths, - - /** Number of player/team kills. */ - Kills, - - /** Number of player/team lives. */ - Lives, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java deleted file mode 100644 index 3abaf0f3..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchPlayerInterface.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.match; - -import java.time.LocalDateTime; - -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface.KillerTracking; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Interface representing a player in a match. - * - * @author mepeisen - * - */ -public interface MatchPlayerInterface extends KillerTracking -{ - - /** - * Returns the join timestamp of the user - * @return join timestamp - */ - LocalDateTime getJoined(); - - /** - * Returns the left timestamp (when player leaves/loses/wins the match). - * @return left timestamp - */ - LocalDateTime getLeft(); - - /** - * @return the spawn - */ - ComponentIdInterface getSpawn(); - - /** - * @param spawn the spawn to set - */ - void setSpawn(ComponentIdInterface spawn); - - /** - * Returns the primary team of the player when using team play - * @return the team - */ - TeamIdType getTeam(); - - /** - * Checks if player is still playing the match - * @return {@code true} if player is still playing - */ - boolean isPlaying(); - - /** - * Checks if player is in spectator mode - * @return {@code true} if player is in spectator mode - */ - boolean isSpec(); - - /** - * Statistic function - * @param statistic - * @return current statistic - */ - int getStatistic(MatchStatisticId statistic); - - /** - * Statistic function - * @param statistic - * @param newValue - */ - void setStatistic(MatchStatisticId statistic, int newValue); - - /** - * Adds the match statistic for given statistic id. - * @param statistic - * @param amount delta value - * @return new value - */ - int addStatistic(MatchStatisticId statistic, int amount); - - /** - * Decrements the match statistic for given statistic id. - * @param statistic - * @param amount delta value - * @return new value - */ - int decStatistic(MatchStatisticId statistic, int amount); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java deleted file mode 100644 index 8c69e544..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchStatisticId.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.match; - -import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; - -/** - * Interface for match statistic enumerations - * - * @author mepeisen - */ -public interface MatchStatisticId extends McUniqueEnumInterface -{ - - // marker interface - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java deleted file mode 100644 index 613ddc82..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/match/MatchTeamInterface.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.match; - -import java.util.Set; -import java.util.UUID; - -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Interface representing a team in a match. - * - * @author mepeisen - * - */ -public interface MatchTeamInterface -{ - - /** - * @return the teamId - */ - TeamIdType getTeamId(); - - /** - * Returns a read only list of team members. - * @return the teamMembers (player uuids) - */ - Set<UUID> getMembers(); - - /** - * Statistic function - * @param statistic - * @return current statistic - */ - int getStatistic(MatchStatisticId statistic); - - /** - * Statistic function - * @param statistic - * @param newValue - */ - void setStatistic(MatchStatisticId statistic, int newValue); - - /** - * Adds the match statistic for given statistic id. - * @param statistic - * @param amount delta value - * @return new value - */ - int addStatistic(MatchStatisticId statistic, int amount); - - /** - * Decrements the match statistic for given statistic id. - * @param statistic - * @param amount delta value - * @return new value - */ - int decStatistic(MatchStatisticId statistic, int amount); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java deleted file mode 100644 index d195724a..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaComponentHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.objects.ComponentHandlerInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; - -/** - * A base interface for arena component handlers - * - * @author mepeisen - */ -public interface ArenaComponentHandler extends ComponentHandlerInterface, BaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface> -{ - - /** - * Returns the underlying component - * @return component - */ - ComponentInterface getComponent(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java deleted file mode 100644 index 30fe22d8..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaSignHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.objects.SignHandlerInterface; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; - -/** - * A base interface for arena sign handlers - * - * @author mepeisen - */ -public interface ArenaSignHandler extends SignHandlerInterface, BaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface> -{ - - /** - * Returns the underlying sign - * @return sign - */ - SignInterface getSign(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java deleted file mode 100644 index eb83e7b3..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/ArenaZoneHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.objects.ZoneHandlerInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * A base interface for arena zone handlers - * - * @author mepeisen - */ -public interface ArenaZoneHandler extends ZoneHandlerInterface, BaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface> -{ - - /** - * Returns the underlying zone - * @return zone - */ - ZoneInterface getZone(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java deleted file mode 100644 index d4a15f91..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BaseArenaObjectHandler.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; -import de.minigameslib.mgapi.api.rules.RuleSetInterface; -import de.minigameslib.mgapi.api.rules.RuleSetType; - -/** - * Common base interface for arena objects. - * - * @author mepeisen - * @param <T> type of rule sets - * @param <Q> rule set interface - */ -public interface BaseArenaObjectHandler<T extends RuleSetType, Q extends RuleSetInterface<T>> extends RuleSetContainerInterface<T, Q> -{ - - /** - * Returns a unique name of the component zone. - * @return unique name. - */ - String getName(); - - /** - * Sets the unique component name. - * @param newName new name - * @throws McException thrown if arena is not in maintenance mode or if name is already in use. - */ - void setName(String newName) throws McException; - - /** - * Returns the arena this component belongs to - * @return associated arena - */ - ArenaInterface getArena(); - - /** - * Initialized the arena for this component - * @param arena - * @throws McException - */ - void initArena(ArenaInterface arena) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java deleted file mode 100644 index 30f716bf..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicComponentTypes.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.objects.ComponentTypeId; - -/** - * The arenas default component types. - * - * @author mepeisen - */ -public enum BasicComponentTypes implements ComponentTypeId -{ - - /** - * A generic spawn block. - * @see SpawnComponentHandler - */ - Spawn, - - /** - * A generic spawn block used for spectators. - * @see SpawnComponentHandler - */ - SpectatorSpawn, - - /** - * A generic spawn block used for join phase. - * @see JoinSpawnComponentHandler - */ - JoinSpawn, - - /** - * A generic spawn block used after match. - * @see MainLobbySpawnComponentHandler - */ - MainLobbySpawn, - - /** - * Some empty component that can be used with new rule sets for minigame developers. - * @see EmptyComponentHandler - */ - Empty, - - /** - * A special generic component used by administrators with individual rule sets. - * @see GenericComponentHandler - */ - Generic, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java deleted file mode 100644 index 0559daac..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicSignTypes.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.objects.SignTypeId; - -/** - * The arenas default sign types. - * - * @author mepeisen - */ -public enum BasicSignTypes implements SignTypeId -{ - - /** - * A join sign - * @see JoinSignInterface - */ - Join, - - /** - * A leave sign - * @see LeaveSignInterface - */ - Leave, - - /** - * Some empty sign that can be used with new rule sets for minigame developers. - * @see EmptySignHandler - */ - Empty, - - /** - * A special generic sign used by administrators with individual rule sets. - * @see GenericSignHandler - */ - Generic, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java deleted file mode 100644 index c918c501..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BasicZoneTypes.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.objects.ZoneTypeId; - -/** - * The minigames arena default zone types. - * - * @author mepeisen - */ -public enum BasicZoneTypes implements ZoneTypeId -{ - - /** - * Main zone for an arena. - * @see MainZoneHandler - */ - Main, - - /** - * Battle zone (where the action goes on). - * @see BattleZoneHandler - */ - Battle, - - /** - * Join zone to automatically join an arena if possible. - * @see JoinZoneHandler - */ - Join, - - /** - * Leave zone to automatically leave an arena. - * @see LeaveZoneHandler - */ - Leave, - - /** - * Lobby zone where players can wait for matches. - * @see LobbyZoneHandler - */ - Lobby, - - /** - * Zone allowed for spectators - * @see SpectatorZoneHandler - */ - Spectator, - - /** - * Some empty zone that can be used with new rule sets for minigame developers. - * @see EmptyZoneHandler - */ - Empty, - - /** - * A special generic zone used by administrators with individual rule sets. - * @see GenericZoneHandler - */ - Generic, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java deleted file mode 100644 index d5b6dd0e..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/BattleZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The battle arena zone. - * - * @author mepeisen - * - */ -public interface BattleZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java deleted file mode 100644 index af2580c2..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyComponentHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The empty arena zone. - * - * @author mepeisen - * - */ -public interface EmptyComponentHandler extends ArenaComponentHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java deleted file mode 100644 index 6a7e8d8f..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptySignHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The empty arena zone. - * - * @author mepeisen - * - */ -public interface EmptySignHandler extends ArenaSignHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java deleted file mode 100644 index aa1b6291..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/EmptyZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The empty arena zone. - * - * @author mepeisen - * - */ -public interface EmptyZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java deleted file mode 100644 index d32d9939..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericComponentHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The generic arena zone. - * - * @author mepeisen - * - */ -public interface GenericComponentHandler extends ArenaComponentHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java deleted file mode 100644 index 107d09c3..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericSignHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The generic arena zone. - * - * @author mepeisen - * - */ -public interface GenericSignHandler extends ArenaSignHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java deleted file mode 100644 index 4e6e7ce4..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/GenericZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The generic arena zone. - * - * @author mepeisen - * - */ -public interface GenericZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java deleted file mode 100644 index 5d22fe00..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSignInterface.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * A join sign. - * - * @author mepeisen - */ -public interface JoinSignInterface extends ArenaSignHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java deleted file mode 100644 index ba7455f7..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinSpawnComponentHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * A spawn component handler used for players joining an arena. - * - * @author mepeisen - */ -public interface JoinSpawnComponentHandler extends ArenaComponentHandler -{ - - // marker interface - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java deleted file mode 100644 index 70272064..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/JoinZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The join arena zone. - * - * @author mepeisen - * - */ -public interface JoinZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java deleted file mode 100644 index 9b13c204..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveSignInterface.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * A leave sign. - * - * @author mepeisen - */ -public interface LeaveSignInterface extends ArenaSignHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java deleted file mode 100644 index 1605efe8..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LeaveZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The leave arena zone. - * - * @author mepeisen - * - */ -public interface LeaveZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java deleted file mode 100644 index df24b853..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/LobbyZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The lobby arena zone. - * - * @author mepeisen - * - */ -public interface LobbyZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java deleted file mode 100644 index d201d8d3..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainLobbySpawnComponentHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * A spawn component handler used for players after leaving the match. - * - * @author mepeisen - */ -public interface MainLobbySpawnComponentHandler extends ArenaComponentHandler -{ - - // marker interface - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java deleted file mode 100644 index 43036985..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/MainZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The main arena zone. - * - * @author mepeisen - * - */ -public interface MainZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java deleted file mode 100644 index c9b1164d..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpawnComponentHandler.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * A spawn component handler. - * - * @author mepeisen - */ -public interface SpawnComponentHandler extends ArenaComponentHandler -{ - - /** - * Returns the team using this spawn. - * @return team using this spawn. - */ - TeamIdType getTeam(); - - /** - * Sets the team that uses this spawn - * @param team - * @throws McException thrown if arena is not in maintenance mode or the data could not be saved. - */ - void setTeam(TeamIdType team) throws McException; - - /** - * Return an (optional) ordering for this spawn; used in arenas with fixed spawn positions. - * @return spawn ordering. - */ - int getOrdering(); - - /** - * sets an (optional) ordering for this spawn; used in arenas with fixed spawn positions. - * @param order - * @throws McException thrown if arena is not in maintenance mode or the data could not be saved. - */ - void setOrdering(int order) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java deleted file mode 100644 index 23e41ca2..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorSpawnComponentHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * A spawn component handler. - * - * @author mepeisen - */ -public interface SpectatorSpawnComponentHandler extends ArenaComponentHandler -{ - - /** - * Returns the team using this spawn. - * @return team using this spawn. - */ - TeamIdType getTeam(); - - /** - * Sets the team that uses this spawn - * @param team - * @throws McException thrown if arena is not in maintenance mode or the data could not be saved. - */ - void setTeam(TeamIdType team) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java deleted file mode 100644 index 360aca11..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/obj/SpectatorZoneHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.obj; - -/** - * The spectator arena zone. - * - * @author mepeisen - * - */ -public interface SpectatorZoneHandler extends ArenaZoneHandler -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java deleted file mode 100644 index 646f44e5..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/player/ArenaPlayerInterface.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.player; - -import java.util.UUID; - -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; - -/** - * @author mepeisen - * - */ -public interface ArenaPlayerInterface -{ - - // common methods (player info) - - /** - * Returns the bukkit player (if this player is online). - * - * @return bukkit player. - */ - default Player getBukkitPlayer() - { - return this.getMcPlayer().getBukkitPlayer(); - } - - /** - * Returns the name of the player. - * - * @return name of the player. - */ - default String getName() - { - return this.getMcPlayer().getName(); - } - - /** - * Returns the bukkit offline player. - * - * @return bukkit offline player. - */ - default OfflinePlayer getOfflinePlayer() - { - return this.getMcPlayer().getOfflinePlayer(); - } - - /** - * Returns the mclib player. - * - * @return mclib player. - */ - McPlayerInterface getMcPlayer(); - - /** - * Returns the players uuid. - * - * @return uuid. - */ - default UUID getPlayerUUID() - { - return this.getMcPlayer().getPlayerUUID(); - } - - // arena data and match - - /** - * Returns the arena this player is currently in; within a match or waiting lobby. - * - * @return arena or {@code null} if this player is currently not within any arena. - */ - ArenaInterface getArena(); - - /** - * Let the player die; does nothing if there is no game pending. - * Adds a new kill to kill statistic and performs a kill. - * @throws McException thrown if no match is running. - */ - void die() throws McException; - - /** - * Let the player die; does nothing if there is no game pending. - * Adds a new kill to kill statistic and performs a kill while the killer gets a statistic bonus - * for killing this player. - * @param killer the opposite player causing the death - * @throws McException thrown if no match is running. - */ - void die(ArenaPlayerInterface killer) throws McException; - - /** - * Let the player lose the game; does nothing if there is no game pending. - * May cause to end the game (depending on gaming rules). - * Identical to invoke {@link ArenaMatchInterface#setLoser(UUID...)} with this players uuid. - * @throws McException thrown if no match is running. - */ - void lose() throws McException; - - /** - * Let the player win the game; does nothing if there is no game pending - * May cause to end the game (depending on gaming rules). - * Identical to invoke {@link ArenaMatchInterface#setWinner(UUID...)} with this players uuid. - * @throws McException thrown if no match is running. - */ - void win() throws McException; - - // stubbing - - /** - * Checks this player for given criteria and invokes either then or else statements. - * - * <p> - * NOTICE: If the test function throws an exception it will be re thrown and no then or else statement will be invoked. - * </p> - * - * @param test - * test functions for testing the player matching any criteria. - * - * @return the outgoing stub to apply then or else consumers. - * - * @throws McException - * will be thrown if either the test function or then/else consumers throw the exception. - */ - McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException; - - /** - * Checks if the player is online - * - * @return true if player is online - */ - default boolean isOnline() - { - return this.getBukkitPlayer() != null; - } - - /** - * Checks if player is within arena - * - * @return true if player is within arena - */ - default boolean inArena() - { - return this.getArena() != null; - } - - /** - * Checks if player is within arena and if he is spectating - * @return {@code true} if player is spectating an arena - */ - boolean isSpectating(); - - /** - * Checks if player is within arena and if he is playing a match (or waiting in the lobby) - * @return {@code true} if player is playing a match or waiting inside an arena - */ - boolean isPlaying(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java deleted file mode 100644 index e0f6c349..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractArenaRule.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Abstract base class for rule sets - * - * @author mepeisen - */ -public abstract class AbstractArenaRule implements ArenaRuleSetInterface -{ - - /** - * the underlying arena. - */ - protected final ArenaInterface arena; - - /** - * rule set type. - */ - protected final ArenaRuleSetType type; - - /** - * @param type - * @param arena - * @throws McException - * thrown if config is invalid - */ - public AbstractArenaRule(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - this.type = type; - this.arena = arena; - } - - @Override - public ArenaRuleSetType getType() - { - return this.type; - } - - @Override - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this); - return runnable.get(); - }); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java deleted file mode 100644 index 5e8ee03e..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractComponentRule.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; - -/** - * Abstract base class for rule sets - * - * @author mepeisen - */ -public abstract class AbstractComponentRule implements ComponentRuleSetInterface -{ - - /** - * the underlying arena. - */ - protected final ArenaInterface arena; - - /** - * rule set type. - */ - protected final ComponentRuleSetType type; - - /** - * The underlying component. - */ - protected final ArenaComponentHandler component; - - /** - * @param type - * @param component - * @throws McException - * thrown if config is invalid - */ - public AbstractComponentRule(ComponentRuleSetType type, ArenaComponentHandler component) throws McException - { - this.type = type; - this.arena = component.getArena(); - this.component = component; - } - - @Override - public ComponentRuleSetType getType() - { - return this.type; - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); - McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); - McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); - McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); - McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this); - return runnable.get(); - }); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java deleted file mode 100644 index 6f785eb9..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractSignRule.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; - -/** - * Abstract base class for rule sets - * - * @author mepeisen - */ -public abstract class AbstractSignRule implements SignRuleSetInterface -{ - - /** - * the underlying arena. - */ - protected final ArenaInterface arena; - - /** - * rule set type. - */ - protected final SignRuleSetType type; - - /** - * the underlying sign. - */ - protected final ArenaSignHandler sign; - - /** - * @param type - * @param sign - * @throws McException - * thrown if config is invalid - */ - public AbstractSignRule(SignRuleSetType type, ArenaSignHandler sign) throws McException - { - this.type = type; - this.arena = sign.getArena(); - this.sign = sign; - } - - @Override - public SignRuleSetType getType() - { - return this.type; - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); - McLibInterface.instance().setContext(SignRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); - McLibInterface.instance().setContext(SignRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); - McLibInterface.instance().setContext(SignRuleSetInterface.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); - McLibInterface.instance().setContext(SignRuleSetInterface.class, this); - return runnable.get(); - }); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java deleted file mode 100644 index e37b98e6..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/AbstractZoneRule.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; - -/** - * Abstract base class for rule sets - * - * @author mepeisen - */ -public abstract class AbstractZoneRule implements ZoneRuleSetInterface -{ - - /** - * the underlying arena. - */ - protected final ArenaInterface arena; - - /** - * rule set type. - */ - protected final ZoneRuleSetType type; - - /** - * The underlying zone. - */ - protected final ArenaZoneHandler zone; - - /** - * @param type - * @param zone - * @throws McException - * thrown if config is invalid - */ - public AbstractZoneRule(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - this.type = type; - this.arena = zone.getArena(); - this.zone = zone; - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); - McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - protected void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); - McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); - McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - protected <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); - McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this); - return runnable.get(); - }); - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java deleted file mode 100644 index abc9ea9f..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetInterface.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Interface for arena rule sets. - * - * @author mepeisen - */ -public interface ArenaRuleSetInterface extends RuleSetInterface<ArenaRuleSetType> -{ - - /** - * Returns the underlying arena. - * @return arena - */ - ArenaInterface getArena(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java deleted file mode 100644 index 4dd782b1..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ArenaRuleSetType.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * A rule set for arenas identified by enumeration values. - * - * @author mepeisen - */ -public interface ArenaRuleSetType extends RuleSetType -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java deleted file mode 100644 index 681a3c14..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicArenaRuleSets.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Basic arena rule sets - * - * @author mepeisen - */ -public enum BasicArenaRuleSets implements ArenaRuleSetType -{ - - /** - * A basic match rule containing: - * - min player handling - * - max player handling - * @see BasicMatchRuleInterface - */ - @RuleSetConfigurable(config = BasicMatchConfig.class) - BasicMatch, - - /** - * Spawn modes - * @see BasicSpawnsRuleInterface - */ - @RuleSetConfigurable(config = BasicSpawnsConfig.class) - BasicSpawns, - - /** - * Maximum timer for matches - * @see BasicMatchTimerRuleInterface - */ - @RuleSetConfigurable(config = BasicMatchTimerConfig.class) - BasicMatchTimer, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java deleted file mode 100644 index 41e5ea30..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicComponentRuleSets.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Basic component rule sets - * - * @author mepeisen - */ -public enum BasicComponentRuleSets implements ComponentRuleSetType -{ - - // no default rules yet - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java deleted file mode 100644 index c7aee7aa..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicLosingRuleSets.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Rule sets for losing - * - * @author mepeisen - */ -public enum BasicLosingRuleSets implements ArenaRuleSetType -{ - - /** - * To die means to lose - */ - LoseOnDeath - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java deleted file mode 100644 index 7140e959..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchConfig.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationInt; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; - -/** - * Basic match configurations - * - * @author mepeisen - * - * @see BasicArenaRuleSets#BasicMatch - */ -@ConfigurationValues(path = "core") -public enum BasicMatchConfig implements ConfigurationValueInterface -{ - - /** - * The minimum players to start a match - */ - @ConfigurationInt(defaultValue = 2) - @ConfigComment({"The minimum players to start a match"}) - MinPlayers, - - /** - * The maximum players inside an arena - */ - @ConfigurationInt(defaultValue = 10) - @ConfigComment({"The maximum players allowed per match"}) - MaxPlayers, - - /** - * The seconds for lobby count down before match starts - */ - @ConfigurationInt(defaultValue = 30) - @ConfigComment({"The seconds for lobby count down before match starts"}) - LobbyCountdown - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java deleted file mode 100644 index 4635d682..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchRuleInterface.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; - -/** - * @author mepeisen - * - */ -public interface BasicMatchRuleInterface extends ArenaRuleSetInterface -{ - - /** - * Returns the minimum players when the match countdown starts - * @return the minPlayers - */ - int getMinPlayers(); - - /** - * Returns the maximum players allowed in a match - * @return the maxPlayers - */ - int getMaxPlayers(); - - /** - * Returns the lobby countdown in seconds - * @return the lobbyCountdown - */ - int getLobbyCountdown(); - - /** - * Sets the min and max players - * @param minPlayers - * @param maxPlayers - * @throws McException thrown if the config is invalid or if arena is not in maintenance mode - */ - void setPlayers(int minPlayers, int maxPlayers) throws McException; - - /** - * Sets the lobby countdown - * @param seconds - * @throws McException thrown if the config is invalid or if arena is not in maintenance mode - */ - void setLobbyCountdown(int seconds) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java deleted file mode 100644 index 8aea1130..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationInt; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; - -/** - * Basic match timer configurations - * - * @author mepeisen - * - * @see BasicArenaRuleSets#BasicMatchTimer - */ -@ConfigurationValues(path = "core") -public enum BasicMatchTimerConfig implements ConfigurationValueInterface -{ - /** - * The maximum match time in seconds - */ - @ConfigurationInt(defaultValue = 120) - @ConfigComment({"The maximum match time in seconds"}) - MaxSeconds - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java deleted file mode 100644 index 6b2039d2..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicMatchTimerRuleInterface.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; - -/** - * @author mepeisen - * - */ -public interface BasicMatchTimerRuleInterface extends ArenaRuleSetInterface -{ - - /** - * Returns the max seconds before the game will be ended - * @return the max seconds; 0 or negative value means: time is inactive - */ - int getMaxSeconds(); - - /** - * Sets the max seconds value the game will end - * @param seconds - * @throws McException thrown if the config is invalid or if arena is not in maintenance mode - */ - void setMaxSeconds(int seconds) throws McException; - - // following methods are callable DURING running matches to influence the timer, for example from other threads - - /** - * Pauses the current match; causing the timer to halt - */ - void pause(); - - /** - * Resumes the current match; causing the timer to restart after {@link #pause()} was called - */ - void resume(); - - /** - * Resets the timer; starting the timer from zero - */ - void resetAndResume(); - - /** - * Resets the timer; pausing the timer at zero - */ - void resetAndPause(); - - /** - * Returns the current match time in millis - * @return match time; respects any call to the methods on this interface - */ - long getDurationMillis(); - - /** - * Returns the maximum time in millis - * @return maximum time; respects any call to the methods on this interface - */ - long getMaxMillis(); - - /** - * Adds milliseconds to maximum time - * @param millis - */ - void addMaxMillis(long millis); - - /** - * Substracts milliseconds from maximum time; if duration gets below max millis the game ends - * @param millis - */ - void substractMaxMillis(long millis); - - /** - * Sets the maximum time milliseconds - * @param millis new millis; zero or below zero to stop timer; if set to positive value and previous value was set to zero or below zero the timer starts - */ - void setMaxMillis(long millis); - - /** - * Adds milliseconds to played time - * @param millis - */ - void addDurationMillis(long millis); - - /** - * Substracts milliseconds from played time; if duration gets below max millis the game ends - * @param millis - */ - void substractDurationMillis(long millis); - - /** - * Sets the played time milliseconds - * @param millis new millis - */ - void setDurationMillis(long millis); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java deleted file mode 100644 index 7b697b5c..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicPvpModeConfig.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationEnum; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; -import de.minigameslib.mclib.shared.api.com.EnumerationValue; - -/** - * Basic pvp configurations - * - * @author mepeisen - * - * @see BasicZoneRuleSets#PvPMode - */ -@ConfigurationValues(path = "core") -public enum BasicPvpModeConfig implements ConfigurationValueInterface -{ - - /** - * The pvp option - */ - @ConfigurationEnum(clazz = PvpModes.class) - @ConfigComment({"The pvp option"}) - PvpOption; - - /** - * Enumeration for type of pvp modes - */ - public enum PvpModes implements EnumerationValue - { - /** - * No Pvp at all - */ - NoPvp, - - /** - * Pvp only during match but no damage - */ - PvpDuringMatch, - - /** - * Normal pvp with damage - */ - Normal, - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java deleted file mode 100644 index 5eec9597..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSignRuleSets.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Basic component rule sets - * - * @author mepeisen - */ -public enum BasicSignRuleSets implements SignRuleSetType -{ - - // no default rules yet - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java deleted file mode 100644 index fe8e7ea1..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsConfig.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationEnum; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; -import de.minigameslib.mclib.shared.api.com.EnumerationValue; - -/** - * Basic spawns configurations - * - * @author mepeisen - * - * @see BasicArenaRuleSets#BasicSpawns - */ -@ConfigurationValues(path = "core") -public enum BasicSpawnsConfig implements ConfigurationValueInterface -{ - - /** - * The spawn option - */ - @ConfigurationEnum(clazz = SpawnType.class) - @ConfigComment({"The spawn option"}) - SpawnOption; - - /** - * Enumeration for type of spawns - */ - public enum SpawnType implements EnumerationValue - { - /** - * fully fixed spawns, first players gets first spawn etc. - */ - Fixed, - - /** - * Spawns are chosen randomly at match start but players will never loose their spawn. - */ - RandomAtStart, - - /** - * Random spawn at match start and each time a player dies he spawns at a random location. - */ - FullyRandom, - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java deleted file mode 100644 index 84a26993..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicSpawnsRuleInterface.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.rules.BasicSpawnsConfig.SpawnType; - -/** - * @author mepeisen - * - */ -public interface BasicSpawnsRuleInterface extends ArenaRuleSetInterface -{ - - /** - * Returns the spawn rule - * @return the spawn rule - */ - SpawnType getSpawnType(); - - /** - * Sets the spawn type - * @param type - * @throws McException thrown if the config is invalid or if arena is not in maintenance mode - */ - void setSpawnType(SpawnType type) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java deleted file mode 100644 index 4da90b9e..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicWinningRuleSets.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Rule sets for winning - * - * @author mepeisen - */ -public enum BasicWinningRuleSets implements ArenaRuleSetType -{ - - /** - * The last man standing is winning - */ - LastManStanding - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java deleted file mode 100644 index 90b6d180..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/BasicZoneRuleSets.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Basic zone rule sets - * - * @author mepeisen - */ -public enum BasicZoneRuleSets implements ZoneRuleSetType -{ - - /** - * No free spawn of mobs; only forced spawns in maintenance mode or from minigames code - */ - NoWorldMobs, - - /** - * No free spawn of pets; only forced spawns in maintenance mode or from minigames code - */ - NoWorldPets, - - /** - * mobs are not allowed to target players inside the zone - */ - NoMobTargets, - - /** - * Players are not allowed to enter the zone from outside except they join the arena - */ - PlayerNoEntry, - - /** - * Leaving the zone causes to automatically lose the game - */ - LoseOnLeave, - - /** - * Leaving the zone causes to automatically die; can be used for games where players have multiple lives. - */ - DieOnLeave, - - /** - * Pvp-Rules - * @see PvPModeRuleInterface - */ - @RuleSetConfigurable(config = BasicPvpModeConfig.class) - PvPMode, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java deleted file mode 100644 index 436bb982..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetInterface.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Interface for component rule sets. - * - * @author mepeisen - */ -public interface ComponentRuleSetInterface extends RuleSetInterface<ComponentRuleSetType> -{ - - // TODO api for ComponentRuleSetInterface - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java deleted file mode 100644 index ac995a99..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ComponentRuleSetType.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * A rule set for components identified by enumeration values. - * - * @author mepeisen - */ -public interface ComponentRuleSetType extends RuleSetType -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java deleted file mode 100644 index 7d538a27..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/PvPModeRuleInterface.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig.PvpModes; - -/** - * @author mepeisen - * - */ -public interface PvPModeRuleInterface -{ - - /** - * Returns the pvp mode. - * @return pvp mode. - */ - PvpModes getPvpMode(); - - /** - * Sets the pvp mode - * @param mode - * @throws McException - */ - void setPvpMode(PvpModes mode) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java deleted file mode 100644 index 4b33bd13..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetConfigurable.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Configuration rule set annotation for enum values reresenting a rule set. - * - * @author mepeisen - */ -@Retention(RUNTIME) -@Target(FIELD) -public @interface RuleSetConfigurable -{ - - /** - * Returns the configuration values enum used by this rule set. - * @return configuration values class - */ - Class<? extends Enum<?>> config(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java deleted file mode 100644 index 2f0774c1..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetContainerInterface.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import java.util.Collection; - -import de.minigameslib.mclib.api.McException; - -/** - * Basic interface helper for classes owning rule sets. - * - * @author mepeisen - * @param <T> type of rule sets - * @param <Q> rule set interface - */ -public interface RuleSetContainerInterface<T extends RuleSetType, Q extends RuleSetInterface<T>> -{ - - /** - * Returns rule set from type - * @param type - * @return rule set or {@code null} if rule set is not applied - */ - Q getRuleSet(T type); - - /** - * Returns the rule sets applied to this element. - * The resulting collection contains fixed rule sets (not removable becuase the minigame code relies on it) or - * optional rule sets. - * @return applied rule sets - */ - Collection<T> getAppliedRuleSetTypes(); - - /** - * Returns the rule sets available to this element. - * @return available rule sets - */ - Collection<T> getAvailableRuleSetTypes(); - - /** - * Checks if given rule set is fixed and thus cannot be removed - * @param ruleset - * @return true if given ruleset is fixed. - */ - boolean isFixed(T ruleset); - - /** - * Checks if given rule set is optional and thus can be removed - * @param ruleset - * @return true if given ruleset is fixed. - */ - boolean isOptional(T ruleset); - - /** - * Checks if given rule set is applied - * @param ruleset - * @return true if given ruleset is fixed. - */ - boolean isApplied(T ruleset); - - /** - * Checks if given rule set is available - * @param ruleset - * @return true if given ruleset is not yet applied and if it is allowed to apply it to this element. - */ - boolean isAvailable(T ruleset); - - /** - * Reconfigure applied rule sets. - * @param rulesets - * @throws McException - */ - void reconfigureRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; - - /** - * Reconfigure applied rule set. - * @param ruleset - * @throws McException - */ - void reconfigureRuleSet(T ruleset) throws McException; - - /** - * Adds rule sets to this element. The rule set can be removed later on. - * @param rulesets new rule sets - * @throws McException thrown if one of the rule sets already is applied, - * if the rule sets are illegal (not in available list), - * if the arena is not in maintainence mode - * or if the configuration cannot be saved. - */ - void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; - - /** - * Adds rule sets to this element. The rule set can be removed later on. - * @param ruleset new rule sets - * @throws McException thrown if one of the rule sets already is applied, - * if the rule sets are illegal (not in available list), - * if the arena is not in maintainence mode - * or if the configuration cannot be saved. - */ - void applyRuleSet(T ruleset) throws McException; - - /** - * Removes rule sets from this element. - * @param rulesets existing rule sets - * @throws McException thrown if one of the rule sets is not applied, - * if the rule sets must not be removed (fixed rule set), - * if the arena is not in maintainence mode - * or if the configuration cannot be saved. - */ - void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException; - - /** - * Removes rule sets from this element. - * @param ruleset existing rule sets - * @throws McException thrown if one of the rule sets is not applied, - * if the rule sets must not be removed (fixed rule set), - * if the arena is not in maintainence mode - * or if the configuration cannot be saved. - */ - void removeRuleSet(T ruleset) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java deleted file mode 100644 index 9d771b96..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetInterface.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.event.McListener; - -/** - * A common base interface for rule sets - * - * @author mepeisen - * @param <T> the rule set class. - */ -public interface RuleSetInterface<T extends RuleSetType> extends McListener -{ - - /** - * Returns the rule set. - * @return associated ruleset - */ - T getType(); - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java deleted file mode 100644 index fe873d9d..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/RuleSetType.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; - -/** - * Base interface for rule sets - * - * @author mepeisen - */ -public interface RuleSetType extends McUniqueEnumInterface -{ - - /** - * Returns the configuration class used for rule set configuration. - * @return confuiguration class or {@code null} if this types has no configuration. - */ - @SuppressWarnings("unchecked") - default <T extends Enum<?> & ConfigurationValueInterface> Class<T> getConfigClass() - { - RuleSetConfigurable result; - try - { - result = this.getClass().getDeclaredField(this.name()).getAnnotation(RuleSetConfigurable.class); - if (result != null) - { - return (Class<T>) result.config(); - } - } - catch (@SuppressWarnings("unused") NoSuchFieldException | SecurityException e) - { - // silently ignore - } - return null; - } - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java deleted file mode 100644 index 3acdfad2..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetInterface.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Interface for sign rule sets. - * - * @author mepeisen - */ -public interface SignRuleSetInterface extends RuleSetInterface<SignRuleSetType> -{ - - // TODO api for SignRuleSetInterface - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java deleted file mode 100644 index b005764d..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/SignRuleSetType.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * A rule set for signs identified by enumeration values. - * - * @author mepeisen - */ -public interface SignRuleSetType extends RuleSetType -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java deleted file mode 100644 index e19d1629..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetInterface.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * Interface for zone rule sets. - * - * @author mepeisen - */ -public interface ZoneRuleSetInterface extends RuleSetInterface<ZoneRuleSetType> -{ - - // TODO api for ZoneRuleSetInterface - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java deleted file mode 100644 index 2a13ba32..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/rules/ZoneRuleSetType.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.rules; - -/** - * A rule set for zones identified by enumeration values. - * - * @author mepeisen - */ -public interface ZoneRuleSetType extends RuleSetType -{ - - // marker only - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java deleted file mode 100644 index b30b2dad..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/ArenaTeamInterface.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.team; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Represents a team configured for an arena. - * - * @author mepeisen - */ -public interface ArenaTeamInterface -{ - - /** - * Returns the underlying team id - * @return team id - */ - TeamIdType getId(); - - /** - * Returns the arena of this team - * @return arena team - */ - ArenaInterface getArena(); - - /** - * Returns the display name of the team - * @return display name of the team - */ - LocalizedConfigString getName(); - - /** - * Sets the team name - * @param name - * @throws McException thrown if arena is not in maintenance state - */ - void setName(LocalizedConfigString name) throws McException; - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java deleted file mode 100644 index f6ef926f..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/CommonTeams.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.team; - -import org.bukkit.Color; - -/** - * Common team enumeration - * - * @author mepeisen - */ -public enum CommonTeams implements TeamIdType -{ - - /** - * this is an unknown team. This is used for games the players do not belong to any team. - */ - Unknown, - - /** - * Special team for spectators. - */ - Spectators, - - /** - * A team with players losing the current match. - */ - Losers, - - /** - * A team with playrs winning the current match. - */ - Winners, - - // common colored teams - - /** - * White - * @see Color#WHITE - */ - White, - - /** - * White - * @see Color#SILVER - */ - Silver, - - /** - * White - * @see Color#GRAY - */ - Gray, - - /** - * White - * @see Color#BLACK - */ - Black, - - /** - * White - * @see Color#RED - */ - Red, - - /** - * White - * @see Color#MAROON - */ - Maroon, - - /** - * White - * @see Color#YELLOW - */ - Yellow, - - /** - * White - * @see Color#OLIVE - */ - Olive, - - /** - * White - * @see Color#LIME - */ - Lime, - - /** - * White - * @see Color#GREEN - */ - Green, - - /** - * White - * @see Color#AQUA - */ - Aqua, - - /** - * White - * @see Color#TEAL - */ - Teal, - - /** - * White - * @see Color#BLUE - */ - Blue, - - /** - * White - * @see Color#NAVY - */ - Navy, - - /** - * White - * @see Color#FUCHSIA - */ - Fuchsia, - - /** - * White - * @see Color#PURPLE - */ - Purple, - - /** - * White - * @see Color#ORANGE - */ - Orange, - -} diff --git a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java b/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java deleted file mode 100644 index 1cfd4700..00000000 --- a/v2/api/src/main/java/de/minigameslib/mgapi/api/team/TeamIdType.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.api.team; - -import de.minigameslib.mclib.api.enums.McUniqueEnumInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * Use this interface on ernumerations to declare team types. - * - * @author mepeisen - */ -public interface TeamIdType extends McUniqueEnumInterface -{ - - /** - * Checks if this team is a special team. - * A "special" team is a team not being a real party on team arenas. "special" teams cannnot be confiugured as teams on arenas. - * Instead they are used for special features on arenas, for example the "Winners" and "Spectators" have their own team. - * @return {@code true} for special teams - */ - default boolean isSpecial() - { - return MinigamesLibInterface.instance().isSpecialTeam(this); - } - -} diff --git a/v2/api/src/site/markdown/dev_advanced_achievement.md b/v2/api/src/site/markdown/dev_advanced_achievement.md deleted file mode 100644 index b706acbe..00000000 --- a/v2/api/src/site/markdown/dev_advanced_achievement.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Achievements - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_arcade.md b/v2/api/src/site/markdown/dev_advanced_arcade.md deleted file mode 100644 index 98d4667e..00000000 --- a/v2/api/src/site/markdown/dev_advanced_arcade.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Arcade and arena groups - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_bungee_basics.md b/v2/api/src/site/markdown/dev_advanced_bungee_basics.md deleted file mode 100644 index 3e4df4e8..00000000 --- a/v2/api/src/site/markdown/dev_advanced_bungee_basics.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Bungee basics - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_custom_components.md b/v2/api/src/site/markdown/dev_advanced_custom_components.md deleted file mode 100644 index 6048e1d9..00000000 --- a/v2/api/src/site/markdown/dev_advanced_custom_components.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Custom components - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_custom_signs.md b/v2/api/src/site/markdown/dev_advanced_custom_signs.md deleted file mode 100644 index 2db50487..00000000 --- a/v2/api/src/site/markdown/dev_advanced_custom_signs.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Custom signs - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_extensions.md b/v2/api/src/site/markdown/dev_advanced_extensions.md deleted file mode 100644 index a73d8ef6..00000000 --- a/v2/api/src/site/markdown/dev_advanced_extensions.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Writing libraries/ extensions - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_guns_animations.md b/v2/api/src/site/markdown/dev_advanced_guns_animations.md deleted file mode 100644 index 13903a1e..00000000 --- a/v2/api/src/site/markdown/dev_advanced_guns_animations.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Guns and animations - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_holograms.md b/v2/api/src/site/markdown/dev_advanced_holograms.md deleted file mode 100644 index 26798d21..00000000 --- a/v2/api/src/site/markdown/dev_advanced_holograms.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Holograms - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_kits.md b/v2/api/src/site/markdown/dev_advanced_kits.md deleted file mode 100644 index 8979c9a7..00000000 --- a/v2/api/src/site/markdown/dev_advanced_kits.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Kits - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_leader_boards.md b/v2/api/src/site/markdown/dev_advanced_leader_boards.md deleted file mode 100644 index e2146f9f..00000000 --- a/v2/api/src/site/markdown/dev_advanced_leader_boards.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Leader boards - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_mob_control.md b/v2/api/src/site/markdown/dev_advanced_mob_control.md deleted file mode 100644 index d34f4661..00000000 --- a/v2/api/src/site/markdown/dev_advanced_mob_control.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Mob control - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_power_up.md b/v2/api/src/site/markdown/dev_advanced_power_up.md deleted file mode 100644 index 78444bac..00000000 --- a/v2/api/src/site/markdown/dev_advanced_power_up.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Power up - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_score_boards.md b/v2/api/src/site/markdown/dev_advanced_score_boards.md deleted file mode 100644 index 4e5bad61..00000000 --- a/v2/api/src/site/markdown/dev_advanced_score_boards.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Score boards - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_shop.md b/v2/api/src/site/markdown/dev_advanced_shop.md deleted file mode 100644 index 65e6ccd7..00000000 --- a/v2/api/src/site/markdown/dev_advanced_shop.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Advanced shop - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_smart_gui.md b/v2/api/src/site/markdown/dev_advanced_smart_gui.md deleted file mode 100644 index 2f914bea..00000000 --- a/v2/api/src/site/markdown/dev_advanced_smart_gui.md +++ /dev/null @@ -1,50 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Smart GUI - -Minigames lib allowes you to create an easy inventory GUI and open it. - -To use a GUI first create an enumeration that implements `ClickGuiId`. - -Within your provider you will have to return that enumeration: - - Iterable<Class<? extends ClickGuiId>> getGuiIds() - { - final List<Class<? extends ClickGuiId>> result = new ArrayList<>(); - result.add(MyGuiIds.class); - return result; - } - -### Implementing ClickGuiInterface - -At second step create a class that implements the ClickGuiInterface. It is a simple wrapper to -return the GuiID, the line count you need and the first initial page to be displayed for -users. - -### Implementing ClickGuiPageInterface - -Pages are made of a localized name and an array of clickable gui items. That's it. -The minigames lib will simply display the items and invoke the action handler -on the clickable items. - -### Opening the GUI - -Opening the GUI is very easy. - - ArenaPlayerInterface.openGui(yourGuiInterface); - -### Closing the GUI. - -Fetch the gui session and invoke close. - - ArenaPlayerInterface.getGuiSession().close(); - -### Changing GUI items. - -Do not close or re-open the GUI. Instead you can use the method setNewPage in the GuiSession. - -You can even invoke the setNewPage with the same page object. It will re-load the items. - -### Advanced topics - -TODO Query text etc. diff --git a/v2/api/src/site/markdown/dev_advanced_smart_reset.md b/v2/api/src/site/markdown/dev_advanced_smart_reset.md deleted file mode 100644 index ba0c801c..00000000 --- a/v2/api/src/site/markdown/dev_advanced_smart_reset.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Smart reset - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_stats.md b/v2/api/src/site/markdown/dev_advanced_stats.md deleted file mode 100644 index 46723888..00000000 --- a/v2/api/src/site/markdown/dev_advanced_stats.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Statistics - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_tasks.md b/v2/api/src/site/markdown/dev_advanced_tasks.md deleted file mode 100644 index c706a341..00000000 --- a/v2/api/src/site/markdown/dev_advanced_tasks.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Tasks - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_teams.md b/v2/api/src/site/markdown/dev_advanced_teams.md deleted file mode 100644 index 029fe6d5..00000000 --- a/v2/api/src/site/markdown/dev_advanced_teams.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Team support - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_trading.md b/v2/api/src/site/markdown/dev_advanced_trading.md deleted file mode 100644 index 27290aef..00000000 --- a/v2/api/src/site/markdown/dev_advanced_trading.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Trading InGame - -TODO diff --git a/v2/api/src/site/markdown/dev_advanced_variable_substitution.md b/v2/api/src/site/markdown/dev_advanced_variable_substitution.md deleted file mode 100644 index 9ae86a57..00000000 --- a/v2/api/src/site/markdown/dev_advanced_variable_substitution.md +++ /dev/null @@ -1,58 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Variable Substitution - -The variable substitution is a way to replace content of a string at runtime. - -Per default the configuration variable paths and the permission paths are using variable substitution. - -For manually get a string with variable substitution simply call - - String resultString = MglibInterface.INSTANCE.get().resolveContextVar(sourceString); - -## Default string substitution - -### $PERM:MGLIB$ - -Resolves to value of CommonConfig.PermissionsPrefix - -### PERM:MGLIB:KITS$ - -Resolves to value of CommonConfig.PermissionKitsPrefix - -### $PERM:MGLIB:GUNS$ - -Resolves to value of CommonConfig.PermissionGunsPrefix - -### $PERM:MGLIB:SHOPS$ - -Resolves to value of CommonConfig.PermissionShopsPrefix - -### $PERM:MINIGAME$ - -Resolves to value of CommonConfig.PermissionGamesPrefix appended with current context minigame - -### $PERM:MINIGAME:name$ - -Resolves to value of CommonConfig.PermissionGamesPrefix appended with "name" text - -### $OPT:path$ - -Resolve to string option value of config.yml for the current context minigame - -### $OPT:name:path$ - -Resolve to string option value of config.yml for the minigame with given name - -### $CTX:type:name$ - -Resolves to a context variable of given type and by resolving getter with given name. - -If name contains dots it invokes deep getters. Some example - - $CTX:com.github.mce.minigames.api.player.ArenaPlayerInterface:bukkitPlayer.playerListName$ - -will resolve in the following call: - - getContext(ArenaPlayerInterface.class).getBukkitPlayer().getPlayerListName() - diff --git a/v2/api/src/site/markdown/dev_advanced_waiting_queues.md b/v2/api/src/site/markdown/dev_advanced_waiting_queues.md deleted file mode 100644 index e9376674..00000000 --- a/v2/api/src/site/markdown/dev_advanced_waiting_queues.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Waiting queues - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_arena_types.md b/v2/api/src/site/markdown/dev_minigame_arena_types.md deleted file mode 100644 index 07b07707..00000000 --- a/v2/api/src/site/markdown/dev_minigame_arena_types.md +++ /dev/null @@ -1,56 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Arena types - -Every arena type in minigames lib is declared within enumerations. - -## Declaring a configuration option - -To declare an arena type simply create an enumeration. - - /** - * My arena types. - * - * @author mepeisen - */ - @ArenaTypes - public enum MyArenaType implements ArenaTypeInterface - { - - /** - * Our default arena type. - */ - @ArenaType - Default, - - /** - * A team play mode. - */ - @ArenaType - Teams - - } - -While initializing your minigames plugin you are able to create the arena types: - - final MinigamePluginInterface minigame = MglibInterface.INSTANCE.get().register(new MyMinigame(this)); - - // register arena types - final ArenaTypeBuilderInterface defaultType = minigame.createArenaType("Default", MyArenaType.Default, true); - // TODO init default type - - final ArenaTypeBuilderInterface teamsType = minigame.createArenaType("Teams", MyArenaType.Teams, false); - // TODO init teams type - - minigame.init(); - -Hint: The strings "Default" and "Teams" must not be changed. They are written to arenas.yml. Changing it in a later plugin version will -cause existing arenas to be corrupt. They cannot be loaded any more. The strings are presented to administrators too while arena creation. - -## Configure the arena type - -### Inherit an existing arena type - -To inherit and override an existing arena type you need to inherit the rules and match phases. - - diff --git a/v2/api/src/site/markdown/dev_minigame_config.md b/v2/api/src/site/markdown/dev_minigame_config.md deleted file mode 100644 index 0680ada8..00000000 --- a/v2/api/src/site/markdown/dev_minigame_config.md +++ /dev/null @@ -1,152 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Configuration options - -Every configuration option in minigames lib is declared within enumerations. - -## Declaring a configuration option - -To declare an option simply create an enumeration. - - /** - * My plugin configuration options. - * - * @author mepeisen - */ - @ConfigurationValues(path = "myplugin.config", fixed = true) - public enum MyConfig implements ConfigurationValueInterface - { - - /** - * True if special animations are activated. - */ - @ConfigurationBool(defaultValue = true) - SpecialAnimationsEnabled, - - } - -Your plugin provider now simply needs to return this class that minigames lib will do the rest. - - @Override - public Iterable<Class<? extends Enum<?>>> getConfigurations() - { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); - result.add(MyConfig.class); - return result; - } - -Hint: The string "myplugin.config" in the @ConfigurationValues annotation is the path name in config.yml. -If you are using multiple enumerations you should always ensure that they do not share the same path. - -The path "core" is always preserved for minigames lib itself. - -The path "config" comes from configuration sets (explained later on). You should not use this path because -on newer versions of the minigames lib some configuration option may be added and you will get into trouble. - -## Configuration option name - -The configuration option name is built from @ConfigurationValues path at enum class level. -The name of the enum constant is appended. Thus the above example will result in path -"myplugin.config.SpecialAnimationEnabled". - -You can override the configuration options name in annotation: - - @ConfigurationBool(name = "special_animations.enabled", defaultValue = true) - -This will result in path "myplugin.config.special_animations.enabled". - -## Changing the file name - -Per default all configuration options come from config.yml. - -You can override this behavior by declaring another configuration file in @ConfigurationValues annotation at enum class level: - - @ConfigurationValues(path = "myplugin.config", file="otherconfig.yml") - -Hint: That is the correct way other files are used in minigames lib. For example the shop configuration (shop.yml) actually -is a configuration enumeration pointing to this file. - -## Using the configuration option - -Using the option is fairly simple: - - MyConfig.SpecialAnimationsEnabled.getBool() - -Setting a new value is similar: - - MyConfig.SpecialAnimationsEnabled.setBool(true); - MyConfig.SpecialAnimationsEnabled.saveConfig(); - -Although invoked on a single configuration option the saveConfig will always save the whole configuration file. -So it is ok, to invoke setters on multiple configuration options and call save only once. This will persist all -as long as they are not spread over multiple configuration files. - -## Option types - -We support all java primitives and lists of java primitves. - -We support following objects: - -* Vector -* ArenaPlayerInterface (minigames player representation) -* Color -* ItemStack - -As a special variant we support "objects". Those are classes implementing the Configurable interface of the minigames api. - -To declare an configuration option of a specific type simply use the matching @Configurationxxx annotation, f.e. @ConfigurationPlayer. - -## Using sections/ sub configuration values - -TODO - -## Special option type: Config sets - -The configuration sets are predefined configuration options used within typical minigames. - -TODO - -## Administrator hints in config.yml - -The minigames lib can add comments to your config.yml. - -This helps administrators to manipulate your configuration options. - -TODO - -## fixed config vs. non-fixed config - -In @ConfigurationValues annotation there is a boolean, called `fixed`. We did not explain it but in our example above we simply set it to true. -So all of our configuration variables became "FIXED". But what does it mean? - -A fixed configuration option will always be connected to the minigame/ plugin that declared this option. - -While a non-fixed configuration option will be resolved against the CONTEXT. The context is able to resolve the player, minigame or arena depending -on the original call. For example during a command call the context will contain the player that typed the command in their clients chat console -and the context will contain the arena the player is located in. Querying a non-fixed arena option will always be read from the minigames arena.yml and -from the arenas section of the current arena. - -In other words: A non-fixed option value can be present in any minigame. - -### When to use fixed configuration options - -You will always use fixed configuration options when reading options from your (and only your) minigame. - -### When to use non-fixed configuration options - -You will always use non-fixed configuration options when reading options from any minigame. Typically when writing some kind of library or tool -that provides rule sets and other things so that other plugins can use them for their minigame. - -## path variable substitution - -The ArenasConfig enumeration in the API uses the following annotation: - - @ConfigurationValues(path = "arenas.$CTX:ARENA:internalName$", file = "arenas.yml") - -As you can see, the path is somehow cryptic. It contains a so called variable substitution. - -Details on variable substitution are explained in chapter [Variable substitution](dev_advanced_variable_substitution.html). - -## Revisions and migration - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_context.md b/v2/api/src/site/markdown/dev_minigame_context.md deleted file mode 100644 index 6cad9b5b..00000000 --- a/v2/api/src/site/markdown/dev_minigame_context.md +++ /dev/null @@ -1,135 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Context - -About 99% of methods in a minigame need to answer the following queries: - -* What happened? -* Who (=player/team) is involved? -* Which minigame is involved? -* Which arena is involved? -* Which component inside the arena is involved? - -Analyzing the existing minigames code of version 1 showed up that it is very difficult to hack a new feature as -this may influence many methods and code fragments. Hundreds of code lines need to be analyzed before adding a new -feature. - -In Minigames lib v2 we use a plain but good design. We provide a simple method to store and receive objects -associated with the current method invocation. - -There are five methods you will like: - - MglibInterface.INSTANCE.get().getCurrentPlayer() - MglibInterface.INSTANCE.get().getCurrentMinigame() - MglibInterface.INSTANCE.get().getCurrentArena() - MglibInterface.INSTANCE.get().getCurrentZone() - MglibInterface.INSTANCE.get().getCurrentComponent() - -These methods are meant to return the corresponding objects. No more need to wonder where you get the player -that caused an event. - -### Theory behind context and storage: Aspect oriented programming - -While creating the concepts of version 2 we had to decide what to do. What we describe here is already a -well known concept for experienced java developers: aspect oriented programming or java beans. - -At runtime you do not know where to get the information from. The framework (=minigames lib) will decide where -to get the instances from. - -Typically aspect oriented programming heavily manipulates the byte code and class structure of your application. -In aspect oriented programming you will define injection points (private variables), for example: - - @Inject - @CommandSender - ArenaPlayerInterface commandSender; - -The APO-Framework now does some magic. - -That's really nice and a clean way of programming. There are only some points why we did not use AOP for the minigames -lib. - -#### Performance - -Having a very generic minigames library already costs us some performance. Lightwight games like simple pvp shooters have -some overhead using the minigames library. - -Adding a complete AOP framework is too much. Maybe we will have performance issues in future and although AOP framweworks -like weld already are good it is better to not depend on them. - -#### Light library - -The minigames library itself should be light. No unneeded features and no code that is behaving too complex. We decided to -have some clear basic rules what is part of the context and what should not be stored within contexts. - -#### Too many magic - -We are fans of aspect oriented programming. But it is really too many magic. In minecraft servers we have a very clean -system. There are three main calls from the server into any plugin: - -* Console/chat commands -* Events -* Tasks - -We do not expect there will be ever more. Nor do we expect that there is need to support even more. - -AOP is very flexible in the way it is used. You do not care where the call is from or what the callee wants to do. -Many design aspects are goging around the question: Where do we get an object from, which context is the object living -and where is the factory to get it? - -In minecraft servers we never ask this questions. All we need to have is a clean API to get the objects we are interested -in. We always know who is generating the object and we never plan to influence the library. No plugin should really -be interested in creating their own ArenaPlayer object... - -#### Enterprise architecture - -Although AOP can be used in other situations the main goal is tu use it in java enterprise architecture. It is designed -to work best in (web) application servers with service oriented architecture and several business layers. - -We do not say this is sad. But it is simple: That is not the way minecraft servers are working. So why should we try to -build on a framework that is used in other situations? - -### Lifetime of the context - -The context lives within the current invocation point. As we said above we have three main invocation points: - -* Console/chat commands -* Events -* Tasks - -Every time the minigames library is invoked on one of the three invocation points it creates a new context. After -the invocation point is left (=the method returns) the context will be cleared. - -You can manually create a new context by invoking one of the following methods on the minigames lib: - - runInNewContext(...) - runInCopiedContext(...) - calculateInNewContext(...) - calculateInCopiedContext(...) - -### Storing your own objects - -You can store and receive your own objects within the context. Simply invoke `setContext` with any object you like. - -The objects are identified by class. Invoking the setContext twice with same class will overwrite the object. - -## Storage - -At multiple points in the API you will see methods returning `MinigameStorage` objects. - -The behave similar to the context. You can store objects by class name inside them and receive them. The objects -must implement `Configurable` interface. - -The storages are meant to hold long-lifed objects. The most simple example is the following storage: - - ArenaPlayerInterface.getSessionStorage() - -This methods introduces a storage that lives as long as the user itself is online. Once the server stops or the -player goes offline this storage is removed. NOTICE: If the user switches to another server in a bungee coord -network he goes offline and looses it's session storage too. - -Another example: - - ArenaPlayerInterface.getPersistentStorage() - -This values will be stored in files or databases. It is meant to be available even if the player is offline and -once the player is visiting the server once again you can read the values and do something. diff --git a/v2/api/src/site/markdown/dev_minigame_messages.md b/v2/api/src/site/markdown/dev_minigame_messages.md deleted file mode 100644 index 95d4feb8..00000000 --- a/v2/api/src/site/markdown/dev_minigame_messages.md +++ /dev/null @@ -1,248 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Messages and Localization - -Every message or name in minigames lib is localized. Users can choose their preferred localization. Language packs -can be used to add a language to your plugins. - -Except messages passed to the java logger all messages sent to console/ players should always be using the message API. - -## Declaring a message - -To declare a message simply create an enumeration. - - /** - * My own messages. - * - * @author mepeisen - */ - @LocalizedMessages("myplugin.ingame") - public enum IngameMessages implements LocalizedMessageInterface - { - /** - * Player has made something special. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: player name</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Player %1$s did a looping", severity = MessageSeverityType.Success) - PlayerDidLooping, - - /** - * Player does not know hoe to play. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: player name</li> - * <li>String: some cause</li> - * </ol> - */ - @LocalizedMessage(defaultMessage = "Player %1$s seems to be a noob", defaultAdminMessage = "Player %1$s seems to be a noob. Cause: %2$s", severity = MessageSeverityType.Warning) - PlayerIsNoob, - } - -Your plugin provider now simply needs to return this class that minigames lib will do the rest. - - @Override - public Iterable<Class<? extends Enum<?>>> getMessageClasses() - { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); - result.add(IngameMessages.class); - return result; - } - -Hint: The string "myplugin.ingame" in the @LocalizedMessages annotation is the path name in messages.yml. -If you are using multiple enumeration you should always ensure that they do not share the same path. - -The path "core" is always preserved for minigames lib itself. - -## Using parameters - -The messages are parsed through javas System.format. - -If a message can be individualized by parameters you can add those parameter tags. "%1$s" will display the first argument and assume it is a string. -Read the oracle javadoc of the java language for details. - -## Editing the messages.yml - -The above example will result in the following messages.yml - - myplugin: - ingame: - PlayerDidLooping: - default_locale: en - user: - en: 'Player %1$s did a looping' - PlayerIsNoob: - default_locale: en - user: - en: 'Player %1$s seems to be a noob' - admin: - en: 'Player %1$s seems to be a noob. Cause: %2$s' - -The user section holds all messages per locale display to a common user. The admin section holds the administrator message per locale. - -To add a new locale simply create a new line on level of "en" and add the message. - -## Overriding default locale - -The messages use "en" for default locale. You can override this in @LocalizedMessages annotation at enum class level. -But it is recommended that you choose "en" for your favorite locale in open-source/ public available plugins. Mixing locales -can confuse the players. - -You should always prefer to provide language packs for your plugin or let the user create the language packs. - -## User vs admin - -The minigames lib provides special behavior for messages. Usually administrators (=minecraft operators) like additional -information for analyzing problems. In our example above we do not like to display the noob cause to normal users. -But an administrator can see it. - -To solve this problem you can declare a special administrator message. - -## Using the messages in code. - -Using the message is fairly simple. - -Typically you will send the message to a given player. So you can invoke the sendMessage method on the ArenaPlayerInterface. - - otherPlayer.sendMessage(IngameMessages.PlayerIsNoob, someNoob.getName(), "Fell out of arena"); - -In this example we are not consequent. The constant String "Fell out of Arena" should be localized too. However the minigames lib -provides a solution for this too. We can convert a message to a nested argument: - - otherPlayer.sendMessage(IngameMessages.PlayerIsNoob, someNoob.getName(), IngameMessages.NoobCauseOutOfArena.toArg()); - -## Special message type: Error codes - -There is a special variant of localized messages. The error codes behave exactly the same. The only difference is that -they implement interface MinigameErrorCode instead of LocalizedMessageInterface. - -The error codes are mainly meant to be used in MinigameExceptions. Typically the represent messages or errors in command -handlers. - -## Special message type: Message lists - -A message list is a collection of multiple messages. It represents individual lines. -For example a help text in a command may be made of 4 lines in English and of 5 lines -in German. That the code does not get confused with these lines we support -this special message type. - -To declare the localized message list first use the LocalizedMessageList annotation inside your enumeration. - - /** - * Some multi-line message. - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: player name</li> - * </ol> - */ - @LocalizedMessageList({ - "Welcome to this adventure, player %1$s!", - "Can you find the Yeti?", - "Sam and Max are absent.", - "HELP!" - }) - MultiLineMessage, - -This will result in following entries in messages.yml - - myplugin: - ingame: - MultiLineMessage: - default_locale: en - user: - en: - - 'Welcome to this adventure, player %1$s!' - - 'Can you find the Yeti?' - - 'Sam and Max are absent.' - - 'HELP!' - -As you see the lines are a yaml list. If you have a language only containing three lines this can be done by changing -it to the following: - - myplugin: - ingame: - MultiLineMessage: - default_locale: en - user: - en: - - 'Welcome to this adventure, player %1$s!' - - 'Can you find the Yeti?' - - 'Sam and Max are absent.' - - 'HELP!' - de: - - 'Willkommen bei deinem Abenteuer, Spieler %1$s!' - - 'Findest du den Yeti?' - - 'Sam und Max sind verschwunden. HILFE!' - -## Text format and colors - -Minigames lib uss some default colors based on message severity. - -* error: Dark red -* information: white -* loser: red -* success: green -* warning: yellow -* winner: gold - -You can override it by using either the literals (f.e. "§7" for gray) or by using the string constants in the -LocalizedMessage and LocalizedMessageList annotations. - -Example: - - @LocalizedMessage(defaultMessage = LocalizedMessage.GRAY + "some gray text") - -### formatting conventions - -TODO - -## Special message type: Message sets - -The message sets are predefined messages used within typical minigames. - -TODO - -## Language packs - -TODO - -## Administrator hints in messages.yml - -The minigames lib can add comments to your messages.yml. - -This helps administrators to manipulate your messages and provide language packs. - -TODO - -## Referencing user defined messages - -Messages may be defined outside the messages.yml within regular configuration variables. - -We explain it on the `ArenasConfig.Description` option value. This represents an optional -description that administrators can set for users. This text is localized thus the users may -get a translation in their preferred language. - -We declare this configuration option to be a localized message by using ConfigurationObject annotation. - - @ConfigurationObject(clazz = LocalizedConfigLine.class) - Description - -Using is it fairly simple: - - final LocalizedConfigLine description = ArenasConfig.Description.getObject() - -If you want to use a single line message use the class `LocalizedConfigString`. - -Details on how to declare and use configuration values are explained in the article [Configuration options](dev_minigame_config.html). - -## Revisions and migration - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_own_rules.md b/v2/api/src/site/markdown/dev_minigame_own_rules.md deleted file mode 100644 index 1ca46359..00000000 --- a/v2/api/src/site/markdown/dev_minigame_own_rules.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Creating custom rules - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_permissions.md b/v2/api/src/site/markdown/dev_minigame_permissions.md deleted file mode 100644 index 1ed8b909..00000000 --- a/v2/api/src/site/markdown/dev_minigame_permissions.md +++ /dev/null @@ -1,77 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Permissions - -Every permission in minigames lib is declared within enumerations. - -## Declaring a permission - -To declare a permission simply create an enumeration. - - /** - * My plugin permissions. - * - * @author mepeisen - */ - @Permissions("$PERM:MINIGAME:myplugin$.common") - public enum MyPermissions implements PermissionsInterface - { - - /** - * Some permission. - */ - @Permission - Something, - - } - -Your plugin provider now simply needs to return this class that minigames lib will do the rest. - - @Override - public Iterable<Class<? extends Enum<?>>> getPermissions() - { - final List<Class<? extends Enum<?>>> result = new ArrayList<>(); - result.add(MyPermissions.class); - return result; - } - -Hint: The string "$MINIGAME:myplugin$.common" contains a variable substitution. Permissions in minigames lib -should always use this substitution because administrators can individually configure the path of minigame -permissions. - -The sub paths "core" is always preserved for minigames lib itself or for arenas configurations. It comes -from permission sets (explained later on). You should not use this path because on newer versions of the -minigames lib some configuration option may be added and you will get into trouble. - -## String substitution - -The CommonPermissions enumeration in the API uses the following annotation: - - @Permissions("$PERM:MGLIB$") - -As you can see, the path is somehow cryptic. It contains a so called variable substitution. - -Details on variable substitution are explained in chapter [Variable substitution](dev_advanced_variable_substitution.html). - -## Permission name - -The permission name is built from @Permissions annotation and the enumeration name. -You can override the enumeration name by giving the @Permission annotation a value. - -After calculating the permission name the strings will be substituted. - -## Using the permission - -Using the permission is fairly simple: - - somePlayer.checkPermission(MyPermissions.Something) - -## Special permissions type: Permission sets - -The configuration sets are predefined configuration options used within typical minigames. - -TODO - -## Revisions and migration - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_pluginmain.md b/v2/api/src/site/markdown/dev_minigame_pluginmain.md deleted file mode 100644 index 621cf0aa..00000000 --- a/v2/api/src/site/markdown/dev_minigame_pluginmain.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Plugin Main - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_pluginyml.md b/v2/api/src/site/markdown/dev_minigame_pluginyml.md deleted file mode 100644 index 3f76420f..00000000 --- a/v2/api/src/site/markdown/dev_minigame_pluginyml.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## plugin.yml - -TODO diff --git a/v2/api/src/site/markdown/dev_minigame_using_rules.md b/v2/api/src/site/markdown/dev_minigame_using_rules.md deleted file mode 100644 index e3692dc0..00000000 --- a/v2/api/src/site/markdown/dev_minigame_using_rules.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Using rules - -TODO diff --git a/v2/api/src/site/markdown/dev_setup_eclipse.md b/v2/api/src/site/markdown/dev_setup_eclipse.md deleted file mode 100644 index b3337da3..00000000 --- a/v2/api/src/site/markdown/dev_setup_eclipse.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Eclipse setup - -TODO diff --git a/v2/api/src/site/markdown/dev_setup_maven.md b/v2/api/src/site/markdown/dev_setup_maven.md deleted file mode 100644 index c4ff81f5..00000000 --- a/v2/api/src/site/markdown/dev_setup_maven.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Maven setup - -TODO diff --git a/v2/api/src/site/markdown/dev_setup_project.md b/v2/api/src/site/markdown/dev_setup_project.md deleted file mode 100644 index d63b97a9..00000000 --- a/v2/api/src/site/markdown/dev_setup_project.md +++ /dev/null @@ -1,5 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Project setup - -TODO diff --git a/v2/api/src/site/markdown/dev_theory_arenas.md b/v2/api/src/site/markdown/dev_theory_arenas.md deleted file mode 100644 index e70126e9..00000000 --- a/v2/api/src/site/markdown/dev_theory_arenas.md +++ /dev/null @@ -1,153 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## About the arena - -The Minigame-API itself handles everything by so called arenas. [Wikipedia](https://en.wikipedia.org/wiki/Arena) quotes that an arena is an enclosed area where the action goes on. - -And that is excatly what an arena is for Minigames-API. - -It is up to the administrator to build some nice building or similar things for the arena. For example he can create a colosseum. - -The library will identify the arena by name. There are some arena names that are preserved. You will find them in the following constant: - - ArenaInterface.ILLEGAL_NAMES - -Beside this preserved names you can choose any name. The name must be unique per minigame. It is possible to use the same name (f.e. "default") for different game. -However this is not recommended. The minigames lib won't be confused if the same name is used twiced across multiple minigames. - -## The display name and some additional information - -Arenas have a display name. That's a human readable name used within messages or on signs. You may not want to let users see the technical name 'pvp1'. -But you may want to display the name 'Ice-Battlefield'. The display name is not localized. - -There is some additional data, such as authors and descriptions. You may fill them or simply leave them empty. - -## The arena state - -The arena can have some core states influencing their common behavior. Except the new maintenance state those states match the behavior in version 1 of the lib. - -### Join - -The arena is free for play. Players can join and matches can be started. Notice: Due to the new waiting queues players are still able to join even if the arena has a -different state. They are placed into a waiting queue and once the arena allows new player to join the waiting list is emptied in FIFO order till the next match is full. - -### Starting - -A match will be started soon. The arena is about to "start". This takes part if enough players joined the waiting queue to let a match start. - -### InGame - -A match is being played. The players are fighting till the match ends/ someone wins. - -### Resetting - -The arena is resetting after a match. Blocks are restored etc. - -### Maintenance - -The arena is under maintenance. No players are allowed to join (except administrators). The players even cannot join the waiting queue. -Every change an administrator makes to the arena needs to be done in maintenance state. This ensures no one enters the arena as long as an -administrator works on it. - -There will be a special test mode of the arena. This test mode lets administrators start a match and invite players to the match. This -switches to the 'Starting', 'InGame', 'Resetting' state but does never lead to 'Join' state. Instead after the match ends the 'Maintenance' -state is set to let the administrator continue the work. - -## The arena type - -A minigame supports one or more arena types. - -The arena types contains rule sets used for the arena. They are declared by java code. So the basic rule set a game is using cannot be changed. -Rules are explained in another document in details. - -A minigame can declare multiple arena types. They are identified by a java enumeration internally and by unique name for administration. - -## Arena contents - -An arena contains multiple elements based on the gaming rules. - -### Main lobby - -In Minigames Lib v1 there was a location called "main lobby". It was one location per game. However we decided to allow one main lobby per arena. - -But there may always be a default main lobby for the whole minigame. So it does not break compatibility. - -The main lobby is the location a player is ported once the match ends or he leaves the arena. - -In v2 there is a new feature allowing an administrator to create lobbys on other bungee servers. - -### Waiting lobby - -The waiting lobby is a location the players are teleported once they joined an arena. - -Originally there was only one waiting lobby per arena. It was meant to be a small room where the player does not -run away and where he can wait for other players to join. - -In v2 the join concept is different. It allows you to declare waiting queues and arena groups. The player may join a waiting queue even if a match -is being processed. The administrator may choose to port them into "lobby #1" to represent the waiting queue. And he may choose to port players -waiting for a new match to "lobby #2" right before the game starts. - -In v2 the game can have multiple waiting lobbies for different situations based on game rules. A game developer may decide that the match -has multiple rounds. Between each round the user is taken into a new waiting lobby (that will be the third one based on our example). - -### Spawns - -The spawns are associated with players or teams. Nothing changed on this concept. - -However v1 did not have direct support for team spawns or shared/ random spawns. In v2 it is up to a game rule to choose the correct spawn for players. -The classic rule says "associate the spawn to a player during startup". - -### Teams - -In v2 we add a complete team support in the API. - -An arena type can declare teams and handle them in a clean way. - -However there is team support for the arena components too. Spawns and other arena components can be associated with teams. - -### Arena bounds - -The minigames lib needs to know in which area your minigame is located. This influences the arena resetting as well as the gaming rules. - -For example a gaming rule may refer the arena bounds by defining "If the player leaves the arena he loses the game". - -The smart reset features trys to detect which blocks are changed during a match. It remembers those blocks so that it can reset the original state -after a match ends. Every change during the match will be replayed so that the next match starts with the same arena and environment. - -### Objects - -Some minigames require special objects within the arena. For example BedWars requires a bed per team, an merchant npc and resource spawns -represented by clay, iron and gold blocks. - -Minigames lib v2 will support those objects directly in API. - -### Mobs, random spawns etc. - -Minigames may require to spawn additional mobs during the match. In Version 2 we will support a clean API so that it is not required -to depend on any miniecraft/spigot NMS class. - -We support -* merchant NPCs -* chests -* sheeps -* fallen blocks -* wither -* enderdragon - -### Arena zones - -A very new feature is the arena zone. A classical arena in version 1 of the library only has one zone: The arena bounds. - -However the most games will be happy to manage only the arena bounds as a zone. But let us think of a pvp game where we want to -have a hospital to heal your wounds. To represent the hospital you can create a "hospital zone" within the arena bounds. The -hospital will heal wounds and there is no pvp allowed. Leaving the hospital zone will allow pvp. Within hospital a timer will be -running and being too long in the hospital will kick you out of the hospital. - -A game developer may decide to create zone types and zone rules within the java code since this feature is related to the -minigame mechanic itself. - -### Spectating - -A spceial optional component is the spectating spawn and the spectating bound. After a player loses the match he can stay within -a special are of the arena. He can visit the remaining match till it ends. - diff --git a/v2/api/src/site/markdown/dev_theory_match.md b/v2/api/src/site/markdown/dev_theory_match.md deleted file mode 100644 index 3f8514ba..00000000 --- a/v2/api/src/site/markdown/dev_theory_match.md +++ /dev/null @@ -1,25 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## About the match internals - -A minigame match is a gaming session within an arena. - -There can only be one match in a single arena at the same time. The next match can only be started if the current one ends and the arena -was reseted. A player can only be present in one arena match at the same time. He cannot be in multiple matches. - -## Match phases - -A match can be made of several phases. Each phase contains own rule set. - -In classic minigames from version 1 we have the following "match phases" - -* Pre-Match: The players are ported to their spawns, no movement, match countdown... -* Match: the players are plaing... -* Post-Match: the players are back ported to the main lobby and the winning titles/ animations are played. - -In version 2 we can add more phases to a match. Let us for example think of a pvp game. We will divide the match phase: - -* Match: Normal PvP, the first one receiving 10 kills will win, a timer is running (4 minutes). -* Deatch-Math: If the timer ends (after 4 minutes) and no one wins a death-match is started. Now each kill lets you lose the game and the last man standing wins. - - diff --git a/v2/api/src/site/markdown/dev_theory_minigame.md b/v2/api/src/site/markdown/dev_theory_minigame.md deleted file mode 100644 index 1f68e5d9..00000000 --- a/v2/api/src/site/markdown/dev_theory_minigame.md +++ /dev/null @@ -1,78 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## What is a minigame? - -A 'minigame' is a unique game definition including rules and behavior definitions. - -## Obtaining your minigame name - -Each minigame has an internal technical name that identifies the game. You cannot register minigames of the same name twice. -To ensure a minigame name is not taken please contact the minigame lib authors. - -They provide a package called 'minigames-all'. It includes the library and the minigames built on the library. You can share -your minigame through this package and from this point of view ensure that no other guy takes your minigame name. - -## An example - -To clear the term 'minigame' we will investigate a common 'last man standing' arena. So let us call the minigame 'lms'. - -A minigame has an unique name (='lms') to identify it internally in the minecraft server. It is declared by a call to the method: - - com.github.mce.minigames.api.MglibInterface.register(PluginProviderInterface) - -A plugin must not create multiple minigames. - -Having a look at the PluginProviderInterface you will see that a minigame is made of several helpers. - -### The rules - -Most important to our minigame are the gaming rules. In our 'lms' example you can sum up the rules in word: - -* No PvP in lobbs -* No PvP during warmup -* Player spawn at fixed spawn locations -* PvP during game -* You lose after being killed -* Last surrender wins the game -* Game stops if someone wins -* leaving arena let you lose - -However there are more game rules under the hood, maybe related to ingame shop, to guns etc. - -### Game variant: Deathmatch - -Now let us think of a second game, the 'deathmatch' or 'dm' - -We can re-use the rules from 'lms' except some differences: - -* Team ends after 10 minutes -* After death the last damager gets a score point -* After death the player respawns but is invulnerable for some seconds -* The player with most points wins the game - -### Game variant: Team deathmatch - -The third game variant, we call it 'tdm', has the following difference compared to 'dm': - -* Players are in balanced teams (red, blue etc.) -* Not only a single player gets a score point but the team gets it too -* The team with most poins wins -* The player with most points gets a special reward - -### One minigame with three game variants - -As a new feature the minigames library v2 allows you to create multiple arenas and configurations within the -same minigame. - -The new features (arena types and configurable/ votable rules) are explained in additional chapters. - -We can have a single minigame called 'pvparena'. This minigame allows the administrator to choose from three -arena types 'last-man-standing', 'deathmatch' or 'team-deathmatch'. It is even possible to allow the players -to choose there favorite game mode by voting. - -## Summary - -* Normally you have one minigame per plugin but you are allowed to create multiple minigames within the same plugin. -* A minigame has an internal/ technical name and is registered using a plugin provider. -* Minigames and arenas are build on different game rules. -* You may use the arena type feature or the rule customization feature to create different variants of the same minigame. diff --git a/v2/api/src/site/markdown/dev_theory_rules.md b/v2/api/src/site/markdown/dev_theory_rules.md deleted file mode 100644 index 86c0a022..00000000 --- a/v2/api/src/site/markdown/dev_theory_rules.md +++ /dev/null @@ -1,76 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## The gaming rules - -A minigame is built on top of small gaming rules. Those gaming rules influence the behavior of the minigame as well as -the mechanic. - -Under the hood the gaming rules are divided into two pieces: -* predicates listening on spigot events -* action handlers to do something - -The predicates are helper functions (java 8 lamdas) that are queried once an event is detected. - -### Execution order of events - -The predicates of a rule are typically executed in following order: - -* global/core predicate -* arena related predicate (inherited from arena types) -* arena state related predicate -* match related predicate -* match phase related predicate -* player state related predicate -* player related predicate - -This is the default ordering of predicates. However if you add predicates to a rule you can set a numeric value (priority). -The lower this value is the later the predicate will be invoked. - -In boolean logic this seems to be senseless. Let us look at the following sample: - - if (predicateA && predicateB) action; - - if (predicateB && predicateA) action; - -If you think of predicates for boolean values it is senseless to order them. But predicates in minigames lib are more than -just boolean values or lambdas returning booleans. - -Minigame predicates can return the following states: - -* TRUE (-> test the next predicate of this rule in order) -* FALSE (-> abort the execution) -* FORCE (-> skip all other predicates) - -So it is important for us to have some ordering in minigame predicates. - -### Type of fetched events - -Rules can manage all relevant bukkit events and minigame events. - -### Common predicates - -TODO - -### Common actions - -TODO - -### Common rules - -TODO - -### Common rule sets - -TODO - -### Common arena types - -TODO - -## Configurable rules - -TODO - -## Votable rules - -TODO diff --git a/v2/api/src/site/markdown/development.md b/v2/api/src/site/markdown/development.md deleted file mode 100644 index 8cc8ceec..00000000 --- a/v2/api/src/site/markdown/development.md +++ /dev/null @@ -1,51 +0,0 @@ -# Minigames-Lib 2.0 - Development - -## Background - -* [What is a minigame](dev_theory_minigame.html) -* [About the arena](dev_theory_arenas.html) -* [About the match internals](dev_theory_match.html) -* [The gaming rules](dev_theory_rules.html) -TODO - -## Writing your first minigame - -* [Maven setup](dev_setup_maven.html) -* [Eclipse setup](dev_setup_eclipse.html) -* [Project setup](dev_setup_project.html) -* [plugin.yml](dev_minigame_pluginyml.html) -* [Plugin Main](dev_minigame_pluginmain.html) -* [Messages and localization](dev_minigame_messages.html) -* [Configuration options](dev_minigame_config.html) -* [Permissions](dev_minigame_permissions.html) -* [Context](dev_minigame_context.html) -* [Arena types](dev_minigame_arena_types.html) -* [Using rules](dev_minigame_using_rules.html) -* [Own rules](dev_minigame_own_rules.html) - -## Advanced topics - -* [Writing Libraries/Extensions](dev_advanced_extensions.html) -* [Variable substitution](dev_advanced_variable_substitution.html) -* [Smart clickable GUI](dev_advanced_smart_gui.html) -* [Waiting queues](dev_advanced_waiting_queues.html) -* [Custom components](dev_advanced_custom_components.html) -* [Custom signs](dev_advanced_custom_signs.html) -* [Basic bungee support](dev_advanced_bungee_basics.html) -* [Team arena](dev_advanced_teams.html) -* [Smart arena reset](dev_advanced_smart_reset.html) -* [Scoreboards](dev_advanced_score_boards.html) -* [Ingame Shop](dev_advanced_shop.html) -* [Kits](dev_advanced_kits.html) -* [Achievements](dev_advanced_achievement.html) -* [Statistics](dev_advanced_stats.html) -* [Arcade and arena groups](dev_advanced_arcade.html) -* [Holograms](dev_advanced_holograms.html) -* [Leader boards](dev_advanced_leader_boards.html) -* [Guns and animations](dev_advanced_guns_animations.html) -* [Trading](dev_advanced_trading.html) -* [Power ups](dev_advanced_power_up.html) -* [Mob control](dev_advanced_mob_control.html) -* [Tasks](dev_advanced_tasks.html) - -TODO diff --git a/v2/api/src/site/markdown/features.md b/v2/api/src/site/markdown/features.md deleted file mode 100644 index 81f5c180..00000000 --- a/v2/api/src/site/markdown/features.md +++ /dev/null @@ -1,169 +0,0 @@ -# Minigames-Lib 2.0 - Features (user/admin view) - -## Existing/ old features - -### Easy Minigame installation - -The original Minigames-Lib V1 already introduces a smart way: Plug & Play. - -The library itself and the minigames can be used without any additional configuration. All features that -require additional configuration are optional. For example a missing mysql configuration means "we do not -need mysql". - -The games are Plug & Play too. After putting the jar into your server start it, go to the game world, -build up an arena and let the games begin. - -### Arenasystem - -The arena system provides a way to declare zones (with or without bounds) for a minigame. Within this -zones a minigame match is talking part. - -In 2.0 this won't change. However it is changed under the hood. We will divide the arena from -zones and gaming rules. Old arenas from v1 can be migrated to the new semantic (backward compatibility). -But new arenas can contain more than one zone combining different gaming rules. - -Arenas are identified by internal names. The following names are preserved by the library itself: - -* core -* join -* leave -* random -* mglib* (Everything starting with mglib). - -Creating arenas with these keywords will fail in 2.0. - -### Customizable arena system - -InstanceLabs already created a highly configurable arena system. Most aspects of arenas can be changed. - -However the customization options will be increased in v2.0. A minigame developer can make gaming rules static, -customizable or optional. - -Customizable gaming rules can be changed by administrators or during player votes. - -Optional gaming rules can be removed completly by administrators or during player votes. - -### Different minigame types - -InstanceLabs already introduces the following gaming types: - -* Arcade -* Jump&Run -* Default/ Regeneration - -We will follow this principle but internally the code is refactored. In 2.0 the arcade system will be completly -isolated from the arena system. The arcade represents a way how the players join the arena and what is happening -after the game ends/ they leave. It is not meant to be a minigame type at all. - -In 2.0 we will add two new features beside the arcade: - -* Arena groups: Grouping arenas will result in additional features. For example you can group arenas of multiple - minigames to let the player join a random game of this group. An arena group can be created so that the players - can stay within this group after match completes and vote for a new game or map within a special group lobby. -* Map rotation: Map rotation was already part of v1.0. However this feature was very simple. Within 2.0 we will - add more options to customize map rotation. - -### VIP arenas - -Arenas can be marked as VIP-Arenas. A VIP-Arena requires a special permission to join. VIPs can join a waiting -lobby even if there are too many players. A non-vip is kicked. - -We do not change this behavior in version 2.0 - -### Economy, command and item rewards - -The reward system allows to configure economy, command or item rewards upon game events. - -In 1.0 one gets rewards on following events: -* win -* participating (lose) -* kills - -There are boost items you can buy inside the shop. Those ensure the rewards are multiplied by 2 oder 3. - -In version 2 we do not change this feature. We extend it a little bit to give the administrator more control -over the rewards. - -The rewards itself are using a new API in version 2.0. A minigame writer can introduce more reward types if needed. -For example the developer may decide to create rewards for reaching achievements. - -### Overall Customization/Attributes like player counts, countdowns, spawns, boundaries etc. - -The Minigames Lib already has a huge set of configuration properties. There will be no changes at this point. - -Each configuration property is migrated to the new game rules. There will be some more configuration options -on the gaming rules in version 2.0. - -### Signs and corresponding Arena states - -TODO - -### Fast map regeneration mechanism - -TODO - -### Kits/Classes and Classes Gui - -TODO - -### Arcade system - -TODO - -### MySQL/SQLite support - -TODO - -### Guns API (unfinished and only in use in Warlock Tactical right now) - -TODO - -### Bungee support including signs - -TODO - -### Party (/party) - -TODO - -### Achievements - -TODO - -### Additional shops with Gui - -TODO - -### Included effects like blood or dead bodies lying around - -TODO - -### Holograms and Scoreboards - -TODO - -## New features of the library in version 2.0: - -### Multi-language support - -TODO - -### Declarative arena and game types, use game rules instead of writing code - -TODO - -### Multiple arena zones/locations with individual rules - -TODO - -### Smart administration Gui - -TODO - -### Persistent game states - -TODO - -### Better support for Bungee-Clusters and Multi-World systems - -TODO diff --git a/v2/api/src/site/markdown/gamerules.md b/v2/api/src/site/markdown/gamerules.md deleted file mode 100644 index 3204d588..00000000 --- a/v2/api/src/site/markdown/gamerules.md +++ /dev/null @@ -1,48 +0,0 @@ -# Minigames-Lib 2.0 - Game rules - -## Existing rules from v1.0 - -TODO - -## Existing features from v1.0 - -TODO - -* Sign updates - -## Existing commands from v1.0 - -### /start - -#### isSenderPlayer: - if (!(sender instanceof Player)) - { - sender.sendMessage(Messages.getString("MinigamesAPI.ExecuteIngame", LOCALE)); //$NON-NLS-1$ - return true; - } - -#### hasPermission - if (!sender.hasPermission(PermissionStrings.MINIGAMES_START)) - { - sender.sendMessage(Messages.getString("MinigamesAPI.NoPermissionForStart", LOCALE)); //$NON-NLS-1$ - return true; - } - -#### ifNotInArena - for (final PluginInstance pli : MinigamesAPI.pinstances.values()) - { - if (pli.containsGlobalPlayer(p.getName())) - { - .... (return) - } - } - sender.sendMessage(Messages.getString("MinigamesAPI.StartNotWithinArena", LOCALE)); //$NON-NLS-1$ - -#### ifInArena - for (final PluginInstance pli : MinigamesAPI.pinstances.values()) - { - if (pli.containsGlobalPlayer(p.getName())) - { - .... (return) - } - } \ No newline at end of file diff --git a/v2/api/src/site/markdown/index.md b/v2/api/src/site/markdown/index.md deleted file mode 100644 index 755f927b..00000000 --- a/v2/api/src/site/markdown/index.md +++ /dev/null @@ -1,45 +0,0 @@ -# Minigames-Lib 2.0 - Introduction - -The old Minigames-Lib from InstanceLabs was already great. But it was hard to maintain and fix bugs. -Realizing new features and games that behave different from standard was difficult. - -InstanceLabs was already dreaming of doing automated testing. However this is very difficult in -minecraft servers. - -So I decided to completely rewrite the library using modern patterns and java 1.8 features. - -Main features of the library: - -* Arenasystem -* Customizable messages -* Different minigame types -* VIP arenas -* Economy, command and item rewards -* Overall Customization/Attributes like player counts, countdowns, spawns, boundaries etc. -* Signs and corresponding Arena states -* Fast map regeneration mechanism -* Kits/Classes and Classes Gui -* Arcade system -* MySQL/SQLite support -* Guns API (unfinished and only in use in Warlock Tactical right now) -* Bungee support including signs -* Party (/party) -* Achievements -* Additional shops with Gui -* Included effects like blood or dead bodies lying around -* Holograms and Scoreboards - -New features of the library in version 2.0: - -* Multi-language support -* Declarative arena and game types, use game rules instead of writing code -* Multiple arena zones/locations with individual rules -* Smart administration Gui -* Persistent game states -* Better support for Bungee-Clusters and Multi-World systems -* Gaming votes -* Arena groups -* Map rotation -* Highscores - - diff --git a/v2/api/src/site/markdown/migrationList.md b/v2/api/src/site/markdown/migrationList.md deleted file mode 100644 index ff0b8cb6..00000000 --- a/v2/api/src/site/markdown/migrationList.md +++ /dev/null @@ -1,1379 +0,0 @@ -# Minigames-Lib 2.0 - MigrationList - -## Arena.java - -- [ ] ArcadeInstance ai -- [ ] boolean isArcadeMain -- [ ] boolean isSuccessfullyInitialized -- [ ] ArrayList<Location> spawns -- [ ] HashMap<String, Location> pspawnloc -- [ ] HashMap<String, String> lastdamager -- [ ] HashMap<String, Integer> temp\_kill\_count -- [ ] HashMap<String, Integer> temp\_death\_count -- [ ] Location mainlobby -- [ ] Location waitinglobby -- [ ] Location specspawn -- [ ] Location signloc -- [ ] int max\_players -- [ ] int min\_players -- [ ] boolean viparena -- [ ] ArrayList<String> players -- [ ] ArrayList<String> temp\_players -- [ ] ArenaType type -- [ ] ArenaState currentstate -- [X] String name - > com.github.mce.minigames.api.arena.ArenaInterface.getInternalName() -- [X] String displayname - > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName() - > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName(Locale) -- [ ] boolean started -- [ ] boolean startedIngameCountdown -- [ ] boolean showArenascoreboard -- [ ] boolean alwaysPvP -- [ ] SmartReset sr -- [ ] Cuboid boundaries -- [ ] Cuboid lobby\_boundaries -- [ ] Cuboid spec\_boundaries -- [ ] boolean temp\_countdown -- [ ] boolean skip\_join\_lobby -- [ ] int currentspawn -- [ ] int global\_coin\_multiplier -- [ ] BukkitTask maximum\_game\_time -- [ ] ArrayList<ItemStack> global\_drops -- [ ] int currentlobbycount -- [ ] int currentingamecount -- [ ] int currenttaskid -- [ ] boolean temp\_delay\_stopped -- [ ] ArenaLogger logger -- [ ] Arena(final JavaPlugin plugin, final String name) -- [ ] Arena(final JavaPlugin plugin, final String name, final ArenaType type) -- [ ] public void init(final Location signloc, final ArrayList<Location> spawns, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) -- [ ] Arena initArena(final Location signloc, final ArrayList<Location> spawn, final Location mainlobby, final Location waitinglobby, final int max\_players, final int min\_players, final boolean viparena) -- [X] Arena getArena() - > removed (does not make sense) -- [ ] SmartReset getSmartReset() -- [ ] boolean getShowScoreboard() -- [ ] boolean getAlwaysPvP() -- [ ] void setAlwaysPvP(final boolean t) -- [ ] Location getSignLocation() -- [ ] void setSignLocation(final Location l) -- [ ] ArrayList<Location> getSpawns() -- [ ] Cuboid getBoundaries() -- [ ] Cuboid getLobbyBoundaries() -- [ ] Cuboid getSpecBoundaries() -- [X] String getInternalName() - > com.github.mce.minigames.api.arena.ArenaInterface.getInternalName() -- [X] String getDisplayName() - > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName() - > com.github.mce.minigames.api.arena.ArenaInterface.getDisplayName(Locale) -- [X] String getName() - > com.github.mce.minigames.api.arena.ArenaInterface.getInternalName() -- [ ] int getMaxPlayers() -- [ ] int getMinPlayers() -- [ ] void setMinPlayers(final int i) -- [ ] void setMaxPlayers(final int i) -- [ ] boolean isVIPArena() -- [ ] void setVIPArena(final boolean t) -- [ ] ArrayList<String> getAllPlayers() -- [ ] boolean containsPlayer(final String playername) -- [ ] boolean addPlayer(final String playername) -- [ ] boolean removePlayer(final String playername) -- [ ] void joinPlayerLobby(final String playername) -- [ ] void joinPlayerLobby(final UUID playerUuid) -- [ ] void joinPlayerLobby(final String playername, final boolean countdown) -- [ ] void joinPlayerLobby(final String playername, final ArcadeInstance arcade, final boolean countdown, final boolean skip\_lobby) -- [ ] ArenaState getArenaState() -- [ ] void setArenaState(final ArenaState s) -- [ ] ArenaType getArenaType() -- [ ] void leavePlayer(final String playername, final boolean fullLeave) -- [ ] void leavePlayer(final String playername, final boolean fullLeave, final boolean endofGame) -- [ ] void leavePlayerRaw(final String playername, final boolean fullLeave) -- [ ] void playLeaveCommand(final Player p) -- [ ] boolean hasLeaveCommand() -- [ ] spectateGame(final String playername) -- [ ] void spectate(final String playername) -- [ ] void spectateRaw(final Player p) -- [ ] void spectateArcade(final String playername) -- [ ] void setTaskId(final int id) -- [ ] int getTaskId() -- [ ] void startLobby(final boolean countdown) -- [ ] void start(final boolean tp) - > com.github.mce.minigames.api.arena.ArenaInterface.start() -- [ ] void startRaw() -- [ ] void stopArena() -- [ ] List<Entity> getResetEntitiesOnPlayerLeave(String player) -- [ ] boolean isEntityResetOnPlayerLeave(String player, Entity e) -- [ ] List<Entity> getResetEntities(String player) -- [ ] boolean isEntityReset(String player, Entity e) -- [ ] void stop() -- [ ] void reset() -- [ ] void onEliminated(final String playername) -- [ ] void nextArenaOnMapRotation(final ArrayList<String> players) -- [ ] String getPlayerCount() -- [ ] int getPlayerAlive() -- [ ] Location getWaitingLobbyTemp() -- [ ] Location getWaitingLobby() -- [ ] Location getMainLobbyTemp() -- [ ] Location getMainLobby() -- [ ] ArcadeInstance getArcadeInstance() -- [ ] boolean isArcadeMain() -- [ ] void setArcadeMain(final boolean t) -- [ ] HashMap<String, Location> getPSpawnLocs() -- [ ] JavaPlugin getPlugin() -- [ ] PluginInstance getPluginInstance() -- [ ] int getCurrentIngameCountdownTime() -- [ ] int getCurrentLobbyCountdownTime() -- [ ] boolean getIngameCountdownStarted() -- [ ] boolean isSuccessfullyInit() -- [ ] void setLastDamager(final String targetPlayer, final String damager) - -## ArenaConfigStrings.java - -- [ ] String BOUNDS\_LOW -- [ ] String BOUNDS\_HIGH -- [ ] String LOBBY\_BOUNDS\_LOW -- [ ] String LOBBY\_BOUNDS\_HIGH -- [ ] String SPEC\_BOUNDS\_LOW -- [ ] String SPEC\_BOUNDS\_HIGH -- [ ] String SPEC\_SPAWN -- [ ] String ARENAS\_PREFIX -- [ ] String DISPLAYNAME\_SUFFIX -- [ ] String AUTHOR\_SUFFIX -- [ ] String DESCRIPTION\_SUFFIX -- [ ] String CONFIG\_CLASS\_SELECTION\_ITEM -- [ ] String CONFIG\_EXIT\_ITEM -- [ ] String CONFIG\_ACHIEVEMENT\_ITEMS -- [ ] String CONFIG\_SPECTATOR\_ITEM -- [ ] String CONFIG\_SHOP\_SELECTION\_ITEM -- [ ] String CONFIG\_CLASSES\_GUI\_ROWS -- [ ] String CONFIG\_SHOP\_GUI\_ROWS -- [ ] String CONFIG\_SPECTATOR\_AFTER\_FALL\_OR\_DEATH -- [ ] String CONFIG\_SPECTATOR\_MOVE\_Y\_LOCK -- [ ] String CONFIG\_DEFAULT\_MAX\_PLAYERS -- [ ] String CONFIG\_DEFAULT\_MIN\_PLAYERS -- [ ] String CONFIG\_DEFAULT\_MAX\_GAME\_TIME\_IN\_MINUTES -- [ ] String CONFIG\_LOBBY\_COUNTDOWN -- [ ] String CONFIG\_INGAME\_COUNTDOWN -- [ ] String CONFIG\_INGAME\_COUNTDOWN\_ENABLED -- [ ] String CONFIG\_SKIP\_LOBBY -- [ ] String CONFIG\_CLEANINV\_WHILE\_INGAMECOUNTDOWN -- [ ] String CONFIG\_CLASSES\_ENABLED -- [ ] String CONFIG\_SHOP\_ENABLED -- [ ] String CONFIG\_USE\_CREADITS\_INSTEAD\_MONEY\_FOR\_KITS -- [ ] String CONFIG\_RESET\_INV\_WHEN\_LEAVING\_SERVER -- [ ] String CONFIG\_COLOR\_BACKGROUND\_WOOL -- [ ] String CONFIG\_SHOW\_CLASSES\_WITHOUT\_PERM -- [ ] String CONFIG\_REWARDS\_ECONOMY -- [ ] String CONFIG\_REWARDS\_ECONOMY\_REWARD -- [ ] String CONFIG\_REWARDS\_ITEM\_REWARD -- [ ] String CONFIG\_REWARDS\_ITEM\_REWARD\_IDS -- [ ] String CONFIG\_REWARDS\_COMMAND\_REWARD -- [ ] String CONFIG\_REWARDS\_COMMAND -- [ ] String CONFIG\_REWARDS\_ECONOMY\_FOR\_KILLS -- [ ] String CONFIG\_REWARDS\_ECONOMY\_REWARD\_FOR\_KILLS -- [ ] String CONFIG\_REWARDS\_COMMAND\_REWARD\_FOR\_KILLS -- [ ] String CONFIG\_REWARDS\_COMMAND\_FOR\_KILLS -- [ ] String CONFIG\_REWARDS\_ECONOMY\_FOR\_PARTICIPATION -- [ ] String CONFIG\_REWARDS\_ECONOMY\_REWARD\_FOR\_PARTICIPATION -- [ ] String CONFIG\_REWARDS\_COMMAND\_REWARD\_FOR\_PARTICIPATION -- [ ] String CONFIG\_REWARDS\_COMMAND\_FOR\_PARTICIPATION -- [ ] String CONFIG\_STATS\_POINTS\_FOR\_KILL -- [ ] String CONFIG\_STATS\_POINTS\_FOR\_WIN -- [ ] String CONFIG\_ARCADE\_ENABLED -- [ ] String CONFIG\_ARCADE\_MIN\_PLAYERS -- [ ] String CONFIG\_ARCADE\_MAX\_PLAYERS -- [ ] String CONFIG\_ARCADE\_ARENA\_TO\_PREFER\_ENABLED -- [ ] String CONFIG\_ARCADE\_ARENA\_TO\_PREFER\_ARENA -- [ ] String CONFIG\_ARCADE\_LOBBY\_COUNTDOWN -- [ ] String CONFIG\_ARCADE\_SHOW\_EACH\_LOBBY\_COUNTDOWN -- [ ] String CONFIG\_ARCADE\_INFINITE\_ENABLED -- [ ] String CONFIG\_ARCADE\_INFINITE\_SECONDS\_TO\_NEW\_ROUND -- [ ] String CONFIG\_BUNGEE\_GAME\_ON\_JOIN -- [ ] String CONFIG\_BUNGEE\_TELEPORT\_ALL\_TO\_SERVER\_ON\_STOP\_TP -- [ ] String CONFIG\_BUNGEE\_TELEPORT\_ALL\_TO\_SERVER\_ON\_STOP\_SERVER -- [ ] String CONFIG\_BUNGEE\_WHITELIST\_WHILE\_GAME\_RUNNING -- [ ] String CONFIG\_EXECUTE\_CMDS\_ON\_STOP -- [ ] String CONFIG\_CMDS -- [ ] String CONFIG\_CMDS\_AFTER -- [ ] String CONFIG\_MAP\_ROTATION -- [ ] String CONFIG\_BROADCAST\_WIN -- [ ] String CONFIG\_BUY\_CLASSES\_FOREVER -- [ ] String CONFIG\_DISABLE\_COMMANDS\_IN\_ARENA -- [ ] String CONFIG\_COMMAND\_WHITELIST -- [ ] String CONFIG\_LEAVE\_COMMAND -- [ ] String CONFIG\_SPAWN\_FIREWORKS\_FOR\_WINNERS -- [ ] String CONFIG\_POWERUP\_BROADCAST -- [ ] String CONFIG\_POWERUP\_FIREWORKS -- [ ] String CONFIG\_USE\_CUSTOM\_SCOREBOARD -- [ ] String CONFIG\_DELAY\_ENABLED -- [ ] String CONFIG\_DELAY\_AMOUNT\_SECONDS -- [ ] String CONFIG\_SEND\_GAME\_STARTED\_MSG -- [ ] String CONFIG\_AUTO\_ADD\_DEFAULT\_KIT -- [ ] String CONFIG\_LAST\_MAN\_STANDING\_WINS -- [ ] String CONFIG\_EFFECTS\_BLOOD -- [ ] String CONFIG\_EFFECTS\_DMG\_IDENTIFIER\_HOLO -- [ ] String CONFIG\_EFFECTS\_DEAD\_IN\_FAKE\_BED -- [ ] String CONFIG\_EFFECTS\_1\_8\_TITLES -- [ ] String CONFIG\_EFFECTS\_1\_8\_SPECTATOR\_MODE -- [ ] String CONFIG\_SOUNDS\_LOBBY\_COUNTDOWN -- [ ] String CONFIG\_SOUNDS\_INGAME\_COUNTDOWN -- [ ] String CONFIG\_CHAT\_PER\_ARENA\_ONLY -- [ ] String CONFIG\_CHAT\_SHOW\_SCORE\_IN\_ARENA -- [ ] String CONFIG\_COMPASS\_TRACKING\_ENABLED -- [ ] String CONFIG\_ALLOW\_CLASSES\_SELECTION\_OUT\_OF\_ARENAS -- [ ] String CONFIG\_SEND\_STATS\_ON\_STOP -- [ ] String CONFIG\_USE\_XP\_BAR\_LEVEL -- [ ] String CONFIG\_USE\_OLD\_RESET\_METHOD -- [ ] String CONFIG\_CHAT\_ENABLED -- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_PREFIX -- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_ENABLED\_SUFFIX -- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_ITEM\_SUFFIX -- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_NAME\_SUFFIX -- [ ] String CONFIG\_EXTRA\_LOBBY\_ITEM\_COMMAND\_SUFFIX -- [ ] String CONFIG\_MYSQL\_ENABLED -- [ ] String CONFIG\_MYSQL\_HOST -- [ ] String CONFIG\_MYSQL\_USER -- [ ] String CONFIG\_MYSQL\_PW -- [ ] String CONFIG\_MYSQL\_DATABASE -- [ ] String RESET\_INVENTORY -- [ ] String RESET\_XP -- [ ] String RESET\_GAMEMODE - -## ArenaListener.java - -- [ ] ArrayList<String> cmds -- [ ] String leave\_cmd -- [ ] int loseY -- [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame) -- [ ] ArenaListener(final JavaPlugin plugin, final PluginInstance pinstance, final String minigame, final ArrayList<String> cmds) -- [ ] void onExplode(final EntityExplodeEvent event) -- [ ] void onExplode2(final BlockExplodeEvent event) -- [ ] void onBlockFromTo(final BlockFromToEvent event) -- [ ] void onBlockFade(final BlockFadeEvent event) -- [ ] void onBlockPhysics(final BlockPhysicsEvent event) -- [ ] void onBlockRedstone(final BlockRedstoneEvent event) -- [ ] void onBlockSpread(final BlockSpreadEvent event) -- [ ] void onEntityChangeBlock(final EntityChangeBlockEvent event) -- [ ] void onLeavesDecay(final LeavesDecayEvent event) -- [ ] void onBlockBurn(final BlockBurnEvent event) -- [ ] void onStructureGrow(final StructureGrowEvent event) -- [ ] void onBlockBreak2(final BlockBreakEvent event) -- [ ] void onPlayerDrop(final PlayerDropItemEvent event) -- [ ] void onPlayerPickupItem(final PlayerPickupItemEvent event) -- [ ] void onInventoryClick(final InventoryClickEvent event) -- [ ] void onHunger(final FoodLevelChangeEvent event) -- [ ] void NoDamageEntityInLobby(final EntityDamageByEntityEvent event) -- [ ] void NoClickEntityInLobby(final PlayerInteractEntityEvent event) throws IOException -- [ ] void onPaintingBreak(final HangingBreakByEntityEvent event) -- [ ] void Space(final PlayerMoveEvent event) -- [ ] void onMove(final PlayerMoveEvent event) -- [ ] void onVMove(final VehicleMoveEvent event) -- [ ] void onPlayerDeath(final PlayerDeathEvent event) -- [ ] void onEntityDamage(final EntityDamageEvent event) -- [ ] void onEntityDamageByEntity(final EntityDamageByEntityEvent event) -- [ ] void onBlockBreak(final BlockBreakEvent event) -- [ ] void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) -- [ ] void onBlockPlace(final BlockPlaceEvent event) -- [ ] void onSignUse(final PlayerInteractEvent event) -- [ ] void onSignChange(final SignChangeEvent event) -- [ ] void onPlayerJoin(final PlayerJoinEvent event) -- [ ] void onPlayerLeave(final PlayerQuitEvent event) -- [ ] void onChat(final AsyncPlayerChatEvent event) -- [ ] void onPlayerCommandPreprocessEvent(final PlayerCommandPreprocessEvent event) -- [ ] void onPlayerTeleport(final PlayerTeleportEvent event) -- [ ] void onMobSpawn(CreatureSpawnEvent evt) -- [ ] void onMobTarget(EntityTargetEvent evt) -- [ ] boolean isSpectating(final Player p) -- [ ] List<Entity> getEntitiesByLocation(final Location loc, final double d) -- [ ] boolean checkLocationMatchesSign(final Location l, final Sign s) -- [ ] void updateEntities(final List<Player> players, final boolean visible) -- [ ] List<Player> getPlayersWithin(final Player player, final int distance) -- [ ] String getName() -- [ ] void setName(final String minigame) - -## ArenaLogger.java - -- [X] logging methods - > com.github.mce.minigames.api.arena.ArenaInterface.getLogger() - -## ArenaMessageStrings.java - -- [ ] String ARENA -- [ ] String ACTION -- [ ] String AUTHOR -- [ ] String DESCRIPTION -- [ ] String PLAYER -- [ ] String KILLER -- [ ] String COUNT -- [ ] String MAXCOUNT - -## ArenaPermissionStrings.java - -- [ ] String VIP -- [ ] String PREFIX - -## ArenaPlayer.java - -- [X] String playername - > com.github.mce.minigames.api.player.ArenaPlayerInterface.getName() -- [ ] ItemStack[] inv -- [ ] ItemStack[] armor\_inv -- [ ] GameMode original\_gamemode -- [ ] int original\_xplvl -- [ ] boolean noreward -- [ ] Arena currentArena -- [ ] AClass currentClass -- [X] HashMap<String, ArenaPlayer> players - > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) -- [X] ArenaPlayer getPlayerInstance(final String playername) - > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) -- [X] ArenaPlayer(final String playername) - > no direct replacement, see com.github.mce.minigames.api.MglibInterface.getPlayer(OfflinePlayer) -- [X] Player getPlayer() - > com.github.mce.minigames.api.player.ArenaPlayerInterface.getOfflinePlayer() - > com.github.mce.minigames.api.player.ArenaPlayerInterface.getBukkitPlayer() -- [ ] void setInventories(final ItemStack[] inv, final ItemStack[] armor\_inv) -- [ ] ItemStack[] getInventory() -- [ ] ItemStack[] getArmorInventory() -- [ ] GameMode getOriginalGamemode() -- [ ] void setOriginalGamemode(final GameMode original\_gamemode) -- [ ] int getOriginalXplvl() -- [ ] void setOriginalXplvl(final int original\_xplvl) -- [ ] boolean isNoReward() -- [ ] void setNoReward(final boolean noreward) -- [ ] Arena getCurrentArena() -- [ ] void setCurrentArena(final Arena currentArena) -- [ ] AClass getCurrentClass() -- [ ] void setCurrentClass(final AClass currentClass) - -## ArenaSetup.java - -- [ ] void setSpawn(final JavaPlugin plugin, final String arenaname, final Location l) -- [ ] int autoSetSpawn(final JavaPlugin plugin, final String arenaname, final Location l) -- [ ] void setSpawn(final JavaPlugin plugin, final String arenaname, final Location l, final int count) -- [ ] boolean removeSpawn(final JavaPlugin plugin, final String arenaname, final int count) -- [ ] void setLobby(final JavaPlugin plugin, final String arenaname, final Location l) -- [ ] void setMainLobby(final JavaPlugin plugin, final Location l) -- [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low) -- [ ] void setBoundaries(final JavaPlugin plugin, final String arenaname, final Location l, final boolean low, final String extra\_component) -- [ ] Arena saveArena(final JavaPlugin plugin, final String arenaname) -- [ ] void setPlayerCount(final JavaPlugin plugin, final String arena, final int count, final boolean max) -- [ ] int getPlayerCount(final JavaPlugin plugin, final String arena, final boolean max) -- [ ] void setArenaVIP(final JavaPlugin plugin, final String arena, final boolean vip) -- [ ] boolean getArenaVIP(final JavaPlugin plugin, final String arena) -- [ ] void setArenaEnabled(final JavaPlugin plugin, final String arena, final boolean enabled) -- [ ] boolean getArenaEnabled(final JavaPlugin plugin, final String arena) -- [ ] void setShowScoreboard(final JavaPlugin plugin, final String arena, final boolean enabled) -- [ ] boolean getShowScoreboard(final JavaPlugin plugin, final String arena) - -## ArenaState.java - -- [ ] JOIN -- [ ] STARTING -- [ ] INGAME -- [ ] RESTARTING - -## ArenaType.java - -- [ ] DEFAULT -- [ ] JUMPNRUN -- [ ] REGENERATION - -## ChannelStrings.java - -- [ ] CHANNEL\_BUNGEE\_CORD -- [ ] SUBCHANNEL\_MINIGAMESLIB\_BACK -- [ ] SUBCHANNEL\_MINIGAMESLIB\_REQUEST -- [ ] SUBCHANNEL\_MINIGAMESLIB\_SIGN - -## Classes.java - -- [ ] public HashMap<String, IconMenu> lasticonm = new HashMap<>(); -- [ ] Classes(final JavaPlugin plugin) -- [ ] public Classes(final PluginInstance pli, final JavaPlugin plugin) -- [ ] public void openGUI(final String p) -- [ ] void getClass(final String player) -- [ ] void setClass(String iname, final String player, final boolean money) -- [ ] String getInternalNameByName(final String name) -- [ ] AClass getClassByInternalname(final String internalname) -- [ ] boolean hasClass(final String player) -- [ ] String getSelectedClass(final String player) -- [ ] void loadClasses() -- [ ] void loadClasses(final JavaPlugin plugin) -- [ ] boolean kitRequiresMoney(final String kit) -- [ ] boolean kitTakeMoney(final Player p, final String kit) -- [ ] boolean kitPlayerHasPermission(final String kit, final Player p) - -## CommandStrings.java - -- [ ] String START -- [ ] String GAME\_START -- [ ] String GAME\_SET\_SPAWN -- [ ] String GAME\_SET\_SPEC\_SPAWN -- [ ] String GAME\_SET\_LOBBY -- [ ] String GAME\_SET\_MAINLOBBY -- [ ] String GAME\_SET\_BOUNDS -- [ ] String GAME\_SET\_LOBBY\_BOUNDS -- [ ] String GAME\_SET\_SPEC\_BOUNDS -- [ ] String GAME\_SAVE\_ARENA -- [ ] String GAME\_SAVE -- [ ] String GAME\_SET\_MAX\_PLAYERS -- [ ] String GAME\_SET\_MIN\_PLAYERS -- [ ] String GAME\_SET\_ARENA\_VIP -- [ ] String GAME\_SET\_VIP -- [ ] String GAME\_JOIN -- [ ] String GAME\_LEAVE -- [ ] String GAME\_STOP -- [ ] String GAME\_STOP\_ALL -- [ ] String GAME\_REMOVE\_ARENA -- [ ] String GAME\_REMOVE\_SPAWN -- [ ] String GAME\_SET\_SKULL -- [ ] String GAME\_SET\_ENABLED -- [ ] String GAME\_SET\_SHOW\_SCOREBOARD -- [ ] String GAME\_RESET -- [ ] String GAME\_SET\_AUTHOR -- [ ] String GAME\_SET\_DESCRIPTION -- [ ] String GAME\_SET\_DISPLAYNAME -- [ ] String GAME\_KIT -- [ ] String GAME\_SPECTATE -- [ ] String GAME\_SHOP -- [ ] String GAME\_LEADER\_BOARDS -- [ ] String GAME\_LB -- [ ] String GAME\_TOP -- [ ] String GAME\_STATS -- [ ] String GAME\_SET\_HOLOGRAM -- [ ] String GAME\_LIST\_HOLOGRAMS -- [ ] String GAME\_REMOVE\_HOLOGRAM -- [ ] String GAME\_HELP -- [ ] String GAME\_LIST -- [ ] String GAME\_RELOAD -- [ ] String GAME\_CREATE\_ARENA -- [ ] String GAME\_END\_ALL -- [ ] String PARTY -- [ ] String PARTY\_INVITE -- [ ] String PARTY\_ACCEPT -- [ ] String PARTY\_KICK -- [ ] String PARTY\_LIST -- [ ] String PARTY\_DISBAND -- [ ] String PARTY\_LEAVE -- [ ] String MAPI -- [ ] String MGAPI -- [ ] String MGLIB -- [ ] String MGLIB\_INFO -- [ ] String MGLIB\_DEBUG -- [ ] String MGLIB\_LIST -- [ ] String MGLIB\_TITLE -- [ ] String MGLIB\_SUBTITLE -- [ ] String MGLIB\_SIGNS -- [ ] String MGLIB\_HOLOGRAM -- [ ] String MGLIB\_STATS\_HOLOGRAM -- [ ] String MGLIB\_GAMEMODE\_TEST -- [ ] String MGLIB\_BUNGEE\_TEST -- [ ] String MGLIB\_JOIN - -## Effects.java - -- [ ] void playBloodEffect(final Player p) -- [ ] void playEffect(final Arena a, final Location l, final String effectname) -- [ ] BukkitTask playFakeBed(final Arena a, final Player p) -- [ ] BukkitTask playFakeBed(final Arena a, final Player p, final int x, final int y, final int z) -- [ ] void setValue(final Object instance, final String fieldName, final Object value) throws Exception -- [ ] void playRespawn(final Player p, final JavaPlugin plugin) -- [ ] void playTitle(final Player player, final String title, int eindex) -- [ ] HashMap<Integer, Integer> effectlocd -- [ ] HashMap<Integer, Integer> effectlocd\_taskid -- [ ] ArrayList<Integer> playHologram(final Player p, final Location l, final String text, final boolean moveDown, final boolean removeAfterCooldown) -- [ ] void sendGameModeChange(final Player p, final int gamemode) - -## Messages.java - -- [ ] migrate nls messages - -## MinecraftVersionsType.java - -- [X] migrate version types - > com.github.mce.minigames.api.MinecraftVersionsType - -## MinigamesAPI.java - -- [X] MinecraftVersionsType SERVER\_VERSION - > com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() -- [ ] Locale LOCALE -- [X] MinigamesAPI instance - > com.github.mce.minigames.api.MglibInterface.INSTANCE.get() -- [ ] Economy econ -- [ ] boolean economy -- [ ] boolean crackshot -- [X] boolean debug - > com.github.mce.minigames.api.MglibInterface.debug() -- [ ] int updatetime -- [ ] HashMap<String, Party> global\_party -- [ ] HashMap<String, ArrayList<Party>> global\_party\_invites -- [ ] HashMap<JavaPlugin, PluginInstance> pinstances -- [ ] PartyMessagesConfig partymessages -- [ ] StatsGlobalConfig statsglobal -- [ ] String internalServerVersion = ""; -- [X] boolean below1710 - > no replacement, check com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() against 1.7.10 -- [ ] Metrics metrics -- [ ] String motd -- [ ] Iterator motdStrings -- [ ] void onEnable() -- [ ] boolean crackshotAvailable() -- [ ] boolean economyAvailable() -- [ ] String getPermissionPrefix() -- [ ] String getPermissionKitPrefix() -- [ ] String getPermissionGunPrefix() -- [ ] String getPermissionShopPrefix() -- [ ] String getPermissionGamePrefix(String game) -- [X] MinecraftVersionsType getServerVersion() - > com.github.mce.minigames.api.MglibInterface.getMinecraftVersion() -- [ ] void onDisable() -- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final DefaultConfig defaultconfig, final boolean customlistener) -- [ ] void registerArenaListenerLater(final JavaPlugin plugin\_, final ArenaListener arenalistener) -- [ ] void registerArenaSetup(final JavaPlugin plugin\_, final ArenaSetup arenasetup) -- [ ] void registerScoreboard(final JavaPlugin plugin\_, final ArenaScoreboard board) -- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame, final Class<?> arenaclass) -- [ ] MinigamesAPI setupAPI(final JavaPlugin plugin\_, final String minigame) -- [ ] PluginInstance setupRaw(final JavaPlugin plugin\_, final String minigame) -- [X] MinigamesAPI getAPI() - > com.github.mce.minigames.api.MglibInterface.INSTANCE.get() -- [ ] CommandHandler getCommandHandler() -- [ ] boolean setupEconomy() -- [ ] boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) -- [ ] void connectToServer(JavaPlugin plugin, String player, String server) -- [ ] void onPluginMessageReceived(final String channel, final Player player, final byte[] message) -- [ ] PluginInstance getPluginInstance(final JavaPlugin plugin) -- [X] UUID playerToUUID(String playername) - > no direct replacement, we do not use player names any more - > com.github.mce.minigames.api.MglibInterface.getPlayer(Player) - > com.github.mce.minigames.api.player.ArenaPlayerInterface.getPlayerUUID() -- [X] UUID playerToUUID(Player player) - > no direct replacement, we do not use player names any more - > com.github.mce.minigames.api.MglibInterface.getPlayer(Player) - > com.github.mce.minigames.api.player.ArenaPlayerInterface.getPlayerUUID() -- [X] Player uuidToPlayer(UUID uuid) - > com.github.mce.minigames.api.MglibInterface.getPlayer(UUID) -- [ ] onBreak(BlockBreakEvent event) -- [ ] onSignUse(PlayerInteractEvent event) -- [ ] onSignChange(SignChangeEvent event) -- [ ] requestServerSign(String mg\_key, String arena\_key) -- [ ] getSignFromArena(String mg, String arena) -- [ ] void updateSign(String mg, String arenaname, String arenastate, int count, int maxcount) -- [ ] void sendSignUpdate(final PluginInstance pli, final Arena a) -- [ ] void updateSign(String mg, String arenaname, String arenastate, SignChangeEvent event) -- [ ] String getServerBySignLocation(Location sign) -- [ ] String getInfoBySignLocation(Location sign) -- [ ] void onServerPing(ServerListPingEvent evt) - -## Party.java - -- [ ] String owner; -- [ ] ArrayList<String> players = new ArrayList<>(); -- [ ] Party(final String owner) -- [ ] String getOwner() -- [ ] ArrayList<String> getPlayers() -- [ ] void addPlayer(final String p) -- [ ] boolean removePlayer(final String p) -- [ ] containsPlayer(final String p) -- [ ] disband() -- [ ] tellAll(final String msg) - -## PermissionStrings.java - -- [ ] String MINIGAMES\_PARTY -- [ ] String MINIGAMES\_START - -## PluginConfigStrings.java - -- [ ] String DEBUG -- [ ] String PARTY\_COMMAND\_ENABLED -- [ ] String SIGNS\_UPDATE\_TIME -- [ ] String AUTO\_UPDATING -- [ ] String POST\_METRICS -- [ ] String PERMISSION\_PREFIX -- [ ] String PERMISSION\_KITS\_PREFIX -- [ ] String PERMISSION\_GUN\_PREFIX -- [ ] String PERMISSION\_SHOP\_PREFIX -- [ ] String PERMISSION\_GAME\_PREFIX -- [ ] String MOTD\_ENABLED -- [ ] String MOTD\_ROTATION\_SECONDS -- [ ] String MOTD\_TEXT\_SECONDS -- [ ] String MOTD\_STATE\_JOIN -- [ ] String MOTD\_STATE\_STARTING -- [ ] String MOTD\_STATE\_INGAME -- [ ] String MOTD\_STATE\_RESETTING -- [ ] String MOTD\_STATE\_DISABLED - -## PluginInstance.java - -- [ ] HashMap<String, Arena> global\_players -- [ ] HashMap<String, Arena> global\_lost -- [ ] HashMap<String, Arena> global\_arcade\_spectator -- [ ] ArenaListener arenalistener -- [ ] ArenasConfig arenasconfig -- [ ] ClassesConfig classesconfig -- [ ] MessagesConfig messagesconfig -- [ ] StatsConfig statsconfig -- [ ] GunsConfig gunsconfig -- [ ] AchievementsConfig achievementsconfig -- [ ] ShopConfig shopconfig -- [ ] HologramsConfig hologramsconfig -- [ ] JavaPlugin plugin -- [ ] ArrayList<Arena> arenas -- [ ] HashMap<String, AClass> pclass -- [ ] LinkedHashMap<String, AClass> aclasses -- [ ] HashMap<String, Gun> guns -- [ ] Rewards rew -- [ ] MainSQL sql -- [ ] Stats stats -- [ ] Classes classes -- [ ] Shop shop -- [ ] SpectatorManager spectatormanager -- [ ] ArenaAchievements achievements -- [ ] Holograms holograms -- [ ] boolean achievement\_gui\_enabled -- [ ] ArenaScoreboard scoreboardManager -- [ ] ArenaLobbyScoreboard scoreboardLobbyManager -- [ ] ArenaSetup arenaSetup -- [ ] int lobby\_countdown -- [ ] int ingame\_countdown -- [ ] boolean spectator\_move\_y\_lock -- [ ] boolean use\_xp\_bar\_level -- [ ] boolean blood\_effects -- [ ] boolean dead\_in\_fake\_bed\_effects -- [ ] boolean spectator\_mode\_1\_8 -- [ ] boolean damage\_identifier\_effects -- [ ] boolean color\_background\_wool\_of\_signs; -- [ ] boolean last\_man\_standing -- [ ] boolean old\_reset -- [ ] boolean show\_classes\_without\_usage\_permission -- [ ] boolean chat\_enabled -- [ ] HashMap<String, ArrayList<String>> cached\_sign\_states -- [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig, final ArrayList<Arena> arenas) -- [ ] PluginInstance(final JavaPlugin plugin, final ArenasConfig arenasconfig, final MessagesConfig messagesconfig, final ClassesConfig classesconfig, final StatsConfig statsconfig) -- [ ] void reloadVariables() -- [X] JavaPlugin getPlugin() - > com.github.mce.minigames.api.PluginProviderInterface.getJavaPlugin() -- [ ] HashMap<String, AClass> getAClasses() -- [ ] HashMap<String, AClass> getPClasses() -- [ ] addAClass(final String name, final AClass a) -- [ ] setPClass(final String player, final AClass a) -- [ ] HashMap<String, Gun> getAllGuns() -- [ ] void addGun(final String name, final Gun g) -- [ ] ArenasConfig getArenasConfig() -- [ ] MessagesConfig getMessagesConfig() -- [ ] ClassesConfig getClassesConfig() -- [ ] StatsConfig getStatsConfig() -- [ ] GunsConfig getGunsConfig() -- [ ] AchievementsConfig getAchievementsConfig() -- [ ] ShopConfig getShopConfig() -- [ ] void setShopConfig(final ShopConfig shopconfig) -- [ ] HologramsConfig getHologramsConfig() -- [ ] Rewards getRewardsInstance() -- [ ] void setRewardsInstance(final Rewards r) -- [ ] MainSQL getSQLInstance() -- [ ] Stats getStatsInstance() -- [ ] ArenaListener getArenaListener() -- [ ] void setArenaListener(final ArenaListener al) -- [ ] Classes getClassesHandler() -- [ ] void setClassesHandler(final Classes c) -- [ ] Shop getShopHandler() -- [ ] SpectatorManager getSpectatorManager() -- [ ] void setSpectatorManager(final SpectatorManager s) -- [ ] ArenaAchievements getArenaAchievements() -- [ ] Holograms getHologramsHandler() -- [ ] int getIngameCountdown() -- [ ] int getLobbyCountdown() -- [ ] ArrayList<Arena> getArenas() -- [ ] void clearArenas() -- [ ] ArrayList<Arena> addArena(final Arena arena) -- [ ] Arena getArenaByName(final String arenaname) -- [ ] Arena removeArenaByName(final String arenaname) -- [ ] boolean removeArena(final Arena arena) -- [ ] void addLoadedArenas(final ArrayList<Arena> arenas) -- [ ] void addArenas(final Iterable<Arena> arenaList) -- [ ] void addArenas(final Arena... arenaList) -- [ ] void setArenas(final Iterable<Arena> arenaList) -- [ ] void setArenas(final Arena... arenaList) -- [ ] boolean isAchievementGuiEnabled() -- [ ] void setAchievementGuiEnabled(final boolean achievement\_gui\_enabled) -- [ ] void reloadAllArenas() -- [ ] void reloadArena(final String arenaname) -- [ ] boolean containsGlobalPlayer(final String playername) -- [ ] boolean containsGlobalLost(final String playername) -- [ ] Arena getArenaByGlobalPlayer(final String playername) - -## PrivateUtil.java - -- [ ] void loadArenaFromFileSYNC(final JavaPlugin plugin, final Arena arena) - -## Rewards.java - -- [ ] JavaPlugin plugin -- [ ] boolean economyrewards -- [ ] boolean itemrewards -- [ ] boolean commandrewards -- [ ] boolean kill_economyrewards -- [ ] boolean kill_commandrewards -- [ ] boolean participation_economyrewards -- [ ] boolean participation_commandrewards -- [ ] int econ_reward -- [ ] int kill_econ_reward -- [ ] int participation_econ_reward -- [ ] String command -- [ ] String kill_command -- [ ] String participation_command -- [ ] ItemStack[] items -- [ ] Rewards(final JavaPlugin plugin) -- [ ] void reloadVariables() -- [ ] void giveRewardsToWinners(final Arena arena) -- [ ] void giveReward(final String p\_) -- [ ] void giveKillReward(final String p\_) -- [ ] void giveKillReward(final String p\_, final int reward) -- [ ] void giveAchievementReward(final String p\_, final boolean econ, final boolean isCommand, final int money\_reward, final String cmd) -- [ ] void giveWinReward(final String p\_, final Arena a) -- [ ] void giveWinReward(final String p\_, final Arena a, final int global\_multiplier) -- [ ] void giveWinReward(final String p\_, final Arena a, final ArrayList<String> players, final int global\_multiplier) - -## Shop.java - -- [ ] JavaPlugin plugin -- [ ] PluginInstance pli -- [ ] HashMap<String, IconMenu> lasticonm -- [ ] LinkedHashMap<String, ShopItem> shopitems -- [ ] Shop(final PluginInstance pli, final JavaPlugin plugin) -- [ ] void openGUI(final String p) -- [ ] void loadShopItems() -- [ ] boolean buy(final Player p, final String item_displayname) -- [ ] boolean buyByInternalName(final Player p, final String item\_name) -- [ ] boolean hasItemBought(final String p, final String item) -- [ ] boolean requiresMoney(final String item) -- [ ] boolean takeMoney(final Player p, final String item) -- [ ] void giveShopItems(final Player p) - -## SmartReset.java - -- [ ] SmartBlockMap changed -- [ ] Arena a -- [ ] ArrayList<SmartArenaBlock> failedblocks -- [ ] long time -- [ ] SmartReset(final Arena a) -- [ ] SmartArenaBlock addChanged(final Block b) -- [ ] void addChanged(Block[] loc) -- [ ] SmartArenaBlock addChanged(Block b, BlockState blockReplacedState) -- [ ] SmartArenaBlock addChanged(final Block b, final boolean isChest) -- [ ] SmartArenaBlock addChanged(final Block b, final boolean isChest, final ChangeCause cause) -- [ ] void addChanged(final Location l) -- [ ] SmartArenaBlock addChanged(final Location l, final Material m, final byte data) -- [ ] void run() -- [ ] void reset() -- [ ] void resetRaw() -- [ ] void resetSmartResetBlock(final SmartArenaBlock ablock) -- [ ] void saveSmartBlocksToFile() -- [ ] void loadSmartBlocksFromFile() -- [ ] final class SmartBlockMap extends TreeMap<Integer, Map<Location, SmartArenaBlock>> -- [ ] void putBlock(Location l, SmartArenaBlock block) -- [ ] boolean hasBlock(Location l) -- [ ] Iterable<SmartArenaBlock> getBlocks() -- [ ] NestedIterator<K, T> - -## SpectatorManager.java - -- [ ] JavaPlugin plugin -- [ ] HashMap<String, IconMenu> lasticonm -- [ ] SpectatorManager(final JavaPlugin plugin) -- [ ] void setup() -- [ ] void setSpectate(final Player p, final boolean spectate) -- [ ] boolean isSpectating(final Player p) -- [ ] void clear() -- [ ] void openSpectatorGUI(final Player p, final Arena a) -- [ ] HashMap<String, ArrayList<String>> pspecs -- [ ] HashMap<String, ArrayList<String>> splayers -- [ ] void hideSpectator(final Player spec, final ArrayList<String> players) -- [ ] void showSpectator(final Player spec) -- [ ] void showSpectators(final Player p) - -## Stats.java - -- [ ] JavaPlugin plugin -- [ ] PluginInstance pli -- [ ] ArrayList<String> skullsetup -- [ ] int stats\_kill\_points -- [ ] int stats\_win\_points -- [ ] Stats(final PluginInstance pli, final JavaPlugin plugin) -- [ ] void reloadVariables() -- [ ] void win(final String playername, final int count) -- [ ] void lose(final String playername) -- [ ] void update(final String playername) -- [ ] void updateSQLKillsDeathsAfter(final Player p, final Arena a) -- [ ] void setWins(final String playername, final int count) -- [ ] void setPoints(final String playername, final int count) -- [ ] void addWin(final String playername) -- [ ] void addLose(final String playername) -- [ ] void addKill(final String playername) -- [ ] void addDeath(final String playername) -- [ ] void addPoints(final String playername, final int count) -- [ ] int getPoints(final String playername) -- [ ] int getWins(final String playername) -- [ ] int getLoses(final String playername) -- [ ] int getKills(final String playername) -- [ ] int getDeaths(final String playername) -- [ ] TreeMap<String, Double> getTop(final int count, final boolean wins) -- [ ] TreeMap<String, Double> getTop() -- [ ] ItemStack giveSkull(final String name) -- [ ] void saveSkull(final Location t, final int count) -- [ ] void updateSkulls() - -## AAchievement.java - -- [ ] String name -- [ ] boolean done -- [ ] String playername -- [ ] AAchievement(final String name, final String playername, final boolean done) -- [ ] boolean isDone() -- [ ] setDone(final boolean t) -- [ ] getAchievementNameRaw() - -## ArenaAchievements.java - -- [ ] JavaPlugin plugin -- [ ] PluginInstance pli -- [ ] HashMap<String, IconMenu> lasticonm -- [ ] ArenaAchievements(final PluginInstance pli, final JavaPlugin plugin) -- [ ] void openGUI(final String p, final boolean sql) -- [ ] ArrayList<AAchievement> loadPlayerAchievements(final String playername, final boolean sql) -- [ ] void setAchievementDone(final String playername, final String achievement, final boolean sql) -- [ ] void addDefaultAchievement(final String internalname, final String name, final int default\_money\_reward) -- [ ] isEnabled() -- [ ] setEnabled(final boolean t) - -## ArcadeInstance.java - -- [ ] ArrayList<PluginInstance> minigames -- [ ] int currentindex -- [ ] ArrayList<String> players -- [ ] Arena arena -- [ ] JavaPlugin plugin -- [ ] boolean in\_a\_game -- [ ] Arena currentarena -- [ ] boolean started -- [ ] ArcadeInstance(final JavaPlugin plugin, final ArrayList<PluginInstance> minigames, final Arena arena) -- [ ] void joinArcade(final String playername) -- [ ] void leaveArcade(final String playername) -- [ ] void leaveArcade(final String playername, final boolean endOfGame) -- [ ] int currentlobbycount -- [ ] int currenttaskid -- [ ] void startArcade() -- [ ] void stopArcade(final boolean stopOfGame) -- [ ] void stopArcade() -- [ ] void stopCurrentMinigame() -- [ ] void nextMinigame() -- [ ] void nextMinigame(final long delay) -- [ ] void clean() - -## CommandHandler.java - -- [ ] boolean handleArgs(final JavaPlugin plugin, final String uber_permission, final String cmd, final CommandSender sender, final String args[]) -- [ ] LinkedHashMap<String, String> cmddesc -- [ ] void sendHelp(final String cmd, final CommandSender sender) -- [ ] LinkedHashMap<String, String> cmdpartydesc -- [ ] void sendPartyHelp(final String cmd, final CommandSender sender) -- [ ] boolean setSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setSpecSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setLobby(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setMainLobby(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setLobbyBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setSpecBounds(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean saveArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setMaxPlayers(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setMinPlayers(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setArenaVIP(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean joinArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean leaveArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean startArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean stopArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean stopAllArenas(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean removeArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean removeSpawn(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setSkull(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setEnabled(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setShowScoreboard(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean resetArena(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setAuthor(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setDescription(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setArenaDisplayName(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean spectate(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean setKit(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, Player player) -- [ ] boolean openShop(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean getStats(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean getLeaderboards(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] void sendLeaderboards(final PluginInstance pli, final CommandSender sender, final int count, final boolean wins) -- [ ] boolean setHologram(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean listHolograms(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean removeHologram(final PluginInstance pli, final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean partyInvite(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean partyAccept(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean partyKick(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean partyList(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean partyDisband(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) -- [ ] boolean partyLeave(final CommandSender sender, final String[] args, final String uber\_permission, final String cmd, final String action, final JavaPlugin plugin, final Player p) - -## AchievementsConfig.java - -- [ ] migrate - -## ArenasConfig.java - -- [ ] migrate - -## ClassesConfig.java - -- [ ] migrate - -## DefaultConfig.java - -- [ ] migrate - -## GunsConfig.java - -- [ ] migrate - -## HologramsConfig.java - -- [ ] migrate - -## MessagesConfig.java - -- [ ] migrate -- [ ] String no\_perm -- [ ] String successfully\_reloaded -- [ ] String successfully\_set -- [ ] String successfully\_saved\_arena -- [ ] String failed\_saving\_arena -- [ ] String failed\_removing\_arena -- [ ] String arena\_invalid -- [ ] String broadcast\_players\_left -- [ ] String broadcast\_player\_joined -- [ ] String player\_died -- [ ] String arena\_action -- [ ] String you\_joined\_arena -- [ ] String you\_already\_are\_in\_arena -- [ ] String arena\_not\_initialized -- [ ] String not\_in\_arena -- [ ] String teleporting\_to\_arena\_in -- [ ] String starting\_in -- [ ] String successfully\_removed -- [ ] String failed\_removing\_component -- [ ] String joined\_arena -- [ ] String you\_won -- [ ] String you\_lost -- [ ] String you\_got\_a\_kill -- [ ] String player\_was\_killed\_by -- [ ] String attributelevel\_increased -- [ ] String not\_enough\_credits -- [ ] String too\_many\_main\_guns -- [ ] String successfully\_set\_main\_gun -- [ ] String arcade\_next\_minigame -- [ ] String arena\_disabled -- [ ] String all\_guns -- [ ] String you\_can\_leave\_with -- [ ] String arcade\_joined\_spectator -- [ ] String arcade\_joined\_waiting -- [ ] String arcade\_new\_round -- [ ] String no\_perm\_to\_join\_arena -- [ ] String set\_kit -- [ ] String classes\_item -- [ ] String achievement\_item -- [ ] String shop\_item -- [ ] String spectator\_item -- [ ] String server\_broadcast\_winner -- [ ] String exit\_item -- [ ] String successfully\_bought\_kit -- [ ] String scoreboard\_title -- [ ] String scoreboard\_lobby\_title -- [ ] String you\_got\_kicked\_because\_vip\_joined -- [ ] String powerup\_spawned -- [ ] String you\_got\_the\_achievement -- [ ] String game\_started -- [ ] String author\_of\_the\_map -- [ ] String description\_of\_the\_map -- [ ] String not\_enough\_money -- [ ] String possible\_kits -- [ ] String possible\_shopitems -- [ ] String cancelled\_starting -- [ ] String minigame\_description -- [ ] String successfully\_bought\_shopitem -- [ ] String already\_bought\_shopitem -- [ ] String you\_received\_rewards -- [ ] String you\_received\_rewards\_2 -- [ ] String you\_received\_rewards\_3 -- [ ] String already\_in\_arena -- [ ] String stop\_cause\_maximum\_game\_time -- [ ] String compass\_no\_player\_found -- [ ] String compass\_player\_found -- [ ] String you\_got\_a\_participation\_reward -- [ ] String kit\_warning - -## PartyMessagesConfig.java - -- [ ] migrate -- [ ] String cannot\_invite\_yourself -- [ ] String player\_not\_online -- [ ] String you\_invited -- [ ] String you\_were\_invited -- [ ] String not\_invited\_to\_any\_party -- [ ] String not\_invited\_to\_players\_party -- [ ] String player\_not\_in\_party -- [ ] String you\_joined\_party -- [ ] String player\_joined\_party -- [ ] String you\_left\_party -- [ ] String player\_left\_party -- [ ] String party\_disbanded -- [ ] String party\_too\_big\_to\_join - -## ShopConfig.java - -- [ ] migrate - -## StatsConfig.java - -- [ ] migrate - -## StatsGlobalConfig.java - -- [ ] migrate - -## ArenaEvent.java - -- [ ] migrate - -## ArenaStartedEvent.java - -- [ ] migrate - -## ArenaStartEvent.java - -- [ ] migrate - -## ArenaStopEvent.java - -- [ ] migrate - -## PlayerEvent.java - -- [ ] migrate - -## PlayerJoinLobbyEvent.java - -- [ ] migrate - -## PlayerLeaveArenaEvent.java - -- [ ] migrate - -## Gun.java - -- [ ] double speed -- [ ] int shoot\_amount -- [ ] int max\_durability -- [ ] int durability -- [ ] Class<? extends Projectile> bullet -- [ ] JavaPlugin plugin -- [ ] double knockback\_multiplier -- [ ] String name -- [ ] boolean canshoot -- [ ] HashMap<String, Boolean> canshoot\_ -- [ ] ArrayList<ItemStack> items -- [ ] ArrayList<ItemStack> icon -- [ ] Gun(final JavaPlugin plugin, final String name, final double speed, final int shoot\_amount, final int durability, final double knockback\_multiplier, final Class<? extends Projectile> bullet, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) -- [ ] Gun(final JavaPlugin plugin, final ArrayList<ItemStack> items, final ArrayList<ItemStack> icon) -- [ ] void shoot(final Player p) -- [ ] void shoot(final Player p, final int shoot\_amount, final int durability, final int speed) -- [ ] void onHit(final Entity ent, final int knockback\_multiplier) -- [ ] void reloadGun() - -## Guns.java - - -- [ ] double level\_multiplier -- [ ] int speed\_cost -- [ ] int durability\_cost -- [ ] int shoot\_amount\_cost -- [ ] int knockback\_multiplier\_cost -- [ ] HashMap<String, IconMenu> lastmainiconm -- [ ] HashMap<String, IconMenu> lastmainediticonm -- [ ] HashMap<String, IconMenu> lastupgradeiconm -- [ ] HashMap<String, HashMap<Gun, int[]>> pgunattributes -- [ ] JavaPlugin plugin -- [ ] Guns(final JavaPlugin plugin) -- [ ] void openGUI(final String p) -- [ ] int[] getPlayerGunAttributeLevels(final JavaPlugin plugin, final String p, final Gun g) -- [ ] void setPlayerGunLevel(final JavaPlugin plugin, final String p, final String g, final String attribute, final int level, final double cost) -- [ ] void setPlayerGunMain(final JavaPlugin plugin, final String p, final String g, final boolean val) -- [ ] int getPlayerAllMainGunsCount(final JavaPlugin plugin, final String p) -- [ ] void openGunMainEditGUI(final String p, final String g) -- [ ] void openUpgradeGUI(final String p, final String g, final String attribute, final int level, final double cost) -- [ ] void loadGuns(final JavaPlugin plugin) -- [ ] ArrayList<String> getAllMainGuns(final Player p) -- [ ] void giveMainGuns(final Player p) - -## Database.java - -- [ ] migrate - -## MainSQL.java - -- [ ] migrate - -## MySQL.java - -- [ ] migrate - -## SQLite.java - -- [ ] migrate - -## Hologram.java - -- [ ] migrate - -## Holograms.java - -- [ ] PluginInstance pli -- [ ] HashMap<Location, Hologram> holo = new HashMap<>() -- [ ] Holograms(final PluginInstance pli) -- [ ] void loadHolograms() -- [ ] void sendAllHolograms(final Player p) -- [ ] void addHologram(final Location l) -- [ ] boolean removeHologram(final Location ploc) -- [ ] void destroyHologram(final Player p, final Hologram h) -- [ ] int[] convertIntegers(final ArrayList<Integer> integers) - -## AClass.java - -- [ ] JavaPlugin plugin -- [ ] String name -- [ ] String internalname -- [ ] ArrayList<ItemStack> items -- [ ] ItemStack icon -- [ ] boolean enabled -- [ ] AClass(final JavaPlugin plugin, final String name, final ArrayList<ItemStack> items) -- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final ArrayList<ItemStack> items) -- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items) -- [ ] AClass(final JavaPlugin plugin, final String name, final String internalname, final boolean enabled, final ArrayList<ItemStack> items, final ItemStack icon) -- [ ] ItemStack[] getItems() -- [ ] ItemStack getIcon() -- [ ] String getName() -- [ ] String getInternalName() -- [ ] boolean isEnabled() - -## ArenaBlock.java - -- [ ] int x, y, z -- [ ] String world -- [ ] Material m -- [ ] byte data -- [ ] ArrayList<Material> item_mats -- [ ] ArrayList<Byte> item_data -- [ ] ArrayList<Integer> item_amounts -- [ ] ArrayList<String> item_displaynames -- [ ] ArrayList<Boolean> item_splash -- [ ] ItemStack[] inv -- [ ] ArenaBlock(final Block b, final boolean c) -- [ ] ArenaBlock(final Location l) -- [ ] Block getBlock() -- [ ] Material getMaterial() -- [ ] Byte getData() -- [ ] ItemStack[] getInventory() -- [ ] ArrayList<ItemStack> getNewInventory() -- [ ] ItemStack getEnchantmentBook(final Map<Enchantment, Integer> t) - -## ArenaLobbyScoreboard.java - -- [ ] HashMap<String, Scoreboard> ascore -- [ ] HashMap<String, Objective> aobjective -- [ ] int initialized -- [ ] boolean custom -- [ ] PluginInstance pli -- [ ] ArrayList<String> loaded\_custom\_strings -- [ ] ArenaLobbyScoreboard(final PluginInstance pli, final JavaPlugin plugin) -- [ ] void updateScoreboard(final JavaPlugin plugin, final Arena arena) -- [ ] void removeScoreboard(final String arena, final Player p) -- [ ] void clearScoreboard(final String arenaname) - -## ArenaScoreboard.java - -- [ ] HashMap<String, Scoreboard> ascore -- [ ] HashMap<String, Objective> aobjective -- [ ] HashMap<String, Integer> currentscore -- [ ] int initialized -- [ ] boolean custom -- [ ] PluginInstance pli -- [ ] ArrayList<String> loaded\_custom\_strings -- [ ] ArenaScoreboard() -- [ ] ArenaScoreboard(final PluginInstance pli, final JavaPlugin plugin) -- [ ] void updateScoreboard(final JavaPlugin plugin, final Arena arena) -- [ ] void removeScoreboard(final String arena, final Player p) -- [ ] void clearScoreboard(final String arenaname) -- [ ] void setCurrentScoreMap(final HashMap<String, Integer> newcurrentscore) - -## BungeeUtil.java - -- [ ] void connectToServer(final JavaPlugin plugin, final String player, final String server) -- [ ] void sendSignUpdateRequest(final JavaPlugin plugin, final String minigame, final Arena arena) - -## ChangeCause.java - -- [ ] migrate - -## Cuboid.java - -- [ ] Location highPoints -- [ ] Location lowPoints -- [ ] Cuboid(final Location startLoc, final Location endLoc) -- [ ] boolean isAreaWithinArea(final Cuboid area) -- [ ] boolean containsLoc(final Location loc) -- [ ] boolean containsLocWithoutY(final Location loc) -- [ ] boolean containsLocWithoutYD(final Location loc) -- [ ] long getSize() -- [ ] Location getRandomLocation() -- [ ] Location getRandomLocationForMobs() -- [ ] int getXSize() -- [ ] int getYSize() -- [ ] int getZSize() -- [ ] Location getHighLoc() -- [ ] Location getLowLoc() -- [ ] World getWorld() -- [ ] Map<String, Object> save() -- [ ] Cuboid load(final Map<String, Object> root) throws IllegalArgumentException -- [ ] String toString() -- [ ] String toRaw() - -## IconMenu.java - -- [ ] String name -- [ ] int size -- [ ] OptionClickEventHandler handler -- [ ] Plugin plugin -- [ ] Player player -- [ ] String[] optionNames -- [ ] ItemStack[] optionIcons -- [ ] IconMenu(final String name, final int size, final OptionClickEventHandler handler, final Plugin plugin) -- [ ] IconMenu setOption(int pos, final ItemStack icon, final String name, final String... info) -- [ ] void setSpecificTo(final Player player) -- [ ] boolean isSpecific() -- [ ] int getSize() -- [ ] void open(final Player player) -- [ ] void destroy() -- [ ] void clear() -- [ ] onInventoryClick(final InventoryClickEvent event) -- [ ] interface OptionClickEventHandler -- [ ] class OptionClickEvent -- [ ] ItemStack setItemNameAndLore(final ItemStack item, final String name, final String[] lore) - - -## InventoryManager.java - -- [ ] HashMap<String, ItemStack[]> armourContents -- [ ] HashMap<String, ItemStack[]> inventoryContents -- [ ] HashMap<String, Location> locations -- [ ] HashMap<String, Integer> xplevel -- [ ] HashMap<String, GameMode> gamemode -- [ ] void saveInventory(final Player player) -- [ ] void restoreInventory(final Player player) - -## Leaderboard.java - -- [ ] Object convertUUID(final String s) -- [ ] Map<Integer, String> sortByComparator(final Map<String, Integer> unsortMap, final boolean order) -- [ ] Leaderboard(final Location firstPlace, final Location secondPlace, final Location thirdPlace, final Material firstBlockType, final Material secondBlockType, final Material thirdBlockType, final BlockFace direction, final FileConfiguration configurationFile, final String configurationFormat) - -## Metrics.java - -- [ ] migrate - -## ParticleEffectNew.java - -- [ ] migrate - -## ShopItem.java - -- [ ] migrate - -## Signs.java - -- [ ] migrate - -## SmartArenaBlock.java - -- [ ] migrate - -## UpdaterBukkit.java - -- [ ] migrate - -## UpdaterNexus.java - -- [ ] migrate - -## Util.java - -- [ ] HashMap<String, ItemStack[]> armourContents -- [ ] HashMap<String, ItemStack[]> inventoryContents -- [ ] HashMap<String, Location> locations -- [ ] HashMap<String, Integer> xplevel -- [ ] HashMap<String, GameMode> gamemode -- [ ] void clearInv(final Player p) -- [ ] void teleportPlayerFixed(final Player p, final Location l) -- [ ] void teleportAllPlayers(final ArrayList<String> players, final Location l) -- [ ] HashMap<String, Location> teleportAllPlayers(final ArrayList<String> players, final ArrayList<Location> locs) -- [ ] Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final String count) -- [ ] Location getComponentForArena(final JavaPlugin plugin, final String arenaname, final String component) -- [ ] Location getComponentForArenaRaw(final JavaPlugin plugin, final String arenaname, final String component) -- [ ] boolean isComponentForArenaValid(final JavaPlugin plugin, final String arenaname, final String component) -- [ ] boolean isComponentForArenaValidRaw(final JavaPlugin plugin, final String arenaname, final String component) -- [ ] void saveComponentForArena(final JavaPlugin plugin, final String arenaname, final String component, final Location comploc) -- [ ] void saveMainLobby(final JavaPlugin plugin, final Location comploc) -- [ ] Location getMainLobby(final JavaPlugin plugin) -- [ ] ArrayList<Location> getAllSpawns(final JavaPlugin plugin, final String arena) -- [ ] saveArenaToFile(final JavaPlugin plugin, final String arena) -- [ ] Sign getSignFromArena(final JavaPlugin plugin, final String arena) -- [ ] Location getSignLocationFromArena(final JavaPlugin plugin, final String arena) -- [ ] Arena getArenaBySignLocation(final JavaPlugin plugin, final Location sign) -- [ ] void updateSign(final JavaPlugin plugin, final Arena arena) -- [ ] void updateSign(final JavaPlugin plugin, final Arena arena, final SignChangeEvent event) -- [ ] void updateSign(final JavaPlugin plugin, final SignChangeEvent event, final String arenastate) -- [ ] ArrayList<Arena> loadArenas(final JavaPlugin plugin, final ArenasConfig cf) -- [ ] Arena initArena(final JavaPlugin plugin, final String arena) -- [ ] boolean isNumeric(final String s) -- [ ] ArrayList<ItemStack> parseItems(final String rawitems) -- [ ] void giveLobbyItems(final JavaPlugin plugin, final Player p) -- [ ] void giveSpectatorItems(final JavaPlugin plugin, final Player p) -- [ ] void sendMessage(final Player p, final String arenaname, final String msgraw) -- [ ] void sendMessage(final JavaPlugin plugin, final Player p, final String msgraw) -- [ ] ItemStack getCustomHead(final String name) -- [ ] void spawnPowerup(final JavaPlugin plugin, final Arena a, final Location l, final ItemStack item) -- [ ] Random r -- [ ] void spawnFirework(final Player p) -- [ ] void spawnFirework(final Location l) -- [ ] Color hexToRgb(final String colorStr) -- [ ] class ValueComparator -- [ ] class CompassPlayer -- [ ] CompassPlayer getNearestPlayer(final Player p, final Arena a) -- [ ] void sendStatsMessage(final PluginInstance pli, final Player p) -- [ ] void pushBack(final Location l, final Player p) -- [ ] Score getScore(final Objective obj, final String text) -- [ ] void resetScores(final Scoreboard obj, final String text) -- [ ] void saveInventory(final Player player) -- [ ] void restoreInventory(final Player player) - -## Validator.java - -- [ ] boolean isPlayerOnline(final String player) -- [ ] boolean isPlayerValid(final JavaPlugin plugin, final String player, final Arena arena) -- [ ] boolean isPlayerValid(final JavaPlugin plugin, final String player, final String arena) -- [ ] boolean isArenaValid(final JavaPlugin plugin, final Arena arena) -- [ ] boolean isArenaValid(final JavaPlugin plugin, final String arena) -- [ ] boolean isArenaValid(final JavaPlugin plugin, final String arena, final FileConfiguration cf) diff --git a/v2/api/src/site/markdown/roadmap.md b/v2/api/src/site/markdown/roadmap.md deleted file mode 100644 index a55e430b..00000000 --- a/v2/api/src/site/markdown/roadmap.md +++ /dev/null @@ -1,50 +0,0 @@ -# Minigames-Lib 2.0 - Roadmap - -## Milestone 1 - Showcase - -Create a simple show case including a small minigame. Following features should be realized: - -* Multi-Language Support -* Registering Minigames -* Chat command backend -* Creating a minigame arena via chat commands -* Creating a join sign -* Click a join sign -* Smart reset - -The game itself should be very simple. - -It should use a new declarative language to define the gaming rules. - -## Milestone 2 - Shop and GUI - -* Add multiple configurable shop systems -* GUI commands for the administrators -* GUI commands for users - -## Milestone 3 - Classes, Guns and game rules - -* Add classes and alolow them to influence the gaming rules. -* At the most game rules to build every (existing) game. -* Add the guns system. -* Skulls -* Team arenas/ Team support -* Persistent game states - -## Milestone 4 - Arcade, Map rotation and bungee - -* Bungee support -* More signs -* Arcade system -* Party system - -## Milestone 5 - Achievements, Rewards etc. - -* Achievements -* Rewards -* Effects -* NPCs, Monsters -* Clickable blocks (Chests etc.) -* Statistics -* Holograms -* Scoreboards diff --git a/v2/api/src/site/markdown/stories.md b/v2/api/src/site/markdown/stories.md deleted file mode 100644 index 7b49f58c..00000000 --- a/v2/api/src/site/markdown/stories.md +++ /dev/null @@ -1,593 +0,0 @@ -# User Stories - -## Table of Contents - -* [USER0010: Create a party](#user0001-create-a-party) -* [USER0002: Invite a party member](#user0002-invite-a-party-member) -* [USER0003: Accept party invitation](#admin0003-disband-party) -* [USER0004: Decline party invitation](#user0004-decline-party-invitation) -* [USER0005: Leave party](#user0005-leave-party) -* [USER0006: Disband party](#user0006-disband-party) -* [USER0007: Kick a party member](#user0007-kick-a-party-member) -* [USER0008: Join a queue with party](#user0008-join-a-queue-with-party) -* [USER0009: Leave a queue with party](#user0009-leave-a-queue-with-party) -* [USER0010: Display party scoreboard](#user0010-display-party-scoreboard) -* [USER0100: Join a queue](#user0100-join-a-queue) -* [USER0101: Leave a queue](#user0101-leave-a-queue) -* [USER0102: Display queue scoreboard](#user0102-display-queue-scoreboard) -* [USER0103: Join a waiting lobby](#user0103-join-a-waiting-lobby) -* [USER0104: Leave a waiting lobby](#user0104-leave-a-waiting-lobby) -* [USER0105: Display waiting lobby scoreboard](#user0105-display-waiting-lobby-scoreboard) -* [USER0106: Join a match](#user0106-join-a-match) -* [USER0107: Lose a match](#user0107-lose-a-match) -* [USER0108: Win a match](#user0108-win-a-match) -* [USER0109: Display match scoreboard](#user0109-display-match-scoreboard) -* [USER0110: Spectate a match](#user0110-spectate-a-match) -* [USER0111: Leave spectator match](#user0111-leave-spectator-match) -* [USER0112: Disconnect](#user0112-disconnect) -* [USER0113: Play a match](#user0113-play-a-match) -* [USER0114: Display animations](#user0114-display-animations) -* [USER0200: Display preferred locale](#user0200-display-preferred-locale) -* [USER0201: Use preferred locale](#user0201-use-preferred-locale) -* [USER0202: Change preferred locale](#user0202-change-preferred-locale) -* [USER0300: Display common information](#user0300-display-common-information) -* [USER0301: Display score list](#user0301-display-score-list) -* [USER0400: Open match shop](#user0400-open-match-shop) -* [USER0401: Select KIT](#user0401-select-kit) -* [USER0500: Accept admin test match invitation](#user0500-accept-admin-test-match-invitation) -* [USER0600: Joining queue as VIP](#user0600-joining-queue-as-vip) -* [USER0601: Joining queue as VIP with party](#user0601-joining-queue-as-vip-with-party) -* [USER0700: Displaying statistics](#user0700-displaying-statistics) -* [USER0701: Displaying achievements](#user0701-displaying-achievements) -* [USER0702: Getting achievements](#user0702-getting-achievements) -* [USER0703: Getting rewards](#user0703-getting-rewards) -* [USER0704: Playing arcade](#user0704-playing-arcade) -* [USER0705: Selecting guns and effects](#user0705-selecting-guns-and-effects) -* [USER0706: Joining waiting queue on different world](#user0706-joining-waiting-queue-on-different-world) -* [USER0707: Joining waiting queue on different server](#user0707-joining-waiting-queue-on-different-server) -* [USER0708: Displaying statistics](#user0708-displaying-statistics) -* [USER0800: Enter arena](#user0800-enter-arena) -* [USER0801: Entering Zone](#user0801-entering-zone) -* [USER0802: Leaving Zone](#user0802-leaving-zone) -* [USER0803: Switching Zone](#user0803-switching-zone) -* [USER0900: Changing blocks, Influencing game](#user0900-changing-blocks-influencing-game) -* [USER0901: Changing Game Mode](#user0901-changing-game-mode) -* [ADMIN0001: Display Information](#admin0001-display-information) -* [ADMIN0002: Debug](#admin0002-debug) -* [ADMIN0003: Disband Party](#admin0003-disband-party) -* [ADMIN0004: Kick party members](#admin0004-kick-party-members) -* [ADMIN0005: Display default language](#admin0005-display-default-language) -* [ADMIN0006: Change default language](#admin0006-change-default-language) -* [ADMIN0007: Display configuration options](#admin0007-display-configuration-options) -* [ADMIN0008: Change configuration options](#admin0008-change-configuration-options) -* [ADMIN0009: Enable Minigames Lib](#admin0009-enable-minigames-lib) -* [ADMIN0010: Disable Minigames lib](#admin0010-disable-minigames-lib) -* [ADMIN0011: Enable minigame](#admin0011-enable-minigame) -* [ADMIN0012: Disable minigame](#admin0012-disable-minigame) -* [ADMIN0014: Display language strings](#admin0014-display-language-strings) -* [ADMIN0015: Edit language string](#admin0015-edit-language-string) -* [ADMIN0100: Create arena](#admin0100-create-arena) -* [ADMIN0101: Edit arena](#admin0101-edit-arena) -* [ADMIN0102: Disable arena](#admin0102-disable-arena) -* [ADMIN0103: Enable arena](#admin0103-enable-arena) -* [ADMIN0104: Delete arena](#admin0104-delete-arena) -* [ADMIN0105: Check arena](#admin0105-check-arena) -* [ADMIN0106: Undo changes](#admin0106-undo-changes) -* [ADMIN0107: Save arena](#admin0107-save-arena) -* [ADMIN0108: Invite for Test match](#admin0108-invite-for-test-match) -* [ADMIN0109: Start test match](#admin0109-start-test-match) -* [ADMIN0110: Stop test match](#admin0110-stop-test-match) -* [ADMIN0111: Change arena state](#admin0111-change-arena-state) -* [ADMIN0200: Create arena zone](#admin0200-create-arena-zone) -* [ADMIN0201: Edit arena zone](#admin0201-edit-arena-zone) -* [ADMIN0202: Delete arena zone](#admin0202-delete-arena-zone) -* [ADMIN0300: Create arena component](#admin0300-create-arena-component) -* [ADMIN0301: Edit arena component](#admin0301-edit-arena-component) -* [ADMIN0302: Delete arena component](#admin0302-delete-arena-component) -* [ADMIN0400: Display minigame configuration options](#admin0400-display-minigame-configuration-options) -* [ADMIN0401: Edit minigame configuration options](#admin0401-edit-minigame-configuration-options) -* [ADMIN0402: Display minigame language strings](#admin0402-display-minigame-language-strings) -* [ADMIN0403: Edit minigame language strings](#admin0403-edit-minigame-language-strings) -* [ADMIN0500: Edit minigame kits](#admin0500-edit-minigame-kits) -* [ADMIN0600: Edit minigame shop](#admin0600-edit-minigame-shop) -* [ADMIN0700: Create queue](#admin0700-create-queue) -* [ADMIN0701: Edit arena queue](#admin0701-edit-arena-queue) -* [ADMIN0702: Delete arena queue](#admin0702-delete-arena-queue) -* [ADMIN0703: Enable arena queue](#admin0703-enable-arena-queue) -* [ADMIN0704: Disable arena queue](#admin0704-disable-arena-queue) -* [ADMIN0705: Create arcade queue](#admin0705-create-arcade-queue) -* [ADMIN0706: Edit arcade queue](#admin0706-edit-arcade-queue) -* [ADMIN0707: Delete arcade queue](#admin0707-delete-arcade-queue) -* [ADMIN0708: Enable arcade queue](#admin0708-enable-arcade-queue) -* [ADMIN0709: Disable arcade queue](#admin0709-disable-arcade-queue) -* [ADMIN0710: Create map rotation queue](#admin0710-create-map-rotation-queue) -* [ADMIN0711: Edit map rotation queue](#admin0711-edit-map-rotation-queue) -* [ADMIN0712: Delete map rotation queue](#admin0712-delete-map-rotation-queue) -* [ADMIN0713: Enable map rotation queue](#admin0713-enable-map-rotation-queue) -* [ADMIN0714: Disable map rotation queue](#admin0714-disable-map-rotation-queue) -* [ADMIN0800: Changing blocks, Influencing game](#admin0800-changing-blocks-influencing-game) -* [ADMIN0801: Changing Game Mode](#admin0801-changing-game-mode) -* [MC0001: Spawning mobs](#mc0001-spawning-mobs) -* [MC0002: Changing time](#mc0002-changing-time) -* [MC0003: Changing weather](#mc0003-changing-weather) -* [MC0004: Spawning mobs](#mc0004-spawning-mobs) -* [MC0005: Changing blocks, influencing game](#mc0005-changing-blocks-influencing-game) -* [MC0006: Mob enters arena](#mc0006-mob-enters-arena) -* [MC0007: Mob leaves arena](#mc0007-mob-leaves-arena) -* [MC0008: Mob enters zone](#mc0008-mob-enters-zone) -* [MC0009: Mob leaves arena](#mc0009-mob-leaves-arena) -* [MC0010: Mob attacks players](#mc0010-mob-attacks-players) - -## Community edition - -### Core - -#### User - -##### USER0001: Create a party - -TODO - -##### USER0002: Invite a party member - -TODO - -##### USER0003: Accept party invitation - -TODO - -##### USER0004: Decline party invitation - -TODO - -##### USER0005: Leave party - -TODO - -##### USER0006: Disband party - -TODO - -##### USER0007: Kick a party member - -TODO - -##### USER0008: Join a queue with party - -TODO - -##### USER0009: Leave a queue with party - -TODO - -##### USER0010: Display party scoreboard - -TODO - -##### USER0100: Join a queue - -TODO - -##### USER0101: Leave a queue - -TODO - -##### USER0102: Display queue scoreboard - -TODO - -##### USER0103: Join a waiting lobby - -TODO - -##### USER0104: Leave a waiting lobby - -TODO - -##### USER0105: Display waiting lobby scoreboard - -TODO - -##### USER0106: Join a match - -TODO - -##### USER0107: Lose a match - -TODO - -##### USER0108: Win a match - -TODO - -##### USER0109: Display match scoreboard - -TODO - -##### USER0110: Spectate a match - -TODO - -##### USER0111: Leave spectator match - -TODO - -##### USER0112: Disconnect - -TODO - -##### USER0113: Play a match - -TODO - -##### USER0114: Display animations - -TODO - -##### USER0200: Display preferred locale - -TODO - -##### USER0201: Use preferred locale - -TODO - -##### USER0202: Change preferred locale - -TODO - -##### USER0300: Display common information - -TODO - -##### USER0301: Display score list - -TODO - -##### USER0400: Open match shop - -TODO - -##### USER0401: Select KIT - -TODO - -##### USER0500: Accept admin test match invitation - -TODO - -##### USER0600: Joining queue as VIP - -TODO - -##### USER0601: Joining queue as VIP with party - -TODO - -##### USER0700: Displaying statistics - -TODO - -##### USER0701: Displaying achievements - -TODO - -##### USER0702: Getting achievements - -TODO - -##### USER0703: Getting rewards - -TODO - -##### USER0704: Playing arcade - -TODO - -##### USER0705: Selecting guns and effects - -TODO - -##### USER0706: Joining waiting queue on different world - -TODO - -##### USER0707: Joining waiting queue on different server - -TODO - -##### USER0708: Displaying statistics - -TODO - -##### USER0800: Enter arena - -TODO - -##### USER0801: Entering Zone - -TODO - -##### USER0802: Leaving Zone - -TODO - -##### USER0803: Switching Zone - -TODO - -##### USER0900: Changing blocks, Influencing game - -TODO - -##### USER0901: Changing Game Mode - -TODO - -#### Admin - -##### ADMIN0001: Display Information - -TODO - -##### ADMIN0002: Debug - -TODO - -##### ADMIN0003: Disband Party - -TODO - -##### ADMIN0004: Kick party members - -TODO - -##### ADMIN0005: Display default language - -TODO - -##### ADMIN0006: Change default language - -TODO - -##### ADMIN0007: Display configuration options - -TODO - -##### ADMIN0008: Change configuration options - -TODO - -##### ADMIN0009: Enable Minigames Lib - -TODO - -##### ADMIN0010: Disable Minigames lib - -TODO - -##### ADMIN0011: Enable minigame - -TODO - -##### ADMIN0012: Disable minigame - -TODO - -##### ADMIN0014: Display language strings - -TODO - -##### ADMIN0015: Edit language string - -TODO - -##### ADMIN0100: Create arena - -TODO - -##### ADMIN0101: Edit arena - -TODO - -##### ADMIN0102: Disable arena - -TODO - -##### ADMIN0103: Enable arena - -TODO - -##### ADMIN0104: Delete arena - -TODO - -##### ADMIN0105: Check arena - -TODO - -##### ADMIN0106: Undo changes - -TODO - -##### ADMIN0107: Save arena - -TODO - -##### ADMIN0108: Invite for Test match - -TODO - -##### ADMIN0109: Start test match - -TODO - -##### ADMIN0110: Stop test match - -TODO - -##### ADMIN0111: Change arena state - -TODO - -##### ADMIN0200: Create arena zone - -TODO - -##### ADMIN0201: Edit arena zone - -TODO - -##### ADMIN0202: Delete arena zone - -TODO - -##### ADMIN0300: Create arena component - -TODO - -##### ADMIN0301: Edit arena component - -TODO - -##### ADMIN0302: Delete arena component - -TODO - -##### ADMIN0400: Display minigame configuration options - -TODO - -##### ADMIN0401: Edit minigame configuration options - -TODO - -##### ADMIN0402: Display minigame language strings - -TODO - -##### ADMIN0403: Edit minigame language strings - -TODO - -##### ADMIN0500: Edit minigame kits - -TODO - -##### ADMIN0600: Edit minigame shop - -TODO - -##### ADMIN0700: Create queue - -TODO - -##### ADMIN0701: Edit arena queue - -TODO - -##### ADMIN0702: Delete arena queue - -TODO - -##### ADMIN0703: Enable arena queue - -TODO - -##### ADMIN0704: Disable arena queue - -TODO - -##### ADMIN0705: Create arcade queue - -TODO - -##### ADMIN0706: Edit arcade queue - -TODO - -##### ADMIN0707: Delete arcade queue - -TODO - -##### ADMIN0708: Enable arcade queue - -TODO - -##### ADMIN0709: Disable arcade queue - -TODO - -##### ADMIN0710: Create map rotation queue - -TODO - -##### ADMIN0711: Edit map rotation queue - -TODO - -##### ADMIN0712: Delete map rotation queue - -TODO - -##### ADMIN0713: Enable map rotation queue - -TODO - -##### ADMIN0714: Disable map rotation queue - -TODO - -##### ADMIN0800: Changing blocks, Influencing game - -TODO - -##### ADMIN0801: Changing Game Mode - -TODO - -#### System/Minecraft - -##### MC0001: Spawning mobs - -TODO - -##### MC0002: Changing time - -TODO - -##### MC0003: Changing weather - -TODO - -##### MC0004: Spawning mobs - -TODO - -##### MC0005: Changing blocks, influencing game - -TODO - -##### MC0006: Mob enters arena - -TODO - -##### MC0007: Mob leaves arena - -TODO - -##### MC0008: Mob enters zone - -TODO - -##### MC0009: Mob leaves arena - -TODO - -##### MC0010: Mob attacks players - -TODO - -## Premium edition - -TODO diff --git a/v2/api/src/site/site.xml b/v2/api/src/site/site.xml deleted file mode 100644 index 686e43f4..00000000 --- a/v2/api/src/site/site.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<project name="Maven"> - <bannerLeft> - <name>Maven</name> - <src>http://maven.apache.org/images/apache-maven-project.png</src> - <href>http://maven.apache.org/</href> - </bannerLeft> - <bannerRight> - <src>http://maven.apache.org/images/maven-small.gif</src> - </bannerRight> - <body> - <links> - <item name="Apache" href="http://www.apache.org/" /> - <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x/"/> - <item name="Maven 2" href="http://maven.apache.org/"/> - </links> - - <menu name="Minigames-Lib 2.0"> - <item name="Introduction" href="index.html"/> - <item name="Features" href="features.html" /> - <item name="Road Map" href="roadmap.html" /> - <item name="Development" href="development.html" /> - <item name="Game rules" href="gamerules.html" /> - <item name="Migration List" href="migrationList.html" /> - </menu> - - <menu ref="reports"/> - - </body> -</project> \ No newline at end of file diff --git a/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java deleted file mode 100644 index 7c2d3d81..00000000 --- a/v2/api/src/test/java/com/github/mce/minigames/api/test/CommonConfigTest.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -import org.junit.Test; - -import com.github.mce.minigames.api.config.CommonConfig; - -/** - * test case for {@link CommonConfig} - * - * @author mepeisen - */ -public class CommonConfigTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(CommonConfig.class); - } - -} diff --git a/v2/api/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java deleted file mode 100644 index 01124d1e..00000000 --- a/v2/api/src/test/java/com/github/mce/minigames/api/test/SharedUtil.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test; - -/** - * Some shared test utility. - * - * @author mepeisen - */ -public class SharedUtil -{ - - /** - * tests some things on enumerations to satisfy code coverage. - * - * @param clazz - * enum class to test - */ - public static void testEnumClass(Class<? extends Enum<?>> clazz) - { - try - { - for (Object o : (Object[]) clazz.getMethod("values").invoke(null)) //$NON-NLS-1$ - { - clazz.getMethod("valueOf", String.class).invoke(null, o.toString()); //$NON-NLS-1$ - } - } - catch (Throwable e) - { - throw new RuntimeException(e); - } - - } - -} diff --git a/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java deleted file mode 100644 index c86547e8..00000000 --- a/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenaStateTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.arena; - -import org.junit.Test; - -import com.github.mce.minigames.api.test.SharedUtil; - -import de.minigameslib.mgapi.api.arena.ArenaState; - -/** - * test case for {@link ArenaState} - * - * @author mepeisen - */ -public class ArenaStateTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(ArenaState.class); - } - -} diff --git a/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java b/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java deleted file mode 100644 index 421d80b3..00000000 --- a/v2/api/src/test/java/com/github/mce/minigames/api/test/arena/ArenasConfigTest.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -package com.github.mce.minigames.api.test.arena; - -import org.junit.Test; - -import com.github.mce.minigames.api.arena.ArenasConfig; -import com.github.mce.minigames.api.test.SharedUtil; - -/** - * test case for {@link ArenasConfig} - * - * @author mepeisen - */ -public class ArenasConfigTest -{ - - /** - * Tests the enum - */ - @Test - public void enumTest() - { - SharedUtil.testEnumClass(ArenasConfig.class); - } - -} diff --git a/v2/plugin/.classpath b/v2/plugin/.classpath deleted file mode 100644 index 17efa844..00000000 --- a/v2/plugin/.classpath +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="src" output="target/test-classes" path="src/test/java"> - <attributes> - <attribute name="optional" value="true"/> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> - <attributes> - <attribute name="maven.pomderived" value="true"/> - </attributes> - </classpathentry> - <classpathentry kind="output" path="target/classes"/> -</classpath> diff --git a/v2/plugin/.project b/v2/plugin/.project deleted file mode 100644 index 150fb3cb..00000000 --- a/v2/plugin/.project +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>MinigamesPlugin</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.wst.common.project.facet.core.builder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.m2e.core.maven2Builder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.jdt.core.javanature</nature> - <nature>org.eclipse.m2e.core.maven2Nature</nature> - <nature>org.eclipse.wst.common.project.facet.core.nature</nature> - </natures> -</projectDescription> diff --git a/v2/plugin/.settings/org.eclipse.core.resources.prefs b/v2/plugin/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index ed7df2b3..00000000 --- a/v2/plugin/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/<project>=UTF-8 -encoding/src=UTF-8 diff --git a/v2/plugin/.settings/org.eclipse.jdt.core.prefs b/v2/plugin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 597b1ac6..00000000 --- a/v2/plugin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,433 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.argumentPrefixes= -org.eclipse.jdt.core.codeComplete.argumentSuffixes= -org.eclipse.jdt.core.codeComplete.fieldPrefixes= -org.eclipse.jdt.core.codeComplete.fieldSuffixes= -org.eclipse.jdt.core.codeComplete.localPrefixes= -org.eclipse.jdt.core.codeComplete.localSuffixes= -org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= -org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning -org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=error -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning -org.eclipse.jdt.core.compiler.problem.unusedParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=true -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=next_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=200 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=200 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=true -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true -org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/v2/plugin/.settings/org.eclipse.jdt.ui.prefs b/v2/plugin/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 2d690b3c..00000000 --- a/v2/plugin/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,67 +0,0 @@ -cleanup.add_default_serial_version_id=false -cleanup.add_generated_serial_version_id=true -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=true -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=true -cleanup.always_use_this_for_non_static_method_access=true -cleanup.convert_functional_interfaces=true -cleanup.convert_to_enhanced_for_loop=true -cleanup.correct_indentation=true -cleanup.format_source_code=true -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=true -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=true -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=true -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=true -cleanup.remove_trailing_whitespaces=true -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=true -cleanup.use_this_for_non_static_field_access_only_if_necessary=false -cleanup.use_this_for_non_static_method_access=true -cleanup.use_this_for_non_static_method_access_only_if_necessary=false -cleanup_profile=_Minigames -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_Minigames -formatter_settings_version=12 -org.eclipse.jdt.ui.exception.name=e -org.eclipse.jdt.ui.gettersetter.use.is=true -org.eclipse.jdt.ui.javadoc=true -org.eclipse.jdt.ui.keywordthis=true -org.eclipse.jdt.ui.overrideannotation=true -org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*\r\n Copyright 2016 by minigameslib.de\r\n All rights reserved.\r\n If you do not own a hand-signed commercial license from minigames.de\r\n you are not allowed to use this software in any way except using\r\n GPL (see below).\r\n\r\n------\r\n\r\n This program is free software\: you can redistribute it and/or modify\r\n it under the terms of the GNU General Public License as published by\r\n the Free Software Foundation, either version 3 of the License, or\r\n (at your option) any later version.\r\n\r\n This program is distributed in the hope that it will be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n GNU General Public License for more details.\r\n\r\n You should have received a copy of the GNU General Public License\r\n along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n\r\n*/\r\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> diff --git a/v2/plugin/.settings/org.eclipse.m2e.core.prefs b/v2/plugin/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/v2/plugin/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/v2/plugin/.settings/org.eclipse.wst.common.project.facet.core.xml b/v2/plugin/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index 7cbf563e..00000000 --- a/v2/plugin/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<faceted-project> - <installed facet="java" version="1.8"/> - <installed facet="spigot.plugin" version="1.0"/> -</faceted-project> diff --git a/v2/plugin/maxMcVersion.txt b/v2/plugin/maxMcVersion.txt deleted file mode 100644 index 0c9cb695..00000000 --- a/v2/plugin/maxMcVersion.txt +++ /dev/null @@ -1 +0,0 @@ -1.11.2 \ No newline at end of file diff --git a/v2/plugin/minMcVersion.txt b/v2/plugin/minMcVersion.txt deleted file mode 100644 index 46843749..00000000 --- a/v2/plugin/minMcVersion.txt +++ /dev/null @@ -1 +0,0 @@ -1.8 \ No newline at end of file diff --git a/v2/plugin/pom.xml b/v2/plugin/pom.xml deleted file mode 100644 index f0105f7b..00000000 --- a/v2/plugin/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>MinigamesPlugin</artifactId> - <packaging>jar</packaging> - <name>MinigamesAPI</name> - <description>Rich Minigames API V2</description> - - <parent> - <groupId>de.minigameslib.mglib</groupId> - <artifactId>Minigames-Parent</artifactId> - <version>2.0.0-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>de.minigameslib.mglib</groupId> - <artifactId>MinigamesAPI</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib-api</artifactId> - </dependency> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib</artifactId> - </dependency> - - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>spigot-testsupport</artifactId> - <version>${mclib.version}</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>1.4</version> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <artifactSet> - <includes> - <include>de.minigameslib.mglib:*</include> - </includes> - </artifactSet> - <createSourcesJar>true</createSourcesJar> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - -</project> \ No newline at end of file diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java deleted file mode 100644 index cc843b56..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/ExtensionImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.ExtensionInterface; -import de.minigameslib.mgapi.api.ExtensionProvider; - -/** - * @author mepeisen - * - */ -class ExtensionImpl implements ExtensionInterface -{ - - /** owning plugin. */ - private final Plugin plugin; - - /** extension provider. */ - private final ExtensionProvider provider; - - /** - * @param plugin - * @param provider - */ - public ExtensionImpl(Plugin plugin, ExtensionProvider provider) - { - this.plugin = plugin; - this.provider = provider; - } - - @Override - public String getName() - { - return this.provider.getName(); - } - - @Override - public LocalizedMessageInterface getDisplayName() - { - return this.provider.getDisplayName(); - } - - @Override - public LocalizedMessageInterface getShortDescription() - { - return this.provider.getShortDescription(); - } - - @Override - public LocalizedMessageInterface getDescription() - { - return this.provider.getDescription(); - } - - @Override - public LocalizedMessageInterface getManual() - { - return this.provider.getManual(); - } - - @Override - public Plugin getPlugin() - { - return this.plugin; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java deleted file mode 100644 index 85ccf345..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibConfig.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import de.minigameslib.mclib.api.config.ConfigComment; -import de.minigameslib.mclib.api.config.ConfigurationBool; -import de.minigameslib.mclib.api.config.ConfigurationStringList; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.config.ConfigurationValues; - -/** - * Common configuration - * - * @author mepeisen - */ -@ConfigurationValues(path = "core") -public enum MglibConfig implements ConfigurationValueInterface -{ - - /** - * Debug flag. - */ - @ConfigurationBool(defaultValue = false) - @ConfigComment({ - "Set this to true to enable some debugging output within minigames.", - "This can be useful to find problems and errors.", - "But be aware that debugging slows down the system." - }) - Debug, - - /** - * Arena names. - */ - @ConfigurationStringList - @ConfigComment({ - "Contains the internal/ technical names of arenas. Each arena is listed here.", - "The arena core data is stored within arenas configuration folder." - }) - Arenas, - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java deleted file mode 100644 index 78bf44e0..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibMessages.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import de.minigameslib.mclib.api.enums.ChildEnum; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.AdminCheckCommand; -import de.minigameslib.mgapi.impl.cmd.AdminCommand; -import de.minigameslib.mgapi.impl.cmd.AdminComponentCommand; -import de.minigameslib.mgapi.impl.cmd.AdminComponentCreateCommand; -import de.minigameslib.mgapi.impl.cmd.AdminComponentDeleteCommand; -import de.minigameslib.mgapi.impl.cmd.AdminComponentListCommand; -import de.minigameslib.mgapi.impl.cmd.AdminComponentTpCommand; -import de.minigameslib.mgapi.impl.cmd.AdminCreateCommand; -import de.minigameslib.mgapi.impl.cmd.AdminDeleteCommand; -import de.minigameslib.mgapi.impl.cmd.AdminDisableCommand; -import de.minigameslib.mgapi.impl.cmd.AdminEnableCommand; -import de.minigameslib.mgapi.impl.cmd.AdminGuiCommand; -import de.minigameslib.mgapi.impl.cmd.AdminInviteCommand; -import de.minigameslib.mgapi.impl.cmd.AdminMaintainCommand; -import de.minigameslib.mgapi.impl.cmd.AdminSGuiCommand; -import de.minigameslib.mgapi.impl.cmd.AdminSignCommand; -import de.minigameslib.mgapi.impl.cmd.AdminSignCreateCommand; -import de.minigameslib.mgapi.impl.cmd.AdminSignDeleteCommand; -import de.minigameslib.mgapi.impl.cmd.AdminSignListCommand; -import de.minigameslib.mgapi.impl.cmd.AdminSignTpCommand; -import de.minigameslib.mgapi.impl.cmd.AdminStartCommand; -import de.minigameslib.mgapi.impl.cmd.AdminStopCommand; -import de.minigameslib.mgapi.impl.cmd.AdminTestCommand; -import de.minigameslib.mgapi.impl.cmd.AdminZoneCommand; -import de.minigameslib.mgapi.impl.cmd.AdminZoneCreateCommand; -import de.minigameslib.mgapi.impl.cmd.AdminZoneDeleteCommand; -import de.minigameslib.mgapi.impl.cmd.AdminZoneListCommand; -import de.minigameslib.mgapi.impl.cmd.AdminZoneTpCommand; -import de.minigameslib.mgapi.impl.cmd.ArenaCommand; -import de.minigameslib.mgapi.impl.cmd.ArenasCommand; -import de.minigameslib.mgapi.impl.cmd.InfoCommand; -import de.minigameslib.mgapi.impl.cmd.InfoExtensionCommand; -import de.minigameslib.mgapi.impl.cmd.InfoExtensionsCommand; -import de.minigameslib.mgapi.impl.cmd.InfoMinigameCommand; -import de.minigameslib.mgapi.impl.cmd.InfoMinigamesCommand; -import de.minigameslib.mgapi.impl.cmd.JoinCommand; -import de.minigameslib.mgapi.impl.cmd.LeaveCommand; -import de.minigameslib.mgapi.impl.cmd.ManualCommand; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.SpectateCommand; -import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorProvider; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; -import de.minigameslib.mgapi.impl.rules.BasicMatch; -import de.minigameslib.mgapi.impl.rules.BasicMatchTimer; - -/** - * The common messages. - * - * @author mepeisen - */ -@LocalizedMessages(value = "core") -@ChildEnum({ - // core - MglibCoreErrors.class, - ArenaImpl.Messages.class, - MarkerColorProvider.Messages.class, - // commands - Mg2Command.Messages.class, - InfoCommand.Messages.class, - InfoMinigamesCommand.Messages.class, - InfoExtensionsCommand.Messages.class, - InfoMinigameCommand.Messages.class, - InfoExtensionCommand.Messages.class, - ArenasCommand.Messages.class, - ArenaCommand.Messages.class, - JoinCommand.Messages.class, - SpectateCommand.Messages.class, - ManualCommand.Messages.class, - LeaveCommand.Messages.class, - // admin commands - AdminCommand.Messages.class, - AdminCreateCommand.Messages.class, - AdminDeleteCommand.Messages.class, - AdminEnableCommand.Messages.class, - AdminDisableCommand.Messages.class, - AdminCheckCommand.Messages.class, - AdminMaintainCommand.Messages.class, - AdminStartCommand.Messages.class, - AdminStopCommand.Messages.class, - AdminTestCommand.Messages.class, - AdminInviteCommand.Messages.class, - AdminGuiCommand.Messages.class, - AdminSGuiCommand.Messages.class, - // admin sign commands - AdminSignCommand.Messages.class, - AdminSignListCommand.Messages.class, - AdminSignCreateCommand.Messages.class, - AdminSignDeleteCommand.Messages.class, - AdminSignTpCommand.Messages.class, - // admin zone commands - AdminZoneCommand.Messages.class, - AdminZoneListCommand.Messages.class, - AdminZoneCreateCommand.Messages.class, - AdminZoneDeleteCommand.Messages.class, - AdminZoneTpCommand.Messages.class, - // admin component commands - AdminComponentCommand.Messages.class, - AdminComponentListCommand.Messages.class, - AdminComponentCreateCommand.Messages.class, - AdminComponentDeleteCommand.Messages.class, - AdminComponentTpCommand.Messages.class, - // admin tools - AdminToolHelper.Messages.class, - // rules - BasicMatch.Messages.class, - BasicMatchTimer.Messages.class, -}) -public enum MglibMessages implements LocalizedMessageInterface -{ - - /** Arena is booting. */ - @LocalizedMessage(defaultMessage = "BOOTING/ERROR", severity = MessageSeverityType.Error) - @MessageComment({"Arena is booting or has loading errors."}) - ArenaStateBooting, - - /** Arena is disabled. */ - @LocalizedMessage(defaultMessage = "DISABLED", severity = MessageSeverityType.Error) - @MessageComment({"Arena is disabled."}) - ArenaStateDisabled, - - /** Arena is under maintenance. */ - @LocalizedMessage(defaultMessage = "MAINTENANCE", severity = MessageSeverityType.Error) - @MessageComment({"Arena is under meintenance."}) - ArenaStateMaintenance, - - /** Arena is in join state. */ - @LocalizedMessage(defaultMessage = "JOIN", severity = MessageSeverityType.Success) - @MessageComment({"Arena is in join state."}) - ArenaStateJoin, - - /** Arena is starting. */ - @LocalizedMessage(defaultMessage = "START", severity = MessageSeverityType.Warning) - @MessageComment({"Arena is starting."}) - ArenaStateStarting, - - /** Arena is in PreMatch state. */ - @LocalizedMessage(defaultMessage = "PRE-MATCH", severity = MessageSeverityType.Winner) - @MessageComment({"Arena is in pre-match state."}) - ArenaStatePreMatch, - - /** Arena is in Match state. */ - @LocalizedMessage(defaultMessage = "MATCH", severity = MessageSeverityType.Winner) - @MessageComment({"Arena is in match state."}) - ArenaStateMatch, - - /** Arena is in PostMatch state. */ - @LocalizedMessage(defaultMessage = "POST-MATCH", severity = MessageSeverityType.Winner) - @MessageComment({"Arena is in post-match state."}) - ArenaStatePostMatch, - - /** Arena is resetting. */ - @LocalizedMessage(defaultMessage = "RESET", severity = MessageSeverityType.Warning) - @MessageComment({"Arena is resetting."}) - ArenaStateRestarting, - - /** Library is initializing. */ - @LocalizedMessage(defaultMessage = "INIT", severity = MessageSeverityType.Error) - @MessageComment({"Library is initializing."}) - StateInitializing, - - /** Library is running. */ - @LocalizedMessage(defaultMessage = "RUNNING", severity = MessageSeverityType.Success) - @MessageComment({"Library is running."}) - StateRunning, - - /** Library is terminating. */ - @LocalizedMessage(defaultMessage = "TERMINATING", severity = MessageSeverityType.Error) - @MessageComment({"Library is terminating."}) - StateTerminating, - - /** Library is sleeping/ inactive. */ - @LocalizedMessage(defaultMessage = "SLEEPING", severity = MessageSeverityType.Error) - @MessageComment({"Library is sleeping."}) - StateSleeping, - - /** true flag */ - @LocalizedMessage(defaultMessage = "✓", severity = MessageSeverityType.Success) - @MessageComment({"true flag"}) - FlagTrue, - - /** false flag */ - @LocalizedMessage(defaultMessage = "✗", severity = MessageSeverityType.Error) - @MessageComment({"false flag"}) - FlagFalse, - - /** - * Standard plugin version - */ - @LocalizedMessage(defaultMessage = "default") - @MessageComment({"Standard plugin version"}) - ModeStandard, - - /** - * Premium plugin vrsion - */ - @LocalizedMessage(defaultMessage = "premium") - @MessageComment({"Premium plugin version"}) - ModePremium; - - /** - * Common error messages - */ - @LocalizedMessages(value = "core.errors") - public enum MglibCoreErrors implements LocalizedMessageInterface - { - - /** - * Library is in wrong state; operation cannot proceed. - */ - @LocalizedMessage(defaultMessage = "Library in wrong state.", severity = MessageSeverityType.Error) - @MessageComment({"Library is in wrong state; operation cannot proceed."}) - LibInWrongState, - - /** - * Arena name contains illegal characters. - */ - @LocalizedMessage(defaultMessage = "Arena name contains illegal characters.", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Arena name contains illegal characters."}, - args = {@Argument("Arena name")}) - InvalidArenaName, - - /** - * Arena is duplicate - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already exists", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Arena is duplicate"}, - args = {@Argument("Arena name")}) - ArenaDuplicate, - - /** - * Plugin tries to register multiple minigames - */ - @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered a minigame", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Plugin tries to register multiple minigames"}, - args = {@Argument("Plugin name")}) - PluginMinigameDuplicate, - - /** - * Minigame with given name is already registered - */ - @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Minigame with given name is already registered"}, - args = {@Argument("Minigame name")}) - MinigameAlreadyRegistered, - - /** - * Plugin tries to register multiple extensions - */ - @LocalizedMessage(defaultMessage = "Plugin " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered an extension", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Plugin tries to register multiple extensions"}, - args = {@Argument("Plugin name")}) - PluginExtensionDuplicate, - - /** - * Extension with given name is already registered - */ - @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.CODE_COLOR + "%1$s.yml" + LocalizedMessage.ERROR_COLOR + " already registered", severity = MessageSeverityType.Error) - @MessageComment( - value = {"Extension with given name is already registered"}, - args = {@Argument("Extension name")}) - ExtensionAlreadyRegistered, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java deleted file mode 100644 index 54de4a84..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibObjectTypes.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import de.minigameslib.mclib.api.objects.ObjectTypeId; - -/** - * The object types for minigames. - * - * @author mepeisen - */ -public enum MglibObjectTypes implements ObjectTypeId -{ - - /** - * the arena object type. - */ - Arena, - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java deleted file mode 100644 index dcf711c5..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MglibPerms.java +++ /dev/null @@ -1,178 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import de.minigameslib.mclib.api.perms.Permission; -import de.minigameslib.mclib.api.perms.Permissions; -import de.minigameslib.mclib.api.perms.PermissionsInterface; - -/** - * Permissions for minigames library - * - * @author mepeisen - */ -@Permissions("mg2") -public enum MglibPerms implements PermissionsInterface -{ - - /** - * Permission for info command. - */ - @Permission("command.info") - CommandInfo, - - /** - * Permission for arenas command. - */ - @Permission("command.arenas") - CommandArenas, - - /** - * Permission for arena command. - */ - @Permission("command.arena") - CommandArena, - - /** - * Permission for join command. - */ - @Permission("command.join") - CommandJoin, - - /** - * Permission for spectate command. - */ - @Permission("command.spectate") - CommandSpectate, - - /** - * Permission for manual command. - */ - @Permission("command.manual") - CommandManual, - - /** - * Permission for leave command. - */ - @Permission("command.leave") - CommandLeave, - - /** - * Permission for admin command. - */ - @Permission("command.admin") - CommandAdmin, - - /** - * Permission for admin create command. - */ - @Permission("command.admin.create") - CommandAdminCreate, - - /** - * Permission for admin delete command. - */ - @Permission("command.admin.delete") - CommandAdminDelete, - - /** - * Permission for admin enable command. - */ - @Permission("command.admin.enable") - CommandAdminEnable, - - /** - * Permission for admin disable command. - */ - @Permission("command.admin.disable") - CommandAdminDisable, - - /** - * Permission for admin check command. - */ - @Permission("command.admin.check") - CommandAdminCheck, - - /** - * Permission for admin maintain command. - */ - @Permission("command.admin.maintain") - CommandAdminMaintain, - - /** - * Permission for admin start command. - */ - @Permission("command.admin.start") - CommandAdminStart, - - /** - * Permission for admin stop command. - */ - @Permission("command.admin.stop") - CommandAdminStop, - - /** - * Permission for admin test command. - */ - @Permission("command.admin.test") - CommandAdminTest, - - /** - * Permission for admin invite command. - */ - @Permission("command.admin.invite") - CommandAdminInvite, - - /** - * Permission for admin signs. - */ - @Permission("command.admin.sign") - CommandAdminSign, - - /** - * Permission for admin zones. - */ - @Permission("command.admin.zone") - CommandAdminZone, - - /** - * Permission for admin components. - */ - @Permission("command.admin.comp") - CommandAdminComp, - - /** - * Permission for admin gui command. - */ - @Permission("command.admin.gui") - CommandAdminGui, - - /** - * Permission for admin sgui command. - */ - @Permission("command.admin.sgui") - CommandAdminSGui - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java deleted file mode 100644 index aa336bf3..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigameImpl.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import java.util.Collection; -import java.util.stream.Collectors; - -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigameProvider; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * @author mepeisen - * - */ -class MinigameImpl implements MinigameInterface -{ - - /** owning plugin. */ - private final Plugin plugin; - - /** minigame provider. */ - private final MinigameProvider provider; - - /** - * @param plugin - * @param provider - */ - public MinigameImpl(Plugin plugin, MinigameProvider provider) - { - this.plugin = plugin; - this.provider = provider; - } - - @Override - public String getName() - { - return this.provider.getName(); - } - - @Override - public LocalizedMessageInterface getDisplayName() - { - return this.provider.getDisplayName(); - } - - @Override - public LocalizedMessageInterface getShortDescription() - { - return this.provider.getShortDescription(); - } - - @Override - public LocalizedMessageInterface getDescription() - { - return this.provider.getDescription(); - } - - @Override - public LocalizedMessageInterface getManual() - { - return this.provider.getManual(); - } - - @Override - public LocalizedMessageInterface getHowToPlay() - { - return this.provider.getHowToPlay(); - } - - @Override - public Plugin getPlugin() - { - return this.plugin; - } - - @Override - public ArenaTypeInterface getType(String typeName) - { - for (final ArenaTypeInterface type : EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class)) - { - if (type.name().equals(typeName)) - { - return type; - } - } - return null; - } - - @Override - public int getTypeCount() - { - return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).size(); - } - - @Override - public Collection<ArenaTypeInterface> getTypes(String prefix, int start, int limit) - { - return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class).stream().filter(t -> t.name().toLowerCase().startsWith(prefix.toLowerCase())).skip(start).limit(limit).collect(Collectors.toList()); - } - - @Override - public Collection<ArenaTypeInterface> getTypes(int start, int limit) - { - return EnumServiceInterface.instance().getEnumValues(this.getPlugin(), ArenaTypeInterface.class); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java deleted file mode 100644 index 42bffeb9..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPlugin.java +++ /dev/null @@ -1,876 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import java.io.File; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; -import java.util.UUID; -import java.util.logging.Level; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import org.bukkit.Bukkit; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.ServicePriority; -import org.bukkit.plugin.java.JavaPlugin; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.cmd.CommandImpl; -import de.minigameslib.mclib.api.config.ConfigServiceInterface; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mclib.api.util.function.McBiFunction; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.ExtensionInterface; -import de.minigameslib.mgapi.api.ExtensionProvider; -import de.minigameslib.mgapi.api.LibState; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigameProvider; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.events.ArenaCreateEvent; -import de.minigameslib.mgapi.api.events.ArenaCreatedEvent; -import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; -import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; -import de.minigameslib.mgapi.api.events.ArenaForceStartRequestedEvent; -import de.minigameslib.mgapi.api.events.ArenaLoseEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerDiesEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; -import de.minigameslib.mgapi.api.events.ArenaWinEvent; -import de.minigameslib.mgapi.api.events.MatchStartedEvent; -import de.minigameslib.mgapi.api.events.MatchStoppedEvent; -import de.minigameslib.mgapi.api.match.CommonMatchStatistics; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.BasicComponentTypes; -import de.minigameslib.mgapi.api.obj.BasicSignTypes; -import de.minigameslib.mgapi.api.obj.BasicZoneTypes; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; -import de.minigameslib.mgapi.api.rules.BasicComponentRuleSets; -import de.minigameslib.mgapi.api.rules.BasicLosingRuleSets; -import de.minigameslib.mgapi.api.rules.BasicSignRuleSets; -import de.minigameslib.mgapi.api.rules.BasicWinningRuleSets; -import de.minigameslib.mgapi.api.rules.BasicZoneRuleSets; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.rules.RuleSetType; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.api.team.CommonTeams; -import de.minigameslib.mgapi.api.team.TeamIdType; -import de.minigameslib.mgapi.impl.MglibMessages.MglibCoreErrors; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.arena.ArenaPlayerImpl; -import de.minigameslib.mgapi.impl.arena.ArenaPlayerPersistentData; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.gui.MgAnvilGuis; -import de.minigameslib.mgapi.impl.cmd.gui.MgClickGuis; -import de.minigameslib.mgapi.impl.internal.TaskManager; -import de.minigameslib.mgapi.impl.obj.BattleZone; -import de.minigameslib.mgapi.impl.obj.EmptyComponent; -import de.minigameslib.mgapi.impl.obj.EmptySign; -import de.minigameslib.mgapi.impl.obj.EmptyZone; -import de.minigameslib.mgapi.impl.obj.GenericComponent; -import de.minigameslib.mgapi.impl.obj.GenericSign; -import de.minigameslib.mgapi.impl.obj.GenericZone; -import de.minigameslib.mgapi.impl.obj.JoinSign; -import de.minigameslib.mgapi.impl.obj.JoinSpawnComponent; -import de.minigameslib.mgapi.impl.obj.JoinZone; -import de.minigameslib.mgapi.impl.obj.LeaveSign; -import de.minigameslib.mgapi.impl.obj.LeaveZone; -import de.minigameslib.mgapi.impl.obj.LobbyZone; -import de.minigameslib.mgapi.impl.obj.MainLobbySpawnComponent; -import de.minigameslib.mgapi.impl.obj.MainZone; -import de.minigameslib.mgapi.impl.obj.SpawnComponent; -import de.minigameslib.mgapi.impl.obj.SpectatorSpawnComponent; -import de.minigameslib.mgapi.impl.obj.SpectatorZone; -import de.minigameslib.mgapi.impl.rules.BasicMatch; -import de.minigameslib.mgapi.impl.rules.BasicMatchTimer; -import de.minigameslib.mgapi.impl.rules.BasicSpawns; -import de.minigameslib.mgapi.impl.rules.DieOnLeave; -import de.minigameslib.mgapi.impl.rules.LastManStanding; -import de.minigameslib.mgapi.impl.rules.LoseOnDeath; -import de.minigameslib.mgapi.impl.rules.LoseOnLeave; -import de.minigameslib.mgapi.impl.rules.NoMobsTargets; -import de.minigameslib.mgapi.impl.rules.NoWorldMobs; -import de.minigameslib.mgapi.impl.rules.NoWorldPets; -import de.minigameslib.mgapi.impl.rules.PlayerNoEntry; -import de.minigameslib.mgapi.impl.rules.PvPMode; -import de.minigameslib.mgapi.impl.tasks.InitTask; - -/** - * Implementation of minigames plugin - * - * @author mepeisen - */ -public class MinigamesPlugin extends JavaPlugin implements MinigamesLibInterface, MinigamesPluginInterface -{ - - /** - * the current library state. - */ - private LibState state = LibState.Initializing; - - /** - * the registered minigames per plugin - */ - private Map<String, MinigameImpl> minigamesPerPlugin = new HashMap<>(); - - /** - * the registered minigames per name - */ - private Map<String, MinigameImpl> minigamesPerName = new TreeMap<>(); - - /** - * the registered extensions per plugin - */ - private Map<String, ExtensionImpl> extensionsPerPlugin = new HashMap<>(); - - /** - * the registered extensions per name - */ - private Map<String, ExtensionImpl> extensionsPerName = new TreeMap<>(); - - /** the console commands. */ - private Mg2Command mg2Command = new Mg2Command(); - - /** arenas per name. */ - private Map<String, ArenaImpl> arenasPerName = new TreeMap<>(); - - /** - * The rule sets per plugin. - */ - private final Map<String, Set<RuleSetType>> ruleSetsPerPlugin = new HashMap<>(); - - /** - * The creator func by arena rule set type - */ - private final Map<ArenaRuleSetType, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface>> arenaRuleSetTypes = new HashMap<>(); - - /** - * The creator func by zone rule set type - */ - private final Map<ZoneRuleSetType, McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface>> zoneRuleSetTypes = new HashMap<>(); - - /** - * The creator func by component rule set type - */ - private final Map<ComponentRuleSetType, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface>> componentRuleSetTypes = new HashMap<>(); - - /** - * The creator func by sign rule set type - */ - private final Map<SignRuleSetType, McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface>> signRuleSetTypes = new HashMap<>(); - - /** - * Components per plugin - */ - private final Map<String, Set<ComponentTypeId>> componentsPerPlugin = new HashMap<>(); - - /** - * Component creator functions - */ - private final Map<ComponentTypeId, McSupplier<? extends ArenaComponentHandler>> components = new HashMap<>(); - - /** - * Zones per plugin - */ - private final Map<String, Set<ZoneTypeId>> zonesPerPlugin = new HashMap<>(); - - /** - * Zone creator functions - */ - private final Map<ZoneTypeId, McSupplier<? extends ArenaZoneHandler>> zones = new HashMap<>(); - - /** - * Signs per plugin - */ - private final Map<String, Set<SignTypeId>> signsPerPlugin = new HashMap<>(); - - /** - * Sign creator functions - */ - private final Map<SignTypeId, McSupplier<? extends ArenaSignHandler>> signs = new HashMap<>(); - - // TODO Watch for disabled plugins - - /** arena name check pattern */ - private static final Pattern ARENA_NAME_PATTERN = Pattern.compile("[^\\d\\p{L}-]"); //$NON-NLS-1$ - - /** plugin instance. */ - private static MinigamesPluginInterface INSTANCE; - - @Override - public void onEnable() - { - INSTANCE = this; - if (McLibInterface.instance().getApiVersion() != McLibInterface.APIVERSION_1_0_0) - { - throw new IllegalStateException("Cannot enable minigameslib. You installed an incompatible McLib-Version. " + McLibInterface.instance().getApiVersion()); //$NON-NLS-1$ - } - - EnumServiceInterface.instance().registerEnumClass(this, MglibConfig.class); - EnumServiceInterface.instance().registerEnumClass(this, MglibMessages.class); - EnumServiceInterface.instance().registerEnumClass(this, MglibPerms.class); - EnumServiceInterface.instance().registerEnumClass(this, MglibObjectTypes.class); - - EnumServiceInterface.instance().registerEnumClass(this, MgClickGuis.class); - EnumServiceInterface.instance().registerEnumClass(this, MgAnvilGuis.class); - - EnumServiceInterface.instance().registerEnumClass(this, BasicArenaRuleSets.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicWinningRuleSets.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicLosingRuleSets.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicComponentRuleSets.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicComponentTypes.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicSignRuleSets.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicSignTypes.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicZoneRuleSets.class); - EnumServiceInterface.instance().registerEnumClass(this, BasicZoneTypes.class); - - EnumServiceInterface.instance().registerEnumClass(this, CommonTeams.class); - EnumServiceInterface.instance().registerEnumClass(this, CommonMatchStatistics.class); - - Bukkit.getServicesManager().register(MinigamesLibInterface.class, this, this, ServicePriority.Highest); - Bukkit.getServicesManager().register(TaskManager.class, new TaskManager(), this, ServicePriority.Highest); - - McLibInterface.instance().registerEvent(this, ArenaCreatedEvent.class); - McLibInterface.instance().registerEvent(this, ArenaCreateEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerJoinedEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerJoinedSpectatorsEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerJoinEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerJoinSpectatorsEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerLeftEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerLeftSpectatorsEvent.class); - McLibInterface.instance().registerEvent(this, ArenaDeletedEvent.class); - McLibInterface.instance().registerEvent(this, ArenaDeleteEvent.class); - McLibInterface.instance().registerEvent(this, ArenaStateChangedEvent.class); - McLibInterface.instance().registerEvent(this, MatchStartedEvent.class); - McLibInterface.instance().registerEvent(this, MatchStoppedEvent.class); - McLibInterface.instance().registerEvent(this, ArenaWinEvent.class); - McLibInterface.instance().registerEvent(this, ArenaLoseEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerDieEvent.class); - McLibInterface.instance().registerEvent(this, ArenaPlayerDiesEvent.class); - McLibInterface.instance().registerEvent(this, ArenaForceStartRequestedEvent.class); - - this.registerRuleset(this, BasicArenaRuleSets.BasicMatch, BasicMatch::new); - this.registerRuleset(this, BasicArenaRuleSets.BasicSpawns, BasicSpawns::new); - this.registerRuleset(this, BasicArenaRuleSets.BasicMatchTimer, BasicMatchTimer::new); - this.registerRuleset(this, BasicWinningRuleSets.LastManStanding, LastManStanding::new); - this.registerRuleset(this, BasicLosingRuleSets.LoseOnDeath, LoseOnDeath::new); - this.registerRuleset(this, BasicZoneRuleSets.DieOnLeave, DieOnLeave::new); - this.registerRuleset(this, BasicZoneRuleSets.LoseOnLeave, LoseOnLeave::new); - this.registerRuleset(this, BasicZoneRuleSets.NoWorldMobs, NoWorldMobs::new); - this.registerRuleset(this, BasicZoneRuleSets.NoWorldPets, NoWorldPets::new); - this.registerRuleset(this, BasicZoneRuleSets.NoMobTargets, NoMobsTargets::new); - this.registerRuleset(this, BasicZoneRuleSets.PlayerNoEntry, PlayerNoEntry::new); - this.registerRuleset(this, BasicZoneRuleSets.PvPMode, PvPMode::new); - - try - { - this.registerArenaComponent(this, BasicComponentTypes.Empty, EmptyComponent::new, EmptyComponent.class); - this.registerArenaComponent(this, BasicComponentTypes.Generic, GenericComponent::new, GenericComponent.class); - this.registerArenaComponent(this, BasicComponentTypes.Spawn, SpawnComponent::new, SpawnComponent.class); - this.registerArenaComponent(this, BasicComponentTypes.JoinSpawn, JoinSpawnComponent::new, JoinSpawnComponent.class); - this.registerArenaComponent(this, BasicComponentTypes.MainLobbySpawn, MainLobbySpawnComponent::new, MainLobbySpawnComponent.class); - this.registerArenaComponent(this, BasicComponentTypes.SpectatorSpawn, SpectatorSpawnComponent::new, SpectatorSpawnComponent.class); - this.registerArenaSign(this, BasicSignTypes.Empty, EmptySign::new, EmptySign.class); - this.registerArenaSign(this, BasicSignTypes.Generic, GenericSign::new, GenericSign.class); - this.registerArenaSign(this, BasicSignTypes.Join, JoinSign::new, JoinSign.class); - this.registerArenaSign(this, BasicSignTypes.Leave, LeaveSign::new, LeaveSign.class); - this.registerArenaZone(this, BasicZoneTypes.Empty, EmptyZone::new, EmptyZone.class); - this.registerArenaZone(this, BasicZoneTypes.Generic, GenericZone::new, GenericZone.class); - this.registerArenaZone(this, BasicZoneTypes.Battle, BattleZone::new, BattleZone.class); - this.registerArenaZone(this, BasicZoneTypes.Join, JoinZone::new, JoinZone.class); - this.registerArenaZone(this, BasicZoneTypes.Leave, LeaveZone::new, LeaveZone.class); - this.registerArenaZone(this, BasicZoneTypes.Lobby, LobbyZone::new, LobbyZone.class); - this.registerArenaZone(this, BasicZoneTypes.Main, MainZone::new, MainZone.class); - this.registerArenaZone(this, BasicZoneTypes.Spectator, SpectatorZone::new, SpectatorZone.class); - - ObjectServiceInterface.instance().register(MglibObjectTypes.Arena, ArenaImpl.class); - ObjectServiceInterface.instance().resumeObjects(this, null); // TODO check for resume errors - } - catch (McException ex) - { - this.getLogger().log(Level.SEVERE, "Problems registering object types", ex); //$NON-NLS-1$ - } - - final String[] arenas = MglibConfig.Arenas.getStringList(); - for (final String arena : arenas) - { - try - { - this.checkArenaName(arena); - this.getLogger().log(Level.INFO, "Found arena " + arena); //$NON-NLS-1$ - final ArenaImpl arenaImpl = new ArenaImpl(arena, new File(this.getDataFolder(), "arenas/" + arena + ".yml")); //$NON-NLS-1$//$NON-NLS-2$ - this.arenasPerName.put(arena, arenaImpl); - } - catch (McException ex) - { - this.getLogger().log(Level.WARNING, "Problems loading arena", ex); //$NON-NLS-1$ - } - } - this.getLogger().log(Level.INFO, "Enabled mglib. Loaded arenas: " + this.arenasPerName.size()); //$NON-NLS-1$ - - new InitTask().runTaskLater(this, 10); - } - - /** - * Returns the minigame plugin instance - * - * @return singleton instance - */ - public static MinigamesPluginInterface instance() - { - return INSTANCE; - } - - /** - * Checks for valid arena name - * - * @param arena - * @throws McException - * thrown for invalid arena names. - */ - private void checkArenaName(String arena) throws McException - { - if (ARENA_NAME_PATTERN.matcher(arena).find()) - { - throw new McException(MglibCoreErrors.InvalidArenaName, arena); - } - } - - @Override - public void onDisable() - { - EnumServiceInterface.instance().unregisterAllEnumerations(this); - } - - @Override - public int getApiVersion() - { - return APIVERSION_1_0_0; - } - - @Override - public boolean debug() - { - return MglibConfig.Debug.getBoolean(); - } - - @Override - public LibState getState() - { - return this.state; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) - { - switch (command.getName()) - { - case "mg2": //$NON-NLS-1$ - final CommandImpl cmd = new CommandImpl(sender, command, label, args, "/mg2"); //$NON-NLS-1$ - try - { - McLibInterface.instance().runInNewContext(null, cmd, cmd.getPlayer(), null, null, () -> { - this.mg2Command.handle(cmd); - }); - } - catch (McException e) - { - cmd.send(e.getErrorMessage(), e.getArgs()); - } - break; - default: - return false; - } - return true; - } - - @Override - public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) - { - String lastArg = null; - String[] newArgs = null; - if (args.length > 0) - { - lastArg = args[args.length - 1].toLowerCase(); - newArgs = Arrays.copyOf(args, args.length - 1); - } - - switch (command.getName()) - { - case "mg2": //$NON-NLS-1$ - final CommandImpl cmd = new CommandImpl(sender, command, null, newArgs, "/im"); //$NON-NLS-1$ - final String last = lastArg; - try - { - - return McLibInterface.instance().calculateInNewContext(null, cmd, cmd.getPlayer(), null, null, () -> { - McLibInterface.instance().setContext(McPlayerInterface.class, cmd.getPlayer()); - return this.mg2Command.onTabComplete(cmd, last); - }); - } - catch (McException e) - { - cmd.send(e.getErrorMessage(), e.getArgs()); - } - break; - default: - break; - } - return Collections.emptyList(); - } - - @Override - public void initMinigame(Plugin plugin, MinigameProvider provider) throws McException - { - if (this.state != LibState.Initializing) - { - throw new McException(MglibCoreErrors.LibInWrongState); - } - if (this.minigamesPerPlugin.containsKey(plugin.getName())) - { - throw new McException(MglibCoreErrors.PluginMinigameDuplicate, plugin.getName()); - } - if (this.minigamesPerName.containsKey(provider.getName())) - { - throw new McException(MglibCoreErrors.MinigameAlreadyRegistered, provider.getName()); - } - final MinigameImpl minigame = new MinigameImpl(plugin, provider); - this.minigamesPerPlugin.put(plugin.getName(), minigame); - this.minigamesPerName.put(minigame.getName(), minigame); - } - - @Override - public MinigameInterface getMinigame(String name) - { - return this.minigamesPerName.get(name); - } - - @Override - public MinigameInterface getMinigame(Plugin plugin) - { - return this.minigamesPerPlugin.get(plugin.getName()); - } - - @Override - public int getMinigameCount() - { - return this.minigamesPerName.size(); - } - - @Override - public int getMinigameCount(String prefix) - { - return (int) this.minigamesPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); - } - - @Override - public Collection<MinigameInterface> getMinigames(int index, int limit) - { - return this.minigamesPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public Collection<MinigameInterface> getMinigames(String prefix, int index, int limit) - { - return this.minigamesPerName.values().stream().filter(p -> p.getName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public void initExtension(Plugin plugin, ExtensionProvider provider) throws McException - { - if (this.state != LibState.Initializing) - { - throw new McException(MglibCoreErrors.LibInWrongState); - } - if (this.extensionsPerPlugin.containsKey(plugin.getName())) - { - throw new McException(MglibCoreErrors.PluginExtensionDuplicate, plugin.getName()); - } - if (this.extensionsPerName.containsKey(provider.getName())) - { - throw new McException(MglibCoreErrors.ExtensionAlreadyRegistered, provider.getName()); - } - final ExtensionImpl extension = new ExtensionImpl(plugin, provider); - this.extensionsPerPlugin.put(plugin.getName(), extension); - this.extensionsPerName.put(extension.getName(), extension); - } - - @Override - public int getExtensionCount() - { - return this.extensionsPerName.size(); - } - - @Override - public int getExtensionCount(String prefix) - { - return (int) this.extensionsPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); - } - - @Override - public Collection<ExtensionInterface> getExtensions(int index, int limit) - { - return this.extensionsPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public Collection<ExtensionInterface> getExtensions(String prefix, int index, int limit) - { - return this.extensionsPerName.values().stream().filter(p -> p.getName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public ExtensionInterface getExtension(String name) - { - return this.extensionsPerName.get(name); - } - - @Override - public int getArenaCount() - { - return this.arenasPerName.size(); - } - - @Override - public int getArenaCount(String prefix) - { - return (int) this.arenasPerName.keySet().stream().filter(p -> p.toLowerCase().startsWith(prefix.toLowerCase())).count(); - } - - @Override - public int getArenaCount(Plugin plugin) - { - return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).count(); - } - - @Override - public int getArenaCount(Plugin plugin, String prefix) - { - return (int) this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).count(); - } - - @Override - public int getArenaCount(ArenaTypeInterface type) - { - return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).count(); - } - - @Override - public int getArenaCount(ArenaTypeInterface type, String prefix) - { - return (int) this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).count(); - } - - @Override - public List<ArenaInterface> getArenas(int index, int limit) - { - return this.arenasPerName.values().stream().skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public List<ArenaInterface> getArenas(String prefix, int index, int limit) - { - return this.arenasPerName.values().stream().filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public List<ArenaInterface> getArenas(Plugin plugin, int index, int limit) - { - return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public List<ArenaInterface> getArenas(Plugin plugin, String prefix, int index, int limit) - { - return this.arenasPerName.values().stream().filter(p -> p.getPlugin() == plugin).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit) - .collect(Collectors.toList()); - } - - @Override - public List<ArenaInterface> getArenas(ArenaTypeInterface type, int index, int limit) - { - return this.arenasPerName.values().stream().filter(p -> p.getType() == type).skip(index).limit(limit).collect(Collectors.toList()); - } - - @Override - public List<ArenaInterface> getArenas(ArenaTypeInterface type, String prefix, int index, int limit) - { - return this.arenasPerName.values().stream().filter(p -> p.getType() == type).filter(p -> p.getInternalName().toLowerCase().startsWith(prefix.toLowerCase())).skip(index).limit(limit) - .collect(Collectors.toList()); - } - - @Override - public ArenaInterface getArena(String name) - { - return this.arenasPerName.get(name); - } - - @Override - public ArenaInterface create(String name, ArenaTypeInterface type) throws McException - { - if (type == null) - { - throw new McException(CommonMessages.InternalError, "arena type must not be null"); //$NON-NLS-1$ - } - if (this.arenasPerName.containsKey(name)) - { - throw new McException(MglibCoreErrors.ArenaDuplicate, name); - } - - final ArenaCreateEvent createEvent = new ArenaCreateEvent(name, type); - Bukkit.getPluginManager().callEvent(createEvent); - if (createEvent.isCancelled()) - { - throw new McException(createEvent.getVetoReason(), createEvent.getVetoReasonArgs()); - } - final ArenaImpl arena = new ArenaImpl(name, type, new File(this.getDataFolder(), "arenas/" + name + ".yml")); //$NON-NLS-1$ //$NON-NLS-2$ - arena.saveData(); - - final Set<String> arenas = new HashSet<>(this.arenasPerName.keySet()); - arenas.add(name); - MglibConfig.Arenas.setStringList(arenas.toArray(new String[arenas.size()])); - MglibConfig.Arenas.saveConfig(); - - // everything ok, now we can add the arena to our internal map. - this.arenasPerName.put(name, arena); - - final ArenaCreatedEvent createdEvent = new ArenaCreatedEvent(arena); - Bukkit.getPluginManager().callEvent(createdEvent); - return arena; - } - - @Override - public ArenaPlayerInterface getPlayer(McPlayerInterface player) - { - ArenaPlayerImpl impl = player.getSessionStorage().get(ArenaPlayerImpl.class); - if (impl == null) - { - ArenaPlayerPersistentData persistent = player.getPersistentStorage().get(ArenaPlayerPersistentData.class); - if (persistent == null) - { - persistent = new ArenaPlayerPersistentData(); - player.getPersistentStorage().set(ArenaPlayerPersistentData.class, persistent); - } - impl = new ArenaPlayerImpl(player, persistent); - player.getSessionStorage().set(ArenaPlayerImpl.class, impl); - } - return impl; - } - - @Override - public ArenaPlayerInterface getPlayer(UUID uuid) - { - return this.getPlayer(ObjectServiceInterface.instance().getPlayer(uuid)); - } - - @Override - public McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator(ArenaRuleSetType type) - { - return this.arenaRuleSetTypes.get(type); - } - - @Override - public McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator(ComponentRuleSetType type) - { - return this.componentRuleSetTypes.get(type); - } - - @Override - public McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator(SignRuleSetType type) - { - return this.signRuleSetTypes.get(type); - } - - @Override - public McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator(ZoneRuleSetType type) - { - return this.zoneRuleSetTypes.get(type); - } - - @Override - public McSupplier<? extends ArenaComponentHandler> creator(ComponentTypeId type) - { - return this.components.get(type); - } - - @Override - public McSupplier<? extends ArenaZoneHandler> creator(ZoneTypeId type) - { - return this.zones.get(type); - } - - @Override - public McSupplier<? extends ArenaSignHandler> creator(SignTypeId type) - { - return this.signs.get(type); - } - - @Override - public void registerRuleset(Plugin plugin, ArenaRuleSetType ruleset, McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator) - { - this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); - this.arenaRuleSetTypes.put(ruleset, creator); - final String pluginName = ruleset.getPluginName(); - final String ruleSetName = ruleset.name(); - this.registerConfigEnum(plugin, ruleset, () -> { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - // final ArenaRuleSetInterface ruleSet = McLibInterface.instance().getContext(ArenaRuleSetInterface.class); - final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/arenarule-" + pluginName + "-" + ruleSetName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - return folder; - }); - } - - /** - * registers config from rule set - * @param plugin - * @param ruleset - * @param supplier - */ - private <T extends Enum<?> & ConfigurationValueInterface> void registerConfigEnum(Plugin plugin, RuleSetType ruleset, McSupplier<File> supplier) - { - final Class<T> configEnum = ruleset.getConfigClass(); - if (configEnum != null) - { - EnumServiceInterface.instance().registerEnumClass(plugin, configEnum); - ConfigServiceInterface.instance().registerFileProvider(plugin, configEnum, supplier); - } - } - - @Override - public void registerRuleset(Plugin plugin, ComponentRuleSetType ruleset, McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator) - { - this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); - this.componentRuleSetTypes.put(ruleset, creator); - final String pluginName = ruleset.getPluginName(); - final String ruleSetName = ruleset.name(); - this.registerConfigEnum(plugin, ruleset, () -> { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - final ArenaComponentHandler component = McLibInterface.instance().getContext(ArenaComponentHandler.class); - final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/componentrule-" + pluginName + "-" + ruleSetName + "/" + component.getComponent().getComponentId().toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - return folder; - }); - } - - @Override - public void registerRuleset(Plugin plugin, SignRuleSetType ruleset, McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator) - { - this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); - this.signRuleSetTypes.put(ruleset, creator); - final String pluginName = ruleset.getPluginName(); - final String ruleSetName = ruleset.name(); - this.registerConfigEnum(plugin, ruleset, () -> { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - final ArenaSignHandler sign = McLibInterface.instance().getContext(ArenaSignHandler.class); - final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/signrule-" + pluginName + "-" + ruleSetName + "/" + sign.getSign().getSignId().toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - return folder; - }); - } - - @Override - public void registerRuleset(Plugin plugin, ZoneRuleSetType ruleset, McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator) - { - this.ruleSetsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(ruleset); - this.zoneRuleSetTypes.put(ruleset, creator); - final String pluginName = ruleset.getPluginName(); - final String ruleSetName = ruleset.name(); - this.registerConfigEnum(plugin, ruleset, () -> { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - final ArenaZoneHandler zone = McLibInterface.instance().getContext(ArenaZoneHandler.class); - final File folder = new File(this.getDataFolder(), "arenas/" + arena.getInternalName() + "/componentrule-" + pluginName + "-" + ruleSetName + "/" + zone.getZone().getZoneId().toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - return folder; - }); - } - - @Override - public <T extends ArenaComponentHandler> void registerArenaComponent(Plugin plugin, ComponentTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException - { - ObjectServiceInterface.instance().register(type, clazz); - this.componentsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); - this.components.put(type, creator); - } - - @Override - public <T extends ArenaZoneHandler> void registerArenaZone(Plugin plugin, ZoneTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException - { - ObjectServiceInterface.instance().register(type, clazz); - this.zonesPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); - this.zones.put(type, creator); - } - - @Override - public <T extends ArenaSignHandler> void registerArenaSign(Plugin plugin, SignTypeId type, McSupplier<T> creator, Class<T> clazz) throws McException - { - ObjectServiceInterface.instance().register(type, clazz); - this.signsPerPlugin.computeIfAbsent(plugin.getName(), k -> new HashSet<>()).add(type); - this.signs.put(type, creator); - } - - @Override - public boolean isSpecialTeam(TeamIdType id) - { - return id == CommonTeams.Unknown || id == CommonTeams.Winners || id == CommonTeams.Losers || id == CommonTeams.Spectators; - } - - @Override - public Plugin getPlugin() - { - return this; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java deleted file mode 100644 index d7413e72..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/MinigamesPluginInterface.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl; - -import java.io.File; -import java.util.logging.Logger; - -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mclib.api.util.function.McBiFunction; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * An internal plugin interface - * - * @author mepeisen - */ -public interface MinigamesPluginInterface -{ - - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ - McBiFunction<ArenaRuleSetType, ArenaInterface, ArenaRuleSetInterface> creator(ArenaRuleSetType type); - - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ - McBiFunction<ComponentRuleSetType, ArenaComponentHandler, ComponentRuleSetInterface> creator(ComponentRuleSetType type); - - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ - McBiFunction<SignRuleSetType, ArenaSignHandler, SignRuleSetInterface> creator(SignRuleSetType type); - - /** - * Returns the create function for given rule set type - * - * @param type - * @return creator function - */ - McBiFunction<ZoneRuleSetType, ArenaZoneHandler, ZoneRuleSetInterface> creator(ZoneRuleSetType type); - - /** - * Returns the create function for given type - * - * @param type - * @return creator function - */ - McSupplier<? extends ArenaComponentHandler> creator(ComponentTypeId type); - - /** - * Returns the create function for given type - * - * @param type - * @return creator function - */ - McSupplier<? extends ArenaZoneHandler> creator(ZoneTypeId type); - - /** - * Returns the create function for given type - * - * @param type - * @return creator function - */ - McSupplier<? extends ArenaSignHandler> creator(SignTypeId type); - - /** - * Returns the plugin logger - * @return plugin logger - */ - Logger getLogger(); - - /** - * Returns the java plugin. - * @return java plugin - */ - Plugin getPlugin(); - - /** - * Returns the data folder. - * @return data folder. - */ - File getDataFolder(); - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java deleted file mode 100644 index a630388c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaData.java +++ /dev/null @@ -1,439 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import java.util.HashSet; -import java.util.Set; - -import de.minigameslib.mclib.api.locale.LocalizedConfigLine; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mclib.api.objects.EntityIdInterface; -import de.minigameslib.mclib.api.objects.SignIdInterface; -import de.minigameslib.mclib.api.objects.ZoneIdInterface; -import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; -import de.minigameslib.mclib.shared.api.com.PersistentField; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * @author mepeisen - */ -public class ArenaData extends AnnotatedDataFragment -{ - - /** - * Arena name. - */ - @PersistentField - private String name; - - /** - * Display name - */ - @PersistentField - private LocalizedConfigString displayName = new LocalizedConfigString(); - - /** - * Short arena description - */ - @PersistentField - private LocalizedConfigString shortDescription = new LocalizedConfigString(); - - /** - * long (multiline) arena description - */ - @PersistentField - private LocalizedConfigLine description = new LocalizedConfigLine(); - - /** - * arena manual - */ - @PersistentField - private LocalizedConfigLine manual = new LocalizedConfigLine(); - - /** - * arena type - */ - @PersistentField - private ArenaTypeInterface arenaType; - - /** - * flag to control if arena is enabled. - */ - @PersistentField - private boolean isEnabled; - - /** - * flag to control if arena is in maintenance mode. - */ - @PersistentField - private boolean isMaintenance; - - /** - * True if a match is pending. - */ - @PersistentField - private boolean matchPending; - - /** - * fixed rule set types. - */ - @PersistentField - private Set<ArenaRuleSetType> fixedRules = new HashSet<>(); - - /** - * optional rule set types. - */ - @PersistentField - private Set<ArenaRuleSetType> optionalRules = new HashSet<>(); - - /** - * The components of this arena - */ - @PersistentField - private Set<ComponentIdInterface> components = new HashSet<>(); - - /** - * The zones of this arena - */ - @PersistentField - private Set<ZoneIdInterface> zones = new HashSet<>(); - - /** - * The signs of this arena - */ - @PersistentField - private Set<SignIdInterface> signs = new HashSet<>(); - - /** - * The entities of this arena - */ - @PersistentField - private Set<EntityIdInterface> entities = new HashSet<>(); - - /** the teams used in this arena; empty set for non-team mode. */ - @PersistentField - private Set<TeamData> teams = new HashSet<>(); - - /** - * Constructor - */ - public ArenaData() - { - // constructor for loading from data sections - } - - /** - * @param name - * @param arenaType - */ - public ArenaData(String name, ArenaTypeInterface arenaType) - { - this.name = name; - this.arenaType = arenaType; - } - - /** - * @return the displayName - */ - public LocalizedConfigString getDisplayName() - { - return this.displayName; - } - - /** - * @param displayName the displayName to set - */ - public void setDisplayName(LocalizedConfigString displayName) - { - this.displayName = displayName; - } - - /** - * @return the shortDescription - */ - public LocalizedConfigString getShortDescription() - { - return this.shortDescription; - } - - /** - * @param shortDescription the shortDescription to set - */ - public void setShortDescription(LocalizedConfigString shortDescription) - { - this.shortDescription = shortDescription; - } - - /** - * @return the description - */ - public LocalizedConfigLine getDescription() - { - return this.description; - } - - /** - * @param description the description to set - */ - public void setDescription(LocalizedConfigLine description) - { - this.description = description; - } - - /** - * @return the manual - */ - public LocalizedConfigLine getManual() - { - return this.manual; - } - - /** - * @param manual the manual to set - */ - public void setManual(LocalizedConfigLine manual) - { - this.manual = manual; - } - - /** - * @return the name - */ - public String getName() - { - return this.name; - } - - /** - * @return the arenaType - */ - public ArenaTypeInterface getArenaType() - { - return this.arenaType; - } - - /** - * @return the isEnabled - */ - public boolean isEnabled() - { - return this.isEnabled; - } - - /** - * @param isEnabled the isEnabled to set - */ - public void setEnabled(boolean isEnabled) - { - this.isEnabled = isEnabled; - } - - /** - * @return the isMaintenance - */ - public boolean isMaintenance() - { - return this.isMaintenance; - } - - /** - * @param isMaintenance the isMaintenance to set - */ - public void setMaintenance(boolean isMaintenance) - { - this.isMaintenance = isMaintenance; - } - - /** - * @return the matchPending - */ - public boolean isMatchPending() - { - return this.matchPending; - } - - /** - * @param matchPending the matchPending to set - */ - public void setMatchPending(boolean matchPending) - { - this.matchPending = matchPending; - } - - /** - * @return the fixedRules - */ - public Set<ArenaRuleSetType> getFixedRules() - { - return this.fixedRules; - } - - /** - * @return the optionalRules - */ - public Set<ArenaRuleSetType> getOptionalRules() - { - return this.optionalRules; - } - - /** - * @return the components - */ - public Set<ComponentIdInterface> getComponents() - { - return this.components; - } - - /** - * @return the zones - */ - public Set<ZoneIdInterface> getZones() - { - return this.zones; - } - - /** - * @return the signs - */ - public Set<SignIdInterface> getSigns() - { - return this.signs; - } - - /** - * @return the entities - */ - public Set<EntityIdInterface> getEntities() - { - return this.entities; - } - - /** - * @return the teams - */ - public Set<TeamData> getTeams() - { - return this.teams; - } - - /** - * Team data. - */ - public static final class TeamData extends AnnotatedDataFragment - { - - /** the team id. */ - @PersistentField - private TeamIdType id; - - /** the team display name. */ - @PersistentField - private LocalizedConfigString name; - - /** - * Constructor - */ - public TeamData() - { - super(); - } - - /** - * @param id - * @param name - */ - public TeamData(TeamIdType id, LocalizedConfigString name) - { - this.id = id; - this.name = name; - } - - /** - * @return the id - */ - public TeamIdType getId() - { - return this.id; - } - - /** - * @param id the id to set - */ - public void setId(TeamIdType id) - { - this.id = id; - } - - /** - * @return the name - */ - public LocalizedConfigString getName() - { - return this.name; - } - - /** - * @param name the name to set - */ - public void setName(LocalizedConfigString name) - { - this.name = name; - } - - @Override - public int hashCode() - { - final int prime = 31; - int result = 1; - result = prime * result + ((this.id == null) ? 0 : this.id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - TeamData other = (TeamData) obj; - if (this.id == null) - { - if (other.id != null) - return false; - } - else if (!this.id.equals(other.id)) - return false; - return true; - } - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java deleted file mode 100644 index 72118fd9..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaImpl.java +++ /dev/null @@ -1,1776 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Optional; -import java.util.Random; -import java.util.Set; -import java.util.UUID; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.stream.Collectors; - -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.block.Sign; -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.locale.LocalizedConfigLine; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.EntityIdInterface; -import de.minigameslib.mclib.api.objects.EntityInterface; -import de.minigameslib.mclib.api.objects.EntityTypeId; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectHandlerInterface; -import de.minigameslib.mclib.api.objects.ObjectInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.objects.SignIdInterface; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.objects.ZoneIdInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mclib.shared.api.com.MemoryDataSection; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.arena.CheckFailure; -import de.minigameslib.mgapi.api.arena.CheckSeverity; -import de.minigameslib.mgapi.api.events.ArenaDeleteEvent; -import de.minigameslib.mgapi.api.events.ArenaDeletedEvent; -import de.minigameslib.mgapi.api.events.ArenaForceStartRequestedEvent; -import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.match.MatchPlayerInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.BasicComponentTypes; -import de.minigameslib.mgapi.api.obj.SpectatorSpawnComponentHandler; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.team.ArenaTeamInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; -import de.minigameslib.mgapi.impl.MglibObjectTypes; -import de.minigameslib.mgapi.impl.MinigamesPlugin; -import de.minigameslib.mgapi.impl.arena.ArenaData.TeamData; -import de.minigameslib.mgapi.impl.internal.TaskManager; -import de.minigameslib.mgapi.impl.rules.AbstractRuleSetContainer; -import de.minigameslib.mgapi.impl.tasks.AsyncArenaRestartTask; -import de.minigameslib.mgapi.impl.tasks.AsyncArenaStartTask; - -/** - * Arena data. - * - * @author mepeisen - */ -public class ArenaImpl implements ArenaInterface, ObjectHandlerInterface -{ - - /** - * The associated arena data - */ - private ArenaData arenaData; - - /** - * the arena data file. - */ - private File dataFile; - - /** arena type. */ - private ArenaTypeInterface type; - - /** current arena state. */ - private ArenaState state = ArenaState.Disabled; - - /** the mclib object */ - ObjectInterface object; - - /** arena logger */ - private ArenaLogger logger; - - /** the current arena match. */ - private ArenaMatchImpl match; - - /** current random. */ - private Random random = new Random(); - - /** - * rule set container - */ - private AbstractRuleSetContainer<ArenaRuleSetType, ArenaRuleSetInterface> ruleSets = new AbstractRuleSetContainer<ArenaRuleSetType, ArenaRuleSetInterface>() { - - @Override - protected void checkModifications() throws McException - { - if (ArenaImpl.this.getState() != ArenaState.Maintenance && ArenaImpl.this.getState() != ArenaState.Booting) - { - throw new McException(Messages.ModificationWrongState); - } - } - - @Override - protected void applyListeners(ArenaRuleSetInterface listeners) - { - ArenaImpl.this.object.registerHandlers(getPlugin(), listeners); - } - - @Override - protected void removeListeners(ArenaRuleSetInterface listeners) - { - ArenaImpl.this.object.unregisterHandlers(getPlugin(), listeners); - } - - @Override - protected ArenaRuleSetInterface create(ArenaRuleSetType ruleset) throws McException - { - return ArenaImpl.this.calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, ArenaImpl.this); - }); - } - }; - - /** - * Constructor to create an arena by using given data file. - * @param name - * @param dataFile - */ - public ArenaImpl(String name, File dataFile) - { - this.dataFile = dataFile; - this.state = ArenaState.Booting; - this.arenaData = new ArenaData(name, null); - } - - /** - * Constructor to create a new arena. - * @param name - * @param type - * @param dataFile - * @throws McException thrown if data file is invalid. - */ - public ArenaImpl(String name, ArenaTypeInterface type, File dataFile) throws McException - { - this.logger = new ArenaLogger(name); - this.dataFile = dataFile; - this.arenaData = new ArenaData(name, type); - this.arenaData.setMaintenance(true); - this.state = ArenaState.Maintenance; - this.object = ObjectServiceInterface.instance().createObject(MglibObjectTypes.Arena, this, false); - try - { - for (final ArenaRuleSetType ruleset : type.safeCreateProvider().getFixedArenaRules()) - { - this.ruleSets.applyFixedRuleSet(ruleset); - this.arenaData.getFixedRules().add(ruleset); - } - } - catch (McException ex) - { - this.object.delete(); - this.object = null; - throw ex; - } - this.saveData(); - } - - @Override - public void checkModifications() throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - } - - /** - * Resume the arena and load arena data file. - * @throws McException thrown if data file is invalid. - */ - public void resume() throws McException - { - try - { - final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); - this.arenaData = section.getFragment(ArenaData.class, "data"); //$NON-NLS-1$ - this.logger = new ArenaLogger(this.getInternalName()); - this.type = this.arenaData.getArenaType(); - if (this.type == null) - { - throw new McException(CommonMessages.InternalError, "Missing arena type. Did you install the minigame plugin? Arena: " + this.getInternalName()); //$NON-NLS-1$ - } - this.object = ObjectServiceInterface.instance().createObject(MglibObjectTypes.Arena, this, false); - try - { - resumeRuleSets(); - resumeComponents(); - resumeSigns(); - resumeZones(); - } - catch (McException ex) - { - this.logger.log(Level.WARNING, "Error while resume", ex); //$NON-NLS-1$ - try - { - this.object.delete(); - } - catch (RuntimeException ex2) - { - this.logger.log(Level.WARNING, "Error while deleting", ex2); //$NON-NLS-1$ - } - this.object = null; - throw ex; - } - catch (RuntimeException ex) - { - this.logger.log(Level.WARNING, "Error while resume", ex); //$NON-NLS-1$ - try - { - this.object.delete(); - } - catch (RuntimeException ex2) - { - this.logger.log(Level.WARNING, "Error while deleting", ex2); //$NON-NLS-1$ - } - this.object = null; - throw new McException(CommonMessages.InternalError, ex, ex.getMessage()); - } - } - catch (IOException | RuntimeException e) - { - throw new McException(CommonMessages.InternalError, e, e.getMessage()); - } - - if (!this.arenaData.isEnabled()) - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); - this.state = ArenaState.Disabled; - Bukkit.getPluginManager().callEvent(changedEvent); - } - else if (this.arenaData.isMaintenance()) - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Maintenance); - this.state = ArenaState.Maintenance; - Bukkit.getPluginManager().callEvent(changedEvent); - } - else - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Starting); - this.state = ArenaState.Starting; - Bukkit.getPluginManager().callEvent(changedEvent); - } - } - - /** - * @throws McException - */ - private void resumeComponents() throws McException - { - for (final ComponentIdInterface id : this.getComponents()) - { - final ComponentInterface comp = ObjectServiceInterface.instance().findComponent(id); - if (comp == null) - { - this.logger.warning("Unable to find arena component " + id); //$NON-NLS-1$ - } - else - { - final ArenaComponentHandler handler = (ArenaComponentHandler) comp.getHandler(); - handler.initArena(this); - } - } - } - - /** - * @throws McException - */ - private void resumeSigns() throws McException - { - for (final SignIdInterface id : this.getSigns()) - { - final SignInterface sign = ObjectServiceInterface.instance().findSign(id); - if (sign == null) - { - this.logger.warning("Unable to find arena sign " + id); //$NON-NLS-1$ - } - else - { - final ArenaSignHandler handler = (ArenaSignHandler) sign.getHandler(); - handler.initArena(this); - } - } - } - - /** - * @throws McException - */ - private void resumeZones() throws McException - { - for (final ZoneIdInterface id : this.getZones()) - { - final ZoneInterface zone = ObjectServiceInterface.instance().findZone(id); - if (zone == null) - { - this.logger.warning("Unable to find arena zone " + id); //$NON-NLS-1$ - } - else - { - final ArenaZoneHandler handler = (ArenaZoneHandler) zone.getHandler(); - handler.initArena(this); - } - } - } - - /** - * @throws McException - */ - private void resumeRuleSets() throws McException - { - final Set<ArenaRuleSetType> oldfixed = new HashSet<>(this.arenaData.getFixedRules()); - for (final ArenaRuleSetType ruleset : this.type.safeCreateProvider().getFixedArenaRules()) - { - if (!oldfixed.remove(ruleset)) - { - this.arenaData.getOptionalRules().remove(ruleset); - this.arenaData.getFixedRules().add(ruleset); - this.saveDataInternal(); - } - this.ruleSets.applyFixedRuleSet(ruleset); - } - for (final ArenaRuleSetType ruleset : oldfixed) - { - this.arenaData.getFixedRules().remove(ruleset); - this.arenaData.getOptionalRules().add(ruleset); - this.saveDataInternal(); - } - for (final ArenaRuleSetType ruleset : this.arenaData.getOptionalRules()) - { - this.ruleSets.applyOptionalRuleSet(ruleset); - } - } - - @Override - public Logger getLogger() - { - return this.logger; - } - - /** - * Checks if a match is pending; a flag to recover after server crashes. - * @return {@code true} if a match is pending - */ - public boolean isMatchPending() - { - return this.arenaData.isMatchPending(); - } - - @Override - public String getInternalName() - { - return this.arenaData.getName(); - } - - @Override - public ArenaTypeInterface getType() - { - return this.type; - } - - @Override - public LocalizedConfigString getDisplayName() - { - return this.arenaData.getDisplayName(); - } - - @Override - public LocalizedConfigString getShortDescription() - { - return this.arenaData.getShortDescription(); - } - - @Override - public LocalizedConfigLine getDescription() - { - return this.arenaData.getDescription(); - } - - @Override - public LocalizedConfigLine getManual() - { - return this.arenaData.getManual(); - } - - @Override - public void saveData() throws McException - { - if (this.state == ArenaState.Booting) - { - // booting arenas will never be ready for manipulation or save. - throw new McException(Messages.InvalidArenaType); - } - saveDataInternal(); - } - - /** - * @throws McException - */ - private void saveDataInternal() throws McException - { - final DataSection section = new MemoryDataSection(); - section.set("data", this.arenaData); //$NON-NLS-1$ - try - { - McLibInterface.instance().saveYmlFile(section, this.dataFile); - } - catch (IOException e) - { - throw new McException(CommonMessages.InternalError, e, e.getMessage()); - } - } - - @Override - public ArenaState getState() - { - return this.state; - } - - @Override - public void leave(ArenaPlayerInterface player) throws McException - { - final UUID uuid = player.getPlayerUUID(); - if (this.match == null) - { - throw new McException(Messages.CannotLeaveNotInArena, this.getDisplayName()); - } - - final MatchPlayerInterface mp = this.match.get(uuid); - if (mp == null || (!mp.isPlaying() && !mp.isSpec())) - { - throw new McException(Messages.CannotLeaveNotInArena, this.getDisplayName()); - } - - this.match.leave(player); - - player.getMcPlayer().sendMessage(Messages.YouLeft, this.getDisplayName()); - // port to main lobby - this.teleportRandom(player, this.getComponents(BasicComponentTypes.MainLobbySpawn)); - } - - /** - * Port player to a random component taken from given list - * @param player - * @param components - * @return {@code true} if player was ported - */ - private boolean teleportRandom(ArenaPlayerInterface player, Collection<?> components) - { - if (components.size() > 0) - { - final Object id = components.stream().skip(this.random.nextInt(components.size())).findFirst().get(); - ComponentInterface comp = null; - if (id instanceof ComponentInterface) - { - comp = (ComponentInterface) id; - } - else - { - comp = ObjectServiceInterface.instance().findComponent((ComponentIdInterface) id); - } - player.getMcPlayer().getBukkitPlayer().teleport(comp.getLocation()); - return true; - } - return false; - } - - /** - * Port player to a component - * @param player - * @param component - */ - private void teleport(ArenaPlayerInterface player, ComponentIdInterface component) - { - if (component != null) - { - player.getMcPlayer().getBukkitPlayer().teleport(ObjectServiceInterface.instance().findComponent(component).getLocation()); - } - } - - /** - * Port player to a component - * @param player - * @param component - */ - private void teleport(ArenaPlayerInterface player, ComponentInterface component) - { - if (component != null) - { - player.getMcPlayer().getBukkitPlayer().teleport(component.getLocation()); - } - } - - @Override - public void join(ArenaPlayerInterface player) throws McException - { - if (player.inArena()) - { - throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); - } - if (this.state != ArenaState.Join) - { - throw new McException(Messages.JoinWrongState); - } - - this.match.join(player); - player.getMcPlayer().sendMessage(Messages.JoinedArena, this.getDisplayName()); - // port to main lobby - this.teleportRandom(player, this.getComponents(BasicComponentTypes.JoinSpawn)); - } - - @Override - public void spectate(ArenaPlayerInterface player) throws McException - { - if (player.inArena()) - { - throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); - } - switch (this.state) - { - case Booting: - case Disabled: - case Join: - case Maintenance: - case Restarting: - case Starting: - default: - throw new McException(Messages.SpectateWrongState); - case Match: - case PostMatch: - case PreMatch: - this.match.spectate(player); - - player.getMcPlayer().sendMessage(Messages.SpectatingArena, this.getDisplayName()); - this.teleportToSpectate(player); - break; - } - } - - /** - * Teleports given player to spectators - * @param player - */ - private void teleportToSpectate(ArenaPlayerInterface player) - { - if (this.isMatch()) - { - // match in progress - final TeamIdType team = this.match.getTeam(player.getPlayerUUID()); - if (team != null) - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - final Collection<ComponentInterface> teamspawns = this.getComponents(BasicComponentTypes.SpectatorSpawn).stream() - .map(osi::findComponent) - .filter(c -> ((SpectatorSpawnComponentHandler)c.getHandler()).getTeam() == team) - .collect(Collectors.toList()); - if (this.teleportRandom(player, teamspawns)) - { - // succeeded - return; - } - } - } - this.teleportRandom(player, this.getComponents(BasicComponentTypes.SpectatorSpawn)); - } - - @Override - public void setEnabledState() throws McException - { - if (this.state != ArenaState.Disabled && this.state != ArenaState.Maintenance) - { - throw new McException(Messages.EnableWrongState); - } - if (this.arenaData.getArenaType() == null) - { - throw new McException(Messages.InvalidArenaType); - } - - this.arenaData.setEnabled(true); - this.saveData(); - - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Starting); - this.state = ArenaState.Starting; - Bukkit.getPluginManager().callEvent(changedEvent); - TaskManager.instance().queue(new AsyncArenaStartTask(this)); - } - - /** - * Non-api function to force disabled state, not meant to be called by minigames. - * @throws McException - */ - public void setDisabled0() throws McException - { - this.arenaData.setEnabled(false); - this.saveDataInternal(); - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); - this.match = null; - this.state = ArenaState.Disabled; - Bukkit.getPluginManager().callEvent(changedEvent); - } - - /** - * Non-api function to force maintenance state, not meant to be called by minigames. - * @throws McException - */ - public void setMaintenance0() throws McException - { - this.arenaData.setMaintenance(true); - this.saveDataInternal(); - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Maintenance); - this.match = null; - this.state = ArenaState.Maintenance; - Bukkit.getPluginManager().callEvent(changedEvent); - } - - /** - * Non-api function to force join state, not meant to be called by minigames. - * @throws McException - */ - public void setJoin0() throws McException - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Join); - this.state = ArenaState.Join; - final Set<TeamData> teams = this.arenaData.getTeams(); - this.match = new ArenaMatchImpl(this, teams.size() > 0); - for (final TeamData team : teams) - { - this.match.createTeam(team); - } - Bukkit.getPluginManager().callEvent(changedEvent); - } - - @Override - public void setDisabledState(boolean force) throws McException - { - switch (this.state) - { - default: - case Booting: - case Disabled: - throw new McException(Messages.DisableWrongState); - case Maintenance: - case Starting: - this.arenaData.setMaintenance(false); - this.arenaData.setEnabled(false); - this.saveData(); - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); - this.match = null; - this.state = ArenaState.Disabled; - Bukkit.getPluginManager().callEvent(changedEvent); - } - break; - case Join: - this.arenaData.setEnabled(false); - this.saveData(); - // abort current game to kick players being in waiting lobby. - this.abortGame(Messages.KickReasonDisable); - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); - this.state = ArenaState.Restarting; - Bukkit.getPluginManager().callEvent(changedEvent); - TaskManager.instance().queue(new AsyncArenaRestartTask(this)); - } - break; - case Match: - case PostMatch: - case PreMatch: - case Restarting: - this.arenaData.setEnabled(false); - this.saveData(); - if (force) - { - // abort current game. - this.abortGame(Messages.KickReasonDisable); - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Disabled); - this.state = ArenaState.Restarting; - Bukkit.getPluginManager().callEvent(changedEvent); - TaskManager.instance().queue(new AsyncArenaRestartTask(this)); - } - break; - } - } - - /** - * Aborts a current game and kicks all players - * @param kickReason - */ - private void abortGame(LocalizedMessageInterface kickReason) - { - for (final UUID uuid : this.match.getParticipants(true)) - { - this.kick(uuid, kickReason); - } - } - - /** - * Kicks a single player with given reason - * @param uuid - * @param kickReason - */ - private void kick(UUID uuid, LocalizedMessageInterface kickReason) - { - final McPlayerInterface player = ObjectServiceInterface.instance().getPlayer(uuid); - final ArenaPlayerImpl arenaPlayerImpl = (ArenaPlayerImpl)MinigamesLibInterface.instance().getPlayer(player); - if (this.match != null) - { - try - { - this.match.leave(arenaPlayerImpl); - } - catch (McException ex) - { - this.getLogger().log(Level.WARNING, "Problems kicking player", ex); //$NON-NLS-1$ - } - } - arenaPlayerImpl.switchArenaOrMode(null, false); - player.sendMessage(Messages.YouWereKicked, kickReason); - this.teleportRandom(arenaPlayerImpl, this.getComponents(BasicComponentTypes.MainLobbySpawn)); - } - - @Override - public void setMaintenance(boolean force) throws McException - { - switch (this.state) - { - default: - case Maintenance: - case Booting: - throw new McException(Messages.MaintenanceWrongState); - case Disabled: - if (this.arenaData.getArenaType() == null) - { - throw new McException(Messages.InvalidArenaType); - } - //$FALL-THROUGH$ - case Starting: - this.arenaData.setMaintenance(true); - this.arenaData.setEnabled(true); - this.saveData(); - { - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Maintenance); - this.state = ArenaState.Maintenance; - Bukkit.getPluginManager().callEvent(changedEvent); - } - break; - case Join: - case Match: - case PostMatch: - case PreMatch: - case Restarting: - this.arenaData.setMaintenance(true); - this.saveData(); - if (force) - { - // abort current game. - this.abortGame(Messages.KickReasonMaintenance); - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); - this.state = ArenaState.Restarting; - Bukkit.getPluginManager().callEvent(changedEvent); - TaskManager.instance().queue(new AsyncArenaRestartTask(this)); - } - break; - } - } - - @Override - public void start() throws McException - { - if (this.state != ArenaState.Join) - { - throw new McException(Messages.StartWrongState); - } - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.PreMatch); - this.state = ArenaState.PreMatch; - Bukkit.getPluginManager().callEvent(changedEvent); - // TODO Start pre match phase, teleport to spawns etc. - } - - @Override - public void finish() throws McException - { - if (!this.isMatch()) - { - throw new McException(Messages.FinishWrongState); - } - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); - this.state = ArenaState.Restarting; - this.match.finish(); - Bukkit.getPluginManager().callEvent(changedEvent); - // TODO Teleport players back to main lobby - } - - @Override - public void abort() throws McException - { - if (!this.isMatch()) - { - throw new McException(Messages.AbortWrongState); - } - final ArenaStateChangedEvent changedEvent = new ArenaStateChangedEvent(this, this.state, ArenaState.Restarting); - this.state = ArenaState.Restarting; - this.match.abort(); - Bukkit.getPluginManager().callEvent(changedEvent); - // TODO Teleport players back to main lobby - } - - @Override - public void forceStart() throws McException - { - // raise event and let the gaming rules do the rest - final ArenaForceStartRequestedEvent event = new ArenaForceStartRequestedEvent(this); - Bukkit.getPluginManager().callEvent(event); - } - - @Override - public void setTestState() throws McException - { - if (this.state != ArenaState.Maintenance) - { - throw new McException(Messages.TestWrongState); - } - for (final CheckFailure failure : this.check()) - { - if (failure.getSeverity() == CheckSeverity.Error) - { - throw new McException(Messages.TestCheckFailure); - } - } - this.setJoin0(); - } - - @Override - public boolean isMaintenance() - { - return this.arenaData.isMaintenance(); - } - - @Override - public boolean isDisabled() - { - return !this.arenaData.isEnabled(); - } - - @Override - public boolean isMatch() - { - switch (this.state) - { - case Booting: - case Join: - case Disabled: - case Maintenance: - case Restarting: - case Starting: - default: - return false; - case Match: - case PostMatch: - case PreMatch: - return true; - } - } - - @Override - public void delete() throws McException - { - this.object.delete(); - } - - /** - * Do deletion - */ - private void delete0() - { - try - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - for (final ComponentIdInterface id : this.getComponents()) - { - osi.findComponent(id).delete(); - } - for (final SignIdInterface id : this.getSigns()) - { - osi.findSign(id).delete(); - } - for (final ZoneIdInterface id : this.getZones()) - { - osi.findZone(id).delete(); - } - for (final EntityIdInterface id : this.getEntities()) - { - osi.findEntity(id).delete(); - } - } - catch (McException ex) - { - // should never happen because we checked deletion in canDelete - throw new IllegalStateException(ex); - } - - final ArenaDeletedEvent deletedEvent = new ArenaDeletedEvent(this); - Bukkit.getPluginManager().callEvent(deletedEvent); - } - - @Override - public Collection<CheckFailure> check() - { - // TODO implement checkup - return Collections.emptyList(); - } - - /** - * Returns the owning plugin. - * @return owning plugin - */ - public Plugin getPlugin() - { - return this.type.getPlugin(); - } - - @Override - public MinigameInterface getMinigame() - { - return this.type.getMinigame(); - } - - @Override - public int getPlayerCount() - { - if (this.match == null) - { - return 0; - } - return this.match.getParticipantCount(false); - } - - @Override - public int getActivePlayerCount() - { - if (this.match == null) - { - return 0; - } - return this.match.getPlayerCount(); - } - - @Override - public int getSpectatorCount() - { - if (this.match == null) - { - return 0; - } - return this.match.getSpectators().size(); - } - - @Override - public Collection<ArenaPlayerInterface> getPlayers() - { - if (this.match == null) - { - return Collections.emptyList(); - } - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.match.getParticipants(false).stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); - } - - @Override - public Collection<ArenaPlayerInterface> getActivePlayers() - { - if (this.match == null) - { - return Collections.emptyList(); - } - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.match.getPlayers().stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); - } - - @Override - public Collection<ArenaPlayerInterface> getSpectators() - { - if (this.match == null) - { - return Collections.emptyList(); - } - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - return this.match.getSpectators().stream().map(osi::getPlayer).map(mglib::getPlayer).collect(Collectors.toList()); - } - - @Override - public boolean isPlaying(McPlayerInterface player) - { - if (this.match == null) - { - return false; - } - final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); - return p == null ? false : p.isPlaying(); - } - - @Override - public boolean isSpectating(McPlayerInterface player) - { - if (this.match == null) - { - return false; - } - final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); - return p == null ? false : p.isSpec(); - } - - @Override - public boolean isPlaying(ArenaPlayerInterface player) - { - if (this.match == null) - { - return false; - } - final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); - return p == null ? false : p.isPlaying(); - } - - @Override - public boolean isSpectating(ArenaPlayerInterface player) - { - if (this.match == null) - { - return false; - } - final MatchPlayerInterface p = this.match.get(player.getPlayerUUID()); - return p == null ? false : p.isSpec(); - } - - @Override - public void read(DataSection section) - { - // not used - } - - @Override - public void write(DataSection section) - { - // not used - } - - @Override - public boolean test(DataSection section) - { - // not used - return false; - } - - @Override - public void canDelete() throws McException - { - if (ArenaImpl.this.getState() != ArenaState.Maintenance && ArenaImpl.this.getState() != ArenaState.Booting) - { - throw new McException(Messages.ModificationWrongState); - } - - final ArenaDeleteEvent deleteEvent = new ArenaDeleteEvent(this); - Bukkit.getPluginManager().callEvent(deleteEvent); - if (deleteEvent.isCancelled()) - { - throw new McException(deleteEvent.getVetoReason(), deleteEvent.getVetoReasonArgs()); - } - - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - for (final ComponentIdInterface id : this.getComponents()) - { - osi.findComponent(id).getHandler().canDelete(); - } - for (final SignIdInterface id : this.getSigns()) - { - osi.findSign(id).getHandler().canDelete(); - } - for (final ZoneIdInterface id : this.getZones()) - { - osi.findZone(id).getHandler().canDelete(); - } - for (final EntityIdInterface id : this.getEntities()) - { - osi.findEntity(id).getHandler().canDelete(); - } - } - - @Override - public void onCreate(ObjectInterface arg0) throws McException - { - this.object = arg0; - } - - @Override - public void onDelete() - { - this.delete0(); - } - - @Override - public void onPause(ObjectInterface arg0) - { - // not used - } - - @Override - public void onResume(ObjectInterface arg0) throws McException - { - // not used - } - - @Override - public ObjectInterface getObject() - { - return this.object; - } - - @Override - public ArenaRuleSetInterface getRuleSet(ArenaRuleSetType t) - { - return this.ruleSets.getRuleSet(t); - } - - @Override - public Collection<ArenaRuleSetType> getAppliedRuleSetTypes() - { - return this.ruleSets.getAppliedRuleSetTypes(); - } - - @Override - public Collection<ArenaRuleSetType> getAvailableRuleSetTypes() - { - // TODO implement available rule sets - return Collections.emptyList(); - } - - @Override - public boolean isFixed(ArenaRuleSetType ruleset) - { - return this.ruleSets.isFixed(ruleset); - } - - @Override - public boolean isOptional(ArenaRuleSetType ruleset) - { - return this.ruleSets.isOptional(ruleset); - } - - @Override - public boolean isApplied(ArenaRuleSetType ruleset) - { - return this.ruleSets.isApplied(ruleset); - } - - @Override - public boolean isAvailable(ArenaRuleSetType ruleset) - { - // TODO implement available rule sets - return false; - } - - @Override - public void reconfigureRuleSets(ArenaRuleSetType... rulesets) throws McException - { - for (final ArenaRuleSetType t : rulesets) - { - this.ruleSets.reapplyRuleSet(t); - } - } - - @Override - public void reconfigureRuleSet(ArenaRuleSetType ruleset) throws McException - { - this.ruleSets.reapplyRuleSet(ruleset); - } - - @Override - public void applyRuleSets(ArenaRuleSetType... rulesets) throws McException - { - for (final ArenaRuleSetType t : rulesets) - { - if (!this.ruleSets.isApplied(t)) - { - this.ruleSets.applyOptionalRuleSet(t); - this.arenaData.getOptionalRules().add(t); - this.saveData(); - } - } - } - - @Override - public void applyRuleSet(ArenaRuleSetType ruleset) throws McException - { - if (!this.ruleSets.isApplied(ruleset)) - { - this.ruleSets.applyOptionalRuleSet(ruleset); - this.arenaData.getOptionalRules().add(ruleset); - this.saveData(); - } - } - - @Override - public void removeRuleSets(ArenaRuleSetType... rulesets) throws McException - { - for (final ArenaRuleSetType t : rulesets) - { - if (this.ruleSets.isOptional(t)) - { - this.ruleSets.removeOptionalRuleSet(t); - this.arenaData.getOptionalRules().remove(t); - this.saveData(); - } - } - } - - @Override - public void removeRuleSet(ArenaRuleSetType ruleset) throws McException - { - if (this.ruleSets.isOptional(ruleset)) - { - this.ruleSets.removeOptionalRuleSet(ruleset); - this.arenaData.getOptionalRules().remove(ruleset); - this.saveData(); - } - } - - @Override - public Collection<ComponentIdInterface> getComponents() - { - return new ArrayList<>(this.arenaData.getComponents()); - } - - @Override - public Collection<ZoneIdInterface> getZones() - { - return new ArrayList<>(this.arenaData.getZones()); - } - - @Override - public Collection<SignIdInterface> getSigns() - { - return new ArrayList<>(this.arenaData.getSigns()); - } - - @Override - public Collection<EntityIdInterface> getEntities() - { - return new ArrayList<>(this.arenaData.getEntities()); - } - - @Override - public Collection<ComponentIdInterface> getComponents(ComponentTypeId... types) - { - final Set<ComponentIdInterface> ids = this.arenaData.getComponents(); - return ObjectServiceInterface.instance().findComponents(types).stream().map(ComponentInterface::getComponentId).filter(ids::contains).collect(Collectors.toList()); - } - - @Override - public Collection<ZoneIdInterface> getZones(ZoneTypeId... types) - { - final Set<ZoneIdInterface> ids = this.arenaData.getZones(); - return ObjectServiceInterface.instance().findZones(types).stream().map(ZoneInterface::getZoneId).filter(ids::contains).collect(Collectors.toList()); - } - - @Override - public Collection<SignIdInterface> getSigns(SignTypeId... types) - { - final Set<SignIdInterface> ids = this.arenaData.getSigns(); - return ObjectServiceInterface.instance().findSigns(types).stream().map(SignInterface::getSignId).filter(ids::contains).collect(Collectors.toList()); - } - - @Override - public Collection<EntityIdInterface> getEntities(EntityTypeId... types) - { - final Set<EntityIdInterface> ids = this.arenaData.getEntities(); - return ObjectServiceInterface.instance().findEntities(types).stream().map(EntityInterface::getEntityId).filter(ids::contains).collect(Collectors.toList()); - } - - @SuppressWarnings("unchecked") - @Override - public <T extends ArenaComponentHandler> T getHandler(ComponentIdInterface id) - { - return (T) ObjectServiceInterface.instance().findComponent(id).getHandler(); - } - - @SuppressWarnings("unchecked") - @Override - public <T extends ArenaSignHandler> T getHandler(SignIdInterface id) - { - return (T) ObjectServiceInterface.instance().findSign(id).getHandler(); - } - - @SuppressWarnings("unchecked") - @Override - public <T extends ArenaZoneHandler> T getHandler(ZoneIdInterface id) - { - return (T) ObjectServiceInterface.instance().findZone(id).getHandler(); - } - - @SuppressWarnings("unchecked") - @Override - public <T extends ArenaComponentHandler> T createComponent(Location location, ComponentTypeId t) throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - final ArenaComponentHandler handler = MinigamesPlugin.instance().creator(t).get(); - final ComponentInterface component = ObjectServiceInterface.instance().createComponent(t, location, handler, true); - handler.initArena(this); - this.arenaData.getComponents().add(component.getComponentId()); - this.saveData(); - return (T) handler; - } - - @SuppressWarnings("unchecked") - @Override - public <T extends ArenaSignHandler> T createSign(Sign sign, SignTypeId t) throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - final ArenaSignHandler handler = MinigamesPlugin.instance().creator(t).get(); - final SignInterface mcsign = ObjectServiceInterface.instance().createSign(t, sign, handler, true); - handler.initArena(this); - this.arenaData.getSigns().add(mcsign.getSignId()); - this.saveData(); - return (T) handler; - } - - @SuppressWarnings("unchecked") - @Override - public <T extends ArenaZoneHandler> T createZone(Cuboid cuboid, ZoneTypeId t) throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - final ArenaZoneHandler handler = MinigamesPlugin.instance().creator(t).get(); - final ZoneInterface zone = ObjectServiceInterface.instance().createZone(t, cuboid, handler, true); - handler.initArena(this); - this.arenaData.getZones().add(zone.getZoneId()); - this.saveData(); - return (T) handler; - } - - @Override - public ArenaMatchInterface getCurrentMatch() - { - return this.match; - } - - @Override - public void setSinglePlayerMode() throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - this.arenaData.getTeams().clear(); - this.saveData(); - } - - @Override - public void addTeam(TeamIdType team, LocalizedConfigString name) throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - if (team.isSpecial()) - { - throw new McException(CommonMessages.InternalError, "Unable to add special teams"); //$NON-NLS-1$ - } - this.arenaData.getTeams().removeIf(t -> t.getId() == team); - this.arenaData.getTeams().add(new TeamData(team, name)); - this.saveData(); - } - - @Override - public void removeTeam(TeamIdType team) throws McException - { - if (this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - this.arenaData.getTeams().removeIf(t -> t.getId() == team); - this.saveData(); - } - - @Override - public Collection<TeamIdType> getTeams() - { - return this.arenaData.getTeams().stream().map(TeamData::getId).collect(Collectors.toList()); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this); - return runnable.get(); - }); - } - - @Override - public ArenaTeamInterface getTeam(TeamIdType team) - { - final Optional<TeamData> data = this.arenaData.getTeams().stream().filter(t -> t.getId() == team).findFirst(); - return !data.isPresent() ? null : new ArenaTeamInterface() { - - @Override - public void setName(LocalizedConfigString name) throws McException - { - if (ArenaImpl.this.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - if (team.isSpecial()) - { - throw new McException(CommonMessages.InternalError, "Unable to rename special teams"); //$NON-NLS-1$ - } - data.get().setName(name); - ArenaImpl.this.saveData(); - } - - @Override - public LocalizedConfigString getName() - { - return data.get().getName(); - } - - @Override - public TeamIdType getId() - { - return team; - } - - @Override - public ArenaInterface getArena() - { - return ArenaImpl.this; - } - }; - } - - /** - * The arena messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "arena") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Invalid arena type detected - */ - @LocalizedMessage(defaultMessage = "Invalid arena type detected. Did you uninstall/deactivate the minigame plugin?", severity = MessageSeverityType.Error) - @MessageComment({"Invalid arena type detected"}) - InvalidArenaType, - - /** - * Cannot join because of wrong state - */ - @LocalizedMessage(defaultMessage = "Cannot join because arena is unavailable or a match is already running.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot join because of wrong state"}) - JoinWrongState, - - /** - * Join Succeeded - */ - @LocalizedMessage(defaultMessage = "You joined arena %1$s.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Join Succeeded"}, args = {@Argument("arena display name")}) - JoinedArena, - - /** - * Cannot join because of wrong state - */ - @LocalizedMessage(defaultMessage = "Cannot spectate because arena is unavailable or there is no pending match.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot spectate because of wrong state"}) - SpectateWrongState, - - /** - * Spectate Succeeded - */ - @LocalizedMessage(defaultMessage = "You are spectating arena %1$s.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Spectate Succeeded"}, args = {@Argument("arena display name")}) - SpectatingArena, - - /** - * Cannot enable because arena is not suspended - */ - @LocalizedMessage(defaultMessage = "Cannot enable arena because it is not suspended.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot spectate because of wrong state"}) - EnableWrongState, - - /** - * Cannot disable because arena is already disabled - */ - @LocalizedMessage(defaultMessage = "Cannot disable arena because it is already disabled.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot disable because arena is already disabled"}) - DisableWrongState, - - /** - * Kick reason: Arena was disabled by admin - */ - @LocalizedMessage(defaultMessage = "Arena was disabled by admin") - @MessageComment({"Kick reason: arena was disabled by admin"}) - KickReasonDisable, - - /** - * Cannot maintain because arena is already under maintenance - */ - @LocalizedMessage(defaultMessage = "Cannot maintain arena because it is already under maintenance.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot maintain because arena is already under maintenance"}) - MaintenanceWrongState, - - /** - * Cannot start test match because arena is not in maintenance mode - */ - @LocalizedMessage(defaultMessage = "Cannot start test match because arena ist not in maintenance.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot start test match because arena is not in maintenance mode"}) - TestWrongState, - - /** - * Cannot modify arena because of wrong state - */ - @LocalizedMessage(defaultMessage = "Cannot modify arena because of wrong state.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot modify arena because of wrong state"}) - ModificationWrongState, - - /** - * Cannot start match because arena is not in join mode - */ - @LocalizedMessage(defaultMessage = "Cannot start match because arena ist not in join mode.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot start match because arena is not in join mode"}) - StartWrongState, - - /** - * Cannot abort match because arena is not in match mode - */ - @LocalizedMessage(defaultMessage = "Cannot abort match because arena ist not running a match.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot abort match because arena is not running a match"}) - AbortWrongState, - - /** - * Cannot finish match because arena is not in match mode - */ - @LocalizedMessage(defaultMessage = "Cannot start match because arena ist not running a match.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot finish match because arena is not in match mode"}) - FinishWrongState, - - /** - * Cannot start test match because arena has errors - */ - @LocalizedMessage(defaultMessage = "Cannot start test match because arena has errors.", severity = MessageSeverityType.Error) - @MessageComment({"Cannot start test match because arena has errors"}) - TestCheckFailure, - - /** - * Kick reason: Arena is maintained by admin - */ - @LocalizedMessage(defaultMessage = "Arena is going into maintenance") - @MessageComment({"Kick reason: arena is maintained by admin"}) - KickReasonMaintenance, - - /** - * You were kicked - */ - @LocalizedMessage(defaultMessage = "You were kicked. Reason: %1$s", severity = MessageSeverityType.Error) - @MessageComment(value = {"You were kicked"}, args = @Argument("reason text")) - YouWereKicked, - - /** - * You cannot leave because not in arena - */ - @LocalizedMessage(defaultMessage = "You cannot leave because you are not within arena %1$s.", severity = MessageSeverityType.Error) - @MessageComment(value = {"You cannot leave because not in arena"}, args = @Argument("arena display name")) - CannotLeaveNotInArena, - - /** - * You are already in arena - */ - @LocalizedMessage(defaultMessage = "You cannot join because you are in arena %1$s.", severity = MessageSeverityType.Error) - @MessageComment(value = {"You are already in arena"}, args = @Argument("arena display name")) - AlreadyInArena, - - /** - * You left the arena - */ - @LocalizedMessage(defaultMessage = "You left arena %1$s.", severity = MessageSeverityType.Error) - @MessageComment(value = {"You left the arena"}, args = @Argument("arena display name")) - YouLeft, - - /** - * There was an invalid modification after match was finished - */ - @LocalizedMessage(defaultMessage = "Invalid modification within arena match (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"There was an invalid modification after match was finished"}, args = @Argument("arena display name")) - InvalidModificationAfterFinish, - - /** - * There was an invalid modification before match was started - */ - @LocalizedMessage(defaultMessage = "Invalid modification before arena match starts (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"There was an invalid modification before match was started"}, args = @Argument("arena display name")) - InvalidModificationBeforeStart, - - /** - * There was an invalid team action on single player matches - */ - @LocalizedMessage(defaultMessage = "Invalid team action in single player arena match (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"There was an invalid team action on single player matches"}, args = @Argument("arena display name")) - InvalidTeamActionOnSinglePlayerMatch, - - /** - * There was an invalid leave action - */ - @LocalizedMessage(defaultMessage = "Invalid team leave action in arena match (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"There was an invalid leave action"}, args = @Argument("arena display name")) - InvalidLeaveAction, - - /** - * There was an invalid join action - */ - @LocalizedMessage(defaultMessage = "Invalid team join action in arena match (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"There was an invalid join action"}, args = @Argument("arena display name")) - InvalidJoinAction, - - /** - * There was an invalid team switch - */ - @LocalizedMessage(defaultMessage = "Invalid team switch action in arena match (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"There was an invalid team switch"}, args = @Argument("arena display name")) - InvalidTeamSwitch, - - /** - * Cannot rejoin same match - */ - @LocalizedMessage(defaultMessage = "Unable to re-join a match you already played (%1$s).", severity = MessageSeverityType.Error) - @MessageComment(value = {"Cannot rejoin same match"}, args = @Argument("arena display name")) - CannotRejoin, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java deleted file mode 100644 index 98d84e22..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaLogger.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import java.util.logging.LogRecord; -import java.util.logging.Logger; - -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * Special logger for arenas. - * - * @author mepeisen - */ -public class ArenaLogger extends Logger -{ - - /** logger prefix */ - private String prefix; - - /** - * Arena logger - * - * @param internalName - */ - protected ArenaLogger(String internalName) - { - super(ArenaLogger.class.getName(), null); - setParent(MinigamesPlugin.instance().getLogger()); - this.prefix = "[arena:" + internalName + "] "; //$NON-NLS-1$ //$NON-NLS-2$ - } - - @Override - public void log(LogRecord logRecord) - { - logRecord.setMessage(this.prefix + logRecord.getMessage()); - super.log(logRecord); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java deleted file mode 100644 index 888d6434..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaMatchImpl.java +++ /dev/null @@ -1,1075 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; - -import org.bukkit.Bukkit; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaLoseEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedTeamEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftTeamEvent; -import de.minigameslib.mgapi.api.events.ArenaWinEvent; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.match.MatchPlayerInterface; -import de.minigameslib.mgapi.api.match.MatchStatisticId; -import de.minigameslib.mgapi.api.match.MatchTeamInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.CommonTeams; -import de.minigameslib.mgapi.api.team.TeamIdType; -import de.minigameslib.mgapi.impl.arena.ArenaData.TeamData; -import de.minigameslib.mgapi.impl.arena.ArenaImpl.Messages; - -/** - * Arena Match implementation - * - * @author mepeisen - */ -public class ArenaMatchImpl implements ArenaMatchInterface -{ - - // TODO fire bukkit events for statistics - - /** creation timestamp. */ - private final LocalDateTime created = LocalDateTime.now(); - - /** match start timestamp. */ - private LocalDateTime started; - - /** match finish timestamp. */ - private LocalDateTime finished; - - /** aborted flag. */ - private boolean aborted; - - /** players. */ - private Map<UUID, MatchPlayer> players = new HashMap<>(); - - /** teams. */ - private Map<TeamIdType, MatchTeam> teams = new HashMap<>(); - - /** - * the current results. - * The first entry represents the first place. - */ - private final List<MatchResultImpl> results = new ArrayList<>(); - - /** - * the position of the first loser. - */ - private int firstLoser; - - /** - * flag for team match - */ - private boolean teamMatch; - - /** - * the associated arena - */ - private ArenaInterface arena; - - /** - * Constructor - * @param arena the associated arena - * @param teamMatch flag for team matches - */ - public ArenaMatchImpl(ArenaInterface arena, boolean teamMatch) - { - this.teams.computeIfAbsent(CommonTeams.Unknown, MatchTeam::new); - this.teams.computeIfAbsent(CommonTeams.Spectators, MatchTeam::new); - this.teams.computeIfAbsent(CommonTeams.Losers, MatchTeam::new); - this.teams.computeIfAbsent(CommonTeams.Winners, MatchTeam::new); - this.teamMatch = teamMatch; - this.arena = arena; - } - - /** - * @return the associated arena - */ - private ArenaInterface getArena() - { - return this.arena; - } - - /** - * @param team - */ - void createTeam(TeamData team) - { - this.teams.computeIfAbsent(team.getId(), MatchTeam::new); - } - - @Override - public LocalDateTime getCreated() - { - return this.created; - } - - @Override - public LocalDateTime getStarted() - { - return this.started; - } - - @Override - public LocalDateTime getFinished() - { - return this.finished; - } - - @Override - public boolean isAborted() - { - return this.aborted; - } - - /** - * Starts this match - * @throws McException thrown if match was already started - */ - public void start() throws McException - { - if (this.started != null) - { - throw new McException(ArenaImpl.Messages.StartWrongState, this.arena.getDisplayName()); - } - this.started = LocalDateTime.now(); - } - - /** - * Fnishes this match (regular finish) - * @throws McException thrown if match is not pending - */ - public void finish() throws McException - { - checkMatchPending(); - this.finished = LocalDateTime.now(); - } - - /** - * @throws McException thrown if match is not pending - */ - private void checkMatchPending() throws McException - { - this.checkMatchStarted(); - this.checkMatchNotFinished(); - } - - /** - * @throws McException thrown if match is not finsihed - */ - private void checkMatchNotFinished() throws McException - { - if (this.finished != null) - { - throw new McException(ArenaImpl.Messages.InvalidModificationAfterFinish, this.arena.getDisplayName()); - } - } - - /** - * @throws McException thrown if match is started - */ - private void checkMatchStarted() throws McException - { - if (this.started == null) - { - throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, this.arena.getDisplayName()); - } - } - - /** - * @throws McException thrown if match is not a team match - */ - private void checkTeamMatch() throws McException - { - if (!this.teamMatch) - { - throw new McException(ArenaImpl.Messages.InvalidTeamActionOnSinglePlayerMatch, this.arena.getDisplayName()); - } - } - - /** - * Aborts this match - * @throws McException thrown if match is not pending - */ - public void abort() throws McException - { - checkMatchPending(); - this.finished = LocalDateTime.now(); - this.aborted = true; - } - - @Override - public Collection<UUID> getTeamMembers(TeamIdType team) - { - final MatchTeamInterface t = this.get(team); - return t == null ? Collections.emptyList() : t.getMembers(); - } - - @Override - public Collection<TeamIdType> getTeams() - { - return this.teams.keySet().stream().filter(t -> !t.isSpecial()).collect(Collectors.toList()); - } - - @Override - public TeamIdType getPreferredTeam() - { - final Optional<MatchTeam> team = this.teams.values().stream() - .filter(t -> !t.getTeamId().isSpecial()) - .min((t1, t2) -> Integer.compare(t1.getTeamMembers().size(), t2.getTeamMembers().size())); - return team.isPresent() ? team.get().getTeamId() : null; - } - - @Override - public void spectate(ArenaPlayerInterface player) throws McException - { - checkMatchNotFinished(); - - if (player.inArena() && player.getArena() != this.getArena()) - { - throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); - } - ((ArenaPlayerImpl)player).switchArenaOrMode(this.getArena().getInternalName(), false); - - final MatchPlayer mplayer = this.players.computeIfAbsent(player.getPlayerUUID(), MatchPlayer::new); - - if (mplayer.getTeam() == null) - { - // player never played, only spectating - mplayer.setTeam(CommonTeams.Spectators); - mplayer.setLeft(mplayer.getJoined()); - mplayer.setPlaying(false); - mplayer.setSpec(true); - - final ArenaPlayerJoinSpectatorsEvent joinEvent = new ArenaPlayerJoinSpectatorsEvent(this.getArena(), player, false); - Bukkit.getPluginManager().callEvent(joinEvent); - if (joinEvent.isCancelled()) - { - this.players.remove(player.getPlayerUUID()); - throw new McException(joinEvent.getVetoReason(), joinEvent.getVetoReasonArgs()); - } - } - else - { - // player was playing within the match - mplayer.setLeft(LocalDateTime.now()); - mplayer.setPlaying(false); - mplayer.setSpec(true); - - final ArenaPlayerJoinSpectatorsEvent joinEvent = new ArenaPlayerJoinSpectatorsEvent(this.getArena(), player, true); - Bukkit.getPluginManager().callEvent(joinEvent); - if (joinEvent.isCancelled()) - { - throw new McException(joinEvent.getVetoReason(), joinEvent.getVetoReasonArgs()); - } - } - this.teams.get(CommonTeams.Spectators).getTeamMembers().add(player.getPlayerUUID()); - - final ArenaPlayerJoinedSpectatorsEvent joinEvent = new ArenaPlayerJoinedSpectatorsEvent(this.getArena(), player, mplayer.getTeam() != null); - Bukkit.getPluginManager().callEvent(joinEvent); - } - - @Override - public void leave(ArenaPlayerInterface player) throws McException - { - checkMatchNotFinished(); - - if (player.getArena() != this.getArena()) - { - throw new McException(Messages.CannotLeaveNotInArena, this.getArena().getDisplayName()); - } - ((ArenaPlayerImpl)player).switchArenaOrMode(null, false); - - final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); - if (mplayer != null) - { - if (mplayer.isPlaying() && this.started != null) - { - // match was started, mark player as loser - final MatchTeam losers = this.teams.get(CommonTeams.Losers); - - mplayer.setTeam(CommonTeams.Losers); - mplayer.setLeft(LocalDateTime.now()); - losers.getTeamMembers().add(player.getPlayerUUID()); - - final MatchResultImpl result = new MatchResultImpl(false, new UUID[]{player.getPlayerUUID()}); - this.results.add(this.firstLoser, result); - for (int i = this.firstLoser; i < this.results.size(); i++) - { - this.results.get(i).setPlace(i + 1); - } - mplayer.setSpec(false); - mplayer.setPlaying(false); - - final ArenaPlayerLeftEvent leftEvent = new ArenaPlayerLeftEvent(this.getArena(), player); - Bukkit.getPluginManager().callEvent(leftEvent); - - final ArenaLoseEvent loseEvent = new ArenaLoseEvent(this.getArena(), result); - Bukkit.getPluginManager().callEvent(loseEvent); - } - else if (mplayer.getLeft() == null) - { - mplayer.setSpec(false); - mplayer.setPlaying(false); - mplayer.setLeft(LocalDateTime.now()); - - if (mplayer.getTeam() == CommonTeams.Spectators) - { - final ArenaPlayerLeftSpectatorsEvent leftEvent = new ArenaPlayerLeftSpectatorsEvent(this.getArena(), player); - Bukkit.getPluginManager().callEvent(leftEvent); - } - else - { - final ArenaPlayerLeftEvent leftEvent = new ArenaPlayerLeftEvent(this.getArena(), player); - Bukkit.getPluginManager().callEvent(leftEvent); - } - } - } - else - { - // non playing users will leave silently - } - } - - @Override - public void join(ArenaPlayerInterface player) throws McException - { - checkMatchNotFinished(); - - if (player.inArena()) - { - throw new McException(Messages.AlreadyInArena, player.getArena().getDisplayName()); - } - ((ArenaPlayerImpl)player).switchArenaOrMode(this.getArena().getInternalName(), false); - - TeamIdType preTeam = this.isTeamMatch() ? this.getPreferredTeam() : CommonTeams.Unknown; - if (preTeam == null) preTeam = CommonTeams.Unknown; - - final MatchPlayer mplayer = this.players.computeIfAbsent(player.getPlayerUUID(), MatchPlayer::new); - if (mplayer.getTeam() != null && mplayer.getTeam() != CommonTeams.Spectators) - { - throw new McException(ArenaImpl.Messages.CannotRejoin, this.arena.getDisplayName()); - } - - final ArenaPlayerJoinEvent joinEvent = new ArenaPlayerJoinEvent(this.getArena(), player, preTeam); - Bukkit.getPluginManager().callEvent(joinEvent); - if (joinEvent.isCancelled()) - { - this.players.remove(player.getPlayerUUID()); - throw new McException(joinEvent.getVetoReason(), joinEvent.getVetoReasonArgs()); - } - mplayer.setPlaying(true); - - if (mplayer.isSpec()) - { - this.teams.get(CommonTeams.Spectators).getTeamMembers().remove(player.getPlayerUUID()); - } - - if (this.isTeamMatch()) - { - if (joinEvent.getPreSelectedTeam() == null || joinEvent.getPreSelectedTeam().isSpecial()) - { - mplayer.setTeam(preTeam); - } - else - { - mplayer.setTeam(joinEvent.getPreSelectedTeam()); - } - } - else - { - mplayer.setTeam(CommonTeams.Unknown); - } - - this.teams.computeIfAbsent(mplayer.getTeam(), MatchTeam::new).getTeamMembers().add(player.getPlayerUUID()); - - final ArenaPlayerJoinedEvent joinedEvent = new ArenaPlayerJoinedEvent(this.getArena(), player); - Bukkit.getPluginManager().callEvent(joinedEvent); - - final ArenaPlayerJoinedTeamEvent join2Event = new ArenaPlayerJoinedTeamEvent(this.getArena(), player, mplayer.getTeam()); - Bukkit.getPluginManager().callEvent(join2Event); - } - - @Override - public void join(ArenaPlayerInterface player, TeamIdType team) throws McException - { - if (!this.players.containsKey(player.getPlayerUUID())) - { - this.join(player); - if (team != this.getTeam(player.getPlayerUUID())) - { - this.switchTeam(player, team); - } - return; - } - checkMatchNotFinished(); - checkTeamMatch(); - if (team.isSpecial()) - { - throw new McException(ArenaImpl.Messages.InvalidJoinAction, this.arena.getDisplayName()); - } - - final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); - if (mplayer.getTeam() == team || mplayer.getAdditionalTeams().contains(team)) - { - // already joined. do nothing - return; - } - if (mplayer.isSpec()) - { - // remove from spectators - this.teams.get(CommonTeams.Spectators).getTeamMembers().remove(player.getPlayerUUID()); - mplayer.setSpec(false); - } - mplayer.setPlaying(true); - mplayer.setTeam(team); - this.teams.computeIfAbsent(team, MatchTeam::new).getTeamMembers().add(player.getPlayerUUID()); - - final ArenaPlayerJoinedTeamEvent joinEvent = new ArenaPlayerJoinedTeamEvent(this.getArena(), player, team); - Bukkit.getPluginManager().callEvent(joinEvent); - } - - @Override - public void leave(ArenaPlayerInterface player, TeamIdType team) throws McException - { - if (!this.teams.containsKey(player.getPlayerUUID())) - { - throw new McException(ArenaImpl.Messages.CannotLeaveNotInArena, this.arena.getDisplayName()); - } - checkMatchNotFinished(); - checkTeamMatch(); - if (team.isSpecial()) - { - throw new McException(ArenaImpl.Messages.InvalidLeaveAction, this.arena.getDisplayName()); - } - - final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); - mplayer.getAdditionalTeams().remove(team); // remove from additional teams on demand - this.teams.get(team).getTeamMembers().remove(player.getPlayerUUID()); - if (mplayer.getTeam() == team) - { - // removed from primary team - if (mplayer.getAdditionalTeams().isEmpty()) - { - // switch to unkown - this.teams.get(CommonTeams.Unknown).getTeamMembers().add(player.getPlayerUUID()); - mplayer.setTeam(CommonTeams.Unknown); - } - else - { - // switch to first additional team - mplayer.setTeam(mplayer.getAdditionalTeams().iterator().next()); - mplayer.getAdditionalTeams().remove(mplayer.getTeam()); - } - } - - if (mplayer.isSpec()) - { - // remove from spectators - this.teams.get(CommonTeams.Spectators).getTeamMembers().remove(player.getPlayerUUID()); - mplayer.setSpec(false); - } - - final ArenaPlayerLeftTeamEvent leftEvent = new ArenaPlayerLeftTeamEvent(this.getArena(), player, team); - Bukkit.getPluginManager().callEvent(leftEvent); - } - - @Override - public void switchTeam(ArenaPlayerInterface player, TeamIdType team) throws McException - { - checkMatchNotFinished(); - checkTeamMatch(); - if (team.isSpecial()) - { - throw new McException(ArenaImpl.Messages.InvalidTeamSwitch, this.arena.getDisplayName()); - } - final MatchPlayer mplayer = this.players.get(player.getPlayerUUID()); - if (mplayer == null) - { - throw new McException(ArenaImpl.Messages.InvalidTeamSwitch, this.arena.getDisplayName()); - } - else if (mplayer.getTeam() == CommonTeams.Winners || mplayer.getTeam() == CommonTeams.Losers) - { - throw new McException(ArenaImpl.Messages.InvalidTeamSwitch, this.arena.getDisplayName()); - } - else - { - final ArenaPlayerLeftTeamEvent leftEvent = new ArenaPlayerLeftTeamEvent(this.getArena(), player, mplayer.getTeam()); - Bukkit.getPluginManager().callEvent(leftEvent); - - this.teams.get(mplayer.getTeam()).getTeamMembers().remove(player.getPlayerUUID()); - mplayer.setPlaying(true); - mplayer.setTeam(team); - this.teams.computeIfAbsent(team, MatchTeam::new).getTeamMembers().add(player.getPlayerUUID()); - - final ArenaPlayerJoinedTeamEvent joinEvent = new ArenaPlayerJoinedTeamEvent(this.getArena(), player, team); - Bukkit.getPluginManager().callEvent(joinEvent); - } - } - - @Override - public boolean isTeamMatch() - { - return this.teamMatch; - } - - @Override - public TeamIdType getTeam(UUID uuid) - { - final MatchPlayer player = this.players.get(uuid); - if (player != null) - { - return player.getTeam(); - } - return null; - } - - @Override - public Collection<UUID> getParticipants(boolean returnSpectators) - { - if (returnSpectators) - { - return this.players.keySet(); - } - return this.players.entrySet().stream() - .filter(p -> p.getValue().getTeam() != CommonTeams.Spectators) - .map(p -> p.getKey()) - .collect(Collectors.toList()); - } - - @Override - public int getParticipantCount(boolean returnSpectators) - { - if (returnSpectators) - { - return this.players.size(); - } - return (int) this.players.values().stream() - .filter(p -> p.getTeam() != CommonTeams.Spectators) - .count(); - } - - @Override - public Collection<UUID> getPlayers() - { - return this.players.entrySet().stream() - .filter(p -> p.getValue().isPlaying()) - .filter(p -> p.getValue().getTeam() != CommonTeams.Spectators) - .map(p -> p.getKey()) - .collect(Collectors.toList()); - } - - @Override - public int getPlayerCount() - { - return (int) this.players.entrySet().stream() - .filter(p -> p.getValue().isPlaying()) - .filter(p -> p.getValue().getTeam() != CommonTeams.Spectators) - .count(); - } - - @Override - public Collection<UUID> getSpectators() - { - return this.players.entrySet().stream() - .filter(p -> p.getValue().isSpec()) - .map(p -> p.getKey()) - .collect(Collectors.toList()); - } - - @Override - public int getSpectatorCount() - { - return (int) this.players.entrySet().stream() - .filter(p -> p.getValue().isSpec()) - .count(); - } - - @Override - public int getWinnerCount() - { - return this.teams.get(CommonTeams.Winners).getTeamMembers().size(); - } - - @Override - public int getLoserCount() - { - return this.teams.get(CommonTeams.Losers).getTeamMembers().size(); - } - - @Override - public Collection<UUID> getWinners() - { - return this.teams.get(CommonTeams.Winners).getMembers(); - } - - @Override - public Collection<UUID> getLosers() - { - return this.teams.get(CommonTeams.Losers).getMembers(); - } - - @Override - public Collection<MatchResult> getResults() - { - return new ArrayList<>(this.results); - } - - @Override - public int getResultCount() - { - return this.results.size(); - } - - @Override - public MatchResult getResult(int place) - { - int pos = place - 1; - return pos < 0 || this.results.size() <= pos ? null : this.results.get(pos); - } - - @Override - public ComponentIdInterface getSpawn(UUID uuid) - { - final MatchPlayer player = this.players.get(uuid); - return player == null ? null : player.getSpawn(); - } - - @Override - public void selectSpawn(UUID player, ComponentIdInterface spawn) throws McException - { - final MatchPlayer p = this.players.get(player); - if (p != null) - { - p.setSpawn(spawn); - } - } - - @Override - public int getStatistic(UUID player, MatchStatisticId statistic) - { - final MatchPlayer p = this.players.get(player); - if (p != null) - { - return p.getStatistic(statistic); - } - return 0; - } - - @Override - public MatchPlayerInterface get(UUID uuid) - { - return this.players.get(uuid); - } - - @Override - public MatchTeamInterface get(TeamIdType team) - { - return this.teams.get(team); - } - - @Override - public MatchTeamInterface getOrCreate(TeamIdType team) throws McException - { - this.checkMatchNotFinished(); - this.checkTeamMatch(); - return this.teams.computeIfAbsent(team, MatchTeam::new); - } - - @Override - public int getStatistic(TeamIdType team, MatchStatisticId statistic) - { - final MatchTeam p = this.teams.get(team); - if (p != null) - { - return p.getStatistic(statistic); - } - return 0; - } - - @Override - public void setStatistic(UUID player, MatchStatisticId statistic, int value) throws McException - { - this.checkMatchNotFinished(); - final MatchPlayer p = this.players.get(player); - if (p != null) - { - p.setStatistic(statistic, value); - } - } - - @Override - public void setStatistic(TeamIdType team, MatchStatisticId statistic, int value) throws McException - { - this.checkMatchNotFinished(); - this.checkTeamMatch(); - final MatchTeam p = this.teams.get(team); - if (p != null) - { - p.setStatistic(statistic, value); - } - } - - @Override - public int addStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException - { - this.checkMatchNotFinished(); - final MatchPlayer p = this.players.get(player); - if (p != null) - { - return p.addStatistic(statistic, amount); - } - return 0; - } - - @Override - public int addStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException - { - this.checkMatchNotFinished(); - this.checkTeamMatch(); - final MatchTeam p = this.teams.get(team); - if (p != null) - { - return p.addStatistic(statistic, amount); - } - return 0; - } - - @Override - public int decStatistic(UUID player, MatchStatisticId statistic, int amount) throws McException - { - this.checkMatchNotFinished(); - final MatchPlayer p = this.players.get(player); - if (p != null) - { - return p.decStatistic(statistic, amount); - } - return 0; - } - - @Override - public int decStatistic(TeamIdType team, MatchStatisticId statistic, int amount) throws McException - { - this.checkMatchNotFinished(); - this.checkTeamMatch(); - final MatchTeam p = this.teams.get(team); - if (p != null) - { - return p.decStatistic(statistic, amount); - } - return 0; - } - - @Override - public long getPlayTime(UUID player) - { - if (this.started == null) - { - return 0; - } - final MatchPlayer p = this.players.get(player); - if (p != null) - { - LocalDateTime start = p.getJoined().isBefore(this.started) ? this.started : p.getJoined(); - long result = 0; - if (p.getLeft() != null) - { - result = start.until(p.getLeft(), ChronoUnit.MILLIS); - } - else - { - result = start.until(LocalDateTime.now(), ChronoUnit.MILLIS); - } - return result < 0 ? 0 : result; - } - return 0; - } - - @Override - public KillerTracking getKillerTracking(UUID player) - { - return this.players.get(player); - } - - @Override - public void resetKillerTracking(UUID player) throws McException - { - this.checkMatchPending(); - final MatchPlayer p = this.players.get(player); - if (p != null) - { - p.setKillerTracking(null); - } - } - - @Override - public void trackDamageForKill(UUID targetPlayer, UUID damager) throws McException - { - this.checkMatchPending(); - final MatchPlayer p = this.players.get(targetPlayer); - if (p != null) - { - p.setKillerTracking(damager); - } - } - - @Override - public void setLoser(UUID... players) throws McException - { - this.checkMatchPending(); - if (players != null && players.length > 0) - { - final MatchTeam losers = this.teams.get(CommonTeams.Losers); - final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); - for (final UUID uuid : players) - { - final MatchPlayer p = this.players.get(uuid); - if (p != null) - { - p.setTeam(CommonTeams.Losers); - // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics - p.setLeft(LocalDateTime.now()); - p.setSpec(true); - p.setPlaying(false); - losers.getTeamMembers().add(uuid); - spectators.getTeamMembers().add(uuid); - } - } - final MatchResultImpl result = new MatchResultImpl(false, players); - this.results.add(this.firstLoser, result); - for (int i = this.firstLoser; i < this.results.size(); i++) - { - this.results.get(i).setPlace(i + 1); - } - final ArenaLoseEvent event = new ArenaLoseEvent(this.getArena(), result); - Bukkit.getPluginManager().callEvent(event); - } - } - - @Override - public void setWinner(UUID... players) throws McException - { - this.checkMatchPending(); - if (players != null && players.length > 0) - { - final MatchTeam winners = this.teams.get(CommonTeams.Winners); - final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); - for (final UUID uuid : players) - { - final MatchPlayer p = this.players.get(uuid); - if (p != null) - { - p.setTeam(CommonTeams.Winners); - // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics - p.setLeft(LocalDateTime.now()); - p.setSpec(true); - p.setPlaying(false); - winners.getTeamMembers().add(uuid); - spectators.getTeamMembers().add(uuid); - } - } - final MatchResultImpl result = new MatchResultImpl(true, players); - this.results.add(this.firstLoser, result); - for (int i = this.firstLoser; i < this.results.size(); i++) - { - this.results.get(i).setPlace(i + 1); - } - this.firstLoser++; - final ArenaWinEvent event = new ArenaWinEvent(this.getArena(), result); - Bukkit.getPluginManager().callEvent(event); - } - } - - @Override - public void setLoser(TeamIdType... teams) throws McException - { - this.checkMatchPending(); - if (teams != null && teams.length > 0) - { - final Set<UUID> playerSet = new HashSet<>(); - for (final TeamIdType team : teams) - { - final MatchTeam t = this.teams.get(team); - if (t != null) - { - playerSet.addAll(t.getTeamMembers()); - } - } - if (playerSet.size() > 0) - { - final MatchTeam losers = this.teams.get(CommonTeams.Losers); - final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); - for (final UUID uuid : playerSet) - { - final MatchPlayer p = this.players.get(uuid); - if (p != null) - { - p.setTeam(CommonTeams.Losers); - // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics - p.setLeft(LocalDateTime.now()); - p.setSpec(true); - p.setPlaying(false); - losers.getTeamMembers().add(uuid); - spectators.getTeamMembers().add(uuid); - } - } - final MatchResultImpl result = new MatchResultImpl(false, playerSet.toArray(new UUID[playerSet.size()])); - this.results.add(this.firstLoser, result); - for (int i = this.firstLoser; i < this.results.size(); i++) - { - this.results.get(i).setPlace(i + 1); - } - final ArenaLoseEvent event = new ArenaLoseEvent(this.getArena(), result); - Bukkit.getPluginManager().callEvent(event); - } - } - } - - @Override - public void setWinner(TeamIdType... teams) throws McException - { - this.checkMatchPending(); - if (teams != null && teams.length > 0) - { - final Set<UUID> playerSet = new HashSet<>(); - for (final TeamIdType team : teams) - { - final MatchTeam t = this.teams.get(team); - if (t != null) - { - playerSet.addAll(t.getTeamMembers()); - } - } - if (playerSet.size() > 0) - { - final MatchTeam winners = this.teams.get(CommonTeams.Winners); - final MatchTeam spectators = this.teams.get(CommonTeams.Spectators); - for (final UUID uuid : playerSet) - { - final MatchPlayer p = this.players.get(uuid); - if (p != null) - { - p.setTeam(CommonTeams.Winners); - // TODO Think about the following lines. If a player left before (f.e. a disconnect) this may override statistics - p.setLeft(LocalDateTime.now()); - p.setSpec(true); - p.setPlaying(false); - winners.getTeamMembers().add(uuid); - spectators.getTeamMembers().add(uuid); - } - } - final MatchResultImpl result = new MatchResultImpl(true, playerSet.toArray(new UUID[playerSet.size()])); - this.results.add(this.firstLoser, result); - for (int i = this.firstLoser; i < this.results.size(); i++) - { - this.results.get(i).setPlace(i + 1); - } - this.firstLoser++; - final ArenaWinEvent event = new ArenaWinEvent(this.getArena(), result); - Bukkit.getPluginManager().callEvent(event); - } - } - } - - /** - * Implementation of match results. - */ - private final static class MatchResultImpl implements MatchResult - { - - /** the place this result represents. */ - private int place; - - /** winning flag. */ - private final boolean isWin; - - /** players on this place. */ - private final List<UUID> players = new ArrayList<>(); - - /** - * @param isWin - * @param uuids - */ - public MatchResultImpl(boolean isWin, UUID... uuids) - { - this.isWin = isWin; - for (final UUID player : uuids) - { - this.players.add(player); - } - } - - /** - * @param place the place to set - */ - public void setPlace(int place) - { - this.place = place; - } - - @Override - public int getPlace() - { - return this.place; - } - - @Override - public Collection<UUID> getPlayers() - { - return this.players; - } - - @Override - public boolean isWin() - { - return this.isWin; - } - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java deleted file mode 100644 index 9ed75efa..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerImpl.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import org.bukkit.Bukkit; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.FalseStub; -import de.minigameslib.mclib.api.util.function.McOutgoingStubbing; -import de.minigameslib.mclib.api.util.function.McPredicate; -import de.minigameslib.mclib.api.util.function.TrueStub; -import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; -import de.minigameslib.mclib.shared.api.com.PersistentField; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * @author mepeisen - */ -public class ArenaPlayerImpl extends AnnotatedDataFragment implements ArenaPlayerInterface -{ - - /** - * Player back reference. - */ - @PersistentField - protected McPlayerInterface player; - - /** - * Persistent data storage. - */ - private ArenaPlayerPersistentData persistent; - - /** - * Constructor - */ - public ArenaPlayerImpl() - { - // constructor - } - - /** - * @param player - * @param persistent - */ - public ArenaPlayerImpl(McPlayerInterface player, ArenaPlayerPersistentData persistent) - { - this.player = player; - this.persistent = persistent; - } - - /** - * Returns persistent data storage. - * @return persistent player data - */ - private ArenaPlayerPersistentData getData() - { - if (this.persistent == null) - { - this.persistent = this.player.getPersistentStorage().get(ArenaPlayerPersistentData.class); - if (this.persistent == null) - { - this.persistent = new ArenaPlayerPersistentData(); - this.player.getPersistentStorage().set(ArenaPlayerPersistentData.class, this.persistent); - } - } - return this.persistent; - } - - @Override - public McPlayerInterface getMcPlayer() - { - return this.player; - } - - @Override - public ArenaInterface getArena() - { - final ArenaPlayerPersistentData data = this.getData(); - if (data.getArenaName() == null) - { - return null; - } - return MinigamesLibInterface.instance().getArena(data.getArenaName()); - } - - /** - * Saves persistent data - */ - private void saveData() - { - this.player.getPersistentStorage().set(ArenaPlayerPersistentData.class, this.persistent); - } - - /** - * Switches arena name or mode - * @param arena - * @param isSpectating - */ - void switchArenaOrMode(String arena, boolean isSpectating) - { - final ArenaPlayerPersistentData data = this.getData(); - data.setArenaName(arena); - data.setSpectator(isSpectating); - this.saveData(); - } - - @Override - public McOutgoingStubbing<ArenaPlayerInterface> when(McPredicate<ArenaPlayerInterface> test) throws McException - { - if (test.test(this)) - { - return new TrueStub<>(this); - } - return new FalseStub<>(this); - } - - @Override - public boolean isSpectating() - { - return this.getData().isSpectator(); - } - - @Override - public boolean isPlaying() - { - return this.getData().getArenaName() != null; - } - - @Override - public void die() throws McException - { - this.die(null); - } - - @Override - public void die(ArenaPlayerInterface killer) throws McException - { - if (this.inArena()) - { - final ArenaMatchInterface match = this.getArena().getCurrentMatch(); - if (match != null) - { - if (killer != null) - { - match.trackDamageForKill(this.getPlayerUUID(), killer.getPlayerUUID()); - } - - final ArenaPlayerDieEvent event = new ArenaPlayerDieEvent(this.getArena(), this); - Bukkit.getPluginManager().callEvent(event); - - // TODO do respawn if player is still in match - return; - } - } - - throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, "?"); //$NON-NLS-1$ - } - - @Override - public void lose() throws McException - { - if (this.inArena()) - { - final ArenaMatchInterface match = this.getArena().getCurrentMatch(); - if (match != null) - { - match.setLoser(this.getPlayerUUID()); - return; - } - } - - throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, "?"); //$NON-NLS-1$ - } - - @Override - public void win() throws McException - { - if (this.inArena()) - { - final ArenaMatchInterface match = this.getArena().getCurrentMatch(); - if (match != null) - { - match.setWinner(this.getPlayerUUID()); - return; - } - } - - throw new McException(ArenaImpl.Messages.InvalidModificationBeforeStart, "?"); //$NON-NLS-1$ - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java deleted file mode 100644 index 286b7832..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/ArenaPlayerPersistentData.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; -import de.minigameslib.mclib.shared.api.com.PersistentField; - -/** - * Persistent player data. - * - * @author mepeisen - */ -public class ArenaPlayerPersistentData extends AnnotatedDataFragment -{ - - /** - * The arena this player has joined - */ - @PersistentField - protected String arenaName; - - /** - * Spectator flag. - */ - @PersistentField - protected boolean isSpectator; - - /** - * @return the arenaName - */ - public String getArenaName() - { - return this.arenaName; - } - - /** - * @param arenaName the arenaName to set - */ - public void setArenaName(String arenaName) - { - this.arenaName = arenaName; - } - - /** - * @return the isSpectator - */ - public boolean isSpectator() - { - return this.isSpectator; - } - - /** - * @param isSpectator the isSpectator to set - */ - public void setSpectator(boolean isSpectator) - { - this.isSpectator = isSpectator; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java deleted file mode 100644 index f7846e44..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchPlayer.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import java.time.LocalDateTime; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mgapi.api.match.MatchPlayerInterface; -import de.minigameslib.mgapi.api.match.MatchStatisticId; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Data class for players being present in a match - * - * @author mepeisen - * - */ -class MatchPlayer implements MatchPlayerInterface -{ - - /** join timestamp */ - private LocalDateTime joined = LocalDateTime.now(); - - /** the players uuid. */ - private final UUID playerUuid; - - /** left timestamp (leaving the match itself) */ - private LocalDateTime left; - - /** the associated team. */ - private TeamIdType team; - - /** flag to control if player is playing. */ - private boolean isPlaying = false; - - /** flag to control if player is spectator. */ - private boolean isSpec = false; - - /** the additional team array. */ - private final Set<TeamIdType> additionalTeams = new HashSet<>(); - - /** - * the match statistics. - */ - private final Map<MatchStatisticId, Integer> statistics = new HashMap<>(); - - /** - * the selected spawn. - */ - private ComponentIdInterface spawn; - - /** - * Last damager for killer tracking - */ - private UUID lastDamager; - - /** - * Last damage timestamp - */ - private LocalDateTime damageTimestamp; - - /** - * Constructor - * @param playerUuid - */ - public MatchPlayer(UUID playerUuid) - { - this.playerUuid = playerUuid; - } - - @Override - public LocalDateTime getJoined() - { - return this.joined; - } - - /** - * @param joined the joined to set - */ - public void setJoined(LocalDateTime joined) - { - this.joined = joined; - } - - @Override - public LocalDateTime getLeft() - { - return this.left; - } - - /** - * @param left the left to set - */ - public void setLeft(LocalDateTime left) - { - this.left = left; - } - - @Override - public ComponentIdInterface getSpawn() - { - return this.spawn; - } - - @Override - public void setSpawn(ComponentIdInterface spawn) - { - this.spawn = spawn; - } - - @Override - public int getStatistic(MatchStatisticId statistic) - { - final Integer result = this.statistics.get(statistic); - return result == null ? 0 : result.intValue(); - } - - @Override - public void setStatistic(MatchStatisticId statistic, int newValue) - { - this.statistics.put(statistic, Integer.valueOf(newValue)); - } - - @Override - public int addStatistic(MatchStatisticId statistic, int amount) - { - final int newvalue = this.getStatistic(statistic) + amount; - this.setStatistic(statistic, newvalue); - return newvalue; - } - - @Override - public int decStatistic(MatchStatisticId statistic, int amount) - { - final int newValue = this.getStatistic(statistic) - amount; - this.setStatistic(statistic, newValue); - return newValue; - } - - @Override - public UUID getPlayer() - { - return this.playerUuid; - } - - @Override - public UUID getLastDamager() - { - return this.lastDamager; - } - - @Override - public LocalDateTime getDamageTimestamp() - { - return this.damageTimestamp; - } - - /** - * Sets the killer tracking - * @param damager - */ - public void setKillerTracking(UUID damager) - { - this.lastDamager = damager; - this.damageTimestamp = damager == null ? null : LocalDateTime.now(); - } - - @Override - public TeamIdType getTeam() - { - return this.team; - } - - /** - * @return the additionalTeams - */ - public Set<TeamIdType> getAdditionalTeams() - { - return this.additionalTeams; - } - - /** - * @param team the team to set - */ - public void setTeam(TeamIdType team) - { - this.team = team; - } - - @Override - public boolean isPlaying() - { - return this.isPlaying; - } - - /** - * @param isPlaying the isPlaying to set - */ - public void setPlaying(boolean isPlaying) - { - this.isPlaying = isPlaying; - } - - @Override - public boolean isSpec() - { - return this.isSpec; - } - - /** - * @param isSpec the isSpec to set - */ - public void setSpec(boolean isSpec) - { - this.isSpec = isSpec; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java deleted file mode 100644 index e0651040..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/arena/MatchTeam.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.arena; - -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import de.minigameslib.mgapi.api.match.MatchStatisticId; -import de.minigameslib.mgapi.api.match.MatchTeamInterface; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * Data class for teams being present in a match - * - * @author mepeisen - * - */ -class MatchTeam implements MatchTeamInterface -{ - - /** the team id. */ - private final TeamIdType teamId; - - /** registered team members. */ - private final Set<UUID> teamMembers = new HashSet<>(); - - /** - * the match statistics. - */ - private final Map<MatchStatisticId, Integer> statistics = new HashMap<>(); - - /** - * Constructor - * @param teamId - */ - public MatchTeam(TeamIdType teamId) - { - this.teamId = teamId; - } - - @Override - public TeamIdType getTeamId() - { - return this.teamId; - } - - @Override - public Set<UUID> getMembers() - { - return Collections.unmodifiableSet(this.teamMembers); - } - - /** - * @return the teamMembers - */ - public Set<UUID> getTeamMembers() - { - return this.teamMembers; - } - - @Override - public int getStatistic(MatchStatisticId statistic) - { - final Integer result = this.statistics.get(statistic); - return result == null ? 0 : result.intValue(); - } - - @Override - public void setStatistic(MatchStatisticId statistic, int newValue) - { - this.statistics.put(statistic, Integer.valueOf(newValue)); - } - - @Override - public int addStatistic(MatchStatisticId statistic, int amount) - { - final int newvalue = this.getStatistic(statistic) + amount; - this.setStatistic(statistic, newvalue); - return newvalue; - } - - @Override - public int decStatistic(MatchStatisticId statistic, int amount) - { - final int newvalue = this.getStatistic(statistic) - amount; - this.setStatistic(statistic, newvalue); - return newvalue; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java deleted file mode 100644 index 4a44fc20..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCheckCommand.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.arena.CheckFailure; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminCheckCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminCheck); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminCheck, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - // TODO maybe async? - final Collection<CheckFailure> checks = arena.check(); - command.send(Messages.CheckHeader, arena.getDisplayName()); - for (final CheckFailure failure : checks) - { - switch (failure.getSeverity()) - { - default: - case Error: - command.send(Messages.ArenaError, arena.getDisplayName(), failure.getTitle()); - break; - case Info: - command.send(Messages.ArenaInfo, arena.getDisplayName(), failure.getTitle()); - break; - case Warning: - command.send(Messages.ArenaWarning, arena.getDisplayName(), failure.getTitle()); - break; - } - } - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance || a.getState() == ArenaState.Disabled) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_check") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin check - */ - @LocalizedMessage(defaultMessage = "checks an existing arena") - @MessageComment({"Short description of /mg2 admin check"}) - ShortDescription, - - /** - * Long description of /mg2 admin check - */ - @LocalizedMessage(defaultMessage = "checks an existing arena") - @MessageComment({"Long description of /mg2 admin check"}) - Description, - - /** - * Usage of /mg2 admin check - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin check <internal-name>") - @MessageComment({"Usage of /mg2 admin check"}) - Usage, - - /** - * Arena check result - */ - @LocalizedMessage(defaultMessage = "check results (arena " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.INFORMATION_COLOR + ")", severity = MessageSeverityType.Information) - @MessageComment(value = {"Arena check result"}, args = {@Argument("arena display name")}) - CheckHeader, - - /** - * Arena check error line - */ - @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + "] %2$s", severity = MessageSeverityType.Error) - @MessageComment(value = {"Arena check error line"}, args = {@Argument("arena display name"), @Argument("title text")}) - ArenaError, - - /** - * Arena check warning line - */ - @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.WARNING_COLOR + "] %2$s", severity = MessageSeverityType.Warning) - @MessageComment(value = {"Arena check warning line"}, args = {@Argument("arena display name"), @Argument("title text")}) - ArenaWarning, - - /** - * Arena check info line - */ - @LocalizedMessage(defaultMessage = "[" + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.INFORMATION_COLOR + "] %2$s", severity = MessageSeverityType.Information) - @MessageComment(value = {"Arena check info line"}, args = {@Argument("arena display name"), @Argument("title text")}) - ArenaInfo, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java deleted file mode 100644 index 326efe04..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCommand.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Adminitartion command - * - * @author mepeisen - */ -public class AdminCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdmin); - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdmin, command.getCommandPath()); - return true; - } - - /** - * Constructor to register sub commands. - */ - public AdminCommand() - { - this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ - this.subCommands.put("create", new AdminCreateCommand()); //$NON-NLS-1$ - this.subCommands.put("delete", new AdminDeleteCommand()); //$NON-NLS-1$ - this.subCommands.put("enable", new AdminEnableCommand()); //$NON-NLS-1$ - this.subCommands.put("disable", new AdminDisableCommand()); //$NON-NLS-1$ - this.subCommands.put("check", new AdminCheckCommand()); //$NON-NLS-1$ - this.subCommands.put("maintain", new AdminMaintainCommand()); //$NON-NLS-1$ - this.subCommands.put("start", new AdminStartCommand()); //$NON-NLS-1$ - this.subCommands.put("stop", new AdminStopCommand()); //$NON-NLS-1$ - this.subCommands.put("test", new AdminTestCommand()); //$NON-NLS-1$ - this.subCommands.put("invite", new AdminInviteCommand()); //$NON-NLS-1$ - this.subCommands.put("sign", new AdminSignCommand()); //$NON-NLS-1$ - this.subCommands.put("zone", new AdminZoneCommand()); //$NON-NLS-1$ - this.subCommands.put("comp", new AdminComponentCommand()); //$NON-NLS-1$ - this.subCommands.put("gui", new AdminGuiCommand()); //$NON-NLS-1$ - this.subCommands.put("sgui", new AdminSGuiCommand()); //$NON-NLS-1$ - // TODO missing command: change display name/ short desc/ desc/ manual - // TODO missing command: export/ import - // TODO missing command: marketplace - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(Messages.Usage); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin - */ - @LocalizedMessage(defaultMessage = "Administration commands.") - @MessageComment({"Short description of /mg2 admin"}) - ShortDescription, - - /** - * Long description of /mg2 admin - */ - @LocalizedMessage(defaultMessage = "Administration commands.") - @MessageComment({"Long description of /mg2 admin"}) - Description, - - /** - * Usage of /mg2 admin - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin <sub-command>") - @MessageComment({"Usage of /mg2 admin"}) - Usage, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java deleted file mode 100644 index c329e6b5..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCommand.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminComponentCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminComp); - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); - return true; - } - - /** - * Constructor to register sub commands. - */ - public AdminComponentCommand() - { - this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ - this.subCommands.put("list", new AdminComponentListCommand()); //$NON-NLS-1$ - this.subCommands.put("create", new AdminComponentCreateCommand()); //$NON-NLS-1$ - this.subCommands.put("delete", new AdminComponentDeleteCommand()); //$NON-NLS-1$ -// this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ - this.subCommands.put("tp", new AdminComponentTpCommand()); //$NON-NLS-1$ - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(Messages.Usage); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_component") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin component - */ - @LocalizedMessage(defaultMessage = "Manipulate arena components") - @MessageComment({"Short description of /mg2 admin comp"}) - ShortDescription, - - /** - * Long description of /mg2 admin component - */ - @LocalizedMessage(defaultMessage = "Manipulate arena components") - @MessageComment({"Long description of /mg2 admin comp"}) - Description, - - /** - * Usage of /mg2 admin component - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp <sub-command>") - @MessageComment({"Usage of /mg2 admin comp"}) - Usage - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java deleted file mode 100644 index 5ef5d5c4..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentCreateCommand.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-Zoneed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.impl.MglibPerms; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; - -/** - * @author mepeisen - * - */ -public class AdminComponentCreateCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminComp); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); - final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); - - @SuppressWarnings("cast") - final Optional<ArenaZoneHandler> handler = arena.getZones().stream(). - map(s -> (ArenaZoneHandler) arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); - - AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 2) - { - final Set<String> result = new TreeSet<>(); - for (final ZoneTypeId ZoneType : EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class)) - { - result.add(ZoneType.getPluginName() + "/" + ZoneType.name()); //$NON-NLS-1$ - } - return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_zone_create") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin zone create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena zone") - @MessageComment({"Short description of /mg2 zone create"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena zone") - @MessageComment({"Long description of /mg2 admin zone create"}) - Description, - - /** - * Usage of /mg2 admin zone create - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone create <arena> <name> <type>") - @MessageComment({"Usage of /mg2 admin zone create"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java deleted file mode 100644 index b07c25ff..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentDeleteCommand.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminComponentDeleteCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminComp); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final ComponentInterface comp = Mg2Command.getComponent(arena, command, Messages.Usage); - comp.delete(); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - final Set<String> result = new TreeSet<>(); - final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); - if (arena != null) - { - arena.getComponents().stream(). - map(s -> arena.getHandler(s).getName()). - filter(s -> s.toLowerCase().startsWith(lastArg)). - forEach(result::add); - } - return new ArrayList<>(result); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_component_delete") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin component delete - */ - @LocalizedMessage(defaultMessage = "Delete a component") - @MessageComment({"Short description of /mg2 comp delete"}) - ShortDescription, - - /** - * Long description of /mg2 admin component delete - */ - @LocalizedMessage(defaultMessage = "Delete a component") - @MessageComment({"Long description of /mg2 admin comp delete"}) - Description, - - /** - * Usage of /mg2 admin component delete - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp delete <arena> <name>") - @MessageComment({"Usage of /mg2 admin comp delete"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java deleted file mode 100644 index 94f36122..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentListCommand.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminComponentListCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminComp); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - - McLibInterface.instance().setContext(ArenaInterface.class, arena); - super.handle(command); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected int getLineCount(CommandInterface command) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return arena.getZones().size(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return Messages.Header.toArg(arena.getInternalName()); - } - - @SuppressWarnings("cast") - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return arena.getComponents().stream(). - skip(start). - limit(count). - map(s -> (ArenaComponentHandler) arena.getHandler(s)). - map(ArenaComponentHandler::getName). - toArray(Serializable[]::new); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_component_list") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin comp list - */ - @LocalizedMessage(defaultMessage = "lists arena components") - @MessageComment({"Short description of /mg2 admin comp list"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone list - */ - @LocalizedMessage(defaultMessage = "lists arena components") - @MessageComment({"Long description of /mg2 admin comp list"}) - Description, - - /** - * Usage of /mg2 admin zone list - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp list <arena-name> [page]") - @MessageComment({"Usage of /mg2 admin comp list"}) - Usage, - - /** - * Pageable header line - */ - @LocalizedMessage(defaultMessage = "Components of " + LocalizedMessage.CODE_COLOR + "%1$s") - @MessageComment(value = {"Pageable header line of /mg2 admin comp list"}, args=@Argument("arena internal name")) - Header - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java deleted file mode 100644 index 8ff9c05a..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminComponentTpCommand.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminComponentTpCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminComp); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminComp, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final ComponentInterface comp = Mg2Command.getComponent(arena, command, Messages.Usage); - command.getPlayer().getBukkitPlayer().teleport(comp.getLocation()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - final Set<String> result = new TreeSet<>(); - final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); - if (arena != null) - { - arena.getComponents().stream(). - map(s -> arena.getHandler(s).getName()). - filter(s -> s.toLowerCase().startsWith(lastArg)). - forEach(result::add); - } - return new ArrayList<>(result); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_component_tp") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin comp tp - */ - @LocalizedMessage(defaultMessage = "Teleport to a component") - @MessageComment({"Short description of /mg2 admin comp tp"}) - ShortDescription, - - /** - * Long description of /mg2 admin comp tp - */ - @LocalizedMessage(defaultMessage = "Teleport to a sign") - @MessageComment({"Long description of /mg2 admin comp tp"}) - Description, - - /** - * Usage of /mg2 admin comp tp - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin comp tp <arena> <name>") - @MessageComment({"Usage of /mg2 admin comp tp"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java deleted file mode 100644 index bfac2881..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminCreateCommand.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminCreateCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminCreate); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminCreate, command.getCommandPath()); - - command.checkMaxArgCount(3, CommonMessages.TooManyArguments); - - final String arenaName = command.fetchString(Mg2Command.Messages.ArenaNameMissing, Messages.Usage); - command.checkMinArgCount(1, Mg2Command.Messages.MinigameNameMissing, Messages.Usage); - final MinigameInterface minigame = command.fetch(Mg2Command::getMinigame).get(); - command.checkMinArgCount(1, Mg2Command.Messages.TypeNameMissing, Messages.Usage); - final ArenaTypeInterface type = command.fetch((c, n) -> Mg2Command.getType(c, n, minigame)).get(); - - final ArenaInterface arena = MinigamesLibInterface.instance().create(arenaName, type); - command.send(Messages.ArenaCreated, arena.getInternalName()); - // TODO Start creation guide. - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 1) - { - return MinigamesLibInterface.instance().getMinigames(lastArg, 0, Integer.MAX_VALUE).stream().map(MinigameInterface::getName).collect(Collectors.toList()); - } - if (command.getArgs().length == 2) - { - final String minigameName = command.getArgs()[1]; - final MinigameInterface minigame = MinigamesLibInterface.instance().getMinigame(minigameName); - if (minigame != null) - { - return minigame.getTypes(lastArg, 0, Integer.MAX_VALUE).stream().map(ArenaTypeInterface::name).collect(Collectors.toList()); - } - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_create") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena") - @MessageComment({"Short description of /mg2 admin create"}) - ShortDescription, - - /** - * Long description of /mg2 admin create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena") - @MessageComment({"Long description of /mg2 admin create"}) - Description, - - /** - * Usage of /mg2 admin create - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin create <internal-name> <minigame> <type>") - @MessageComment({"Usage of /mg2 admin create"}) - Usage, - - /** - * Type was not found - */ - @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"Type was not found"}, args = @Argument("type name")) - TypeNotFound, - - /** - * Arena created - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was created.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena created"}, args = @Argument("type name")) - ArenaCreated, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java deleted file mode 100644 index c5db5764..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDeleteCommand.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminDeleteCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminDelete); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminDelete, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.delete(); - command.send(Messages.ArenaDeleted, arena.getDisplayName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_delete") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin delete - */ - @LocalizedMessage(defaultMessage = "deletes an existing arena") - @MessageComment({"Short description of /mg2 admin delete"}) - ShortDescription, - - /** - * Long description of /mg2 admin delete - */ - @LocalizedMessage(defaultMessage = "deletes an existing arena") - @MessageComment({"Long description of /mg2 admin delete"}) - Description, - - /** - * Usage of /mg2 admin delete - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin delete <internal-name>") - @MessageComment({"Usage of /mg2 admin delete"}) - Usage, - - /** - * Arena deleted - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was deleted.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena deleted"}, args = @Argument("arena display name")) - ArenaDeleted, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java deleted file mode 100644 index bd9f83e8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminDisableCommand.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminDisableCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminDisable); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminDisable, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.setDisabledState(false); // TODO support force argument - command.send(Messages.ArenaDisabled, arena.getDisplayName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> !a.isDisabled()) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_disable") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin disable - */ - @LocalizedMessage(defaultMessage = "disables an existing arena") - @MessageComment({"Short description of /mg2 admin disable"}) - ShortDescription, - - /** - * Long description of /mg2 admin disable - */ - @LocalizedMessage(defaultMessage = "disables an existing arena") - @MessageComment({"Long description of /mg2 admin disable"}) - Description, - - /** - * Usage of /mg2 admin disable - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin disable <internal-name>") - @MessageComment({"Usage of /mg2 admin disable"}) - Usage, - - /** - * Arena disabled - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was disabled. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena disabled"}, args = @Argument("arena name")) - ArenaDisabled, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java deleted file mode 100644 index 87662a8f..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminEnableCommand.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminEnableCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminEnable); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminEnable, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.setEnabledState(); - command.send(Messages.ArenaEnabled, arena.getDisplayName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.isDisabled() || a.isMaintenance()) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_enable") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin enable - */ - @LocalizedMessage(defaultMessage = "enables an existing arena") - @MessageComment({"Short description of /mg2 admin enable"}) - ShortDescription, - - /** - * Long description of /mg2 admin enable - */ - @LocalizedMessage(defaultMessage = "enables an existing arena") - @MessageComment({"Long description of /mg2 admin enable"}) - Description, - - /** - * Usage of /mg2 admin enable - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin enable <internal-name>") - @MessageComment({"Usage of /mg2 admin enable"}) - Usage, - - /** - * Arena enabled - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " was enabled. Players can join after starting was finished.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena enabled"}, args = @Argument("arena name")) - ArenaEnabled, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java deleted file mode 100644 index be4b9482..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminGuiCommand.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.items.ResourceServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.impl.MglibPerms; -import de.minigameslib.mgapi.impl.cmd.gui.Main; - -/** - * @author mepeisen - * - */ -public class AdminGuiCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminGui); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminGui, command.getCommandPath()); - - if (ResourceServiceInterface.instance().hasResourcePack(command.getPlayer())) - { - command.getPlayer().openClickGui(new Main()); - } - else - { - ResourceServiceInterface.instance().forceDownload(command.getPlayer(), () -> { command.getPlayer().openClickGui(new Main()); }); - } - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_gui") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin gui - */ - @LocalizedMessage(defaultMessage = "Display simple admin gui") - @MessageComment({"Short description of /mg2 admin gui"}) - ShortDescription, - - /** - * Long description of /mg2 admin gui - */ - @LocalizedMessage(defaultMessage = "Display simple admin gui") - @MessageComment({"Long description of /mg2 admin gui"}) - Description, - - /** - * Usage of /mg2 admin gui - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin gui") - @MessageComment({"Usage of /mg2 admin gui"}) - Usage - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java deleted file mode 100644 index c6a15ef7..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminInviteCommand.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminInviteCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminInvite); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminInvite, command.getCommandPath()); - - command.checkMinArgCount(1, Mg2Command.Messages.PlayerNameMissing, Messages.Usage); - final ArenaPlayerInterface player = command.fetch(Mg2Command::getPlayer).get(); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.join(player); - command.send(Messages.PlayerInvited, arena.getInternalName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return null; // player list - } - if (command.getArgs().length == 1) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Join && a.isMaintenance()) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_invite") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin invite - */ - @LocalizedMessage(defaultMessage = "invites an existing arena") - @MessageComment({"Short description of /mg2 admin invite"}) - ShortDescription, - - /** - * Long description of /mg2 admin invite - */ - @LocalizedMessage(defaultMessage = "invites an existing arena") - @MessageComment({"Long description of /mg2 admin invite"}) - Description, - - /** - * Usage of /mg2 admin invite - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin invite <player> <internal-name>") - @MessageComment({"Usage of /mg2 admin invite"}) - Usage, - - /** - * Arena invite succeded - */ - @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.GREEN + " was invited to arena " + LocalizedMessage.CODE_COLOR + "%2$s " + LocalizedMessage.SUCCESS_COLOR + ".", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena invite succeeded"}, args = {@Argument("player name"), @Argument("arena name")}) - PlayerInvited, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java deleted file mode 100644 index 58e7bd69..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminMaintainCommand.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminMaintainCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminMaintain); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminMaintain, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.setMaintenance(false); // TODO support force argument - command.send(Messages.ArenaUnderMaintenance, arena.getInternalName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> !a.isMaintenance()) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_maintain") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin maintain - */ - @LocalizedMessage(defaultMessage = "maintains an existing arena") - @MessageComment({"Short description of /mg2 admin maintain"}) - ShortDescription, - - /** - * Long description of /mg2 admin maintain - */ - @LocalizedMessage(defaultMessage = "maintains an existing arena") - @MessageComment({"Long description of /mg2 admin maintain"}) - Description, - - /** - * Usage of /mg2 admin maintain - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin maintain <internal-name>") - @MessageComment({"Usage of /mg2 admin maintain"}) - Usage, - - /** - * Arena is under maintenance - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " is now under maintenance. If a match is in progress it will be finished first.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena is under maintenance"}, args = @Argument("arena name")) - ArenaUnderMaintenance, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java deleted file mode 100644 index 659a91c4..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSGuiCommand.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminSGuiCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSGui); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminSGui, command.getCommandPath()); - command.checkOnline(); - - // TODO Support gui - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_sgui") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin sgui - */ - @LocalizedMessage(defaultMessage = "Display advanced admin gui") - @MessageComment({"Short description of /mg2 admin sgui"}) - ShortDescription, - - /** - * Long description of /mg2 admin sgui - */ - @LocalizedMessage(defaultMessage = "Display advanced admin gui") - @MessageComment({"Long description of /mg2 admin sgui"}) - Description, - - /** - * Usage of /mg2 admin sgui - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sgui") - @MessageComment({"Usage of /mg2 admin sgui"}) - Usage - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java deleted file mode 100644 index 01c24c0f..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCommand.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminSignCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminSign); - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - return true; - } - - /** - * Constructor to register sub commands. - */ - public AdminSignCommand() - { - this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ - this.subCommands.put("list", new AdminSignListCommand()); //$NON-NLS-1$ - this.subCommands.put("create", new AdminSignCreateCommand()); //$NON-NLS-1$ - this.subCommands.put("delete", new AdminSignDeleteCommand()); //$NON-NLS-1$ -// this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ - this.subCommands.put("tp", new AdminSignTpCommand()); //$NON-NLS-1$ - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(Messages.Usage); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_sign") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin sign - */ - @LocalizedMessage(defaultMessage = "Manipulate arena signs") - @MessageComment({"Short description of /mg2 admin sign"}) - ShortDescription, - - /** - * Long description of /mg2 admin sign - */ - @LocalizedMessage(defaultMessage = "Manipulate arena signs") - @MessageComment({"Long description of /mg2 admin sign"}) - Description, - - /** - * Usage of /mg2 admin sign - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign <sub-command>") - @MessageComment({"Usage of /mg2 admin sign"}) - Usage - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java deleted file mode 100644 index 55921518..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignCreateCommand.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.impl.MglibPerms; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; - -/** - * @author mepeisen - * - */ -public class AdminSignCreateCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSign); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); - final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); - - @SuppressWarnings("cast") - final Optional<ArenaSignHandler> handler = arena.getSigns().stream(). - map(s -> (ArenaSignHandler) arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - final SignTypeId type = Mg2Command.getEnum(command, SignTypeId.class, typeName); - - AdminToolHelper.onCreateSign(command.getPlayer(), arena, name, type, null); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 2) - { - final Set<String> result = new TreeSet<>(); - for (final SignTypeId signType : EnumServiceInterface.instance().getEnumValues(SignTypeId.class)) - { - result.add(signType.getPluginName() + "/" + signType.name()); //$NON-NLS-1$ - } - return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_sign_create") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin sign create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena sign") - @MessageComment({"Short description of /mg2 sign create"}) - ShortDescription, - - /** - * Long description of /mg2 admin sign create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena sign") - @MessageComment({"Long description of /mg2 admin sign create"}) - Description, - - /** - * Usage of /mg2 admin sign create - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign create <arena> <name> <type>") - @MessageComment({"Usage of /mg2 admin sign create"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java deleted file mode 100644 index e18f5b0b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignDeleteCommand.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.bukkit.Material; -import org.bukkit.block.Block; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminSignDeleteCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSign); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final SignInterface sign = Mg2Command.getSign(arena, command, Messages.Usage); - final Block block = sign.getBukkitSign().getBlock(); - sign.delete(); - block.setType(Material.AIR); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - final Set<String> result = new TreeSet<>(); - final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); - if (arena != null) - { - arena.getSigns().stream(). - map(s -> arena.getHandler(s).getName()). - filter(s -> s.toLowerCase().startsWith(lastArg)). - forEach(result::add); - } - return new ArrayList<>(result); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_sign_delete") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin sign delete - */ - @LocalizedMessage(defaultMessage = "Delete a sign") - @MessageComment({"Short description of /mg2 sign delete"}) - ShortDescription, - - /** - * Long description of /mg2 admin sign delete - */ - @LocalizedMessage(defaultMessage = "Delete a sign") - @MessageComment({"Long description of /mg2 admin sign delete"}) - Description, - - /** - * Usage of /mg2 admin sign delete - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign delete <arena> <name>") - @MessageComment({"Usage of /mg2 admin sign delete"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java deleted file mode 100644 index a998939c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignListCommand.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminSignListCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminSign); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - - McLibInterface.instance().setContext(ArenaInterface.class, arena); - super.handle(command); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected int getLineCount(CommandInterface command) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return arena.getSigns().size(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return Messages.Header.toArg(arena.getInternalName()); - } - - @SuppressWarnings("cast") - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return arena.getSigns().stream(). - skip(start). - limit(count). - map(s -> (ArenaSignHandler) arena.getHandler(s)). - map(ArenaSignHandler::getName). - toArray(Serializable[]::new); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_sign_list") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin sign list - */ - @LocalizedMessage(defaultMessage = "lists arena signs") - @MessageComment({"Short description of /mg2 admin sign list"}) - ShortDescription, - - /** - * Long description of /mg2 admin sign list - */ - @LocalizedMessage(defaultMessage = "lists arena signs") - @MessageComment({"Long description of /mg2 admin sign list"}) - Description, - - /** - * Usage of /mg2 admin sign list - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign list <arena-name> [page]") - @MessageComment({"Usage of /mg2 admin sign list"}) - Usage, - - /** - * Pageable header line - */ - @LocalizedMessage(defaultMessage = "Signs of " + LocalizedMessage.CODE_COLOR + "%1$s") - @MessageComment(value = {"Pageable header line of /mg2 admin sign list"}, args=@Argument("arena internal name")) - Header - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java deleted file mode 100644 index c22e8db3..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminSignTpCommand.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminSignTpCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminSign); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminSign, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final SignInterface sign = Mg2Command.getSign(arena, command, Messages.Usage); - command.getPlayer().getBukkitPlayer().teleport(sign.getLocation()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - final Set<String> result = new TreeSet<>(); - final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); - if (arena != null) - { - arena.getSigns().stream(). - map(s -> arena.getHandler(s).getName()). - filter(s -> s.toLowerCase().startsWith(lastArg)). - forEach(result::add); - } - return new ArrayList<>(result); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_sign_tp") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin sign tp - */ - @LocalizedMessage(defaultMessage = "Teleport to a sign") - @MessageComment({"Short description of /mg2 admin sign tp"}) - ShortDescription, - - /** - * Long description of /mg2 admin sign tp - */ - @LocalizedMessage(defaultMessage = "Teleport to a sign") - @MessageComment({"Long description of /mg2 admin sign tp"}) - Description, - - /** - * Usage of /mg2 admin sign tp - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin sign tp <arena> <name>") - @MessageComment({"Usage of /mg2 admin sign tp"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java deleted file mode 100644 index b83597ce..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStartCommand.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminStartCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminStart); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminStart, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.start(); - command.send(Messages.ArenaStarted, arena.getInternalName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Join) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_start") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin start - */ - @LocalizedMessage(defaultMessage = "starts an existing arena match") - @MessageComment({"Short description of /mg2 admin start"}) - ShortDescription, - - /** - * Long description of /mg2 admin start - */ - @LocalizedMessage(defaultMessage = "starts an existing arena match") - @MessageComment({"Long description of /mg2 admin start"}) - Description, - - /** - * Usage of /mg2 admin start - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin start <internal-name>") - @MessageComment({"Usage of /mg2 admin start"}) - Usage, - - /** - * Arena started - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " match was started. Players can join after starting was finished.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena started"}, args = @Argument("arena name")) - ArenaStarted, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java deleted file mode 100644 index 5986f82f..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminStopCommand.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminStopCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminStop); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminStop, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.start(); - command.send(Messages.ArenaStopped, arena.getInternalName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.isMatch()) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_stop") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin stop - */ - @LocalizedMessage(defaultMessage = "stops an existing arena match") - @MessageComment({"Short description of /mg2 admin stop"}) - ShortDescription, - - /** - * Long description of /mg2 admin stop - */ - @LocalizedMessage(defaultMessage = "stops an existing arena match") - @MessageComment({"Long description of /mg2 admin stop"}) - Description, - - /** - * Usage of /mg2 admin stop - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin stop <internal-name>") - @MessageComment({"Usage of /mg2 admin stop"}) - Usage, - - /** - * Arena stopped - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " match was stopped. Players can join after starting was finished.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena stopped"}, args = @Argument("arena name")) - ArenaStopped, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java deleted file mode 100644 index 64cdbe19..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminTestCommand.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminTestCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminTest); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminTest, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArenaFromPlayer(command, Messages.Usage); - - arena.setTestState(); - command.send(Messages.ArenaTestStarted, arena.getInternalName()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_test") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin test - */ - @LocalizedMessage(defaultMessage = "tests an existing arena") - @MessageComment({"Short description of /mg2 admin test"}) - ShortDescription, - - /** - * Long description of /mg2 admin test - */ - @LocalizedMessage(defaultMessage = "tests an existing arena") - @MessageComment({"Long description of /mg2 admin test"}) - Description, - - /** - * Usage of /mg2 admin test - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin test <internal-name>") - @MessageComment({"Usage of /mg2 admin test"}) - Usage, - - /** - * Arena test started - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.SUCCESS_COLOR + " test match was started. Players can be invited after starting was finished.", severity = MessageSeverityType.Success) - @MessageComment(value = {"Arena test started"}, args = @Argument("arena name")) - ArenaTestStarted, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java deleted file mode 100644 index 1e03545d..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCommand.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminZoneCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminZone); - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); - return true; - } - - /** - * Constructor to register sub commands. - */ - public AdminZoneCommand() - { - this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) this)); //$NON-NLS-1$ - this.subCommands.put("list", new AdminZoneListCommand()); //$NON-NLS-1$ - this.subCommands.put("create", new AdminZoneCreateCommand()); //$NON-NLS-1$ - this.subCommands.put("delete", new AdminZoneDeleteCommand()); //$NON-NLS-1$ -// this.subCommands.put("move", new AdminSignMoveCommand()); //$NON-NLS-1$ - this.subCommands.put("tp", new AdminZoneTpCommand()); //$NON-NLS-1$ - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected void sendUsage(CommandInterface command) - { - command.send(Messages.Usage); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_zone") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin zone - */ - @LocalizedMessage(defaultMessage = "Manipulate arena zones") - @MessageComment({"Short description of /mg2 admin zone"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone - */ - @LocalizedMessage(defaultMessage = "Manipulate arena zones") - @MessageComment({"Long description of /mg2 admin zone"}) - Description, - - /** - * Usage of /mg2 admin zone - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone <sub-command>") - @MessageComment({"Usage of /mg2 admin zone"}) - Usage - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java deleted file mode 100644 index b14df9a8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneCreateCommand.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-Zoneed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.impl.MglibPerms; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; - -/** - * @author mepeisen - * - */ -public class AdminZoneCreateCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminZone); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final String name = command.fetchString(Mg2Command.Messages.ComponentNameMissing, Messages.Usage); - final String typeName = command.fetchString(Mg2Command.Messages.ComponentTypeNameMissing, Messages.Usage); - - @SuppressWarnings("cast") - final Optional<ArenaZoneHandler> handler = arena.getZones().stream(). - map(s -> (ArenaZoneHandler) arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - final ZoneTypeId type = Mg2Command.getEnum(command, ZoneTypeId.class, typeName); - - AdminToolHelper.onCreateZone(command.getPlayer(), arena, name, type, null); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 2) - { - final Set<String> result = new TreeSet<>(); - for (final ZoneTypeId ZoneType : EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class)) - { - result.add(ZoneType.getPluginName() + "/" + ZoneType.name()); //$NON-NLS-1$ - } - return result.stream().filter(a -> a.toLowerCase().startsWith(lastArg)).collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_zone_create") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin zone create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena zone") - @MessageComment({"Short description of /mg2 zone create"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone create - */ - @LocalizedMessage(defaultMessage = "Creates a new arena zone") - @MessageComment({"Long description of /mg2 admin zone create"}) - Description, - - /** - * Usage of /mg2 admin zone create - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone create <arena> <name> <type>") - @MessageComment({"Usage of /mg2 admin zone create"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java deleted file mode 100644 index feb2072e..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneDeleteCommand.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminZoneDeleteCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminZone); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final ZoneInterface zone = Mg2Command.getZone(arena, command, Messages.Usage); - zone.delete(); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - final Set<String> result = new TreeSet<>(); - final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); - if (arena != null) - { - arena.getZones().stream(). - map(s -> arena.getHandler(s).getName()). - filter(s -> s.toLowerCase().startsWith(lastArg)). - forEach(result::add); - } - return new ArrayList<>(result); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_zone_delete") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin zone delete - */ - @LocalizedMessage(defaultMessage = "Delete a zone") - @MessageComment({"Short description of /mg2 zone delete"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone delete - */ - @LocalizedMessage(defaultMessage = "Delete a zone") - @MessageComment({"Long description of /mg2 admin zone delete"}) - Description, - - /** - * Usage of /mg2 admin zone delete - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone delete <arena> <name>") - @MessageComment({"Usage of /mg2 admin zone delete"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java deleted file mode 100644 index a172e5f4..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneListCommand.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminZoneListCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandAdminZone); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - - McLibInterface.instance().setContext(ArenaInterface.class, arena); - super.handle(command); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - @Override - protected int getLineCount(CommandInterface command) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return arena.getZones().size(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return Messages.Header.toArg(arena.getInternalName()); - } - - @SuppressWarnings("cast") - @Override - protected Serializable[] getLines(CommandInterface command, int start, int count) - { - final ArenaInterface arena = McLibInterface.instance().getContext(ArenaInterface.class); - return arena.getZones().stream(). - skip(start). - limit(count). - map(s -> (ArenaZoneHandler) arena.getHandler(s)). - map(ArenaZoneHandler::getName). - toArray(Serializable[]::new); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_zone_list") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin zone list - */ - @LocalizedMessage(defaultMessage = "lists arena zones") - @MessageComment({"Short description of /mg2 admin zone list"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone list - */ - @LocalizedMessage(defaultMessage = "lists arena zones") - @MessageComment({"Long description of /mg2 admin zone list"}) - Description, - - /** - * Usage of /mg2 admin zone list - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone list <arena-name> [page]") - @MessageComment({"Usage of /mg2 admin zone list"}) - Usage, - - /** - * Pageable header line - */ - @LocalizedMessage(defaultMessage = "Zones of " + LocalizedMessage.CODE_COLOR + "%1$s") - @MessageComment(value = {"Pageable header line of /mg2 admin zone list"}, args=@Argument("arena internal name")) - Header - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java deleted file mode 100644 index 1aacfc00..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/AdminZoneTpCommand.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class AdminZoneTpCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandAdminZone); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkOnline(); - command.permOpThrowException(MglibPerms.CommandAdminZone, command.getCommandPath()); - - final ArenaInterface arena = Mg2Command.getArena(command, Messages.Usage); - final ZoneInterface zone = Mg2Command.getZone(arena, command, Messages.Usage); - - boolean highLoc = true; - if (command.getArgs().length > 0) - { - highLoc = command.getArgs()[0].equalsIgnoreCase("high"); //$NON-NLS-1$ - } - command.getPlayer().getBukkitPlayer().teleport(highLoc ? zone.getCuboid().getHighLoc() : zone.getCuboid().getLowLoc()); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .filter(a -> a.getState() == ArenaState.Maintenance) - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - final Set<String> result = new TreeSet<>(); - final ArenaInterface arena = Mg2Command.getArenaOptional(command, Messages.Usage); - if (arena != null) - { - arena.getZones().stream(). - map(s -> arena.getHandler(s).getName()). - filter(s -> s.toLowerCase().startsWith(lastArg)). - forEach(result::add); - } - return new ArrayList<>(result); - } - if (command.getArgs().length == 2) - { - final Set<String> result = new TreeSet<>(); - result.add("high"); //$NON-NLS-1$ - result.add("low"); //$NON-NLS-1$ - return result.stream() - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_admin_zone_tp") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 admin zone tp - */ - @LocalizedMessage(defaultMessage = "Teleport to a zone") - @MessageComment({"Short description of /mg2 admin zone tp"}) - ShortDescription, - - /** - * Long description of /mg2 admin zone tp - */ - @LocalizedMessage(defaultMessage = "Teleport to a zone") - @MessageComment({"Long description of /mg2 admin zone tp"}) - Description, - - /** - * Usage of /mg2 admin zone tp - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 admin zone tp <arena> <name> [high|low]") - @MessageComment({"Usage of /mg2 admin zone tp"}) - Usage, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java deleted file mode 100644 index 86cdde63..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaCommand.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.MglibMessages; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Prints info on arenas. - * - * @author mepeisen - */ -public class ArenaCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandArena); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandArena, command.getCommandPath()); - - command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); - final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); - - // print Info - final MinigameInterface minigame = arena.getMinigame(); - final Serializable mgName = minigame == null ? "<invalid>" : arena.getMinigame().getDisplayName(); //$NON-NLS-1$ - command.send(Messages.CommandOutput, - mgName, - arena.getDisplayName(), - arena.getShortDescription(), - toString(arena.getState()), - arena.getDescription(), - arena.getInternalName() - ); - } - - /** - * Returns the string message for given arena state - * @param state - * @return string message - */ - public static LocalizedMessageInterface toString(ArenaState state) - { - switch (state) - { - default: - case Booting: - return MglibMessages.ArenaStateBooting; - case Disabled: - return MglibMessages.ArenaStateDisabled; - case Join: - return MglibMessages.ArenaStateJoin; - case Starting: - return MglibMessages.ArenaStateStarting; - case PreMatch: - return MglibMessages.ArenaStatePreMatch; - case Match: - return MglibMessages.ArenaStateMatch; - case PostMatch: - return MglibMessages.ArenaStatePostMatch; - case Restarting: - return MglibMessages.ArenaStateRestarting; - case Maintenance: - return MglibMessages.ArenaStateMaintenance; - } - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_arena") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 arena - */ - @LocalizedMessage(defaultMessage = "Prints detailed info on arenas.") - @MessageComment({"Short description of /mg2 arena"}) - ShortDescription, - - /** - * Long description of /mg2 arena - */ - @LocalizedMessage(defaultMessage = "Prints detailed info on arenas.") - @MessageComment({"Long description of /mg2 arena"}) - Description, - - /** - * Usage of /mg2 arena - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 arena <name>") - @MessageComment({"Usage of /mg2 arena"}) - Usage, - - /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing arena name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - NameMissing, - - /** - * Arena was not found - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) - ArenaNotFound, - - /** - * The command output of /mg2 arena - */ - @LocalizedMessageList({ - "minigame: %1$s", - "arena: %2$s - %3$s", - "state: %4$s", - "----------", - "%5$s", - "----------", - "Additional commands:", - " " + LocalizedMessage.CODE_COLOR + "/mg2 join %6$s " + LocalizedMessage.INFORMATION_COLOR + " to join the arena.", - " " + LocalizedMessage.CODE_COLOR + "/mg2 spectate %6$s " + LocalizedMessage.INFORMATION_COLOR + " to spectate an active match.", - " " + LocalizedMessage.CODE_COLOR + "/mg2 manual %6$s " + LocalizedMessage.INFORMATION_COLOR + " to display a manual." - }) - @MessageComment(value = { - "The command output of /mg2 arena" - },args = { - @Argument("minigame display name"), - @Argument("arena display name"), - @Argument("arena short description"), - @Argument("arena state"), - @Argument("arena long description"), - @Argument("arena internal name"), - }) - CommandOutput, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java deleted file mode 100644 index 6675b0ef..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenaListCommand.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; -import java.util.function.IntSupplier; -import java.util.function.Supplier; -import java.util.stream.Stream; - -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Handle the minigame arenas list - * - * @author mepeisen - */ -public class ArenaListCommand extends AbstractPagableCommandHandler -{ - - /** supplier for arena count. */ - private IntSupplier count; - /** supplier for arena stream. */ - private Supplier<Stream<ArenaInterface>> arenas; - /** header line. */ - private Serializable header; - - /** - * @param count - * @param arenas - * @param header - */ - public ArenaListCommand(IntSupplier count, Supplier<Stream<ArenaInterface>> arenas, Serializable header) - { - this.count = count; - this.arenas = arenas; - this.header = header; - } - - @Override - protected int getLineCount(CommandInterface command) - { - return this.count.getAsInt(); - } - - @Override - protected Serializable getHeader(CommandInterface command) - { - return this.header; - } - - @Override - protected Serializable[] getLines(CommandInterface command, int start, int limit) - { - return this.arenas.get().skip(start).limit(limit).map(p -> p.getInternalName()).toArray(Serializable[]::new); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java deleted file mode 100644 index 82321a97..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ArenasCommand.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Arena list command - * - * @author mepeisen - */ -public class ArenasCommand extends ArenaListCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.checkOpPermission(MglibPerms.CommandArenas); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandArenas, command.getCommandPath()); - super.handle(command); - } - - /** - * Constructor - */ - public ArenasCommand() - { - super( - () -> MinigamesLibInterface.instance().getArenaCount(), - () -> MinigamesLibInterface.instance().getArenas(0, Integer.MAX_VALUE).stream(), - Messages.Header); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_arenas") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 arenas - */ - @LocalizedMessage(defaultMessage = "Prints a list of arenas.") - @MessageComment({"Short description of /mg2 arenas"}) - ShortDescription, - - /** - * Long description of /mg2 arenas - */ - @LocalizedMessage(defaultMessage = "Prints a list of arenas.") - @MessageComment({"Long description of /mg2 arenas"}) - Description, - - /** - * Paging header text - */ - @LocalizedMessage(defaultMessage = "Arenas") - @MessageComment({"Paging header text"}) - Header, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java deleted file mode 100644 index ef0ea6cd..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoCommand.java +++ /dev/null @@ -1,241 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import org.bukkit.Bukkit; -import org.bukkit.plugin.Plugin; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.LibState; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.impl.MglibMessages; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Common information on minigames library - * - * @author mepeisen - */ -public class InfoCommand extends AbstractCompositeCommandHandler implements SubCommandHandlerInterface -{ - - /** - * Constructor to add sub commands - */ - public InfoCommand() - { - this.subCommands.put("help", new HelpCommandHandler((AbstractCompositeCommandHandler) (this))); //$NON-NLS-1$ - this.subCommands.put("minigames", new InfoMinigamesCommand()); //$NON-NLS-1$ - this.subCommands.put("extensions", new InfoExtensionsCommand()); //$NON-NLS-1$ - this.subCommands.put("minigame", new InfoMinigameCommand()); //$NON-NLS-1$ - // this.subCommands.put("extension", new InfoExtensionCommand()); //$NON-NLS-1$ - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - return true; - } - - @Override - public void handle(CommandInterface cmd) throws McException - { - cmd.permOpThrowException(MglibPerms.CommandInfo, cmd.getCommandPath()); - - if (cmd.getArgs().length > 0) - { - // pass to composite - super.handle(cmd); - return; - } - - // no argument, let us display info - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final McLibInterface mclib = McLibInterface.instance(); - - final String minigamesVersion = getPluginVersion("MinigamesLib"); //$NON-NLS-1$ - final String mclibVersion = getPluginVersion("mclib"); //$NON-NLS-1$ - final String bukkitVersion = Bukkit.getBukkitVersion(); - - // TODO get premium flag - final boolean isPremium = false; - final LocalizedMessageInterface mode = isPremium ? MglibMessages.ModePremium : MglibMessages.ModeStandard; - final LocalizedMessageInterface state = toString(mglib.getState()); - - cmd.send(Messages.CommandOutput, - cmd.getCommandPath(), - mclib.getMinecraftVersion().toString(), - minigamesVersion, - mode, - mglib.debug() ? MglibMessages.FlagTrue : MglibMessages.FlagFalse, - mglib.getApiVersion(), - mclib.getApiVersion(), - state, - mclibVersion, - bukkitVersion - ); - } - - /** - * Returns the string message for given lib state - * @param state - * @return string message - */ - private LocalizedMessageInterface toString(LibState state) - { - switch (state) - { - default: - case Initializing: - return MglibMessages.StateInitializing; - case Running: - return MglibMessages.StateRunning; - case Sleeping: - return MglibMessages.StateSleeping; - case Terminating: - return MglibMessages.StateTerminating; - } - } - - /** - * Returns plugin version for given plugin. - * @param name - * @return the plugin version. - */ - private String getPluginVersion(String name) - { - final Plugin plugin = Bukkit.getPluginManager().getPlugin(name); - if (plugin == null || plugin.getDescription() == null) return "?"; //$NON-NLS-1$ - return plugin.getDescription().getVersion(); - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface cmd) - { - return Messages.Description; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface cmd) - { - return Messages.ShortDescription; - } - - @Override - protected void sendUsage(CommandInterface cmd) - { - cmd.send(Messages.Usage); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_info") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 info - */ - @LocalizedMessage(defaultMessage = "Prints common information on minigames library.") - @MessageComment({"Short description of /mg2 info"}) - ShortDescription, - - /** - * Long description of /mg2 info - */ - @LocalizedMessage(defaultMessage = "Prints common information on minigames library.") - @MessageComment({"Long description of /mg2 info"}) - Description, - - /** - * The command output of /mg2 info - * - * <p>Arguments:</p> - * - * <ol> - * <li>String: current command path</li> - * <li>String: spigot version</li> - * <li>String: minigames version</li> - * <li>String: mode</li> - * <li>String: debug</li> - * <li>Number: api version</li> - * <li>Number: mclib api version</li> - * <li>String: minigames lib state</li> - * <li>String: mclib version</li> - * <li>String: bukkit version</li> - * </ol> - */ - @LocalizedMessageList({ - "minigames lib version %3$s (%4$s/%10$s)", - "state: %8$s", - "api version: %6$d", - "mclib version: %7$d (%9$s)", - "running on minecraft %2$s", - "debugging: %5$s", - "----------", - "Run for additional information:", - " " + LocalizedMessage.CODE_COLOR + "%1$s extensions " + LocalizedMessage.INFORMATION_COLOR + " to list the extensions.", - " " + LocalizedMessage.CODE_COLOR + "%1$s minigames " + LocalizedMessage.INFORMATION_COLOR + " to list the minigames." - }) - @MessageComment(value = { - "The command output of /mg2 info" - },args = { - @Argument("current command path"), - @Argument("spigot version name"), - @Argument("minigames version"), - @Argument("minigames mode"), - @Argument("debug flag"), - @Argument(value="api version", type="number"), - @Argument(value="mclib api version", type="number"), - @Argument("minigames lib state"), - @Argument("mclib version"), - @Argument("bukkit version"), - }) - CommandOutput, - - /** - * Usage for command /mg2 info - */ - @LocalizedMessage(defaultMessage = "Enter " + LocalizedMessage.CODE_COLOR + "/mg2 info help" + LocalizedMessage.INFORMATION_COLOR + " for detailed help") - @MessageComment({"Usage for command /mg2 info"}) - Usage - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java deleted file mode 100644 index 7fc9cf85..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionCommand.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.LocalizedPagableCommand; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.ExtensionInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * Handle the minigame command info - * @author mepeisen - */ -public class InfoExtensionCommand implements SubCommandHandlerInterface -{ - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkMinArgCount(1, Mg2Command.Messages.ExtensionNameMissing, Messages.Usage); - final ExtensionInterface extension = command.fetch(Mg2Command::getExtension).get(); - command.checkMaxArgCount(1, CommonMessages.TooManyArguments); - - if (command.getArgs().length == 1) - { - switch (command.getArgs()[0]) - { - case "manual": //$NON-NLS-1$ - new LocalizedPagableCommand( - extension.getManual(), - Messages.ManualPagedHeader.toArg(extension.getDisplayName()) - ).handle(command.consumeArgs(1)); - return; - default: - command.send(CommonMessages.CompositeUnknownSubCommand, command.getCommandPath(), command.getArgs()[1]); - return; - } - } - - // print Info - final String version = extension.getPlugin().getDescription().getVersion(); - command.send(Messages.CommandOutput, - extension.getDisplayName(), - extension.getShortDescription(), - version, - extension.getDescription().toListArg(), - command.getCommandPath(), - extension.getName() - ); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getExtensions(lastArg, 0, Integer.MAX_VALUE).stream().map(ExtensionInterface::getName).collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - return Arrays.asList("manual").stream().filter(p -> p.startsWith(lastArg.toLowerCase())).collect(Collectors.toList()); //$NON-NLS-1$ - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface cmd) - { - return Messages.Description; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface cmd) - { - return Messages.ShortDescription; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_info_extension") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 info extension - */ - @LocalizedMessage(defaultMessage = "Prints details on given extension.") - @MessageComment({"Short description of /mg2 info extension"}) - ShortDescription, - - /** - * Long description of /mg2 info extension - */ - @LocalizedMessage(defaultMessage = "Prints details of given extension.") - @MessageComment({"Long description of /mg2 info extension"}) - Description, - - /** - * Usage of /mg2 info extension - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 info extension <name>") - @MessageComment({"Usage of /mg2 info extension"}) - Usage, - - /** - * The command output of /mg2 info extension - */ - @LocalizedMessageList({ - "extension %1$s (%2$s)", - "version: %3$s", - "----------", - "%4$s", - "----------", - "Run for additional information:", - " " + LocalizedMessage.CODE_COLOR + "%5$s %6$s manual " + LocalizedMessage.INFORMATION_COLOR + " to display a manual." - }) - @MessageComment(value = { - "The command output of /mg2 info extension" - },args = { - @Argument("display name"), - @Argument("short description"), - @Argument("version number"), - @Argument("description"), - @Argument("command path"), - @Argument("extension name"), - }) - CommandOutput, - - /** - * Header line for /mg2 extension ... manual - */ - @LocalizedMessageList({ - "Manual for extension %1$s." - }) - @MessageComment(value = { - "Header line for /mg2 extension ... manual" - },args = { - @Argument("extension name"), - }) - ManualPagedHeader, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java deleted file mode 100644 index 2de154cb..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoExtensionsCommand.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * Handle the extensions command info - * @author mepeisen - */ -public class InfoExtensionsCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface -{ - - @Override - protected Serializable getHeader(CommandInterface cmd) - { - return Messages.Header; - } - - @Override - protected int getLineCount(CommandInterface cmd) - { - return MinigamesLibInterface.instance().getExtensionCount(); - } - - @Override - protected Serializable[] getLines(CommandInterface cmd, int start, int limit) - { - return MinigamesLibInterface.instance().getExtensions(start, limit).stream() - .map(ext -> ext.getDisplayName()).toArray(Serializable[]::new); - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface cmd) - { - return Messages.Description; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface cmd) - { - return Messages.ShortDescription; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_info_extensions") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 info extensions - */ - @LocalizedMessage(defaultMessage = "Prints a list of registered extensions.") - @MessageComment({"Short description of /mg2 info extensions"}) - ShortDescription, - - /** - * Long description of /mg2 info extensions - */ - @LocalizedMessage(defaultMessage = "Prints a list of registered extensions.") - @MessageComment({"Long description of /mg2 info extensions"}) - Description, - - /** - * Paging header text - */ - @LocalizedMessage(defaultMessage = "Extensions") - @MessageComment({"Paging header text"}) - Header, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java deleted file mode 100644 index 485acbf3..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigameCommand.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.LocalizedPagableCommand; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * Handle the minigame command info - * @author mepeisen - */ -public class InfoMinigameCommand implements SubCommandHandlerInterface -{ - - @Override - public void handle(CommandInterface command) throws McException - { - command.checkMinArgCount(1, Mg2Command.Messages.MinigameNameMissing, Messages.Usage); - final MinigameInterface minigame = command.fetch(Mg2Command::getMinigame).get(); - command.checkMaxArgCount(1, CommonMessages.TooManyArguments); - - if (command.getArgs().length == 1) - { - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - switch (command.getArgs()[0]) - { - case "arenas": //$NON-NLS-1$ - new ArenaListCommand( - () -> mglib.getArenaCount(minigame.getPlugin()), - () -> mglib.getArenas(minigame.getPlugin(), 0, Integer.MAX_VALUE).stream(), - Messages.ArenasPagedHeader.toArg(minigame.getDisplayName()) - ).handle(command.consumeArgs(1)); - return; - case "manual": //$NON-NLS-1$ - new LocalizedPagableCommand( - minigame.getManual(), - Messages.ManualPagedHeader.toArg(minigame.getDisplayName()) - ).handle(command.consumeArgs(1)); - return; - default: - command.send(CommonMessages.CompositeUnknownSubCommand, command.getCommandPath(), command.getArgs()[1]); - return; - } - } - - // print Info - final String version = minigame.getPlugin().getDescription().getVersion(); - command.send(Messages.CommandOutput, - minigame.getDisplayName(), - minigame.getShortDescription(), - version, - minigame.getDescription().toListArg(), - command.getCommandPath(), - minigame.getName() - ); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getMinigames(lastArg, 0, Integer.MAX_VALUE).stream().map(MinigameInterface::getName).collect(Collectors.toList()); - } - if (command.getArgs().length == 1) - { - return Arrays.asList("arenas", "manual").stream().filter(p -> p.startsWith(lastArg.toLowerCase())).collect(Collectors.toList()); //$NON-NLS-1$//$NON-NLS-2$ - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface cmd) - { - return Messages.Description; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface cmd) - { - return Messages.ShortDescription; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_info_minigame") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 info minigame - */ - @LocalizedMessage(defaultMessage = "Prints details on given minigame.") - @MessageComment({"Short description of /mg2 info minigame"}) - ShortDescription, - - /** - * Long description of /mg2 info minigame - */ - @LocalizedMessage(defaultMessage = "Prints details of given minigame.") - @MessageComment({"Long description of /mg2 info minigame"}) - Description, - - /** - * Usage of /mg2 info minigame - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 info minigame <name>") - @MessageComment({"Usage of /mg2 info minigame"}) - Usage, - - /** - * The command output of /mg2 info minigame - */ - @LocalizedMessageList({ - "minigame %1$s (%2$s)", - "version: %3$s", - "----------", - "%4$s", - "----------", - "Run for additional information:", - " " + LocalizedMessage.CODE_COLOR + "%5$s %6$s arenas " + LocalizedMessage.INFORMATION_COLOR + " to list the minigame arenas.", - " " + LocalizedMessage.CODE_COLOR + "%5$s %6$s manual " + LocalizedMessage.INFORMATION_COLOR + " to display a manual." - }) - @MessageComment(value = { - "The command output of /mg2 info minigame" - },args = { - @Argument("display name"), - @Argument("short description"), - @Argument("version number"), - @Argument("description"), - @Argument("command path"), - @Argument("minigame name"), - }) - CommandOutput, - - /** - * Header line for /mg2 minigame ... arenas - */ - @LocalizedMessageList({ - "Arenas for minigame %1$s." - }) - @MessageComment(value = { - "Header line for /mg2 minigame ... arenas" - },args = { - @Argument("minigame name"), - }) - ArenasPagedHeader, - - /** - * Header line for /mg2 minigame ... manual - */ - @LocalizedMessageList({ - "Manual for minigame %1$s." - }) - @MessageComment(value = { - "Header line for /mg2 minigame ... manual" - },args = { - @Argument("minigame name"), - }) - ManualPagedHeader, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java deleted file mode 100644 index fe345d7c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/InfoMinigamesCommand.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.cmd.AbstractPagableCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * Handle the minigames command info - * @author mepeisen - */ -public class InfoMinigamesCommand extends AbstractPagableCommandHandler implements SubCommandHandlerInterface -{ - - @Override - protected Serializable getHeader(CommandInterface cmd) - { - return Messages.Header; - } - - @Override - protected int getLineCount(CommandInterface cmd) - { - return MinigamesLibInterface.instance().getMinigameCount(); - } - - @Override - protected Serializable[] getLines(CommandInterface cmd, int start, int limit) - { - return MinigamesLibInterface.instance().getMinigames(start, limit).stream() - .map(mg -> mg.getDisplayName()).toArray(Serializable[]::new); - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface cmd) - { - return Messages.Description; - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface cmd) - { - return Messages.ShortDescription; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_info_minigames") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 info minigames - */ - @LocalizedMessage(defaultMessage = "Prints a list of registered minigames.") - @MessageComment({"Short description of /mg2 info minigames"}) - ShortDescription, - - /** - * Long description of /mg2 info minigames - */ - @LocalizedMessage(defaultMessage = "Prints a list of registered minigames.") - @MessageComment({"Long description of /mg2 info minigames"}) - Description, - - /** - * Paging header text - */ - @LocalizedMessage(defaultMessage = "Minigames") - @MessageComment({"Paging header text"}) - Header, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java deleted file mode 100644 index 056c62df..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/JoinCommand.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Let users join an arena. - * - * @author mepeisen - */ -public class JoinCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandJoin); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandJoin, command.getCommandPath()); - command.checkOnline(); - - command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); - final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); - command.checkMaxArgCount(0, CommonMessages.TooManyArguments); - - if (arena.isMaintenance()) - { - command.send(Messages.ArenaUnderMaintenance, arena.getDisplayName()); - return; - } - - // do the join - arena.join(MinigamesLibInterface.instance().getPlayer(command.getPlayer())); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_join") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 join - */ - @LocalizedMessage(defaultMessage = "Joins an arena.") - @MessageComment({"Short description of /mg2 join"}) - ShortDescription, - - /** - * Long description of /mg2 join - */ - @LocalizedMessage(defaultMessage = "Joins an arena.") - @MessageComment({"Long description of /mg2 join"}) - Description, - - /** - * Usage of /mg2 join - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 join <name>") - @MessageComment({"Usage of /mg2 join"}) - Usage, - - /** - * Arena is under maintenance - */ - @LocalizedMessage(defaultMessage = "Cannot join. Arena is under maintenance.") - @MessageComment({"Arena is under maintenance"}) - ArenaUnderMaintenance - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java deleted file mode 100644 index c63b7edf..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/LeaveCommand.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * @author mepeisen - * - */ -public class LeaveCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandLeave); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandLeave, command.getCommandPath()); - command.checkOnline(); - - command.checkMaxArgCount(0, CommonMessages.TooManyArguments); - - final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(command.getPlayer()); - if (player.inArena()) - { - player.getArena().leave(player); - } - else - { - throw new McException(Messages.NotWithinArena); - } - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_leave") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 leave - */ - @LocalizedMessage(defaultMessage = "Leave current arena.") - @MessageComment({"Short description of /mg2 leave"}) - ShortDescription, - - /** - * Long description of /mg2 leave - */ - @LocalizedMessage(defaultMessage = "Leave current arena.") - @MessageComment({"Long description of /mg2 leave"}) - Description, - - /** - * Usage of /mg2 leave - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 leave") - @MessageComment({"Usage of /mg2 leave"}) - Usage, - - /** - * You are not inside an arena - */ - @LocalizedMessage(defaultMessage = "You are not inside any arena", severity = MessageSeverityType.Error) - @MessageComment({"You are not inside an arena"}) - NotWithinArena, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java deleted file mode 100644 index 7b891d06..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/ManualCommand.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.LocalizedPagableCommand; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Prints info on arenas. - * - * @author mepeisen - */ -public class ManualCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOp() || command.isPlayer() && command.getPlayer().checkPermission(MglibPerms.CommandManual); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandManual, command.getCommandPath()); - - command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); - final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); - command.checkMaxArgCount(0, CommonMessages.TooManyArguments); - - // print manual - new LocalizedPagableCommand( - arena.getManual() == null ? arena.getMinigame().getHowToPlay() : arena.getManual(), - Messages.ManualPagedHeader.toArg(arena.getDisplayName()) - ).handle(command.consumeArgs(1)); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_manual") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 manual - */ - @LocalizedMessage(defaultMessage = "Prints how-to-play manual on arenas.") - @MessageComment({"Short description of /mg2 manual"}) - ShortDescription, - - /** - * Long description of /mg2 manual - */ - @LocalizedMessage(defaultMessage = "Prints how-to-play manual on arenas.") - @MessageComment({"Long description of /mg2 manual"}) - Description, - - /** - * Usage of /mg2 manual - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 manual <name>") - @MessageComment({"Usage of /mg2 manual"}) - Usage, - - /** - * Header line for /mg2 manual ... - */ - @LocalizedMessageList({ - "How-to-play for arena %1$s." - }) - @MessageComment(value = { - "Header line for /mg2 manual ..." - },args = { - @Argument("arena display name"), - }) - ManualPagedHeader, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java deleted file mode 100644 index f12ff14a..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/Mg2Command.java +++ /dev/null @@ -1,526 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Optional; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.AbstractCompositeCommandHandler; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.HelpCommandHandler; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.shared.api.com.UniqueEnumerationValue; -import de.minigameslib.mgapi.api.ExtensionInterface; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; - -/** - * The mg2 main command - * - * @author mepeisen - */ -public class Mg2Command extends AbstractCompositeCommandHandler -{ - - /** - * Constructor to register the sub commands - */ - public Mg2Command() - { - this.subCommands.put("help", new HelpCommandHandler(this)); //$NON-NLS-1$ - - this.subCommands.put("info", new InfoCommand()); //$NON-NLS-1$ - this.subCommands.put("arenas", new ArenasCommand()); //$NON-NLS-1$ - this.subCommands.put("arena", new ArenaCommand()); //$NON-NLS-1$ - this.subCommands.put("join", new JoinCommand()); //$NON-NLS-1$ - this.subCommands.put("spectate", new SpectateCommand()); //$NON-NLS-1$ - this.subCommands.put("leave", new LeaveCommand()); //$NON-NLS-1$ - this.subCommands.put("admin", new AdminCommand()); //$NON-NLS-1$ - } - - @Override - protected boolean pre(CommandInterface command) throws McException - { - // allowed from everywhere - return true; - } - - @Override - protected void sendUsage(CommandInterface cmd) - { - cmd.send(Messages.Usage); - } - - /** - * Maps argument to arena interface; returns players arena if no argument was given - * @param command - * @param usage - * @return arena instance - * @throws McException thrown if arena was not found - */ - public static ArenaInterface getArenaFromPlayer(CommandInterface command, LocalizedMessageInterface usage) throws McException - { - if (command.getArgs().length == 0) - { - if (command.isPlayer()) - { - final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(command.getPlayer()); - if (!player.inArena()) - { - throw new McException(Messages.ArenaNameMissing, usage); - } - return player.getArena(); - } - throw new McException(Messages.ArenaNameMissing, usage); - } - return getArena(command, command.fetchString(Messages.ArenaNameMissing, usage)); - } - - /** - * Maps argument to sign interface - * @param arena - * @param command - * @param usage - * @return sign instance - * @throws McException thrown if sign was not found - */ - public static SignInterface getSign(ArenaInterface arena, CommandInterface command, LocalizedMessageInterface usage) throws McException - { - final String name = command.fetchString(Messages.ComponentNameMissing, usage); - @SuppressWarnings("cast") - final Optional<ArenaSignHandler> handler = arena.getSigns().stream(). - map(s -> (ArenaSignHandler) arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - return handler.get().getSign(); - } - throw new McException(Messages.ComponentNotFound, usage); - } - - /** - * Maps argument to zone interface - * @param arena - * @param command - * @param usage - * @return sign instance - * @throws McException thrown if zone was not found - */ - public static ZoneInterface getZone(ArenaInterface arena, CommandInterface command, LocalizedMessageInterface usage) throws McException - { - final String name = command.fetchString(Messages.ComponentNameMissing, usage); - @SuppressWarnings("cast") - final Optional<ArenaZoneHandler> handler = arena.getZones().stream(). - map(s -> (ArenaZoneHandler) arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - return handler.get().getZone(); - } - throw new McException(Messages.ComponentNotFound, usage); - } - - /** - * Maps argument to component interface - * @param arena - * @param command - * @param usage - * @return sign instance - * @throws McException thrown if zone was not found - */ - public static ComponentInterface getComponent(ArenaInterface arena, CommandInterface command, LocalizedMessageInterface usage) throws McException - { - final String name = command.fetchString(Messages.ComponentNameMissing, usage); - @SuppressWarnings("cast") - final Optional<ArenaComponentHandler> handler = arena.getComponents().stream(). - map(s -> (ArenaComponentHandler) arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - return handler.get().getComponent(); - } - throw new McException(Messages.ComponentNotFound, usage); - } - - /** - * Maps argument to arena interface - * @param command - * @param usage - * @return arena instance - * @throws McException thrown if arena was not found - */ - public static ArenaInterface getArena(CommandInterface command, LocalizedMessageInterface usage) throws McException - { - return getArena(command, command.fetchString(Messages.ArenaNameMissing, usage)); - } - - /** - * Maps argument to arena interface - * @param command - * @param usage - * @return arena instance - */ - public static ArenaInterface getArenaOptional(CommandInterface command, LocalizedMessageInterface usage) - { - if (command.getArgs().length == 0) return null; - try - { - return getArenaOptional(command, command.fetchString(Messages.ArenaNameMissing, usage)); - } - catch (@SuppressWarnings("unused") McException e) - { - // silently ignore (will not happen) - return null; - } - } - - /** - * Maps argument to arena interface - * @param command - * @param arenaName - * @return arena instance - * @throws McException thrown if arena was not found - */ - public static ArenaInterface getArena(CommandInterface command, String arenaName) throws McException - { - final ArenaInterface arena = getArenaOptional(command, arenaName); - if (arena == null) - { - throw new McException(Messages.ArenaNotFound, arenaName); - } - return arena; - } - - /** - * Maps argument to arena interface - * @param command - * @param arenaName - * @return arena instance or {@code null} if it was not found - */ - public static ArenaInterface getArenaOptional(CommandInterface command, String arenaName) - { - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ArenaInterface arena = mglib.getArena(arenaName); - return arena; - } - - /** - * Maps argument to minigame interface - * @param command - * @param minigameName - * @return minigame instance - * @throws McException thrown if minigame was not found - */ - public static MinigameInterface getMinigame(CommandInterface command, String minigameName) throws McException - { - final MinigameInterface minigame = getMinigameOptional(command, minigameName); - if (minigame == null) - { - throw new McException(Messages.MinigameNotFound, minigameName); - } - return minigame; - } - - /** - * Maps argument to minigame interface - * @param command - * @param minigameName - * @return minigame instance or {@code null} if it was not found - */ - public static MinigameInterface getMinigameOptional(CommandInterface command, String minigameName) - { - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final MinigameInterface minigame = mglib.getMinigame(minigameName); - return minigame; - } - - /** - * Maps argument to unique enum value - * @param command - * @param clazz - * @param typeName - * @return type enum - * @throws McException thrown if type enum was not found - */ - public static <T extends UniqueEnumerationValue> T getEnum(CommandInterface command, Class<T> clazz, String typeName) throws McException - { - final String[] splitted = typeName.split("\\/", 2); //$NON-NLS-1$ - if (splitted.length == 1) - { - throw new McException(Messages.ComponentTypeNotFound, typeName); - } - final T result = EnumServiceInterface.instance().getEnumValue(clazz, splitted[0], splitted[1]); - if (result == null) - { - throw new McException(Messages.ComponentTypeNotFound, typeName); - } - return result; - } - - /** - * Maps argument to arena type interface - * @param command - * @param typeName - * @param minigame - * @return type instance - * @throws McException thrown if type was not found - */ - public static ArenaTypeInterface getType(CommandInterface command, String typeName, MinigameInterface minigame) throws McException - { - final ArenaTypeInterface type = getTypeOptional(command, typeName, minigame); - if (type == null) - { - throw new McException(Messages.TypeNotFound, typeName); - } - return type; - } - - /** - * Maps argument to arena type interface - * @param command - * @param typeName - * @param minigame - * @return type instance or {@code null} if it was not found - */ - public static ArenaTypeInterface getTypeOptional(CommandInterface command, String typeName, MinigameInterface minigame) - { - final ArenaTypeInterface type = minigame.getType(typeName); - return type; - } - - /** - * Maps argument to extension interface - * @param command - * @param extensionName - * @return extension instance - * @throws McException thrown if extension was not found - */ - public static ExtensionInterface getExtension(CommandInterface command, String extensionName) throws McException - { - final ExtensionInterface extension = getExtensionOptional(command, extensionName); - if (extension == null) - { - throw new McException(Messages.ExtensionNotFound, extensionName); - } - return extension; - } - - /** - * Maps argument to extension interface - * @param command - * @param extensionName - * @return extension instance or {@code null} if it was not found - */ - public static ExtensionInterface getExtensionOptional(CommandInterface command, String extensionName) - { - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ExtensionInterface extension = mglib.getExtension(extensionName); - return extension; - } - - /** - * Maps argument to player interface - * @param command - * @param playerName - * @return player instance - * @throws McException thrown if player was not found - */ - public static ArenaPlayerInterface getPlayer(CommandInterface command, String playerName) throws McException - { - final ArenaPlayerInterface player = getPlayerOptional(command, playerName); - if (player == null) - { - throw new McException(Messages.PlayerNotFound, playerName); - } - return player; - } - - /** - * Maps argument to player interface - * @param command - * @param playerName - * @return player instance or {@code null} if it was not found - */ - public static ArenaPlayerInterface getPlayerOptional(CommandInterface command, String playerName) - { - final Player bukkitPlayer = Bukkit.getPlayerExact(playerName); - if (bukkitPlayer != null) - { - final McPlayerInterface mcPlayer = ObjectServiceInterface.instance().getPlayer(bukkitPlayer); - final MinigamesLibInterface mglib = MinigamesLibInterface.instance(); - final ArenaPlayerInterface player = mglib.getPlayer(mcPlayer); - return player; - } - return null; - } - - /** - * The /mg2 messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Usage for command /mg2 - */ - @LocalizedMessage(defaultMessage = "Enter " + LocalizedMessage.CODE_COLOR + "/mg2 help" + LocalizedMessage.INFORMATION_COLOR + " for detailed help") - @MessageComment({"Usage for command /mg2"}) - Usage, - - /** - * Arena was not found - */ - @LocalizedMessage(defaultMessage = "Arena " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"arena was not found"}, args = @Argument("arena name")) - ArenaNotFound, - - /** - * Player was not found - */ - @LocalizedMessage(defaultMessage = "Player " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"player was not found"}, args = @Argument("player name")) - PlayerNotFound, - - /** - * Minigame was not found - */ - @LocalizedMessage(defaultMessage = "Minigame " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"minigame was not found"}, args = @Argument("minigame name")) - MinigameNotFound, - - /** - * Arena type was not found - */ - @LocalizedMessage(defaultMessage = "Arena type " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"arena type was not found"}, args = @Argument("type name")) - TypeNotFound, - - /** - * Extension was not found - */ - @LocalizedMessage(defaultMessage = "Extension " + LocalizedMessage.CODE_COLOR + "%1$s" + LocalizedMessage.ERROR_COLOR + " not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"extension was not found"}, args = @Argument("extension name")) - ExtensionNotFound, - - /** - * Name argument is missing - */ - @LocalizedMessageList(value = {"Missing player name", "%1$s"}, severity = MessageSeverityType.Error) - @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) - PlayerNameMissing, - - /** - * Component argument is missing - */ - @LocalizedMessageList(value = {"Missing component name", "%1$s"}, severity = MessageSeverityType.Error) - @MessageComment(value = {"Component argument is missing"}, args = @Argument("command usage")) - ComponentNameMissing, - - /** - * Component already exists - */ - @LocalizedMessage(defaultMessage = "Component " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + "already exists", severity = MessageSeverityType.Error) - @MessageComment(value = {"Component already exists"}, args = @Argument("component name")) - ComponentAlreadyExists, - - /** - * Component not found - */ - @LocalizedMessage(defaultMessage = "Component " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + "not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"Component not found"}, args = @Argument("component name")) - ComponentNotFound, - - /** - * Component type argument is missing - */ - @LocalizedMessageList(value = {"Missing component type name", "%1$s"}, severity = MessageSeverityType.Error) - @MessageComment(value = {"Component type argument is missing"}, args = @Argument("command usage")) - ComponentTypeNameMissing, - - /** - * Component type not found - */ - @LocalizedMessage(defaultMessage = "Component type " + LocalizedMessage.CODE_COLOR + "%1$s " + LocalizedMessage.ERROR_COLOR + "not found", severity = MessageSeverityType.Error) - @MessageComment(value = {"Component type not found"}, args = @Argument("component type name")) - ComponentTypeNotFound, - - /** - * Name argument is missing - */ - @LocalizedMessageList(value = {"Missing arena name", "%1$s"}, severity = MessageSeverityType.Error) - @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) - ArenaNameMissing, - - /** - * Name argument is missing - */ - @LocalizedMessageList(value = {"Missing minigame name", "%1$s"}, severity = MessageSeverityType.Error) - @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) - MinigameNameMissing, - - /** - * Name argument is missing - */ - @LocalizedMessage(defaultMessage = "Missing extension name", severity = MessageSeverityType.Error) - @MessageComment({"Name argument is missing"}) - ExtensionNameMissing, - - /** - * Name argument is missing - */ - @LocalizedMessageList(value = {"Missing arena type", "%1$s"}, severity = MessageSeverityType.Error) - @MessageComment(value = {"Name argument is missing"}, args = @Argument("command usage")) - TypeNameMissing, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java deleted file mode 100644 index 2a510706..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/SpectateCommand.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd; - -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.cmd.CommandInterface; -import de.minigameslib.mclib.api.cmd.SubCommandHandlerInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.impl.MglibPerms; - -/** - * Let users spectate a match. - * - * @author mepeisen - */ -public class SpectateCommand implements SubCommandHandlerInterface -{ - - @Override - public boolean visible(CommandInterface command) - { - return command.isOnline() && command.checkOpPermission(MglibPerms.CommandSpectate); - } - - @Override - public void handle(CommandInterface command) throws McException - { - command.permOpThrowException(MglibPerms.CommandSpectate, command.getCommandPath()); - command.checkOnline(); - - command.checkMinArgCount(1, Mg2Command.Messages.ArenaNameMissing, Messages.Usage); - final ArenaInterface arena = command.fetch(Mg2Command::getArena).get(); - command.checkMaxArgCount(0, CommonMessages.TooManyArguments); - - // do the spectate - arena.spectate(MinigamesLibInterface.instance().getPlayer(command.getPlayer())); - } - - @Override - public List<String> onTabComplete(CommandInterface command, String lastArg) throws McException - { - if (command.getArgs().length == 0) - { - return MinigamesLibInterface.instance().getArenas(lastArg, 0, Integer.MAX_VALUE).stream() - .map(ArenaInterface::getInternalName) - .filter(a -> a.toLowerCase().startsWith(lastArg)) - .collect(Collectors.toList()); - } - return Collections.emptyList(); - } - - @Override - public LocalizedMessageInterface getShortDescription(CommandInterface command) - { - return Messages.ShortDescription; - } - - @Override - public LocalizedMessageInterface getDescription(CommandInterface command) - { - return Messages.Description; - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.mg2_spectate") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Short description of /mg2 spectate - */ - @LocalizedMessage(defaultMessage = "Spectates an arena match.") - @MessageComment({"Short description of /mg2 spectate"}) - ShortDescription, - - /** - * Long description of /mg2 spectate - */ - @LocalizedMessage(defaultMessage = "Spectates an arena match.") - @MessageComment({"Long description of /mg2 spectate"}) - Description, - - /** - * Usage of /mg2 spectate - */ - @LocalizedMessage(defaultMessage = "Usage: " + LocalizedMessage.CODE_COLOR + "/mg2 spectate <name>") - @MessageComment({"Usage of /mg2 spectate"}) - Usage, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java deleted file mode 100644 index 22e4238b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/AbstractPage.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.PagableClickGuiPage; - -/** - * Abstract base class for pagable elements. - * - * @author mepeisen - * @param <T> element type - */ -public abstract class AbstractPage<T> extends PagableClickGuiPage<T> -{ - - /** - * Constructor to create the first page - */ - public AbstractPage() - { - // empty - } - - /** - * Constructor to create given page - * @param pageNum - */ - public AbstractPage(int pageNum) - { - super(pageNum); - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(super.getItems(), 6); - } - - /** - * prev page icon - * @return prev page icon - */ - public ClickGuiItem itemPrevPage() - { - return this.page() > 1 ? Main.itemPrevPage(this::onPrevPage) : null; - } - - /** - * next page icon - * @return next page icon - */ - public ClickGuiItem itemNextPage() - { - return this.page() < this.totalPages() ? Main.itemNextPage(this::onNextPage) : null; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java deleted file mode 100644 index 0544eb4b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseArenaType.java +++ /dev/null @@ -1,230 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McBiConsumer; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * Page with arena type; choose type for new arena - * - * @author mepeisen - */ -public class ArenaCreateChooseArenaType extends AbstractPage<ArenaTypeInterface> -{ - - /** the arena */ - private McBiConsumer<ArenaTypeInterface, String> onSave; - - /** previous page */ - private ClickGuiPageInterface prev; - - /** the underlying minigame. */ - private MinigameInterface minigame; - - /** - * @param minigame - * @param onSave - * @param prev - */ - public ArenaCreateChooseArenaType(MinigameInterface minigame, McBiConsumer<ArenaTypeInterface, String> onSave, ClickGuiPageInterface prev) - { - this.minigame = minigame; - this.onSave = onSave; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.minigame.getName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return this.minigame.getTypeCount(); - } - - /** - * Converts arena type to string - * @param compType - * @return arena type - */ - private String toString(ArenaTypeInterface compType) - { - return compType.getPluginName() + "/" + compType.name(); //$NON-NLS-1$ - } - - @Override - protected List<ArenaTypeInterface> getElements(int start, int limit) - { - final Set<ArenaTypeInterface> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); - result.addAll(this.minigame.getTypes(0, Integer.MAX_VALUE)); - return result. - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ArenaTypeInterface elm) - { - final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Component); - return new ClickGuiItem(item, Messages.IconComponent, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - null, - null, - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - null, - Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) - }; - } - - /** - * Returns a free name with given prefix. - * @param prefix - * @return free name - */ - private String getFreeName(String prefix) - { - int i = 1; - while (true) - { - final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ - - if (MinigamesLibInterface.instance().getArena(name) == null) - { - return name; - } - - i++; - } - } - - /** - * type chosen - * @param player - * @param session - * @param gui - * @param type - * @throws McException - */ - private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaTypeInterface type) throws McException - { - final String text = this.getFreeName(type.name().toLowerCase()); - - player.openAnvilGui(new QueryText( - text, - () -> {player.openClickGui(new Main(this.prev));}, - (s) -> this.onName(player, session, gui, type, s), - player.encodeMessage(Messages.TextDescription))); - } - - /** - * name selected - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaTypeInterface type, String name) throws McException - { - this.onSave.accept(type, name); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.arena_create_choose_type") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (arena types page) - */ - @LocalizedMessage(defaultMessage = "Type for new %1$s arena (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (arena types page)"}, args = {@Argument("minigame name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The Cancel - */ - @LocalizedMessage(defaultMessage = "Cancel creation") - @MessageComment({"cancel icon"}) - IconCancel, - - /** - * The component icon - */ - @LocalizedMessage(defaultMessage = "type %1$s") - @MessageComment(value = {"component type icon"}, args=@Argument("type name")) - IconComponent, - - /** - * Text description - */ - @LocalizedMessageList({"Enter the name of the new arena.", "The name is only used internal."}) - @MessageComment("Text description for arena name") - TextDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java deleted file mode 100644 index 331beea4..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaCreateChooseMinigame.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McBiConsumer; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; - -/** - * Page with minigames; choose minigame for new arena - * - * @author mepeisen - */ -public class ArenaCreateChooseMinigame extends AbstractPage<MinigameInterface> -{ - - /** the arena */ - private McBiConsumer<ArenaTypeInterface, String> onSave; - - /** previous page */ - private ClickGuiPageInterface prev; - - /** - * @param onSave - * @param prev - */ - public ArenaCreateChooseMinigame(McBiConsumer<ArenaTypeInterface, String> onSave, ClickGuiPageInterface prev) - { - this.onSave = onSave; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return MinigamesLibInterface.instance().getMinigameCount(); - } - - @Override - protected List<MinigameInterface> getElements(int start, int limit) - { - final Set<MinigameInterface> result = new TreeSet<>((a, b) -> a.getName().compareTo(b.getName())); - result.addAll(MinigamesLibInterface.instance().getMinigames(0, Integer.MAX_VALUE)); - return result. - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, MinigameInterface elm) - { - return Main.itemMinigame(elm, (p, s, g) -> this.onChoose(p, s, g, elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - null, - null, - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - null, - Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) - }; - } - - /** - * minigame chosen - * @param player - * @param session - * @param gui - * @param mg - * @throws McException - */ - private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, MinigameInterface mg) throws McException - { - session.setNewPage(new ArenaCreateChooseArenaType(mg, this.onSave, this.prev)); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.arena_create_choose_minigame") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (minigames page) - */ - @LocalizedMessage(defaultMessage = "Minigame for new arena (page %1$d from %2$d)") - @MessageComment(value = {"Gui title (minigames page)"}, args = {@Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The Cancel - */ - @LocalizedMessage(defaultMessage = "Cancel creation") - @MessageComment({"cancel icon"}) - IconCancel, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java deleted file mode 100644 index 574d8e30..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenaEdit.java +++ /dev/null @@ -1,770 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetInterface; -import de.minigameslib.mgapi.impl.cmd.ArenaCommand; - -/** - * Click gui for editing arenas. - * - * @author mepeisen - */ -public class ArenaEdit implements ClickGuiPageInterface -{ - - /** arena to be edited. */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** - * @param arena - * @param prevPage - */ - public ArenaEdit(ArenaInterface arena, ClickGuiPageInterface prevPage) - { - this.arena = arena; - this.prevPage = prevPage; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - Main.itemHome(), - Main.itemBack(this::onBack, Messages.IconBack), - null, - Main.itemRefresh(this::onRefresh), - null, - null, - null, - null, - Main.itemCloseGui() - }, - null, - { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconDisplayName, this::onDisplayName), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconShortDescription, this::onShortDescription), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconLongDescription, this::onLongDescription), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconManual, this::onManual), - }, - { - this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Question), Messages.IconCheck, this::onCheck) : null, - this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Apply), Messages.IconEnable, this::onEnable) : null, - !this.arena.isDisabled() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Flag), Messages.IconDisable, this::onDisable) : null, - this.arena.isDisabled() || this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save), Messages.IconExport, this::onExport) : null, //, - !this.arena.isDisabled() && !this.arena.isMaintenance() && !this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Play), Messages.IconStart, this::onStart) : null, - this.arena.isMatch() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Stop), Messages.IconStop, this::onStop) : null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Redo), Messages.IconHardReset, this::onHardReset), - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People), Messages.IconPlayers, this::onPlayers), - }, - { - !this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Modify), Messages.IconMaintenance, this::onMaintenance) : null, - null, - this.arena.isMaintenance() ? Main.itemDelete(this::onDelete, Messages.IconDelete) : null, - this.arena.isMaintenance() ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Retort), Messages.IconTest, this::onTest) : null, - this.arena.getState() == ArenaState.Join ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Person), Messages.IconInvite, this::onInvite) : null, - null, - this.arena.getTeams().size() > 0 ? new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_User_group), Messages.IconTeams, this::onTeams) : null, - }, - { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules), - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconComponents, this::onComponents), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconZones, this::onZones), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconSigns, this::onSigns), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Wrench), Messages.IconEntities, this::onEntities), - } - }, 6); - } - - /** - * entites - * @param player - * @param session - * @param gui - */ - private void onEntities(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui edit entities - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * signs - * @param player - * @param session - * @param gui - */ - private void onSigns(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new SignsPage(this.arena, this)); - } - - /** - * zones - * @param player - * @param session - * @param gui - */ - private void onZones(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new ZonesPage(this.arena, this)); - } - - /** - * components - * @param player - * @param session - * @param gui - */ - private void onComponents(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new ComponentsPage(this.arena, this)); - } - - /** - * rules - * @param player - * @param session - * @param gui - */ - private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new RulesPage<>(this.getPageName(), this.arena, this, rt -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaRuleSetInterface.class, this.arena.getRuleSet(rt)); - })); - } - - /** - * teams - * @param player - * @param session - * @param gui - */ - private void onTeams(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui edit teams - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * arena invite - * @param player - * @param session - * @param gui - */ - private void onInvite(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui invite - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * test mode - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onTest(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.setTestState(); - this.onRefresh(player, session, gui); - } - - /** - * delete - * @param player - * @param session - * @param gui - */ - private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new YesNoQuestion(Messages.QuestionReallyDelete, this::onDeleteEx, this::onRefresh, Messages.QuestionReallyDeleteDetails)); - } - - /** - * delete - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDeleteEx(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.delete(); - session.setNewPage(this.prevPage); - } - - /** - * Maintenance - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onMaintenance(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - session.setNewPage(new YesNoQuestion( - Messages.QuestionMaintenanceKickPlayers, - this::onMaintenanceForce, - this::onMaintenanceAfterMatch, - Messages.QuestionMaintenanceKickPlayersDetails)); - } - - /** - * Maintenance - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onMaintenanceForce(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.setMaintenance(true); - this.onRefresh(player, session, gui); - } - - /** - * Maintenance - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onMaintenanceAfterMatch(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.setMaintenance(false); - this.onRefresh(player, session, gui); - } - - /** - * players overview - * @param player - * @param session - * @param gui - */ - private void onPlayers(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui edit players - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * hard reset arena - * @param player - * @param session - * @param gui - */ - private void onHardReset(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui edit hard reset - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * stop match - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onStop(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.abort(); - this.onRefresh(player, session, gui); - } - - /** - * start match - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onStart(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.forceStart(); - this.onRefresh(player, session, gui); - } - - /** - * disable arena - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDisable(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - session.setNewPage(new YesNoQuestion( - Messages.QuestionDisableKickPlayers, - this::onDisableForce, - this::onDisableAfterMatch, - Messages.QuestionDisableKickPlayersDetails)); - } - - /** - * disable arena - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDisableForce(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.setDisabledState(true); - this.onRefresh(player, session, gui); - } - - /** - * disable arena - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDisableAfterMatch(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.setDisabledState(false); - this.onRefresh(player, session, gui); - } - - /** - * enable arena - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onEnable(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.arena.setEnabledState(); - this.onRefresh(player, session, gui); - } - - /** - * check arena - * @param player - * @param session - * @param gui - */ - private void onCheck(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support check - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * edit manual - * @param player - * @param session - * @param gui - */ - private void onManual(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new LocalizedLinesList( - Messages.IconManual, - this.arena.getManual(), (s) -> { this.arena.saveData(); }, - this)); - } - - /** - * edit long description - * @param player - * @param session - * @param gui - */ - private void onLongDescription(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new LocalizedLinesList( - Messages.IconLongDescription, - this.arena.getDescription(), (s) -> { this.arena.saveData(); }, - this)); - } - - /** - * edit short description - * @param player - * @param session - * @param gui - */ - private void onShortDescription(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new LocalizedStringList( - Messages.IconShortDescription, - this.arena.getShortDescription(), (s) -> { this.arena.saveData(); }, - this)); - } - - /** - * edit display name - * @param player - * @param session - * @param gui - */ - private void onDisplayName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new LocalizedStringList( - Messages.IconDisplayName, - this.arena.getDisplayName(), (s) -> { this.arena.saveData(); }, - this)); - } - - /** - * arena info - * @param player - * @param session - * @param gui - */ - private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - final MinigameInterface minigame = this.arena.getMinigame(); - final Serializable mgName = minigame == null ? "<invalid>" : this.arena.getMinigame().getDisplayName(); //$NON-NLS-1$ - player.sendMessage(Messages.InfoOutput, - mgName, - this.arena.getDisplayName(), - this.arena.getShortDescription(), - ArenaCommand.toString(this.arena.getState()), - this.arena.getDescription() - ); - } - - /** - * arena export - * @param player - * @param session - * @param gui - */ - private void onExport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support export - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * refresh gui - * @param player - * @param session - * @param gui - */ - private void onRefresh(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this); - } - - /** - * back to previous gui - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.arena.getDisplayName()); - } - - /** - * The arena create messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.arena_edit") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (arena edit page) - */ - @LocalizedMessage(defaultMessage = "Arena %1$s - %2$s") - @MessageComment(value = {"Gui title (arena edit)"}, args = {@Argument("internal name"), @Argument("display name")}) - Title, - - /** - * back to arenas - */ - @LocalizedMessage(defaultMessage = "Back to arenas list") - @MessageComment({"back to arenas"}) - IconBack, - - /** - * info - */ - @LocalizedMessage(defaultMessage = "Arena info") - @MessageComment({"info"}) - IconInfo, - - /** - * display name - */ - @LocalizedMessage(defaultMessage = "Display name") - @MessageComment({"display name"}) - IconDisplayName, - - /** - * short description - */ - @LocalizedMessage(defaultMessage = "Short description") - @MessageComment({"short description"}) - IconShortDescription, - - /** - * long description - */ - @LocalizedMessage(defaultMessage = "Long description") - @MessageComment({"long description"}) - IconLongDescription, - - /** - * Manual - */ - @LocalizedMessage(defaultMessage = "Manual") - @MessageComment({"manual"}) - IconManual, - - /** - * check - */ - @LocalizedMessage(defaultMessage = "Arena check") - @MessageComment({"check"}) - IconCheck, - - /** - * enable - */ - @LocalizedMessage(defaultMessage = "Enable") - @MessageComment({"enable"}) - IconEnable, - - /** - * disable - */ - @LocalizedMessage(defaultMessage = "Disable") - @MessageComment({"disable"}) - IconDisable, - - /** - * start match - */ - @LocalizedMessage(defaultMessage = "Start match") - @MessageComment({"start match"}) - IconStart, - - /** - * stop match - */ - @LocalizedMessage(defaultMessage = "Stop match") - @MessageComment({"stop match"}) - IconStop, - - /** - * hard reset - */ - @LocalizedMessage(defaultMessage = "Hard reset") - @MessageComment({"hard reset"}) - IconHardReset, - - /** - * players - */ - @LocalizedMessage(defaultMessage = "Players") - @MessageComment({"players"}) - IconPlayers, - - /** - * maintenance - */ - @LocalizedMessage(defaultMessage = "Maintenance (edit arena)") - @MessageComment({"maintenance"}) - IconMaintenance, - - /** - * delete - */ - @LocalizedMessage(defaultMessage = "Delete") - @MessageComment({"delete"}) - IconDelete, - - /** - * test - */ - @LocalizedMessage(defaultMessage = "Test mode") - @MessageComment({"test"}) - IconTest, - - /** - * invite - */ - @LocalizedMessage(defaultMessage = "Invite") - @MessageComment({"invite"}) - IconInvite, - - /** - * rules - */ - @LocalizedMessage(defaultMessage = "Rules") - @MessageComment({"rules"}) - IconRules, - - /** - * components - */ - @LocalizedMessage(defaultMessage = "Components") - @MessageComment({"components"}) - IconComponents, - - /** - * zones - */ - @LocalizedMessage(defaultMessage = "Zones") - @MessageComment({"zones"}) - IconZones, - - /** - * signs - */ - @LocalizedMessage(defaultMessage = "Signs") - @MessageComment({"Signs"}) - IconSigns, - - /** - * entites - */ - @LocalizedMessage(defaultMessage = "Entities") - @MessageComment({"entities"}) - IconEntities, - - /** - * teams - */ - @LocalizedMessage(defaultMessage = "Teams") - @MessageComment({"teams"}) - IconTeams, - - /** - * export - */ - @LocalizedMessage(defaultMessage = "Export") - @MessageComment({"export"}) - IconExport, - - /** - * question: really delete arena - */ - @LocalizedMessage(defaultMessage = "Really delete arena?") - @MessageComment({"question: Really delete arena"}) - QuestionReallyDelete, - - /** - * question: really delete arena - */ - @LocalizedMessageList({"Do you really want to delete this arena?", "The deletion can not be undone.", "If you want to use the arena later please export it first."}) - @MessageComment({"question: Really delete arena"}) - QuestionReallyDeleteDetails, - - /** - * question: kick players - */ - @LocalizedMessage(defaultMessage = "Kick players in lobby/match?") - @MessageComment({"question: kick players"}) - QuestionMaintenanceKickPlayers, - - /** - * question: kick players - */ - @LocalizedMessageList({"Do you want to kick all players?", "If you choose yes all players are kicked and the arena is going to maintenance asap.", "If you choose no the arena is going to maintenance after current match."}) - @MessageComment({"question: kick players"}) - QuestionMaintenanceKickPlayersDetails, - - /** - * question: kick players - */ - @LocalizedMessage(defaultMessage = "Kick players in lobby/match?") - @MessageComment({"question: kick players"}) - QuestionDisableKickPlayers, - - /** - * question: kick players - */ - @LocalizedMessageList({"Do you want to kick all players?", "If you choose yes all players are kicked and the arena is disabled asap.", "If you choose no the arena is disabled after current match."}) - @MessageComment({"question: kick players"}) - QuestionDisableKickPlayersDetails, - - /** - * The command output of /mg2 arena - * @see ArenaEdit (onInfo) - */ - @LocalizedMessageList({ - "minigame: %1$s", - "arena: %2$s - %3$s", - "state: %4$s", - "----------", - "%5$s" - }) - @MessageComment(value = { - "The command output of /mg2 arena" - },args = { - @Argument("minigame display name"), - @Argument("arena display name"), - @Argument("arena short description"), - @Argument("arena state"), - @Argument("arena long description"), - }) - InfoOutput, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java deleted file mode 100644 index b0c7dff5..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ArenasPage.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; - -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * Page with arena options - * - * @author mepeisen - */ -public class ArenasPage extends AbstractPage<ArenaInterface> -{ - - /** - * Constructor to create the first page - */ - public ArenasPage() - { - // empty - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return MinigamesLibInterface.instance().getArenaCount(); - } - - @Override - protected List<ArenaInterface> getElements(int start, int limit) - { - return MinigamesLibInterface.instance().getArenas(start, limit); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ArenaInterface elm) - { - return Main.itemArena(elm, (p, s, g) -> onArena(p, s, g, elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - null, - Main.itemNew(this::onNew, Messages.IconNewArena), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Save), Messages.IconImport, this::onImport), - null, - Main.itemCloseGui() - }; - } - - /** - * arena import - * @param player - * @param session - * @param gui - */ - private void onImport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support import - player.sendMessage(Main.Messages.NotAvailable); - } - - /** - * arena - * @param player - * @param session - * @param gui - * @param arena - */ - private void onArena(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaInterface arena) - { - session.setNewPage(new ArenaEdit(arena, this)); - } - - /** - * new arena - * @param player - * @param session - * @param gui - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new ArenaCreateChooseMinigame((type, name) -> { - final ArenaInterface arena = MinigamesLibInterface.instance().create(name, type); - player.openClickGui(new Main(new ArenaEdit(arena, this))); - },this)); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.arenas") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (arenas page) - */ - @LocalizedMessage(defaultMessage = "Arenas (page %1$d from %2$d)") - @MessageComment(value = {"Gui title (arenas page)"}, args = {@Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The new icon - */ - @LocalizedMessage(defaultMessage = "New arena") - @MessageComment({"new arena icon"}) - IconNewArena, - - /** - * The arena icon - */ - @LocalizedMessage(defaultMessage = "arena %1$s") - @MessageComment(value = {"arena icon"}, args=@Argument("arena display name")) - IconArena, - - /** - * The arena import - */ - @LocalizedMessage(defaultMessage = "import") - @MessageComment({"arena import"}) - IconImport, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java deleted file mode 100644 index dca72abf..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentEdit.java +++ /dev/null @@ -1,345 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.Optional; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; - -/** - * Click gui for editing components. - * - * @author mepeisen - */ -public class ComponentEdit implements ClickGuiPageInterface -{ - - /** arena to be edited. */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** component to be edited. */ - private ArenaComponentHandler component; - - /** - * @param arena - * @param component - * @param prevPage - */ - public ComponentEdit(ArenaInterface arena, ArenaComponentHandler component, ClickGuiPageInterface prevPage) - { - this.arena = arena; - this.component = component; - this.prevPage = prevPage; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - Main.itemHome(), - Main.itemBack(this::onBack, Messages.IconBack), - null, - Main.itemDelete(this::onDelete, Messages.IconDelete), - null, - null, - null, - null, - Main.itemCloseGui() - }, - null, - { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleport, this::onTeleport), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) - } - }, 6); - } - - /** - * info - * @param player - * @param session - * @param gui - */ - private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - player.sendMessage(Messages.InfoOutput, - this.arena.getDisplayName().toArg(), - this.arena.getShortDescription().toArg(), - this.component.getName(), - this.component.getComponent().getTypeId().getPluginName(), - this.component.getComponent().getTypeId().name()); - } - - /** - * name - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryText( - this.component.getName(), - () -> {player.openClickGui(new Main(this));}, - (s) -> this.onName(player, session, gui, s), - player.encodeMessage(Messages.NameDescription))); - } - - /** - * name - * @param player - * @param session - * @param gui - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String name) throws McException - { - if (name.equals(this.component.getName())) - { - player.openClickGui(new Main(this)); - return; - } - - @SuppressWarnings("cast") - final Optional<ArenaComponentHandler> handler = this.arena.getComponents().stream(). - map(s -> (ArenaComponentHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - this.component.setName(name); - this.component.getComponent().saveConfig(); - player.openClickGui(new Main(this)); - } - - /** - * display marker - * @param player - * @param session - * @param gui - */ - private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - if (!player.hasSmartGui()) - { - player.sendMessage(CommonMessages.NoSmartGui); - } - else - { - session.setNewPage(new SelectMarkerPage(player, this.component.getComponent(), this)); - } - } - - /** - * teleport - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onTeleport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.getBukkitPlayer().teleport(this.component.getComponent().getLocation()); - player.openClickGui(new Main(this)); - } - - /** - * rules - * @param player - * @param session - * @param gui - */ - private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new RulesPage<>(this.getPageName(), this.component, this, rt -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this.component); - McLibInterface.instance().setContext(ComponentRuleSetInterface.class, this.component.getRuleSet(rt)); - })); - } - - /** - * delete - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - this.component.getComponent().delete(); - session.setNewPage(this.prevPage); - } - - /** - * back to previous gui - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.component.getName()); - } - - /** - * The component create messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.components_edit") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (component edit page) - */ - @LocalizedMessage(defaultMessage = "Component %1$s - %2$s") - @MessageComment(value = {"Gui title (component edit)"}, args = {@Argument("arena internal name"), @Argument("component name")}) - Title, - - /** - * back to arenas - */ - @LocalizedMessage(defaultMessage = "Back to components list") - @MessageComment({"back to components"}) - IconBack, - - /** - * info - */ - @LocalizedMessage(defaultMessage = "Component info") - @MessageComment({"info"}) - IconInfo, - - /** - * name - */ - @LocalizedMessage(defaultMessage = "Component name") - @MessageComment({"component name"}) - IconName, - - /** - * display marker - */ - @LocalizedMessage(defaultMessage = "Show display marker") - @MessageComment({"display marker"}) - IconDisplayMarker, - - /** - * teleport - */ - @LocalizedMessage(defaultMessage = "Teleport to component") - @MessageComment({"teleport"}) - IconTeleport, - - /** - * delete - */ - @LocalizedMessage(defaultMessage = "Delete") - @MessageComment({"delete"}) - IconDelete, - - /** - * rules - */ - @LocalizedMessage(defaultMessage = "Rules") - @MessageComment({"rules"}) - IconRules, - - /** - * The info - */ - @LocalizedMessageList({ - "arena: %1$s - %2$s", - "component-name: %3$s", - "component-type: %4$s/%5$s" - }) - @MessageComment(value = { - "The info" - },args = { - @Argument("arena display name"), - @Argument("arena short description"), - @Argument("component name"), - @Argument("component type plugin"), - @Argument("component type name"), - }) - InfoOutput, - - /** - * Name description - */ - @LocalizedMessageList({"Enter the name of the component.", "The name is only used internal."}) - @MessageComment("Text description for component name") - NameDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java deleted file mode 100644 index 9349e966..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsCreateChooseType.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McBiConsumer; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; - -/** - * Page with arena components; choose type for new component - * - * @author mepeisen - */ -public class ComponentsCreateChooseType extends AbstractPage<ComponentTypeId> -{ - - /** the arena */ - private McBiConsumer<ComponentTypeId, String> onSave; - - /** previous page */ - private ClickGuiPageInterface prev; - - /** the underlying arena. */ - private ArenaInterface arena; - - /** - * @param arena - * @param onSave - * @param prev - */ - public ComponentsCreateChooseType(ArenaInterface arena, McBiConsumer<ComponentTypeId, String> onSave, ClickGuiPageInterface prev) - { - this.arena = arena; - this.onSave = onSave; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return EnumServiceInterface.instance().getEnumValues(ComponentTypeId.class).size(); - } - - /** - * Converts component type to string - * @param compType - * @return component type - */ - private String toString(ComponentTypeId compType) - { - return compType.getPluginName() + "/" + compType.name(); //$NON-NLS-1$ - } - - @Override - protected List<ComponentTypeId> getElements(int start, int limit) - { - final Set<ComponentTypeId> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); - result.addAll(EnumServiceInterface.instance().getEnumValues(ComponentTypeId.class)); - return result. - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ComponentTypeId elm) - { - final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Component); - return new ClickGuiItem(item, Messages.IconComponent, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - null, - null, - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - null, - Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) - }; - } - - /** - * Returns a free name with given prefix. - * @param prefix - * @return free name - */ - private String getFreeName(String prefix) - { - int i = 1; - while (true) - { - final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ - - @SuppressWarnings("cast") - final Optional<ArenaComponentHandler> handler = this.arena.getComponents().stream(). - map(s -> (ArenaComponentHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - - if (!handler.isPresent()) - { - return name; - } - - i++; - } - } - - /** - * type chosen - * @param player - * @param session - * @param gui - * @param type - * @throws McException - */ - private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ComponentTypeId type) throws McException - { - final String text = this.getFreeName(type.name().toLowerCase()); - - player.openAnvilGui(new QueryText( - text, - () -> {player.openClickGui(new Main(this.prev));}, - (s) -> this.onName(player, session, gui, type, s), - player.encodeMessage(Messages.TextDescription))); - } - - /** - * name selected - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ComponentTypeId type, String name) throws McException - { - this.onSave.accept(type, name); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.component_create_choose_type") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (component types page) - */ - @LocalizedMessage(defaultMessage = "Type for new component in arena %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (component types page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The Cancel - */ - @LocalizedMessage(defaultMessage = "Cancel creation") - @MessageComment({"cancel icon"}) - IconCancel, - - /** - * The component icon - */ - @LocalizedMessage(defaultMessage = "type %1$s") - @MessageComment(value = {"component type icon"}, args=@Argument("type name")) - IconComponent, - - /** - * Text description - */ - @LocalizedMessageList({"Enter the name of the new component.", "The name is only used internal."}) - @MessageComment("Text description for component name") - TextDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java deleted file mode 100644 index f3ca7eef..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ComponentsPage.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; - -/** - * Page with arena components - * - * @author mepeisen - */ -public class ComponentsPage extends AbstractPage<ArenaComponentHandler> -{ - - /** the arena */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prev; - - /** - * Constructor to create the first page - * @param arena - * @param prev - */ - public ComponentsPage(ArenaInterface arena, ClickGuiPageInterface prev) - { - this.arena = arena; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return this.arena.getComponents().size(); - } - - @Override - protected List<ArenaComponentHandler> getElements(int start, int limit) - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - return this.arena.getComponents(). - stream(). - map(osi::findComponent). - map(s -> (ArenaComponentHandler) s.getHandler()). - sorted((a, b) -> a.getName().compareTo(b.getName())). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ArenaComponentHandler elm) - { - final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Component); - return new ClickGuiItem(item, Messages.IconComponent, (p, s, g) -> this.onEdit(p, s, g, elm), elm.getName()); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - null, - Main.itemNew(this::onNew, Messages.IconNewComponent), - null, - Main.itemCloseGui() - }; - } - - /** - * component edit - * @param player - * @param session - * @param gui - * @param component - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaComponentHandler component) - { - session.setNewPage(new ComponentEdit(this.arena, component, this)); - } - - /** - * new component - * @param player - * @param session - * @param gui - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new ComponentsCreateChooseType(this.arena, (type, name) -> onNew(player, session, gui, type, name), this)); - } - - /** - * new component - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ComponentTypeId type, String name) throws McException - { - @SuppressWarnings("cast") - final Optional<ArenaComponentHandler> handler = this.arena.getComponents().stream(). - map(s -> (ArenaComponentHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - AdminToolHelper.onCreateComponent(player, this.arena, name, type, c -> player.openClickGui(new Main(new ComponentEdit(this.arena, c, this)))); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.components") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (components page) - */ - @LocalizedMessage(defaultMessage = "Components for arena %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (components page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment({"back icon"}) - IconBack, - - /** - * The new component - */ - @LocalizedMessage(defaultMessage = "New component") - @MessageComment({"new component icon"}) - IconNewComponent, - - /** - * The component icon - */ - @LocalizedMessage(defaultMessage = "component %1$s") - @MessageComment(value = {"component icon"}, args=@Argument("component name")) - IconComponent, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java deleted file mode 100644 index a4605437..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocale.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.Locale; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiItem.GuiItemHandler; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedConfigLine; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; - -/** - * Click gui for editing localized lines; single locale - * - * @author mepeisen - */ -public class LocalizedLinesEditLocale implements ClickGuiPageInterface -{ - - /** consumer to save strings */ - private McConsumer<LocalizedConfigLine> onSave; - - /** consumer to display prev page */ - private ClickGuiItem.GuiItemHandler onPrev; - - /** consumer to delete language */ - private ClickGuiItem.GuiItemHandler onDelete; - - /** title */ - private Serializable title; - - /** locale */ - private Locale locale; - - /** the config line. */ - private LocalizedConfigLine line; - - /** - * @param title - * @param locale - * @param line - * @param onSave - * @param onPrev - * @param onDelete - */ - public LocalizedLinesEditLocale(Serializable title, Locale locale, LocalizedConfigLine line, McConsumer<LocalizedConfigLine> onSave, GuiItemHandler onPrev, GuiItemHandler onDelete) - { - this.title = title; - this.locale = locale; - this.line = line; - this.onSave = onSave; - this.onPrev = onPrev; - this.onDelete = onDelete; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - Main.itemHome(), - Main.itemBack(this.onPrev, Messages.IconBack), - null, - Main.itemDelete(this.onDelete, Messages.IconDelete), - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People), Messages.IconEditUser, this::onUserString, this.title, this.locale.toString()), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Boss), Messages.IconEditAdmin, this::onAdminString, this.title, this.locale.toString()), - null, - Main.itemCloseGui() - }, - }, 6); - } - - @Override - public Serializable getPageName() - { - return this.title; - } - - /** - * edit user string - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onUserString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - final String[] lines = this.line.getUnformattedUserMessageLine(this.locale); - session.setNewPage(new LocalizedLinesEditLocaleList( - this.title, - lines, - (p, s, g) -> s.setNewPage(this), - (p, s, g) -> { - this.line.setUserMessages(this.locale, null); - this.onSave.accept(this.line); - s.setNewPage(this); - }, - (s) -> { - this.line.setUserMessages(this.locale, s); - this.onSave.accept(this.line); - })); - } - - /** - * edit admin string - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onAdminString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - final String[] lines = this.line.getUnformattedAdminMessageLine(this.locale); - session.setNewPage(new LocalizedLinesEditLocaleList( - this.title, - lines, - (p, s, g) -> s.setNewPage(this), - (p, s, g) -> { - this.line.setAdminMessages(this.locale, null); - this.onSave.accept(this.line); - s.setNewPage(this); - }, - (s) -> { - this.line.setAdminMessages(this.locale, s); - this.onSave.accept(this.line); - })); - } - - /** - * Editor to create strings. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.line_edit_locale") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment("back icon") - IconBack, - - /** - * Delete icon - */ - @LocalizedMessage(defaultMessage = "Delete language") - @MessageComment("Delete icon") - IconDelete, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit user text for %1$s - %2$s") - @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) - IconEditUser, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit admin text for %1$s - %2$s") - @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) - IconEditAdmin, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java deleted file mode 100644 index 4f511fb8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesEditLocaleList.java +++ /dev/null @@ -1,302 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiItem.GuiItemHandler; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; - -/** - * Click gui for editing localized lines; single locale and type - * - * @author mepeisen - */ -public class LocalizedLinesEditLocaleList extends AbstractPage<String> -{ - - /** consumer to display prev page */ - private ClickGuiItem.GuiItemHandler onPrev; - - /** consumer to delete language */ - private ClickGuiItem.GuiItemHandler onDelete; - - /** title */ - private Serializable title; - - /** the lines. */ - private List<String> lines; - - /** save function. */ - private McConsumer<String[]> onSave; - - /** string marker */ - private static final String DELETE_MARKER = "$DELETE$"; //$NON-NLS-1$ - - /** string marker */ - private static final String CREATE_BEFORE_MARKER = "$CREATE-BEFORE$"; //$NON-NLS-1$ - - /** string marker */ - private static final String CREATE_AFTER_MARKER = "$CREATE-AFTER"; //$NON-NLS-1$ - - /** - * @param title - * @param lines - * @param onPrev - * @param onDelete - * @param save - */ - public LocalizedLinesEditLocaleList(Serializable title, String[] lines, GuiItemHandler onPrev, GuiItemHandler onDelete, McConsumer<String[]> save) - { - this.lines = Arrays.asList(lines); - this.title = title; - this.onPrev = onPrev; - this.onDelete = onDelete; - this.onSave = save; - } - - @Override - protected int count() - { - return this.lines.size() * ITEMS_PER_LINE; - } - - @Override - protected List<String> getElements(int start, int limit) - { - final List<String> result = new ArrayList<>(); - final int index = start / ITEMS_PER_LINE; - if (index < this.lines.size()) - { - result.add(CREATE_BEFORE_MARKER); - result.add(this.lines.get(index)); - result.add(CREATE_AFTER_MARKER); - result.add(null); - result.add(DELETE_MARKER); - } - return result; - } - - @Override - protected ClickGuiItem map(int line, int col, int index, String elm) - { - if (elm == null) - { - return null; - } - int realLine = (index - col) / ITEMS_PER_LINE; - if (elm == CREATE_BEFORE_MARKER) - { - return Main.itemNew((p, s, g) -> this.onCreateBefore(p, s, g, realLine), Messages.IconCreateBefore); - } - if (elm == CREATE_AFTER_MARKER) - { - return Main.itemNew((p, s, g) -> this.onCreateAfter(p, s, g, realLine), Messages.IconCreateAfter); - } - if (elm == DELETE_MARKER) - { - return Main.itemDelete((p, s, g) -> this.onDeleteLine(p, s, g, realLine), Messages.IconDeleteLine); - } - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, realLine), realLine); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - null, - this.itemPrevPage(), - this.itemNextPage(), - Main.itemBack(this.onPrev, Messages.IconBack), - null, - Main.itemDelete(this.onDelete, Messages.IconDeleteAll), - null, - Main.itemCloseGui() - }; - } - - @Override - public Serializable getPageName() - { - return this.title; - } - - /** - * insert before - * @param player - * @param session - * @param gui - * @param realLine - * @throws McException - */ - private void onCreateBefore(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException - { - this.lines.add(realLine, "<text>"); //$NON-NLS-1$ - this.onSave.accept(this.lines.toArray(new String[this.lines.size()])); - this.onEdit(player, session, gui, realLine); - } - - /** - * insert after - * @param player - * @param session - * @param gui - * @param realLine - * @throws McException - */ - private void onCreateAfter(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException - { - this.lines.add(realLine + 1, "<text>"); //$NON-NLS-1$ - this.onSave.accept(this.lines.toArray(new String[this.lines.size()])); - this.onEdit(player, session, gui, realLine + 1); - } - - /** - * delete line - * @param player - * @param session - * @param gui - * @param realLine - * @throws McException - */ - private void onDeleteLine(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException - { - this.lines.remove(realLine); - this.onRefresh(player, session, gui); - } - - /** - * edit line - * @param player - * @param session - * @param gui - * @param realLine - * @throws McException - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine) throws McException - { - final String text = this.lines.get(realLine); - - player.openAnvilGui(new QueryText( - text, - () -> {player.openClickGui(new Main(this));}, - (s) -> this.onEdit(player, session, gui, realLine, s), - player.encodeMessage(Messages.EditTextDescription, this.title, realLine))); - } - - /** - * edit line - * @param player - * @param session - * @param gui - * @param realLine - * @param content - * @throws McException - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, int realLine, String content) throws McException - { - this.lines.set(realLine, content == null ? "" : content); //$NON-NLS-1$ - this.onSave.accept(this.lines.toArray(new String[this.lines.size()])); - player.openClickGui(new Main(this)); - } - - /** - * Editor to create strings. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.line_edit_locale_list") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment("back icon") - IconBack, - - /** - * Create icon - */ - @LocalizedMessage(defaultMessage = "Create new line before #%1$d") - @MessageComment(value = "Create before icon", args=@Argument("line number")) - IconCreateBefore, - - /** - * Create icon - */ - @LocalizedMessage(defaultMessage = "Create new line after #%1$d") - @MessageComment(value = "Create after icon", args=@Argument("line number")) - IconCreateAfter, - - /** - * Delete icon - */ - @LocalizedMessage(defaultMessage = "Delete line #%1$d") - @MessageComment(value = "Delete line", args=@Argument("line number")) - IconDeleteLine, - - /** - * Delete all - */ - @LocalizedMessage(defaultMessage = "Delete all") - @MessageComment(value = "Delete all") - IconDeleteAll, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit line #%1$d") - @MessageComment(value = "Edit icon", args=@Argument("line number")) - IconEdit, - - /** - * Edit existing: text description - */ - @LocalizedMessageList({"Edit text line for %1$s - %2$d.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) - @MessageComment(value = "Edit existing: text description", args = {@Argument("title"), @Argument("line number")}) - EditTextDescription, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java deleted file mode 100644 index f5ebb297..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedLinesList.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Locale; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedConfigLine; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; - -/** - * Click gui for editing localized lines - * - * @author mepeisen - */ -public class LocalizedLinesList extends AbstractPage<Locale> -{ - - /** title */ - private Serializable title; - - /** config string */ - private LocalizedConfigLine string; - - /** save function */ - private McConsumer<LocalizedConfigLine> save; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** - * @param title - * @param string - * @param save - * @param prevPage - */ - public LocalizedLinesList(Serializable title, LocalizedConfigLine string, McConsumer<LocalizedConfigLine> save, ClickGuiPageInterface prevPage) - { - this.title = title; - this.string = string; - this.save = save; - this.prevPage = prevPage; - } - - @Override - protected int count() - { - return this.string.getLanguages().size(); - } - - @Override - protected List<Locale> getElements(int start, int limit) - { - return this.string.getLanguages().stream().sorted((a, b) -> a.toString().compareTo(b.toString())).skip(start).limit(limit).collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, Locale elm) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, elm), elm.toString()); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - Main.itemBack(this::onBack, Messages.IconBack), - null, - Main.itemNew(this::onNew, Messages.IconCreate), - null, - Main.itemCloseGui() - }; - } - - /** - * new language - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryLocale( - () -> {player.openClickGui(new Main(this));}, - (l) -> this.onNew(player, session, gui, l), - player.encodeMessage(Messages.CreateLocaleDescription, this.title))); - } - - /** - * new language - * @param player - * @param session - * @param gui - * @param locale - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) throws McException - { - this.string.setUserMessages(locale, new String[]{"<text>"}); //$NON-NLS-1$ - this.save.accept(this.string); - session.close(); - player.openClickGui(new Main(new LocalizedLinesEditLocale( - this.title, - locale, - this.string, - this.save, - this::onRefresh, - (p, s, g) -> this.onDelete(p, s, g, locale)))); - } - - /** - * @param p - * @param s - * @param g - * @param locale - * @throws McException - */ - private void onDelete(McPlayerInterface p, GuiSessionInterface s, ClickGuiInterface g, Locale locale) throws McException - { - this.string.setUserMessages(locale, null); - this.string.setAdminMessages(locale, null); - this.save.accept(this.string); - s.setNewPage(this); - } - - /** - * edit language - * @param player - * @param session - * @param gui - * @param locale - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) - { - session.setNewPage(new LocalizedLinesEditLocale( - this.title, - locale, - this.string, - this.save, - this::onRefresh, - (p, s, g) -> this.onDelete(p, s, g, locale))); - } - - /** - * back - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return this.title; - } - - /** - * Editor to create strings. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.lines_editor") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment("back icon") - IconBack, - - /** - * Create icon - */ - @LocalizedMessage(defaultMessage = "New language") - @MessageComment("Create icon (new language)") - IconCreate, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit %1$s") - @MessageComment(value = "Edit icon", args = @Argument("locale name")) - IconEdit, - - /** - * Create new: locale description - */ - @LocalizedMessageList({"Enter a new language for %1$s.", "Use 2 or 3 letter iso codes.", "For example: 'en' or 'de'."}) - @MessageComment(value = "Create new: locale description", args = @Argument("title")) - CreateLocaleDescription, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java deleted file mode 100644 index af130040..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringEditor.java +++ /dev/null @@ -1,240 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiItem.GuiItemHandler; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; - -/** - * Click gui for editing localized strings; single locale - * - * @author mepeisen - */ -public class LocalizedStringEditor implements ClickGuiPageInterface -{ - - /** consumer to save user strings */ - private McConsumer<String> onSaveUserString; - - /** consumer to save admin strings */ - private McConsumer<String> onSaveAdminString; - - /** consumer to display prev page */ - private ClickGuiItem.GuiItemHandler onPrev; - - /** consumer to delete language */ - private ClickGuiItem.GuiItemHandler onDelete; - - /** current admin string */ - private String adminString; - - /** current user string */ - private String userString; - - /** title */ - private Serializable title; - - /** locale */ - private String locale; - - /** - * @param title - * @param locale - * @param userString - * @param adminString - * @param onSaveUserString - * @param onSaveAdminString - * @param onPrev - * @param onDelete - */ - public LocalizedStringEditor(Serializable title, String locale, String userString, String adminString, McConsumer<String> onSaveUserString, McConsumer<String> onSaveAdminString, GuiItemHandler onPrev, - GuiItemHandler onDelete) - { - this.title = title; - this.locale = locale; - this.userString = userString; - this.adminString = adminString; - this.onSaveUserString = onSaveUserString; - this.onSaveAdminString = onSaveAdminString; - this.onPrev = onPrev; - this.onDelete = onDelete; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - Main.itemHome(), - Main.itemBack(this.onPrev, Messages.IconBack), - null, - Main.itemDelete(this.onDelete, Messages.IconDelete), - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_People), Messages.IconEditUser, this::onUserString, this.title, this.locale), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Boss), Messages.IconEditAdmin, this::onAdminString, this.title, this.locale), - null, - Main.itemCloseGui() - }, - }, 6); - } - - @Override - public Serializable getPageName() - { - return this.title; - } - - /** - * edit user string - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onUserString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryText( - this.userString == null ? "" : this.userString, //$NON-NLS-1$ - () -> {player.openClickGui(new Main(this));}, - (s) -> this.onUserString(player, session, gui, s), - player.encodeMessage(Messages.EditTextDescription, this.title, this.locale))); - } - - /** - * edit user string - * @param player - * @param session - * @param gui - * @param content - * @throws McException - */ - private void onUserString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String content) throws McException - { - this.userString = content != null && content.length() == 0 ? null : content; - this.onSaveUserString.accept(this.userString); - player.openClickGui(new Main(this)); - } - - /** - * edit admin string - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onAdminString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryText( - this.adminString == null ? "" : this.adminString, //$NON-NLS-1$ - () -> {player.openClickGui(new Main(this));}, - (s) -> this.onAdminString(player, session, gui, s), - player.encodeMessage(Messages.EditAdminDescription, this.title, this.locale))); - } - - /** - * edit admin string - * @param player - * @param session - * @param gui - * @param content - * @throws McException - */ - private void onAdminString(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String content) throws McException - { - this.adminString = content != null && content.length() == 0 ? null : content; - this.onSaveAdminString.accept(this.adminString); - player.openClickGui(new Main(this)); - } - - /** - * Editor to create strings. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.string_edit") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment("back icon") - IconBack, - - /** - * Delete icon - */ - @LocalizedMessage(defaultMessage = "Delete language") - @MessageComment("Delete icon") - IconDelete, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit user text for %1$s - %2$s") - @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) - IconEditUser, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit admin text for %1$s - %2$s") - @MessageComment(value = "Edit icon", args = {@Argument("title"),@Argument("locale name")}) - IconEditAdmin, - - /** - * Edit existing: user text description - */ - @LocalizedMessageList({"Edit user text for %1$s - %2$s.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) - @MessageComment(value = "Edit existing: user text description", args = {@Argument("title"), @Argument("locale")}) - EditTextDescription, - - /** - * Edit existing: admin text description - */ - @LocalizedMessageList({"Edit admin text for %1$s - %2$s.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) - @MessageComment(value = "Edit existing: admin text description", args = {@Argument("title"), @Argument("locale")}) - EditAdminDescription, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java deleted file mode 100644 index 1c0a1f41..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/LocalizedStringList.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Locale; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; - -/** - * Click gui for editing localized strings - * - * @author mepeisen - */ -public class LocalizedStringList extends AbstractPage<Locale> -{ - - /** title */ - private Serializable title; - - /** config string */ - private LocalizedConfigString string; - - /** save function */ - private McConsumer<LocalizedConfigString> save; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** - * @param title - * @param string - * @param save - * @param prevPage - */ - public LocalizedStringList(Serializable title, LocalizedConfigString string, McConsumer<LocalizedConfigString> save, ClickGuiPageInterface prevPage) - { - this.title = title; - this.string = string; - this.save = save; - this.prevPage = prevPage; - } - - @Override - protected int count() - { - return this.string.getLanguages().size(); - } - - @Override - protected List<Locale> getElements(int start, int limit) - { - return this.string.getLanguages().stream().sorted((a, b) -> a.toString().compareTo(b.toString())).skip(start).limit(limit).collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, Locale elm) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconEdit, (p, s, g) -> onEdit(p, s, g, elm), elm.toString()); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - Main.itemBack(this::onBack, Messages.IconBack), - null, - Main.itemNew(this::onNew, Messages.IconCreate), - null, - Main.itemCloseGui() - }; - } - - /** - * new language - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryLocale( - () -> {player.openClickGui(new Main(this));}, - (l) -> this.onNew(player, session, gui, l), - player.encodeMessage(Messages.CreateLocaleDescription, this.title))); - } - - /** - * new language - * @param player - * @param session - * @param gui - * @param locale - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) throws McException - { - session.close(); - player.openAnvilGui(new QueryText( - "<text>", //$NON-NLS-1$ - () -> {player.openClickGui(new Main(this));}, - (str2) -> this.onNew(player, session, gui, locale, str2), - player.encodeMessage(Messages.CreateTextDescription, this.title, locale.toString()))); - } - - /** - * new language - * @param player - * @param session - * @param gui - * @param locale - * @param content - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale, String content) throws McException - { - this.string.setUserMessage(locale, content); - player.openClickGui(new Main(this)); - this.save.accept(this.string); - } - - /** - * edit language - * @param player - * @param session - * @param gui - * @param locale - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, Locale locale) - { - session.setNewPage(new LocalizedStringEditor( - this.title, - locale.toString(), - this.string.getUnformattedUserMessage(locale), - this.string.getUnformattedAdminMessage(locale), - (s) -> { - this.string.setUserMessage(locale, s); - this.save.accept(this.string); - }, - (s) -> { - this.string.setAdminMessage(locale, s); - this.save.accept(this.string); - }, - this::onRefresh, - (p, s, g) -> { - this.string.setUserMessage(locale, null); - this.string.setAdminMessage(locale, null); - this.onRefresh(p, s, g); - })); - } - - /** - * back - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return this.title; - } - - /** - * Editor to create strings. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.string_editor") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment("back icon") - IconBack, - - /** - * Create icon - */ - @LocalizedMessage(defaultMessage = "New language") - @MessageComment("Create icon (new language)") - IconCreate, - - /** - * Edit icon - */ - @LocalizedMessage(defaultMessage = "Edit %1$s") - @MessageComment(value = "Edit icon", args = @Argument("locale name")) - IconEdit, - - /** - * Create new: locale description - */ - @LocalizedMessageList({"Enter a new language for %1$s.", "Use 2 or 3 letter iso codes.", "For example: 'en' or 'de'."}) - @MessageComment(value = "Create new: locale description", args = @Argument("title")) - CreateLocaleDescription, - - /** - * Create new: text description - */ - @LocalizedMessageList({"Enter a new user text for %1$s - %2$s.", "Use percent sign to create minecraft color codes.", "For example: '%%0' for black."}) - @MessageComment(value = "Create new: text description", args = {@Argument("title"), @Argument("locale")}) - CreateTextDescription, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java deleted file mode 100644 index 248e3620..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/Main.java +++ /dev/null @@ -1,496 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import de.minigameslib.mclib.api.gui.ClickGuiId; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.ExtensionInterface; -import de.minigameslib.mgapi.api.MinigameInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; - -/** - * The main menu. - * - * @author mepeisen - */ -public class Main implements ClickGuiInterface, ClickGuiPageInterface -{ - - /** the max line count. */ - public static int LINE_COUNT = 6; - - /** the max col count. */ - public static int COL_COUNT = 9; - - /** initial page. */ - private ClickGuiPageInterface initialPage = this; - - /** - * Constructor - */ - public Main() - { - super(); - } - - /** - * Constructor - * @param initialPage - */ - public Main(ClickGuiPageInterface initialPage) - { - super(); - this.initialPage = initialPage; - } - - @Override - public ClickGuiId getUniqueId() - { - return MgClickGuis.Main; - } - - @Override - public ClickGuiPageInterface getInitialPage() - { - return this.initialPage; - } - - @Override - public int getLineCount() - { - return LINE_COUNT; - } - - @Override - public LocalizedMessageInterface getPageName() - { - return Messages.Title; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - itemOptions(this::onOptions), - null, - itemMinigames(this::onMinigames), - itemExtensions(this::onExtensions), - null, - itemMarketplace(this::onMarketplace), - null, - null, - itemCloseGui() - }, - null, - { - itemArenas(this::onArenas), - } - }, 6); - } - - /** - * Close gui - * @param player - * @param session - * @param gui - */ - private static void onClose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.close(); - } - - /** - * Home - * @param player - * @param session - * @param gui - */ - private static void onHome(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new Main()); - } - - /** - * Arenas icon - * @param player - * @param session - * @param gui - */ - private void onArenas(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new ArenasPage()); - } - - /** - * Options icon - * @param player - * @param session - * @param gui - */ - private void onOptions(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support options - player.sendMessage(Messages.NotAvailable); - } - - /** - * Options icon - * @param player - * @param session - * @param gui - */ - private void onMinigames(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support minigames - player.sendMessage(Messages.NotAvailable); - } - - /** - * Options icon - * @param player - * @param session - * @param gui - */ - private void onExtensions(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support extensions - player.sendMessage(Messages.NotAvailable); - } - - /** - * Options icon - * @param player - * @param session - * @param gui - */ - private void onMarketplace(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - // TODO gui support marketplace - player.sendMessage(Messages.NotAvailable); - } - - /** - * market place icon - * @param handler - * @return market place icon - */ - public static ClickGuiItem itemMarketplace(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Euro), Messages.IconMarketplace, handler); - } - - /** - * arenas icon - * @param handler - * @return arenas icon - */ - public static ClickGuiItem itemArenas(ClickGuiItem.GuiItemHandler handler) - { - final ItemStack itemStack = new ItemStack(Material.DIAMOND_SWORD); - final ItemMeta meta = itemStack.getItemMeta(); - meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); - itemStack.setItemMeta(meta); - return new ClickGuiItem(itemStack, Messages.IconArenas, handler); - } - - /** - * arenas icon - * @param arena - * @param handler - * @return arenas icon - */ - public static ClickGuiItem itemArena(ArenaInterface arena, ClickGuiItem.GuiItemHandler handler) - { - final ItemStack itemStack = new ItemStack(Material.DIAMOND_SWORD); - final ItemMeta meta = itemStack.getItemMeta(); - meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); - itemStack.setItemMeta(meta); - return new ClickGuiItem(itemStack, arena.getDisplayName(), handler); - } - - /** - * minigames icon - * @param handler - * @return minigames icon - */ - public static ClickGuiItem itemMinigames(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(new ItemStack(Material.REDSTONE), Messages.IconMinigames, handler); - } - - /** - * minigames icon - * @param minigame - * @param handler - * @return minigames icon - */ - public static ClickGuiItem itemMinigame(MinigameInterface minigame, ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(new ItemStack(Material.REDSTONE), minigame.getDisplayName(), handler); - } - - /** - * extensions icon - * @param handler - * @return extensions icon - */ - public static ClickGuiItem itemExtensions(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox), Messages.IconExtensions, handler); - } - - /** - * extensions icon - * @param extension - * @param handler - * @return extensions icon - */ - public static ClickGuiItem itemExtension(ExtensionInterface extension, ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Toolbox), extension.getDisplayName(), handler); - } - - /** - * home icon - * @return home icon - */ - public static ClickGuiItem itemHome() - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Home), Messages.IconBackToMainMenu, Main::onHome); - } - - /** - * options icon - * @param handler - * @return options icon - */ - public static ClickGuiItem itemOptions(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion), Messages.IconOptions, handler); - } - - /** - * close gui icon - * @return close gui icon - */ - public static ClickGuiItem itemCloseGui() - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Close), Messages.IconClose, Main::onClose); - } - - /** - * delete icon - * @param handler - * @param name - * @param nameargs - * @return new icon - */ - public static ClickGuiItem itemDelete(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Erase), name, handler, nameargs); - } - - /** - * cancel icon - * @param handler - * @param name - * @param nameargs - * @return new icon - */ - public static ClickGuiItem itemCancel(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Erase), name, handler, nameargs); - } - - /** - * new icon - * @param handler - * @param name - * @param nameargs - * @return new icon - */ - public static ClickGuiItem itemNew(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_New), name, handler, nameargs); - } - - /** - * back icon - * @param handler - * @param name - * @param nameargs - * @return back icon - */ - public static ClickGuiItem itemBack(ClickGuiItem.GuiItemHandler handler, LocalizedMessageInterface name, Serializable... nameargs) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Back), name, handler, nameargs); - } - - /** - * back icon - * @param handler - * @return back icon - */ - public static ClickGuiItem itemRefresh(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Refresh), Messages.IconRefresh, handler); - } - - /** - * prev page icon - * @param handler - * @return prev page icon - */ - public static ClickGuiItem itemPrevPage(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Previous), Messages.IconPreviousPage, handler); - } - - /** - * next page icon - * @param handler - * @return next page icon - */ - public static ClickGuiItem itemNextPage(ClickGuiItem.GuiItemHandler handler) - { - return new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Next), Messages.IconNextPage, handler); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.main") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (main menu) - */ - @LocalizedMessage(defaultMessage = "MAIN - Minigames v2") - @MessageComment({"Gui title (main menu)"}) - Title, - - /** - * The arenas icon - */ - @LocalizedMessage(defaultMessage = "Arenas") - @MessageComment({"Arenas icon"}) - IconArenas, - - /** - * The options icon - */ - @LocalizedMessage(defaultMessage = "Options/Configuration") - @MessageComment({"Options icon"}) - IconOptions, - - /** - * The minigames icon - */ - @LocalizedMessage(defaultMessage = "Minigames") - @MessageComment({"Minigames icon"}) - IconMinigames, - - /** - * The extensions icon - */ - @LocalizedMessage(defaultMessage = "Extensions") - @MessageComment({"Extensions icon"}) - IconExtensions, - - /** - * The marketplace icon - */ - @LocalizedMessage(defaultMessage = "Marketplace") - @MessageComment({"Marketplace icon"}) - IconMarketplace, - - /** - * option not available - */ - @LocalizedMessage(defaultMessage = "This option is not available", severity = MessageSeverityType.Error) - @MessageComment({"Error message: option not available"}) - NotAvailable, - - // common messages - - /** - * The main menu icon - */ - @LocalizedMessage(defaultMessage = "Back to main menu") - @MessageComment({"main menu icon"}) - IconBackToMainMenu, - - /** - * The close gui icon - */ - @LocalizedMessage(defaultMessage = "Close GUI") - @MessageComment({"close icon"}) - IconClose, - - /** - * The prev page icon - */ - @LocalizedMessage(defaultMessage = "Previous page") - @MessageComment({"prev page icon"}) - IconPreviousPage, - - /** - * The next page icon - */ - @LocalizedMessage(defaultMessage = "Next page") - @MessageComment({"next page icon"}) - IconNextPage, - - /** - * The refresh icon - */ - @LocalizedMessage(defaultMessage = "Refresh") - @MessageComment({"refresh icon"}) - IconRefresh, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java deleted file mode 100644 index f959a505..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgAnvilGuis.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import de.minigameslib.mclib.api.gui.AnvilGuiId; - -/** - * Enumeration to identify guis. - * - * @author mepeisen - */ -public enum MgAnvilGuis implements AnvilGuiId -{ - - /** query locale name. */ - QueryLocale, - - /** query some text. */ - QueryText, - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java deleted file mode 100644 index a870e087..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/MgClickGuis.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import de.minigameslib.mclib.api.enums.ChildEnum; -import de.minigameslib.mclib.api.gui.ClickGuiId; - -/** - * Enumeration to identify guis. - * - * @author mepeisen - */ -@ChildEnum({ - Main.Messages.class, - ArenasPage.Messages.class, - ArenaCreateChooseMinigame.Messages.class, - ArenaCreateChooseArenaType.Messages.class, - ArenaEdit.Messages.class, - - YesNoQuestion.Messages.class, - SelectMarkerPage.Messages.class, - - RulesPage.Messages.class, - RuleEdit.Messages.class, - - LocalizedLinesList.Messages.class, - LocalizedLinesEditLocale.Messages.class, - LocalizedLinesEditLocaleList.Messages.class, - LocalizedStringList.Messages.class, - LocalizedStringEditor.Messages.class, - - SignsPage.Messages.class, - SignEdit.Messages.class, - SignsCreateChooseType.Messages.class, - - ComponentsPage.Messages.class, - ComponentEdit.Messages.class, - ComponentsCreateChooseType.Messages.class, - - ZonesPage.Messages.class, - ZoneEdit.Messages.class, - ZonesCreateChooseType.Messages.class, -}) -public enum MgClickGuis implements ClickGuiId -{ - - /** the main gui. */ - Main - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java deleted file mode 100644 index b68ba9c1..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryLocale.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.util.Arrays; -import java.util.Locale; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.AnvilGuiId; -import de.minigameslib.mclib.api.gui.AnvilGuiInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; -import de.minigameslib.mclib.api.util.function.McRunnable; - -/** - * Query a locale. - * - * @author mepeisen - */ -public class QueryLocale implements AnvilGuiInterface -{ - - /** cancel func */ - private McRunnable onCancel; - - /** input func */ - private McConsumer<Locale> onInput; - - /** description */ - private String[] description; - - /** logger */ - private static final Logger LOGGER = Logger.getLogger(QueryLocale.class.getName()); - - /** - * Constructor - * @param onCancel - * @param onInput - * @param description - */ - public QueryLocale(McRunnable onCancel, McConsumer<Locale> onInput, String[] description) - { - this.onCancel = onCancel; - this.onInput = onInput; - this.description = description; - } - - @Override - public ItemStack getItem() - { - final ItemStack stack = ItemServiceInterface.instance().createItem(CommonItems.App_Text, "iso-code"); //$NON-NLS-1$ - final ItemMeta meta = stack.getItemMeta(); - meta.setLore(Arrays.asList(this.description)); - stack.setItemMeta(meta); - return stack; - } - - @Override - public AnvilGuiId getUniqueId() - { - return MgAnvilGuis.QueryLocale; - } - - @Override - public void onCancel() - { - try - { - if (this.onCancel != null) - { - this.onCancel.run(); - } - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "Problems on cancelling query locale", e); //$NON-NLS-1$ - } - } - - @Override - public void onInput(String arg0) throws McException - { - this.onInput.accept(new Locale(arg0)); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java deleted file mode 100644 index 5af36816..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/QueryText.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.util.Arrays; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.AnvilGuiId; -import de.minigameslib.mclib.api.gui.AnvilGuiInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; -import de.minigameslib.mclib.api.util.function.McRunnable; - -/** - * Query a text. - * - * @author mepeisen - */ -public class QueryText implements AnvilGuiInterface -{ - - /** cancel func */ - private McRunnable onCancel; - - /** input func */ - private McConsumer<String> onInput; - - /** source text. */ - private String src; - - /** description */ - private String[] description; - - /** logger */ - private static final Logger LOGGER = Logger.getLogger(QueryText.class.getName()); - - /** - * Constructor - * @param src - * @param onCancel - * @param onInput - * @param description - */ - public QueryText(String src, McRunnable onCancel, McConsumer<String> onInput, String[] description) - { - this.src = src; - this.onCancel = onCancel; - this.onInput = onInput; - this.description = description; - } - - @Override - public ItemStack getItem() - { - final ItemStack stack = ItemServiceInterface.instance().createItem(CommonItems.App_Text, this.src); - final ItemMeta meta = stack.getItemMeta(); - meta.setLore(Arrays.asList(this.description)); - stack.setItemMeta(meta); - return stack; - } - - @Override - public AnvilGuiId getUniqueId() - { - return MgAnvilGuis.QueryText; - } - - @Override - public void onCancel() - { - try - { - if (this.onCancel != null) - { - this.onCancel.run(); - } - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "Problems on cancelling query text", e); //$NON-NLS-1$ - } - } - - @Override - public void onInput(String arg0) throws McException - { - this.onInput.accept(arg0); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java deleted file mode 100644 index f99f744c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RuleEdit.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.stream.Collectors; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.config.ConfigServiceInterface; -import de.minigameslib.mclib.api.config.ConfigurationValueInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; -import de.minigameslib.mgapi.api.rules.RuleSetInterface; -import de.minigameslib.mgapi.api.rules.RuleSetType; - -/** - * Click gui for editing rules. - * - * @author mepeisen - * @param <T> rule set type class - * @param <Q> rule set class - */ -public class RuleEdit<T extends RuleSetType, Q extends RuleSetInterface<T>> extends AbstractPage<ConfigurationValueInterface> -{ - - /** container to be edited. */ - private RuleSetContainerInterface<T, Q> container; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** rule to be edited. */ - private T rule; - - /** the rule set type configuration options. */ - private List<ConfigurationValueInterface> configOptions = new ArrayList<>(); - - /** context provider */ - private McRunnable contextProvider; - - /** title */ - private Serializable title; - - /** logger */ - private static final Logger LOGGER = Logger.getLogger(RuleEdit.class.getName()); - - /** - * @param title - * @param container - * @param rule - * @param prevPage - * @param contextProvider - */ - public RuleEdit(Serializable title, RuleSetContainerInterface<T, Q> container, T rule, ClickGuiPageInterface prevPage, McRunnable contextProvider) - { - this.title = title; - this.container = container; - this.rule = rule; - this.prevPage = prevPage; - - final Class<? extends ConfigurationValueInterface> clazz = rule.getConfigClass(); - if (clazz != null) - { - for (final ConfigurationValueInterface value : clazz.getEnumConstants()) - { - this.configOptions.add(value); - } - } - this.contextProvider = contextProvider; - } - - @Override - protected int count() - { - return this.configOptions.size(); - } - - @Override - protected List<ConfigurationValueInterface> getElements(int start, int limit) - { - return this.configOptions.stream().skip(start).limit(limit).collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ConfigurationValueInterface elm) - { - try - { - return ConfigServiceInterface.instance().createGuiEditorItem( - elm, - () -> { - try - { - // TODO let components check the rule before being saved to config file - this.container.reconfigureRuleSet(this.rule); - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "problems while reconfigure rule " + this.rule, e); //$NON-NLS-1$ - } - }, - this.contextProvider); - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "problems while mapping config element " + elm, e); //$NON-NLS-1$ - return null; - } - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemBack(this::onBack, Messages.IconBack, this.title), - null, - Main.itemDelete(this::onDelete, Messages.IconDelete), - null, - null, - null, - null, - Main.itemCloseGui() - }; - } - - /** - * delete - * @param player - * @param session - * @param gui - * @throws McException - */ - @SuppressWarnings("unchecked") - private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - this.container.removeRuleSets(this.rule); - session.setNewPage(this.prevPage); - } - - /** - * back to previous gui - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.title); - } - - /** - * The sign create messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.rules_edit") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (sign edit page) - */ - @LocalizedMessage(defaultMessage = "Rules for %1$s") - @MessageComment(value = {"Gui title (rules edit)"}, args = {@Argument("component name")}) - Title, - - /** - * back to prev - */ - @LocalizedMessage(defaultMessage = "Back to %1$s") - @MessageComment(value = {"back to prev"}, args = {@Argument("component name")}) - IconBack, - - /** - * delete - */ - @LocalizedMessage(defaultMessage = "Delete") - @MessageComment({"delete"}) - IconDelete, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java deleted file mode 100644 index 725b167d..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/RulesPage.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.util.function.McConsumer; -import de.minigameslib.mgapi.api.rules.RuleSetContainerInterface; -import de.minigameslib.mgapi.api.rules.RuleSetInterface; -import de.minigameslib.mgapi.api.rules.RuleSetType; - -/** - * Page with object rules - * - * @author mepeisen - * @param <T> rule set type class - * @param <Q> rule set class - */ -public class RulesPage<T extends RuleSetType, Q extends RuleSetInterface<T>> extends AbstractPage<T> -{ - - /** previous page */ - private ClickGuiPageInterface prev; - - /** container */ - private RuleSetContainerInterface<T, Q> container; - - /** page title */ - private Serializable title; - - /** context provider */ - private McConsumer<T> contextProvider; - - /** - * @param title - * @param container - * @param prev - * @param contextProvider - */ - public RulesPage(Serializable title, RuleSetContainerInterface<T, Q> container, ClickGuiPageInterface prev, McConsumer<T> contextProvider) - { - this.title = title; - this.container = container; - this.prev = prev; - this.contextProvider = contextProvider; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.title, this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return this.container.getAppliedRuleSetTypes().size() + this.container.getAvailableRuleSetTypes().size(); - } - - /** - * Converts ruleset type to string - * @param type - * @return ruleset type - */ - private String toString(T type) - { - return type.getPluginName() + "/" + type.name(); //$NON-NLS-1$ - } - - @Override - protected List<T> getElements(int start, int limit) - { - final Set<T> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); - result.addAll(this.container.getAppliedRuleSetTypes()); - result.addAll(this.container.getAvailableRuleSetTypes()); - return result. - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, T elm) - { - final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Script); - final boolean isSet = this.container.isApplied(elm); - - if (isSet) - { - final ItemMeta meta = item.getItemMeta(); - meta.addEnchant(Enchantment.LURE, 1, false); - meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - item.setItemMeta(meta); - } - - return new ClickGuiItem(item, Messages.IconRule, (p, s, g) -> { - if (isSet) - { - this.onRule(p, s, g, elm); - } - else - { - this.onCreate(p, s, g, elm); - } - }, toString(elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemBack((p, s, g) -> s.setNewPage(this.prev), Messages.IconBack, this.title), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - Main.itemCloseGui() - }; - } - - /** - * rule - * @param player - * @param session - * @param gui - * @param rule - * @throws McException - */ - @SuppressWarnings("unchecked") - private void onCreate(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, T rule) throws McException - { - this.container.applyRuleSets(rule); - session.setNewPage(new RuleEdit<>(this.title, this.container, rule, this, () -> this.contextProvider.accept(rule))); - } - - /** - * rule - * @param player - * @param session - * @param gui - * @param rule - */ - private void onRule(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, T rule) - { - session.setNewPage(new RuleEdit<>(this.title, this.container, rule, this, () -> this.contextProvider.accept(rule))); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.rules") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (rules page) - */ - @LocalizedMessage(defaultMessage = "Rules of %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (rules page)"}, args = {@Argument("title"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The rules icon - */ - @LocalizedMessage(defaultMessage = "rule %1$s") - @MessageComment(value = {"rule icon"}, args={@Argument("rule type name")}) - IconRule, - - /** - * The back icon - */ - @LocalizedMessage(defaultMessage = "back to %1$s") - @MessageComment(value = {"back icon"}, args = {@Argument("title")}) - IconBack, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java deleted file mode 100644 index d510521a..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SelectMarkerPage.java +++ /dev/null @@ -1,270 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.stream.Collectors; - -import org.bukkit.enchantments.Enchantment; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorInterface; -import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorProvider; -import de.minigameslib.mgapi.impl.cmd.tool.MarkerToolHelper; - -/** - * Page to set display markers - * - * @author mepeisen - */ -public class SelectMarkerPage extends AbstractPage<MarkerColorInterface> -{ - - /** previous page */ - private ClickGuiPageInterface prev; - - /** the target component. */ - private ComponentInterface component; - - /** the target sign. */ - private SignInterface sign; - - /** the target zone. */ - private ZoneInterface zone; - - /** the underlying player */ - private McPlayerInterface player; - - /** - * @param player - * @param sign - * @param prev - */ - public SelectMarkerPage(McPlayerInterface player, SignInterface sign, ClickGuiPageInterface prev) - { - this.player = player; - this.sign = sign; - this.prev = prev; - } - - /** - * @param player - * @param zone - * @param prev - */ - public SelectMarkerPage(McPlayerInterface player, ZoneInterface zone, ClickGuiPageInterface prev) - { - this.player = player; - this.zone = zone; - this.prev = prev; - } - - /** - * @param player - * @param component - * @param prev - */ - public SelectMarkerPage(McPlayerInterface player, ComponentInterface component, ClickGuiPageInterface prev) - { - this.player = player; - this.component = component; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(page(), count()); - } - - @Override - protected int count() - { - return MarkerColorProvider.getColors().size(); - } - - @Override - protected List<MarkerColorInterface> getElements(int start, int limit) - { - return MarkerColorProvider.getColors(). - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, MarkerColorInterface elm) - { - final MarkerToolHelper helper = MarkerToolHelper.instance(this.player); - final ItemStack icon = elm.getIcon(); - - final boolean isSet = (this.sign != null && helper.getColor(this.sign) == elm) || - (this.component != null && helper.getColor(this.component) == elm) || - (this.zone != null && helper.getColor(this.zone) == elm); - - if (isSet) - { - final ItemMeta meta = icon.getItemMeta(); - meta.addEnchant(Enchantment.LURE, 1, false); - meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - icon.setItemMeta(meta); - } - - return new ClickGuiItem(icon, elm.getTitle(), (p, s, g) -> { - if (isSet) - { - this.onRemove(p, s, g, elm); - } - else - { - this.onChoose(p, s, g, elm); - } - }); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - null, - null, - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - null, - Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) - }; - } - - /** - * color chosen - * @param p - * @param session - * @param gui - * @param color - * @throws McException - */ - private void onChoose(McPlayerInterface p, GuiSessionInterface session, ClickGuiInterface gui, MarkerColorInterface color) throws McException - { - final MarkerToolHelper helper = MarkerToolHelper.instance(p); - if (this.sign != null) - { - helper.createMarker(this.sign, color); - } - else if (this.component != null) - { - helper.createMarker(this.component, color); - } - else if (this.zone != null) - { - helper.createMarker(this.zone, color); - } - p.openClickGui(new Main(this.prev)); - } - - /** - * color remove - * @param p - * @param session - * @param gui - * @param color - * @throws McException - */ - private void onRemove(McPlayerInterface p, GuiSessionInterface session, ClickGuiInterface gui, MarkerColorInterface color) throws McException - { - final MarkerToolHelper helper = MarkerToolHelper.instance(p); - if (this.sign != null) - { - helper.clearMarker(this.sign); - } - else if (this.component != null) - { - helper.clearMarker(this.component); - } - else if (this.zone != null) - { - helper.clearMarker(this.zone); - } - session.setNewPage(this.prev); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.select_marker") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (marker colors page) - */ - @LocalizedMessage(defaultMessage = "Select marker color - page %1$d of %2$d") - @MessageComment(value = {"Gui title (marker colors page)"}, args = {@Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The Cancel - */ - @LocalizedMessage(defaultMessage = "Cancel creation") - @MessageComment({"cancel icon"}) - IconCancel, - - /** - * The sign icon - */ - @LocalizedMessage(defaultMessage = "type %1$s") - @MessageComment(value = {"sign type icon"}, args=@Argument("sign name")) - IconSign, - - /** - * Text description - */ - @LocalizedMessageList({"Enter the name of the new sign.", "The name is only used internal."}) - @MessageComment("Text description for sign name") - TextDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java deleted file mode 100644 index 65b2314c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignEdit.java +++ /dev/null @@ -1,348 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.Optional; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; - -/** - * Click gui for editing signs. - * - * @author mepeisen - */ -public class SignEdit implements ClickGuiPageInterface -{ - - /** arena to be edited. */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** sign to be edited. */ - private ArenaSignHandler sign; - - /** - * @param arena - * @param sign - * @param prevPage - */ - public SignEdit(ArenaInterface arena, ArenaSignHandler sign, ClickGuiPageInterface prevPage) - { - this.arena = arena; - this.sign = sign; - this.prevPage = prevPage; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - Main.itemHome(), - Main.itemBack(this::onBack, Messages.IconBack), - null, - Main.itemDelete(this::onDelete, Messages.IconDelete), - null, - null, - null, - null, - Main.itemCloseGui() - }, - null, - { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleport, this::onTeleport), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) - } - // TODO export/import signs - // TODO copy&paste signs - // TODO move/relocate signs with content (destroy original)/ without content (leave original untouched) - }, 6); - } - - /** - * info - * @param player - * @param session - * @param gui - */ - private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - player.sendMessage(Messages.InfoOutput, - this.arena.getDisplayName().toArg(), - this.arena.getShortDescription().toArg(), - this.sign.getName(), - this.sign.getSign().getTypeId().getPluginName(), - this.sign.getSign().getTypeId().name()); - } - - /** - * name - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryText( - this.sign.getName(), - () -> {player.openClickGui(new Main(this));}, - (s) -> this.onName(player, session, gui, s), - player.encodeMessage(Messages.NameDescription))); - } - - /** - * name - * @param player - * @param session - * @param gui - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String name) throws McException - { - if (name.equals(this.sign.getName())) - { - player.openClickGui(new Main(this)); - return; - } - - @SuppressWarnings("cast") - final Optional<ArenaSignHandler> handler = this.arena.getSigns().stream(). - map(s -> (ArenaSignHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - this.sign.setName(name); - this.sign.getSign().saveConfig(); - player.openClickGui(new Main(this)); - } - - /** - * display marker - * @param player - * @param session - * @param gui - */ - private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - if (!player.hasSmartGui()) - { - player.sendMessage(CommonMessages.NoSmartGui); - } - else - { - session.setNewPage(new SelectMarkerPage(player, this.sign.getSign(), this)); - } - } - - /** - * teleport - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onTeleport(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.getBukkitPlayer().teleport(this.sign.getSign().getLocation()); - player.openClickGui(new Main(this)); - } - - /** - * rules - * @param player - * @param session - * @param gui - */ - private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new RulesPage<>(this.getPageName(), this.sign, this, rt -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this.sign); - McLibInterface.instance().setContext(SignRuleSetInterface.class, this.sign.getRuleSet(rt)); - })); - } - - /** - * delete - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - this.sign.getSign().delete(); - session.setNewPage(this.prevPage); - } - - /** - * back to previous gui - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.sign.getName()); - } - - /** - * The sign create messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.signs_edit") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (sign edit page) - */ - @LocalizedMessage(defaultMessage = "Sign %1$s - %2$s") - @MessageComment(value = {"Gui title (sign edit)"}, args = {@Argument("arena internal name"), @Argument("sign name")}) - Title, - - /** - * back to arenas - */ - @LocalizedMessage(defaultMessage = "Back to signs list") - @MessageComment({"back to signs"}) - IconBack, - - /** - * info - */ - @LocalizedMessage(defaultMessage = "Sign info") - @MessageComment({"info"}) - IconInfo, - - /** - * name - */ - @LocalizedMessage(defaultMessage = "Sign name") - @MessageComment({"sign name"}) - IconName, - - /** - * display marker - */ - @LocalizedMessage(defaultMessage = "Show display marker") - @MessageComment({"display marker"}) - IconDisplayMarker, - - /** - * teleport - */ - @LocalizedMessage(defaultMessage = "Teleport to sign") - @MessageComment({"teleport"}) - IconTeleport, - - /** - * delete - */ - @LocalizedMessage(defaultMessage = "Delete") - @MessageComment({"delete"}) - IconDelete, - - /** - * rules - */ - @LocalizedMessage(defaultMessage = "Rules") - @MessageComment({"rules"}) - IconRules, - - /** - * The info - */ - @LocalizedMessageList({ - "arena: %1$s - %2$s", - "sign-name: %3$s", - "sign-type: %4$s/%5$s" - }) - @MessageComment(value = { - "The info" - },args = { - @Argument("arena display name"), - @Argument("arena short description"), - @Argument("sign name"), - @Argument("sign type plugin"), - @Argument("sign type name"), - }) - InfoOutput, - - /** - * Name description - */ - @LocalizedMessageList({"Enter the name of the sign.", "The name is only used internal."}) - @MessageComment("Text description for sign name") - NameDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java deleted file mode 100644 index 142cf01c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsCreateChooseType.java +++ /dev/null @@ -1,237 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.util.function.McBiConsumer; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; - -/** - * Page with arena signs; choose type for new sign - * - * @author mepeisen - */ -public class SignsCreateChooseType extends AbstractPage<SignTypeId> -{ - - /** the arena */ - private McBiConsumer<SignTypeId, String> onSave; - - /** previous page */ - private ClickGuiPageInterface prev; - - /** the underlying arena. */ - private ArenaInterface arena; - - /** - * @param arena - * @param onSave - * @param prev - */ - public SignsCreateChooseType(ArenaInterface arena, McBiConsumer<SignTypeId, String> onSave, ClickGuiPageInterface prev) - { - this.arena = arena; - this.onSave = onSave; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return EnumServiceInterface.instance().getEnumValues(SignTypeId.class).size(); - } - - /** - * Converts sign type to string - * @param signType - * @return sign type - */ - private String toString(SignTypeId signType) - { - return signType.getPluginName() + "/" + signType.name(); //$NON-NLS-1$ - } - - @Override - protected List<SignTypeId> getElements(int start, int limit) - { - final Set<SignTypeId> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); - result.addAll(EnumServiceInterface.instance().getEnumValues(SignTypeId.class)); - return result. - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, SignTypeId elm) - { - final ItemStack item = new ItemStack(Material.SIGN); - return new ClickGuiItem(item, Messages.IconSign, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - null, - null, - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - null, - Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) - }; - } - - /** - * Returns a free name with given prefix. - * @param prefix - * @return free name - */ - private String getFreeName(String prefix) - { - int i = 1; - while (true) - { - final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ - - @SuppressWarnings("cast") - final Optional<ArenaSignHandler> handler = this.arena.getSigns().stream(). - map(s -> (ArenaSignHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - - if (!handler.isPresent()) - { - return name; - } - - i++; - } - } - - /** - * type chosen - * @param player - * @param session - * @param gui - * @param type - * @throws McException - */ - private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, SignTypeId type) throws McException - { - final String text = this.getFreeName(type.name().toLowerCase()); - - player.openAnvilGui(new QueryText( - text, - () -> {player.openClickGui(new Main(this.prev));}, - (s) -> this.onName(player, session, gui, type, s), - player.encodeMessage(Messages.TextDescription))); - } - - /** - * name selected - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, SignTypeId type, String name) throws McException - { - this.onSave.accept(type, name); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.sign_create_choose_type") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (sign types page) - */ - @LocalizedMessage(defaultMessage = "Type for new sign in arena %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (sign types page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The Cancel - */ - @LocalizedMessage(defaultMessage = "Cancel creation") - @MessageComment({"cancel icon"}) - IconCancel, - - /** - * The sign icon - */ - @LocalizedMessage(defaultMessage = "type %1$s") - @MessageComment(value = {"sign type icon"}, args=@Argument("type name")) - IconSign, - - /** - * Text description - */ - @LocalizedMessageList({"Enter the name of the new sign.", "The name is only used internal."}) - @MessageComment("Text description for sign name") - TextDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java deleted file mode 100644 index 57729b6e..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/SignsPage.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; - -/** - * Page with arena signs - * - * @author mepeisen - */ -public class SignsPage extends AbstractPage<ArenaSignHandler> -{ - - /** the arena */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prev; - - /** - * Constructor to create the first page - * @param arena - * @param prev - */ - public SignsPage(ArenaInterface arena, ClickGuiPageInterface prev) - { - this.arena = arena; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return this.arena.getSigns().size(); - } - - @Override - protected List<ArenaSignHandler> getElements(int start, int limit) - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - return this.arena.getSigns(). - stream(). - map(osi::findSign). - map(s -> (ArenaSignHandler) s.getHandler()). - sorted((a, b) -> a.getName().compareTo(b.getName())). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ArenaSignHandler elm) - { - final ItemStack item = new ItemStack(Material.SIGN); - return new ClickGuiItem(item, Messages.IconSign, (p, s, g) -> this.onEdit(p, s, g, elm), elm.getName()); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - null, - Main.itemNew(this::onNew, Messages.IconNewSign), - null, - Main.itemCloseGui() - }; - } - - /** - * sign edit - * @param player - * @param session - * @param gui - * @param sign - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaSignHandler sign) - { - session.setNewPage(new SignEdit(this.arena, sign, this)); - } - - /** - * new sign - * @param player - * @param session - * @param gui - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new SignsCreateChooseType(this.arena, (type, name) -> onNew(player, session, gui, type, name), this)); - } - - /** - * new sign - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, SignTypeId type, String name) throws McException - { - @SuppressWarnings("cast") - final Optional<ArenaSignHandler> handler = this.arena.getSigns().stream(). - map(s -> (ArenaSignHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - AdminToolHelper.onCreateSign(player, this.arena, name, type, s -> player.openClickGui(new Main(new SignEdit(this.arena, s, this)))); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.signs") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (signs page) - */ - @LocalizedMessage(defaultMessage = "Signs for arena %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (signs page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment({"back icon"}) - IconBack, - - /** - * The new sign - */ - @LocalizedMessage(defaultMessage = "New sign") - @MessageComment({"new sign icon"}) - IconNewSign, - - /** - * The sign icon - */ - @LocalizedMessage(defaultMessage = "sign %1$s") - @MessageComment(value = {"sign icon"}, args=@Argument("sign name")) - IconSign, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java deleted file mode 100644 index d800eb9d..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/YesNoQuestion.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; - -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.objects.McPlayerInterface; - -/** - * Click gui for asking a simple question - * - * @author mepeisen - */ -public class YesNoQuestion implements ClickGuiPageInterface -{ - - /** question */ - private Serializable question; - - /** details */ - private LocalizedMessageInterface details; - - /** details */ - private Serializable[] detailsArgs; - - /** yes action. */ - private ClickGuiItem.GuiItemHandler onYes; - - /** no action. */ - private ClickGuiItem.GuiItemHandler onNo; - - /** - * @param question - * @param onYes - * @param onNo - * @param details - * @param detailsArgs - */ - public YesNoQuestion(Serializable question, ClickGuiItem.GuiItemHandler onYes, ClickGuiItem.GuiItemHandler onNo, LocalizedMessageInterface details, Serializable... detailsArgs) - { - this.onYes = onYes; - this.onNo = onNo; - this.details = details; - this.detailsArgs = detailsArgs; - this.question = question; - } - - /** - * @param question - * @param onYes - * @param onNo - */ - public YesNoQuestion(Serializable question, ClickGuiItem.GuiItemHandler onYes, ClickGuiItem.GuiItemHandler onNo) - { - this.onYes = onYes; - this.onNo = onNo; - this.question = question; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - this.details == null ? null : new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Help), Messages.IconHelp, this::onHelp), - }, - null, - null, - { - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Yes), Messages.IconYes, this.onYes), - null, - null, - null, - null, - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_No), Messages.IconNo, this.onNo), - null - } - }, 6); - } - - /** - * help - * @param player - * @param session - * @param gui - */ - private void onHelp(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - player.sendMessage(this.details, this.detailsArgs); - } - - @Override - public Serializable getPageName() - { - return this.question; - } - - /** - * The arena create messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.yes_no") - public enum Messages implements LocalizedMessageInterface - { - /** - * help icon - */ - @LocalizedMessage(defaultMessage = "CLICK for help") - @MessageComment("help icon") - IconHelp, - - /** - * yes icon - */ - @LocalizedMessage(defaultMessage = "Yes") - @MessageComment("yes icon") - IconYes, - - /** - * Gui title (arena edit page) - */ - @LocalizedMessage(defaultMessage = "No") - @MessageComment("no icon") - IconNo, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java deleted file mode 100644 index fb495bbf..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZoneEdit.java +++ /dev/null @@ -1,449 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.Optional; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorInterface; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; -import de.minigameslib.mgapi.impl.cmd.tool.MarkerToolHelper; - -/** - * Click gui for editing zones. - * - * @author mepeisen - */ -public class ZoneEdit implements ClickGuiPageInterface -{ - - /** arena to be edited. */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prevPage; - - /** zone to be edited. */ - private ArenaZoneHandler zone; - - /** - * @param arena - * @param zone - * @param prevPage - */ - public ZoneEdit(ArenaInterface arena, ArenaZoneHandler zone, ClickGuiPageInterface prevPage) - { - this.arena = arena; - this.zone = zone; - this.prevPage = prevPage; - } - - @Override - public ClickGuiItem[][] getItems() - { - return ClickGuiPageInterface.withFillers(new ClickGuiItem[][]{ - { - Main.itemHome(), - Main.itemBack(this::onBack, Messages.IconBack), - null, - Main.itemDelete(this::onDelete, Messages.IconDelete), - null, - null, - null, - null, - Main.itemCloseGui() - }, - null, - { - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Info), Messages.IconInfo, this::onInfo), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Text), Messages.IconName, this::onName), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Target), Messages.IconDisplayMarker, this::onDisplayMarker), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportLower, this::onTeleportLower), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Trackback), Messages.IconTeleportHigher, this::onTeleportHigher), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion), Messages.IconRelocateLower, this::onRelocateLower), - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Pinion), Messages.IconRelocateHigher, this::onRelocateHigher), - null, - new ClickGuiItem(ItemServiceInterface.instance().createItem(CommonItems.App_Script), Messages.IconRules, this::onRules) - } - // TODO export/import zones - // TODO copy&paste zones - // TODO move zones with content/ without content - }, 6); - } - - /** - * info - * @param player - * @param session - * @param gui - */ - private void onInfo(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - player.sendMessage(Messages.InfoOutput, - this.arena.getDisplayName().toArg(), - this.arena.getShortDescription().toArg(), - this.zone.getName(), - this.zone.getZone().getTypeId().getPluginName(), - this.zone.getZone().getTypeId().name()); - } - - /** - * name - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.openAnvilGui(new QueryText( - this.zone.getName(), - () -> {player.openClickGui(new Main(this));}, - (s) -> this.onName(player, session, gui, s), - player.encodeMessage(Messages.NameDescription))); - } - - /** - * name - * @param player - * @param session - * @param gui - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, String name) throws McException - { - if (name.equals(this.zone.getName())) - { - player.openClickGui(new Main(this)); - return; - } - - @SuppressWarnings("cast") - final Optional<ArenaZoneHandler> handler = this.arena.getZones().stream(). - map(s -> (ArenaZoneHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - this.zone.setName(name); - this.zone.getZone().saveConfig(); - player.openClickGui(new Main(this)); - } - - /** - * display marker - * @param player - * @param session - * @param gui - */ - private void onDisplayMarker(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - if (!player.hasSmartGui()) - { - player.sendMessage(CommonMessages.NoSmartGui); - } - else - { - session.setNewPage(new SelectMarkerPage(player, this.zone.getZone(), this)); - } - } - - /** - * relocate - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onRelocateLower(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - session.close(); - AdminToolHelper.onRelocateZoneLower(player, this.zone, z -> { - // change (=re-create) marker if displayed - if (player.hasSmartGui()) - { - final MarkerToolHelper helper = MarkerToolHelper.instance(player); - final MarkerColorInterface color = helper.getColor(z.getZone()); - if (color != null) - { - helper.clearMarker(z.getZone()); - helper.createMarker(z.getZone(), color); - } - } - player.openClickGui(new Main(this)); - }); - } - - /** - * relocate - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onRelocateHigher(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - session.close(); - AdminToolHelper.onRelocateZoneHigher(player, this.zone, z -> { - // change (=re-create) marker if displayed - if (player.hasSmartGui()) - { - final MarkerToolHelper helper = MarkerToolHelper.instance(player); - final MarkerColorInterface color = helper.getColor(z.getZone()); - if (color != null) - { - helper.clearMarker(z.getZone()); - helper.createMarker(z.getZone(), color); - } - } - player.openClickGui(new Main(this)); - }); - } - - /** - * teleport - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onTeleportLower(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.getBukkitPlayer().teleport(this.zone.getZone().getCuboid().getLowLoc()); - player.openClickGui(new Main(this)); - } - - /** - * teleport - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onTeleportHigher(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - player.getBukkitPlayer().teleport(this.zone.getZone().getCuboid().getHighLoc()); - player.openClickGui(new Main(this)); - } - - /** - * rules - * @param player - * @param session - * @param gui - */ - private void onRules(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new RulesPage<>(this.getPageName(), this.zone, this, rt -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this.zone); - McLibInterface.instance().setContext(ZoneRuleSetInterface.class, this.zone.getRuleSet(rt)); - })); - } - - /** - * delete - * @param player - * @param session - * @param gui - * @throws McException - */ - private void onDelete(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) throws McException - { - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - this.zone.getZone().delete(); - session.setNewPage(this.prevPage); - } - - /** - * back to previous gui - * @param player - * @param session - * @param gui - */ - private void onBack(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(this.prevPage); - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.zone.getName()); - } - - /** - * The zone create messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.zones_edit") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (zone edit page) - */ - @LocalizedMessage(defaultMessage = "Zone %1$s - %2$s") - @MessageComment(value = {"Gui title (zone edit)"}, args = {@Argument("arena internal name"), @Argument("zone name")}) - Title, - - /** - * back to arenas - */ - @LocalizedMessage(defaultMessage = "Back to zones list") - @MessageComment({"back to zones"}) - IconBack, - - /** - * info - */ - @LocalizedMessage(defaultMessage = "Zone info") - @MessageComment({"info"}) - IconInfo, - - /** - * name - */ - @LocalizedMessage(defaultMessage = "Zone name") - @MessageComment({"zone name"}) - IconName, - - /** - * display marker - */ - @LocalizedMessage(defaultMessage = "Show display marker") - @MessageComment({"display marker"}) - IconDisplayMarker, - - /** - * teleport - */ - @LocalizedMessage(defaultMessage = "Teleport to zone (lower bounds)") - @MessageComment({"teleport"}) - IconTeleportLower, - - /** - * teleport - */ - @LocalizedMessage(defaultMessage = "Teleport to zone (higher bounds)") - @MessageComment({"teleport"}) - IconTeleportHigher, - - /** - * relocate - */ - @LocalizedMessage(defaultMessage = "Relocate lower bounds") - @MessageComment({"relocate"}) - IconRelocateLower, - - /** - * relocate - */ - @LocalizedMessage(defaultMessage = "Relocate higher bounds") - @MessageComment({"relocate"}) - IconRelocateHigher, - - /** - * delete - */ - @LocalizedMessage(defaultMessage = "Delete") - @MessageComment({"delete"}) - IconDelete, - - /** - * rules - */ - @LocalizedMessage(defaultMessage = "Rules") - @MessageComment({"rules"}) - IconRules, - - /** - * The info - */ - @LocalizedMessageList({ - "arena: %1$s - %2$s", - "zone-name: %3$s", - "zone-type: %4$s/%5$s" - }) - @MessageComment(value = { - "The info" - },args = { - @Argument("arena display name"), - @Argument("arena short description"), - @Argument("zone name"), - @Argument("zone type plugin"), - @Argument("zone type name"), - }) - InfoOutput, - - /** - * Name description - */ - @LocalizedMessageList({"Enter the name of the zone.", "The name is only used internal."}) - @MessageComment("Text description for zone name") - NameDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java deleted file mode 100644 index c4356ac6..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesCreateChooseType.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mclib.api.util.function.McBiConsumer; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; - -/** - * Page with arena zones; choose type for new zones - * - * @author mepeisen - */ -public class ZonesCreateChooseType extends AbstractPage<ZoneTypeId> -{ - - /** the arena */ - private McBiConsumer<ZoneTypeId, String> onSave; - - /** previous page */ - private ClickGuiPageInterface prev; - - /** the underlying arena. */ - private ArenaInterface arena; - - /** - * @param arena - * @param onSave - * @param prev - */ - public ZonesCreateChooseType(ArenaInterface arena, McBiConsumer<ZoneTypeId, String> onSave, ClickGuiPageInterface prev) - { - this.arena = arena; - this.onSave = onSave; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class).size(); - } - - /** - * Converts zone type to string - * @param zoneType - * @return zone type - */ - private String toString(ZoneTypeId zoneType) - { - return zoneType.getPluginName() + "/" + zoneType.name(); //$NON-NLS-1$ - } - - @Override - protected List<ZoneTypeId> getElements(int start, int limit) - { - final Set<ZoneTypeId> result = new TreeSet<>((a, b) -> toString(a).compareTo(toString(b))); - result.addAll(EnumServiceInterface.instance().getEnumValues(ZoneTypeId.class)); - return result. - stream(). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ZoneTypeId elm) - { - final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Globe); - return new ClickGuiItem(item, Messages.IconZone, (p, s, g) -> this.onChoose(p, s, g, elm), toString(elm)); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - null, - null, - this.itemPrevPage(), - this.itemNextPage(), - null, - null, - null, - null, - Main.itemCancel((p, s, g) -> s.setNewPage(this.prev), Messages.IconCancel) - }; - } - - /** - * Returns a free name with given prefix. - * @param prefix - * @return free name - */ - private String getFreeName(String prefix) - { - int i = 1; - while (true) - { - final String name = i == 1 ? prefix : prefix + "-" + i; //$NON-NLS-1$ - - @SuppressWarnings("cast") - final Optional<ArenaZoneHandler> handler = this.arena.getZones().stream(). - map(s -> (ArenaZoneHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - - if (!handler.isPresent()) - { - return name; - } - - i++; - } - } - - /** - * type chosen - * @param player - * @param session - * @param gui - * @param type - * @throws McException - */ - private void onChoose(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ZoneTypeId type) throws McException - { - final String text = this.getFreeName(type.name().toLowerCase()); - - player.openAnvilGui(new QueryText( - text, - () -> {player.openClickGui(new Main(this.prev));}, - (s) -> this.onName(player, session, gui, type, s), - player.encodeMessage(Messages.TextDescription))); - } - - /** - * name selected - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onName(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ZoneTypeId type, String name) throws McException - { - this.onSave.accept(type, name); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.zone_create_choose_type") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (zone types page) - */ - @LocalizedMessage(defaultMessage = "Type for new zone in arena %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (zone types page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * The Cancel - */ - @LocalizedMessage(defaultMessage = "Cancel creation") - @MessageComment({"cancel icon"}) - IconCancel, - - /** - * The zone icon - */ - @LocalizedMessage(defaultMessage = "type %1$s") - @MessageComment(value = {"zone type icon"}, args=@Argument("type name")) - IconZone, - - /** - * Text description - */ - @LocalizedMessageList({"Enter the name of the new zone.", "The name is only used internal."}) - @MessageComment("Text description for zone name") - TextDescription, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java deleted file mode 100644 index d4900976..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/gui/ZonesPage.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.gui; - -import java.io.Serializable; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.ClickGuiInterface; -import de.minigameslib.mclib.api.gui.ClickGuiItem; -import de.minigameslib.mclib.api.gui.ClickGuiPageInterface; -import de.minigameslib.mclib.api.gui.GuiSessionInterface; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.cmd.Mg2Command; -import de.minigameslib.mgapi.impl.cmd.tool.AdminToolHelper; - -/** - * Page with arena zones - * - * @author mepeisen - */ -public class ZonesPage extends AbstractPage<ArenaZoneHandler> -{ - - /** the arena */ - private ArenaInterface arena; - - /** previous page. */ - private ClickGuiPageInterface prev; - - /** - * Constructor to create the first page - * @param arena - * @param prev - */ - public ZonesPage(ArenaInterface arena, ClickGuiPageInterface prev) - { - this.arena = arena; - this.prev = prev; - } - - @Override - public Serializable getPageName() - { - return Messages.Title.toArg(this.arena.getInternalName(), this.page(), this.totalPages()); - } - - @Override - protected int count() - { - return this.arena.getZones().size(); - } - - @Override - protected List<ArenaZoneHandler> getElements(int start, int limit) - { - final ObjectServiceInterface osi = ObjectServiceInterface.instance(); - return this.arena.getZones(). - stream(). - map(osi::findZone). - map(s -> (ArenaZoneHandler) s.getHandler()). - sorted((a, b) -> a.getName().compareTo(b.getName())). - skip(start).limit(limit). - collect(Collectors.toList()); - } - - @Override - protected ClickGuiItem map(int line, int col, int index, ArenaZoneHandler elm) - { - final ItemStack item = ItemServiceInterface.instance().createItem(CommonItems.App_Globe); - return new ClickGuiItem(item, Messages.IconZone, (p, s, g) -> this.onEdit(p, s, g, elm), elm.getName()); - } - - @Override - protected ClickGuiItem[] firstLine() - { - return new ClickGuiItem[]{ - Main.itemHome(), - Main.itemBack((c, s, g) -> s.setNewPage(this.prev), Messages.IconBack), - Main.itemRefresh(this::onRefresh), - this.itemPrevPage(), - this.itemNextPage(), - null, - Main.itemNew(this::onNew, Messages.IconNewZone), - null, - Main.itemCloseGui() - }; - } - - /** - * zone edit - * @param player - * @param session - * @param gui - * @param zone - */ - private void onEdit(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ArenaZoneHandler zone) - { - session.setNewPage(new ZoneEdit(this.arena, zone, this)); - } - - /** - * new zone - * @param player - * @param session - * @param gui - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui) - { - session.setNewPage(new ZonesCreateChooseType(this.arena, (type, name) -> onNew(player, session, gui, type, name), this)); - } - - /** - * new zone - * @param player - * @param session - * @param gui - * @param type - * @param name - * @throws McException - */ - private void onNew(McPlayerInterface player, GuiSessionInterface session, ClickGuiInterface gui, ZoneTypeId type, String name) throws McException - { - @SuppressWarnings("cast") - final Optional<ArenaZoneHandler> handler = this.arena.getZones().stream(). - map(s -> (ArenaZoneHandler) this.arena.getHandler(s)). - filter(s -> name.equals(s.getName())). - findFirst(); - if (handler.isPresent()) - { - throw new McException(Mg2Command.Messages.ComponentAlreadyExists, name); - } - if (!this.arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - AdminToolHelper.onCreateZone(player, this.arena, name, type, z -> player.openClickGui(new Main(new ZoneEdit(this.arena, z, this)))); - } - - /** - * The arenas messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.zones") - public enum Messages implements LocalizedMessageInterface - { - /** - * Gui title (zones page) - */ - @LocalizedMessage(defaultMessage = "Zones for arena %1$s (page %2$d from %3$d)") - @MessageComment(value = {"Gui title (zones page)"}, args = {@Argument("arena name"), @Argument("page number"), @Argument("total pages")}) - Title, - - /** - * back icon - */ - @LocalizedMessage(defaultMessage = "Back") - @MessageComment({"back icon"}) - IconBack, - - /** - * The new zone - */ - @LocalizedMessage(defaultMessage = "New zone") - @MessageComment({"new zone icon"}) - IconNewZone, - - /** - * The zone icon - */ - @LocalizedMessage(defaultMessage = "zone %1$s") - @MessageComment(value = {"zone icon"}, args=@Argument("zone name")) - IconZone, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java deleted file mode 100644 index c2d4da79..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorInterface.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.marker; - -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; - -/** - * Common marker colors. Implementing classes must implement hashcode and equals. - * - * @author mepeisen - */ -public interface MarkerColorInterface -{ - - /** - * Title of this color - * @return color title - */ - LocalizedMessageInterface getTitle(); - - /** - * Red color component - * @return red color - */ - int getR(); - - /** - * Green color component - * @return green color - */ - int getG(); - - /** - * Blue color component - * @return blue color - */ - int getB(); - - /** - * Alpha color component - * @return alpha color - */ - int getAlpha(); - - /** - * Returns gui icon - * @return gui icon - */ - ItemStack getIcon(); - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java deleted file mode 100644 index b16f5b52..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/marker/MarkerColorProvider.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.marker; - -import java.util.Arrays; -import java.util.List; - -import org.bukkit.DyeColor; -import org.bukkit.Material; -import org.bukkit.inventory.ItemStack; - -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; - -/** - * A helper class to create marker colors - * - * @author mepeisen - */ -public class MarkerColorProvider -{ - - /** - * Returns the available colors. - * @return available colors. - */ - public static List<MarkerColorInterface> getColors() - { - return Arrays.asList(MarkerColor.values()); - } - - /** - * The marker colors. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admingui.marker_colors") - public enum Messages implements LocalizedMessageInterface - { - /** - * white marker color - */ - @LocalizedMessage(defaultMessage = "white") - @MessageComment({"white marker color"}) - White, - /** - * orange marker color - */ - @LocalizedMessage(defaultMessage = "orange") - @MessageComment({"orange marker color"}) - Orange, - /** - * magenta marker color - */ - @LocalizedMessage(defaultMessage = "magenta") - @MessageComment({"magenta marker color"}) - Magenta, - /** - * light blue marker color - */ - @LocalizedMessage(defaultMessage = "light blue") - @MessageComment({"light blue marker color"}) - LightBlue, - /** - * yellow marker color - */ - @LocalizedMessage(defaultMessage = "yellow") - @MessageComment({"yellow marker color"}) - Yellow, - /** - * lime marker color - */ - @LocalizedMessage(defaultMessage = "lime") - @MessageComment({"lime marker color"}) - Lime, - /** - * pink marker color - */ - @LocalizedMessage(defaultMessage = "pink") - @MessageComment({"pink marker color"}) - Pink, - /** - * gray marker color - */ - @LocalizedMessage(defaultMessage = "gray") - @MessageComment({"gray marker color"}) - Gray, - /** - * silver marker color - */ - @LocalizedMessage(defaultMessage = "silver") - @MessageComment({"silver marker color"}) - Silver, - /** - * cyan marker color - */ - @LocalizedMessage(defaultMessage = "cyan") - @MessageComment({"cyan marker color"}) - Cyan, - /** - * purple marker color - */ - @LocalizedMessage(defaultMessage = "purple") - @MessageComment({"purple marker color"}) - Purple, - /** - * blue marker color - */ - @LocalizedMessage(defaultMessage = "blue") - @MessageComment({"blue marker color"}) - Blue, - /** - * brown marker color - */ - @LocalizedMessage(defaultMessage = "brown") - @MessageComment({"brown marker color"}) - Brown, - /** - * green marker color - */ - @LocalizedMessage(defaultMessage = "green") - @MessageComment({"green marker color"}) - Green, - /** - * red marker color - */ - @LocalizedMessage(defaultMessage = "white") - @MessageComment({"white marker color"}) - Red, - /** - * white marker color - */ - @LocalizedMessage(defaultMessage = "white") - @MessageComment({"white marker color"}) - Black - } - - /** - * marker colors. - * @author mepeisen - */ - private enum MarkerColor implements MarkerColorInterface - { - - /** - * Represents white dye. - */ - WHITE(Messages.White, DyeColor.WHITE), - /** - * Represents orange dye. - */ - ORANGE(Messages.Orange, DyeColor.ORANGE), - /** - * Represents magenta dye. - */ - MAGENTA(Messages.Magenta, DyeColor.MAGENTA), - /** - * Represents light blue dye. - */ - LIGHT_BLUE(Messages.LightBlue, DyeColor.LIGHT_BLUE), - /** - * Represents yellow dye. - */ - YELLOW(Messages.Yellow, DyeColor.YELLOW), - /** - * Represents lime dye. - */ - LIME(Messages.Lime, DyeColor.LIME), - /** - * Represents pink dye. - */ - PINK(Messages.Pink, DyeColor.PINK), - /** - * Represents gray dye. - */ - GRAY(Messages.Gray, DyeColor.GRAY), - /** - * Represents silver dye. - */ - SILVER(Messages.Silver, DyeColor.SILVER), - /** - * Represents cyan dye. - */ - CYAN(Messages.Cyan, DyeColor.CYAN), - /** - * Represents purple dye. - */ - PURPLE(Messages.Purple, DyeColor.PURPLE), - /** - * Represents blue dye. - */ - BLUE(Messages.Blue, DyeColor.BLUE), - /** - * Represents brown dye. - */ - BROWN(Messages.Brown, DyeColor.BROWN), - /** - * Represents green dye. - */ - GREEN(Messages.Green, DyeColor.GREEN), - /** - * Represents red dye. - */ - RED(Messages.Red, DyeColor.RED), - /** - * Represents black dye. - */ - BLACK(Messages.Black, DyeColor.BLACK); - - /** red */ - private final int r; - - /** green */ - private final int g; - - /** blue */ - private final int b; - - /** alpha value */ - private final int alpha; - - /** name */ - private LocalizedMessageInterface name; - - /** wool color */ - private DyeColor color; - - /** - * @param name - * @param color - */ - private MarkerColor(LocalizedMessageInterface name, DyeColor color) - { - this.r = color.getColor().getRed(); - this.g = color.getColor().getGreen(); - this.b = color.getColor().getBlue(); - this.alpha = 0x7f; - this.name = name; - this.color = color; - } - - @Override - public LocalizedMessageInterface getTitle() - { - return this.name; - } - - @Override - public int getR() - { - return this.r; - } - - @Override - public int getG() - { - return this.g; - } - - @Override - public int getB() - { - return this.b; - } - - @Override - public int getAlpha() - { - return this.alpha; - } - - @SuppressWarnings("deprecation") - @Override - public ItemStack getIcon() - { - return new ItemStack(Material.WOOL, 1, this.color.getWoolData()); - } - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java deleted file mode 100644 index 8dd61013..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/AdminToolHelper.java +++ /dev/null @@ -1,605 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.tool; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.Sign; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McPlayerInteractEvent; -import de.minigameslib.mclib.api.items.CommonItems; -import de.minigameslib.mclib.api.items.ItemServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageList; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mclib.api.objects.ComponentTypeId; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.SignTypeId; -import de.minigameslib.mclib.api.objects.ZoneTypeId; -import de.minigameslib.mclib.api.util.function.McConsumer; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.impl.MglibPerms; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; - -/** - * Admin tooling helper. - * - * @author mepeisen - */ -public class AdminToolHelper -{ - - /** - * Registers the tooling to select a block for component creation. - * @param player - * @param arena - * @param name - * @param type - * @param finish the finish action - */ - public static void onCreateComponent(McPlayerInterface player, ArenaInterface arena, String name, ComponentTypeId type, McConsumer<ArenaComponentHandler> finish) - { - final ItemServiceInterface itemService = ItemServiceInterface.instance(); - itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateComponent_Title) - .onLeftClick((p, evt) -> onCreateComponent(evt, p, arena, name, type, finish)) - .onRightClick((p, evt) -> onCreateComponent(evt, p, arena, name, type, finish)) - .description(Messages.CreateComponent_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) - .build(); - player.sendMessage(Messages.CreateComponent_ClickBlock); - } - - /** - * Registers the tooling to select the block for component creation. - * @param evt - * @param player - * @param arena - * @param name - * @param type - * @param finish the finish action - * @throws McException - */ - private static void onCreateComponent(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, ComponentTypeId type, McConsumer<ArenaComponentHandler> finish) throws McException - { - // security checks - if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminComp))) - { - throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin comp create"); //$NON-NLS-1$ - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - final Location loc = evt.getBukkitEvent().getClickedBlock().getLocation(); - final ArenaComponentHandler result = arena.createComponent(loc, type); - result.setName(name); - player.sendMessage(Messages.CreateComponent_Created); - if (finish != null) - { - finish.accept(result); - } - } - - /** - * Registers the tooling to select a block for changing zone lower bounds. - * @param player - * @param zone - * @param finish the finish action - */ - public static void onRelocateZoneLower(McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) - { - final ItemServiceInterface itemService = ItemServiceInterface.instance(); - itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) - .onLeftClick((p, evt) -> onRelocateZoneLower1(evt, p, zone, finish)) - .onRightClick((p, evt) -> onRelocateZoneLower1(evt, p, zone, finish)) - .description(Messages.RelocateZone_Description, zone.getName(), zone.getArena().getInternalName()) - .singleUse() - .build(); - player.sendMessage(Messages.RelocateZone_ClickBlockLower); - } - - /** - * Registers the tooling to select a block for changing zone higher bounds. - * @param player - * @param zone - * @param finish the finish action - */ - public static void onRelocateZoneHigher(McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) - { - final ItemServiceInterface itemService = ItemServiceInterface.instance(); - itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) - .onLeftClick((p, evt) -> onRelocateZoneHigher1(evt, p, zone, finish)) - .onRightClick((p, evt) -> onRelocateZoneHigher1(evt, p, zone, finish)) - .description(Messages.RelocateZone_Description, zone.getName(), zone.getArena().getInternalName()) - .singleUse() - .build(); - player.sendMessage(Messages.RelocateZone_ClickBlockHigher); - } - - /** - * Registers the tooling to select the lower block for zone relocation. - * @param evt - * @param player - * @param zone - * @param finish the finish action - * @throws McException - */ - private static void onRelocateZoneLower1(McPlayerInteractEvent evt, McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) throws McException - { - // security checks - if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) - { - throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ - } - if (!zone.getArena().isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - final Location loc = evt.getBukkitEvent().getClickedBlock().getLocation(); - zone.getZone().setCuboid(new Cuboid(loc, zone.getZone().getCuboid().getHighLoc())); - zone.getZone().saveConfig(); - player.sendMessage(Messages.RelocateZone_Relocated); - if (finish != null) - { - finish.accept(zone); - } - } - - /** - * Registers the tooling to select the higher block for zone relocation. - * @param evt - * @param player - * @param zone - * @param finish the finish action - * @throws McException - */ - private static void onRelocateZoneHigher1(McPlayerInteractEvent evt, McPlayerInterface player, ArenaZoneHandler zone, McConsumer<ArenaZoneHandler> finish) throws McException - { - // security checks - if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) - { - throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ - } - if (!zone.getArena().isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - final Location loc = evt.getBukkitEvent().getClickedBlock().getLocation(); - zone.getZone().setCuboid(new Cuboid(zone.getZone().getCuboid().getLowLoc(), loc)); - zone.getZone().saveConfig(); - player.sendMessage(Messages.RelocateZone_Relocated); - if (finish != null) - { - finish.accept(zone); - } - } - - /** - * Registers the tooling to select a block for zone creation. - * @param player - * @param arena - * @param name - * @param type - * @param finish the finish action - */ - public static void onCreateZone(McPlayerInterface player, ArenaInterface arena, String name, ZoneTypeId type, McConsumer<ArenaZoneHandler> finish) - { - final ItemServiceInterface itemService = ItemServiceInterface.instance(); - itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) - .onLeftClick((p, evt) -> onCreateZone1(evt, p, arena, name, type, finish)) - .onRightClick((p, evt) -> onCreateZone1(evt, p, arena, name, type, finish)) - .description(Messages.CreateZone_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) - .build(); - player.sendMessage(Messages.CreateZone_ClickBlockLower); - } - - /** - * Registers the tooling to select the lower block for zone creation. - * @param evt - * @param player - * @param arena - * @param name - * @param type - * @param finish the finish action - * @throws McException - */ - private static void onCreateZone1(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, ZoneTypeId type, McConsumer<ArenaZoneHandler> finish) throws McException - { - // security checks - if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) - { - throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - final Location lower = evt.getBukkitEvent().getClickedBlock().getLocation(); - final ItemServiceInterface itemService = ItemServiceInterface.instance(); - itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateZone_Title) - .onLeftClick((p, evt2) -> onCreateZone2(evt2, p, arena, name, type, lower, finish)) - .onRightClick((p, evt2) -> onCreateZone2(evt2, p, arena, name, type, lower, finish)) - .description(Messages.CreateZone_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) - .singleUse() - .build(); - player.sendMessage(Messages.CreateZone_ClickBlockHigher); - } - - /** - * Registers the tooling to select the higher block for zone creation. - * @param evt - * @param player - * @param arena - * @param name - * @param type - * @param lower - * @param finish the finish action - * @throws McException - */ - private static void onCreateZone2(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, ZoneTypeId type, Location lower, McConsumer<ArenaZoneHandler> finish) throws McException - { - // security checks - if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminZone))) - { - throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin zone create"); //$NON-NLS-1$ - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - final Location higher = evt.getBukkitEvent().getClickedBlock().getLocation(); - - final ArenaZoneHandler result = arena.createZone(new Cuboid(lower, higher), type); - result.setName(name); - player.sendMessage(Messages.CreateZone_Created); - if (finish != null) - { - finish.accept(result); - } - } - - /** - * Registers the tooling to select a block for sign creation. - * @param player - * @param arena - * @param name - * @param type - * @param finish the finish action - */ - public static void onCreateSign(McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) - { - final ItemServiceInterface itemService = ItemServiceInterface.instance(); - itemService.prepareTool(CommonItems.App_Pinion, player, Messages.CreateSign_Title) - .onLeftClick((p, evt) -> onCreateSign(evt, p, arena, name, type, finish)) - .onRightClick((p, evt) -> onCreateSign(evt, p, arena, name, type, finish)) - .description(Messages.CreateSign_Description, type.getPluginName() + '/' + type.name(), arena.getInternalName(), name) - .singleUse() - .build(); - player.sendMessage(Messages.CreateSign_ClickBlock); - } - - /** - * Registers the tooling to select a block for sign creation. - * @param evt - * @param player - * @param arena - * @param name - * @param type - * @param finish the finish action - * @throws McException - */ - @SuppressWarnings("deprecation") - private static void onCreateSign(McPlayerInteractEvent evt, McPlayerInterface player, ArenaInterface arena, String name, SignTypeId type, McConsumer<ArenaSignHandler> finish) throws McException - { - // security checks - if (!(player.getBukkitPlayer().isOp() || player.checkPermission(MglibPerms.CommandAdminSign))) - { - throw new McException(CommonMessages.NoPermissionForCommand, "/mg2 admin sign create"); //$NON-NLS-1$ - } - if (!arena.isMaintenance()) - { - throw new McException(ArenaImpl.Messages.ModificationWrongState); - } - - Block target = null; - byte opposite; - switch (evt.getBukkitEvent().getBlockFace()) - { - case DOWN: - throw new McException(Messages.CreateSign_CannotCreateDownFace); - - case EAST: - case EAST_NORTH_EAST: - case EAST_SOUTH_EAST: - target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.EAST); - opposite = (byte) 0x05; - break; - - case NORTH: - case NORTH_EAST: - case NORTH_NORTH_EAST: - case NORTH_NORTH_WEST: - case NORTH_WEST: - target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.NORTH); - opposite = (byte) 0x02; - break; - - case SOUTH: - case SOUTH_EAST: - case SOUTH_SOUTH_EAST: - case SOUTH_SOUTH_WEST: - case SOUTH_WEST: - target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.SOUTH); - opposite = (byte) 0x03; - break; - - case UP: - target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.UP); - double i = ((player.getBukkitPlayer().getLocation().getYaw() + 180.0f) * 16.0f / 360.0f) + 0.5d; - int j = (int) i; - if (i < j) - { - j = j - 1; - } - opposite = (byte) (j & 15); - break; - - case WEST: - case WEST_NORTH_WEST: - case WEST_SOUTH_WEST: - target = evt.getBukkitEvent().getClickedBlock().getRelative(BlockFace.WEST); - opposite = (byte) 0x04; - break; - - case SELF: - default: - throw new McException(Messages.CreateSign_CannotCreateBlocked); - } - - if (!target.isEmpty()) - { - throw new McException(Messages.CreateSign_CannotCreateBlocked); - } - - if (evt.getBukkitEvent().getBlockFace() == BlockFace.UP) - { - target.setType(Material.SIGN_POST); - target.setData(opposite); - } - else - { - target.setType(Material.WALL_SIGN); - target.setData(opposite); - } - - final Sign sign = (Sign) target.getState(); - final ArenaSignHandler result = arena.createSign(sign, type); - result.setName(name); - player.sendMessage(Messages.CreateSign_Created); - if (finish != null) - { - finish.accept(result); - } - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "admintool") - public enum Messages implements LocalizedMessageInterface - { - - // signs - - /** - * Title for create sign - */ - @LocalizedMessage(defaultMessage = "Creating sign") - @MessageComment({"Create sign title"}) - CreateSign_Title, - - /** - * Description for create sign - */ - @LocalizedMessageList({ - "Sign type: " + LocalizedMessage.CODE_COLOR + "%1$s", - "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s", - "Name: " + LocalizedMessage.CODE_COLOR + "%3$s"}) - @MessageComment(value = "Create sign description", args = { - @Argument("sign type name"), - @Argument("arena internal name"), - @Argument("new sign name") - }) - CreateSign_Description, - - /** - * Cannot create sign down face - */ - @LocalizedMessage(defaultMessage = "Cannot create sign below blocks") - @MessageComment({"Cannot create sign down face"}) - CreateSign_CannotCreateDownFace, - - /** - * Cannot create sign because block in way - */ - @LocalizedMessage(defaultMessage = "Cannot replace solid blocks with signs") - @MessageComment({"Cannot create solid blocks with signs"}) - CreateSign_CannotCreateBlocked, - - /** - * Message to advice the user to click the block - */ - @LocalizedMessage(defaultMessage = "Use the Pinion tool and click a block to create the sign") - @MessageComment({"Message to advice the user to click the block"}) - CreateSign_ClickBlock, - - /** - * Sign was created - */ - @LocalizedMessage(defaultMessage = "Sign created", severity = MessageSeverityType.Success) - @MessageComment({"Sign was created"}) - CreateSign_Created, - - // zones - - /** - * Title for create zone - */ - @LocalizedMessage(defaultMessage = "Creating zone") - @MessageComment({"Create zone title"}) - CreateZone_Title, - - /** - * Title for relocating zone - */ - @LocalizedMessage(defaultMessage = "Relocating zone") - @MessageComment({"Relocate zone title"}) - RelocateZone_Title, - - /** - * Description for create zone - */ - @LocalizedMessageList({ - "Zone type: " + LocalizedMessage.CODE_COLOR + "%1$s", - "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s", - "Name: " + LocalizedMessage.CODE_COLOR + "%3$s"}) - @MessageComment(value = "Create zone description", args = { - @Argument("zone type name"), - @Argument("arena internal name"), - @Argument("new zone name") - }) - CreateZone_Description, - - /** - * Description for relocate zone - */ - @LocalizedMessageList({ - "Zone: " + LocalizedMessage.CODE_COLOR + "%1$s", - "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s"}) - @MessageComment(value = "Create zone description", args = { - @Argument("zone name"), - @Argument("arena internal name") - }) - RelocateZone_Description, - - /** - * Message to advice the user to click the block - */ - @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the lower bound of your zone") - @MessageComment({"Message to advice the user to click the block"}) - CreateZone_ClickBlockLower, - - /** - * Message to advice the user to click the block - */ - @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the higher bound of your zone") - @MessageComment({"Message to advice the user to click the block"}) - CreateZone_ClickBlockHigher, - - /** - * Message to advice the user to click the block - */ - @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the new lower bound of your zone") - @MessageComment({"Message to advice the user to click the block"}) - RelocateZone_ClickBlockLower, - - /** - * Message to advice the user to click the block - */ - @LocalizedMessage(defaultMessage = "Use the Pinion tool and click the new higher bound of your zone") - @MessageComment({"Message to advice the user to click the block"}) - RelocateZone_ClickBlockHigher, - - /** - * Zone was created - */ - @LocalizedMessage(defaultMessage = "Zone created", severity = MessageSeverityType.Success) - @MessageComment({"Zone was created"}) - CreateZone_Created, - - /** - * Zone was relocated - */ - @LocalizedMessage(defaultMessage = "Zone relocated", severity = MessageSeverityType.Success) - @MessageComment({"Zone was relocated"}) - RelocateZone_Relocated, - - // components - - /** - * Title for create component - */ - @LocalizedMessage(defaultMessage = "Creating component") - @MessageComment({"Create component title"}) - CreateComponent_Title, - - /** - * Description for create component - */ - @LocalizedMessageList({ - "Component type: " + LocalizedMessage.CODE_COLOR + "%1$s", - "Arena: " + LocalizedMessage.CODE_COLOR + "%2$s", - "Name: " + LocalizedMessage.CODE_COLOR + "%3$s"}) - @MessageComment(value = "Create component description", args = { - @Argument("component type name"), - @Argument("arena internal name"), - @Argument("new component name") - }) - CreateComponent_Description, - - /** - * Message to advice the user to click the block - */ - @LocalizedMessage(defaultMessage = "Use the Pinion tool and click a block to create the component") - @MessageComment({"Message to advice the user to click the block"}) - CreateComponent_ClickBlock, - - /** - * Component was created - */ - @LocalizedMessage(defaultMessage = "Component created", severity = MessageSeverityType.Success) - @MessageComment({"Component was created"}) - CreateComponent_Created, - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java deleted file mode 100644 index 8ee062cc..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/cmd/tool/MarkerToolHelper.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.cmd.tool; - -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.gui.GuiSessionInterface.SGuiMarkerInterface; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.objects.McPlayerInterface; -import de.minigameslib.mclib.api.objects.SignIdInterface; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.objects.ZoneIdInterface; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; -import de.minigameslib.mgapi.impl.cmd.marker.MarkerColorInterface; - -/** - * @author mepeisen - * - */ -public class MarkerToolHelper extends AnnotatedDataFragment -{ - - /** object to colors. */ - private final Map<Object, MarkerColorInterface> objectsToColors = new HashMap<>(); - - /** colors to objects */ - private final Map<MarkerColorInterface, Object> colorsToObjects = new HashMap<>(); - - /** colors to markers */ - private final Map<MarkerColorInterface, SGuiMarkerInterface> colorsToMarkers = new HashMap<>(); - - /** the underlying player */ - private McPlayerInterface player; - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(MarkerToolHelper.class.getName()); - - /** - * @param player - */ - private MarkerToolHelper(McPlayerInterface player) - { - this.player = player; - } - - /** - * Returns helper tool for given player. - * - * @param player - * @return helper tool. - */ - public static MarkerToolHelper instance(McPlayerInterface player) - { - MarkerToolHelper instance = player.getSessionStorage().get(MarkerToolHelper.class); - if (instance == null) - { - instance = new MarkerToolHelper(player); - player.getSessionStorage().set(MarkerToolHelper.class, instance); - } - return instance; - } - - /** - * Clears all markers - */ - public void clearMarkers() - { - this.colorsToMarkers.values().forEach(t -> { - try - { - t.remove(); - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "Error while removing marker", e); //$NON-NLS-1$ - } - }); - this.colorsToMarkers.clear(); - this.colorsToObjects.clear(); - this.objectsToColors.clear(); - } - - /** - * Creates a new marker for given sign and color - * @param sign - * @param color - * @throws McException - */ - public void createMarker(SignInterface sign, MarkerColorInterface color) throws McException - { - this.clearMarker(sign); - this.clearMarker(color); - final SignIdInterface id = sign.getSignId(); - final SGuiMarkerInterface marker = this.player.openSmartGui().sguiShowMarker(sign, color.getR(), color.getG(), color.getB(), color.getAlpha(), color.getTitle()); - this.colorsToMarkers.put(color, marker); - this.colorsToObjects.put(color, id); - this.objectsToColors.put(id, color); - } - - /** - * Creates a new marker for given zone and color - * @param zone - * @param color - * @throws McException - */ - public void createMarker(ZoneInterface zone, MarkerColorInterface color) throws McException - { - this.clearMarker(zone); - this.clearMarker(color); - final ZoneIdInterface id = zone.getZoneId(); - final SGuiMarkerInterface marker = this.player.openSmartGui().sguiShowMarker(zone, color.getR(), color.getG(), color.getB(), color.getAlpha(), color.getTitle()); - this.colorsToMarkers.put(color, marker); - this.colorsToObjects.put(color, id); - this.objectsToColors.put(id, color); - } - - /** - * Creates a new marker for given component and color - * @param component - * @param color - * @throws McException - */ - public void createMarker(ComponentInterface component, MarkerColorInterface color) throws McException - { - this.clearMarker(component); - this.clearMarker(color); - final ComponentIdInterface id = component.getComponentId(); - final SGuiMarkerInterface marker = this.player.openSmartGui().sguiShowMarker(component, color.getR(), color.getG(), color.getB(), color.getAlpha(), color.getTitle()); - this.colorsToMarkers.put(color, marker); - this.colorsToObjects.put(color, id); - this.objectsToColors.put(id, color); - } - - /** - * Returns marker color for given sign - * @param sign - * @return color or {@code null} if no marker is set - */ - public MarkerColorInterface getColor(SignInterface sign) - { - return this.objectsToColors.get(sign.getSignId()); - } - - /** - * Returns marker color for given zone - * @param zone - * @return color or {@code null} if no marker is set - */ - public MarkerColorInterface getColor(ZoneInterface zone) - { - return this.objectsToColors.get(zone.getZoneId()); - } - - /** - * Returns marker color for given component - * @param component - * @return color or {@code null} if no marker is set - */ - public MarkerColorInterface getColor(ComponentInterface component) - { - return this.objectsToColors.get(component.getComponentId()); - } - - /** - * Returns the object id for given color - * @param color - * @return object id or {@code null} if color is not used; instance of {@link SignIdInterface}, {@code ZoneIdInterface} or {@code ComponentIdInterface} - */ - public Object getObjectId(MarkerColorInterface color) - { - return this.colorsToObjects.get(color); - } - - /** - * Clears marker for given color - * @param color - * @throws McException - */ - public void clearMarker(MarkerColorInterface color) throws McException - { - final SGuiMarkerInterface marker = this.colorsToMarkers.remove(color); - if (marker != null) - { - marker.remove(); - this.objectsToColors.remove(this.colorsToObjects.remove(color)); - } - } - - /** - * Clears marker for given sign - * @param sign - * @throws McException - */ - public void clearMarker(SignInterface sign) throws McException - { - final MarkerColorInterface color = this.getColor(sign); - if (color != null) - { - this.clearMarker(color); - } - } - - /** - * Clears marker for given zone - * @param zone - * @throws McException - */ - public void clearMarker(ZoneInterface zone) throws McException - { - final MarkerColorInterface color = this.getColor(zone); - if (color != null) - { - this.clearMarker(color); - } - } - - /** - * Clears marker for given component - * @param component - * @throws McException - */ - public void clearMarker(ComponentInterface component) throws McException - { - final MarkerColorInterface color = this.getColor(component); - if (color != null) - { - this.clearMarker(color); - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java deleted file mode 100644 index 1280a6cf..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManager.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.internal; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.logging.Level; -import java.util.logging.Logger; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.impl.tasks.AsyncTaskInterface; - -/** - * A task manager to queue periodic work tasks. - * - * @author mepeisen - */ -public class TaskManager -{ - - /** concurrent executors. */ - private final ExecutorService executor = Executors.newSingleThreadExecutor(); - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(TaskManager.class.getName()); - - /** - * Returns the task manager instance. - * @return task manager - */ - public static TaskManager instance() - { - return TaskManagerCache.get(); - } - - /** - * Queues a new task to be runned asap. - * @param task - */ - public void queue(AsyncTaskInterface task) - { - this.executor.execute(() -> { - try - { - task.run(); - } - catch (McException ex) - { - LOGGER.log(Level.WARNING, "Caught exception while executing task: " + task, ex); //$NON-NLS-1$ - } - }); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java deleted file mode 100644 index 0d0c7bce..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/internal/TaskManagerCache.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.internal; - -import org.bukkit.Bukkit; - -/** - * Helper to cache the task manager class. - * - * @author mepeisen - */ -class TaskManagerCache -{ - - /** the task manager services. */ - private static TaskManager SERVICES; - - /** - * Returns the task manager instance. - * @return task manager. - */ - static TaskManager get() - { - if (SERVICES == null) - { - SERVICES = Bukkit.getServicesManager().load(TaskManager.class); - } - return SERVICES; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java deleted file mode 100644 index 4c022139..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractBaseArenaObjectHandler.java +++ /dev/null @@ -1,258 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.Collections; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mclib.shared.api.com.MemoryDataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.BaseArenaObjectHandler; -import de.minigameslib.mgapi.api.rules.RuleSetInterface; -import de.minigameslib.mgapi.api.rules.RuleSetType; -import de.minigameslib.mgapi.impl.arena.ArenaImpl.Messages; -import de.minigameslib.mgapi.impl.rules.AbstractRuleSetContainer; - -/** - * base implementation of arena objects - * - * @author mepeisen - * @param <T> rule set type - * @param <Q> rule set interface - * @param <D> rule set data type - */ -public abstract class AbstractBaseArenaObjectHandler< - T extends RuleSetType, - Q extends RuleSetInterface<T>, - D extends AbstractObjectData<T>> extends AbstractRuleSetContainer<T, Q> implements BaseArenaObjectHandler<T, Q> -{ - - /** - * Returns the data class to be used for persistent data. - * @return data class - */ - protected abstract Class<D> getDataClass(); - - /** - * Creates a new empty data value. - * @return data value. - */ - protected abstract D createData(); - - /** - * persistent data - */ - protected D data; - - /** - * the data file to store persistent data - */ - protected File dataFile; - - /** - * the associated arena. - */ - protected ArenaInterface arena; - - /** - * Saves persistent object data - * @throws McException - */ - public void saveData() throws McException - { - final DataSection section = new MemoryDataSection(); - section.set("data", this.data); //$NON-NLS-1$ - try - { - McLibInterface.instance().saveYmlFile(section, this.dataFile); - } - catch (IOException e) - { - throw new McException(CommonMessages.InternalError, e, e.getMessage()); - } - } - - /** - * Loads persistent data - * @throws McException - */ - public void loadData() throws McException - { - try - { - final DataSection section = McLibInterface.instance().readYmlFile(this.dataFile); - this.data = section.getFragment(this.getDataClass(), "data"); //$NON-NLS-1$ - if (this.data == null) - { - this.data = this.createData(); - } - - this.resumeRuleSets(); - } - catch (IOException e) - { - throw new McException(CommonMessages.InternalError, e, e.getMessage()); - } - } - - /** - * Resumes the rule sets after loading the config - * @throws McException - */ - private void resumeRuleSets() throws McException - { - for (final T ruleset : this.data.getFixedRules()) - { - this.applyFixedRuleSet(ruleset); - } - for (final T ruleset : this.data.getOptionalRules()) - { - this.applyOptionalRuleSet(ruleset); - } - } - - @Override - public Collection<T> getAvailableRuleSetTypes() - { - // TODO implement available rule sets - return Collections.emptyList(); - } - - @Override - public boolean isAvailable(T ruleset) - { - // TODO implement available rule sets - return false; - } - - @Override - public void reconfigureRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException - { - for (final T t : rulesets) - { - this.reapplyRuleSet(t); - } - } - - @Override - public void reconfigureRuleSet(T t) throws McException - { - this.reapplyRuleSet(t); - } - - @Override - public void applyRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException - { - for (final T t : rulesets) - { - if (!this.isApplied(t)) - { - this.applyOptionalRuleSet(t); - this.data.getOptionalRules().add(t); - this.saveData(); - } - } - } - - @Override - public void applyRuleSet(T t) throws McException - { - if (!this.isApplied(t)) - { - this.applyOptionalRuleSet(t); - this.data.getOptionalRules().add(t); - this.saveData(); - } - } - - @Override - public void removeRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException - { - for (final T t : rulesets) - { - if (this.isOptional(t)) - { - this.removeOptionalRuleSet(t); - this.data.getOptionalRules().remove(t); - this.saveData(); - } - } - } - - @Override - public void removeRuleSet(T t) throws McException - { - if (this.isOptional(t)) - { - this.removeOptionalRuleSet(t); - this.data.getOptionalRules().remove(t); - this.saveData(); - } - } - - @Override - public String getName() - { - return this.data.getName(); - } - - @Override - public void setName(String newName) throws McException - { - this.checkModifications(); - this.data.setName(newName); - this.saveData(); - } - - @Override - public ArenaInterface getArena() - { - return this.arena; - } - - @Override - public void initArena(ArenaInterface a) throws McException - { - this.arena = a; - this.data = this.createData(); - } - - @Override - protected void checkModifications() throws McException - { - if (this.arena != null && this.arena.getState() != ArenaState.Maintenance) - { - throw new McException(Messages.ModificationWrongState); - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java deleted file mode 100644 index 09be4158..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/AbstractObjectData.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.util.HashSet; -import java.util.Set; - -import de.minigameslib.mclib.shared.api.com.AnnotatedDataFragment; -import de.minigameslib.mclib.shared.api.com.PersistentField; -import de.minigameslib.mgapi.api.rules.RuleSetType; - -/** - * The abstract data fragment to hold persistent object data. - * - * @author mepeisen - * @param <T> - */ -public abstract class AbstractObjectData<T extends RuleSetType> extends AnnotatedDataFragment -{ - - /** - * fixed rule set types. - */ - @PersistentField - protected Set<T> fixedRules = new HashSet<>(); - - /** - * optional rule set types. - */ - @PersistentField - protected Set<T> optionalRules = new HashSet<>(); - - /** - * The object name - */ - @PersistentField - protected String name; - - /** - * @return the fixedRules - */ - public Set<T> getFixedRules() - { - return this.fixedRules; - } - - /** - * @return the optionalRules - */ - public Set<T> getOptionalRules() - { - return this.optionalRules; - } - - /** - * @return the name - */ - public String getName() - { - return this.name; - } - - /** - * @param name the name to set - */ - public void setName(String name) - { - this.name = name; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java deleted file mode 100644 index 3c8166b0..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.BattleZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class BattleZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, BattleZoneData> implements BattleZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<BattleZoneData> getDataClass() - { - return BattleZoneData.class; - } - - @Override - protected BattleZoneData createData() - { - return new BattleZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java deleted file mode 100644 index 9861cff8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/BattleZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class BattleZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java deleted file mode 100644 index ad437415..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponent.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.EmptyComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class EmptyComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, EmptyComponentData> implements EmptyComponentHandler -{ - - /** the underlying component. */ - protected ComponentInterface component; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onResume(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onPause(ComponentInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<EmptyComponentData> getDataClass() - { - return EmptyComponentData.class; - } - - @Override - protected EmptyComponentData createData() - { - return new EmptyComponentData(); - } - - @Override - protected void applyListeners(ComponentRuleSetInterface listeners) - { - this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ComponentRuleSetInterface listeners) - { - this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ComponentInterface getComponent() - { - return this.component; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java deleted file mode 100644 index a8064dad..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyComponentData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; - -/** - * @author mepeisen - * - */ -public class EmptyComponentData extends AbstractObjectData<ComponentRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java deleted file mode 100644 index be27e044..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySign.java +++ /dev/null @@ -1,336 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.EmptySignHandler; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class EmptySign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, EmptySignData> implements EmptySignHandler -{ - - /** the underlying sign. */ - protected SignInterface sign; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - this.updateSign(); - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerJoin(ArenaPlayerJoinedEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeft(ArenaPlayerLeftEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Returns the sign text to set - * @return sign text - */ - protected String[] getLines() - { - // TODO join lines - return new String[]{ - "EMPTY", - this.getArena().getInternalName(), - String.valueOf(System.currentTimeMillis()) - }; - } - - /** - * Set sign text - */ - private void updateSign() - { - final String[] lines = this.getLines(); - for (int i = 0; i < 4; i++) - { - if (i < lines.length) - { - this.sign.setLine(i, lines[i]); - } - else - { - this.sign.setLine(i, ""); //$NON-NLS-1$ - } - } - } - - @Override - public void onCreate(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onResume(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onPause(SignInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<EmptySignData> getDataClass() - { - return EmptySignData.class; - } - - @Override - protected EmptySignData createData() - { - return new EmptySignData(); - } - - @Override - protected void applyListeners(SignRuleSetInterface listeners) - { - this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(SignRuleSetInterface listeners) - { - this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - @Override - public SignInterface getSign() - { - return this.sign; - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java deleted file mode 100644 index fdb5cc6b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptySignData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.SignRuleSetType; - -/** - * @author mepeisen - * - */ -public class EmptySignData extends AbstractObjectData<SignRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java deleted file mode 100644 index c7439630..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.EmptyZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class EmptyZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, EmptyZoneData> implements EmptyZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<EmptyZoneData> getDataClass() - { - return EmptyZoneData.class; - } - - @Override - protected EmptyZoneData createData() - { - return new EmptyZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java deleted file mode 100644 index 90d95dc0..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/EmptyZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class EmptyZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java deleted file mode 100644 index ba164055..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponent.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.GenericComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class GenericComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, GenericComponentData> implements GenericComponentHandler -{ - - /** the underlying component. */ - protected ComponentInterface component; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onResume(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onPause(ComponentInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<GenericComponentData> getDataClass() - { - return GenericComponentData.class; - } - - @Override - protected GenericComponentData createData() - { - return new GenericComponentData(); - } - - @Override - protected void applyListeners(ComponentRuleSetInterface listeners) - { - this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ComponentRuleSetInterface listeners) - { - this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ComponentInterface getComponent() - { - return this.component; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java deleted file mode 100644 index 2e7867e3..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericComponentData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; - -/** - * @author mepeisen - * - */ -public class GenericComponentData extends AbstractObjectData<ComponentRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java deleted file mode 100644 index a5b314e8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSign.java +++ /dev/null @@ -1,336 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.GenericSignHandler; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class GenericSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, GenericSignData> implements GenericSignHandler -{ - - /** the underlying sign. */ - protected SignInterface sign; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - this.updateSign(); - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerJoin(ArenaPlayerJoinedEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeft(ArenaPlayerLeftEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Returns the sign text to set - * @return sign text - */ - protected String[] getLines() - { - // TODO join lines - return new String[]{ - "GENERIC", - this.getArena().getInternalName(), - String.valueOf(System.currentTimeMillis()) - }; - } - - /** - * Set sign text - */ - private void updateSign() - { - final String[] lines = this.getLines(); - for (int i = 0; i < 4; i++) - { - if (i < lines.length) - { - this.sign.setLine(i, lines[i]); - } - else - { - this.sign.setLine(i, ""); //$NON-NLS-1$ - } - } - } - - @Override - public void onCreate(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onResume(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onPause(SignInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<GenericSignData> getDataClass() - { - return GenericSignData.class; - } - - @Override - protected GenericSignData createData() - { - return new GenericSignData(); - } - - @Override - protected void applyListeners(SignRuleSetInterface listeners) - { - this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(SignRuleSetInterface listeners) - { - this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - @Override - public SignInterface getSign() - { - return this.sign; - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java deleted file mode 100644 index 49bd2036..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericSignData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.SignRuleSetType; - -/** - * @author mepeisen - * - */ -public class GenericSignData extends AbstractObjectData<SignRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java deleted file mode 100644 index 921fd97c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.GenericZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class GenericZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, GenericZoneData> implements GenericZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<GenericZoneData> getDataClass() - { - return GenericZoneData.class; - } - - @Override - protected GenericZoneData createData() - { - return new GenericZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java deleted file mode 100644 index 2dde2e84..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/GenericZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class GenericZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java deleted file mode 100644 index 7d8ec2cf..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSign.java +++ /dev/null @@ -1,360 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.event.McListener; -import de.minigameslib.mclib.api.event.McPlayerInteractEvent; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.JoinSignInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class JoinSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, JoinSignData> implements JoinSignInterface, McListener -{ - - // TODO clear out what variables will be shown on signs. - // TODO clear out what events will be caught to update signs - // TODO change the code of other signs as well - - /** the underlying sign. */ - protected SignInterface sign; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - this.updateSign(); - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerJoin(ArenaPlayerJoinedEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeft(ArenaPlayerLeftEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * right click event - * @param evt - */ - @McEventHandler - public void onRightClick(McPlayerInteractEvent evt) - { - try - { - this.arena.join(MinigamesLibInterface.instance().getPlayer(evt.getPlayer())); - } - catch (McException ex) - { - evt.getPlayer().sendMessage(ex.getErrorMessage(), ex.getArgs()); - } - } - - /** - * Returns the sign text to set - * @return sign text - */ - protected String[] getLines() - { - // TODO join lines - return new String[]{ - "JOIN", - this.getArena().getInternalName(), - String.valueOf(System.currentTimeMillis()) - }; - } - - /** - * Set sign text - */ - private void updateSign() - { - final String[] lines = this.getLines(); - for (int i = 0; i < 4; i++) - { - if (i < lines.length) - { - this.sign.setLine(i, lines[i]); - } - else - { - this.sign.setLine(i, ""); //$NON-NLS-1$ - } - } - } - - @Override - public void onCreate(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onResume(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onPause(SignInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<JoinSignData> getDataClass() - { - return JoinSignData.class; - } - - @Override - protected JoinSignData createData() - { - return new JoinSignData(); - } - - @Override - protected void applyListeners(SignRuleSetInterface listeners) - { - this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(SignRuleSetInterface listeners) - { - this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - @Override - public SignInterface getSign() - { - return this.sign; - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java deleted file mode 100644 index c5c6fd3d..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSignData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.SignRuleSetType; - -/** - * @author mepeisen - * - */ -public class JoinSignData extends AbstractObjectData<SignRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java deleted file mode 100644 index 4fde6459..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponent.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.JoinSpawnComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class JoinSpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, JoinSpawnComponentData> implements JoinSpawnComponentHandler -{ - - /** the underlying component. */ - protected ComponentInterface component; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onResume(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onPause(ComponentInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<JoinSpawnComponentData> getDataClass() - { - return JoinSpawnComponentData.class; - } - - @Override - protected JoinSpawnComponentData createData() - { - return new JoinSpawnComponentData(); - } - - @Override - protected void applyListeners(ComponentRuleSetInterface listeners) - { - this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ComponentRuleSetInterface listeners) - { - this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ComponentInterface getComponent() - { - return this.component; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java deleted file mode 100644 index 95ce0cd6..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinSpawnComponentData.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; - -/** - * @author mepeisen - * - */ -public class JoinSpawnComponentData extends AbstractObjectData<ComponentRuleSetType> -{ - - // marker only - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java deleted file mode 100644 index cce219a1..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.JoinZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class JoinZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, JoinZoneData> implements JoinZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<JoinZoneData> getDataClass() - { - return JoinZoneData.class; - } - - @Override - protected JoinZoneData createData() - { - return new JoinZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java deleted file mode 100644 index 7afbbfb3..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/JoinZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class JoinZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java deleted file mode 100644 index b5e53610..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSign.java +++ /dev/null @@ -1,336 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.objects.SignInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedSpectatorsEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftSpectatorsEvent; -import de.minigameslib.mgapi.api.obj.ArenaSignHandler; -import de.minigameslib.mgapi.api.obj.LeaveSignInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetInterface; -import de.minigameslib.mgapi.api.rules.SignRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class LeaveSign extends AbstractBaseArenaObjectHandler<SignRuleSetType, SignRuleSetInterface, LeaveSignData> implements LeaveSignInterface -{ - - /** the underlying sign. */ - protected SignInterface sign; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.sign.getSignId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - this.updateSign(); - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerJoin(ArenaPlayerJoinedEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player joined event - * @param evt - */ - @McEventHandler - public void onPlayerSpecsJoin(ArenaPlayerJoinedSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeft(ArenaPlayerLeftEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Player left event - * @param evt - */ - @McEventHandler - public void onPlayerLeftSpecs(ArenaPlayerLeftSpectatorsEvent evt) - { - if (evt.getArena() == this.getArena()) - { - this.updateSign(); - } - } - - /** - * Returns the sign text to set - * @return sign text - */ - protected String[] getLines() - { - // TODO join lines - return new String[]{ - "LEAVE", - this.getArena().getInternalName(), - String.valueOf(System.currentTimeMillis()) - }; - } - - /** - * Set sign text - */ - private void updateSign() - { - final String[] lines = this.getLines(); - for (int i = 0; i < 4; i++) - { - if (i < lines.length) - { - this.sign.setLine(i, lines[i]); - } - else - { - this.sign.setLine(i, ""); //$NON-NLS-1$ - } - } - } - - @Override - public void onCreate(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onResume(SignInterface c) throws McException - { - this.sign = c; - } - - @Override - public void onPause(SignInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<LeaveSignData> getDataClass() - { - return LeaveSignData.class; - } - - @Override - protected LeaveSignData createData() - { - return new LeaveSignData(); - } - - @Override - protected void applyListeners(SignRuleSetInterface listeners) - { - this.sign.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(SignRuleSetInterface listeners) - { - this.sign.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected SignRuleSetInterface create(SignRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaSignHandler.class, this); - return runnable.get(); - }); - } - - @Override - public SignInterface getSign() - { - return this.sign; - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java deleted file mode 100644 index d435aa36..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveSignData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.SignRuleSetType; - -/** - * @author mepeisen - * - */ -public class LeaveSignData extends AbstractObjectData<SignRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java deleted file mode 100644 index df4eb9bf..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.LeaveZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class LeaveZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, LeaveZoneData> implements LeaveZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<LeaveZoneData> getDataClass() - { - return LeaveZoneData.class; - } - - @Override - protected LeaveZoneData createData() - { - return new LeaveZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java deleted file mode 100644 index 0399dfa1..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LeaveZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class LeaveZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java deleted file mode 100644 index 4fce76ff..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.LobbyZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class LobbyZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, LobbyZoneData> implements LobbyZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<LobbyZoneData> getDataClass() - { - return LobbyZoneData.class; - } - - @Override - protected LobbyZoneData createData() - { - return new LobbyZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java deleted file mode 100644 index 89db3f4d..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/LobbyZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class LobbyZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java deleted file mode 100644 index 35a7dac0..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponent.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.MainLobbySpawnComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class MainLobbySpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, MainLobbySpawnComponentData> implements MainLobbySpawnComponentHandler -{ - - /** the underlying component. */ - protected ComponentInterface component; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onResume(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onPause(ComponentInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<MainLobbySpawnComponentData> getDataClass() - { - return MainLobbySpawnComponentData.class; - } - - @Override - protected MainLobbySpawnComponentData createData() - { - return new MainLobbySpawnComponentData(); - } - - @Override - protected void applyListeners(ComponentRuleSetInterface listeners) - { - this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ComponentRuleSetInterface listeners) - { - this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ComponentInterface getComponent() - { - return this.component; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java deleted file mode 100644 index 46b0e07c..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainLobbySpawnComponentData.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; - -/** - * @author mepeisen - * - */ -public class MainLobbySpawnComponentData extends AbstractObjectData<ComponentRuleSetType> -{ - - // marker only - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java deleted file mode 100644 index 5d3f01c9..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.MainZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class MainZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, MainZoneData> implements MainZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<MainZoneData> getDataClass() - { - return MainZoneData.class; - } - - @Override - protected MainZoneData createData() - { - return new MainZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java deleted file mode 100644 index e265c628..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/MainZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class MainZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java deleted file mode 100644 index bf3de2b5..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponent.java +++ /dev/null @@ -1,274 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.SpawnComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.team.TeamIdType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class SpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, SpawnComponentData> implements SpawnComponentHandler -{ - - /** the underlying component. */ - protected ComponentInterface component; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onResume(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onPause(ComponentInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<SpawnComponentData> getDataClass() - { - return SpawnComponentData.class; - } - - @Override - protected SpawnComponentData createData() - { - return new SpawnComponentData(); - } - - @Override - protected void applyListeners(ComponentRuleSetInterface listeners) - { - this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ComponentRuleSetInterface listeners) - { - this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - @Override - public TeamIdType getTeam() - { - return this.data.team; - } - - @Override - public void setTeam(TeamIdType team) throws McException - { - this.checkModifications(); - this.data.setTeam(team); - this.saveData(); - } - - @Override - public int getOrdering() - { - return this.data.getSpawnOrdering(); - } - - @Override - public void setOrdering(int order) throws McException - { - this.checkModifications(); - this.data.setSpawnOrdering(order); - this.saveData(); - } - - @Override - public ComponentInterface getComponent() - { - return this.component; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java deleted file mode 100644 index 6f90ab52..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpawnComponentData.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mclib.shared.api.com.PersistentField; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * @author mepeisen - * - */ -public class SpawnComponentData extends AbstractObjectData<ComponentRuleSetType> -{ - - /** - * The team this spawn is associated to - */ - @PersistentField - protected TeamIdType team; - - /** - * the spawn ordering to sort multiple spawns - */ - @PersistentField - protected int spawnOrdering; - - /** - * @return the team - */ - public TeamIdType getTeam() - { - return this.team; - } - - /** - * @param team the team to set - */ - public void setTeam(TeamIdType team) - { - this.team = team; - } - - /** - * @return the spawnOrdering - */ - public int getSpawnOrdering() - { - return this.spawnOrdering; - } - - /** - * @param spawnOrdering the spawnOrdering to set - */ - public void setSpawnOrdering(int spawnOrdering) - { - this.spawnOrdering = spawnOrdering; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java deleted file mode 100644 index e28f6452..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponent.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import org.bukkit.Location; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.ComponentInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaComponentHandler; -import de.minigameslib.mgapi.api.obj.SpectatorSpawnComponentHandler; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.team.TeamIdType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class SpectatorSpawnComponent extends AbstractBaseArenaObjectHandler<ComponentRuleSetType, ComponentRuleSetInterface, SpectatorSpawnComponentData> implements SpectatorSpawnComponentHandler -{ - - /** the underlying component. */ - protected ComponentInterface component; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.component.getComponentId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onResume(ComponentInterface c) throws McException - { - this.component = c; - } - - @Override - public void onPause(ComponentInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeLocation(Location newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onLocationChange(Location newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<SpectatorSpawnComponentData> getDataClass() - { - return SpectatorSpawnComponentData.class; - } - - @Override - protected SpectatorSpawnComponentData createData() - { - return new SpectatorSpawnComponentData(); - } - - @Override - protected void applyListeners(ComponentRuleSetInterface listeners) - { - this.component.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ComponentRuleSetInterface listeners) - { - this.component.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ComponentRuleSetInterface create(ComponentRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaComponentHandler.class, this); - return runnable.get(); - }); - } - - @Override - public TeamIdType getTeam() - { - return this.data.team; - } - - @Override - public void setTeam(TeamIdType team) throws McException - { - this.checkModifications(); - this.data.setTeam(team); - this.saveData(); - } - - @Override - public ComponentInterface getComponent() - { - return this.component; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java deleted file mode 100644 index fea4281b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorSpawnComponentData.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mclib.shared.api.com.PersistentField; -import de.minigameslib.mgapi.api.rules.ComponentRuleSetType; -import de.minigameslib.mgapi.api.team.TeamIdType; - -/** - * @author mepeisen - * - */ -public class SpectatorSpawnComponentData extends AbstractObjectData<ComponentRuleSetType> -{ - - /** - * The team this spawn is associated to - */ - @PersistentField - protected TeamIdType team; - - /** - * @return the team - */ - public TeamIdType getTeam() - { - return this.team; - } - - /** - * @param team the team to set - */ - public void setTeam(TeamIdType team) - { - this.team = team; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java deleted file mode 100644 index 63266572..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZone.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import java.io.File; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.objects.Cuboid; -import de.minigameslib.mclib.api.objects.ZoneInterface; -import de.minigameslib.mclib.api.util.function.McRunnable; -import de.minigameslib.mclib.api.util.function.McSupplier; -import de.minigameslib.mclib.shared.api.com.DataSection; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.obj.SpectatorZoneHandler; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * @author mepeisen - * - */ -public class SpectatorZone extends AbstractBaseArenaObjectHandler<ZoneRuleSetType, ZoneRuleSetInterface, SpectatorZoneData> implements SpectatorZoneHandler -{ - - /** the underlying Zone. */ - protected ZoneInterface zone; - - @Override - public void initArena(ArenaInterface a) throws McException - { - super.initArena(a); - this.dataFile = new File(MinigamesPlugin.instance().getDataFolder(), "arenas/" + this.arena.getInternalName() + '/' + this.zone.getZoneId() + ".yml"); //$NON-NLS-1$ //$NON-NLS-2$ - if (this.dataFile.exists()) - { - this.loadData(); - } - else - { - this.saveData(); - } - } - - @Override - public void onCreate(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onResume(ZoneInterface c) throws McException - { - this.zone = c; - } - - @Override - public void onPause(ZoneInterface c) - { - // do nothing - } - - @Override - public void canDelete() throws McException - { - this.checkModifications(); - } - - @Override - public void onDelete() - { - if (this.dataFile.exists()) - { - this.dataFile.delete(); - } - } - - @Override - public void canChangeCuboid(Cuboid newValue) throws McException - { - this.checkModifications(); - } - - @Override - public void onCuboidChange(Cuboid newValue) - { - // do nothing - } - - @Override - public void read(DataSection section) - { - // no additional data in mclib files - } - - @Override - public void write(DataSection section) - { - // no additional data in mclib files - } - - @Override - public boolean test(DataSection section) - { - // no additional data in mclib files - return true; - } - - @Override - protected Class<SpectatorZoneData> getDataClass() - { - return SpectatorZoneData.class; - } - - @Override - protected SpectatorZoneData createData() - { - return new SpectatorZoneData(); - } - - @Override - protected void applyListeners(ZoneRuleSetInterface listeners) - { - this.zone.registerHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected void removeListeners(ZoneRuleSetInterface listeners) - { - this.zone.unregisterHandlers(MinigamesPlugin.instance().getPlugin(), listeners); - } - - @Override - protected ZoneRuleSetInterface create(ZoneRuleSetType ruleset) throws McException - { - return calculateInCopiedContext(() -> { - return MinigamesPlugin.instance().creator(ruleset).apply(ruleset, this); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInNewContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @throws McException - * rethrown from runnable. - */ - void runInCopiedContext(McRunnable runnable) throws McException - { - McLibInterface.instance().runInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - runnable.run(); - }); - } - - /** - * Runs the code in new context; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInNewContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInNewContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - /** - * Runs the code but copies all context variables before; changes made inside the runnable will be undone. - * - * @param runnable - * the runnable to execute. - * @return result from runnable - * @throws McException - * rethrown from runnable. - * @param <T> - * Type of return value - */ - <T> T calculateInCopiedContext(McSupplier<T> runnable) throws McException - { - return McLibInterface.instance().calculateInCopiedContext(() -> { - McLibInterface.instance().setContext(ArenaInterface.class, this.arena); - McLibInterface.instance().setContext(ArenaZoneHandler.class, this); - return runnable.get(); - }); - } - - @Override - public ZoneInterface getZone() - { - return this.zone; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java deleted file mode 100644 index 1fc5d23e..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/obj/SpectatorZoneData.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.obj; - -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class SpectatorZoneData extends AbstractObjectData<ZoneRuleSetType> -{ - // empty -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java deleted file mode 100644 index 2c7dd885..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/AbstractRuleSetContainer.java +++ /dev/null @@ -1,248 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import de.minigameslib.mclib.api.CommonMessages; -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.rules.RuleSetInterface; -import de.minigameslib.mgapi.api.rules.RuleSetType; - -/** - * Abstract base class for rule set container - * - * @author mepeisen - * @param <T> rule set type - * @param <Q> rule set - */ -public abstract class AbstractRuleSetContainer<T extends RuleSetType, Q extends RuleSetInterface<T>> -{ - - /** the applied fixed rule sets that cannot be removed by administrators. */ - private Set<T> fixedRuleSets = new HashSet<>(); - - /** the optional rule set being removable by administrators. */ - private Set<T> optionalRuleSets = new HashSet<>(); - - /** the rule sets applied to this component */ - private Map<T, Q> ruleSets = new HashMap<>(); - - /** - * Checks the object of this container for possible modifications. - * @throws McException thrown if modifications are not allowed. - */ - protected abstract void checkModifications() throws McException; - - /** - * Applies listeners - * @param listeners - */ - protected abstract void applyListeners(Q listeners); - - /** - * Removes listeners - * @param listeners - */ - protected abstract void removeListeners(Q listeners); - - /** - * Creates a ruleset from type - * @param ruleset - * @return rule set impl - * @throws McException thrown if rule set is invalid - */ - protected abstract Q create(T ruleset) throws McException; - - /** - * Returns rule set for given type - * @param type - * @return rule set - */ - public Q getRuleSet(T type) - { - return this.ruleSets.get(type); - } - - /** - * Checks for applied rule set - * @param ruleset - * @return true for applied ruleset - */ - public boolean isApplied(T ruleset) - { - return this.isFixed(ruleset) || this.isOptional(ruleset); - } - - /** - * Gets applied rule set - * @return applied rule set - */ - public Collection<T> getAppliedRuleSetTypes() - { - final List<T> result = new ArrayList<>(this.fixedRuleSets); - result.addAll(this.optionalRuleSets); - return result; - } - - /** - * Checks for fixed rule set - * @param ruleset - * @return fixed rule set - */ - public boolean isFixed(T ruleset) - { - return this.fixedRuleSets.contains(ruleset); - } - - /** - * Checks for optional rule set - * @param ruleset - * @return true if rulset is optional - */ - public boolean isOptional(T ruleset) - { - return this.optionalRuleSets.contains(ruleset); - } - - /** - * Adds fixed rule sets. - * @param rulesets - * @throws McException - */ - public void applyFixedRuleSets(@SuppressWarnings("unchecked") T... rulesets) throws McException - { - for (final T ruleset : rulesets) - { - this.fixedRuleSets.add(ruleset); - } - } - - /** - * Clears all rulesets - * @throws McException - */ - public void clearRuleSets() throws McException - { - for (final T type : this.fixedRuleSets) - { - this.removeFixedRuleSet(type); - } - for (final T type : this.optionalRuleSets) - { - this.removeOptionalRuleSet(type); - } - } - - /** - * Applies new rule set - * @param ruleset - * @return new rule set - * @throws McException - */ - public Q applyFixedRuleSet(T ruleset) throws McException - { - this.checkModifications(); - if (this.isApplied(ruleset)) return this.getRuleSet(ruleset); - final Q result = create(ruleset); - this.fixedRuleSets.add(ruleset); - this.ruleSets.put(ruleset, result); - this.applyListeners(result); - return result; - } - - /** - * Applies new rule set - * @param ruleset - * @return new rule set - * @throws McException - */ - public Q applyOptionalRuleSet(T ruleset) throws McException - { - this.checkModifications(); - if (this.isApplied(ruleset)) return this.getRuleSet(ruleset); - final Q result = create(ruleset); - this.optionalRuleSets.add(ruleset); - this.ruleSets.put(ruleset, result); - this.applyListeners(result); - return result; - } - - /** - * Re-applies given rule set(f.e. after config changes) - * @param ruleset - * @return new rule set - * @throws McException - */ - public Q reapplyRuleSet(T ruleset) throws McException - { - this.checkModifications(); - if (!this.isApplied(ruleset)) throw new McException(CommonMessages.InternalError, "Cannot reconfigure unapplied rule"); //$NON-NLS-1$ - final Q result = create(ruleset); - this.removeListeners(this.ruleSets.get(ruleset)); - this.ruleSets.put(ruleset, result); - this.applyListeners(result); - return result; - } - - /** - * removes optional rule set - * @param ruleset - * @return rule set instance - * @throws McException - */ - public Q removeOptionalRuleSet(T ruleset) throws McException - { - this.checkModifications(); - if (!this.isOptional(ruleset)) return null; - this.optionalRuleSets.remove(ruleset); - final Q result = this.ruleSets.remove(ruleset); - this.removeListeners(result); - return result; - } - - /** - * removes fixed rule set - * @param ruleset - * @return rule set instance - * @throws McException - */ - public Q removeFixedRuleSet(T ruleset) throws McException - { - this.checkModifications(); - if (!this.isFixed(ruleset)) return null; - this.fixedRuleSets.remove(ruleset); - final Q result = this.ruleSets.remove(ruleset); - this.removeListeners(result); - return result; - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java deleted file mode 100644 index bc87b8ef..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatch.java +++ /dev/null @@ -1,386 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import java.util.logging.Level; - -import org.bukkit.scheduler.BukkitTask; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.events.ArenaForceStartRequestedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerJoinedEvent; -import de.minigameslib.mgapi.api.events.ArenaPlayerLeftEvent; -import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; -import de.minigameslib.mgapi.api.rules.AbstractArenaRule; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; -import de.minigameslib.mgapi.api.rules.BasicMatchConfig; -import de.minigameslib.mgapi.api.rules.BasicMatchRuleInterface; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * The implementation of BasicMatch rule set - * - * @see BasicArenaRuleSets#BasicMatch - * - * @author mepeisen - */ -public class BasicMatch extends AbstractArenaRule implements BasicMatchRuleInterface -{ - - /** - * Min players - */ - private int minPlayers; - - /** - * Max players - */ - private int maxPlayers; - - /** - * Lobby countdown in seconds - */ - private int lobbyCountdown; - - /** - * The countdown timer - */ - private int countdownTimer; - - /** - * The countdown task - */ - private BukkitTask countdownTask; - - /** - * @param type - * @param arena - * @throws McException - * thrown if config is invalid - */ - public BasicMatch(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - super(type, arena); - this.runInCopiedContext(() -> { - this.minPlayers = BasicMatchConfig.MinPlayers.getInt(); - this.maxPlayers = BasicMatchConfig.MaxPlayers.getInt(); - this.lobbyCountdown = BasicMatchConfig.LobbyCountdown.getInt(); - }); - if (this.minPlayers <= 0) - { - throw new McException(Messages.InvalidConfigMinPlayers, this.minPlayers); - } - if (this.maxPlayers > 100) // TODO Query from global config (maybe someone likes more than 100 players) - { - throw new McException(Messages.InvalidConfigMaxPlayers, this.maxPlayers); - } - if (this.minPlayers > this.maxPlayers) - { - throw new McException(Messages.InvalidConfigMinMaxPlayers, this.minPlayers, this.maxPlayers); - } - if (this.lobbyCountdown <= 1) - { - throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); - } - if (this.lobbyCountdown > 60) // TODO Query from global config (maybe someone likes more than 60 seconds) - { - throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); - } - } - - @Override - public ArenaRuleSetType getType() - { - return this.type; - } - - @Override - public ArenaInterface getArena() - { - return this.arena; - } - - /** - * Arena state change - * @param evt - */ - @McEventHandler - public void onArenaState(ArenaStateChangedEvent evt) - { - if (evt.getNewState() != ArenaState.Join && this.countdownTask != null) - { - this.countdownTask.cancel(); - this.countdownTask = null; - } - } - - /** - * Invoked once a player tries to join. - * - * @param evt - */ - @McEventHandler - public void onPlayerJoin(ArenaPlayerJoinEvent evt) - { - // check max players - if (this.arena.getPlayerCount() >= this.maxPlayers) - { - evt.setCancelled(Messages.MaxPlayersReached, this.maxPlayers); - } - } - - /** - * Invoked once a player successfully joined the arena - * - * @param evt - */ - @McEventHandler - public void onPlayerJoined(ArenaPlayerJoinedEvent evt) - { - // check min players - if (this.arena.getPlayerCount() >= this.minPlayers && this.countdownTask == null) - { - startCountdown(); - } - } - - /** - * Starts game countdown - */ - private void startCountdown() - { - // start lobby countdown - this.countdownTimer = this.lobbyCountdown - 1; - this.countdownTask = McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onCountdown); - - // notify all players - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownStarted, this.lobbyCountdown)); - } - - /** - * Invoked to force arena start - * - * @param evt - */ - @McEventHandler - public void onForceStart(ArenaForceStartRequestedEvent evt) - { - if (this.countdownTask == null) - { - startCountdown(); - } - } - - /** - * Invoked once a player left. - * - * @param evt - */ - @McEventHandler - public void onPlayerLeft(ArenaPlayerLeftEvent evt) - { - // check min players - if (this.arena.getPlayerCount() < this.minPlayers && this.countdownTask != null) - { - this.countdownTask.cancel(); - this.countdownTask = null; - - // notify all players - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownAborted)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownAborted)); - } - } - - /** - * On lobby countdown - * - * @param task - */ - private void onCountdown(BukkitTask task) - { - if (this.countdownTimer <= 0) - { - this.countdownTask.cancel(); - this.countdownTask = null; - try - { - this.arena.start(); - } - catch (McException e) - { - // should never happen because the countdown gets cancelled before all players are left. - this.arena.getLogger().log(Level.WARNING, "Problems starting arena match", e); //$NON-NLS-1$ - } - } - - if (this.countdownTimer <= 10 || this.countdownTimer % 10 == 0) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownTick, this.countdownTimer)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.CountdownTick, this.countdownTimer)); - } - - this.countdownTimer--; - } - - @Override - public int getMinPlayers() - { - return this.minPlayers; - } - - @Override - public int getMaxPlayers() - { - return this.maxPlayers; - } - - @Override - public int getLobbyCountdown() - { - return this.lobbyCountdown; - } - - @Override - public void setPlayers(int minPlayers, int maxPlayers) throws McException - { - this.arena.checkModifications(); - if (minPlayers <= 0) - { - throw new McException(Messages.InvalidConfigMinPlayers, this.minPlayers); - } - if (maxPlayers > 100) // TODO Query from global config (maybe someone likes more than 100 players) - { - throw new McException(Messages.InvalidConfigMaxPlayers, this.maxPlayers); - } - if (minPlayers > maxPlayers) - { - throw new McException(Messages.InvalidConfigMinMaxPlayers, this.minPlayers, this.maxPlayers); - } - this.runInCopiedContext(() -> { - BasicMatchConfig.MinPlayers.setInt(minPlayers); - BasicMatchConfig.MaxPlayers.setInt(maxPlayers); - }); - this.arena.reconfigureRuleSets(this.type); - } - - @Override - public void setLobbyCountdown(int lobbyCountdown) throws McException - { - this.arena.checkModifications(); - if (lobbyCountdown <= 1) - { - throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); - } - if (lobbyCountdown > 60) // TODO Query from global config (maybe someone likes more than 60 seconds) - { - throw new McException(Messages.InvalidConfigLobbyCountdown, this.lobbyCountdown); - } - this.runInCopiedContext(() -> { - BasicMatchConfig.LobbyCountdown.setInt(lobbyCountdown); - }); - this.arena.reconfigureRuleSets(this.type); - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.rules.BasicMatch") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Max player count reached - */ - @LocalizedMessage(defaultMessage = "You cannot join because there are already %1$d players in arena.", severity = MessageSeverityType.Error) - @MessageComment(value = { "Max player count reached" }, args = { @Argument(type = "Numeric", value = "configured max players.") }) - MaxPlayersReached, - - /** - * Countdown started - */ - @LocalizedMessage(defaultMessage = "Countdown started. Match will start in " + LocalizedMessage.CODE_COLOR + "%1$d " + LocalizedMessage.INFORMATION_COLOR + "seconds.", severity = MessageSeverityType.Information) - @MessageComment(value = { "Lobby countdown started" }, args = { @Argument(type = "Numeric", value = "countdown seconds") }) - CountdownStarted, - - /** - * Countdown tick - */ - @LocalizedMessage(defaultMessage = "Match will start in " + LocalizedMessage.CODE_COLOR + "%1$d " + LocalizedMessage.INFORMATION_COLOR + "seconds.", severity = MessageSeverityType.Information) - @MessageComment(value = { "countdown tick" }, args = { @Argument(type = "Numeric", value = "countdown seconds") }) - CountdownTick, - - /** - * Countdown aborted - */ - @LocalizedMessage(defaultMessage = "Countdown aborted because too many players left the arena.", severity = MessageSeverityType.Error) - @MessageComment(value = { "countdown aborted" }) - CountdownAborted, - - /** - * Invalid config value (min players) - */ - @LocalizedMessage(defaultMessage = "Invalid config value (min players): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) - @MessageComment(value = { "Invalid config value (min players)" }, args = { @Argument(type = "Numeric", value = "min players config value") }) - InvalidConfigMinPlayers, - - /** - * Invalid config value (min players > max players) - */ - @LocalizedMessage(defaultMessage = "Invalid config value (min players > max players): " + LocalizedMessage.CODE_COLOR + "%1$d > %2$d", severity = MessageSeverityType.Information) - @MessageComment(value = { "Invalid config value (min players > max players)" }, args = { @Argument(type = "Numeric", value = "min players config value"), @Argument(type = "Numeric", value = "max players config value") }) - InvalidConfigMinMaxPlayers, - - /** - * Invalid config value (max players) - */ - @LocalizedMessage(defaultMessage = "Invalid config value (max players): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) - @MessageComment(value = { "Invalid config value (max players)" }, args = { @Argument(type = "Numeric", value = "max players config value") }) - InvalidConfigMaxPlayers, - - /** - * Invalid config value (lobby countdown) - */ - @LocalizedMessage(defaultMessage = "Invalid config value (lobby countdown): " + LocalizedMessage.CODE_COLOR + "%1$d", severity = MessageSeverityType.Information) - @MessageComment(value = { "Invalid config value (lobby countdown)" }, args = { @Argument(type = "Numeric", value = "lobby countdown config value") }) - InvalidConfigLobbyCountdown - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java deleted file mode 100644 index be3c2f11..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicMatchTimer.java +++ /dev/null @@ -1,437 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.scheduler.BukkitTask; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.McLibInterface; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; -import de.minigameslib.mclib.api.locale.MessageComment; -import de.minigameslib.mclib.api.locale.MessageSeverityType; -import de.minigameslib.mclib.api.locale.MessageComment.Argument; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; -import de.minigameslib.mgapi.api.rules.AbstractArenaRule; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; -import de.minigameslib.mgapi.api.rules.BasicMatchTimerConfig; -import de.minigameslib.mgapi.api.rules.BasicMatchTimerRuleInterface; -import de.minigameslib.mgapi.impl.MinigamesPlugin; - -/** - * The implementation of BasicMatchTime rule set - * - * @see BasicArenaRuleSets#BasicMatchTimer - * - * @author mepeisen - */ -public class BasicMatchTimer extends AbstractArenaRule implements BasicMatchTimerRuleInterface -{ - - /** - * maximum seconds - */ - private int seconds; - - /** - * the current match duration in millis - */ - private long matchDuration; - - /** - * the current match maxmimum time - */ - private long matchTime; - - /** - * Flag for paused or running timers; {@code true} if timer is paused - */ - private boolean paused; - - /** - * Last start of timer - */ - private LocalDateTime lastStart = LocalDateTime.now(); - - /** - * The timer task - */ - private BukkitTask timerTask; - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(BasicMatchTimer.class.getName()); - - /** {@code true} for warning about 60 seconds left */ - private boolean warn60 = true; - - /** {@code true} for warning about 30 seconds left */ - private boolean warn30 = true; - - /** {@code true} for warning about 20 seconds left */ - private boolean warn20 = true; - - /** {@code true} for warning about 10 seconds left */ - private boolean warn10 = true; - - /** {@code true} for warning about 5 seconds left */ - private boolean warn5 = true; - - /** {@code true} for warning about 4 seconds left */ - private boolean warn4 = true; - - /** {@code true} for warning about 3 seconds left */ - private boolean warn3 = true; - - /** {@code true} for warning about 2 seconds left */ - private boolean warn2 = true; - - /** {@code true} for warning about 1 seconds left */ - private boolean warn1 = true; - - /** - * @param type - * @param arena - * @throws McException thrown if config is invalid - */ - public BasicMatchTimer(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - super(type, arena); - this.runInCopiedContext(() -> { - this.seconds = BasicMatchTimerConfig.MaxSeconds.getInt(); - this.matchTime = this.seconds * 1000L; - }); - } - - @Override - public int getMaxSeconds() - { - return this.seconds; - } - - @Override - public void setMaxSeconds(int seconds) throws McException - { - this.arena.checkModifications(); - this.runInCopiedContext(() -> { - BasicMatchTimerConfig.MaxSeconds.setInt(this.seconds); - }); - this.arena.reconfigureRuleSets(this.type); - } - - @Override - public void pause() - { - if (!this.paused) - { - this.paused = true; - this.matchDuration += this.lastStart.until(LocalDateTime.now(), ChronoUnit.MILLIS); - } - } - - @Override - public void resume() - { - if (this.paused) - { - this.paused = false; - this.lastStart = LocalDateTime.now(); - } - } - - @Override - public void resetAndResume() - { - this.paused = false; - this.lastStart = LocalDateTime.now(); - this.matchDuration = 0; - this.fixWarnings(); - } - - @Override - public void resetAndPause() - { - this.paused = true; - this.matchDuration = 0; - this.fixWarnings(); - } - - @Override - public long getDurationMillis() - { - if (this.paused) - { - return this.matchDuration; - } - return this.matchDuration + this.lastStart.until(LocalDateTime.now(), ChronoUnit.MILLIS); - } - - @Override - public long getMaxMillis() - { - return this.matchTime; - } - - @Override - public void addMaxMillis(long millis) - { - this.matchTime += millis; - if (this.matchTime > 0 && this.timerTask == null) - { - this.startTimer(); - } - this.fixWarnings(); - } - - @Override - public void substractMaxMillis(long millis) - { - this.matchTime -= millis; - if (this.matchTime <= 0) - { - this.stopTimer(); - } - this.fixWarnings(); - } - - @Override - public void setMaxMillis(long millis) - { - this.matchTime = millis; - if (this.matchTime <= 0) - { - this.stopTimer(); - } - this.fixWarnings(); - } - - @Override - public void addDurationMillis(long millis) - { - this.matchDuration += millis; - this.fixWarnings(); - } - - @Override - public void substractDurationMillis(long millis) - { - this.matchDuration -= millis; - this.fixWarnings(); - } - - @Override - public void setDurationMillis(long millis) - { - this.matchDuration = millis; - this.fixWarnings(); - } - - /** - * Arena state change - * @param evt - */ - @McEventHandler - public void onArenaState(ArenaStateChangedEvent evt) - { - if (evt.getNewState() == ArenaState.Match) - { - this.matchTime = this.seconds * 1000L; - this.matchDuration = 0; - this.lastStart = LocalDateTime.now(); - this.paused = false; - if (this.matchTime > 0) - { - this.startTimer(); - } - this.fixWarnings(); - } - else - { - this.stopTimer(); - } - } - - /** - * Starts the bukkit timer task - */ - private void startTimer() - { - if (this.timerTask == null) - { - this.timerTask = McLibInterface.instance().runTaskTimer(MinigamesPlugin.instance().getPlugin(), 20, 20, this::onTimer); - } - } - - /** - * Stops the bukkit timer task - */ - private void stopTimer() - { - if (this.timerTask != null) - { - this.timerTask.cancel(); - this.timerTask = null; - } - } - - /** - * Fixes warnings depending on remaining game time - */ - private void fixWarnings() - { - long delta = this.getMaxMillis() - this.getDurationMillis(); - final int sec = (int) (delta / 1000); - this.warn60 = sec >= 60; - this.warn30 = sec >= 30; - this.warn20 = sec >= 20; - this.warn10 = sec >= 10; - this.warn5 = sec >= 5; - this.warn4 = sec >= 4; - this.warn3 = sec >= 3; - this.warn2 = sec >= 2; - this.warn1 = sec >= 1; - } - - /** - * On timer tick - * - * @param task - */ - private void onTimer(BukkitTask task) - { - if (!this.paused) - { - long delta = this.getMaxMillis() - this.getDurationMillis(); - if (delta <= 0) - { - this.timerTask.cancel(); - this.timerTask = null; - try - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.Abort)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.Abort)); - this.arena.abort(); - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "Unable to abort arena after reaching maximum game time", e); //$NON-NLS-1$ - } - } - else - { - final int sec = (int) (delta / 1000); - if (this.warn60 && sec <= 60) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 60)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 60)); - this.warn60 = false; - } - else if (this.warn30 && sec <= 30) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 30)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 30)); - this.warn30 = false; - } - else if (this.warn20 && sec <= 20) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 20)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 20)); - this.warn20 = false; - } - else if (this.warn10 && sec <= 10) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 10)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 10)); - this.warn10 = false; - } - else if (this.warn5 && sec <= 5) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 5)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 5)); - this.warn5 = false; - } - else if (this.warn4 && sec <= 4) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 4)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 4)); - this.warn4 = false; - } - else if (this.warn3 && sec <= 3) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 3)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 3)); - this.warn3 = false; - } - else if (this.warn2 && sec <= 2) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 2)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 2)); - this.warn2 = false; - } - else if (this.warn1 && sec <= 1) - { - this.arena.getPlayers().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 1)); - this.arena.getSpectators().forEach(p -> p.getMcPlayer().sendMessage(Messages.WarnSeconds, 1)); - this.warn1 = false; - } - } - } - } - - /** - * The common messages. - * - * @author mepeisen - */ - @LocalizedMessages(value = "cmd.rules.BasicMatchTimer") - public enum Messages implements LocalizedMessageInterface - { - - /** - * Warning of match timer - */ - @LocalizedMessage(defaultMessage = "The match is stopping in %1$d seconds because the maximum game time was reached.", severity = MessageSeverityType.Warning) - @MessageComment(value = { "Warning of match timer" }, args = { @Argument(type = "Numeric", value = "Remaining seconds") }) - WarnSeconds, - - /** - * match timer expired - */ - @LocalizedMessage(defaultMessage = "The match is stopping now because the maximum game time was reached.", severity = MessageSeverityType.Loser) - @MessageComment(value = { "match timer expired" }) - Abort, - - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java deleted file mode 100644 index 512052eb..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/BasicSpawns.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Random; -import java.util.UUID; -import java.util.logging.Level; -import java.util.logging.Logger; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.objects.ComponentIdInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.events.ArenaStateChangedEvent; -import de.minigameslib.mgapi.api.obj.BasicComponentTypes; -import de.minigameslib.mgapi.api.rules.AbstractArenaRule; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicArenaRuleSets; -import de.minigameslib.mgapi.api.rules.BasicSpawnsConfig; -import de.minigameslib.mgapi.api.rules.BasicSpawnsConfig.SpawnType; -import de.minigameslib.mgapi.api.rules.BasicSpawnsRuleInterface; - -/** - * The implementation of BasicSpawns rule set - * - * @see BasicArenaRuleSets#BasicSpawns - * - * @author mepeisen - */ -public class BasicSpawns extends AbstractArenaRule implements BasicSpawnsRuleInterface -{ - - /** the spawn type. */ - private SpawnType spawnType; - - /** - * the current spawns - */ - private List<ComponentIdInterface> currentSpawns = new ArrayList<>(); - - /** random number generator. */ - private final Random random = new Random(); - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(BasicSpawns.class.getName()); - - /** - * @param type - * @param arena - * @throws McException thrown if config is invalid - */ - public BasicSpawns(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - super(type, arena); - this.runInCopiedContext(() -> { - this.spawnType = BasicSpawnsConfig.SpawnOption.getEnum(SpawnType.class); - if (this.spawnType == null) - { - this.spawnType = SpawnType.RandomAtStart; - } - }); - } - - @Override - public SpawnType getSpawnType() - { - return this.spawnType; - } - - @Override - public void setSpawnType(SpawnType type) throws McException - { - this.arena.checkModifications(); - this.runInCopiedContext(() -> { - BasicSpawnsConfig.SpawnOption.setEnum(this.spawnType); - }); - this.arena.reconfigureRuleSets(this.type); - } - - /** - * Arena state change - * @param evt - */ - @McEventHandler - public void onArenaState(ArenaStateChangedEvent evt) - { - if (evt.getNewState() == ArenaState.PreMatch) - { - this.shuffleSpawns(); - } - } - - /** - * Shuffle spawns - */ - private void shuffleSpawns() - { - switch (this.spawnType) - { - case Fixed: - this.fillSpawns(); - this.setPlayerSpawns(); - break; - default: - case RandomAtStart: - this.fillShuffledSpawns(); - this.setPlayerSpawns(); - break; - case FullyRandom: - this.fillShuffledSpawns(); - this.setPlayerSpawnsAndReshuffle(); - break; - } - } - - /** - * Sets the players spawns using the current spawns list - */ - private void setPlayerSpawns() - { - int i = 0; - for (final UUID player : this.arena.getCurrentMatch().getPlayers()) - { - try - { - this.arena.getCurrentMatch().selectSpawn(player, this.currentSpawns.get(i)); - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "Unable to select player spawn", e); //$NON-NLS-1$ - } - i++; - if (i >= this.currentSpawns.size()) - { - i = 0; - } - } - } - - /** - * Sets the players spawns using the current spawns list, reshuffle if spawns are exceeded - */ - private void setPlayerSpawnsAndReshuffle() - { - for (final UUID player : this.arena.getCurrentMatch().getPlayers()) - { - try - { - this.arena.getCurrentMatch().selectSpawn(player, this.currentSpawns.remove(0)); - } - catch (McException e) - { - LOGGER.log(Level.WARNING, "Unable to select player spawn", e); //$NON-NLS-1$ - } - if (this.currentSpawns.size() == 0) - { - this.setPlayerSpawnsAndReshuffle(); - } - } - } - - /** - * Fills the spawns in order - */ - private void fillSpawns() - { - this.currentSpawns.clear(); - this.currentSpawns.addAll(this.arena.getComponents(BasicComponentTypes.Spawn)); - } - - /** - * Fills the spawns in order - */ - private void fillShuffledSpawns() - { - this.fillSpawns(); - Collections.shuffle(this.currentSpawns, this.random); - } - - // TODO watch for player die event and re-select a spawn - - // TODO implement spawns for Team mode - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java deleted file mode 100644 index 46ef01ca..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/DieOnLeave.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.mcevent.PlayerLeftZoneEvent; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class DieOnLeave extends AbstractZoneRule -{ - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public DieOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - } - - /** - * Event on player zone leave - * @param evt - * @throws McException - */ - @McEventHandler - public void onLeave(PlayerLeftZoneEvent evt) throws McException - { - if (this.arena.isMatch()) - { - if (this.arena.isPlaying(evt.getPlayer())) - { - MinigamesLibInterface.instance().getPlayer(evt.getPlayer()).die(); - } - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java deleted file mode 100644 index 2f33684b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LastManStanding.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaLoseEvent; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.rules.AbstractArenaRule; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicWinningRuleSets; - -/** - * The implementation of LastManStanding rule set - * - * @see BasicWinningRuleSets#LastManStanding - * - * @author mepeisen - */ -public class LastManStanding extends AbstractArenaRule -{ - - /** - * @param type - * @param arena - * @throws McException thrown if config is invalid - */ - public LastManStanding(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - super(type, arena); - } - - /** - * On player lose. - * @param evt - * @throws McException - */ - @McEventHandler - public void onLose(ArenaLoseEvent evt) throws McException - { - final ArenaMatchInterface match = evt.getArena().getCurrentMatch(); - if (match.getPlayerCount() == 1) - { - match.setWinner(match.getPlayers().iterator().next()); - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java deleted file mode 100644 index 88b127b4..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnDeath.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.events.ArenaPlayerDieEvent; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.rules.AbstractArenaRule; -import de.minigameslib.mgapi.api.rules.ArenaRuleSetType; -import de.minigameslib.mgapi.api.rules.BasicLosingRuleSets; - -/** - * The implementation of LoseOnDeath rule set - * - * @see BasicLosingRuleSets#LoseOnDeath - * - * @author mepeisen - */ -public class LoseOnDeath extends AbstractArenaRule -{ - - /** - * @param type - * @param arena - * @throws McException thrown if config is invalid - */ - public LoseOnDeath(ArenaRuleSetType type, ArenaInterface arena) throws McException - { - super(type, arena); - } - - /** - * On player die. - * @param evt - * @throws McException - */ - @McEventHandler - public void onPlayerDie(ArenaPlayerDieEvent evt) throws McException - { - final ArenaPlayerInterface player = MinigamesLibInterface.instance().getPlayer(evt.getPlayer()); - if (player.isPlaying()) - { - player.lose(); - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java deleted file mode 100644 index 2ef2bc65..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/LoseOnLeave.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.mcevent.PlayerLeftZoneEvent; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class LoseOnLeave extends AbstractZoneRule -{ - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public LoseOnLeave(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - } - - /** - * Event on player zone leave - * @param evt - * @throws McException - */ - @McEventHandler - public void onLeave(PlayerLeftZoneEvent evt) throws McException - { - if (this.arena.isMatch()) - { - if (this.arena.isPlaying(evt.getPlayer())) - { - MinigamesLibInterface.instance().getPlayer(evt.getPlayer()).lose(); - } - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java deleted file mode 100644 index d611fcc8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoMobsTargets.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import org.bukkit.entity.Player; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEntityTargetEvent; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class NoMobsTargets extends AbstractZoneRule -{ - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public NoMobsTargets(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - } - - /** - * Invoked on mob target selection - * @param evt - */ - @McEventHandler - public void onMobTarget(McEntityTargetEvent evt) - { - if (evt.getBukkitEvent().getTarget() instanceof Player) - { - // TODO check for minigames entities - evt.getBukkitEvent().setCancelled(true); - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java deleted file mode 100644 index 294e07ec..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldMobs.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Golem; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Monster; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McCreatureSpawnEvent; -import de.minigameslib.mclib.api.event.McEntityTeleportEvent; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class NoWorldMobs extends AbstractZoneRule -{ - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public NoWorldMobs(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - } - - /** - * Invoked on mob spawn events within this zone - * @param evt - */ - @McEventHandler - public void onMobSpawn(McCreatureSpawnEvent evt) - { - final LivingEntity entity = evt.getBukkitEvent().getEntity(); - if (entity instanceof Monster || entity instanceof Golem) - { - // TODO check for minigames forced spawns - evt.getBukkitEvent().setCancelled(true); - } - } - - /** - * Invoked on mob teleports - * @param evt - */ - @McEventHandler - public void onMobTeleport(McEntityTeleportEvent evt) - { - final Entity entity = evt.getBukkitEvent().getEntity(); - if (entity instanceof Monster || entity instanceof Golem) - { - if (this.zone.getZone().containsLoc(evt.getBukkitEvent().getTo())) - { - // this zone is target zone - // TODO check for minigames forced teleports - evt.getBukkitEvent().setCancelled(true); - } - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java deleted file mode 100644 index eca1fd19..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/NoWorldPets.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import org.bukkit.entity.Animals; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McCreatureSpawnEvent; -import de.minigameslib.mclib.api.event.McEntityTeleportEvent; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class NoWorldPets extends AbstractZoneRule -{ - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public NoWorldPets(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - } - - /** - * Invoked on admin spawn events within this zone - * @param evt - */ - @McEventHandler - public void onPetSpawn(McCreatureSpawnEvent evt) - { - final LivingEntity entity = evt.getBukkitEvent().getEntity(); - if (entity instanceof Animals) - { - // TODO check for minigames forced spawns - evt.getBukkitEvent().setCancelled(true); - } - } - - /** - * Invoked on animal teleports - * @param evt - */ - @McEventHandler - public void onPetTeleport(McEntityTeleportEvent evt) - { - final Entity entity = evt.getBukkitEvent().getEntity(); - if (entity instanceof Animals) - { - if (this.zone.getZone().containsLoc(evt.getBukkitEvent().getTo())) - { - // this zone is target zone - // TODO check for minigames forced teleports - evt.getBukkitEvent().setCancelled(true); - } - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java deleted file mode 100644 index cf88d1a5..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PlayerNoEntry.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class PlayerNoEntry extends AbstractZoneRule -{ - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public PlayerNoEntry(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - } - - // TODO implement player no entry rule - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java deleted file mode 100644 index 613e1004..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/rules/PvPMode.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.rules; - -import org.bukkit.entity.Player; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.event.McEntityDamageByEntityEvent; -import de.minigameslib.mclib.api.event.McEventHandler; -import de.minigameslib.mclib.api.objects.ObjectServiceInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.obj.ArenaZoneHandler; -import de.minigameslib.mgapi.api.rules.AbstractZoneRule; -import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig; -import de.minigameslib.mgapi.api.rules.BasicPvpModeConfig.PvpModes; -import de.minigameslib.mgapi.api.rules.PvPModeRuleInterface; -import de.minigameslib.mgapi.api.rules.ZoneRuleSetType; - -/** - * @author mepeisen - * - */ -public class PvPMode extends AbstractZoneRule implements PvPModeRuleInterface -{ - - /** - * the current pvp mode. - */ - private PvpModes mode; - - /** - * @param type - * @param zone - * @throws McException thrown if config is invalid - */ - public PvPMode(ZoneRuleSetType type, ArenaZoneHandler zone) throws McException - { - super(type, zone); - this.runInCopiedContext(() -> { - this.mode = BasicPvpModeConfig.PvpOption.getEnum(PvpModes.class); - if (this.mode == null) - { - this.mode = PvpModes.NoPvp; - } - }); - } - - @Override - public ZoneRuleSetType getType() - { - return this.type; - } - - @Override - public PvpModes getPvpMode() - { - return this.mode; - } - - @Override - public void setPvpMode(PvpModes mode) throws McException - { - this.arena.checkModifications(); - this.runInCopiedContext(() -> { - BasicPvpModeConfig.PvpOption.setEnum(mode); - }); - this.zone.reconfigureRuleSets(this.type); - } - - /** - * Player dmg event - * @param evt - */ - @McEventHandler - public void onPlayerDmg(McEntityDamageByEntityEvent evt) - { - if (evt.getPlayer() != null && evt.getBukkitEvent().getDamager() instanceof Player) - { - final Player damager = (Player) evt.getBukkitEvent().getDamager(); - if (!ObjectServiceInterface.instance().isHuman(damager)) - { - switch (this.mode) - { - default: - case NoPvp: - evt.getBukkitEvent().setCancelled(true); - break; - case Normal: - // allow everything - break; - case PvpDuringMatch: - if (this.arena.getState() != ArenaState.Match) - { - evt.getBukkitEvent().setCancelled(true); - } - break; - } - } - } - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java deleted file mode 100644 index da06d075..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AbstractAsyncArenaTask.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.tasks; - -import de.minigameslib.mgapi.impl.arena.ArenaImpl; - -/** - * A task to check and start a arena. - * - * @author mepeisen - */ -public abstract class AbstractAsyncArenaTask implements AsyncTaskInterface -{ - - /** the arena */ - protected ArenaImpl arena; - - /** - * @param arenaImpl - */ - public AbstractAsyncArenaTask(ArenaImpl arenaImpl) - { - this.arena = arenaImpl; - } - - @Override - public String toString() - { - return this.getClass().getSimpleName() + " [arena=" + this.arena.getInternalName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java deleted file mode 100644 index b261593e..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRecoverCrashTask.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.tasks; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.internal.TaskManager; - -/** - * A task to check and start a arena. - * - * @author mepeisen - */ -public class AsyncArenaRecoverCrashTask extends AbstractAsyncArenaTask -{ - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(AsyncArenaRecoverCrashTask.class.getName()); - - /** - * @param arenaImpl - */ - public AsyncArenaRecoverCrashTask(ArenaImpl arenaImpl) - { - super(arenaImpl); - } - - @Override - public void run() throws McException - { - LOGGER.log(Level.INFO, "loading crashed arena " + this.arena.getInternalName()); //$NON-NLS-1$ - if (this.arena.getState() == ArenaState.Booting) - { - this.arena.resume(); - } - - // TODO do some crash recovery - - TaskManager.instance().queue(new AsyncArenaStartTask(this.arena)); - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java deleted file mode 100644 index 5dd4009e..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaRestartTask.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.tasks; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; - -/** - * A task to check and start a arena. - * - * @author mepeisen - */ -public class AsyncArenaRestartTask extends AbstractAsyncArenaTask -{ - - /** - * @param arenaImpl - */ - public AsyncArenaRestartTask(ArenaImpl arenaImpl) - { - super(arenaImpl); - } - - @Override - public void run() throws McException - { - if (this.arena.isDisabled()) - { - this.arena.setDisabled0(); - } - else if (this.arena.isMaintenance()) - { - this.arena.setMaintenance0(); - } - else - { - this.arena.setJoin0(); - } - // TODO invoke state change event in bukkit - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java deleted file mode 100644 index b7484e0b..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncArenaStartTask.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.tasks; - -import java.util.Collection; -import java.util.logging.Level; -import java.util.logging.Logger; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.api.arena.CheckFailure; -import de.minigameslib.mgapi.api.arena.CheckSeverity; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; - -/** - * A task to check and start a arena. - * - * @author mepeisen - */ -public class AsyncArenaStartTask extends AbstractAsyncArenaTask -{ - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(AsyncArenaStartTask.class.getName()); - - /** - * Constructor - * @param arenaImpl - */ - public AsyncArenaStartTask(ArenaImpl arenaImpl) - { - super(arenaImpl); - } - - @Override - public void run() throws McException - { - if (this.arena.getState() == ArenaState.Booting) - { - LOGGER.log(Level.INFO, "loading arena " + this.arena.getInternalName()); //$NON-NLS-1$ - this.arena.resume(); - } - - LOGGER.log(Level.INFO, "arena " + this.arena.getInternalName() + " config loaded."); //$NON-NLS-1$ //$NON-NLS-2$ - - if (this.arena.getState() == ArenaState.Starting) - { - LOGGER.log(Level.INFO, "checking arena " + this.arena.getInternalName() + " for errors..."); //$NON-NLS-1$ //$NON-NLS-2$ - - final Collection<CheckFailure> checks = this.arena.check(); - if (!checks.isEmpty()) - { - final StringBuilder builder = new StringBuilder(); - boolean hadError = false; - builder.append("arena ").append(this.arena.getInternalName()).append(" maybe broken. Got followng results:\n"); //$NON-NLS-1$ //$NON-NLS-2$ - for (final CheckFailure failure : checks) - { - builder.append("--> ").append(failure.getSeverity()).append(": ").append(failure.getTitle()).append("\n").append(failure.getDetails()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - hadError |= failure.getSeverity() == CheckSeverity.Error; - } - LOGGER.log(Level.WARNING, builder.toString()); - if (hadError) - { - LOGGER.log(Level.WARNING, "disabling arena " + this.arena.getInternalName() + " caused by errors."); //$NON-NLS-1$ //$NON-NLS-2$ - this.arena.setDisabled0(); - } - } - } - - LOGGER.log(Level.INFO, "arena " + this.arena.getInternalName() + " loaded. State: " + this.arena.getState()); //$NON-NLS-1$ //$NON-NLS-2$ - } - -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java deleted file mode 100644 index 0c88f2ba..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/AsyncTaskInterface.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.tasks; - -import de.minigameslib.mclib.api.util.function.McRunnable; - -/** - * An interface marker for executing asynchronous tasks. - * - * @author mepeisen - */ -public interface AsyncTaskInterface extends McRunnable -{ - // marker only -} diff --git a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java b/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java deleted file mode 100644 index 8c972db8..00000000 --- a/v2/plugin/src/main/java/de/minigameslib/mgapi/impl/tasks/InitTask.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.tasks; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.bukkit.scheduler.BukkitRunnable; - -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.arena.ArenaState; -import de.minigameslib.mgapi.impl.arena.ArenaImpl; -import de.minigameslib.mgapi.impl.internal.TaskManager; - -/** - * Initialization task for minigames. - * - * @author mepeisen - */ -public class InitTask extends BukkitRunnable -{ - - /** logger. */ - private static final Logger LOGGER = Logger.getLogger(InitTask.class.getName()); - - @Override - public void run() - { - for (final ArenaInterface arena : MinigamesLibInterface.instance().getArenas(0, Integer.MAX_VALUE)) - { - LOGGER.log(Level.INFO, "initializing arena " + arena.getInternalName()); //$NON-NLS-1$ - if (arena.getState() == ArenaState.Booting) - { - final ArenaImpl impl = (ArenaImpl) arena; - if (impl.isMatchPending()) - { - LOGGER.log(Level.INFO, "trying crash recovery of arena " + arena.getInternalName()); //$NON-NLS-1$ - TaskManager.instance().queue(new AsyncArenaRecoverCrashTask((ArenaImpl) arena)); - } - else - { - LOGGER.log(Level.INFO, "trying to start arena " + arena.getInternalName()); //$NON-NLS-1$ - TaskManager.instance().queue(new AsyncArenaStartTask((ArenaImpl) arena)); - } - } - else - { - LOGGER.log(Level.WARNING, "Wrong arena state. Expected booting for arena " + arena.getInternalName()); //$NON-NLS-1$ - } - } - } - -} diff --git a/v2/plugin/src/main/resources/plugin.yml b/v2/plugin/src/main/resources/plugin.yml deleted file mode 100644 index cf96caca..00000000 --- a/v2/plugin/src/main/resources/plugin.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: MinigamesLib -main: de.minigameslib.mgapi.impl.MinigamesPlugin -version: ${minigames.releaseversion}-${minigames.timestamp} -author: [InstanceLabs, MysticCity, MasteroftheHell, TheMrQuake, mepeisen] -softdepend: [Vault] -depend: [mclib] -commands: - mg2: - description: Main command for minigames lib version 2 - usage: /mg2 [action] diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java deleted file mode 100644 index 4566ca85..00000000 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaImplTest.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.test; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import de.minigameslib.mclib.spigottest.SpigotInject; -import de.minigameslib.mclib.spigottest.SpigotJunit4Runner; -import de.minigameslib.mclib.spigottest.SpigotServer; -import de.minigameslib.mclib.spigottest.SpigotTest; - -/** - * Test case for arena impl. - * - * @author mepeisen - */ -@RunWith(SpigotJunit4Runner.class) -@SpigotTest(all = true) -public class ArenaImplTest -{ - - /** - * the spigot server. - */ - @SpigotInject - private SpigotServer server; - - /** - * Loads the test plugin. - */ - @Before - public void loadPlugin() - { - // TODO assertTrue(this.server.loadTestPlugin("JUNIT", TestPlugin.class)); //$NON-NLS-1$ - } - - /** - * Tests constructor to create new arenas - */ - @Test - public void testConstructorNew() - { - // TODO test case - } - -} diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java deleted file mode 100644 index 5f41df18..00000000 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/ArenaMatchImplTest.java +++ /dev/null @@ -1,1524 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; -import java.util.Locale; -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.Server; -import org.bukkit.plugin.PluginManager; -import org.junit.Before; -import org.junit.Test; -import org.powermock.reflect.Whitebox; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.locale.LocalizedConfigString; -import de.minigameslib.mgapi.api.MinigamesLibInterface; -import de.minigameslib.mgapi.api.arena.ArenaInterface; -import de.minigameslib.mgapi.api.match.ArenaMatchInterface; -import de.minigameslib.mgapi.api.match.MatchStatisticId; -import de.minigameslib.mgapi.api.player.ArenaPlayerInterface; -import de.minigameslib.mgapi.api.team.CommonTeams; -import de.minigameslib.mgapi.api.team.TeamIdType; -import de.minigameslib.mgapi.impl.arena.ArenaMatchImpl; - -/** - * Test case for {@link ArenaMatchImpl} - * - * @author mepeisen - */ -public class ArenaMatchImplTest -{ - - /** plugin manager mock. */ - private PluginManager pluginManager; - - /** - * Tests constructor defaults - */ - @Test - public void testConstructorDefaults() - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - assertFalse(spmatch.isTeamMatch()); - - assertFalse(spmatch.isAborted()); - assertNotNull(spmatch.get(CommonTeams.Unknown)); - assertNotNull(spmatch.get(CommonTeams.Winners)); - assertNotNull(spmatch.get(CommonTeams.Losers)); - assertNotNull(spmatch.get(CommonTeams.Spectators)); - assertNotNull(spmatch.getCreated()); - assertNull(spmatch.getStarted()); - assertNull(spmatch.getFinished()); - assertNull(spmatch.getPreferredTeam()); - assertEquals(0, spmatch.getParticipants(false).size()); - assertEquals(0, spmatch.getParticipants(true).size()); - assertEquals(0, spmatch.getParticipantCount(false)); - assertEquals(0, spmatch.getParticipantCount(true)); - assertEquals(0, spmatch.getWinners().size()); - assertEquals(0, spmatch.getLosers().size()); - assertEquals(0, spmatch.getResults().size()); - assertEquals(0, spmatch.getResultCount()); - assertEquals(0, spmatch.get(CommonTeams.Unknown).getMembers().size()); - assertEquals(0, spmatch.get(CommonTeams.Winners).getMembers().size()); - assertEquals(0, spmatch.get(CommonTeams.Losers).getMembers().size()); - assertEquals(0, spmatch.get(CommonTeams.Spectators).getMembers().size()); - - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); - assertTrue(teamMatch.isTeamMatch()); - - assertFalse(teamMatch.isAborted()); - assertNotNull(teamMatch.get(CommonTeams.Unknown)); - assertNotNull(teamMatch.get(CommonTeams.Winners)); - assertNotNull(teamMatch.get(CommonTeams.Losers)); - assertNotNull(teamMatch.get(CommonTeams.Spectators)); - assertNotNull(teamMatch.getCreated()); - assertNull(teamMatch.getStarted()); - assertNull(teamMatch.getFinished()); - assertNull(teamMatch.getPreferredTeam()); - assertEquals(0, teamMatch.getParticipants(false).size()); - assertEquals(0, teamMatch.getParticipants(true).size()); - assertEquals(0, teamMatch.getParticipantCount(false)); - assertEquals(0, teamMatch.getParticipantCount(true)); - assertEquals(0, teamMatch.getWinners().size()); - assertEquals(0, teamMatch.getLosers().size()); - assertEquals(0, teamMatch.getResults().size()); - assertEquals(0, teamMatch.getResultCount()); - assertEquals(0, teamMatch.get(CommonTeams.Unknown).getMembers().size()); - assertEquals(0, teamMatch.get(CommonTeams.Winners).getMembers().size()); - assertEquals(0, teamMatch.get(CommonTeams.Losers).getMembers().size()); - assertEquals(0, teamMatch.get(CommonTeams.Spectators).getMembers().size()); - } - - /** - * Tests the match date filling - * @throws McException - */ - @Test - public void testMatchFinishDates() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - spmatch.start(); - sleep(50); - - spmatch.finish(); - assertNotNull(spmatch.getStarted()); - assertNotNull(spmatch.getFinished()); - assertFalse(spmatch.isAborted()); - final long units = spmatch.getStarted().until(spmatch.getFinished(), ChronoUnit.NANOS); - assertTrue(0 < units); - } - - /** - * Tests the match date filling - * @throws McException - */ - @Test - public void testMatchAbortedDates() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - spmatch.start(); - sleep(50); - - spmatch.abort(); - assertNotNull(spmatch.getStarted()); - assertNotNull(spmatch.getFinished()); - assertTrue(spmatch.isAborted()); - final long units = spmatch.getStarted().until(spmatch.getFinished(), ChronoUnit.NANOS); - assertTrue(0 < units); - } - - /** - * Tests the team creation - * @throws McException - */ - @Test - public void testTeamCreation() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); - assertEquals(0, teamMatch.getTeams().size()); - - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.getOrCreate(CommonTeams.Black); - assertEquals(2, teamMatch.getTeams().size()); - - assertTrue(teamMatch.getTeams().contains(CommonTeams.Aqua)); - assertTrue(teamMatch.getTeams().contains(CommonTeams.Black)); - } - - /** - * Tests the getTeam method - * @throws McException - */ - @Test - public void testGetTeam() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.getOrCreate(CommonTeams.Black); - - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - final ArenaPlayerInterface player3 = this.createPlayer(); - final ArenaPlayerInterface player4 = this.createPlayer(); - - assertNull(teamMatch.getTeam(player1.getPlayerUUID())); - assertNull(teamMatch.getTeam(player2.getPlayerUUID())); - assertNull(teamMatch.getTeam(player3.getPlayerUUID())); - assertNull(teamMatch.getTeam(player4.getPlayerUUID())); - - teamMatch.join(player1, CommonTeams.Aqua); - assertEquals(CommonTeams.Aqua, teamMatch.getTeam(player1.getPlayerUUID())); - - teamMatch.join(player2, CommonTeams.Black); - assertEquals(CommonTeams.Black, teamMatch.getTeam(player2.getPlayerUUID())); - - teamMatch.join(player3, CommonTeams.Black); - assertEquals(CommonTeams.Black, teamMatch.getTeam(player3.getPlayerUUID())); - - teamMatch.join(player3, CommonTeams.Blue); - assertEquals(CommonTeams.Blue, teamMatch.getTeam(player3.getPlayerUUID())); - - teamMatch.join(player4, CommonTeams.Aqua); - assertEquals(CommonTeams.Aqua, teamMatch.getTeam(player4.getPlayerUUID())); - - } - - /** - * Tests the getPreferredTeam method - * @throws McException - */ - @Test - public void testGetPreferredTeam() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.getOrCreate(CommonTeams.Black); - - TeamIdType team = teamMatch.getPreferredTeam(); - assertTrue(team == CommonTeams.Aqua || team == CommonTeams.Black); - - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - final ArenaPlayerInterface player3 = this.createPlayer(); - final ArenaPlayerInterface player4 = this.createPlayer(); - - teamMatch.join(player1, CommonTeams.Aqua); - team = teamMatch.getPreferredTeam(); - assertTrue(team == CommonTeams.Black); - - teamMatch.join(player2, CommonTeams.Black); - team = teamMatch.getPreferredTeam(); - assertTrue(team == CommonTeams.Aqua || team == CommonTeams.Black); - - teamMatch.join(player3, CommonTeams.Black); - team = teamMatch.getPreferredTeam(); - assertTrue(team == CommonTeams.Aqua); - - teamMatch.join(player3, CommonTeams.Blue); - team = teamMatch.getPreferredTeam(); - assertTrue(team == CommonTeams.Aqua || team == CommonTeams.Blue); - - teamMatch.join(player4, CommonTeams.Aqua); - team = teamMatch.getPreferredTeam(); - assertTrue(team == CommonTeams.Blue); - } - - /** - * Tests the getTeam method - * @throws McException - */ - @Test - public void testGetTeamMembers() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.getOrCreate(CommonTeams.Black); - assertEquals(0, teamMatch.getTeamMembers(CommonTeams.Aqua).size()); - assertEquals(0, teamMatch.getTeamMembers(CommonTeams.Black).size()); - assertEquals(0, teamMatch.getTeamMembers(CommonTeams.Blue).size()); - - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - final ArenaPlayerInterface player3 = this.createPlayer(); - - teamMatch.join(player1, CommonTeams.Aqua); - teamMatch.join(player2, CommonTeams.Black); - teamMatch.join(player3, CommonTeams.Black); - teamMatch.join(player3, CommonTeams.Blue); - - // blue was created on demand, we have 3 teams - assertEquals(3, teamMatch.getTeams().size()); - assertTrue(teamMatch.getTeams().contains(CommonTeams.Aqua)); - assertTrue(teamMatch.getTeams().contains(CommonTeams.Black)); - assertTrue(teamMatch.getTeams().contains(CommonTeams.Blue)); - - assertEquals(1, teamMatch.get(CommonTeams.Aqua).getMembers().size()); - assertTrue(teamMatch.get(CommonTeams.Aqua).getMembers().contains(player1.getPlayerUUID())); - assertEquals(2, teamMatch.get(CommonTeams.Black).getMembers().size()); - assertTrue(teamMatch.get(CommonTeams.Black).getMembers().contains(player2.getPlayerUUID())); - assertTrue(teamMatch.get(CommonTeams.Black).getMembers().contains(player3.getPlayerUUID())); - assertEquals(1, teamMatch.get(CommonTeams.Blue).getMembers().size()); - assertTrue(teamMatch.get(CommonTeams.Blue).getMembers().contains(player3.getPlayerUUID())); - - assertEquals(1, teamMatch.getTeamMembers(CommonTeams.Aqua).size()); - assertTrue(teamMatch.getTeamMembers(CommonTeams.Aqua).contains(player1.getPlayerUUID())); - assertEquals(2, teamMatch.getTeamMembers(CommonTeams.Black).size()); - assertTrue(teamMatch.getTeamMembers(CommonTeams.Black).contains(player2.getPlayerUUID())); - assertTrue(teamMatch.getTeamMembers(CommonTeams.Black).contains(player3.getPlayerUUID())); - assertEquals(1, teamMatch.getTeamMembers(CommonTeams.Blue).size()); - assertTrue(teamMatch.getTeamMembers(CommonTeams.Blue).contains(player3.getPlayerUUID())); - - assertEquals(CommonTeams.Aqua, teamMatch.get(player1.getPlayerUUID()).getTeam()); - assertEquals(CommonTeams.Black, teamMatch.get(player2.getPlayerUUID()).getTeam()); - assertEquals(CommonTeams.Blue, teamMatch.get(player3.getPlayerUUID()).getTeam()); - } - - /** - * Tests the spectate method - * @throws McException - */ - @Test - public void testSpectate() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - spmatch.start(); - sleep(50); - - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - spmatch.join(player1, CommonTeams.Unknown); - - sleep(50); - spmatch.spectate(player1); - spmatch.spectate(player2); - - assertFalse(spmatch.get(player1.getPlayerUUID()).isPlaying()); - assertFalse(spmatch.get(player2.getPlayerUUID()).isPlaying()); - assertTrue(spmatch.get(player1.getPlayerUUID()).isSpec()); - assertTrue(spmatch.get(player2.getPlayerUUID()).isSpec()); - assertEquals(CommonTeams.Unknown, spmatch.getTeam(player1.getPlayerUUID())); - assertEquals(CommonTeams.Spectators, spmatch.getTeam(player2.getPlayerUUID())); - - assertEquals(1, spmatch.getTeamMembers(CommonTeams.Unknown).size()); - assertTrue(spmatch.getTeamMembers(CommonTeams.Unknown).contains(player1.getPlayerUUID())); - - assertTrue(50 <= spmatch.getPlayTime(player1.getPlayerUUID())); - assertEquals(0, spmatch.getPlayTime(player2.getPlayerUUID())); - - assertEquals(2, spmatch.getTeamMembers(CommonTeams.Spectators).size()); - assertTrue(spmatch.getTeamMembers(CommonTeams.Spectators).contains(player1.getPlayerUUID())); - assertTrue(spmatch.getTeamMembers(CommonTeams.Spectators).contains(player2.getPlayerUUID())); - } - - /** - * tests winners and losers - * @throws McException - */ - @Test - public void testWinningAndLosing() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - spmatch.start(); - final ArenaPlayerInterface winner1 = this.createPlayer(); - final ArenaPlayerInterface winner2a = this.createPlayer(); - final ArenaPlayerInterface winner2b = this.createPlayer(); - final ArenaPlayerInterface winner3 = this.createPlayer(); - final ArenaPlayerInterface loser4 = this.createPlayer(); - final ArenaPlayerInterface loser5a = this.createPlayer(); - final ArenaPlayerInterface loser5b = this.createPlayer(); - final ArenaPlayerInterface loser6 = this.createPlayer(); - final ArenaPlayerInterface loser7a = this.createPlayer(); - final ArenaPlayerInterface loser7b = this.createPlayer(); - spmatch.join(winner1, CommonTeams.Unknown); - spmatch.join(winner2a, CommonTeams.Unknown); - spmatch.join(winner2b, CommonTeams.Unknown); - spmatch.join(winner3, CommonTeams.Unknown); - spmatch.join(loser4, CommonTeams.Unknown); - spmatch.join(loser5a, CommonTeams.Unknown); - spmatch.join(loser5b, CommonTeams.Unknown); - spmatch.join(loser6, CommonTeams.Unknown); - spmatch.join(loser7a, CommonTeams.Unknown); - spmatch.join(loser7b, CommonTeams.Unknown); - - // let the players win or lose - spmatch.setWinner(winner1.getPlayerUUID()); - spmatch.setLoser(loser7a.getPlayerUUID(), loser7b.getPlayerUUID()); - spmatch.setWinner(winner2a.getPlayerUUID(), winner2b.getPlayerUUID()); - spmatch.setLoser(loser6.getPlayerUUID()); - spmatch.setLoser(loser5a.getPlayerUUID(), loser5b.getPlayerUUID()); - spmatch.setWinner(winner3.getPlayerUUID()); - spmatch.setLoser(loser4.getPlayerUUID()); - - // dummy method invocation - spmatch.setWinner(new UUID[0]); - spmatch.setWinner((UUID[]) null); - spmatch.setLoser(new UUID[0]); - spmatch.setLoser((UUID[]) null); - // TODO following two lines should work (marking non playing players as winner/losers should be silently ignored)... -// spmatch.setWinner(UUID.randomUUID()); -// spmatch.setLoser(UUID.randomUUID()); - // TODO check with players only being a spectator - - // check results - assertEquals(7, spmatch.getResultCount()); - assertEquals(7, spmatch.getResults().size()); - - ArenaMatchInterface.MatchResult result = spmatch.getResult(1); - assertTrue(result.isWin()); - assertEquals(1, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(winner1.getPlayerUUID())); - - result = spmatch.getResult(2); - assertTrue(result.isWin()); - assertEquals(2, result.getPlace()); - assertEquals(2, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(winner2a.getPlayerUUID())); - assertTrue(result.getPlayers().contains(winner2b.getPlayerUUID())); - - result = spmatch.getResult(3); - assertTrue(result.isWin()); - assertEquals(3, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(winner3.getPlayerUUID())); - - result = spmatch.getResult(4); - assertFalse(result.isWin()); - assertEquals(4, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser4.getPlayerUUID())); - - result = spmatch.getResult(5); - assertFalse(result.isWin()); - assertEquals(5, result.getPlace()); - assertEquals(2, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser5a.getPlayerUUID())); - assertTrue(result.getPlayers().contains(loser5b.getPlayerUUID())); - - result = spmatch.getResult(6); - assertFalse(result.isWin()); - assertEquals(6, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser6.getPlayerUUID())); - - result = spmatch.getResult(7); - assertFalse(result.isWin()); - assertEquals(7, result.getPlace()); - assertEquals(2, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser7a.getPlayerUUID())); - assertTrue(result.getPlayers().contains(loser7b.getPlayerUUID())); - - assertNull(spmatch.getResult(0)); - assertNull(spmatch.getResult(8)); - - assertEquals(4, spmatch.getWinnerCount()); - assertEquals(6, spmatch.getLoserCount()); - } - - /** - * tests winning and losing for teams - * @throws McException - */ - @Test - public void testTeamWinningAndLosing() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(null, true); - teamMatch.start(); - final ArenaPlayerInterface winner1 = this.createPlayer(); - final ArenaPlayerInterface winner2a = this.createPlayer(); - final ArenaPlayerInterface winner2b = this.createPlayer(); - final ArenaPlayerInterface winner3 = this.createPlayer(); - final ArenaPlayerInterface loser4 = this.createPlayer(); - final ArenaPlayerInterface loser5a = this.createPlayer(); - final ArenaPlayerInterface loser5b = this.createPlayer(); - final ArenaPlayerInterface loser6 = this.createPlayer(); - final ArenaPlayerInterface loser7a = this.createPlayer(); - final ArenaPlayerInterface loser7b = this.createPlayer(); - teamMatch.join(winner1, CommonTeams.Aqua); - teamMatch.join(winner2a, CommonTeams.Black); - teamMatch.join(winner2b, CommonTeams.Black); - teamMatch.join(winner3, CommonTeams.Blue); - teamMatch.join(loser4, CommonTeams.Fuchsia); - teamMatch.join(loser5a, CommonTeams.Gray); - teamMatch.join(loser5b, CommonTeams.Gray); - teamMatch.join(loser6, CommonTeams.Green); - teamMatch.join(loser7a, CommonTeams.Lime); - teamMatch.join(loser7b, CommonTeams.Lime); - - // let the players win or lose - teamMatch.setWinner(CommonTeams.Aqua); - teamMatch.setLoser(CommonTeams.Lime); - teamMatch.setWinner(CommonTeams.Black); - teamMatch.setLoser(CommonTeams.Green); - teamMatch.setLoser(CommonTeams.Gray); - teamMatch.setWinner(CommonTeams.Blue); - teamMatch.setLoser(CommonTeams.Fuchsia); - - // dummy method invocation - teamMatch.setWinner(new TeamIdType[0]); - teamMatch.setWinner((TeamIdType[]) null); - teamMatch.setLoser(new TeamIdType[0]); - teamMatch.setLoser((TeamIdType[]) null); - teamMatch.setWinner(CommonTeams.White); - teamMatch.setLoser(CommonTeams.White); - - // check results - assertEquals(7, teamMatch.getResultCount()); - assertEquals(7, teamMatch.getResults().size()); - - ArenaMatchInterface.MatchResult result = teamMatch.getResult(1); - assertTrue(result.isWin()); - assertEquals(1, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(winner1.getPlayerUUID())); - - result = teamMatch.getResult(2); - assertTrue(result.isWin()); - assertEquals(2, result.getPlace()); - assertEquals(2, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(winner2a.getPlayerUUID())); - assertTrue(result.getPlayers().contains(winner2b.getPlayerUUID())); - - result = teamMatch.getResult(3); - assertTrue(result.isWin()); - assertEquals(3, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(winner3.getPlayerUUID())); - - result = teamMatch.getResult(4); - assertFalse(result.isWin()); - assertEquals(4, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser4.getPlayerUUID())); - - result = teamMatch.getResult(5); - assertFalse(result.isWin()); - assertEquals(5, result.getPlace()); - assertEquals(2, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser5a.getPlayerUUID())); - assertTrue(result.getPlayers().contains(loser5b.getPlayerUUID())); - - result = teamMatch.getResult(6); - assertFalse(result.isWin()); - assertEquals(6, result.getPlace()); - assertEquals(1, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser6.getPlayerUUID())); - - result = teamMatch.getResult(7); - assertFalse(result.isWin()); - assertEquals(7, result.getPlace()); - assertEquals(2, result.getPlayers().size()); - assertTrue(result.getPlayers().contains(loser7a.getPlayerUUID())); - assertTrue(result.getPlayers().contains(loser7b.getPlayerUUID())); - - assertNull(teamMatch.getResult(0)); - assertNull(teamMatch.getResult(8)); - - assertEquals(4, teamMatch.getWinnerCount()); - assertEquals(6, teamMatch.getLoserCount()); - } - - /** - * Tests the statistics - * @throws McException - */ - @Test - public void testTeamStatistics() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, true); - spmatch.start(); - spmatch.getOrCreate(CommonTeams.Aqua); - spmatch.getOrCreate(CommonTeams.Black); - - assertEquals(0, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); - - assertEquals(2, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 2)); - assertEquals(3, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 3)); - assertEquals(4, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat1, 4)); - assertEquals(5, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat2, 5)); - assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 6)); - assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 7)); - assertEquals(2, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); - assertEquals(3, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); - assertEquals(4, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); - assertEquals(5, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); - - assertEquals(4, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 2)); - assertEquals(6, spmatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 3)); - assertEquals(8, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat1, 4)); - assertEquals(10, spmatch.addStatistic(CommonTeams.Black, DummyStatistics.Stat2, 5)); - assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 6)); - assertEquals(0, spmatch.addStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 7)); - assertEquals(4, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); - assertEquals(6, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); - assertEquals(8, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); - assertEquals(10, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); - - assertEquals(3, spmatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1)); - assertEquals(4, spmatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 2)); - assertEquals(5, spmatch.decStatistic(CommonTeams.Black, DummyStatistics.Stat1, 3)); - assertEquals(6, spmatch.decStatistic(CommonTeams.Black, DummyStatistics.Stat2, 4)); - assertEquals(0, spmatch.decStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 5)); - assertEquals(0, spmatch.decStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 6)); - assertEquals(3, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); - assertEquals(4, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); - assertEquals(5, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); - assertEquals(6, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); - - spmatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - spmatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat2, 2); - spmatch.setStatistic(CommonTeams.Black, DummyStatistics.Stat1, 3); - spmatch.setStatistic(CommonTeams.Black, DummyStatistics.Stat2, 4); - spmatch.setStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1, 5); - spmatch.setStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2, 6); - assertEquals(1, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat1)); - assertEquals(2, spmatch.getStatistic(CommonTeams.Aqua, DummyStatistics.Stat2)); - assertEquals(3, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat1)); - assertEquals(4, spmatch.getStatistic(CommonTeams.Black, DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(CommonTeams.Fuchsia, DummyStatistics.Stat2)); - } - - /** - * Tests the statistics - * @throws McException - */ - @Test - public void testStatistics() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - spmatch.start(); - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - final ArenaPlayerInterface player3 = this.createPlayer(); - spmatch.join(player1, CommonTeams.Unknown); - spmatch.join(player2, CommonTeams.Unknown); - - assertEquals(0, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); - - assertEquals(2, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 2)); - assertEquals(3, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 3)); - assertEquals(4, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 4)); - assertEquals(5, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 5)); - assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 6)); - assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 7)); - assertEquals(2, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(3, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(4, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(5, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); - - assertEquals(4, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 2)); - assertEquals(6, spmatch.addStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 3)); - assertEquals(8, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 4)); - assertEquals(10, spmatch.addStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 5)); - assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 6)); - assertEquals(0, spmatch.addStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 7)); - assertEquals(4, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(6, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(8, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(10, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); - - assertEquals(3, spmatch.decStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 1)); - assertEquals(4, spmatch.decStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 2)); - assertEquals(5, spmatch.decStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 3)); - assertEquals(6, spmatch.decStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 4)); - assertEquals(0, spmatch.decStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 5)); - assertEquals(0, spmatch.decStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 6)); - assertEquals(3, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(4, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(5, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(6, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); - - spmatch.setStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1, 1); - spmatch.setStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2, 2); - spmatch.setStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1, 3); - spmatch.setStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2, 4); - spmatch.setStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1, 5); - spmatch.setStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2, 6); - assertEquals(1, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(2, spmatch.getStatistic(player1.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(3, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(4, spmatch.getStatistic(player2.getPlayerUUID(), DummyStatistics.Stat2)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat1)); - assertEquals(0, spmatch.getStatistic(player3.getPlayerUUID(), DummyStatistics.Stat2)); - } - - /** - * Tests the get play time - * @throws McException - */ - @Test - public void testGetPlayTime() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - final ArenaPlayerInterface player1 = this.createPlayer(); // joined before start - final ArenaPlayerInterface player2 = this.createPlayer(); // joined after start - final ArenaPlayerInterface player3 = this.createPlayer(); // spectator - final ArenaPlayerInterface player4 = this.createPlayer(); // unknown player - final ArenaPlayerInterface player5 = this.createPlayer(); // joined and left before start - spmatch.join(player1, CommonTeams.Unknown); - spmatch.join(player5, CommonTeams.Unknown); - sleep(20); - spmatch.leave(player5); - sleep(30); - - assertEquals(0, spmatch.getPlayTime(player1.getPlayerUUID())); - assertEquals(0, spmatch.getPlayTime(player2.getPlayerUUID())); - assertEquals(0, spmatch.getPlayTime(player3.getPlayerUUID())); - assertEquals(0, spmatch.getPlayTime(player4.getPlayerUUID())); - assertEquals(0, spmatch.getPlayTime(player5.getPlayerUUID())); - - spmatch.start(); - sleep(10); - spmatch.join(player2, CommonTeams.Unknown); - - // match is in progress - sleep(10); - - // player2 joined 10 milliseconds after player1 - // on a slow ide the test may measure some more milliseconds... - // the asser ensures that the 50 millis before the match starts are not respected by getPlayTime. - assertTrue(15 >= spmatch.getPlayTime(player2.getPlayerUUID()) - spmatch.getPlayTime(player2.getPlayerUUID())); - - sleep(50); - spmatch.spectate(player3); - sleep(50); - spmatch.setWinner(player2.getPlayerUUID(), player1.getPlayerUUID()); - - // player 3 was only spectating (no play time) - assertEquals(0, spmatch.getPlayTime(player3.getPlayerUUID())); - - // match is finished/ players have left - - // player2 joined 10 milliseconds after player1 - // on a slow ide the test may measure some more milliseconds... - // the asser ensures that the 50 millis before the match starts are not respected by getPlayTime. - assertTrue(15 >= spmatch.getPlayTime(player2.getPlayerUUID()) - spmatch.getPlayTime(player2.getPlayerUUID())); - - // unknown player - assertEquals(0, spmatch.getPlayTime(player4.getPlayerUUID())); - - // player left before start - assertEquals(0, spmatch.getPlayTime(player5.getPlayerUUID())); - } - - /** - * Tests the killer tracking - * @throws McException - */ - @Test - public void testKillerTracking() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(null, false); - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - final ArenaPlayerInterface player3 = this.createPlayer(); - final ArenaPlayerInterface player4 = this.createPlayer(); - final ArenaPlayerInterface player5 = this.createPlayer(); - final ArenaPlayerInterface player6 = this.createPlayer(); - spmatch.start(); - spmatch.join(player1, CommonTeams.Unknown); - spmatch.join(player2, CommonTeams.Unknown); - spmatch.join(player3, CommonTeams.Unknown); - spmatch.join(player4, CommonTeams.Unknown); - spmatch.join(player5, CommonTeams.Unknown); - - spmatch.trackDamageForKill(player1.getPlayerUUID(), player2.getPlayerUUID()); - sleep(10); - spmatch.trackDamageForKill(player2.getPlayerUUID(), player3.getPlayerUUID()); - sleep(10); - spmatch.trackDamageForKill(player1.getPlayerUUID(), player3.getPlayerUUID()); - sleep(10); - spmatch.trackDamageForKill(player2.getPlayerUUID(), player4.getPlayerUUID()); - sleep(10); - spmatch.trackDamageForKill(player2.getPlayerUUID(), player4.getPlayerUUID()); - sleep(10); - spmatch.trackDamageForKill(player2.getPlayerUUID(), player4.getPlayerUUID()); - spmatch.trackDamageForKill(player5.getPlayerUUID(), player4.getPlayerUUID()); - sleep(10); - spmatch.trackDamageForKill(player6.getPlayerUUID(), player4.getPlayerUUID()); - - final LocalDateTime now = LocalDateTime.now(); - - assertEquals(player3.getPlayerUUID(), spmatch.getKillerTracking(player1.getPlayerUUID()).getLastDamager()); - assertEquals(player4.getPlayerUUID(), spmatch.getKillerTracking(player2.getPlayerUUID()).getLastDamager()); - assertNull(spmatch.getKillerTracking(player3.getPlayerUUID()).getLastDamager()); - assertNull(spmatch.getKillerTracking(player4.getPlayerUUID()).getLastDamager()); - assertEquals(player4.getPlayerUUID(), spmatch.getKillerTracking(player5.getPlayerUUID()).getLastDamager()); - - assertNull(spmatch.getKillerTracking(player6.getPlayerUUID())); - - assertTrue(15 >= spmatch.getKillerTracking(player5.getPlayerUUID()).getDamageTimestamp().until(now, ChronoUnit.MILLIS)); - assertTrue(15 >= spmatch.getKillerTracking(player2.getPlayerUUID()).getDamageTimestamp().until(now, ChronoUnit.MILLIS)); - assertTrue(45 >= spmatch.getKillerTracking(player1.getPlayerUUID()).getDamageTimestamp().until(now, ChronoUnit.MILLIS)); - - sleep(10); - - spmatch.resetKillerTracking(player1.getPlayerUUID()); - spmatch.resetKillerTracking(player6.getPlayerUUID()); - - assertNull(spmatch.getKillerTracking(player6.getPlayerUUID())); - } - - /** - * Failes with exception on duplicate startup. - * @throws McException - */ - @Test(expected = McException.class) - public void failDoubleStart() throws McException - { - final ArenaMatchImpl spmatch = new ArenaMatchImpl(this.createDummyArena(), false); - try - { - spmatch.start(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - - spmatch.start(); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failStatisticsAfterFinish1() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); - try - { - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.start(); - teamMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - teamMatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failStatisticsAfterFinish2() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); - try - { - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.start(); - teamMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - teamMatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failStatisticsAfterFinish3() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); - try - { - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.start(); - teamMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - teamMatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failStatisticsAfterFinish4() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.setStatistic(player.getPlayerUUID(), DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failStatisticsAfterFinish5() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.addStatistic(player.getPlayerUUID(), DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failStatisticsAfterFinish6() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.decStatistic(player.getPlayerUUID(), DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failJoinAfterFinish1() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - try - { - spMatch.join(player1); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.join(player2); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failJoinAfterFinish2() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.join(player, CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSwitchAfterFinish() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.getOrCreate(CommonTeams.Aqua); - spMatch.getOrCreate(CommonTeams.Black); - spMatch.join(player, CommonTeams.Aqua); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.switchTeam(player, CommonTeams.Black); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSpectateAfterFinish() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.spectate(player); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failLeaveAfterFinish1() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.leave(player); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failLeaveAfterFinish2() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), true); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player, CommonTeams.Aqua); - spMatch.join(player, CommonTeams.Black); - spMatch.start(); - spMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.leave(player, CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamAfterFinish() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); - try - { - teamMatch.getOrCreate(CommonTeams.Aqua); - teamMatch.start(); - teamMatch.finish(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - teamMatch.getOrCreate(CommonTeams.Black); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failAbortBeforeStart() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - spMatch.abort(); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failFinishBeforeStart() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - spMatch.finish(); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failResetKillerBeforeStart() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.resetKillerTracking(player.getPlayerUUID()); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSetKillerBeforeStart() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player1 = this.createPlayer(); - final ArenaPlayerInterface player2 = this.createPlayer(); - try - { - spMatch.join(player1); - spMatch.join(player2); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.trackDamageForKill(player1.getPlayerUUID(), player2.getPlayerUUID()); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSetLoserBeforeStart1() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.setLoser(player.getPlayerUUID()); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSetLoserBeforeStart2() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - teamMatch.join(player, CommonTeams.Aqua); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - teamMatch.setLoser(CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSetWinnerBeforeStart1() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.setWinner(player.getPlayerUUID()); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failSetWinnerBeforeStart2() throws McException - { - final ArenaMatchImpl teamMatch = new ArenaMatchImpl(this.createDummyArena(), true); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - teamMatch.join(player, CommonTeams.Aqua); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - teamMatch.setWinner(CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP1() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - try - { - spMatch.start(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.addStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP2() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - try - { - spMatch.start(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.decStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP3() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - try - { - spMatch.start(); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.setStatistic(CommonTeams.Aqua, DummyStatistics.Stat1, 1); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP4() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - spMatch.getOrCreate(CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP5() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - spMatch.join(player, CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP6() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.join(player, CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP7() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.leave(player, CommonTeams.Aqua); - } - - /** - * Failes with exception - * @throws McException - */ - @Test(expected = McException.class) - public void failTeamMethodOnSP8() throws McException - { - final ArenaMatchImpl spMatch = new ArenaMatchImpl(this.createDummyArena(), false); - final ArenaPlayerInterface player = this.createPlayer(); - try - { - spMatch.join(player); - } - catch (McException e) - { - e.printStackTrace(); - fail("Unexpected exception"); //$NON-NLS-1$ - } - spMatch.switchTeam(player, CommonTeams.Aqua); - } - - /** - * Mock mglib interface - * @throws ClassNotFoundException - */ - @Before - public void mockMglib() throws ClassNotFoundException - { - MinigamesLibInterface mglib = mock(MinigamesLibInterface.class); - Whitebox.setInternalState(Class.forName("de.minigameslib.mgapi.api.MglibCache"), "SERVICES", mglib); //$NON-NLS-1$ //$NON-NLS-2$ - when(mglib.isSpecialTeam(CommonTeams.Unknown)).thenReturn(true); - when(mglib.isSpecialTeam(CommonTeams.Winners)).thenReturn(true); - when(mglib.isSpecialTeam(CommonTeams.Losers)).thenReturn(true); - when(mglib.isSpecialTeam(CommonTeams.Spectators)).thenReturn(true); - } - - /** - * Mock bukkit server - */ - @Before - public void mockServer() - { - final Server server = mock(Server.class); - Whitebox.setInternalState(Bukkit.class, "server", server); //$NON-NLS-1$ - this.pluginManager = mock(PluginManager.class); - when(server.getPluginManager()).thenReturn(this.pluginManager); - } - - /** - * Creates an arena mock with dummy name - * @return dummy arena - */ - private ArenaInterface createDummyArena() - { - return this.createArena("dummy"); //$NON-NLS-1$ - } - - /** - * Creates an arena mock - * @param name - * @return arena mock - */ - private ArenaInterface createArena(String name) - { - final ArenaInterface arena = mock(ArenaInterface.class); - final LocalizedConfigString namestring = new LocalizedConfigString(); - namestring.setUserMessage(Locale.ENGLISH, name); - when(arena.getDisplayName()).thenReturn(namestring); - return arena; - } - - /** - * Creates a random arena player - * @return arena player - */ - private ArenaPlayerInterface createPlayer() - { - final ArenaPlayerInterface result = mock(ArenaPlayerInterface.class); - when(result.getPlayerUUID()).thenReturn(UUID.randomUUID()); - return result; - } - - /** - * Sleeps for given millis and ignores any error - * @param millis - */ - private void sleep(long millis) - { - try - { - Thread.sleep(millis); - } - catch (@SuppressWarnings("unused") InterruptedException e) - { - // silently ignore - } - } - - /** - * Some statistics helper - */ - private enum DummyStatistics implements MatchStatisticId - { - /** dummy statistic */ - Stat1, - /** dummy statistic */ - Stat2 - } - -} diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java deleted file mode 100644 index 2674498e..00000000 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestArenas.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.test.plugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.arena.ArenaType; -import de.minigameslib.mgapi.api.arena.ArenaTypeInterface; -import de.minigameslib.mgapi.api.arena.ClassicSinglePlayerArena; - -/** - * @author mepeisen - * - */ -public enum TestArenas implements ArenaTypeInterface -{ - - /** - * Basic test. - */ - @ArenaType(BasicTest.class) - BasicTest; - - /** - * Basic test provider. - */ - public static final class BasicTest extends ClassicSinglePlayerArena - { - - @Override - public LocalizedMessageInterface getDisplayName() - { - return null; - } - - @Override - public LocalizedMessageInterface getShortDescription() - { - return null; - } - - @Override - public LocalizedMessageInterface getDescription() - { - return null; - } - - } -} diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java deleted file mode 100644 index 69da4406..00000000 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestMessages.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.test.plugin; - -import de.minigameslib.mclib.api.locale.LocalizedMessage; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessages; - -/** - * @author mepeisen - * - */ -@LocalizedMessages("core") -public enum TestMessages implements LocalizedMessageInterface -{ - - /** - * dummy msg - */ - @LocalizedMessage(defaultMessage = "dummy") - Dummy, - -} diff --git a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java b/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java deleted file mode 100644 index f6ad4a9a..00000000 --- a/v2/plugin/src/test/java/de/minigameslib/mgapi/impl/test/plugin/TestPlugin.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright 2016 by minigameslib.de - All rights reserved. - If you do not own a hand-signed commercial license from minigames.de - you are not allowed to use this software in any way except using - GPL (see below). - ------- - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -*/ - -package de.minigameslib.mgapi.impl.test.plugin; - -import org.bukkit.plugin.java.JavaPlugin; - -import de.minigameslib.mclib.api.McException; -import de.minigameslib.mclib.api.enums.EnumServiceInterface; -import de.minigameslib.mclib.api.locale.LocalizedMessageInterface; -import de.minigameslib.mgapi.api.MinigameProvider; -import de.minigameslib.mgapi.api.MinigamesLibInterface; - -/** - * @author mepeisen - * - */ -public class TestPlugin extends JavaPlugin -{ - - @Override - public void onEnable() - { - EnumServiceInterface.instance().registerEnumClass(this, TestMessages.class); - EnumServiceInterface.instance().registerEnumClass(this, TestArenas.class); - - try - { - MinigamesLibInterface.instance().initMinigame(this, new MinigameProvider() { - - @Override - public LocalizedMessageInterface getShortDescription() - { - return TestMessages.Dummy; - } - - @Override - public String getName() - { - return "Test"; //$NON-NLS-1$ - } - - @Override - public LocalizedMessageInterface getManual() - { - return TestMessages.Dummy; - } - - @Override - public LocalizedMessageInterface getHowToPlay() - { - return TestMessages.Dummy; - } - - @Override - public LocalizedMessageInterface getDisplayName() - { - return TestMessages.Dummy; - } - - @Override - public LocalizedMessageInterface getDescription() - { - return TestMessages.Dummy; - } - }); - } - catch (McException e) - { - throw new IllegalStateException(e); - } - } - - @Override - public void onDisable() - { - EnumServiceInterface.instance().unregisterAllEnumerations(this); - } - -} diff --git a/v2/pom.xml b/v2/pom.xml deleted file mode 100644 index 2f21dbaf..00000000 --- a/v2/pom.xml +++ /dev/null @@ -1,242 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>de.minigameslib.mglib</groupId> - <artifactId>Minigames-Parent</artifactId> - <version>2.0.0-SNAPSHOT</version> - <packaging>pom</packaging> - <name>MinigamesAPI - parent</name> - <description>Rich Minigames API V2</description> - - <properties> - <maven.source.plugin.version>3.0.0</maven.source.plugin.version> - <maven.javadoc.plugin.version>2.10.3</maven.javadoc.plugin.version> - <jacoco.plugin.version>0.7.6.201602180812</jacoco.plugin.version> - <maven.jxr.plugin.version>2.1</maven.jxr.plugin.version> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>1.8</maven.compiler.source> - <maven.compiler.target>1.8</maven.compiler.target> - <java.version>1.8</java.version> - <latest.spigot.version>1.11.2</latest.spigot.version> - <mclib.version>0.0.6-SNAPSHOT</mclib.version> - <mglib.version>2.0.0-SNAPSHOT</mglib.version> - </properties> - - <modules> - <module>api</module> - <module>plugin</module> - </modules> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>spigot-${latest.spigot.version}-R0.1-api-bom</artifactId> - <version>${mclib.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib-api</artifactId> - <version>${mclib.version}</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>de.minigameslib.mclib</groupId> - <artifactId>mclib</artifactId> - <version>${mclib.version}</version> - <scope>runtime</scope> - </dependency> - - <dependency> - <groupId>de.minigameslib.mglib</groupId> - <artifactId>MinigamesAPI</artifactId> - <version>2.0.0-SNAPSHOT</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>de.minigameslib.mglib</groupId> - <artifactId>MinigamesPlugin</artifactId> - <version>2.0.0-SNAPSHOT</version> - <scope>runtime</scope> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>org.spigotmc</groupId> - <artifactId>spigot-api</artifactId> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources</directory> - <filtering>true</filtering> - </resource> - <resource> - <directory>src/main/java</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - </resources> - </build> - - <profiles> - <profile> - <id>mclib.withjavadocreport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - </plugin> - </plugins></reporting> - </profile> - <profile> - <id>mclib.withtestreport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> - </plugins></reporting> - </profile> - <profile> - <id>mclib.withsourcereport</id> - <activation><activeByDefault>true</activeByDefault></activation> - <reporting><plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jxr-plugin</artifactId> - <version>${maven.jxr.plugin.version}</version> - </plugin> - </plugins></reporting> - </profile> - - <profile> - <id>mclib.withsources</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <version>${maven.source.plugin.version}</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <id>attach-sources</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>mclib.withjavadoc</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <version>${maven.javadoc.plugin.version}</version> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <executions> - <execution> - <id>attach-javadoc</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - <profile> - <id>mclib.withcoverage</id> - <activation><activeByDefault>true</activeByDefault></activation> - <build> - <plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.plugin.version}</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals><goal>prepare-agent</goal></goals> - <configuration> - <propertyName>surefireArgLine</propertyName> - </configuration> - </execution> - <execution> - <id>default-report</id> - <phase>test</phase> - <goals><goal>report</goal></goals> - <configuration> - <outputDirectory>${project.build.directory}/coverage-report</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <argLine>${surefireArgLine}</argLine> - </configuration> - </plugin> - </plugins> - </build> - <reporting><plugins> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco.plugin.version}</version> - <reportSets> - <reportSet> - <reports> - <report>report</report> - </reports> - </reportSet> - </reportSets> - </plugin> - </plugins></reporting> - </profile> - </profiles> - - <repositories> - <repository> - <id>spigot-repo</id> - <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url> - </repository> - <repository> - <id>mce-repo</id> - <url>http://nexus.xworlds.eu/nexus/content/groups/mce</url> - </repository> - </repositories> - -</project> \ No newline at end of file diff --git a/v2/src/doc/minigames.docx b/v2/src/doc/minigames.docx deleted file mode 100644 index 39b7539acc0111c185a667c1a3292f73e20f2e49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52377 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 diff --git a/v2/src/doc/minigames.pdf b/v2/src/doc/minigames.pdf deleted file mode 100644 index 9cfd76fed5688417ca634b6f56734cfeec93d44a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724037 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 p1>%ZnTts7 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 S>W<#Z>P<dy)IXVzf&T}!<L3nc From 90d9670165fbc048ccd6dc74b697657982876523 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 May 2017 13:33:32 +0200 Subject: [PATCH 231/266] readme --- README.md | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ce0ddc43..b0a2a30a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -MinigamesAPI [![Build Status](https://drone.io/github.com/instance01/MinigamesAPI/status.png?1)](https://drone.io/github.com/instance01/MinigamesAPI/latest) (Link will be updated soon) +MinigamesAPI [![Build Status](http://www.minigameslib.de/build.php?app=all&major=1)](http://www.minigameslib.de/buildref.php?app=all&major=1) ============ Rich MinigamesAPI supporting different types of Minigames. @@ -7,8 +7,7 @@ Rich MinigamesAPI supporting different types of Minigames. Release builds can be found at http://nexus.xworlds.eu/nexus/content/repositories/mce-releases/ Development Files can be found at http://nexus.xworlds.eu/nexus/content/repositories/mce-snapshots/ -Tested with 1.9.X, 1.10 - +Tested with 1.8.X, 1.9.X, 1.10, 1.11 Features -------- @@ -34,9 +33,34 @@ Features - More stuff -Oh and of course a bunch of [premade Minigames and examples](https://github.com/MC-Minigames/) (to be updated soon). +For details on premium services and for downloads see our [Homepage](http://www.minigameslib.de/index_en.php). + +See the [wiki](https://github.com/MysticCity/MinigamesAPI/wiki) or the JavaDocs for more information on API usage. + + +Games +----- -See the [wiki](https://github.com/instance01/MinigamesAPI/wiki) (to be updated soon) or the [JavaDocs](http://www.instancedev.com/bukkitdev/MinigamesAPI/javadocs/) (to be updated soon) for more information on API usage. +- [BedWars](https://github.com/MysticCity/BedWars) +- [BowBash](https://github.com/MysticCity/BowBash) +- [ColorMatch](https://github.com/MysticCity/ColorMatch) +- [Conquer](https://github.com/MysticCity/Conquer) +- [DeathRun](https://github.com/MysticCity/MGDeathRun) +- [FlyingCars](https://github.com/MysticCity/FlyingCars) +- [GunGame](https://github.com/MysticCity/GunGame) +- [HorseRacingPlus](https://github.com/MysticCity/HorseRacingPlus) +- [Jumper](https://github.com/MysticCity/Jumper) +- [MobEscape](https://github.com/MysticCity/MGMobEscape) +- [NoteBlockBlitz](https://github.com/MysticCity/NoteblockBlitz) +- [OneInTheChamber](https://github.com/MysticCity/MGOneInTheChamber) +- [SeaBattle](https://github.com/MysticCity/SeaBattle) +- [SkyWars](https://github.com/MysticCity/MGSkyWars) +- [Snake](https://github.com/MysticCity/Snake) +- [Splegg](https://github.com/MysticCity/MGSplegg) +- [Sudoku](https://github.com/MysticCity/Sudoku) +- [TrapdoorSpleef](https://github.com/MysticCity/TrapdoorSpleef) +- [Warlock](https://github.com/MysticCity/Warlock) +- [WarlockTactical](https://github.com/MysticCity/Warlock-Tactical) Maven @@ -53,7 +77,7 @@ Maven <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.9-SNAPSHOT</version> + <version>1.14.16-SNAPSHOT</version> </dependency> From d00083235e27c38e28de42b2927bd847d62707da Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sat, 6 May 2017 18:19:57 +0200 Subject: [PATCH 232/266] updated readme --- README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b0a2a30a..1b430e64 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ MinigamesAPI [![Build Status](http://www.minigameslib.de/build.php?app=all&major=1)](http://www.minigameslib.de/buildref.php?app=all&major=1) ============ -Rich MinigamesAPI supporting different types of Minigames. +Rich MinigamesAPI supporting different types of Minigames in spigot-minecraft. +Originally written by instancelabs. - -Release builds can be found at http://nexus.xworlds.eu/nexus/content/repositories/mce-releases/ -Development Files can be found at http://nexus.xworlds.eu/nexus/content/repositories/mce-snapshots/ +Release builds can be found at (Nexus repository)[http://nexus.xworlds.eu/nexus/content/repositories/mce-releases/] +Development Files can be found at (Nexus repository)[http://nexus.xworlds.eu/nexus/content/repositories/mce-snapshots/] +Complete download package at (Minigameslib.de)[http://www.minigameslib.de/downloads_en.php#all] Tested with 1.8.X, 1.9.X, 1.10, 1.11 + Features -------- - - Arenasystem - Customizable messages - Different minigame types @@ -32,7 +33,6 @@ Features - Included effects like blood or dead bodies lying around - More stuff - For details on premium services and for downloads see our [Homepage](http://www.minigameslib.de/index_en.php). See the [wiki](https://github.com/MysticCity/MinigamesAPI/wiki) or the JavaDocs for more information on API usage. @@ -63,6 +63,15 @@ Games - [WarlockTactical](https://github.com/MysticCity/Warlock-Tactical) +Links +----- + +- (Wiki)[https://github.com/MysticCity/MinigamesAPI/wiki] +- (Issues/Support)[https://github.com/MysticCity/MinigamesAPI/issues] +- (Resource@spigotmc)[https://www.spigotmc.org/resources/minigameslib.23844/] +- (Forum@Spigotmc)[https://www.spigotmc.org/threads/minigameslib.150548/] + + Maven ----- From e41a79c725629a41a680d30fdb001838a49ddcc1 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 7 May 2017 13:44:08 +0200 Subject: [PATCH 233/266] (readme) build icon --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b430e64..fc7c7127 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -MinigamesAPI [![Build Status](http://www.minigameslib.de/build.php?app=all&major=1)](http://www.minigameslib.de/buildref.php?app=all&major=1) +MinigamesAPI [![Build Status](http://www.minigameslib.de/build.png?app=all&major=1)](http://www.minigameslib.de/buildref.php?app=all&major=1) ============ Rich MinigamesAPI supporting different types of Minigames in spigot-minecraft. From d083a9d61d8a7e9d2e1cbc428df3cb9118d30b6b Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 7 May 2017 16:29:43 +0200 Subject: [PATCH 234/266] added sqlite support --- .../minigamesapi/ArenaConfigStrings.java | 19 +- .../minigamesapi/PluginInstance.java | 2 +- .../minigamesapi/Stats.java | 27 +- .../minigamesapi/config/DefaultConfig.java | 7 +- .../minigamesapi/sql/Database.java | 97 --- .../minigamesapi/sql/MainSQL.java | 765 +++++++++++++----- .../minigamesapi/sql/MySQL.java | 33 +- .../minigamesapi/sql/SQLite.java | 22 +- changelog.md | 1 + 9 files changed, 617 insertions(+), 356 deletions(-) delete mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java index 9981581e..05779cfe 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -256,17 +256,26 @@ public interface ArenaConfigStrings /** TODO: describe config option. */ String CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX = ".command"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** flag to enable mysql */ String CONFIG_MYSQL_ENABLED = "mysql.enabled"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** host name of mysql server */ String CONFIG_MYSQL_HOST = "mysql.host"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** user name of mysql user */ String CONFIG_MYSQL_USER = "mysql.user"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** password to connect to mysql */ String CONFIG_MYSQL_PW = "mysql.pw"; //$NON-NLS-1$ - /** TODO: describe config option. */ + /** mysql database name */ String CONFIG_MYSQL_DATABASE = "mysql.database"; //$NON-NLS-1$ + /** flag to enable sqlite */ + String CONFIG_SQLITE_ENABLED = "sqlite.enabled"; //$NON-NLS-1$ + /** sqlite database user name */ + String CONFIG_SQLITE_USER = "sqlite.user"; //$NON-NLS-1$ + /** sqlite database password */ + String CONFIG_SQLITE_PW = "sqlite.pw"; //$NON-NLS-1$ + /** sqlite database name/file. */ + String CONFIG_SQLITE_DATABASE = "sqlite.database"; //$NON-NLS-1$ + /** * Activation of inventory reset on leave. */ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java index a69c015e..e9539e53 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/PluginInstance.java @@ -355,7 +355,7 @@ public class PluginInstance this.plugin = plugin; this.rew = new Rewards(plugin); this.stats = new Stats(this, plugin); - this.sql = new MainSQL(plugin, true); + this.sql = new MainSQL(plugin); this.classes = new Classes(this, plugin); this.shop = new Shop(this, plugin); this.spectatormanager = new SpectatorManager(plugin); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java index 4fc36d8f..bf75e8e5 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Stats.java @@ -110,22 +110,19 @@ public void lose(final String playername) */ public void update(final String playername) { - if (this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) + final Player p = Bukkit.getPlayer(playername); + final String uuid = p.getUniqueId().toString(); + if (this.pli.getStatsConfig().getConfig().isSet("players." + uuid + ".wins")) { - final Player p = Bukkit.getPlayer(playername); - final String uuid = p.getUniqueId().toString(); - if (this.pli.getStatsConfig().getConfig().isSet("players." + uuid + ".wins")) - { - final int wins = this.getWins(playername); - final int sqlwins = this.pli.getSQLInstance().getWins(p); - this.setWins(playername, Math.max(wins, sqlwins)); - } - if (this.pli.getStatsConfig().getConfig().isSet("players." + uuid + ".points")) - { - final int points = this.getPoints(playername); - final int sqlpoints = this.pli.getSQLInstance().getPoints(p); - this.setPoints(playername, Math.max(points, sqlpoints)); - } + final int wins = this.getWins(playername); + final int sqlwins = this.pli.getSQLInstance().getWins(p); + this.setWins(playername, Math.max(wins, sqlwins)); + } + if (this.pli.getStatsConfig().getConfig().isSet("players." + uuid + ".points")) + { + final int points = this.getPoints(playername); + final int sqlpoints = this.pli.getSQLInstance().getPoints(p); + this.setPoints(playername, Math.max(points, sqlpoints)); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java index 43707d44..ba76e115 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/DefaultConfig.java @@ -136,13 +136,18 @@ public static void init(final JavaPlugin plugin, final boolean custom) config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_ITEM_SUFFIX, 9); config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_NAME_SUFFIX, "Custom Name".replace("&", "§")); config.addDefault(ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_PREFIX + "item0" + ArenaConfigStrings.CONFIG_EXTRA_LOBBY_ITEM_COMMAND_SUFFIX, "say This is a custom extra lobby item."); - + config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_HOST, "127.0.0.1"); config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_USER, "root"); config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_PW, "root"); config.addDefault(ArenaConfigStrings.CONFIG_MYSQL_DATABASE, "mcminigames"); + config.addDefault(ArenaConfigStrings.CONFIG_SQLITE_ENABLED, false); + config.addDefault(ArenaConfigStrings.CONFIG_SQLITE_USER, "root"); + config.addDefault(ArenaConfigStrings.CONFIG_SQLITE_PW, "root"); + config.addDefault(ArenaConfigStrings.CONFIG_SQLITE_DATABASE, "mcminigames.sqlite"); + config.addDefault(ArenaConfigStrings.RESET_GAMEMMODE, true); config.addDefault(ArenaConfigStrings.RESET_INVENTORY, true); config.addDefault(ArenaConfigStrings.RESET_XP, true); diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java deleted file mode 100644 index 5da8097c..00000000 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/Database.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -package com.comze_instancelabs.minigamesapi.sql; // replace this with yours - -import java.sql.Connection; - -public abstract class Database -{ - protected boolean connected; - protected Connection connection; - public int lastUpdate; - - public Database() - { - this.connected = false; - this.connection = null; - } - - protected Statements getStatement(final String query) - { - final String trimmedQuery = query.trim(); - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("SELECT")) - { - return Statements.SELECT; - } - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("INSERT")) - { - return Statements.INSERT; - } - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("UPDATE")) - { - return Statements.UPDATE; - } - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("DELETE")) - { - return Statements.DELETE; - } - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("CREATE")) - { - return Statements.CREATE; - } - if (trimmedQuery.substring(0, 5).equalsIgnoreCase("ALTER")) - { - return Statements.ALTER; - } - if (trimmedQuery.substring(0, 4).equalsIgnoreCase("DROP")) - { - return Statements.DROP; - } - if (trimmedQuery.substring(0, 8).equalsIgnoreCase("TRUNCATE")) - { - return Statements.TRUNCATE; - } - if (trimmedQuery.substring(0, 6).equalsIgnoreCase("RENAME")) - { - return Statements.RENAME; - } - if (trimmedQuery.substring(0, 2).equalsIgnoreCase("DO")) - { - return Statements.DO; - } - if (trimmedQuery.substring(0, 7).equalsIgnoreCase("REPLACE")) - { - return Statements.REPLACE; - } - if (trimmedQuery.substring(0, 4).equalsIgnoreCase("LOAD")) - { - return Statements.LOAD; - } - if (trimmedQuery.substring(0, 7).equalsIgnoreCase("HANDLER")) - { - return Statements.HANDLER; - } - if (trimmedQuery.substring(0, 4).equalsIgnoreCase("CALL")) - { - return Statements.CALL; - } - return Statements.SELECT; - } - - protected static enum Statements - { - SELECT, INSERT, UPDATE, DELETE, DO, REPLACE, LOAD, HANDLER, CALL, CREATE, ALTER, DROP, TRUNCATE, RENAME, START, COMMIT, ROLLBACK, SAVEPOINT, LOCK, UNLOCK, PREPARE, EXECUTE, DEALLOCATE, SET, SHOW, DESCRIBE, EXPLAIN, HELP, USE, ANALYZE, ATTACH, BEGIN, DETACH, END, INDEXED, ON, PRAGMA, REINDEX, RELEASE, VACUUM; - } -} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java index 8331845c..d357fb7e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java @@ -17,6 +17,7 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; import java.util.logging.Level; import org.bukkit.entity.Player; @@ -25,35 +26,53 @@ import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; import com.comze_instancelabs.minigamesapi.MinigamesAPI; +/** + * Main sql interface. + */ public class MainSQL { // used for rewards and stats + /** + * plugin + */ JavaPlugin plugin = null; - private boolean mysql = true; // false for sqlite + + /** + * mysql connection + */ MySQL MySQL; + + /** + * sqlite connection + */ SQLite SQLite; - // Set to true if tables don't contain UUIDs + /** + * Set to true if tables don't contain UUIDs + */ boolean oldFormat = false; - public MainSQL(final JavaPlugin plugin, final boolean mysql) + /** + * Constructor + * @param plugin + */ + public MainSQL(final JavaPlugin plugin) { this.plugin = plugin; - this.mysql = mysql; - if (mysql) + if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) { - this.MySQL = new MySQL(plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_HOST), "3306", plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_USER), + this.MySQL = new MySQL(plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_HOST), "3306", plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_USER), //$NON-NLS-1$ plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_PW)); } - else + else if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_SQLITE_ENABLED)) { - this.SQLite = new SQLite(plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_USER), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_PW)); + this.SQLite = new SQLite(plugin.getDataFolder() + "/" + plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SQLITE_DATABASE), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SQLITE_USER), plugin.getConfig().getString(ArenaConfigStrings.CONFIG_SQLITE_PW)); //$NON-NLS-1$ } - if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED) && this.MySQL != null) + if (this.MySQL != null) { try { @@ -61,294 +80,668 @@ public MainSQL(final JavaPlugin plugin, final boolean mysql) } catch (final Exception e) { - plugin.getLogger().log(Level.SEVERE, "Failed initializing MySQL. Disabling!", e); + this.MySQL = null; + plugin.getLogger().log(Level.SEVERE, "Failed initializing MySQL. Disabling!", e); //$NON-NLS-1$ plugin.getConfig().set(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); plugin.saveConfig(); } } - else if (plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED) && this.MySQL == null) + else if (this.SQLite != null) { - plugin.getLogger().severe("Failed initializing MySQL. Disabling!"); - plugin.getConfig().set(ArenaConfigStrings.CONFIG_MYSQL_ENABLED, false); - plugin.saveConfig(); + try + { + this.createTables(); + } + catch (final Exception e) + { + this.SQLite = null; + plugin.getLogger().log(Level.SEVERE, "Failed initializing SqLite. Disabling!", e); //$NON-NLS-1$ + plugin.getConfig().set(ArenaConfigStrings.CONFIG_SQLITE_ENABLED, false); + plugin.saveConfig(); + } } } - public void createTables() + /** + * Creates database tables + */ + private void createTables() { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) + if (this.MySQL != null) { - return; - } - if (!this.mysql) - { - // TODO SQLite - } - final Connection c = this.MySQL.open(); - - try - { - c.createStatement().execute("CREATE DATABASE IF NOT EXISTS `" + this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE) + "`"); - c.createStatement() - .execute("CREATE TABLE IF NOT EXISTS " + this.plugin.getName() + " (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player VARCHAR(100), points INT, wins INT, loses INT, kills INT)"); - final ResultSet res = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'kills'"); - if (!res.isBeforeFirst()) + try (final Connection c = this.MySQL.open()) + { + c.createStatement().execute("CREATE DATABASE IF NOT EXISTS `" + this.plugin.getConfig().getString(ArenaConfigStrings.CONFIG_MYSQL_DATABASE) + "`"); //$NON-NLS-1$ //$NON-NLS-2$ + c.createStatement() + .execute("CREATE TABLE IF NOT EXISTS " + this.plugin.getName() + " (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, player VARCHAR(100), points INT, wins INT, loses INT, kills INT)"); //$NON-NLS-1$//$NON-NLS-2$ + try (final ResultSet res = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'kills'")) //$NON-NLS-1$ //$NON-NLS-2$ + { + if (!res.isBeforeFirst()) + { + // old table format without kills column -> add kills column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD kills INT"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + try (final ResultSet res2 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'deaths'")) //$NON-NLS-1$ //$NON-NLS-2$ + { + if (!res2.isBeforeFirst()) + { + // old table format without deaths column -> add deaths column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD deaths INT"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + try (final ResultSet res3 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'uuid'")) //$NON-NLS-1$ //$NON-NLS-2$ + { + if (!res3.isBeforeFirst()) + { + // old table format without uuid column -> add uuid column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD uuid VARCHAR(100)"); //$NON-NLS-1$ //$NON-NLS-2$ + this.oldFormat = true; + } + } + try (final ResultSet res3 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'gamepoints'")) //$NON-NLS-1$ //$NON-NLS-2$ + { + if (!res3.isBeforeFirst()) + { + // old table format without gamepoints column -> add gamepoints column + c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD gamepoints INT"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + } + catch (final SQLException e) { - // old table format without kills column -> add kills column - c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD kills INT"); + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } - final ResultSet res2 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'deaths'"); - if (!res2.isBeforeFirst()) + } + else if (this.SQLite != null) + { + try (final Connection c = this.SQLite.open()) { - // old table format without deaths column -> add deaths column - c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD deaths INT"); + c.createStatement() + .execute("CREATE TABLE IF NOT EXISTS " + this.plugin.getName() + " (id INTEGER PRIMARY KEY AUTOINCREMENT, player VARCHAR(100), points INT, wins INT, loses INT, kills INT, deaths INT, uuid VARCHAR(100), gamepoints INT)"); //$NON-NLS-1$ //$NON-NLS-2$ } - final ResultSet res3 = c.createStatement().executeQuery("SHOW COLUMNS FROM `" + this.plugin.getName() + "` LIKE 'uuid'"); - if (!res3.isBeforeFirst()) + catch (final SQLException e) { - // old table format without uuid column -> add uuid column - c.createStatement().execute("ALTER TABLE " + this.plugin.getName() + " ADD uuid VARCHAR(100)"); - this.oldFormat = true; + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } } - catch (final SQLException e) + } + + /** + * Update old format database + * @param p + * @param uuid + * @param c + * @throws SQLException + */ + private void updateOldFormat(final Player p, final String uuid, final Connection c) throws SQLException + { + if (this.oldFormat) { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); + try (final Statement stmt = c.createStatement()) + { + stmt.executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } } } + /** + * Updates winner stats + * @param p + * @param reward + * @param addwin + */ public void updateWinnerStats(final Player p, final int reward, final boolean addwin) { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) - { - return; - } - if (!this.mysql) - { - // TODO SQLite - } final String uuid = p.getUniqueId().toString(); - final Connection c = this.MySQL.open(); final int wincount = addwin ? 1 : 0; - - try + if (this.MySQL != null) { - if (this.oldFormat) + try (final Connection c = this.MySQL.open()) { - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + updateOldFormat(p, uuid, c); + updateWinnerStats(p, reward, uuid, wincount, c); } - final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) + catch (final SQLException e) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '" + Integer.toString(reward) + "', '" + Integer.toString(wincount) - + "', '0', '0', '0', '" + uuid + "')"); - return; + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } - res3.next(); - final int points = res3.getInt("points") + reward; - final int wins = res3.getInt("wins") + wincount; - - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET points='" + Integer.toString(points) + "', wins='" + Integer.toString(wins) + "' WHERE uuid='" + uuid + "'"); - } - catch (final SQLException e) + else if (this.SQLite != null) { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); + try (final Connection c = this.SQLite.open()) + { + updateWinnerStats(p, reward, uuid, wincount, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } } - - public void updateLoserStats(final Player p) + + /** + * Update winner stats + * @param p + * @param reward + * @param uuid + * @param wincount + * @param c + * @throws SQLException + */ + private void updateWinnerStats(final Player p, final int reward, final String uuid, final int wincount, final Connection c) throws SQLException { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) + try (final Statement stmt = c.createStatement()) { - return; + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (!res3.isBeforeFirst()) + { + // there's no such user + c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$ //$NON-NLS-2$ + + "VALUES('" + p.getName() + "', " + reward + ", " + wincount //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + + ", 0, 0, 0, '" + uuid + "', 0)"); //$NON-NLS-1$ //$NON-NLS-2$ + } + else + { + res3.next(); + final int points = res3.getInt("points") + reward; //$NON-NLS-1$ + final int wins = res3.getInt("wins") + wincount; //$NON-NLS-1$ + + c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET points=" + points + ", wins=" + wins + " WHERE uuid='" + uuid + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + } + } } - if (!this.mysql) + } + + /** + * Update loser stats + * @param p + */ + public void updateLoserStats(final Player p) + { + final String uuid = p.getUniqueId().toString(); + if (this.MySQL != null) { - // TODO SQLite + try (Connection c = this.MySQL.open()) + { + updateOldFormat(p, uuid, c); + updateLosterStats(p, uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } - final String uuid = p.getUniqueId().toString(); - final Connection c = this.MySQL.open(); - - try + else if (this.SQLite != null) { - if (this.oldFormat) + try (Connection c = this.SQLite.open()) { - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + updateLosterStats(p, uuid, c); } - final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) + catch (final SQLException e) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '1', '0', '0', '" + uuid + "')"); - return; + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } - res3.next(); - final int loses = res3.getInt("loses") + 1; - - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET loses='" + Integer.toString(loses) + "' WHERE uuid='" + uuid + "'"); - } - catch (final SQLException e) + } + + /** + * Update loser stats + * @param p + * @param uuid + * @param c + * @throws SQLException + */ + private void updateLosterStats(final Player p, final String uuid, final Connection c) throws SQLException + { + try (final Statement stmt = c.createStatement()) { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (!res3.isBeforeFirst()) + { + // there's no such user + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$ //$NON-NLS-2$ + + "VALUES('" + p.getName() + "', 0, 0, 1, 0, 0, '" + uuid + "', 0)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + else + { + res3.next(); + final int loses = res3.getInt("loses") + 1; //$NON-NLS-1$ + + stmt.executeUpdate("UPDATE " + this.plugin.getName() + " SET loses=" + loses + " WHERE uuid='" + uuid + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + } } } + /** + * Update killer stats + * @param p + * @param kills_ + */ public void updateKillerStats(final Player p, final int kills_) { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) - { - return; - } - if (!this.mysql) + final String uuid = p.getUniqueId().toString(); + if (this.MySQL != null) { - // TODO SQLite + try (Connection c = this.MySQL.open()) + { + updateOldFormat(p, uuid, c); + updateKillerStats(p, kills_, uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } - final String uuid = p.getUniqueId().toString(); - final Connection c = this.MySQL.open(); - - try + else if (this.SQLite != null) { - if (this.oldFormat) + try (Connection c = this.SQLite.open()) { - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + updateKillerStats(p, kills_, uuid, c); } - final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) + catch (final SQLException e) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '0', '1', '0', '" + uuid + "')"); - return; + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } - res3.next(); - final int kills = res3.getInt("kills") + kills_; - - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET kills='" + Integer.toString(kills) + "' WHERE uuid='" + uuid + "'"); - } - catch (final SQLException e) + } + + /** + * Update killer stats + * @param p + * @param kills_ + * @param uuid + * @param c + * @throws SQLException + */ + private void updateKillerStats(final Player p, final int kills_, final String uuid, final Connection c) throws SQLException + { + try (final Statement stmt = c.createStatement()) { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (!res3.isBeforeFirst()) + { + // there's no such user + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$ //$NON-NLS-2$ + + "VALUES('" + p.getName() + "', 0, 0, 0, 1, 0, '" + uuid + "', 0)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + else + { + res3.next(); + final int kills = res3.getInt("kills") + kills_; //$NON-NLS-1$ + + stmt.executeUpdate("UPDATE " + this.plugin.getName() + " SET kills=" + kills + " WHERE uuid='" + uuid + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + } } } + /** + * update killer stats + * @param p + * @param deaths_ + */ public void updateDeathStats(final Player p, final int deaths_) { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) + final String uuid = p.getUniqueId().toString(); + if (this.MySQL != null) { - return; + try (final Connection c = this.MySQL.open()) + { + updateOldFormat(p, uuid, c); + updateDeathStats(p, deaths_, uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } - if (!this.mysql) + else if (this.SQLite != null) { - // TODO SQLite + try (final Connection c = this.SQLite.open()) + { + updateDeathStats(p, deaths_, uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } + } + } + + /** + * Update death stats + * @param p + * @param deaths_ + * @param uuid + * @param c + * @throws SQLException + */ + private void updateDeathStats(final Player p, final int deaths_, final String uuid, final Connection c) throws SQLException + { + try (final Statement stmt = c.createStatement()) + { + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (!res3.isBeforeFirst()) + { + // there's no such user + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$//$NON-NLS-2$ + + "VALUES('" + p.getName() + "', 0, 0, 0, 0, 1, '" + uuid + "', 0)"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ + } + else + { + res3.next(); + final int deaths = res3.getInt("deaths") + deaths_; //$NON-NLS-1$ + + stmt.executeUpdate("UPDATE " + this.plugin.getName() + " SET deaths=" + Integer.toString(deaths) + " WHERE uuid='" + uuid + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + } } + } + + /** + * Get points + * @param p + * @return points + */ + public int getPoints(final Player p) + { final String uuid = p.getUniqueId().toString(); - final Connection c = this.MySQL.open(); - - try + int result = -1; + if (this.MySQL != null) { - if (this.oldFormat) + try (final Connection c = this.MySQL.open()) { - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + updateOldFormat(p, uuid, c); + result = getPoints(uuid, c); } - final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); - if (!res3.isBeforeFirst()) + catch (final SQLException e) { - // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " VALUES('0', '" + p.getName() + "', '0', '0', '0', '0', '1', '" + uuid + "')"); - return; + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } - res3.next(); - final int deaths = res3.getInt("deaths") + deaths_; - - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET deaths='" + Integer.toString(deaths) + "' WHERE uuid='" + uuid + "'"); - } - catch (final SQLException e) + else if (this.SQLite != null) { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); + try (final Connection c = this.SQLite.open()) + { + result = getPoints(uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } + return result; + } + + /** + * Get points + * @param uuid + * @param c + * @return points + * @throws SQLException + */ + private int getPoints(final String uuid, final Connection c) throws SQLException + { + int result = -1; + try (final Statement stmt = c.createStatement()) + { + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (res3.isBeforeFirst()) + { + res3.next(); + result = res3.getInt("points"); //$NON-NLS-1$ + } + } + } + return result; } - public int getPoints(final Player p) + /** + * Get wins + * @param p + * @return wins + */ + public int getWins(final Player p) { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) + final String uuid = p.getUniqueId().toString(); + int result = -1; + if (this.MySQL != null) + { + try (final Connection c = this.MySQL.open()) + { + updateOldFormat(p, uuid, c); + result = getWins(uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } + } + else if (this.SQLite != null) { - return -1; + try (final Connection c = this.SQLite.open()) + { + result = getWins(uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } - if (!this.mysql) + return result; + } + + /** + * Get wins + * @param uuid + * @param c + * @return wins + * @throws SQLException + */ + private int getWins(final String uuid, final Connection c) throws SQLException + { + int result = -1; + try (final Statement stmt = c.createStatement()) { - // TODO SQLite + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (res3.isBeforeFirst()) + { + res3.next(); + result = res3.getInt("wins"); //$NON-NLS-1$ + } + } } + return result; + } + + /** + * Get game points + * @param p + * @return wins + */ + public int getGamePoints(final Player p) + { final String uuid = p.getUniqueId().toString(); - final Connection c = this.MySQL.open(); - - try + int result = -1; + if (this.MySQL != null) { - if (this.oldFormat) + try (final Connection c = this.MySQL.open()) { - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + updateOldFormat(p, uuid, c); + result = getGamePoints(uuid, c); } - final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); - - if (res3.isBeforeFirst()) + catch (final SQLException e) { - res3.next(); - final int credits = res3.getInt("points"); - return credits; + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } -// else -// { -// // log("New User detected."); -// } } - catch (final SQLException e) + else if (this.SQLite != null) { - // + try (final Connection c = this.SQLite.open()) + { + result = getGamePoints(uuid, c); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } - return -1; + return result; + } + + /** + * Get game points + * @param uuid + * @param c + * @return wins + * @throws SQLException + */ + private int getGamePoints(final String uuid, final Connection c) throws SQLException + { + int result = -1; + try (final Statement stmt = c.createStatement()) + { + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (res3.isBeforeFirst()) + { + res3.next(); + result = res3.getInt("gamepoints"); //$NON-NLS-1$ + } + } + } + return result; } - public int getWins(final Player p) + /** + * Set game points + * @param p + * @param points + */ + public void setGamePoints(final Player p, int points) { - if (!this.plugin.getConfig().getBoolean(ArenaConfigStrings.CONFIG_MYSQL_ENABLED)) + final String uuid = p.getUniqueId().toString(); + if (this.MySQL != null) { - return -1; + try (final Connection c = this.MySQL.open()) + { + updateOldFormat(p, uuid, c); + setGamePoints(p, c, points); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } - if (!this.mysql) + else if (this.SQLite != null) { - // TODO SQLite + try (final Connection c = this.SQLite.open()) + { + setGamePoints(p, c, points); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } } + } + + /** + * Set game points + * @param p + * @param c + * @param points + * @throws SQLException + */ + private void setGamePoints(final Player p, final Connection c, int points) throws SQLException + { final String uuid = p.getUniqueId().toString(); - final Connection c = this.MySQL.open(); - - try + try (final Statement stmt = c.createStatement()) { - if (this.oldFormat) + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ { - c.createStatement().executeUpdate("UPDATE " + this.plugin.getName() + " SET uuid='" + uuid + "' WHERE player='" + p.getName() + "'"); + if (!res3.isBeforeFirst()) + { + // there's no such user + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$//$NON-NLS-2$ + + "VALUES('" + p.getName() + "', 0, 0, 0, 0, 1, '" + uuid + "', " + points + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + else + { + stmt.executeUpdate("UPDATE " + this.plugin.getName() + " SET gamepoints=" + points + " WHERE uuid='" + uuid + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } } - final ResultSet res3 = c.createStatement().executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'"); - - if (res3.isBeforeFirst()) + } + } + + /** + * Set game points + * @param p + * @param points + */ + public void addGamePoints(final Player p, int points) + { + final String uuid = p.getUniqueId().toString(); + if (this.MySQL != null) + { + try (final Connection c = this.MySQL.open()) + { + updateOldFormat(p, uuid, c); + addGamePoints(p, c, points); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } + } + else if (this.SQLite != null) + { + try (final Connection c = this.SQLite.open()) { - res3.next(); - final int wins = res3.getInt("wins"); - return wins; + addGamePoints(p, c, points); + } + catch (final SQLException e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ } -// else -// { -// // log("New User detected."); -// } } - catch (final SQLException e) + } + + /** + * Set game points + * @param p + * @param c + * @param points + * @throws SQLException + */ + private void addGamePoints(final Player p, final Connection c, int points) throws SQLException + { + final String uuid = p.getUniqueId().toString(); + try (final Statement stmt = c.createStatement()) { - // + try (final ResultSet res3 = stmt.executeQuery("SELECT * FROM " + this.plugin.getName() + " WHERE uuid='" + uuid + "'")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + if (!res3.isBeforeFirst()) + { + // there's no such user + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$//$NON-NLS-2$ + + "VALUES('" + p.getName() + "', 0, 0, 0, 0, 1, '" + uuid + "', " + points + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + else + { + stmt.executeUpdate("UPDATE " + this.plugin.getName() + " SET gamepoints=" + (points + res3.getInt("gamepoints") ) + " WHERE uuid='" + uuid + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + } + } } - return -1; } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java index def9c43f..7ff17de3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MySQL.java @@ -21,7 +21,7 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; -public class MySQL extends Database +public class MySQL { String user = ""; String database = ""; @@ -37,7 +37,7 @@ public MySQL(final String hostname, final String portnmbr, final String database this.database = database; this.user = username; this.password = password; - } + } public Connection open() { @@ -58,33 +58,4 @@ public Connection open() return this.c; } - public boolean checkConnection() - { - if (this.c != null) - { - return true; - } - return false; - } - - public Connection getConn() - { - return this.c; - } - - public void closeConnection(Connection c) - { - try - { - c.close(); - } - catch (final SQLException e) - { - if (MinigamesAPI.debug) - { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); - } - } - this.c = null; - } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java index f5ea638c..1865f6ac 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/SQLite.java @@ -21,7 +21,7 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; -public class SQLite extends Database +public class SQLite { String user = ""; String database = ""; @@ -40,7 +40,7 @@ public Connection open() try { Class.forName("org.sqlite.JDBC"); - this.c = DriverManager.getConnection("jdbc:sqlite:main.db"); + this.c = DriverManager.getConnection("jdbc:sqlite:" + this.database); return this.c; } catch (final SQLException e) @@ -54,22 +54,4 @@ public Connection open() return this.c; } - public boolean checkConnection() - { - if (this.c != null) - { - return true; - } - return false; - } - - public Connection getConn() - { - return this.c; - } - - public void closeConnection(Connection c) - { - this.c = null; - } } diff --git a/changelog.md b/changelog.md index 24bcf8bc..0806da37 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ * *v2-backport* support for unlimited games (max game time set to zero) (https://github.com/MysticCity/MinigamesAPI/issues/224) * Fixed ArrayIndexOutOfBounds in stop and spectate command * Fixed exceptions and several bugs related to spectation (https://github.com/MysticCity/MinigamesAPI/issues/230) +* Added SQLite support (https://github.com/MysticCity/MinigamesAPI/issues/220) ###### Conquer From 95f990246342344308a231ab4fff2956951741af Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 7 May 2017 17:37:35 +0200 Subject: [PATCH 235/266] bedwars: option to enabled/disable gui --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 0806da37..7189c3cc 100644 --- a/changelog.md +++ b/changelog.md @@ -13,6 +13,10 @@ * Fixed exceptions and several bugs related to spectation (https://github.com/MysticCity/MinigamesAPI/issues/230) * Added SQLite support (https://github.com/MysticCity/MinigamesAPI/issues/220) +###### BedWars + +* Option to disable GUI for servers that have there own gui implementation (https://github.com/MysticCity/MinigamesAPI/issues/253) + ###### Conquer * Team selector gui (https://github.com/MysticCity/MinigamesAPI/issues/216) From f9b5ab1c03684e57e454636ced81679e0835f762 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 8 May 2017 07:14:50 +0200 Subject: [PATCH 236/266] SkyWars: new chest mode --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 7189c3cc..af10d3c4 100644 --- a/changelog.md +++ b/changelog.md @@ -26,6 +26,10 @@ * Fixed runtime error in 1.8.5 to 1.8.9 * Fixed false positive error: Destroy mode invalid (https://github.com/MysticCity/MinigamesAPI/issues/225) +###### SkyWars + +* Added new mode 'items' for filling the chests. (https://github.com/MysticCity/MinigamesAPI/issues/254). For details siki wiki at https://github.com/MysticCity/MinigamesAPI/wiki/MGSkyWars + ###### Splegg * Fixed exception plaxying projectile sound in 1.7.X/1.8.X (https://github.com/MysticCity/MinigamesAPI/issues/241) From 0999be8a5a77da05715dcbbc5eefdca49e4c1bda Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Wed, 10 May 2017 06:55:55 +0200 Subject: [PATCH 237/266] fixed NPE --- .../minigamesapi/ArenaListener.java | 3 +- .../minigamesapi/SpectatorManager.java | 24 ++++--- .../util/ArenaLobbyScoreboard.java | 14 ++-- .../minigamesapi/util/ArenaScoreboard.java | 71 +++++++++++++++++-- changelog.md | 1 + 5 files changed, 93 insertions(+), 20 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 7f572a3c..5018fd11 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -84,6 +84,7 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import com.comze_instancelabs.minigamesapi.util.ArenaScoreboard; import com.comze_instancelabs.minigamesapi.util.ChangeCause; import com.comze_instancelabs.minigamesapi.util.Cuboid; import com.comze_instancelabs.minigamesapi.util.Util; @@ -2173,7 +2174,7 @@ public void onMobTarget(EntityTargetEvent evt) @Deprecated public static boolean isSpectating(final Player p) { - return Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p); + return ArenaScoreboard.mainScoreboardHasPlayer("spectators", p); } /** diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java index 1f605142..30737199 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SpectatorManager.java @@ -30,6 +30,7 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.scoreboard.Team; +import com.comze_instancelabs.minigamesapi.util.ArenaScoreboard; import com.comze_instancelabs.minigamesapi.util.IconMenu; import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; @@ -55,11 +56,11 @@ public SpectatorManager(final JavaPlugin plugin) public void setup() { - if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators") == null) + final Team t = ArenaScoreboard.getMainScoreboardTeam("spectators"); + if (t != null) { - Bukkit.getScoreboardManager().getMainScoreboard().registerNewTeam("spectators"); + t.setCanSeeFriendlyInvisibles(true); } - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").setCanSeeFriendlyInvisibles(true); this.clear(); } @@ -74,7 +75,7 @@ public void setSpectate(final Player p, final boolean spectate) p.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 9999999, 5), true); if (useScoreboard) { - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").addPlayer(p); + ArenaScoreboard.mainScoreboardAddPlayer("spectators", p); } } else @@ -84,9 +85,9 @@ public void setSpectate(final Player p, final boolean spectate) p.removePotionEffect(PotionEffectType.INVISIBILITY); if (useScoreboard) { - if (Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").hasPlayer(p)) + if (ArenaScoreboard.mainScoreboardHasPlayer("spectators", p)) { - Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators").removePlayer(p); + ArenaScoreboard.mainScoreboardRemovePlayer("spectators", p); } } } @@ -107,11 +108,14 @@ public static boolean isSpectating(final Player p) private void clear() { spectators.clear(); - final Team t = Bukkit.getScoreboardManager().getMainScoreboard().getTeam("spectators"); - final ArrayList<OfflinePlayer> offp_set = new ArrayList<>(t.getPlayers()); - for (final OfflinePlayer offp : offp_set) + final Team t = ArenaScoreboard.getMainScoreboardTeam("spectators"); + if (t != null) { - t.removePlayer(offp); + final ArrayList<OfflinePlayer> offp_set = new ArrayList<>(t.getPlayers()); + for (final OfflinePlayer offp : offp_set) + { + t.removePlayer(offp); + } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java index d71c59e9..5410b71a 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaLobbyScoreboard.java @@ -82,7 +82,11 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) final Player p = Bukkit.getPlayer(playername); if (!ArenaLobbyScoreboard.this.ascore.containsKey(playername)) { - ArenaLobbyScoreboard.this.ascore.put(playername, Bukkit.getScoreboardManager().getNewScoreboard()); + final ScoreboardManager sbm = Bukkit.getScoreboardManager(); + if (sbm != null) + { + ArenaLobbyScoreboard.this.ascore.put(playername, sbm.getNewScoreboard()); + } } if (!ArenaLobbyScoreboard.this.aobjective.containsKey(playername)) { @@ -163,9 +167,11 @@ public void removeScoreboard(final String arena, final Player p) try { final ScoreboardManager manager = Bukkit.getScoreboardManager(); - final Scoreboard sc = manager.getNewScoreboard(); - - p.setScoreboard(sc); + if (manager != null) + { + final Scoreboard sc = manager.getNewScoreboard(); + p.setScoreboard(sc); + } } catch (final Exception e) { diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java index 2bedb05f..bcd2ea5f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/ArenaScoreboard.java @@ -28,6 +28,7 @@ import org.bukkit.scoreboard.Score; import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.ScoreboardManager; +import org.bukkit.scoreboard.Team; import com.comze_instancelabs.minigamesapi.Arena; import com.comze_instancelabs.minigamesapi.ArenaConfigStrings; @@ -49,6 +50,56 @@ public class ArenaScoreboard ArrayList<String> loaded_custom_strings = new ArrayList<>(); + public static Scoreboard getMainScoreboard() + { + final ScoreboardManager sbm = Bukkit.getScoreboardManager(); + return sbm == null ? null : sbm.getMainScoreboard(); + } + + public static Team getMainScoreboardTeam(String team) + { + final Scoreboard main = getMainScoreboard(); + return main == null ? null : main.getTeam(team); + } + + public static boolean mainScoreboardHasPlayer(String team, Player p) + { + final Team t = getMainScoreboardTeam(team); + return t == null ? false : t.hasPlayer(p); + } + + public static void mainScoreboardAddPlayer(String team, Player p) + { + final Team t = getMainScoreboardTeam(team); + if (t != null) + { + t.addPlayer(p); + } + } + + public static void mainScoreboardRemovePlayer(String team, Player p) + { + final Team t = getMainScoreboardTeam(team); + if (t != null) + { + t.removePlayer(p); + } + } + + public static Team mainScoreboardRegisterTeam(String team) + { + final Scoreboard main = getMainScoreboard(); + if (main != null) + { + final Team t = main.getTeam(team); + if (t == null) + { + main.registerNewTeam(team); + } + } + return getMainScoreboardTeam(team); + } + public ArenaScoreboard() { // @@ -94,11 +145,15 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) return; } final Player p = Bukkit.getPlayer(playername); + final ScoreboardManager scoreboardManager = Bukkit.getScoreboardManager(); if (!ArenaScoreboard.this.custom) { if (!ArenaScoreboard.this.ascore.containsKey(arena.getInternalName())) { - ArenaScoreboard.this.ascore.put(arena.getInternalName(), Bukkit.getScoreboardManager().getNewScoreboard()); + if (scoreboardManager != null) + { + ArenaScoreboard.this.ascore.put(arena.getInternalName(), scoreboardManager.getNewScoreboard()); + } } if (!ArenaScoreboard.this.aobjective.containsKey(arena.getInternalName())) { @@ -112,7 +167,10 @@ public void updateScoreboard(final JavaPlugin plugin, final Arena arena) { if (!ArenaScoreboard.this.ascore.containsKey(playername)) { - ArenaScoreboard.this.ascore.put(playername, Bukkit.getScoreboardManager().getNewScoreboard()); + if (scoreboardManager != null) + { + ArenaScoreboard.this.ascore.put(playername, scoreboardManager.getNewScoreboard()); + } } if (!ArenaScoreboard.this.aobjective.containsKey(playername)) { @@ -267,9 +325,12 @@ public void removeScoreboard(final String arena, final Player p) try { final ScoreboardManager manager = Bukkit.getScoreboardManager(); - final Scoreboard sc = manager.getNewScoreboard(); - - p.setScoreboard(sc); + if (manager != null) + { + final Scoreboard sc = manager.getNewScoreboard(); + + p.setScoreboard(sc); + } } catch (final Exception e) { diff --git a/changelog.md b/changelog.md index af10d3c4..475bd5d2 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,7 @@ * Fixed ArrayIndexOutOfBounds in stop and spectate command * Fixed exceptions and several bugs related to spectation (https://github.com/MysticCity/MinigamesAPI/issues/230) * Added SQLite support (https://github.com/MysticCity/MinigamesAPI/issues/220) +* Fixed NullPointerException (https://github.com/MysticCity/MinigamesAPI/issues/249) ###### BedWars From 4cda2d22c464f82510d3aaca9283c30f062270ec Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sun, 14 May 2017 16:45:50 +0200 Subject: [PATCH 238/266] preparing 1.14.16 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 4dccabdb..2d3ce602 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.16-SNAPSHOT</version> + <version>1.14.16</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.16-SNAPSHOT</version> + <version>1.14.16</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 19546fed..206df9a1 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.16-SNAPSHOT</version> + <version>1.14.16</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.16-SNAPSHOT</version> + <version>1.14.16</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 07225836..66197a52 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.16-SNAPSHOT</version> + <version>1.14.16</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.16-SNAPSHOT</version> + <version>1.14.16</version> <scope>provided</scope> </dependency> <dependency> From 67efe808bca5ac7e838032a0108c1af1e65ea87d Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Sun, 14 May 2017 16:45:50 +0200 Subject: [PATCH 239/266] switching to 1.14.17 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index 2d3ce602..c30134fd 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.16</version> + <version>1.14.17-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.16</version> + <version>1.14.17-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 206df9a1..2a277447 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.16</version> + <version>1.14.17-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.16</version> + <version>1.14.17-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 66197a52..16200e32 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.16</version> + <version>1.14.17-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.16</minigames.releaseversion> + <minigames.releaseversion>1.14.17</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.11-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.16</version> + <version>1.14.17-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From ea9db515851b570ae89cbdbe902f0a03a033a548 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 18 May 2017 07:56:40 +0200 Subject: [PATCH 240/266] fixed npe --- changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/changelog.md b/changelog.md index 475bd5d2..1f659bc8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # Changelog +#### 1.14.17 + +###### All + +###### SkyWars + +* fixed NPE (https://github.com/MysticCity/MinigamesAPI/issues/262) + #### 1.14.16 ###### All From a4281cc4c9ee8130cea9105b98b074d2b5842b2a Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Jun 2017 07:24:42 +0200 Subject: [PATCH 241/266] 1.12 support --- API/maxMcVersion.txt | 2 +- .../minigamesapi/MinecraftVersionsType.java | 10 ++++++++++ .../comze_instancelabs/minigamesapi/MinigamesAPI.java | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/API/maxMcVersion.txt b/API/maxMcVersion.txt index 0c9cb695..35d51f33 100644 --- a/API/maxMcVersion.txt +++ b/API/maxMcVersion.txt @@ -1 +1 @@ -1.11.2 \ No newline at end of file +1.12 \ No newline at end of file diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java index 88c9f8f0..566fc669 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinecraftVersionsType.java @@ -72,6 +72,12 @@ public enum MinecraftVersionsType /** V1.11 R1 */ V1_11_R1(true, "v1_11_R1"), //$NON-NLS-1$ + /** any 1.12 version. */ + V1_12(true, "v1_12_R1"), //$NON-NLS-1$ + + /** V1.12 R1 */ + V1_12_R1(true, "v1_12_R1"), //$NON-NLS-1$ + ; /** @@ -121,6 +127,8 @@ public boolean isEqual(final MinecraftVersionsType type) { switch (this) { + case V1_12: + return type == V1_12 || type == V1_12_R1; case V1_11: return type == V1_11 || type == V1_11_R1; case V1_10: @@ -135,6 +143,8 @@ public boolean isEqual(final MinecraftVersionsType type) default: switch (type) { + case V1_12: + return this == V1_12 || this == V1_12_R1; case V1_11: return this == V1_11 || this == V1_11_R1; case V1_10: diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index b1c082b6..44039189 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -535,6 +535,10 @@ private static MinecraftVersionsType getServerVersion() { return MinecraftVersionsType.V1_11_R1; } + if (v.startsWith("v1_12_R1")) //$NON-NLS-1$ + { + return MinecraftVersionsType.V1_12_R1; + } } catch (@SuppressWarnings("unused") Exception ex) { From e91a2224589ca28cf8777499b13d329b9b8b53ca Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Jun 2017 12:34:19 +0200 Subject: [PATCH 242/266] fixed detection of first player waypoint --- changelog.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index 1f659bc8..87e3bd64 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,12 @@ ###### All +* Support for minecraft 1.12 (https://github.com/MysticCity/MinigamesAPI/issues/263) + +###### MobEscape + +* fixed detecting of first player waypoint (https://github.com/MysticCity/MinigamesAPI/issues/247) + ###### SkyWars * fixed NPE (https://github.com/MysticCity/MinigamesAPI/issues/262) From 1f27b5307e34b8344620e534ce14c307967d2999 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Jun 2017 12:51:36 +0200 Subject: [PATCH 243/266] fixed crushing crops --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index 87e3bd64..d7734252 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,10 @@ * fixed detecting of first player waypoint (https://github.com/MysticCity/MinigamesAPI/issues/247) +###### OITC + +* fixed crushing crops (https://github.com/MysticCity/MinigamesAPI/issues/257) + ###### SkyWars * fixed NPE (https://github.com/MysticCity/MinigamesAPI/issues/262) From 3fcba19427f38aac02736a40ee386b0b45ea32bc Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 11 Jun 2017 19:03:44 +0200 Subject: [PATCH 244/266] Fixed chest handling during smart reset --- .../minigamesapi/ArenaListener.java | 82 ++++++++----------- .../minigamesapi/SmartReset.java | 75 +---------------- changelog.md | 1 + 3 files changed, 38 insertions(+), 120 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 5018fd11..2802cb09 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -184,7 +184,7 @@ public void onExplode(final EntityExplodeEvent event) { for (final Block b : event.blockList()) { - a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(b); } } } @@ -219,7 +219,7 @@ public void onExplode2(final BlockExplodeEvent event) { if (c.containsLocWithoutY(b.getLocation())) { - a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(b); } } } @@ -257,7 +257,7 @@ public void onBlockFromTo(final BlockFromToEvent event) { if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getToBlock(), event.getToBlock().getType().equals(Material.CHEST), ChangeCause.FROM_TO); + a.getSmartReset().addChanged(event.getToBlock()); } else if (a.getArenaState() == ArenaState.RESTARTING) { @@ -293,7 +293,7 @@ public void onBlockFade(final BlockFadeEvent event) { if (c.containsLocWithoutY(event.getBlock().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.FADE); + a.getSmartReset().addChanged(event.getBlock()); } } } @@ -338,7 +338,7 @@ public void onBlockPhysics(final BlockPhysicsEvent event) { return; } - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.PHYSICS); + a.getSmartReset().addChanged(event.getBlock()); } } else if (a.getArenaState() == ArenaState.RESTARTING) @@ -374,7 +374,7 @@ public void onBlockRedstone(final BlockRedstoneEvent event) { if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getBlock(), false); + a.getSmartReset().addChanged(event.getBlock()); } } } @@ -447,7 +447,7 @@ public void onEntityChangeBlock(final EntityChangeBlockEvent event) { if (c.containsLocWithoutY(event.getEntity().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.ENTITY_CHANGE); + a.getSmartReset().addChanged(event.getBlock()); } } } @@ -479,7 +479,7 @@ public void onLeavesDecay(final LeavesDecayEvent event) { if (c.containsLocWithoutY(event.getBlock().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock()); } } } @@ -511,7 +511,7 @@ public void onBlockBurn(final BlockBurnEvent event) { if (c.containsLocWithoutY(event.getBlock().getLocation())) { - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BURN); + a.getSmartReset().addChanged(event.getBlock()); } } } @@ -544,7 +544,7 @@ public void onStructureGrow(final StructureGrowEvent event) final Location start = event.getLocation(); if (c.containsLocWithoutY(start)) { - a.getSmartReset().addChanged(start.getBlock(), false); + a.getSmartReset().addChanged(start.getBlock()); for (final BlockState bs : event.getBlocks()) { final Block b = bs.getBlock(); @@ -579,7 +579,7 @@ public void onBlockBreak2(final BlockBreakEvent event) final Arena a = this.pli.global_players.get(p.getName()); if (event.getBlock().getType() != Material.AIR) { - a.getSmartReset().addChanged(event.getBlock().getLocation(), event.getBlock().getType(), event.getBlock().getData()); + a.getSmartReset().addChanged(event.getBlock()); } } } @@ -1326,53 +1326,37 @@ public void onBlockBreak(final BlockBreakEvent event) event.setCancelled(true); return; } - a.getSmartReset().addChanged(event.getBlock(), event.getBlock().getType().equals(Material.CHEST), ChangeCause.BREAK); + a.getSmartReset().addChanged(event.getBlock()); if (event.getBlock().getType() == Material.DOUBLE_PLANT) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, -1D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock()); } if (event.getBlock().getType() == Material.SNOW || event.getBlock().getType() == Material.SNOW_BLOCK) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock()); } if (event.getBlock().getType() == Material.CARPET) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock()); } if (event.getBlock().getType() == Material.CACTUS) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +4D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +3D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +2D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, +1D, 0D).getBlock()); } if (event.getBlock().getType() == Material.BED_BLOCK) { - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(1D, 0D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(1D, 0D, 1D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(-1D, 0D, 0D).getBlock(), - event.getBlock().getLocation().clone().add(1D, 0D, -1D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, 1D).getBlock(), - event.getBlock().getLocation().clone().add(-1D, 0D, 1D).getBlock().getType().equals(Material.CHEST)); - a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, -1D).getBlock(), - event.getBlock().getLocation().clone().add(-1D, 0D, -1D).getBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(1D, 0D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(-1D, 0D, 0D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, 1D).getBlock()); + a.getSmartReset().addChanged(event.getBlock().getLocation().clone().add(0D, 0D, -1D).getBlock()); } } if (event.getBlock().getType() == Material.SIGN_POST || event.getBlock().getType() == Material.WALL_SIGN) @@ -1415,7 +1399,7 @@ public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) for (int z = -2; z < 2; z++) { final Block b = start.getLocation().clone().add(x, y, z).getBlock(); - a.getSmartReset().addChanged(b, b.getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(b); } } } @@ -1566,7 +1550,7 @@ else if (event.getClickedBlock().getType() == Material.CHEST) final Arena a = this.pli.global_players.get(p.getName()); if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), true); + a.getSmartReset().addChanged(event.getClickedBlock()); } } } @@ -1578,7 +1562,7 @@ else if (event.getClickedBlock().getType() == Material.TNT) final Arena a = this.pli.global_players.get(p.getName()); if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), false); + a.getSmartReset().addChanged(event.getClickedBlock()); // TODO maybe add radius of blocks around this tnt manually } } @@ -1597,7 +1581,7 @@ else if (event.getPlayer().getItemInHand().getType() == Material.WATER_BUCKET || } if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), event.getClickedBlock().getType().equals(Material.CHEST)); + a.getSmartReset().addChanged(event.getClickedBlock()); // a.getSmartReset().addChanged(event.getClickedBlock().getLocation().add(0D, 1D, 0D)); } } @@ -1610,7 +1594,7 @@ else if (event.getClickedBlock().getType() == Material.DISPENSER || event.getCli final Arena a = this.pli.global_players.get(p.getName()); if (a.getArenaState() == ArenaState.INGAME) { - a.getSmartReset().addChanged(event.getClickedBlock(), false); + a.getSmartReset().addChanged(event.getClickedBlock()); } } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java index f5ae8f14..2c6ef053 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/SmartReset.java @@ -47,7 +47,6 @@ import org.bukkit.util.io.BukkitObjectInputStream; import org.bukkit.util.io.BukkitObjectOutputStream; -import com.comze_instancelabs.minigamesapi.util.ChangeCause; import com.comze_instancelabs.minigamesapi.util.SmartArenaBlock; import com.comze_instancelabs.minigamesapi.util.Util; @@ -133,76 +132,6 @@ public SmartArenaBlock addChanged(Block b, BlockState blockReplacedState) return this.addChanged(b.getLocation(), blockReplacedState.getType(), blockReplacedState.getData().getData()); } - /** - * Adds changed block. - * - * @param b - * block to be added - * @param isChest - * true if block is a chest - * @return the smart arena block or {@code null} if the block already was added before - */ - public SmartArenaBlock addChanged(final Block b, final boolean isChest) - { - if (!this.changed.hasBlock(b.getLocation())) - { - if (MinigamesAPI.debug) - { - MinigamesAPI.getAPI().getLogger().info("(2) adding changed block for location " + b.getLocation()); - } - final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - this.changed.putBlock(b.getLocation(), sablock); - return sablock; - } - return null; - } - - /** - * Adds changed block. - * - * @param b - * block to be added - * @param isChest - * true if block is a chest - * @param cause - * the cause for adding the change (currently ignore) - * @return the smart arena block or {@code null} if the block already was added before - */ - public SmartArenaBlock addChanged(final Block b, final boolean isChest, final ChangeCause cause) - { - if (!this.changed.hasBlock(b.getLocation())) - { - if (MinigamesAPI.debug) - { - MinigamesAPI.getAPI().getLogger().info("(3) adding changed block for location " + b.getLocation()); - } - final SmartArenaBlock sablock = new SmartArenaBlock(b, isChest, b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST); - this.changed.putBlock(b.getLocation(), sablock); - return sablock; - } - return null; - } - - /** - * Adds changed block - * - * @param l - * location of the block - * @deprecated will be removed in future versions. - */ - @Deprecated - public void addChanged(final Location l) - { - if (!this.changed.hasBlock(l)) - { - if (MinigamesAPI.debug) - { - MinigamesAPI.getAPI().getLogger().info("(4) adding changed block for location " + l); - } - this.changed.putBlock(l, new SmartArenaBlock(l, Material.AIR, (byte) 0)); - } - } - /** * Adds changed block * @@ -223,6 +152,10 @@ public SmartArenaBlock addChanged(final Location l, final Material m, final byte MinigamesAPI.getAPI().getLogger().info("(5) adding changed block for location " + l); } final SmartArenaBlock sab = new SmartArenaBlock(l, m, data); + if (m == Material.CHEST) + { + sab.setInventory(((Chest)l.getBlock().getState()).getInventory()); + } this.changed.putBlock(l, sab); return sab; } diff --git a/changelog.md b/changelog.md index d7734252..c840ce19 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ ###### All * Support for minecraft 1.12 (https://github.com/MysticCity/MinigamesAPI/issues/263) +* Fixed chest handling during smart reset (https://github.com/MysticCity/MinigamesAPI/issues/230) ###### MobEscape From 4cf34aa19ab298c804804f4949b1f0e5584e2cba Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 12 Jun 2017 06:46:29 +0200 Subject: [PATCH 245/266] fixed bungee server sign updates --- .../minigamesapi/LobbySignManager.java | 321 ++++++++++++++++++ .../minigamesapi/MinigamesAPI.java | 297 ++++++++-------- changelog.md | 1 + 3 files changed, 486 insertions(+), 133 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java new file mode 100644 index 00000000..10815eb4 --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java @@ -0,0 +1,321 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.block.Sign; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.event.block.SignChangeEvent; +import org.bukkit.plugin.Plugin; + +import com.comze_instancelabs.minigamesapi.util.Signs; +import com.google.common.io.ByteArrayDataOutput; +import com.google.common.io.ByteStreams; + +/** + * Manager for cross server lobby signs. + * + * @author mepeisen + * + */ +public class LobbySignManager +{ + + /** + * hash map for signs. + */ + private final Map<Location, SignData> signs = new HashMap<>(); + + /** + * minigames api. + */ + final Plugin plugin; + + /** + * Constructor. + * + * @param plugin + */ + public LobbySignManager(Plugin plugin) + { + this.plugin = plugin; + } + + /** + * Attaches a new sign to the sign manager, + * + * @param location + * location + * @param serverName + * server name + * @param minigameName + * minigame name + * @param arenaName + * arena name + * @param spec + * true for spectator sign, false for join sign + */ + public void attachSign(Location location, String serverName, String minigameName, String arenaName, boolean spec) + { + final SignData data = new SignData(location, serverName, minigameName, arenaName, spec); + this.signs.put(location, data); + data.setSignData(null); + } + + /** + * Attaches a new sign to the sign manager, + * + * @param location + * location + * @param serverName + * server name + * @param minigameName + * minigame name + * @param arenaName + * arena name + * @param spec + * true for spectator sign, false for join sign + * @param evt + * sign change event + */ + public void attachSign(Location location, String serverName, String minigameName, String arenaName, boolean spec, SignChangeEvent evt) + { + final SignData data = new SignData(location, serverName, minigameName, arenaName, spec); + this.signs.put(location, data); + data.setSignData(evt); + } + + /** + * request sign updates. + * + * @param location + */ + public void requestSignUpdate(Location location) + { + final SignData data = this.signs.get(location); + if (data != null) + { + data.requestServerSign(); + } + } + + /** + * Detaches a sign from manager. + * + * @param location + */ + public void detachSign(Location location) + { + this.signs.remove(location); + } + + /** + * @param location + * @param arenastate + * @param count + * @param maxcount + */ + public void updateSign(Location location, String arenastate, int count, int maxcount) + { + final SignData data = this.signs.get(location); + if (data != null) + { + data.setSignData(count, maxcount, arenastate, null); + data.updateResponseDate(); + } + } + + /** + * private sign data. + */ + private final class SignData + { + + /** sign location. */ + private final Location location; + + /** server name. */ + private final String serverName; + + /** arena name. */ + private final String arenaName; + + /** minigame name. */ + private final String minigameName; + + /** spectate sign? */ + private final boolean spec; + + /** + * last max players info. + */ + int lastMaxPlayers = 10; + + /** last request of sign update. */ + LocalDateTime lastRequest = LocalDateTime.now(); + + /** last response of sign update. */ + LocalDateTime lastResponse = this.lastRequest; + + /** + * @param location + * @param serverName + * @param minigameName + * @param arenaName + * @param spec + */ + public SignData(Location location, String serverName, String minigameName, String arenaName, boolean spec) + { + this.location = location; + this.serverName = serverName; + this.minigameName = minigameName; + this.arenaName = arenaName; + this.spec = spec; + } + + /** + * Updates the last response data. + */ + public void updateResponseDate() + { + this.lastResponse = LocalDateTime.now(); + } + + /** + * Request server sign update. + */ + public void requestServerSign() + { + this.lastRequest = LocalDateTime.now(); + try + { + ByteArrayDataOutput out = ByteStreams.newDataOutput(); + try + { + out.writeUTF("Forward"); //$NON-NLS-1$ + out.writeUTF(this.serverName); + out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST); + + ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); + DataOutputStream msgout = new DataOutputStream(msgbytes); + msgout.writeUTF(this.minigameName + ":" + this.arenaName); //$NON-NLS-1$ + + out.writeShort(msgbytes.toByteArray().length); + out.write(msgbytes.toByteArray()); + + Bukkit.getServer().sendPluginMessage(LobbySignManager.this.plugin, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); + + // TODO if no answer after 2 seconds, server empty! + + } + catch (Exception e) + { + MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); //$NON-NLS-1$ + } + } + catch (Exception e) + { + LobbySignManager.this.plugin.getLogger().log(Level.WARNING, "Error occurred while sending extra sign request: ", e); //$NON-NLS-1$ + } + } + + /** + * Sets initial sign data. + * + * @param evt + */ + public void setSignData(SignChangeEvent evt) + { + this.setSignData(0, 10, this.spec ? "SPEC" : "JOIN", evt); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Sets sign data. + * + * @param count + * @param maxcount + * @param arenastate + * @param evt + */ + public void setSignData(int count, int maxcount, String arenastate, SignChangeEvent evt) + { + this.lastMaxPlayers = maxcount; + final FileConfiguration cfg = LobbySignManager.this.plugin.getConfig(); + final String line0 = Signs.format(cfg.getString("signs." + arenastate.toLowerCase() + ".0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .replace("<arena>", this.arenaName).replace("<minigame>", this.minigameName)); //$NON-NLS-1$ //$NON-NLS-2$ + final String line1 = Signs.format(cfg.getString("signs." + arenastate.toLowerCase() + ".1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .replace("<arena>", this.arenaName).replace("<minigame>", this.minigameName)); //$NON-NLS-1$ //$NON-NLS-2$ + final String line2 = Signs.format(cfg.getString("signs." + arenastate.toLowerCase() + ".2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .replace("<arena>", this.arenaName).replace("<minigame>", this.minigameName)); //$NON-NLS-1$ //$NON-NLS-2$ + final String line3 = Signs.format(cfg.getString("signs." + arenastate.toLowerCase() + ".3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + .replace("<arena>", this.arenaName).replace("<minigame>", this.minigameName)); //$NON-NLS-1$ //$NON-NLS-2$ + if (evt == null) + { + final Sign sign = (Sign) this.location.getBlock().getState(); + sign.setLine(0, line0); + sign.setLine(1, line1); + sign.setLine(2, line2); + sign.setLine(3, line3); + sign.getBlock().getChunk().load(); + sign.update(); + } + else + { + evt.setLine(0, line0); + evt.setLine(1, line1); + evt.setLine(2, line2); + evt.setLine(3, line3); + } + } + + } + + /** + * + */ + public void ping() + { + for (final SignData data : this.signs.values()) + { + if (data.lastResponse.isBefore(data.lastRequest)) + { + if (data.lastResponse.until(data.lastRequest, ChronoUnit.SECONDS) > 5) + { + // assume there are no more players + data.setSignData(0, data.lastMaxPlayers, "JOIN", null); //$NON-NLS-1$ + data.updateResponseDate(); + } + } + else + { + if (data.lastResponse.until(LocalDateTime.now(), ChronoUnit.SECONDS) > 60) + { + data.requestServerSign(); + } + } + } + } + +} diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 44039189..80d47d68 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -65,7 +65,6 @@ import com.comze_instancelabs.minigamesapi.util.Metrics; import com.comze_instancelabs.minigamesapi.util.Metrics.Graph; import com.comze_instancelabs.minigamesapi.util.ParticleEffectNew; -import com.comze_instancelabs.minigamesapi.util.Signs; import com.comze_instancelabs.minigamesapi.util.UpdaterNexus; import com.comze_instancelabs.minigamesapi.util.Util; import com.comze_instancelabs.minigamesapi.util.Validator; @@ -187,10 +186,13 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener, L Metrics metrics; /** the current motd */ - private String motd; + private String motd; /** suppliers or the motd strings. */ - private Iterator<Supplier<String>> motdStrings = Collections.emptyIterator(); + private Iterator<Supplier<String>> motdStrings = Collections.emptyIterator(); + + /** the lobby sign manager. */ + private final LobbySignManager signManager = new LobbySignManager(this); @Override public void onEnable() @@ -398,11 +400,47 @@ public int getValue() } Bukkit.getPluginManager().registerEvents(this, this); + + Bukkit.getScheduler().runTaskLater(this, () -> { + final ConfigurationSection configurationSection = getConfig().getConfigurationSection("arenas"); //$NON-NLS-1$ + if (configurationSection != null) + { + for (final String mg : configurationSection.getKeys(false)) + { + for (final String arena : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg).getKeys(false)) + { + final String server = getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".server"); //$NON-NLS-1$ //$NON-NLS-2$ + if (server != null) + { + final String world = getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world"); //$NON-NLS-1$ //$NON-NLS-2$ + final int x = getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x"); //$NON-NLS-1$ //$NON-NLS-2$ + final int y = getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y"); //$NON-NLS-1$ //$NON-NLS-2$ + final int z = getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z"); //$NON-NLS-1$ //$NON-NLS-2$ + this.signManager.attachSign(new Location(Bukkit.getWorld(world), x, y, z), server, mg, arena, false); + } + final String specserver = getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specserver"); //$NON-NLS-1$ //$NON-NLS-2$ + if (specserver != null) + { + final String world = getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld"); //$NON-NLS-1$ //$NON-NLS-2$ + final int x = getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x"); //$NON-NLS-1$ //$NON-NLS-2$ + final int y = getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y"); //$NON-NLS-1$ //$NON-NLS-2$ + final int z = getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z"); //$NON-NLS-1$ //$NON-NLS-2$ + this.signManager.attachSign(new Location(Bukkit.getWorld(world), x, y, z), server, mg, arena, true); + } + } + } + } + }, 1L); + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> { + this.signManager.ping(); + }, 60L, 26L); } /** * Returns the arena for player if already playing - * @param playerName players name + * + * @param playerName + * players name * @return arena or {@code null} if not inside an arena */ public Arena getArenaForPlayer(String playerName) @@ -410,7 +448,8 @@ public Arena getArenaForPlayer(String playerName) for (final PluginInstance pli : this.pinstances.values()) { final Arena arena = pli.global_players.get(playerName); - if (arena != null) return arena; + if (arena != null) + return arena; } return null; } @@ -437,6 +476,7 @@ public boolean economyAvailable() /** * Returns the permission prefix for minigames lib itself. + * * @return permission prefix minigames lib. */ public String getPermissionPrefix() @@ -446,6 +486,7 @@ public String getPermissionPrefix() /** * Returns the permission prefix for minigames lib itself. + * * @return permission prefix minigames lib. */ public String getPermissionKitPrefix() @@ -455,6 +496,7 @@ public String getPermissionKitPrefix() /** * Returns the permission prefix for minigames lib itself. + * * @return permission prefix minigames lib. */ public String getPermissionGunPrefix() @@ -464,6 +506,7 @@ public String getPermissionGunPrefix() /** * Returns the permission prefix for minigames lib itself. + * * @return permission prefix minigames lib. */ public String getPermissionShopPrefix() @@ -473,7 +516,9 @@ public String getPermissionShopPrefix() /** * Returns the permission prefix for a minigame. - * @param game the minigame name. + * + * @param game + * the minigame name. * @return permission prefix */ public String getPermissionGamePrefix(String game) @@ -1230,8 +1275,8 @@ public void onPluginMessageReceived(final String channel, final Player player, f final String[] split = playerData.split(":"); //$NON-NLS-1$ final String plugin_ = split[0]; final String arena = split[1]; - final String playername = split.length >=4 ? split[3] : split[2]; - final String mode = split.length >=4 ? split[2] : "join"; + final String playername = split.length >= 4 ? split[3] : split[2]; + final String mode = split.length >= 4 ? split[2] : "join"; if (debug) { @@ -1332,9 +1377,10 @@ else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN)) short len = in.readShort(); byte[] msgbytes = new byte[len]; in.readFully(msgbytes); - + DataInputStream msgin = new DataInputStream(new ByteArrayInputStream(msgbytes)); - try { + try + { final String signData = msgin.readUTF(); final String[] splitted = signData.split(":"); //$NON-NLS-1$ final String plugin_ = splitted[0]; @@ -1347,13 +1393,16 @@ else if (subchannel.equals(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN)) { this.getLogger().info("channel message: " + ChannelStrings.SUBCHANNEL_MINIGAMESLIB_SIGN + " -> " + signData); //$NON-NLS-1$ //$NON-NLS-2$ } - + Bukkit.getScheduler().runTaskLater(this, new Runnable() { - public void run() { + public void run() + { updateSign(plugin_, arena, arenastate, count, maxcount); } }, 10L); - } catch (IOException e) { + } + catch (IOException e) + { MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); } } @@ -1557,9 +1606,10 @@ public void onSignUse(PlayerInteractEvent event) } } - + /** * Let a player join a server over bungeecord network + * * @param server * @param player * @param signInfo @@ -1597,109 +1647,94 @@ private void letPlayerJoinServer(String server, final Player player, final Strin connectToServer(this, player.getName(), server); } + @EventHandler + public void onSignBreak(BlockBreakEvent event) + { + if (event.getBlock().getType() == Material.SIGN_POST || event.getBlock().getType() == Material.WALL_SIGN) + { + String server = getServerBySignLocation(event.getBlock().getLocation()); + if (server != null) + { + this.signManager.detachSign(event.getBlock().getLocation()); + final String[] splitted = getInfoBySignLocation(event.getBlock().getLocation()).split(":"); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + splitted[0] + "." + splitted[1], null); + } + } + } + @EventHandler public void onSignChange(SignChangeEvent event) { Player p = event.getPlayer(); - if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglib")) + if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglib")) //$NON-NLS-1$ { - if (event.getPlayer().hasPermission(getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) + if (event.getPlayer().hasPermission(getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) //$NON-NLS-1$ { - if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) + if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ { String mg = event.getLine(1); String arena = event.getLine(2); String server = event.getLine(3); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".server", server); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world", p.getWorld().getName()); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x", event.getBlock().getLocation().getBlockX()); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y", event.getBlock().getLocation().getBlockY()); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z", event.getBlock().getLocation().getBlockZ()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".server", server); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world", p.getWorld().getName()); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x", event.getBlock().getLocation().getBlockX()); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y", event.getBlock().getLocation().getBlockY()); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z", event.getBlock().getLocation().getBlockZ()); //$NON-NLS-1$ //$NON-NLS-2$ saveConfig(); - p.sendMessage(ChatColor.GREEN + "Successfully set sign."); - - updateSign(mg, arena, "JOIN", event); - - requestServerSign(mg, arena); + p.sendMessage(ChatColor.GREEN + "Successfully set sign."); //$NON-NLS-1$ + this.signManager.attachSign(event.getBlock().getLocation(), server, mg, arena, false, event); + this.signManager.requestSignUpdate(event.getBlock().getLocation()); } } } - else if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglibspec")) + else if (event.getLine(0).toLowerCase().equalsIgnoreCase("mglibspec")) //$NON-NLS-1$ { - if (event.getPlayer().hasPermission(getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) + if (event.getPlayer().hasPermission(getPermissionPrefix() + ".sign") || event.getPlayer().isOp()) //$NON-NLS-1$ { - if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) + if (!event.getLine(1).equalsIgnoreCase("") && !event.getLine(2).equalsIgnoreCase("") && !event.getLine(3).equalsIgnoreCase("")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ { String mg = event.getLine(1); String arena = event.getLine(2); String server = event.getLine(3); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specserver", server); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld", p.getWorld().getName()); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x", event.getBlock().getLocation().getBlockX()); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y", event.getBlock().getLocation().getBlockY()); - getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z", event.getBlock().getLocation().getBlockZ()); + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specserver", server); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld", p.getWorld().getName()); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x", event.getBlock().getLocation().getBlockX()); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y", event.getBlock().getLocation().getBlockY()); //$NON-NLS-1$ //$NON-NLS-2$ + getConfig().set(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z", event.getBlock().getLocation().getBlockZ()); //$NON-NLS-1$ //$NON-NLS-2$ saveConfig(); - p.sendMessage(ChatColor.GREEN + "Successfully set sign."); - - updateSign(mg, arena, "SPEC", event); - - requestServerSign(mg, arena); + p.sendMessage(ChatColor.GREEN + "Successfully set sign."); //$NON-NLS-1$ + this.signManager.attachSign(event.getBlock().getLocation(), server, mg, arena, true, event); + this.signManager.requestSignUpdate(event.getBlock().getLocation()); } } } } - public void requestServerSign(String mg_key, String arena_key) + private Sign getSignFromArena(String mg, String arena) { - try + if (!getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world")) { - ByteArrayDataOutput out = ByteStreams.newDataOutput(); - try - { - out.writeUTF("Forward"); - out.writeUTF("ALL"); - out.writeUTF(ChannelStrings.SUBCHANNEL_MINIGAMESLIB_REQUEST); - - ByteArrayOutputStream msgbytes = new ByteArrayOutputStream(); - DataOutputStream msgout = new DataOutputStream(msgbytes); - msgout.writeUTF(mg_key + ":" + arena_key); - - out.writeShort(msgbytes.toByteArray().length); - out.write(msgbytes.toByteArray()); - - Bukkit.getServer().sendPluginMessage(this, ChannelStrings.CHANNEL_BUNGEE_CORD, out.toByteArray()); - - // TODO if no answer after 2 seconds, server empty! - - } - catch (Exception e) - { - MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "exception", e); - } - } - catch (Exception e) - { - this.getLogger().log(Level.WARNING,"Error occurred while sending extra sign request: ", e); - } - } - - private Sign getSignFromArena(String mg, String arena) { - if (!getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world")) { return null; } - Location b_ = new Location(Bukkit.getServer().getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world")), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z")); - if (b_ != null) { - if (b_.getWorld() != null) { - if (b_.getBlock().getState() != null) { + Location b_ = new Location(Bukkit.getServer().getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".loc.z")); + if (b_ != null) + { + if (b_.getWorld() != null) + { + if (b_.getBlock().getState() != null) + { BlockState bs = b_.getBlock().getState(); Sign s_ = null; - if (bs instanceof Sign) { + if (bs instanceof Sign) + { s_ = (Sign) bs; } return s_; @@ -1708,18 +1743,26 @@ private Sign getSignFromArena(String mg, String arena) { } return null; } - - private Sign getSpecSignFromArena(String mg, String arena) { - if (!getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld")) { + + private Sign getSpecSignFromArena(String mg, String arena) + { + if (!getConfig().isSet(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld")) + { return null; } - Location b_ = new Location(Bukkit.getServer().getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld")), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z")); - if (b_ != null) { - if (b_.getWorld() != null) { - if (b_.getBlock().getState() != null) { + Location b_ = new Location(Bukkit.getServer().getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specworld")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.x"), getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg + "." + arena + ".specloc.z")); + if (b_ != null) + { + if (b_.getWorld() != null) + { + if (b_.getBlock().getState() != null) + { BlockState bs = b_.getBlock().getState(); Sign s_ = null; - if (bs instanceof Sign) { + if (bs instanceof Sign) + { s_ = (Sign) bs; } return s_; @@ -1728,33 +1771,25 @@ private Sign getSpecSignFromArena(String mg, String arena) { } return null; } - - public void updateSign(String mg, String arenaname, String arenastate, int count, int maxcount) { + + public void updateSign(String mg, String arenaname, String arenastate, int count, int maxcount) + { Sign s = getSignFromArena(mg, arenaname); - if (s != null) { - s.getBlock().getChunk().load(); - s.setLine(0, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.setLine(1, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.setLine(2, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.setLine(3, Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.getBlock().getChunk().load(); - s.update(); - }s = getSpecSignFromArena(mg, arenaname); - if (s != null) { - s.getBlock().getChunk().load(); - s.setLine(0, Signs.format(getConfig().getString("signs.spec.0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.setLine(1, Signs.format(getConfig().getString("signs.spec.1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.setLine(2, Signs.format(getConfig().getString("signs.spec.2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.setLine(3, Signs.format(getConfig().getString("signs.spec.3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)).replace("<arena>", arenaname).replace("<minigame>", mg))); - s.getBlock().getChunk().load(); - s.update(); + if (s != null) + { + this.signManager.updateSign(s.getLocation(), arenastate, count, maxcount); + } + s = getSpecSignFromArena(mg, arenaname); + if (s != null) + { + this.signManager.updateSign(s.getLocation(), "SPEC", count, maxcount); } } public void sendSignUpdate(final PluginInstance pli, final Arena a) { String signString; - + if (a == null) { signString = pli.getPlugin().getName() + ":null:JOIN:0:0"; @@ -1789,27 +1824,9 @@ public void sendSignUpdate(final PluginInstance pli, final Arena a) } catch (Exception e) { - this.getLogger().log(Level.WARNING,"Error occurred while sending extra sign request: ", e); + this.getLogger().log(Level.WARNING, "Error occurred while sending extra sign request: ", e); } } - - public void updateSign(String mg, String arenaname, String arenastate, SignChangeEvent event) - { - int count = 0; - int maxcount = 10; - event.setLine(0, - Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".0").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arenaname).replace("<minigame>", mg))); - event.setLine(1, - Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".1").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arenaname).replace("<minigame>", mg))); - event.setLine(2, - Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".2").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arenaname).replace("<minigame>", mg))); - event.setLine(3, - Signs.format(getConfig().getString("signs." + arenastate.toLowerCase() + ".3").replace("<count>", Integer.toString(count)).replace("<maxcount>", Integer.toString(maxcount)) - .replace("<arena>", arenaname).replace("<minigame>", mg))); - } public String getServerBySignLocation(Location sign) { @@ -1819,18 +1836,32 @@ public String getServerBySignLocation(Location sign) { for (String arena_key : getConfig().getConfigurationSection(ArenaConfigStrings.ARENAS_PREFIX + mg_key + ".").getKeys(false)) { - Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), - getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); - if (l.distance(sign) < 1) + if (getConfig().isString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")) + { + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".world")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".loc.z")); + if (l.distance(sign) < 1) + { + return getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server"); + } + } + if (getConfig().isString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specworld")) { - return getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".server"); + Location l = new Location(Bukkit.getWorld(getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specworld")), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.x"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.y"), + getConfig().getInt(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specloc.z")); + if (l.distance(sign) < 1) + { + return getConfig().getString(ArenaConfigStrings.ARENAS_PREFIX + mg_key + "." + arena_key + ".specserver"); + } } } } } - return ""; + return null; } public String getInfoBySignLocation(Location sign) diff --git a/changelog.md b/changelog.md index c840ce19..e9095bbf 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ * Support for minecraft 1.12 (https://github.com/MysticCity/MinigamesAPI/issues/263) * Fixed chest handling during smart reset (https://github.com/MysticCity/MinigamesAPI/issues/230) +* Fixed bungee support for empty servers (https://github.com/MysticCity/MinigamesAPI/issues/217) ###### MobEscape From 92a08fc3cbe28145f14a80d495b03d4b789b686c Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Mon, 12 Jun 2017 07:27:48 +0200 Subject: [PATCH 246/266] preparing 1.14.17 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index c30134fd..f2bf3783 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.17-SNAPSHOT</version> + <version>1.14.17</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.17-SNAPSHOT</version> + <version>1.14.17</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index 2a277447..a602ea6a 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.17-SNAPSHOT</version> + <version>1.14.17</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.17-SNAPSHOT</version> + <version>1.14.17</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 16200e32..145e1091 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.17-SNAPSHOT</version> + <version>1.14.17</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.17-SNAPSHOT</version> + <version>1.14.17</version> <scope>provided</scope> </dependency> <dependency> From f3a96aa25d62d5b83e7a805c528ef505883cefa9 Mon Sep 17 00:00:00 2001 From: Hudson Continuous Build server <mep_eisen@web.de> Date: Mon, 12 Jun 2017 07:27:48 +0200 Subject: [PATCH 247/266] switching to 1.14.18 --- API/pom.xml | 4 ++-- Spigot-Test/pom.xml | 4 ++-- pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/API/pom.xml b/API/pom.xml index f2bf3783..6d4dcda6 100644 --- a/API/pom.xml +++ b/API/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.17</version> + <version>1.14.18-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-API</name> <description>Rich Minigames API</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.17</version> + <version>1.14.18-SNAPSHOT</version> </parent> <dependencies> diff --git a/Spigot-Test/pom.xml b/Spigot-Test/pom.xml index a602ea6a..62dece46 100644 --- a/Spigot-Test/pom.xml +++ b/Spigot-Test/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-Spigot-Test</artifactId> - <version>1.14.17</version> + <version>1.14.18-SNAPSHOT</version> <packaging>jar</packaging> <name>MinigamesLib-Spigot-Test</name> <description>Spigot-Test-Utilities</description> @@ -11,7 +11,7 @@ <parent> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.17</version> + <version>1.14.18-SNAPSHOT</version> </parent> <dependencies> diff --git a/pom.xml b/pom.xml index 145e1091..1c0e1d16 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib-parent</artifactId> - <version>1.14.17</version> + <version>1.14.18-SNAPSHOT</version> <packaging>pom</packaging> <name>MinigamesLib-parent</name> <properties> @@ -13,7 +13,7 @@ <java.version>1.8</java.version> <powermock.version>1.6.5</powermock.version> <junit.version>4.12</junit.version> - <minigames.releaseversion>1.14.17</minigames.releaseversion> + <minigames.releaseversion>1.14.18</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> <spigot.version>1.11-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> @@ -57,7 +57,7 @@ <dependency> <groupId>com.github.MCE-Plugins</groupId> <artifactId>MinigamesLib</artifactId> - <version>1.14.17</version> + <version>1.14.18-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> From ae27f78fbe4a0bb6cee6494e4b62e60355989f66 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 18 Jun 2017 16:49:29 +0200 Subject: [PATCH 248/266] fixed broken start sound, fixed NPE --- changelog.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/changelog.md b/changelog.md index e9095bbf..1014a52a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,19 @@ # Changelog +#### 1.14.18 + +###### All + +###### HorseRacingPlus + +* Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) +* Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) +* Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) + +###### ColorMatch + +* Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) + #### 1.14.17 ###### All From ed840a0184543dc6e2d8bc464e2d49b7e2ca8246 Mon Sep 17 00:00:00 2001 From: wysohn <wysohn2002@naver.com> Date: Tue, 4 Jul 2017 23:18:12 -0700 Subject: [PATCH 249/266] Each events should have HanderList --- .../minigamesapi/events/ArenaEvent.java | 21 ++++------------- .../minigamesapi/events/ArenaStartEvent.java | 16 +++++++++++-- .../events/ArenaStartedEvent.java | 15 ++++++++++-- .../minigamesapi/events/ArenaStopEvent.java | 16 +++++++++++-- .../minigamesapi/events/PlayerEvent.java | 23 ++++--------------- .../events/PlayerJoinLobbyEvent.java | 16 +++++++++++-- .../events/PlayerLeaveArenaEvent.java | 16 +++++++++++-- 7 files changed, 78 insertions(+), 45 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java index 3fe6b915..9e62f34b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaEvent.java @@ -15,41 +15,28 @@ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; -public class ArenaEvent extends Event +public abstract class ArenaEvent extends Event { - private static final HandlerList handlers = new HandlerList(); private final Arena arena; private final JavaPlugin plugin; - + public ArenaEvent(final JavaPlugin plugin, final Arena a) { this.arena = a; this.plugin = plugin; } - + public Arena getArena() { return this.arena; } - + public JavaPlugin getPlugin() { return this.plugin; } - - @Override - public HandlerList getHandlers() - { - return ArenaEvent.handlers; - } - - public static HandlerList getHandlerList() - { - return ArenaEvent.handlers; - } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java index cde7adaa..dc0ffdaa 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartEvent.java @@ -14,16 +14,28 @@ */ package com.comze_instancelabs.minigamesapi.events; +import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; public class ArenaStartEvent extends ArenaEvent { - + public ArenaStartEvent(final JavaPlugin plugin, final Arena a) { super(plugin, a); } - + + private static final HandlerList handlers = new HandlerList(); + @Override + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java index 627dfa4c..76a613ea 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStartedEvent.java @@ -14,16 +14,27 @@ */ package com.comze_instancelabs.minigamesapi.events; +import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; public class ArenaStartedEvent extends ArenaEvent { - public ArenaStartedEvent(final JavaPlugin plugin, final Arena a) { super(plugin, a); } - + + private static final HandlerList handlers = new HandlerList(); + @Override + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java index a8ff3e24..042e47d9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/ArenaStopEvent.java @@ -14,16 +14,28 @@ */ package com.comze_instancelabs.minigamesapi.events; +import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; public class ArenaStopEvent extends ArenaEvent { - + public ArenaStopEvent(final JavaPlugin plugin, final Arena a) { super(plugin, a); } - + + private static final HandlerList handlers = new HandlerList(); + @Override + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java index bfdc6a3b..4c6e4093 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerEvent.java @@ -16,48 +16,35 @@ import org.bukkit.entity.Player; import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; -public class PlayerEvent extends Event +public abstract class PlayerEvent extends Event { - private static final HandlerList handlers = new HandlerList(); private final Arena arena; private final JavaPlugin plugin; private final Player player; - + public PlayerEvent(final Player p, final JavaPlugin plugin, final Arena a) { this.arena = a; this.plugin = plugin; this.player = p; } - + public Arena getArena() { return this.arena; } - + public Player getPlayer() { return this.player; } - + public JavaPlugin getPlugin() { return this.plugin; } - - @Override - public HandlerList getHandlers() - { - return PlayerEvent.handlers; - } - - public static HandlerList getHandlerList() - { - return PlayerEvent.handlers; - } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java index 191856f4..48f0fd78 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerJoinLobbyEvent.java @@ -15,16 +15,28 @@ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; public class PlayerJoinLobbyEvent extends PlayerEvent { - + public PlayerJoinLobbyEvent(final Player p, final JavaPlugin plugin, final Arena a) { super(p, plugin, a); } - + + private static final HandlerList handlers = new HandlerList(); + @Override + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java index 7ef9bb11..be76b8ef 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/events/PlayerLeaveArenaEvent.java @@ -15,16 +15,28 @@ package com.comze_instancelabs.minigamesapi.events; import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; import com.comze_instancelabs.minigamesapi.Arena; public class PlayerLeaveArenaEvent extends PlayerEvent { - + public PlayerLeaveArenaEvent(final Player p, final JavaPlugin plugin, final Arena a) { super(p, plugin, a); } - + + private static final HandlerList handlers = new HandlerList(); + @Override + public HandlerList getHandlers() + { + return handlers; + } + + public static HandlerList getHandlerList() + { + return handlers; + } } From 602a438f5df8f67e59c755f8acd1220dde2d9d85 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 16 Jul 2017 09:43:30 +0200 Subject: [PATCH 250/266] colored beds --- changelog.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/changelog.md b/changelog.md index 1014a52a..10f744fc 100644 --- a/changelog.md +++ b/changelog.md @@ -4,16 +4,22 @@ ###### All -###### HorseRacingPlus +* Merged PullRequest for event class fixes (https://github.com/MysticCity/MinigamesAPI/pull/283) -* Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) -* Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) -* Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) +###### BedWars + +* (1.12) Colored beds (https://github.com/MysticCity/MinigamesAPI/issues/284) ###### ColorMatch * Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) +###### HorseRacingPlus + +* Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) +* Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) +* Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) + #### 1.14.17 ###### All From a8bae43c5219c83abfc306cfaf92a7d3153d71e3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 16 Jul 2017 11:40:42 +0200 Subject: [PATCH 251/266] refactoring of party system to use UUIDs --- .../minigamesapi/Arena.java | 8 +- .../minigamesapi/ArenaListener.java | 11 +- .../minigamesapi/MinigamesAPI.java | 111 +++++++++++++-- .../minigamesapi/Party.java | 31 ++-- .../minigamesapi/commands/CommandHandler.java | 93 ++++++------ .../minigamesapi/util/Validator.java | 19 +++ .../minigamesapi/test/PartyTest.java | 132 +++++++++++++----- .../minigamesapi/testutil/TestUtil.java | 3 +- changelog.md | 1 + 9 files changed, 289 insertions(+), 120 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 44e7499e..8cfb3dab 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -868,9 +868,9 @@ public void joinPlayerLobby(final UUID playerUuid) } } - if (MinigamesAPI.getAPI().global_party.containsKey(playername)) + if (MinigamesAPI.getAPI().hasParty(player.getUniqueId())) { - final Party party = MinigamesAPI.getAPI().global_party.get(playername); + final Party party = MinigamesAPI.getAPI().getParty(player.getUniqueId()); final int playersize = party.getPlayers().size() + 1; if (this.getAllPlayers().size() + playersize > this.max_players) { @@ -878,7 +878,7 @@ public void joinPlayerLobby(final UUID playerUuid) return; } - for (final String p_ : party.getPlayers()) + for (final UUID p_ : party.getPlayers()) { if (Validator.isPlayerOnline(p_)) { @@ -887,7 +887,7 @@ public void joinPlayerLobby(final UUID playerUuid) for (final PluginInstance pli_ : MinigamesAPI.pinstances.values()) { // if (!pli_.getPlugin().getName().equalsIgnoreCase("MGArcade") && pli_.global_players.containsKey(p_)) { - if (pli_.containsGlobalPlayer(p_)) + if (pli_.containsGlobalPlayer(Bukkit.getPlayer(p_).getName())) { cont = false; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java index 2802cb09..1ed6b3d1 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaListener.java @@ -1947,14 +1947,15 @@ public void onPlayerLeave(final PlayerQuitEvent event) MinigamesAPI.getAPI().getLogger().log(Level.WARNING, "Error occurred while refreshing sign. ", e); } } - if (MinigamesAPI.getAPI().global_party.containsKey(event.getPlayer().getName())) + if (MinigamesAPI.getAPI().hasParty(event.getPlayer().getUniqueId())) { - MinigamesAPI.getAPI().global_party.get(event.getPlayer().getName()).disband(); + MinigamesAPI.getAPI().getParty(event.getPlayer().getUniqueId()).disband(); } + MinigamesAPI.getAPI().removePartyInvites(event.getPlayer().getUniqueId()); Party party_ = null; - for (final Party party : MinigamesAPI.getAPI().global_party.values()) + for (final Party party : MinigamesAPI.getAPI().getParties()) { - if (party.containsPlayer(event.getPlayer().getName())) + if (party.containsPlayer(event.getPlayer().getUniqueId())) { party_ = party; break; @@ -1962,7 +1963,7 @@ public void onPlayerLeave(final PlayerQuitEvent event) } if (party_ != null) { - party_.removePlayer(event.getPlayer().getName()); + party_.removePlayer(event.getPlayer().getUniqueId()); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java index 80d47d68..cb9f6c42 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/MinigamesAPI.java @@ -126,20 +126,14 @@ public class MinigamesAPI extends JavaPlugin implements PluginMessageListener, L int updatetime = 20 * 10; /** - * TODO decribe this field. - * - * @deprecated will be be private in 1.5.0; replaced by new method + * Party per owning player */ - @Deprecated - public HashMap<String, Party> global_party = new HashMap<>(); + private HashMap<UUID, Party> global_party = new HashMap<>(); /** - * TODO decribe this field. - * - * @deprecated will be be private in 1.5.0; replaced by new method + * Invites per player */ - @Deprecated - public HashMap<String, ArrayList<Party>> global_party_invites = new HashMap<>(); + private HashMap<UUID, ArrayList<Party>> global_party_invites = new HashMap<>(); /** * Hash map with internal plugin representations of each registered minigame. @@ -1576,10 +1570,10 @@ public void onSignUse(PlayerInteractEvent event) final Player player = event.getPlayer(); final String signInfo = getInfoBySignLocation(s.getLocation()); - if (MinigamesAPI.getAPI().global_party.containsKey(player.getName())) + if (MinigamesAPI.getAPI().global_party.containsKey(player.getUniqueId())) { - final Party party = MinigamesAPI.getAPI().global_party.remove(player.getName()); - for (final String p_ : party.getPlayers()) + final Party party = MinigamesAPI.getAPI().global_party.remove(player.getUniqueId()); + for (final UUID p_ : party.getPlayers()) { if (Validator.isPlayerOnline(p_)) { @@ -1587,7 +1581,7 @@ public void onSignUse(PlayerInteractEvent event) MinigamesAPI.getAPI(); for (final PluginInstance pli_ : MinigamesAPI.pinstances.values()) { - if (pli_.containsGlobalPlayer(p_)) + if (pli_.containsGlobalPlayer(Bukkit.getPlayer(p_).getName())) { cont = false; } @@ -1910,4 +1904,93 @@ public void onServerPing(ServerListPingEvent evt) } } + // party + + /** + * Checks if given player has a party. + * @param owner + * @return + */ + public boolean hasParty(UUID owner) + { + return this.global_party.containsKey(owner); + } + + /** + * Returns a party. + * @param owner + * @return + */ + public Party getParty(UUID owner) + { + return this.global_party.get(owner); + } + + /** + * Returns all known parties. + * @param owner + * @return + */ + public Iterable<Party> getParties() + { + return this.global_party.values(); + } + + /** + * Creates a new party + * @param owner + * @return + */ + public Party createParty(UUID owner) + { + final Party party = new Party(owner); + this.global_party.put(owner, party); + return party; + } + + /** + * Removes existing party from list + * @param owner + */ + public void removeParty(UUID owner) + { + this.global_party.remove(owner); + } + + /** + * Adds a party invite + * @param invitedPlayer + * @param party + */ + public void addPartyInvite(UUID invitedPlayer, Party party) + { + this.global_party_invites.computeIfAbsent(invitedPlayer, u -> new ArrayList<>()).add(party); + } + + /** + * @param invitedPlayer + * @return + */ + public boolean hasPartyInvites(UUID invitedPlayer) + { + return this.global_party_invites.containsKey(invitedPlayer); + } + + /** + * @param invitedPlayer + * @return + */ + public Iterable<Party> getPartyInvites(UUID invitedPlayer) + { + return this.global_party_invites.get(invitedPlayer); + } + + /** + * @param invitedPlayer + */ + public void removePartyInvites(UUID invitedPlayer) + { + this.global_party_invites.remove(invitedPlayer); + } + } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java index 09a3031a..218e2bf3 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Party.java @@ -15,6 +15,7 @@ package com.comze_instancelabs.minigamesapi; import java.util.ArrayList; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -28,10 +29,10 @@ public class Party { /** party owner. */ - private String owner; + private UUID owner; /** party members. */ - private ArrayList<String> players = new ArrayList<>(); + private ArrayList<UUID> players = new ArrayList<>(); /** * Constructor. @@ -39,7 +40,7 @@ public class Party * @param owner * party owner (player name) */ - public Party(final String owner) + public Party(final UUID owner) { this.owner = owner; } @@ -49,7 +50,7 @@ public Party(final String owner) * * @return player name */ - public String getOwner() + public UUID getOwner() { return this.owner; } @@ -59,7 +60,7 @@ public String getOwner() * * @return party members. */ - public ArrayList<String> getPlayers() + public ArrayList<UUID> getPlayers() { return this.players; } @@ -70,14 +71,14 @@ public ArrayList<String> getPlayers() * @param p * player to add. */ - public void addPlayer(final String p) + public void addPlayer(final UUID p) { if (!this.players.contains(p)) { this.players.add(p); } - Bukkit.getPlayer(p).sendMessage(MinigamesAPI.getAPI().partymessages.you_joined_party.replaceAll("<player>", this.getOwner())); - this.tellAll(MinigamesAPI.getAPI().partymessages.player_joined_party.replaceAll("<player>", p)); + Bukkit.getPlayer(p).sendMessage(MinigamesAPI.getAPI().partymessages.you_joined_party.replaceAll("<player>", Bukkit.getPlayer(this.getOwner()).getName())); + this.tellAll(MinigamesAPI.getAPI().partymessages.player_joined_party.replaceAll("<player>", Bukkit.getPlayer(p).getName())); } /** @@ -87,7 +88,7 @@ public void addPlayer(final String p) * player to remove * @return {@code true} if the player was contained in the list */ - public boolean removePlayer(final String p) + public boolean removePlayer(final UUID p) { if (this.players.contains(p)) { @@ -95,9 +96,9 @@ public boolean removePlayer(final String p) final Player p___ = Bukkit.getPlayer(p); if (p___ != null) { - p___.sendMessage(MinigamesAPI.getAPI().partymessages.you_left_party.replaceAll("<player>", this.getOwner())); + p___.sendMessage(MinigamesAPI.getAPI().partymessages.you_left_party.replaceAll("<player>", Bukkit.getPlayer(this.getOwner()).getName())); + this.tellAll(MinigamesAPI.getAPI().partymessages.player_left_party.replaceAll("<player>", p___.getName())); } - this.tellAll(MinigamesAPI.getAPI().partymessages.player_left_party.replaceAll("<player>", p)); return true; } return false; @@ -110,7 +111,7 @@ public boolean removePlayer(final String p) * playeer to be checked. * @return {@code true} if the player is within the party list. */ - public boolean containsPlayer(final String p) + public boolean containsPlayer(final UUID p) { return this.players.contains(p); } @@ -121,10 +122,10 @@ public boolean containsPlayer(final String p) public void disband() { this.tellAll(MinigamesAPI.getAPI().partymessages.party_disbanded); - if (MinigamesAPI.getAPI().global_party.containsKey(this.owner)) + if (MinigamesAPI.getAPI().hasParty(this.owner)) { this.players.clear(); - MinigamesAPI.getAPI().global_party.remove(this.owner); + MinigamesAPI.getAPI().removeParty(this.owner); } } @@ -136,7 +137,7 @@ public void disband() */ private void tellAll(final String msg) { - for (final String p_ : this.getPlayers()) + for (final UUID p_ : this.getPlayers()) { final Player p__ = Bukkit.getPlayer(p_); if (p__ != null) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java index 4a567bb0..4b63fa94 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/commands/CommandHandler.java @@ -18,6 +18,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; +import java.util.UUID; import java.util.logging.Level; import org.bukkit.Bukkit; @@ -1431,15 +1432,23 @@ public boolean partyInvite(final CommandSender sender, final String[] args, fina { if (args.length > 1) { - if (p.getName().equalsIgnoreCase(args[1])) + final Player target = Bukkit.getPlayer(args[1]); + if (target == null) + { + p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); + return true; + } + + if (p.getUniqueId().equals(target.getUniqueId())) { p.sendMessage(MinigamesAPI.getAPI().partymessages.cannot_invite_yourself); return true; } + boolean isInParty = false; - for (final Party party : MinigamesAPI.getAPI().global_party.values()) + for (final Party party : MinigamesAPI.getAPI().getParties()) { - if (party.containsPlayer(p.getName())) + if (party.containsPlayer(p.getUniqueId())) { isInParty = true; } @@ -1452,27 +1461,18 @@ public boolean partyInvite(final CommandSender sender, final String[] args, fina return true; } Party party = null; - if (!MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + if (!MinigamesAPI.getAPI().hasParty(p.getUniqueId())) { - party = new Party(p.getName()); - MinigamesAPI.getAPI().global_party.put(p.getName(), party); + party = MinigamesAPI.getAPI().createParty(p.getUniqueId()); } else { - party = MinigamesAPI.getAPI().global_party.get(p.getName()); - } - final ArrayList<Party> parties = new ArrayList<>(); - if (MinigamesAPI.getAPI().global_party_invites.containsKey(p.getName())) - { - parties.addAll(MinigamesAPI.getAPI().global_party_invites.get(p.getName())); - } - if (!parties.contains(party)) - { - parties.add(party); + party = MinigamesAPI.getAPI().getParty(p.getUniqueId()); } - MinigamesAPI.getAPI().global_party_invites.put(args[1], parties); + final Player invited = Bukkit.getPlayer(args[1]); + MinigamesAPI.getAPI().addPartyInvite(invited.getUniqueId(), party); p.sendMessage(MinigamesAPI.getAPI().partymessages.you_invited.replaceAll("<player>", args[1])); - Bukkit.getPlayer(args[1]).sendMessage(MinigamesAPI.getAPI().partymessages.you_were_invited.replaceAll("<player>", p.getName())); + invited.sendMessage(MinigamesAPI.getAPI().partymessages.you_were_invited.replaceAll("<player>", p.getName())); } } else @@ -1491,7 +1491,7 @@ public boolean partyAccept(final CommandSender sender, final String[] args, fina p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); return true; } - if (!MinigamesAPI.getAPI().global_party_invites.containsKey(p.getName())) + if (!MinigamesAPI.getAPI().hasPartyInvites(p.getUniqueId())) { p.sendMessage(MinigamesAPI.getAPI().partymessages.not_invited_to_any_party); return true; @@ -1499,9 +1499,9 @@ public boolean partyAccept(final CommandSender sender, final String[] args, fina boolean isInParty = false; Party party_ = null; - for (final Party party : MinigamesAPI.getAPI().global_party.values()) + for (final Party party : MinigamesAPI.getAPI().getParties()) { - if (party.containsPlayer(p.getName())) + if (party.containsPlayer(p.getUniqueId())) { isInParty = true; party_ = party; @@ -1511,18 +1511,18 @@ public boolean partyAccept(final CommandSender sender, final String[] args, fina { if (party_ != null) { - party_.removePlayer(p.getName()); + party_.removePlayer(p.getUniqueId()); } } - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + if (MinigamesAPI.getAPI().hasParty(p.getUniqueId())) { - MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); + MinigamesAPI.getAPI().getParty(p.getUniqueId()).disband(); } Party party__ = null; - for (final Party party : MinigamesAPI.getAPI().global_party_invites.get(p.getName())) + for (final Party party : MinigamesAPI.getAPI().getPartyInvites(p.getUniqueId())) { - if (party.getOwner().equalsIgnoreCase(args[1])) + if (party.getOwner().equals(Bukkit.getPlayer(args[1]).getUniqueId())) { party__ = party; break; @@ -1530,8 +1530,8 @@ public boolean partyAccept(final CommandSender sender, final String[] args, fina } if (party__ != null) { - party__.addPlayer(p.getName()); - MinigamesAPI.getAPI().global_party_invites.remove(p.getName()); + party__.addPlayer(p.getUniqueId()); + MinigamesAPI.getAPI().removePartyInvites(p.getUniqueId()); } else { @@ -1554,12 +1554,13 @@ public boolean partyKick(final CommandSender sender, final String[] args, final p.sendMessage(MinigamesAPI.getAPI().partymessages.player_not_online.replaceAll("<player>", args[1])); return true; } - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + if (MinigamesAPI.getAPI().hasParty(p.getUniqueId())) { - final Party party = MinigamesAPI.getAPI().global_party.get(p.getName()); - if (party.containsPlayer(args[1])) + final Party party = MinigamesAPI.getAPI().getParty(p.getUniqueId()); + final Player target = Bukkit.getPlayer(args[1]); + if (party.containsPlayer(target.getUniqueId())) { - party.removePlayer(args[1]); + party.removePlayer(target.getUniqueId()); } else { @@ -1579,23 +1580,23 @@ public boolean partyList(final CommandSender sender, final String[] args, final if (args.length > 0) { Party party_ = null; - for (final Party party : MinigamesAPI.getAPI().global_party.values()) + for (final Party party : MinigamesAPI.getAPI().getParties()) { - if (party.containsPlayer(p.getName())) + if (party.containsPlayer(p.getUniqueId())) { party_ = party; } } - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + if (MinigamesAPI.getAPI().hasParty(p.getUniqueId())) { - party_ = MinigamesAPI.getAPI().global_party.get(p.getName()); + party_ = MinigamesAPI.getAPI().getParty(p.getUniqueId()); } if (party_ != null) { - String ret = ChatColor.DARK_GREEN + party_.getOwner(); - for (final String p_ : party_.getPlayers()) + String ret = ChatColor.DARK_GREEN + Bukkit.getPlayer(party_.getOwner()).getName(); + for (final UUID p_ : party_.getPlayers()) { - ret += ChatColor.GREEN + ", " + p_; + ret += ChatColor.GREEN + ", " + Bukkit.getPlayer(p_).getName(); } p.sendMessage(ret); } @@ -1611,9 +1612,9 @@ public boolean partyDisband(final CommandSender sender, final String[] args, fin { if (args.length > 0) { - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + if (MinigamesAPI.getAPI().hasParty(p.getUniqueId())) { - MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); + MinigamesAPI.getAPI().getParty(p.getUniqueId()).disband(); } } else @@ -1627,22 +1628,22 @@ public boolean partyLeave(final CommandSender sender, final String[] args, final { if (args.length > 0) { - if (MinigamesAPI.getAPI().global_party.containsKey(p.getName())) + if (MinigamesAPI.getAPI().hasParty(p.getUniqueId())) { - MinigamesAPI.getAPI().global_party.get(p.getName()).disband(); + MinigamesAPI.getAPI().getParty(p.getUniqueId()).disband(); return true; } Party party_ = null; - for (final Party party : MinigamesAPI.getAPI().global_party.values()) + for (final Party party : MinigamesAPI.getAPI().getParties()) { - if (party.containsPlayer(p.getName())) + if (party.containsPlayer(p.getUniqueId())) { party_ = party; } } if (party_ != null) { - party_.removePlayer(p.getName()); + party_.removePlayer(p.getUniqueId()); } } else diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java index 3413c11e..69b35995 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/Validator.java @@ -14,6 +14,8 @@ */ package com.comze_instancelabs.minigamesapi.util; +import java.util.UUID; + import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; @@ -51,6 +53,23 @@ public static boolean isPlayerOnline(final String player) return false; } + /*** + * returns true if given player is online + * + * @param player + * name of the player. + * @return true if the player is online. + */ + public static boolean isPlayerOnline(final UUID player) + { + final Player p = Bukkit.getPlayer(player); + if (p != null) + { + return true; + } + return false; + } + /*** * returns true if given player is online and in arena * diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java index d414e71d..c87b5886 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/test/PartyTest.java @@ -18,6 +18,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -25,6 +27,7 @@ import static org.powermock.api.mockito.PowerMockito.mockStatic; import java.util.HashMap; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -51,13 +54,13 @@ public class PartyTest { /** owner name. */ - private static final String OWNER = "OWNER"; //$NON-NLS-1$ + private static final UUID OWNER = UUID.randomUUID(); /** friend name. */ - private static final String FRIEND_1 = "FRIEND1"; //$NON-NLS-1$ + private static final UUID FRIEND_1 = UUID.randomUUID(); /** friend name. */ - private static final String FRIEND_2 = "FRIEND2"; //$NON-NLS-1$ + private static final UUID FRIEND_2 = UUID.randomUUID(); /** * Test that owner name is returned. @@ -96,6 +99,12 @@ private void mockAPI() mockStatic(MinigamesAPI.class); when(MinigamesAPI.getAPI()).thenReturn(api); + + when(api.createParty(any(UUID.class))).thenCallRealMethod(); + when(api.getParties()).thenCallRealMethod(); + when(api.hasParty(any(UUID.class))).thenCallRealMethod(); + when(api.getParty(any(UUID.class))).thenCallRealMethod(); + doCallRealMethod().when(api).removeParty(any(UUID.class)); } /** @@ -106,11 +115,18 @@ public void testPlayerAdded() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + this.mockAPI(); // test @@ -120,7 +136,7 @@ public void testPlayerAdded() assertEquals(FRIEND_1, party.getPlayers().get(0)); // epilog - verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ } /** @@ -131,11 +147,18 @@ public void testPlayerContains() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + this.mockAPI(); // test @@ -153,16 +176,24 @@ public void testPlayer2Added() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); final Player player2 = mock(Player.class); - when(player2.getName()).thenReturn(FRIEND_2); + when(player2.getName()).thenReturn(FRIEND_2.toString()); + when(player2.getUniqueId()).thenReturn(FRIEND_2); when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + this.mockAPI(); // test @@ -174,9 +205,9 @@ public void testPlayer2Added() assertEquals(FRIEND_2, party.getPlayers().get(1)); // epilog - verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player2, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player1, times(1)).sendMessage("PLAYER FRIEND2 JOINED"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("PLAYER " + FRIEND_2.toString() + " JOINED"); //$NON-NLS-1$ //$NON-NLS-2$ } /** @@ -187,11 +218,18 @@ public void testPlayerLeft() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + this.mockAPI(); // test @@ -201,8 +239,8 @@ public void testPlayerLeft() assertEquals(0, party.getPlayers().size()); // epilog - verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player1, times(1)).sendMessage("LEFT PARTY OWNER"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("LEFT PARTY " + OWNER.toString()); //$NON-NLS-1$ } /** @@ -213,13 +251,21 @@ public void testPlayer2Left() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + final Player player2 = mock(Player.class); - when(player2.getName()).thenReturn(FRIEND_2); + when(player2.getName()).thenReturn(FRIEND_2.toString()); + when(player2.getUniqueId()).thenReturn(FRIEND_2); when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); @@ -234,11 +280,11 @@ public void testPlayer2Left() assertEquals(FRIEND_2, party.getPlayers().get(0)); // epilog - verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player2, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player1, times(1)).sendMessage("PLAYER FRIEND2 JOINED"); //$NON-NLS-1$ - verify(player1, times(1)).sendMessage("LEFT PARTY OWNER"); //$NON-NLS-1$ - verify(player2, times(1)).sendMessage("PLAYER FRIEND1 LEFT"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("PLAYER " + FRIEND_2.toString() + " JOINED"); //$NON-NLS-1$ //$NON-NLS-2$ + verify(player1, times(1)).sendMessage("LEFT PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("PLAYER " + FRIEND_1.toString() + " LEFT"); //$NON-NLS-1$ //$NON-NLS-2$ } /** @@ -249,22 +295,29 @@ public void testDisbandClearsList() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); final Player player2 = mock(Player.class); - when(player2.getName()).thenReturn(FRIEND_2); + when(player2.getName()).thenReturn(FRIEND_2.toString()); + when(player2.getUniqueId()).thenReturn(FRIEND_2); when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + this.mockAPI(); // test - final Party party = new Party(OWNER); // TODO clearing the list should not depend on finding it in global_party - MinigamesAPI.getAPI().global_party.put(OWNER, party); + final Party party = MinigamesAPI.getAPI().createParty(OWNER); party.addPlayer(FRIEND_1); party.addPlayer(FRIEND_2); party.disband(); @@ -279,16 +332,24 @@ public void testDisbandInformsPlayers() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); final Player player2 = mock(Player.class); - when(player2.getName()).thenReturn(FRIEND_2); + when(player2.getName()).thenReturn(FRIEND_2.toString()); + when(player2.getUniqueId()).thenReturn(FRIEND_2); when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); + final Player owner = mock(Player.class); + when(owner.getName()).thenReturn(OWNER.toString()); + when(owner.getUniqueId()).thenReturn(OWNER); + + when(Bukkit.getPlayer(OWNER)).thenReturn(owner); + this.mockAPI(); // test @@ -298,9 +359,9 @@ public void testDisbandInformsPlayers() party.disband(); // epilog - verify(player1, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player2, times(1)).sendMessage("JOINED PARTY OWNER"); //$NON-NLS-1$ - verify(player1, times(1)).sendMessage("PLAYER FRIEND2 JOINED"); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player2, times(1)).sendMessage("JOINED PARTY " + OWNER.toString()); //$NON-NLS-1$ + verify(player1, times(1)).sendMessage("PLAYER " + FRIEND_2.toString() + " JOINED"); //$NON-NLS-1$ //$NON-NLS-2$ verify(player1, times(1)).sendMessage("DISBAND"); //$NON-NLS-1$ verify(player2, times(1)).sendMessage("DISBAND"); //$NON-NLS-1$ } @@ -313,23 +374,24 @@ public void testDisbandRemovesFromApi() { // prolog final Player player1 = mock(Player.class); - when(player1.getName()).thenReturn(FRIEND_1); + when(player1.getName()).thenReturn(FRIEND_1.toString()); + when(player1.getUniqueId()).thenReturn(FRIEND_1); mockStatic(Bukkit.class); when(Bukkit.getPlayer(FRIEND_1)).thenReturn(player1); final Player player2 = mock(Player.class); - when(player2.getName()).thenReturn(FRIEND_2); + when(player2.getName()).thenReturn(FRIEND_2.toString()); + when(player2.getUniqueId()).thenReturn(FRIEND_2); when(Bukkit.getPlayer(FRIEND_2)).thenReturn(player2); this.mockAPI(); // test - final Party party = new Party(OWNER); - MinigamesAPI.getAPI().global_party.put(OWNER, party); + final Party party = MinigamesAPI.getAPI().createParty(OWNER); party.disband(); - assertFalse(MinigamesAPI.getAPI().global_party.containsKey(OWNER)); + assertFalse(MinigamesAPI.getAPI().hasParty(OWNER)); } } diff --git a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java index 32f15cf8..c6bc9fd8 100644 --- a/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java +++ b/API/src/test/java/com/comze_instancelabs/minigamesapi/testutil/TestUtil.java @@ -34,6 +34,7 @@ import org.junit.Before; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.reflect.Whitebox; import com.comze_instancelabs.minigamesapi.Arena; import com.comze_instancelabs.minigamesapi.MinecraftVersionsType; @@ -78,7 +79,7 @@ public void setupMinigameTest() throws IllegalArgumentException, IllegalAccessEx when(MinigamesAPI.uuidToPlayer(any(UUID.class))).thenCallRealMethod(); this.minigameTest.api = api; - api.global_party = new HashMap<>(); + Whitebox.setInternalState(api, "global_party", new HashMap<>()); final Field field = PowerMockito.field(MinigamesAPI.class, "SERVER_VERSION"); field.setAccessible(true); diff --git a/changelog.md b/changelog.md index 10f744fc..18a1a4d5 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ ###### All * Merged PullRequest for event class fixes (https://github.com/MysticCity/MinigamesAPI/pull/283) +* (!API change!) Fixed party command for typing player names with wrong case (https://github.com/MysticCity/MinigamesAPI/pull/282) ###### BedWars From e76e98d0744d05e5422f88a78871578e1062f488 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 16 Jul 2017 16:17:42 +0200 Subject: [PATCH 252/266] mysql fix --- .../comze_instancelabs/minigamesapi/sql/MainSQL.java | 12 ++++++------ changelog.md | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java index d357fb7e..18ebab2d 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/sql/MainSQL.java @@ -239,7 +239,7 @@ private void updateWinnerStats(final Player p, final int reward, final String uu if (!res3.isBeforeFirst()) { // there's no such user - c.createStatement().executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$ //$NON-NLS-2$ + c.createStatement().executeUpdate("INSERT INTO `" + this.plugin.getName() + "` (`player`, `points`, `wins`, `loses`, `kills`, `deaths`, `uuid`, `gamepoints`) " //$NON-NLS-1$ //$NON-NLS-2$ + "VALUES('" + p.getName() + "', " + reward + ", " + wincount //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + ", 0, 0, 0, '" + uuid + "', 0)"); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -303,7 +303,7 @@ private void updateLosterStats(final Player p, final String uuid, final Connecti if (!res3.isBeforeFirst()) { // there's no such user - stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$ //$NON-NLS-2$ + stmt.executeUpdate("INSERT INTO `" + this.plugin.getName() + "` (`player`, `points`, `wins`, `loses`, `kills`, `deaths`, `uuid`, `gamepoints`) " //$NON-NLS-1$ //$NON-NLS-2$ + "VALUES('" + p.getName() + "', 0, 0, 1, 0, 0, '" + uuid + "', 0)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } else @@ -367,7 +367,7 @@ private void updateKillerStats(final Player p, final int kills_, final String uu if (!res3.isBeforeFirst()) { // there's no such user - stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$ //$NON-NLS-2$ + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " (`player`, `points`, `wins`, `loses`, `kills`, `deaths`, `uuid`, `gamepoints`) " //$NON-NLS-1$ //$NON-NLS-2$ + "VALUES('" + p.getName() + "', 0, 0, 0, 1, 0, '" + uuid + "', 0)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } else @@ -431,7 +431,7 @@ private void updateDeathStats(final Player p, final int deaths_, final String uu if (!res3.isBeforeFirst()) { // there's no such user - stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$//$NON-NLS-2$ + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " (`player`, `points`, `wins`, `loses`, `kills`, `deaths`, `uuid`, `gamepoints`) " //$NON-NLS-1$//$NON-NLS-2$ + "VALUES('" + p.getName() + "', 0, 0, 0, 0, 1, '" + uuid + "', 0)"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ } else @@ -672,7 +672,7 @@ private void setGamePoints(final Player p, final Connection c, int points) throw if (!res3.isBeforeFirst()) { // there's no such user - stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$//$NON-NLS-2$ + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " (`player`, `points`, `wins`, `loses`, `kills`, `deaths`, `uuid`, `gamepoints`) " //$NON-NLS-1$//$NON-NLS-2$ + "VALUES('" + p.getName() + "', 0, 0, 0, 0, 1, '" + uuid + "', " + points + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } else @@ -733,7 +733,7 @@ private void addGamePoints(final Player p, final Connection c, int points) throw if (!res3.isBeforeFirst()) { // there's no such user - stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " ('player', 'points', 'wins', 'loses', 'kills', 'deaths', 'uuid', 'gamepoints') " //$NON-NLS-1$//$NON-NLS-2$ + stmt.executeUpdate("INSERT INTO " + this.plugin.getName() + " (`player`, `points`, `wins`, `loses`, `kills`, `deaths`, `uuid`, `gamepoints`) " //$NON-NLS-1$//$NON-NLS-2$ + "VALUES('" + p.getName() + "', 0, 0, 0, 0, 1, '" + uuid + "', " + points + ")"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } else diff --git a/changelog.md b/changelog.md index 18a1a4d5..5aa99d6d 100644 --- a/changelog.md +++ b/changelog.md @@ -5,7 +5,8 @@ ###### All * Merged PullRequest for event class fixes (https://github.com/MysticCity/MinigamesAPI/pull/283) -* (!API change!) Fixed party command for typing player names with wrong case (https://github.com/MysticCity/MinigamesAPI/pull/282) +* (!API change!) Fixed party command for typing player names with wrong case (https://github.com/MysticCity/MinigamesAPI/issues/282) +* MySQL fixed (https://github.com/MysticCity/MinigamesAPI/issues/281) ###### BedWars From 2e466549ed59fbbc811423f275f1766ec99ca631 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 16 Jul 2017 17:05:54 +0200 Subject: [PATCH 253/266] translation of "Done: true" --- .../minigamesapi/achievements/ArenaAchievements.java | 11 ++++++++--- .../minigamesapi/config/MessagesConfig.java | 6 ++++++ changelog.md | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java index 1c76c4f0..8413b178 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/achievements/ArenaAchievements.java @@ -25,6 +25,7 @@ import com.comze_instancelabs.minigamesapi.MinigamesAPI; import com.comze_instancelabs.minigamesapi.PluginInstance; +import com.comze_instancelabs.minigamesapi.config.MessagesConfig; import com.comze_instancelabs.minigamesapi.util.IconMenu; public class ArenaAchievements @@ -45,13 +46,14 @@ public void openGUI(final String p, final boolean sql) IconMenu iconm; final ArrayList<AAchievement> alist = this.loadPlayerAchievements(p, sql); final int mincount = alist.size(); + final MessagesConfig messagesConfig = MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig(); if (this.lasticonm.containsKey(p)) { iconm = this.lasticonm.get(p); } else { - iconm = new IconMenu(MinigamesAPI.getAPI().getPluginInstance(this.plugin).getMessagesConfig().achievement_item, (9 > mincount - 1) ? 9 * 1 : Math.round(mincount / 9) * 9 + 9, + iconm = new IconMenu(messagesConfig.achievement_item, (9 > mincount - 1) ? 9 * 1 : Math.round(mincount / 9) * 9 + 9, event -> event.setWillClose(true), this.plugin); } @@ -63,8 +65,11 @@ public void openGUI(final String p, final boolean sql) { icon = new ItemStack(Material.STAINED_CLAY, 1, (short) 5); } - iconm.setOption(c, icon, ChatColor.translateAlternateColorCodes('&', this.pli.getAchievementsConfig().getConfig().getString("config.achievements." + aa.getAchievementNameRaw() + ".name")), - "Done: " + aa.isDone()); + iconm.setOption( + c, + icon, + ChatColor.translateAlternateColorCodes('&', this.pli.getAchievementsConfig().getConfig().getString("config.achievements." + aa.getAchievementNameRaw() + ".name")), + aa.isDone() ? messagesConfig.achievement_done_true : messagesConfig.achievement_done_false); c++; } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index 8f450327..65694c16 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -115,6 +115,8 @@ public void init() this.getConfig().addDefault("messages.set_kit", this.set_kit); this.getConfig().addDefault("messages.classes_item", this.classes_item); this.getConfig().addDefault("messages.achievement_item", this.achievement_item); + this.getConfig().addDefault("messages.achievement_done_true", this.achievement_done_true); + this.getConfig().addDefault("messages.achievement_done_false", this.achievement_done_false); this.getConfig().addDefault("messages.shop_item", this.shop_item); this.getConfig().addDefault("messages.spectator_item", this.spectator_item); this.getConfig().addDefault("messages.server_broadcast_winner", this.server_broadcast_winner); @@ -209,6 +211,8 @@ public void init() this.set_kit = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.set_kit")); this.classes_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.classes_item")); this.achievement_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.achievement_item")); + this.achievement_done_true = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.achievement_done_true")); + this.achievement_done_false = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.achievement_done_false")); this.shop_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.shop_item")); this.spectator_item = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.spectator_item")); this.server_broadcast_winner = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("messages.server_broadcast_winner")); @@ -291,6 +295,8 @@ public void init() public String set_kit = "&aSuccessfully set &2<kit>&a!"; public String classes_item = "&4Classes"; public String achievement_item = "&4Achievements"; + public String achievement_done_true = "Done: true"; + public String achievement_done_false = "Done: false"; public String shop_item = "&4Shop"; public String spectator_item = "&4Players"; public String server_broadcast_winner = "&2<player> &awon the game on &2<arena>&a!"; diff --git a/changelog.md b/changelog.md index 5aa99d6d..2a683d9c 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,7 @@ * Merged PullRequest for event class fixes (https://github.com/MysticCity/MinigamesAPI/pull/283) * (!API change!) Fixed party command for typing player names with wrong case (https://github.com/MysticCity/MinigamesAPI/issues/282) * MySQL fixed (https://github.com/MysticCity/MinigamesAPI/issues/281) +* Moved "Done: true" for achivements into messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/280) ###### BedWars From 4ac48a8d6b9a738a75dcd491e470bf45e60a3cb4 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 16 Jul 2017 17:31:30 +0200 Subject: [PATCH 254/266] added flag to disable smart reset --- .../java/com/comze_instancelabs/minigamesapi/Arena.java | 7 +++++++ .../minigamesapi/ArenaConfigStrings.java | 3 +++ changelog.md | 1 + 3 files changed, 11 insertions(+) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java index 8cfb3dab..608dfe6e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/Arena.java @@ -2178,6 +2178,13 @@ protected void abortStarting() */ public void reset() { + if (!this.pli.getArenasConfig().getConfig().getBoolean( + ArenaConfigStrings.ARENAS_PREFIX + this.getInternalName() + ArenaConfigStrings.SMART_RESET_SUFFIX, true)) + { + ArenaLogger.debug("Skipping arena smart reset (config)."); //$NON-NLS-1$ + return; + } + if (this.pli.old_reset) { ArenaLogger.debug("Resetting using old method."); //$NON-NLS-1$ diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java index 05779cfe..5e7f4e33 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/ArenaConfigStrings.java @@ -58,6 +58,9 @@ public interface ArenaConfigStrings /** suffix for arenas description. */ String DESCRIPTION_SUFFIX = ".description"; //$NON-NLS-1$ + /** suffix for smart reset activation. */ + String SMART_RESET_SUFFIX = ".smart_reset"; //$NON-NLS-1$ + /** TODO: describe config option. */ diff --git a/changelog.md b/changelog.md index 2a683d9c..8cbaf4fc 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,7 @@ * (!API change!) Fixed party command for typing player names with wrong case (https://github.com/MysticCity/MinigamesAPI/issues/282) * MySQL fixed (https://github.com/MysticCity/MinigamesAPI/issues/281) * Moved "Done: true" for achivements into messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/280) +* Added flag to deactivate smart reset (https://github.com/MysticCity/MinigamesAPI/issues/286) ###### BedWars From a7f848f12d83a7bf54e3fad59756e697d1267adc Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 20 Jul 2017 07:35:31 +0200 Subject: [PATCH 255/266] classcast --- .../minigamesapi/LobbySignManager.java | 32 +++++++++++++++---- changelog.md | 1 + 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java index 10815eb4..cd102ddd 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/LobbySignManager.java @@ -25,6 +25,7 @@ import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.event.block.SignChangeEvent; @@ -179,6 +180,11 @@ private final class SignData /** last response of sign update. */ LocalDateTime lastResponse = this.lastRequest; + /** + * timestamp a log warning was posted + */ + LocalDateTime lastSignWarning = null; + /** * @param location * @param serverName @@ -273,13 +279,25 @@ public void setSignData(int count, int maxcount, String arenastate, SignChangeEv .replace("<arena>", this.arenaName).replace("<minigame>", this.minigameName)); //$NON-NLS-1$ //$NON-NLS-2$ if (evt == null) { - final Sign sign = (Sign) this.location.getBlock().getState(); - sign.setLine(0, line0); - sign.setLine(1, line1); - sign.setLine(2, line2); - sign.setLine(3, line3); - sign.getBlock().getChunk().load(); - sign.update(); + final BlockState state = this.location.getBlock().getState(); + if (state instanceof Sign) + { + final Sign sign = (Sign) state; + sign.setLine(0, line0); + sign.setLine(1, line1); + sign.setLine(2, line2); + sign.setLine(3, line3); + sign.getBlock().getChunk().load(); + sign.update(); + } + else + { + if (this.lastSignWarning == null || this.lastSignWarning.until(LocalDateTime.now(), ChronoUnit.SECONDS) > 30) + { + this.lastSignWarning = LocalDateTime.now(); + LobbySignManager.this.plugin.getLogger().log(Level.WARNING, "Cannot find lobby sign for " + this.minigameName + "/" + this.arenaName + " at position " + this.location); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + } } else { diff --git a/changelog.md b/changelog.md index 8cbaf4fc..ee193c8e 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ * MySQL fixed (https://github.com/MysticCity/MinigamesAPI/issues/281) * Moved "Done: true" for achivements into messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/280) * Added flag to deactivate smart reset (https://github.com/MysticCity/MinigamesAPI/issues/286) +* Fixed ClassCastException (https://github.com/MysticCity/MinigamesAPI/issues/288) ###### BedWars From 4a2dfe69c3c570c3ceb6c23ebea946d19f6738e4 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 3 Aug 2017 04:25:24 +0200 Subject: [PATCH 256/266] fixed 1.12 support --- .../config/AchievementsConfig.java | 3 +- .../minigamesapi/config/ArenasConfig.java | 3 +- .../minigamesapi/config/ClassesConfig.java | 3 +- .../minigamesapi/config/GunsConfig.java | 3 +- .../minigamesapi/config/HologramsConfig.java | 3 +- .../minigamesapi/config/MessagesConfig.java | 3 +- .../config/PartyMessagesConfig.java | 3 +- .../minigamesapi/config/ShopConfig.java | 3 +- .../minigamesapi/config/StatsConfig.java | 3 +- .../config/StatsGlobalConfig.java | 3 +- .../util/PlayerPickupItemHelper.java | 142 ++++++++++++++++++ .../spigottest/DummyEnchantments.java | 2 +- .../spigottest/DummyPlayerInventory.java | 4 +- .../spigottest/DummyScoreboardTeam.java | 21 +++ .../minigamesapi/spigottest/DummyServer.java | 75 ++++----- .../minigamesapi/spigottest/DummyWorld.java | 22 +++ .../spigottest/SpigotTestSupport.java | 9 +- changelog.md | 2 + pom.xml | 2 +- 19 files changed, 253 insertions(+), 56 deletions(-) create mode 100644 API/src/main/java/com/comze_instancelabs/minigamesapi/util/PlayerPickupItemHelper.java diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java index 57e5fe59..4904da0e 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/AchievementsConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -118,7 +119,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("achievements.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.arenaConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java index 518df001..18ade8d0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ArenasConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -73,7 +74,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("arenas.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.arenaConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java index febfd2fe..e15443d0 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ClassesConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -87,7 +88,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("classes.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.classesConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java index 2931c527..4c97530f 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/GunsConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -119,7 +120,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("guns.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.arenaConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java index 61524371..cc26cedf 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/HologramsConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -76,7 +77,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("holograms.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.holoConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java index 65694c16..71b08abe 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/MessagesConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.util.Arrays; import java.util.Map; @@ -365,7 +366,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("messages.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.messagesConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java index cda344a9..ea630d8c 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/PartyMessagesConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; @@ -123,7 +124,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("partymessages.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.messagesConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java index eb2e007b..3d7ec534 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/ShopConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -121,7 +122,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("shop.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.shopConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java index 14081044..cce15a5b 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -80,7 +81,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("stats.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.statsConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java index 2bcf2c54..edc441e9 100644 --- a/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/config/StatsGlobalConfig.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -80,7 +81,7 @@ public void reloadConfig() final InputStream defConfigStream = this.plugin.getResource("global_stats.yml"); if (defConfigStream != null) { - final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream); + final YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); this.statsConfig.setDefaults(defConfig); } } diff --git a/API/src/main/java/com/comze_instancelabs/minigamesapi/util/PlayerPickupItemHelper.java b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/PlayerPickupItemHelper.java new file mode 100644 index 00000000..5232fb9a --- /dev/null +++ b/API/src/main/java/com/comze_instancelabs/minigamesapi/util/PlayerPickupItemHelper.java @@ -0,0 +1,142 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package com.comze_instancelabs.minigamesapi.util; + +import java.util.function.Consumer; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityPickupItemEvent; +import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.plugin.Plugin; + +import com.comze_instancelabs.minigamesapi.MinecraftVersionsType; +import com.comze_instancelabs.minigamesapi.MinigamesAPI; + +/** + * @author mepeisen + * + */ +public class PlayerPickupItemHelper +{ + + final Consumer<CustomPickupEvent> handler; + + public PlayerPickupItemHelper(Plugin plugin, Consumer<CustomPickupEvent> handler) + { + this.handler = handler; + if (MinigamesAPI.SERVER_VERSION.isAtLeast(MinecraftVersionsType.V1_12)) + { + Bukkit.getPluginManager().registerEvents(new EntityPickup(), plugin); + } + else + { + Bukkit.getPluginManager().registerEvents(new PlayerPickup(), plugin); + } + } + + private final class PlayerPickup implements Listener + { + @EventHandler + public void onPlayerPickupItem(PlayerPickupItemEvent event) { + handler.accept(new CustomPickupEvent() { + + @Override + public Player getPlayer() + { + return event.getPlayer(); + } + + @Override + public Item getItem() + { + return event.getItem(); + } + + @Override + public int getRemaining() + { + return event.getRemaining(); + } + + @Override + public boolean isCancelled() + { + return event.isCancelled(); + } + + @Override + public void setCancelled(boolean cancel) + { + event.setCancelled(cancel); + }}); + } + } + + private final class EntityPickup implements Listener + { + @EventHandler + public void onPlayerPickupItem(EntityPickupItemEvent event) { + if (event.getEntity() instanceof Player) + { + handler.accept(new CustomPickupEvent() { + + @Override + public Player getPlayer() + { + return (Player) event.getEntity(); + } + + @Override + public Item getItem() + { + return event.getItem(); + } + + @Override + public int getRemaining() + { + return event.getRemaining(); + } + + @Override + public boolean isCancelled() + { + return event.isCancelled(); + } + + @Override + public void setCancelled(boolean cancel) + { + event.setCancelled(cancel); + }}); + } + } + } + + public interface CustomPickupEvent + { + Player getPlayer(); + Item getItem(); + int getRemaining(); + boolean isCancelled(); + void setCancelled(boolean cancel); + } + +} diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java index 8850584a..36e563ac 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyEnchantments.java @@ -1,6 +1,6 @@ package com.comze_instancelabs.minigamesapi.spigottest; -import net.minecraft.server.v1_11_R1.Enchantments; +import net.minecraft.server.v1_12_R1.Enchantments; /** * taken from spigot test sources diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java index bc079c4d..21207bda 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPlayerInventory.java @@ -15,10 +15,10 @@ package com.comze_instancelabs.minigamesapi.spigottest; -import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftInventoryPlayer; +import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftInventoryPlayer; import org.bukkit.inventory.InventoryHolder; -import net.minecraft.server.v1_11_R1.PlayerInventory; +import net.minecraft.server.v1_12_R1.PlayerInventory; /** * Helper class for player inventories. diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java index 556457a8..f999340c 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyScoreboardTeam.java @@ -18,6 +18,7 @@ import java.util.HashSet; import java.util.Set; +import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.scoreboard.NameTagVisibility; import org.bukkit.scoreboard.Scoreboard; @@ -289,5 +290,25 @@ public void setOption(Option option, OptionStatus status) throws IllegalStateExc // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#getColor() + */ + @Override + public ChatColor getColor() throws IllegalStateException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.scoreboard.Team#setColor(org.bukkit.ChatColor) + */ + @Override + public void setColor(ChatColor paramChatColor) + { + // TODO Auto-generated method stub + + } } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java index f494e634..8a8bde5c 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -24,13 +24,13 @@ import org.bukkit.World.Environment; import org.bukkit.WorldType; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.craftbukkit.v1_11_R1.CraftServer; -import org.bukkit.craftbukkit.v1_11_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_11_R1.inventory.CraftItemFactory; -import org.bukkit.craftbukkit.v1_11_R1.scheduler.CraftScheduler; -import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboard; -import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboardManager; -import org.bukkit.craftbukkit.v1_11_R1.util.Versioning; +import org.bukkit.craftbukkit.v1_12_R1.CraftServer; +import org.bukkit.craftbukkit.v1_12_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemFactory; +import org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler; +import org.bukkit.craftbukkit.v1_12_R1.scoreboard.CraftScoreboard; +import org.bukkit.craftbukkit.v1_12_R1.scoreboard.CraftScoreboardManager; +import org.bukkit.craftbukkit.v1_12_R1.util.Versioning; import org.bukkit.entity.Player; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; @@ -39,22 +39,22 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import net.minecraft.server.v1_11_R1.Chunk; -import net.minecraft.server.v1_11_R1.DedicatedPlayerList; -import net.minecraft.server.v1_11_R1.DefinedStructureManager; -import net.minecraft.server.v1_11_R1.EnumGamemode; -import net.minecraft.server.v1_11_R1.ExceptionWorldConflict; -import net.minecraft.server.v1_11_R1.IChunkLoader; -import net.minecraft.server.v1_11_R1.IDataManager; -import net.minecraft.server.v1_11_R1.IPlayerFileData; -import net.minecraft.server.v1_11_R1.MethodProfiler; -import net.minecraft.server.v1_11_R1.MinecraftServer; -import net.minecraft.server.v1_11_R1.NBTTagCompound; -import net.minecraft.server.v1_11_R1.PlayerChunkMap; -import net.minecraft.server.v1_11_R1.WorldData; -import net.minecraft.server.v1_11_R1.WorldProvider; -import net.minecraft.server.v1_11_R1.WorldServer; -import net.minecraft.server.v1_11_R1.WorldSettings; +import net.minecraft.server.v1_12_R1.Chunk; +import net.minecraft.server.v1_12_R1.DedicatedPlayerList; +import net.minecraft.server.v1_12_R1.DefinedStructureManager; +import net.minecraft.server.v1_12_R1.EnumGamemode; +import net.minecraft.server.v1_12_R1.ExceptionWorldConflict; +import net.minecraft.server.v1_12_R1.IChunkLoader; +import net.minecraft.server.v1_12_R1.IDataManager; +import net.minecraft.server.v1_12_R1.IPlayerFileData; +import net.minecraft.server.v1_12_R1.MethodProfiler; +import net.minecraft.server.v1_12_R1.MinecraftServer; +import net.minecraft.server.v1_12_R1.NBTTagCompound; +import net.minecraft.server.v1_12_R1.PlayerChunkMap; +import net.minecraft.server.v1_12_R1.WorldData; +import net.minecraft.server.v1_12_R1.WorldProvider; +import net.minecraft.server.v1_12_R1.WorldServer; +import net.minecraft.server.v1_12_R1.WorldSettings; /** * originally taken from spigot test sources @@ -492,27 +492,27 @@ public World initWorld(String name, WorldType type, long seed) final UUID uuid = UUID.randomUUID(); final ChunkGenerator generator = null; int dimension = this.worlds.size() + 1; - net.minecraft.server.v1_11_R1.WorldType mctype = null; + net.minecraft.server.v1_12_R1.WorldType mctype = null; switch (type) { case AMPLIFIED: - mctype = net.minecraft.server.v1_11_R1.WorldType.AMPLIFIED; + mctype = net.minecraft.server.v1_12_R1.WorldType.AMPLIFIED; break; case CUSTOMIZED: - mctype = net.minecraft.server.v1_11_R1.WorldType.CUSTOMIZED; + mctype = net.minecraft.server.v1_12_R1.WorldType.CUSTOMIZED; break; default: case FLAT: - mctype = net.minecraft.server.v1_11_R1.WorldType.FLAT; + mctype = net.minecraft.server.v1_12_R1.WorldType.FLAT; break; case LARGE_BIOMES: - mctype = net.minecraft.server.v1_11_R1.WorldType.LARGE_BIOMES; + mctype = net.minecraft.server.v1_12_R1.WorldType.LARGE_BIOMES; break; case NORMAL: - mctype = net.minecraft.server.v1_11_R1.WorldType.NORMAL; + mctype = net.minecraft.server.v1_12_R1.WorldType.NORMAL; break; case VERSION_1_1: - mctype = net.minecraft.server.v1_11_R1.WorldType.NORMAL_1_1; + mctype = net.minecraft.server.v1_12_R1.WorldType.NORMAL_1_1; break; } @@ -541,39 +541,40 @@ public IChunkLoader createChunkLoader(WorldProvider arg0) { return new IChunkLoader(){ @Override - public Chunk a(net.minecraft.server.v1_11_R1.World arg0, int arg1, int arg2) throws IOException + public Chunk a(net.minecraft.server.v1_12_R1.World arg0, int arg1, int arg2) throws IOException { final Map<Integer, Chunk> map = chunks.get(arg1); return map == null ? null : map.get(arg2); } @Override - public void a(net.minecraft.server.v1_11_R1.World arg0, Chunk arg1) throws IOException, ExceptionWorldConflict + public void a(net.minecraft.server.v1_12_R1.World arg0, Chunk arg1) throws IOException, ExceptionWorldConflict { final Map<Integer, Chunk> map = chunks.computeIfAbsent(arg1.locX, (x) -> new HashMap<>()); map.put(arg1.locZ, arg1); } @Override - public void b(net.minecraft.server.v1_11_R1.World arg0, Chunk arg1) throws IOException + public void b(net.minecraft.server.v1_12_R1.World arg0, Chunk arg1) throws IOException { // ignore } @Override - public void a() + public void b() { // ignore } @Override - public void b() + public void c() { - // ignore + // TODO Auto-generated method stub + } @Override - public boolean a(int paramInt1, int paramInt2) + public boolean chunkExists(int arg0, int arg1) { // TODO Auto-generated method stub return false; diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java index 17bfa43d..32a107e3 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyWorld.java @@ -50,8 +50,10 @@ import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.ChunkGenerator; import org.bukkit.inventory.ItemStack; +import org.bukkit.material.MaterialData; import org.bukkit.metadata.MetadataValue; import org.bukkit.plugin.Plugin; +import org.bukkit.util.Consumer; import org.bukkit.util.Vector; /** @@ -1406,5 +1408,25 @@ public void playSound(Location paramLocation, String paramString, SoundCategory // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see org.bukkit.World#spawn(org.bukkit.Location, java.lang.Class, org.bukkit.util.Consumer) + */ + @Override + public <T extends Entity> T spawn(Location paramLocation, Class<T> paramClass, Consumer<T> paramConsumer) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.bukkit.World#spawnFallingBlock(org.bukkit.Location, org.bukkit.material.MaterialData) + */ + @Override + public FallingBlock spawnFallingBlock(Location paramLocation, MaterialData paramMaterialData) throws IllegalArgumentException + { + // TODO Auto-generated method stub + return null; + } } diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java index cce329b4..f985fdf2 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/SpigotTestSupport.java @@ -37,9 +37,9 @@ import org.bukkit.WorldType; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.craftbukkit.v1_11_R1.CraftServer; -import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboard; -import org.bukkit.craftbukkit.v1_11_R1.scoreboard.CraftScoreboardManager; +import org.bukkit.craftbukkit.v1_12_R1.CraftServer; +import org.bukkit.craftbukkit.v1_12_R1.scoreboard.CraftScoreboard; +import org.bukkit.craftbukkit.v1_12_R1.scoreboard.CraftScoreboardManager; import org.bukkit.entity.Player; import org.bukkit.inventory.PlayerInventory; import org.bukkit.plugin.PluginDescriptionFile; @@ -59,7 +59,7 @@ import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import net.minecraft.server.v1_11_R1.DispenserRegistry; +import net.minecraft.server.v1_12_R1.DispenserRegistry; /** * Test tooling for minigames API. @@ -249,7 +249,6 @@ public static YamlConfiguration mockFileConfig() try { doNothing().when(config).load(any(File.class)); - doNothing().when(config).load(any(InputStream.class)); doNothing().when(config).load(any(Reader.class)); doNothing().when(config).load(anyString()); doNothing().when(config).loadFromString(anyString()); diff --git a/changelog.md b/changelog.md index ee193c8e..7a412379 100644 --- a/changelog.md +++ b/changelog.md @@ -10,6 +10,8 @@ * Moved "Done: true" for achivements into messages.yml (https://github.com/MysticCity/MinigamesAPI/issues/280) * Added flag to deactivate smart reset (https://github.com/MysticCity/MinigamesAPI/issues/286) * Fixed ClassCastException (https://github.com/MysticCity/MinigamesAPI/issues/288) +* Fixed 1.12 deprecated event (https://github.com/MysticCity/MinigamesAPI/issues/295) +* Fixed 1.12 yml file loading ###### BedWars diff --git a/pom.xml b/pom.xml index 1c0e1d16..a05f5270 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ <junit.version>4.12</junit.version> <minigames.releaseversion>1.14.18</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> - <spigot.version>1.11-R0.1-SNAPSHOT</spigot.version> + <spigot.version>1.12-R0.1-SNAPSHOT</spigot.version> <maven.build.timestamp.format>yyyyMMdd.HHmmss</maven.build.timestamp.format> </properties> <description>Rich Minigames API and base of all of my new minigames.</description> From e4bbb1fee7dc8c4fa5beb5f70574afea1a768b44 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Thu, 3 Aug 2017 05:09:55 +0200 Subject: [PATCH 257/266] adding liquid particle flag and block blacklist --- changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.md b/changelog.md index 7a412379..c15aa964 100644 --- a/changelog.md +++ b/changelog.md @@ -27,6 +27,11 @@ * Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273) * Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) +###### MobEscape + +* Fixed lags while destroying liquids (https://github.com/MysticCity/MinigamesAPI/issues/291) +* Added block blacklist (https://github.com/MysticCity/MinigamesAPI/issues/291) + #### 1.14.17 ###### All From d9374be295ecc1f00407238468a810cb3d6a34b3 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 07:33:57 +0200 Subject: [PATCH 258/266] Jenkins --- Jenkinsfile | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..bbdc05ce --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,42 @@ +pipeline { + agent any + tools { + maven 'maven3.5.0' + jdk 'jdk8' + } + stages { + stage ('Initialization') { + steps { + echo 'Preparing for build' + } + } + + stage ('Build') { + steps { + sh 'mvn clean install' + archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true + } + post { + failure { + mail to: 'mep_eisen@web.de', subject: 'build of MinigamesLib failed', body: 'build of MinigamesLib failed' + } + } + } + + stage ('Deploy') { + when { + expression { + currentBuild.result == null || currentBuild.result == 'SUCCESS' + } + } + steps { + sh 'mvn -Deisenschmiede.deployment=true -Dmaven.test.skip=true -DskipTests deploy' + } + post { + failure { + mail to: 'mep_eisen@web.de', subject: 'deploy of MinigamesLib failed', body: 'deploy of MinigamesLib failed' + } + } + } + } +} \ No newline at end of file From 6486f63dfd0109b92683540409aa5d6d66303ded Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 08:00:06 +0200 Subject: [PATCH 259/266] updated powermock --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a05f5270..0105d69c 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <java.version>1.8</java.version> - <powermock.version>1.6.5</powermock.version> + <powermock.version>1.7.1</powermock.version> <junit.version>4.12</junit.version> <minigames.releaseversion>1.14.18</minigames.releaseversion> <minigames.timestamp>${maven.build.timestamp}</minigames.timestamp> From aebd2a90d51e02214448d7ed6510f26f5215d040 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 08:20:34 +0200 Subject: [PATCH 260/266] test fix --- .../comze_instancelabs/minigamesapi/spigottest/DummyServer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java index 8a8bde5c..788a4820 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyServer.java @@ -38,6 +38,7 @@ import org.bukkit.scoreboard.Team; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import org.spigotmc.SpigotConfig; import net.minecraft.server.v1_12_R1.Chunk; import net.minecraft.server.v1_12_R1.DedicatedPlayerList; @@ -519,6 +520,7 @@ public World initWorld(String name, WorldType type, long seed) final WorldSettings worldsettings = new WorldSettings(seed, EnumGamemode.SURVIVAL, true, false, mctype); final WorldData worlddata = new WorldData(worldsettings, name); final Map<Integer, Map<Integer, Chunk>> chunks = new HashMap<>(); + SpigotConfig.disabledAdvancements = new ArrayList<>(); final MinecraftServer mock = mock(MinecraftServer.class); when(mock.getPlayerList()).thenReturn(playerList); From acb6fecb32f7da03f96646ea05156c91b96670e0 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 08:34:27 +0200 Subject: [PATCH 261/266] test fix --- .../minigamesapi/spigottest/DummyPluginManager.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java index d25bf444..70d5f35e 100644 --- a/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java +++ b/Spigot-Test/src/main/java/com/comze_instancelabs/minigamesapi/spigottest/DummyPluginManager.java @@ -63,6 +63,15 @@ class DummyPluginManager implements PluginManager private final Map<String, Map<Permissible, Boolean>> permSubs = new HashMap<String, Map<Permissible, Boolean>>(); private final Map<Boolean, Map<Permissible, Boolean>> defSubs = new HashMap<Boolean, Map<Permissible, Boolean>>(); + /** + * + */ + public DummyPluginManager() + { + this.defaultPerms.put(Boolean.TRUE, new HashSet<>()); + this.defaultPerms.put(Boolean.FALSE, new HashSet<>()); + } + @Override public void registerInterface(Class<? extends PluginLoader> loader) throws IllegalArgumentException { From d6fe5158631a526fd54228d6301b2094150e0098 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 08:53:49 +0200 Subject: [PATCH 262/266] build fix --- Jenkinsfile | 21 ++++++++++++++++++++- pom.xml | 10 ++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bbdc05ce..7aee6085 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -23,6 +23,15 @@ pipeline { } } + stage ('Upload') { + steps { + script { + env.BUILDTYPE = readPomVersion().endsWith("-SNAPSHOT") ? "snapshots" : "releases"; + } + sh '/srv/hudson/upload_product.sh ${env.BUILDTYPE} API/target 1 minigameslib MinigamesLib' + } + } + stage ('Deploy') { when { expression { @@ -39,4 +48,14 @@ pipeline { } } } -} \ No newline at end of file +} + +def readPomVersion() { + // Reference: http://stackoverflow.com/a/26514030/1851299 + mvn "--quiet --non-recursive -Dexec.executable='echo' -Dexec.args='\${project.version}' org.codehaus.mojo:exec-maven-plugin:1.3.1:exec > pom.project.version.txt" + pomProjectVersion = readFile('pom.project.version.txt').trim() + sh "rm -f pom.project.version.txt" + echo "Current POM version: ${pomProjectVersion}" + return pomProjectVersion +} + diff --git a/pom.xml b/pom.xml index 0105d69c..3c0433f6 100644 --- a/pom.xml +++ b/pom.xml @@ -99,5 +99,15 @@ </dependency> </dependencies> </dependencyManagement> + <distributionManagement> + <snapshotRepository> + <id>xworlds-snapshots</id> + <url>${deployUrlSnapshots}</url> + </snapshotRepository> + <repository> + <id>xworlds-releases</id> + <url>${deployUrlReleases}</url> + </repository> + </distributionManagement> </project> \ No newline at end of file From 7ec0037979a7a1a1cadd529457ac73a8808a8cb9 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 08:58:27 +0200 Subject: [PATCH 263/266] build fix --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7aee6085..0009e406 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -52,7 +52,7 @@ pipeline { def readPomVersion() { // Reference: http://stackoverflow.com/a/26514030/1851299 - mvn "--quiet --non-recursive -Dexec.executable='echo' -Dexec.args='\${project.version}' org.codehaus.mojo:exec-maven-plugin:1.3.1:exec > pom.project.version.txt" + sh "mvn --quiet --non-recursive -Dexec.executable='echo' -Dexec.args='\${project.version}' org.codehaus.mojo:exec-maven-plugin:1.3.1:exec > pom.project.version.txt" pomProjectVersion = readFile('pom.project.version.txt').trim() sh "rm -f pom.project.version.txt" echo "Current POM version: ${pomProjectVersion}" From da3981aae6825d3714360a585c3701b6007013cf Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 10 Sep 2017 10:39:41 +0200 Subject: [PATCH 264/266] fix --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0009e406..147ec788 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -28,7 +28,7 @@ pipeline { script { env.BUILDTYPE = readPomVersion().endsWith("-SNAPSHOT") ? "snapshots" : "releases"; } - sh '/srv/hudson/upload_product.sh ${env.BUILDTYPE} API/target 1 minigameslib MinigamesLib' + sh "/srv/hudson/upload_product.sh ${env.BUILDTYPE} API/target 1 minigameslib MinigamesLib" } } From ffea40e6552ee7bd3422ed97e4453d50065693c8 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Sun, 17 Sep 2017 17:38:25 +0200 Subject: [PATCH 265/266] changed distribution repository --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 147ec788..3feecabb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -39,7 +39,7 @@ pipeline { } } steps { - sh 'mvn -Deisenschmiede.deployment=true -Dmaven.test.skip=true -DskipTests deploy' + sh 'mvn -Dmce.deployment=true -Dmaven.test.skip=true -DskipTests deploy' } post { failure { From c9e0ccbabc607d5a112c5e278f088650b9830612 Mon Sep 17 00:00:00 2001 From: mepeisen <mep_eisen@web.de> Date: Mon, 18 Sep 2017 07:06:38 +0200 Subject: [PATCH 266/266] fixed NPE --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index c15aa964..8e5a6ba3 100644 --- a/changelog.md +++ b/changelog.md @@ -21,6 +21,10 @@ * Fixed broken start sound (https://github.com/MysticCity/MinigamesAPI/issues/273) +###### Conquer + +* Fixed NullPointerException (https://github.com/MysticCity/MinigamesAPI/issues/286) + ###### HorseRacingPlus * Fixed NPE if plugin folder does not exist (https://github.com/MysticCity/MinigamesAPI/issues/273)